@bioturing/components 0.47.0 → 0.48.0
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/components/base-menu/index.d.ts +1 -1
- package/dist/components/base-menu/index.d.ts.map +1 -1
- package/dist/components/base-menu/item.css +1 -1
- package/dist/components/base-menu/item.d.ts +13 -2
- package/dist/components/base-menu/item.d.ts.map +1 -1
- package/dist/components/base-menu/item.js +62 -47
- package/dist/components/base-menu/item.js.map +1 -1
- package/dist/components/base-menu/style.css +1 -1
- package/dist/components/combobox/component.d.ts.map +1 -1
- package/dist/components/combobox/component.js +121 -121
- package/dist/components/combobox/component.js.map +1 -1
- package/dist/components/combobox/style.css +1 -1
- package/dist/components/data-table/component.d.ts.map +1 -1
- package/dist/components/data-table/component.js +81 -70
- package/dist/components/data-table/component.js.map +1 -1
- package/dist/components/data-table/components/TableBody.d.ts +3 -2
- package/dist/components/data-table/components/TableBody.d.ts.map +1 -1
- package/dist/components/data-table/components/TableBody.js +107 -99
- package/dist/components/data-table/components/TableBody.js.map +1 -1
- package/dist/components/data-table/components/TableHeader.d.ts +3 -1
- package/dist/components/data-table/components/TableHeader.d.ts.map +1 -1
- package/dist/components/data-table/components/TableHeader.js +121 -93
- package/dist/components/data-table/components/TableHeader.js.map +1 -1
- package/dist/components/data-table/components/TablePagination.d.ts.map +1 -1
- package/dist/components/data-table/components/TablePagination.js +32 -21
- package/dist/components/data-table/components/TablePagination.js.map +1 -1
- package/dist/components/data-table/hooks.d.ts.map +1 -1
- package/dist/components/data-table/hooks.js +98 -84
- package/dist/components/data-table/hooks.js.map +1 -1
- package/dist/components/data-table/style.css +1 -1
- package/dist/components/data-table/utils.js +37 -30
- package/dist/components/data-table/utils.js.map +1 -1
- package/dist/components/dropdown-menu/component.d.ts.map +1 -1
- package/dist/components/dropdown-menu/component.js +121 -144
- package/dist/components/dropdown-menu/component.js.map +1 -1
- package/dist/components/dropdown-menu/index.d.ts +2 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -1
- package/dist/components/dropdown-menu/item.d.ts +7 -15
- package/dist/components/dropdown-menu/item.d.ts.map +1 -1
- package/dist/components/dropdown-menu/item.js +132 -81
- package/dist/components/dropdown-menu/item.js.map +1 -1
- package/dist/components/dropdown-menu/radio-group.d.ts +14 -0
- package/dist/components/dropdown-menu/radio-group.d.ts.map +1 -0
- package/dist/components/dropdown-menu/radio-group.js +45 -0
- package/dist/components/dropdown-menu/radio-group.js.map +1 -0
- package/dist/components/dropdown-menu/search-mode.d.ts +4 -0
- package/dist/components/dropdown-menu/search-mode.d.ts.map +1 -0
- package/dist/components/dropdown-menu/search-mode.js +6 -0
- package/dist/components/dropdown-menu/search-mode.js.map +1 -0
- package/dist/components/dropdown-menu/style.css +1 -1
- package/dist/components/dropdown-menu/submenu.d.ts +25 -0
- package/dist/components/dropdown-menu/submenu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/submenu.js +96 -0
- package/dist/components/dropdown-menu/submenu.js.map +1 -0
- package/dist/components/dropdown-menu/types.d.ts +85 -12
- package/dist/components/dropdown-menu/types.d.ts.map +1 -1
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +4 -8
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/useDropdownMenu.js +108 -81
- package/dist/components/dropdown-menu/useDropdownMenu.js.map +1 -1
- package/dist/components/select/component.js +29 -29
- package/dist/components/select/component.js.map +1 -1
- package/dist/index.js +278 -274
- package/dist/index.js.map +1 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
|
@@ -1,83 +1,92 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as o, jsxs as
|
|
3
|
-
import { forwardRef as
|
|
4
|
-
import { Spin as
|
|
5
|
-
import { useDataTable as
|
|
6
|
-
import { convertSelectionToAntFormat as
|
|
2
|
+
import { jsx as o, jsxs as h } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as k, useRef as y, useState as B, useEffect as w } from "react";
|
|
4
|
+
import { Spin as E } from "../spin/component.js";
|
|
5
|
+
import { useDataTable as F } from "./hooks.js";
|
|
6
|
+
import { convertSelectionToAntFormat as $ } from "./utils.js";
|
|
7
7
|
import './variant-minimal.css';import './variant-zebra.css';import './style.css';/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
/* empty css */
|
|
10
|
-
import { TableHeader as
|
|
11
|
-
import { TableBody as
|
|
12
|
-
import { TablePagination as
|
|
13
|
-
import { useCls as
|
|
14
|
-
import { clsx as
|
|
15
|
-
const
|
|
10
|
+
import { TableHeader as A } from "./components/TableHeader.js";
|
|
11
|
+
import { TableBody as G } from "./components/TableBody.js";
|
|
12
|
+
import { TablePagination as K } from "./components/TablePagination.js";
|
|
13
|
+
import { useCls as L } from "../utils/antdUtils.js";
|
|
14
|
+
import { clsx as M } from "../utils/cn.js";
|
|
15
|
+
const U = (m, J) => {
|
|
16
16
|
const {
|
|
17
17
|
dataSource: i = [],
|
|
18
|
-
className:
|
|
19
|
-
size:
|
|
20
|
-
variant:
|
|
21
|
-
emptyDescription:
|
|
22
|
-
rowKey: c
|
|
23
|
-
|
|
18
|
+
className: z,
|
|
19
|
+
size: R = "large",
|
|
20
|
+
variant: u = "default",
|
|
21
|
+
emptyDescription: v,
|
|
22
|
+
rowKey: c,
|
|
23
|
+
onRow: T,
|
|
24
|
+
onHeaderRow: C,
|
|
25
|
+
locale: s
|
|
26
|
+
} = m, e = L(), x = y(null), {
|
|
24
27
|
table: a,
|
|
25
|
-
isLoading:
|
|
26
|
-
spinProps:
|
|
27
|
-
hasRowSelection:
|
|
28
|
-
hasPagination:
|
|
29
|
-
paginationConfig:
|
|
30
|
-
rowSelectionConfig:
|
|
31
|
-
} =
|
|
32
|
-
if (
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
isLoading: D,
|
|
29
|
+
spinProps: H,
|
|
30
|
+
hasRowSelection: f,
|
|
31
|
+
hasPagination: p,
|
|
32
|
+
paginationConfig: N,
|
|
33
|
+
rowSelectionConfig: r
|
|
34
|
+
} = F(m), W = (t, l) => {
|
|
35
|
+
if (f) {
|
|
36
|
+
const g = !t.getIsSelected();
|
|
37
|
+
if (r?.onSelect) {
|
|
38
|
+
const S = { ...a.getState().rowSelection };
|
|
39
|
+
S[t.id] = g;
|
|
40
|
+
const { selectedRows: j } = $(
|
|
41
|
+
S,
|
|
42
|
+
i,
|
|
43
|
+
c
|
|
44
|
+
);
|
|
45
|
+
r.onSelect(
|
|
46
|
+
t.original,
|
|
47
|
+
g,
|
|
48
|
+
j,
|
|
49
|
+
l.nativeEvent
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
t.toggleSelected();
|
|
44
53
|
}
|
|
45
|
-
},
|
|
54
|
+
}, n = y(null), [b, I] = B({
|
|
46
55
|
vertical: !1,
|
|
47
56
|
horizontal: !1
|
|
48
|
-
}),
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
vertical:
|
|
52
|
-
horizontal:
|
|
57
|
+
}), d = !!a.getState().columnSizingInfo?.isResizingColumn;
|
|
58
|
+
return w(() => {
|
|
59
|
+
n.current && I({
|
|
60
|
+
vertical: n.current.scrollHeight > n.current.clientHeight,
|
|
61
|
+
horizontal: n.current.scrollWidth > n.current.clientWidth
|
|
53
62
|
});
|
|
54
|
-
}, [i]),
|
|
55
|
-
if (!
|
|
63
|
+
}, [i]), w(() => {
|
|
64
|
+
if (!d || typeof document > "u") return;
|
|
56
65
|
const t = document.body.style.cursor, l = document.body.style.userSelect;
|
|
57
66
|
return document.body.style.cursor = "col-resize", document.body.style.userSelect = "none", () => {
|
|
58
67
|
document.body.style.cursor = t, document.body.style.userSelect = l;
|
|
59
68
|
};
|
|
60
|
-
}, [
|
|
69
|
+
}, [d]), /* @__PURE__ */ o(
|
|
61
70
|
"div",
|
|
62
71
|
{
|
|
63
|
-
ref:
|
|
64
|
-
className:
|
|
72
|
+
ref: x,
|
|
73
|
+
className: M(
|
|
65
74
|
e("data-table-wrapper"),
|
|
66
|
-
e(`data-table-${
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
e(`data-table-${R}`),
|
|
76
|
+
u === "zebra" ? e("data-table-zebra") : "",
|
|
77
|
+
u === "minimal" ? e("data-table-minimal") : "",
|
|
78
|
+
p ? e("data-table-has-pagination") : "",
|
|
70
79
|
b.vertical ? e("data-table-scroll-vertical") : "",
|
|
71
80
|
b.horizontal ? e("data-table-scroll-horizontal") : "",
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
d ? e("data-table-resizing") : "",
|
|
82
|
+
z
|
|
74
83
|
),
|
|
75
|
-
children: /* @__PURE__ */
|
|
76
|
-
/* @__PURE__ */ o("div", { className: e("data-table"), children: /* @__PURE__ */ o("div", { className: e("data-table-container"), ref:
|
|
84
|
+
children: /* @__PURE__ */ h(E, { spinning: D, ...H, children: [
|
|
85
|
+
/* @__PURE__ */ o("div", { className: e("data-table"), children: /* @__PURE__ */ o("div", { className: e("data-table-container"), ref: n, children: /* @__PURE__ */ o("div", { className: e("data-table-content"), children: /* @__PURE__ */ h("table", { children: [
|
|
77
86
|
/* @__PURE__ */ o("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((t) => {
|
|
78
87
|
let l;
|
|
79
88
|
if (t.id === "select")
|
|
80
|
-
l =
|
|
89
|
+
l = r?.columnWidth || 32;
|
|
81
90
|
else
|
|
82
91
|
try {
|
|
83
92
|
l = `${t.getSize()}px`;
|
|
@@ -87,40 +96,42 @@ const F = (d, A) => {
|
|
|
87
96
|
return /* @__PURE__ */ o("col", { style: { width: l } }, t.id);
|
|
88
97
|
}) }),
|
|
89
98
|
/* @__PURE__ */ o(
|
|
90
|
-
|
|
99
|
+
A,
|
|
91
100
|
{
|
|
92
101
|
table: a,
|
|
93
|
-
rowSelectionConfig:
|
|
102
|
+
rowSelectionConfig: r,
|
|
94
103
|
dataSource: i,
|
|
95
|
-
rowKey: c
|
|
104
|
+
rowKey: c,
|
|
105
|
+
onHeaderRow: C
|
|
96
106
|
}
|
|
97
107
|
),
|
|
98
108
|
/* @__PURE__ */ o(
|
|
99
|
-
|
|
109
|
+
G,
|
|
100
110
|
{
|
|
101
111
|
table: a,
|
|
102
112
|
dataSource: i,
|
|
103
|
-
emptyDescription:
|
|
104
|
-
hasRowSelection:
|
|
105
|
-
onRowClick:
|
|
106
|
-
rowSelectionConfig:
|
|
107
|
-
rowKey: c
|
|
113
|
+
emptyDescription: v ?? (typeof s?.emptyText == "function" ? s.emptyText() : s?.emptyText),
|
|
114
|
+
hasRowSelection: f,
|
|
115
|
+
onRowClick: W,
|
|
116
|
+
rowSelectionConfig: r,
|
|
117
|
+
rowKey: c,
|
|
118
|
+
onRow: T
|
|
108
119
|
}
|
|
109
120
|
)
|
|
110
121
|
] }) }) }) }),
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
p && /* @__PURE__ */ o(
|
|
123
|
+
K,
|
|
113
124
|
{
|
|
114
125
|
table: a,
|
|
115
|
-
paginationConfig:
|
|
126
|
+
paginationConfig: N,
|
|
116
127
|
totalCount: a.getPreFilteredRowModel().rows.length
|
|
117
128
|
}
|
|
118
129
|
)
|
|
119
130
|
] })
|
|
120
131
|
}
|
|
121
132
|
);
|
|
122
|
-
},
|
|
133
|
+
}, q = k(U), re = q;
|
|
123
134
|
export {
|
|
124
|
-
|
|
135
|
+
re as DataTable
|
|
125
136
|
};
|
|
126
137
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport \"./variant-zebra.css\";\nimport \"./variant-minimal.css\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowKey,\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>) => {\n if (hasRowSelection) {\n row.toggleSelected();\n if (rowSelectionConfig?.onSelect) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n !row.getIsSelected(),\n selectedRows,\n new Event(\"click\")\n );\n }\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const [hasScroll, setHasScroll] = useState({\n vertical: false,\n horizontal: false,\n });\n\n const isColumnResizing = Boolean(\n table.getState().columnSizingInfo?.isResizingColumn\n );\n\n useEffect(() => {\n if (tableContainerRef.current) {\n setHasScroll({\n vertical:\n tableContainerRef.current.scrollHeight >\n tableContainerRef.current.clientHeight,\n horizontal:\n tableContainerRef.current.scrollWidth >\n tableContainerRef.current.clientWidth,\n });\n }\n }, [dataSource]);\n\n useEffect(() => {\n if (!isColumnResizing || typeof document === \"undefined\") return;\n\n const originalCursor = document.body.style.cursor;\n const originalUserSelect = document.body.style.userSelect;\n\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n\n return () => {\n document.body.style.cursor = originalCursor;\n document.body.style.userSelect = originalUserSelect;\n };\n }, [isColumnResizing]);\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"data-table-wrapper\"),\n cls(`data-table-${size}`),\n variant === \"zebra\" ? cls(\"data-table-zebra\") : \"\",\n variant === \"minimal\" ? cls(\"data-table-minimal\") : \"\",\n hasPagination ? cls(\"data-table-has-pagination\") : \"\",\n hasScroll.vertical ? cls(\"data-table-scroll-vertical\") : \"\",\n hasScroll.horizontal ? cls(\"data-table-scroll-horizontal\") : \"\",\n isColumnResizing ? cls(\"data-table-resizing\") : \"\",\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={cls(\"data-table\")}>\n <div className={cls(\"data-table-container\")} ref={tableContainerRef}>\n <div className={cls(\"data-table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n\n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (\n header.column.columnDef.meta as ExtendedColumnMeta\n )?.width;\n }\n }\n\n return (\n <col key={header.id} style={{ width: columnWidth }} />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={rowKey}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={emptyDescription}\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={rowKey}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","selectedRows","convertSelectionToAntFormat","tableContainerRef","hasScroll","setHasScroll","useState","isColumnResizing","useEffect","originalCursor","originalUserSelect","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat, getRowKey } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport \"./variant-zebra.css\";\nimport \"./variant-minimal.css\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowKey,\n onRow,\n onHeaderRow,\n locale,\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>, nativeEvent: React.MouseEvent) => {\n if (hasRowSelection) {\n const wasSelected = row.getIsSelected();\n const isSelected = !wasSelected;\n\n if (rowSelectionConfig?.onSelect) {\n // Compute new selection manually since table state batched updates\n // may not reflect the toggle yet\n const nextSelection = { ...table.getState().rowSelection };\n nextSelection[row.id] = isSelected;\n\n const { selectedRows } = convertSelectionToAntFormat(\n nextSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n isSelected,\n selectedRows,\n nativeEvent.nativeEvent\n );\n }\n\n row.toggleSelected();\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const [hasScroll, setHasScroll] = useState({\n vertical: false,\n horizontal: false,\n });\n\n const isColumnResizing = Boolean(\n table.getState().columnSizingInfo?.isResizingColumn\n );\n\n useEffect(() => {\n if (tableContainerRef.current) {\n setHasScroll({\n vertical:\n tableContainerRef.current.scrollHeight >\n tableContainerRef.current.clientHeight,\n horizontal:\n tableContainerRef.current.scrollWidth >\n tableContainerRef.current.clientWidth,\n });\n }\n }, [dataSource]);\n\n useEffect(() => {\n if (!isColumnResizing || typeof document === \"undefined\") return;\n\n const originalCursor = document.body.style.cursor;\n const originalUserSelect = document.body.style.userSelect;\n\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n\n return () => {\n document.body.style.cursor = originalCursor;\n document.body.style.userSelect = originalUserSelect;\n };\n }, [isColumnResizing]);\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"data-table-wrapper\"),\n cls(`data-table-${size}`),\n variant === \"zebra\" ? cls(\"data-table-zebra\") : \"\",\n variant === \"minimal\" ? cls(\"data-table-minimal\") : \"\",\n hasPagination ? cls(\"data-table-has-pagination\") : \"\",\n hasScroll.vertical ? cls(\"data-table-scroll-vertical\") : \"\",\n hasScroll.horizontal ? cls(\"data-table-scroll-horizontal\") : \"\",\n isColumnResizing ? cls(\"data-table-resizing\") : \"\",\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={cls(\"data-table\")}>\n <div className={cls(\"data-table-container\")} ref={tableContainerRef}>\n <div className={cls(\"data-table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n\n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (\n header.column.columnDef.meta as ExtendedColumnMeta\n )?.width;\n }\n }\n\n return (\n <col key={header.id} style={{ width: columnWidth }} />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={rowKey}\n onHeaderRow={onHeaderRow}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={\n emptyDescription ??\n (typeof locale?.emptyText === \"function\"\n ? locale.emptyText()\n : locale?.emptyText)\n }\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={rowKey}\n onRow={onRow}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","onRow","onHeaderRow","locale","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","nativeEvent","isSelected","nextSelection","selectedRows","convertSelectionToAntFormat","tableContainerRef","hasScroll","setHasScroll","useState","isColumnResizing","useEffect","originalCursor","originalUserSelect","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
|
|
@@ -6,10 +6,11 @@ interface TableBodyProps<RecordType extends Record<string, any> = Record<string,
|
|
|
6
6
|
dataSource: RecordType[];
|
|
7
7
|
emptyDescription?: React.ReactNode;
|
|
8
8
|
hasRowSelection?: boolean;
|
|
9
|
-
onRowClick?: (row: Row<RecordType
|
|
9
|
+
onRowClick?: (row: Row<RecordType>, nativeEvent: React.MouseEvent) => void;
|
|
10
10
|
rowSelectionConfig?: DataTableRowSelection<RecordType>;
|
|
11
11
|
rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey);
|
|
12
|
+
onRow?: (record: RecordType, index?: number) => React.HTMLAttributes<HTMLElement>;
|
|
12
13
|
}
|
|
13
|
-
export declare const TableBody: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, dataSource, emptyDescription, hasRowSelection, onRowClick, rowSelectionConfig, rowKey, }: TableBodyProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const TableBody: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, dataSource, emptyDescription, hasRowSelection, onRowClick, rowSelectionConfig, rowKey, onRow, }: TableBodyProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export {};
|
|
15
16
|
//# sourceMappingURL=TableBody.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,KAAK,EAAE,KAAK,GAAG,EAA0B,MAAM,uBAAuB,CAAC;AAMjG,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAWnE,UAAU,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,KAAK,EAAE,KAAK,GAAG,EAA0B,MAAM,uBAAuB,CAAC;AAMjG,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAWnE,UAAU,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3E,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACnE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CACnF;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,0GASzF,cAAc,CAAC,UAAU,CAAC,4CAkI5B,CAAC"}
|
|
@@ -1,123 +1,131 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { flexRender as
|
|
3
|
-
import { convertSelectionToAntFormat as
|
|
4
|
-
import { Empty as
|
|
5
|
-
import { Radio as
|
|
6
|
-
import { useCls as
|
|
7
|
-
import { clsx as
|
|
8
|
-
import { Checkbox as
|
|
9
|
-
const
|
|
1
|
+
import { jsxs as k, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { flexRender as S } from "@tanstack/react-table";
|
|
3
|
+
import { convertSelectionToAntFormat as g, getAlignmentClass as w } from "../utils.js";
|
|
4
|
+
import { Empty as N } from "../../empty/component.js";
|
|
5
|
+
import { Radio as v } from "../../radio/component.js";
|
|
6
|
+
import { useCls as y } from "../../utils/antdUtils.js";
|
|
7
|
+
import { clsx as p } from "../../utils/cn.js";
|
|
8
|
+
import { Checkbox as C } from "../../checkbox/component.js";
|
|
9
|
+
const H = ({
|
|
10
10
|
table: c,
|
|
11
|
-
dataSource:
|
|
12
|
-
emptyDescription:
|
|
13
|
-
hasRowSelection:
|
|
14
|
-
onRowClick:
|
|
11
|
+
dataSource: s,
|
|
12
|
+
emptyDescription: u,
|
|
13
|
+
hasRowSelection: b,
|
|
14
|
+
onRowClick: x,
|
|
15
15
|
rowSelectionConfig: r,
|
|
16
|
-
rowKey:
|
|
16
|
+
rowKey: m,
|
|
17
|
+
onRow: f
|
|
17
18
|
}) => {
|
|
18
|
-
const
|
|
19
|
-
return /* @__PURE__ */
|
|
20
|
-
/* @__PURE__ */
|
|
19
|
+
const a = y();
|
|
20
|
+
return /* @__PURE__ */ k("tbody", { className: a("data-table-tbody"), children: [
|
|
21
|
+
/* @__PURE__ */ o(
|
|
21
22
|
"tr",
|
|
22
23
|
{
|
|
23
24
|
"aria-hidden": "true",
|
|
24
|
-
className:
|
|
25
|
+
className: a("data-table-measure-row"),
|
|
25
26
|
style: { height: "0px", fontSize: "0px" },
|
|
26
|
-
children: c.getHeaderGroups()[0]?.headers.map((
|
|
27
|
+
children: c.getHeaderGroups()[0]?.headers.map((t) => /* @__PURE__ */ o(
|
|
27
28
|
"td",
|
|
28
29
|
{
|
|
29
|
-
className:
|
|
30
|
+
className: a("data-table-measure-cell"),
|
|
30
31
|
style: {
|
|
31
32
|
padding: "0px",
|
|
32
33
|
border: "0px",
|
|
33
34
|
height: "0px",
|
|
34
|
-
width:
|
|
35
|
+
width: t.id === "select" ? 32 : t.column.columnDef.meta?.width
|
|
35
36
|
},
|
|
36
|
-
children: /* @__PURE__ */
|
|
37
|
+
children: /* @__PURE__ */ o("div", { className: a("data-table-measure-cell-content"), children: " " })
|
|
37
38
|
},
|
|
38
|
-
|
|
39
|
+
t.id
|
|
39
40
|
))
|
|
40
41
|
}
|
|
41
42
|
),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
e.column.id === "select" ? t("data-table-selection-column") : "",
|
|
59
|
-
k(e.column.columnDef.meta?.align)
|
|
60
|
-
),
|
|
61
|
-
children: e.column.id === "select" ? (
|
|
62
|
-
// Handle selection column cells
|
|
63
|
-
(() => {
|
|
64
|
-
const s = e.row.original, m = r?.getCheckboxProps?.(s) || {};
|
|
65
|
-
return r?.type === "radio" ? /* @__PURE__ */ a(
|
|
66
|
-
w,
|
|
67
|
-
{
|
|
68
|
-
checked: e.row.getIsSelected(),
|
|
69
|
-
disabled: !e.row.getCanSelect(),
|
|
70
|
-
onChange: (o) => {
|
|
71
|
-
if (e.row.toggleSelected(o.target.checked), r.onSelect) {
|
|
72
|
-
const { selectedRows: n } = h(
|
|
73
|
-
c.getState().rowSelection,
|
|
74
|
-
l,
|
|
75
|
-
i
|
|
76
|
-
);
|
|
77
|
-
r.onSelect(
|
|
78
|
-
s,
|
|
79
|
-
o.target.checked,
|
|
80
|
-
n,
|
|
81
|
-
o.nativeEvent
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
...m
|
|
86
|
-
}
|
|
87
|
-
) : /* @__PURE__ */ a(
|
|
88
|
-
y,
|
|
89
|
-
{
|
|
90
|
-
checked: e.row.getIsSelected(),
|
|
91
|
-
disabled: !e.row.getCanSelect(),
|
|
92
|
-
onChange: (o) => {
|
|
93
|
-
if (e.row.toggleSelected(o.target.checked), r?.onSelect) {
|
|
94
|
-
const { selectedRows: n } = h(
|
|
95
|
-
c.getState().rowSelection,
|
|
96
|
-
l,
|
|
97
|
-
i
|
|
98
|
-
);
|
|
99
|
-
r.onSelect(
|
|
100
|
-
s,
|
|
101
|
-
o.target.checked,
|
|
102
|
-
n,
|
|
103
|
-
o.nativeEvent
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
...m
|
|
108
|
-
}
|
|
109
|
-
);
|
|
110
|
-
})()
|
|
111
|
-
) : f(e.column.columnDef.cell, e.getContext())
|
|
43
|
+
s.length === 0 ? /* @__PURE__ */ o("tr", { className: a("data-table-placeholder"), children: /* @__PURE__ */ o("td", { colSpan: c.getHeaderGroups()[0]?.headers.length || 1, children: /* @__PURE__ */ o(N, { description: u }) }) }) : c.getRowModel().rows.map((t) => {
|
|
44
|
+
const l = f?.(t.original, t.index);
|
|
45
|
+
return /* @__PURE__ */ o(
|
|
46
|
+
"tr",
|
|
47
|
+
{
|
|
48
|
+
...l,
|
|
49
|
+
className: p(
|
|
50
|
+
a("data-table-row"),
|
|
51
|
+
a("data-table-row-level-0"),
|
|
52
|
+
t.getIsSelected() ? a("data-table-row-selected") : "",
|
|
53
|
+
l?.className
|
|
54
|
+
),
|
|
55
|
+
"data-row-key": t.id,
|
|
56
|
+
"data-selectable": b ? "true" : "false",
|
|
57
|
+
onClick: (e) => {
|
|
58
|
+
l?.onClick?.(e), x?.(t, e);
|
|
112
59
|
},
|
|
113
|
-
e
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
60
|
+
children: t.getVisibleCells().map((e) => /* @__PURE__ */ o(
|
|
61
|
+
"td",
|
|
62
|
+
{
|
|
63
|
+
className: p(
|
|
64
|
+
a("data-table-cell"),
|
|
65
|
+
e.column.id === "select" ? a("data-table-selection-column") : "",
|
|
66
|
+
w(e.column.columnDef.meta?.align)
|
|
67
|
+
),
|
|
68
|
+
children: e.column.id === "select" ? (
|
|
69
|
+
// Handle selection column cells
|
|
70
|
+
(() => {
|
|
71
|
+
const n = e.row.original, h = r?.getCheckboxProps?.(n) || {};
|
|
72
|
+
return r?.type === "radio" ? /* @__PURE__ */ o(
|
|
73
|
+
v,
|
|
74
|
+
{
|
|
75
|
+
checked: e.row.getIsSelected(),
|
|
76
|
+
disabled: !e.row.getCanSelect(),
|
|
77
|
+
onChange: (d) => {
|
|
78
|
+
if (e.row.toggleSelected(d.target.checked), r.onSelect) {
|
|
79
|
+
const { selectedRows: i } = g(
|
|
80
|
+
c.getState().rowSelection,
|
|
81
|
+
s,
|
|
82
|
+
m
|
|
83
|
+
);
|
|
84
|
+
r.onSelect(
|
|
85
|
+
n,
|
|
86
|
+
d.target.checked,
|
|
87
|
+
i,
|
|
88
|
+
d.nativeEvent
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
...h
|
|
93
|
+
}
|
|
94
|
+
) : /* @__PURE__ */ o(
|
|
95
|
+
C,
|
|
96
|
+
{
|
|
97
|
+
checked: e.row.getIsSelected(),
|
|
98
|
+
disabled: !e.row.getCanSelect(),
|
|
99
|
+
onChange: (d) => {
|
|
100
|
+
if (e.row.toggleSelected(d.target.checked), r?.onSelect) {
|
|
101
|
+
const { selectedRows: i } = g(
|
|
102
|
+
c.getState().rowSelection,
|
|
103
|
+
s,
|
|
104
|
+
m
|
|
105
|
+
);
|
|
106
|
+
r.onSelect(
|
|
107
|
+
n,
|
|
108
|
+
d.target.checked,
|
|
109
|
+
i,
|
|
110
|
+
d.nativeEvent
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
...h
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
})()
|
|
118
|
+
) : S(e.column.columnDef.cell, e.getContext())
|
|
119
|
+
},
|
|
120
|
+
e.id
|
|
121
|
+
))
|
|
122
|
+
},
|
|
123
|
+
t.id
|
|
124
|
+
);
|
|
125
|
+
})
|
|
118
126
|
] });
|
|
119
127
|
};
|
|
120
128
|
export {
|
|
121
|
-
|
|
129
|
+
H as TableBody
|
|
122
130
|
};
|
|
123
131
|
//# sourceMappingURL=TableBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.js","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"sourcesContent":["import React from \"react\";\nimport { flexRender, type Table, type Row, type Cell, type Header } from \"@tanstack/react-table\";\nimport { Checkbox, type CheckboxChangeEvent } from \"../../checkbox\";\nimport { Radio, type RadioChangeEvent } from \"../../radio\";\nimport { clsx, useCls } from \"../../utils\";\nimport { getAlignmentClass } from \"../utils\";\nimport { convertSelectionToAntFormat } from \"../utils\";\nimport { type DataTableRowSelection, type RowKey } from \"../types\";\nimport Empty from \"../../empty/component\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\ninterface TableBodyProps<RecordType extends Record<string, any> = Record<string, unknown>> {\n table: Table<RecordType>;\n dataSource: RecordType[];\n emptyDescription?: React.ReactNode;\n hasRowSelection?: boolean;\n onRowClick?: (row: Row<RecordType>) => void;\n rowSelectionConfig?: DataTableRowSelection<RecordType>;\n rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey);\n}\n\nexport const TableBody = <RecordType extends Record<string, any> = Record<string, unknown>>({\n table,\n dataSource,\n emptyDescription,\n hasRowSelection,\n onRowClick,\n rowSelectionConfig,\n rowKey,\n}: TableBodyProps<RecordType>) => {\n const cls = useCls();\n\n return (\n <tbody className={cls(\"data-table-tbody\")}>\n {/* Measure row for Ant Design compatibility */}\n <tr\n aria-hidden=\"true\"\n className={cls(\"data-table-measure-row\")}\n style={{ height: \"0px\", fontSize: \"0px\" }}\n >\n {table.getHeaderGroups()[0]?.headers.map((header: Header<RecordType, unknown>) => (\n <td\n key={header.id}\n className={cls(\"data-table-measure-cell\")}\n style={{\n padding: \"0px\",\n border: \"0px\",\n height: \"0px\",\n width:\n header.id === \"select\"\n ? 32\n : (header.column.columnDef.meta as ExtendedColumnMeta)?.width,\n }}\n >\n <div className={cls(\"data-table-measure-cell-content\")}> </div>\n </td>\n ))}\n </tr>\n\n {dataSource.length === 0 ? (\n <tr className={cls(\"data-table-placeholder\")}>\n <td colSpan={table.getHeaderGroups()[0]?.headers.length || 1}>\n <Empty description={emptyDescription} />\n </td>\n </tr>\n ) : (\n table.getRowModel().rows.map((row: Row<RecordType>) => (\n <tr\n key={row.id}\n className={clsx(\n cls(\"data-table-row\"),\n cls(\"data-table-row-level-0\"),\n row.getIsSelected() ? cls(\"data-table-row-selected\") : \"\",\n )}\n data-row-key={row.id}\n data-selectable={hasRowSelection ? \"true\" : \"false\"}\n onClick={() => onRowClick?.(row)}\n >\n {row.getVisibleCells().map((cell: Cell<RecordType, unknown>) => (\n <td\n key={cell.id}\n className={clsx(\n cls(\"data-table-cell\"),\n cell.column.id === \"select\" ? cls(\"data-table-selection-column\") : \"\",\n getAlignmentClass((cell.column.columnDef.meta as ExtendedColumnMeta)?.align),\n )}\n >\n {cell.column.id === \"select\"\n ? // Handle selection column cells\n (() => {\n const record = cell.row.original;\n const checkboxProps = rowSelectionConfig?.getCheckboxProps?.(record) || {};\n\n if (rowSelectionConfig?.type === \"radio\") {\n return (\n <Radio\n checked={cell.row.getIsSelected()}\n disabled={!cell.row.getCanSelect()}\n onChange={(e: RadioChangeEvent) => {\n cell.row.toggleSelected(e.target.checked);\n if (rowSelectionConfig.onSelect) {\n const { selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey,\n );\n rowSelectionConfig.onSelect(\n record,\n e.target.checked,\n selectedRows,\n e.nativeEvent,\n );\n }\n }}\n {...checkboxProps}\n />\n );\n }\n\n return (\n <Checkbox\n checked={cell.row.getIsSelected()}\n disabled={!cell.row.getCanSelect()}\n onChange={(e: CheckboxChangeEvent) => {\n cell.row.toggleSelected(e.target.checked);\n if (rowSelectionConfig?.onSelect) {\n const { selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey,\n );\n rowSelectionConfig.onSelect(\n record,\n e.target.checked,\n selectedRows,\n e.nativeEvent,\n );\n }\n }}\n {...checkboxProps}\n />\n );\n })()\n : flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n );\n};\n"],"names":["TableBody","table","dataSource","emptyDescription","hasRowSelection","onRowClick","rowSelectionConfig","rowKey","cls","useCls","jsxs","jsx","header","Empty","row","clsx","cell","getAlignmentClass","record","checkboxProps","Radio","e","selectedRows","convertSelectionToAntFormat","Checkbox","flexRender"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableBody.js","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"sourcesContent":["import React from \"react\";\nimport { flexRender, type Table, type Row, type Cell, type Header } from \"@tanstack/react-table\";\nimport { Checkbox, type CheckboxChangeEvent } from \"../../checkbox\";\nimport { Radio, type RadioChangeEvent } from \"../../radio\";\nimport { clsx, useCls } from \"../../utils\";\nimport { getAlignmentClass } from \"../utils\";\nimport { convertSelectionToAntFormat } from \"../utils\";\nimport { type DataTableRowSelection, type RowKey } from \"../types\";\nimport Empty from \"../../empty/component\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\ninterface TableBodyProps<RecordType extends Record<string, any> = Record<string, unknown>> {\n table: Table<RecordType>;\n dataSource: RecordType[];\n emptyDescription?: React.ReactNode;\n hasRowSelection?: boolean;\n onRowClick?: (row: Row<RecordType>, nativeEvent: React.MouseEvent) => void;\n rowSelectionConfig?: DataTableRowSelection<RecordType>;\n rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey);\n onRow?: (record: RecordType, index?: number) => React.HTMLAttributes<HTMLElement>;\n}\n\nexport const TableBody = <RecordType extends Record<string, any> = Record<string, unknown>>({\n table,\n dataSource,\n emptyDescription,\n hasRowSelection,\n onRowClick,\n rowSelectionConfig,\n rowKey,\n onRow,\n}: TableBodyProps<RecordType>) => {\n const cls = useCls();\n\n return (\n <tbody className={cls(\"data-table-tbody\")}>\n {/* Measure row for Ant Design compatibility */}\n <tr\n aria-hidden=\"true\"\n className={cls(\"data-table-measure-row\")}\n style={{ height: \"0px\", fontSize: \"0px\" }}\n >\n {table.getHeaderGroups()[0]?.headers.map((header: Header<RecordType, unknown>) => (\n <td\n key={header.id}\n className={cls(\"data-table-measure-cell\")}\n style={{\n padding: \"0px\",\n border: \"0px\",\n height: \"0px\",\n width:\n header.id === \"select\"\n ? 32\n : (header.column.columnDef.meta as ExtendedColumnMeta)?.width,\n }}\n >\n <div className={cls(\"data-table-measure-cell-content\")}> </div>\n </td>\n ))}\n </tr>\n\n {dataSource.length === 0 ? (\n <tr className={cls(\"data-table-placeholder\")}>\n <td colSpan={table.getHeaderGroups()[0]?.headers.length || 1}>\n <Empty description={emptyDescription} />\n </td>\n </tr>\n ) : (\n table.getRowModel().rows.map((row: Row<RecordType>) => {\n const rowProps = onRow?.(row.original, row.index);\n return (\n <tr\n key={row.id}\n {...rowProps}\n className={clsx(\n cls(\"data-table-row\"),\n cls(\"data-table-row-level-0\"),\n row.getIsSelected() ? cls(\"data-table-row-selected\") : \"\",\n rowProps?.className,\n )}\n data-row-key={row.id}\n data-selectable={hasRowSelection ? \"true\" : \"false\"}\n onClick={(e) => {\n rowProps?.onClick?.(e as unknown as React.MouseEvent<HTMLElement>);\n onRowClick?.(row, e);\n }}\n >\n {row.getVisibleCells().map((cell: Cell<RecordType, unknown>) => (\n <td\n key={cell.id}\n className={clsx(\n cls(\"data-table-cell\"),\n cell.column.id === \"select\" ? cls(\"data-table-selection-column\") : \"\",\n getAlignmentClass((cell.column.columnDef.meta as ExtendedColumnMeta)?.align),\n )}\n >\n {cell.column.id === \"select\"\n ? // Handle selection column cells\n (() => {\n const record = cell.row.original;\n const checkboxProps = rowSelectionConfig?.getCheckboxProps?.(record) || {};\n\n if (rowSelectionConfig?.type === \"radio\") {\n return (\n <Radio\n checked={cell.row.getIsSelected()}\n disabled={!cell.row.getCanSelect()}\n onChange={(e: RadioChangeEvent) => {\n cell.row.toggleSelected(e.target.checked);\n if (rowSelectionConfig.onSelect) {\n const { selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey,\n );\n rowSelectionConfig.onSelect(\n record,\n e.target.checked,\n selectedRows,\n e.nativeEvent,\n );\n }\n }}\n {...checkboxProps}\n />\n );\n }\n\n return (\n <Checkbox\n checked={cell.row.getIsSelected()}\n disabled={!cell.row.getCanSelect()}\n onChange={(e: CheckboxChangeEvent) => {\n cell.row.toggleSelected(e.target.checked);\n if (rowSelectionConfig?.onSelect) {\n const { selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey,\n );\n rowSelectionConfig.onSelect(\n record,\n e.target.checked,\n selectedRows,\n e.nativeEvent,\n );\n }\n }}\n {...checkboxProps}\n />\n );\n })()\n : flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))}\n </tr>\n );\n })\n )}\n </tbody>\n );\n};\n"],"names":["TableBody","table","dataSource","emptyDescription","hasRowSelection","onRowClick","rowSelectionConfig","rowKey","onRow","cls","useCls","jsxs","jsx","header","Empty","row","rowProps","clsx","cell","getAlignmentClass","record","checkboxProps","Radio","e","selectedRows","convertSelectionToAntFormat","Checkbox","flexRender"],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Table } from '@tanstack/react-table';
|
|
2
2
|
import { DataTableRowSelection, RowKey } from '../types';
|
|
3
|
+
import { TableProps as AntTableProps } from 'antd/es/table';
|
|
3
4
|
interface TableHeaderProps<RecordType extends Record<string, any> = Record<string, unknown>> {
|
|
4
5
|
table: Table<RecordType>;
|
|
5
6
|
rowSelectionConfig?: DataTableRowSelection<RecordType>;
|
|
6
7
|
dataSource?: RecordType[];
|
|
7
8
|
rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey);
|
|
9
|
+
onHeaderRow?: AntTableProps<RecordType>['onHeaderRow'];
|
|
8
10
|
}
|
|
9
|
-
export declare const TableHeader: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, rowSelectionConfig, dataSource, rowKey, }: TableHeaderProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const TableHeader: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, rowSelectionConfig, dataSource, rowKey, onHeaderRow, }: TableHeaderProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=TableHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,KAAK,EAAiC,MAAM,uBAAuB,CAAC;AAM9F,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TableHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,KAAK,EAAiC,MAAM,uBAAuB,CAAC;AAM9F,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAUjE,UAAU,gBAAgB,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACnE,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;CACxD;AAED,eAAO,MAAM,WAAW,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iEAM3F,gBAAgB,CAAC,UAAU,CAAC,4CAyK9B,CAAC"}
|