@addev-be/ui 0.2.13 → 0.2.15

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 (114) hide show
  1. package/dist/Icons.d.ts +3 -1
  2. package/dist/Icons.js +5 -1
  3. package/dist/components/data/DataGrid/{FilterValuesScroller.d.ts → DataGridFilterMenu/FilterValuesScroller.d.ts} +1 -1
  4. package/dist/components/data/DataGrid/{FilterValuesScroller.js → DataGridFilterMenu/FilterValuesScroller.js} +6 -9
  5. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +3 -3
  6. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +9 -0
  7. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +12 -2
  8. package/dist/components/data/DataGrid/FilterModalContent/index.js +18 -9
  9. package/dist/components/data/DataGrid/helpers/columns.d.ts +1 -0
  10. package/dist/components/data/DataGrid/helpers/columns.js +7 -6
  11. package/dist/components/data/DataGrid/helpers/filters.d.ts +1 -0
  12. package/dist/components/data/DataGrid/helpers/filters.js +71 -2
  13. package/dist/components/data/DataGrid/hooks/useDataGrid.js +2 -1
  14. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +2 -0
  15. package/dist/components/data/DataGrid/styles.d.ts +0 -9
  16. package/dist/components/data/DataGrid/styles.js +2 -12
  17. package/dist/components/data/DataGrid/types.d.ts +2 -0
  18. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +6 -6
  19. package/dist/helpers/numbers.d.ts +1 -0
  20. package/dist/helpers/numbers.js +9 -1
  21. package/dist/services/globalSearch.d.ts +13 -0
  22. package/dist/services/globalSearch.js +8 -0
  23. package/package.json +18 -12
  24. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -9
  25. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -171
  26. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  27. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  28. package/eslint.config.js +0 -28
  29. package/src/Icons.tsx +0 -108
  30. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +0 -93
  31. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +0 -262
  32. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +0 -2
  33. package/src/components/data/AdvancedRequestDataGrid/index.tsx +0 -267
  34. package/src/components/data/AdvancedRequestDataGrid/types.ts +0 -47
  35. package/src/components/data/DataGrid/DataGridCell.tsx +0 -73
  36. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +0 -14
  37. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +0 -59
  38. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +0 -181
  39. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +0 -104
  40. package/src/components/data/DataGrid/DataGridEditableCell.tsx +0 -43
  41. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +0 -120
  42. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +0 -75
  43. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +0 -360
  44. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +0 -96
  45. package/src/components/data/DataGrid/DataGridFooter.tsx +0 -42
  46. package/src/components/data/DataGrid/DataGridHeader.tsx +0 -126
  47. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +0 -132
  48. package/src/components/data/DataGrid/FilterModalContent/index.tsx +0 -136
  49. package/src/components/data/DataGrid/FilterModalContent/styles.ts +0 -22
  50. package/src/components/data/DataGrid/VirtualScroller.tsx +0 -46
  51. package/src/components/data/DataGrid/helpers/columns.tsx +0 -295
  52. package/src/components/data/DataGrid/helpers/filters.ts +0 -287
  53. package/src/components/data/DataGrid/helpers/index.ts +0 -2
  54. package/src/components/data/DataGrid/hooks/index.ts +0 -30
  55. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +0 -306
  56. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +0 -175
  57. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +0 -48
  58. package/src/components/data/DataGrid/index.tsx +0 -140
  59. package/src/components/data/DataGrid/styles.ts +0 -323
  60. package/src/components/data/DataGrid/types.ts +0 -267
  61. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +0 -277
  62. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +0 -2
  63. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +0 -16
  64. package/src/components/data/SqlRequestDataGrid/index.tsx +0 -347
  65. package/src/components/data/SqlRequestDataGrid/types.ts +0 -47
  66. package/src/components/data/index.ts +0 -8
  67. package/src/components/forms/Button.tsx +0 -99
  68. package/src/components/forms/IconButton.tsx +0 -56
  69. package/src/components/forms/IndeterminateCheckbox.tsx +0 -46
  70. package/src/components/forms/Select.tsx +0 -40
  71. package/src/components/forms/index.ts +0 -5
  72. package/src/components/forms/styles.ts +0 -20
  73. package/src/components/index.ts +0 -3
  74. package/src/components/layout/Dropdown/index.tsx +0 -79
  75. package/src/components/layout/Dropdown/styles.ts +0 -44
  76. package/src/components/layout/Loading/index.tsx +0 -29
  77. package/src/components/layout/Loading/styles.ts +0 -29
  78. package/src/components/layout/Modal/index.tsx +0 -51
  79. package/src/components/layout/Modal/styles.ts +0 -110
  80. package/src/components/layout/index.ts +0 -3
  81. package/src/components/ui/ContextMenu/index.tsx +0 -79
  82. package/src/components/ui/ContextMenu/styles.ts +0 -119
  83. package/src/config/index.ts +0 -14
  84. package/src/helpers/dates.ts +0 -9
  85. package/src/helpers/getScrollbarSize.ts +0 -14
  86. package/src/helpers/numbers.ts +0 -26
  87. package/src/hooks/index.ts +0 -2
  88. package/src/hooks/useElementSize.ts +0 -24
  89. package/src/hooks/useWindowSize.ts +0 -20
  90. package/src/index.ts +0 -7
  91. package/src/providers/PortalsProvider/index.tsx +0 -54
  92. package/src/providers/PortalsProvider/styles.ts +0 -27
  93. package/src/providers/SettingsProvider/index.tsx +0 -70
  94. package/src/providers/ThemeProvider/ThemeProvider.ts +0 -55
  95. package/src/providers/ThemeProvider/defaultTheme.ts +0 -444
  96. package/src/providers/ThemeProvider/index.ts +0 -3
  97. package/src/providers/ThemeProvider/types.ts +0 -123
  98. package/src/providers/UiProviders/index.tsx +0 -65
  99. package/src/providers/UiProviders/styles.ts +0 -10
  100. package/src/providers/hooks.ts +0 -8
  101. package/src/providers/index.ts +0 -5
  102. package/src/services/HttpService.ts +0 -80
  103. package/src/services/WebSocketService.ts +0 -147
  104. package/src/services/advancedRequests.ts +0 -101
  105. package/src/services/base.ts +0 -31
  106. package/src/services/globalSearch.ts +0 -27
  107. package/src/services/hooks.ts +0 -23
  108. package/src/services/index.ts +0 -2
  109. package/src/services/sqlRequests.ts +0 -110
  110. package/src/styles/animations.scss +0 -30
  111. package/src/styles/index.scss +0 -42
  112. package/src/typings.d.ts +0 -6
  113. package/tsconfig.json +0 -18
  114. package/tsconfig.tsbuildinfo +0 -1
@@ -1,262 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import {
4
- AdvancedRequestDataGridColumn,
5
- AdvancedRequestDataGridColumns,
6
- } from '../types';
7
- import {
8
- formatMoney,
9
- formatNumber,
10
- formatPercentage,
11
- } from '../../../../helpers/numbers';
12
- import { numberFilter, textFilter } from '../../DataGrid/helpers';
13
-
14
- import { FieldDTO } from '../../../../services/advancedRequests';
15
- import _ from 'lodash';
16
- import moment from 'moment';
17
-
18
- export const withGroupBy = <R extends Record<string, any>>(
19
- columns: AdvancedRequestDataGridColumns<R>
20
- ): AdvancedRequestDataGridColumns<R> =>
21
- _.mapValues(columns, (column, key) => ({
22
- ...column,
23
- field: {
24
- ...(column.field ?? { fieldName: key }),
25
- groupBy: true,
26
- },
27
- }));
28
-
29
- export const advancedTextColumn = <R extends Record<string, any>>(
30
- key: string,
31
- title: string,
32
- options?: Partial<AdvancedRequestDataGridColumn<R>>
33
- ): AdvancedRequestDataGridColumns<R> => ({
34
- [key]: {
35
- name: title,
36
- render: (row) => row[key] ?? '',
37
- getter: (row) => row[key] ?? '',
38
- sortGetter: (row) => row[key] ?? '',
39
- filter: { ...textFilter(key), getter: (value) => value[key] ?? '' },
40
- ...options,
41
- },
42
- });
43
-
44
- /**
45
- * Creates a column with a composed value from multiple fields,
46
- * and filtered by a text filter on the first field
47
- */
48
- export const advancedComposedColumn = <R extends Record<string, any>>(
49
- key: string,
50
- title: string,
51
- fields: string[],
52
- options?: Partial<AdvancedRequestDataGridColumn<R>>
53
- ): AdvancedRequestDataGridColumns<R> => ({
54
- [key]: {
55
- field: {
56
- fieldAlias: key,
57
- operator: 'jsonObject',
58
- operands: fields.flatMap((field) => [
59
- { constantValue: field },
60
- { fieldName: field },
61
- ]),
62
- },
63
- name: title,
64
- render: (row) => row[key] ?? '',
65
- getter: (row) => row[key] ?? '',
66
- sortGetter: (row) => row[key] ?? '',
67
- filter: {
68
- ...textFilter(fields[0]),
69
- getter: (value) => value[fields[0]] ?? 0,
70
- },
71
- filterField: fields[0],
72
- sortField: fields[0],
73
- ...options,
74
- },
75
- });
76
-
77
- export const advancedMailColumn = <R extends Record<string, any>>(
78
- key: string,
79
- title: string,
80
- options?: Partial<AdvancedRequestDataGridColumn<R>>
81
- ): AdvancedRequestDataGridColumns<R> => ({
82
- [key]: {
83
- name: title,
84
- render: (row) => <a href={`mailto:${row[key]}`}>{row[key] ?? ''}</a>,
85
- getter: (row) => row[key] ?? '',
86
- sortGetter: (row) => row[key] ?? '',
87
- filter: { ...textFilter(key), getter: (value) => value[key] ?? '' },
88
- ...options,
89
- },
90
- });
91
-
92
- export const advancedPhoneColumn = <R extends Record<string, any>>(
93
- key: string,
94
- title: string,
95
- options?: Partial<AdvancedRequestDataGridColumn<R>>
96
- ): AdvancedRequestDataGridColumns<R> => ({
97
- [key]: {
98
- name: title,
99
- render: (row) => <a href={`tel:${row[key]}`}>{row[key] ?? ''}</a>,
100
- getter: (row) => row[key] ?? '',
101
- sortGetter: (row) => row[key] ?? '',
102
- filter: { ...textFilter(key), getter: (value) => value[key] ?? '' },
103
- ...options,
104
- },
105
- });
106
-
107
- export const advancedDateColumn = <R extends Record<string, any>>(
108
- key: string,
109
- title: string,
110
- options?: Partial<AdvancedRequestDataGridColumn<R>>
111
- ): AdvancedRequestDataGridColumns<R> => ({
112
- [key]: {
113
- name: title,
114
- render: (row) => moment(row[key]).format('DD/MM/YYYY') ?? '',
115
- getter: (row) => row[key] ?? '',
116
- sortGetter: (row) => row[key] ?? '',
117
- filter: { ...textFilter(key), getter: (value) => value[key] ?? '' },
118
- ...options,
119
- },
120
- });
121
-
122
- export const advancedMonthColumn = <R extends Record<string, any>>(
123
- key: string,
124
- title: string,
125
- options?: Partial<AdvancedRequestDataGridColumn<R>>
126
- ): AdvancedRequestDataGridColumns<R> => ({
127
- [key]: {
128
- name: title,
129
- render: (row) => (row[key] ? `${row[key]} mois ` : ''),
130
- getter: (row) => row[key] ?? '',
131
- sortGetter: (row) => row[key] ?? '',
132
- filter: { ...textFilter(key), getter: (value) => value[key] ?? '' },
133
- ...options,
134
- },
135
- });
136
-
137
- export const advancedNumberColumn = <R extends Record<string, any>>(
138
- key: string,
139
- title: string,
140
- decimals = 2,
141
- options?: Partial<AdvancedRequestDataGridColumn<R>>
142
- ): AdvancedRequestDataGridColumns<R> => ({
143
- [key]: {
144
- name: title,
145
- render: (row) => formatNumber(row[key], decimals) ?? '',
146
- excelFormatter: () => '#',
147
- getter: (row) => row[key] ?? '',
148
- sortGetter: (row) => row[key] ?? '',
149
- filter: { ...numberFilter(key), getter: (value) => value[key] ?? 0 },
150
- ...options,
151
- },
152
- });
153
-
154
- export const advancedMoneyColumn = <R extends Record<string, any>>(
155
- key: string,
156
- title: string,
157
- decimals = 2,
158
- options?: Partial<AdvancedRequestDataGridColumn<R>>
159
- ): AdvancedRequestDataGridColumns<R> => ({
160
- [key]: {
161
- name: title,
162
- render: (row) => formatMoney(row[key], decimals) ?? '',
163
- excelFormatter: () => '#0.00',
164
- getter: (row) => row[key] ?? '',
165
- sortGetter: (row) => row[key] ?? '',
166
- filter: { ...numberFilter(key), getter: (value) => value[key] ?? 0 },
167
- ...options,
168
- },
169
- });
170
-
171
- export const advancedPercentageColumn = <R extends Record<string, any>>(
172
- key: string,
173
- title: string,
174
- options?: Partial<AdvancedRequestDataGridColumn<R>>
175
- ): AdvancedRequestDataGridColumns<R> => ({
176
- [key]: {
177
- name: title,
178
- render: (row) => formatPercentage(row[key]) ?? '',
179
- excelFormatter: () => '#0.00',
180
- getter: (row) => row[key] ?? '',
181
- sortGetter: (row) => row[key] ?? '',
182
- filter: { ...numberFilter(key), getter: (value) => value[key] ?? 0 },
183
- ...options,
184
- },
185
- });
186
-
187
- export const advancedCheckboxColumn = <R extends Record<string, any>>(
188
- key: string,
189
- title: string,
190
- options?: Partial<AdvancedRequestDataGridColumn<R>>
191
- ): AdvancedRequestDataGridColumns<R> => ({
192
- [key]: {
193
- name: title,
194
- render: (row) => (
195
- <>
196
- <input type="checkbox" checked={row[key]} />
197
- <span>{row[key] ? ' Oui' : ' Non'}</span>
198
- </>
199
- ),
200
- getter: (row) => row[key] ?? '',
201
- sortGetter: (row) => row[key] ?? '',
202
- filter: { ...numberFilter(key), getter: (value) => value[key] ?? 0 },
203
- ...options,
204
- },
205
- });
206
-
207
- export const advancedColorColumn = <R extends Record<string, any>>(
208
- key: string,
209
- title: string,
210
- options?: Partial<AdvancedRequestDataGridColumn<R>>
211
- ): AdvancedRequestDataGridColumns<R> => ({
212
- [key]: {
213
- name: title,
214
- render: (row) => (
215
- <div style={{ backgroundColor: row[key] }}>{row[key] ?? ''}</div>
216
- ),
217
- getter: (row) => row[key] ?? '',
218
- sortGetter: (row) => row[key] ?? '',
219
- filter: { ...textFilter(key), getter: (value) => value[key] ?? '' },
220
- ...options,
221
- },
222
- });
223
-
224
- export const getColumnField = <R,>(
225
- columns: AdvancedRequestDataGridColumns<R>,
226
- columnKey: string
227
- ): FieldDTO => {
228
- return columns[columnKey].field
229
- ? {
230
- fieldName: columns[columnKey].field?.fieldName ?? columnKey,
231
- fieldAlias: columnKey,
232
- }
233
- : {
234
- fieldName: columnKey,
235
- fieldAlias: columnKey,
236
- };
237
- };
238
- export const getColumnSortField = <R,>(
239
- columns: AdvancedRequestDataGridColumns<R>,
240
- columnKey: string
241
- ): FieldDTO => {
242
- return columns[columnKey].sortField
243
- ? {
244
- fieldName: columns[columnKey].sortField ?? columnKey,
245
- fieldAlias: columnKey,
246
- }
247
- : {
248
- fieldName: columnKey,
249
- fieldAlias: columnKey,
250
- };
251
- };
252
- export const getFirstColumnField = <R,>(
253
- columns: AdvancedRequestDataGridColumns<R>
254
- ): FieldDTO => {
255
- return getColumnField(columns, Object.keys(columns)[0]);
256
- };
257
-
258
- export const getFirstColumnSortField = <R,>(
259
- columns: AdvancedRequestDataGridColumns<R>
260
- ): FieldDTO => {
261
- return getColumnSortField(columns, Object.keys(columns)[0]);
262
- };
@@ -1,2 +0,0 @@
1
- export * from './advancedRequests';
2
- export * from './columns';
@@ -1,267 +0,0 @@
1
- import {
2
- ConditionDTO,
3
- FieldDTO,
4
- OrderByDTO,
5
- useAdvancedRequestHandler,
6
- } from '../../../services/advancedRequests';
7
- import {
8
- DataGridColumns,
9
- DataGridFilters,
10
- DataGridSort,
11
- } from '../DataGrid/types';
12
- import _, { debounce } from 'lodash';
13
- import {
14
- convertFiltersToConditions,
15
- getAdvancedRequestDto,
16
- getColumnSortField,
17
- parseJsonObjectFields,
18
- } from './helpers';
19
- import { useCallback, useEffect, useRef, useState } from 'react';
20
-
21
- import { AdvancedRequestDataGridProps } from './types';
22
- import { DataGrid } from '../DataGrid';
23
-
24
- export const AdvancedRequestDataGrid = <R,>({
25
- onSelectionChange: onSelectionChangeFromProps,
26
- idField,
27
- ...props
28
- }: AdvancedRequestDataGridProps<R>) => {
29
- const currentRows = useRef<R[]>([]);
30
- const [rows, setRows] = useState<R[]>([]);
31
- const [start, setStart] = useState(0);
32
- const [length, setLength] = useState(50);
33
- const [total, setTotal] = useState(-1);
34
- const advancedRequest = useAdvancedRequestHandler<R>();
35
- const idAdvancedRequest = useAdvancedRequestHandler<{ Id: string }>();
36
-
37
- const [conditions, setConditions] = useState<Record<string, ConditionDTO>>(
38
- {}
39
- );
40
- const [orderBy, setOrderBy] = useState<OrderByDTO[]>([]);
41
-
42
- const refresh = useCallback(() => {
43
- setRows([]);
44
- setStart(0);
45
- setLength(50);
46
- setTotal(-1);
47
- }, []);
48
-
49
- const onFiltersChanged = useCallback(
50
- (filters: DataGridFilters) => {
51
- const newConditions = convertFiltersToConditions(filters, props.columns);
52
- setTotal(-1);
53
- setConditions(newConditions);
54
- },
55
- [props.columns]
56
- );
57
-
58
- const onSortsChanged = useCallback(
59
- (sorts: Record<string, DataGridSort>) => {
60
- refresh();
61
- setOrderBy(
62
- Object.entries(sorts).map(
63
- ([columnKey, direction]) =>
64
- ({
65
- field: getColumnSortField(props.columns, columnKey),
66
- direction: direction.toUpperCase(),
67
- } as OrderByDTO)
68
- )
69
- );
70
- },
71
- [props.columns, refresh]
72
- );
73
-
74
- const loadRows = useRef(
75
- debounce(
76
- (
77
- columns: DataGridColumns<R>,
78
- conditions: ConditionDTO[],
79
- orderBy: OrderByDTO[],
80
- start: number,
81
- length: number,
82
- idField: FieldDTO | null | undefined,
83
- getTotal = false
84
- ) => {
85
- advancedRequest(
86
- getAdvancedRequestDto({
87
- type: props.type,
88
- columns,
89
- conditions,
90
- orderBy,
91
- start,
92
- length,
93
- getTotal,
94
- idField,
95
- })
96
- ).then((response) => {
97
- if (getTotal) {
98
- currentRows.current = Array(response.count).fill(null);
99
- if (getTotal) setTotal(response.count ?? 0);
100
- }
101
- const parsedRows = parseJsonObjectFields(
102
- response.data,
103
- columns,
104
- props.parser
105
- );
106
- currentRows.current.splice(start, length, ...parsedRows);
107
- setRows([...currentRows.current]);
108
- });
109
- },
110
- 100
111
- )
112
- );
113
-
114
- const loadFilterValues = useCallback(
115
- (columnKey: string) => {
116
- return advancedRequest({
117
- fields: [
118
- props.columns[columnKey].field ?? {
119
- fieldName: columnKey,
120
- },
121
- ],
122
- conditions: [
123
- ...(props.conditions ?? []),
124
- ...Object.values(_.pickBy(conditions, (_, key) => key !== columnKey)),
125
- ].filter((condition) => condition.field !== columnKey),
126
- orderBy: [
127
- {
128
- field:
129
- props.columns[columnKey].filterField ??
130
- props.columns[columnKey].field?.fieldAlias ??
131
- props.columns[columnKey].field?.fieldName ??
132
- columnKey,
133
- direction: 'ASC',
134
- },
135
- ],
136
- type: props.type,
137
- getTotal: false,
138
- unique: true,
139
- }).then((response) =>
140
- response.data.map(
141
- (row) => props.columns[columnKey].filter?.getter?.(row) ?? null
142
- )
143
- );
144
- },
145
- [advancedRequest, conditions, props.columns, props.conditions, props.type]
146
- );
147
-
148
- useEffect(
149
- () =>
150
- loadRows.current(
151
- props.columns,
152
- [...(props.conditions ?? []), ...(Object.values(conditions) ?? [])],
153
- orderBy,
154
- start,
155
- length,
156
- idField,
157
- total < 0
158
- ),
159
- [
160
- props.columns,
161
- conditions,
162
- orderBy,
163
- start,
164
- length,
165
- total,
166
- props.conditions,
167
- idField,
168
- ]
169
- );
170
-
171
- const loadCopyRows = useCallback(
172
- () =>
173
- advancedRequest(
174
- getAdvancedRequestDto({
175
- type: props.type,
176
- columns: props.columns,
177
- conditions: [
178
- ...(props.conditions ?? []),
179
- ...(Object.values(conditions) ?? []),
180
- ],
181
- orderBy,
182
- start: 0,
183
- length: total,
184
- idField,
185
- })
186
- ).then((response) =>
187
- parseJsonObjectFields(response.data, props.columns, props.parser)
188
- ),
189
- [
190
- advancedRequest,
191
- conditions,
192
- idField,
193
- orderBy,
194
- props.columns,
195
- props.conditions,
196
- props.parser,
197
- props.type,
198
- total,
199
- ]
200
- );
201
-
202
- const loadAllIds = useCallback(
203
- () =>
204
- idAdvancedRequest(
205
- getAdvancedRequestDto({
206
- type: props.type,
207
- columns: {
208
- Id: {
209
- name: 'Id',
210
- field: idField ?? { fieldName: 'Id' },
211
- },
212
- },
213
- conditions: [
214
- ...(props.conditions ?? []),
215
- ...(Object.values(conditions) ?? []),
216
- ],
217
- orderBy,
218
- start: 0,
219
- length: total,
220
- idField: null,
221
- })
222
- ).then((response) => response.data.map((row) => row['Id'])),
223
- [
224
- conditions,
225
- idAdvancedRequest,
226
- idField,
227
- orderBy,
228
- props.conditions,
229
- props.type,
230
- total,
231
- ]
232
- );
233
-
234
- const onVisibleRowsChanged = useCallback(
235
- (newStart: number, newLength: number) => {
236
- if (newStart !== start || newLength !== length) {
237
- setStart(newStart);
238
- setLength(newLength);
239
- }
240
- },
241
- [length, start]
242
- );
243
-
244
- const onSelectionChange = useCallback(
245
- (selectedKeys: string[]) => {
246
- onSelectionChangeFromProps?.(selectedKeys);
247
- },
248
- [onSelectionChangeFromProps]
249
- );
250
-
251
- return (
252
- <DataGrid
253
- onVisibleRowsChange={onVisibleRowsChanged}
254
- filter={false}
255
- sort={false}
256
- onFiltersChanged={onFiltersChanged}
257
- onSortsChanged={onSortsChanged}
258
- filterValuesLoader={loadFilterValues}
259
- rows={rows}
260
- loadCopyRows={loadCopyRows}
261
- refresh={refresh}
262
- onSelectionChange={onSelectionChange}
263
- getAllIds={loadAllIds}
264
- {...props}
265
- />
266
- );
267
- };
@@ -1,47 +0,0 @@
1
- import {
2
- AdvancedRequestRow,
3
- ConditionDTO,
4
- FieldDTO,
5
- OrderByDTO,
6
- } from '../../../services/advancedRequests';
7
- import {
8
- DataGridColumn,
9
- DataGridFilter,
10
- DataGridFilterType,
11
- DataGridProps,
12
- } from '../DataGrid/types';
13
-
14
- export type AdvancedRequestDataGridFilter<
15
- T extends DataGridFilterType = DataGridFilterType
16
- > = DataGridFilter<T> & {
17
- field?: FieldDTO;
18
- };
19
-
20
- export type AdvancedRequestDataGridFilters = Record<
21
- string,
22
- AdvancedRequestDataGridFilter
23
- >;
24
-
25
- export type AdvancedRequestDataGridColumn<R> = DataGridColumn<R> & {
26
- filter?: AdvancedRequestDataGridFilter;
27
- field?: FieldDTO;
28
- filterField?: string;
29
- sortField?: string;
30
- };
31
-
32
- export type AdvancedRequestDataGridColumns<R> = Record<
33
- string,
34
- AdvancedRequestDataGridColumn<R>
35
- >;
36
-
37
- export type AdvancedRequestDataGridProps<R> = Omit<
38
- DataGridProps<R>,
39
- 'rows' | 'columns'
40
- > & {
41
- columns: AdvancedRequestDataGridColumns<R>;
42
- type: string;
43
- orderBy?: OrderByDTO[];
44
- conditions?: ConditionDTO[];
45
- idField?: FieldDTO | null;
46
- parser?: (row: AdvancedRequestRow<R>) => R;
47
- };
@@ -1,73 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
3
-
4
- import * as styles from './styles';
5
-
6
- import { DataGridCellProps, DataGridColumn } from './types';
7
- import { MouseEvent, useCallback } from 'react';
8
-
9
- import { DataGridEditableCell } from './DataGridEditableCell';
10
- import { useDataGridContext } from './hooks';
11
-
12
- const defaultRender = <R,>(row: R, col: DataGridColumn<R>) => {
13
- const value = col.propertyName ? row[col.propertyName] : '';
14
- return !value ? '' : String(value);
15
- };
16
-
17
- export const DataGridCell = <R,>({
18
- row,
19
- rowIndex,
20
- columnKey,
21
- columnIndex,
22
- column,
23
- context,
24
- style,
25
- }: DataGridCellProps<R>) => {
26
- const {
27
- name,
28
- editable,
29
- editingCell = [-1, -1],
30
- setEditingCell,
31
- onRowDoubleClick,
32
- } = useDataGridContext(context);
33
- const isEditable =
34
- !!editable && !!column.editable && column.type && column.getter;
35
- const isEditing =
36
- isEditable && editingCell[0] === rowIndex && editingCell[1] === columnIndex;
37
- const DataGridCellComponent = column.component ?? styles.DataGridCell;
38
-
39
- const onDoubleClick = useCallback(
40
- (e: MouseEvent) => {
41
- e.stopPropagation();
42
- e.preventDefault();
43
- if (isEditable) {
44
- setEditingCell([rowIndex, columnIndex]);
45
- } else onRowDoubleClick?.(row, e);
46
- },
47
- [columnIndex, isEditable, onRowDoubleClick, row, rowIndex, setEditingCell]
48
- );
49
-
50
- if (isEditing) {
51
- return (
52
- <DataGridEditableCell
53
- key={`${name}-${rowIndex}-${columnIndex}`}
54
- row={row}
55
- rowIndex={rowIndex}
56
- columnKey={columnKey}
57
- columnIndex={columnIndex}
58
- column={column}
59
- context={context}
60
- />
61
- );
62
- }
63
-
64
- return (
65
- <DataGridCellComponent
66
- key={`${name}-${rowIndex}-${columnIndex}`}
67
- onDoubleClick={onDoubleClick}
68
- style={style}
69
- >
70
- {(column.render ?? defaultRender)(row, column)}
71
- </DataGridCellComponent>
72
- );
73
- };
@@ -1,14 +0,0 @@
1
- import { DataGridColumnKeyValuePair, DataGridColumns } from '../types';
2
-
3
- export const normalizeColumnsOrders = <R>(
4
- columns: DataGridColumns<R> | DataGridColumnKeyValuePair<R>[]
5
- ) =>
6
- (Array.isArray(columns) ? columns : Object.entries(columns)).map<
7
- DataGridColumnKeyValuePair<R>
8
- >(([key, column], index) => [
9
- key,
10
- {
11
- ...column,
12
- order: index,
13
- },
14
- ]);