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 +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":";;;;;;;;;;;;AA8BA,SAAS,EAA4B,EACnC,SACA,YACA,gBAAY,IACZ,oBAAgB,IAChB,sBAAkB,IAClB,sBAAmB,IACnB,sBAAkB,IAClB,6BAAyB,IACzB,2BAAuB,IACvB,sBAAkB,IAClB,qBAAkB,IAClB,gBAAa,QACb,iBACA,mBAAe,CAAC,GAChB,0BACA,aACA,iBAAa,IACb,oBAAiB,IACjB,cAAU;CACR,SAAS;CACT,sBAAsB;CACtB,iBAAiB;CACjB,mBAAmB;AACrB,GACA,uBACA,gBACA,sBACA,qBACA,qBACA,iBACA,uBACA,sBACA,sBACA,mBACA,wBACA,wBACA,kBACA,uBACA,uBACA,cAAW,IACX,eAAY,GACZ,iBACA,qBACA,mBAAe,CAAC,GAChB,0BACA,mBAAe,CAAC,GAChB,qBACA,oBAAgB,CAAC,GACjB,2BACA,uBAAmB,CAAC,GACpB,8BACA,iBAAc,CAAC,GACf,yBACA,gBAAa,CAAC,KACM;CACpB,IAAM,CAAC,GAAS,KAAc,EAC5B,IAAc,IAAiB,CACjC,GACM,CAAC,GAAc,MAAmB,EACtC,IAAc,IAAsB,CACtC,GACM,CAAC,GAAoB,MAAyB,EAClD,IAAe,IAAuB,CACxC,GACM,CAAC,GAAiB,MAAsB,EAC5C,IAAkB,IAA0B,CAC9C,GACM,CAAC,GAAkB,KAAuB,EAC9C,GAAa,IAAqB,CACpC,GACM,CAAC,GAAmB,MAAwB,EAChD,IAAc,IAAsB,CACtC,GAEM,CAAC,IAAc,MAAmB,EAAwB,IAAI,GAC9D,IAAoB,GAAO,EAAK,GAEhC,EACJ,oBACA,oBACA,oBACA,kBACE,GAAqB,GAAkB,CAAmB,GAExD,KAAsB,GAAuC,MAAY;EAC7E,GAAY,MAAS,OAAO,KAAY,aAAa,EAAQ,CAAG,IAAI,CAAQ;CAC9E,GAAG,CAAC,CAAU,CAAC;CAEf,QAAgB;EACd,IAAI,CAAC,EAAkB,WAAW,EAAQ,SAAS,GAAG;GACpD,IAAI,EAAY,WAAW,KAAK,EAAiB,WAAW,GAAG;IAC7D,EAAkB,UAAU;IAC5B,IAAM,IAAe,EAAQ,KAAI,MAC/B,iBAAiB,IAAM,EAAI,cAAwB,EAAI,EACzD;IACA,EAAoB,CAAY;GAClC,OACE,EAAkB,UAAU;EAEhC;CACF,GAAG,CAAC,CAAO,CAAC;CAEZ,IAAM,MAAmB,GAAe,MAAW;EACjD,IAAM,IAAmB,CAAE,EAAkB,IACvC,IAAkB;GAAE,GAAG;IAAoB,IAAQ;EAAiB;EAQ1E,AANK,KAEH,GADqC,GAAK,GAAO,GAAY,CAC7D,CAAA,CAAU,SAAQ,MAAW;GAAE,EAAgB,KAAW;EAAO,CAAC,GAGpE,GAAqB,CAAe,GACpC,KAAc,GAAK,CAAgB;CACrC,GAEM,IAAc,GACjB,GAAY,IAAQ,GAAG,IAAW,IAAI,IAAmB,IAAM,IAAgB,CAAC,GAAG,IAAe,OACjG,GAAgB,GAAO,GAAmB,GAAY,GAAU,GAAO,GAAU,GAAkB,GAAQ,CAAY,GACzH;EAAC;EAAmB;EAAU;CAAU,CAC1C,GAEM,IAAgB,QACb,IAAkB,EAAY,CAAI,IAAI,GAC7C;EAAC;EAAM;EAAiB;CAAW,CACrC,GAEM,IAAe,QACZ,IAAkB,EAAY,GAAM,GAAG,IAAI,IAAM,CAAC,GAAG,EAAI,IAAI,GACpE;EAAC;EAAM;EAAiB;CAAW,CACrC,GAEM,CAAC,GAAmB,KAAwB,EAAS,CAAS,GAC9D,CAAC,GAAkB,KAAuB,EAAS,CAAQ;CAGjE,AADA,QAAgB;EAAE,AAAI,MAAc,KAAmB,EAAqB,CAAS;CAAG,GAAG,CAAC,CAAS,CAAC,GACtG,QAAgB;EAAE,AAAI,MAAa,KAAkB,EAAoB,CAAQ;CAAG,GAAG,CAAC,CAAQ,CAAC;CAEjG,IAAM,KAAkB,QAAc;EACpC,IAAI,CAAC,GAAkB,OAAO;EAE9B,IAAM,IAAa,IAAoB,GACjC,IAAW,IAAa,GACxB,IAA0B,EAAa,MAAM,GAAY,CAAQ;EAEvE,IAAI,GAAiB;GACnB,IAAM,oBAAU,IAAI,IAAI;GAExB,AADA,EAAwB,SAAS,MAAgB,EAAQ,IAAI,EAAO,MAAM,CAAM,CAAC,GACjF,EAAwB,SAAS,MAAgB;IAC/C,AAAI,EAAkB,EAAO,SAC3B,EAAc,SAAS,MAAa;KAClC,AAAI,EAAI,YAAY,WAAW,EAAO,IAAI,KAAG,EAAQ,IAAI,EAAI,MAAM,CAAG;IACxE,CAAC;GAEL,CAAC;GACD,IAAM,IAAgB,CAAC;GAEvB,OADA,EAAc,SAAS,MAAa;IAAE,AAAI,EAAQ,IAAI,EAAI,IAAI,KAAG,EAAO,KAAK,CAAG;GAAG,CAAC,GAC7E;EACT;EAEA,OAAO;CACT,GAAG;EAAC;EAAe;EAAc;EAAmB;EAAkB;EAAkB;EAAiB;CAAiB,CAAC,GAErH,KAAmB,QACnB,CAAC,KAAmB,CAAC,IAAuB,IACzC,EAAQ,KAAI,MACb,EAAO,kBAAkB,KAAc,IACpC;EAAE,GAAG;EAAQ,QAAQ;CAAoC,CACjE,GACA;EAAC;EAAS;EAAiB;CAAc,CAAC,GAEvC,KAAgB,QAElB,KAAmB,IACd,GAAwB,IACzB,KAAA,GACN,CAAC,GAAiB,CAAc,CAClC,GAEM,KAAY,SAAe;EAC/B,MAAM;EACN,SAAS;EACT,WAAW,KAAK,KAAK,EAAa,SAAS,CAAgB;EAC3D,kBAAkB;EAClB;EACA,OAAO;GACL;GACA;GACA,eAAe;GACf,kBAAkB;GAClB,aAAa,EAAiB,SAAS,IAAI,IAAmB,KAAA;GAC9D,YAAY;IAAE,WAAW;IAAmB,UAAU;GAAiB;EACzE;EACA,oBAAoB;EACpB,sBAAsB;EACtB,iBAAiB;EACjB,uBAAuB;EACvB,0BAA0B;EAC1B,qBAAqB,MAA8D;GAEjF,IAAM,IAAgB,OAAO,KAAY,aAAa,EAAQ;IADlC,WAAW;IAAmB,UAAU;GACN,CAAiB,IAAI;GAMnF,AAJI,EAAc,aAAa,MAC7B,EAAoB,EAAc,QAAQ,GAC1C,IAAmB,EAAc,QAAQ,IAEvC,EAAc,cAAc,MAC9B,EAAqB,EAAc,SAAS,GAC5C,IAAe,EAAc,SAAS;EAE1C;EAEA,SAAS;EACT,cAAc,EAAE,YAAY;GAAE,WAAW;GAAG,UAAU;EAAiB,EAAE;CAC3E,IAAI;EACF;EAAiB;EAAkB;EAAS;EAAc;EAC1D;EAAiB;EAAkB;EAAiB;EAAkB;EACtE;EAAiB;EAAqB;EAAkB;EAAmB;EAC3E;EAAkB;CACpB,CAAC,GAEK,IAAQ,EAAiB,EAAgB,GAGzC,IAAe,GAClB,GAAQ,MAA0B;EACjC,IAAI,GAAU,OAAO,EAAS,GAAK,CAAK;EACxC,IAAM,IAAS;EAEf,OADI,KAAU,EAAO,QAAQ,OAAa,OAAO,EAAO,IAAI,IACrD,OAAO,CAAK;CACrB,GACA,CAAC,CAAQ,CACX,GAEM,IAAgC,QAAc;EAClD,IAAM,IAAkB,EACrB,oBAAoB,CAAC,CACrB,KAAK,KAAK,MAAM,EAAE,QAAQ;EAC7B,OAAO;GACL;GACA;GACA,MAAM,EAAM,YAAY,CAAC,CAAC;GAC1B,cAAc;GACd,UAAU;EACZ;CACF,GAAG;EAAC;EAAO;EAAM;EAAc;CAAY,CAAC,GAGtC,CAAC,GAAa,KAAkB,EAK5B,IAAI;CAEd,QAAgB;EACd,IAAI,CAAC,GAAa;EAClB,IAAM,UAAc,EAAe,IAAI;EAGvC,OAFA,OAAO,iBAAiB,SAAS,CAAK,GACtC,OAAO,iBAAiB,UAAU,GAAO,EAAI,SAChC;GAEX,AADA,OAAO,oBAAoB,SAAS,CAAK,GACzC,OAAO,oBAAoB,UAAU,GAAO,EAAI;EAClD;CACF,GAAG,CAAC,CAAW,CAAC;CAEhB,IAAM,KAAwB,GAC3B,GAAqB,GAAQ,GAAa,MAAqB;EAC9D,IAAI,EAAW,WAAW,GAAG;EAC7B,IAAM,IAAW,GAAQ,MAAM,IAGzB,IAA+B;GACnC,OAFA,GAAQ,MAAM,OAAiC,KAAA,IAAzB,EAAY,EAAO;GAGzC;GACA,OAAO,EAAa,GAAK,CAAQ;GACjC;GACA;EACF,GACM,IAAQ,EAAW,SACtB,MAAQ,EAAI,cAAc,GAAK,CAAY,KAAK,CAAC,CACpD;EACK,EAAM,WACX,EAAE,eAAe,GACjB,EAAe;GAAE,GAAG,EAAE;GAAS,GAAG,EAAE;GAAS;GAAO;EAAI,CAAC;CAC3D,GACA;EAAC;EAAY;EAAc;CAAY,CACzC,GAGM,KAAgB,EACnB,KAAK,MACJ,EAAI,UAAU;EAAE,MAAM,EAAI;EAAM,MAAM,EAAI,QAAQ,CAAY;CAAE,IAAI,IACtE,CAAC,CACA,QAAQ,MAAoD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAExE,IAAe,EAClB,KAAK,MACJ,EAAI,SAAS;EAAE,MAAM,EAAI;EAAM,MAAM,EAAI,OAAO,CAAY;CAAE,IAAI,IACpE,CAAC,CACA,QAAQ,MAAoD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAE1E;CACJ,KAAK,IAAM,KAAO,GAAY;EAC5B,IAAM,IAAM,EAAI,gBAAgB,CAAY;EAC5C,IAAI,MAAQ,KAAA,GAAW;GACrB,IAAkB;GAClB;EACF;CACF;CAmBA,OAPA,QAAgB;EACd,IAAM,IAAe,SAAS,cAAc,OAAO;EAGnD,OAFA,EAAa,cAAc,IAC3B,SAAS,KAAK,YAAY,CAAY,SACzB;GAAE,SAAS,KAAK,YAAY,CAAY;EAAG;CAC1D,GAAG,CAAC,CAAC,GAGH,kBAAC,OAAD;EAAK,WAAW,UAAU;EAA1B,UAAA;GACE,kBAAC,GAAD;IACW;IACF;IACE;IACS;IACD;IACH;IACG;IACE;IACF;IACA;IACO,yBAxBE,MAAqB;KACnD,EAAM,UAAU,CAAQ,CAAC,EAAE,iBAAiB;IAC9C;IAuBoB;IACR;IACkB;IACZ;GACb,CAAA;GAGA,GAAc,SAAS,KACtB,kBAAC,OAAD;IAAK,WAAU;IACZ,UAAA,GAAc,KAAK,MAClB,kBAAC,EAAM,UAAP,EAAA,UAAiC,EAAK,KAAqB,GAAtC,EAAK,IAAiC,CAC5D;GACE,CAAA;GAGN,MAAoB,KAAA,IAInB,kBAAA,IAAA,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;IACb,UAAA,kBAAC,GAAD;KAAO,WAAU;KAAjB,UAAA,CACE,kBAAC,GAAD;MACS;MACU;MACF;MACS;MACP;MACG;MACA;MACH;MACD;MACJ;KACb,CAAA,GACD,kBAAC,GAAD;MACS;MACY;MACP;MACM;MACD;MACA;MACJ;MACM;MACD;MACA;MACD;MACL;MACK;MACL;MACE;MACd,UAAU;MACV,mBAAmB;KACpB,CAAA,CACI;;GACJ,CAAA,GAEL,kBAAC,GAAD;IACoB;IACX;IACY;IACD;IACA,mBA5FF,MAAoB;KACxC,MAAsB,MAC1B,EAAqB,CAAO,GAC5B,IAAe,CAAO;IACxB;IAyF+B;IACC;IACJ;IACJ;GACf,CAAA,CACD,EAAA,CAAA,IAlDF,kBAAC,OAAD;IAAK,WAAU;IAAU,UAAA;GAAqB,CAAA;GAsD/C,EAAa,SAAS,KACrB,kBAAC,OAAD;IAAK,WAAU;IACZ,UAAA,EAAa,KAAK,MACjB,kBAAC,EAAM,UAAP,EAAA,UAAiC,EAAK,KAAqB,GAAtC,EAAK,IAAiC,CAC5D;GACE,CAAA;GAIN,KACC,kBAAC,MAAD;IACE,WAAU;IACV,OAAO;KACL,UAAU;KACV,KAAK,EAAY;KACjB,MAAM,EAAY;KAClB,UAAU;IACZ;IAEC,UAAA,EAAY,MAAM,KAAK,MACtB,EAAK,YACH,kBAAC,MAAD,EAAmB,WAAU,gCAAiC,GAArD,EAAK,GAAgD,IAE9D,kBAAC,MAAD,EAAA,UACE,kBAAC,UAAD;KACE,MAAK;KACL,UAAU,EAAK;KACf,eAAe;MAEb,AADA,EAAK,WAAW,EAAY,GAAG,GAC/B,EAAe,IAAI;KACrB;KAEC,UAAA,EAAK;IACA,CAAA,EACN,GAXK,EAAK,GAWV,CAER;GACE,CAAA;EAEH;;AAET"}