@onewelcome/react-lib-components 8.5.0 → 8.7.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 (334) hide show
  1. package/dist/cjs/Button/BaseButton.cjs.js +1 -1
  2. package/dist/cjs/Button/BaseButton.cjs.js.map +1 -1
  3. package/dist/cjs/ContextMenu/ContextMenu.cjs.js +1 -1
  4. package/dist/cjs/ContextMenu/ContextMenu.cjs.js.map +1 -1
  5. package/dist/cjs/DataGrid/DataGridFilters/DataGridDateFilter.cjs.js +2 -0
  6. package/dist/cjs/DataGrid/DataGridFilters/DataGridDateFilter.cjs.js.map +1 -0
  7. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterTag.cjs.js +1 -1
  8. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterTag.cjs.js.map +1 -1
  9. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilters.interfaces.cjs.js.map +1 -1
  10. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js +1 -1
  11. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js.map +1 -1
  12. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.cjs.js +2 -0
  13. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.cjs.js.map +1 -0
  14. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +2 -0
  15. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js.map +1 -0
  16. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.cjs.js +2 -0
  17. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.cjs.js.map +1 -0
  18. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.cjs.js +2 -0
  19. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.cjs.js.map +1 -0
  20. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.cjs.js +2 -0
  21. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.cjs.js.map +1 -0
  22. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/SideMenu.cjs.js +2 -0
  23. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/SideMenu.cjs.js.map +1 -0
  24. package/dist/cjs/DatePicker/DatePicker.cjs.js +1 -1
  25. package/dist/cjs/DatePicker/DatePicker.cjs.js.map +1 -1
  26. package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
  27. package/dist/cjs/Form/Checkbox/Checkbox.cjs.js +1 -1
  28. package/dist/cjs/Form/Checkbox/Checkbox.cjs.js.map +1 -1
  29. package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
  30. package/dist/cjs/Form/Fieldset/Fieldset.cjs.js +1 -1
  31. package/dist/cjs/Form/Fieldset/Fieldset.cjs.js.map +1 -1
  32. package/dist/cjs/Form/FileUpload/FileItem/FileItem.cjs.js +1 -1
  33. package/dist/cjs/Form/FileUpload/FileItem/FileItem.cjs.js.map +1 -1
  34. package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
  35. package/dist/cjs/Form/FileUpload/FileUpload.cjs.js +1 -1
  36. package/dist/cjs/Form/FileUpload/FileUpload.cjs.js.map +1 -1
  37. package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
  38. package/dist/cjs/Form/FormGroup/FormGroup.cjs.js +1 -1
  39. package/dist/cjs/Form/FormGroup/FormGroup.cjs.js.map +1 -1
  40. package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
  41. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.cjs.js +1 -1
  42. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.cjs.js.map +1 -1
  43. package/dist/cjs/Form/Input/Input.cjs.js +1 -1
  44. package/dist/cjs/Form/Input/Input.cjs.js.map +1 -1
  45. package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
  46. package/dist/cjs/Form/Radio/Radio.cjs.js +1 -1
  47. package/dist/cjs/Form/Radio/Radio.cjs.js.map +1 -1
  48. package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
  49. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.cjs.js +1 -1
  50. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.cjs.js.map +1 -1
  51. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
  52. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
  53. package/dist/cjs/Form/Select/MultiSelect/useArrowNavigation.cjs.js +1 -1
  54. package/dist/cjs/Form/Select/MultiSelect/useArrowNavigation.cjs.js.map +1 -1
  55. package/dist/cjs/Form/Select/MultiSelect/useMultiSelect.cjs.js +2 -0
  56. package/dist/cjs/Form/Select/MultiSelect/useMultiSelect.cjs.js.map +1 -0
  57. package/dist/cjs/Form/Select/Select.interfaces.cjs.js +2 -0
  58. package/dist/cjs/Form/Select/Select.interfaces.cjs.js.map +1 -0
  59. package/dist/cjs/Form/Select/SingleSelect/Select.cjs.js +1 -1
  60. package/dist/cjs/Form/Select/SingleSelect/Select.cjs.js.map +1 -1
  61. package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
  62. package/dist/cjs/Form/Select/SingleSelect/useArrowNavigation.cjs.js +1 -1
  63. package/dist/cjs/Form/Select/SingleSelect/useArrowNavigation.cjs.js.map +1 -1
  64. package/dist/cjs/Form/Select/useSelectPositionList.cjs.js +1 -1
  65. package/dist/cjs/Form/Select/useSelectPositionList.cjs.js.map +1 -1
  66. package/dist/cjs/Form/Textarea/Textarea.cjs.js +1 -1
  67. package/dist/cjs/Form/Textarea/Textarea.cjs.js.map +1 -1
  68. package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
  69. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.cjs.js +1 -1
  70. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.cjs.js.map +1 -1
  71. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.cjs.js +1 -1
  72. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.cjs.js.map +1 -1
  73. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
  74. package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.cjs.js +1 -1
  75. package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.cjs.js.map +1 -1
  76. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.cjs.js +1 -1
  77. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.cjs.js.map +1 -1
  78. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.cjs.js +1 -1
  79. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.cjs.js.map +1 -1
  80. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.cjs.js +1 -1
  81. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.cjs.js.map +1 -1
  82. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
  83. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.cjs.js +1 -1
  84. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.cjs.js.map +1 -1
  85. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
  86. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js +1 -1
  87. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js.map +1 -1
  88. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridDateFilter.d.ts +9 -0
  89. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterTag.d.ts +2 -1
  90. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +10 -1
  91. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridToolbar.d.ts +5 -3
  92. package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.d.ts +31 -0
  93. package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.d.ts +15 -0
  94. package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.d.ts +18 -0
  95. package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.d.ts +10 -0
  96. package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/SideMenu.d.ts +10 -0
  97. package/dist/cjs/src/components/DataGrid/testUtils.d.ts +7 -1
  98. package/dist/cjs/src/components/DatePicker/DatePicker.d.ts +4 -1
  99. package/dist/cjs/src/components/Form/Checkbox/Checkbox.d.ts +1 -1
  100. package/dist/cjs/src/components/Form/Fieldset/Fieldset.d.ts +1 -1
  101. package/dist/cjs/src/components/Form/FileUpload/FileItem/FileItem.d.ts +1 -1
  102. package/dist/cjs/src/components/Form/FileUpload/FileUpload.d.ts +6 -1
  103. package/dist/cjs/src/components/Form/FormGroup/FormGroup.d.ts +1 -0
  104. package/dist/cjs/src/components/Form/Input/Input.d.ts +2 -1
  105. package/dist/cjs/src/components/Form/Radio/Radio.d.ts +1 -1
  106. package/dist/cjs/src/components/Form/Select/MultiSelect/MultiSelect.d.ts +1 -1
  107. package/dist/cjs/src/components/Form/Select/MultiSelect/useArrowNavigation.d.ts +2 -1
  108. package/dist/cjs/src/components/Form/Select/MultiSelect/useMultiSelect.d.ts +16 -0
  109. package/dist/cjs/src/components/Form/Select/Select.interfaces.d.ts +6 -4
  110. package/dist/cjs/src/components/Form/Select/SingleSelect/Select.d.ts +1 -1
  111. package/dist/cjs/src/components/Form/Select/SingleSelect/useArrowNavigation.d.ts +1 -1
  112. package/dist/cjs/src/components/Form/Select/useSelectPositionList.d.ts +2 -2
  113. package/dist/cjs/src/components/Form/Textarea/Textarea.d.ts +2 -1
  114. package/dist/cjs/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.d.ts +1 -1
  115. package/dist/cjs/src/components/Form/Wrapper/InputWrapper/InputWrapper.d.ts +1 -1
  116. package/dist/cjs/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.d.ts +1 -1
  117. package/dist/cjs/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.d.ts +1 -1
  118. package/dist/cjs/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +1 -1
  119. package/dist/cjs/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.d.ts +2 -1
  120. package/dist/cjs/src/components/Form/Wrapper/Wrapper/Wrapper.d.ts +1 -0
  121. package/dist/cjs/src/components/_BaseStyling_/BaseStyling.d.ts +2 -0
  122. package/dist/cjs/src/components/withReadOnly.d.ts +8 -0
  123. package/dist/cjs/src/hooks/useClickOutside.cjs.js +2 -0
  124. package/dist/cjs/src/hooks/useClickOutside.cjs.js.map +1 -0
  125. package/dist/cjs/src/hooks/useClickOutside.d.ts +2 -0
  126. package/dist/cjs/src/hooks/useClickOutside.test.d.ts +1 -0
  127. package/dist/cjs/src/index.cjs.js +1 -1
  128. package/dist/cjs/src/index.d.ts +2 -0
  129. package/dist/cjs/src/util/unitTestUtils.d.ts +12 -0
  130. package/dist/cjs/withReadOnly.cjs.js +2 -0
  131. package/dist/cjs/withReadOnly.cjs.js.map +1 -0
  132. package/dist/esm/Button/BaseButton.esm.js +5 -2
  133. package/dist/esm/Button/BaseButton.esm.js.map +1 -1
  134. package/dist/esm/ContextMenu/ContextMenu.esm.js +6 -8
  135. package/dist/esm/ContextMenu/ContextMenu.esm.js.map +1 -1
  136. package/dist/esm/ContextMenu/ContextMenuItem.esm.js +3 -3
  137. package/dist/esm/ContextMenu/ContextMenuItem.esm.js.map +1 -1
  138. package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
  139. package/dist/esm/DataGrid/DataGridFilters/DataGridDateFilter.esm.js +35 -0
  140. package/dist/esm/DataGrid/DataGridFilters/DataGridDateFilter.esm.js.map +1 -0
  141. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js +16 -7
  142. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js.map +1 -1
  143. package/dist/esm/DataGrid/DataGridFilters/DataGridFilters.interfaces.esm.js.map +1 -1
  144. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js +15 -12
  145. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js.map +1 -1
  146. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.esm.js +138 -0
  147. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.esm.js.map +1 -0
  148. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +8 -0
  149. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js.map +1 -0
  150. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.esm.js +54 -0
  151. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.esm.js.map +1 -0
  152. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.esm.js +51 -0
  153. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.esm.js.map +1 -0
  154. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.esm.js +29 -0
  155. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.esm.js.map +1 -0
  156. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/SideMenu.esm.js +26 -0
  157. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/SideMenu.esm.js.map +1 -0
  158. package/dist/esm/DatePicker/DatePicker.esm.js +3 -1
  159. package/dist/esm/DatePicker/DatePicker.esm.js.map +1 -1
  160. package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
  161. package/dist/esm/Form/Checkbox/Checkbox.esm.js +2 -1
  162. package/dist/esm/Form/Checkbox/Checkbox.esm.js.map +1 -1
  163. package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +1 -1
  164. package/dist/esm/Form/Fieldset/Fieldset.esm.js +2 -1
  165. package/dist/esm/Form/Fieldset/Fieldset.esm.js.map +1 -1
  166. package/dist/esm/Form/FileUpload/FileItem/FileItem.esm.js +10 -3
  167. package/dist/esm/Form/FileUpload/FileItem/FileItem.esm.js.map +1 -1
  168. package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +1 -1
  169. package/dist/esm/Form/FileUpload/FileUpload.esm.js +9 -6
  170. package/dist/esm/Form/FileUpload/FileUpload.esm.js.map +1 -1
  171. package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
  172. package/dist/esm/Form/FormGroup/FormGroup.esm.js +2 -2
  173. package/dist/esm/Form/FormGroup/FormGroup.esm.js.map +1 -1
  174. package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +1 -1
  175. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js +1 -1
  176. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js.map +1 -1
  177. package/dist/esm/Form/Input/Input.esm.js +7 -5
  178. package/dist/esm/Form/Input/Input.esm.js.map +1 -1
  179. package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
  180. package/dist/esm/Form/Radio/Radio.esm.js +2 -1
  181. package/dist/esm/Form/Radio/Radio.esm.js.map +1 -1
  182. package/dist/esm/Form/Radio/Radio.module.scss.esm.js +1 -1
  183. package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js +33 -18
  184. package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js.map +1 -1
  185. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
  186. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +1 -1
  187. package/dist/esm/Form/Select/MultiSelect/useArrowNavigation.esm.js +4 -1
  188. package/dist/esm/Form/Select/MultiSelect/useArrowNavigation.esm.js.map +1 -1
  189. package/dist/esm/Form/Select/MultiSelect/useMultiSelect.esm.js +63 -0
  190. package/dist/esm/Form/Select/MultiSelect/useMultiSelect.esm.js.map +1 -0
  191. package/dist/esm/Form/Select/Select.interfaces.esm.js +23 -0
  192. package/dist/esm/Form/Select/Select.interfaces.esm.js.map +1 -0
  193. package/dist/esm/Form/Select/SingleSelect/Select.esm.js +29 -20
  194. package/dist/esm/Form/Select/SingleSelect/Select.esm.js.map +1 -1
  195. package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
  196. package/dist/esm/Form/Select/SingleSelect/useArrowNavigation.esm.js +4 -1
  197. package/dist/esm/Form/Select/SingleSelect/useArrowNavigation.esm.js.map +1 -1
  198. package/dist/esm/Form/Select/useSelectPositionList.esm.js +11 -13
  199. package/dist/esm/Form/Select/useSelectPositionList.esm.js.map +1 -1
  200. package/dist/esm/Form/Textarea/Textarea.esm.js +12 -5
  201. package/dist/esm/Form/Textarea/Textarea.esm.js.map +1 -1
  202. package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +1 -1
  203. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js +4 -1
  204. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js.map +1 -1
  205. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.esm.js +6 -4
  206. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.esm.js.map +1 -1
  207. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +1 -1
  208. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js +3 -2
  209. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js.map +1 -1
  210. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js +17 -10
  211. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js.map +1 -1
  212. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js +5 -2
  213. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js.map +1 -1
  214. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.esm.js +20 -10
  215. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.esm.js.map +1 -1
  216. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
  217. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.esm.js +2 -2
  218. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.esm.js.map +1 -1
  219. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +1 -1
  220. package/dist/esm/_BaseStyling_/BaseStyling.esm.js +2 -0
  221. package/dist/esm/_BaseStyling_/BaseStyling.esm.js.map +1 -1
  222. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridDateFilter.d.ts +9 -0
  223. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterTag.d.ts +2 -1
  224. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +10 -1
  225. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridToolbar.d.ts +5 -3
  226. package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.d.ts +31 -0
  227. package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.d.ts +15 -0
  228. package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.d.ts +18 -0
  229. package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.d.ts +10 -0
  230. package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/SideMenu.d.ts +10 -0
  231. package/dist/esm/src/components/DataGrid/testUtils.d.ts +7 -1
  232. package/dist/esm/src/components/DatePicker/DatePicker.d.ts +4 -1
  233. package/dist/esm/src/components/Form/Checkbox/Checkbox.d.ts +1 -1
  234. package/dist/esm/src/components/Form/Fieldset/Fieldset.d.ts +1 -1
  235. package/dist/esm/src/components/Form/FileUpload/FileItem/FileItem.d.ts +1 -1
  236. package/dist/esm/src/components/Form/FileUpload/FileUpload.d.ts +6 -1
  237. package/dist/esm/src/components/Form/FormGroup/FormGroup.d.ts +1 -0
  238. package/dist/esm/src/components/Form/Input/Input.d.ts +2 -1
  239. package/dist/esm/src/components/Form/Radio/Radio.d.ts +1 -1
  240. package/dist/esm/src/components/Form/Select/MultiSelect/MultiSelect.d.ts +1 -1
  241. package/dist/esm/src/components/Form/Select/MultiSelect/useArrowNavigation.d.ts +2 -1
  242. package/dist/esm/src/components/Form/Select/MultiSelect/useMultiSelect.d.ts +16 -0
  243. package/dist/esm/src/components/Form/Select/MultiSelect/useMultiSelect.test.d.ts +1 -0
  244. package/dist/esm/src/components/Form/Select/Select.interfaces.d.ts +6 -4
  245. package/dist/esm/src/components/Form/Select/SingleSelect/Select.d.ts +1 -1
  246. package/dist/esm/src/components/Form/Select/SingleSelect/useArrowNavigation.d.ts +1 -1
  247. package/dist/esm/src/components/Form/Select/useSelectPositionList.d.ts +2 -2
  248. package/dist/esm/src/components/Form/Textarea/Textarea.d.ts +2 -1
  249. package/dist/esm/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.d.ts +1 -1
  250. package/dist/esm/src/components/Form/Wrapper/InputWrapper/InputWrapper.d.ts +1 -1
  251. package/dist/esm/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.d.ts +1 -1
  252. package/dist/esm/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.d.ts +1 -1
  253. package/dist/esm/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +1 -1
  254. package/dist/esm/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.d.ts +2 -1
  255. package/dist/esm/src/components/Form/Wrapper/Wrapper/Wrapper.d.ts +1 -0
  256. package/dist/esm/src/components/_BaseStyling_/BaseStyling.d.ts +2 -0
  257. package/dist/esm/src/components/withReadOnly.d.ts +8 -0
  258. package/dist/esm/src/components/withReadOnly.test.d.ts +1 -0
  259. package/dist/esm/src/hooks/useClickOutside.d.ts +2 -0
  260. package/dist/esm/src/hooks/useClickOutside.esm.js +38 -0
  261. package/dist/esm/src/hooks/useClickOutside.esm.js.map +1 -0
  262. package/dist/esm/src/hooks/useClickOutside.test.d.ts +1 -0
  263. package/dist/esm/src/index.d.ts +2 -0
  264. package/dist/esm/src/index.esm.js +2 -0
  265. package/dist/esm/src/index.esm.js.map +1 -1
  266. package/dist/esm/src/util/unitTestUtils.d.ts +12 -0
  267. package/dist/esm/withReadOnly.esm.js +70 -0
  268. package/dist/esm/withReadOnly.esm.js.map +1 -0
  269. package/package.json +21 -17
  270. package/src/components/Button/BaseButton.tsx +7 -4
  271. package/src/components/ContextMenu/ContextMenu.tsx +5 -13
  272. package/src/components/DataGrid/DataGridBody/__snapshots__/DataGridBody.test.tsx.snap +4 -4
  273. package/src/components/DataGrid/DataGridFilters/DataGridDateFilter.tsx +65 -0
  274. package/src/components/DataGrid/DataGridFilters/DataGridFilterTag.tsx +25 -5
  275. package/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.ts +18 -1
  276. package/src/components/DataGrid/DataGridFilters/DataGridToolbar.tsx +53 -33
  277. package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss +134 -0
  278. package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.tsx +267 -0
  279. package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.tsx +103 -0
  280. package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.tsx +121 -0
  281. package/src/{hooks/useBodyClick.ts → components/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.ts} +12 -18
  282. package/src/components/DataGrid/DataGridFilters/DateTimePicker/SideMenu.tsx +50 -0
  283. package/src/components/DataGrid/testUtils.ts +48 -15
  284. package/src/components/DatePicker/DatePicker.module.scss +32 -9
  285. package/src/components/DatePicker/DatePicker.tsx +15 -1
  286. package/src/components/Form/Checkbox/Checkbox.module.scss +70 -0
  287. package/src/components/Form/Checkbox/Checkbox.tsx +2 -1
  288. package/src/components/Form/Fieldset/Fieldset.tsx +2 -1
  289. package/src/components/Form/FileUpload/FileItem/FileItem.module.scss +16 -0
  290. package/src/components/Form/FileUpload/FileItem/FileItem.tsx +17 -3
  291. package/src/components/Form/FileUpload/FileUpload.module.scss +57 -1
  292. package/src/components/Form/FileUpload/FileUpload.tsx +16 -6
  293. package/src/components/Form/FormGroup/FormGroup.tsx +6 -1
  294. package/src/components/Form/FormHelperText/FormHelperText.module.scss +4 -0
  295. package/src/components/Form/FormSelectorWrapper/FormSelectorWrapper.tsx +2 -2
  296. package/src/components/Form/Input/Input.module.scss +26 -0
  297. package/src/components/Form/Input/Input.tsx +10 -1
  298. package/src/components/Form/Radio/Radio.module.scss +46 -0
  299. package/src/components/Form/Radio/Radio.tsx +2 -1
  300. package/src/components/Form/Select/MultiSelect/MultiSelect.module.scss +35 -1
  301. package/src/components/Form/Select/MultiSelect/MultiSelect.tsx +53 -38
  302. package/src/components/Form/Select/MultiSelect/SelectedOptions.module.scss +8 -0
  303. package/src/components/Form/Select/MultiSelect/useArrowNavigation.ts +6 -1
  304. package/src/components/Form/Select/MultiSelect/useMultiSelect.tsx +98 -0
  305. package/src/components/Form/Select/Select.interfaces.ts +6 -4
  306. package/src/components/Form/Select/SingleSelect/Select.module.scss +60 -1
  307. package/src/components/Form/Select/SingleSelect/Select.tsx +42 -37
  308. package/src/components/Form/Select/SingleSelect/useArrowNavigation.ts +6 -1
  309. package/src/components/Form/Select/useSelectPositionList.ts +10 -14
  310. package/src/components/Form/Textarea/Textarea.module.scss +24 -0
  311. package/src/components/Form/Textarea/Textarea.tsx +24 -3
  312. package/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx +4 -1
  313. package/src/components/Form/Wrapper/InputWrapper/InputWrapper.module.scss +14 -0
  314. package/src/components/Form/Wrapper/InputWrapper/InputWrapper.tsx +6 -2
  315. package/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.tsx +3 -1
  316. package/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.tsx +17 -12
  317. package/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +6 -1
  318. package/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss +43 -0
  319. package/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx +45 -20
  320. package/src/components/Form/Wrapper/Wrapper/Wrapper.module.scss +6 -0
  321. package/src/components/Form/Wrapper/Wrapper/Wrapper.tsx +3 -0
  322. package/src/components/_BaseStyling_/BaseStyling.tsx +4 -0
  323. package/src/components/withReadOnly.tsx +112 -0
  324. package/src/hooks/useClickOutside.ts +42 -0
  325. package/src/index.ts +2 -0
  326. package/src/mixins.module.scss +6 -0
  327. package/{dist/esm/src/hooks/useBodyClick.esm.js → src/util/unitTestUtils.ts} +16 -17
  328. package/dist/cjs/src/hooks/useBodyClick.cjs.js +0 -2
  329. package/dist/cjs/src/hooks/useBodyClick.cjs.js.map +0 -1
  330. package/dist/cjs/src/hooks/useBodyClick.d.ts +0 -1
  331. package/dist/esm/src/hooks/useBodyClick.d.ts +0 -1
  332. package/dist/esm/src/hooks/useBodyClick.esm.js.map +0 -1
  333. /package/dist/cjs/src/{hooks/useBodyClick.test.d.ts → components/Form/Select/MultiSelect/useMultiSelect.test.d.ts} +0 -0
  334. /package/dist/{esm/src/hooks/useBodyClick.test.d.ts → cjs/src/components/withReadOnly.test.d.ts} +0 -0
@@ -0,0 +1,38 @@
1
+ import { useEffect } from 'react';
2
+
3
+ /*
4
+ * Copyright 2022 OneWelcome B.V.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ const useClickOutside = (myElementRef, onClickOutside, dependencies) => {
19
+ function eventListener(event) {
20
+ const myElement = myElementRef === null || myElementRef === void 0 ? void 0 : myElementRef.current;
21
+ if (!myElement) {
22
+ return;
23
+ }
24
+ const clickedInsideMyElement = myElement.contains(event.target);
25
+ if (!clickedInsideMyElement) {
26
+ onClickOutside(event);
27
+ }
28
+ }
29
+ useEffect(() => {
30
+ setTimeout(() => window.addEventListener("click", eventListener));
31
+ return () => {
32
+ setTimeout(() => window.removeEventListener("click", eventListener));
33
+ };
34
+ }, dependencies);
35
+ };
36
+
37
+ export { useClickOutside };
38
+ //# sourceMappingURL=useClickOutside.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutside.esm.js","sources":["../../../../../../src/hooks/useClickOutside.ts"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DependencyList, useEffect } from \"react\";\n\nexport const useClickOutside = (\n myElementRef: React.RefObject<HTMLElement>,\n onClickOutside: (event: MouseEvent) => void,\n dependencies?: DependencyList\n) => {\n function eventListener(event: MouseEvent) {\n const myElement = myElementRef?.current;\n if (!myElement) {\n return;\n }\n const clickedInsideMyElement = myElement.contains(event.target as Node);\n\n if (!clickedInsideMyElement) {\n onClickOutside(event);\n }\n }\n useEffect(() => {\n setTimeout(() => window.addEventListener(\"click\", eventListener));\n\n return () => {\n setTimeout(() => window.removeEventListener(\"click\", eventListener));\n };\n }, dependencies);\n};\n"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;AAcG;AAIU,MAAA,eAAe,GAAG,CAC7B,YAA0C,EAC1C,cAA2C,EAC3C,YAA6B,KAC3B;IACF,SAAS,aAAa,CAAC,KAAiB,EAAA;QACtC,MAAM,SAAS,GAAG,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,OAAO,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QACD,MAAM,sBAAsB,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC;QAExE,IAAI,CAAC,sBAAsB,EAAE;YAC3B,cAAc,CAAC,KAAK,CAAC,CAAC;SACvB;KACF;IACD,SAAS,CAAC,MAAK;AACb,QAAA,UAAU,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAElE,QAAA,OAAO,MAAK;AACV,YAAA,UAAU,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AACvE,SAAC,CAAC;KACH,EAAE,YAAY,CAAC,CAAC;AACnB;;;;"}
@@ -0,0 +1 @@
1
+ export {};
@@ -42,6 +42,7 @@ export type { Props as StepProps } from "./components/Stepper/Step";
42
42
  export { Pagination } from "./components/Pagination/Pagination";
43
43
  export type { Props as PaginationProps, PageChangeLabels, PaginationTranslations, PageSize } from "./components/Pagination/Pagination";
44
44
  export { useRepeater } from "./hooks/useRepeater";
45
+ export { useClickOutside } from "./hooks/useClickOutside";
45
46
  export { useFullHeightCollapse } from "./hooks/useFullHeightCollapse";
46
47
  export { usePosition } from "./hooks/usePosition";
47
48
  export type { Placement } from "./hooks/usePosition";
@@ -124,6 +125,7 @@ export type { Props as FileUploadProps, FileType } from "./components/Form/FileU
124
125
  export { FILE_ACTION, ACTION_STATUS } from "./components/Form/FileUpload/FileItem/FileItem";
125
126
  export { MultiSelectWrapper } from "./components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper";
126
127
  export type { Props as MultiSelectWrapperProps } from "./components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper";
128
+ export { useMultiSelect } from "./components/Form/Select/MultiSelect/useMultiSelect";
127
129
  export { ContentHeader } from "./components/Layout/ContentHeader/ContentHeader";
128
130
  export type { Props as ContentHeaderProps } from "./components/Layout/ContentHeader/ContentHeader";
129
131
  export { FormStepper } from "./components/Layout/FormPage/FormWithStepper/FormStepper/FormStepper";
@@ -20,6 +20,7 @@ export { Spinner } from '../Spinner/Spinner.esm.js';
20
20
  export { Stepper } from '../Stepper/Stepper.esm.js';
21
21
  export { Pagination } from '../Pagination/Pagination.esm.js';
22
22
  export { useRepeater } from './hooks/useRepeater.esm.js';
23
+ export { useClickOutside } from './hooks/useClickOutside.esm.js';
23
24
  export { useFullHeightCollapse } from './hooks/useFullHeightCollapse.esm.js';
24
25
  export { usePosition } from './hooks/usePosition.esm.js';
25
26
  export { useDebouncedCallback } from './hooks/useDebouncedCallback.esm.js';
@@ -62,6 +63,7 @@ export { SelectWrapper } from '../Form/Wrapper/SelectWrapper/SelectWrapper.esm.j
62
63
  export { FileUpload } from '../Form/FileUpload/FileUpload.esm.js';
63
64
  export { ACTION_STATUS, FILE_ACTION } from '../Form/FileUpload/FileItem/FileItem.esm.js';
64
65
  export { MultiSelectWrapper } from '../Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js';
66
+ export { useMultiSelect } from '../Form/Select/MultiSelect/useMultiSelect.esm.js';
65
67
  export { ContentHeader } from '../Layout/ContentHeader/ContentHeader.esm.js';
66
68
  export { FormStepper } from '../Layout/FormPage/FormWithStepper/FormStepper/FormStepper.esm.js';
67
69
  export { FormSection } from '../Layout/FormPage/FormWithStepper/FormSection/FormSection.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,12 @@
1
+ export declare class MockDOMRect implements DOMRect {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ top: number;
7
+ right: number;
8
+ bottom: number;
9
+ left: number;
10
+ constructor(x?: number, y?: number, width?: number, height?: number, top?: number, right?: number, bottom?: number, left?: number);
11
+ toJSON(): this;
12
+ }
@@ -0,0 +1,70 @@
1
+ import React from 'react';
2
+
3
+ /*
4
+ * Copyright 2022 OneWelcome B.V.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ const componentsWithKeyEventsToPrevent = ["CheckboxWrapper"];
19
+ const getDisplayName = (WrappedComponent) => {
20
+ var _a, _b;
21
+ return (_b = (_a = WrappedComponent.displayName) !== null && _a !== void 0 ? _a : WrappedComponent.name) !== null && _b !== void 0 ? _b : "Component";
22
+ };
23
+ const getConditionalProps = (readOnlyView, type, helperText) => {
24
+ const props = {};
25
+ if (readOnlyView) {
26
+ props.style = { pointerEvents: "none", userSelect: "text" };
27
+ if (helperText) {
28
+ props.helperText = "";
29
+ }
30
+ }
31
+ else {
32
+ props.helperText = helperText;
33
+ }
34
+ if (type) {
35
+ props.type = type;
36
+ }
37
+ return props;
38
+ };
39
+ const withReadOnly = (WrappedComponent) => {
40
+ const preventKeyUpAndKeyDownHandlerForSpecificComponents = (readOnlyView) => {
41
+ const preventSubmissionKeys = (e) => {
42
+ const isEnterOrSpace = (e) => e.key === "Enter" || e.key === " ";
43
+ if (isEnterOrSpace(e)) {
44
+ e.stopPropagation();
45
+ e.preventDefault();
46
+ }
47
+ };
48
+ if (readOnlyView &&
49
+ componentsWithKeyEventsToPrevent.includes(WrappedComponent.displayName || WrappedComponent.name)) {
50
+ const props = {};
51
+ props.onKeyUp = (e) => {
52
+ preventSubmissionKeys(e);
53
+ };
54
+ props.onKeyDown = (e) => {
55
+ preventSubmissionKeys(e);
56
+ };
57
+ return props;
58
+ }
59
+ return {};
60
+ };
61
+ const WithReadOnlyComponent = React.forwardRef((props, ref) => {
62
+ const { readOnlyView = false, required, children, helperText, type = "", ...restProps } = props;
63
+ return (React.createElement(WrappedComponent, { ref: ref, ...restProps, "data-readonlyview": readOnlyView, "aria-readonly": readOnlyView, required: readOnlyView ? false : required, ...getConditionalProps(readOnlyView, type, helperText), ...preventKeyUpAndKeyDownHandlerForSpecificComponents(readOnlyView) }, children));
64
+ });
65
+ WithReadOnlyComponent.displayName = `withReadOnly_${getDisplayName(WrappedComponent)}`;
66
+ return WithReadOnlyComponent;
67
+ };
68
+
69
+ export { withReadOnly };
70
+ //# sourceMappingURL=withReadOnly.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withReadOnly.esm.js","sources":["../../../../src/components/withReadOnly.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentType, ForwardedRef, PropsWithChildren } from \"react\";\n\nexport interface WithReadOnlyProps {\n readOnlyView?: boolean;\n required?: boolean;\n helperText?: string;\n type?: string;\n}\n\nconst componentsWithKeyEventsToPrevent: string[] = [\"CheckboxWrapper\"];\n\nconst getDisplayName = <P,>(WrappedComponent: ComponentType<P>) => {\n return WrappedComponent.displayName ?? WrappedComponent.name ?? \"Component\";\n};\n\nconst getConditionalProps = (readOnlyView: boolean, type: string, helperText?: string) => {\n const props: Record<string, any> = {};\n\n if (readOnlyView) {\n props.style = { pointerEvents: \"none\", userSelect: \"text\" };\n if (helperText) {\n props.helperText = \"\";\n }\n } else {\n props.helperText = helperText;\n }\n\n if (type) {\n props.type = type;\n }\n\n return props;\n};\n\nexport const withReadOnly = <P extends object>(WrappedComponent: ComponentType<P>) => {\n const preventKeyUpAndKeyDownHandlerForSpecificComponents = (readOnlyView: boolean) => {\n const preventSubmissionKeys = (e: KeyboardEvent) => {\n const isEnterOrSpace = (e: KeyboardEvent) => e.key === \"Enter\" || e.key === \" \";\n if (isEnterOrSpace(e)) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n if (\n readOnlyView &&\n componentsWithKeyEventsToPrevent.includes(\n WrappedComponent.displayName || WrappedComponent.name\n )\n ) {\n const props: Record<string, any> = {};\n\n props.onKeyUp = (e: KeyboardEvent) => {\n preventSubmissionKeys(e);\n };\n\n props.onKeyDown = (e: KeyboardEvent) => {\n preventSubmissionKeys(e);\n };\n\n return props;\n }\n\n return {};\n };\n\n const WithReadOnlyComponent = React.forwardRef(\n (props: PropsWithChildren<P & WithReadOnlyProps>, ref: ForwardedRef<any>) => {\n const {\n readOnlyView = false,\n required,\n children,\n helperText,\n type = \"\",\n ...restProps\n } = props;\n\n return (\n <WrappedComponent\n ref={ref}\n {...(restProps as P)}\n data-readonlyview={readOnlyView}\n aria-readonly={readOnlyView}\n required={readOnlyView ? false : required}\n {...getConditionalProps(readOnlyView, type, helperText)}\n {...preventKeyUpAndKeyDownHandlerForSpecificComponents(readOnlyView)}\n >\n {children}\n </WrappedComponent>\n );\n }\n );\n\n WithReadOnlyComponent.displayName = `withReadOnly_${getDisplayName(WrappedComponent)}`;\n return WithReadOnlyComponent;\n};\n"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;AAcG;AAWH,MAAM,gCAAgC,GAAa,CAAC,iBAAiB,CAAC,CAAC;AAEvE,MAAM,cAAc,GAAG,CAAK,gBAAkC,KAAI;;IAChE,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,gBAAgB,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,WAAW,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,YAAqB,EAAE,IAAY,EAAE,UAAmB,KAAI;IACvF,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,IAAI,YAAY,EAAE;AAChB,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC5D,IAAI,UAAU,EAAE;AACd,YAAA,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;SACvB;KACF;SAAM;AACL,QAAA,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;KAC/B;IAED,IAAI,IAAI,EAAE;AACR,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;KACnB;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEW,MAAA,YAAY,GAAG,CAAmB,gBAAkC,KAAI;AACnF,IAAA,MAAM,kDAAkD,GAAG,CAAC,YAAqB,KAAI;AACnF,QAAA,MAAM,qBAAqB,GAAG,CAAC,CAAgB,KAAI;AACjD,YAAA,MAAM,cAAc,GAAG,CAAC,CAAgB,KAAK,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAChF,YAAA,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;gBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;aACpB;AACH,SAAC,CAAC;AAEF,QAAA,IACE,YAAY;AACZ,YAAA,gCAAgC,CAAC,QAAQ,CACvC,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,CACtD,EACD;YACA,MAAM,KAAK,GAAwB,EAAE,CAAC;AAEtC,YAAA,KAAK,CAAC,OAAO,GAAG,CAAC,CAAgB,KAAI;gBACnC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAC,CAAC;AAEF,YAAA,KAAK,CAAC,SAAS,GAAG,CAAC,CAAgB,KAAI;gBACrC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAC,CAAC;AAEF,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,OAAO,EAAE,CAAC;AACZ,KAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAC5C,CAAC,KAA+C,EAAE,GAAsB,KAAI;QAC1E,MAAM,EACJ,YAAY,GAAG,KAAK,EACpB,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,GAAG,EAAE,EACT,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;AAEV,QAAA,QACE,KAAC,CAAA,aAAA,CAAA,gBAAgB,IACf,GAAG,EAAE,GAAG,EACH,GAAA,SAAe,uBACD,YAAY,EAAA,eAAA,EAChB,YAAY,EAC3B,QAAQ,EAAE,YAAY,GAAG,KAAK,GAAG,QAAQ,EACrC,GAAA,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,EACnD,GAAA,kDAAkD,CAAC,YAAY,CAAC,IAEnE,QAAQ,CACQ,EACnB;AACJ,KAAC,CACF,CAAC;IAEF,qBAAqB,CAAC,WAAW,GAAG,CAAA,aAAA,EAAgB,cAAc,CAAC,gBAAgB,CAAC,CAAA,CAAE,CAAC;AACvF,IAAA,OAAO,qBAAqB,CAAC;AAC/B;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "homepage": "http://onewelcome.github.io/react-lib-components",
3
3
  "name": "@onewelcome/react-lib-components",
4
- "version": "8.5.0",
4
+ "version": "8.7.0",
5
5
  "license": "Apache-2.0",
6
6
  "author": "OneWelcome B.V.",
7
7
  "main": "dist/cjs/src/index.cjs.js",
@@ -45,9 +45,13 @@
45
45
  "storybook": "storybook dev -p 6006"
46
46
  },
47
47
  "peerDependencies": {
48
+ "date-fns": "^4.1.0",
48
49
  "react": ">=16",
49
- "react-dom": ">=16",
50
- "react-day-picker": "^9.1.3"
50
+ "react-day-picker": "^9.4.1",
51
+ "react-dom": ">=16"
52
+ },
53
+ "overrides": {
54
+ "cross-spawn": ">=7.0.5"
51
55
  },
52
56
  "engines": {
53
57
  "node": ">=16"
@@ -65,19 +69,19 @@
65
69
  "@rollup/plugin-node-resolve": "^15.2.3",
66
70
  "@rollup/plugin-terser": "^0.4.4",
67
71
  "@rollup/plugin-typescript": "^11.1.6",
68
- "@storybook/addon-a11y": "^8.1.11",
69
- "@storybook/addon-actions": "^8.1.11",
70
- "@storybook/addon-docs": "^8.1.11",
71
- "@storybook/addon-essentials": "^8.1.11",
72
- "@storybook/addon-interactions": "^8.1.11",
73
- "@storybook/addon-links": "^8.1.11",
74
- "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
75
- "@storybook/blocks": "^8.1.11",
76
- "@storybook/components": "^8.1.11",
77
- "@storybook/manager-api": "^8.1.11",
78
- "@storybook/react": "^8.1.11",
79
- "@storybook/react-webpack5": "^8.1.11",
80
- "@storybook/theming": "^8.1.11",
72
+ "@storybook/addon-a11y": "~8.1.11",
73
+ "@storybook/addon-actions": "~8.1.11",
74
+ "@storybook/addon-docs": "~8.1.11",
75
+ "@storybook/addon-essentials": "~8.1.11",
76
+ "@storybook/addon-interactions": "~8.1.11",
77
+ "@storybook/addon-links": "~8.1.11",
78
+ "@storybook/addon-webpack5-compiler-babel": "~3.0.3",
79
+ "@storybook/blocks": "~8.1.11",
80
+ "@storybook/components": "~8.1.11",
81
+ "@storybook/manager-api": "~8.1.11",
82
+ "@storybook/react": "~8.1.11",
83
+ "@storybook/react-webpack5": "~8.1.11",
84
+ "@storybook/theming": "~8.1.11",
81
85
  "@testing-library/dom": "^10.3.0",
82
86
  "@testing-library/jest-dom": "^6.4.6",
83
87
  "@testing-library/react": "^16.0.0",
@@ -127,7 +131,7 @@
127
131
  "sass": "1.77.6",
128
132
  "sass-loader": "^14.2.1",
129
133
  "size-limit": "^11.1.4",
130
- "storybook": "^8.1.11",
134
+ "storybook": "~8.1.11",
131
135
  "storybook-addon-mock": "^5.0.0",
132
136
  "storybook-addon-pseudo-states": "^3.1.1",
133
137
  "style-loader": "^4.0.0",
@@ -26,7 +26,7 @@ export interface Props extends ComponentPropsWithRef<"button"> {
26
26
  }
27
27
 
28
28
  const BaseButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (
29
- { children, type = "button", className, loading, disabled, ...rest },
29
+ { children, type = "button", className, loading, disabled, hidden, ...rest },
30
30
  ref
31
31
  ) => {
32
32
  const validTypes = ["submit", "button", "reset"];
@@ -36,15 +36,18 @@ const BaseButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> =
36
36
  `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`
37
37
  );
38
38
 
39
+ const buttonClasses = [classes.button];
40
+ loading && buttonClasses.push(classes.loading);
41
+ className && buttonClasses.push(className);
42
+
39
43
  return (
40
44
  <button
41
45
  {...rest}
42
46
  disabled={isDisabled}
43
47
  ref={ref}
44
48
  type={type}
45
- className={`${classes.button} ${loading ? classes.loading : ""} ${
46
- className ? className : ""
47
- }`}
49
+ hidden={hidden}
50
+ className={hidden ? "" : buttonClasses.join(" ")}
48
51
  >
49
52
  {loading ? (
50
53
  <Fragment>
@@ -31,7 +31,7 @@ import { Props as IconButtonProps } from "../Button/IconButton";
31
31
  import { Popover, Props as PopoverProps } from "../Popover/Popover";
32
32
  import { Placement, Offset } from "../../hooks/usePosition";
33
33
  import classes from "./ContextMenu.module.scss";
34
- import { useBodyClick } from "../../hooks/useBodyClick";
34
+ import { useClickOutside } from "../../hooks/useClickOutside";
35
35
  import { Props as ContextMenuItemProps } from "./ContextMenuItem";
36
36
  import { createPortal } from "react-dom";
37
37
  import { useGetDomRoot } from "../../hooks/useGetDomRoot";
@@ -110,19 +110,11 @@ const ContextMenuComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
110
110
  setShouldClick
111
111
  });
112
112
 
113
- useBodyClick(
114
- event => {
115
- return (
116
- showContextMenu &&
117
- anchorEl.current !== event.target &&
118
- anchorEl.current !== (event.target as HTMLElement).parentElement
119
- );
120
- },
121
- () => {
113
+ useClickOutside(anchorEl, () => {
114
+ if (showContextMenu) {
122
115
  setShowContextMenu(false);
123
- },
124
- showContextMenu
125
- );
116
+ }
117
+ }, [showContextMenu]);
126
118
 
127
119
  useFocusAnchorElement(
128
120
  anchorEl,
@@ -45,7 +45,7 @@ exports[`DataGridBody should render renders without crashing 1`] = `
45
45
  aria-controls="consent_menu_Paweł-menu"
46
46
  aria-expanded="false"
47
47
  aria-haspopup="true"
48
- class="button icon-button text default button-m"
48
+ class="button icon-button text default button-m"
49
49
  id="consent_menu_Paweł"
50
50
  tabindex="0"
51
51
  title="Actions for Paweł"
@@ -109,7 +109,7 @@ exports[`DataGridBody should render renders without crashing 1`] = `
109
109
  aria-controls="consent_menu_Michał-menu"
110
110
  aria-expanded="false"
111
111
  aria-haspopup="true"
112
- class="button icon-button text default button-m"
112
+ class="button icon-button text default button-m"
113
113
  id="consent_menu_Michał"
114
114
  tabindex="0"
115
115
  title="Actions for Michał"
@@ -173,7 +173,7 @@ exports[`DataGridBody should render renders without crashing 1`] = `
173
173
  aria-controls="consent_menu_Daniel-menu"
174
174
  aria-expanded="false"
175
175
  aria-haspopup="true"
176
- class="button icon-button text default button-m"
176
+ class="button icon-button text default button-m"
177
177
  id="consent_menu_Daniel"
178
178
  tabindex="0"
179
179
  title="Actions for Daniel"
@@ -237,7 +237,7 @@ exports[`DataGridBody should render renders without crashing 1`] = `
237
237
  aria-controls="consent_menu_Jasha-menu"
238
238
  aria-expanded="false"
239
239
  aria-haspopup="true"
240
- class="button icon-button text default button-m"
240
+ class="button icon-button text default button-m"
241
241
  id="consent_menu_Jasha"
242
242
  tabindex="0"
243
243
  title="Actions for Jasha"
@@ -0,0 +1,65 @@
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, { Fragment, useRef, useState } from "react";
18
+ import { DataGridFilterTag } from "./DataGridFilterTag";
19
+ import { createPortal } from "react-dom";
20
+ import { DateTimePicker } from "./DateTimePicker/DateTimePicker";
21
+ import { useGetDomRoot } from "../../../hooks/useGetDomRoot";
22
+ import { DateTimeFilter } from "./DataGridFilters.interfaces";
23
+
24
+ type Props = {
25
+ domRoot?: HTMLElement;
26
+ dateFilterValue?: DateTimeFilter;
27
+ onDateFilterValueChange?: (dateTimeFilter: DateTimeFilter) => void;
28
+ };
29
+
30
+ export const DataGridDateFilter = ({
31
+ domRoot,
32
+ dateFilterValue,
33
+ onDateFilterValueChange
34
+ }: Props) => {
35
+ const triggerRef = useRef<HTMLButtonElement>(null);
36
+ const popoverRef = useRef<HTMLDivElement>(null);
37
+ const wrappingDivRef = useRef<HTMLDivElement>(null);
38
+ const { root } = useGetDomRoot(domRoot, wrappingDivRef);
39
+ const [isOpen, setIsOpen] = useState(false);
40
+ const [tagCaption, setTagCaption] = useState("Last 30 seconds");
41
+
42
+ return (
43
+ <Fragment>
44
+ <DataGridFilterTag
45
+ triggerRef={triggerRef}
46
+ ref={wrappingDivRef}
47
+ dateTagCaption={tagCaption}
48
+ mode={"ADD_DATE"}
49
+ onFilterOpen={() => setIsOpen(true)}
50
+ />
51
+ {createPortal(
52
+ <DateTimePicker
53
+ popoverRef={popoverRef}
54
+ onTagCaptionChange={setTagCaption}
55
+ anchorRef={wrappingDivRef}
56
+ isOpen={isOpen}
57
+ setPickerOpen={setIsOpen}
58
+ dateFilterValue={dateFilterValue}
59
+ onDateFilterValueChange={onDateFilterValueChange}
60
+ />,
61
+ root
62
+ )}
63
+ </Fragment>
64
+ );
65
+ };
@@ -26,12 +26,13 @@ export interface DataGridFilterTagProps extends ComponentPropsWithRef<"div"> {
26
26
  triggerRef: React.Ref<HTMLButtonElement>;
27
27
  filter?: Filter;
28
28
  mode: FilterEditorMode;
29
- onFilterRemove: () => void;
29
+ onFilterRemove?: () => void;
30
30
  onFilterOpen: () => void;
31
31
  translations?: TagTranslations;
32
+ dateTagCaption?: string;
32
33
  }
33
34
 
34
- const EditTagContent = ({ filter }: { filter: Filter }) => {
35
+ const EditTagContent = ({ filter, or, other }: { filter: Filter; or: string; other: string }) => {
35
36
  const { column, operator, value } = filter;
36
37
 
37
38
  return (
@@ -39,7 +40,11 @@ const EditTagContent = ({ filter }: { filter: Filter }) => {
39
40
  {column} {operator} {value.length > 0 && <b>{value[0]}</b>}
40
41
  {value.length >= 2 && (
41
42
  <>
42
- or <b> {value.length - 1} other</b>
43
+ {" "}
44
+ {or}{" "}
45
+ <b>
46
+ {value.length - 1} {other}
47
+ </b>
43
48
  </>
44
49
  )}
45
50
  </Fragment>
@@ -57,14 +62,21 @@ export const DataGridFilterTagComponent: ForwardRefRenderFunction<
57
62
  onFilterRemove,
58
63
  onFilterOpen,
59
64
  translations,
65
+ dateTagCaption,
60
66
  customEditTagContent,
61
67
  ...rest
62
68
  }: DataGridFilterTagProps,
63
69
  ref
64
70
  ) => {
65
- const { addButtonCaption = "Add filter" } = translations || {};
71
+ const {
72
+ addButtonCaption = "Add filter",
73
+ or = "or",
74
+ other = "other",
75
+ dateIs = "Date is"
76
+ } = translations || {};
66
77
  const shouldRenderAddTag = mode === "ADD";
67
78
  const shouldRenderEditTag = mode === "EDIT" && filter;
79
+ const shouldRenderAddDateTag = mode === "ADD_DATE";
68
80
 
69
81
  return (
70
82
  <div {...rest} ref={ref} className={classes["filter-wrapper"]}>
@@ -87,10 +99,18 @@ export const DataGridFilterTagComponent: ForwardRefRenderFunction<
87
99
  {customEditTagContent ? (
88
100
  React.cloneElement(customEditTagContent, { filter })
89
101
  ) : (
90
- <EditTagContent filter={filter} />
102
+ <EditTagContent filter={filter} or={or} other={other} />
91
103
  )}
92
104
  </Typography>
93
105
  )}
106
+ {shouldRenderAddDateTag && (
107
+ <Fragment>
108
+ <Icon icon={Icons.Calendar} />
109
+ <Typography variant="body" className={classes["caption"]}>
110
+ {dateIs} <b>{dateTagCaption}</b>
111
+ </Typography>
112
+ </Fragment>
113
+ )}
94
114
  </button>
95
115
  {shouldRenderEditTag && (
96
116
  <RemoveButton className={classes["remove-button"]} onRemove={onFilterRemove} />
@@ -42,7 +42,7 @@ export type FiltersState = {
42
42
  filters: Filter[];
43
43
  };
44
44
 
45
- export type FilterEditorMode = "ADD" | "EDIT";
45
+ export type FilterEditorMode = "ADD" | "EDIT" | "ADD_DATE";
46
46
 
47
47
  export enum DefaultOperators {
48
48
  is = "is",
@@ -72,6 +72,9 @@ export interface PopoverTranslations {
72
72
 
73
73
  export interface TagTranslations {
74
74
  addButtonCaption?: string;
75
+ or?: string;
76
+ other?: string;
77
+ dateIs?: string;
75
78
  }
76
79
 
77
80
  export interface ToolbarTranslations {
@@ -88,3 +91,17 @@ export interface KeyValuePair<TKey = string, TValue = string> {
88
91
  key: TKey;
89
92
  value: TValue;
90
93
  }
94
+
95
+ export type DateTimeFilterType =
96
+ | "THIRTY_SECONDS"
97
+ | "ONE_MINUTE"
98
+ | "FIVE_MINUTES"
99
+ | "ONE_HOUR"
100
+ | "TWENTY_FOUR_HOURS"
101
+ | "CUSTOM";
102
+
103
+ export interface DateTimeFilter {
104
+ fromDate: string;
105
+ toDate: string;
106
+ type: DateTimeFilterType;
107
+ }
@@ -17,13 +17,21 @@
17
17
  import React, { Fragment } from "react";
18
18
  import { DataGridFilter } from "./DataGridFilter";
19
19
  import classes from "./DataGridToolbar.module.scss";
20
- import { DataGridColumnMetadata, Filter, FiltersTranslations } from "./DataGridFilters.interfaces";
20
+ import {
21
+ DataGridColumnMetadata,
22
+ DateTimeFilter,
23
+ Filter,
24
+ FiltersTranslations
25
+ } from "./DataGridFilters.interfaces";
21
26
  import { Typography } from "../../Typography/Typography";
22
27
  import { useFiltersReducer } from "./useFiltersReducer";
28
+ import { DataGridDateFilter } from "./DataGridDateFilter";
23
29
 
24
30
  export interface DataGridToolbarProps {
25
- columnsMetadata: DataGridColumnMetadata[];
31
+ columnsMetadata?: DataGridColumnMetadata[];
26
32
  customEditTagContent?: React.ReactElement;
33
+ dateFilterValue?: DateTimeFilter;
34
+ onDateFilterValueChange?: (dateTimeFilter: DateTimeFilter) => void;
27
35
  filterValues?: Filter[];
28
36
  translations?: FiltersTranslations;
29
37
  onFilterAdd?: (filter: Filter) => void;
@@ -39,6 +47,8 @@ export const DataGridToolbar = ({
39
47
  onFilterAdd,
40
48
  onFilterEdit,
41
49
  onFilterDelete,
50
+ dateFilterValue,
51
+ onDateFilterValueChange,
42
52
  onFiltersClear,
43
53
  customEditTagContent
44
54
  }: DataGridToolbarProps) => {
@@ -47,38 +57,41 @@ export const DataGridToolbar = ({
47
57
  const { clearButtonCaption = "Clear all filters" } = translations?.toolbar || {};
48
58
  return (
49
59
  <Fragment>
50
- {state.filters.map(filter => (
51
- <DataGridFilter
52
- mode="EDIT"
53
- key={filter.id}
54
- filter={filter}
55
- columnsMetadata={columnsMetadata}
56
- onFilterEdit={filter => {
57
- editFilter(filter);
58
- onFilterEdit && onFilterEdit(filter);
59
- }}
60
- onFilterDelete={id => {
61
- deleteFilter(id);
62
- onFilterDelete && onFilterDelete(id);
63
- }}
64
- tagTranslations={translations?.tag}
65
- popoverTranslations={translations?.popover}
66
- customEditTagContent={customEditTagContent}
67
- />
68
- ))}
60
+ {columnsMetadata &&
61
+ state.filters.map(filter => (
62
+ <DataGridFilter
63
+ mode="EDIT"
64
+ key={filter.id}
65
+ filter={filter}
66
+ columnsMetadata={columnsMetadata}
67
+ onFilterEdit={filter => {
68
+ editFilter(filter);
69
+ onFilterEdit && onFilterEdit(filter);
70
+ }}
71
+ onFilterDelete={id => {
72
+ deleteFilter(id);
73
+ onFilterDelete && onFilterDelete(id);
74
+ }}
75
+ tagTranslations={translations?.tag}
76
+ popoverTranslations={translations?.popover}
77
+ customEditTagContent={customEditTagContent}
78
+ />
79
+ ))}
69
80
  <div className={classes["actions-wrapper"]}>
70
- <DataGridFilter
71
- mode="ADD"
72
- customEditTagContent={customEditTagContent}
73
- columnsMetadata={columnsMetadata}
74
- onFilterAdd={filter => {
75
- addFilter(filter);
76
- onFilterAdd && onFilterAdd(filter);
77
- }}
78
- tagTranslations={translations?.tag}
79
- popoverTranslations={translations?.popover}
80
- />
81
- {state.filters.length >= 1 && (
81
+ {columnsMetadata && (
82
+ <DataGridFilter
83
+ mode="ADD"
84
+ customEditTagContent={customEditTagContent}
85
+ columnsMetadata={columnsMetadata}
86
+ onFilterAdd={filter => {
87
+ addFilter(filter);
88
+ onFilterAdd && onFilterAdd(filter);
89
+ }}
90
+ tagTranslations={translations?.tag}
91
+ popoverTranslations={translations?.popover}
92
+ />
93
+ )}
94
+ {columnsMetadata && state.filters.length >= 1 && (
82
95
  <button
83
96
  type="button"
84
97
  className={classes["clear-button"]}
@@ -92,6 +105,13 @@ export const DataGridToolbar = ({
92
105
  </Typography>
93
106
  </button>
94
107
  )}
108
+
109
+ {dateFilterValue && (
110
+ <DataGridDateFilter
111
+ dateFilterValue={dateFilterValue}
112
+ onDateFilterValueChange={onDateFilterValueChange}
113
+ />
114
+ )}
95
115
  </div>
96
116
  </Fragment>
97
117
  );