@bioturing/components 0.46.4 → 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.
Files changed (139) hide show
  1. package/dist/components/base-menu/component.js +19 -21
  2. package/dist/components/base-menu/component.js.map +1 -1
  3. package/dist/components/base-menu/index.d.ts +1 -1
  4. package/dist/components/base-menu/index.d.ts.map +1 -1
  5. package/dist/components/base-menu/index.js +12 -7
  6. package/dist/components/base-menu/index.js.map +1 -1
  7. package/dist/components/base-menu/item.css +1 -1
  8. package/dist/components/base-menu/item.d.ts +13 -2
  9. package/dist/components/base-menu/item.d.ts.map +1 -1
  10. package/dist/components/base-menu/item.js +62 -47
  11. package/dist/components/base-menu/item.js.map +1 -1
  12. package/dist/components/base-menu/style.css +1 -1
  13. package/dist/components/checkbox/component.d.ts +2 -2
  14. package/dist/components/checkbox/component.d.ts.map +1 -1
  15. package/dist/components/checkbox/component.js.map +1 -1
  16. package/dist/components/choice-list/component.js +12 -12
  17. package/dist/components/combobox/component.d.ts.map +1 -1
  18. package/dist/components/combobox/component.js +121 -121
  19. package/dist/components/combobox/component.js.map +1 -1
  20. package/dist/components/combobox/style.css +1 -1
  21. package/dist/components/data-table/component.d.ts.map +1 -1
  22. package/dist/components/data-table/component.js +99 -79
  23. package/dist/components/data-table/component.js.map +1 -1
  24. package/dist/components/data-table/components/TableBody.d.ts +3 -2
  25. package/dist/components/data-table/components/TableBody.d.ts.map +1 -1
  26. package/dist/components/data-table/components/TableBody.js +106 -89
  27. package/dist/components/data-table/components/TableBody.js.map +1 -1
  28. package/dist/components/data-table/components/TableHeader.d.ts +3 -1
  29. package/dist/components/data-table/components/TableHeader.d.ts.map +1 -1
  30. package/dist/components/data-table/components/TableHeader.js +121 -93
  31. package/dist/components/data-table/components/TableHeader.js.map +1 -1
  32. package/dist/components/data-table/components/TablePagination.d.ts.map +1 -1
  33. package/dist/components/data-table/components/TablePagination.js +36 -31
  34. package/dist/components/data-table/components/TablePagination.js.map +1 -1
  35. package/dist/components/data-table/hooks.d.ts.map +1 -1
  36. package/dist/components/data-table/hooks.js +98 -83
  37. package/dist/components/data-table/hooks.js.map +1 -1
  38. package/dist/components/data-table/style.css +1 -1
  39. package/dist/components/data-table/types.d.ts +1 -1
  40. package/dist/components/data-table/types.d.ts.map +1 -1
  41. package/dist/components/data-table/utils.js +37 -30
  42. package/dist/components/data-table/utils.js.map +1 -1
  43. package/dist/components/data-table/variant-minimal.css +1 -0
  44. package/dist/components/data-table/variant-zebra.css +1 -0
  45. package/dist/components/dialog/Dialog.js +46 -46
  46. package/dist/components/dialog/Dialog.js.map +1 -1
  47. package/dist/components/dialog/dialog.css +1 -1
  48. package/dist/components/dropdown-menu/component.d.ts.map +1 -1
  49. package/dist/components/dropdown-menu/component.js +121 -144
  50. package/dist/components/dropdown-menu/component.js.map +1 -1
  51. package/dist/components/dropdown-menu/index.d.ts +2 -0
  52. package/dist/components/dropdown-menu/index.d.ts.map +1 -1
  53. package/dist/components/dropdown-menu/item.d.ts +7 -15
  54. package/dist/components/dropdown-menu/item.d.ts.map +1 -1
  55. package/dist/components/dropdown-menu/item.js +132 -81
  56. package/dist/components/dropdown-menu/item.js.map +1 -1
  57. package/dist/components/dropdown-menu/radio-group.d.ts +14 -0
  58. package/dist/components/dropdown-menu/radio-group.d.ts.map +1 -0
  59. package/dist/components/dropdown-menu/radio-group.js +45 -0
  60. package/dist/components/dropdown-menu/radio-group.js.map +1 -0
  61. package/dist/components/dropdown-menu/search-mode.d.ts +4 -0
  62. package/dist/components/dropdown-menu/search-mode.d.ts.map +1 -0
  63. package/dist/components/dropdown-menu/search-mode.js +6 -0
  64. package/dist/components/dropdown-menu/search-mode.js.map +1 -0
  65. package/dist/components/dropdown-menu/style.css +1 -1
  66. package/dist/components/dropdown-menu/submenu.d.ts +25 -0
  67. package/dist/components/dropdown-menu/submenu.d.ts.map +1 -0
  68. package/dist/components/dropdown-menu/submenu.js +96 -0
  69. package/dist/components/dropdown-menu/submenu.js.map +1 -0
  70. package/dist/components/dropdown-menu/types.d.ts +85 -12
  71. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  72. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +4 -8
  73. package/dist/components/dropdown-menu/useDropdownMenu.d.ts.map +1 -1
  74. package/dist/components/dropdown-menu/useDropdownMenu.js +108 -81
  75. package/dist/components/dropdown-menu/useDropdownMenu.js.map +1 -1
  76. package/dist/components/form/FormItem/ItemHolder.d.ts +6 -5
  77. package/dist/components/form/FormItem/ItemHolder.d.ts.map +1 -1
  78. package/dist/components/form/FormItem/ItemHolder.js +32 -29
  79. package/dist/components/form/FormItem/ItemHolder.js.map +1 -1
  80. package/dist/components/form/FormItem/index.d.ts +6 -0
  81. package/dist/components/form/FormItem/index.d.ts.map +1 -1
  82. package/dist/components/form/FormItem/index.js +138 -127
  83. package/dist/components/form/FormItem/index.js.map +1 -1
  84. package/dist/components/form/FormValidationContext.d.ts +5 -0
  85. package/dist/components/form/FormValidationContext.d.ts.map +1 -0
  86. package/dist/components/form/FormValidationContext.js +7 -0
  87. package/dist/components/form/FormValidationContext.js.map +1 -0
  88. package/dist/components/form/component.d.ts +6 -1
  89. package/dist/components/form/component.d.ts.map +1 -1
  90. package/dist/components/form/component.js +30 -20
  91. package/dist/components/form/component.js.map +1 -1
  92. package/dist/components/form/formValidationRule.d.ts +19 -0
  93. package/dist/components/form/formValidationRule.d.ts.map +1 -0
  94. package/dist/components/form/formValidationRule.js +22 -0
  95. package/dist/components/form/formValidationRule.js.map +1 -0
  96. package/dist/components/form/index.d.ts +2 -0
  97. package/dist/components/form/index.d.ts.map +1 -1
  98. package/dist/components/form/useFormValidation.d.ts +3 -0
  99. package/dist/components/form/useFormValidation.d.ts.map +1 -0
  100. package/dist/components/form/useFormValidation.js +18 -0
  101. package/dist/components/form/useFormValidation.js.map +1 -0
  102. package/dist/components/index.d.ts +2 -0
  103. package/dist/components/index.d.ts.map +1 -1
  104. package/dist/components/keyboard-shortcut/component.d.ts +2 -0
  105. package/dist/components/keyboard-shortcut/component.d.ts.map +1 -1
  106. package/dist/components/keyboard-shortcut/component.js +69 -49
  107. package/dist/components/keyboard-shortcut/component.js.map +1 -1
  108. package/dist/components/modal/Modal.d.ts +1 -1
  109. package/dist/components/modal/Modal.js +9 -9
  110. package/dist/components/modal/Modal.js.map +1 -1
  111. package/dist/components/modal/style.css +1 -1
  112. package/dist/components/select/component.js +29 -29
  113. package/dist/components/select/component.js.map +1 -1
  114. package/dist/components/theme-provider/component.d.ts +3 -1
  115. package/dist/components/theme-provider/component.d.ts.map +1 -1
  116. package/dist/components/theme-provider/component.js +32 -31
  117. package/dist/components/theme-provider/component.js.map +1 -1
  118. package/dist/components/theme-provider/context/index.d.ts +2 -1
  119. package/dist/components/theme-provider/context/index.d.ts.map +1 -1
  120. package/dist/components/theme-provider/context/provider.d.ts +2 -3
  121. package/dist/components/theme-provider/context/provider.d.ts.map +1 -1
  122. package/dist/components/theme-provider/context/provider.js +13 -6
  123. package/dist/components/theme-provider/context/provider.js.map +1 -1
  124. package/dist/components/theme-provider/context/themeStore.d.ts +15 -0
  125. package/dist/components/theme-provider/context/themeStore.d.ts.map +1 -1
  126. package/dist/components/theme-provider/context/themeStore.js +10 -9
  127. package/dist/components/theme-provider/context/themeStore.js.map +1 -1
  128. package/dist/components/theme-provider/style.css +1 -1
  129. package/dist/components/tooltip/component.d.ts.map +1 -1
  130. package/dist/components/tooltip/component.js +23 -12
  131. package/dist/components/tooltip/component.js.map +1 -1
  132. package/dist/index.js +273 -258
  133. package/dist/index.js.map +1 -1
  134. package/dist/metadata.d.ts +9 -0
  135. package/dist/metadata.d.ts.map +1 -1
  136. package/dist/metadata.js +14 -0
  137. package/dist/metadata.js.map +1 -1
  138. package/dist/stats.html +1 -1
  139. package/package.json +6 -6
@@ -1,117 +1,137 @@
1
1
  "use client";
2
- import { jsx as t, jsxs as p } from "react/jsx-runtime";
3
- import { forwardRef as y, useRef as u, useState as H, useEffect as N } from "react";
4
- import { Spin as W } from "../spin/component.js";
5
- import { useDataTable as P } from "./hooks.js";
6
- import { convertSelectionToAntFormat as k } from "./utils.js";
7
- import './style.css';/* empty css */
8
- import { TableHeader as I } from "./components/TableHeader.js";
9
- import { TableBody as j } from "./components/TableBody.js";
10
- import { TablePagination as A } from "./components/TablePagination.js";
11
- import { useCls as E, useAntdCssVarClassname as F } from "../utils/antdUtils.js";
12
- import { clsx as h } from "../utils/cn.js";
13
- const $ = (s, G) => {
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
+ import './variant-minimal.css';import './variant-zebra.css';import './style.css';/* empty css */
8
+ /* empty css */
9
+ /* empty css */
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) => {
14
16
  const {
15
17
  dataSource: i = [],
16
- className: b,
17
- size: g = "large",
18
- variant: S = "default",
19
- emptyDescription: w,
20
- rowKey: c
21
- } = s, e = E(), v = u(null), {
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), {
22
27
  table: a,
23
- isLoading: C,
24
- spinProps: R,
25
- hasRowSelection: m,
26
- hasPagination: d,
27
- paginationConfig: z,
28
- rowSelectionConfig: n
29
- } = P(s), T = (l) => {
30
- if (m && (l.toggleSelected(), n?.onSelect)) {
31
- const { selectedRows: r } = k(
32
- a.getState().rowSelection,
33
- i,
34
- c
35
- );
36
- n.onSelect(
37
- l.original,
38
- !l.getIsSelected(),
39
- r,
40
- new Event("click")
41
- );
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();
42
53
  }
43
- }, D = F(), o = u(null), [f, x] = H({
54
+ }, n = y(null), [b, I] = B({
44
55
  vertical: !1,
45
56
  horizontal: !1
46
- });
47
- return N(() => {
48
- o.current && x({
49
- vertical: o.current.scrollHeight > o.current.clientHeight,
50
- horizontal: o.current.scrollWidth > o.current.clientWidth
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
51
62
  });
52
- }, [i]), /* @__PURE__ */ t(
63
+ }, [i]), w(() => {
64
+ if (!d || typeof document > "u") return;
65
+ const t = document.body.style.cursor, l = document.body.style.userSelect;
66
+ return document.body.style.cursor = "col-resize", document.body.style.userSelect = "none", () => {
67
+ document.body.style.cursor = t, document.body.style.userSelect = l;
68
+ };
69
+ }, [d]), /* @__PURE__ */ o(
53
70
  "div",
54
71
  {
55
- ref: v,
56
- className: h(
57
- e("table-wrapper", "data-table"),
58
- e(`table-${g}`),
59
- S === "zebra" ? e("table-zebra") : "",
60
- d ? e("table-has-pagination") : "",
61
- f.vertical ? e("table-scroll-vertical") : "",
62
- f.horizontal ? e("table-scroll-horizontal") : "",
63
- D,
64
- b
72
+ ref: x,
73
+ className: M(
74
+ e("data-table-wrapper"),
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") : "",
79
+ b.vertical ? e("data-table-scroll-vertical") : "",
80
+ b.horizontal ? e("data-table-scroll-horizontal") : "",
81
+ d ? e("data-table-resizing") : "",
82
+ z
65
83
  ),
66
- children: /* @__PURE__ */ p(W, { spinning: C, ...R, children: [
67
- /* @__PURE__ */ t("div", { className: h(e("table")), children: /* @__PURE__ */ t("div", { className: e("table-container"), ref: o, children: /* @__PURE__ */ t("div", { className: e("table-content"), children: /* @__PURE__ */ p("table", { children: [
68
- /* @__PURE__ */ t("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((l) => {
69
- let r;
70
- if (l.id === "select")
71
- r = n?.columnWidth || 32;
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: [
86
+ /* @__PURE__ */ o("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((t) => {
87
+ let l;
88
+ if (t.id === "select")
89
+ l = r?.columnWidth || 32;
72
90
  else
73
91
  try {
74
- r = `${l.getSize()}px`;
92
+ l = `${t.getSize()}px`;
75
93
  } catch {
76
- r = l.column.columnDef.meta?.width;
94
+ l = t.column.columnDef.meta?.width;
77
95
  }
78
- return /* @__PURE__ */ t("col", { style: { width: r } }, l.id);
96
+ return /* @__PURE__ */ o("col", { style: { width: l } }, t.id);
79
97
  }) }),
80
- /* @__PURE__ */ t(
81
- I,
98
+ /* @__PURE__ */ o(
99
+ A,
82
100
  {
83
101
  table: a,
84
- rowSelectionConfig: n,
102
+ rowSelectionConfig: r,
85
103
  dataSource: i,
86
- rowKey: c
104
+ rowKey: c,
105
+ onHeaderRow: C
87
106
  }
88
107
  ),
89
- /* @__PURE__ */ t(
90
- j,
108
+ /* @__PURE__ */ o(
109
+ G,
91
110
  {
92
111
  table: a,
93
112
  dataSource: i,
94
- emptyDescription: w,
95
- hasRowSelection: m,
96
- onRowClick: T,
97
- rowSelectionConfig: n,
98
- 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
99
119
  }
100
120
  )
101
121
  ] }) }) }) }),
102
- d && /* @__PURE__ */ t(
103
- A,
122
+ p && /* @__PURE__ */ o(
123
+ K,
104
124
  {
105
125
  table: a,
106
- paginationConfig: z,
126
+ paginationConfig: N,
107
127
  totalCount: a.getPreFilteredRowModel().rows.length
108
128
  }
109
129
  )
110
130
  ] })
111
131
  }
112
132
  );
113
- }, B = y($), _ = B;
133
+ }, q = k(U), re = q;
114
134
  export {
115
- _ as DataTable
135
+ re as DataTable
116
136
  };
117
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, useAntdCssVarClassname, 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 { useToken } from \"../hooks\";\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 antdClass = useAntdCssVarClassname();\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const [hasScroll, setHasScroll] = useState({\n vertical: false,\n horizontal: false,\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 return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"table-wrapper\", \"data-table\"),\n cls(`table-${size}`),\n variant === \"zebra\" ? cls(\"table-zebra\") : \"\",\n hasPagination ? cls(\"table-has-pagination\") : \"\",\n hasScroll.vertical ? cls(\"table-scroll-vertical\") : \"\",\n hasScroll.horizontal ? cls(\"table-scroll-horizontal\") : \"\",\n antdClass,\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={clsx(cls(\"table\"))}>\n <div className={cls(\"table-container\")} ref={tableContainerRef}>\n <div className={cls(\"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","antdClass","useAntdCssVarClassname","tableContainerRef","hasScroll","setHasScroll","useState","useEffect","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>) => void;
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;AAKjG,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;IAC5C,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;CACpE;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,kGAQzF,cAAc,CAAC,UAAU,CAAC,4CAkH5B,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,114 +1,131 @@
1
- import { jsxs as x, jsx as t } from "react/jsx-runtime";
2
- import { flexRender as f } from "@tanstack/react-table";
3
- import { Checkbox as k } from "antd";
4
- import { convertSelectionToAntFormat as h, getAlignmentClass as w } from "../utils.js";
5
- import { Empty as S } from "../../empty/component.js";
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
6
  import { useCls as y } from "../../utils/antdUtils.js";
7
- import { clsx as g } from "../../utils/cn.js";
8
- const j = ({
7
+ import { clsx as p } from "../../utils/cn.js";
8
+ import { Checkbox as C } from "../../checkbox/component.js";
9
+ const H = ({
9
10
  table: c,
10
- dataSource: a,
11
- emptyDescription: p,
11
+ dataSource: s,
12
+ emptyDescription: u,
12
13
  hasRowSelection: b,
13
- onRowClick: u,
14
- rowSelectionConfig: s,
15
- rowKey: m
14
+ onRowClick: x,
15
+ rowSelectionConfig: r,
16
+ rowKey: m,
17
+ onRow: f
16
18
  }) => {
17
- const d = y();
18
- return /* @__PURE__ */ x("tbody", { className: d("table-tbody"), children: [
19
- /* @__PURE__ */ t(
19
+ const a = y();
20
+ return /* @__PURE__ */ k("tbody", { className: a("data-table-tbody"), children: [
21
+ /* @__PURE__ */ o(
20
22
  "tr",
21
23
  {
22
24
  "aria-hidden": "true",
23
- className: d("table-measure-row"),
25
+ className: a("data-table-measure-row"),
24
26
  style: { height: "0px", fontSize: "0px" },
25
- children: c.getHeaderGroups()[0]?.headers.map((o) => /* @__PURE__ */ t(
27
+ children: c.getHeaderGroups()[0]?.headers.map((t) => /* @__PURE__ */ o(
26
28
  "td",
27
29
  {
30
+ className: a("data-table-measure-cell"),
28
31
  style: {
29
32
  padding: "0px",
30
33
  border: "0px",
31
34
  height: "0px",
32
- width: o.id === "select" ? 32 : o.column.columnDef.meta?.width
35
+ width: t.id === "select" ? 32 : t.column.columnDef.meta?.width
33
36
  },
34
- children: /* @__PURE__ */ t("div", { style: { height: "0px", overflow: "hidden" }, children: " " })
37
+ children: /* @__PURE__ */ o("div", { className: a("data-table-measure-cell-content"), children: " " })
35
38
  },
36
- o.id
39
+ t.id
37
40
  ))
38
41
  }
39
42
  ),
40
- a.length === 0 ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan: c.getHeaderGroups()[0]?.headers.length || 1, children: /* @__PURE__ */ t(S, { description: p }) }) }) : c.getRowModel().rows.map((o) => /* @__PURE__ */ t(
41
- "tr",
42
- {
43
- className: g(
44
- d("table-row"),
45
- d("table-row-level-0"),
46
- o.getIsSelected() ? d("table-row-selected") : ""
47
- ),
48
- "data-row-key": o.id,
49
- "data-selectable": b ? "true" : "false",
50
- onClick: () => u?.(o),
51
- children: o.getVisibleCells().map((e) => /* @__PURE__ */ t(
52
- "td",
53
- {
54
- className: g(
55
- d("table-cell"),
56
- e.column.id === "select" ? d("table-selection-column") : "",
57
- w(e.column.columnDef.meta?.align)
58
- ),
59
- children: e.column.id === "select" ? (
60
- // Handle selection column cells
61
- (() => {
62
- const l = e.row.original, n = s?.getCheckboxProps?.(l) || {};
63
- return s?.type === "radio" ? /* @__PURE__ */ t(
64
- "input",
65
- {
66
- type: "radio",
67
- name: "table-radio",
68
- checked: e.row.getIsSelected(),
69
- disabled: !e.row.getCanSelect(),
70
- onChange: (r) => {
71
- if (e.row.toggleSelected(r.target.checked), s.onSelect) {
72
- const { selectedRows: i } = h(
73
- c.getState().rowSelection,
74
- a,
75
- m
76
- );
77
- s.onSelect(l, r.target.checked, i, r.nativeEvent);
78
- }
79
- },
80
- disabled: n.disabled,
81
- className: n.className
82
- }
83
- ) : /* @__PURE__ */ t(
84
- k,
85
- {
86
- checked: e.row.getIsSelected(),
87
- disabled: !e.row.getCanSelect(),
88
- onChange: (r) => {
89
- if (e.row.toggleSelected(r.target.checked), s?.onSelect) {
90
- const { selectedRows: i } = h(
91
- c.getState().rowSelection,
92
- a,
93
- m
94
- );
95
- s.onSelect(l, r.target.checked, i, r.nativeEvent);
96
- }
97
- },
98
- ...n
99
- }
100
- );
101
- })()
102
- ) : 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);
103
59
  },
104
- e.id
105
- ))
106
- },
107
- o.id
108
- ))
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
+ })
109
126
  ] });
110
127
  };
111
128
  export {
112
- j as TableBody
129
+ H as TableBody
113
130
  };
114
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 \"antd\";\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(\"table-tbody\")}>\n {/* Measure row for Ant Design compatibility */}\n <tr \n aria-hidden=\"true\" \n className={cls(\"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 style={{ \n padding: \"0px\", \n border: \"0px\", \n height: \"0px\",\n width: header.id === 'select' ? 32 : (header.column.columnDef.meta as ExtendedColumnMeta)?.width\n }}\n >\n <div style={{ height: \"0px\", overflow: \"hidden\" }}>\n &nbsp;\n </div>\n </td>\n ))}\n </tr>\n \n {dataSource.length === 0 ? (\n <tr>\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(\"table-row\"),\n cls(\"table-row-level-0\"),\n row.getIsSelected() ? cls(\"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(\"table-cell\"),\n cell.column.id === 'select' ? cls(\"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 <input\n type=\"radio\"\n name=\"table-radio\"\n checked={cell.row.getIsSelected()}\n disabled={!cell.row.getCanSelect()}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\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(record, e.target.checked, selectedRows, e.nativeEvent);\n }\n }}\n {...({ disabled: checkboxProps.disabled, className: checkboxProps.className } as React.InputHTMLAttributes<HTMLInputElement>)}\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(record, e.target.checked, selectedRows, e.nativeEvent);\n }\n }}\n {...checkboxProps}\n />\n );\n })()\n ) : (\n flexRender(cell.column.columnDef.cell, cell.getContext())\n )}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n );\n};"],"names":["TableBody","table","dataSource","emptyDescription","hasRowSelection","onRowClick","rowSelectionConfig","rowKey","cls","useCls","jsxs","jsx","header","Empty","row","clsx","cell","getAlignmentClass","record","checkboxProps","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\")}>&nbsp;</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":";;;;;;;;AA6BO,MAAMA,IAAY,CAAmE;AAAA,EAC1F,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AACF,MAAkC;AAChC,QAAMC,IAAMC,EAAA;AAEZ,SACE,gBAAAC,EAAC,SAAA,EAAM,WAAWF,EAAI,kBAAkB,GAEtC,UAAA;AAAA,IAAA,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAWH,EAAI,wBAAwB;AAAA,QACvC,OAAO,EAAE,QAAQ,OAAO,UAAU,MAAA;AAAA,QAEjC,UAAAR,EAAM,kBAAkB,CAAC,GAAG,QAAQ,IAAI,CAACY,MACxC,gBAAAD;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAWH,EAAI,yBAAyB;AAAA,YACxC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,OACEI,EAAO,OAAO,WACV,KACCA,EAAO,OAAO,UAAU,MAA6B;AAAA,YAAA;AAAA,YAG9D,4BAAC,OAAA,EAAI,WAAWJ,EAAI,iCAAiC,GAAG,UAAA,IAAA,CAAM;AAAA,UAAA;AAAA,UAZzDI,EAAO;AAAA,QAAA,CAcf;AAAA,MAAA;AAAA,IAAA;AAAA,IAGFX,EAAW,WAAW,IACrB,gBAAAU,EAAC,QAAG,WAAWH,EAAI,wBAAwB,GACzC,UAAA,gBAAAG,EAAC,MAAA,EAAG,SAASX,EAAM,kBAAkB,CAAC,GAAG,QAAQ,UAAU,GACzD,UAAA,gBAAAW,EAACE,GAAA,EAAM,aAAaX,EAAA,CAAkB,EAAA,CACxC,EAAA,CACF,IAEAF,EAAM,YAAA,EAAc,KAAK,IAAI,CAACc,MAAyB;AACrD,YAAMC,IAAWR,IAAQO,EAAI,UAAUA,EAAI,KAAK;AAChD,aACE,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UAEE,GAAGI;AAAA,UACJ,WAAWC;AAAA,YACTR,EAAI,gBAAgB;AAAA,YACpBA,EAAI,wBAAwB;AAAA,YAC5BM,EAAI,cAAA,IAAkBN,EAAI,yBAAyB,IAAI;AAAA,YACvDO,GAAU;AAAA,UAAA;AAAA,UAEZ,gBAAcD,EAAI;AAAA,UAClB,mBAAiBX,IAAkB,SAAS;AAAA,UAC5C,SAAS,CAAC,MAAM;AACd,YAAAY,GAAU,UAAU,CAA6C,GACjEX,IAAaU,GAAK,CAAC;AAAA,UACrB;AAAA,UAED,UAAAA,EAAI,gBAAA,EAAkB,IAAI,CAACG,MAC1B,gBAAAN;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAWK;AAAA,gBACTR,EAAI,iBAAiB;AAAA,gBACrBS,EAAK,OAAO,OAAO,WAAWT,EAAI,6BAA6B,IAAI;AAAA,gBACnEU,EAAmBD,EAAK,OAAO,UAAU,MAA6B,KAAK;AAAA,cAAA;AAAA,cAG5E,UAAAA,EAAK,OAAO,OAAO;AAAA;AAAA,iBAEf,MAAM;AACL,wBAAME,IAASF,EAAK,IAAI,UAClBG,IAAgBf,GAAoB,mBAAmBc,CAAM,KAAK,CAAA;AAExE,yBAAId,GAAoB,SAAS,UAE7B,gBAAAM;AAAA,oBAACU;AAAA,oBAAA;AAAA,sBACC,SAASJ,EAAK,IAAI,cAAA;AAAA,sBAClB,UAAU,CAACA,EAAK,IAAI,aAAA;AAAA,sBACpB,UAAU,CAACK,MAAwB;AAEjC,4BADAL,EAAK,IAAI,eAAeK,EAAE,OAAO,OAAO,GACpCjB,EAAmB,UAAU;AAC/B,gCAAM,EAAE,cAAAkB,MAAiBC;AAAA,4BACvBxB,EAAM,WAAW;AAAA,4BACjBC;AAAA,4BACAK;AAAA,0BAAA;AAEF,0BAAAD,EAAmB;AAAA,4BACjBc;AAAA,4BACAG,EAAE,OAAO;AAAA,4BACTC;AAAA,4BACAD,EAAE;AAAA,0BAAA;AAAA,wBAEN;AAAA,sBACF;AAAA,sBACC,GAAGF;AAAA,oBAAA;AAAA,kBAAA,IAMR,gBAAAT;AAAA,oBAACc;AAAA,oBAAA;AAAA,sBACC,SAASR,EAAK,IAAI,cAAA;AAAA,sBAClB,UAAU,CAACA,EAAK,IAAI,aAAA;AAAA,sBACpB,UAAU,CAACK,MAA2B;AAEpC,4BADAL,EAAK,IAAI,eAAeK,EAAE,OAAO,OAAO,GACpCjB,GAAoB,UAAU;AAChC,gCAAM,EAAE,cAAAkB,MAAiBC;AAAA,4BACvBxB,EAAM,WAAW;AAAA,4BACjBC;AAAA,4BACAK;AAAA,0BAAA;AAEF,0BAAAD,EAAmB;AAAA,4BACjBc;AAAA,4BACAG,EAAE,OAAO;AAAA,4BACTC;AAAA,4BACAD,EAAE;AAAA,0BAAA;AAAA,wBAEN;AAAA,sBACF;AAAA,sBACC,GAAGF;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAGV,GAAA;AAAA,kBACAM,EAAWT,EAAK,OAAO,UAAU,MAAMA,EAAK,YAAY;AAAA,YAAA;AAAA,YA/DvDA,EAAK;AAAA,UAAA,CAiEb;AAAA,QAAA;AAAA,QAlFMH,EAAI;AAAA,MAAA;AAAA,IAqFjB,CAAC;AAAA,EAAA,GAEH;AAEJ;"}
@@ -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;AAUnE,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;CACpE;AAED,eAAO,MAAM,WAAW,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,mDAK3F,gBAAgB,CAAC,UAAU,CAAC,4CA+H9B,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"}