@propellerads/table 6.0.0 → 6.0.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.
- package/dist/index.d.ts +4 -2
- package/dist/index.js +340 -343
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as styled_components_dist_types from 'styled-components/dist/types';
|
|
2
3
|
import * as styled_components from 'styled-components';
|
|
4
|
+
import * as react from 'react';
|
|
5
|
+
import { CSSProperties, ComponentPropsWithoutRef, ReactNode, ComponentType, ReactElement } from 'react';
|
|
3
6
|
import { RowData, Cell, HeaderGroup, Header, ColumnDef, Row, TableState, VisibilityState, SortingState } from '@tanstack/react-table';
|
|
4
7
|
export { SortingState, VisibilityState } from '@tanstack/react-table';
|
|
5
|
-
import { CSSProperties, ComponentPropsWithoutRef, ReactNode, ComponentType, ReactElement } from 'react';
|
|
6
8
|
|
|
7
9
|
declare module '@tanstack/react-table' {
|
|
8
10
|
interface ColumnMeta<TData extends RowData, TValue> {
|
|
@@ -102,7 +104,7 @@ declare const defaultProps: {
|
|
|
102
104
|
parentElementId: string;
|
|
103
105
|
tableContentId: string;
|
|
104
106
|
showLoadingState: boolean;
|
|
105
|
-
LoadingCellComponent:
|
|
107
|
+
LoadingCellComponent: styled_components_dist_types.IStyledComponentBase<"web", styled_components.FastOmit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
106
108
|
getRowPreProps: () => RowPreProps;
|
|
107
109
|
isEnableRowSelect: () => boolean;
|
|
108
110
|
selectColumnProps: {};
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
1
|
+
import { ArrowDown as e, ArrowUp as t, Color as n, Size as r } from "@propellerads/icon";
|
|
2
|
+
import i from "@propellerads/input-checkbox";
|
|
3
|
+
import { Fragment as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
|
|
4
|
+
import { flexRender as u, getCoreRowModel as ee, getExpandedRowModel as te, getPaginationRowModel as ne, getSortedRowModel as re, useReactTable as ie } from "@tanstack/react-table";
|
|
5
|
+
import d, { css as f, keyframes as p } from "styled-components";
|
|
6
|
+
import { black as m, fontNormal as ae, gray80 as h, gray95 as g, spacing as _, white as v } from "@propellerads/stylevariables";
|
|
7
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
8
|
+
//#region src/propsGetter.tsx
|
|
9
|
+
var x = (e) => e.column.columnDef.meta?.align, oe = (e) => e.column.columnDef.meta?.align, S = p`
|
|
9
10
|
from {
|
|
10
11
|
background-position-x: 0;
|
|
11
12
|
}
|
|
@@ -15,7 +16,7 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
15
16
|
100% {
|
|
16
17
|
background-position-x: 0;
|
|
17
18
|
}
|
|
18
|
-
`,
|
|
19
|
+
`, se = d.div`
|
|
19
20
|
display: block;
|
|
20
21
|
position: absolute;
|
|
21
22
|
left: 0;
|
|
@@ -28,12 +29,12 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
28
29
|
opacity: 0;
|
|
29
30
|
pointer-events: none;
|
|
30
31
|
|
|
31
|
-
${({ $isLoading: e }) => e &&
|
|
32
|
+
${({ $isLoading: e }) => e && f`
|
|
32
33
|
opacity: 1;
|
|
33
34
|
z-index: 2;
|
|
34
35
|
pointer-events: all;
|
|
35
36
|
`}
|
|
36
|
-
`,
|
|
37
|
+
`, ce = d.div`
|
|
37
38
|
position: absolute;
|
|
38
39
|
display: block;
|
|
39
40
|
text-align: center;
|
|
@@ -43,7 +44,7 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
43
44
|
color: rgba(0, 0, 0, 0.6);
|
|
44
45
|
transform: translateY(-52%);
|
|
45
46
|
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
46
|
-
`,
|
|
47
|
+
`, le = d.div`
|
|
47
48
|
position: relative;
|
|
48
49
|
overflow: hidden;
|
|
49
50
|
|
|
@@ -86,26 +87,26 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
86
87
|
opacity: 1 !important;
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
|
-
`,
|
|
90
|
-
font-size: ${
|
|
90
|
+
`, ue = d.div`
|
|
91
|
+
font-size: ${ae}px;
|
|
91
92
|
position: relative;
|
|
92
93
|
display: flex;
|
|
93
94
|
flex-direction: column;
|
|
94
95
|
border: 0;
|
|
95
|
-
`,
|
|
96
|
+
`, de = d.div`
|
|
96
97
|
display: block;
|
|
97
98
|
max-width: 100%;
|
|
98
99
|
overflow-x: scroll;
|
|
99
100
|
overflow-y: hidden;
|
|
100
|
-
`,
|
|
101
|
+
`, fe = d.div`
|
|
101
102
|
flex: auto 1;
|
|
102
103
|
display: flex;
|
|
103
104
|
flex-direction: column;
|
|
104
105
|
align-items: stretch;
|
|
105
106
|
border-collapse: collapse;
|
|
106
|
-
`,
|
|
107
|
+
`, C = d.div`
|
|
107
108
|
display: inline-flex;
|
|
108
|
-
`,
|
|
109
|
+
`, w = d.div`
|
|
109
110
|
flex: 0 0 ${({ $size: e }) => e ?? 50}px;
|
|
110
111
|
width: ${({ $size: e }) => e ?? 50}px;
|
|
111
112
|
white-space: nowrap;
|
|
@@ -115,16 +116,16 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
115
116
|
overflow: hidden;
|
|
116
117
|
transition: width 0.3s ease 0s, min-width, padding, opacity;
|
|
117
118
|
|
|
118
|
-
${({ $align: e }) => e &&
|
|
119
|
+
${({ $align: e }) => e && f`
|
|
119
120
|
text-align: ${e};
|
|
120
121
|
`}
|
|
121
|
-
`,
|
|
122
|
+
`, T = d.div`
|
|
122
123
|
width: 100%;
|
|
123
|
-
height: ${
|
|
124
|
-
background: linear-gradient(to left, ${
|
|
124
|
+
height: ${_ * 4}px;
|
|
125
|
+
background: linear-gradient(to left, ${g}, ${v}, ${g});
|
|
125
126
|
background-size: 200% 200%;
|
|
126
|
-
animation: ${
|
|
127
|
-
`,
|
|
127
|
+
animation: ${S} 1.6s linear infinite;
|
|
128
|
+
`, E = d.div`
|
|
128
129
|
flex: 0 0 ${({ $size: e }) => e ?? 50}px;
|
|
129
130
|
width: ${({ $size: e }) => e ?? 50}px;
|
|
130
131
|
padding: 0 4px;
|
|
@@ -135,46 +136,46 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
135
136
|
font-weight: 500;
|
|
136
137
|
outline: none;
|
|
137
138
|
|
|
138
|
-
${({ $align: e }) => e &&
|
|
139
|
+
${({ $align: e }) => e && f`
|
|
139
140
|
text-align: ${e};
|
|
140
141
|
`}
|
|
141
|
-
`,
|
|
142
|
+
`, pe = d.div`
|
|
142
143
|
flex: 1 0 auto;
|
|
143
144
|
display: flex;
|
|
144
145
|
flex-direction: column;
|
|
145
146
|
user-select: none;
|
|
146
147
|
|
|
147
|
-
${
|
|
148
|
+
${E}, ${w} {
|
|
148
149
|
padding: 0 4px;
|
|
149
150
|
line-height: normal;
|
|
150
151
|
position: relative;
|
|
151
152
|
transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
152
|
-
color: ${
|
|
153
|
+
color: ${m};
|
|
153
154
|
font-weight: 500;
|
|
154
155
|
outline: none;
|
|
155
156
|
}
|
|
156
|
-
`,
|
|
157
|
+
`, D = d.div`
|
|
157
158
|
display: flex;
|
|
158
159
|
flex: 1 0 auto;
|
|
159
|
-
box-shadow: inset 0 -1px 0 0 ${
|
|
160
|
+
box-shadow: inset 0 -1px 0 0 ${g};
|
|
160
161
|
min-width: 100%;
|
|
161
162
|
width: max-content;
|
|
162
|
-
`,
|
|
163
|
+
`, O = d.div`
|
|
163
164
|
display: flex;
|
|
164
165
|
flex: 1 0 auto;
|
|
165
166
|
padding: 0;
|
|
166
167
|
align-items: center;
|
|
167
|
-
`,
|
|
168
|
-
border-top: 1px solid ${
|
|
169
|
-
margin-top: ${
|
|
168
|
+
`, me = d.div`
|
|
169
|
+
border-top: 1px solid ${h};
|
|
170
|
+
margin-top: ${_ * 2}px;
|
|
170
171
|
min-width: 100%;
|
|
171
172
|
width: max-content;
|
|
172
|
-
`,
|
|
173
|
-
background: ${
|
|
173
|
+
`, k = d.div`
|
|
174
|
+
background: ${g};
|
|
174
175
|
flex: 1 0 auto;
|
|
175
176
|
display: flex;
|
|
176
177
|
flex-direction: column;
|
|
177
|
-
`,
|
|
178
|
+
`, A = d.div`
|
|
178
179
|
display: inline-block;
|
|
179
180
|
position: absolute;
|
|
180
181
|
right: 5px;
|
|
@@ -188,310 +189,306 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
|
|
|
188
189
|
right: 0;
|
|
189
190
|
top: 0;
|
|
190
191
|
}
|
|
191
|
-
`,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
},
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
},
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
!h && !o.length && ze,
|
|
490
|
-
ee
|
|
491
|
-
] });
|
|
492
|
-
};
|
|
493
|
-
export {
|
|
494
|
-
Rt as default,
|
|
495
|
-
u as defaultProps
|
|
192
|
+
`, j = {
|
|
193
|
+
Top: "top",
|
|
194
|
+
Bottom: "bottom"
|
|
195
|
+
}, he = (e, t, n, r, i) => ({
|
|
196
|
+
loadingColumns: s(() => e && t ? r.map((e) => ({
|
|
197
|
+
...e,
|
|
198
|
+
cell: () => /* @__PURE__ */ y(i, {})
|
|
199
|
+
})) : [], [
|
|
200
|
+
r,
|
|
201
|
+
t,
|
|
202
|
+
e
|
|
203
|
+
]),
|
|
204
|
+
loadingData: s(() => {
|
|
205
|
+
if (e && t && r && r.length > 0) {
|
|
206
|
+
let e = {}, t = [];
|
|
207
|
+
for (let t = 0; t < r.length; t += 1) e[`empty_${t}`] = "";
|
|
208
|
+
for (let r = 0; r < n; r += 1) t.push(e);
|
|
209
|
+
return t;
|
|
210
|
+
}
|
|
211
|
+
return [];
|
|
212
|
+
}, [
|
|
213
|
+
r,
|
|
214
|
+
t,
|
|
215
|
+
n,
|
|
216
|
+
e
|
|
217
|
+
])
|
|
218
|
+
}), M = {
|
|
219
|
+
Left: "shadow_left",
|
|
220
|
+
Right: "shadow_right"
|
|
221
|
+
}, N = (e, t) => {
|
|
222
|
+
let { classList: n } = e;
|
|
223
|
+
n.remove(M.Left, M.Right), n.add(...t);
|
|
224
|
+
}, P = (e, t) => {
|
|
225
|
+
if (!e || !t) return;
|
|
226
|
+
let n = e.getBoundingClientRect(), r = t.getBoundingClientRect(), i = [], a = Math.floor(n.left), o = Math.floor(n.right), s = Math.floor(r.left), c = Math.floor(r.right);
|
|
227
|
+
a < s && i.push(M.Left), o > c && i.push(M.Right), N(t, i);
|
|
228
|
+
}, ge = (e, t) => {
|
|
229
|
+
o(() => {
|
|
230
|
+
let n = !1, r = () => {
|
|
231
|
+
n ||= (window.requestAnimationFrame(() => {
|
|
232
|
+
P(e.current, t.current), n = !1;
|
|
233
|
+
}), !0);
|
|
234
|
+
};
|
|
235
|
+
return P(e.current, t.current), e?.current?.addEventListener("mousewheel", r), window.addEventListener("resize", r), () => {
|
|
236
|
+
e?.current?.removeEventListener("mousewheel", r), window.removeEventListener("resize", r);
|
|
237
|
+
};
|
|
238
|
+
}, [e.current, t.current]);
|
|
239
|
+
}, F = () => !0, I = {}, L = () => ({}), _e = (e) => {
|
|
240
|
+
let { subRows: t } = e;
|
|
241
|
+
if (Array.isArray(t)) return t;
|
|
242
|
+
}, R = {
|
|
243
|
+
hasDefaultPagination: !1,
|
|
244
|
+
isLoading: !1,
|
|
245
|
+
footerPlacement: [],
|
|
246
|
+
loadingMessage: "loading...",
|
|
247
|
+
labelPerPage: "Show rows",
|
|
248
|
+
parentElementId: "parent-element",
|
|
249
|
+
tableContentId: "",
|
|
250
|
+
showLoadingState: !1,
|
|
251
|
+
LoadingCellComponent: T,
|
|
252
|
+
getRowPreProps: L,
|
|
253
|
+
isEnableRowSelect: F,
|
|
254
|
+
selectColumnProps: I,
|
|
255
|
+
noDataMessage: ""
|
|
256
|
+
}, ve = 0, z = 10, ye = (i) => {
|
|
257
|
+
let a = i.column.getIsSorted(), o = u(i.column.columnDef.header, i.getContext());
|
|
258
|
+
return a === "desc" ? /* @__PURE__ */ b(C, { children: [o, /* @__PURE__ */ y(t, {
|
|
259
|
+
size: r.Small,
|
|
260
|
+
color: n.GrayDark
|
|
261
|
+
})] }) : a === "asc" ? /* @__PURE__ */ b(C, { children: [o, /* @__PURE__ */ y(e, {
|
|
262
|
+
size: r.Small,
|
|
263
|
+
color: n.GrayDark
|
|
264
|
+
})] }) : o;
|
|
265
|
+
}, be = (e) => e.column.getCanResize() ? /* @__PURE__ */ y(A, {
|
|
266
|
+
onMouseDown: e.getResizeHandler(),
|
|
267
|
+
onTouchStart: e.getResizeHandler(),
|
|
268
|
+
onClick: (e) => {
|
|
269
|
+
e.preventDefault(), e.stopPropagation();
|
|
270
|
+
}
|
|
271
|
+
}) : null, B = ({ columns: e, data: t, totalItems: n, fetchData: r, controlledPagination: d, initialState: f, isLoading: p = R.isLoading, loadingMessage: m = R.loadingMessage, labelPerPage: ae = R.labelPerPage, footerPlacement: h = R.footerPlacement, onSortedChange: g, hasDefaultPagination: _ = R.hasDefaultPagination, onSelectRowsChange: v, parentElementId: S = R.parentElementId, tableContentId: C = R.tableContentId, LoadingCellComponent: T = R.LoadingCellComponent, PaginationComponent: A, getRowPreProps: M = L, getRowId: N, getSubRows: P = _e, getTableProps: F, getHeaderGroupProps: I, getHeaderProps: B, getRowProps: V, getCellProps: H, getFooterProps: U, getFooterGroupProps: W, showLoadingState: G = R.showLoadingState, noDataMessage: xe = R.noDataMessage, rowSubComponent: K, isEnableRowSelect: q = R.isEnableRowSelect, selectColumnProps: Se = R.selectColumnProps }) => {
|
|
272
|
+
let J = s(() => e, [e]), Y = G && p, X = !Y && typeof v == "function", Ce = typeof g == "function", Z = !!(r && d && Object.keys(d).length > 0);
|
|
273
|
+
if (_ && Z) throw Error("You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data");
|
|
274
|
+
if (Z && d?.pageCount === void 0) throw Error("You have to pass pageCount in controlledPagination data");
|
|
275
|
+
let [we, Te] = l([]), [Ee, De] = l({}), [Oe, ke] = l({
|
|
276
|
+
pageIndex: ve,
|
|
277
|
+
pageSize: z
|
|
278
|
+
}), [Ae, je] = l(f?.columnVisibility ?? {});
|
|
279
|
+
o(() => {
|
|
280
|
+
f?.columnVisibility && je(f.columnVisibility);
|
|
281
|
+
}, [f?.columnVisibility]);
|
|
282
|
+
let Q = s(() => ({
|
|
283
|
+
id: "selection",
|
|
284
|
+
enableSorting: !1,
|
|
285
|
+
header: ({ table: e }) => {
|
|
286
|
+
let t = e.getRowModel().rows.map((e) => e.original).filter(q).length === 0;
|
|
287
|
+
return /* @__PURE__ */ y(i, {
|
|
288
|
+
elementId: "all",
|
|
289
|
+
onChange: e.toggleAllPageRowsSelected,
|
|
290
|
+
isChecked: e.getIsAllPageRowsSelected(),
|
|
291
|
+
isDisabled: t
|
|
292
|
+
});
|
|
293
|
+
},
|
|
294
|
+
cell: ({ row: e }) => {
|
|
295
|
+
let t = q(e.original);
|
|
296
|
+
return /* @__PURE__ */ y(i, {
|
|
297
|
+
elementId: e.id,
|
|
298
|
+
onChange: e.toggleSelected,
|
|
299
|
+
isDisabled: !t,
|
|
300
|
+
isChecked: t && e.getIsSelected()
|
|
301
|
+
});
|
|
302
|
+
},
|
|
303
|
+
...Se
|
|
304
|
+
}), [q, Se]), { loadingColumns: Me, loadingData: Ne } = he(G, p, Z ? d?.pageSize ?? z : Oe.pageSize, J, T), Pe = s(() => {
|
|
305
|
+
let e = Y ? Me ?? [] : J;
|
|
306
|
+
return X ? [Q, ...e] : e;
|
|
307
|
+
}, [
|
|
308
|
+
Y,
|
|
309
|
+
Me,
|
|
310
|
+
J,
|
|
311
|
+
X,
|
|
312
|
+
Q
|
|
313
|
+
]), Fe = Y ? Ne : t, Ie = Z && d ? {
|
|
314
|
+
pageIndex: d.pageIndex,
|
|
315
|
+
pageSize: d.pageSize
|
|
316
|
+
} : Oe, $ = ie({
|
|
317
|
+
columns: Pe,
|
|
318
|
+
data: Fe,
|
|
319
|
+
getCoreRowModel: ee(),
|
|
320
|
+
getSortedRowModel: re(),
|
|
321
|
+
getExpandedRowModel: te(),
|
|
322
|
+
..._ || Z ? { getPaginationRowModel: ne() } : {},
|
|
323
|
+
enableRowSelection: X ? (e) => q(e.original) : !1,
|
|
324
|
+
getRowCanExpand: (e) => !Y && (!!K || e.subRows.length > 0),
|
|
325
|
+
getRowId: N,
|
|
326
|
+
getSubRows: P,
|
|
327
|
+
state: {
|
|
328
|
+
sorting: we,
|
|
329
|
+
rowSelection: Ee,
|
|
330
|
+
pagination: Ie,
|
|
331
|
+
columnVisibility: Ae
|
|
332
|
+
},
|
|
333
|
+
onSortingChange: Te,
|
|
334
|
+
onRowSelectionChange: De,
|
|
335
|
+
onPaginationChange: Z ? void 0 : ke,
|
|
336
|
+
onColumnVisibilityChange: je,
|
|
337
|
+
manualSorting: Ce,
|
|
338
|
+
manualPagination: Z ? !0 : void 0,
|
|
339
|
+
pageCount: Z ? d?.pageCount : void 0,
|
|
340
|
+
enableSortingRemoval: !1,
|
|
341
|
+
enableMultiSort: !1,
|
|
342
|
+
enableColumnResizing: !0,
|
|
343
|
+
columnResizeMode: "onChange",
|
|
344
|
+
defaultColumn: { enableResizing: !1 }
|
|
345
|
+
}), Le = c(null), Re = c(null);
|
|
346
|
+
ge(Le, Re), o(() => {
|
|
347
|
+
if (X) {
|
|
348
|
+
let e = $.getSelectedRowModel().flatRows.map((e) => e.original).filter(q);
|
|
349
|
+
v?.(e);
|
|
350
|
+
}
|
|
351
|
+
}, [Ee, X]);
|
|
352
|
+
let ze = null;
|
|
353
|
+
if (Z || _) {
|
|
354
|
+
let { pageIndex: e, pageSize: i } = $.getState().pagination, a = {
|
|
355
|
+
setPageSize: $.setPageSize,
|
|
356
|
+
gotoPage: $.setPageIndex,
|
|
357
|
+
canNextPage: $.getCanNextPage(),
|
|
358
|
+
canPreviousPage: $.getCanPreviousPage(),
|
|
359
|
+
parentElementId: S,
|
|
360
|
+
labelPerPage: ae,
|
|
361
|
+
pageIndex: e,
|
|
362
|
+
previousPageHandler: $.previousPage,
|
|
363
|
+
nextPageHandler: $.nextPage,
|
|
364
|
+
totalPages: $.getPageCount(),
|
|
365
|
+
perPage: i,
|
|
366
|
+
totalItems: n ?? t.length
|
|
367
|
+
};
|
|
368
|
+
Z && d && (a.canNextPage = d.pageIndex + 1 !== a.totalPages, a.canPreviousPage = d.pageIndex !== 0, a.pageIndex = d.pageIndex, a.perPage = d.pageSize, a.setPageSize = (e) => {
|
|
369
|
+
r?.({
|
|
370
|
+
pageIndex: d.pageIndex,
|
|
371
|
+
pageSize: e
|
|
372
|
+
});
|
|
373
|
+
}, a.gotoPage = (e) => {
|
|
374
|
+
r?.({
|
|
375
|
+
pageIndex: e,
|
|
376
|
+
pageSize: d.pageSize
|
|
377
|
+
});
|
|
378
|
+
}, a.nextPageHandler = () => {
|
|
379
|
+
r?.({
|
|
380
|
+
pageIndex: d.pageIndex + 1,
|
|
381
|
+
pageSize: d.pageSize
|
|
382
|
+
});
|
|
383
|
+
}, a.previousPageHandler = () => {
|
|
384
|
+
r?.({
|
|
385
|
+
pageIndex: d.pageIndex - 1,
|
|
386
|
+
pageSize: d.pageSize
|
|
387
|
+
});
|
|
388
|
+
}, d.paginationAmount && (a.paginationAmount = d.paginationAmount)), ze = A ? /* @__PURE__ */ y(A, { ...a }) : null;
|
|
389
|
+
}
|
|
390
|
+
let Be = (e) => {
|
|
391
|
+
if (!e.column.getCanSort()) return;
|
|
392
|
+
let t = e.column.getIsSorted(), n = [{
|
|
393
|
+
id: e.column.id,
|
|
394
|
+
desc: t !== "desc"
|
|
395
|
+
}];
|
|
396
|
+
Ce && g?.(n), Te(n);
|
|
397
|
+
}, Ve = $.getHeaderGroups(), He = $.getFooterGroups(), Ue = $.getRowModel().rows;
|
|
398
|
+
return /* @__PURE__ */ b(ue, {
|
|
399
|
+
className: "table-root",
|
|
400
|
+
children: [
|
|
401
|
+
/* @__PURE__ */ y(se, {
|
|
402
|
+
$isLoading: !G && p,
|
|
403
|
+
className: "table-loading",
|
|
404
|
+
children: /* @__PURE__ */ y(ce, { children: m })
|
|
405
|
+
}),
|
|
406
|
+
/* @__PURE__ */ y(le, {
|
|
407
|
+
ref: Re,
|
|
408
|
+
className: "table-wrapper",
|
|
409
|
+
children: /* @__PURE__ */ y(de, {
|
|
410
|
+
id: C,
|
|
411
|
+
className: "table-content",
|
|
412
|
+
children: /* @__PURE__ */ b(fe, {
|
|
413
|
+
...F?.(),
|
|
414
|
+
ref: Le,
|
|
415
|
+
children: [
|
|
416
|
+
/* @__PURE__ */ y(pe, {
|
|
417
|
+
className: "table-head",
|
|
418
|
+
"data-role": "table-head",
|
|
419
|
+
children: Ve.map((e) => /* @__PURE__ */ y(O, {
|
|
420
|
+
...I?.(e),
|
|
421
|
+
children: e.headers.map((e) => /* @__PURE__ */ b(E, {
|
|
422
|
+
$size: e.getSize(),
|
|
423
|
+
onClick: () => Be(e),
|
|
424
|
+
...B?.(e),
|
|
425
|
+
children: [e.isPlaceholder ? null : ye(e), be(e)]
|
|
426
|
+
}, e.id))
|
|
427
|
+
}, e.id))
|
|
428
|
+
}),
|
|
429
|
+
h.includes(j.Top) && /* @__PURE__ */ y(k, {
|
|
430
|
+
className: "table-footer-top",
|
|
431
|
+
"data-role": "table-footer-top",
|
|
432
|
+
children: He.map((e) => /* @__PURE__ */ y(O, {
|
|
433
|
+
...W?.(e),
|
|
434
|
+
children: e.headers.map((e) => /* @__PURE__ */ y(w, {
|
|
435
|
+
$size: e.getSize(),
|
|
436
|
+
$align: x(e),
|
|
437
|
+
...U?.(e),
|
|
438
|
+
children: e.isPlaceholder ? null : u(e.column.columnDef.footer, e.getContext())
|
|
439
|
+
}, e.id))
|
|
440
|
+
}, e.id))
|
|
441
|
+
}),
|
|
442
|
+
/* @__PURE__ */ y(me, {
|
|
443
|
+
className: "table-body",
|
|
444
|
+
"data-role": "table-body",
|
|
445
|
+
children: Ue.map((e) => {
|
|
446
|
+
let { isDelimiterTd: t } = Y ? L() : M(e);
|
|
447
|
+
if (t) {
|
|
448
|
+
let t = e.getVisibleCells()[0];
|
|
449
|
+
return t ? /* @__PURE__ */ b(a, { children: [/* @__PURE__ */ y(D, { children: /* @__PURE__ */ y(O, {
|
|
450
|
+
...Y ? void 0 : V?.(e),
|
|
451
|
+
children: /* @__PURE__ */ y(w, {
|
|
452
|
+
style: { flex: "1 0 0%" },
|
|
453
|
+
...Y ? void 0 : H?.(t),
|
|
454
|
+
children: /* @__PURE__ */ y("strong", { children: u(t.column.columnDef.cell, t.getContext()) })
|
|
455
|
+
})
|
|
456
|
+
}) }), !Y && e.getIsExpanded() && K && K(e)] }, `group_${e.index}`) : null;
|
|
457
|
+
}
|
|
458
|
+
return /* @__PURE__ */ b(a, { children: [/* @__PURE__ */ y(D, { children: /* @__PURE__ */ y(O, {
|
|
459
|
+
...Y ? void 0 : V?.(e),
|
|
460
|
+
children: e.getVisibleCells().map((e) => /* @__PURE__ */ y(w, {
|
|
461
|
+
$size: e.column.getSize(),
|
|
462
|
+
$align: oe(e),
|
|
463
|
+
...Y ? void 0 : H?.(e),
|
|
464
|
+
children: u(e.column.columnDef.cell, e.getContext())
|
|
465
|
+
}, e.id))
|
|
466
|
+
}) }), !Y && e.getIsExpanded() && K && K(e)] }, `group_${e.index}`);
|
|
467
|
+
})
|
|
468
|
+
}),
|
|
469
|
+
h.includes(j.Bottom) && /* @__PURE__ */ y(k, {
|
|
470
|
+
className: "table-footer-bottom",
|
|
471
|
+
"data-role": "table-footer-bottom",
|
|
472
|
+
children: He.map((e) => /* @__PURE__ */ y(O, {
|
|
473
|
+
...W?.(e),
|
|
474
|
+
children: e.headers.map((e) => /* @__PURE__ */ y(w, {
|
|
475
|
+
$size: e.getSize(),
|
|
476
|
+
$align: x(e),
|
|
477
|
+
...U?.(e),
|
|
478
|
+
children: e.isPlaceholder ? null : u(e.column.columnDef.footer, e.getContext())
|
|
479
|
+
}, e.id))
|
|
480
|
+
}, e.id))
|
|
481
|
+
})
|
|
482
|
+
]
|
|
483
|
+
})
|
|
484
|
+
})
|
|
485
|
+
}),
|
|
486
|
+
!p && !t.length && xe,
|
|
487
|
+
ze
|
|
488
|
+
]
|
|
489
|
+
});
|
|
496
490
|
};
|
|
497
|
-
//#
|
|
491
|
+
//#endregion
|
|
492
|
+
export { B as default, R as defaultProps };
|
|
493
|
+
|
|
494
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/propsGetter.tsx","../src/style.tsx","../src/types.ts","../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/index.tsx"],"sourcesContent":["import type {CSSProperties} from 'react';\nimport type {Cell, Header} from '@tanstack/react-table';\nimport type {DefaultObject} from './types';\n\nexport const getColumnAlign = <TData extends DefaultObject>(\n header: Header<TData, unknown>,\n): CSSProperties['textAlign'] | undefined => header.column.columnDef.meta?.align;\n\nexport const getCellAlign = <TData extends DefaultObject>(\n cell: Cell<TData, unknown>,\n): CSSProperties['textAlign'] | undefined => cell.column.columnDef.meta?.align;\n","import styled, {keyframes, css} from 'styled-components';\nimport type {CSSProperties} from 'react';\nimport {fontNormal, white, black, spacing, gray80, gray95} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div<{$isLoading: boolean}>`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n\n ${({$isLoading}) =>\n $isLoading &&\n css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n\n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n\n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div<{$align?: CSSProperties['textAlign']; $size?: number}>`\n flex: 0 0 ${({$size}) => $size ?? 50}px;\n width: ${({$size}) => $size ?? 50}px;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n\n ${({$align}) =>\n $align &&\n css`\n text-align: ${$align};\n `}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div<{$size?: number; $align?: CSSProperties['textAlign']}>`\n flex: 0 0 ${({$size}) => $size ?? 50}px;\n width: ${({$size}) => $size ?? 50}px;\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n\n ${({$align}) =>\n $align &&\n css`\n text-align: ${$align};\n `}\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n\n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n display: flex;\n flex: 1 0 auto;\n padding: 0;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n\n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import type {ComponentPropsWithoutRef, ComponentType, CSSProperties, ReactElement, ReactNode} from 'react';\nimport type {\n Cell,\n ColumnDef,\n Header,\n HeaderGroup,\n Row,\n RowData,\n SortingState,\n TableState,\n VisibilityState,\n} from '@tanstack/react-table';\n\ndeclare module '@tanstack/react-table' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CSSProperties['textAlign'];\n }\n}\n\nexport type DefaultObject = Record<string, unknown>;\n\nexport type LoadingState<TData extends DefaultObject = DefaultObject> = {\n loadingColumns?: ColumnDef<TData>[];\n loadingData: TData[];\n};\n\nexport type RowPreProps = ComponentPropsWithoutRef<'div'> & {\n isDelimiterTd?: boolean;\n};\n\nexport const FooterPlacement = {\n Top: 'top',\n Bottom: 'bottom',\n} as const;\nexport type FooterPlacement = (typeof FooterPlacement)[keyof typeof FooterPlacement];\n\nexport type PaginationProps = {\n paginationAmount?: ReactNode;\n parentElementId: string;\n labelPerPage?: string;\n pageSizes?: Array<string | number>;\n pageIndex: number;\n perPage: number;\n totalPages: number;\n totalItems: number;\n canNextPage: boolean;\n canPreviousPage: boolean;\n nextPageHandler: () => void;\n previousPageHandler: () => void;\n setPageSize: (size: number) => void;\n gotoPage: (page: number) => void;\n};\n\nexport type ControlledPagination = {\n paginationAmount?: ReactNode;\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n};\n\nexport type HeaderGroupPropsGetter<TData extends DefaultObject = DefaultObject> = (\n headerGroup: HeaderGroup<TData>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type HeaderPropsGetter<TData extends DefaultObject = DefaultObject> = (\n header: Header<TData, unknown>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type RowPropsGetter<TData extends DefaultObject = DefaultObject> = (\n row: Row<TData>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type CellPropsGetter<TData extends DefaultObject = DefaultObject> = (\n cell: Cell<TData, unknown>,\n) => ComponentPropsWithoutRef<'div'>;\n\nexport type SelectColumnProps<TData extends DefaultObject = DefaultObject> = Pick<\n ColumnDef<TData>,\n 'size' | 'minSize' | 'maxSize' | 'meta' | 'enableHiding'\n>;\n\nexport type TableProps<TData extends DefaultObject = DefaultObject> = {\n columns: ColumnDef<TData>[];\n data: TData[];\n totalItems?: number;\n PaginationComponent?: ComponentType<PaginationProps>;\n initialState?: Partial<TableState> & {columnVisibility?: VisibilityState};\n fetchData?: (params: {pageIndex: number; pageSize: number}) => void;\n onSortedChange?: (sorting: SortingState) => void;\n isLoading?: boolean;\n footerPlacement?: FooterPlacement[];\n hasDefaultPagination?: boolean;\n onSelectRowsChange?: (rows: TData[]) => void;\n controlledPagination?: ControlledPagination;\n loadingMessage?: string;\n labelPerPage?: string;\n parentElementId?: string;\n tableContentId?: string;\n getRowPreProps?: (row: Row<TData>) => RowPreProps;\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;\n getSubRows?: (originalRow: TData, index: number) => TData[] | undefined;\n getTableProps?: () => ComponentPropsWithoutRef<'div'>;\n getHeaderGroupProps?: HeaderGroupPropsGetter<TData>;\n getHeaderProps?: HeaderPropsGetter<TData>;\n getRowProps?: RowPropsGetter<TData>;\n getCellProps?: CellPropsGetter<TData>;\n getFooterProps?: HeaderPropsGetter<TData>;\n getFooterGroupProps?: HeaderGroupPropsGetter<TData>;\n showLoadingState?: boolean;\n LoadingCellComponent?: ComponentType;\n noDataMessage?: ReactNode;\n rowSubComponent?: (row: Row<TData>) => ReactElement;\n isEnableRowSelect?: (original: TData) => boolean;\n selectColumnProps?: Partial<SelectColumnProps<TData>>;\n};\n\n// Re-exported for consumers\nexport type StandardColumn<TData extends DefaultObject = DefaultObject> = ColumnDef<TData>;\nexport type StandardRow<TData extends DefaultObject = DefaultObject> = Row<TData>;\nexport type StandardCell<TData extends DefaultObject = DefaultObject> = Cell<TData, unknown>;\nexport type {SortingState, VisibilityState};\n","import {useMemo, type ComponentType} from 'react';\nimport type {ColumnDef} from '@tanstack/react-table';\nimport type {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = <TData extends DefaultObject>(\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: ColumnDef<TData>[],\n LoadingCellComponent: ComponentType,\n): LoadingState<TData> => {\n const loadingColumns: ColumnDef<TData>[] | undefined = useMemo(\n () =>\n showLoadingState && loading\n ? columns.map((column) => ({\n ...column,\n cell: () => <LoadingCellComponent />,\n }))\n : [],\n [columns, loading, showLoadingState],\n );\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: TData[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject as TData);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","import {useEffect} from 'react';\n\nconst TableShadowClassName = {\n Left: 'shadow_left',\n Right: 'shadow_right',\n} as const;\n\nconst changeClassName = (tableWrapperNode: Element, newClassNameList: string[]) => {\n const {classList} = tableWrapperNode;\n\n classList.remove(TableShadowClassName.Left, TableShadowClassName.Right);\n classList.add(...newClassNameList);\n};\n\nconst calculateNewClassNames = (tableNode: Element | null, tableWrapperNode: Element | null) => {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName: string[] = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TableShadowClassName.Left);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TableShadowClassName.Right);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n};\n\nconst useTableShadow = (tableRef: {current: Element | null}, tableWrapperRef: {current: Element | null}) => {\n useEffect(() => {\n let ticking = false;\n\n const onMousewheel = () => {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n };\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n\nexport default useTableShadow;\n","import {ArrowDown, ArrowUp, Color, Size} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\nimport {Fragment, useEffect, useMemo, useRef, useState, type MouseEvent, type ReactNode} from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n type Cell,\n type ColumnDef,\n type RowData,\n type VisibilityState,\n type Header,\n type PaginationState,\n type Row,\n type RowSelectionState,\n type SortingState,\n} from '@tanstack/react-table';\nimport {getCellAlign, getColumnAlign} from './propsGetter';\nimport {\n EmptyStateCell,\n HeadCell,\n TableContent,\n TableCore,\n TableLoading,\n TableLoadingInner,\n TableRoot,\n TableWrapper,\n TBody,\n TD,\n TFoot,\n TH,\n THead,\n TR,\n TResizer,\n TRGroup,\n} from './style';\nimport {FooterPlacement} from './types';\nimport type {DefaultObject, PaginationProps, RowPreProps, TableProps} from './types';\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\ntype TableRowData = DefaultObject & RowData;\n\nconst isEnableRowSelectDefault = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault = (): RowPreProps => ({});\nconst getSubRowsDefault = <TData extends TableRowData>(row: TData): TData[] | undefined => {\n const {subRows} = row as TData & {subRows?: TData[]};\n\n if (!Array.isArray(subRows)) {\n return undefined;\n }\n\n return subRows;\n};\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nconst getHeadContent = <TData extends TableRowData>(header: Header<TData, unknown>) => {\n const sorted = header.column.getIsSorted();\n const rendered = flexRender(header.column.columnDef.header, header.getContext());\n\n if (sorted === 'desc') {\n return (\n <HeadCell>\n {rendered}\n <ArrowUp size={Size.Small} color={Color.GrayDark} />\n </HeadCell>\n );\n }\n\n if (sorted === 'asc') {\n return (\n <HeadCell>\n {rendered}\n <ArrowDown size={Size.Small} color={Color.GrayDark} />\n </HeadCell>\n );\n }\n\n return rendered;\n};\n\nconst renderResizer = <TData extends TableRowData>(header: Header<TData, unknown>) => {\n if (header.column.getCanResize()) {\n return (\n <TResizer\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n return null;\n};\n\nconst Table = <TData extends TableRowData = DefaultObject>({\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading = defaultProps.isLoading,\n loadingMessage = defaultProps.loadingMessage,\n labelPerPage = defaultProps.labelPerPage,\n footerPlacement = defaultProps.footerPlacement,\n onSortedChange,\n hasDefaultPagination = defaultProps.hasDefaultPagination,\n onSelectRowsChange,\n parentElementId = defaultProps.parentElementId,\n tableContentId = defaultProps.tableContentId,\n LoadingCellComponent = defaultProps.LoadingCellComponent,\n PaginationComponent,\n getRowPreProps = getRowPrePropsDefault,\n getRowId,\n getSubRows = getSubRowsDefault,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState = defaultProps.showLoadingState,\n noDataMessage = defaultProps.noDataMessage,\n rowSubComponent,\n isEnableRowSelect = defaultProps.isEnableRowSelect,\n selectColumnProps = defaultProps.selectColumnProps,\n}: TableProps<TData>) => {\n const memoColumns = useMemo(() => columns, [columns]);\n const showLoading = showLoadingState && isLoading;\n\n const hasSelectedRowsAbility = !showLoading && typeof onSelectRowsChange === 'function';\n const hasManualSortBy = typeof onSortedChange === 'function';\n const hasControlledPagination = !!(fetchData && controlledPagination && Object.keys(controlledPagination).length > 0);\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or ' +\n 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination && typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error('You have to pass pageCount in controlledPagination data');\n }\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>(initialState?.columnVisibility ?? {});\n\n useEffect(() => {\n if (initialState?.columnVisibility) {\n setColumnVisibility(initialState.columnVisibility);\n }\n }, [initialState?.columnVisibility]);\n\n const selectionColumn: ColumnDef<TData> = useMemo(\n () => ({\n id: 'selection',\n enableSorting: false,\n header: ({table}) => {\n const pageRows = table.getRowModel().rows;\n const isDisabledAllRows = pageRows.map((r) => r.original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={table.toggleAllPageRowsSelected}\n isChecked={table.getIsAllPageRowsSelected()}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n cell: ({row}) => {\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={row.id}\n onChange={row.toggleSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && row.getIsSelected()}\n />\n );\n },\n ...selectColumnProps,\n }),\n [isEnableRowSelect, selectColumnProps],\n );\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n hasControlledPagination ? (controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE) : pagination.pageSize,\n memoColumns,\n LoadingCellComponent,\n );\n\n const finalColumns = useMemo<ColumnDef<TData>[]>(() => {\n const base = showLoading ? (loadingColumns ?? []) : memoColumns;\n return hasSelectedRowsAbility ? [selectionColumn, ...base] : base;\n }, [showLoading, loadingColumns, memoColumns, hasSelectedRowsAbility, selectionColumn]);\n\n const finalData = showLoading ? loadingData : data;\n\n const effectivePagination: PaginationState =\n hasControlledPagination && controlledPagination\n ? {pageIndex: controlledPagination.pageIndex, pageSize: controlledPagination.pageSize}\n : pagination;\n\n const table = useReactTable<TData>({\n columns: finalColumns,\n data: finalData,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n ...(hasDefaultPagination || hasControlledPagination ? {getPaginationRowModel: getPaginationRowModel()} : {}),\n enableRowSelection: hasSelectedRowsAbility ? (row) => isEnableRowSelect(row.original) : false,\n getRowCanExpand: (row) => !showLoading && (Boolean(rowSubComponent) || row.subRows.length > 0),\n getRowId,\n getSubRows,\n state: {\n sorting,\n rowSelection,\n pagination: effectivePagination,\n columnVisibility,\n },\n onSortingChange: setSorting,\n onRowSelectionChange: setRowSelection,\n onPaginationChange: hasControlledPagination ? undefined : setPagination,\n onColumnVisibilityChange: setColumnVisibility,\n manualSorting: hasManualSortBy,\n manualPagination: hasControlledPagination ? true : undefined,\n pageCount: hasControlledPagination ? controlledPagination?.pageCount : undefined,\n enableSortingRemoval: false,\n enableMultiSort: false,\n enableColumnResizing: false,\n columnResizeMode: 'onChange',\n });\n\n const tableRef = useRef<HTMLDivElement>(null);\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n const selectedRows = table\n .getSelectedRowModel()\n .flatRows.map((row) => row.original)\n .filter(isEnableRowSelect);\n onSelectRowsChange?.(selectedRows);\n }\n }, [rowSelection, hasSelectedRowsAbility]);\n\n let paginationNode: ReactNode = null;\n\n if (hasControlledPagination || hasDefaultPagination) {\n const {pageIndex: tPageIndex, pageSize: tPageSize} = table.getState().pagination;\n\n const paginationData: PaginationProps = {\n setPageSize: table.setPageSize,\n gotoPage: table.setPageIndex,\n canNextPage: table.getCanNextPage(),\n canPreviousPage: table.getCanPreviousPage(),\n parentElementId,\n labelPerPage,\n pageIndex: tPageIndex,\n previousPageHandler: table.previousPage,\n nextPageHandler: table.nextPage,\n totalPages: table.getPageCount(),\n perPage: tPageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({pageIndex: controlledPagination.pageIndex, pageSize: newPageSize});\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({pageIndex: newPageIndex, pageSize: controlledPagination.pageSize});\n };\n\n paginationData.nextPageHandler = () => {\n fetchData?.({pageIndex: controlledPagination.pageIndex + 1, pageSize: controlledPagination.pageSize});\n };\n\n paginationData.previousPageHandler = () => {\n fetchData?.({pageIndex: controlledPagination.pageIndex - 1, pageSize: controlledPagination.pageSize});\n };\n\n if (controlledPagination.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n paginationNode = PaginationComponent ? <PaginationComponent {...paginationData} /> : null;\n }\n\n const handleSortClick = (header: Header<TData, unknown>) => {\n if (!header.column.getCanSort()) return;\n\n const currentSort = header.column.getIsSorted();\n const nextSorting: SortingState = [{id: header.column.id, desc: currentSort !== 'desc'}];\n\n if (hasManualSortBy) {\n onSortedChange?.(nextSorting);\n }\n\n setSorting(nextSorting);\n };\n\n const headerGroups = table.getHeaderGroups();\n const footerGroups = table.getFooterGroups();\n const tBodyRows = table.getRowModel().rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading $isLoading={!showLoadingState && isLoading} className=\"table-loading\">\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore {...getTableProps?.()} ref={tableRef}>\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR key={headerGroup.id} {...getHeaderGroupProps?.(headerGroup)}>\n {headerGroup.headers.map((header) => (\n <TH\n key={header.id}\n $size={header.getSize()}\n onClick={() => handleSortClick(header)}\n {...getHeaderProps?.(header)}\n >\n {header.isPlaceholder ? null : getHeadContent(header)}\n {renderResizer(header)}\n </TH>\n ))}\n </TR>\n ))}\n </THead>\n\n {footerPlacement.includes(FooterPlacement.Top) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((footerGroup) => (\n <TR key={footerGroup.id} {...getFooterGroupProps?.(footerGroup)}>\n {footerGroup.headers.map((header) => (\n <TD\n key={header.id}\n $size={header.getSize()}\n $align={getColumnAlign(header)}\n {...getFooterProps?.(header)}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext())}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyRows.map((row: Row<TData>) => {\n const rowPreProps = showLoading ? getRowPrePropsDefault() : getRowPreProps(row);\n const {isDelimiterTd} = rowPreProps;\n\n if (isDelimiterTd) {\n const firstCell = row.getVisibleCells()[0];\n\n if (!firstCell) return null;\n\n return (\n <Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...(showLoading ? undefined : getRowProps?.(row))}>\n <TD style={{flex: '1 0 0%'}} {...(showLoading ? undefined : getCellProps?.(firstCell))}>\n <strong>{flexRender(firstCell.column.columnDef.cell, firstCell.getContext())}</strong>\n </TD>\n </TR>\n </TRGroup>\n {!showLoading && row.getIsExpanded() && rowSubComponent && rowSubComponent(row)}\n </Fragment>\n );\n }\n\n return (\n <Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...(showLoading ? undefined : getRowProps?.(row))}>\n {row.getVisibleCells().map((cell: Cell<TData, unknown>) => (\n <TD\n key={cell.id}\n $size={cell.column.getSize()}\n $align={getCellAlign(cell)}\n {...(showLoading ? undefined : getCellProps?.(cell))}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {!showLoading && row.getIsExpanded() && rowSubComponent && rowSubComponent(row)}\n </Fragment>\n );\n })}\n </TBody>\n\n {footerPlacement.includes(FooterPlacement.Bottom) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((footerGroup) => (\n <TR key={footerGroup.id} {...getFooterGroupProps?.(footerGroup)}>\n {footerGroup.headers.map((header) => (\n <TD\n key={header.id}\n $size={header.getSize()}\n $align={getColumnAlign(header)}\n {...getFooterProps?.(header)}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext())}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {paginationNode}\n </TableRoot>\n );\n};\n\nexport default Table;\nexport type {\n CellPropsGetter,\n ControlledPagination,\n DefaultObject,\n HeaderGroupPropsGetter,\n HeaderPropsGetter,\n LoadingState,\n PaginationProps,\n RowPreProps,\n RowPropsGetter,\n SelectColumnProps,\n SortingState,\n StandardCell,\n StandardColumn,\n StandardRow,\n TableProps,\n VisibilityState,\n} from './types';\n"],"names":["getColumnAlign","header","getCellAlign","cell","loadingAnimation","keyframes","TableLoading","styled","$isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","$size","$align","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","FooterPlacement","useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","column","jsx","loadingData","dataObject","dataArray","i","TableShadowClassName","changeClassName","tableWrapperNode","newClassNameList","classList","calculateNewClassNames","tableNode","tableRect","tableWrapperRect","newClassName","tableRectLeft","tableRectRight","tableWrapperRectLeft","tableWrapperRectRight","useTableShadow","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","getSubRowsDefault","row","subRows","defaultProps","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","getHeadContent","sorted","rendered","flexRender","ArrowUp","Size","Color","ArrowDown","renderResizer","e","Table","data","totalItems","fetchData","controlledPagination","initialState","isLoading","loadingMessage","labelPerPage","footerPlacement","onSortedChange","hasDefaultPagination","onSelectRowsChange","parentElementId","tableContentId","PaginationComponent","getRowPreProps","getRowId","getSubRows","getTableProps","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","noDataMessage","rowSubComponent","isEnableRowSelect","selectColumnProps","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","sorting","setSorting","useState","rowSelection","setRowSelection","pagination","setPagination","columnVisibility","setColumnVisibility","selectionColumn","table","isDisabledAllRows","r","Checkbox","isEnabled","finalColumns","base","finalData","effectivePagination","useReactTable","getCoreRowModel","getSortedRowModel","getExpandedRowModel","getPaginationRowModel","useRef","selectedRows","paginationNode","tPageIndex","tPageSize","paginationData","newPageSize","newPageIndex","handleSortClick","currentSort","nextSorting","headerGroups","footerGroups","tBodyRows","jsxs","headerGroup","footerGroup","rowPreProps","isDelimiterTd","firstCell","Fragment"],"mappings":";;;;;;;AAIO,MAAMA,KAAiB,CAC5BC,MAC2CA,EAAO,OAAO,UAAU,MAAM,OAE9DC,KAAe,CAC1BC,MAC2CA,EAAK,OAAO,UAAU,MAAM,OCNnEC,KAAmBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYZC,KAAeC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAa/B,CAAC,EAAC,YAAAC,QACFA,KACAC;AAAA;AAAA;AAAA;AAAA,KAIC;AAAA,GAGQC,KAAoBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAY3BI,KAAeJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA6CtBK,KAAYL,EAAO;AAAA,eACjBM,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,GAOZC,KAAeP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOtBQ,KAAYR,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQnBS,KAAWT,EAAO;AAAA;AAAA,GAIlBU,IAAKV,EAAO;AAAA,cACX,CAAC,EAAC,OAAAW,QAAWA,KAAS,EAAE;AAAA,WAC3B,CAAC,EAAC,OAAAA,QAAWA,KAAS,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ/B,CAAC,EAAC,QAAAC,QACFA,KACAV;AAAA,oBACgBU,CAAM;AAAA,KACrB;AAAA,GAGQC,KAAiBb,EAAO;AAAA;AAAA,YAEzBc,KAAU,CAAC;AAAA,yCACkBC,CAAM,KAAKC,EAAK,KAAKD,CAAM;AAAA;AAAA,eAErDlB,EAAgB;AAAA,GAGlBoB,KAAKjB,EAAO;AAAA,cACX,CAAC,EAAC,OAAAW,QAAWA,KAAS,EAAE;AAAA,WAC3B,CAAC,EAAC,OAAAA,QAAWA,KAAS,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAS/B,CAAC,EAAC,QAAAC,QACFA,KACAV;AAAA,oBACgBU,CAAM;AAAA,KACrB;AAAA,GAGQM,KAAQlB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMxBiB,EAAE,KAAKP,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA,aAKAS,EAAK;AAAA;AAAA;AAAA;AAAA,GAMLC,KAAUpB,EAAO;AAAA;AAAA;AAAA,iCAGGe,CAAM;AAAA;AAAA;AAAA,GAK1BM,IAAKrB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOZsB,KAAQtB,EAAO;AAAA,0BACFuB,EAAM;AAAA,gBAChBT,KAAU,CAAC;AAAA;AAAA;AAAA,GAKdU,KAAQxB,EAAO;AAAA,gBACZe,CAAM;AAAA;AAAA;AAAA;AAAA,GAMTU,KAAWzB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCrLlB0B,KAAkB;AAAA,EAC7B,KAAK;AAAA,EACL,QAAQ;AACV,GC7BMC,KAAkB,CACtBC,GACAC,GACAC,GACAC,GACAC,MACwB;AACxB,QAAMC,IAAiDC;AAAA,IACrD,MACEN,KAAoBC,IAChBE,EAAQ,IAAI,CAACI,OAAY;AAAA,MACvB,GAAGA;AAAA,MACH,MAAM,MAAM,gBAAAC,EAACJ,GAAA,CAAA,CAAqB;AAAA,IAAA,EAClC,IACF,CAAA;AAAA,IACN,CAACD,GAASF,GAASD,CAAgB;AAAA,EAAA,GAG/BS,IAAcH,EAAQ,MAAM;AAChC,QAAIN,KAAoBC,KAAWE,KAAWA,EAAQ,SAAS,GAAG;AAChE,YAAMO,IAA4B,CAAA,GAC5BC,IAAqB,CAAA;AAE3B,eAASC,IAAI,GAAGA,IAAIT,EAAQ,QAAQS,KAAK;AACvC,QAAAF,EAAW,SAASE,CAAC,EAAE,IAAI;AAE7B,eAASA,IAAI,GAAGA,IAAIV,GAAUU,KAAK;AACjC,QAAAD,EAAU,KAAKD,CAAmB;AAGpC,aAAOC;AAAA,IACT;AAEA,WAAO,CAAA;AAAA,EACT,GAAG,CAACR,GAASF,GAASC,GAAUF,CAAgB,CAAC;AAEjD,SAAO;AAAA,IACL,gBAAAK;AAAA,IACA,aAAAI;AAAA,EAAA;AAEJ,GC1CMI,IAAuB;AAAA,EAC3B,MAAM;AAAA,EACN,OAAO;AACT,GAEMC,KAAkB,CAACC,GAA2BC,MAA+B;AACjF,QAAM,EAAC,WAAAC,MAAaF;AAEpB,EAAAE,EAAU,OAAOJ,EAAqB,MAAMA,EAAqB,KAAK,GACtEI,EAAU,IAAI,GAAGD,CAAgB;AACnC,GAEME,KAAyB,CAACC,GAA2BJ,MAAqC;AAC9F,MAAI,CAACI,KAAa,CAACJ;AACjB;AAGF,QAAMK,IAAYD,EAAU,sBAAA,GACtBE,IAAmBN,EAAiB,sBAAA,GACpCO,IAAyB,CAAA,GAEzBC,IAAgB,KAAK,MAAMH,EAAU,IAAI,GACzCI,IAAiB,KAAK,MAAMJ,EAAU,KAAK,GAC3CK,IAAuB,KAAK,MAAMJ,EAAiB,IAAI,GACvDK,IAAwB,KAAK,MAAML,EAAiB,KAAK;AAE/D,EAAIE,IAAgBE,KAClBH,EAAa,KAAKT,EAAqB,IAAI,GAGzCW,IAAiBE,KACnBJ,EAAa,KAAKT,EAAqB,KAAK,GAG9CC,GAAgBC,GAAkBO,CAAY;AAChD,GAEMK,KAAiB,CAACC,GAAqCC,MAA+C;AAC1G,EAAAC,EAAU,MAAM;AACd,QAAIC,IAAU;AAEd,UAAMC,IAAe,MAAM;AACzB,MAAID,MAIJ,OAAO,sBAAsB,MAAM;AACjC,QAAAb,GAAuBU,EAAS,SAASC,EAAgB,OAAO,GAChEE,IAAU;AAAA,MACZ,CAAC,GAEDA,IAAU;AAAA,IACZ;AAEA,WAAAb,GAAuBU,EAAS,SAASC,EAAgB,OAAO,GAEhED,GAAU,SAAS,iBAAiB,cAAcI,CAAY,GAC9D,OAAO,iBAAiB,UAAUA,CAAY,GAEvC,MAAM;AACX,MAAAJ,GAAU,SAAS,oBAAoB,cAAcI,CAAY,GACjE,OAAO,oBAAoB,UAAUA,CAAY;AAAA,IACnD;AAAA,EACF,GAAG,CAACJ,EAAS,SAASC,EAAgB,OAAO,CAAC;AAChD,GCpBMI,KAA2B,MAAM,IACjCC,KAA2B,CAAA,GAC3BC,IAAwB,OAAoB,CAAA,IAC5CC,KAAoB,CAA6BC,MAAoC;AACzF,QAAM,EAAC,SAAAC,MAAWD;AAElB,MAAK,MAAM,QAAQC,CAAO;AAI1B,WAAOA;AACT,GAEaC,IAAe;AAAA,EAC1B,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,iBAAiB,CAAA;AAAA,EACjB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,sBAAsBtD;AAAA,EACtB,gBAAgBkD;AAAA,EAChB,mBAAmBF;AAAA,EACnB,mBAAmBC;AAAA,EACnB,eAAe;AACjB,GAEMM,KAAqB,GACrBC,KAAoB,IAEpBC,KAAiB,CAA6B5E,MAAmC;AACrF,QAAM6E,IAAS7E,EAAO,OAAO,YAAA,GACvB8E,IAAWC,EAAW/E,EAAO,OAAO,UAAU,QAAQA,EAAO,YAAY;AAE/E,SAAI6E,MAAW,2BAEV9D,IAAA,EACE,UAAA;AAAA,IAAA+D;AAAA,sBACAE,IAAA,EAAQ,MAAMC,GAAK,OAAO,OAAOC,GAAM,SAAA,CAAU;AAAA,EAAA,GACpD,IAIAL,MAAW,0BAEV9D,IAAA,EACE,UAAA;AAAA,IAAA+D;AAAA,sBACAK,IAAA,EAAU,MAAMF,GAAK,OAAO,OAAOC,GAAM,SAAA,CAAU;AAAA,EAAA,GACtD,IAIGJ;AACT,GAEMM,KAAgB,CAA6BpF,MAC7CA,EAAO,OAAO,iBAEd,gBAAA0C;AAAA,EAACX;AAAA,EAAA;AAAA,IACC,aAAa/B,EAAO,iBAAA;AAAA,IACpB,cAAcA,EAAO,iBAAA;AAAA,IACrB,SAAS,CAACqF,MAAkC;AAC1C,MAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA;AAAA,IACJ;AAAA,EAAA;AAAA,IAIC,MAGHC,KAAQ,CAA6C;AAAA,EACzD,SAAAjD;AAAA,EACA,MAAAkD;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC,IAAYnB,EAAa;AAAA,EACzB,gBAAAoB,IAAiBpB,EAAa;AAAA,EAC9B,cAAAqB,IAAerB,EAAa;AAAA,EAC5B,iBAAAsB,IAAkBtB,EAAa;AAAA,EAC/B,gBAAAuB;AAAA,EACA,sBAAAC,IAAuBxB,EAAa;AAAA,EACpC,oBAAAyB;AAAA,EACA,iBAAAC,KAAkB1B,EAAa;AAAA,EAC/B,gBAAA2B,KAAiB3B,EAAa;AAAA,EAC9B,sBAAAnC,KAAuBmC,EAAa;AAAA,EACpC,qBAAA4B;AAAA,EACA,gBAAAC,KAAiBjC;AAAA,EACjB,UAAAkC;AAAA,EACA,YAAAC,KAAalC;AAAA,EACb,eAAAmC;AAAA,EACA,qBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,kBAAA7E,IAAmBuC,EAAa;AAAA,EAChC,eAAAuC,KAAgBvC,EAAa;AAAA,EAC7B,iBAAAwC;AAAA,EACA,mBAAAC,IAAoBzC,EAAa;AAAA,EACjC,mBAAA0C,IAAoB1C,EAAa;AACnC,MAAyB;AACvB,QAAM2C,IAAc5E,EAAQ,MAAMH,GAAS,CAACA,CAAO,CAAC,GAC9CgF,IAAcnF,KAAoB0D,GAElC0B,IAAyB,CAACD,KAAe,OAAOnB,KAAuB,YACvEqB,IAAkB,OAAOvB,KAAmB,YAC5CwB,IAA0B,CAAC,EAAE/B,KAAaC,KAAwB,OAAO,KAAKA,CAAoB,EAAE,SAAS;AAEnH,MAAIO,KAAwBuB;AAC1B,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAKJ,MAAIA,KAA2B,OAAO9B,GAAsB,YAAc;AACxE,UAAM,IAAI,MAAM,yDAAyD;AAG3E,QAAM,CAAC+B,IAASC,CAAU,IAAIC,EAAuB,CAAA,CAAE,GACjD,CAACC,GAAcC,EAAe,IAAIF,EAA4B,CAAA,CAAE,GAChE,CAACG,GAAYC,EAAa,IAAIJ,EAA0B;AAAA,IAC5D,WAAWjD;AAAA,IACX,UAAUC;AAAA,EAAA,CACX,GACK,CAACqD,IAAkBC,CAAmB,IAAIN,EAA0BhC,GAAc,oBAAoB,EAAE;AAE9G,EAAA3B,EAAU,MAAM;AACd,IAAI2B,GAAc,oBAChBsC,EAAoBtC,EAAa,gBAAgB;AAAA,EAErD,GAAG,CAACA,GAAc,gBAAgB,CAAC;AAEnC,QAAMuC,IAAoC1F;AAAA,IACxC,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,eAAe;AAAA,MACf,QAAQ,CAAC,EAAC,OAAA2F,QAAW;AAEnB,cAAMC,IADWD,EAAM,YAAA,EAAc,KACF,IAAI,CAACE,MAAMA,EAAE,QAAQ,EAAE,OAAOnB,CAAiB,EAAE,WAAW;AAE/F,eACE,gBAAAxE;AAAA,UAAC4F;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,UAAUH,EAAM;AAAA,YAChB,WAAWA,EAAM,yBAAA;AAAA,YACjB,YAAYC;AAAA,UAAA;AAAA,QAAA;AAAA,MAGlB;AAAA,MACA,MAAM,CAAC,EAAC,KAAA7D,QAAS;AACf,cAAMgE,IAAYrB,EAAkB3C,EAAI,QAAQ;AAEhD,eACE,gBAAA7B;AAAA,UAAC4F;AAAA,UAAA;AAAA,YACC,WAAW/D,EAAI;AAAA,YACf,UAAUA,EAAI;AAAA,YACd,YAAY,CAACgE;AAAA,YACb,WAAWA,KAAahE,EAAI,cAAA;AAAA,UAAc;AAAA,QAAA;AAAA,MAGhD;AAAA,MACA,GAAG4C;AAAA,IAAA;AAAA,IAEL,CAACD,GAAmBC,CAAiB;AAAA,EAAA,GAGjC,EAAC,gBAAA5E,GAAgB,aAAAI,GAAA,IAAeV;AAAA,IACpCC;AAAA,IACA0D;AAAA,IACA4B,IAA2B9B,GAAsB,YAAYf,KAAqBmD,EAAW;AAAA,IAC7FV;AAAA,IACA9E;AAAA,EAAA,GAGIkG,KAAehG,EAA4B,MAAM;AACrD,UAAMiG,IAAOpB,IAAe9E,KAAkB,CAAA,IAAM6E;AACpD,WAAOE,IAAyB,CAACY,GAAiB,GAAGO,CAAI,IAAIA;AAAA,EAC/D,GAAG,CAACpB,GAAa9E,GAAgB6E,GAAaE,GAAwBY,CAAe,CAAC,GAEhFQ,KAAYrB,IAAc1E,KAAc4C,GAExCoD,KACJnB,KAA2B9B,IACvB,EAAC,WAAWA,EAAqB,WAAW,UAAUA,EAAqB,SAAA,IAC3EoC,GAEAK,IAAQS,GAAqB;AAAA,IACjC,SAASJ;AAAA,IACT,MAAME;AAAA,IACN,iBAAiBG,GAAA;AAAA,IACjB,mBAAmBC,GAAA;AAAA,IACnB,qBAAqBC,GAAA;AAAA,IACrB,GAAI9C,KAAwBuB,IAA0B,EAAC,uBAAuBwB,GAAA,EAAsB,IAAK,CAAA;AAAA,IACzG,oBAAoB1B,IAAyB,CAAC/C,MAAQ2C,EAAkB3C,EAAI,QAAQ,IAAI;AAAA,IACxF,iBAAiB,CAACA,MAAQ,CAAC8C,MAAgB,EAAQJ,KAAoB1C,EAAI,QAAQ,SAAS;AAAA,IAC5F,UAAAgC;AAAA,IACA,YAAAC;AAAA,IACA,OAAO;AAAA,MACL,SAAAiB;AAAA,MACA,cAAAG;AAAA,MACA,YAAYe;AAAA,MACZ,kBAAAX;AAAA,IAAA;AAAA,IAEF,iBAAiBN;AAAA,IACjB,sBAAsBG;AAAA,IACtB,oBAAoBL,IAA0B,SAAYO;AAAA,IAC1D,0BAA0BE;AAAA,IAC1B,eAAeV;AAAA,IACf,kBAAkBC,IAA0B,KAAO;AAAA,IACnD,WAAWA,IAA0B9B,GAAsB,YAAY;AAAA,IACvE,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,EAAA,CACnB,GAEK5B,IAAWmF,GAAuB,IAAI,GACtClF,IAAkBkF,GAAuB,IAAI;AAEnD,EAAApF,GAAeC,GAAUC,CAAe,GAExCC,EAAU,MAAM;AACd,QAAIsD,GAAwB;AAC1B,YAAM4B,IAAef,EAClB,oBAAA,EACA,SAAS,IAAI,CAAC5D,MAAQA,EAAI,QAAQ,EAClC,OAAO2C,CAAiB;AAC3B,MAAAhB,IAAqBgD,CAAY;AAAA,IACnC;AAAA,EACF,GAAG,CAACtB,GAAcN,CAAsB,CAAC;AAEzC,MAAI6B,KAA4B;AAEhC,MAAI3B,KAA2BvB,GAAsB;AACnD,UAAM,EAAC,WAAWmD,GAAY,UAAUC,MAAalB,EAAM,WAAW,YAEhEmB,IAAkC;AAAA,MACtC,aAAanB,EAAM;AAAA,MACnB,UAAUA,EAAM;AAAA,MAChB,aAAaA,EAAM,eAAA;AAAA,MACnB,iBAAiBA,EAAM,mBAAA;AAAA,MACvB,iBAAAhC;AAAA,MACA,cAAAL;AAAA,MACA,WAAWsD;AAAA,MACX,qBAAqBjB,EAAM;AAAA,MAC3B,iBAAiBA,EAAM;AAAA,MACvB,YAAYA,EAAM,aAAA;AAAA,MAClB,SAASkB;AAAA,MACT,YAAY7D,KAAcD,EAAK;AAAA,IAAA;AAGjC,IAAIiC,KAA2B9B,MAC7B4D,EAAe,cAAc5D,EAAqB,YAAY,MAAM4D,EAAe,YACnFA,EAAe,kBAAkB5D,EAAqB,cAAc,GACpE4D,EAAe,YAAY5D,EAAqB,WAChD4D,EAAe,UAAU5D,EAAqB,UAE9C4D,EAAe,cAAc,CAACC,MAAwB;AACpD,MAAA9D,IAAY,EAAC,WAAWC,EAAqB,WAAW,UAAU6D,GAAY;AAAA,IAChF,GAEAD,EAAe,WAAW,CAACE,MAAyB;AAClD,MAAA/D,IAAY,EAAC,WAAW+D,GAAc,UAAU9D,EAAqB,UAAS;AAAA,IAChF,GAEA4D,EAAe,kBAAkB,MAAM;AACrC,MAAA7D,IAAY,EAAC,WAAWC,EAAqB,YAAY,GAAG,UAAUA,EAAqB,UAAS;AAAA,IACtG,GAEA4D,EAAe,sBAAsB,MAAM;AACzC,MAAA7D,IAAY,EAAC,WAAWC,EAAqB,YAAY,GAAG,UAAUA,EAAqB,UAAS;AAAA,IACtG,GAEIA,EAAqB,qBACvB4D,EAAe,mBAAmB5D,EAAqB,oBAI3DyD,KAAiB9C,IAAsB,gBAAA3D,EAAC2D,GAAA,EAAqB,GAAGiD,GAAgB,IAAK;AAAA,EACvF;AAEA,QAAMG,KAAkB,CAACzJ,MAAmC;AAC1D,QAAI,CAACA,EAAO,OAAO,aAAc;AAEjC,UAAM0J,IAAc1J,EAAO,OAAO,YAAA,GAC5B2J,IAA4B,CAAC,EAAC,IAAI3J,EAAO,OAAO,IAAI,MAAM0J,MAAgB,QAAO;AAEvF,IAAInC,KACFvB,IAAiB2D,CAAW,GAG9BjC,EAAWiC,CAAW;AAAA,EACxB,GAEMC,KAAezB,EAAM,gBAAA,GACrB0B,KAAe1B,EAAM,gBAAA,GACrB2B,KAAY3B,EAAM,YAAA,EAAc;AAEtC,SACE,gBAAA4B,EAACpJ,IAAA,EAAU,WAAU,cACnB,UAAA;AAAA,IAAA,gBAAA+B,EAACrC,IAAA,EAAa,YAAY,CAAC6B,KAAoB0D,GAAW,WAAU,iBAClE,UAAA,gBAAAlD,EAACjC,IAAA,EAAmB,UAAAoF,EAAA,CAAe,GACrC;AAAA,sBACCnF,IAAA,EAAa,KAAKqD,GAAiB,WAAU,iBAC5C,4BAAClD,IAAA,EAAa,IAAIuF,IAAgB,WAAU,iBAC1C,UAAA,gBAAA2D,EAACjJ,IAAA,EAAW,GAAG2F,QAAmB,KAAK3C,GACrC,UAAA;AAAA,MAAA,gBAAApB,EAAClB,MAAM,WAAU,cAAa,aAAU,cACrC,UAAAoI,GAAa,IAAI,CAACI,wBAChBrI,GAAA,EAAyB,GAAG+E,KAAsBsD,CAAW,GAC3D,YAAY,QAAQ,IAAI,CAAChK,MACxB,gBAAA+J;AAAA,QAACxI;AAAA,QAAA;AAAA,UAEC,OAAOvB,EAAO,QAAA;AAAA,UACd,SAAS,MAAMyJ,GAAgBzJ,CAAM;AAAA,UACpC,GAAG2G,KAAiB3G,CAAM;AAAA,UAE1B,UAAA;AAAA,YAAAA,EAAO,gBAAgB,OAAO4E,GAAe5E,CAAM;AAAA,YACnDoF,GAAcpF,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QANhBA,EAAO;AAAA,MAAA,CAQf,KAXMgK,EAAY,EAYrB,CACD,EAAA,CACH;AAAA,MAECjE,EAAgB,SAAS/D,GAAgB,GAAG,uBAC1CF,IAAA,EAAM,WAAU,oBAAmB,aAAU,oBAC3C,UAAA+H,GAAa,IAAI,CAACI,MACjB,gBAAAvH,EAACf,GAAA,EAAyB,GAAGoF,IAAsBkD,CAAW,GAC3D,UAAAA,EAAY,QAAQ,IAAI,CAACjK,MACxB,gBAAA0C;AAAA,QAAC1B;AAAA,QAAA;AAAA,UAEC,OAAOhB,EAAO,QAAA;AAAA,UACd,QAAQD,GAAeC,CAAM;AAAA,UAC5B,GAAG8G,IAAiB9G,CAAM;AAAA,UAE1B,UAAAA,EAAO,gBAAgB,OAAO+E,EAAW/E,EAAO,OAAO,UAAU,QAAQA,EAAO,WAAA,CAAY;AAAA,QAAA;AAAA,QALxFA,EAAO;AAAA,MAAA,CAOf,KAVMiK,EAAY,EAWrB,CACD,EAAA,CACH;AAAA,MAGF,gBAAAvH,EAACd,MAAM,WAAU,cAAa,aAAU,cACrC,UAAAkI,GAAU,IAAI,CAACvF,MAAoB;AAClC,cAAM2F,IAAc7C,IAAchD,EAAA,IAA0BiC,GAAe/B,CAAG,GACxE,EAAC,eAAA4F,MAAiBD;AAExB,YAAIC,GAAe;AACjB,gBAAMC,IAAY7F,EAAI,gBAAA,EAAkB,CAAC;AAEzC,iBAAK6F,sBAGFC,IAAA,EACC,UAAA;AAAA,YAAA,gBAAA3H,EAAChB,IAAA,EACC,UAAA,gBAAAgB,EAACf,GAAA,EAAI,GAAI0F,IAAc,SAAYT,IAAcrC,CAAG,GAClD,4BAACvD,GAAA,EAAG,OAAO,EAAC,MAAM,YAAY,GAAIqG,IAAc,SAAYR,IAAeuD,CAAS,GAClF,UAAA,gBAAA1H,EAAC,UAAA,EAAQ,YAAW0H,EAAU,OAAO,UAAU,MAAMA,EAAU,WAAA,CAAY,GAAE,EAAA,CAC/E,GACF,GACF;AAAA,YACC,CAAC/C,KAAe9C,EAAI,mBAAmB0C,KAAmBA,EAAgB1C,CAAG;AAAA,UAAA,EAAA,GARjE,SAASA,EAAI,KAAK,EASjC,IAZqB;AAAA,QAczB;AAEA,iCACG8F,IAAA,EACC,UAAA;AAAA,UAAA,gBAAA3H,EAAChB,IAAA,EACC,UAAA,gBAAAgB,EAACf,GAAA,EAAI,GAAI0F,IAAc,SAAYT,IAAcrC,CAAG,GACjD,UAAAA,EAAI,gBAAA,EAAkB,IAAI,CAACrE,MAC1B,gBAAAwC;AAAA,YAAC1B;AAAA,YAAA;AAAA,cAEC,OAAOd,EAAK,OAAO,QAAA;AAAA,cACnB,QAAQD,GAAaC,CAAI;AAAA,cACxB,GAAImH,IAAc,SAAYR,IAAe3G,CAAI;AAAA,cAEjD,YAAWA,EAAK,OAAO,UAAU,MAAMA,EAAK,YAAY;AAAA,YAAA;AAAA,YALpDA,EAAK;AAAA,UAAA,CAOb,GACH,EAAA,CACF;AAAA,UACC,CAACmH,KAAe9C,EAAI,mBAAmB0C,KAAmBA,EAAgB1C,CAAG;AAAA,QAAA,EAAA,GAfjE,SAASA,EAAI,KAAK,EAgBjC;AAAA,MAEJ,CAAC,EAAA,CACH;AAAA,MAECwB,EAAgB,SAAS/D,GAAgB,MAAM,uBAC7CF,IAAA,EAAM,WAAU,uBAAsB,aAAU,uBAC9C,UAAA+H,GAAa,IAAI,CAACI,MACjB,gBAAAvH,EAACf,GAAA,EAAyB,GAAGoF,IAAsBkD,CAAW,GAC3D,UAAAA,EAAY,QAAQ,IAAI,CAACjK,MACxB,gBAAA0C;AAAA,QAAC1B;AAAA,QAAA;AAAA,UAEC,OAAOhB,EAAO,QAAA;AAAA,UACd,QAAQD,GAAeC,CAAM;AAAA,UAC5B,GAAG8G,IAAiB9G,CAAM;AAAA,UAE1B,UAAAA,EAAO,gBAAgB,OAAO+E,EAAW/E,EAAO,OAAO,UAAU,QAAQA,EAAO,WAAA,CAAY;AAAA,QAAA;AAAA,QALxFA,EAAO;AAAA,MAAA,CAOf,KAVMiK,EAAY,EAWrB,CACD,EAAA,CACH;AAAA,IAAA,EAAA,CAEJ,GACF,GACF;AAAA,IACC,CAACrE,KAAa,CAACL,EAAK,UAAUyB;AAAA,IAC9BmC;AAAA,EAAA,GACH;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/propsGetter.tsx","../src/style.tsx","../src/types.ts","../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/index.tsx"],"sourcesContent":["import type {CSSProperties} from 'react';\nimport type {Cell, Header} from '@tanstack/react-table';\nimport type {DefaultObject} from './types';\n\nexport const getColumnAlign = <TData extends DefaultObject>(\n header: Header<TData, unknown>,\n): CSSProperties['textAlign'] | undefined => header.column.columnDef.meta?.align;\n\nexport const getCellAlign = <TData extends DefaultObject>(\n cell: Cell<TData, unknown>,\n): CSSProperties['textAlign'] | undefined => cell.column.columnDef.meta?.align;\n","import styled, {keyframes, css} from 'styled-components';\nimport type {CSSProperties} from 'react';\nimport {fontNormal, white, black, spacing, gray80, gray95} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div<{$isLoading: boolean}>`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n\n ${({$isLoading}) =>\n $isLoading &&\n css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n\n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n\n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div<{$align?: CSSProperties['textAlign']; $size?: number}>`\n flex: 0 0 ${({$size}) => $size ?? 50}px;\n width: ${({$size}) => $size ?? 50}px;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n\n ${({$align}) =>\n $align &&\n css`\n text-align: ${$align};\n `}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div<{$size?: number; $align?: CSSProperties['textAlign']}>`\n flex: 0 0 ${({$size}) => $size ?? 50}px;\n width: ${({$size}) => $size ?? 50}px;\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n\n ${({$align}) =>\n $align &&\n css`\n text-align: ${$align};\n `}\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n\n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n display: flex;\n flex: 1 0 auto;\n padding: 0;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n\n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import type {ComponentPropsWithoutRef, ComponentType, CSSProperties, ReactElement, ReactNode} from 'react';\nimport type {\n Cell,\n ColumnDef,\n Header,\n HeaderGroup,\n Row,\n RowData,\n SortingState,\n TableState,\n VisibilityState,\n} from '@tanstack/react-table';\n\ndeclare module '@tanstack/react-table' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CSSProperties['textAlign'];\n }\n}\n\nexport type DefaultObject = Record<string, unknown>;\n\nexport type LoadingState<TData extends DefaultObject = DefaultObject> = {\n loadingColumns?: ColumnDef<TData>[];\n loadingData: TData[];\n};\n\nexport type RowPreProps = ComponentPropsWithoutRef<'div'> & {\n isDelimiterTd?: boolean;\n};\n\nexport const FooterPlacement = {\n Top: 'top',\n Bottom: 'bottom',\n} as const;\nexport type FooterPlacement = (typeof FooterPlacement)[keyof typeof FooterPlacement];\n\nexport type PaginationProps = {\n paginationAmount?: ReactNode;\n parentElementId: string;\n labelPerPage?: string;\n pageSizes?: Array<string | number>;\n pageIndex: number;\n perPage: number;\n totalPages: number;\n totalItems: number;\n canNextPage: boolean;\n canPreviousPage: boolean;\n nextPageHandler: () => void;\n previousPageHandler: () => void;\n setPageSize: (size: number) => void;\n gotoPage: (page: number) => void;\n};\n\nexport type ControlledPagination = {\n paginationAmount?: ReactNode;\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n};\n\nexport type HeaderGroupPropsGetter<TData extends DefaultObject = DefaultObject> = (\n headerGroup: HeaderGroup<TData>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type HeaderPropsGetter<TData extends DefaultObject = DefaultObject> = (\n header: Header<TData, unknown>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type RowPropsGetter<TData extends DefaultObject = DefaultObject> = (\n row: Row<TData>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type CellPropsGetter<TData extends DefaultObject = DefaultObject> = (\n cell: Cell<TData, unknown>,\n) => ComponentPropsWithoutRef<'div'>;\n\nexport type SelectColumnProps<TData extends DefaultObject = DefaultObject> = Pick<\n ColumnDef<TData>,\n 'size' | 'minSize' | 'maxSize' | 'meta' | 'enableHiding'\n>;\n\nexport type TableProps<TData extends DefaultObject = DefaultObject> = {\n columns: ColumnDef<TData>[];\n data: TData[];\n totalItems?: number;\n PaginationComponent?: ComponentType<PaginationProps>;\n initialState?: Partial<TableState> & {columnVisibility?: VisibilityState};\n fetchData?: (params: {pageIndex: number; pageSize: number}) => void;\n onSortedChange?: (sorting: SortingState) => void;\n isLoading?: boolean;\n footerPlacement?: FooterPlacement[];\n hasDefaultPagination?: boolean;\n onSelectRowsChange?: (rows: TData[]) => void;\n controlledPagination?: ControlledPagination;\n loadingMessage?: string;\n labelPerPage?: string;\n parentElementId?: string;\n tableContentId?: string;\n getRowPreProps?: (row: Row<TData>) => RowPreProps;\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;\n getSubRows?: (originalRow: TData, index: number) => TData[] | undefined;\n getTableProps?: () => ComponentPropsWithoutRef<'div'>;\n getHeaderGroupProps?: HeaderGroupPropsGetter<TData>;\n getHeaderProps?: HeaderPropsGetter<TData>;\n getRowProps?: RowPropsGetter<TData>;\n getCellProps?: CellPropsGetter<TData>;\n getFooterProps?: HeaderPropsGetter<TData>;\n getFooterGroupProps?: HeaderGroupPropsGetter<TData>;\n showLoadingState?: boolean;\n LoadingCellComponent?: ComponentType;\n noDataMessage?: ReactNode;\n rowSubComponent?: (row: Row<TData>) => ReactElement;\n isEnableRowSelect?: (original: TData) => boolean;\n selectColumnProps?: Partial<SelectColumnProps<TData>>;\n};\n\n// Re-exported for consumers\nexport type StandardColumn<TData extends DefaultObject = DefaultObject> = ColumnDef<TData>;\nexport type StandardRow<TData extends DefaultObject = DefaultObject> = Row<TData>;\nexport type StandardCell<TData extends DefaultObject = DefaultObject> = Cell<TData, unknown>;\nexport type {SortingState, VisibilityState};\n","import {useMemo, type ComponentType} from 'react';\nimport type {ColumnDef} from '@tanstack/react-table';\nimport type {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = <TData extends DefaultObject>(\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: ColumnDef<TData>[],\n LoadingCellComponent: ComponentType,\n): LoadingState<TData> => {\n const loadingColumns: ColumnDef<TData>[] | undefined = useMemo(\n () =>\n showLoadingState && loading\n ? columns.map((column) => ({\n ...column,\n cell: () => <LoadingCellComponent />,\n }))\n : [],\n [columns, loading, showLoadingState],\n );\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: TData[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject as TData);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","import {useEffect} from 'react';\n\nconst TableShadowClassName = {\n Left: 'shadow_left',\n Right: 'shadow_right',\n} as const;\n\nconst changeClassName = (tableWrapperNode: Element, newClassNameList: string[]) => {\n const {classList} = tableWrapperNode;\n\n classList.remove(TableShadowClassName.Left, TableShadowClassName.Right);\n classList.add(...newClassNameList);\n};\n\nconst calculateNewClassNames = (tableNode: Element | null, tableWrapperNode: Element | null) => {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName: string[] = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TableShadowClassName.Left);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TableShadowClassName.Right);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n};\n\nconst useTableShadow = (tableRef: {current: Element | null}, tableWrapperRef: {current: Element | null}) => {\n useEffect(() => {\n let ticking = false;\n\n const onMousewheel = () => {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n };\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n\nexport default useTableShadow;\n","import {ArrowDown, ArrowUp, Color, Size} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\nimport {Fragment, useEffect, useMemo, useRef, useState, type MouseEvent, type ReactNode} from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n type Cell,\n type ColumnDef,\n type RowData,\n type VisibilityState,\n type Header,\n type PaginationState,\n type Row,\n type RowSelectionState,\n type SortingState,\n} from '@tanstack/react-table';\nimport {getCellAlign, getColumnAlign} from './propsGetter';\nimport {\n EmptyStateCell,\n HeadCell,\n TableContent,\n TableCore,\n TableLoading,\n TableLoadingInner,\n TableRoot,\n TableWrapper,\n TBody,\n TD,\n TFoot,\n TH,\n THead,\n TR,\n TResizer,\n TRGroup,\n} from './style';\nimport {FooterPlacement} from './types';\nimport type {DefaultObject, PaginationProps, RowPreProps, TableProps} from './types';\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\ntype TableRowData = DefaultObject & RowData;\n\nconst isEnableRowSelectDefault = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault = (): RowPreProps => ({});\nconst getSubRowsDefault = <TData extends TableRowData>(row: TData): TData[] | undefined => {\n const {subRows} = row as TData & {subRows?: TData[]};\n\n if (!Array.isArray(subRows)) {\n return undefined;\n }\n\n return subRows;\n};\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nconst getHeadContent = <TData extends TableRowData>(header: Header<TData, unknown>) => {\n const sorted = header.column.getIsSorted();\n const rendered = flexRender(header.column.columnDef.header, header.getContext());\n\n if (sorted === 'desc') {\n return (\n <HeadCell>\n {rendered}\n <ArrowUp size={Size.Small} color={Color.GrayDark} />\n </HeadCell>\n );\n }\n\n if (sorted === 'asc') {\n return (\n <HeadCell>\n {rendered}\n <ArrowDown size={Size.Small} color={Color.GrayDark} />\n </HeadCell>\n );\n }\n\n return rendered;\n};\n\nconst renderResizer = <TData extends TableRowData>(header: Header<TData, unknown>) => {\n if (header.column.getCanResize()) {\n return (\n <TResizer\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n return null;\n};\n\nconst Table = <TData extends TableRowData = DefaultObject>({\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading = defaultProps.isLoading,\n loadingMessage = defaultProps.loadingMessage,\n labelPerPage = defaultProps.labelPerPage,\n footerPlacement = defaultProps.footerPlacement,\n onSortedChange,\n hasDefaultPagination = defaultProps.hasDefaultPagination,\n onSelectRowsChange,\n parentElementId = defaultProps.parentElementId,\n tableContentId = defaultProps.tableContentId,\n LoadingCellComponent = defaultProps.LoadingCellComponent,\n PaginationComponent,\n getRowPreProps = getRowPrePropsDefault,\n getRowId,\n getSubRows = getSubRowsDefault,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState = defaultProps.showLoadingState,\n noDataMessage = defaultProps.noDataMessage,\n rowSubComponent,\n isEnableRowSelect = defaultProps.isEnableRowSelect,\n selectColumnProps = defaultProps.selectColumnProps,\n}: TableProps<TData>) => {\n const memoColumns = useMemo(() => columns, [columns]);\n const showLoading = showLoadingState && isLoading;\n\n const hasSelectedRowsAbility = !showLoading && typeof onSelectRowsChange === 'function';\n const hasManualSortBy = typeof onSortedChange === 'function';\n const hasControlledPagination = !!(fetchData && controlledPagination && Object.keys(controlledPagination).length > 0);\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or ' +\n 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination && typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error('You have to pass pageCount in controlledPagination data');\n }\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>(initialState?.columnVisibility ?? {});\n\n useEffect(() => {\n if (initialState?.columnVisibility) {\n setColumnVisibility(initialState.columnVisibility);\n }\n }, [initialState?.columnVisibility]);\n\n const selectionColumn: ColumnDef<TData> = useMemo(\n () => ({\n id: 'selection',\n enableSorting: false,\n header: ({table}) => {\n const pageRows = table.getRowModel().rows;\n const isDisabledAllRows = pageRows.map((r) => r.original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={table.toggleAllPageRowsSelected}\n isChecked={table.getIsAllPageRowsSelected()}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n cell: ({row}) => {\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={row.id}\n onChange={row.toggleSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && row.getIsSelected()}\n />\n );\n },\n ...selectColumnProps,\n }),\n [isEnableRowSelect, selectColumnProps],\n );\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n hasControlledPagination ? (controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE) : pagination.pageSize,\n memoColumns,\n LoadingCellComponent,\n );\n\n const finalColumns = useMemo<ColumnDef<TData>[]>(() => {\n const base = showLoading ? (loadingColumns ?? []) : memoColumns;\n return hasSelectedRowsAbility ? [selectionColumn, ...base] : base;\n }, [showLoading, loadingColumns, memoColumns, hasSelectedRowsAbility, selectionColumn]);\n\n const finalData = showLoading ? loadingData : data;\n\n const effectivePagination: PaginationState =\n hasControlledPagination && controlledPagination\n ? {pageIndex: controlledPagination.pageIndex, pageSize: controlledPagination.pageSize}\n : pagination;\n\n const table = useReactTable<TData>({\n columns: finalColumns,\n data: finalData,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n ...(hasDefaultPagination || hasControlledPagination ? {getPaginationRowModel: getPaginationRowModel()} : {}),\n enableRowSelection: hasSelectedRowsAbility ? (row) => isEnableRowSelect(row.original) : false,\n getRowCanExpand: (row) => !showLoading && (Boolean(rowSubComponent) || row.subRows.length > 0),\n getRowId,\n getSubRows,\n state: {\n sorting,\n rowSelection,\n pagination: effectivePagination,\n columnVisibility,\n },\n onSortingChange: setSorting,\n onRowSelectionChange: setRowSelection,\n onPaginationChange: hasControlledPagination ? undefined : setPagination,\n onColumnVisibilityChange: setColumnVisibility,\n manualSorting: hasManualSortBy,\n manualPagination: hasControlledPagination ? true : undefined,\n pageCount: hasControlledPagination ? controlledPagination?.pageCount : undefined,\n enableSortingRemoval: false,\n enableMultiSort: false,\n enableColumnResizing: true,\n columnResizeMode: 'onChange',\n defaultColumn: {enableResizing: false},\n });\n\n const tableRef = useRef<HTMLDivElement>(null);\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n const selectedRows = table\n .getSelectedRowModel()\n .flatRows.map((row) => row.original)\n .filter(isEnableRowSelect);\n onSelectRowsChange?.(selectedRows);\n }\n }, [rowSelection, hasSelectedRowsAbility]);\n\n let paginationNode: ReactNode = null;\n\n if (hasControlledPagination || hasDefaultPagination) {\n const {pageIndex: tPageIndex, pageSize: tPageSize} = table.getState().pagination;\n\n const paginationData: PaginationProps = {\n setPageSize: table.setPageSize,\n gotoPage: table.setPageIndex,\n canNextPage: table.getCanNextPage(),\n canPreviousPage: table.getCanPreviousPage(),\n parentElementId,\n labelPerPage,\n pageIndex: tPageIndex,\n previousPageHandler: table.previousPage,\n nextPageHandler: table.nextPage,\n totalPages: table.getPageCount(),\n perPage: tPageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({pageIndex: controlledPagination.pageIndex, pageSize: newPageSize});\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({pageIndex: newPageIndex, pageSize: controlledPagination.pageSize});\n };\n\n paginationData.nextPageHandler = () => {\n fetchData?.({pageIndex: controlledPagination.pageIndex + 1, pageSize: controlledPagination.pageSize});\n };\n\n paginationData.previousPageHandler = () => {\n fetchData?.({pageIndex: controlledPagination.pageIndex - 1, pageSize: controlledPagination.pageSize});\n };\n\n if (controlledPagination.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n paginationNode = PaginationComponent ? <PaginationComponent {...paginationData} /> : null;\n }\n\n const handleSortClick = (header: Header<TData, unknown>) => {\n if (!header.column.getCanSort()) return;\n\n const currentSort = header.column.getIsSorted();\n const nextSorting: SortingState = [{id: header.column.id, desc: currentSort !== 'desc'}];\n\n if (hasManualSortBy) {\n onSortedChange?.(nextSorting);\n }\n\n setSorting(nextSorting);\n };\n\n const headerGroups = table.getHeaderGroups();\n const footerGroups = table.getFooterGroups();\n const tBodyRows = table.getRowModel().rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading $isLoading={!showLoadingState && isLoading} className=\"table-loading\">\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore {...getTableProps?.()} ref={tableRef}>\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR key={headerGroup.id} {...getHeaderGroupProps?.(headerGroup)}>\n {headerGroup.headers.map((header) => (\n <TH\n key={header.id}\n $size={header.getSize()}\n onClick={() => handleSortClick(header)}\n {...getHeaderProps?.(header)}\n >\n {header.isPlaceholder ? null : getHeadContent(header)}\n {renderResizer(header)}\n </TH>\n ))}\n </TR>\n ))}\n </THead>\n\n {footerPlacement.includes(FooterPlacement.Top) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((footerGroup) => (\n <TR key={footerGroup.id} {...getFooterGroupProps?.(footerGroup)}>\n {footerGroup.headers.map((header) => (\n <TD\n key={header.id}\n $size={header.getSize()}\n $align={getColumnAlign(header)}\n {...getFooterProps?.(header)}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext())}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyRows.map((row: Row<TData>) => {\n const rowPreProps = showLoading ? getRowPrePropsDefault() : getRowPreProps(row);\n const {isDelimiterTd} = rowPreProps;\n\n if (isDelimiterTd) {\n const firstCell = row.getVisibleCells()[0];\n\n if (!firstCell) return null;\n\n return (\n <Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...(showLoading ? undefined : getRowProps?.(row))}>\n <TD style={{flex: '1 0 0%'}} {...(showLoading ? undefined : getCellProps?.(firstCell))}>\n <strong>{flexRender(firstCell.column.columnDef.cell, firstCell.getContext())}</strong>\n </TD>\n </TR>\n </TRGroup>\n {!showLoading && row.getIsExpanded() && rowSubComponent && rowSubComponent(row)}\n </Fragment>\n );\n }\n\n return (\n <Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...(showLoading ? undefined : getRowProps?.(row))}>\n {row.getVisibleCells().map((cell: Cell<TData, unknown>) => (\n <TD\n key={cell.id}\n $size={cell.column.getSize()}\n $align={getCellAlign(cell)}\n {...(showLoading ? undefined : getCellProps?.(cell))}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {!showLoading && row.getIsExpanded() && rowSubComponent && rowSubComponent(row)}\n </Fragment>\n );\n })}\n </TBody>\n\n {footerPlacement.includes(FooterPlacement.Bottom) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((footerGroup) => (\n <TR key={footerGroup.id} {...getFooterGroupProps?.(footerGroup)}>\n {footerGroup.headers.map((header) => (\n <TD\n key={header.id}\n $size={header.getSize()}\n $align={getColumnAlign(header)}\n {...getFooterProps?.(header)}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext())}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {paginationNode}\n </TableRoot>\n );\n};\n\nexport default Table;\nexport type {\n CellPropsGetter,\n ControlledPagination,\n DefaultObject,\n HeaderGroupPropsGetter,\n HeaderPropsGetter,\n LoadingState,\n PaginationProps,\n RowPreProps,\n RowPropsGetter,\n SelectColumnProps,\n SortingState,\n StandardCell,\n StandardColumn,\n StandardRow,\n TableProps,\n VisibilityState,\n} from './types';\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propellerads/table",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"url": "https://github.com/propellerads/ui-components/issues"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
|
-
"build": "tsc && vite build && rollup -c rollup.dts.config.mjs"
|
|
22
|
+
"build": "tsc && vite build && bunx rollup -c rollup.dts.config.mjs"
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://github.com/propellerads/ui-components#readme",
|
|
25
25
|
"private": false,
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@propellerads/stylevariables": "^2.0.
|
|
28
|
-
"@propellerads/icon": "^7.2.
|
|
27
|
+
"@propellerads/stylevariables": "^2.0.2",
|
|
28
|
+
"@propellerads/icon": "^7.2.3",
|
|
29
29
|
"@propellerads/input-checkbox": "^4.0.0",
|
|
30
30
|
"@tanstack/react-table": "^8.21.3"
|
|
31
31
|
},
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/react": "^19.2.14",
|
|
38
|
-
"@vitejs/plugin-react": "^
|
|
39
|
-
"rollup": "^4.
|
|
40
|
-
"rollup-plugin-dts": "^6.
|
|
41
|
-
"typescript": "^
|
|
42
|
-
"vite": "^
|
|
38
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
39
|
+
"rollup": "^4.60.3",
|
|
40
|
+
"rollup-plugin-dts": "^6.4.1",
|
|
41
|
+
"typescript": "^6.0.3",
|
|
42
|
+
"vite": "^8.0.10"
|
|
43
43
|
}
|
|
44
44
|
}
|