@addev-be/ui 0.2.2 → 0.2.6

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 (168) hide show
  1. package/assets/icons/arrow-down-a-z.svg +1 -1
  2. package/assets/icons/arrow-up-z-a.svg +1 -1
  3. package/assets/icons/check.svg +1 -1
  4. package/assets/icons/down.svg +1 -1
  5. package/assets/icons/filter-full.svg +1 -1
  6. package/assets/icons/filter.svg +1 -1
  7. package/assets/icons/hashtag.svg +1 -1
  8. package/assets/icons/image-slash.svg +1 -1
  9. package/assets/icons/left.svg +1 -1
  10. package/assets/icons/magnifier.svg +1 -1
  11. package/assets/icons/phone.svg +1 -1
  12. package/assets/icons/right.svg +1 -1
  13. package/assets/icons/spinner-third.svg +1 -1
  14. package/assets/icons/table-columns.svg +1 -1
  15. package/assets/icons/up.svg +1 -1
  16. package/assets/icons/user-tie.svg +1 -1
  17. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +14 -0
  18. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +76 -0
  19. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +22 -0
  20. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +156 -0
  21. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +2 -0
  22. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +18 -0
  23. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +2 -0
  24. package/dist/components/data/AdvancedRequestDataGrid/index.js +215 -0
  25. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +21 -0
  26. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +1 -2
  27. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +3 -5
  28. package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
  29. package/dist/components/data/DataGrid/DataGridCell.js +6 -6
  30. package/dist/components/data/DataGrid/DataGridEditableCell.js +2 -7
  31. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +10 -8
  32. package/dist/components/data/DataGrid/DataGridFooter.js +4 -14
  33. package/dist/components/data/DataGrid/DataGridHeader.js +60 -12
  34. package/dist/components/data/DataGrid/DataGridHeaderCell.js +6 -5
  35. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +5 -5
  36. package/dist/components/data/DataGrid/FilterModalContent/index.js +11 -9
  37. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +8 -7
  38. package/dist/components/data/DataGrid/FilterValuesScroller.js +5 -6
  39. package/dist/components/data/DataGrid/VirtualScroller.js +1 -6
  40. package/dist/components/data/DataGrid/helpers/columns.d.ts +12 -13
  41. package/dist/components/data/DataGrid/helpers/columns.js +17 -71
  42. package/dist/components/data/DataGrid/helpers/filters.d.ts +8 -7
  43. package/dist/components/data/DataGrid/helpers/filters.js +26 -21
  44. package/dist/components/data/DataGrid/helpers/index.d.ts +1 -2
  45. package/dist/components/data/DataGrid/helpers/index.js +1 -2
  46. package/dist/components/data/DataGrid/hooks/index.d.ts +2 -2
  47. package/dist/components/data/DataGrid/hooks/index.js +4 -4
  48. package/dist/components/data/DataGrid/hooks/useDataGrid.js +27 -5
  49. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -1
  50. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -1
  51. package/dist/components/data/DataGrid/index.js +27 -20
  52. package/dist/components/data/DataGrid/styles.d.ts +7 -2
  53. package/dist/components/data/DataGrid/styles.js +13 -10
  54. package/dist/components/data/DataGrid/types.d.ts +47 -54
  55. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
  56. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +112 -0
  57. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +2 -0
  58. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +18 -0
  59. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +3 -0
  60. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +18 -0
  61. package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -0
  62. package/dist/components/data/SqlRequestDataGrid/index.js +224 -0
  63. package/dist/components/data/SqlRequestDataGrid/types.d.ts +21 -0
  64. package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
  65. package/dist/components/data/index.d.ts +7 -2
  66. package/dist/components/data/index.js +7 -2
  67. package/dist/components/forms/IconButton.js +1 -1
  68. package/dist/components/forms/IndeterminateCheckbox.js +1 -1
  69. package/dist/components/layout/Modal/index.js +1 -1
  70. package/dist/helpers/dates.d.ts +2 -0
  71. package/dist/helpers/dates.js +13 -0
  72. package/dist/providers/PortalsProvider/index.d.ts +1 -1
  73. package/dist/providers/PortalsProvider/index.js +1 -1
  74. package/dist/services/HttpService.d.ts +10 -0
  75. package/dist/services/HttpService.js +117 -0
  76. package/dist/services/advancedRequests.d.ts +3 -3
  77. package/dist/services/advancedRequests.js +2 -2
  78. package/dist/services/hooks.d.ts +2 -1
  79. package/dist/services/hooks.js +10 -3
  80. package/dist/services/sqlRequests.d.ts +40 -0
  81. package/dist/services/sqlRequests.js +10 -0
  82. package/package.json +1 -1
  83. package/src/Icons.tsx +80 -80
  84. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  85. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  86. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  87. package/src/components/data/AdvancedRequestDataGrid/index.tsx +269 -269
  88. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  89. package/src/components/data/DataGrid/DataGridCell.tsx +73 -75
  90. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  91. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +58 -58
  92. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  93. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  94. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -54
  95. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  96. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +200 -190
  97. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +100 -100
  98. package/src/components/data/DataGrid/DataGridFooter.tsx +44 -64
  99. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -128
  100. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +167 -166
  101. package/src/components/data/DataGrid/FilterModalContent/index.tsx +124 -125
  102. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  103. package/src/components/data/DataGrid/FilterValuesScroller.tsx +133 -131
  104. package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
  105. package/src/components/data/DataGrid/helpers/columns.tsx +196 -199
  106. package/src/components/data/DataGrid/helpers/filters.ts +220 -207
  107. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  108. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  109. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +264 -261
  110. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +165 -166
  111. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -49
  112. package/src/components/data/DataGrid/index.tsx +132 -133
  113. package/src/components/data/DataGrid/styles.ts +326 -299
  114. package/src/components/data/DataGrid/types.ts +241 -233
  115. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +224 -206
  116. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  117. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  118. package/src/components/data/SqlRequestDataGrid/index.tsx +252 -221
  119. package/src/components/data/SqlRequestDataGrid/types.ts +47 -46
  120. package/src/components/data/index.ts +8 -6
  121. package/src/components/forms/Button.tsx +99 -99
  122. package/src/components/forms/IconButton.tsx +56 -56
  123. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  124. package/src/components/forms/Select.tsx +40 -40
  125. package/src/components/forms/index.ts +5 -5
  126. package/src/components/forms/styles.ts +20 -20
  127. package/src/components/index.ts +3 -3
  128. package/src/components/layout/Dropdown/index.tsx +79 -79
  129. package/src/components/layout/Dropdown/styles.ts +44 -44
  130. package/src/components/layout/Loading/index.tsx +29 -29
  131. package/src/components/layout/Loading/styles.ts +29 -29
  132. package/src/components/layout/Modal/index.tsx +51 -51
  133. package/src/components/layout/Modal/styles.ts +110 -110
  134. package/src/components/layout/index.ts +3 -3
  135. package/src/config/index.ts +14 -14
  136. package/src/helpers/dates.ts +9 -0
  137. package/src/helpers/getScrollbarSize.ts +14 -14
  138. package/src/helpers/numbers.ts +20 -20
  139. package/src/hooks/index.ts +2 -2
  140. package/src/hooks/useElementSize.ts +24 -24
  141. package/src/hooks/useWindowSize.ts +20 -20
  142. package/src/index.ts +7 -7
  143. package/src/providers/PortalsProvider/index.tsx +54 -54
  144. package/src/providers/PortalsProvider/styles.ts +27 -27
  145. package/src/providers/SettingsProvider/index.tsx +70 -70
  146. package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
  147. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  148. package/src/providers/ThemeProvider/index.ts +3 -3
  149. package/src/providers/ThemeProvider/types.ts +123 -123
  150. package/src/providers/UiProviders/index.tsx +65 -65
  151. package/src/providers/UiProviders/styles.ts +10 -10
  152. package/src/providers/hooks.ts +8 -8
  153. package/src/providers/index.ts +5 -5
  154. package/src/services/HttpService.ts +80 -80
  155. package/src/services/WebSocketService.ts +147 -147
  156. package/src/services/advancedRequests.ts +101 -101
  157. package/src/services/base.ts +31 -31
  158. package/src/services/hooks.ts +23 -23
  159. package/src/services/index.ts +2 -2
  160. package/src/services/sqlRequests.ts +99 -98
  161. package/src/styles/animations.scss +30 -30
  162. package/src/styles/index.scss +42 -42
  163. package/src/typings.d.ts +6 -6
  164. package/tsconfig.tsbuildinfo +1 -1
  165. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  166. package/dist/components/data/DataGrid/helpers.js +0 -436
  167. package/dist/config/types.d.ts +0 -11
  168. /package/dist/{config → components/data/AdvancedRequestDataGrid}/types.js +0 -0
package/src/Icons.tsx CHANGED
@@ -1,80 +1,80 @@
1
- import { FC, SVGProps, useEffect, useState } from 'react';
2
-
3
- import ArrowDownAZIcon from '../assets/icons/arrow-down-a-z.svg?react';
4
- import ArrowUpZAIcon from '../assets/icons/arrow-up-z-a.svg?react';
5
- import ArrowsRotateIcon from '../assets/icons/arrows-rotate.svg?react';
6
- import ArrowsUpDownIcon from '../assets/icons/arrows-up-down.svg?react';
7
- import CheckIcon from '../assets/icons/check.svg?react';
8
- import CopyIcon from '../assets/icons/copy.svg?react';
9
- import DownIcon from '../assets/icons/down.svg?react';
10
- import FilterFullIcon from '../assets/icons/filter-full.svg?react';
11
- import FilterIcon from '../assets/icons/filter.svg?react';
12
- import FilterSlashIcon from '../assets/icons/filter-slash.svg?react';
13
- import HashtagIcon from '../assets/icons/hashtag.svg?react';
14
- import ImageSlashIcon from '../assets/icons/image-slash.svg?react';
15
- import LeftIcon from '../assets/icons/left.svg?react';
16
- import MagnifierIcon from '../assets/icons/magnifier.svg?react';
17
- import PhoneIcon from '../assets/icons/phone.svg?react';
18
- import PlusIcon from '../assets/icons/plus.svg?react';
19
- import RightIcon from '../assets/icons/right.svg?react';
20
- import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
21
- import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
22
- import UpIcon from '../assets/icons/up.svg?react';
23
- import UserTieIcon from '../assets/icons/user-tie.svg?react';
24
-
25
- type IconFCProps = SVGProps<SVGSVGElement>;
26
- export type IconFC = FC<IconFCProps>;
27
-
28
- type AnimatedIconProps = {
29
- icons: FC[];
30
- speed?: number;
31
- };
32
-
33
- export const AnimatedIcon: FC<AnimatedIconProps & IconFCProps> = ({
34
- icons,
35
- speed = 150,
36
- ...props
37
- }) => {
38
- const [currentIcon, setCurrentIcon] = useState(0);
39
-
40
- useEffect(() => {
41
- const interval = setInterval(() => {
42
- setCurrentIcon((currentIcon) => (currentIcon + 1) % icons.length);
43
- }, speed);
44
-
45
- return () => {
46
- clearInterval(interval);
47
- };
48
- }, [icons.length, speed]);
49
-
50
- const Icon = icons[currentIcon];
51
- return <Icon {...props} />;
52
- };
53
-
54
- export const LoadingIcon: FC<IconFCProps> = ({ className, ...props }) => (
55
- <SpinnerIcon className={`animate-spin ${className}`} {...props} />
56
- );
57
-
58
- export {
59
- ArrowDownAZIcon,
60
- ArrowUpZAIcon,
61
- ArrowsRotateIcon,
62
- ArrowsUpDownIcon,
63
- CheckIcon,
64
- CopyIcon,
65
- DownIcon,
66
- FilterFullIcon,
67
- FilterIcon,
68
- FilterSlashIcon,
69
- HashtagIcon,
70
- ImageSlashIcon,
71
- LeftIcon,
72
- MagnifierIcon,
73
- PhoneIcon,
74
- PlusIcon,
75
- RightIcon,
76
- SpinnerIcon,
77
- TableColumnsIcon,
78
- UpIcon,
79
- UserTieIcon,
80
- };
1
+ import { FC, SVGProps, useEffect, useState } from 'react';
2
+
3
+ import ArrowDownAZIcon from '../assets/icons/arrow-down-a-z.svg?react';
4
+ import ArrowUpZAIcon from '../assets/icons/arrow-up-z-a.svg?react';
5
+ import ArrowsRotateIcon from '../assets/icons/arrows-rotate.svg?react';
6
+ import ArrowsUpDownIcon from '../assets/icons/arrows-up-down.svg?react';
7
+ import CheckIcon from '../assets/icons/check.svg?react';
8
+ import CopyIcon from '../assets/icons/copy.svg?react';
9
+ import DownIcon from '../assets/icons/down.svg?react';
10
+ import FilterFullIcon from '../assets/icons/filter-full.svg?react';
11
+ import FilterIcon from '../assets/icons/filter.svg?react';
12
+ import FilterSlashIcon from '../assets/icons/filter-slash.svg?react';
13
+ import HashtagIcon from '../assets/icons/hashtag.svg?react';
14
+ import ImageSlashIcon from '../assets/icons/image-slash.svg?react';
15
+ import LeftIcon from '../assets/icons/left.svg?react';
16
+ import MagnifierIcon from '../assets/icons/magnifier.svg?react';
17
+ import PhoneIcon from '../assets/icons/phone.svg?react';
18
+ import PlusIcon from '../assets/icons/plus.svg?react';
19
+ import RightIcon from '../assets/icons/right.svg?react';
20
+ import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
21
+ import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
22
+ import UpIcon from '../assets/icons/up.svg?react';
23
+ import UserTieIcon from '../assets/icons/user-tie.svg?react';
24
+
25
+ type IconFCProps = SVGProps<SVGSVGElement>;
26
+ export type IconFC = FC<IconFCProps>;
27
+
28
+ type AnimatedIconProps = {
29
+ icons: FC[];
30
+ speed?: number;
31
+ };
32
+
33
+ export const AnimatedIcon: FC<AnimatedIconProps & IconFCProps> = ({
34
+ icons,
35
+ speed = 150,
36
+ ...props
37
+ }) => {
38
+ const [currentIcon, setCurrentIcon] = useState(0);
39
+
40
+ useEffect(() => {
41
+ const interval = setInterval(() => {
42
+ setCurrentIcon((currentIcon) => (currentIcon + 1) % icons.length);
43
+ }, speed);
44
+
45
+ return () => {
46
+ clearInterval(interval);
47
+ };
48
+ }, [icons.length, speed]);
49
+
50
+ const Icon = icons[currentIcon];
51
+ return <Icon {...props} />;
52
+ };
53
+
54
+ export const LoadingIcon: FC<IconFCProps> = ({ className, ...props }) => (
55
+ <SpinnerIcon className={`animate-spin ${className}`} {...props} />
56
+ );
57
+
58
+ export {
59
+ ArrowDownAZIcon,
60
+ ArrowUpZAIcon,
61
+ ArrowsRotateIcon,
62
+ ArrowsUpDownIcon,
63
+ CheckIcon,
64
+ CopyIcon,
65
+ DownIcon,
66
+ FilterFullIcon,
67
+ FilterIcon,
68
+ FilterSlashIcon,
69
+ HashtagIcon,
70
+ ImageSlashIcon,
71
+ LeftIcon,
72
+ MagnifierIcon,
73
+ PhoneIcon,
74
+ PlusIcon,
75
+ RightIcon,
76
+ SpinnerIcon,
77
+ TableColumnsIcon,
78
+ UpIcon,
79
+ UserTieIcon,
80
+ };
@@ -1,93 +1,93 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import {
4
- AdvancedRequestDTO,
5
- ConditionDTO,
6
- FieldDTO,
7
- OrderByDTO,
8
- } from '../../../../services/advancedRequests';
9
- import {
10
- AdvancedRequestDataGridColumns,
11
- AdvancedRequestDataGridFilters,
12
- } from '../types';
13
-
14
- import _ from 'lodash';
15
-
16
- export const getAdvancedRequestDto = <R>({
17
- type,
18
- columns,
19
- conditions = [],
20
- orderBy = [],
21
- start = 0,
22
- length = 100,
23
- getTotal = false,
24
- idField = { fieldName: 'Id' },
25
- }: {
26
- type: string;
27
- columns: AdvancedRequestDataGridColumns<R>;
28
- conditions?: ConditionDTO[];
29
- orderBy?: OrderByDTO[];
30
- start?: number;
31
- length?: number;
32
- getTotal?: boolean;
33
- idField?: FieldDTO | null;
34
- }): AdvancedRequestDTO => ({
35
- fields: [
36
- ...(idField === null ? [] : [idField]),
37
- ...Object.keys(columns).map((key) =>
38
- columns[key].field
39
- ? {
40
- ...columns[key].field,
41
- fieldName: columns[key].field?.fieldName ?? key,
42
- fieldAlias: key,
43
- }
44
- : {
45
- fieldName: key,
46
- fieldAlias: key,
47
- }
48
- ),
49
- ],
50
- conditions,
51
- orderBy,
52
- type,
53
- start,
54
- length,
55
- getTotal,
56
- });
57
-
58
- export const convertFiltersToConditions = <R>(
59
- filters: AdvancedRequestDataGridFilters,
60
- columns: AdvancedRequestDataGridColumns<R>
61
- ): Record<string, ConditionDTO> =>
62
- _.mapValues(filters, (filter, columnKey) => ({
63
- field:
64
- columns[columnKey].filterField ??
65
- columns[columnKey].field?.fieldAlias ??
66
- columns[columnKey].field?.fieldName ??
67
- columnKey,
68
- operator: filter.operator,
69
- value: ['inArray', 'inRange'].includes(filter.operator)
70
- ? filter.values
71
- : _.castArray<string | number | null>(filter.values)[0],
72
- }));
73
-
74
- export const parseJsonObjectFields = <R>(
75
- rows: any[],
76
- columns: AdvancedRequestDataGridColumns<R>,
77
- parser?: (row: any) => R
78
- ): R[] => {
79
- const jsonColumns = Object.keys(columns).filter(
80
- (key) => columns[key].field?.operator === 'jsonObject'
81
- );
82
- const parsedRows =
83
- jsonColumns.length === 0
84
- ? rows
85
- : rows.map((row) => {
86
- const parsedRow = { ...row };
87
- jsonColumns.forEach((key) => {
88
- parsedRow[key] = JSON.parse(parsedRow[key] ?? '{}');
89
- });
90
- return parsedRow;
91
- });
92
- return parser ? parsedRows.map(parser) : parsedRows;
93
- };
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ import {
4
+ AdvancedRequestDTO,
5
+ ConditionDTO,
6
+ FieldDTO,
7
+ OrderByDTO,
8
+ } from '../../../../services/advancedRequests';
9
+ import {
10
+ AdvancedRequestDataGridColumns,
11
+ AdvancedRequestDataGridFilters,
12
+ } from '../types';
13
+
14
+ import _ from 'lodash';
15
+
16
+ export const getAdvancedRequestDto = <R>({
17
+ type,
18
+ columns,
19
+ conditions = [],
20
+ orderBy = [],
21
+ start = 0,
22
+ length = 100,
23
+ getTotal = false,
24
+ idField = { fieldName: 'Id' },
25
+ }: {
26
+ type: string;
27
+ columns: AdvancedRequestDataGridColumns<R>;
28
+ conditions?: ConditionDTO[];
29
+ orderBy?: OrderByDTO[];
30
+ start?: number;
31
+ length?: number;
32
+ getTotal?: boolean;
33
+ idField?: FieldDTO | null;
34
+ }): AdvancedRequestDTO => ({
35
+ fields: [
36
+ ...(idField === null ? [] : [idField]),
37
+ ...Object.keys(columns).map((key) =>
38
+ columns[key].field
39
+ ? {
40
+ ...columns[key].field,
41
+ fieldName: columns[key].field?.fieldName ?? key,
42
+ fieldAlias: key,
43
+ }
44
+ : {
45
+ fieldName: key,
46
+ fieldAlias: key,
47
+ }
48
+ ),
49
+ ],
50
+ conditions,
51
+ orderBy,
52
+ type,
53
+ start,
54
+ length,
55
+ getTotal,
56
+ });
57
+
58
+ export const convertFiltersToConditions = <R>(
59
+ filters: AdvancedRequestDataGridFilters,
60
+ columns: AdvancedRequestDataGridColumns<R>
61
+ ): Record<string, ConditionDTO> =>
62
+ _.mapValues(filters, (filter, columnKey) => ({
63
+ field:
64
+ columns[columnKey].filterField ??
65
+ columns[columnKey].field?.fieldAlias ??
66
+ columns[columnKey].field?.fieldName ??
67
+ columnKey,
68
+ operator: filter.operator,
69
+ value: ['inArray', 'inRange'].includes(filter.operator)
70
+ ? filter.values
71
+ : _.castArray<string | number | null>(filter.values)[0],
72
+ }));
73
+
74
+ export const parseJsonObjectFields = <R>(
75
+ rows: any[],
76
+ columns: AdvancedRequestDataGridColumns<R>,
77
+ parser?: (row: any) => R
78
+ ): R[] => {
79
+ const jsonColumns = Object.keys(columns).filter(
80
+ (key) => columns[key].field?.operator === 'jsonObject'
81
+ );
82
+ const parsedRows =
83
+ jsonColumns.length === 0
84
+ ? rows
85
+ : rows.map((row) => {
86
+ const parsedRow = { ...row };
87
+ jsonColumns.forEach((key) => {
88
+ parsedRow[key] = JSON.parse(parsedRow[key] ?? '{}');
89
+ });
90
+ return parsedRow;
91
+ });
92
+ return parser ? parsedRows.map(parser) : parsedRows;
93
+ };