@ant-design/agentic-ui 2.8.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/dist/AgentRunBar/Robot.js +105 -57
  2. package/dist/AgentRunBar/icons/PauseIcon.js +38 -38
  3. package/dist/AgentRunBar/icons/PlayIcon.js +38 -38
  4. package/dist/AgentRunBar/icons/SimplePauseIcon.js +38 -38
  5. package/dist/AgentRunBar/icons/SimplePlayIcon.js +38 -38
  6. package/dist/AgentRunBar/icons/SimpleStopIcon.js +38 -38
  7. package/dist/AgentRunBar/icons/StopIcon.js +41 -50
  8. package/dist/AgentRunBar/icons/index.js +0 -1
  9. package/dist/AgentRunBar/index.js +270 -237
  10. package/dist/AgentRunBar/style.js +273 -239
  11. package/dist/AgenticLayout/index.js +140 -85
  12. package/dist/AgenticLayout/style.js +126 -107
  13. package/dist/AnswerAlert/components/CloseIcon.js +12 -21
  14. package/dist/AnswerAlert/components/ErrorIcon.js +42 -38
  15. package/dist/AnswerAlert/components/InfoIcon.js +42 -38
  16. package/dist/AnswerAlert/components/LoaderIcon.js +12 -21
  17. package/dist/AnswerAlert/components/SuccessIcon.js +42 -38
  18. package/dist/AnswerAlert/components/WarningIcon.js +42 -38
  19. package/dist/AnswerAlert/index.js +155 -75
  20. package/dist/AnswerAlert/style.js +159 -147
  21. package/dist/BackTo/BackBottom.js +154 -70
  22. package/dist/BackTo/BackTop.js +148 -68
  23. package/dist/BackTo/ScrollVisibleButton.js +124 -98
  24. package/dist/BackTo/hooks/useScrollVisible.js +79 -33
  25. package/dist/BackTo/icons/BottomIcon.js +37 -37
  26. package/dist/BackTo/icons/TopIcon.js +37 -37
  27. package/dist/BackTo/index.js +22 -7
  28. package/dist/BackTo/style.js +93 -70
  29. package/dist/Bubble/AIBubble.js +469 -406
  30. package/dist/Bubble/Avatar/index.js +139 -85
  31. package/dist/Bubble/Avatar/isEmoji.js +2 -6
  32. package/dist/Bubble/Bubble.js +114 -38
  33. package/dist/Bubble/BubbleBeforeNode.js +104 -74
  34. package/dist/Bubble/BubbleConfigProvide.js +3 -7
  35. package/dist/Bubble/FileView.js +63 -69
  36. package/dist/Bubble/List/PureBubbleList.js +130 -131
  37. package/dist/Bubble/List/SkeletonList.js +33 -24
  38. package/dist/Bubble/List/index.js +187 -124
  39. package/dist/Bubble/List/style.js +76 -47
  40. package/dist/Bubble/MessagesContent/BubbleContext.js +6 -12
  41. package/dist/Bubble/MessagesContent/BubbleExtra.js +663 -355
  42. package/dist/Bubble/MessagesContent/CopyButton/index.js +326 -96
  43. package/dist/Bubble/MessagesContent/DocInfo.js +351 -386
  44. package/dist/Bubble/MessagesContent/EXCEPTION.js +42 -22
  45. package/dist/Bubble/MessagesContent/MarkdownPreview.js +206 -156
  46. package/dist/Bubble/MessagesContent/VoiceButton/index.js +213 -115
  47. package/dist/Bubble/MessagesContent/VoiceButton/style.js +129 -105
  48. package/dist/Bubble/MessagesContent/VoiceButton/types.js +9 -0
  49. package/dist/Bubble/MessagesContent/docInfoStyle.js +118 -88
  50. package/dist/Bubble/MessagesContent/icons.js +157 -57
  51. package/dist/Bubble/MessagesContent/index.js +609 -368
  52. package/dist/Bubble/PureBubble.js +439 -326
  53. package/dist/Bubble/Title.js +110 -87
  54. package/dist/Bubble/UserBubble.js +218 -279
  55. package/dist/Bubble/index.js +10 -16
  56. package/dist/Bubble/style.js +248 -227
  57. package/dist/Bubble/type.js +3 -0
  58. package/dist/Bubble/types/BubbleExtra.js +1 -0
  59. package/dist/Bubble/types/DocInfo.js +1 -0
  60. package/dist/ChatBootPage/ButtonTab.js +25 -45
  61. package/dist/ChatBootPage/ButtonTabGroup.js +74 -47
  62. package/dist/ChatBootPage/ButtonTabGroupStyle.js +73 -45
  63. package/dist/ChatBootPage/ButtonTabStyle.js +121 -98
  64. package/dist/ChatBootPage/CaseReply.js +119 -113
  65. package/dist/ChatBootPage/CaseReplyStyle.js +217 -189
  66. package/dist/ChatBootPage/Title.js +19 -23
  67. package/dist/ChatBootPage/index.js +9 -11
  68. package/dist/ChatBootPage/style.js +80 -50
  69. package/dist/ChatLayout/index.js +93 -57
  70. package/dist/ChatLayout/style.js +206 -176
  71. package/dist/ChatLayout/types.js +1 -0
  72. package/dist/Components/ActionIconBox/index.js +571 -197
  73. package/dist/Components/ActionIconBox/style.js +141 -111
  74. package/dist/Components/ActionItemBox/ActionItemBox.js +95 -149
  75. package/dist/Components/ActionItemBox/index.js +7 -7
  76. package/dist/Components/ActionItemBox/style.js +353 -361
  77. package/dist/Components/Button/IconButton/index.js +35 -43
  78. package/dist/Components/Button/IconButton/style.js +357 -331
  79. package/dist/Components/Button/SwitchButton/index.js +243 -87
  80. package/dist/Components/Button/SwitchButton/style.js +160 -146
  81. package/dist/Components/Button/ToggleButton/index.js +46 -57
  82. package/dist/Components/Button/ToggleButton/style.js +283 -258
  83. package/dist/Components/Button/index.js +6 -2
  84. package/dist/Components/GradientText/index.js +21 -27
  85. package/dist/Components/GradientText/style.js +88 -63
  86. package/dist/Components/ImageList.js +111 -133
  87. package/dist/Components/LayoutHeader/index.js +145 -81
  88. package/dist/Components/LayoutHeader/style.js +89 -64
  89. package/dist/Components/LayoutHeader/types.js +3 -0
  90. package/dist/Components/Loading/index.js +53 -22
  91. package/dist/Components/Robot/index.js +90 -56
  92. package/dist/Components/Robot/lotties/DazingLottie/index.js +78 -47
  93. package/dist/Components/Robot/lotties/ThinkingLottie/index.js +78 -47
  94. package/dist/Components/Robot/lotties/index.js +0 -1
  95. package/dist/Components/SuggestionList/index.js +354 -182
  96. package/dist/Components/SuggestionList/style.js +204 -186
  97. package/dist/Components/TextAnimate/index.js +494 -362
  98. package/dist/Components/TextAnimate/style.js +72 -48
  99. package/dist/Components/TypingAnimation/index.js +214 -169
  100. package/dist/Components/TypingAnimation/style.js +76 -52
  101. package/dist/Components/VisualList/index.js +267 -180
  102. package/dist/Components/VisualList/style.js +140 -124
  103. package/dist/Components/icons/LoadingSpinnerIcon.js +124 -73
  104. package/dist/Components/lotties/DazingLottie/index.js +78 -47
  105. package/dist/Components/lotties/LoadingLottie/index.js +82 -48
  106. package/dist/Components/lotties/TextLoading/index.js +73 -49
  107. package/dist/Components/lotties/TextLoading/style.js +95 -78
  108. package/dist/Components/lotties/ThinkingLottie/index.js +78 -47
  109. package/dist/Components/lotties/index.js +0 -1
  110. package/dist/Constants/colors.js +71 -97
  111. package/dist/History/components/HistoryActionsBox.js +407 -180
  112. package/dist/History/components/HistoryEmpty.js +38 -42
  113. package/dist/History/components/HistoryEmptyIcon.js +682 -964
  114. package/dist/History/components/HistoryItem.js +683 -471
  115. package/dist/History/components/HistoryList.js +170 -87
  116. package/dist/History/components/HistoryRunningIcon.js +160 -111
  117. package/dist/History/components/LoadMoreComponent.js +308 -103
  118. package/dist/History/components/NewChatComponent.js +261 -69
  119. package/dist/History/components/NewChatComponent.style.js +79 -53
  120. package/dist/History/components/SearchComponent.js +367 -156
  121. package/dist/History/components/index.js +11 -23
  122. package/dist/History/hooks/useHistory.js +404 -129
  123. package/dist/History/index.js +301 -186
  124. package/dist/History/menu.js +158 -212
  125. package/dist/History/style.js +282 -276
  126. package/dist/History/types/HistoryData.js +6 -10
  127. package/dist/History/types/HistoryList.js +3 -0
  128. package/dist/History/types/index.js +3 -0
  129. package/dist/History/utils/index.js +35 -32
  130. package/dist/Hooks/useAutoScroll.js +262 -84
  131. package/dist/Hooks/useClickAway.js +60 -21
  132. package/dist/Hooks/useCopied.js +72 -20
  133. package/dist/Hooks/useDebounceFn/index.js +213 -55
  134. package/dist/Hooks/useIntersectionOnce.js +163 -74
  135. package/dist/Hooks/useLanguage.d.ts +3 -0
  136. package/dist/Hooks/useLanguage.js +67 -26
  137. package/dist/Hooks/useRefFunction/index.js +76 -11
  138. package/dist/Hooks/useSpeechSynthesis.js +143 -99
  139. package/dist/Hooks/useStyle/index.js +95 -60
  140. package/dist/Hooks/useThrottleFn/index.js +41 -41
  141. package/dist/I18n/index.js +246 -109
  142. package/dist/I18n/locales.d.ts +3 -0
  143. package/dist/I18n/locales.js +724 -711
  144. package/dist/Icons/animated/VoicePlayLottie/index.js +75 -46
  145. package/dist/Icons/animated/VoicingLottie/index.js +78 -47
  146. package/dist/MarkdownEditor/BaseMarkdownEditor.js +421 -349
  147. package/dist/MarkdownEditor/editor/Editor.js +1160 -843
  148. package/dist/MarkdownEditor/editor/components/CommentList/index.js +407 -239
  149. package/dist/MarkdownEditor/editor/components/CommentList/style.js +119 -89
  150. package/dist/MarkdownEditor/editor/components/ContributorAvatar/index.js +61 -63
  151. package/dist/MarkdownEditor/editor/components/ContributorAvatar/style.js +82 -52
  152. package/dist/MarkdownEditor/editor/components/LazyElement/index.js +208 -106
  153. package/dist/MarkdownEditor/editor/components/LazyElement/style.js +69 -42
  154. package/dist/MarkdownEditor/editor/components/fntTag/index.js +7 -11
  155. package/dist/MarkdownEditor/editor/components/fntTag/style.js +66 -36
  156. package/dist/MarkdownEditor/editor/components/index.js +0 -1
  157. package/dist/MarkdownEditor/editor/elements/Blockquote.js +95 -37
  158. package/dist/MarkdownEditor/editor/elements/Break.js +56 -25
  159. package/dist/MarkdownEditor/editor/elements/Card/index.js +131 -52
  160. package/dist/MarkdownEditor/editor/elements/Code.js +89 -67
  161. package/dist/MarkdownEditor/editor/elements/Comment/index.js +79 -50
  162. package/dist/MarkdownEditor/editor/elements/ErrorBoundary.js +117 -21
  163. package/dist/MarkdownEditor/editor/elements/FootnoteDefinition.js +83 -64
  164. package/dist/MarkdownEditor/editor/elements/FootnoteReference.js +115 -41
  165. package/dist/MarkdownEditor/editor/elements/Head.js +131 -67
  166. package/dist/MarkdownEditor/editor/elements/Hr.js +63 -38
  167. package/dist/MarkdownEditor/editor/elements/Image/index.js +636 -494
  168. package/dist/MarkdownEditor/editor/elements/InlineKatex.js +60 -44
  169. package/dist/MarkdownEditor/editor/elements/Katex.js +71 -55
  170. package/dist/MarkdownEditor/editor/elements/LinkCard/index.js +79 -175
  171. package/dist/MarkdownEditor/editor/elements/LinkCard/style.js +130 -100
  172. package/dist/MarkdownEditor/editor/elements/List/List.js +96 -69
  173. package/dist/MarkdownEditor/editor/elements/List/ListItem.js +422 -247
  174. package/dist/MarkdownEditor/editor/elements/List/index.js +1 -5
  175. package/dist/MarkdownEditor/editor/elements/List/style.js +131 -117
  176. package/dist/MarkdownEditor/editor/elements/Media.js +637 -519
  177. package/dist/MarkdownEditor/editor/elements/Mermaid.js +79 -54
  178. package/dist/MarkdownEditor/editor/elements/Paragraph.js +144 -83
  179. package/dist/MarkdownEditor/editor/elements/Schema.js +167 -128
  180. package/dist/MarkdownEditor/editor/elements/Table/ReadonlyTableComponent.js +211 -178
  181. package/dist/MarkdownEditor/editor/elements/Table/SimpleTable.js +73 -49
  182. package/dist/MarkdownEditor/editor/elements/Table/Table.js +285 -204
  183. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/index.js +397 -280
  184. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/style.js +126 -101
  185. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/index.js +381 -276
  186. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/style.js +120 -98
  187. package/dist/MarkdownEditor/editor/elements/Table/TableContext.js +64 -21
  188. package/dist/MarkdownEditor/editor/elements/Table/TableRowIndex/index.js +52 -42
  189. package/dist/MarkdownEditor/editor/elements/Table/TableRowIndex/style.js +69 -39
  190. package/dist/MarkdownEditor/editor/elements/Table/Td/index.js +126 -72
  191. package/dist/MarkdownEditor/editor/elements/Table/Td/style.js +85 -55
  192. package/dist/MarkdownEditor/editor/elements/Table/index.js +204 -105
  193. package/dist/MarkdownEditor/editor/elements/Table/style.js +244 -233
  194. package/dist/MarkdownEditor/editor/elements/Table/useScrollShadow.js +119 -62
  195. package/dist/MarkdownEditor/editor/elements/TagPopup/index.js +438 -276
  196. package/dist/MarkdownEditor/editor/elements/TagPopup/style.js +103 -77
  197. package/dist/MarkdownEditor/editor/elements/index.js +437 -424
  198. package/dist/MarkdownEditor/editor/parser/json-parse.js +38 -9
  199. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.js +1753 -1168
  200. package/dist/MarkdownEditor/editor/parser/parserMdToSchema.js +16 -20
  201. package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +1021 -606
  202. package/dist/MarkdownEditor/editor/parser/remarkParse.js +158 -102
  203. package/dist/MarkdownEditor/editor/plugins/catchError.js +78 -17
  204. package/dist/MarkdownEditor/editor/plugins/elements.js +458 -342
  205. package/dist/MarkdownEditor/editor/plugins/handlePaste.js +752 -300
  206. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/arrow.js +215 -129
  207. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/backspace.js +325 -180
  208. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/enter.js +576 -418
  209. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/match.js +157 -47
  210. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.js +331 -209
  211. package/dist/MarkdownEditor/editor/plugins/index.js +0 -1
  212. package/dist/MarkdownEditor/editor/plugins/insertParsedHtmlNodes.js +1245 -507
  213. package/dist/MarkdownEditor/editor/plugins/parseMarkdownToNodesAndInsert.js +36 -24
  214. package/dist/MarkdownEditor/editor/plugins/useHighlight.js +267 -116
  215. package/dist/MarkdownEditor/editor/plugins/useKeyboard.js +234 -160
  216. package/dist/MarkdownEditor/editor/plugins/useOnchange.js +253 -92
  217. package/dist/MarkdownEditor/editor/plugins/withMarkdown.js +728 -439
  218. package/dist/MarkdownEditor/editor/store.js +1819 -1389
  219. package/dist/MarkdownEditor/editor/style.js +551 -506
  220. package/dist/MarkdownEditor/editor/tagStyles.js +43 -43
  221. package/dist/MarkdownEditor/editor/tools/DragHandle.js +56 -54
  222. package/dist/MarkdownEditor/editor/tools/InsertAutocomplete.js +1049 -732
  223. package/dist/MarkdownEditor/editor/tools/InsertLink.js +232 -181
  224. package/dist/MarkdownEditor/editor/tools/Leading.js +566 -303
  225. package/dist/MarkdownEditor/editor/tools/ToolBar/BaseBar.js +415 -377
  226. package/dist/MarkdownEditor/editor/tools/ToolBar/FloatBar.js +162 -125
  227. package/dist/MarkdownEditor/editor/tools/ToolBar/ReadonlyBaseBar.js +480 -258
  228. package/dist/MarkdownEditor/editor/tools/ToolBar/ToolBar.js +44 -44
  229. package/dist/MarkdownEditor/editor/tools/ToolBar/components/ClearFormatButton.js +20 -35
  230. package/dist/MarkdownEditor/editor/tools/ToolBar/components/ColorPickerButton.js +69 -73
  231. package/dist/MarkdownEditor/editor/tools/ToolBar/components/FormatButton.js +13 -19
  232. package/dist/MarkdownEditor/editor/tools/ToolBar/components/FormattingTools.js +34 -41
  233. package/dist/MarkdownEditor/editor/tools/ToolBar/components/HeadingDropdown.js +53 -47
  234. package/dist/MarkdownEditor/editor/tools/ToolBar/components/LinkButton.js +11 -19
  235. package/dist/MarkdownEditor/editor/tools/ToolBar/components/ToolBarItem.js +23 -43
  236. package/dist/MarkdownEditor/editor/tools/ToolBar/components/UndoRedoButtons.js +14 -25
  237. package/dist/MarkdownEditor/editor/tools/ToolBar/config/toolsConfig.js +139 -102
  238. package/dist/MarkdownEditor/editor/tools/ToolBar/floatBarStyle.js +95 -65
  239. package/dist/MarkdownEditor/editor/tools/ToolBar/hooks/useToolBarLogic.js +252 -161
  240. package/dist/MarkdownEditor/editor/tools/ToolBar/index.js +14 -24
  241. package/dist/MarkdownEditor/editor/tools/ToolBar/toolBarStyle.js +95 -65
  242. package/dist/MarkdownEditor/editor/tools/insertAutocompleteStyle.js +82 -52
  243. package/dist/MarkdownEditor/editor/types/Table.js +1 -0
  244. package/dist/MarkdownEditor/editor/utils/InlineChromiumBugfix.js +11 -16
  245. package/dist/MarkdownEditor/editor/utils/ace.js +136 -40
  246. package/dist/MarkdownEditor/editor/utils/docx/docxDeserializer.js +29 -32
  247. package/dist/MarkdownEditor/editor/utils/docx/index.js +0 -1
  248. package/dist/MarkdownEditor/editor/utils/docx/module.js +193 -164
  249. package/dist/MarkdownEditor/editor/utils/docx/utils.js +113 -98
  250. package/dist/MarkdownEditor/editor/utils/dom.js +119 -90
  251. package/dist/MarkdownEditor/editor/utils/editorUtils.js +1369 -906
  252. package/dist/MarkdownEditor/editor/utils/htmlToMarkdown.js +196 -184
  253. package/dist/MarkdownEditor/editor/utils/index.js +354 -215
  254. package/dist/MarkdownEditor/editor/utils/isMarkdown.js +56 -44
  255. package/dist/MarkdownEditor/editor/utils/keyboard.js +1229 -664
  256. package/dist/MarkdownEditor/editor/utils/markdownToHtml.js +294 -76
  257. package/dist/MarkdownEditor/editor/utils/media.js +274 -99
  258. package/dist/MarkdownEditor/editor/utils/path.js +22 -16
  259. package/dist/MarkdownEditor/editor/utils/performanceMonitor.js +370 -168
  260. package/dist/MarkdownEditor/editor/utils/useLocalState.js +96 -37
  261. package/dist/MarkdownEditor/el.js +1 -0
  262. package/dist/MarkdownEditor/hooks/editor.js +123 -41
  263. package/dist/MarkdownEditor/hooks/subscribe.js +18 -15
  264. package/dist/MarkdownEditor/index.js +118 -30
  265. package/dist/MarkdownEditor/plugin.js +2 -5
  266. package/dist/MarkdownEditor/style.js +96 -66
  267. package/dist/MarkdownEditor/types.js +1 -0
  268. package/dist/MarkdownEditor/utils/exportHtml.js +42 -83
  269. package/dist/MarkdownEditor/utils/native-table/index.js +0 -1
  270. package/dist/MarkdownEditor/utils/native-table/native-table-editor.js +337 -222
  271. package/dist/MarkdownEditor/utils/native-table/native-table-keyboard.js +201 -113
  272. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.d.ts +4 -0
  273. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +277 -82
  274. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileIcon.js +62 -33
  275. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileListItem.js +147 -125
  276. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/index.js +174 -129
  277. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/style.js +263 -237
  278. package/dist/MarkdownInputField/AttachmentButton/index.js +480 -205
  279. package/dist/MarkdownInputField/AttachmentButton/style.js +143 -114
  280. package/dist/MarkdownInputField/AttachmentButton/types.js +3 -0
  281. package/dist/MarkdownInputField/AttachmentButton/utils.d.ts +60 -0
  282. package/dist/MarkdownInputField/AttachmentButton/utils.js +365 -33
  283. package/dist/MarkdownInputField/BeforeToolContainer/BeforeToolContainer.js +438 -404
  284. package/dist/MarkdownInputField/Enlargement/index.js +7 -17
  285. package/dist/MarkdownInputField/FileMapView/FileMapViewItem.js +193 -216
  286. package/dist/MarkdownInputField/FileMapView/index.js +387 -174
  287. package/dist/MarkdownInputField/FileMapView/style.js +281 -259
  288. package/dist/MarkdownInputField/FilePaste/index.js +239 -65
  289. package/dist/MarkdownInputField/FileUploadManager/index.js +504 -170
  290. package/dist/MarkdownInputField/MarkdownInputField.js +819 -549
  291. package/dist/MarkdownInputField/QuickActions/index.js +304 -134
  292. package/dist/MarkdownInputField/RefinePromptButton/index.js +24 -33
  293. package/dist/MarkdownInputField/RefinePromptButton/style.js +99 -73
  294. package/dist/MarkdownInputField/SendActions/index.js +179 -197
  295. package/dist/MarkdownInputField/SendButton/index.js +150 -110
  296. package/dist/MarkdownInputField/SendButton/style.js +95 -64
  297. package/dist/MarkdownInputField/SkillModeBar/hooks/index.js +3 -5
  298. package/dist/MarkdownInputField/SkillModeBar/hooks/useSkillModeState.js +51 -26
  299. package/dist/MarkdownInputField/SkillModeBar/index.js +119 -106
  300. package/dist/MarkdownInputField/SkillModeBar/style.js +124 -98
  301. package/dist/MarkdownInputField/Suggestion/index.js +391 -154
  302. package/dist/MarkdownInputField/TopOperatingArea/index.js +37 -44
  303. package/dist/MarkdownInputField/TopOperatingArea/style.js +98 -81
  304. package/dist/MarkdownInputField/VoiceInput/index.js +210 -82
  305. package/dist/MarkdownInputField/VoiceInput/style.js +85 -59
  306. package/dist/MarkdownInputField/VoiceInputManager/index.js +321 -94
  307. package/dist/MarkdownInputField/style.js +296 -233
  308. package/dist/Plugins/chart/AreaChart/index.js +541 -393
  309. package/dist/Plugins/chart/AreaChart/style.js +114 -90
  310. package/dist/Plugins/chart/BarChart/index.d.ts +4 -0
  311. package/dist/Plugins/chart/BarChart/index.js +865 -697
  312. package/dist/Plugins/chart/BarChart/style.js +114 -90
  313. package/dist/Plugins/chart/ChartAttrToolBar/ChartAttrToolBarStyle.js +82 -52
  314. package/dist/Plugins/chart/ChartAttrToolBar/index.js +94 -65
  315. package/dist/Plugins/chart/ChartMark/Area.js +176 -150
  316. package/dist/Plugins/chart/ChartMark/Bar.js +181 -152
  317. package/dist/Plugins/chart/ChartMark/Column.js +181 -151
  318. package/dist/Plugins/chart/ChartMark/Container.js +116 -75
  319. package/dist/Plugins/chart/ChartMark/Line.js +179 -151
  320. package/dist/Plugins/chart/ChartMark/Pie.js +79 -63
  321. package/dist/Plugins/chart/ChartMark/index.js +6 -13
  322. package/dist/Plugins/chart/ChartMark/useChart.js +1 -0
  323. package/dist/Plugins/chart/ChartRender.js +981 -696
  324. package/dist/Plugins/chart/ChartStatistic/index.js +47 -62
  325. package/dist/Plugins/chart/ChartStatistic/style.js +142 -143
  326. package/dist/Plugins/chart/ChartStatistic/utils.js +37 -27
  327. package/dist/Plugins/chart/DonutChart/Legend.js +94 -124
  328. package/dist/Plugins/chart/DonutChart/constants.js +4 -11
  329. package/dist/Plugins/chart/DonutChart/hooks.js +183 -112
  330. package/dist/Plugins/chart/DonutChart/index.js +588 -516
  331. package/dist/Plugins/chart/DonutChart/plugins.js +47 -44
  332. package/dist/Plugins/chart/DonutChart/style.js +186 -175
  333. package/dist/Plugins/chart/DonutChart/types.js +1 -0
  334. package/dist/Plugins/chart/FunnelChart/index.js +844 -647
  335. package/dist/Plugins/chart/FunnelChart/style.js +97 -71
  336. package/dist/Plugins/chart/LineChart/index.js +516 -393
  337. package/dist/Plugins/chart/LineChart/style.js +114 -90
  338. package/dist/Plugins/chart/RadarChart/index.js +580 -582
  339. package/dist/Plugins/chart/RadarChart/style.js +122 -112
  340. package/dist/Plugins/chart/ScatterChart/index.js +633 -640
  341. package/dist/Plugins/chart/ScatterChart/style.js +108 -94
  342. package/dist/Plugins/chart/components/ChartContainer/ChartContainer.js +151 -80
  343. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.js +160 -41
  344. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundaryExample.js +80 -62
  345. package/dist/Plugins/chart/components/ChartContainer/index.js +2 -7
  346. package/dist/Plugins/chart/components/ChartContainer/style.js +121 -91
  347. package/dist/Plugins/chart/components/ChartFilter/ChartFilter.js +58 -90
  348. package/dist/Plugins/chart/components/ChartFilter/style.js +169 -154
  349. package/dist/Plugins/chart/components/ChartToolBar/ChartToolBar.js +54 -59
  350. package/dist/Plugins/chart/components/ChartToolBar/style.js +132 -117
  351. package/dist/Plugins/chart/components/icons/TimeIcon.js +20 -26
  352. package/dist/Plugins/chart/components/index.js +32 -34
  353. package/dist/Plugins/chart/const.js +34 -25
  354. package/dist/Plugins/chart/hooks/useChartStatistic.js +1 -0
  355. package/dist/Plugins/chart/index.js +436 -339
  356. package/dist/Plugins/chart/loadChartRuntime.js +209 -110
  357. package/dist/Plugins/chart/utils.js +311 -87
  358. package/dist/Plugins/code/CodeUI/Katex/Katex.js +112 -66
  359. package/dist/Plugins/code/components/AceEditor.js +334 -237
  360. package/dist/Plugins/code/components/AceEditorContainer.js +23 -32
  361. package/dist/Plugins/code/components/CodeContainer.js +41 -56
  362. package/dist/Plugins/code/components/CodeRenderer.js +202 -155
  363. package/dist/Plugins/code/components/CodeToolbar.js +137 -181
  364. package/dist/Plugins/code/components/HtmlPreview.js +19 -22
  365. package/dist/Plugins/code/components/LanguageSelector.js +162 -96
  366. package/dist/Plugins/code/components/LoadImage.js +145 -46
  367. package/dist/Plugins/code/components/ThinkBlock.js +38 -42
  368. package/dist/Plugins/code/components/index.js +13 -23
  369. package/dist/Plugins/code/hooks/index.js +7 -9
  370. package/dist/Plugins/code/hooks/useCodeEditorState.js +139 -62
  371. package/dist/Plugins/code/hooks/useRenderConditions.js +31 -23
  372. package/dist/Plugins/code/hooks/useToolbarConfig.js +44 -46
  373. package/dist/Plugins/code/index.js +141 -89
  374. package/dist/Plugins/code/langIconMap.js +400 -108
  375. package/dist/Plugins/code/langIcons/AbapIcon.js +90 -57
  376. package/dist/Plugins/code/langIcons/ActionscriptIcon.js +89 -56
  377. package/dist/Plugins/code/langIcons/AdaIcon.js +89 -52
  378. package/dist/Plugins/code/langIcons/ApacheIcon.js +205 -254
  379. package/dist/Plugins/code/langIcons/ApexIcon.js +108 -82
  380. package/dist/Plugins/code/langIcons/AplIcon.js +90 -54
  381. package/dist/Plugins/code/langIcons/ApplescriptIcon.js +89 -56
  382. package/dist/Plugins/code/langIcons/AstroIcon.js +91 -58
  383. package/dist/Plugins/code/langIcons/AwkIcon.js +98 -68
  384. package/dist/Plugins/code/langIcons/BallerinaIcon.js +92 -59
  385. package/dist/Plugins/code/langIcons/BatIcon.js +158 -229
  386. package/dist/Plugins/code/langIcons/BicepIcon.js +91 -58
  387. package/dist/Plugins/code/langIcons/BladeIcon.js +90 -58
  388. package/dist/Plugins/code/langIcons/CIcon.js +90 -55
  389. package/dist/Plugins/code/langIcons/CadenceIcon.js +89 -56
  390. package/dist/Plugins/code/langIcons/ClojureIcon.js +96 -75
  391. package/dist/Plugins/code/langIcons/CmakeIcon.js +93 -62
  392. package/dist/Plugins/code/langIcons/CobolIcon.js +99 -70
  393. package/dist/Plugins/code/langIcons/CodeqlIcon.js +96 -76
  394. package/dist/Plugins/code/langIcons/CoffeeIcon.js +89 -56
  395. package/dist/Plugins/code/langIcons/ConsoleIcon.js +89 -56
  396. package/dist/Plugins/code/langIcons/CppIcon.js +90 -55
  397. package/dist/Plugins/code/langIcons/CrystalIcon.js +90 -57
  398. package/dist/Plugins/code/langIcons/CsharpIcon.js +90 -59
  399. package/dist/Plugins/code/langIcons/CssIcon.js +89 -52
  400. package/dist/Plugins/code/langIcons/DIcon.js +90 -53
  401. package/dist/Plugins/code/langIcons/DartIcon.js +92 -71
  402. package/dist/Plugins/code/langIcons/DatabaseIcon.js +90 -57
  403. package/dist/Plugins/code/langIcons/DiffIcon.js +90 -57
  404. package/dist/Plugins/code/langIcons/DockerIcon.js +89 -56
  405. package/dist/Plugins/code/langIcons/DotenvIcon.js +94 -56
  406. package/dist/Plugins/code/langIcons/ElixirIcon.js +91 -58
  407. package/dist/Plugins/code/langIcons/ElmIcon.js +105 -58
  408. package/dist/Plugins/code/langIcons/ErbIcon.js +90 -54
  409. package/dist/Plugins/code/langIcons/ErlangIcon.js +89 -56
  410. package/dist/Plugins/code/langIcons/FsharpIcon.js +93 -62
  411. package/dist/Plugins/code/langIcons/GdscriptIcon.js +96 -88
  412. package/dist/Plugins/code/langIcons/GlslIcon.js +90 -58
  413. package/dist/Plugins/code/langIcons/GnuplotIcon.js +98 -77
  414. package/dist/Plugins/code/langIcons/GoIcon.js +114 -93
  415. package/dist/Plugins/code/langIcons/GraphqlIcon.js +106 -66
  416. package/dist/Plugins/code/langIcons/GroovyIcon.js +89 -56
  417. package/dist/Plugins/code/langIcons/HackIcon.js +97 -64
  418. package/dist/Plugins/code/langIcons/HamlIcon.js +89 -56
  419. package/dist/Plugins/code/langIcons/HandlebarsIcon.js +89 -56
  420. package/dist/Plugins/code/langIcons/HaskellIcon.js +93 -64
  421. package/dist/Plugins/code/langIcons/HclIcon.js +118 -93
  422. package/dist/Plugins/code/langIcons/HclLightIcon.js +118 -97
  423. package/dist/Plugins/code/langIcons/HjsonIcon.js +94 -62
  424. package/dist/Plugins/code/langIcons/HlslIcon.js +96 -76
  425. package/dist/Plugins/code/langIcons/HtmlIcon.js +89 -56
  426. package/dist/Plugins/code/langIcons/HttpIcon.js +89 -56
  427. package/dist/Plugins/code/langIcons/ImbaIcon.js +98 -65
  428. package/dist/Plugins/code/langIcons/IniIcon.js +90 -54
  429. package/dist/Plugins/code/langIcons/JavaIcon.js +89 -56
  430. package/dist/Plugins/code/langIcons/JavascriptIcon.js +89 -56
  431. package/dist/Plugins/code/langIcons/JinjaIcon.js +100 -68
  432. package/dist/Plugins/code/langIcons/Json5Icon.js +100 -82
  433. package/dist/Plugins/code/langIcons/JsonIcon.js +89 -56
  434. package/dist/Plugins/code/langIcons/JsonnetIcon.js +102 -86
  435. package/dist/Plugins/code/langIcons/JuliaIcon.js +105 -52
  436. package/dist/Plugins/code/langIcons/KotlinIcon.js +104 -74
  437. package/dist/Plugins/code/langIcons/KustoIcon.js +90 -57
  438. package/dist/Plugins/code/langIcons/LessIcon.js +90 -57
  439. package/dist/Plugins/code/langIcons/LiquidIcon.js +91 -58
  440. package/dist/Plugins/code/langIcons/LispIcon.js +89 -56
  441. package/dist/Plugins/code/langIcons/LuaIcon.js +93 -60
  442. package/dist/Plugins/code/langIcons/MakefileIcon.js +91 -58
  443. package/dist/Plugins/code/langIcons/MarkdownIcon.js +89 -56
  444. package/dist/Plugins/code/langIcons/MarkojsIcon.js +96 -73
  445. package/dist/Plugins/code/langIcons/MatlabIcon.js +93 -64
  446. package/dist/Plugins/code/langIcons/MdxIcon.js +90 -53
  447. package/dist/Plugins/code/langIcons/MermaidIcon.js +95 -64
  448. package/dist/Plugins/code/langIcons/MojoIcon.js +95 -62
  449. package/dist/Plugins/code/langIcons/NginxIcon.js +94 -61
  450. package/dist/Plugins/code/langIcons/NimIcon.js +91 -54
  451. package/dist/Plugins/code/langIcons/NixIcon.js +92 -56
  452. package/dist/Plugins/code/langIcons/ObjectiveCIcon.js +90 -59
  453. package/dist/Plugins/code/langIcons/ObjectiveCppIcon.js +90 -57
  454. package/dist/Plugins/code/langIcons/OcamlIcon.js +90 -61
  455. package/dist/Plugins/code/langIcons/PascalIcon.js +95 -55
  456. package/dist/Plugins/code/langIcons/Perl6Icon.js +299 -320
  457. package/dist/Plugins/code/langIcons/PerlIcon.js +89 -56
  458. package/dist/Plugins/code/langIcons/PhpIcon.js +89 -52
  459. package/dist/Plugins/code/langIcons/PostcssIcon.js +130 -113
  460. package/dist/Plugins/code/langIcons/PowershellIcon.js +91 -58
  461. package/dist/Plugins/code/langIcons/PrismaIcon.js +97 -68
  462. package/dist/Plugins/code/langIcons/PrologIcon.js +91 -58
  463. package/dist/Plugins/code/langIcons/ProtoIcon.js +94 -68
  464. package/dist/Plugins/code/langIcons/PugIcon.js +177 -145
  465. package/dist/Plugins/code/langIcons/PuppetIcon.js +96 -52
  466. package/dist/Plugins/code/langIcons/PurescriptIcon.js +93 -61
  467. package/dist/Plugins/code/langIcons/PythonIcon.js +90 -61
  468. package/dist/Plugins/code/langIcons/RIcon.js +89 -52
  469. package/dist/Plugins/code/langIcons/RazorIcon.js +90 -57
  470. package/dist/Plugins/code/langIcons/ReactIcon.js +89 -56
  471. package/dist/Plugins/code/langIcons/ReactTsIcon.js +90 -57
  472. package/dist/Plugins/code/langIcons/RubyIcon.js +91 -58
  473. package/dist/Plugins/code/langIcons/RustIcon.js +89 -56
  474. package/dist/Plugins/code/langIcons/SasIcon.js +89 -52
  475. package/dist/Plugins/code/langIcons/SassIcon.js +90 -57
  476. package/dist/Plugins/code/langIcons/ScalaIcon.js +96 -53
  477. package/dist/Plugins/code/langIcons/SchemeIcon.js +91 -58
  478. package/dist/Plugins/code/langIcons/ShaderlabIcon.js +89 -56
  479. package/dist/Plugins/code/langIcons/SolidityIcon.js +94 -52
  480. package/dist/Plugins/code/langIcons/SparqlIcon.js +94 -64
  481. package/dist/Plugins/code/langIcons/StataIcon.js +126 -108
  482. package/dist/Plugins/code/langIcons/StylusIcon.js +92 -59
  483. package/dist/Plugins/code/langIcons/SvelteIcon.js +91 -58
  484. package/dist/Plugins/code/langIcons/SwiftIcon.js +90 -57
  485. package/dist/Plugins/code/langIcons/SystemverilogIcon.js +115 -102
  486. package/dist/Plugins/code/langIcons/TclIcon.js +89 -52
  487. package/dist/Plugins/code/langIcons/TexIcon.js +99 -65
  488. package/dist/Plugins/code/langIcons/TomlIcon.js +94 -70
  489. package/dist/Plugins/code/langIcons/TwigIcon.js +89 -56
  490. package/dist/Plugins/code/langIcons/TypescriptIcon.js +93 -60
  491. package/dist/Plugins/code/langIcons/VerilogIcon.js +89 -56
  492. package/dist/Plugins/code/langIcons/VhdlIcon.js +94 -64
  493. package/dist/Plugins/code/langIcons/VimIcon.js +278 -420
  494. package/dist/Plugins/code/langIcons/VueIcon.js +92 -59
  495. package/dist/Plugins/code/langIcons/WebassemblyIcon.js +103 -76
  496. package/dist/Plugins/code/langIcons/WenyanIcon.js +104 -100
  497. package/dist/Plugins/code/langIcons/WgslIcon.js +93 -77
  498. package/dist/Plugins/code/langIcons/WolframlanguageIcon.js +100 -71
  499. package/dist/Plugins/code/langIcons/XmlIcon.js +89 -52
  500. package/dist/Plugins/code/langIcons/XslIcon.js +94 -66
  501. package/dist/Plugins/code/langIcons/YamlIcon.js +89 -56
  502. package/dist/Plugins/code/langIcons/ZigIcon.js +106 -81
  503. package/dist/Plugins/code/langIcons/index.js +128 -259
  504. package/dist/Plugins/code/utils/index.js +5 -5
  505. package/dist/Plugins/code/utils/langOptions.js +86 -11
  506. package/dist/Plugins/defaultPlugins.js +9 -13
  507. package/dist/Plugins/formatter/index.js +205 -105
  508. package/dist/Plugins/index.js +6 -2
  509. package/dist/Plugins/katex/InlineKatex.js +196 -107
  510. package/dist/Plugins/katex/Katex.js +139 -65
  511. package/dist/Plugins/katex/index.js +163 -103
  512. package/dist/Plugins/mermaid/Mermaid.js +472 -197
  513. package/dist/Plugins/mermaid/index.js +237 -142
  514. package/dist/Quote/index.js +112 -73
  515. package/dist/Quote/style.js +176 -160
  516. package/dist/Schema/SchemaEditor/AceEditorWrapper.js +163 -119
  517. package/dist/Schema/SchemaEditor/index.js +385 -275
  518. package/dist/Schema/SchemaEditor/style.js +261 -269
  519. package/dist/Schema/SchemaForm/index.js +443 -268
  520. package/dist/Schema/SchemaForm/types.js +1 -0
  521. package/dist/Schema/SchemaRenderer/index.js +973 -588
  522. package/dist/Schema/SchemaRenderer/templateEngine.js +106 -26
  523. package/dist/Schema/index.js +7 -11
  524. package/dist/Schema/types.js +1 -0
  525. package/dist/Schema/validator.js +74 -36
  526. package/dist/TaskList/index.js +197 -142
  527. package/dist/TaskList/style.js +143 -122
  528. package/dist/ThoughtChainList/CostMillis.js +88 -54
  529. package/dist/ThoughtChainList/DeepThink.js +187 -152
  530. package/dist/ThoughtChainList/DotAni/index.js +29 -14
  531. package/dist/ThoughtChainList/DotAni/style.js +82 -50
  532. package/dist/ThoughtChainList/FlipText/index.js +74 -30
  533. package/dist/ThoughtChainList/MarkdownEditor.js +126 -72
  534. package/dist/ThoughtChainList/RagRetrievalInfo.js +113 -145
  535. package/dist/ThoughtChainList/TableSql.js +413 -459
  536. package/dist/ThoughtChainList/ThoughtChainListItem.js +388 -222
  537. package/dist/ThoughtChainList/TitleInfo.js +189 -185
  538. package/dist/ThoughtChainList/ToolCall.js +429 -463
  539. package/dist/ThoughtChainList/WebSearch.js +192 -162
  540. package/dist/ThoughtChainList/index.js +449 -410
  541. package/dist/ThoughtChainList/style.js +253 -232
  542. package/dist/ThoughtChainList/types.js +1 -0
  543. package/dist/ToolUseBar/ToolUseBarItem.js +183 -139
  544. package/dist/ToolUseBar/ToolUseBarItemComponents.js +345 -276
  545. package/dist/ToolUseBar/ToolUseBarThink.js +335 -396
  546. package/dist/ToolUseBar/index.js +226 -113
  547. package/dist/ToolUseBar/style.js +334 -308
  548. package/dist/ToolUseBar/thinkStyle.js +350 -328
  549. package/dist/Types/common.js +1 -0
  550. package/dist/Types/index.js +4 -2
  551. package/dist/Types/message.js +1 -0
  552. package/dist/Utils/easings.js +9 -12
  553. package/dist/Utils/formatTime.js +41 -17
  554. package/dist/Utils/getScroll.js +41 -41
  555. package/dist/Utils/language.js +355 -150
  556. package/dist/Utils/proxySandbox/ProxySandbox.js +1637 -1076
  557. package/dist/Utils/proxySandbox/SecurityContextManager.js +607 -343
  558. package/dist/Utils/proxySandbox/index.js +554 -267
  559. package/dist/Utils/proxySandbox/types.js +187 -52
  560. package/dist/Utils/scrollTo.js +48 -56
  561. package/dist/Utils/throttleByAnimationFrame.js +46 -20
  562. package/dist/WelcomeMessage/index.js +106 -58
  563. package/dist/WelcomeMessage/style.js +80 -55
  564. package/dist/Workspace/Browser/index.js +102 -40
  565. package/dist/Workspace/Browser/style.js +62 -33
  566. package/dist/Workspace/File/DataSourceStrategy.js +419 -217
  567. package/dist/Workspace/File/FileComponent.js +1004 -791
  568. package/dist/Workspace/File/FileTypeProcessor.js +337 -184
  569. package/dist/Workspace/File/PreviewComponent.js +472 -532
  570. package/dist/Workspace/File/index.js +3 -10
  571. package/dist/Workspace/File/style.js +397 -424
  572. package/dist/Workspace/File/utils.js +160 -106
  573. package/dist/Workspace/HtmlPreview/index.js +238 -137
  574. package/dist/Workspace/HtmlPreview/style.js +99 -77
  575. package/dist/Workspace/RealtimeFollow/index.js +411 -413
  576. package/dist/Workspace/RealtimeFollow/style.js +299 -303
  577. package/dist/Workspace/Task/index.js +53 -35
  578. package/dist/Workspace/Task/style.js +99 -73
  579. package/dist/Workspace/index.js +332 -254
  580. package/dist/Workspace/style.js +165 -146
  581. package/dist/Workspace/types.js +471 -252
  582. package/dist/Workspace/utils/codeLanguageUtils.js +148 -129
  583. package/dist/Workspace/utils.js +28 -20
  584. package/dist/index.js +27 -17
  585. package/package.json +3 -2
@@ -1,547 +1,619 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _array_without_holes(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
11
+ }
12
+ function _define_property(obj, key, value) {
13
+ if (key in obj) {
14
+ Object.defineProperty(obj, key, {
15
+ value: value,
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ } else {
21
+ obj[key] = value;
16
22
  }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
23
+ return obj;
24
+ }
25
+ function _iterable_to_array(iter) {
26
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
+ }
28
+ function _iterable_to_array_limit(arr, i) {
29
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
30
+ if (_i == null) return;
31
+ var _arr = [];
32
+ var _n = true;
33
+ var _d = false;
34
+ var _s, _e;
35
+ try {
36
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
37
+ _arr.push(_s.value);
38
+ if (i && _arr.length === i) break;
39
+ }
40
+ } catch (err) {
41
+ _d = true;
42
+ _e = err;
43
+ } finally{
44
+ try {
45
+ if (!_n && _i["return"] != null) _i["return"]();
46
+ } finally{
47
+ if (_d) throw _e;
48
+ }
29
49
  }
30
- return target;
31
- };
32
-
33
- // src/Plugins/chart/DonutChart/index.tsx
50
+ return _arr;
51
+ }
52
+ function _non_iterable_rest() {
53
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
+ }
55
+ function _non_iterable_spread() {
56
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
+ }
58
+ function _object_spread(target) {
59
+ for(var i = 1; i < arguments.length; i++){
60
+ var source = arguments[i] != null ? arguments[i] : {};
61
+ var ownKeys = Object.keys(source);
62
+ if (typeof Object.getOwnPropertySymbols === "function") {
63
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
64
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
65
+ }));
66
+ }
67
+ ownKeys.forEach(function(key) {
68
+ _define_property(target, key, source[key]);
69
+ });
70
+ }
71
+ return target;
72
+ }
73
+ function ownKeys(object, enumerableOnly) {
74
+ var keys = Object.keys(object);
75
+ if (Object.getOwnPropertySymbols) {
76
+ var symbols = Object.getOwnPropertySymbols(object);
77
+ if (enumerableOnly) {
78
+ symbols = symbols.filter(function(sym) {
79
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
80
+ });
81
+ }
82
+ keys.push.apply(keys, symbols);
83
+ }
84
+ return keys;
85
+ }
86
+ function _object_spread_props(target, source) {
87
+ source = source != null ? source : {};
88
+ if (Object.getOwnPropertyDescriptors) {
89
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
90
+ } else {
91
+ ownKeys(Object(source)).forEach(function(key) {
92
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
93
+ });
94
+ }
95
+ return target;
96
+ }
97
+ function _object_without_properties(source, excluded) {
98
+ if (source == null) return {};
99
+ var target = _object_without_properties_loose(source, excluded);
100
+ var key, i;
101
+ if (Object.getOwnPropertySymbols) {
102
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
103
+ for(i = 0; i < sourceSymbolKeys.length; i++){
104
+ key = sourceSymbolKeys[i];
105
+ if (excluded.indexOf(key) >= 0) continue;
106
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
107
+ target[key] = source[key];
108
+ }
109
+ }
110
+ return target;
111
+ }
112
+ function _object_without_properties_loose(source, excluded) {
113
+ if (source == null) return {};
114
+ var target = {};
115
+ var sourceKeys = Object.keys(source);
116
+ var key, i;
117
+ for(i = 0; i < sourceKeys.length; i++){
118
+ key = sourceKeys[i];
119
+ if (excluded.indexOf(key) >= 0) continue;
120
+ target[key] = source[key];
121
+ }
122
+ return target;
123
+ }
124
+ function _sliced_to_array(arr, i) {
125
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
126
+ }
127
+ function _to_consumable_array(arr) {
128
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
129
+ }
130
+ function _unsupported_iterable_to_array(o, minLen) {
131
+ if (!o) return;
132
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
133
+ var n = Object.prototype.toString.call(o).slice(8, -1);
134
+ if (n === "Object" && o.constructor) n = o.constructor.name;
135
+ if (n === "Map" || n === "Set") return Array.from(n);
136
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
137
+ }
34
138
  import { ConfigProvider } from "antd";
35
- import {
36
- ArcElement,
37
- Chart as ChartJS,
38
- Legend,
39
- Tooltip
40
- } from "chart.js";
139
+ import { ArcElement, Chart as ChartJS, Legend, Tooltip } from "chart.js";
41
140
  import classNames from "classnames";
42
141
  import React, { useContext, useMemo, useRef, useState } from "react";
43
142
  import { Doughnut } from "react-chartjs-2";
44
- import {
45
- ChartContainer,
46
- ChartFilter,
47
- ChartStatistic,
48
- ChartToolBar,
49
- downloadChart
50
- } from "../components";
143
+ import { ChartContainer, ChartFilter, ChartStatistic, ChartToolBar, downloadChart } from "../components";
51
144
  import { defaultColorList } from "../const";
52
- import {
53
- SINGLE_MODE_DESKTOP_CUTOUT,
54
- SINGLE_MODE_MOBILE_CUTOUT
55
- } from "./constants";
56
- import {
57
- useAutoCategory,
58
- useFilterLabels,
59
- useMobile,
60
- useResponsiveDimensions
61
- } from "./hooks";
145
+ import { SINGLE_MODE_DESKTOP_CUTOUT, SINGLE_MODE_MOBILE_CUTOUT } from "./constants";
146
+ import { useAutoCategory, useFilterLabels, useMobile, useResponsiveDimensions } from "./hooks";
62
147
  import LegendView from "./Legend";
63
148
  import { createBackgroundArcPlugin, createCenterTextPlugin } from "./plugins";
64
149
  import { useStyle } from "./style";
65
- var donutChartComponentsRegistered = false;
66
- var DonutChart = (_a) => {
67
- var _b = _a, {
68
- data,
69
- configs,
70
- width = 200,
71
- height = 200,
72
- className,
73
- title,
74
- showToolbar = true,
75
- onDownload,
76
- dataTime,
77
- filterList,
78
- selectedFilter,
79
- onFilterChange,
80
- enableAutoCategory = true,
81
- singleMode = false,
82
- toolbarExtra,
83
- renderFilterInToolbar = false,
84
- statistic: statisticConfig
85
- } = _b, props = __objRest(_b, [
86
- "data",
87
- "configs",
88
- "width",
89
- "height",
90
- "className",
91
- "title",
92
- "showToolbar",
93
- "onDownload",
94
- "dataTime",
95
- "filterList",
96
- "selectedFilter",
97
- "onFilterChange",
98
- "enableAutoCategory",
99
- "singleMode",
100
- "toolbarExtra",
101
- "renderFilterInToolbar",
102
- "statistic"
103
- ]);
104
- var _a2;
105
- useMemo(() => {
106
- if (donutChartComponentsRegistered) {
107
- return void 0;
108
- }
109
- if (typeof window === "undefined") {
110
- return void 0;
111
- }
112
- ChartJS.register(ArcElement, Tooltip, Legend);
113
- donutChartComponentsRegistered = true;
114
- return void 0;
115
- }, []);
116
- const { isMobile, windowWidth } = useMobile();
117
- const defaultConfigs = [{ showLegend: true }];
118
- const finalConfigs = configs || defaultConfigs;
119
- const context = useContext(ConfigProvider.ConfigContext);
120
- const baseClassName = context == null ? void 0 : context.getPrefixCls("donut-chart");
121
- const { hashId } = useStyle(baseClassName);
122
- const chartRefs = useRef([]);
123
- const [hiddenDataIndicesByChart, setHiddenDataIndicesByChart] = useState({});
124
- const {
125
- filterLabels,
126
- filteredDataByFilterLabel,
127
- selectedFilterLabel,
128
- setSelectedFilterLabel
129
- } = useFilterLabels(data);
130
- const {
131
- autoCategoryData,
132
- internalSelectedCategory,
133
- setInternalSelectedCategory,
134
- selectedCategory
135
- } = useAutoCategory(data, enableAutoCategory, selectedFilter);
136
- const filteredData = useMemo(() => {
137
- const byCategory = selectedCategory ? data.filter((item) => item.category === selectedCategory) : data;
138
- if (!filterLabels || !selectedFilterLabel) {
139
- return byCategory;
140
- }
141
- return byCategory.filter(
142
- (item) => item.filterLabel === selectedFilterLabel
143
- );
144
- }, [data, selectedCategory, filterLabels, selectedFilterLabel]);
145
- const handleInternalCategoryChange = (category) => {
146
- setInternalSelectedCategory(category);
147
- };
148
- const handleLegendItemClick = (chartIndex, dataIndex) => {
149
- setHiddenDataIndicesByChart((prev) => {
150
- var _a3;
151
- const next = __spreadValues({}, prev);
152
- const currentSet = new Set((_a3 = next[chartIndex]) != null ? _a3 : /* @__PURE__ */ new Set());
153
- if (currentSet.has(dataIndex)) {
154
- currentSet.delete(dataIndex);
155
- } else {
156
- currentSet.add(dataIndex);
157
- }
158
- next[chartIndex] = currentSet;
159
- return next;
160
- });
161
- };
162
- if (filterList && filterList.length > 0) {
163
- const uniqueItems = new Set(filterList);
164
- if (uniqueItems.size !== filterList.length) {
165
- const seen = /* @__PURE__ */ new Set();
166
- const duplicates = /* @__PURE__ */ new Set();
167
- filterList.forEach((item) => {
168
- if (seen.has(item)) {
169
- duplicates.add(item);
170
- } else {
171
- seen.add(item);
150
+ /**
151
+ * @fileoverview 环形图组件文件
152
+ *
153
+ * 该文件提供了环形图(甜甜圈图)组件的实现,基于 Chart.js 和 react-chartjs-2。
154
+ * 支持饼图和环形图两种样式,提供数据可视化、交互、配置、统计等功能。
155
+ *
156
+ * @author md-editor
157
+ * @version 1.0.0
158
+ * @since 2024
159
+ */ var donutChartComponentsRegistered = false;
160
+ /**
161
+ * 环形图组件
162
+ *
163
+ * 基于 Chart.js 和 react-chartjs-2 实现的环形图(甜甜圈图)组件。
164
+ * 支持饼图和环形图两种样式,提供数据可视化、交互、配置、统计等功能。
165
+ *
166
+ * @component
167
+ * @param {DonutChartProps} props - 组件属性
168
+ * @returns {React.ReactElement} 环形图组件
169
+ *
170
+ * @example
171
+ * ```tsx
172
+ * <DonutChart
173
+ * title="销售占比"
174
+ * data={[
175
+ * { label: '产品A', value: 30 },
176
+ * { label: '产品B', value: 50 },
177
+ * { label: '产品C', value: 20 }
178
+ * ]}
179
+ * configs={[{ chartStyle: 'donut', showLegend: true }]}
180
+ * width={400}
181
+ * height={400}
182
+ * showToolbar={true}
183
+ * />
184
+ * ```
185
+ *
186
+ * @since 1.0.0
187
+ */ var DonutChart = function(_param) {
188
+ var data = _param.data, configs = _param.configs, _param_width = _param.width, width = _param_width === void 0 ? 200 : _param_width, _param_height = _param.height, height = _param_height === void 0 ? 200 : _param_height, className = _param.className, title = _param.title, _param_showToolbar = _param.showToolbar, showToolbar = _param_showToolbar === void 0 ? true : _param_showToolbar, onDownload = _param.onDownload, dataTime = _param.dataTime, filterList = _param.filterList, selectedFilter = _param.selectedFilter, onFilterChange = _param.onFilterChange, _param_enableAutoCategory = _param.enableAutoCategory, enableAutoCategory = _param_enableAutoCategory === void 0 ? true : _param_enableAutoCategory, _param_singleMode = _param.singleMode, singleMode = _param_singleMode === void 0 ? false : _param_singleMode, toolbarExtra = _param.toolbarExtra, _param_renderFilterInToolbar = _param.renderFilterInToolbar, renderFilterInToolbar = _param_renderFilterInToolbar === void 0 ? false : _param_renderFilterInToolbar, statisticConfig = _param.statistic, props = _object_without_properties(_param, [
189
+ "data",
190
+ "configs",
191
+ "width",
192
+ "height",
193
+ "className",
194
+ "title",
195
+ "showToolbar",
196
+ "onDownload",
197
+ "dataTime",
198
+ "filterList",
199
+ "selectedFilter",
200
+ "onFilterChange",
201
+ "enableAutoCategory",
202
+ "singleMode",
203
+ "toolbarExtra",
204
+ "renderFilterInToolbar",
205
+ "statistic"
206
+ ]);
207
+ var _finalConfigs_;
208
+ useMemo(function() {
209
+ if (donutChartComponentsRegistered) {
210
+ return undefined;
211
+ }
212
+ if (typeof window === 'undefined') {
213
+ return undefined;
214
+ }
215
+ ChartJS.register(ArcElement, Tooltip, Legend);
216
+ donutChartComponentsRegistered = true;
217
+ return undefined;
218
+ }, []);
219
+ var _useMobile = useMobile(), isMobile = _useMobile.isMobile, windowWidth = _useMobile.windowWidth;
220
+ // 默认配置:当 configs 不传时,使用默认配置,showLegend 默认为 true
221
+ var defaultConfigs = [
222
+ {
223
+ showLegend: true
224
+ }
225
+ ];
226
+ var finalConfigs = configs || defaultConfigs;
227
+ var context = useContext(ConfigProvider.ConfigContext);
228
+ var baseClassName = context === null || context === void 0 ? void 0 : context.getPrefixCls('donut-chart');
229
+ var hashId = useStyle(baseClassName).hashId;
230
+ // 多图场景下独立管理每个图表实例,避免引用被覆盖
231
+ var chartRefs = useRef([]);
232
+ // 多图场景下按图索引隔离 Legend 隐藏状态
233
+ var _useState = _sliced_to_array(useState({}), 2), hiddenDataIndicesByChart = _useState[0], setHiddenDataIndicesByChart = _useState[1];
234
+ var _useFilterLabels = useFilterLabels(data), filterLabels = _useFilterLabels.filterLabels, filteredDataByFilterLabel = _useFilterLabels.filteredDataByFilterLabel, selectedFilterLabel = _useFilterLabels.selectedFilterLabel, setSelectedFilterLabel = _useFilterLabels.setSelectedFilterLabel;
235
+ var _useAutoCategory = useAutoCategory(data, enableAutoCategory, selectedFilter), autoCategoryData = _useAutoCategory.autoCategoryData, internalSelectedCategory = _useAutoCategory.internalSelectedCategory, setInternalSelectedCategory = _useAutoCategory.setInternalSelectedCategory, selectedCategory = _useAutoCategory.selectedCategory;
236
+ var filteredData = useMemo(function() {
237
+ var byCategory = selectedCategory ? data.filter(function(item) {
238
+ return item.category === selectedCategory;
239
+ }) : data;
240
+ if (!filterLabels || !selectedFilterLabel) {
241
+ return byCategory;
242
+ }
243
+ return byCategory.filter(function(item) {
244
+ return item.filterLabel === selectedFilterLabel;
245
+ });
246
+ }, [
247
+ data,
248
+ selectedCategory,
249
+ filterLabels,
250
+ selectedFilterLabel
251
+ ]);
252
+ var handleInternalCategoryChange = function(category) {
253
+ setInternalSelectedCategory(category);
254
+ };
255
+ var handleLegendItemClick = function(chartIndex, dataIndex) {
256
+ setHiddenDataIndicesByChart(function(prev) {
257
+ var next = _object_spread({}, prev);
258
+ var _next_chartIndex;
259
+ var currentSet = new Set((_next_chartIndex = next[chartIndex]) !== null && _next_chartIndex !== void 0 ? _next_chartIndex : new Set());
260
+ if (currentSet.has(dataIndex)) {
261
+ currentSet.delete(dataIndex);
262
+ } else {
263
+ currentSet.add(dataIndex);
264
+ }
265
+ next[chartIndex] = currentSet;
266
+ return next;
267
+ });
268
+ };
269
+ if (filterList && filterList.length > 0) {
270
+ var uniqueItems = new Set(filterList);
271
+ if (uniqueItems.size !== filterList.length) {
272
+ var seen = new Set();
273
+ var duplicates = new Set();
274
+ filterList.forEach(function(item) {
275
+ if (seen.has(item)) {
276
+ duplicates.add(item);
277
+ } else {
278
+ seen.add(item);
279
+ }
280
+ });
281
+ throw new Error("DonutChart filterList 包含重复项: [".concat(Array.from(duplicates).join(', '), "]. 每个筛选项必须唯一。"));
172
282
  }
173
- });
174
- throw new Error(
175
- `DonutChart filterList 包含重复项: [${Array.from(duplicates).join(", ")}]. 每个筛选项必须唯一。`
176
- );
177
- }
178
- }
179
- const statistics = useMemo(() => {
180
- if (!statisticConfig)
181
- return null;
182
- return Array.isArray(statisticConfig) ? statisticConfig : [statisticConfig];
183
- }, [statisticConfig]);
184
- const handleDownload = () => {
185
- var _a3, _b2;
186
- if (onDownload) {
187
- onDownload();
188
- return;
189
- }
190
- const instances = (chartRefs.current || []).filter(
191
- (c) => !!c
192
- );
193
- if (instances.length <= 1) {
194
- const target = (_a3 = instances[0]) != null ? _a3 : null;
195
- downloadChart(target, "donut-chart");
196
- return;
197
- }
198
- try {
199
- const canvases = instances.map((inst) => inst == null ? void 0 : inst.canvas).filter(Boolean);
200
- if (canvases.length === 0) {
201
- return;
202
- }
203
- const GAP = 16;
204
- const widths = canvases.map((c) => c.width);
205
- const heights = canvases.map((c) => c.height);
206
- const maxWidth = Math.max(...widths);
207
- const totalHeight = heights.reduce((sum, h) => sum + h, 0) + GAP * (canvases.length - 1);
208
- const composite = document.createElement("canvas");
209
- composite.width = maxWidth;
210
- composite.height = totalHeight;
211
- const ctx = composite.getContext("2d");
212
- if (!ctx)
213
- return;
214
- ctx.fillStyle = "#ffffff";
215
- ctx.fillRect(0, 0, composite.width, composite.height);
216
- let offsetY = 0;
217
- canvases.forEach((c, i) => {
218
- const x = Math.floor((maxWidth - c.width) / 2);
219
- ctx.drawImage(c, x, offsetY);
220
- offsetY += c.height + (i < canvases.length - 1 ? GAP : 0);
221
- });
222
- const link = document.createElement("a");
223
- link.download = `donut-charts-${Date.now()}.png`;
224
- link.href = composite.toDataURL("image/png", 1);
225
- document.body.appendChild(link);
226
- link.click();
227
- document.body.removeChild(link);
228
- } catch (e) {
229
- const target = (_b2 = instances[0]) != null ? _b2 : null;
230
- downloadChart(target, "donut-chart");
231
283
  }
232
- };
233
- const shouldShowFilter = filterList && filterList.length > 0 || autoCategoryData;
234
- const finalFilterList = filterList || (autoCategoryData ? autoCategoryData.categories : []);
235
- const finalSelectedFilter = selectedFilter || internalSelectedCategory;
236
- const finalOnFilterChange = onFilterChange || handleInternalCategoryChange;
237
- const chartFilterTheme = ((_a2 = finalConfigs[0]) == null ? void 0 : _a2.theme) || "light";
238
- const dimensions = useResponsiveDimensions(
239
- isMobile,
240
- windowWidth,
241
- width,
242
- height
243
- );
244
- const renderConfigs = singleMode && !configs ? Array.from({ length: filteredData.length }, (_, i) => ({
245
- showLegend: false,
246
- showTooltip: false,
247
- backgroundColor: [
248
- defaultColorList[i % defaultColorList.length],
249
- "#F7F8F9"
250
- ]
251
- })) : finalConfigs;
252
- return /* @__PURE__ */ React.createElement(
253
- ChartContainer,
254
- {
255
- baseClassName,
256
- className,
257
- variant: props.variant,
258
- style: {
259
- ["--donut-item-min-width"]: `${dimensions.width}px`
260
- }
261
- },
262
- showToolbar && /* @__PURE__ */ React.createElement(
263
- ChartContainer,
264
- {
265
- baseClassName: `${baseClassName}-toolbar-wrapper`,
284
+ // 处理 ChartStatistic 组件配置
285
+ var statistics = useMemo(function() {
286
+ if (!statisticConfig) return null;
287
+ return Array.isArray(statisticConfig) ? statisticConfig : [
288
+ statisticConfig
289
+ ];
290
+ }, [
291
+ statisticConfig
292
+ ]);
293
+ var handleDownload = function() {
294
+ if (onDownload) {
295
+ onDownload();
296
+ return;
297
+ }
298
+ var instances = (chartRefs.current || []).filter(function(c) {
299
+ return !!c;
300
+ });
301
+ if (instances.length <= 1) {
302
+ var _instances_;
303
+ var target = (_instances_ = instances[0]) !== null && _instances_ !== void 0 ? _instances_ : null;
304
+ downloadChart(target, 'donut-chart');
305
+ return;
306
+ }
307
+ try {
308
+ var _Math;
309
+ // 将多个 canvas 竖直拼接为一张图片
310
+ var canvases = instances.map(function(inst) {
311
+ return inst === null || inst === void 0 ? void 0 : inst.canvas;
312
+ }).filter(Boolean);
313
+ if (canvases.length === 0) {
314
+ return;
315
+ }
316
+ var GAP = 16; // 竖向间距
317
+ var widths = canvases.map(function(c) {
318
+ return c.width;
319
+ });
320
+ var heights = canvases.map(function(c) {
321
+ return c.height;
322
+ });
323
+ var maxWidth = (_Math = Math).max.apply(_Math, _to_consumable_array(widths));
324
+ var totalHeight = heights.reduce(function(sum, h) {
325
+ return sum + h;
326
+ }, 0) + GAP * (canvases.length - 1);
327
+ var composite = document.createElement('canvas');
328
+ composite.width = maxWidth;
329
+ composite.height = totalHeight;
330
+ var ctx = composite.getContext('2d');
331
+ if (!ctx) return;
332
+ // 背景填充为白色,避免透明背景在 jpeg 下变黑
333
+ ctx.fillStyle = '#ffffff';
334
+ ctx.fillRect(0, 0, composite.width, composite.height);
335
+ var offsetY = 0;
336
+ canvases.forEach(function(c, i) {
337
+ var x = Math.floor((maxWidth - c.width) / 2);
338
+ ctx.drawImage(c, x, offsetY);
339
+ offsetY += c.height + (i < canvases.length - 1 ? GAP : 0);
340
+ });
341
+ var link = document.createElement('a');
342
+ link.download = "donut-charts-".concat(Date.now(), ".png");
343
+ link.href = composite.toDataURL('image/png', 1);
344
+ document.body.appendChild(link);
345
+ link.click();
346
+ document.body.removeChild(link);
347
+ } catch (e) {
348
+ var _instances_1;
349
+ // 兜底:任意异常回退为下载第一张
350
+ var target1 = (_instances_1 = instances[0]) !== null && _instances_1 !== void 0 ? _instances_1 : null;
351
+ downloadChart(target1, 'donut-chart');
352
+ }
353
+ };
354
+ var shouldShowFilter = filterList && filterList.length > 0 || autoCategoryData;
355
+ var finalFilterList = filterList || (autoCategoryData ? autoCategoryData.categories : []);
356
+ var finalSelectedFilter = selectedFilter || internalSelectedCategory;
357
+ var finalOnFilterChange = onFilterChange || handleInternalCategoryChange;
358
+ var chartFilterTheme = ((_finalConfigs_ = finalConfigs[0]) === null || _finalConfigs_ === void 0 ? void 0 : _finalConfigs_.theme) || 'light';
359
+ var dimensions = useResponsiveDimensions(isMobile, windowWidth, width, height);
360
+ var renderConfigs = singleMode && !configs ? Array.from({
361
+ length: filteredData.length
362
+ }, function(_, i) {
363
+ return {
364
+ showLegend: false,
365
+ showTooltip: false,
366
+ backgroundColor: [
367
+ defaultColorList[i % defaultColorList.length],
368
+ '#F7F8F9'
369
+ ]
370
+ };
371
+ }) : finalConfigs;
372
+ return /*#__PURE__*/ React.createElement(ChartContainer, {
373
+ baseClassName: baseClassName,
374
+ className: className,
375
+ variant: props.variant,
376
+ style: _define_property({}, '--donut-item-min-width', "".concat(dimensions.width, "px"))
377
+ }, showToolbar && /*#__PURE__*/ React.createElement(ChartContainer, {
378
+ baseClassName: "".concat(baseClassName, "-toolbar-wrapper"),
266
379
  variant: "borderless"
267
- },
268
- title && /* @__PURE__ */ React.createElement(
269
- ChartToolBar,
270
- {
271
- title,
272
- onDownload: handleDownload,
273
- extra: toolbarExtra,
274
- dataTime,
275
- filter: renderFilterInToolbar && shouldShowFilter ? /* @__PURE__ */ React.createElement(
276
- ChartFilter,
277
- __spreadProps(__spreadValues({
278
- filterOptions: finalFilterList.map((item) => {
380
+ }, title && /*#__PURE__*/ React.createElement(ChartToolBar, {
381
+ title: title,
382
+ onDownload: handleDownload,
383
+ extra: toolbarExtra,
384
+ dataTime: dataTime,
385
+ filter: renderFilterInToolbar && shouldShowFilter ? /*#__PURE__*/ React.createElement(ChartFilter, _object_spread_props(_object_spread({
386
+ filterOptions: finalFilterList.map(function(item) {
279
387
  return {
280
- label: item || "",
281
- value: item || ""
388
+ label: item || '',
389
+ value: item || ''
282
390
  };
283
- }),
284
- selectedFilter: finalSelectedFilter || "",
285
- onFilterChange: finalOnFilterChange
286
- }, filterLabels && {
287
- customOptions: filteredDataByFilterLabel,
288
- selectedCustomSelection: selectedFilterLabel,
289
- onSelectionChange: setSelectedFilterLabel
290
- }), {
291
- theme: chartFilterTheme,
292
- variant: "compact"
293
- })
294
- ) : void 0
295
- }
296
- ),
297
- statistics && /* @__PURE__ */ React.createElement(
298
- "div",
299
- {
300
- className: classNames(
301
- `${baseClassName}-statistic-container`,
302
- hashId
303
- )
304
- },
305
- statistics.map((config, index) => /* @__PURE__ */ React.createElement(
306
- ChartStatistic,
307
- __spreadProps(__spreadValues({
391
+ }),
392
+ selectedFilter: finalSelectedFilter || '',
393
+ onFilterChange: finalOnFilterChange
394
+ }, filterLabels && {
395
+ customOptions: filteredDataByFilterLabel,
396
+ selectedCustomSelection: selectedFilterLabel,
397
+ onSelectionChange: setSelectedFilterLabel
398
+ }), {
399
+ theme: chartFilterTheme,
400
+ variant: "compact"
401
+ })) : undefined
402
+ }), statistics && /*#__PURE__*/ React.createElement("div", {
403
+ className: classNames("".concat(baseClassName, "-statistic-container"), hashId)
404
+ }, statistics.map(function(config, index) {
405
+ return /*#__PURE__*/ React.createElement(ChartStatistic, _object_spread_props(_object_spread({
308
406
  key: index
309
- }, config), {
407
+ }, config), {
310
408
  theme: chartFilterTheme
311
- })
312
- ))
313
- ),
314
- !renderFilterInToolbar && shouldShowFilter && /* @__PURE__ */ React.createElement(
315
- ChartFilter,
316
- __spreadProps(__spreadValues({
317
- filterOptions: finalFilterList.map((item) => {
409
+ }));
410
+ })), !renderFilterInToolbar && shouldShowFilter && /*#__PURE__*/ React.createElement(ChartFilter, _object_spread_props(_object_spread({
411
+ filterOptions: finalFilterList.map(function(item) {
318
412
  return {
319
- label: item || "",
320
- value: item || ""
413
+ label: item || '',
414
+ value: item || ''
321
415
  };
322
- }),
323
- selectedFilter: finalSelectedFilter || "",
324
- onFilterChange: finalOnFilterChange
325
- }, filterLabels && {
326
- customOptions: filteredDataByFilterLabel,
327
- selectedCustomSelection: selectedFilterLabel,
328
- onSelectionChange: setSelectedFilterLabel
329
- }), {
330
- theme: chartFilterTheme
331
- })
332
- )
333
- ),
334
- /* @__PURE__ */ React.createElement(
335
- ChartContainer,
336
- {
337
- baseClassName: `${baseClassName}-content`,
416
+ }),
417
+ selectedFilter: finalSelectedFilter || '',
418
+ onFilterChange: finalOnFilterChange
419
+ }, filterLabels && {
420
+ customOptions: filteredDataByFilterLabel,
421
+ selectedCustomSelection: selectedFilterLabel,
422
+ onSelectionChange: setSelectedFilterLabel
423
+ }), {
424
+ theme: chartFilterTheme
425
+ }))), /*#__PURE__*/ React.createElement(ChartContainer, {
426
+ baseClassName: "".concat(baseClassName, "-content"),
338
427
  variant: "borderless"
339
- },
340
- renderConfigs.map((cfg, idx) => {
341
- var _a3, _b2;
342
- const currentDataItem = filteredData[idx];
343
- const isSingleValueMode = Boolean(singleMode && currentDataItem);
344
- let chartData = filteredData;
428
+ }, renderConfigs.map(function(cfg, idx) {
429
+ var _cfg_backgroundColor;
430
+ var currentDataItem = filteredData[idx];
431
+ var isSingleValueMode = Boolean(singleMode && currentDataItem);
432
+ var chartData = filteredData;
345
433
  if (isSingleValueMode && currentDataItem) {
346
- const mainValue = typeof currentDataItem.value === "number" ? currentDataItem.value : Number(currentDataItem.value);
347
- const remainingValue = Math.max(
348
- 0,
349
- 100 - (Number.isFinite(mainValue) ? mainValue : 0)
350
- );
351
- chartData = [
352
- currentDataItem,
353
- {
354
- label: "剩余",
355
- value: remainingValue,
356
- category: currentDataItem.category
357
- }
358
- ];
434
+ var mainValue = typeof currentDataItem.value === 'number' ? currentDataItem.value : Number(currentDataItem.value);
435
+ var remainingValue = Math.max(0, 100 - (Number.isFinite(mainValue) ? mainValue : 0));
436
+ chartData = [
437
+ currentDataItem,
438
+ {
439
+ label: '剩余',
440
+ value: remainingValue,
441
+ category: currentDataItem.category
442
+ }
443
+ ];
359
444
  }
360
- const hiddenSetForChart = hiddenDataIndicesByChart[idx] || /* @__PURE__ */ new Set();
361
- const visibleData = chartData.filter(
362
- (_, index) => !hiddenSetForChart.has(index)
363
- );
364
- const toNum = (v) => typeof v === "number" ? v : Number(v);
365
- const rawLabels = visibleData.map((d) => d.label);
366
- const labels = isSingleValueMode ? rawLabels.map((labelText, i) => i === 1 ? "" : labelText) : rawLabels;
367
- const values = visibleData.map((d) => toNum(d.value));
368
- const safeValues = values.map((v) => Number.isFinite(v) ? v : 0);
369
- const total = values.reduce(
370
- (sum, v) => sum + (Number.isFinite(v) ? v : 0),
371
- 0
372
- );
373
- const backgroundColors = cfg.backgroundColor || defaultColorList;
374
- const mainColor = (_b2 = (_a3 = cfg.backgroundColor) == null ? void 0 : _a3[0]) != null ? _b2 : defaultColorList[idx % defaultColorList.length];
375
- const chartJsData = {
376
- labels,
377
- datasets: [
378
- {
379
- data: safeValues,
380
- backgroundColor: isSingleValueMode ? [mainColor, "transparent"] : backgroundColors.slice(0, values.length),
381
- borderColor: isSingleValueMode ? [cfg.borderColor || "#fff", "transparent"] : cfg.borderColor || "#fff",
382
- hoverBackgroundColor: isSingleValueMode ? [mainColor, "transparent"] : backgroundColors.slice(0, values.length),
383
- hoverBorderColor: isSingleValueMode ? [cfg.borderColor || "#fff", "transparent"] : cfg.borderColor || "#fff",
384
- borderWidth: cfg.chartStyle === "pie" ? 0 : isMobile ? 1 : 1,
385
- spacing: isSingleValueMode ? 0 : cfg.chartStyle === "pie" ? 0 : isMobile ? 3 : 6,
386
- borderRadius: cfg.chartStyle === "pie" ? 0 : 4,
387
- hoverOffset: (ctx) => isSingleValueMode && (ctx == null ? void 0 : ctx.dataIndex) === 1 ? 0 : isMobile ? 4 : 6
388
- }
389
- ]
445
+ var hiddenSetForChart = hiddenDataIndicesByChart[idx] || new Set();
446
+ var visibleData = chartData.filter(function(_, index) {
447
+ return !hiddenSetForChart.has(index);
448
+ });
449
+ var toNum = function(v) {
450
+ return typeof v === 'number' ? v : Number(v);
390
451
  };
391
- const cutout = (() => {
392
- var _a4, _b3;
393
- if (cfg.chartStyle === "pie") {
394
- return 0;
395
- }
396
- if (isMobile) {
397
- if (typeof cfg.cutout === "number")
398
- return cfg.cutout * 0.9;
399
- return (_a4 = cfg.cutout) != null ? _a4 : isSingleValueMode ? SINGLE_MODE_MOBILE_CUTOUT : "70%";
400
- }
401
- return (_b3 = cfg.cutout) != null ? _b3 : isSingleValueMode ? SINGLE_MODE_DESKTOP_CUTOUT : "75%";
402
- })();
403
- const isDarkTheme = cfg.theme === "dark";
404
- const tooltipBackgroundColor = isDarkTheme ? "#1F2937" : "#FFFFFF";
405
- const tooltipBorderColor = isDarkTheme ? "#374151" : "#E5E7EB";
406
- const tooltipTitleColor = isDarkTheme ? "#F9FAFB" : "#111827";
407
- const tooltipBodyColor = isDarkTheme ? "#D1D5DB" : "#374151";
408
- const options = {
409
- responsive: true,
410
- maintainAspectRatio: false,
411
- cutout,
412
- plugins: {
413
- legend: {
414
- display: false
415
- },
416
- tooltip: {
417
- enabled: cfg.showTooltip !== false,
418
- filter: (tooltipItem) => !(isSingleValueMode && tooltipItem.dataIndex === 1),
419
- backgroundColor: tooltipBackgroundColor,
420
- borderColor: tooltipBorderColor,
421
- borderWidth: 1,
422
- titleColor: tooltipTitleColor,
423
- bodyColor: tooltipBodyColor,
424
- padding: isMobile ? 8 : 12,
425
- titleFont: {
426
- size: isMobile ? 12 : 14
427
- },
428
- bodyFont: {
429
- size: isMobile ? 11 : 13
430
- },
431
- callbacks: {
432
- label: ({ label, raw }) => {
433
- const val = typeof raw === "number" ? raw : Number(raw);
434
- const pct = total > 0 && Number.isFinite(val) ? (val / total * 100).toFixed(0) : "0";
435
- return `${label}: ${Number.isFinite(val) ? val : raw} (${pct}%)`;
452
+ var rawLabels = visibleData.map(function(d) {
453
+ return d.label;
454
+ });
455
+ var labels = isSingleValueMode ? rawLabels.map(function(labelText, i) {
456
+ return i === 1 ? '' : labelText;
457
+ }) : rawLabels;
458
+ var values = visibleData.map(function(d) {
459
+ return toNum(d.value);
460
+ });
461
+ var safeValues = values.map(function(v) {
462
+ return Number.isFinite(v) ? v : 0;
463
+ });
464
+ var total = values.reduce(function(sum, v) {
465
+ return sum + (Number.isFinite(v) ? v : 0);
466
+ }, 0);
467
+ var backgroundColors = cfg.backgroundColor || defaultColorList;
468
+ var _cfg_backgroundColor_;
469
+ var mainColor = (_cfg_backgroundColor_ = (_cfg_backgroundColor = cfg.backgroundColor) === null || _cfg_backgroundColor === void 0 ? void 0 : _cfg_backgroundColor[0]) !== null && _cfg_backgroundColor_ !== void 0 ? _cfg_backgroundColor_ : defaultColorList[idx % defaultColorList.length];
470
+ var chartJsData = {
471
+ labels: labels,
472
+ datasets: [
473
+ {
474
+ data: safeValues,
475
+ backgroundColor: isSingleValueMode ? [
476
+ mainColor,
477
+ 'transparent'
478
+ ] : backgroundColors.slice(0, values.length),
479
+ borderColor: isSingleValueMode ? [
480
+ cfg.borderColor || '#fff',
481
+ 'transparent'
482
+ ] : cfg.borderColor || '#fff',
483
+ hoverBackgroundColor: isSingleValueMode ? [
484
+ mainColor,
485
+ 'transparent'
486
+ ] : backgroundColors.slice(0, values.length),
487
+ hoverBorderColor: isSingleValueMode ? [
488
+ cfg.borderColor || '#fff',
489
+ 'transparent'
490
+ ] : cfg.borderColor || '#fff',
491
+ borderWidth: cfg.chartStyle === 'pie' ? 0 : isMobile ? 1 : 1,
492
+ spacing: isSingleValueMode ? 0 : cfg.chartStyle === 'pie' ? 0 : isMobile ? 3 : 6,
493
+ borderRadius: cfg.chartStyle === 'pie' ? 0 : 4,
494
+ hoverOffset: function(ctx) {
495
+ return isSingleValueMode && (ctx === null || ctx === void 0 ? void 0 : ctx.dataIndex) === 1 ? 0 : isMobile ? 4 : 6;
496
+ }
436
497
  }
437
- }
498
+ ]
499
+ };
500
+ var cutout = function() {
501
+ // 如果明确指定为饼图,cutout 为 0(实心)
502
+ if (cfg.chartStyle === 'pie') {
503
+ return 0;
504
+ }
505
+ // 环形图的逻辑
506
+ if (isMobile) {
507
+ if (typeof cfg.cutout === 'number') return cfg.cutout * 0.9;
508
+ var _cfg_cutout;
509
+ return (_cfg_cutout = cfg.cutout) !== null && _cfg_cutout !== void 0 ? _cfg_cutout : isSingleValueMode ? SINGLE_MODE_MOBILE_CUTOUT : '70%';
510
+ }
511
+ var _cfg_cutout1;
512
+ return (_cfg_cutout1 = cfg.cutout) !== null && _cfg_cutout1 !== void 0 ? _cfg_cutout1 : isSingleValueMode ? SINGLE_MODE_DESKTOP_CUTOUT : '75%';
513
+ }();
514
+ var isDarkTheme = cfg.theme === 'dark';
515
+ var tooltipBackgroundColor = isDarkTheme ? '#1F2937' : '#FFFFFF';
516
+ var tooltipBorderColor = isDarkTheme ? '#374151' : '#E5E7EB';
517
+ var tooltipTitleColor = isDarkTheme ? '#F9FAFB' : '#111827';
518
+ var tooltipBodyColor = isDarkTheme ? '#D1D5DB' : '#374151';
519
+ var options = {
520
+ responsive: true,
521
+ maintainAspectRatio: false,
522
+ cutout: cutout,
523
+ plugins: {
524
+ legend: {
525
+ display: false
526
+ },
527
+ tooltip: {
528
+ enabled: cfg.showTooltip !== false,
529
+ filter: function(tooltipItem) {
530
+ return !(isSingleValueMode && tooltipItem.dataIndex === 1);
531
+ },
532
+ backgroundColor: tooltipBackgroundColor,
533
+ borderColor: tooltipBorderColor,
534
+ borderWidth: 1,
535
+ titleColor: tooltipTitleColor,
536
+ bodyColor: tooltipBodyColor,
537
+ padding: isMobile ? 8 : 12,
538
+ titleFont: {
539
+ size: isMobile ? 12 : 14
540
+ },
541
+ bodyFont: {
542
+ size: isMobile ? 11 : 13
543
+ },
544
+ callbacks: {
545
+ label: function(param) {
546
+ var label = param.label, raw = param.raw;
547
+ var val = typeof raw === 'number' ? raw : Number(raw);
548
+ var pct = total > 0 && Number.isFinite(val) ? (val / total * 100).toFixed(0) : '0';
549
+ return "".concat(label, ": ").concat(Number.isFinite(val) ? val : raw, " (").concat(pct, "%)");
550
+ }
551
+ }
552
+ }
553
+ },
554
+ animation: {
555
+ duration: isMobile ? 200 : 1000
556
+ },
557
+ interaction: {
558
+ mode: 'point',
559
+ intersect: false
560
+ },
561
+ layout: {
562
+ padding: isMobile ? 4 : 6
438
563
  }
439
- },
440
- animation: {
441
- duration: isMobile ? 200 : 1e3
442
- },
443
- interaction: {
444
- mode: "point",
445
- intersect: false
446
- },
447
- layout: {
448
- padding: isMobile ? 4 : 6
449
- }
450
564
  };
451
- return /* @__PURE__ */ React.createElement(
452
- ChartContainer,
453
- {
565
+ var _obj, _obj1;
566
+ return /*#__PURE__*/ React.createElement(ChartContainer, {
454
567
  key: idx,
455
- baseClassName: `${baseClassName}-chart-wrapper`,
568
+ baseClassName: "".concat(baseClassName, "-chart-wrapper"),
456
569
  variant: "borderless"
457
- },
458
- isSingleValueMode ? /* @__PURE__ */ React.createElement(
459
- ChartContainer,
460
- {
461
- baseClassName: `${baseClassName}-single`,
462
- variant: "borderless",
463
- style: __spreadValues({
464
- ["--donut-chart-height"]: `${dimensions.height}px`,
465
- ["--donut-chart-width"]: `${dimensions.width}px`,
466
- width: dimensions.width,
467
- height: dimensions.height,
468
- marginTop: "20px"
469
- }, isMobile ? { margin: "0 auto" } : {})
570
+ }, isSingleValueMode ? /*#__PURE__*/ React.createElement(ChartContainer, {
571
+ baseClassName: "".concat(baseClassName, "-single"),
572
+ variant: "borderless",
573
+ style: _object_spread((_obj = {}, _define_property(_obj, '--donut-chart-height', "".concat(dimensions.height, "px")), _define_property(_obj, '--donut-chart-width', "".concat(dimensions.width, "px")), _define_property(_obj, "width", dimensions.width), _define_property(_obj, "height", dimensions.height), _define_property(_obj, "marginTop", '20px'), _obj), isMobile ? {
574
+ margin: '0 auto'
575
+ } : {})
576
+ }, /*#__PURE__*/ React.createElement(Doughnut, {
577
+ ref: function(instance) {
578
+ chartRefs.current[idx] = instance;
470
579
  },
471
- /* @__PURE__ */ React.createElement(
472
- Doughnut,
473
- {
474
- ref: (instance) => {
475
- chartRefs.current[idx] = instance;
476
- },
477
- data: chartJsData,
478
- options,
479
- plugins: [
480
- // 只有环形图才显示中心文本和背景
481
- ...cfg.chartStyle !== "pie" ? [
482
- createCenterTextPlugin(
483
- (typeof currentDataItem.value === "number" ? currentDataItem.value : Number(currentDataItem.value)) / (total || 1) * 100,
484
- currentDataItem.label,
485
- isMobile
486
- ),
487
- createBackgroundArcPlugin()
488
- // 背景色
489
- ] : []
490
- ]
491
- }
492
- )
493
- ) : /* @__PURE__ */ React.createElement(
494
- ChartContainer,
495
- {
496
- baseClassName: `${baseClassName}-row`,
497
- variant: "borderless",
498
- style: __spreadValues({}, isMobile ? { flexDirection: "column", alignItems: "stretch" } : {})
580
+ data: chartJsData,
581
+ options: options,
582
+ plugins: // 只有环形图才显示中心文本和背景
583
+ _to_consumable_array(cfg.chartStyle !== 'pie' ? [
584
+ createCenterTextPlugin((typeof currentDataItem.value === 'number' ? currentDataItem.value : Number(currentDataItem.value)) / (total || 1) * 100, currentDataItem.label, isMobile),
585
+ createBackgroundArcPlugin()
586
+ ] : [])
587
+ })) : /*#__PURE__*/ React.createElement(ChartContainer, {
588
+ baseClassName: "".concat(baseClassName, "-row"),
589
+ variant: "borderless",
590
+ style: _object_spread({}, isMobile ? {
591
+ flexDirection: 'column',
592
+ alignItems: 'stretch'
593
+ } : {})
594
+ }, /*#__PURE__*/ React.createElement(ChartContainer, {
595
+ baseClassName: "".concat(baseClassName, "-chart"),
596
+ variant: "borderless",
597
+ style: (_obj1 = {}, _define_property(_obj1, '--donut-chart-width', "".concat(dimensions.chartWidth, "px")), _define_property(_obj1, '--donut-chart-height', "".concat(dimensions.chartHeight, "px")), _define_property(_obj1, "width", dimensions.chartWidth), _define_property(_obj1, "height", dimensions.chartHeight), _define_property(_obj1, "marginTop", '20px'), _obj1)
598
+ }, /*#__PURE__*/ React.createElement(Doughnut, {
599
+ ref: function(instance) {
600
+ chartRefs.current[idx] = instance;
499
601
  },
500
- /* @__PURE__ */ React.createElement(
501
- ChartContainer,
502
- {
503
- baseClassName: `${baseClassName}-chart`,
504
- variant: "borderless",
505
- style: {
506
- ["--donut-chart-width"]: `${dimensions.chartWidth}px`,
507
- ["--donut-chart-height"]: `${dimensions.chartHeight}px`,
508
- width: dimensions.chartWidth,
509
- height: dimensions.chartHeight,
510
- marginTop: "20px"
511
- }
512
- },
513
- /* @__PURE__ */ React.createElement(
514
- Doughnut,
515
- {
516
- ref: (instance) => {
517
- chartRefs.current[idx] = instance;
518
- },
519
- data: chartJsData,
520
- options
521
- }
522
- )
523
- ),
524
- cfg.showLegend && /* @__PURE__ */ React.createElement(
525
- LegendView,
526
- {
527
- chartData,
528
- backgroundColors,
529
- hiddenDataIndicesByChart,
530
- chartIndex: idx,
531
- onLegendItemClick: (dataIndex) => handleLegendItemClick(idx, dataIndex),
532
- total,
533
- baseClassName,
534
- hashId,
535
- isMobile
536
- }
537
- )
538
- )
539
- );
540
- })
541
- )
542
- );
543
- };
544
- var DonutChart_default = DonutChart;
545
- export {
546
- DonutChart_default as default
602
+ data: chartJsData,
603
+ options: options
604
+ })), cfg.showLegend && /*#__PURE__*/ React.createElement(LegendView, {
605
+ chartData: chartData,
606
+ backgroundColors: backgroundColors,
607
+ hiddenDataIndicesByChart: hiddenDataIndicesByChart,
608
+ chartIndex: idx,
609
+ onLegendItemClick: function(dataIndex) {
610
+ return handleLegendItemClick(idx, dataIndex);
611
+ },
612
+ total: total,
613
+ baseClassName: baseClassName,
614
+ hashId: hashId,
615
+ isMobile: isMobile
616
+ })));
617
+ })));
547
618
  };
619
+ export default DonutChart;