dishui 0.0.65 → 0.0.66

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 (500) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +10 -11
  2. package/dist/chart.js +12 -46
  3. package/dist/code-editor.js +16 -43
  4. package/dist/components/Badge/index.js +10 -15
  5. package/dist/components/Badge/index.js.map +1 -1
  6. package/dist/components/Button/index.js +62 -89
  7. package/dist/components/Button/index.js.map +1 -1
  8. package/dist/components/Card/index.d.ts +76 -0
  9. package/dist/components/Card/index.js +178 -69
  10. package/dist/components/Card/index.js.map +1 -1
  11. package/dist/components/Chart/Chart.js +25 -25
  12. package/dist/components/Chart/Chart.js.map +1 -1
  13. package/dist/components/Checkbox/index.js +57 -65
  14. package/dist/components/Checkbox/index.js.map +1 -1
  15. package/dist/components/ChoicePicker/index.d.ts +44 -0
  16. package/dist/components/ChoicePicker/index.js +81 -0
  17. package/dist/components/ChoicePicker/index.js.map +1 -0
  18. package/dist/components/Column/index.d.ts +28 -0
  19. package/dist/components/Column/index.js +30 -0
  20. package/dist/components/Column/index.js.map +1 -0
  21. package/dist/components/DateTimeInput/index.d.ts +44 -0
  22. package/dist/components/DateTimeInput/index.js +48 -0
  23. package/dist/components/DateTimeInput/index.js.map +1 -0
  24. package/dist/components/Demo/index.js +107 -107
  25. package/dist/components/Demo/index.js.map +1 -1
  26. package/dist/components/Divider/index.d.ts +20 -0
  27. package/dist/components/Divider/index.js +30 -0
  28. package/dist/components/Divider/index.js.map +1 -0
  29. package/dist/components/EmptyState/index.js +24 -24
  30. package/dist/components/EmptyState/index.js.map +1 -1
  31. package/dist/components/FileUploader/DropZone.js +134 -136
  32. package/dist/components/FileUploader/DropZone.js.map +1 -1
  33. package/dist/components/FileUploader/FileItem.js +159 -163
  34. package/dist/components/FileUploader/FileItem.js.map +1 -1
  35. package/dist/components/FileUploader/FileUploader.js +126 -127
  36. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  37. package/dist/components/FileUploader/UploadQueue.js +62 -62
  38. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  39. package/dist/components/FloatWindow/index.d.ts +28 -0
  40. package/dist/components/GridLayout/index.d.ts +42 -0
  41. package/dist/components/Icon/index.d.ts +24 -0
  42. package/dist/components/Icon/index.js +26 -0
  43. package/dist/components/Icon/index.js.map +1 -0
  44. package/dist/components/Image/index.d.ts +33 -0
  45. package/dist/components/Image/index.js +44 -0
  46. package/dist/components/Image/index.js.map +1 -0
  47. package/dist/components/Input/index.js +196 -197
  48. package/dist/components/Input/index.js.map +1 -1
  49. package/dist/components/Label/index.js +62 -74
  50. package/dist/components/Label/index.js.map +1 -1
  51. package/dist/components/Layout/index.js +134 -139
  52. package/dist/components/Layout/index.js.map +1 -1
  53. package/dist/components/List/index.js +45 -58
  54. package/dist/components/List/index.js.map +1 -1
  55. package/dist/components/Markdown/Markdown.js +106 -107
  56. package/dist/components/Markdown/Markdown.js.map +1 -1
  57. package/dist/components/Markdown/codeThemes.js +24 -33
  58. package/dist/components/Markdown/codeThemes.js.map +1 -1
  59. package/dist/components/Markdown/markdownComponents.js +203 -208
  60. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  61. package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
  62. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  63. package/dist/components/Markdown/useMarkdownSource.js +46 -46
  64. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  65. package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
  66. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  67. package/dist/components/Markdown/useMermaidRenderer.js +41 -42
  68. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  69. package/dist/components/Modal/index.js +82 -82
  70. package/dist/components/Modal/index.js.map +1 -1
  71. package/dist/components/MultipleChoice/index.d.ts +44 -0
  72. package/dist/components/MultipleChoice/index.js +52 -0
  73. package/dist/components/MultipleChoice/index.js.map +1 -0
  74. package/dist/components/Notification/index.d.ts +17 -0
  75. package/dist/components/Page/index.js +40 -71
  76. package/dist/components/Page/index.js.map +1 -1
  77. package/dist/components/PageHeader/index.js +28 -28
  78. package/dist/components/PageHeader/index.js.map +1 -1
  79. package/dist/components/ProtectedRoute/index.js +8 -9
  80. package/dist/components/ProtectedRoute/index.js.map +1 -1
  81. package/dist/components/Row/index.d.ts +28 -0
  82. package/dist/components/Row/index.js +30 -0
  83. package/dist/components/Row/index.js.map +1 -0
  84. package/dist/components/Select/index.js +251 -254
  85. package/dist/components/Select/index.js.map +1 -1
  86. package/dist/components/SidebarToggleButton/index.js +56 -59
  87. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  88. package/dist/components/Slider/index.d.ts +39 -0
  89. package/dist/components/Slider/index.js +52 -0
  90. package/dist/components/Slider/index.js.map +1 -0
  91. package/dist/components/StatCard/index.d.ts +29 -1
  92. package/dist/components/StatCard/index.js +189 -86
  93. package/dist/components/StatCard/index.js.map +1 -1
  94. package/dist/components/Switch/index.d.ts +34 -0
  95. package/dist/components/Switch/index.js +55 -0
  96. package/dist/components/Switch/index.js.map +1 -0
  97. package/dist/components/Tab/index.d.ts +40 -0
  98. package/dist/components/Table/index.js +109 -121
  99. package/dist/components/Table/index.js.map +1 -1
  100. package/dist/components/Tabs/index.js +28 -38
  101. package/dist/components/Tabs/index.js.map +1 -1
  102. package/dist/components/Text/index.d.ts +43 -0
  103. package/dist/components/Text/index.js +55 -0
  104. package/dist/components/Text/index.js.map +1 -0
  105. package/dist/components/Tooltip/index.d.ts +23 -0
  106. package/dist/components/Tooltip/index.js +34 -0
  107. package/dist/components/Tooltip/index.js.map +1 -0
  108. package/dist/components/Tree/Tree.js +205 -205
  109. package/dist/components/Tree/Tree.js.map +1 -1
  110. package/dist/components/pro/ArticleContextMenu/index.js +86 -87
  111. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  112. package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
  113. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  114. package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
  115. package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
  116. package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
  117. package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
  118. package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
  119. package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
  120. package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
  121. package/dist/components/pro/Calendar/index.d.ts +7 -0
  122. package/dist/components/pro/Calendar/types.d.ts +151 -0
  123. package/dist/components/pro/Calendar/utils.d.ts +94 -0
  124. package/dist/components/pro/Chat/Chat.d.ts +6 -0
  125. package/dist/components/pro/Chat/index.d.ts +2 -0
  126. package/dist/components/pro/Chat/types.d.ts +84 -0
  127. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -327
  128. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  129. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -224
  130. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  131. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
  132. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
  133. package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
  134. package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
  135. package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
  136. package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
  137. package/dist/components/pro/CodeEditor/langs/index.js +7 -15
  138. package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
  139. package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
  140. package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
  141. package/dist/components/pro/CodeEditor/langs/python.js +4 -40
  142. package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
  143. package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
  144. package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
  145. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
  146. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  147. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
  148. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  149. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
  150. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  151. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
  152. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  153. package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
  154. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  155. package/dist/components/pro/CodeEditor/themes.js +513 -483
  156. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  157. package/dist/components/pro/CodeEditor/types.d.ts +1 -1
  158. package/dist/components/pro/CodeEditor/utils.js +171 -175
  159. package/dist/components/pro/CodeEditor/utils.js.map +1 -1
  160. package/dist/components/pro/DataTable/DataTable.js +305 -306
  161. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  162. package/dist/components/pro/DataTable/Filters.js +299 -314
  163. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  164. package/dist/components/pro/DataTable/PivotPanel.js +203 -204
  165. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  166. package/dist/components/pro/DataTable/PivotView.js +142 -144
  167. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  168. package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
  169. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  170. package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
  171. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  172. package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
  173. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  174. package/dist/components/pro/DataTable/components/TableBody.js +93 -94
  175. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  176. package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
  177. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  178. package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
  179. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  180. package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
  181. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  182. package/dist/components/pro/DataTable/extension.js +5 -5
  183. package/dist/components/pro/DataTable/extension.js.map +1 -1
  184. package/dist/components/pro/DataTable/pivotEngine.js +84 -92
  185. package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
  186. package/dist/components/pro/DataTable/pivotExtension.js +93 -93
  187. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  188. package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
  189. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  190. package/dist/components/pro/DataTable/tanstack-table.js +45 -62
  191. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  192. package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
  193. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  194. package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
  195. package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
  196. package/dist/components/pro/DataTable/utils.js +156 -168
  197. package/dist/components/pro/DataTable/utils.js.map +1 -1
  198. package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
  199. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  200. package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
  201. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  202. package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
  203. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  204. package/dist/components/pro/FileExplorer/FileIcon.js +189 -189
  205. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  206. package/dist/components/pro/FileExplorer/GridView.js +100 -100
  207. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  208. package/dist/components/pro/FileExplorer/ListView.js +209 -209
  209. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  210. package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
  211. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  212. package/dist/components/pro/Flow/Flow.js +920 -948
  213. package/dist/components/pro/Flow/Flow.js.map +1 -1
  214. package/dist/components/pro/Flow/FlowCanvas.js +1626 -1662
  215. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  216. package/dist/components/pro/Flow/archify/build.js +85 -94
  217. package/dist/components/pro/Flow/archify/build.js.map +1 -1
  218. package/dist/components/pro/Flow/archify/convert.js +512 -519
  219. package/dist/components/pro/Flow/archify/convert.js.map +1 -1
  220. package/dist/components/pro/Flow/archify/palette.js +87 -104
  221. package/dist/components/pro/Flow/archify/palette.js.map +1 -1
  222. package/dist/components/pro/Flow/archify/presets.js +34 -37
  223. package/dist/components/pro/Flow/archify/presets.js.map +1 -1
  224. package/dist/components/pro/Flow/archify/spec.js +7 -7
  225. package/dist/components/pro/Flow/archify/spec.js.map +1 -1
  226. package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
  227. package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
  228. package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
  229. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  230. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
  231. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  232. package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
  233. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  234. package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
  235. package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
  236. package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
  237. package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
  238. package/dist/components/pro/Flow/constants.js +266 -278
  239. package/dist/components/pro/Flow/constants.js.map +1 -1
  240. package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
  241. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
  242. package/dist/components/pro/Flow/context/FlowContext.js +60 -61
  243. package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
  244. package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
  245. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  246. package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
  247. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  248. package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
  249. package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
  250. package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
  251. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  252. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
  253. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
  254. package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
  255. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  256. package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
  257. package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
  258. package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
  259. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  260. package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
  261. package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
  262. package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
  263. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  264. package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
  265. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  266. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
  267. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  268. package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -180
  269. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  270. package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
  271. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  272. package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
  273. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  274. package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
  275. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  276. package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
  277. package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
  278. package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
  279. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  280. package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
  281. package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
  282. package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
  283. package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
  284. package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
  285. package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
  286. package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
  287. package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
  288. package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
  289. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  290. package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
  291. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  292. package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
  293. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  294. package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
  295. package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
  296. package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -242
  297. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  298. package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
  299. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  300. package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
  301. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  302. package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
  303. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  304. package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
  305. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  306. package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
  307. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  308. package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
  309. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  310. package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
  311. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  312. package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
  313. package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
  314. package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
  315. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  316. package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
  317. package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
  318. package/dist/components/pro/Flow/nodes/shapes.js +556 -589
  319. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  320. package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
  321. package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
  322. package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
  323. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  324. package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
  325. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  326. package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
  327. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  328. package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
  329. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  330. package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
  331. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  332. package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
  333. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  334. package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
  335. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  336. package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
  337. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  338. package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
  339. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  340. package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -248
  341. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  342. package/dist/components/pro/Flow/panels/PresentationMode.js +137 -140
  343. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  344. package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
  345. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  346. package/dist/components/pro/Flow/panels/ShapePalette.js +557 -572
  347. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  348. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
  349. package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
  350. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  351. package/dist/components/pro/Flow/types.js +26 -26
  352. package/dist/components/pro/Flow/types.js.map +1 -1
  353. package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
  354. package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
  355. package/dist/components/pro/Flow/utils/gradient.js +55 -55
  356. package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
  357. package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
  358. package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
  359. package/dist/components/pro/Flow/utils/themeColor.js +185 -195
  360. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
  361. package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
  362. package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
  363. package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
  364. package/dist/components/pro/Gantt/index.d.ts +6 -0
  365. package/dist/components/pro/Gantt/types.d.ts +478 -0
  366. package/dist/components/pro/Gantt/utils.d.ts +124 -0
  367. package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
  368. package/dist/components/pro/Resizable/index.d.ts +2 -0
  369. package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
  370. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  371. package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
  372. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  373. package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
  374. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  375. package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
  376. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  377. package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
  378. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  379. package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
  380. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  381. package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
  382. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  383. package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
  384. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  385. package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
  386. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  387. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
  388. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  389. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
  390. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  391. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
  392. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  393. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
  394. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  395. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
  396. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  397. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
  398. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  399. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
  400. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  401. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
  402. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  403. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
  404. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  405. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
  406. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  407. package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
  408. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  409. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
  410. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  411. package/dist/components/pro/RichTextEditor/types.js +75 -75
  412. package/dist/components/pro/RichTextEditor/types.js.map +1 -1
  413. package/dist/contexts/AppContext.d.ts +1 -1
  414. package/dist/contexts/AppContext.js +216 -221
  415. package/dist/contexts/AppContext.js.map +1 -1
  416. package/dist/data-table.js +15 -41
  417. package/dist/data-table.js.map +1 -1
  418. package/dist/dishui.css +1 -1
  419. package/dist/flow.js +27 -83
  420. package/dist/hooks/useClickOutside.js +18 -18
  421. package/dist/hooks/useClickOutside.js.map +1 -1
  422. package/dist/hooks/useContainerElement.js +9 -9
  423. package/dist/hooks/useContainerElement.js.map +1 -1
  424. package/dist/hooks/useControllableState.js +33 -35
  425. package/dist/hooks/useControllableState.js.map +1 -1
  426. package/dist/hooks/useCopyToClipboard.js +16 -16
  427. package/dist/hooks/useCopyToClipboard.js.map +1 -1
  428. package/dist/hooks/useDebounce.js +14 -14
  429. package/dist/hooks/useDebounce.js.map +1 -1
  430. package/dist/hooks/useDraggable.js +50 -50
  431. package/dist/hooks/useDraggable.js.map +1 -1
  432. package/dist/hooks/useTableColumns.js +39 -41
  433. package/dist/hooks/useTableColumns.js.map +1 -1
  434. package/dist/hooks/useTableData.js +67 -68
  435. package/dist/hooks/useTableData.js.map +1 -1
  436. package/dist/index-nostyled.d.ts +8 -0
  437. package/dist/index.d.ts +27 -1
  438. package/dist/index.js +105 -241
  439. package/dist/layouts/MainLayout.js +56 -56
  440. package/dist/layouts/MainLayout.js.map +1 -1
  441. package/dist/layouts/Navbar.js +214 -214
  442. package/dist/layouts/Navbar.js.map +1 -1
  443. package/dist/layouts/Sidebar.js +184 -186
  444. package/dist/layouts/Sidebar.js.map +1 -1
  445. package/dist/layouts/headbar/Headbar.js +25 -25
  446. package/dist/layouts/headbar/Headbar.js.map +1 -1
  447. package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
  448. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  449. package/dist/layouts/headbar/HeadbarSearch.js +120 -120
  450. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  451. package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
  452. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  453. package/dist/layouts/headbar/HeadbarTitle.js +26 -26
  454. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  455. package/dist/lite.js +9 -24
  456. package/dist/markdown.js +4 -9
  457. package/dist/pages/components/Calendar/index.d.ts +3 -0
  458. package/dist/pages/components/Calendar/index.en.d.ts +3 -0
  459. package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
  460. package/dist/pages/components/Chat/index.d.ts +3 -0
  461. package/dist/pages/components/Chat/index.en.d.ts +3 -0
  462. package/dist/pages/components/Chat/index.zh.d.ts +3 -0
  463. package/dist/pages/components/FloatWindow/index.d.ts +3 -0
  464. package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
  465. package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
  466. package/dist/pages/components/Gantt/index.d.ts +3 -0
  467. package/dist/pages/components/Gantt/index.en.d.ts +3 -0
  468. package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
  469. package/dist/pages/components/GridLayout/index.d.ts +3 -0
  470. package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
  471. package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
  472. package/dist/pages/components/Notification/index.d.ts +3 -0
  473. package/dist/pages/components/Notification/index.en.d.ts +3 -0
  474. package/dist/pages/components/Notification/index.zh.d.ts +3 -0
  475. package/dist/pages/components/Resizable/index.d.ts +3 -0
  476. package/dist/pages/components/Resizable/index.en.d.ts +3 -0
  477. package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
  478. package/dist/pages/components/Tab/index.d.ts +3 -0
  479. package/dist/pages/components/Tab/index.en.d.ts +3 -0
  480. package/dist/pages/components/Tab/index.zh.d.ts +3 -0
  481. package/dist/styles/themeStyles.js +87 -86
  482. package/dist/styles/themeStyles.js.map +1 -1
  483. package/dist/utils/cn.d.ts +13 -0
  484. package/dist/utils/cn.js +16 -0
  485. package/dist/utils/cn.js.map +1 -0
  486. package/dist/utils/i18n.js +690 -602
  487. package/dist/utils/i18n.js.map +1 -1
  488. package/dist/utils/menu.js +94 -94
  489. package/dist/utils/menu.js.map +1 -1
  490. package/dist/utils/rehype-code-meta.js +14 -14
  491. package/dist/utils/rehype-code-meta.js.map +1 -1
  492. package/dist/utils/remark-code-meta.js +9 -9
  493. package/dist/utils/remark-code-meta.js.map +1 -1
  494. package/dist/utils/routerBuilder.js +59 -60
  495. package/dist/utils/routerBuilder.js.map +1 -1
  496. package/dist/utils/selection.js +28 -29
  497. package/dist/utils/selection.js.map +1 -1
  498. package/dist/utils/themes.js +275 -255
  499. package/dist/utils/themes.js.map +1 -1
  500. package/package.json +19 -6
@@ -1,249 +1,243 @@
1
- import { usePivotExtension as F } from "../../DataTable/pivotExtension.js";
2
- import A, { createColumn as R } from "../../../../data-table.js";
3
- import C from "../../../Chart/Chart.js";
4
- import { areaY as T, barX as M, barY as N, defineChart as p, dot as P, lineY as S } from "../../../../chart.js";
5
- import { DATA_CHART_PALETTE as w, labelFor as y } from "./dataUtils.js";
6
- import { useLayoutEffect as z, useMemo as v, useRef as D, useState as E } from "react";
7
- import { jsx as u } from "react/jsx-runtime";
8
- import { scaleBand as x } from "@tanstack/charts/scales/band";
9
- import { scaleLinear as h } from "@tanstack/charts/scales/linear";
10
- import { scalePoint as k } from "@tanstack/charts/scales/point";
11
- import { pie as V, polar as B, radialArc as L } from "@tanstack/charts/polar";
12
- function O({ config: e }) {
13
- const o = v(() => e.columns.map((r) => R(r.key, r.label ?? r.key, { enableSorting: !0 })), [e.columns]), l = v(() => e.columns.map((r) => ({
14
- field: r.key,
15
- label: r.label ?? r.key,
16
- numeric: r.type === "number"
17
- })), [e.columns]), t = e.pivot, s = JSON.stringify({
18
- e: !!t?.enabled,
19
- r: t?.rowFields ?? [],
20
- c: t?.colFields ?? [],
21
- v: t?.values ?? []
22
- });
23
- return /* @__PURE__ */ u("div", {
24
- className: "flow-data-table",
25
- children: /* @__PURE__ */ u(Y, {
26
- config: e,
27
- columns: o,
28
- pivotFields: l
29
- }, s)
30
- });
1
+ import { usePivotExtension as e } from "../../DataTable/pivotExtension.js";
2
+ import t, { createColumn as n } from "../../../../data-table.js";
3
+ import r from "../../../Chart/Chart.js";
4
+ import { areaY as i, barX as a, barY as o, defineChart as s, dot as c, lineY as l } from "../../../../chart.js";
5
+ import { DATA_CHART_PALETTE as u, labelFor as d } from "./dataUtils.js";
6
+ import { useLayoutEffect as f, useMemo as p, useRef as m, useState as h } from "react";
7
+ import { jsx as g } from "react/jsx-runtime";
8
+ import { scaleBand as _ } from "@tanstack/charts/scales/band";
9
+ import { scaleLinear as v } from "@tanstack/charts/scales/linear";
10
+ import { scalePoint as y } from "@tanstack/charts/scales/point";
11
+ import { pie as b, polar as x, radialArc as S } from "@tanstack/charts/polar";
12
+ //#region src/components/pro/Flow/nodes/DataNodeView.tsx
13
+ function C({ config: e }) {
14
+ let t = p(() => e.columns.map((e) => n(e.key, e.label ?? e.key, { enableSorting: !0 })), [e.columns]), r = p(() => e.columns.map((e) => ({
15
+ field: e.key,
16
+ label: e.label ?? e.key,
17
+ numeric: e.type === "number"
18
+ })), [e.columns]), i = e.pivot, a = JSON.stringify({
19
+ e: !!i?.enabled,
20
+ r: i?.rowFields ?? [],
21
+ c: i?.colFields ?? [],
22
+ v: i?.values ?? []
23
+ });
24
+ return /* @__PURE__ */ g("div", {
25
+ className: "flow-data-table",
26
+ children: /* @__PURE__ */ g(w, {
27
+ config: e,
28
+ columns: t,
29
+ pivotFields: r
30
+ }, a)
31
+ });
31
32
  }
32
- function Y({ config: e, columns: o, pivotFields: l }) {
33
- const t = e.pivot, s = F({
34
- fields: l,
35
- initialActive: !!t?.enabled,
36
- initialRowFields: t?.rowFields ?? [],
37
- initialColFields: t?.colFields ?? [],
38
- initialValues: t?.values ?? [],
39
- panelPlacement: t?.panelPlacement ?? "top",
40
- lang: "zh",
41
- hideModeToggle: !0
42
- });
43
- return /* @__PURE__ */ u(A, {
44
- data: e.rows,
45
- columns: o,
46
- enableSorting: !0,
47
- enablePagination: e.rows.length > 50,
48
- pageSize: 50,
49
- extensions: [s]
50
- });
33
+ function w({ config: n, columns: r, pivotFields: i }) {
34
+ let a = n.pivot, o = e({
35
+ fields: i,
36
+ initialActive: !!a?.enabled,
37
+ initialRowFields: a?.rowFields ?? [],
38
+ initialColFields: a?.colFields ?? [],
39
+ initialValues: a?.values ?? [],
40
+ panelPlacement: a?.panelPlacement ?? "top",
41
+ lang: "zh",
42
+ hideModeToggle: !0
43
+ });
44
+ return /* @__PURE__ */ g(t, {
45
+ data: n.rows,
46
+ columns: r,
47
+ enableSorting: !0,
48
+ enablePagination: n.rows.length > 50,
49
+ pageSize: 50,
50
+ extensions: [o]
51
+ });
51
52
  }
52
- function _(e, o) {
53
- return v(() => {
54
- const l = e.chart;
55
- if (!l) return null;
56
- const t = l.xField, s = (l.yFields ?? []).filter(Boolean);
57
- if (!t || s.length === 0) return null;
58
- const r = e.rows, f = l.palette?.length ? l.palette : null, d = (a, n) => l.seriesColors?.[a] ?? f?.[n % f.length] ?? o ?? w[n % w.length];
59
- switch (l.type) {
60
- case "line":
61
- return p({
62
- marks: s.map((a, n) => S(r, {
63
- id: a,
64
- x: t,
65
- y: a,
66
- stroke: d(a, n),
67
- points: !0
68
- })),
69
- scales: {
70
- x: { scale: () => k().padding(0.35) },
71
- y: {
72
- scale: h,
73
- nice: !0,
74
- grid: !0
75
- }
76
- }
77
- });
78
- case "area":
79
- return p({
80
- marks: s.map((a, n) => T(r, {
81
- id: a,
82
- x: t,
83
- y: a,
84
- fill: d(a, n),
85
- fillOpacity: 0.35,
86
- stroke: d(a, n)
87
- })),
88
- scales: {
89
- x: { scale: () => k().padding(0.35) },
90
- y: {
91
- scale: h,
92
- nice: !0,
93
- grid: !0
94
- }
95
- }
96
- });
97
- case "scatter":
98
- return p({
99
- marks: [P(r, {
100
- id: "points",
101
- x: t,
102
- y: s[0],
103
- r: 6,
104
- fill: d(s[0], 0)
105
- })],
106
- scales: {
107
- x: {
108
- scale: h,
109
- nice: !0,
110
- grid: !0
111
- },
112
- y: {
113
- scale: h,
114
- nice: !0,
115
- grid: !0
116
- }
117
- }
118
- });
119
- case "pie": {
120
- const a = s[0], n = /* @__PURE__ */ new Map();
121
- for (const i of r) {
122
- const m = String(i[t] ?? "");
123
- n.set(m, (n.get(m) ?? 0) + (Number(i[a]) || 0));
124
- }
125
- const c = Array.from(n, ([i, m]) => ({
126
- cat: i,
127
- value: m
128
- })), g = V(c, { value: "value" }), b = l.palette?.length ? l.palette : w;
129
- return p({
130
- marks: [B({
131
- marks: [L(g, {
132
- startAngle: "startAngle",
133
- endAngle: "endAngle",
134
- padAngle: "padAngle",
135
- innerRadius: 0,
136
- color: "cat",
137
- key: "cat"
138
- })],
139
- scales: {
140
- angle: null,
141
- radius: null
142
- }
143
- })],
144
- scales: {
145
- x: null,
146
- y: null
147
- },
148
- color: {
149
- domain: c.map((i) => i.cat),
150
- range: b
151
- }
152
- });
153
- }
154
- case "barHorizontal":
155
- return p({
156
- marks: s.map((a, n) => M(r, {
157
- id: a,
158
- y: t,
159
- x: a,
160
- fill: d(a, n),
161
- radius: 4
162
- })),
163
- scales: {
164
- y: { scale: () => x().padding(0.25) },
165
- x: {
166
- scale: h,
167
- nice: !0,
168
- grid: !0
169
- }
170
- }
171
- });
172
- default:
173
- return p({
174
- marks: s.map((a, n) => N(r, {
175
- id: a,
176
- x: t,
177
- y: a,
178
- fill: d(a, n),
179
- radius: 4
180
- })),
181
- scales: {
182
- x: { scale: () => x().padding(0.25) },
183
- y: {
184
- scale: h,
185
- nice: !0,
186
- grid: !0
187
- }
188
- }
189
- });
190
- }
191
- }, [e, o]);
53
+ function T(e, t) {
54
+ return p(() => {
55
+ let n = e.chart;
56
+ if (!n) return null;
57
+ let r = n.xField, d = (n.yFields ?? []).filter(Boolean);
58
+ if (!r || d.length === 0) return null;
59
+ let f = e.rows, p = n.palette?.length ? n.palette : null, m = (e, r) => n.seriesColors?.[e] ?? p?.[r % p.length] ?? t ?? u[r % u.length];
60
+ switch (n.type) {
61
+ case "line": return s({
62
+ marks: d.map((e, t) => l(f, {
63
+ id: e,
64
+ x: r,
65
+ y: e,
66
+ stroke: m(e, t),
67
+ points: !0
68
+ })),
69
+ scales: {
70
+ x: { scale: () => y().padding(.35) },
71
+ y: {
72
+ scale: v,
73
+ nice: !0,
74
+ grid: !0
75
+ }
76
+ }
77
+ });
78
+ case "area": return s({
79
+ marks: d.map((e, t) => i(f, {
80
+ id: e,
81
+ x: r,
82
+ y: e,
83
+ fill: m(e, t),
84
+ fillOpacity: .35,
85
+ stroke: m(e, t)
86
+ })),
87
+ scales: {
88
+ x: { scale: () => y().padding(.35) },
89
+ y: {
90
+ scale: v,
91
+ nice: !0,
92
+ grid: !0
93
+ }
94
+ }
95
+ });
96
+ case "scatter": return s({
97
+ marks: [c(f, {
98
+ id: "points",
99
+ x: r,
100
+ y: d[0],
101
+ r: 6,
102
+ fill: m(d[0], 0)
103
+ })],
104
+ scales: {
105
+ x: {
106
+ scale: v,
107
+ nice: !0,
108
+ grid: !0
109
+ },
110
+ y: {
111
+ scale: v,
112
+ nice: !0,
113
+ grid: !0
114
+ }
115
+ }
116
+ });
117
+ case "pie": {
118
+ let e = d[0], t = /* @__PURE__ */ new Map();
119
+ for (let n of f) {
120
+ let i = String(n[r] ?? "");
121
+ t.set(i, (t.get(i) ?? 0) + (Number(n[e]) || 0));
122
+ }
123
+ let i = Array.from(t, ([e, t]) => ({
124
+ cat: e,
125
+ value: t
126
+ })), a = b(i, { value: "value" }), o = n.palette?.length ? n.palette : u;
127
+ return s({
128
+ marks: [x({
129
+ marks: [S(a, {
130
+ startAngle: "startAngle",
131
+ endAngle: "endAngle",
132
+ padAngle: "padAngle",
133
+ innerRadius: 0,
134
+ color: "cat",
135
+ key: "cat"
136
+ })],
137
+ scales: {
138
+ angle: null,
139
+ radius: null
140
+ }
141
+ })],
142
+ scales: {
143
+ x: null,
144
+ y: null
145
+ },
146
+ color: {
147
+ domain: i.map((e) => e.cat),
148
+ range: o
149
+ }
150
+ });
151
+ }
152
+ case "barHorizontal": return s({
153
+ marks: d.map((e, t) => a(f, {
154
+ id: e,
155
+ y: r,
156
+ x: e,
157
+ fill: m(e, t),
158
+ radius: 4
159
+ })),
160
+ scales: {
161
+ y: { scale: () => _().padding(.25) },
162
+ x: {
163
+ scale: v,
164
+ nice: !0,
165
+ grid: !0
166
+ }
167
+ }
168
+ });
169
+ default: return s({
170
+ marks: d.map((e, t) => o(f, {
171
+ id: e,
172
+ x: r,
173
+ y: e,
174
+ fill: m(e, t),
175
+ radius: 4
176
+ })),
177
+ scales: {
178
+ x: { scale: () => _().padding(.25) },
179
+ y: {
180
+ scale: v,
181
+ nice: !0,
182
+ grid: !0
183
+ }
184
+ }
185
+ });
186
+ }
187
+ }, [e, t]);
192
188
  }
193
- function j({ config: e, surfaceColor: o, textColor: l, primaryColor: t }) {
194
- const s = _(e, t), r = e.chart, f = D(null), [d, a] = E({
195
- w: 0,
196
- h: 0
197
- });
198
- if (z(() => {
199
- const c = f.current;
200
- if (!c) return;
201
- const g = () => {
202
- const i = c.getBoundingClientRect(), m = i.width && c.offsetWidth ? i.width / c.offsetWidth : 1;
203
- a({
204
- w: Math.max(1, Math.round(i.width / (m || 1))),
205
- h: Math.max(1, Math.round(i.height / (m || 1)))
206
- });
207
- };
208
- g();
209
- const b = new ResizeObserver(g);
210
- return b.observe(c), () => b.disconnect();
211
- }, []), !s) return /* @__PURE__ */ u("div", {
212
- className: "flow-data-empty",
213
- children: e.columns.length === 0 ? "尚无数据,请在属性面板上传或填写数据" : "请在属性面板选择 X 轴与至少一个数值字段"
214
- });
215
- const n = r && r.xField ? `${y(e.columns, r.xField)} · ${(r.yFields ?? []).map((c) => y(e.columns, c)).join(", ")}` : "Chart";
216
- return /* @__PURE__ */ u("div", {
217
- className: "flow-data-chart",
218
- ref: f,
219
- style: l ? { color: l } : void 0,
220
- children: d.h > 0 && /* @__PURE__ */ u(C, {
221
- definition: s,
222
- "aria-label": n,
223
- height: d.h,
224
- style: {
225
- background: o ?? "transparent",
226
- borderColor: "transparent",
227
- color: l ?? "inherit",
228
- padding: 0
229
- }
230
- })
231
- });
189
+ function E({ config: e, surfaceColor: t, textColor: n, primaryColor: i }) {
190
+ let a = T(e, i), o = e.chart, s = m(null), [c, l] = h({
191
+ w: 0,
192
+ h: 0
193
+ });
194
+ if (f(() => {
195
+ let e = s.current;
196
+ if (!e) return;
197
+ let t = () => {
198
+ let t = e.getBoundingClientRect(), n = t.width && e.offsetWidth ? t.width / e.offsetWidth : 1;
199
+ l({
200
+ w: Math.max(1, Math.round(t.width / (n || 1))),
201
+ h: Math.max(1, Math.round(t.height / (n || 1)))
202
+ });
203
+ };
204
+ t();
205
+ let n = new ResizeObserver(t);
206
+ return n.observe(e), () => n.disconnect();
207
+ }, []), !a) return /* @__PURE__ */ g("div", {
208
+ className: "flow-data-empty",
209
+ children: e.columns.length === 0 ? "尚无数据,请在属性面板上传或填写数据" : "请在属性面板选择 X 轴与至少一个数值字段"
210
+ });
211
+ let u = o && o.xField ? `${d(e.columns, o.xField)} · ${(o.yFields ?? []).map((t) => d(e.columns, t)).join(", ")}` : "Chart";
212
+ return /* @__PURE__ */ g("div", {
213
+ className: "flow-data-chart",
214
+ ref: s,
215
+ style: n ? { color: n } : void 0,
216
+ children: c.h > 0 && /* @__PURE__ */ g(r, {
217
+ definition: a,
218
+ "aria-label": u,
219
+ height: c.h,
220
+ style: {
221
+ background: t ?? "transparent",
222
+ borderColor: "transparent",
223
+ color: n ?? "inherit",
224
+ padding: 0
225
+ }
226
+ })
227
+ });
232
228
  }
233
- function ee({ config: e, surfaceColor: o, textColor: l, primaryColor: t }) {
234
- return !e || e.columns.length === 0 ? /* @__PURE__ */ u("div", {
235
- className: "flow-data-empty",
236
- children: "尚无数据,请在属性面板上传或填写数据"
237
- }) : e.view === "chart" ? /* @__PURE__ */ u(j, {
238
- config: e,
239
- surfaceColor: o,
240
- textColor: l,
241
- primaryColor: t
242
- }) : /* @__PURE__ */ u(O, { config: e });
229
+ function D({ config: e, surfaceColor: t, textColor: n, primaryColor: r }) {
230
+ return !e || e.columns.length === 0 ? /* @__PURE__ */ g("div", {
231
+ className: "flow-data-empty",
232
+ children: "尚无数据,请在属性面板上传或填写数据"
233
+ }) : e.view === "chart" ? /* @__PURE__ */ g(E, {
234
+ config: e,
235
+ surfaceColor: t,
236
+ textColor: n,
237
+ primaryColor: r
238
+ }) : /* @__PURE__ */ g(C, { config: e });
243
239
  }
244
- export {
245
- ee as DataNodeView,
246
- ee as default
247
- };
240
+ //#endregion
241
+ export { D as DataNodeView, D as default };
248
242
 
249
243
  //# sourceMappingURL=DataNodeView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataNodeView.js","names":[],"sources":["../../../../../src/components/pro/Flow/nodes/DataNodeView.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState, useLayoutEffect } from 'react';\nimport Chart, {\n areaY,\n barX,\n barY,\n defineChart,\n dot,\n lineY,\n} from '../../../Chart';\nimport { scaleBand } from '@tanstack/charts/scales/band';\nimport { scaleLinear } from '@tanstack/charts/scales/linear';\nimport { scalePoint } from '@tanstack/charts/scales/point';\nimport { polar, pie, radialArc } from '@tanstack/charts/polar';\nimport DataTable, {\n createColumn,\n usePivotExtension,\n type ColumnDef,\n type PivotField,\n type PivotValue,\n} from '../../DataTable';\nimport type { FlowDataConfig } from '../types';\nimport { DATA_CHART_PALETTE, labelFor } from './dataUtils';\n\n/** Renders the table (optionally pivoted) surface of a Data node. */\nfunction DataTableView({ config }: { config: FlowDataConfig }) {\n const columns = useMemo<ColumnDef<Record<string, unknown>>[]>(\n () =>\n config.columns.map((col) =>\n createColumn<Record<string, unknown>>(col.key, col.label ?? col.key, {\n enableSorting: true,\n }),\n ),\n [config.columns],\n );\n\n const pivotFields = useMemo<PivotField[]>(\n () =>\n config.columns.map((col) => ({\n field: col.key,\n label: col.label ?? col.key,\n numeric: col.type === 'number',\n })),\n [config.columns],\n );\n\n const pivot = config.pivot;\n // Remount the pivot extension when the inspector-controlled bits change, so\n // the enabled toggle / initial fields take effect (the extension keeps its\n // own interactive state otherwise). Panel placement stays reactive.\n const pivotKey = JSON.stringify({\n e: !!pivot?.enabled,\n r: pivot?.rowFields ?? [],\n c: pivot?.colFields ?? [],\n v: pivot?.values ?? [],\n });\n\n return (\n <div className=\"flow-data-table\">\n <PivotableTable\n key={pivotKey}\n config={config}\n columns={columns}\n pivotFields={pivotFields}\n />\n </div>\n );\n}\n\nfunction PivotableTable({\n config,\n columns,\n pivotFields,\n}: {\n config: FlowDataConfig;\n columns: ColumnDef<Record<string, unknown>>[];\n pivotFields: PivotField[];\n}) {\n const pivot = config.pivot;\n const pivotExtension = usePivotExtension<Record<string, unknown>>({\n fields: pivotFields,\n initialActive: !!pivot?.enabled,\n initialRowFields: pivot?.rowFields ?? [],\n initialColFields: pivot?.colFields ?? [],\n initialValues: (pivot?.values as PivotValue[] | undefined) ?? [],\n panelPlacement: pivot?.panelPlacement ?? 'top',\n lang: 'zh',\n // 透视开关由 Inspector 统一控制,节点内不再渲染开关,避免占用空间。\n hideModeToggle: true,\n });\n\n return (\n <DataTable<Record<string, unknown>>\n data={config.rows}\n columns={columns}\n enableSorting\n enablePagination={config.rows.length > 50}\n pageSize={50}\n extensions={[pivotExtension]}\n />\n );\n}\n\n/** Builds a TanStack Charts definition from the Data node's chart config. */\nfunction useChartDefinition(config: FlowDataConfig, primaryColor?: string) {\n return useMemo(() => {\n const chart = config.chart;\n if (!chart) return null;\n const xField = chart.xField;\n const yFields = (chart.yFields ?? []).filter(Boolean);\n if (!xField || yFields.length === 0) return null;\n\n const rows = config.rows as any[];\n // Series color resolution order: an explicit per-series override, then a\n // configured chart palette, then the node's own `color` (the drawing's\n // primary color), then the built-in default palette.\n const paletteRange = chart.palette?.length ? chart.palette : null;\n const seriesColor = (field: string, i: number) =>\n chart.seriesColors?.[field]\n ?? paletteRange?.[i % paletteRange.length]\n ?? primaryColor\n ?? DATA_CHART_PALETTE[i % DATA_CHART_PALETTE.length];\n\n switch (chart.type) {\n case 'line':\n return defineChart({\n marks: yFields.map((yf, i) =>\n lineY(rows, { id: yf, x: xField, y: yf, stroke: seriesColor(yf, i), points: true }),\n ),\n scales: {\n x: { scale: () => scalePoint<string>().padding(0.35) },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'area':\n return defineChart({\n marks: yFields.map((yf, i) =>\n areaY(rows, {\n id: yf,\n x: xField,\n y: yf,\n fill: seriesColor(yf, i),\n fillOpacity: 0.35,\n stroke: seriesColor(yf, i),\n }),\n ),\n scales: {\n x: { scale: () => scalePoint<string>().padding(0.35) },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'scatter':\n // Scatter uses the first two numeric fields as x/y.\n return defineChart({\n marks: [\n dot(rows, {\n id: 'points',\n x: xField,\n y: yFields[0],\n r: 6,\n fill: seriesColor(yFields[0], 0),\n }),\n ],\n scales: {\n x: { scale: scaleLinear, nice: true, grid: true },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'pie': {\n // Part-to-whole via a polar pie over the first measure. Duplicate\n // categories are aggregated (summed) so slices are unique.\n const yf = yFields[0];\n const totals = new Map<string, number>();\n for (const r of rows) {\n const k = String(r[xField] ?? '');\n totals.set(k, (totals.get(k) ?? 0) + (Number(r[yf]) || 0));\n }\n const pieRows = Array.from(totals, ([cat, value]) => ({ cat, value }));\n const arranged = pie(pieRows, { value: 'value' });\n const range = chart.palette?.length ? chart.palette : DATA_CHART_PALETTE;\n return defineChart({\n marks: [\n polar({\n marks: [\n radialArc(arranged, {\n startAngle: 'startAngle',\n endAngle: 'endAngle',\n padAngle: 'padAngle',\n innerRadius: 0,\n color: 'cat',\n key: 'cat',\n }),\n ],\n scales: { angle: null, radius: null },\n }),\n ],\n scales: { x: null, y: null },\n color: { domain: pieRows.map((d) => d.cat), range },\n });\n }\n\n case 'barHorizontal':\n return defineChart({\n marks: yFields.map((yf, i) =>\n barX(rows, { id: yf, y: xField, x: yf, fill: seriesColor(yf, i), radius: 4 }),\n ),\n scales: {\n y: { scale: () => scaleBand<string>().padding(0.25) },\n x: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'bar':\n default:\n return defineChart({\n marks: yFields.map((yf, i) =>\n barY(rows, { id: yf, x: xField, y: yf, fill: seriesColor(yf, i), radius: 4 }),\n ),\n scales: {\n x: { scale: () => scaleBand<string>().padding(0.25) },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n }\n }, [config, primaryColor]);\n}\n\n/** Renders the chart surface of a Data node. */\nfunction DataChartView({ config, surfaceColor, textColor, primaryColor }: { config: FlowDataConfig; surfaceColor?: string; textColor?: string; primaryColor?: string }) {\n const definition = useChartDefinition(config, primaryColor);\n const chart = config.chart;\n\n // TanStack Charts needs a concrete pixel height; inside the media overlay the\n // node box is a fixed size but percentage heights don't always resolve before\n // first paint (esp. in read-only / preview renders), leaving the chart blank.\n // Measure the container and pass an explicit height.\n const wrapRef = useRef<HTMLDivElement>(null);\n const [size, setSize] = useState<{ w: number; h: number }>({ w: 0, h: 0 });\n useLayoutEffect(() => {\n const el = wrapRef.current;\n if (!el) return;\n const measure = () => {\n const rect = el.getBoundingClientRect();\n // getBoundingClientRect includes the overlay's zoom scale; divide it out\n // so the chart is laid out in unscaled (world) pixels.\n const scale = rect.width && el.offsetWidth ? rect.width / el.offsetWidth : 1;\n setSize({\n w: Math.max(1, Math.round(rect.width / (scale || 1))),\n h: Math.max(1, Math.round(rect.height / (scale || 1))),\n });\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n if (!definition) {\n return (\n <div className=\"flow-data-empty\">\n {config.columns.length === 0\n ? '尚无数据,请在属性面板上传或填写数据'\n : '请在属性面板选择 X 轴与至少一个数值字段'}\n </div>\n );\n }\n\n const label =\n chart && chart.xField\n ? `${labelFor(config.columns, chart.xField)} · ${(chart.yFields ?? [])\n .map((f) => labelFor(config.columns, f))\n .join(', ')}`\n : 'Chart';\n\n return (\n <div\n className=\"flow-data-chart\"\n ref={wrapRef}\n style={textColor ? ({ color: textColor } as React.CSSProperties) : undefined}\n >\n {size.h > 0 && (\n <Chart\n definition={definition as any}\n aria-label={label}\n height={size.h}\n // Let the media node's fill show through instead of the Chart's\n // default opaque white card, and let axis/label text inherit the\n // node's text color so the chart matches Archify (or any) theming.\n style={{\n background: surfaceColor ?? 'transparent',\n borderColor: 'transparent',\n color: textColor ?? 'inherit',\n padding: 0,\n }}\n />\n )}\n </div>\n );\n}\n\n/** Dispatches to the table or chart surface based on the node's view. */\nexport function DataNodeView({\n config,\n surfaceColor,\n textColor,\n primaryColor,\n}: {\n config: FlowDataConfig;\n surfaceColor?: string;\n textColor?: string;\n primaryColor?: string;\n}) {\n if (!config || config.columns.length === 0) {\n return <div className=\"flow-data-empty\">尚无数据,请在属性面板上传或填写数据</div>;\n }\n return config.view === 'chart' ? (\n <DataChartView config={config} surfaceColor={surfaceColor} textColor={textColor} primaryColor={primaryColor} />\n ) : (\n <DataTableView config={config} />\n );\n}\n\nexport default DataNodeView;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataNodeView.js","names":[],"sources":["../../../../../src/components/pro/Flow/nodes/DataNodeView.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState, useLayoutEffect } from 'react';\nimport Chart, {\n areaY,\n barX,\n barY,\n defineChart,\n dot,\n lineY,\n} from '../../../Chart';\nimport { scaleBand } from '@tanstack/charts/scales/band';\nimport { scaleLinear } from '@tanstack/charts/scales/linear';\nimport { scalePoint } from '@tanstack/charts/scales/point';\nimport { polar, pie, radialArc } from '@tanstack/charts/polar';\nimport DataTable, {\n createColumn,\n usePivotExtension,\n type ColumnDef,\n type PivotField,\n type PivotValue,\n} from '../../DataTable';\nimport type { FlowDataConfig } from '../types';\nimport { DATA_CHART_PALETTE, labelFor } from './dataUtils';\n\n/** Renders the table (optionally pivoted) surface of a Data node. */\nfunction DataTableView({ config }: { config: FlowDataConfig }) {\n const columns = useMemo<ColumnDef<Record<string, unknown>>[]>(\n () =>\n config.columns.map((col) =>\n createColumn<Record<string, unknown>>(col.key, col.label ?? col.key, {\n enableSorting: true,\n }),\n ),\n [config.columns],\n );\n\n const pivotFields = useMemo<PivotField[]>(\n () =>\n config.columns.map((col) => ({\n field: col.key,\n label: col.label ?? col.key,\n numeric: col.type === 'number',\n })),\n [config.columns],\n );\n\n const pivot = config.pivot;\n // Remount the pivot extension when the inspector-controlled bits change, so\n // the enabled toggle / initial fields take effect (the extension keeps its\n // own interactive state otherwise). Panel placement stays reactive.\n const pivotKey = JSON.stringify({\n e: !!pivot?.enabled,\n r: pivot?.rowFields ?? [],\n c: pivot?.colFields ?? [],\n v: pivot?.values ?? [],\n });\n\n return (\n <div className=\"flow-data-table\">\n <PivotableTable\n key={pivotKey}\n config={config}\n columns={columns}\n pivotFields={pivotFields}\n />\n </div>\n );\n}\n\nfunction PivotableTable({\n config,\n columns,\n pivotFields,\n}: {\n config: FlowDataConfig;\n columns: ColumnDef<Record<string, unknown>>[];\n pivotFields: PivotField[];\n}) {\n const pivot = config.pivot;\n const pivotExtension = usePivotExtension<Record<string, unknown>>({\n fields: pivotFields,\n initialActive: !!pivot?.enabled,\n initialRowFields: pivot?.rowFields ?? [],\n initialColFields: pivot?.colFields ?? [],\n initialValues: (pivot?.values as PivotValue[] | undefined) ?? [],\n panelPlacement: pivot?.panelPlacement ?? 'top',\n lang: 'zh',\n // 透视开关由 Inspector 统一控制,节点内不再渲染开关,避免占用空间。\n hideModeToggle: true,\n });\n\n return (\n <DataTable<Record<string, unknown>>\n data={config.rows}\n columns={columns}\n enableSorting\n enablePagination={config.rows.length > 50}\n pageSize={50}\n extensions={[pivotExtension]}\n />\n );\n}\n\n/** Builds a TanStack Charts definition from the Data node's chart config. */\nfunction useChartDefinition(config: FlowDataConfig, primaryColor?: string) {\n return useMemo(() => {\n const chart = config.chart;\n if (!chart) return null;\n const xField = chart.xField;\n const yFields = (chart.yFields ?? []).filter(Boolean);\n if (!xField || yFields.length === 0) return null;\n\n const rows = config.rows as any[];\n // Series color resolution order: an explicit per-series override, then a\n // configured chart palette, then the node's own `color` (the drawing's\n // primary color), then the built-in default palette.\n const paletteRange = chart.palette?.length ? chart.palette : null;\n const seriesColor = (field: string, i: number) =>\n chart.seriesColors?.[field]\n ?? paletteRange?.[i % paletteRange.length]\n ?? primaryColor\n ?? DATA_CHART_PALETTE[i % DATA_CHART_PALETTE.length];\n\n switch (chart.type) {\n case 'line':\n return defineChart({\n marks: yFields.map((yf, i) =>\n lineY(rows, { id: yf, x: xField, y: yf, stroke: seriesColor(yf, i), points: true }),\n ),\n scales: {\n x: { scale: () => scalePoint<string>().padding(0.35) },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'area':\n return defineChart({\n marks: yFields.map((yf, i) =>\n areaY(rows, {\n id: yf,\n x: xField,\n y: yf,\n fill: seriesColor(yf, i),\n fillOpacity: 0.35,\n stroke: seriesColor(yf, i),\n }),\n ),\n scales: {\n x: { scale: () => scalePoint<string>().padding(0.35) },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'scatter':\n // Scatter uses the first two numeric fields as x/y.\n return defineChart({\n marks: [\n dot(rows, {\n id: 'points',\n x: xField,\n y: yFields[0],\n r: 6,\n fill: seriesColor(yFields[0], 0),\n }),\n ],\n scales: {\n x: { scale: scaleLinear, nice: true, grid: true },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'pie': {\n // Part-to-whole via a polar pie over the first measure. Duplicate\n // categories are aggregated (summed) so slices are unique.\n const yf = yFields[0];\n const totals = new Map<string, number>();\n for (const r of rows) {\n const k = String(r[xField] ?? '');\n totals.set(k, (totals.get(k) ?? 0) + (Number(r[yf]) || 0));\n }\n const pieRows = Array.from(totals, ([cat, value]) => ({ cat, value }));\n const arranged = pie(pieRows, { value: 'value' });\n const range = chart.palette?.length ? chart.palette : DATA_CHART_PALETTE;\n return defineChart({\n marks: [\n polar({\n marks: [\n radialArc(arranged, {\n startAngle: 'startAngle',\n endAngle: 'endAngle',\n padAngle: 'padAngle',\n innerRadius: 0,\n color: 'cat',\n key: 'cat',\n }),\n ],\n scales: { angle: null, radius: null },\n }),\n ],\n scales: { x: null, y: null },\n color: { domain: pieRows.map((d) => d.cat), range },\n });\n }\n\n case 'barHorizontal':\n return defineChart({\n marks: yFields.map((yf, i) =>\n barX(rows, { id: yf, y: xField, x: yf, fill: seriesColor(yf, i), radius: 4 }),\n ),\n scales: {\n y: { scale: () => scaleBand<string>().padding(0.25) },\n x: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n\n case 'bar':\n default:\n return defineChart({\n marks: yFields.map((yf, i) =>\n barY(rows, { id: yf, x: xField, y: yf, fill: seriesColor(yf, i), radius: 4 }),\n ),\n scales: {\n x: { scale: () => scaleBand<string>().padding(0.25) },\n y: { scale: scaleLinear, nice: true, grid: true },\n },\n });\n }\n }, [config, primaryColor]);\n}\n\n/** Renders the chart surface of a Data node. */\nfunction DataChartView({ config, surfaceColor, textColor, primaryColor }: { config: FlowDataConfig; surfaceColor?: string; textColor?: string; primaryColor?: string }) {\n const definition = useChartDefinition(config, primaryColor);\n const chart = config.chart;\n\n // TanStack Charts needs a concrete pixel height; inside the media overlay the\n // node box is a fixed size but percentage heights don't always resolve before\n // first paint (esp. in read-only / preview renders), leaving the chart blank.\n // Measure the container and pass an explicit height.\n const wrapRef = useRef<HTMLDivElement>(null);\n const [size, setSize] = useState<{ w: number; h: number }>({ w: 0, h: 0 });\n useLayoutEffect(() => {\n const el = wrapRef.current;\n if (!el) return;\n const measure = () => {\n const rect = el.getBoundingClientRect();\n // getBoundingClientRect includes the overlay's zoom scale; divide it out\n // so the chart is laid out in unscaled (world) pixels.\n const scale = rect.width && el.offsetWidth ? rect.width / el.offsetWidth : 1;\n setSize({\n w: Math.max(1, Math.round(rect.width / (scale || 1))),\n h: Math.max(1, Math.round(rect.height / (scale || 1))),\n });\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n if (!definition) {\n return (\n <div className=\"flow-data-empty\">\n {config.columns.length === 0\n ? '尚无数据,请在属性面板上传或填写数据'\n : '请在属性面板选择 X 轴与至少一个数值字段'}\n </div>\n );\n }\n\n const label =\n chart && chart.xField\n ? `${labelFor(config.columns, chart.xField)} · ${(chart.yFields ?? [])\n .map((f) => labelFor(config.columns, f))\n .join(', ')}`\n : 'Chart';\n\n return (\n <div\n className=\"flow-data-chart\"\n ref={wrapRef}\n style={textColor ? ({ color: textColor } as React.CSSProperties) : undefined}\n >\n {size.h > 0 && (\n <Chart\n definition={definition as any}\n aria-label={label}\n height={size.h}\n // Let the media node's fill show through instead of the Chart's\n // default opaque white card, and let axis/label text inherit the\n // node's text color so the chart matches Archify (or any) theming.\n style={{\n background: surfaceColor ?? 'transparent',\n borderColor: 'transparent',\n color: textColor ?? 'inherit',\n padding: 0,\n }}\n />\n )}\n </div>\n );\n}\n\n/** Dispatches to the table or chart surface based on the node's view. */\nexport function DataNodeView({\n config,\n surfaceColor,\n textColor,\n primaryColor,\n}: {\n config: FlowDataConfig;\n surfaceColor?: string;\n textColor?: string;\n primaryColor?: string;\n}) {\n if (!config || config.columns.length === 0) {\n return <div className=\"flow-data-empty\">尚无数据,请在属性面板上传或填写数据</div>;\n }\n return config.view === 'chart' ? (\n <DataChartView config={config} surfaceColor={surfaceColor} textColor={textColor} primaryColor={primaryColor} />\n ) : (\n <DataTableView config={config} />\n );\n}\n\nexport default DataNodeView;\n"],"mappings":"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"}