@tap-payments/os-micro-frontend-shared 0.1.411 → 0.1.412-test.1

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 (118) hide show
  1. package/build/components/AnimatedSpinnerIcon/style.d.ts +0 -1
  2. package/build/components/Chip/style.d.ts +0 -1
  3. package/build/components/CountBadge/style.d.ts +0 -1
  4. package/build/components/Dialog/style.d.ts +0 -1
  5. package/build/components/FlippingCard/style.d.ts +0 -1
  6. package/build/components/ImageWrapper/ImageWrapper.d.ts +0 -1
  7. package/build/components/JSONViewer/style.d.ts +0 -1
  8. package/build/components/LeftPeekRightExpandingChip/style.d.ts +0 -1
  9. package/build/components/RightLeftExpandingCenterChip/style.d.ts +0 -1
  10. package/build/components/SearchButton/styles.d.ts +0 -1
  11. package/build/components/StatusIcons/AuthIcons/style.d.ts +0 -1
  12. package/build/components/StatusIcons/AuthorizationAutoIcons/style.d.ts +0 -1
  13. package/build/components/StatusIcons/ChargeStatusIcon/style.d.ts +0 -1
  14. package/build/components/StatusIcons/SourceIcons/style.d.ts +0 -1
  15. package/build/components/TableCells/CustomCells/ActionCell/style.d.ts +0 -1
  16. package/build/components/TableCells/CustomCells/AgreementCell/style.d.ts +0 -1
  17. package/build/components/TableCells/CustomCells/ApplicationStatusCell/style.d.ts +0 -1
  18. package/build/components/TableCells/CustomCells/AuthenticationCell/style.d.ts +0 -1
  19. package/build/components/TableCells/CustomCells/AuthenticationStatusCell/style.d.ts +0 -1
  20. package/build/components/TableCells/CustomCells/AuthenticationTypeCell/style.d.ts +0 -1
  21. package/build/components/TableCells/CustomCells/BalanceCell/style.d.ts +0 -1
  22. package/build/components/TableCells/CustomCells/ChannelsCell/style.d.ts +0 -1
  23. package/build/components/TableCells/CustomCells/CheckoutStatusCell/style.d.ts +0 -1
  24. package/build/components/TableCells/CustomCells/DestinationStatusCell/style.d.ts +0 -1
  25. package/build/components/TableCells/CustomCells/DueDateCell/style.d.ts +0 -1
  26. package/build/components/TableCells/CustomCells/IDButton/style.d.ts +0 -1
  27. package/build/components/TableCells/CustomCells/IntentsStatusCell/style.d.ts +0 -1
  28. package/build/components/TableCells/CustomCells/InvoiceStatusCell/style.d.ts +0 -1
  29. package/build/components/TableCells/CustomCells/PayoutReportCell/style.d.ts +0 -1
  30. package/build/components/TableCells/CustomCells/PayoutStatusCell/style.d.ts +0 -1
  31. package/build/components/TableCells/CustomCells/ProductsCell/style.d.ts +0 -1
  32. package/build/components/TableCells/CustomCells/ReferenceCell/style.d.ts +0 -1
  33. package/build/components/TableCells/CustomCells/RefundChargeCell/style.d.ts +0 -1
  34. package/build/components/TableCells/CustomCells/RefundStatusCell/style.d.ts +0 -1
  35. package/build/components/TableCells/CustomCells/SalesChannelCell/style.d.ts +0 -1
  36. package/build/components/TableCells/CustomCells/SegmentsCell/style.d.ts +0 -1
  37. package/build/components/TableCells/CustomCells/StatusCell/style.d.ts +0 -1
  38. package/build/components/TableCells/CustomCells/TokenStatusCell/style.d.ts +0 -1
  39. package/build/components/TableCells/CustomCells/style.d.ts +0 -1
  40. package/build/components/TableHeader/FiltersRow.d.ts +1 -1
  41. package/build/components/TableHeader/FiltersRow.js +4 -2
  42. package/build/components/TableHeader/TableHeader.d.ts +1 -1
  43. package/build/components/TableHeader/TableHeader.js +2 -2
  44. package/build/components/TableHeader/TableView/CreateViewDialog.d.ts +3 -0
  45. package/build/components/TableHeader/TableView/CreateViewDialog.js +91 -0
  46. package/build/components/TableHeader/TableView/CustomViews.d.ts +1 -1
  47. package/build/components/TableHeader/TableView/CustomViews.js +1 -1
  48. package/build/components/TableHeader/TableView/DefaultViews.js +1 -1
  49. package/build/components/TableHeader/TableView/TableView.js +1 -2
  50. package/build/components/TableHeader/TableView/ViewsDropdown.d.ts +5 -0
  51. package/build/components/TableHeader/TableView/ViewsDropdown.js +153 -0
  52. package/build/components/TableHeader/TableView/ViewsMenu.d.ts +5 -0
  53. package/build/components/TableHeader/TableView/ViewsMenu.js +56 -0
  54. package/build/components/TableHeader/TableView/components/ColumnList.d.ts +3 -0
  55. package/build/components/TableHeader/TableView/components/ColumnList.js +70 -0
  56. package/build/components/TableHeader/TableView/components/ViewsSubmenu.d.ts +3 -0
  57. package/build/components/TableHeader/TableView/components/ViewsSubmenu.js +68 -0
  58. package/build/components/TableHeader/TableView/components/index.d.ts +2 -0
  59. package/build/components/TableHeader/TableView/components/index.js +2 -0
  60. package/build/components/TableHeader/TableView/constants.d.ts +25 -0
  61. package/build/components/TableHeader/TableView/constants.js +25 -0
  62. package/build/components/TableHeader/TableView/hooks/index.d.ts +6 -0
  63. package/build/components/TableHeader/TableView/hooks/index.js +6 -0
  64. package/build/components/TableHeader/TableView/hooks/useCreateViewDialog.d.ts +22 -0
  65. package/build/components/TableHeader/TableView/hooks/useCreateViewDialog.js +92 -0
  66. package/build/components/TableHeader/TableView/hooks/useDialogPosition.d.ts +8 -0
  67. package/build/components/TableHeader/TableView/hooks/useDialogPosition.js +16 -0
  68. package/build/components/TableHeader/TableView/hooks/useNestedSubmenu.d.ts +7 -0
  69. package/build/components/TableHeader/TableView/hooks/useNestedSubmenu.js +27 -0
  70. package/build/components/TableHeader/TableView/hooks/useOriginalColumns.d.ts +6 -0
  71. package/build/components/TableHeader/TableView/hooks/useOriginalColumns.js +18 -0
  72. package/build/components/TableHeader/TableView/hooks/useSubmenuHover.d.ts +8 -0
  73. package/build/components/TableHeader/TableView/hooks/useSubmenuHover.js +42 -0
  74. package/build/components/TableHeader/TableView/hooks/useViewsManager.d.ts +12 -0
  75. package/build/components/TableHeader/TableView/hooks/useViewsManager.js +32 -0
  76. package/build/components/TableHeader/TableView/hooks/useViewsMenu.d.ts +48 -0
  77. package/build/components/TableHeader/TableView/hooks/useViewsMenu.js +150 -0
  78. package/build/components/TableHeader/TableView/index.d.ts +11 -3
  79. package/build/components/TableHeader/TableView/index.js +10 -3
  80. package/build/components/TableHeader/TableView/styles.d.ts +127 -0
  81. package/build/components/TableHeader/TableView/styles.js +427 -0
  82. package/build/components/TableHeader/TableView/types.d.ts +198 -0
  83. package/build/components/TableHeader/TableView/utils/columnState.d.ts +20 -0
  84. package/build/components/TableHeader/TableView/utils/columnState.js +187 -0
  85. package/build/components/TableHeader/TableView/utils/index.d.ts +4 -0
  86. package/build/components/TableHeader/TableView/utils/index.js +4 -0
  87. package/build/components/TableHeader/TableView/utils/layoutTransform.d.ts +10 -0
  88. package/build/components/TableHeader/TableView/utils/layoutTransform.js +71 -0
  89. package/build/components/TableHeader/TableView/utils/templateToColumnsView.d.ts +30 -0
  90. package/build/components/TableHeader/TableView/utils/templateToColumnsView.js +144 -0
  91. package/build/components/TableHeader/TableView/utils/viewMenu.d.ts +36 -0
  92. package/build/components/TableHeader/TableView/utils/viewMenu.js +90 -0
  93. package/build/components/TableHeader/index.d.ts +2 -0
  94. package/build/components/TableHeader/index.js +1 -0
  95. package/build/components/TableHeader/type.d.ts +18 -1
  96. package/build/components/TableReports/components/DownloadButton/style.d.ts +0 -1
  97. package/build/components/TableReports/style.d.ts +0 -1
  98. package/build/components/VirtualTables/SheetViewVirtualTable/SheetViewVirtualTable.d.ts +1 -1
  99. package/build/components/VirtualTables/SheetViewVirtualTable/SheetViewVirtualTable.js +6 -3
  100. package/build/components/VirtualTables/SheetViewVirtualTable/components/SheetViewTableRowLoading.js +1 -2
  101. package/build/components/VirtualTables/SheetViewVirtualTable/hooks/usePinnedColumns.js +3 -2
  102. package/build/components/VirtualTables/VirtualTable/VirtualTable.d.ts +1 -1
  103. package/build/components/VirtualTables/VirtualTable/VirtualTable.js +4 -3
  104. package/build/components/VirtualTables/components/style.d.ts +0 -1
  105. package/build/constants/assets.d.ts +1 -0
  106. package/build/constants/assets.js +1 -0
  107. package/build/constants/table/cell/authenticationsTableCellWidth.d.ts +10 -0
  108. package/build/constants/table/cell/authenticationsTableCellWidth.js +10 -0
  109. package/build/types/table.d.ts +1 -0
  110. package/build/utils/index.d.ts +1 -0
  111. package/build/utils/index.js +1 -0
  112. package/build/utils/skeletonColumns.d.ts +4 -0
  113. package/build/utils/skeletonColumns.js +55 -0
  114. package/package.json +3 -3
  115. package/build/components/TableHeader/TableView/style.d.ts +0 -24
  116. package/build/components/TableHeader/TableView/style.js +0 -102
  117. package/build/components/TableHeader/TableView/type.d.ts +0 -10
  118. /package/build/components/TableHeader/TableView/{type.js → types.js} +0 -0
@@ -0,0 +1,427 @@
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: theme.palette.grey[50],
148
+ cursor: 'pointer',
149
+ '&:hover': {
150
+ backgroundColor: theme.palette.grey[100],
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: theme.palette.grey[50],
197
+ borderTop: '1px solid',
198
+ borderColor: theme.palette.divider,
199
+ }));
200
+ export const CreateButtonWrapper = styled(Box)(({ theme }) => ({
201
+ position: 'absolute',
202
+ bottom: 12,
203
+ right: 16,
204
+ padding: 6,
205
+ backgroundColor: theme.palette.background.paper,
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)(() => ({
215
+ display: 'flex',
216
+ alignItems: 'center',
217
+ padding: '8px 12px',
218
+ cursor: 'pointer',
219
+ }));
220
+ export const DeleteButton = styled(Button)(({ theme }) => ({
221
+ color: theme.palette.error.main,
222
+ textTransform: 'none',
223
+ fontSize: 10,
224
+ fontWeight: 500,
225
+ borderRadius: '4px',
226
+ border: `1px solid ${theme.palette.divider}`,
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: theme.palette.info.dark,
245
+ '&:hover': {
246
+ backgroundColor: theme.palette.info.main,
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)(({ theme, disabled }) => ({
373
+ width: '100%',
374
+ borderRadius: '8px',
375
+ backgroundColor: theme.palette.grey[50],
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',
406
+ borderColor: 'divider',
407
+ };
408
+ export const OkayButtonSx = {
409
+ fontSize: 11,
410
+ fontWeight: 500,
411
+ textTransform: 'none',
412
+ backgroundColor: 'info.dark',
413
+ minWidth: 80,
414
+ height: 38,
415
+ borderRadius: '8px',
416
+ boxShadow: 'none',
417
+ '&:hover': {
418
+ backgroundColor: 'info.main',
419
+ boxShadow: 'none',
420
+ },
421
+ };
422
+ export const ModifiedTextSx = {
423
+ color: 'text.secondary',
424
+ fontSize: '9px',
425
+ fontWeight: 500,
426
+ marginLeft: '4px',
427
+ };
@@ -0,0 +1,198 @@
1
+ /// <reference types="react" />
2
+ import type { ColumnViewProps, TableMode } from '../../../types/index.js';
3
+ import type { TableHeaderProps, ViewOption } from '../type';
4
+ export interface CustomViewsProps {
5
+ open: boolean;
6
+ onSelect: (e: React.MouseEvent<HTMLDivElement>) => void;
7
+ setTableViews: TableHeaderProps['setTableViews'];
8
+ tableViews: TableHeaderProps['tableViews'];
9
+ anchorEl: Element | null;
10
+ onClose?: () => void;
11
+ }
12
+ export interface ViewMenuItem {
13
+ label: string;
14
+ id: string;
15
+ templateId?: string;
16
+ columns?: string[];
17
+ submenu?: ColumnViewProps[];
18
+ isCustom?: boolean;
19
+ default?: boolean;
20
+ }
21
+ export interface FieldItem {
22
+ code: string;
23
+ name: {
24
+ text: string;
25
+ lang: string;
26
+ }[];
27
+ order?: number | null;
28
+ default?: boolean;
29
+ }
30
+ export interface ColumnItem {
31
+ code: string;
32
+ name: {
33
+ text: string;
34
+ lang: string;
35
+ }[];
36
+ order?: number;
37
+ default?: boolean;
38
+ fields?: FieldItem[];
39
+ }
40
+ export interface LayoutSection {
41
+ code: string;
42
+ columns: ColumnItem[];
43
+ }
44
+ export interface TemplateAPIMetadata {
45
+ segment: string;
46
+ app: string;
47
+ service: string;
48
+ user: {
49
+ id: string;
50
+ };
51
+ master_template_id?: string;
52
+ }
53
+ export interface CreateTemplatePayload extends TemplateAPIMetadata {
54
+ name: string;
55
+ layout: LayoutSection[];
56
+ }
57
+ export interface UpdateTemplatePayload extends TemplateAPIMetadata {
58
+ name: string;
59
+ layout: LayoutSection[];
60
+ }
61
+ export interface Template {
62
+ templateId: string;
63
+ segment: string;
64
+ app: string;
65
+ service: string;
66
+ name: string;
67
+ layout: LayoutSection[];
68
+ id: string;
69
+ masterTemplateId: string;
70
+ user: {
71
+ id: string;
72
+ };
73
+ created: number;
74
+ updated: number;
75
+ default: boolean;
76
+ }
77
+ export interface TemplatesList {
78
+ object: string;
79
+ live_mode: boolean;
80
+ api_version: string;
81
+ feature_version: string;
82
+ count: number;
83
+ has_more: boolean;
84
+ templates: Template[];
85
+ }
86
+ export interface CreateOrEditViewPayload {
87
+ name: string;
88
+ selectedColumns: ColumnViewProps[];
89
+ layout: LayoutSection;
90
+ }
91
+ export interface ColumnChange {
92
+ columnName: string;
93
+ selected: boolean;
94
+ subItemName?: string;
95
+ }
96
+ export interface CreateCustomViewDialogProps {
97
+ open: boolean;
98
+ onClose: () => void;
99
+ onCreate?: (data: {
100
+ name: string;
101
+ selectedColumns: ColumnViewProps[];
102
+ layout: LayoutSection;
103
+ }) => Promise<void>;
104
+ availableColumns?: ColumnViewProps[];
105
+ defaultColumns?: ColumnViewProps[];
106
+ editingView?: {
107
+ id: string;
108
+ label: string;
109
+ templateId?: string;
110
+ submenu?: ColumnViewProps[];
111
+ } | null;
112
+ onDelete?: (viewId: string) => Promise<void>;
113
+ tableViews?: ColumnViewProps[];
114
+ mode?: TableMode;
115
+ }
116
+ export interface ColumnCheckState {
117
+ checked: boolean;
118
+ indeterminate: boolean;
119
+ }
120
+ export interface ViewsMenuProps {
121
+ onViewChange?: TableHeaderProps['onViewChange'];
122
+ onCreateCustomView?: (data: {
123
+ name: string;
124
+ selectedColumns: ColumnViewProps[];
125
+ layout: LayoutSection;
126
+ }) => Promise<{
127
+ templateId: string;
128
+ name: string;
129
+ } | void>;
130
+ onEditCustomView?: (viewId: string, data: CreateOrEditViewPayload) => Promise<void>;
131
+ onDeleteCustomView?: (viewId: string) => Promise<void>;
132
+ tableMode?: TableMode;
133
+ templates: Template[];
134
+ lang?: string;
135
+ }
136
+ export interface ViewsDropdownProps {
137
+ open: boolean;
138
+ selectedViewInfo: ViewOption;
139
+ setSelectedViewInfo: (selected: ViewOption, viewMenuItem?: ViewMenuItem) => void;
140
+ anchorEl: Element | null;
141
+ onClose?: () => void;
142
+ defaultModified?: boolean;
143
+ onMarkDefaultModified?: () => void;
144
+ onCreateCustomView?: (useCurrentState?: boolean, initialColumns?: ColumnViewProps[]) => void;
145
+ customViews?: ViewMenuItem[];
146
+ onEditCustomView?: (view: ViewMenuItem) => void;
147
+ onSaveDefaultColumns?: (columns: ColumnViewProps[]) => void;
148
+ defaultColumns?: ColumnViewProps[];
149
+ updateSelectedView?: (view: ViewMenuItem) => void;
150
+ baseDefaultColumns?: ColumnViewProps[];
151
+ mode?: TableMode;
152
+ defaultTemplate?: ViewMenuItem;
153
+ }
154
+ export interface ColumnListProps {
155
+ selectedColumns: ColumnViewProps[];
156
+ columnNames: string[];
157
+ allSelected: boolean;
158
+ someSelected: boolean;
159
+ hoveredColumn: string | null;
160
+ anchorEl: HTMLElement | null;
161
+ onReorder: (reorderedNames: string[]) => void;
162
+ onColumnToggle: (columnName: string) => void;
163
+ onSubItemToggle: (columnName: string, subItemName: string) => void;
164
+ onSelectAll: () => void;
165
+ onResetToDefault: () => void;
166
+ onSubmenuEnter: (columnName: string, element: HTMLElement) => void;
167
+ onSubmenuLeave: () => void;
168
+ onCancelClose: () => void;
169
+ hasChanges?: boolean;
170
+ }
171
+ export interface ViewsSubmenuProps {
172
+ columns: ColumnViewProps[];
173
+ allCurrentSelected: boolean;
174
+ someCurrentSelected: boolean;
175
+ onSelectAll: () => void;
176
+ onReset: () => void;
177
+ onColumnToggle: (columnName: string) => void;
178
+ onNestedItemToggle: (columnName: string, subItemName: string) => void;
179
+ onReorder: (reorderedColumnNames: string[]) => void;
180
+ anchorEl: HTMLElement | null;
181
+ isModified?: boolean;
182
+ }
183
+ export interface UseCreateViewDialogProps {
184
+ open: boolean;
185
+ availableColumns: ColumnViewProps[];
186
+ defaultColumns: ColumnViewProps[];
187
+ editingView?: {
188
+ id: string;
189
+ label: string;
190
+ submenu?: ColumnViewProps[];
191
+ } | null;
192
+ tableViews?: ColumnViewProps[];
193
+ }
194
+ export interface UseViewsManagerProps {
195
+ tableMode: TableMode;
196
+ templates: Template[];
197
+ lang?: string;
198
+ }
@@ -0,0 +1,20 @@
1
+ import type { ColumnViewProps } from '../../../../types/index.js';
2
+ import type { ColumnCheckState } from '../types';
3
+ export declare const getColumnCheckState: (column: ColumnViewProps) => ColumnCheckState;
4
+ export declare const toggleColumn: (columns: ColumnViewProps[], columnName: string) => ColumnViewProps[];
5
+ export declare const toggleSubItem: (columns: ColumnViewProps[], columnName: string, subItemName: string) => ColumnViewProps[];
6
+ export declare const toggleAllColumns: (columns: ColumnViewProps[], selectAll: boolean) => ColumnViewProps[];
7
+ export declare const areAllColumnsSelected: (columns: ColumnViewProps[]) => boolean;
8
+ export declare const areSomeColumnsSelected: (columns: ColumnViewProps[], allSelected: boolean) => boolean;
9
+ export declare const isValidTemplateName: (name: string, maxLength: number) => boolean;
10
+ export declare const deepCloneColumns: (columns: ColumnViewProps[]) => ColumnViewProps[];
11
+ export declare const toggleSingleColumn: (columns: ColumnViewProps[], columnName: string) => ColumnViewProps[];
12
+ export declare const toggleAllCurrentColumns: (columns: ColumnViewProps[], shouldSelect: boolean) => ColumnViewProps[];
13
+ export declare const areAllCurrentColumnsSelected: (columns: ColumnViewProps[]) => boolean;
14
+ export declare const areSomeCurrentColumnsSelected: (columns: ColumnViewProps[], allSelected: boolean) => boolean;
15
+ export declare const normalizeColumnsSelected: (columns: ColumnViewProps[]) => ColumnViewProps[];
16
+ export declare const areColumnsEqual: (cols1: ColumnViewProps[], cols2: ColumnViewProps[]) => boolean;
17
+ export declare const resetColumnsToDefault: (columns: ColumnViewProps[]) => ColumnViewProps[];
18
+ export declare const initializeEditingColumns: (editingColumns: ColumnViewProps[], availableColumns: ColumnViewProps[]) => ColumnViewProps[];
19
+ export declare const initializeCreateColumns: (availableColumns: ColumnViewProps[]) => ColumnViewProps[];
20
+ export declare const initializeCreateColumnsWithCurrentState: (availableColumns: ColumnViewProps[], currentTableViews: ColumnViewProps[]) => ColumnViewProps[];