@propellerads/table 6.0.0 → 6.0.2

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,47 +87,48 @@ 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
- flex: 0 0 ${({ $size: e }) => e ?? 50}px;
109
+ `, w = d.div`
110
+ flex: ${({ $size: e }) => e ?? 1} 0 auto;
110
111
  width: ${({ $size: e }) => e ?? 50}px;
112
+ min-width: 0;
111
113
  white-space: nowrap;
112
114
  text-overflow: ellipsis;
113
115
  line-height: 1.3rem;
114
116
  padding: 7px 4px;
115
117
  overflow: hidden;
116
- 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`
128
- flex: 0 0 ${({ $size: e }) => e ?? 50}px;
127
+ animation: ${S} 1.6s linear infinite;
128
+ `, E = d.div`
129
+ flex: ${({ $size: e }) => e ?? 1} 0 auto;
129
130
  width: ${({ $size: e }) => e ?? 50}px;
131
+ min-width: 0;
130
132
  padding: 0 4px;
131
133
  line-height: normal;
132
134
  position: relative;
@@ -135,46 +137,47 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
135
137
  font-weight: 500;
136
138
  outline: none;
137
139
 
138
- ${({ $align: e }) => e && L`
140
+ ${({ $align: e }) => e && f`
139
141
  text-align: ${e};
140
142
  `}
141
- `, it = d.div`
143
+ `, pe = d.div`
142
144
  flex: 1 0 auto;
143
145
  display: flex;
144
146
  flex-direction: column;
145
147
  user-select: none;
146
148
 
147
- ${fe}, ${P} {
149
+ ${E}, ${w} {
148
150
  padding: 0 4px;
149
151
  line-height: normal;
150
152
  position: relative;
151
153
  transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
152
- color: ${qe};
154
+ color: ${m};
153
155
  font-weight: 500;
154
156
  outline: none;
155
157
  }
156
- `, ce = d.div`
158
+ `, D = d.div`
157
159
  display: flex;
158
160
  flex: 1 0 auto;
159
- box-shadow: inset 0 -1px 0 0 ${D};
161
+ box-shadow: inset 0 -1px 0 0 ${g};
160
162
  min-width: 100%;
161
163
  width: max-content;
162
- `, S = d.div`
164
+ `, O = d.div`
163
165
  display: flex;
164
166
  flex: 1 0 auto;
167
+ min-width: 0;
165
168
  padding: 0;
166
169
  align-items: center;
167
- `, at = d.div`
168
- border-top: 1px solid ${We};
169
- margin-top: ${me * 2}px;
170
+ `, me = d.div`
171
+ border-top: 1px solid ${h};
172
+ margin-top: ${_ * 2}px;
170
173
  min-width: 100%;
171
174
  width: max-content;
172
- `, de = d.div`
173
- background: ${D};
175
+ `, k = d.div`
176
+ background: ${g};
174
177
  flex: 1 0 auto;
175
178
  display: flex;
176
179
  flex-direction: column;
177
- `, lt = d.div`
180
+ `, A = d.div`
178
181
  display: inline-block;
179
182
  position: absolute;
180
183
  right: 5px;
@@ -188,310 +191,306 @@ const se = (e) => e.column.columnDef.meta?.align, Xe = (e) => e.column.columnDef
188
191
  right: 0;
189
192
  top: 0;
190
193
  }
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
194
+ `, j = {
195
+ Top: "top",
196
+ Bottom: "bottom"
197
+ }, he = (e, t, n, r, i) => ({
198
+ loadingColumns: s(() => e && t ? r.map((e) => ({
199
+ ...e,
200
+ cell: () => /* @__PURE__ */ y(i, {})
201
+ })) : [], [
202
+ r,
203
+ t,
204
+ e
205
+ ]),
206
+ loadingData: s(() => {
207
+ if (e && t && r && r.length > 0) {
208
+ let e = {}, t = [];
209
+ for (let t = 0; t < r.length; t += 1) e[`empty_${t}`] = "";
210
+ for (let r = 0; r < n; r += 1) t.push(e);
211
+ return t;
212
+ }
213
+ return [];
214
+ }, [
215
+ r,
216
+ t,
217
+ n,
218
+ e
219
+ ])
220
+ }), M = {
221
+ Left: "shadow_left",
222
+ Right: "shadow_right"
223
+ }, N = (e, t) => {
224
+ let { classList: n } = e;
225
+ n.remove(M.Left, M.Right), n.add(...t);
226
+ }, P = (e, t) => {
227
+ if (!e || !t) return;
228
+ 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);
229
+ a < s && i.push(M.Left), o > c && i.push(M.Right), N(t, i);
230
+ }, ge = (e, t) => {
231
+ o(() => {
232
+ let n = !1, r = () => {
233
+ n ||= (window.requestAnimationFrame(() => {
234
+ P(e.current, t.current), n = !1;
235
+ }), !0);
236
+ };
237
+ return P(e.current, t.current), e?.current?.addEventListener("mousewheel", r), window.addEventListener("resize", r), () => {
238
+ e?.current?.removeEventListener("mousewheel", r), window.removeEventListener("resize", r);
239
+ };
240
+ }, [e.current, t.current]);
241
+ }, F = () => !0, I = {}, L = () => ({}), _e = (e) => {
242
+ let { subRows: t } = e;
243
+ if (Array.isArray(t)) return t;
244
+ }, R = {
245
+ hasDefaultPagination: !1,
246
+ isLoading: !1,
247
+ footerPlacement: [],
248
+ loadingMessage: "loading...",
249
+ labelPerPage: "Show rows",
250
+ parentElementId: "parent-element",
251
+ tableContentId: "",
252
+ showLoadingState: !1,
253
+ LoadingCellComponent: T,
254
+ getRowPreProps: L,
255
+ isEnableRowSelect: F,
256
+ selectColumnProps: I,
257
+ noDataMessage: ""
258
+ }, ve = 0, z = 10, ye = (i) => {
259
+ let a = i.column.getIsSorted(), o = u(i.column.columnDef.header, i.getContext());
260
+ return a === "desc" ? /* @__PURE__ */ b(C, { children: [o, /* @__PURE__ */ y(t, {
261
+ size: r.Small,
262
+ color: n.GrayDark
263
+ })] }) : a === "asc" ? /* @__PURE__ */ b(C, { children: [o, /* @__PURE__ */ y(e, {
264
+ size: r.Small,
265
+ color: n.GrayDark
266
+ })] }) : o;
267
+ }, be = (e) => e.column.getCanResize() ? /* @__PURE__ */ y(A, {
268
+ onMouseDown: e.getResizeHandler(),
269
+ onTouchStart: e.getResizeHandler(),
270
+ onClick: (e) => {
271
+ e.preventDefault(), e.stopPropagation();
272
+ }
273
+ }) : 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 }) => {
274
+ 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);
275
+ if (_ && Z) throw Error("You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data");
276
+ if (Z && d?.pageCount === void 0) throw Error("You have to pass pageCount in controlledPagination data");
277
+ let [we, Te] = l([]), [Ee, De] = l({}), [Oe, ke] = l({
278
+ pageIndex: ve,
279
+ pageSize: z
280
+ }), [Ae, je] = l(f?.columnVisibility ?? {});
281
+ o(() => {
282
+ f?.columnVisibility && je(f.columnVisibility);
283
+ }, [f?.columnVisibility]);
284
+ let Q = s(() => ({
285
+ id: "selection",
286
+ enableSorting: !1,
287
+ header: ({ table: e }) => {
288
+ let t = e.getRowModel().rows.map((e) => e.original).filter(q).length === 0;
289
+ return /* @__PURE__ */ y(i, {
290
+ elementId: "all",
291
+ onChange: e.toggleAllPageRowsSelected,
292
+ isChecked: e.getIsAllPageRowsSelected(),
293
+ isDisabled: t
294
+ });
295
+ },
296
+ cell: ({ row: e }) => {
297
+ let t = q(e.original);
298
+ return /* @__PURE__ */ y(i, {
299
+ elementId: e.id,
300
+ onChange: e.toggleSelected,
301
+ isDisabled: !t,
302
+ isChecked: t && e.getIsSelected()
303
+ });
304
+ },
305
+ ...Se
306
+ }), [q, Se]), { loadingColumns: Me, loadingData: Ne } = he(G, p, Z ? d?.pageSize ?? z : Oe.pageSize, J, T), Pe = s(() => {
307
+ let e = Y ? Me ?? [] : J;
308
+ return X ? [Q, ...e] : e;
309
+ }, [
310
+ Y,
311
+ Me,
312
+ J,
313
+ X,
314
+ Q
315
+ ]), Fe = Y ? Ne : t, Ie = Z && d ? {
316
+ pageIndex: d.pageIndex,
317
+ pageSize: d.pageSize
318
+ } : Oe, $ = ie({
319
+ columns: Pe,
320
+ data: Fe,
321
+ getCoreRowModel: ee(),
322
+ getSortedRowModel: re(),
323
+ getExpandedRowModel: te(),
324
+ ..._ || Z ? { getPaginationRowModel: ne() } : {},
325
+ enableRowSelection: X ? (e) => q(e.original) : !1,
326
+ getRowCanExpand: (e) => !Y && (!!K || e.subRows.length > 0),
327
+ getRowId: N,
328
+ getSubRows: P,
329
+ state: {
330
+ sorting: we,
331
+ rowSelection: Ee,
332
+ pagination: Ie,
333
+ columnVisibility: Ae
334
+ },
335
+ onSortingChange: Te,
336
+ onRowSelectionChange: De,
337
+ onPaginationChange: Z ? void 0 : ke,
338
+ onColumnVisibilityChange: je,
339
+ manualSorting: Ce,
340
+ manualPagination: Z ? !0 : void 0,
341
+ pageCount: Z ? d?.pageCount : void 0,
342
+ enableSortingRemoval: !1,
343
+ enableMultiSort: !1,
344
+ enableColumnResizing: !0,
345
+ columnResizeMode: "onChange",
346
+ defaultColumn: { enableResizing: !1 }
347
+ }), Le = c(null), Re = c(null);
348
+ ge(Le, Re), o(() => {
349
+ if (X) {
350
+ let e = $.getSelectedRowModel().flatRows.map((e) => e.original).filter(q);
351
+ v?.(e);
352
+ }
353
+ }, [Ee, X]);
354
+ let ze = null;
355
+ if (Z || _) {
356
+ let { pageIndex: e, pageSize: i } = $.getState().pagination, a = {
357
+ setPageSize: $.setPageSize,
358
+ gotoPage: $.setPageIndex,
359
+ canNextPage: $.getCanNextPage(),
360
+ canPreviousPage: $.getCanPreviousPage(),
361
+ parentElementId: S,
362
+ labelPerPage: ae,
363
+ pageIndex: e,
364
+ previousPageHandler: $.previousPage,
365
+ nextPageHandler: $.nextPage,
366
+ totalPages: $.getPageCount(),
367
+ perPage: i,
368
+ totalItems: n ?? t.length
369
+ };
370
+ 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) => {
371
+ r?.({
372
+ pageIndex: d.pageIndex,
373
+ pageSize: e
374
+ });
375
+ }, a.gotoPage = (e) => {
376
+ r?.({
377
+ pageIndex: e,
378
+ pageSize: d.pageSize
379
+ });
380
+ }, a.nextPageHandler = () => {
381
+ r?.({
382
+ pageIndex: d.pageIndex + 1,
383
+ pageSize: d.pageSize
384
+ });
385
+ }, a.previousPageHandler = () => {
386
+ r?.({
387
+ pageIndex: d.pageIndex - 1,
388
+ pageSize: d.pageSize
389
+ });
390
+ }, d.paginationAmount && (a.paginationAmount = d.paginationAmount)), ze = A ? /* @__PURE__ */ y(A, { ...a }) : null;
391
+ }
392
+ let Be = (e) => {
393
+ if (!e.column.getCanSort()) return;
394
+ let t = e.column.getIsSorted(), n = [{
395
+ id: e.column.id,
396
+ desc: t !== "desc"
397
+ }];
398
+ Ce && g?.(n), Te(n);
399
+ }, Ve = $.getHeaderGroups(), He = $.getFooterGroups(), Ue = $.getRowModel().rows;
400
+ return /* @__PURE__ */ b(ue, {
401
+ className: "table-root",
402
+ children: [
403
+ /* @__PURE__ */ y(se, {
404
+ $isLoading: !G && p,
405
+ className: "table-loading",
406
+ children: /* @__PURE__ */ y(ce, { children: m })
407
+ }),
408
+ /* @__PURE__ */ y(le, {
409
+ ref: Re,
410
+ className: "table-wrapper",
411
+ children: /* @__PURE__ */ y(de, {
412
+ id: C,
413
+ className: "table-content",
414
+ children: /* @__PURE__ */ b(fe, {
415
+ ...F?.(),
416
+ ref: Le,
417
+ children: [
418
+ /* @__PURE__ */ y(pe, {
419
+ className: "table-head",
420
+ "data-role": "table-head",
421
+ children: Ve.map((e) => /* @__PURE__ */ y(O, {
422
+ ...I?.(e),
423
+ children: e.headers.map((e) => /* @__PURE__ */ b(E, {
424
+ $size: e.getSize(),
425
+ onClick: () => Be(e),
426
+ ...B?.(e),
427
+ children: [e.isPlaceholder ? null : ye(e), be(e)]
428
+ }, e.id))
429
+ }, e.id))
430
+ }),
431
+ h.includes(j.Top) && /* @__PURE__ */ y(k, {
432
+ className: "table-footer-top",
433
+ "data-role": "table-footer-top",
434
+ children: He.map((e) => /* @__PURE__ */ y(O, {
435
+ ...W?.(e),
436
+ children: e.headers.map((e) => /* @__PURE__ */ y(w, {
437
+ $size: e.getSize(),
438
+ $align: x(e),
439
+ ...U?.(e),
440
+ children: e.isPlaceholder ? null : u(e.column.columnDef.footer, e.getContext())
441
+ }, e.id))
442
+ }, e.id))
443
+ }),
444
+ /* @__PURE__ */ y(me, {
445
+ className: "table-body",
446
+ "data-role": "table-body",
447
+ children: Ue.map((e) => {
448
+ let { isDelimiterTd: t } = Y ? L() : M(e);
449
+ if (t) {
450
+ let t = e.getVisibleCells()[0];
451
+ return t ? /* @__PURE__ */ b(a, { children: [/* @__PURE__ */ y(D, { children: /* @__PURE__ */ y(O, {
452
+ ...Y ? void 0 : V?.(e),
453
+ children: /* @__PURE__ */ y(w, {
454
+ style: { flex: "1 0 0%" },
455
+ ...Y ? void 0 : H?.(t),
456
+ children: /* @__PURE__ */ y("strong", { children: u(t.column.columnDef.cell, t.getContext()) })
457
+ })
458
+ }) }), !Y && e.getIsExpanded() && K && K(e)] }, `group_${e.index}`) : null;
459
+ }
460
+ return /* @__PURE__ */ b(a, { children: [/* @__PURE__ */ y(D, { children: /* @__PURE__ */ y(O, {
461
+ ...Y ? void 0 : V?.(e),
462
+ children: e.getVisibleCells().map((e) => /* @__PURE__ */ y(w, {
463
+ $size: e.column.getSize(),
464
+ $align: oe(e),
465
+ ...Y ? void 0 : H?.(e),
466
+ children: u(e.column.columnDef.cell, e.getContext())
467
+ }, e.id))
468
+ }) }), !Y && e.getIsExpanded() && K && K(e)] }, `group_${e.index}`);
469
+ })
470
+ }),
471
+ h.includes(j.Bottom) && /* @__PURE__ */ y(k, {
472
+ className: "table-footer-bottom",
473
+ "data-role": "table-footer-bottom",
474
+ children: He.map((e) => /* @__PURE__ */ y(O, {
475
+ ...W?.(e),
476
+ children: e.headers.map((e) => /* @__PURE__ */ y(w, {
477
+ $size: e.getSize(),
478
+ $align: x(e),
479
+ ...U?.(e),
480
+ children: e.isPlaceholder ? null : u(e.column.columnDef.footer, e.getContext())
481
+ }, e.id))
482
+ }, e.id))
483
+ })
484
+ ]
485
+ })
486
+ })
487
+ }),
488
+ !p && !t.length && xe,
489
+ ze
490
+ ]
491
+ });
496
492
  };
497
- //# sourceMappingURL=index.js.map
493
+ //#endregion
494
+ export { B as default, R as defaultProps };
495
+
496
+ //# 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: ${({$size}) => $size ?? 1} 0 auto;\n width: ${({$size}) => $size ?? 50}px;\n min-width: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\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: ${({$size}) => $size ?? 1} 0 auto;\n width: ${({$size}) => $size ?? 50}px;\n min-width: 0;\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 min-width: 0;\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.2",
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
  }