dishui 0.0.64 → 0.0.65

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 (177) hide show
  1. package/dist/components/Badge/index.js +12 -9
  2. package/dist/components/Badge/index.js.map +1 -1
  3. package/dist/components/Button/index.js +43 -40
  4. package/dist/components/Button/index.js.map +1 -1
  5. package/dist/components/Card/index.d.ts +11 -0
  6. package/dist/components/Card/index.js +62 -37
  7. package/dist/components/Card/index.js.map +1 -1
  8. package/dist/components/Chart/Chart.js.map +1 -1
  9. package/dist/components/Checkbox/index.js +32 -30
  10. package/dist/components/Checkbox/index.js.map +1 -1
  11. package/dist/components/Demo/index.js.map +1 -1
  12. package/dist/components/EmptyState/index.d.ts +4 -1
  13. package/dist/components/EmptyState/index.js +3 -3
  14. package/dist/components/EmptyState/index.js.map +1 -1
  15. package/dist/components/FileUploader/DropZone.js.map +1 -1
  16. package/dist/components/FileUploader/FileItem.js.map +1 -1
  17. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  18. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  19. package/dist/components/Input/index.js +30 -30
  20. package/dist/components/Input/index.js.map +1 -1
  21. package/dist/components/Label/index.js +41 -40
  22. package/dist/components/Label/index.js.map +1 -1
  23. package/dist/components/List/index.js +47 -32
  24. package/dist/components/List/index.js.map +1 -1
  25. package/dist/components/Markdown/Markdown.js +61 -57
  26. package/dist/components/Markdown/Markdown.js.map +1 -1
  27. package/dist/components/Markdown/markdownComponents.js +49 -49
  28. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  29. package/dist/components/Modal/index.d.ts +7 -3
  30. package/dist/components/Modal/index.js +77 -65
  31. package/dist/components/Modal/index.js.map +1 -1
  32. package/dist/components/Page/index.d.ts +58 -0
  33. package/dist/components/Page/index.js +74 -0
  34. package/dist/components/Page/index.js.map +1 -0
  35. package/dist/components/PageHeader/index.js.map +1 -1
  36. package/dist/components/Select/index.js +0 -3
  37. package/dist/components/Select/index.js.map +1 -1
  38. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  39. package/dist/components/StatCard/index.d.ts +3 -1
  40. package/dist/components/StatCard/index.js +39 -11
  41. package/dist/components/StatCard/index.js.map +1 -1
  42. package/dist/components/Table/index.js +103 -85
  43. package/dist/components/Table/index.js.map +1 -1
  44. package/dist/components/Tabs/index.d.ts +19 -5
  45. package/dist/components/Tabs/index.js +32 -13
  46. package/dist/components/Tabs/index.js.map +1 -1
  47. package/dist/components/Tree/Tree.js.map +1 -1
  48. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  49. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  50. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +141 -134
  51. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  52. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +81 -78
  53. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  54. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  55. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  56. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  57. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  58. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  59. package/dist/components/pro/CodeEditor/themes.js +59 -59
  60. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  61. package/dist/components/pro/DataTable/DataTable.js +49 -48
  62. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  63. package/dist/components/pro/DataTable/Filters.js +42 -42
  64. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  65. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  66. package/dist/components/pro/DataTable/PivotView.js +35 -32
  67. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  68. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  69. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  70. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  71. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  72. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  73. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  74. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  75. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  76. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  77. package/dist/components/pro/DataTable/tanstack-table.js +37 -37
  78. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  79. package/dist/components/pro/FileExplorer/Breadcrumb.js +53 -53
  80. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  81. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  82. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  83. package/dist/components/pro/FileExplorer/FileIcon.js +22 -22
  84. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  85. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  86. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  87. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  88. package/dist/components/pro/Flow/Flow.js +496 -494
  89. package/dist/components/pro/Flow/Flow.js.map +1 -1
  90. package/dist/components/pro/Flow/FlowCanvas.js +916 -917
  91. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  92. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  93. package/dist/components/pro/Flow/edges/EdgeRenderer.js +59 -59
  94. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  95. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  96. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  97. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  98. package/dist/components/pro/Flow/hooks/useLayoutActions.js +9 -11
  99. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  100. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  101. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  102. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  103. package/dist/components/pro/Flow/lines/FreehandTool.js +9 -9
  104. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  105. package/dist/components/pro/Flow/lines/LineRenderer.js +5 -5
  106. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  107. package/dist/components/pro/Flow/nodes/DataNodeView.js +113 -93
  108. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  109. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  110. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  111. package/dist/components/pro/Flow/nodes/Model3DView.js +1 -1
  112. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  113. package/dist/components/pro/Flow/nodes/NodeRenderer.js +118 -118
  114. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  115. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  116. package/dist/components/pro/Flow/nodes/shapes.js +1 -3
  117. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  118. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  119. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  120. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  121. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  122. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  123. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  124. package/dist/components/pro/Flow/panels/FlowToolbar.js +97 -97
  125. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  126. package/dist/components/pro/Flow/panels/InspectorPanel.js +57 -57
  127. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  128. package/dist/components/pro/Flow/panels/OutlinePanel.js +26 -22
  129. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  130. package/dist/components/pro/Flow/panels/PresentationMode.js +18 -16
  131. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  132. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  133. package/dist/components/pro/Flow/panels/ShapePalette.js +109 -104
  134. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  135. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  136. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  137. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  138. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  139. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  140. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  141. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  142. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  143. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  144. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  145. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  146. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  147. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  148. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  149. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  150. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  151. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  152. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  153. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  154. package/dist/contexts/AppContext.js.map +1 -1
  155. package/dist/dishui.css +1 -1
  156. package/dist/hooks/useTableColumns.js +7 -8
  157. package/dist/hooks/useTableColumns.js.map +1 -1
  158. package/dist/index.d.ts +2 -0
  159. package/dist/index.js +227 -221
  160. package/dist/layouts/MainLayout.js +22 -22
  161. package/dist/layouts/MainLayout.js.map +1 -1
  162. package/dist/layouts/Navbar.js.map +1 -1
  163. package/dist/layouts/Sidebar.js +94 -73
  164. package/dist/layouts/Sidebar.js.map +1 -1
  165. package/dist/layouts/headbar/Headbar.js.map +1 -1
  166. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  167. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  168. package/dist/layouts/headbar/HeadbarThemeSwitcher.js +11 -11
  169. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  170. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  171. package/dist/utils/i18n.js +10 -10
  172. package/dist/utils/i18n.js.map +1 -1
  173. package/dist/utils/menu.js.map +1 -1
  174. package/dist/utils/routerBuilder.js +17 -15
  175. package/dist/utils/routerBuilder.js.map +1 -1
  176. package/dist/utils/themes.js.map +1 -1
  177. package/package.json +7 -7
@@ -1,39 +1,40 @@
1
- import Ge from "../../Table/index.js";
2
- import { useReactTable as Je } from "./tanstack-table.js";
3
- import { TableToolbar as Ke } from "./components/TableToolbar.js";
4
- import { TableHeader as Qe } from "./components/TableHeader.js";
5
- import { TableBody as Ue } from "./components/TableBody.js";
6
- import { TablePagination as Ze } from "./components/TablePagination.js";
1
+ import Je from "../../Table/index.js";
2
+ import { useReactTable as Ke } from "./tanstack-table.js";
3
+ import { TableToolbar as Qe } from "./components/TableToolbar.js";
4
+ import { TableHeader as Ue } from "./components/TableHeader.js";
5
+ import { TableBody as Ze } from "./components/TableBody.js";
6
+ import { TablePagination as et } from "./components/TablePagination.js";
7
7
  import { deepEqual as w, useControllableState as y } from "../../../hooks/useControllableState.js";
8
- import { createTreeSortingFns as et, findAllChildRowIds as tt, flattenTreeData as nt, treeRowAnimationStyles as ot } from "./treeDataUtils.js";
9
- import { useColumnDragReorder as rt } from "./useColumnDragReorder.js";
10
- import ae, { useCallback as A, useEffect as R, useMemo as g, useRef as lt, useState as V } from "react";
11
- import { Fragment as st, jsx as o, jsxs as P } from "react/jsx-runtime";
12
- function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, enableFiltering: it = !0, enablePagination: F = !0, enableSelection: X = !0, enableColumnReordering: Y = !0, enableColumnResizing: at = !0, manualFiltering: $ = !1, enableExpanding: l = !1, subDataKey: O = "subs", onRowExpand: ue, expandedRows: fe = {}, onExpandedRowsChange: me, getRowId: C, indentSize: he = 16, enableTreeSort: M = !0, toolbar: pe = {
8
+ import { createTreeSortingFns as tt, findAllChildRowIds as nt, flattenTreeData as ot, treeRowAnimationStyles as rt } from "./treeDataUtils.js";
9
+ import { useColumnDragReorder as lt } from "./useColumnDragReorder.js";
10
+ import ae, { useCallback as A, useEffect as R, useMemo as g, useRef as st, useState as V } from "react";
11
+ import { Fragment as it, jsx as o, jsxs as P } from "react/jsx-runtime";
12
+ function Ft({ data: a, columns: f, className: ce = "", enableSorting: de = !0, enableFiltering: at = !0, enablePagination: F = !0, enableSelection: X = !0, enableColumnReordering: Y = !0, enableColumnResizing: ct = !0, manualFiltering: $ = !1, enableExpanding: l = !1, subDataKey: O = "subs", onRowExpand: ue, expandedRows: fe = {}, onExpandedRowsChange: me, getRowId: C, indentSize: he = 16, enableTreeSort: M = !0, toolbar: pe = {
13
13
  enabled: !1,
14
14
  enableColumnSelector: !1,
15
15
  enableFiltering: !1,
16
16
  enableBulkActions: !1
17
- }, customFilterPanel: ge, onRowClick: Ce, onRowDoubleClick: ve, onRowMouseEnter: be, onRowMouseLeave: Se, onCellClick: we, onCellDoubleClick: ye, onCellMouseEnter: _e, onCellMouseLeave: Re, onColumnClick: ct, onColumnMouseEnter: Fe, onColumnMouseLeave: Me, onTableClick: dt, onTableMouseEnter: ut, onTableMouseLeave: ft, pageSize: x = 10, pageIndex: D = 0, onPageChange: T, onPageSizeChange: W, selectedRows: xe = {}, onRowSelectionChange: De, sortingState: Te = [], onSortingChange: ke, columnFilters: Ee = [], onColumnFiltersChange: Ie, columnVisibility: Ne = {}, onColumnVisibilityChange: Le, columnOrder: G = [], onColumnOrderChange: ze, extensions: m = [] }) {
18
- const [J, K] = y(Te, ke, w), [k, Ae] = y(xe, De, w), [Q, Ve] = y(Ee, Ie, w), [E, Oe] = y(Ne, Le, w), [v, U] = y(G, ze, w), [h, We] = y(fe, me, w), [je, Be] = V(null), j = lt(!1), { draggedColumnId: Z, handleDragStart: ee, handleDragOver: qe, handleDrop: te } = rt(v, U), ne = A((e) => {
17
+ }, customFilterPanel: ge, onRowClick: Ce, onRowDoubleClick: be, onRowMouseEnter: ve, onRowMouseLeave: Se, onCellClick: we, onCellDoubleClick: ye, onCellMouseEnter: _e, onCellMouseLeave: Re, onColumnClick: dt, onColumnMouseEnter: Fe, onColumnMouseLeave: Me, onTableClick: ut, onTableMouseEnter: ft, onTableMouseLeave: mt, pageSize: x = 10, pageIndex: D = 0, onPageChange: T, onPageSizeChange: W, selectedRows: xe = {}, onRowSelectionChange: De, sortingState: Te = [], onSortingChange: ke, columnFilters: Ee = [], onColumnFiltersChange: Ie, columnVisibility: Ne = {}, onColumnVisibilityChange: Le, columnOrder: G = [], onColumnOrderChange: ze, extensions: m = [] }) {
18
+ const [J, K] = y(Te, ke, w), [k, Ae] = y(xe, De, w), [Q, Ve] = y(Ee, Ie, w), [E, Oe] = y(Ne, Le, w), [b, U] = y(G, ze, w), [h, We] = y(fe, me, w), [je, Be] = V(null), j = st(!1), { draggedColumnId: Z, handleDragStart: ee, handleDragOver: qe, handleDrop: te } = lt(b, U), ne = A((e) => {
19
19
  K((t) => typeof e == "function" ? e(t) : e);
20
20
  }, [K]);
21
21
  R(() => {
22
- if (!j.current && f.length > 0) if (G.length === 0 && v.length === 0) {
23
- j.current = !0;
24
- const e = f.map((t) => "accessorKey" in t ? t.accessorKey : t.id);
25
- U(e);
26
- } else j.current = !0;
22
+ if (!j.current && f.length > 0)
23
+ if (G.length === 0 && b.length === 0) {
24
+ j.current = !0;
25
+ const e = f.map((t) => "accessorKey" in t ? t.accessorKey : t.id);
26
+ U(e);
27
+ } else j.current = !0;
27
28
  }, [f]);
28
29
  const He = (e, t) => {
29
30
  const n = !h[e], i = {
30
31
  ...h,
31
32
  [e]: n
32
33
  };
33
- n || tt(t, e, O, C).forEach((u) => {
34
+ n || nt(t, e, O, C).forEach((u) => {
34
35
  i[u] = !1;
35
36
  }), We(i), ue?.(t, n);
36
- }, I = A((e, t = 0, n = "", i = !0, u = [], r = !1) => nt(e, h, O, C, t, n, i, u, r), [
37
+ }, I = A((e, t = 0, n = "", i = !0, u = [], r = !1) => ot(e, h, O, C, t, n, i, u, r), [
37
38
  h,
38
39
  C,
39
40
  O
@@ -82,7 +83,7 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
82
83
  f,
83
84
  l,
84
85
  M
85
- ]), le = g(() => l && M ? et() : void 0, [l, M]), d = Je(g(() => ({
86
+ ]), le = g(() => l && M ? tt() : void 0, [l, M]), Pe = g(() => ({
86
87
  data: oe,
87
88
  columns: re,
88
89
  pageCount: Math.ceil(L.length / s),
@@ -93,7 +94,7 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
93
94
  rowSelection: k,
94
95
  columnFilters: Q,
95
96
  columnVisibility: E,
96
- columnOrder: v.length > 0 ? v : void 0,
97
+ columnOrder: b.length > 0 ? b : void 0,
97
98
  pagination: {
98
99
  pageIndex: c,
99
100
  pageSize: s
@@ -123,7 +124,7 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
123
124
  k,
124
125
  Q,
125
126
  E,
126
- v,
127
+ b,
127
128
  X,
128
129
  F,
129
130
  le,
@@ -134,11 +135,11 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
134
135
  T,
135
136
  W,
136
137
  L
137
- ])), _ = A((e, t) => {
138
+ ]), d = Ke(Pe), _ = A((e, t) => {
138
139
  if (C) return C(e, t);
139
140
  const n = e;
140
141
  return n && n.__id != null ? String(n.__id) : String(t);
141
- }, [C]), b = g(() => {
142
+ }, [C]), v = g(() => {
142
143
  const e = d.getSelectedRowModel().rows.map((t) => t.original);
143
144
  return {
144
145
  table: d,
@@ -160,7 +161,7 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
160
161
  window.removeEventListener("click", e), window.removeEventListener("scroll", e, !0);
161
162
  };
162
163
  }, [p]);
163
- const Pe = A((e, t, n, i) => {
164
+ const Xe = A((e, t, n, i) => {
164
165
  if (m.length === 0) return;
165
166
  const u = n?.id ?? "", r = {
166
167
  value: n?.id != null ? t[n.id] : void 0,
@@ -168,7 +169,7 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
168
169
  rowId: _(t, i),
169
170
  rowIndex: i,
170
171
  columnId: u
171
- }, S = m.flatMap(($e) => $e.contextMenu?.(r, b) ?? []);
172
+ }, S = m.flatMap((Ge) => Ge.contextMenu?.(r, v) ?? []);
172
173
  S.length && (e.preventDefault(), q({
173
174
  x: e.clientX,
174
175
  y: e.clientY,
@@ -177,48 +178,48 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
177
178
  }));
178
179
  }, [
179
180
  m,
180
- b,
181
+ v,
181
182
  _
182
183
  ]), se = m.map((e) => e.toolbar ? {
183
184
  name: e.name,
184
- node: e.toolbar(b)
185
+ node: e.toolbar(v)
185
186
  } : null).filter((e) => !!e && !!e.node), ie = m.map((e) => e.footer ? {
186
187
  name: e.name,
187
- node: e.footer(b)
188
+ node: e.footer(v)
188
189
  } : null).filter((e) => !!e && !!e.node);
189
190
  let H;
190
191
  for (const e of m) {
191
- const t = e.renderContent?.(b);
192
+ const t = e.renderContent?.(v);
192
193
  if (t !== void 0) {
193
194
  H = t;
194
195
  break;
195
196
  }
196
197
  }
197
- const Xe = (e) => {
198
+ const Ye = (e) => {
198
199
  c !== e && (z(e), T?.(e));
199
- }, Ye = (e) => {
200
+ }, $e = (e) => {
200
201
  d.getColumn(e)?.toggleVisibility();
201
202
  };
202
203
  return R(() => {
203
204
  const e = document.createElement("style");
204
- return e.textContent = ot, document.head.appendChild(e), () => {
205
+ return e.textContent = rt, document.head.appendChild(e), () => {
205
206
  document.head.removeChild(e);
206
207
  };
207
208
  }, []), /* @__PURE__ */ P("div", {
208
209
  className: `w-full ${ce}`,
209
210
  children: [
210
- /* @__PURE__ */ o(Ke, {
211
+ /* @__PURE__ */ o(Qe, {
211
212
  toolbar: pe,
212
213
  table: d,
213
214
  columns: f,
214
- columnOrderState: v,
215
+ columnOrderState: b,
215
216
  visibilityState: E,
216
217
  activeFilter: je,
217
218
  setActiveFilter: Be,
218
219
  customFilterPanel: ge,
219
220
  draggedColumnId: Z,
220
221
  handleDragStart: ee,
221
- toggleColumnVisibility: Ye,
222
+ toggleColumnVisibility: $e,
222
223
  rowSelection: k,
223
224
  data: a,
224
225
  enableColumnReordering: Y,
@@ -231,11 +232,11 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
231
232
  H !== void 0 ? /* @__PURE__ */ o("div", {
232
233
  className: "w-full",
233
234
  children: H
234
- }) : /* @__PURE__ */ P(st, { children: [/* @__PURE__ */ o("div", {
235
+ }) : /* @__PURE__ */ P(it, { children: [/* @__PURE__ */ o("div", {
235
236
  className: "overflow-x-auto",
236
- children: /* @__PURE__ */ P(Ge, {
237
+ children: /* @__PURE__ */ P(Je, {
237
238
  className: "table-sm w-full",
238
- children: [/* @__PURE__ */ o(Qe, {
239
+ children: [/* @__PURE__ */ o(Ue, {
239
240
  table: d,
240
241
  visibilityState: E,
241
242
  enableSorting: de,
@@ -246,12 +247,12 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
246
247
  handleDragStart: ee,
247
248
  handleDragOver: qe,
248
249
  handleDrop: te
249
- }), /* @__PURE__ */ o(Ue, {
250
+ }), /* @__PURE__ */ o(Ze, {
250
251
  table: d,
251
252
  expandedRowsState: h,
252
253
  onRowClick: Ce,
253
- onRowDoubleClick: ve,
254
- onRowMouseEnter: be,
254
+ onRowDoubleClick: be,
255
+ onRowMouseEnter: ve,
255
256
  onRowMouseLeave: Se,
256
257
  onCellClick: we,
257
258
  onCellDoubleClick: ye,
@@ -261,17 +262,17 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
261
262
  indentSize: he,
262
263
  handleRowExpand: He,
263
264
  extensions: m,
264
- extensionApi: b,
265
+ extensionApi: v,
265
266
  getRowId: _,
266
- onCellContextMenu: Pe
267
+ onCellContextMenu: Xe
267
268
  })]
268
269
  })
269
- }), /* @__PURE__ */ o(Ze, {
270
+ }), /* @__PURE__ */ o(et, {
270
271
  enablePagination: F,
271
272
  table: d,
272
273
  internalPageIndex: c,
273
274
  internalPageSize: s,
274
- handlePageChange: Xe,
275
+ handlePageChange: Ye,
275
276
  setInternalPageSize: B,
276
277
  setInternalPageIndex: z,
277
278
  onPageSizeChange: W,
@@ -302,7 +303,7 @@ function Rt({ data: a, columns: f, className: ce = "", enableSorting: de = !0, e
302
303
  });
303
304
  }
304
305
  export {
305
- Rt as default
306
+ Ft as default
306
307
  };
307
308
 
308
309
  //# sourceMappingURL=DataTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/pro/DataTable/DataTable.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from 'react';\nimport {\n useReactTable,\n ColumnFiltersState,\n SortingState,\n VisibilityState,\n RowSelectionState,\n OnChangeFn,\n Updater,\n SortingFnOption,\n SortingFn,\n} from './tanstack-table';\nimport Table from '../../Table';\nimport { TableToolbar } from './components/TableToolbar';\nimport { TableHeader } from './components/TableHeader';\nimport { TableBody } from './components/TableBody';\nimport { TablePagination } from './components/TablePagination';\nimport { DataTableProps } from './types';\nimport type {\n DataTableApi,\n DataTableCellContext,\n DataTableExtension,\n DataTableMenuItem,\n} from './extension';\nimport { useControllableState, deepEqual } from '../../../hooks/useControllableState';\nimport { treeRowAnimationStyles, findAllChildRowIds, flattenTreeData, createTreeSortingFns } from './treeDataUtils';\nimport { useColumnDragReorder } from './useColumnDragReorder';\n\nexport * from './types';\n\nfunction DataTable<T extends object>({\n data,\n columns,\n className = '',\n enableSorting = true,\n enableFiltering = true,\n enablePagination = true,\n enableSelection = true,\n enableColumnReordering = true,\n enableColumnResizing = true,\n manualFiltering = false,\n enableExpanding = false,\n subDataKey = 'subs',\n onRowExpand,\n expandedRows = {},\n onExpandedRowsChange,\n getRowId,\n indentSize = 16,\n enableTreeSort = true,\n toolbar = {\n enabled: false,\n enableColumnSelector: false,\n enableFiltering: false,\n enableBulkActions: false,\n },\n customFilterPanel,\n onRowClick,\n onRowDoubleClick,\n onRowMouseEnter,\n onRowMouseLeave,\n onCellClick,\n onCellDoubleClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onColumnClick,\n onColumnMouseEnter,\n onColumnMouseLeave,\n onTableClick,\n onTableMouseEnter,\n onTableMouseLeave,\n pageSize = 10,\n pageIndex = 0,\n onPageChange,\n onPageSizeChange,\n selectedRows = {},\n onRowSelectionChange,\n sortingState = [],\n onSortingChange,\n columnFilters = [],\n onColumnFiltersChange,\n columnVisibility = {},\n onColumnVisibilityChange,\n columnOrder = [],\n onColumnOrderChange,\n extensions = [],\n}: DataTableProps<T>) {\n const [sorting, setSorting] = useControllableState<SortingState>(\n sortingState, onSortingChange, deepEqual,\n );\n const [rowSelection, setRowSelection] = useControllableState<RowSelectionState>(\n selectedRows, onRowSelectionChange, deepEqual,\n );\n const [columnFiltersState, setColumnFiltersState] = useControllableState<ColumnFiltersState>(\n columnFilters, onColumnFiltersChange, deepEqual,\n );\n const [visibilityState, setVisibilityState] = useControllableState<VisibilityState>(\n columnVisibility, onColumnVisibilityChange, deepEqual,\n );\n const [columnOrderState, setColumnOrderState] = useControllableState<string[]>(\n columnOrder, onColumnOrderChange, deepEqual,\n );\n const [expandedRowsState, setExpandedRowsState] = useControllableState<Record<string, boolean>>(\n expandedRows, onExpandedRowsChange, deepEqual,\n );\n\n const [activeFilter, setActiveFilter] = useState<string | null>(null);\n const hasInitializedRef = useRef(false);\n\n const {\n draggedColumnId,\n handleDragStart,\n handleDragOver,\n handleDrop,\n } = useColumnDragReorder(columnOrderState, setColumnOrderState);\n\n const handleSortingChange = useCallback<OnChangeFn<SortingState>>((updater) => {\n setSorting((old) => (typeof updater === 'function' ? updater(old) : updater));\n }, [setSorting]);\n\n useEffect(() => {\n if (!hasInitializedRef.current && columns.length > 0) {\n if (columnOrder.length === 0 && columnOrderState.length === 0) {\n hasInitializedRef.current = true;\n const initialOrder = columns.map(col =>\n 'accessorKey' in col ? col.accessorKey as string : col.id as string,\n );\n setColumnOrderState(initialOrder);\n } else {\n hasInitializedRef.current = true;\n }\n }\n }, [columns]);\n\n const handleRowExpand = (rowId: string, row: T) => {\n const newExpandedState = !(expandedRowsState[rowId] || false);\n const newExpandedRows = { ...expandedRowsState, [rowId]: newExpandedState };\n\n if (!newExpandedState) {\n const childRows = findAllChildRowIds(row, rowId, subDataKey, getRowId);\n childRows.forEach(childId => { newExpandedRows[childId] = false; });\n }\n\n setExpandedRowsState(newExpandedRows);\n onRowExpand?.(row, newExpandedState);\n };\n\n const flattenData = useCallback(\n (items: T[], depth = 0, parentId = '', isParentExpanded = true, result: any[] = [], onlyTopLevel = false) =>\n flattenTreeData(items, expandedRowsState, subDataKey, getRowId, depth, parentId, isParentExpanded, result, onlyTopLevel),\n [expandedRowsState, getRowId, subDataKey],\n );\n\n const flattenedData = useMemo(\n () => (enableExpanding ? flattenData(data) : data),\n [data, enableExpanding, flattenData],\n );\n\n const topLevelData = useMemo(\n () => (enableExpanding ? flattenData(data, 0, '', true, [], true) : data),\n [data, enableExpanding, flattenData],\n );\n\n const [internalPageIndex, setInternalPageIndex] = useState(pageIndex);\n const [internalPageSize, setInternalPageSize] = useState(pageSize);\n\n useEffect(() => { if (pageIndex !== internalPageIndex) setInternalPageIndex(pageIndex); }, [pageIndex]);\n useEffect(() => { if (pageSize !== internalPageSize) setInternalPageSize(pageSize); }, [pageSize]);\n\n const currentPageData = useMemo(() => {\n if (!enablePagination) return flattenedData;\n\n const startIndex = internalPageIndex * internalPageSize;\n const endIndex = startIndex + internalPageSize;\n const currentPageTopLevelData = topLevelData.slice(startIndex, endIndex);\n\n if (enableExpanding) {\n const rowsMap = new Map();\n currentPageTopLevelData.forEach((topRow: any) => rowsMap.set(topRow.__id, topRow));\n currentPageTopLevelData.forEach((topRow: any) => {\n if (expandedRowsState[topRow.__id]) {\n flattenedData.forEach((row: any) => {\n if (row.__parentId?.startsWith(topRow.__id)) rowsMap.set(row.__id, row);\n });\n }\n });\n const result: any[] = [];\n flattenedData.forEach((row: any) => { if (rowsMap.has(row.__id)) result.push(row); });\n return result;\n }\n\n return currentPageTopLevelData;\n }, [flattenedData, topLevelData, internalPageIndex, internalPageSize, enablePagination, enableExpanding, expandedRowsState]);\n\n const processedColumns = useMemo(() => {\n if (!enableExpanding || !enableTreeSort) return columns;\n return columns.map(column => {\n if (column.enableSorting === false) return column;\n return { ...column, sortFn: 'treeSortAsc' as SortingFnOption<T> };\n });\n }, [columns, enableExpanding, enableTreeSort]);\n\n const customSortFns = useMemo(\n () =>\n enableExpanding && enableTreeSort\n ? (createTreeSortingFns<T>() as Record<string, SortingFn<T>>)\n : undefined,\n [enableExpanding, enableTreeSort],\n );\n\n const tableCore = useMemo(() => ({\n data: currentPageData,\n columns: processedColumns,\n pageCount: Math.ceil(topLevelData.length / internalPageSize),\n manualPagination: true,\n manualFiltering,\n state: {\n sorting,\n rowSelection,\n columnFilters: columnFiltersState,\n columnVisibility: visibilityState,\n columnOrder: columnOrderState.length > 0 ? columnOrderState : undefined,\n pagination: { pageIndex: internalPageIndex, pageSize: internalPageSize },\n },\n enableRowSelection: enableSelection,\n onRowSelectionChange: setRowSelection,\n onSortingChange: handleSortingChange,\n onColumnFiltersChange: setColumnFiltersState,\n onColumnVisibilityChange: setVisibilityState,\n onPaginationChange: (updater: Updater<{ pageIndex: number; pageSize: number }>) => {\n const currentPagination = { pageIndex: internalPageIndex, pageSize: internalPageSize };\n const newPagination = typeof updater === 'function' ? updater(currentPagination) : updater;\n\n if (newPagination.pageSize !== internalPageSize) {\n setInternalPageSize(newPagination.pageSize);\n onPageSizeChange?.(newPagination.pageSize);\n }\n if (newPagination.pageIndex !== internalPageIndex) {\n setInternalPageIndex(newPagination.pageIndex);\n onPageChange?.(newPagination.pageIndex);\n }\n },\n // v9:自定义排序函数注册表(由 useReactTable 包装器合入 features 的 sortFns)。\n sortFns: customSortFns,\n initialState: { pagination: { pageIndex: 0, pageSize: internalPageSize } },\n }), [\n currentPageData, processedColumns, sorting, rowSelection, columnFiltersState,\n visibilityState, columnOrderState, enableSelection, enablePagination, customSortFns,\n manualFiltering, handleSortingChange, internalPageSize, internalPageIndex, onPageChange,\n onPageSizeChange, topLevelData,\n ]);\n\n const table = useReactTable<T>(tableCore as any);\n\n // --- 扩展 API -----------------------------------------------------------\n const resolveRowId = useCallback(\n (row: T, index: number): string => {\n if (getRowId) return getRowId(row, index);\n const anyRow = row as any;\n if (anyRow && anyRow.__id != null) return String(anyRow.__id);\n return String(index);\n },\n [getRowId],\n );\n\n const extensionApi: DataTableApi<T> = useMemo(() => {\n const selectedRowData = table\n .getSelectedRowModel()\n .rows.map((r) => r.original);\n return {\n table,\n data,\n rows: table.getRowModel().rows,\n selectedRows: selectedRowData,\n getRowId: resolveRowId,\n };\n }, [table, data, resolveRowId, rowSelection]);\n\n // --- 右键菜单(由扩展贡献) --------------------------------------------\n const [contextMenu, setContextMenu] = useState<{\n x: number;\n y: number;\n items: DataTableMenuItem<T>[];\n ctx: DataTableCellContext<T>;\n } | null>(null);\n\n useEffect(() => {\n if (!contextMenu) return;\n const close = () => setContextMenu(null);\n window.addEventListener('click', close);\n window.addEventListener('scroll', close, true);\n return () => {\n window.removeEventListener('click', close);\n window.removeEventListener('scroll', close, true);\n };\n }, [contextMenu]);\n\n const handleCellContextMenu = useCallback(\n (e: React.MouseEvent, row: T, column: any, rowIndex: number) => {\n if (extensions.length === 0) return;\n const columnId = column?.id ?? '';\n const value =\n column?.id != null ? (row as any)[column.id] : undefined;\n const ctx: DataTableCellContext<T> = {\n value,\n row,\n rowId: resolveRowId(row, rowIndex),\n rowIndex,\n columnId,\n };\n const items = extensions.flatMap(\n (ext) => ext.contextMenu?.(ctx, extensionApi) ?? [],\n );\n if (!items.length) return;\n e.preventDefault();\n setContextMenu({ x: e.clientX, y: e.clientY, items, ctx });\n },\n [extensions, extensionApi, resolveRowId],\n );\n\n // 收集工具栏 / 底部 / 主体接管的扩展贡献。\n const toolbarExtras = extensions\n .map((ext) =>\n ext.toolbar ? { name: ext.name, node: ext.toolbar(extensionApi) } : null,\n )\n .filter((x): x is { name: string; node: React.ReactNode } => !!x && !!x.node);\n\n const footerExtras = extensions\n .map((ext) =>\n ext.footer ? { name: ext.name, node: ext.footer(extensionApi) } : null,\n )\n .filter((x): x is { name: string; node: React.ReactNode } => !!x && !!x.node);\n\n let overrideContent: React.ReactNode | undefined = undefined;\n for (const ext of extensions) {\n const out = ext.renderContent?.(extensionApi);\n if (out !== undefined) {\n overrideContent = out;\n break;\n }\n }\n\n const handlePageChange = (newPage: number) => {\n if (internalPageIndex === newPage) return;\n setInternalPageIndex(newPage);\n onPageChange?.(newPage);\n };\n\n const toggleColumnVisibility = (columnId: string) => {\n table.getColumn(columnId)?.toggleVisibility();\n };\n\n useEffect(() => {\n const styleElement = document.createElement('style');\n styleElement.textContent = treeRowAnimationStyles;\n document.head.appendChild(styleElement);\n return () => { document.head.removeChild(styleElement); };\n }, []);\n\n return (\n <div className={`w-full ${className}`}>\n <TableToolbar\n toolbar={toolbar}\n table={table}\n columns={columns}\n columnOrderState={columnOrderState}\n visibilityState={visibilityState}\n activeFilter={activeFilter}\n setActiveFilter={setActiveFilter}\n customFilterPanel={customFilterPanel}\n draggedColumnId={draggedColumnId}\n handleDragStart={handleDragStart}\n toggleColumnVisibility={toggleColumnVisibility}\n rowSelection={rowSelection}\n data={data}\n enableColumnReordering={enableColumnReordering}\n handleDrop={handleDrop}\n />\n\n {/* 扩展贡献的工具栏控件 */}\n {toolbarExtras.length > 0 && (\n <div className=\"flex flex-wrap items-start gap-3 mb-4\">\n {toolbarExtras.map((item) => (\n <React.Fragment key={item.name}>{item.node}</React.Fragment>\n ))}\n </div>\n )}\n\n {overrideContent !== undefined ? (\n // 扩展接管了主体渲染(如 Pivot 透视模式)。\n <div className=\"w-full\">{overrideContent}</div>\n ) : (\n <>\n <div className=\"overflow-x-auto\">\n <Table className=\"table-sm w-full\">\n <TableHeader\n table={table}\n visibilityState={visibilityState}\n enableSorting={enableSorting}\n enableColumnReordering={enableColumnReordering}\n draggedColumnId={draggedColumnId}\n onColumnMouseEnter={onColumnMouseEnter}\n onColumnMouseLeave={onColumnMouseLeave}\n handleDragStart={handleDragStart}\n handleDragOver={handleDragOver}\n handleDrop={handleDrop}\n />\n <TableBody\n table={table}\n expandedRowsState={expandedRowsState}\n onRowClick={onRowClick}\n onRowDoubleClick={onRowDoubleClick}\n onRowMouseEnter={onRowMouseEnter}\n onRowMouseLeave={onRowMouseLeave}\n onCellClick={onCellClick}\n onCellDoubleClick={onCellDoubleClick}\n onCellMouseEnter={onCellMouseEnter}\n onCellMouseLeave={onCellMouseLeave}\n enableExpanding={enableExpanding}\n indentSize={indentSize}\n handleRowExpand={handleRowExpand}\n extensions={extensions}\n extensionApi={extensionApi}\n getRowId={resolveRowId}\n onCellContextMenu={handleCellContextMenu}\n />\n </Table>\n </div>\n\n <TablePagination\n enablePagination={enablePagination}\n table={table}\n internalPageIndex={internalPageIndex}\n internalPageSize={internalPageSize}\n handlePageChange={handlePageChange}\n setInternalPageSize={setInternalPageSize}\n setInternalPageIndex={setInternalPageIndex}\n onPageSizeChange={onPageSizeChange}\n onPageChange={onPageChange}\n />\n </>\n )}\n\n {/* 扩展贡献的底部控件 */}\n {footerExtras.length > 0 && (\n <div className=\"flex flex-wrap items-center gap-3 mt-4\">\n {footerExtras.map((item) => (\n <React.Fragment key={item.name}>{item.node}</React.Fragment>\n ))}\n </div>\n )}\n\n {/* 扩展贡献的右键菜单 */}\n {contextMenu && (\n <ul\n className=\"menu bg-base-100 rounded-box shadow-lg border border-base-300 z-1000 p-1\"\n style={{\n position: 'fixed',\n top: contextMenu.y,\n left: contextMenu.x,\n minWidth: 160,\n }}\n >\n {contextMenu.items.map((item) =>\n item.separator ? (\n <li key={item.key} className=\"my-1 border-t border-base-300\" />\n ) : (\n <li key={item.key}>\n <button\n type=\"button\"\n disabled={item.disabled}\n onClick={() => {\n item.onSelect?.(contextMenu.ctx);\n setContextMenu(null);\n }}\n >\n {item.label}\n </button>\n </li>\n ),\n )}\n </ul>\n )}\n </div>\n );\n}\n\nexport default DataTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/pro/DataTable/DataTable.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from 'react';\nimport {\n useReactTable,\n ColumnFiltersState,\n SortingState,\n VisibilityState,\n RowSelectionState,\n OnChangeFn,\n Updater,\n SortingFnOption,\n SortingFn,\n} from './tanstack-table';\nimport Table from '../../Table';\nimport { TableToolbar } from './components/TableToolbar';\nimport { TableHeader } from './components/TableHeader';\nimport { TableBody } from './components/TableBody';\nimport { TablePagination } from './components/TablePagination';\nimport { DataTableProps } from './types';\nimport type {\n DataTableApi,\n DataTableCellContext,\n DataTableExtension,\n DataTableMenuItem,\n} from './extension';\nimport { useControllableState, deepEqual } from '../../../hooks/useControllableState';\nimport { treeRowAnimationStyles, findAllChildRowIds, flattenTreeData, createTreeSortingFns } from './treeDataUtils';\nimport { useColumnDragReorder } from './useColumnDragReorder';\n\nexport * from './types';\n\nfunction DataTable<T extends object>({\n data,\n columns,\n className = '',\n enableSorting = true,\n enableFiltering = true,\n enablePagination = true,\n enableSelection = true,\n enableColumnReordering = true,\n enableColumnResizing = true,\n manualFiltering = false,\n enableExpanding = false,\n subDataKey = 'subs',\n onRowExpand,\n expandedRows = {},\n onExpandedRowsChange,\n getRowId,\n indentSize = 16,\n enableTreeSort = true,\n toolbar = {\n enabled: false,\n enableColumnSelector: false,\n enableFiltering: false,\n enableBulkActions: false,\n },\n customFilterPanel,\n onRowClick,\n onRowDoubleClick,\n onRowMouseEnter,\n onRowMouseLeave,\n onCellClick,\n onCellDoubleClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onColumnClick,\n onColumnMouseEnter,\n onColumnMouseLeave,\n onTableClick,\n onTableMouseEnter,\n onTableMouseLeave,\n pageSize = 10,\n pageIndex = 0,\n onPageChange,\n onPageSizeChange,\n selectedRows = {},\n onRowSelectionChange,\n sortingState = [],\n onSortingChange,\n columnFilters = [],\n onColumnFiltersChange,\n columnVisibility = {},\n onColumnVisibilityChange,\n columnOrder = [],\n onColumnOrderChange,\n extensions = [],\n}: DataTableProps<T>) {\n const [sorting, setSorting] = useControllableState<SortingState>(\n sortingState, onSortingChange, deepEqual,\n );\n const [rowSelection, setRowSelection] = useControllableState<RowSelectionState>(\n selectedRows, onRowSelectionChange, deepEqual,\n );\n const [columnFiltersState, setColumnFiltersState] = useControllableState<ColumnFiltersState>(\n columnFilters, onColumnFiltersChange, deepEqual,\n );\n const [visibilityState, setVisibilityState] = useControllableState<VisibilityState>(\n columnVisibility, onColumnVisibilityChange, deepEqual,\n );\n const [columnOrderState, setColumnOrderState] = useControllableState<string[]>(\n columnOrder, onColumnOrderChange, deepEqual,\n );\n const [expandedRowsState, setExpandedRowsState] = useControllableState<Record<string, boolean>>(\n expandedRows, onExpandedRowsChange, deepEqual,\n );\n\n const [activeFilter, setActiveFilter] = useState<string | null>(null);\n const hasInitializedRef = useRef(false);\n\n const {\n draggedColumnId,\n handleDragStart,\n handleDragOver,\n handleDrop,\n } = useColumnDragReorder(columnOrderState, setColumnOrderState);\n\n const handleSortingChange = useCallback<OnChangeFn<SortingState>>((updater) => {\n setSorting((old) => (typeof updater === 'function' ? updater(old) : updater));\n }, [setSorting]);\n\n useEffect(() => {\n if (!hasInitializedRef.current && columns.length > 0) {\n if (columnOrder.length === 0 && columnOrderState.length === 0) {\n hasInitializedRef.current = true;\n const initialOrder = columns.map(col =>\n 'accessorKey' in col ? col.accessorKey as string : col.id as string,\n );\n setColumnOrderState(initialOrder);\n } else {\n hasInitializedRef.current = true;\n }\n }\n }, [columns]);\n\n const handleRowExpand = (rowId: string, row: T) => {\n const newExpandedState = !(expandedRowsState[rowId] || false);\n const newExpandedRows = { ...expandedRowsState, [rowId]: newExpandedState };\n\n if (!newExpandedState) {\n const childRows = findAllChildRowIds(row, rowId, subDataKey, getRowId);\n childRows.forEach(childId => { newExpandedRows[childId] = false; });\n }\n\n setExpandedRowsState(newExpandedRows);\n onRowExpand?.(row, newExpandedState);\n };\n\n const flattenData = useCallback(\n (items: T[], depth = 0, parentId = '', isParentExpanded = true, result: any[] = [], onlyTopLevel = false) =>\n flattenTreeData(items, expandedRowsState, subDataKey, getRowId, depth, parentId, isParentExpanded, result, onlyTopLevel),\n [expandedRowsState, getRowId, subDataKey],\n );\n\n const flattenedData = useMemo(\n () => (enableExpanding ? flattenData(data) : data),\n [data, enableExpanding, flattenData],\n );\n\n const topLevelData = useMemo(\n () => (enableExpanding ? flattenData(data, 0, '', true, [], true) : data),\n [data, enableExpanding, flattenData],\n );\n\n const [internalPageIndex, setInternalPageIndex] = useState(pageIndex);\n const [internalPageSize, setInternalPageSize] = useState(pageSize);\n\n useEffect(() => { if (pageIndex !== internalPageIndex) setInternalPageIndex(pageIndex); }, [pageIndex]);\n useEffect(() => { if (pageSize !== internalPageSize) setInternalPageSize(pageSize); }, [pageSize]);\n\n const currentPageData = useMemo(() => {\n if (!enablePagination) return flattenedData;\n\n const startIndex = internalPageIndex * internalPageSize;\n const endIndex = startIndex + internalPageSize;\n const currentPageTopLevelData = topLevelData.slice(startIndex, endIndex);\n\n if (enableExpanding) {\n const rowsMap = new Map();\n currentPageTopLevelData.forEach((topRow: any) => rowsMap.set(topRow.__id, topRow));\n currentPageTopLevelData.forEach((topRow: any) => {\n if (expandedRowsState[topRow.__id]) {\n flattenedData.forEach((row: any) => {\n if (row.__parentId?.startsWith(topRow.__id)) rowsMap.set(row.__id, row);\n });\n }\n });\n const result: any[] = [];\n flattenedData.forEach((row: any) => { if (rowsMap.has(row.__id)) result.push(row); });\n return result;\n }\n\n return currentPageTopLevelData;\n }, [flattenedData, topLevelData, internalPageIndex, internalPageSize, enablePagination, enableExpanding, expandedRowsState]);\n\n const processedColumns = useMemo(() => {\n if (!enableExpanding || !enableTreeSort) return columns;\n return columns.map(column => {\n if (column.enableSorting === false) return column;\n return { ...column, sortFn: 'treeSortAsc' as SortingFnOption<T> };\n });\n }, [columns, enableExpanding, enableTreeSort]);\n\n const customSortFns = useMemo(\n () =>\n enableExpanding && enableTreeSort\n ? (createTreeSortingFns<T>() as Record<string, SortingFn<T>>)\n : undefined,\n [enableExpanding, enableTreeSort],\n );\n\n const tableCore = useMemo(() => ({\n data: currentPageData,\n columns: processedColumns,\n pageCount: Math.ceil(topLevelData.length / internalPageSize),\n manualPagination: true,\n manualFiltering,\n state: {\n sorting,\n rowSelection,\n columnFilters: columnFiltersState,\n columnVisibility: visibilityState,\n columnOrder: columnOrderState.length > 0 ? columnOrderState : undefined,\n pagination: { pageIndex: internalPageIndex, pageSize: internalPageSize },\n },\n enableRowSelection: enableSelection,\n onRowSelectionChange: setRowSelection,\n onSortingChange: handleSortingChange,\n onColumnFiltersChange: setColumnFiltersState,\n onColumnVisibilityChange: setVisibilityState,\n onPaginationChange: (updater: Updater<{ pageIndex: number; pageSize: number }>) => {\n const currentPagination = { pageIndex: internalPageIndex, pageSize: internalPageSize };\n const newPagination = typeof updater === 'function' ? updater(currentPagination) : updater;\n\n if (newPagination.pageSize !== internalPageSize) {\n setInternalPageSize(newPagination.pageSize);\n onPageSizeChange?.(newPagination.pageSize);\n }\n if (newPagination.pageIndex !== internalPageIndex) {\n setInternalPageIndex(newPagination.pageIndex);\n onPageChange?.(newPagination.pageIndex);\n }\n },\n // v9:自定义排序函数注册表(由 useReactTable 包装器合入 features 的 sortFns)。\n sortFns: customSortFns,\n initialState: { pagination: { pageIndex: 0, pageSize: internalPageSize } },\n }), [\n currentPageData, processedColumns, sorting, rowSelection, columnFiltersState,\n visibilityState, columnOrderState, enableSelection, enablePagination, customSortFns,\n manualFiltering, handleSortingChange, internalPageSize, internalPageIndex, onPageChange,\n onPageSizeChange, topLevelData,\n ]);\n\n const table = useReactTable<T>(tableCore as any);\n\n // --- 扩展 API -----------------------------------------------------------\n const resolveRowId = useCallback(\n (row: T, index: number): string => {\n if (getRowId) return getRowId(row, index);\n const anyRow = row as any;\n if (anyRow && anyRow.__id != null) return String(anyRow.__id);\n return String(index);\n },\n [getRowId],\n );\n\n const extensionApi: DataTableApi<T> = useMemo(() => {\n const selectedRowData = table\n .getSelectedRowModel()\n .rows.map((r) => r.original);\n return {\n table,\n data,\n rows: table.getRowModel().rows,\n selectedRows: selectedRowData,\n getRowId: resolveRowId,\n };\n }, [table, data, resolveRowId, rowSelection]);\n\n // --- 右键菜单(由扩展贡献) --------------------------------------------\n const [contextMenu, setContextMenu] = useState<{\n x: number;\n y: number;\n items: DataTableMenuItem<T>[];\n ctx: DataTableCellContext<T>;\n } | null>(null);\n\n useEffect(() => {\n if (!contextMenu) return;\n const close = () => setContextMenu(null);\n window.addEventListener('click', close);\n window.addEventListener('scroll', close, true);\n return () => {\n window.removeEventListener('click', close);\n window.removeEventListener('scroll', close, true);\n };\n }, [contextMenu]);\n\n const handleCellContextMenu = useCallback(\n (e: React.MouseEvent, row: T, column: any, rowIndex: number) => {\n if (extensions.length === 0) return;\n const columnId = column?.id ?? '';\n const value =\n column?.id != null ? (row as any)[column.id] : undefined;\n const ctx: DataTableCellContext<T> = {\n value,\n row,\n rowId: resolveRowId(row, rowIndex),\n rowIndex,\n columnId,\n };\n const items = extensions.flatMap(\n (ext) => ext.contextMenu?.(ctx, extensionApi) ?? [],\n );\n if (!items.length) return;\n e.preventDefault();\n setContextMenu({ x: e.clientX, y: e.clientY, items, ctx });\n },\n [extensions, extensionApi, resolveRowId],\n );\n\n // 收集工具栏 / 底部 / 主体接管的扩展贡献。\n const toolbarExtras = extensions\n .map((ext) =>\n ext.toolbar ? { name: ext.name, node: ext.toolbar(extensionApi) } : null,\n )\n .filter((x): x is { name: string; node: React.ReactNode } => !!x && !!x.node);\n\n const footerExtras = extensions\n .map((ext) =>\n ext.footer ? { name: ext.name, node: ext.footer(extensionApi) } : null,\n )\n .filter((x): x is { name: string; node: React.ReactNode } => !!x && !!x.node);\n\n let overrideContent: React.ReactNode | undefined = undefined;\n for (const ext of extensions) {\n const out = ext.renderContent?.(extensionApi);\n if (out !== undefined) {\n overrideContent = out;\n break;\n }\n }\n\n const handlePageChange = (newPage: number) => {\n if (internalPageIndex === newPage) return;\n setInternalPageIndex(newPage);\n onPageChange?.(newPage);\n };\n\n const toggleColumnVisibility = (columnId: string) => {\n table.getColumn(columnId)?.toggleVisibility();\n };\n\n useEffect(() => {\n const styleElement = document.createElement('style');\n styleElement.textContent = treeRowAnimationStyles;\n document.head.appendChild(styleElement);\n return () => { document.head.removeChild(styleElement); };\n }, []);\n\n return (\n <div className={`w-full ${className}`}>\n <TableToolbar\n toolbar={toolbar}\n table={table}\n columns={columns}\n columnOrderState={columnOrderState}\n visibilityState={visibilityState}\n activeFilter={activeFilter}\n setActiveFilter={setActiveFilter}\n customFilterPanel={customFilterPanel}\n draggedColumnId={draggedColumnId}\n handleDragStart={handleDragStart}\n toggleColumnVisibility={toggleColumnVisibility}\n rowSelection={rowSelection}\n data={data}\n enableColumnReordering={enableColumnReordering}\n handleDrop={handleDrop}\n />\n\n {/* 扩展贡献的工具栏控件 */}\n {toolbarExtras.length > 0 && (\n <div className=\"flex flex-wrap items-start gap-3 mb-4\">\n {toolbarExtras.map((item) => (\n <React.Fragment key={item.name}>{item.node}</React.Fragment>\n ))}\n </div>\n )}\n\n {overrideContent !== undefined ? (\n // 扩展接管了主体渲染(如 Pivot 透视模式)。\n <div className=\"w-full\">{overrideContent}</div>\n ) : (\n <>\n <div className=\"overflow-x-auto\">\n <Table className=\"table-sm w-full\">\n <TableHeader\n table={table}\n visibilityState={visibilityState}\n enableSorting={enableSorting}\n enableColumnReordering={enableColumnReordering}\n draggedColumnId={draggedColumnId}\n onColumnMouseEnter={onColumnMouseEnter}\n onColumnMouseLeave={onColumnMouseLeave}\n handleDragStart={handleDragStart}\n handleDragOver={handleDragOver}\n handleDrop={handleDrop}\n />\n <TableBody\n table={table}\n expandedRowsState={expandedRowsState}\n onRowClick={onRowClick}\n onRowDoubleClick={onRowDoubleClick}\n onRowMouseEnter={onRowMouseEnter}\n onRowMouseLeave={onRowMouseLeave}\n onCellClick={onCellClick}\n onCellDoubleClick={onCellDoubleClick}\n onCellMouseEnter={onCellMouseEnter}\n onCellMouseLeave={onCellMouseLeave}\n enableExpanding={enableExpanding}\n indentSize={indentSize}\n handleRowExpand={handleRowExpand}\n extensions={extensions}\n extensionApi={extensionApi}\n getRowId={resolveRowId}\n onCellContextMenu={handleCellContextMenu}\n />\n </Table>\n </div>\n\n <TablePagination\n enablePagination={enablePagination}\n table={table}\n internalPageIndex={internalPageIndex}\n internalPageSize={internalPageSize}\n handlePageChange={handlePageChange}\n setInternalPageSize={setInternalPageSize}\n setInternalPageIndex={setInternalPageIndex}\n onPageSizeChange={onPageSizeChange}\n onPageChange={onPageChange}\n />\n </>\n )}\n\n {/* 扩展贡献的底部控件 */}\n {footerExtras.length > 0 && (\n <div className=\"flex flex-wrap items-center gap-3 mt-4\">\n {footerExtras.map((item) => (\n <React.Fragment key={item.name}>{item.node}</React.Fragment>\n ))}\n </div>\n )}\n\n {/* 扩展贡献的右键菜单 */}\n {contextMenu && (\n <ul\n className=\"menu bg-base-100 rounded-box shadow-lg border border-base-300 z-1000 p-1\"\n style={{\n position: 'fixed',\n top: contextMenu.y,\n left: contextMenu.x,\n minWidth: 160,\n }}\n >\n {contextMenu.items.map((item) =>\n item.separator ? (\n <li key={item.key} className=\"my-1 border-t border-base-300\" />\n ) : (\n <li key={item.key}>\n <button\n type=\"button\"\n disabled={item.disabled}\n onClick={() => {\n item.onSelect?.(contextMenu.ctx);\n setContextMenu(null);\n }}\n >\n {item.label}\n </button>\n </li>\n ),\n )}\n </ul>\n )}\n </div>\n );\n}\n\nexport default DataTable;\n"],"mappings":"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"}
@@ -14,8 +14,8 @@ var R = /* @__PURE__ */ k({
14
14
  }), p = ({ column: e, placeholder: i = "搜索..." }) => {
15
15
  const [n, s] = f(""), r = g(n, 300);
16
16
  return v(() => {
17
- const a = e.getFilterValue() || "";
18
- a !== n && s(a);
17
+ const l = e.getFilterValue() || "";
18
+ l !== n && s(l);
19
19
  }, [e.getFilterValue()]), v(() => {
20
20
  e.setFilterValue(r || void 0);
21
21
  }, [r]), /* @__PURE__ */ h("div", {
@@ -23,8 +23,8 @@ var R = /* @__PURE__ */ k({
23
23
  children: [/* @__PURE__ */ t("input", {
24
24
  type: "text",
25
25
  value: n,
26
- onChange: (a) => {
27
- s(a.target.value);
26
+ onChange: (l) => {
27
+ s(l.target.value);
28
28
  },
29
29
  placeholder: i,
30
30
  className: "input input-bordered input-sm w-full"
@@ -49,10 +49,10 @@ var R = /* @__PURE__ */ k({
49
49
  })]
50
50
  });
51
51
  }, b = ({ column: e, min: i, max: n, step: s = 1 }) => {
52
- const [r, o] = f(""), [a, l] = f(""), d = g(r, 300), c = g(a, 300);
52
+ const [r, o] = f(""), [l, a] = f(""), d = g(r, 300), c = g(l, 300);
53
53
  return v(() => {
54
54
  const u = e.getFilterValue(), N = u && u[0] !== void 0 ? String(u[0]) : "", w = u && u[1] !== void 0 ? String(u[1]) : "";
55
- N !== r && o(N), w !== a && l(w);
55
+ N !== r && o(N), w !== l && a(w);
56
56
  }, [e.getFilterValue()]), v(() => {
57
57
  const u = [d === "" ? void 0 : Number(d), c === "" ? void 0 : Number(c)];
58
58
  u[0] === void 0 && u[1] === void 0 ? e.setFilterValue(void 0) : e.setFilterValue(u);
@@ -76,9 +76,9 @@ var R = /* @__PURE__ */ k({
76
76
  /* @__PURE__ */ t("span", { children: "至" }),
77
77
  /* @__PURE__ */ t("input", {
78
78
  type: "number",
79
- value: a,
79
+ value: l,
80
80
  onChange: (u) => {
81
- l(u.target.value);
81
+ a(u.target.value);
82
82
  },
83
83
  placeholder: "最大值",
84
84
  min: i,
@@ -87,10 +87,10 @@ var R = /* @__PURE__ */ k({
87
87
  className: "input input-bordered input-sm w-full"
88
88
  })
89
89
  ]
90
- }), (r || a) && /* @__PURE__ */ t("button", {
90
+ }), (r || l) && /* @__PURE__ */ t("button", {
91
91
  className: "btn btn-ghost btn-xs self-end",
92
92
  onClick: () => {
93
- o(""), l(""), e.setFilterValue(void 0);
93
+ o(""), a(""), e.setFilterValue(void 0);
94
94
  },
95
95
  children: "清除"
96
96
  })]
@@ -98,24 +98,24 @@ var R = /* @__PURE__ */ k({
98
98
  }, m = ({ column: e, options: i, placeholder: n = "全部" }) => {
99
99
  const [s, r] = f("");
100
100
  return v(() => {
101
- const a = e.getFilterValue();
102
- r(a !== void 0 ? String(a) : "");
101
+ const l = e.getFilterValue();
102
+ r(l !== void 0 ? String(l) : "");
103
103
  }, [e.getFilterValue()]), /* @__PURE__ */ t("div", {
104
104
  className: "mt-2",
105
105
  children: /* @__PURE__ */ h("select", {
106
106
  value: s,
107
- onChange: (a) => {
108
- const l = a.target.value;
109
- r(l), l === "" ? e.setFilterValue(void 0) : e.setFilterValue(l);
107
+ onChange: (l) => {
108
+ const a = l.target.value;
109
+ r(a), a === "" ? e.setFilterValue(void 0) : e.setFilterValue(a);
110
110
  },
111
111
  className: "select select-bordered select-sm w-full",
112
112
  children: [/* @__PURE__ */ t("option", {
113
113
  value: "",
114
114
  children: n
115
- }), i.map((a, l) => /* @__PURE__ */ t("option", {
116
- value: a.value,
117
- children: a.label
118
- }, l))]
115
+ }), i.map((l, a) => /* @__PURE__ */ t("option", {
116
+ value: l.value,
117
+ children: l.label
118
+ }, a))]
119
119
  })
120
120
  });
121
121
  }, V = ({ column: e, trueLabel: i = "是", falseLabel: n = "否", allLabel: s = "全部" }) => {
@@ -132,17 +132,17 @@ var R = /* @__PURE__ */ k({
132
132
  value: "false",
133
133
  label: n
134
134
  }
135
- ], [o, a] = f("");
135
+ ], [o, l] = f("");
136
136
  return v(() => {
137
137
  const d = e.getFilterValue();
138
- a(d !== void 0 ? String(d) : "");
138
+ l(d !== void 0 ? String(d) : "");
139
139
  }, [e.getFilterValue()]), /* @__PURE__ */ t("div", {
140
140
  className: "mt-2",
141
141
  children: /* @__PURE__ */ t("select", {
142
142
  value: o,
143
143
  onChange: (d) => {
144
144
  const c = d.target.value;
145
- a(c), c === "" ? e.setFilterValue(void 0) : e.setFilterValue(c === "true");
145
+ l(c), c === "" ? e.setFilterValue(void 0) : e.setFilterValue(c === "true");
146
146
  },
147
147
  className: "select select-bordered select-sm w-full",
148
148
  children: r.map((d, c) => /* @__PURE__ */ t("option", {
@@ -152,14 +152,14 @@ var R = /* @__PURE__ */ k({
152
152
  })
153
153
  });
154
154
  }, F = ({ column: e }) => {
155
- const [i, n] = f(""), [s, r] = f(""), o = g(i, 300), a = g(s, 300);
155
+ const [i, n] = f(""), [s, r] = f(""), o = g(i, 300), l = g(s, 300);
156
156
  return v(() => {
157
- const l = e.getFilterValue(), d = l && l[0] ? l[0] : "", c = l && l[1] ? l[1] : "";
157
+ const a = e.getFilterValue(), d = a && a[0] ? a[0] : "", c = a && a[1] ? a[1] : "";
158
158
  d !== i && n(d), c !== s && r(c);
159
159
  }, [e.getFilterValue()]), v(() => {
160
- const l = [o || void 0, a || void 0];
161
- !l[0] && !l[1] ? e.setFilterValue(void 0) : e.setFilterValue(l);
162
- }, [o, a]), /* @__PURE__ */ h("div", {
160
+ const a = [o || void 0, l || void 0];
161
+ !a[0] && !a[1] ? e.setFilterValue(void 0) : e.setFilterValue(a);
162
+ }, [o, l]), /* @__PURE__ */ h("div", {
163
163
  className: "flex flex-col gap-1 mt-2",
164
164
  children: [/* @__PURE__ */ h("div", {
165
165
  className: "flex items-center gap-2",
@@ -167,8 +167,8 @@ var R = /* @__PURE__ */ k({
167
167
  /* @__PURE__ */ t("input", {
168
168
  type: "date",
169
169
  value: i,
170
- onChange: (l) => {
171
- n(l.target.value);
170
+ onChange: (a) => {
171
+ n(a.target.value);
172
172
  },
173
173
  className: "input input-bordered input-sm w-full"
174
174
  }),
@@ -176,8 +176,8 @@ var R = /* @__PURE__ */ k({
176
176
  /* @__PURE__ */ t("input", {
177
177
  type: "date",
178
178
  value: s,
179
- onChange: (l) => {
180
- r(l.target.value);
179
+ onChange: (a) => {
180
+ r(a.target.value);
181
181
  },
182
182
  className: "input input-bordered input-sm w-full"
183
183
  })
@@ -193,22 +193,22 @@ var R = /* @__PURE__ */ k({
193
193
  }, x = ({ column: e, options: i, placeholder: n = "选择选项" }) => {
194
194
  const [s, r] = f([]);
195
195
  return v(() => {
196
- const a = e.getFilterValue();
197
- r(a || []);
196
+ const l = e.getFilterValue();
197
+ r(l || []);
198
198
  }, [e.getFilterValue()]), /* @__PURE__ */ h("div", {
199
199
  className: "mt-2",
200
200
  children: [/* @__PURE__ */ t("select", {
201
201
  multiple: !0,
202
202
  value: s,
203
- onChange: (a) => {
204
- const l = Array.from(a.target.selectedOptions, (d) => d.value);
205
- r(l), l.length === 0 ? e.setFilterValue(void 0) : e.setFilterValue(l);
203
+ onChange: (l) => {
204
+ const a = Array.from(l.target.selectedOptions, (d) => d.value);
205
+ r(a), a.length === 0 ? e.setFilterValue(void 0) : e.setFilterValue(a);
206
206
  },
207
207
  className: "select select-bordered select-sm w-full max-h-32",
208
- children: i.map((a, l) => /* @__PURE__ */ t("option", {
209
- value: a.value,
210
- children: a.label
211
- }, l))
208
+ children: i.map((l, a) => /* @__PURE__ */ t("option", {
209
+ value: l.value,
210
+ children: l.label
211
+ }, a))
212
212
  }), s.length > 0 && /* @__PURE__ */ h("div", {
213
213
  className: "flex justify-between mt-1",
214
214
  children: [/* @__PURE__ */ h("span", {
@@ -253,7 +253,7 @@ var R = /* @__PURE__ */ k({
253
253
  default:
254
254
  return /* @__PURE__ */ t(p, { column: e });
255
255
  }
256
- };
256
+ }, l = e.columnDef.header && typeof e.columnDef.header == "string" ? e.columnDef.header : e.id;
257
257
  return /* @__PURE__ */ h("div", {
258
258
  className: "card bg-base-100 shadow-lg p-4 w-64 z-50",
259
259
  children: [
@@ -261,7 +261,7 @@ var R = /* @__PURE__ */ k({
261
261
  className: "flex justify-between items-center mb-2",
262
262
  children: [/* @__PURE__ */ t("h3", {
263
263
  className: "font-medium",
264
- children: e.columnDef.header && typeof e.columnDef.header == "string" ? e.columnDef.header : e.id
264
+ children: l
265
265
  }), /* @__PURE__ */ t("button", {
266
266
  className: "btn btn-ghost btn-xs",
267
267
  onClick: i,