@tap-payments/os-micro-frontend-shared 0.1.374-test.1 → 0.1.374-test.1-test.2-test.3-test.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 (71) hide show
  1. package/build/components/FilterDropdown/FilterDropdown.d.ts +4 -11
  2. package/build/components/FilterDropdown/FilterDropdown.js +4 -18
  3. package/build/components/FilterDropdown/style.js +1 -1
  4. package/build/components/RangeCalender/RangeCalender.js +2 -4
  5. package/build/components/Sandbox/style.js +3 -2
  6. package/build/components/TableHeader/FiltersRow.d.ts +1 -1
  7. package/build/components/TableHeader/FiltersRow.js +4 -2
  8. package/build/components/TableHeader/TableHeader.d.ts +1 -1
  9. package/build/components/TableHeader/TableHeader.js +2 -2
  10. package/build/components/TableHeader/TableView/CreateViewDialog.d.ts +3 -0
  11. package/build/components/TableHeader/TableView/CreateViewDialog.js +91 -0
  12. package/build/components/TableHeader/TableView/CustomViews.js +1 -1
  13. package/build/components/TableHeader/TableView/TableView.js +0 -1
  14. package/build/components/TableHeader/TableView/ViewSelector.d.ts +5 -0
  15. package/build/components/TableHeader/TableView/ViewSelector.js +88 -0
  16. package/build/components/TableHeader/TableView/ViewsDropdown.d.ts +5 -0
  17. package/build/components/TableHeader/TableView/ViewsDropdown.js +184 -0
  18. package/build/components/TableHeader/TableView/components/ColumnList.d.ts +3 -0
  19. package/build/components/TableHeader/TableView/components/ColumnList.js +70 -0
  20. package/build/components/TableHeader/TableView/components/ViewsSubmenu.d.ts +3 -0
  21. package/build/components/TableHeader/TableView/components/ViewsSubmenu.js +71 -0
  22. package/build/components/TableHeader/TableView/components/index.d.ts +2 -0
  23. package/build/components/TableHeader/TableView/components/index.js +2 -0
  24. package/build/components/TableHeader/TableView/constants.d.ts +10 -0
  25. package/build/components/TableHeader/TableView/constants.js +10 -0
  26. package/build/components/TableHeader/TableView/data.d.ts +5 -0
  27. package/build/components/TableHeader/TableView/data.js +48 -0
  28. package/build/components/TableHeader/TableView/hooks/index.d.ts +6 -0
  29. package/build/components/TableHeader/TableView/hooks/index.js +6 -0
  30. package/build/components/TableHeader/TableView/hooks/useCreateViewDialog.d.ts +22 -0
  31. package/build/components/TableHeader/TableView/hooks/useCreateViewDialog.js +88 -0
  32. package/build/components/TableHeader/TableView/hooks/useDialogPosition.d.ts +8 -0
  33. package/build/components/TableHeader/TableView/hooks/useDialogPosition.js +16 -0
  34. package/build/components/TableHeader/TableView/hooks/useNestedSubmenu.d.ts +7 -0
  35. package/build/components/TableHeader/TableView/hooks/useNestedSubmenu.js +34 -0
  36. package/build/components/TableHeader/TableView/hooks/useOriginalColumns.d.ts +6 -0
  37. package/build/components/TableHeader/TableView/hooks/useOriginalColumns.js +18 -0
  38. package/build/components/TableHeader/TableView/hooks/useSubmenuHover.d.ts +8 -0
  39. package/build/components/TableHeader/TableView/hooks/useSubmenuHover.js +43 -0
  40. package/build/components/TableHeader/TableView/hooks/useViewSelector.d.ts +60 -0
  41. package/build/components/TableHeader/TableView/hooks/useViewSelector.js +175 -0
  42. package/build/components/TableHeader/TableView/hooks/useViewsManager.d.ts +20 -0
  43. package/build/components/TableHeader/TableView/hooks/useViewsManager.js +89 -0
  44. package/build/components/TableHeader/TableView/index.d.ts +12 -3
  45. package/build/components/TableHeader/TableView/index.js +13 -3
  46. package/build/components/TableHeader/TableView/styles.d.ts +127 -0
  47. package/build/components/TableHeader/TableView/styles.js +426 -0
  48. package/build/components/TableHeader/TableView/types.d.ts +199 -0
  49. package/build/components/TableHeader/TableView/utils.d.ts +121 -0
  50. package/build/components/TableHeader/TableView/utils.js +463 -0
  51. package/build/components/TableHeader/type.d.ts +22 -1
  52. package/build/components/Toolbar/Toolbar.js +1 -1
  53. package/build/components/index.d.ts +0 -1
  54. package/build/components/index.js +0 -1
  55. package/build/constants/apps.js +0 -2
  56. package/build/constants/assets.d.ts +1 -2
  57. package/build/constants/assets.js +1 -2
  58. package/build/types/index.d.ts +0 -1
  59. package/build/types/index.js +0 -1
  60. package/build/types/reports.d.ts +0 -21
  61. package/build/utils/date.d.ts +0 -5
  62. package/build/utils/date.js +0 -37
  63. package/package.json +3 -2
  64. package/build/components/MultiDatakeyDonut/MultiDatakeyDonut.d.ts +0 -12
  65. package/build/components/MultiDatakeyDonut/MultiDatakeyDonut.js +0 -19
  66. package/build/components/MultiDatakeyDonut/index.d.ts +0 -1
  67. package/build/components/MultiDatakeyDonut/index.js +0 -1
  68. package/build/components/MultiDatakeyDonut/style.d.ts +0 -10
  69. package/build/components/MultiDatakeyDonut/style.js +0 -23
  70. package/build/types/toggleOptions.d.ts +0 -2
  71. /package/build/{types/toggleOptions.js → components/TableHeader/TableView/types.js} +0 -0
@@ -0,0 +1,426 @@
1
+ import { Box, styled, Button, Paper, TextField } from '@mui/material';
2
+ export const ButtonStyled = styled(Box)(({ theme }) => ({
3
+ display: 'flex',
4
+ alignItems: 'center',
5
+ justifyContent: 'space-between',
6
+ borderRadius: '4px',
7
+ background: theme.palette.common.white,
8
+ padding: '8px',
9
+ border: '1px solid',
10
+ borderColor: theme.palette.divider,
11
+ gap: 8,
12
+ height: 32,
13
+ cursor: 'pointer',
14
+ '&:hover': {
15
+ border: '1px solid',
16
+ borderColor: theme.palette.info.dark,
17
+ boxShadow: theme.shadows[7],
18
+ },
19
+ }));
20
+ export const ViewWrapper = styled(Box)(({ theme }) => ({
21
+ background: theme.palette.common.white,
22
+ display: 'flex',
23
+ gap: theme.spacing(1),
24
+ alignItems: 'center',
25
+ color: theme.palette.text.primary,
26
+ fontSize: '11px',
27
+ fontWeight: theme.typography.fontWeightRegular,
28
+ textTransform: 'capitalize',
29
+ position: 'relative',
30
+ transition: '0.5s',
31
+ paddingRight: 0,
32
+ marginRight: 0,
33
+ '&:after': {
34
+ content: '""',
35
+ position: 'absolute',
36
+ left: -8,
37
+ right: 0,
38
+ width: '100%',
39
+ height: '100%',
40
+ boxShadow: theme.shadows[11],
41
+ borderRadius: theme.spacing(0.5),
42
+ paddingInlineStart: theme.spacing(1),
43
+ paddingTop: '9px',
44
+ paddingBottom: '9px',
45
+ paddingInlineEnd: '9px',
46
+ zIndex: -1,
47
+ },
48
+ '& > *:last-child': {
49
+ marginRight: 0,
50
+ paddingRight: 0,
51
+ },
52
+ }));
53
+ export const ListStyled = styled(Box)(({ theme }) => ({
54
+ background: theme.palette.common.white,
55
+ borderRadius: theme.spacing(1),
56
+ boxShadow: theme.shadows[5],
57
+ border: '1px solid',
58
+ borderColor: theme.palette.divider,
59
+ zIndex: 5,
60
+ fontSize: '11px',
61
+ width: 192,
62
+ }));
63
+ export const DropdownStyled = styled(Box)(() => ({
64
+ minWidth: 160,
65
+ position: 'relative',
66
+ marginRight: 0,
67
+ paddingRight: 0,
68
+ }));
69
+ export const MenuItem = styled(Box, { shouldForwardProp: (props) => props !== 'addColumnViewEl' })(({ theme }) => ({
70
+ padding: theme.spacing(1),
71
+ paddingInlineEnd: 2,
72
+ borderBottom: '1px solid',
73
+ borderColor: theme.palette.divider,
74
+ display: 'flex',
75
+ alignItems: 'center',
76
+ height: 32,
77
+ cursor: 'pointer',
78
+ img: {
79
+ height: 12,
80
+ },
81
+ '.check-icon': {
82
+ height: 'auto',
83
+ marginInlineEnd: theme.spacing(1),
84
+ },
85
+ '&:hover': {
86
+ color: theme.palette.info.dark,
87
+ fontWeight: theme.typography.fontWeightBold,
88
+ },
89
+ '&.add-column': {
90
+ justifyContent: 'space-between',
91
+ paddingInlineEnd: theme.spacing(1),
92
+ position: 'relative',
93
+ border: 'none',
94
+ zIndex: 5,
95
+ borderBottom: '1px solid',
96
+ borderColor: theme.palette.divider,
97
+ borderTopRightRadius: theme.spacing(1),
98
+ borderTopLeftRadius: theme.spacing(1),
99
+ '&:hover': {
100
+ boxShadow: theme.shadows[6],
101
+ },
102
+ },
103
+ }));
104
+ export const Space = styled(Box)(({ theme }) => ({
105
+ width: 12,
106
+ marginInlineEnd: theme.spacing(1),
107
+ }));
108
+ export const SpaceAfter = styled(Box)(() => ({
109
+ width: 16,
110
+ }));
111
+ export const DialogContentWrapper = styled(Box)(({ theme }) => ({
112
+ display: 'flex',
113
+ flexDirection: 'column',
114
+ height: 'calc(100% - 32px)',
115
+ backgroundColor: theme.palette.background.paper,
116
+ position: 'relative',
117
+ }));
118
+ export const ScrollableContent = styled(Box)(() => ({
119
+ flex: 1,
120
+ overflowY: 'auto',
121
+ paddingLeft: 16,
122
+ paddingRight: 16,
123
+ paddingBottom: 64,
124
+ }));
125
+ export const TitleSection = styled(Box)(() => ({
126
+ padding: '24px 0',
127
+ display: 'flex',
128
+ justifyContent: 'space-between',
129
+ alignItems: 'center',
130
+ }));
131
+ export const ColumnListContainer = styled(Box)(({ theme }) => ({
132
+ border: '1px solid',
133
+ borderColor: theme.palette.divider,
134
+ borderRadius: '8px',
135
+ overflow: 'hidden',
136
+ display: 'flex',
137
+ flexDirection: 'column',
138
+ flex: 1,
139
+ minHeight: 0,
140
+ }));
141
+ export const SelectAllHeader = styled(Box)(({ theme }) => ({
142
+ display: 'flex',
143
+ alignItems: 'center',
144
+ padding: '12px',
145
+ borderBottom: '1px solid',
146
+ borderColor: theme.palette.divider,
147
+ backgroundColor: '#FAFAFA',
148
+ cursor: 'pointer',
149
+ '&:hover': {
150
+ backgroundColor: '#F0F0F0',
151
+ },
152
+ }));
153
+ export const ColumnItemRow = styled(Box, {
154
+ shouldForwardProp: (prop) => prop !== 'isHovered' && prop !== 'isDate',
155
+ })(({ theme, isHovered, isDate }) => ({
156
+ display: 'flex',
157
+ alignItems: 'center',
158
+ padding: '12px',
159
+ borderBottom: '1px solid',
160
+ borderColor: theme.palette.divider,
161
+ backgroundColor: isHovered ? theme.palette.action.hover : theme.palette.background.paper,
162
+ cursor: isDate ? 'default' : 'grab',
163
+ '&:hover': {
164
+ backgroundColor: isDate ? theme.palette.background.paper : theme.palette.action.hover,
165
+ },
166
+ '&:last-child': {
167
+ borderBottom: 'none',
168
+ },
169
+ }));
170
+ export const DragIconWrapper = styled(Box)(() => ({
171
+ width: 20,
172
+ height: 20,
173
+ marginRight: 8,
174
+ display: 'flex',
175
+ alignItems: 'center',
176
+ justifyContent: 'center',
177
+ flexShrink: 0,
178
+ }));
179
+ export const CheckboxWrapper = styled(Box)(() => ({
180
+ display: 'flex',
181
+ alignItems: 'center',
182
+ justifyContent: 'center',
183
+ padding: 0,
184
+ width: 14,
185
+ height: 14,
186
+ minWidth: 14,
187
+ minHeight: 14,
188
+ flexShrink: 0,
189
+ }));
190
+ export const FooterBar = styled(Box)(({ theme }) => ({
191
+ position: 'absolute',
192
+ bottom: 0,
193
+ left: 0,
194
+ right: 0,
195
+ height: 35,
196
+ backgroundColor: '#F8F9FB',
197
+ borderTop: '1px solid',
198
+ borderColor: theme.palette.divider,
199
+ }));
200
+ export const CreateButtonWrapper = styled(Box)(() => ({
201
+ position: 'absolute',
202
+ bottom: 12,
203
+ right: 16,
204
+ padding: 6,
205
+ backgroundColor: 'white',
206
+ }));
207
+ export const SubmenuPaper = styled(Paper)(() => ({
208
+ paddingTop: 4,
209
+ paddingBottom: 4,
210
+ minWidth: 180,
211
+ boxShadow: '0 4px 12px rgba(0,0,0,0.15)',
212
+ borderRadius: '8px',
213
+ }));
214
+ export const SubmenuItem = styled(Box)(({ theme }) => ({
215
+ display: 'flex',
216
+ alignItems: 'center',
217
+ padding: '8px 12px',
218
+ cursor: 'pointer',
219
+ }));
220
+ export const DeleteButton = styled(Button)(() => ({
221
+ color: '#FF0000',
222
+ textTransform: 'none',
223
+ fontSize: 10,
224
+ fontWeight: 500,
225
+ borderRadius: '4px',
226
+ border: '1px solid #F4F4F4',
227
+ paddingLeft: 8,
228
+ paddingRight: 8,
229
+ paddingTop: 4,
230
+ paddingBottom: 4,
231
+ '&:hover': {
232
+ backgroundColor: 'transparent',
233
+ },
234
+ }));
235
+ export const CreateButton = styled(Button)(({ theme }) => ({
236
+ fontSize: 9,
237
+ fontWeight: 600,
238
+ borderRadius: 4,
239
+ paddingLeft: 20,
240
+ paddingRight: 20,
241
+ paddingTop: 8,
242
+ paddingBottom: 8,
243
+ textTransform: 'none',
244
+ backgroundColor: '#1F88D0',
245
+ '&:hover': {
246
+ backgroundColor: '#1A7BC0',
247
+ },
248
+ '&.Mui-disabled': {
249
+ backgroundColor: theme.palette.grey[300],
250
+ color: theme.palette.grey[500],
251
+ },
252
+ }));
253
+ export const NameTextField = styled(TextField)(({ theme }) => ({
254
+ '& .MuiFilledInput-root': {
255
+ borderRadius: '8px',
256
+ backgroundColor: theme.palette.background.paper,
257
+ border: '1px solid',
258
+ borderColor: theme.palette.divider,
259
+ '&:hover': {
260
+ backgroundColor: theme.palette.background.paper,
261
+ },
262
+ '&.Mui-focused': {
263
+ backgroundColor: theme.palette.background.paper,
264
+ },
265
+ '&::before, &::after': {
266
+ display: 'none',
267
+ },
268
+ },
269
+ }));
270
+ export const checkboxSx = {
271
+ display: 'flex',
272
+ alignItems: 'center',
273
+ justifyContent: 'center',
274
+ padding: 0,
275
+ width: 14,
276
+ height: 14,
277
+ minWidth: 14,
278
+ minHeight: 14,
279
+ flexShrink: 0,
280
+ color: 'grey.A400',
281
+ '&.Mui-checked': {
282
+ color: 'info.dark',
283
+ },
284
+ '&.MuiCheckbox-indeterminate': {
285
+ color: 'info.dark',
286
+ },
287
+ '&.Mui-disabled.Mui-checked': {
288
+ color: 'grey.500',
289
+ '& .MuiSvgIcon-root': {
290
+ backgroundColor: 'grey.500',
291
+ borderRadius: '3px',
292
+ color: '#fff',
293
+ },
294
+ },
295
+ '& .MuiSvgIcon-root': {
296
+ width: 14,
297
+ height: 14,
298
+ },
299
+ '& img': {
300
+ width: 14,
301
+ height: 14,
302
+ },
303
+ };
304
+ export const getDialogPaperStyle = (width, height) => ({
305
+ margin: 0,
306
+ maxHeight: '100%',
307
+ maxWidth: 'none',
308
+ width,
309
+ height,
310
+ borderRadius: 12,
311
+ overflow: 'hidden',
312
+ boxShadow: '0px 8px 32px rgba(0, 0, 0, 0.15)',
313
+ });
314
+ export const dialogSx = {
315
+ backgroundColor: 'transparent',
316
+ pointerEvents: 'none',
317
+ zIndex: 1300,
318
+ '& .MuiDialog-container': {
319
+ transition: 'none !important',
320
+ zIndex: 1300,
321
+ },
322
+ '& .MuiDialog-paper': {
323
+ transition: 'none !important',
324
+ pointerEvents: 'auto',
325
+ zIndex: 1300,
326
+ },
327
+ };
328
+ export const ResetHeaderBox = styled(Box)(({ theme }) => ({
329
+ display: 'flex',
330
+ alignItems: 'center',
331
+ justifyContent: 'space-between',
332
+ paddingLeft: theme.spacing(1.5),
333
+ paddingRight: theme.spacing(1.5),
334
+ paddingTop: theme.spacing(1),
335
+ paddingBottom: theme.spacing(1),
336
+ cursor: 'pointer',
337
+ '&:hover': {
338
+ backgroundColor: theme.palette.action.hover,
339
+ },
340
+ }));
341
+ export const ResetCheckboxSx = {
342
+ p: 0,
343
+ width: 14,
344
+ height: 14,
345
+ minWidth: 14,
346
+ minHeight: 14,
347
+ '&.Mui-checked': { color: 'info.dark' },
348
+ '&.MuiCheckbox-indeterminate': { color: 'info.dark' },
349
+ '& .MuiSvgIcon-root': { width: 14, height: 14 },
350
+ };
351
+ export const SubmenuContainer = styled(Box)(() => ({
352
+ minWidth: 200,
353
+ display: 'flex',
354
+ flexDirection: 'column',
355
+ maxHeight: '80vh',
356
+ overflow: 'hidden',
357
+ }));
358
+ export const ColumnItemsContainer = styled(Box)(() => ({
359
+ flex: 1,
360
+ overflowY: 'auto',
361
+ paddingLeft: 6,
362
+ paddingRight: 6,
363
+ minHeight: 0,
364
+ }));
365
+ export const SaveCustomViewBox = styled(Box)(() => ({
366
+ paddingLeft: 8,
367
+ paddingRight: 8,
368
+ paddingTop: 8,
369
+ paddingBottom: 8,
370
+ flexShrink: 0,
371
+ }));
372
+ export const SaveCustomViewInnerBox = styled(Box)(({ disabled }) => ({
373
+ width: '100%',
374
+ borderRadius: '8px',
375
+ backgroundColor: '#1F88D00D',
376
+ padding: '8px',
377
+ marginLeft: 6,
378
+ marginRight: 6,
379
+ display: 'flex',
380
+ flexDirection: 'column',
381
+ gap: '6px',
382
+ cursor: disabled ? 'not-allowed' : 'pointer',
383
+ opacity: disabled ? 0.5 : 1,
384
+ }));
385
+ export const ButtonsContainer = styled(Box)(({ theme }) => ({
386
+ display: 'flex',
387
+ justifyContent: 'flex-end',
388
+ gap: 12,
389
+ paddingTop: 8,
390
+ paddingBottom: 8,
391
+ paddingLeft: 12,
392
+ paddingRight: 12,
393
+ flexShrink: 0,
394
+ borderTop: '1px solid',
395
+ borderColor: theme.palette.divider,
396
+ }));
397
+ export const CancelButtonSx = {
398
+ fontSize: 11,
399
+ fontWeight: 400,
400
+ textTransform: 'none',
401
+ color: 'text.primary',
402
+ minWidth: 80,
403
+ height: 38,
404
+ borderRadius: '8px',
405
+ border: '1px solid #F2F2F2',
406
+ };
407
+ export const OkayButtonSx = {
408
+ fontSize: 11,
409
+ fontWeight: 500,
410
+ textTransform: 'none',
411
+ backgroundColor: '#1F88D0',
412
+ minWidth: 80,
413
+ height: 38,
414
+ borderRadius: '8px',
415
+ boxShadow: 'none',
416
+ '&:hover': {
417
+ backgroundColor: '#1976B8',
418
+ boxShadow: 'none',
419
+ },
420
+ };
421
+ export const ModifiedTextSx = {
422
+ color: '#20232B80',
423
+ fontSize: '9px',
424
+ fontWeight: 500,
425
+ marginLeft: '4px',
426
+ };
@@ -0,0 +1,199 @@
1
+ /// <reference types="react" />
2
+ import type { ColumnViewProps, TableMode } from '../../../types/index.js';
3
+ import type { TableHeaderProps, ViewOption } from '../type';
4
+ export interface ViewMenuItem {
5
+ label: string;
6
+ id: string;
7
+ templateId?: string;
8
+ columns?: string[];
9
+ submenu?: ColumnViewProps[];
10
+ isCustom?: boolean;
11
+ default?: boolean;
12
+ }
13
+ export interface FieldItem {
14
+ code: string;
15
+ name: {
16
+ text: string;
17
+ lang: string;
18
+ }[];
19
+ order?: number | null;
20
+ default?: boolean;
21
+ }
22
+ export interface ColumnItem {
23
+ code: string;
24
+ name: {
25
+ text: string;
26
+ lang: string;
27
+ }[];
28
+ order?: number;
29
+ default?: boolean;
30
+ fields?: FieldItem[];
31
+ }
32
+ export interface LayoutSection {
33
+ code: string;
34
+ columns: ColumnItem[];
35
+ }
36
+ export interface TemplateAPIMetadata {
37
+ segment: string;
38
+ app: string;
39
+ service: string;
40
+ user: {
41
+ id: string;
42
+ };
43
+ master_template_id?: string;
44
+ }
45
+ export interface CreateTemplatePayload extends TemplateAPIMetadata {
46
+ name: string;
47
+ layout: LayoutSection[];
48
+ }
49
+ export interface UpdateTemplatePayload extends TemplateAPIMetadata {
50
+ name: string;
51
+ layout: LayoutSection[];
52
+ }
53
+ export interface TemplateResponse {
54
+ templateId: string;
55
+ segment: string;
56
+ app: string;
57
+ service: string;
58
+ name: string;
59
+ layout: LayoutSection[];
60
+ id: {
61
+ timestamp: number;
62
+ date: string;
63
+ };
64
+ masterTemplateId: string;
65
+ user: {
66
+ id: string;
67
+ };
68
+ created: number;
69
+ updated: number;
70
+ default: boolean;
71
+ object?: string;
72
+ master?: boolean;
73
+ live_mode?: boolean;
74
+ api_version?: string;
75
+ feature_version?: string;
76
+ }
77
+ export interface TemplatesListResponse {
78
+ object: string;
79
+ live_mode: boolean;
80
+ api_version: string;
81
+ feature_version: string;
82
+ count: number;
83
+ has_more: boolean;
84
+ templates: TemplateResponse[];
85
+ }
86
+ export interface CreateCustomViewDialogProps {
87
+ open: boolean;
88
+ onClose: () => void;
89
+ onCreate?: (data: {
90
+ name: string;
91
+ selectedColumns: ColumnViewProps[];
92
+ layout: LayoutSection;
93
+ }) => Promise<void>;
94
+ availableColumns?: ColumnViewProps[];
95
+ defaultColumns?: ColumnViewProps[];
96
+ editingView?: {
97
+ id: string;
98
+ label: string;
99
+ templateId?: string;
100
+ submenu?: ColumnViewProps[];
101
+ } | null;
102
+ onDelete?: (viewId: string) => Promise<void>;
103
+ tableViews?: ColumnViewProps[];
104
+ mode?: TableMode;
105
+ }
106
+ export interface ColumnCheckState {
107
+ checked: boolean;
108
+ indeterminate: boolean;
109
+ }
110
+ export interface ViewSelectorProps {
111
+ onViewChange?: TableHeaderProps['onViewChange'];
112
+ setIsViewVisible: (visible: boolean) => void;
113
+ setTableViews?: TableHeaderProps['setTableViews'];
114
+ tableViews?: TableHeaderProps['tableViews'];
115
+ resetTableViews?: TableHeaderProps['resetTableViews'];
116
+ customViews?: ViewMenuItem[];
117
+ onCreateCustomView?: (data: {
118
+ name: string;
119
+ selectedColumns: ColumnViewProps[];
120
+ layout: LayoutSection;
121
+ }) => Promise<void>;
122
+ onEditCustomView?: (viewId: string, data: {
123
+ name: string;
124
+ selectedColumns: ColumnViewProps[];
125
+ layout: LayoutSection;
126
+ }) => Promise<void>;
127
+ onDeleteCustomView?: (viewId: string) => Promise<void>;
128
+ tableMode?: TableMode;
129
+ onTableViewsChange?: (tableViews: ColumnViewProps[]) => void;
130
+ initialTableViews?: ColumnViewProps[];
131
+ onCustomViewsChange?: (customViews: ViewMenuItem[]) => void;
132
+ initialCustomViews?: ViewMenuItem[];
133
+ layoutData?: LayoutSection[];
134
+ templates?: TemplatesListResponse | TemplateResponse[];
135
+ lang?: string;
136
+ apiMetadata?: TemplateAPIMetadata;
137
+ }
138
+ export interface ViewsDropdownProps {
139
+ open: boolean;
140
+ selectedViewInfo: ViewOption;
141
+ setSelectedViewInfo: (selected: ViewOption, viewMenuItem?: ViewMenuItem) => void;
142
+ onSelect: (e: React.MouseEvent<HTMLDivElement>) => void;
143
+ setViews?: (views: string[]) => void;
144
+ anchorEl: Element | null;
145
+ onCreateCustomView?: (useCurrentState?: boolean) => void;
146
+ customViews?: ViewMenuItem[];
147
+ onEditCustomView?: (view: ViewMenuItem) => void;
148
+ onSaveDefaultColumns?: (columns: ColumnViewProps[]) => void;
149
+ defaultColumns?: ColumnViewProps[];
150
+ setDefaultColumns?: (columns: ColumnViewProps[]) => void;
151
+ updateSelectedView?: (view: ViewMenuItem) => void;
152
+ mode?: TableMode;
153
+ defaultTemplate?: ViewMenuItem;
154
+ }
155
+ export interface ColumnListProps {
156
+ selectedColumns: ColumnViewProps[];
157
+ columnNames: string[];
158
+ allSelected: boolean;
159
+ someSelected: boolean;
160
+ hoveredColumn: string | null;
161
+ anchorEl: HTMLElement | null;
162
+ onReorder: (reorderedNames: string[]) => void;
163
+ onColumnToggle: (columnName: string) => void;
164
+ onSubItemToggle: (columnName: string, subItemName: string) => void;
165
+ onSelectAll: () => void;
166
+ onResetToDefault: () => void;
167
+ onSubmenuEnter: (columnName: string, element: HTMLElement) => void;
168
+ onSubmenuLeave: () => void;
169
+ onCancelClose: () => void;
170
+ hasChanges?: boolean;
171
+ }
172
+ export interface ViewsSubmenuProps {
173
+ columns: ColumnViewProps[];
174
+ allCurrentSelected: boolean;
175
+ someCurrentSelected: boolean;
176
+ onSelectAll: () => void;
177
+ onReset: () => void;
178
+ onColumnToggle: (columnName: string) => void;
179
+ onNestedItemToggle: (columnName: string, subItemName: string) => void;
180
+ onReorder: (reorderedColumnNames: string[]) => void;
181
+ anchorEl: HTMLElement | null;
182
+ isModified?: boolean;
183
+ }
184
+ export interface UseCreateViewDialogProps {
185
+ open: boolean;
186
+ availableColumns: ColumnViewProps[];
187
+ defaultColumns: ColumnViewProps[];
188
+ editingView?: {
189
+ id: string;
190
+ label: string;
191
+ submenu?: ColumnViewProps[];
192
+ } | null;
193
+ tableViews?: ColumnViewProps[];
194
+ }
195
+ export interface UseViewsManagerProps {
196
+ tableMode: TableMode;
197
+ templates?: TemplatesListResponse | TemplateResponse[];
198
+ lang?: string;
199
+ }