@jakubmazanec/ui 0.2.1-unstable.e0d45346 → 0.3.0-next.33f02dbb
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/build/components/Container.d.ts +2 -2
- package/build/components/Container.js +4 -2
- package/build/components/Container.js.map +2 -2
- package/build/components/TableCell.js +1 -1
- package/build/components/TableCell.js.map +1 -1
- package/build/components/data-table/DataTable.d.ts +9 -1
- package/build/components/data-table/DataTable.js +31 -14
- package/build/components/data-table/DataTable.js.map +2 -2
- package/build/components/data-table/internals/DataTableHeader.d.ts +7 -1
- package/build/components/data-table/internals/DataTableHeader.js +89 -67
- package/build/components/data-table/internals/DataTableHeader.js.map +2 -2
- package/build/components/data-table/internals/getCommonPinningClasses.js +1 -1
- package/build/components/data-table/internals/getCommonPinningClasses.js.map +2 -2
- package/build/theme/internals/themeContext.d.ts +2 -2
- package/build/theme/internals/useTheme.d.ts +2 -2
- package/package.json +5 -5
- package/source/components/Container.ts +3 -1
- package/source/components/TableCell.ts +1 -1
- package/source/components/data-table/DataTable.tsx +104 -72
- package/source/components/data-table/internals/DataTableHeader.tsx +130 -90
- package/source/components/data-table/internals/getCommonPinningClasses.ts +2 -2
|
@@ -7,14 +7,14 @@ export declare const useContainerTheme: {
|
|
|
7
7
|
readonly variants: {
|
|
8
8
|
readonly spacing: ["extra-small", "small", "medium", "large"];
|
|
9
9
|
readonly direction: ["row", "column"];
|
|
10
|
-
readonly justify: ["normal", "center", "spaced"];
|
|
10
|
+
readonly justify: ["normal", "center", "spaced", "start", "end"];
|
|
11
11
|
readonly align: ["normal", "center"];
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
14
|
} & ((themeProps: {
|
|
15
15
|
readonly spacing: "small" | "medium" | "large" | "extra-small";
|
|
16
16
|
readonly direction: "row" | "column";
|
|
17
|
-
readonly justify: "center" | "normal" | "spaced";
|
|
17
|
+
readonly justify: "center" | "end" | "start" | "normal" | "spaced";
|
|
18
18
|
readonly align: "center" | "normal";
|
|
19
19
|
}) => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string);
|
|
20
20
|
declare const TEXT_ELEMENT = "div";
|
|
@@ -9,7 +9,7 @@ export const useContainerTheme = createComponentTheme("Container", {
|
|
|
9
9
|
variants: {
|
|
10
10
|
spacing: ["extra-small", "small", "medium", "large"],
|
|
11
11
|
direction: ["row", "column"],
|
|
12
|
-
justify: ["normal", "center", "spaced"],
|
|
12
|
+
justify: ["normal", "center", "spaced", "start", "end"],
|
|
13
13
|
align: ["normal", "center"]
|
|
14
14
|
}
|
|
15
15
|
});
|
|
@@ -50,7 +50,9 @@ export const containerTheme = {
|
|
|
50
50
|
justify: {
|
|
51
51
|
normal: "",
|
|
52
52
|
center: "justify-center",
|
|
53
|
-
spaced: "justify-between"
|
|
53
|
+
spaced: "justify-between",
|
|
54
|
+
start: "justify-start",
|
|
55
|
+
end: "justify-end"
|
|
54
56
|
},
|
|
55
57
|
align: {
|
|
56
58
|
normal: "",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../source/components/Container.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ComponentPropsWithoutRef,\n createElement,\n type ElementType,\n type PropsWithChildren,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {type ComponentRef} from './ComponentRef.js';\n\nexport const useContainerTheme = createComponentTheme('Container', {\n variants: {\n spacing: ['extra-small', 'small', 'medium', 'large'],\n direction: ['row', 'column'],\n justify: ['normal', 'center', 'spaced'],\n align: ['normal', 'center'],\n },\n});\n\nconst TEXT_ELEMENT = 'div';\n\nexport type ContainerProps<T extends ElementType> = ComponentProps<typeof useContainerTheme> &\n ComponentPropsWithoutRef<T> &\n ComponentRef<T> &\n PropsWithChildren & {\n as?: T | undefined;\n className?: string;\n };\n\nexport function Container<T extends ElementType = typeof TEXT_ELEMENT>({\n spacing = 'medium',\n direction = 'row',\n justify = 'normal',\n align = 'normal',\n as: Component = TEXT_ELEMENT as T,\n className,\n ref,\n children,\n ...rest\n}: ContainerProps<T>) {\n let theme = useContainerTheme({spacing, direction, justify, align});\n let props = {\n ref,\n className: theme(null, className),\n 'data-component': 'container',\n ...rest,\n };\n\n return createElement(Component, props, children);\n}\n\nexport const containerTheme: ComponentTheme<typeof useContainerTheme> = {\n className: 'flex',\n variants: {\n spacing: {\n 'extra-small': 'gap-1',\n small: 'gap-2',\n medium: 'gap-4',\n large: 'gap-6',\n },\n direction: {\n row: '',\n column: 'flex-col',\n },\n justify: {\n normal: '',\n center: 'justify-center',\n spaced: 'justify-between',\n },\n align: {\n normal: '',\n center: 'items-center',\n },\n },\n};\n"],
|
|
5
|
-
"mappings": ";AAAA;AAAA,EAEE;AAAA,OAGK;AAEP;AAAA,EAGE;AAAA,OACK;AAGA,aAAM,oBAAoB,qBAAqB,aAAa;AAAA,EACjE,UAAU;AAAA,IACR,SAAS,CAAC,eAAe,SAAS,UAAU,OAAO;AAAA,IACnD,WAAW,CAAC,OAAO,QAAQ;AAAA,IAC3B,SAAS,CAAC,UAAU,UAAU,
|
|
4
|
+
"sourcesContent": ["import {\n type ComponentPropsWithoutRef,\n createElement,\n type ElementType,\n type PropsWithChildren,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {type ComponentRef} from './ComponentRef.js';\n\nexport const useContainerTheme = createComponentTheme('Container', {\n variants: {\n spacing: ['extra-small', 'small', 'medium', 'large'],\n direction: ['row', 'column'],\n justify: ['normal', 'center', 'spaced', 'start', 'end'],\n align: ['normal', 'center'],\n },\n});\n\nconst TEXT_ELEMENT = 'div';\n\nexport type ContainerProps<T extends ElementType> = ComponentProps<typeof useContainerTheme> &\n ComponentPropsWithoutRef<T> &\n ComponentRef<T> &\n PropsWithChildren & {\n as?: T | undefined;\n className?: string;\n };\n\nexport function Container<T extends ElementType = typeof TEXT_ELEMENT>({\n spacing = 'medium',\n direction = 'row',\n justify = 'normal',\n align = 'normal',\n as: Component = TEXT_ELEMENT as T,\n className,\n ref,\n children,\n ...rest\n}: ContainerProps<T>) {\n let theme = useContainerTheme({spacing, direction, justify, align});\n let props = {\n ref,\n className: theme(null, className),\n 'data-component': 'container',\n ...rest,\n };\n\n return createElement(Component, props, children);\n}\n\nexport const containerTheme: ComponentTheme<typeof useContainerTheme> = {\n className: 'flex',\n variants: {\n spacing: {\n 'extra-small': 'gap-1',\n small: 'gap-2',\n medium: 'gap-4',\n large: 'gap-6',\n },\n direction: {\n row: '',\n column: 'flex-col',\n },\n justify: {\n normal: '',\n center: 'justify-center',\n spaced: 'justify-between',\n start: 'justify-start',\n end: 'justify-end',\n },\n align: {\n normal: '',\n center: 'items-center',\n },\n },\n};\n"],
|
|
5
|
+
"mappings": ";AAAA;AAAA,EAEE;AAAA,OAGK;AAEP;AAAA,EAGE;AAAA,OACK;AAGA,aAAM,oBAAoB,qBAAqB,aAAa;AAAA,EACjE,UAAU;AAAA,IACR,SAAS,CAAC,eAAe,SAAS,UAAU,OAAO;AAAA,IACnD,WAAW,CAAC,OAAO,QAAQ;AAAA,IAC3B,SAAS,CAAC,UAAU,UAAU,UAAU,SAAS,KAAK;AAAA,IACtD,OAAO,CAAC,UAAU,QAAQ;AAAA,EAC5B;AACF,CAAC;AAED,MAAM,eAAe;AAUd,gBAAS,UAAuD;AAAA,EACrE,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,IAAI,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsB;AACpB,MAAI,QAAQ,kBAAkB,EAAC,SAAS,WAAW,SAAS,MAAK,CAAC;AAClE,MAAI,QAAQ;AAAA,IACV;AAAA,IACA,WAAW,MAAM,MAAM,SAAS;AAAA,IAChC,kBAAkB;AAAA,IAClB,GAAG;AAAA,EACL;AAEA,SAAO,cAAc,WAAW,OAAO,QAAQ;AACjD;AAEO,aAAM,iBAA2D;AAAA,EACtE,WAAW;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,eAAe;AAAA,MACf,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,IACA,WAAW;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -24,6 +24,6 @@ export function TableCell({
|
|
|
24
24
|
return createElement(Component, props, children);
|
|
25
25
|
}
|
|
26
26
|
export const tableCellTheme = {
|
|
27
|
-
className: "
|
|
27
|
+
className: "px-1 py-2 text-sm font-sans tabular-nums text-right truncate"
|
|
28
28
|
};
|
|
29
29
|
//# sourceMappingURL=TableCell.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../source/components/TableCell.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ComponentPropsWithoutRef,\n createElement,\n type ElementType,\n type PropsWithChildren,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {type ComponentRef} from './ComponentRef.js';\n\nexport const useTableCellTheme = createComponentTheme('TableCell');\n\nconst TABLE_CELL_ELEMENT = 'td';\n\nexport type TableCellProps<T extends ElementType> = ComponentProps<typeof useTableCellTheme> &\n ComponentPropsWithoutRef<T> &\n ComponentRef<T> &\n PropsWithChildren & {\n as?: T | undefined;\n className?: string;\n };\n\nexport function TableCell<T extends ElementType = typeof TABLE_CELL_ELEMENT>({\n as: Component = TABLE_CELL_ELEMENT as T,\n className,\n ref,\n children,\n ...rest\n}: TableCellProps<T>) {\n let theme = useTableCellTheme();\n let props = {\n ref,\n className: theme(null, className),\n 'data-component': 'table-cell',\n ...rest,\n };\n\n return createElement(Component, props, children);\n}\n\nexport const tableCellTheme: ComponentTheme<typeof useTableCellTheme> = {\n className: '
|
|
4
|
+
"sourcesContent": ["import {\n type ComponentPropsWithoutRef,\n createElement,\n type ElementType,\n type PropsWithChildren,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {type ComponentRef} from './ComponentRef.js';\n\nexport const useTableCellTheme = createComponentTheme('TableCell');\n\nconst TABLE_CELL_ELEMENT = 'td';\n\nexport type TableCellProps<T extends ElementType> = ComponentProps<typeof useTableCellTheme> &\n ComponentPropsWithoutRef<T> &\n ComponentRef<T> &\n PropsWithChildren & {\n as?: T | undefined;\n className?: string;\n };\n\nexport function TableCell<T extends ElementType = typeof TABLE_CELL_ELEMENT>({\n as: Component = TABLE_CELL_ELEMENT as T,\n className,\n ref,\n children,\n ...rest\n}: TableCellProps<T>) {\n let theme = useTableCellTheme();\n let props = {\n ref,\n className: theme(null, className),\n 'data-component': 'table-cell',\n ...rest,\n };\n\n return createElement(Component, props, children);\n}\n\nexport const tableCellTheme: ComponentTheme<typeof useTableCellTheme> = {\n className: 'px-1 py-2 text-sm font-sans tabular-nums text-right truncate',\n};\n"],
|
|
5
5
|
"mappings": ";AAAA;AAAA,EAEE;AAAA,OAGK;AAEP;AAAA,EAGE;AAAA,OACK;AAGA,aAAM,oBAAoB,qBAAqB,WAAW;AAEjE,MAAM,qBAAqB;AAUpB,gBAAS,UAA6D;AAAA,EAC3E,IAAI,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsB;AACpB,MAAI,QAAQ,kBAAkB;AAC9B,MAAI,QAAQ;AAAA,IACV;AAAA,IACA,WAAW,MAAM,MAAM,SAAS;AAAA,IAChC,kBAAkB;AAAA,IAClB,GAAG;AAAA,EACL;AAEA,SAAO,cAAc,WAAW,OAAO,QAAQ;AACjD;AAEO,aAAM,iBAA2D;AAAA,EACtE,WAAW;AACb;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,24 +16,32 @@ export type DataTableProps<D, C> = {
|
|
|
16
16
|
data: D[];
|
|
17
17
|
columns: C;
|
|
18
18
|
clientPagination?: boolean | undefined;
|
|
19
|
+
hidePagination?: boolean | undefined;
|
|
19
20
|
pagination?: DataTablePagination | undefined;
|
|
20
21
|
onPaginationChange?: ((pagination: Pick<DataTablePagination, 'page'> | Pick<DataTablePagination, 'pageSize'>) => void) | undefined;
|
|
21
22
|
columnVisibility?: DataTableColumnVisibility;
|
|
23
|
+
hideColumnVisibility?: boolean | undefined;
|
|
22
24
|
onColumnVisibilityChange?: ((columnVisibility: DataTableColumnVisibility) => void) | undefined;
|
|
23
25
|
columnOrder?: DataTableColumnOrder;
|
|
26
|
+
hideColumnOrder?: boolean | undefined;
|
|
24
27
|
onColumnOrderChange?: ((columnOrder: DataTableColumnOrder) => void) | undefined;
|
|
25
28
|
columnPinning?: DataTableColumnPinning;
|
|
29
|
+
hideColumnPinning?: boolean | undefined;
|
|
26
30
|
onColumnPinningChange?: ((columnPinning: DataTableColumnPinning) => void) | undefined;
|
|
31
|
+
hideColumnResizing?: boolean | undefined;
|
|
27
32
|
clientSorting?: boolean | undefined;
|
|
28
33
|
sorting?: DataTableSorting | undefined;
|
|
34
|
+
hideSorting?: boolean | undefined;
|
|
29
35
|
onSortingChange?: ((sorting: DataTableSorting) => void) | undefined;
|
|
30
36
|
clientFilters?: boolean | undefined;
|
|
37
|
+
hideFilters?: boolean | undefined;
|
|
31
38
|
filters?: DataTableFilters | undefined;
|
|
32
39
|
onFiltersChange?: ((filters: DataTableFilters) => void) | undefined;
|
|
33
40
|
clientFaceting?: boolean | undefined;
|
|
34
41
|
faceting?: DataTableFaceting | undefined;
|
|
35
42
|
clientSearch?: boolean | undefined;
|
|
43
|
+
hideSearch?: boolean | undefined;
|
|
36
44
|
search?: DataTableSearch | undefined;
|
|
37
45
|
onSearchChange?: ((search: DataTableSearch) => void) | undefined;
|
|
38
46
|
};
|
|
39
|
-
export declare function DataTable<D extends RowData, C extends Array<ColumnDef<D, any>>>({ data, columns, clientPagination, pagination: controlledPagination, onPaginationChange, clientSorting, sorting: controlledSorting, onSortingChange, columnVisibility: controlledColumnVisibility, onColumnVisibilityChange, columnOrder: controlledColumnOrder, onColumnOrderChange, columnPinning: controlledColumnPinning, onColumnPinningChange, clientFilters, filters: controlledFilters, onFiltersChange, clientFaceting, faceting, clientSearch, search: controlledSearch, onSearchChange, }: DataTableProps<D, C>): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function DataTable<D extends RowData, C extends Array<ColumnDef<D, any>>>({ data, columns, clientPagination, hidePagination, pagination: controlledPagination, onPaginationChange, clientSorting, sorting: controlledSorting, hideSorting, onSortingChange, columnVisibility: controlledColumnVisibility, hideColumnVisibility, onColumnVisibilityChange, columnOrder: controlledColumnOrder, hideColumnOrder, onColumnOrderChange, columnPinning: controlledColumnPinning, hideColumnPinning, onColumnPinningChange, hideColumnResizing, clientFilters, hideFilters, filters: controlledFilters, onFiltersChange, clientFaceting, faceting, clientSearch, hideSearch, search: controlledSearch, onSearchChange, }: DataTableProps<D, C>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -44,23 +44,31 @@ export function DataTable({
|
|
|
44
44
|
data,
|
|
45
45
|
columns,
|
|
46
46
|
clientPagination = false,
|
|
47
|
+
hidePagination = false,
|
|
47
48
|
pagination: controlledPagination,
|
|
48
49
|
onPaginationChange,
|
|
49
50
|
clientSorting = false,
|
|
50
51
|
sorting: controlledSorting,
|
|
52
|
+
hideSorting = false,
|
|
51
53
|
onSortingChange,
|
|
52
54
|
columnVisibility: controlledColumnVisibility,
|
|
55
|
+
hideColumnVisibility = false,
|
|
53
56
|
onColumnVisibilityChange,
|
|
54
57
|
columnOrder: controlledColumnOrder,
|
|
58
|
+
hideColumnOrder = false,
|
|
55
59
|
onColumnOrderChange,
|
|
56
60
|
columnPinning: controlledColumnPinning,
|
|
61
|
+
hideColumnPinning = false,
|
|
57
62
|
onColumnPinningChange,
|
|
63
|
+
hideColumnResizing = false,
|
|
58
64
|
clientFilters = false,
|
|
65
|
+
hideFilters = false,
|
|
59
66
|
filters: controlledFilters,
|
|
60
67
|
onFiltersChange,
|
|
61
68
|
clientFaceting = false,
|
|
62
69
|
faceting,
|
|
63
70
|
clientSearch = false,
|
|
71
|
+
hideSearch = false,
|
|
64
72
|
search: controlledSearch,
|
|
65
73
|
onSearchChange
|
|
66
74
|
}) {
|
|
@@ -211,7 +219,7 @@ export function DataTable({
|
|
|
211
219
|
sensors,
|
|
212
220
|
onDragEnd: handleDragEnd,
|
|
213
221
|
children: [
|
|
214
|
-
/* @__PURE__ */ jsx(
|
|
222
|
+
hideSearch ? null : /* @__PURE__ */ jsx(
|
|
215
223
|
DataTableSearchComponent,
|
|
216
224
|
{
|
|
217
225
|
clientSearch,
|
|
@@ -220,7 +228,7 @@ export function DataTable({
|
|
|
220
228
|
onSearch: onSearchChange
|
|
221
229
|
}
|
|
222
230
|
),
|
|
223
|
-
/* @__PURE__ */ jsxs(
|
|
231
|
+
/* @__PURE__ */ jsx("div", { className: "w-full overflow-y-visible overflow-x-scroll [scrollbar-width:thin]", children: /* @__PURE__ */ jsxs(
|
|
224
232
|
Table,
|
|
225
233
|
{
|
|
226
234
|
style: {
|
|
@@ -237,6 +245,12 @@ export function DataTable({
|
|
|
237
245
|
faceting,
|
|
238
246
|
filters: controlledFilters,
|
|
239
247
|
header,
|
|
248
|
+
hideColumnOrder,
|
|
249
|
+
hideColumnPinning,
|
|
250
|
+
hideColumnResizing,
|
|
251
|
+
hideColumnVisibility,
|
|
252
|
+
hideFilters,
|
|
253
|
+
hideSorting,
|
|
240
254
|
sorting: controlledSorting,
|
|
241
255
|
table,
|
|
242
256
|
onFiltering: onFiltersChange,
|
|
@@ -244,21 +258,24 @@ export function DataTable({
|
|
|
244
258
|
},
|
|
245
259
|
header.id
|
|
246
260
|
)) }) }, headerGroup.id)) }),
|
|
247
|
-
/* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) =>
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
/* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => {
|
|
262
|
+
let value = cell.getValue();
|
|
263
|
+
return /* @__PURE__ */ jsx(
|
|
264
|
+
TableCell,
|
|
265
|
+
{
|
|
266
|
+
className: getCommonPinningClasses(cell.column),
|
|
267
|
+
style: { ...getCommonPinningStyles(cell.column) },
|
|
268
|
+
title: value === null || value === void 0 ? void 0 : String(value),
|
|
269
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
270
|
+
},
|
|
271
|
+
cell.id
|
|
272
|
+
);
|
|
273
|
+
}) }, row.id)) }),
|
|
257
274
|
/* @__PURE__ */ jsx(TableFoot, { children: table.getFooterGroups().map((footerGroup) => /* @__PURE__ */ jsx(TableRow, { children: footerGroup.headers.map((header) => /* @__PURE__ */ jsx(TableHeader, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext()) }, header.id)) }, footerGroup.id)) })
|
|
258
275
|
]
|
|
259
276
|
}
|
|
260
|
-
),
|
|
261
|
-
/* @__PURE__ */ jsx(
|
|
277
|
+
) }),
|
|
278
|
+
hidePagination ? null : /* @__PURE__ */ jsx(
|
|
262
279
|
DataTablePaginationComponent,
|
|
263
280
|
{
|
|
264
281
|
clientPagination,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../source/components/data-table/DataTable.tsx"],
|
|
4
|
-
"sourcesContent": ["import {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {restrictToHorizontalAxis} from '@dnd-kit/modifiers';\nimport {arrayMove, horizontalListSortingStrategy, SortableContext} from '@dnd-kit/sortable';\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type ColumnOrderState,\n type ColumnPinningState,\n flexRender,\n getCoreRowModel,\n getFacetedMinMaxValues,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowData,\n type SortingState,\n type Updater,\n useReactTable,\n type VisibilityState,\n} from '@tanstack/react-table';\nimport {useCallback, useId, useState} from 'react';\n\nimport {Table} from '../Table.js';\nimport {TableBody} from '../TableBody.js';\nimport {TableCell} from '../TableCell.js';\nimport {TableFoot} from '../TableFoot.js';\nimport {TableHead} from '../TableHead.js';\nimport {TableHeader} from '../TableHeader.js';\nimport {TableRow} from '../TableRow.js';\nimport {type DataTableColumnOrder} from './DataTableColumnOrder.js';\nimport {type DataTableColumnPinning} from './DataTableColumnPinning.js';\nimport {type DataTableColumnVisibility} from './DataTableColumnVisibility.js';\nimport {type DataTableFaceting} from './DataTableFaceting.js';\nimport {type DataTableFilters} from './DataTableFilters.js';\nimport {type DataTablePagination} from './DataTablePagination.js';\nimport {type DataTableSearch} from './DataTableSearch.js';\nimport {type DataTableSorting} from './DataTableSorting.js';\nimport {\n DataTableHeader,\n DataTablePagination as DataTablePaginationComponent,\n DataTableSearch as DataTableSearchComponent,\n DEFAULT_PAGE_SIZE,\n fromPinningState,\n fuzzyFilter,\n getCommonPinningClasses,\n getCommonPinningStyles,\n} from './internals.js';\n\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- false positive\n interface ColumnMeta<TData extends RowData, TValue> {\n filterVariant?: 'range' | 'select' | 'text';\n }\n}\n\nexport type DataTableProps<D, C> = {\n data: D[];\n columns: C;\n clientPagination?: boolean | undefined;\n pagination?: DataTablePagination | undefined;\n onPaginationChange?:\n | ((\n pagination: Pick<DataTablePagination, 'page'> | Pick<DataTablePagination, 'pageSize'>,\n ) => void)\n | undefined;\n columnVisibility?: DataTableColumnVisibility;\n onColumnVisibilityChange?: ((columnVisibility: DataTableColumnVisibility) => void) | undefined;\n columnOrder?: DataTableColumnOrder;\n onColumnOrderChange?: ((columnOrder: DataTableColumnOrder) => void) | undefined;\n columnPinning?: DataTableColumnPinning;\n onColumnPinningChange?: ((columnPinning: DataTableColumnPinning) => void) | undefined;\n clientSorting?: boolean | undefined;\n sorting?: DataTableSorting | undefined;\n onSortingChange?: ((sorting: DataTableSorting) => void) | undefined;\n clientFilters?: boolean | undefined;\n filters?: DataTableFilters | undefined;\n onFiltersChange?: ((filters: DataTableFilters) => void) | undefined;\n clientFaceting?: boolean | undefined;\n faceting?: DataTableFaceting | undefined;\n clientSearch?: boolean | undefined;\n search?: DataTableSearch | undefined;\n onSearchChange?: ((search: DataTableSearch) => void) | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed so the type parameters are useful\nexport function DataTable<D extends RowData, C extends Array<ColumnDef<D, any>>>({\n data,\n columns,\n clientPagination = false,\n pagination: controlledPagination,\n onPaginationChange,\n clientSorting = false,\n sorting: controlledSorting,\n onSortingChange,\n columnVisibility: controlledColumnVisibility,\n onColumnVisibilityChange,\n columnOrder: controlledColumnOrder,\n onColumnOrderChange,\n columnPinning: controlledColumnPinning,\n onColumnPinningChange,\n clientFilters = false,\n filters: controlledFilters,\n onFiltersChange,\n clientFaceting = false,\n faceting,\n clientSearch = false,\n search: controlledSearch,\n onSearchChange,\n}: DataTableProps<D, C>) {\n let [pagination, setPagination] = useState<PaginationState>(\n controlledPagination ?\n {\n pageIndex: Math.max(0, controlledPagination.page - 1),\n pageSize: controlledPagination.pageSize,\n }\n : {\n pageIndex: 0,\n pageSize: DEFAULT_PAGE_SIZE,\n },\n );\n let [columnVisibility, setColumnVisibility] = useState(controlledColumnVisibility ?? {});\n let [columnOrder, setColumnOrder] = useState<string[]>(\n controlledColumnOrder ?\n [\n ...controlledColumnOrder,\n ...columns\n .map((column, index) => {\n if (column.id) {\n return column.id;\n }\n\n if ('accessorKey' in column) {\n return String(column.accessorKey);\n }\n\n if (typeof column.header === 'string') {\n return String(column.header);\n }\n\n return String(index);\n })\n .filter((value) => !controlledColumnOrder.includes(value)),\n ]\n : columns.map((column, index) => {\n if (column.id) {\n return column.id;\n }\n\n if ('accessorKey' in column) {\n return String(column.accessorKey);\n }\n\n if (typeof column.header === 'string') {\n return String(column.header);\n }\n\n return String(index);\n }),\n );\n let [columnPinning, setColumnPinning] = useState<ColumnPinningState>(\n controlledColumnPinning ?\n {\n left: Object.entries(controlledColumnPinning)\n .filter(([, pinning]) => pinning === 'left')\n .map(([column]) => column),\n right: Object.entries(controlledColumnPinning)\n .filter(([, pinning]) => pinning === 'right')\n .map(([column]) => column),\n }\n : {left: [], right: []},\n );\n let [sorting, setSorting] = useState<SortingState>([]);\n let [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n let [search, setSearch] = useState('');\n\n let handleColumnVisibilityChange = useCallback(\n (columnVisibilityState: Updater<VisibilityState>) => {\n setColumnVisibility(columnVisibilityState);\n\n if (typeof columnVisibilityState === 'function') {\n onColumnVisibilityChange?.(columnVisibilityState(columnVisibility));\n } else {\n onColumnVisibilityChange?.(columnVisibilityState);\n }\n },\n [columnVisibility, onColumnVisibilityChange],\n );\n let handleColumnOrderChange = useCallback(\n (columnOrderState: Updater<ColumnOrderState>) => {\n setColumnOrder(columnOrderState);\n\n if (typeof columnOrderState === 'function') {\n onColumnOrderChange?.(columnOrderState(columnOrder));\n } else {\n onColumnOrderChange?.(columnOrderState);\n }\n },\n [columnOrder, onColumnOrderChange],\n );\n let handleColumnPinningChange = useCallback(\n (columnPinningState: Updater<ColumnPinningState>) => {\n setColumnPinning(columnPinningState);\n\n if (typeof columnPinningState === 'function') {\n onColumnPinningChange?.(fromPinningState(columnPinningState(columnPinning)));\n } else {\n onColumnPinningChange?.(fromPinningState(columnPinningState));\n }\n },\n [columnPinning, onColumnPinningChange],\n );\n\n let table = useReactTable<D>({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getPaginationRowModel: clientPagination ? getPaginationRowModel() : undefined,\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: clientFaceting ? getFacetedRowModel() : undefined,\n getFacetedUniqueValues: clientFaceting ? getFacetedUniqueValues() : undefined,\n getFacetedMinMaxValues: clientFaceting ? getFacetedMinMaxValues() : undefined,\n state: {\n pagination: clientPagination ? pagination : undefined,\n columnVisibility,\n columnOrder,\n columnPinning,\n sorting: clientSorting ? sorting : undefined,\n columnFilters: clientFilters ? columnFilters : undefined,\n globalFilter: clientSearch ? search : undefined,\n },\n onPaginationChange: clientPagination ? setPagination : undefined,\n onColumnVisibilityChange: handleColumnVisibilityChange,\n onColumnOrderChange: handleColumnOrderChange,\n onColumnPinningChange: handleColumnPinningChange,\n onSortingChange: clientSorting ? setSorting : undefined,\n onColumnFiltersChange: clientFilters ? setColumnFilters : undefined,\n onGlobalFilterChange: clientSearch ? setSearch : undefined,\n columnResizeMode: 'onChange',\n globalFilterFn: fuzzyFilter,\n });\n\n let handleDragEnd = useCallback(\n ({active, over}: DragEndEvent) => {\n if (over && active.id !== over.id) {\n table.setColumnOrder((previousColumnOrder) => {\n let oldIndex = previousColumnOrder.indexOf(active.id as string);\n let newIndex = previousColumnOrder.indexOf(over.id as string);\n\n return arrayMove(previousColumnOrder, oldIndex, newIndex);\n });\n }\n },\n [table],\n );\n\n let sensors = useSensors(\n useSensor(MouseSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(TouchSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {}),\n );\n\n let id = useId();\n\n let page =\n clientPagination ?\n table.getState().pagination.pageIndex + 1\n : (controlledPagination?.page ?? 1);\n let pageSize =\n clientPagination ?\n table.getState().pagination.pageSize\n : (controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE);\n let pageCount = clientPagination ? table.getPageCount() : (controlledPagination?.pageCount ?? 1);\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n id={id}\n modifiers={[restrictToHorizontalAxis]}\n sensors={sensors}\n onDragEnd={handleDragEnd}\n >\n <DataTableSearchComponent\n clientSearch={clientSearch}\n search={controlledSearch}\n table={table}\n onSearch={onSearchChange}\n />\n <Table\n style={{\n width: table.getCenterTotalSize(),\n tableLayout: 'fixed',\n }}\n >\n <TableHead>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n <SortableContext items={columnOrder} strategy={horizontalListSortingStrategy}>\n {headerGroup.headers.map((header) => (\n <DataTableHeader\n key={header.id}\n clientFaceting={clientFaceting}\n clientFilters={clientFilters}\n clientSorting={clientSorting}\n faceting={faceting}\n filters={controlledFilters}\n header={header}\n sorting={controlledSorting}\n table={table}\n onFiltering={onFiltersChange}\n onSorting={onSortingChange}\n />\n ))}\n </SortableContext>\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n className={getCommonPinningClasses(cell.column)}\n style={{...getCommonPinningStyles(cell.column)}}\n title={String(cell.getValue())}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n <TableFoot>\n {table.getFooterGroups().map((footerGroup) => (\n <TableRow key={footerGroup.id}>\n {footerGroup.headers.map((header) => (\n <TableHeader key={header.id}>\n {header.isPlaceholder ? null : (\n flexRender(header.column.columnDef.footer, header.getContext())\n )}\n </TableHeader>\n ))}\n </TableRow>\n ))}\n </TableFoot>\n </Table>\n <DataTablePaginationComponent\n clientPagination={clientPagination}\n page={page}\n pageCount={pageCount}\n pageSize={pageSize}\n table={table}\n onPagination={onPaginationChange}\n />\n </DndContext>\n );\n}\n"],
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {restrictToHorizontalAxis} from '@dnd-kit/modifiers';\nimport {arrayMove, horizontalListSortingStrategy, SortableContext} from '@dnd-kit/sortable';\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type ColumnOrderState,\n type ColumnPinningState,\n flexRender,\n getCoreRowModel,\n getFacetedMinMaxValues,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowData,\n type SortingState,\n type Updater,\n useReactTable,\n type VisibilityState,\n} from '@tanstack/react-table';\nimport {useCallback, useId, useState} from 'react';\n\nimport {Table} from '../Table.js';\nimport {TableBody} from '../TableBody.js';\nimport {TableCell} from '../TableCell.js';\nimport {TableFoot} from '../TableFoot.js';\nimport {TableHead} from '../TableHead.js';\nimport {TableHeader} from '../TableHeader.js';\nimport {TableRow} from '../TableRow.js';\nimport {type DataTableColumnOrder} from './DataTableColumnOrder.js';\nimport {type DataTableColumnPinning} from './DataTableColumnPinning.js';\nimport {type DataTableColumnVisibility} from './DataTableColumnVisibility.js';\nimport {type DataTableFaceting} from './DataTableFaceting.js';\nimport {type DataTableFilters} from './DataTableFilters.js';\nimport {type DataTablePagination} from './DataTablePagination.js';\nimport {type DataTableSearch} from './DataTableSearch.js';\nimport {type DataTableSorting} from './DataTableSorting.js';\nimport {\n DataTableHeader,\n DataTablePagination as DataTablePaginationComponent,\n DataTableSearch as DataTableSearchComponent,\n DEFAULT_PAGE_SIZE,\n fromPinningState,\n fuzzyFilter,\n getCommonPinningClasses,\n getCommonPinningStyles,\n} from './internals.js';\n\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- false positive\n interface ColumnMeta<TData extends RowData, TValue> {\n filterVariant?: 'range' | 'select' | 'text';\n }\n}\n\nexport type DataTableProps<D, C> = {\n data: D[];\n columns: C;\n clientPagination?: boolean | undefined;\n hidePagination?: boolean | undefined;\n pagination?: DataTablePagination | undefined;\n onPaginationChange?:\n | ((\n pagination: Pick<DataTablePagination, 'page'> | Pick<DataTablePagination, 'pageSize'>,\n ) => void)\n | undefined;\n columnVisibility?: DataTableColumnVisibility;\n hideColumnVisibility?: boolean | undefined;\n onColumnVisibilityChange?: ((columnVisibility: DataTableColumnVisibility) => void) | undefined;\n columnOrder?: DataTableColumnOrder;\n hideColumnOrder?: boolean | undefined;\n onColumnOrderChange?: ((columnOrder: DataTableColumnOrder) => void) | undefined;\n columnPinning?: DataTableColumnPinning;\n hideColumnPinning?: boolean | undefined;\n onColumnPinningChange?: ((columnPinning: DataTableColumnPinning) => void) | undefined;\n hideColumnResizing?: boolean | undefined;\n clientSorting?: boolean | undefined;\n sorting?: DataTableSorting | undefined;\n hideSorting?: boolean | undefined;\n onSortingChange?: ((sorting: DataTableSorting) => void) | undefined;\n clientFilters?: boolean | undefined;\n hideFilters?: boolean | undefined;\n filters?: DataTableFilters | undefined;\n onFiltersChange?: ((filters: DataTableFilters) => void) | undefined;\n clientFaceting?: boolean | undefined;\n faceting?: DataTableFaceting | undefined;\n clientSearch?: boolean | undefined;\n hideSearch?: boolean | undefined;\n search?: DataTableSearch | undefined;\n onSearchChange?: ((search: DataTableSearch) => void) | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed so the type parameters are useful\nexport function DataTable<D extends RowData, C extends Array<ColumnDef<D, any>>>({\n data,\n columns,\n clientPagination = false,\n hidePagination = false,\n pagination: controlledPagination,\n onPaginationChange,\n clientSorting = false,\n sorting: controlledSorting,\n hideSorting = false,\n onSortingChange,\n columnVisibility: controlledColumnVisibility,\n hideColumnVisibility = false,\n onColumnVisibilityChange,\n columnOrder: controlledColumnOrder,\n hideColumnOrder = false,\n onColumnOrderChange,\n columnPinning: controlledColumnPinning,\n hideColumnPinning = false,\n onColumnPinningChange,\n hideColumnResizing = false,\n clientFilters = false,\n hideFilters = false,\n filters: controlledFilters,\n onFiltersChange,\n clientFaceting = false,\n faceting,\n clientSearch = false,\n hideSearch = false,\n search: controlledSearch,\n onSearchChange,\n}: DataTableProps<D, C>) {\n let [pagination, setPagination] = useState<PaginationState>(\n controlledPagination ?\n {\n pageIndex: Math.max(0, controlledPagination.page - 1),\n pageSize: controlledPagination.pageSize,\n }\n : {\n pageIndex: 0,\n pageSize: DEFAULT_PAGE_SIZE,\n },\n );\n let [columnVisibility, setColumnVisibility] = useState(controlledColumnVisibility ?? {});\n let [columnOrder, setColumnOrder] = useState<string[]>(\n controlledColumnOrder ?\n [\n ...controlledColumnOrder,\n ...columns\n .map((column, index) => {\n if (column.id) {\n return column.id;\n }\n\n if ('accessorKey' in column) {\n return String(column.accessorKey);\n }\n\n if (typeof column.header === 'string') {\n return String(column.header);\n }\n\n return String(index);\n })\n .filter((value) => !controlledColumnOrder.includes(value)),\n ]\n : columns.map((column, index) => {\n if (column.id) {\n return column.id;\n }\n\n if ('accessorKey' in column) {\n return String(column.accessorKey);\n }\n\n if (typeof column.header === 'string') {\n return String(column.header);\n }\n\n return String(index);\n }),\n );\n let [columnPinning, setColumnPinning] = useState<ColumnPinningState>(\n controlledColumnPinning ?\n {\n left: Object.entries(controlledColumnPinning)\n .filter(([, pinning]) => pinning === 'left')\n .map(([column]) => column),\n right: Object.entries(controlledColumnPinning)\n .filter(([, pinning]) => pinning === 'right')\n .map(([column]) => column),\n }\n : {left: [], right: []},\n );\n let [sorting, setSorting] = useState<SortingState>([]);\n let [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n let [search, setSearch] = useState('');\n\n let handleColumnVisibilityChange = useCallback(\n (columnVisibilityState: Updater<VisibilityState>) => {\n setColumnVisibility(columnVisibilityState);\n\n if (typeof columnVisibilityState === 'function') {\n onColumnVisibilityChange?.(columnVisibilityState(columnVisibility));\n } else {\n onColumnVisibilityChange?.(columnVisibilityState);\n }\n },\n [columnVisibility, onColumnVisibilityChange],\n );\n let handleColumnOrderChange = useCallback(\n (columnOrderState: Updater<ColumnOrderState>) => {\n setColumnOrder(columnOrderState);\n\n if (typeof columnOrderState === 'function') {\n onColumnOrderChange?.(columnOrderState(columnOrder));\n } else {\n onColumnOrderChange?.(columnOrderState);\n }\n },\n [columnOrder, onColumnOrderChange],\n );\n let handleColumnPinningChange = useCallback(\n (columnPinningState: Updater<ColumnPinningState>) => {\n setColumnPinning(columnPinningState);\n\n if (typeof columnPinningState === 'function') {\n onColumnPinningChange?.(fromPinningState(columnPinningState(columnPinning)));\n } else {\n onColumnPinningChange?.(fromPinningState(columnPinningState));\n }\n },\n [columnPinning, onColumnPinningChange],\n );\n\n let table = useReactTable<D>({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getPaginationRowModel: clientPagination ? getPaginationRowModel() : undefined,\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: clientFaceting ? getFacetedRowModel() : undefined,\n getFacetedUniqueValues: clientFaceting ? getFacetedUniqueValues() : undefined,\n getFacetedMinMaxValues: clientFaceting ? getFacetedMinMaxValues() : undefined,\n state: {\n pagination: clientPagination ? pagination : undefined,\n columnVisibility,\n columnOrder,\n columnPinning,\n sorting: clientSorting ? sorting : undefined,\n columnFilters: clientFilters ? columnFilters : undefined,\n globalFilter: clientSearch ? search : undefined,\n },\n onPaginationChange: clientPagination ? setPagination : undefined,\n onColumnVisibilityChange: handleColumnVisibilityChange,\n onColumnOrderChange: handleColumnOrderChange,\n onColumnPinningChange: handleColumnPinningChange,\n onSortingChange: clientSorting ? setSorting : undefined,\n onColumnFiltersChange: clientFilters ? setColumnFilters : undefined,\n onGlobalFilterChange: clientSearch ? setSearch : undefined,\n columnResizeMode: 'onChange',\n globalFilterFn: fuzzyFilter,\n });\n\n let handleDragEnd = useCallback(\n ({active, over}: DragEndEvent) => {\n if (over && active.id !== over.id) {\n table.setColumnOrder((previousColumnOrder) => {\n let oldIndex = previousColumnOrder.indexOf(active.id as string);\n let newIndex = previousColumnOrder.indexOf(over.id as string);\n\n return arrayMove(previousColumnOrder, oldIndex, newIndex);\n });\n }\n },\n [table],\n );\n\n let sensors = useSensors(\n useSensor(MouseSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(TouchSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {}),\n );\n\n let id = useId();\n\n let page =\n clientPagination ?\n table.getState().pagination.pageIndex + 1\n : (controlledPagination?.page ?? 1);\n let pageSize =\n clientPagination ?\n table.getState().pagination.pageSize\n : (controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE);\n let pageCount = clientPagination ? table.getPageCount() : (controlledPagination?.pageCount ?? 1);\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n id={id}\n modifiers={[restrictToHorizontalAxis]}\n sensors={sensors}\n onDragEnd={handleDragEnd}\n >\n {hideSearch ? null : (\n <DataTableSearchComponent\n clientSearch={clientSearch}\n search={controlledSearch}\n table={table}\n onSearch={onSearchChange}\n />\n )}\n <div className=\"w-full overflow-y-visible overflow-x-scroll [scrollbar-width:thin]\">\n <Table\n style={{\n width: table.getCenterTotalSize(),\n tableLayout: 'fixed',\n }}\n >\n <TableHead>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n <SortableContext items={columnOrder} strategy={horizontalListSortingStrategy}>\n {headerGroup.headers.map((header) => (\n <DataTableHeader\n key={header.id}\n clientFaceting={clientFaceting}\n clientFilters={clientFilters}\n clientSorting={clientSorting}\n faceting={faceting}\n filters={controlledFilters}\n header={header}\n hideColumnOrder={hideColumnOrder}\n hideColumnPinning={hideColumnPinning}\n hideColumnResizing={hideColumnResizing}\n hideColumnVisibility={hideColumnVisibility}\n hideFilters={hideFilters}\n hideSorting={hideSorting}\n sorting={controlledSorting}\n table={table}\n onFiltering={onFiltersChange}\n onSorting={onSortingChange}\n />\n ))}\n </SortableContext>\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => {\n let value = cell.getValue();\n\n return (\n <TableCell\n key={cell.id}\n className={getCommonPinningClasses(cell.column)}\n style={{...getCommonPinningStyles(cell.column)}}\n title={value === null || value === undefined ? undefined : String(value)}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n <TableFoot>\n {table.getFooterGroups().map((footerGroup) => (\n <TableRow key={footerGroup.id}>\n {footerGroup.headers.map((header) => (\n <TableHeader key={header.id}>\n {header.isPlaceholder ? null : (\n flexRender(header.column.columnDef.footer, header.getContext())\n )}\n </TableHeader>\n ))}\n </TableRow>\n ))}\n </TableFoot>\n </Table>\n </div>\n {hidePagination ? null : (\n <DataTablePaginationComponent\n clientPagination={clientPagination}\n page={page}\n pageCount={pageCount}\n pageSize={pageSize}\n table={table}\n onPagination={onPaginationChange}\n />\n )}\n </DndContext>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,12 +4,18 @@ export type DataTableHeaderProps = {
|
|
|
4
4
|
table: Table<any>;
|
|
5
5
|
header: Header<any, any>;
|
|
6
6
|
clientSorting: DataTableProps<any, any>['clientSorting'];
|
|
7
|
+
hideSorting: DataTableProps<any, any>['hideSorting'];
|
|
7
8
|
sorting: DataTableProps<any, any>['sorting'];
|
|
8
9
|
onSorting: DataTableProps<any, any>['onSortingChange'];
|
|
9
10
|
clientFilters: DataTableProps<any, any>['clientFilters'];
|
|
11
|
+
hideFilters: DataTableProps<any, any>['hideFilters'];
|
|
10
12
|
filters: DataTableProps<any, any>['filters'];
|
|
11
13
|
onFiltering: DataTableProps<any, any>['onFiltersChange'];
|
|
12
14
|
clientFaceting: DataTableProps<any, any>['clientFaceting'];
|
|
13
15
|
faceting: DataTableProps<any, any>['faceting'];
|
|
16
|
+
hideColumnVisibility: DataTableProps<any, any>['hideColumnVisibility'];
|
|
17
|
+
hideColumnOrder: DataTableProps<any, any>['hideColumnOrder'];
|
|
18
|
+
hideColumnPinning: DataTableProps<any, any>['hideColumnPinning'];
|
|
19
|
+
hideColumnResizing: DataTableProps<any, any>['hideColumnResizing'];
|
|
14
20
|
};
|
|
15
|
-
export declare function DataTableHeader({ table, header, clientSorting, sorting: controlledSorting, onSorting, clientFilters, filters: controlledFilters, onFiltering, clientFaceting, faceting, }: DataTableHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function DataTableHeader({ table, header, clientSorting, hideSorting, sorting: controlledSorting, onSorting, clientFilters, hideFilters, filters: controlledFilters, onFiltering, clientFaceting, faceting, hideColumnVisibility, hideColumnOrder, hideColumnPinning, hideColumnResizing, }: DataTableHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -22,13 +22,19 @@ export function DataTableHeader({
|
|
|
22
22
|
table,
|
|
23
23
|
header,
|
|
24
24
|
clientSorting,
|
|
25
|
+
hideSorting = false,
|
|
25
26
|
sorting: controlledSorting,
|
|
26
27
|
onSorting,
|
|
27
28
|
clientFilters,
|
|
29
|
+
hideFilters = false,
|
|
28
30
|
filters: controlledFilters,
|
|
29
31
|
onFiltering,
|
|
30
32
|
clientFaceting,
|
|
31
|
-
faceting
|
|
33
|
+
faceting,
|
|
34
|
+
hideColumnVisibility = false,
|
|
35
|
+
hideColumnOrder = false,
|
|
36
|
+
hideColumnPinning = false,
|
|
37
|
+
hideColumnResizing = false
|
|
32
38
|
}) {
|
|
33
39
|
let { attributes, isDragging, listeners, setNodeRef, transform } = useSortable({
|
|
34
40
|
id: header.column.id
|
|
@@ -100,6 +106,9 @@ export function DataTableHeader({
|
|
|
100
106
|
let handleUnpinClick = useCallback(() => {
|
|
101
107
|
header.column.pin(false);
|
|
102
108
|
}, [header.column]);
|
|
109
|
+
let resolvedHideFilters = hideFilters || !header.column.getCanFilter();
|
|
110
|
+
let resolvedHideSorting = hideSorting || !header.column.getCanSort();
|
|
111
|
+
let resolvedHideColumnPinning = hideColumnPinning || !header.column.getCanPin();
|
|
103
112
|
return /* @__PURE__ */ jsxs(
|
|
104
113
|
TableHeader,
|
|
105
114
|
{
|
|
@@ -108,77 +117,90 @@ export function DataTableHeader({
|
|
|
108
117
|
colSpan: header.colSpan,
|
|
109
118
|
style,
|
|
110
119
|
children: [
|
|
111
|
-
/* @__PURE__ */ jsx(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
/* @__PURE__ */ jsx(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"aria-label": "
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
120
|
+
/* @__PURE__ */ jsx(
|
|
121
|
+
"span",
|
|
122
|
+
{
|
|
123
|
+
className: hideColumnResizing ? "relative block overflow-hidden" : "relative mr-6 block overflow-hidden",
|
|
124
|
+
children: /* @__PURE__ */ jsxs(Container, { align: "center", justify: "end", spacing: "extra-small", children: [
|
|
125
|
+
resolvedHideSorting && hideColumnOrder ? contentElement : /* @__PURE__ */ jsxs(
|
|
126
|
+
Button,
|
|
127
|
+
{
|
|
128
|
+
className: hideColumnOrder ? "inline-flex" : "inline-flex cursor-move",
|
|
129
|
+
size: "small",
|
|
130
|
+
title,
|
|
131
|
+
variant: "text",
|
|
132
|
+
onClick: resolvedHideSorting ? void 0 : handleSortClick,
|
|
133
|
+
...hideColumnOrder ? {} : attributes,
|
|
134
|
+
...hideColumnOrder ? {} : listeners,
|
|
135
|
+
children: [
|
|
136
|
+
resolvedHideSorting ? null : sortElement,
|
|
137
|
+
contentElement
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
),
|
|
141
|
+
resolvedHideColumnPinning && resolvedHideFilters && hideColumnVisibility ? null : /* @__PURE__ */ jsxs(Popover, { children: [
|
|
142
|
+
/* @__PURE__ */ jsx(PopoverButton, { children: /* @__PURE__ */ jsx(Button, { "aria-label": "Settings", size: "small", variant: "text", children: /* @__PURE__ */ jsx(Icon, { name: "Cog6Tooth", size: "small" }) }) }),
|
|
143
|
+
/* @__PURE__ */ jsx(PopoverPanel, { anchor: "right start", children: /* @__PURE__ */ jsxs(Container, { direction: "column", spacing: "large", children: [
|
|
144
|
+
resolvedHideColumnPinning ? null : /* @__PURE__ */ jsxs(Container, { direction: "row", spacing: "small", children: [
|
|
145
|
+
/* @__PURE__ */ jsx(Text, { children: "Pin column" }),
|
|
146
|
+
/* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsxs(Container, { spacing: "small", children: [
|
|
147
|
+
header.column.getIsPinned() === "left" ? null : /* @__PURE__ */ jsx(
|
|
148
|
+
Button,
|
|
149
|
+
{
|
|
150
|
+
"aria-label": "Pin to left",
|
|
151
|
+
variant: "outline",
|
|
152
|
+
onClick: handlePinLeftClick,
|
|
153
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ArrowLeftEndOnRectangle", size: "large" })
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
header.column.getIsPinned() ? /* @__PURE__ */ jsx(Button, { "aria-label": "Unpin", variant: "outline", onClick: handleUnpinClick, children: /* @__PURE__ */ jsx(Icon, { name: "XMark", size: "large" }) }) : null,
|
|
157
|
+
header.column.getIsPinned() === "right" ? null : /* @__PURE__ */ jsx(
|
|
158
|
+
Button,
|
|
159
|
+
{
|
|
160
|
+
"aria-label": "Pin to right",
|
|
161
|
+
variant: "outline",
|
|
162
|
+
onClick: handlePinRightClick,
|
|
163
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ArrowRightEndOnRectangle", size: "large" })
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
] }) })
|
|
167
|
+
] }),
|
|
168
|
+
resolvedHideFilters ? null : /* @__PURE__ */ jsxs(Container, { direction: "column", spacing: "small", children: [
|
|
169
|
+
/* @__PURE__ */ jsx(Text, { children: "Filter" }),
|
|
170
|
+
/* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsx(
|
|
171
|
+
DataTableHeaderFilter,
|
|
172
|
+
{
|
|
173
|
+
clientFaceting,
|
|
174
|
+
clientFilters,
|
|
175
|
+
column: header.column,
|
|
176
|
+
faceting,
|
|
177
|
+
filters: controlledFilters,
|
|
178
|
+
table,
|
|
179
|
+
onFiltering
|
|
180
|
+
}
|
|
181
|
+
) })
|
|
182
|
+
] }),
|
|
183
|
+
hideColumnVisibility ? null : /* @__PURE__ */ jsxs(Container, { direction: "column", spacing: "small", children: [
|
|
184
|
+
/* @__PURE__ */ jsx(Text, { children: "Visible columns" }),
|
|
185
|
+
table.getAllLeafColumns().map((column) => /* @__PURE__ */ jsx(
|
|
186
|
+
DataTableHeaderColumnCheckbox,
|
|
187
|
+
{
|
|
188
|
+
column,
|
|
189
|
+
table
|
|
190
|
+
},
|
|
191
|
+
column.id
|
|
192
|
+
))
|
|
193
|
+
] })
|
|
153
194
|
] }) })
|
|
154
|
-
] }) : null,
|
|
155
|
-
header.column.getCanFilter() ? /* @__PURE__ */ jsxs(Container, { direction: "column", spacing: "small", children: [
|
|
156
|
-
/* @__PURE__ */ jsx(Text, { children: "Filter" }),
|
|
157
|
-
/* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsx(
|
|
158
|
-
DataTableHeaderFilter,
|
|
159
|
-
{
|
|
160
|
-
clientFaceting,
|
|
161
|
-
clientFilters,
|
|
162
|
-
column: header.column,
|
|
163
|
-
faceting,
|
|
164
|
-
filters: controlledFilters,
|
|
165
|
-
table,
|
|
166
|
-
onFiltering
|
|
167
|
-
}
|
|
168
|
-
) })
|
|
169
|
-
] }) : null,
|
|
170
|
-
/* @__PURE__ */ jsxs(Container, { direction: "column", spacing: "small", children: [
|
|
171
|
-
/* @__PURE__ */ jsx(Text, { children: "Visible columns" }),
|
|
172
|
-
table.getAllLeafColumns().map((column) => /* @__PURE__ */ jsx(DataTableHeaderColumnCheckbox, { column, table }, column.id))
|
|
173
195
|
] })
|
|
174
|
-
] })
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
/* @__PURE__ */ jsx(
|
|
196
|
+
] })
|
|
197
|
+
}
|
|
198
|
+
),
|
|
199
|
+
hideColumnResizing ? null : /* @__PURE__ */ jsx(
|
|
178
200
|
Button,
|
|
179
201
|
{
|
|
180
202
|
"aria-label": "Resize",
|
|
181
|
-
className: "absolute right-1 top-2.5 cursor-col-resize",
|
|
203
|
+
className: "absolute right-1 top-1/2 -mt-2.5 cursor-col-resize",
|
|
182
204
|
size: "small",
|
|
183
205
|
variant: "invisible",
|
|
184
206
|
onDoubleClick: handleWidthReset,
|