@addev-be/ui 0.3.2 → 0.3.3

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 (281) 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/down.svg +1 -1
  6. package/assets/icons/filter-full.svg +1 -1
  7. package/assets/icons/filter.svg +1 -1
  8. package/assets/icons/hashtag.svg +1 -1
  9. package/assets/icons/image-slash.svg +1 -1
  10. package/assets/icons/left.svg +1 -1
  11. package/assets/icons/magnifier.svg +1 -1
  12. package/assets/icons/phone.svg +1 -1
  13. package/assets/icons/right.svg +1 -1
  14. package/assets/icons/sort-calendar-ascending.svg +5 -5
  15. package/assets/icons/spinner-third.svg +1 -1
  16. package/assets/icons/table-columns.svg +1 -1
  17. package/assets/icons/table-footer-slash.svg +4 -4
  18. package/assets/icons/table-footer.svg +3 -3
  19. package/assets/icons/up.svg +1 -1
  20. package/assets/icons/user-tie.svg +1 -1
  21. package/assets/icons/x-bar.svg +3 -3
  22. package/dist/Icons.d.ts +43 -0
  23. package/dist/Icons.js +116 -0
  24. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +14 -0
  25. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +76 -0
  26. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +22 -0
  27. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +156 -0
  28. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +2 -0
  29. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +18 -0
  30. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +2 -0
  31. package/dist/components/data/AdvancedRequestDataGrid/index.js +215 -0
  32. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +21 -0
  33. package/dist/components/data/AdvancedRequestDataGrid/types.js +2 -0
  34. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
  35. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
  36. package/dist/components/data/DataGrid/DataGridCell.d.ts +2 -0
  37. package/dist/components/data/DataGrid/DataGridCell.js +59 -0
  38. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +2 -0
  39. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +24 -0
  40. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.d.ts +6 -0
  41. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +38 -0
  42. package/dist/components/data/DataGrid/DataGridColumnsModal/index.d.ts +15 -0
  43. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +111 -0
  44. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +22 -0
  45. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +54 -0
  46. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +2 -0
  47. package/dist/components/data/DataGrid/DataGridEditableCell.js +27 -0
  48. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +9 -0
  49. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +52 -0
  50. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +9 -0
  51. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +220 -0
  52. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +9 -0
  53. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +21 -0
  54. package/dist/components/data/DataGrid/DataGridFooter.d.ts +4 -0
  55. package/dist/components/data/DataGrid/DataGridFooter.js +44 -0
  56. package/dist/components/data/DataGrid/DataGridHeader.d.ts +4 -0
  57. package/dist/components/data/DataGrid/DataGridHeader.js +119 -0
  58. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +2 -0
  59. package/dist/components/data/DataGrid/DataGridHeaderCell.js +84 -0
  60. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +7 -0
  61. package/dist/components/data/DataGrid/FilterModalContent/index.js +108 -0
  62. package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +3 -0
  63. package/dist/components/data/DataGrid/FilterModalContent/styles.js +15 -0
  64. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
  65. package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
  66. package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
  67. package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
  68. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
  69. package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
  70. package/dist/components/data/DataGrid/helpers/columns.d.ts +12 -0
  71. package/dist/components/data/DataGrid/helpers/columns.js +162 -0
  72. package/dist/components/data/DataGrid/helpers/filters.d.ts +17 -0
  73. package/dist/components/data/DataGrid/helpers/filters.js +254 -0
  74. package/dist/components/data/DataGrid/helpers/index.d.ts +2 -0
  75. package/dist/components/data/DataGrid/helpers/index.js +18 -0
  76. package/dist/components/data/DataGrid/helpers.d.ts +28 -0
  77. package/dist/components/data/DataGrid/helpers.js +436 -0
  78. package/dist/components/data/DataGrid/hooks/index.d.ts +7 -0
  79. package/dist/components/data/DataGrid/hooks/index.js +34 -0
  80. package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +2 -0
  81. package/dist/components/data/DataGrid/hooks/useDataGrid.js +246 -0
  82. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +4 -0
  83. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +171 -0
  84. package/dist/components/data/DataGrid/hooks/useDataGridSettings.d.ts +16 -0
  85. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +43 -0
  86. package/dist/components/data/DataGrid/index.d.ts +4 -0
  87. package/dist/components/data/DataGrid/index.js +108 -0
  88. package/dist/components/data/DataGrid/styles.d.ts +64 -0
  89. package/dist/components/data/DataGrid/styles.js +134 -0
  90. package/dist/components/data/DataGrid/types.d.ts +162 -0
  91. package/dist/components/data/DataGrid/types.js +34 -0
  92. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
  93. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +125 -0
  94. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +2 -0
  95. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +18 -0
  96. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +3 -0
  97. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +18 -0
  98. package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -0
  99. package/dist/components/data/SqlRequestDataGrid/index.js +296 -0
  100. package/dist/components/data/SqlRequestDataGrid/types.d.ts +21 -0
  101. package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
  102. package/dist/components/data/index.d.ts +8 -0
  103. package/dist/components/data/index.js +24 -0
  104. package/dist/components/forms/Button.d.ts +10 -0
  105. package/dist/components/forms/Button.js +70 -0
  106. package/dist/components/forms/IconButton.d.ts +7 -0
  107. package/dist/components/forms/IconButton.js +64 -0
  108. package/dist/components/forms/IndeterminateCheckbox.d.ts +8 -0
  109. package/dist/components/forms/IndeterminateCheckbox.js +41 -0
  110. package/dist/components/forms/Select.d.ts +10 -0
  111. package/dist/components/forms/Select.js +49 -0
  112. package/dist/components/forms/index.d.ts +5 -0
  113. package/dist/components/forms/index.js +23 -0
  114. package/dist/components/forms/styles.d.ts +2 -0
  115. package/dist/components/forms/styles.js +34 -0
  116. package/dist/components/index.d.ts +3 -0
  117. package/dist/components/index.js +19 -0
  118. package/dist/components/layout/Dropdown/index.d.ts +11 -0
  119. package/dist/components/layout/Dropdown/index.js +85 -0
  120. package/dist/components/layout/Dropdown/styles.d.ts +11 -0
  121. package/dist/components/layout/Dropdown/styles.js +45 -0
  122. package/dist/components/layout/Loading/index.d.ts +6 -0
  123. package/dist/components/layout/Loading/index.js +42 -0
  124. package/dist/components/layout/Loading/styles.d.ts +6 -0
  125. package/dist/components/layout/Loading/styles.js +18 -0
  126. package/dist/components/layout/Modal/index.d.ts +16 -0
  127. package/dist/components/layout/Modal/index.js +67 -0
  128. package/dist/components/layout/Modal/styles.d.ts +32 -0
  129. package/dist/components/layout/Modal/styles.js +52 -0
  130. package/dist/components/layout/index.d.ts +3 -0
  131. package/dist/components/layout/index.js +19 -0
  132. package/dist/components/ui/ContextMenu/index.d.ts +11 -0
  133. package/dist/components/ui/ContextMenu/index.js +58 -0
  134. package/dist/components/ui/ContextMenu/styles.d.ts +18 -0
  135. package/dist/components/ui/ContextMenu/styles.js +56 -0
  136. package/dist/config/index.d.ts +10 -0
  137. package/dist/config/index.js +2 -0
  138. package/dist/config/types.d.ts +11 -0
  139. package/dist/config/types.js +2 -0
  140. package/dist/helpers/dates.d.ts +2 -0
  141. package/dist/helpers/dates.js +13 -0
  142. package/dist/helpers/getScrollbarSize.d.ts +1 -0
  143. package/dist/helpers/getScrollbarSize.js +17 -0
  144. package/dist/helpers/numbers.d.ts +3 -0
  145. package/dist/helpers/numbers.js +31 -0
  146. package/dist/hooks/index.d.ts +2 -0
  147. package/dist/hooks/index.js +18 -0
  148. package/dist/hooks/useElementSize.d.ts +4 -0
  149. package/dist/hooks/useElementSize.js +23 -0
  150. package/dist/hooks/useWindowSize.d.ts +4 -0
  151. package/dist/hooks/useWindowSize.js +19 -0
  152. package/dist/index.d.ts +5 -0
  153. package/dist/index.js +21 -0
  154. package/dist/providers/PortalsProvider/index.d.ts +10 -0
  155. package/dist/providers/PortalsProvider/index.js +46 -0
  156. package/dist/providers/PortalsProvider/styles.d.ts +9 -0
  157. package/dist/providers/PortalsProvider/styles.js +21 -0
  158. package/dist/providers/SettingsProvider/index.d.ts +8 -0
  159. package/dist/providers/SettingsProvider/index.js +54 -0
  160. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +7 -0
  161. package/dist/providers/ThemeProvider/ThemeProvider.js +51 -0
  162. package/dist/providers/ThemeProvider/defaultTheme.d.ts +2 -0
  163. package/dist/providers/ThemeProvider/defaultTheme.js +417 -0
  164. package/dist/providers/ThemeProvider/index.d.ts +2 -0
  165. package/dist/providers/ThemeProvider/index.js +5 -0
  166. package/dist/providers/ThemeProvider/types.d.ts +24 -0
  167. package/dist/providers/ThemeProvider/types.js +2 -0
  168. package/dist/providers/UiProviders/index.d.ts +12 -0
  169. package/dist/providers/UiProviders/index.js +62 -0
  170. package/dist/providers/UiProviders/styles.d.ts +3 -0
  171. package/dist/providers/UiProviders/styles.js +13 -0
  172. package/dist/providers/hooks.d.ts +3 -0
  173. package/dist/providers/hooks.js +13 -0
  174. package/dist/providers/index.d.ts +4 -0
  175. package/dist/providers/index.js +20 -0
  176. package/dist/services/HttpService.d.ts +10 -0
  177. package/dist/services/HttpService.js +117 -0
  178. package/dist/services/WebSocketService.d.ts +24 -0
  179. package/dist/services/WebSocketService.js +136 -0
  180. package/dist/services/advancedRequests.d.ts +41 -0
  181. package/dist/services/advancedRequests.js +13 -0
  182. package/dist/services/base.d.ts +19 -0
  183. package/dist/services/base.js +10 -0
  184. package/dist/services/hooks.d.ts +2 -0
  185. package/dist/services/hooks.js +18 -0
  186. package/dist/services/index.d.ts +2 -0
  187. package/dist/services/index.js +18 -0
  188. package/dist/services/sqlRequests.d.ts +45 -0
  189. package/dist/services/sqlRequests.js +11 -0
  190. package/package.json +1 -1
  191. package/src/Icons.tsx +108 -108
  192. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  193. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  194. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  195. package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -267
  196. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  197. package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
  198. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  199. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  200. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  201. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  202. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -43
  203. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +120 -120
  204. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  205. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +360 -360
  206. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +96 -96
  207. package/src/components/data/DataGrid/DataGridFooter.tsx +42 -42
  208. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
  209. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +132 -132
  210. package/src/components/data/DataGrid/FilterModalContent/index.tsx +136 -136
  211. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  212. package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
  213. package/src/components/data/DataGrid/helpers/columns.tsx +295 -295
  214. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  215. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  216. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  217. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +306 -306
  218. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +175 -175
  219. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  220. package/src/components/data/DataGrid/index.tsx +140 -140
  221. package/src/components/data/DataGrid/styles.ts +323 -323
  222. package/src/components/data/DataGrid/types.ts +267 -267
  223. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +277 -277
  224. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  225. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  226. package/src/components/data/SqlRequestDataGrid/index.tsx +347 -347
  227. package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
  228. package/src/components/data/index.ts +8 -8
  229. package/src/components/forms/Button.tsx +99 -99
  230. package/src/components/forms/IconButton.tsx +56 -56
  231. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  232. package/src/components/forms/Select.tsx +40 -40
  233. package/src/components/forms/index.ts +5 -5
  234. package/src/components/forms/styles.ts +20 -20
  235. package/src/components/index.ts +3 -3
  236. package/src/components/layout/Dropdown/index.tsx +79 -79
  237. package/src/components/layout/Dropdown/styles.ts +44 -44
  238. package/src/components/layout/Loading/index.tsx +29 -29
  239. package/src/components/layout/Loading/styles.ts +29 -29
  240. package/src/components/layout/Modal/index.tsx +51 -51
  241. package/src/components/layout/Modal/styles.ts +110 -110
  242. package/src/components/layout/index.ts +3 -3
  243. package/src/components/ui/ContextMenu/index.tsx +79 -79
  244. package/src/components/ui/ContextMenu/styles.ts +119 -119
  245. package/src/config/index.ts +14 -14
  246. package/src/helpers/dates.ts +9 -9
  247. package/src/helpers/getScrollbarSize.ts +14 -14
  248. package/src/helpers/numbers.ts +26 -26
  249. package/src/hooks/index.ts +2 -2
  250. package/src/hooks/useElementSize.ts +24 -24
  251. package/src/hooks/useWindowSize.ts +20 -20
  252. package/src/index.ts +7 -7
  253. package/src/providers/AuthenticationProvider/index.tsx +199 -143
  254. package/src/providers/LoadingProvider/index.tsx +47 -47
  255. package/src/providers/PortalsProvider/index.tsx +54 -54
  256. package/src/providers/PortalsProvider/styles.ts +27 -27
  257. package/src/providers/SettingsProvider/index.tsx +70 -70
  258. package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
  259. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  260. package/src/providers/ThemeProvider/index.ts +4 -4
  261. package/src/providers/ThemeProvider/types.ts +123 -123
  262. package/src/providers/UiProviders/index.tsx +65 -65
  263. package/src/providers/UiProviders/styles.ts +10 -10
  264. package/src/providers/hooks.ts +12 -10
  265. package/src/providers/index.ts +6 -6
  266. package/src/services/HttpService.ts +80 -80
  267. package/src/services/WebSocketService.ts +136 -136
  268. package/src/services/advancedRequests.ts +101 -101
  269. package/src/services/base.ts +31 -31
  270. package/src/services/globalSearch.ts +27 -27
  271. package/src/services/hooks.ts +40 -40
  272. package/src/services/index.ts +8 -8
  273. package/src/services/requests/auth.ts +44 -44
  274. package/src/services/sqlRequests.ts +110 -110
  275. package/src/services/types/auth.ts +131 -131
  276. package/src/services/types/base.ts +10 -10
  277. package/src/services/types/users.ts +20 -20
  278. package/src/styles/animations.scss +30 -30
  279. package/src/styles/index.scss +42 -42
  280. package/src/typings.d.ts +6 -6
  281. package/tsconfig.tsbuildinfo +1 -0
@@ -1,267 +1,267 @@
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
- };
135
-
136
- export type DataGridContext<R> = Context<DataGridContextProps<R>>;
137
-
138
- export const dataGridSettingCodec = t.partial(
139
- {
140
- width: t.number,
141
- order: t.number,
142
- },
143
- 'DataGridSetting'
144
- );
145
- export const dataGridSettingsCodec = t.record(
146
- t.string,
147
- dataGridSettingCodec,
148
- 'DataGridSettings'
149
- );
150
- export const dataGridSettingsByNameCodec = t.record(
151
- t.string,
152
- dataGridSettingsCodec,
153
- 'DataGridSettingsByName'
154
- );
155
-
156
- export type DataGridSetting = t.TypeOf<typeof dataGridSettingCodec>;
157
- export type DataGridSettings = t.TypeOf<typeof dataGridSettingsCodec>;
158
- export type DataGridSettingsByName = t.TypeOf<
159
- typeof dataGridSettingsByNameCodec
160
- >;
161
- export type DataGridSettingsTuple = [string, DataGridSetting];
162
- export type DataGridSettingsArray = DataGridSettingsTuple[];
163
- export type DataGridColumnKeyValuePair<R> = [string, DataGridColumn<R>];
164
-
165
- export type DataGridCellProps<R> = {
166
- row: R;
167
- rowIndex: number;
168
- columnKey: string;
169
- columnIndex: number;
170
- column: DataGridColumn<R>;
171
- context: DataGridContext<R>;
172
- className?: string;
173
- style?: CSSProperties;
174
- };
175
-
176
- export type DataGridHeaderCellProps<R> = {
177
- columnKey: string;
178
- columnIndex: number;
179
- column: DataGridColumn<R>;
180
- context: DataGridContext<R>;
181
- onFilterButtonClicked?: (columnKey: string) => void;
182
- isFilterOpen?: boolean;
183
- };
184
-
185
- export type DataGridSort = 'asc' | 'desc';
186
-
187
- export type DataGridFilterPredicate<T> = (valueToVerify: T) => boolean;
188
- export type DataGridFilterPredicateBuilder<T> = (
189
- ...filterValues: T[]
190
- ) => DataGridFilterPredicate<T>;
191
-
192
- export type DataGridFilterOperators<K extends string, T> = {
193
- [key in K]: DataGridFilterPredicateBuilder<T>;
194
- };
195
-
196
- export type DataGridFilterPredicates = {
197
- date: DataGridFilterOperators<
198
- 'before' | 'after' | 'equals' | 'notEquals' | 'inRange' | 'inArray',
199
- string
200
- >;
201
- text: DataGridFilterOperators<
202
- | 'contains'
203
- | 'notContains'
204
- | 'equals'
205
- | 'notEquals'
206
- | 'startsWith'
207
- | 'endsWith'
208
- | 'inArray',
209
- string
210
- >;
211
- number: DataGridFilterOperators<
212
- | 'equals'
213
- | 'notEquals'
214
- | 'lessThan'
215
- | 'lessThanOrEqual'
216
- | 'greaterThan'
217
- | 'greaterThanOrEqual'
218
- | 'inRange'
219
- | 'inArray',
220
- number
221
- >;
222
- };
223
-
224
- export type DataGridFilterType = keyof DataGridFilterPredicates;
225
- export type DataGridFilterDataType<T extends DataGridFilterType> =
226
- DataGridFilterPredicates[T] extends DataGridFilterOperators<string, infer U>
227
- ? U
228
- : never;
229
-
230
- export type DataGridFilterGetter<T extends DataGridFilterType> = (
231
- value: any
232
- ) => DataGridFilterDataType<T> | null;
233
- export type DataGridFilterRenderer = (value: any) => ReactNode;
234
- export type DataGridFilterFormatter = (value: any) => string;
235
-
236
- export type DataGridFilterOperator<T extends DataGridFilterType> =
237
- DataGridFilterPredicates[T] extends DataGridFilterOperators<infer K, any>
238
- ? K
239
- : never;
240
-
241
- export type DataGridFilter<T extends string = DataGridFilterType> =
242
- T extends DataGridFilterType
243
- ? {
244
- type: T;
245
- operator: DataGridFilterOperator<T>;
246
- getter: DataGridFilterGetter<T>;
247
- renderer?: DataGridFilterRenderer;
248
- formatter?: DataGridFilterFormatter;
249
- values: (DataGridFilterDataType<T> | null)[];
250
- }
251
- : never;
252
-
253
- export type DataGridFilterGroup = {
254
- name: string;
255
- displayValue: DataGridFilterValue;
256
- values?: DataGridFilterValue[];
257
- groups?: DataGridFilterGroup[];
258
- };
259
-
260
- export type DataGridFilterValue = string | number | null;
261
-
262
- export type DataGridFilterCheckbox = {
263
- displayValue: ReactNode;
264
- title: string;
265
- values: DataGridFilterValue[];
266
- level: number;
267
- };
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
+ };
135
+
136
+ export type DataGridContext<R> = Context<DataGridContextProps<R>>;
137
+
138
+ export const dataGridSettingCodec = t.partial(
139
+ {
140
+ width: t.number,
141
+ order: t.number,
142
+ },
143
+ 'DataGridSetting'
144
+ );
145
+ export const dataGridSettingsCodec = t.record(
146
+ t.string,
147
+ dataGridSettingCodec,
148
+ 'DataGridSettings'
149
+ );
150
+ export const dataGridSettingsByNameCodec = t.record(
151
+ t.string,
152
+ dataGridSettingsCodec,
153
+ 'DataGridSettingsByName'
154
+ );
155
+
156
+ export type DataGridSetting = t.TypeOf<typeof dataGridSettingCodec>;
157
+ export type DataGridSettings = t.TypeOf<typeof dataGridSettingsCodec>;
158
+ export type DataGridSettingsByName = t.TypeOf<
159
+ typeof dataGridSettingsByNameCodec
160
+ >;
161
+ export type DataGridSettingsTuple = [string, DataGridSetting];
162
+ export type DataGridSettingsArray = DataGridSettingsTuple[];
163
+ export type DataGridColumnKeyValuePair<R> = [string, DataGridColumn<R>];
164
+
165
+ export type DataGridCellProps<R> = {
166
+ row: R;
167
+ rowIndex: number;
168
+ columnKey: string;
169
+ columnIndex: number;
170
+ column: DataGridColumn<R>;
171
+ context: DataGridContext<R>;
172
+ className?: string;
173
+ style?: CSSProperties;
174
+ };
175
+
176
+ export type DataGridHeaderCellProps<R> = {
177
+ columnKey: string;
178
+ columnIndex: number;
179
+ column: DataGridColumn<R>;
180
+ context: DataGridContext<R>;
181
+ onFilterButtonClicked?: (columnKey: string) => void;
182
+ isFilterOpen?: boolean;
183
+ };
184
+
185
+ export type DataGridSort = 'asc' | 'desc';
186
+
187
+ export type DataGridFilterPredicate<T> = (valueToVerify: T) => boolean;
188
+ export type DataGridFilterPredicateBuilder<T> = (
189
+ ...filterValues: T[]
190
+ ) => DataGridFilterPredicate<T>;
191
+
192
+ export type DataGridFilterOperators<K extends string, T> = {
193
+ [key in K]: DataGridFilterPredicateBuilder<T>;
194
+ };
195
+
196
+ export type DataGridFilterPredicates = {
197
+ date: DataGridFilterOperators<
198
+ 'before' | 'after' | 'equals' | 'notEquals' | 'inRange' | 'inArray',
199
+ string
200
+ >;
201
+ text: DataGridFilterOperators<
202
+ | 'contains'
203
+ | 'notContains'
204
+ | 'equals'
205
+ | 'notEquals'
206
+ | 'startsWith'
207
+ | 'endsWith'
208
+ | 'inArray',
209
+ string
210
+ >;
211
+ number: DataGridFilterOperators<
212
+ | 'equals'
213
+ | 'notEquals'
214
+ | 'lessThan'
215
+ | 'lessThanOrEqual'
216
+ | 'greaterThan'
217
+ | 'greaterThanOrEqual'
218
+ | 'inRange'
219
+ | 'inArray',
220
+ number
221
+ >;
222
+ };
223
+
224
+ export type DataGridFilterType = keyof DataGridFilterPredicates;
225
+ export type DataGridFilterDataType<T extends DataGridFilterType> =
226
+ DataGridFilterPredicates[T] extends DataGridFilterOperators<string, infer U>
227
+ ? U
228
+ : never;
229
+
230
+ export type DataGridFilterGetter<T extends DataGridFilterType> = (
231
+ value: any
232
+ ) => DataGridFilterDataType<T> | null;
233
+ export type DataGridFilterRenderer = (value: any) => ReactNode;
234
+ export type DataGridFilterFormatter = (value: any) => string;
235
+
236
+ export type DataGridFilterOperator<T extends DataGridFilterType> =
237
+ DataGridFilterPredicates[T] extends DataGridFilterOperators<infer K, any>
238
+ ? K
239
+ : never;
240
+
241
+ export type DataGridFilter<T extends string = DataGridFilterType> =
242
+ T extends DataGridFilterType
243
+ ? {
244
+ type: T;
245
+ operator: DataGridFilterOperator<T>;
246
+ getter: DataGridFilterGetter<T>;
247
+ renderer?: DataGridFilterRenderer;
248
+ formatter?: DataGridFilterFormatter;
249
+ values: (DataGridFilterDataType<T> | null)[];
250
+ }
251
+ : never;
252
+
253
+ export type DataGridFilterGroup = {
254
+ name: string;
255
+ displayValue: DataGridFilterValue;
256
+ values?: DataGridFilterValue[];
257
+ groups?: DataGridFilterGroup[];
258
+ };
259
+
260
+ export type DataGridFilterValue = string | number | null;
261
+
262
+ export type DataGridFilterCheckbox = {
263
+ displayValue: ReactNode;
264
+ title: string;
265
+ values: DataGridFilterValue[];
266
+ level: number;
267
+ };