@addev-be/ui 0.4.2 → 0.4.4

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 (301) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -1
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-up-z-a.svg +1 -1
  4. package/assets/icons/check.svg +1 -1
  5. package/assets/icons/circle-check.svg +1 -1
  6. package/assets/icons/down.svg +1 -1
  7. package/assets/icons/filter-full.svg +1 -1
  8. package/assets/icons/filter.svg +1 -1
  9. package/assets/icons/hashtag.svg +1 -1
  10. package/assets/icons/image-slash.svg +1 -1
  11. package/assets/icons/left.svg +1 -1
  12. package/assets/icons/magnifier.svg +1 -1
  13. package/assets/icons/phone.svg +1 -1
  14. package/assets/icons/right.svg +1 -1
  15. package/assets/icons/sort-calendar-ascending.svg +5 -5
  16. package/assets/icons/spinner-third.svg +1 -1
  17. package/assets/icons/table-columns.svg +1 -1
  18. package/assets/icons/table-footer-slash.svg +4 -4
  19. package/assets/icons/table-footer.svg +3 -3
  20. package/assets/icons/up.svg +1 -1
  21. package/assets/icons/user-tie.svg +1 -1
  22. package/assets/icons/x-bar.svg +3 -3
  23. package/package.json +1 -1
  24. package/src/Icons.tsx +116 -116
  25. package/src/components/auth/LoginForm.tsx +83 -83
  26. package/src/components/auth/LoginPage.tsx +32 -32
  27. package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
  28. package/src/components/auth/PasswordResetForm.tsx +112 -112
  29. package/src/components/auth/index.ts +4 -4
  30. package/src/components/auth/styles.ts +14 -14
  31. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  32. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  33. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  34. package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -267
  35. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  36. package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
  37. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  38. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  39. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  40. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  41. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -43
  42. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +120 -120
  43. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  44. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +360 -360
  45. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +96 -96
  46. package/src/components/data/DataGrid/DataGridFooter.tsx +42 -42
  47. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
  48. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +132 -132
  49. package/src/components/data/DataGrid/FilterModalContent/index.tsx +136 -136
  50. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  51. package/src/components/data/DataGrid/VirtualScroller.tsx +47 -47
  52. package/src/components/data/DataGrid/helpers/columns.tsx +295 -295
  53. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  54. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  55. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  56. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +320 -320
  57. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +175 -175
  58. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  59. package/src/components/data/DataGrid/index.tsx +60 -60
  60. package/src/components/data/DataGrid/styles.ts +323 -323
  61. package/src/components/data/DataGrid/types.ts +276 -276
  62. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +277 -277
  63. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  64. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  65. package/src/components/data/SqlRequestDataGrid/index.tsx +347 -347
  66. package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
  67. package/src/components/data/index.ts +8 -8
  68. package/src/components/forms/Button.tsx +99 -99
  69. package/src/components/forms/IconButton.tsx +56 -56
  70. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  71. package/src/components/forms/Select.tsx +40 -40
  72. package/src/components/forms/VerticalLabel.tsx +20 -20
  73. package/src/components/forms/index.ts +5 -5
  74. package/src/components/forms/styles.ts +31 -31
  75. package/src/components/index.ts +6 -6
  76. package/src/components/layout/Dropdown/index.tsx +80 -80
  77. package/src/components/layout/Dropdown/styles.ts +45 -45
  78. package/src/components/layout/Loading/index.tsx +29 -29
  79. package/src/components/layout/Loading/styles.ts +29 -29
  80. package/src/components/layout/Modal/index.tsx +51 -51
  81. package/src/components/layout/Modal/styles.ts +110 -110
  82. package/src/components/layout/index.ts +3 -3
  83. package/src/components/search/HighlightedText.tsx +30 -30
  84. package/src/components/search/QuickSearchBar.tsx +80 -80
  85. package/src/components/search/QuickSearchResults.tsx +86 -86
  86. package/src/components/search/index.ts +5 -5
  87. package/src/components/search/styles.ts +79 -79
  88. package/src/components/search/types.ts +26 -26
  89. package/src/components/ui/Card/index.tsx +14 -14
  90. package/src/components/ui/Card/styles.ts +35 -35
  91. package/src/components/ui/ContextMenu/index.tsx +79 -79
  92. package/src/components/ui/ContextMenu/styles.ts +119 -119
  93. package/src/components/ui/Message/index.tsx +57 -57
  94. package/src/components/ui/Message/styles.ts +40 -40
  95. package/src/components/ui/index.ts +3 -3
  96. package/src/config/index.ts +14 -14
  97. package/src/helpers/dates.ts +9 -9
  98. package/src/helpers/getScrollbarSize.ts +14 -14
  99. package/src/helpers/index.ts +2 -2
  100. package/src/helpers/numbers.ts +26 -26
  101. package/src/hooks/index.ts +2 -2
  102. package/src/hooks/useElementSize.ts +24 -24
  103. package/src/hooks/useWindowSize.ts +20 -20
  104. package/src/index.ts +8 -8
  105. package/src/providers/AuthenticationProvider/index.tsx +199 -199
  106. package/src/providers/LoadingProvider/index.tsx +47 -47
  107. package/src/providers/PortalsProvider/index.tsx +54 -54
  108. package/src/providers/PortalsProvider/styles.ts +27 -27
  109. package/src/providers/SettingsProvider/index.tsx +70 -70
  110. package/src/providers/ThemeProvider/ThemeProvider.ts +63 -63
  111. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  112. package/src/providers/ThemeProvider/index.ts +4 -4
  113. package/src/providers/ThemeProvider/types.ts +123 -123
  114. package/src/providers/UiProviders/index.tsx +65 -65
  115. package/src/providers/UiProviders/styles.ts +10 -10
  116. package/src/providers/hooks.ts +12 -12
  117. package/src/providers/index.ts +6 -6
  118. package/src/services/HttpService.ts +80 -80
  119. package/src/services/WebSocketService.ts +137 -137
  120. package/src/services/advancedRequests.ts +101 -101
  121. package/src/services/base.ts +31 -31
  122. package/src/services/globalSearch.ts +27 -27
  123. package/src/services/hooks.ts +40 -40
  124. package/src/services/index.ts +9 -9
  125. package/src/services/requests/auth.ts +44 -44
  126. package/src/services/sqlRequests.ts +110 -110
  127. package/src/services/types/auth.ts +131 -131
  128. package/src/services/types/base.ts +10 -10
  129. package/src/services/types/users.ts +20 -20
  130. package/src/styles/animations.scss +30 -30
  131. package/src/styles/index.scss +42 -42
  132. package/src/typings.d.ts +6 -6
  133. package/dist/Icons.d.ts +0 -43
  134. package/dist/Icons.js +0 -116
  135. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  136. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
  137. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  138. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
  139. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  140. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  141. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  142. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  143. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  144. package/dist/components/data/AdvancedRequestDataGrid/types.js +0 -2
  145. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -10
  146. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -173
  147. package/dist/components/data/DataGrid/DataGridCell.d.ts +0 -2
  148. package/dist/components/data/DataGrid/DataGridCell.js +0 -59
  149. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +0 -2
  150. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +0 -24
  151. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.d.ts +0 -6
  152. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +0 -38
  153. package/dist/components/data/DataGrid/DataGridColumnsModal/index.d.ts +0 -15
  154. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +0 -111
  155. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +0 -22
  156. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +0 -54
  157. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  158. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
  159. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +0 -9
  160. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +0 -52
  161. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +0 -9
  162. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +0 -220
  163. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +0 -9
  164. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +0 -21
  165. package/dist/components/data/DataGrid/DataGridFooter.d.ts +0 -4
  166. package/dist/components/data/DataGrid/DataGridFooter.js +0 -44
  167. package/dist/components/data/DataGrid/DataGridHeader.d.ts +0 -4
  168. package/dist/components/data/DataGrid/DataGridHeader.js +0 -119
  169. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +0 -2
  170. package/dist/components/data/DataGrid/DataGridHeaderCell.js +0 -84
  171. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +0 -7
  172. package/dist/components/data/DataGrid/FilterModalContent/index.js +0 -108
  173. package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +0 -3
  174. package/dist/components/data/DataGrid/FilterModalContent/styles.js +0 -15
  175. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +0 -13
  176. package/dist/components/data/DataGrid/FilterValuesScroller.js +0 -73
  177. package/dist/components/data/DataGrid/VirtualScroller.d.ts +0 -11
  178. package/dist/components/data/DataGrid/VirtualScroller.js +0 -41
  179. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  180. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  181. package/dist/components/data/DataGrid/helpers/columns.d.ts +0 -12
  182. package/dist/components/data/DataGrid/helpers/columns.js +0 -162
  183. package/dist/components/data/DataGrid/helpers/filters.d.ts +0 -17
  184. package/dist/components/data/DataGrid/helpers/filters.js +0 -254
  185. package/dist/components/data/DataGrid/helpers/index.d.ts +0 -2
  186. package/dist/components/data/DataGrid/helpers/index.js +0 -18
  187. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  188. package/dist/components/data/DataGrid/helpers.js +0 -436
  189. package/dist/components/data/DataGrid/hooks/index.d.ts +0 -7
  190. package/dist/components/data/DataGrid/hooks/index.js +0 -34
  191. package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +0 -2
  192. package/dist/components/data/DataGrid/hooks/useDataGrid.js +0 -246
  193. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +0 -4
  194. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -171
  195. package/dist/components/data/DataGrid/hooks/useDataGridSettings.d.ts +0 -16
  196. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -43
  197. package/dist/components/data/DataGrid/index.d.ts +0 -4
  198. package/dist/components/data/DataGrid/index.js +0 -108
  199. package/dist/components/data/DataGrid/styles.d.ts +0 -64
  200. package/dist/components/data/DataGrid/styles.js +0 -134
  201. package/dist/components/data/DataGrid/types.d.ts +0 -162
  202. package/dist/components/data/DataGrid/types.js +0 -34
  203. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +0 -16
  204. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +0 -125
  205. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +0 -2
  206. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +0 -18
  207. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +0 -3
  208. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +0 -18
  209. package/dist/components/data/SqlRequestDataGrid/index.d.ts +0 -2
  210. package/dist/components/data/SqlRequestDataGrid/index.js +0 -296
  211. package/dist/components/data/SqlRequestDataGrid/types.d.ts +0 -21
  212. package/dist/components/data/SqlRequestDataGrid/types.js +0 -2
  213. package/dist/components/data/index.d.ts +0 -8
  214. package/dist/components/data/index.js +0 -24
  215. package/dist/components/forms/Button.d.ts +0 -10
  216. package/dist/components/forms/Button.js +0 -70
  217. package/dist/components/forms/IconButton.d.ts +0 -7
  218. package/dist/components/forms/IconButton.js +0 -64
  219. package/dist/components/forms/IndeterminateCheckbox.d.ts +0 -8
  220. package/dist/components/forms/IndeterminateCheckbox.js +0 -41
  221. package/dist/components/forms/Select.d.ts +0 -10
  222. package/dist/components/forms/Select.js +0 -49
  223. package/dist/components/forms/index.d.ts +0 -5
  224. package/dist/components/forms/index.js +0 -23
  225. package/dist/components/forms/styles.d.ts +0 -2
  226. package/dist/components/forms/styles.js +0 -34
  227. package/dist/components/index.d.ts +0 -3
  228. package/dist/components/index.js +0 -19
  229. package/dist/components/layout/Dropdown/index.d.ts +0 -11
  230. package/dist/components/layout/Dropdown/index.js +0 -85
  231. package/dist/components/layout/Dropdown/styles.d.ts +0 -11
  232. package/dist/components/layout/Dropdown/styles.js +0 -45
  233. package/dist/components/layout/Loading/index.d.ts +0 -6
  234. package/dist/components/layout/Loading/index.js +0 -42
  235. package/dist/components/layout/Loading/styles.d.ts +0 -6
  236. package/dist/components/layout/Loading/styles.js +0 -18
  237. package/dist/components/layout/Modal/index.d.ts +0 -16
  238. package/dist/components/layout/Modal/index.js +0 -67
  239. package/dist/components/layout/Modal/styles.d.ts +0 -32
  240. package/dist/components/layout/Modal/styles.js +0 -52
  241. package/dist/components/layout/index.d.ts +0 -3
  242. package/dist/components/layout/index.js +0 -19
  243. package/dist/components/ui/ContextMenu/index.d.ts +0 -11
  244. package/dist/components/ui/ContextMenu/index.js +0 -58
  245. package/dist/components/ui/ContextMenu/styles.d.ts +0 -18
  246. package/dist/components/ui/ContextMenu/styles.js +0 -56
  247. package/dist/config/index.d.ts +0 -10
  248. package/dist/config/index.js +0 -2
  249. package/dist/config/types.d.ts +0 -11
  250. package/dist/config/types.js +0 -2
  251. package/dist/helpers/dates.d.ts +0 -2
  252. package/dist/helpers/dates.js +0 -13
  253. package/dist/helpers/getScrollbarSize.d.ts +0 -1
  254. package/dist/helpers/getScrollbarSize.js +0 -17
  255. package/dist/helpers/numbers.d.ts +0 -3
  256. package/dist/helpers/numbers.js +0 -31
  257. package/dist/hooks/index.d.ts +0 -2
  258. package/dist/hooks/index.js +0 -18
  259. package/dist/hooks/useElementSize.d.ts +0 -4
  260. package/dist/hooks/useElementSize.js +0 -23
  261. package/dist/hooks/useWindowSize.d.ts +0 -4
  262. package/dist/hooks/useWindowSize.js +0 -19
  263. package/dist/index.d.ts +0 -5
  264. package/dist/index.js +0 -21
  265. package/dist/providers/PortalsProvider/index.d.ts +0 -10
  266. package/dist/providers/PortalsProvider/index.js +0 -46
  267. package/dist/providers/PortalsProvider/styles.d.ts +0 -9
  268. package/dist/providers/PortalsProvider/styles.js +0 -21
  269. package/dist/providers/SettingsProvider/index.d.ts +0 -8
  270. package/dist/providers/SettingsProvider/index.js +0 -54
  271. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +0 -7
  272. package/dist/providers/ThemeProvider/ThemeProvider.js +0 -51
  273. package/dist/providers/ThemeProvider/defaultTheme.d.ts +0 -2
  274. package/dist/providers/ThemeProvider/defaultTheme.js +0 -417
  275. package/dist/providers/ThemeProvider/index.d.ts +0 -2
  276. package/dist/providers/ThemeProvider/index.js +0 -5
  277. package/dist/providers/ThemeProvider/types.d.ts +0 -24
  278. package/dist/providers/ThemeProvider/types.js +0 -2
  279. package/dist/providers/UiProviders/index.d.ts +0 -12
  280. package/dist/providers/UiProviders/index.js +0 -62
  281. package/dist/providers/UiProviders/styles.d.ts +0 -3
  282. package/dist/providers/UiProviders/styles.js +0 -13
  283. package/dist/providers/hooks.d.ts +0 -3
  284. package/dist/providers/hooks.js +0 -13
  285. package/dist/providers/index.d.ts +0 -4
  286. package/dist/providers/index.js +0 -20
  287. package/dist/services/HttpService.d.ts +0 -10
  288. package/dist/services/HttpService.js +0 -117
  289. package/dist/services/WebSocketService.d.ts +0 -24
  290. package/dist/services/WebSocketService.js +0 -136
  291. package/dist/services/advancedRequests.d.ts +0 -41
  292. package/dist/services/advancedRequests.js +0 -13
  293. package/dist/services/base.d.ts +0 -19
  294. package/dist/services/base.js +0 -10
  295. package/dist/services/hooks.d.ts +0 -2
  296. package/dist/services/hooks.js +0 -18
  297. package/dist/services/index.d.ts +0 -2
  298. package/dist/services/index.js +0 -18
  299. package/dist/services/sqlRequests.d.ts +0 -45
  300. package/dist/services/sqlRequests.js +0 -11
  301. package/tsconfig.tsbuildinfo +0 -1
@@ -1,276 +1,276 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import * as t from 'io-ts';
4
-
5
- import {
6
- CSSProperties,
7
- Context,
8
- Dispatch,
9
- FC,
10
- MouseEvent,
11
- MouseEventHandler,
12
- ReactNode,
13
- SetStateAction,
14
- } from 'react';
15
-
16
- import { SettingsContextProps } from '../../../providers/SettingsProvider';
17
- import { ThemeColor } from '../../../providers/ThemeProvider/types';
18
-
19
- export type DataGridCellFC = FC<{
20
- onDoubleClick?: MouseEventHandler;
21
- style?: CSSProperties;
22
- }>;
23
-
24
- export type DataGridFooterPredefinedFunction =
25
- | 'average'
26
- | 'avg'
27
- | 'count'
28
- | 'max'
29
- | 'min'
30
- | 'sum';
31
- export type DataGridFooterFunction<R> = (
32
- allRows: R[],
33
- filteredRows: R[],
34
- selectedRows: R[]
35
- ) => ReactNode;
36
-
37
- export type DataGridColumn<R> = {
38
- component?: DataGridCellFC;
39
- editable?: boolean;
40
- excelFormatter?: (value: any) => string;
41
- excelBackgroundColor?: (value: any) => string;
42
- excelValue?: (value: any) => string;
43
- filter?: DataGridFilter;
44
- footer?:
45
- | DataGridFooterFunction<R>
46
- | Record<string, DataGridFooterFunction<R> | null>;
47
- getter?: (row: R) => string | number;
48
- name: string;
49
- order?: number;
50
- propertyName?: keyof R;
51
- render?: (row: R, column: DataGridColumn<R>) => ReactNode | string;
52
- resizable?: boolean;
53
- sortGetter?: (row: R) => string | number;
54
- type?: 'text' | 'number' | 'date';
55
- width?: number;
56
- settingsContext?: Context<SettingsContextProps>;
57
- };
58
-
59
- export type DataGridColumns<R> = Record<string, DataGridColumn<R>>;
60
-
61
- export type DataGridFilters = Record<
62
- string,
63
- DataGridFilter<DataGridFilterType>
64
- >;
65
-
66
- export type DataGridProps<R> = {
67
- name?: string;
68
- className?: string;
69
- rows: R[];
70
- columns: DataGridColumns<R>;
71
- rowKey: keyof R | ((row: R) => string);
72
- selectable?: boolean;
73
- editable?: boolean;
74
- onRowDoubleClick?: (row: R, e: MouseEvent) => void;
75
- onSelectionChange?: (keys: string[]) => void;
76
- getAllIds?: () => Promise<string[]>;
77
- onFiltersChanged?: (filters: DataGridFilters) => void;
78
- onSortsChanged?: (sorts: Record<string, DataGridSort>) => void;
79
- onVisibleRowsChange?: (startIndex: number, length: number) => void;
80
- onCellEdited?: (row: R, columnKey: string, value: any) => void;
81
- rowClassNameGetter?: (row: R | null) => {
82
- className?: string;
83
- style?: CSSProperties;
84
- };
85
- headerRowHeight?: number;
86
- rowHeight?: number;
87
- filter?: boolean;
88
- sort?: boolean;
89
- initialSorts?: Record<string, DataGridSort>;
90
- initialFooters?: Record<string, string>;
91
- onFootersChanged?: (footers: Record<string, string>) => void;
92
- filterValuesLoader?: (
93
- columnKey: string
94
- ) => Promise<(string | number | null)[]>;
95
- // copyTableHandler?: (
96
- // includeHeaders?: boolean,
97
- // includeFooters?: boolean
98
- // ) => Promise<void>;
99
- loadCopyRows?: () => Promise<R[]>;
100
- refresh?: () => void;
101
- headerColor?: ThemeColor;
102
- };
103
-
104
- export type DataGridContextProps<R> = DataGridProps<R> & {
105
- editingCell?: [number, number];
106
- setEditingCell: Dispatch<SetStateAction<[number, number]>>;
107
- sortedRows: R[];
108
- selectedRows: R[];
109
- selectedKeys: string[];
110
- setSelectedKeys: (selection: string[]) => void;
111
- sorts?: Record<string, DataGridSort>;
112
- setSorts: (sorts: Record<string, DataGridSort>) => void;
113
- filters?: DataGridFilters;
114
- setFilters: Dispatch<SetStateAction<DataGridFilters>>;
115
- footers?: Record<string, string>;
116
- setFooters: Dispatch<SetStateAction<Record<string, string>>>;
117
- footerFunctions?: Record<string, DataGridFooterFunction<R>>;
118
- visibleColumns: DataGridColumnKeyValuePair<R>[];
119
- copyTable: (
120
- includeHeaders?: boolean,
121
- includeFooters?: boolean
122
- ) => Promise<void>;
123
- setColumnWidth: (key: string, width: number) => void;
124
- saveSettings: (newSettings?: DataGridSettings) => void;
125
- settings: DataGridSettings;
126
- setSettings: Dispatch<SetStateAction<DataGridSettings>>;
127
- visibleRows: R[];
128
- scrollableRef: React.RefObject<HTMLDivElement>;
129
- onScroll: (e: React.UIEvent<HTMLDivElement>) => void;
130
- index: number;
131
- length: number;
132
- rowKeyGetter: (row: R) => string;
133
- gridTemplateColumns: string;
134
- toggleSelection: (key: string) => void;
135
- };
136
-
137
- export type DataGridContext<R> = Context<DataGridContextProps<R>>;
138
-
139
- export const dataGridSettingCodec = t.partial(
140
- {
141
- width: t.number,
142
- order: t.number,
143
- },
144
- 'DataGridSetting'
145
- );
146
- export const dataGridSettingsCodec = t.record(
147
- t.string,
148
- dataGridSettingCodec,
149
- 'DataGridSettings'
150
- );
151
- export const dataGridSettingsByNameCodec = t.record(
152
- t.string,
153
- dataGridSettingsCodec,
154
- 'DataGridSettingsByName'
155
- );
156
-
157
- export type DataGridSetting = t.TypeOf<typeof dataGridSettingCodec>;
158
- export type DataGridSettings = t.TypeOf<typeof dataGridSettingsCodec>;
159
- export type DataGridSettingsByName = t.TypeOf<
160
- typeof dataGridSettingsByNameCodec
161
- >;
162
- export type DataGridSettingsTuple = [string, DataGridSetting];
163
- export type DataGridSettingsArray = DataGridSettingsTuple[];
164
- export type DataGridColumnKeyValuePair<R> = [string, DataGridColumn<R>];
165
-
166
- export type DataGridCellProps<R> = {
167
- row: R;
168
- rowIndex: number;
169
- columnKey: string;
170
- columnIndex: number;
171
- column: DataGridColumn<R>;
172
- context: DataGridContext<R>;
173
- className?: string;
174
- style?: CSSProperties;
175
- };
176
-
177
- export type DataGridHeaderCellProps<R> = {
178
- columnKey: string;
179
- columnIndex: number;
180
- column: DataGridColumn<R>;
181
- context: DataGridContext<R>;
182
- onFilterButtonClicked?: (columnKey: string) => void;
183
- isFilterOpen?: boolean;
184
- };
185
-
186
- export type DataGridSort = 'asc' | 'desc';
187
-
188
- export type DataGridFilterPredicate<T> = (valueToVerify: T) => boolean;
189
- export type DataGridFilterPredicateBuilder<T> = (
190
- ...filterValues: T[]
191
- ) => DataGridFilterPredicate<T>;
192
-
193
- export type DataGridFilterOperators<K extends string, T> = {
194
- [key in K]: DataGridFilterPredicateBuilder<T>;
195
- };
196
-
197
- export type DataGridFilterPredicates = {
198
- date: DataGridFilterOperators<
199
- 'before' | 'after' | 'equals' | 'notEquals' | 'inRange' | 'inArray',
200
- string
201
- >;
202
- text: DataGridFilterOperators<
203
- | 'contains'
204
- | 'notContains'
205
- | 'equals'
206
- | 'notEquals'
207
- | 'startsWith'
208
- | 'endsWith'
209
- | 'inArray',
210
- string
211
- >;
212
- number: DataGridFilterOperators<
213
- | 'equals'
214
- | 'notEquals'
215
- | 'lessThan'
216
- | 'lessThanOrEqual'
217
- | 'greaterThan'
218
- | 'greaterThanOrEqual'
219
- | 'inRange'
220
- | 'inArray',
221
- number
222
- >;
223
- };
224
-
225
- export type DataGridFilterType = keyof DataGridFilterPredicates;
226
- export type DataGridFilterDataType<T extends DataGridFilterType> =
227
- DataGridFilterPredicates[T] extends DataGridFilterOperators<string, infer U>
228
- ? U
229
- : never;
230
-
231
- export type DataGridFilterGetter<T extends DataGridFilterType> = (
232
- value: any
233
- ) => DataGridFilterDataType<T> | null;
234
- export type DataGridFilterRenderer = (value: any) => ReactNode;
235
- export type DataGridFilterFormatter = (value: any) => string;
236
-
237
- export type DataGridFilterOperator<T extends DataGridFilterType> =
238
- DataGridFilterPredicates[T] extends DataGridFilterOperators<infer K, any>
239
- ? K
240
- : never;
241
-
242
- export type DataGridFilter<T extends string = DataGridFilterType> =
243
- T extends DataGridFilterType
244
- ? {
245
- type: T;
246
- operator: DataGridFilterOperator<T>;
247
- getter: DataGridFilterGetter<T>;
248
- renderer?: DataGridFilterRenderer;
249
- formatter?: DataGridFilterFormatter;
250
- values: (DataGridFilterDataType<T> | null)[];
251
- }
252
- : never;
253
-
254
- export type DataGridFilterGroup = {
255
- name: string;
256
- displayValue: DataGridFilterValue;
257
- values?: DataGridFilterValue[];
258
- groups?: DataGridFilterGroup[];
259
- };
260
-
261
- export type DataGridFilterValue = string | number | null;
262
-
263
- export type DataGridFilterCheckbox = {
264
- displayValue: ReactNode;
265
- title: string;
266
- values: DataGridFilterValue[];
267
- level: number;
268
- };
269
-
270
- export type DataGridRowTemplateProps<R> = {
271
- row: R | null;
272
- rowIndex: number;
273
- selected?: boolean;
274
- toggleSelection?: () => void;
275
- context: DataGridContext<R>;
276
- };
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ import * as t from 'io-ts';
4
+
5
+ import {
6
+ CSSProperties,
7
+ Context,
8
+ Dispatch,
9
+ FC,
10
+ MouseEvent,
11
+ MouseEventHandler,
12
+ ReactNode,
13
+ SetStateAction,
14
+ } from 'react';
15
+
16
+ import { SettingsContextProps } from '../../../providers/SettingsProvider';
17
+ import { ThemeColor } from '../../../providers/ThemeProvider/types';
18
+
19
+ export type DataGridCellFC = FC<{
20
+ onDoubleClick?: MouseEventHandler;
21
+ style?: CSSProperties;
22
+ }>;
23
+
24
+ export type DataGridFooterPredefinedFunction =
25
+ | 'average'
26
+ | 'avg'
27
+ | 'count'
28
+ | 'max'
29
+ | 'min'
30
+ | 'sum';
31
+ export type DataGridFooterFunction<R> = (
32
+ allRows: R[],
33
+ filteredRows: R[],
34
+ selectedRows: R[]
35
+ ) => ReactNode;
36
+
37
+ export type DataGridColumn<R> = {
38
+ component?: DataGridCellFC;
39
+ editable?: boolean;
40
+ excelFormatter?: (value: any) => string;
41
+ excelBackgroundColor?: (value: any) => string;
42
+ excelValue?: (value: any) => string;
43
+ filter?: DataGridFilter;
44
+ footer?:
45
+ | DataGridFooterFunction<R>
46
+ | Record<string, DataGridFooterFunction<R> | null>;
47
+ getter?: (row: R) => string | number;
48
+ name: string;
49
+ order?: number;
50
+ propertyName?: keyof R;
51
+ render?: (row: R, column: DataGridColumn<R>) => ReactNode | string;
52
+ resizable?: boolean;
53
+ sortGetter?: (row: R) => string | number;
54
+ type?: 'text' | 'number' | 'date';
55
+ width?: number;
56
+ settingsContext?: Context<SettingsContextProps>;
57
+ };
58
+
59
+ export type DataGridColumns<R> = Record<string, DataGridColumn<R>>;
60
+
61
+ export type DataGridFilters = Record<
62
+ string,
63
+ DataGridFilter<DataGridFilterType>
64
+ >;
65
+
66
+ export type DataGridProps<R> = {
67
+ name?: string;
68
+ className?: string;
69
+ rows: R[];
70
+ columns: DataGridColumns<R>;
71
+ rowKey: keyof R | ((row: R) => string);
72
+ selectable?: boolean;
73
+ editable?: boolean;
74
+ onRowDoubleClick?: (row: R, e: MouseEvent) => void;
75
+ onSelectionChange?: (keys: string[]) => void;
76
+ getAllIds?: () => Promise<string[]>;
77
+ onFiltersChanged?: (filters: DataGridFilters) => void;
78
+ onSortsChanged?: (sorts: Record<string, DataGridSort>) => void;
79
+ onVisibleRowsChange?: (startIndex: number, length: number) => void;
80
+ onCellEdited?: (row: R, columnKey: string, value: any) => void;
81
+ rowClassNameGetter?: (row: R | null) => {
82
+ className?: string;
83
+ style?: CSSProperties;
84
+ };
85
+ headerRowHeight?: number;
86
+ rowHeight?: number;
87
+ filter?: boolean;
88
+ sort?: boolean;
89
+ initialSorts?: Record<string, DataGridSort>;
90
+ initialFooters?: Record<string, string>;
91
+ onFootersChanged?: (footers: Record<string, string>) => void;
92
+ filterValuesLoader?: (
93
+ columnKey: string
94
+ ) => Promise<(string | number | null)[]>;
95
+ // copyTableHandler?: (
96
+ // includeHeaders?: boolean,
97
+ // includeFooters?: boolean
98
+ // ) => Promise<void>;
99
+ loadCopyRows?: () => Promise<R[]>;
100
+ refresh?: () => void;
101
+ headerColor?: ThemeColor;
102
+ };
103
+
104
+ export type DataGridContextProps<R> = DataGridProps<R> & {
105
+ editingCell?: [number, number];
106
+ setEditingCell: Dispatch<SetStateAction<[number, number]>>;
107
+ sortedRows: R[];
108
+ selectedRows: R[];
109
+ selectedKeys: string[];
110
+ setSelectedKeys: (selection: string[]) => void;
111
+ sorts?: Record<string, DataGridSort>;
112
+ setSorts: (sorts: Record<string, DataGridSort>) => void;
113
+ filters?: DataGridFilters;
114
+ setFilters: Dispatch<SetStateAction<DataGridFilters>>;
115
+ footers?: Record<string, string>;
116
+ setFooters: Dispatch<SetStateAction<Record<string, string>>>;
117
+ footerFunctions?: Record<string, DataGridFooterFunction<R>>;
118
+ visibleColumns: DataGridColumnKeyValuePair<R>[];
119
+ copyTable: (
120
+ includeHeaders?: boolean,
121
+ includeFooters?: boolean
122
+ ) => Promise<void>;
123
+ setColumnWidth: (key: string, width: number) => void;
124
+ saveSettings: (newSettings?: DataGridSettings) => void;
125
+ settings: DataGridSettings;
126
+ setSettings: Dispatch<SetStateAction<DataGridSettings>>;
127
+ visibleRows: R[];
128
+ scrollableRef: React.RefObject<HTMLDivElement>;
129
+ onScroll: (e: React.UIEvent<HTMLDivElement>) => void;
130
+ index: number;
131
+ length: number;
132
+ rowKeyGetter: (row: R) => string;
133
+ gridTemplateColumns: string;
134
+ toggleSelection: (key: string) => void;
135
+ };
136
+
137
+ export type DataGridContext<R> = Context<DataGridContextProps<R>>;
138
+
139
+ export const dataGridSettingCodec = t.partial(
140
+ {
141
+ width: t.number,
142
+ order: t.number,
143
+ },
144
+ 'DataGridSetting'
145
+ );
146
+ export const dataGridSettingsCodec = t.record(
147
+ t.string,
148
+ dataGridSettingCodec,
149
+ 'DataGridSettings'
150
+ );
151
+ export const dataGridSettingsByNameCodec = t.record(
152
+ t.string,
153
+ dataGridSettingsCodec,
154
+ 'DataGridSettingsByName'
155
+ );
156
+
157
+ export type DataGridSetting = t.TypeOf<typeof dataGridSettingCodec>;
158
+ export type DataGridSettings = t.TypeOf<typeof dataGridSettingsCodec>;
159
+ export type DataGridSettingsByName = t.TypeOf<
160
+ typeof dataGridSettingsByNameCodec
161
+ >;
162
+ export type DataGridSettingsTuple = [string, DataGridSetting];
163
+ export type DataGridSettingsArray = DataGridSettingsTuple[];
164
+ export type DataGridColumnKeyValuePair<R> = [string, DataGridColumn<R>];
165
+
166
+ export type DataGridCellProps<R> = {
167
+ row: R;
168
+ rowIndex: number;
169
+ columnKey: string;
170
+ columnIndex: number;
171
+ column: DataGridColumn<R>;
172
+ context: DataGridContext<R>;
173
+ className?: string;
174
+ style?: CSSProperties;
175
+ };
176
+
177
+ export type DataGridHeaderCellProps<R> = {
178
+ columnKey: string;
179
+ columnIndex: number;
180
+ column: DataGridColumn<R>;
181
+ context: DataGridContext<R>;
182
+ onFilterButtonClicked?: (columnKey: string) => void;
183
+ isFilterOpen?: boolean;
184
+ };
185
+
186
+ export type DataGridSort = 'asc' | 'desc';
187
+
188
+ export type DataGridFilterPredicate<T> = (valueToVerify: T) => boolean;
189
+ export type DataGridFilterPredicateBuilder<T> = (
190
+ ...filterValues: T[]
191
+ ) => DataGridFilterPredicate<T>;
192
+
193
+ export type DataGridFilterOperators<K extends string, T> = {
194
+ [key in K]: DataGridFilterPredicateBuilder<T>;
195
+ };
196
+
197
+ export type DataGridFilterPredicates = {
198
+ date: DataGridFilterOperators<
199
+ 'before' | 'after' | 'equals' | 'notEquals' | 'inRange' | 'inArray',
200
+ string
201
+ >;
202
+ text: DataGridFilterOperators<
203
+ | 'contains'
204
+ | 'notContains'
205
+ | 'equals'
206
+ | 'notEquals'
207
+ | 'startsWith'
208
+ | 'endsWith'
209
+ | 'inArray',
210
+ string
211
+ >;
212
+ number: DataGridFilterOperators<
213
+ | 'equals'
214
+ | 'notEquals'
215
+ | 'lessThan'
216
+ | 'lessThanOrEqual'
217
+ | 'greaterThan'
218
+ | 'greaterThanOrEqual'
219
+ | 'inRange'
220
+ | 'inArray',
221
+ number
222
+ >;
223
+ };
224
+
225
+ export type DataGridFilterType = keyof DataGridFilterPredicates;
226
+ export type DataGridFilterDataType<T extends DataGridFilterType> =
227
+ DataGridFilterPredicates[T] extends DataGridFilterOperators<string, infer U>
228
+ ? U
229
+ : never;
230
+
231
+ export type DataGridFilterGetter<T extends DataGridFilterType> = (
232
+ value: any
233
+ ) => DataGridFilterDataType<T> | null;
234
+ export type DataGridFilterRenderer = (value: any) => ReactNode;
235
+ export type DataGridFilterFormatter = (value: any) => string;
236
+
237
+ export type DataGridFilterOperator<T extends DataGridFilterType> =
238
+ DataGridFilterPredicates[T] extends DataGridFilterOperators<infer K, any>
239
+ ? K
240
+ : never;
241
+
242
+ export type DataGridFilter<T extends string = DataGridFilterType> =
243
+ T extends DataGridFilterType
244
+ ? {
245
+ type: T;
246
+ operator: DataGridFilterOperator<T>;
247
+ getter: DataGridFilterGetter<T>;
248
+ renderer?: DataGridFilterRenderer;
249
+ formatter?: DataGridFilterFormatter;
250
+ values: (DataGridFilterDataType<T> | null)[];
251
+ }
252
+ : never;
253
+
254
+ export type DataGridFilterGroup = {
255
+ name: string;
256
+ displayValue: DataGridFilterValue;
257
+ values?: DataGridFilterValue[];
258
+ groups?: DataGridFilterGroup[];
259
+ };
260
+
261
+ export type DataGridFilterValue = string | number | null;
262
+
263
+ export type DataGridFilterCheckbox = {
264
+ displayValue: ReactNode;
265
+ title: string;
266
+ values: DataGridFilterValue[];
267
+ level: number;
268
+ };
269
+
270
+ export type DataGridRowTemplateProps<R> = {
271
+ row: R | null;
272
+ rowIndex: number;
273
+ selected?: boolean;
274
+ toggleSelection?: () => void;
275
+ context: DataGridContext<R>;
276
+ };