@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 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: styled_components.StyledComponent<"div", any, {}, never>;
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 { jsx as a, jsxs as w } from "react/jsx-runtime";
2
- import { ArrowUp as He, Color as ne, Size as oe, ArrowDown as _e } from "@propellerads/icon";
3
- import ie from "@propellerads/input-checkbox";
4
- import { useMemo as I, useEffect as A, useState as $, useRef as ae, Fragment as le } from "react";
5
- import { useReactTable as Ve, getPaginationRowModel as Be, getExpandedRowModel as Fe, getSortedRowModel as je, getCoreRowModel as Ue, flexRender as z } from "@tanstack/react-table";
6
- import d, { keyframes as Ye, css as L } from "styled-components";
7
- import { fontNormal as Ge, gray95 as D, white as Oe, spacing as me, black as qe, gray80 as We } from "@propellerads/stylevariables";
8
- const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef.meta?.align, Ze = Ye`
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
- `, Je = d.div`
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 && L`
32
+ ${({ $isLoading: e }) => e && f`
32
33
  opacity: 1;
33
34
  z-index: 2;
34
35
  pointer-events: all;
35
36
  `}
36
- `, Ke = d.div`
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
- `, Qe = d.div`
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
- `, et = d.div`
90
- font-size: ${Ge}px;
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
- `, tt = d.div`
96
+ `, de = d.div`
96
97
  display: block;
97
98
  max-width: 100%;
98
99
  overflow-x: scroll;
99
100
  overflow-y: hidden;
100
- `, nt = d.div`
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
- `, re = d.div`
107
+ `, C = d.div`
107
108
  display: inline-flex;
108
- `, P = d.div`
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 && L`
119
+ ${({ $align: e }) => e && f`
119
120
  text-align: ${e};
120
121
  `}
121
- `, ot = d.div`
122
+ `, T = d.div`
122
123
  width: 100%;
123
- height: ${me * 4}px;
124
- background: linear-gradient(to left, ${D}, ${Oe}, ${D});
124
+ height: ${_ * 4}px;
125
+ background: linear-gradient(to left, ${g}, ${v}, ${g});
125
126
  background-size: 200% 200%;
126
- animation: ${Ze} 1.6s linear infinite;
127
- `, fe = d.div`
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 && L`
139
+ ${({ $align: e }) => e && f`
139
140
  text-align: ${e};
140
141
  `}
141
- `, it = d.div`
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
- ${fe}, ${P} {
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: ${qe};
153
+ color: ${m};
153
154
  font-weight: 500;
154
155
  outline: none;
155
156
  }
156
- `, ce = d.div`
157
+ `, D = d.div`
157
158
  display: flex;
158
159
  flex: 1 0 auto;
159
- box-shadow: inset 0 -1px 0 0 ${D};
160
+ box-shadow: inset 0 -1px 0 0 ${g};
160
161
  min-width: 100%;
161
162
  width: max-content;
162
- `, S = d.div`
163
+ `, O = d.div`
163
164
  display: flex;
164
165
  flex: 1 0 auto;
165
166
  padding: 0;
166
167
  align-items: center;
167
- `, at = d.div`
168
- border-top: 1px solid ${We};
169
- margin-top: ${me * 2}px;
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
- `, de = d.div`
173
- background: ${D};
173
+ `, k = d.div`
174
+ background: ${g};
174
175
  flex: 1 0 auto;
175
176
  display: flex;
176
177
  flex-direction: column;
177
- `, lt = d.div`
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
- `, ge = {
192
- Top: "top",
193
- Bottom: "bottom"
194
- }, st = (e, o, s, l, i) => {
195
- const x = I(
196
- () => e && o ? l.map((b) => ({
197
- ...b,
198
- cell: () => /* @__PURE__ */ a(i, {})
199
- })) : [],
200
- [l, o, e]
201
- ), h = I(() => {
202
- if (e && o && l && l.length > 0) {
203
- const b = {}, C = [];
204
- for (let f = 0; f < l.length; f += 1)
205
- b[`empty_${f}`] = "";
206
- for (let f = 0; f < s; f += 1)
207
- C.push(b);
208
- return C;
209
- }
210
- return [];
211
- }, [l, o, s, e]);
212
- return {
213
- loadingColumns: x,
214
- loadingData: h
215
- };
216
- }, M = {
217
- Left: "shadow_left",
218
- Right: "shadow_right"
219
- }, rt = (e, o) => {
220
- const { classList: s } = e;
221
- s.remove(M.Left, M.Right), s.add(...o);
222
- }, pe = (e, o) => {
223
- if (!e || !o)
224
- return;
225
- const s = e.getBoundingClientRect(), l = o.getBoundingClientRect(), i = [], x = Math.floor(s.left), h = Math.floor(s.right), b = Math.floor(l.left), C = Math.floor(l.right);
226
- x < b && i.push(M.Left), h > C && i.push(M.Right), rt(o, i);
227
- }, ct = (e, o) => {
228
- A(() => {
229
- let s = !1;
230
- const l = () => {
231
- s || (window.requestAnimationFrame(() => {
232
- pe(e.current, o.current), s = !1;
233
- }), s = !0);
234
- };
235
- return pe(e.current, o.current), e?.current?.addEventListener("mousewheel", l), window.addEventListener("resize", l), () => {
236
- e?.current?.removeEventListener("mousewheel", l), window.removeEventListener("resize", l);
237
- };
238
- }, [e.current, o.current]);
239
- }, dt = () => !0, gt = {}, N = () => ({}), pt = (e) => {
240
- const { subRows: o } = e;
241
- if (Array.isArray(o))
242
- return o;
243
- }, u = {
244
- hasDefaultPagination: !1,
245
- isLoading: !1,
246
- footerPlacement: [],
247
- loadingMessage: "loading...",
248
- labelPerPage: "Show rows",
249
- parentElementId: "parent-element",
250
- tableContentId: "",
251
- showLoadingState: !1,
252
- LoadingCellComponent: ot,
253
- getRowPreProps: N,
254
- isEnableRowSelect: dt,
255
- selectColumnProps: gt,
256
- noDataMessage: ""
257
- }, ut = 0, ue = 10, mt = (e) => {
258
- const o = e.column.getIsSorted(), s = z(e.column.columnDef.header, e.getContext());
259
- return o === "desc" ? /* @__PURE__ */ w(re, { children: [
260
- s,
261
- /* @__PURE__ */ a(He, { size: oe.Small, color: ne.GrayDark })
262
- ] }) : o === "asc" ? /* @__PURE__ */ w(re, { children: [
263
- s,
264
- /* @__PURE__ */ a(_e, { size: oe.Small, color: ne.GrayDark })
265
- ] }) : s;
266
- }, ft = (e) => e.column.getCanResize() ? /* @__PURE__ */ a(
267
- lt,
268
- {
269
- onMouseDown: e.getResizeHandler(),
270
- onTouchStart: e.getResizeHandler(),
271
- onClick: (o) => {
272
- o.preventDefault(), o.stopPropagation();
273
- }
274
- }
275
- ) : null, Rt = ({
276
- columns: e,
277
- data: o,
278
- totalItems: s,
279
- fetchData: l,
280
- controlledPagination: i,
281
- initialState: x,
282
- isLoading: h = u.isLoading,
283
- loadingMessage: b = u.loadingMessage,
284
- labelPerPage: C = u.labelPerPage,
285
- footerPlacement: f = u.footerPlacement,
286
- onSortedChange: H,
287
- hasDefaultPagination: k = u.hasDefaultPagination,
288
- onSelectRowsChange: _,
289
- parentElementId: xe = u.parentElementId,
290
- tableContentId: he = u.tableContentId,
291
- LoadingCellComponent: be = u.LoadingCellComponent,
292
- PaginationComponent: V,
293
- getRowPreProps: we = N,
294
- getRowId: Ce,
295
- getSubRows: ve = pt,
296
- getTableProps: ye,
297
- getHeaderGroupProps: Re,
298
- getHeaderProps: Se,
299
- getRowProps: B,
300
- getCellProps: F,
301
- getFooterProps: j,
302
- getFooterGroupProps: U,
303
- showLoadingState: T = u.showLoadingState,
304
- noDataMessage: ze = u.noDataMessage,
305
- rowSubComponent: v,
306
- isEnableRowSelect: y = u.isEnableRowSelect,
307
- selectColumnProps: Y = u.selectColumnProps
308
- }) => {
309
- const E = I(() => e, [e]), g = T && h, R = !g && typeof _ == "function", G = typeof H == "function", m = !!(l && i && Object.keys(i).length > 0);
310
- if (k && m)
311
- throw new Error(
312
- "You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data"
313
- );
314
- if (m && typeof i?.pageCount > "u")
315
- throw new Error("You have to pass pageCount in controlledPagination data");
316
- const [Pe, O] = $([]), [q, Ie] = $({}), [W, $e] = $({
317
- pageIndex: ut,
318
- pageSize: ue
319
- }), [De, X] = $(x?.columnVisibility ?? {});
320
- A(() => {
321
- x?.columnVisibility && X(x.columnVisibility);
322
- }, [x?.columnVisibility]);
323
- const Z = I(
324
- () => ({
325
- id: "selection",
326
- enableSorting: !1,
327
- header: ({ table: t }) => {
328
- const r = t.getRowModel().rows.map((c) => c.original).filter(y).length === 0;
329
- return /* @__PURE__ */ a(
330
- ie,
331
- {
332
- elementId: "all",
333
- onChange: t.toggleAllPageRowsSelected,
334
- isChecked: t.getIsAllPageRowsSelected(),
335
- isDisabled: r
336
- }
337
- );
338
- },
339
- cell: ({ row: t }) => {
340
- const n = y(t.original);
341
- return /* @__PURE__ */ a(
342
- ie,
343
- {
344
- elementId: t.id,
345
- onChange: t.toggleSelected,
346
- isDisabled: !n,
347
- isChecked: n && t.getIsSelected()
348
- }
349
- );
350
- },
351
- ...Y
352
- }),
353
- [y, Y]
354
- ), { loadingColumns: J, loadingData: Me } = st(
355
- T,
356
- h,
357
- m ? i?.pageSize ?? ue : W.pageSize,
358
- E,
359
- be
360
- ), ke = I(() => {
361
- const t = g ? J ?? [] : E;
362
- return R ? [Z, ...t] : t;
363
- }, [g, J, E, R, Z]), Te = g ? Me : o, Ee = m && i ? { pageIndex: i.pageIndex, pageSize: i.pageSize } : W, p = Ve({
364
- columns: ke,
365
- data: Te,
366
- getCoreRowModel: Ue(),
367
- getSortedRowModel: je(),
368
- getExpandedRowModel: Fe(),
369
- ...k || m ? { getPaginationRowModel: Be() } : {},
370
- enableRowSelection: R ? (t) => y(t.original) : !1,
371
- getRowCanExpand: (t) => !g && (!!v || t.subRows.length > 0),
372
- getRowId: Ce,
373
- getSubRows: ve,
374
- state: {
375
- sorting: Pe,
376
- rowSelection: q,
377
- pagination: Ee,
378
- columnVisibility: De
379
- },
380
- onSortingChange: O,
381
- onRowSelectionChange: Ie,
382
- onPaginationChange: m ? void 0 : $e,
383
- onColumnVisibilityChange: X,
384
- manualSorting: G,
385
- manualPagination: m ? !0 : void 0,
386
- pageCount: m ? i?.pageCount : void 0,
387
- enableSortingRemoval: !1,
388
- enableMultiSort: !1,
389
- enableColumnResizing: !1,
390
- columnResizeMode: "onChange"
391
- }), K = ae(null), Q = ae(null);
392
- ct(K, Q), A(() => {
393
- if (R) {
394
- const t = p.getSelectedRowModel().flatRows.map((n) => n.original).filter(y);
395
- _?.(t);
396
- }
397
- }, [q, R]);
398
- let ee = null;
399
- if (m || k) {
400
- const { pageIndex: t, pageSize: n } = p.getState().pagination, r = {
401
- setPageSize: p.setPageSize,
402
- gotoPage: p.setPageIndex,
403
- canNextPage: p.getCanNextPage(),
404
- canPreviousPage: p.getCanPreviousPage(),
405
- parentElementId: xe,
406
- labelPerPage: C,
407
- pageIndex: t,
408
- previousPageHandler: p.previousPage,
409
- nextPageHandler: p.nextPage,
410
- totalPages: p.getPageCount(),
411
- perPage: n,
412
- totalItems: s ?? o.length
413
- };
414
- m && i && (r.canNextPage = i.pageIndex + 1 !== r.totalPages, r.canPreviousPage = i.pageIndex !== 0, r.pageIndex = i.pageIndex, r.perPage = i.pageSize, r.setPageSize = (c) => {
415
- l?.({ pageIndex: i.pageIndex, pageSize: c });
416
- }, r.gotoPage = (c) => {
417
- l?.({ pageIndex: c, pageSize: i.pageSize });
418
- }, r.nextPageHandler = () => {
419
- l?.({ pageIndex: i.pageIndex + 1, pageSize: i.pageSize });
420
- }, r.previousPageHandler = () => {
421
- l?.({ pageIndex: i.pageIndex - 1, pageSize: i.pageSize });
422
- }, i.paginationAmount && (r.paginationAmount = i.paginationAmount)), ee = V ? /* @__PURE__ */ a(V, { ...r }) : null;
423
- }
424
- const Ae = (t) => {
425
- if (!t.column.getCanSort()) return;
426
- const n = t.column.getIsSorted(), r = [{ id: t.column.id, desc: n !== "desc" }];
427
- G && H?.(r), O(r);
428
- }, Ne = p.getHeaderGroups(), te = p.getFooterGroups(), Le = p.getRowModel().rows;
429
- return /* @__PURE__ */ w(et, { className: "table-root", children: [
430
- /* @__PURE__ */ a(Je, { $isLoading: !T && h, className: "table-loading", children: /* @__PURE__ */ a(Ke, { children: b }) }),
431
- /* @__PURE__ */ a(Qe, { ref: Q, className: "table-wrapper", children: /* @__PURE__ */ a(tt, { id: he, className: "table-content", children: /* @__PURE__ */ w(nt, { ...ye?.(), ref: K, children: [
432
- /* @__PURE__ */ a(it, { className: "table-head", "data-role": "table-head", children: Ne.map((t) => /* @__PURE__ */ a(S, { ...Re?.(t), children: t.headers.map((n) => /* @__PURE__ */ w(
433
- fe,
434
- {
435
- $size: n.getSize(),
436
- onClick: () => Ae(n),
437
- ...Se?.(n),
438
- children: [
439
- n.isPlaceholder ? null : mt(n),
440
- ft(n)
441
- ]
442
- },
443
- n.id
444
- )) }, t.id)) }),
445
- f.includes(ge.Top) && /* @__PURE__ */ a(de, { className: "table-footer-top", "data-role": "table-footer-top", children: te.map((t) => /* @__PURE__ */ a(S, { ...U?.(t), children: t.headers.map((n) => /* @__PURE__ */ a(
446
- P,
447
- {
448
- $size: n.getSize(),
449
- $align: se(n),
450
- ...j?.(n),
451
- children: n.isPlaceholder ? null : z(n.column.columnDef.footer, n.getContext())
452
- },
453
- n.id
454
- )) }, t.id)) }),
455
- /* @__PURE__ */ a(at, { className: "table-body", "data-role": "table-body", children: Le.map((t) => {
456
- const n = g ? N() : we(t), { isDelimiterTd: r } = n;
457
- if (r) {
458
- const c = t.getVisibleCells()[0];
459
- return c ? /* @__PURE__ */ w(le, { children: [
460
- /* @__PURE__ */ a(ce, { children: /* @__PURE__ */ a(S, { ...g ? void 0 : B?.(t), children: /* @__PURE__ */ a(P, { style: { flex: "1 0 0%" }, ...g ? void 0 : F?.(c), children: /* @__PURE__ */ a("strong", { children: z(c.column.columnDef.cell, c.getContext()) }) }) }) }),
461
- !g && t.getIsExpanded() && v && v(t)
462
- ] }, `group_${t.index}`) : null;
463
- }
464
- return /* @__PURE__ */ w(le, { children: [
465
- /* @__PURE__ */ a(ce, { children: /* @__PURE__ */ a(S, { ...g ? void 0 : B?.(t), children: t.getVisibleCells().map((c) => /* @__PURE__ */ a(
466
- P,
467
- {
468
- $size: c.column.getSize(),
469
- $align: Xe(c),
470
- ...g ? void 0 : F?.(c),
471
- children: z(c.column.columnDef.cell, c.getContext())
472
- },
473
- c.id
474
- )) }) }),
475
- !g && t.getIsExpanded() && v && v(t)
476
- ] }, `group_${t.index}`);
477
- }) }),
478
- f.includes(ge.Bottom) && /* @__PURE__ */ a(de, { className: "table-footer-bottom", "data-role": "table-footer-bottom", children: te.map((t) => /* @__PURE__ */ a(S, { ...U?.(t), children: t.headers.map((n) => /* @__PURE__ */ a(
479
- P,
480
- {
481
- $size: n.getSize(),
482
- $align: se(n),
483
- ...j?.(n),
484
- children: n.isPlaceholder ? null : z(n.column.columnDef.footer, n.getContext())
485
- },
486
- n.id
487
- )) }, t.id)) })
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
- //# sourceMappingURL=index.js.map
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":"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"}
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.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.1",
28
- "@propellerads/icon": "^7.2.1",
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": "^5.1.4",
39
- "rollup": "^4.58.0",
40
- "rollup-plugin-dts": "^6.3.0",
41
- "typescript": "^5.9.3",
42
- "vite": "^7.3.1"
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
  }