@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,25 +1,217 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
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 asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
13
+ try {
14
+ var info = gen[key](arg);
15
+ var value = info.value;
16
+ } catch (error) {
17
+ reject(error);
18
+ return;
19
+ }
20
+ if (info.done) {
21
+ resolve(value);
22
+ } else {
23
+ Promise.resolve(value).then(_next, _throw);
24
+ }
25
+ }
26
+ function _async_to_generator(fn) {
27
+ return function() {
28
+ var self = this, args = arguments;
29
+ return new Promise(function(resolve, reject) {
30
+ var gen = fn.apply(self, args);
31
+ function _next(value) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
33
+ }
34
+ function _throw(err) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
36
+ }
37
+ _next(undefined);
38
+ });
9
39
  };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
40
+ }
41
+ function _class_call_check(instance, Constructor) {
42
+ if (!(instance instanceof Constructor)) {
43
+ throw new TypeError("Cannot call a class as a function");
44
+ }
45
+ }
46
+ function _defineProperties(target, props) {
47
+ for(var i = 0; i < props.length; i++){
48
+ var descriptor = props[i];
49
+ descriptor.enumerable = descriptor.enumerable || false;
50
+ descriptor.configurable = true;
51
+ if ("value" in descriptor) descriptor.writable = true;
52
+ Object.defineProperty(target, descriptor.key, descriptor);
53
+ }
54
+ }
55
+ function _create_class(Constructor, protoProps, staticProps) {
56
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
57
+ if (staticProps) _defineProperties(Constructor, staticProps);
58
+ return Constructor;
59
+ }
60
+ function _define_property(obj, key, value) {
61
+ if (key in obj) {
62
+ Object.defineProperty(obj, key, {
63
+ value: value,
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true
67
+ });
68
+ } else {
69
+ obj[key] = value;
70
+ }
71
+ return obj;
72
+ }
73
+ function _iterable_to_array(iter) {
74
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
75
+ }
76
+ function _iterable_to_array_limit(arr, i) {
77
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
78
+ if (_i == null) return;
79
+ var _arr = [];
80
+ var _n = true;
81
+ var _d = false;
82
+ var _s, _e;
83
+ try {
84
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
85
+ _arr.push(_s.value);
86
+ if (i && _arr.length === i) break;
87
+ }
88
+ } catch (err) {
89
+ _d = true;
90
+ _e = err;
91
+ } finally{
92
+ try {
93
+ if (!_n && _i["return"] != null) _i["return"]();
94
+ } finally{
95
+ if (_d) throw _e;
96
+ }
97
+ }
98
+ return _arr;
99
+ }
100
+ function _non_iterable_rest() {
101
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
102
+ }
103
+ function _non_iterable_spread() {
104
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
105
+ }
106
+ function _sliced_to_array(arr, i) {
107
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
108
+ }
109
+ function _to_consumable_array(arr) {
110
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
111
+ }
112
+ function _unsupported_iterable_to_array(o, minLen) {
113
+ if (!o) return;
114
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
115
+ var n = Object.prototype.toString.call(o).slice(8, -1);
116
+ if (n === "Object" && o.constructor) n = o.constructor.name;
117
+ if (n === "Map" || n === "Set") return Array.from(n);
118
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
119
+ }
120
+ function _ts_generator(thisArg, body) {
121
+ var f, y, t, g, _ = {
122
+ label: 0,
123
+ sent: function() {
124
+ if (t[0] & 1) throw t[1];
125
+ return t[1];
126
+ },
127
+ trys: [],
128
+ ops: []
16
129
  };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
-
22
- // src/MarkdownEditor/editor/utils/keyboard.ts
130
+ return g = {
131
+ next: verb(0),
132
+ "throw": verb(1),
133
+ "return": verb(2)
134
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
135
+ return this;
136
+ }), g;
137
+ function verb(n) {
138
+ return function(v) {
139
+ return step([
140
+ n,
141
+ v
142
+ ]);
143
+ };
144
+ }
145
+ function step(op) {
146
+ if (f) throw new TypeError("Generator is already executing.");
147
+ while(_)try {
148
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
149
+ if (y = 0, t) op = [
150
+ op[0] & 2,
151
+ t.value
152
+ ];
153
+ switch(op[0]){
154
+ case 0:
155
+ case 1:
156
+ t = op;
157
+ break;
158
+ case 4:
159
+ _.label++;
160
+ return {
161
+ value: op[1],
162
+ done: false
163
+ };
164
+ case 5:
165
+ _.label++;
166
+ y = op[1];
167
+ op = [
168
+ 0
169
+ ];
170
+ continue;
171
+ case 7:
172
+ op = _.ops.pop();
173
+ _.trys.pop();
174
+ continue;
175
+ default:
176
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
177
+ _ = 0;
178
+ continue;
179
+ }
180
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
181
+ _.label = op[1];
182
+ break;
183
+ }
184
+ if (op[0] === 6 && _.label < t[1]) {
185
+ _.label = t[1];
186
+ t = op;
187
+ break;
188
+ }
189
+ if (t && _.label < t[2]) {
190
+ _.label = t[2];
191
+ _.ops.push(op);
192
+ break;
193
+ }
194
+ if (t[2]) _.ops.pop();
195
+ _.trys.pop();
196
+ continue;
197
+ }
198
+ op = body.call(thisArg, _);
199
+ } catch (e) {
200
+ op = [
201
+ 6,
202
+ e
203
+ ];
204
+ y = 0;
205
+ } finally{
206
+ f = t = 0;
207
+ }
208
+ if (op[0] & 5) throw op[1];
209
+ return {
210
+ value: op[0] ? op[1] : void 0,
211
+ done: true
212
+ };
213
+ }
214
+ }
23
215
  import { message } from "antd";
24
216
  import copy from "copy-to-clipboard";
25
217
  import isHotkey from "is-hotkey";
@@ -29,38 +221,49 @@ import { ReactEditor } from "slate-react";
29
221
  import { useSubject } from "../../hooks/subscribe";
30
222
  import { NativeTableEditor } from "../../utils/native-table";
31
223
  import { EditorUtils } from "./editorUtils";
32
- var KeyboardTask = class {
33
- constructor(store, props) {
34
- this.store = store;
35
- this.editor = store == null ? void 0 : store.editor;
36
- this.props = props;
37
- }
38
- /**
224
+ export var KeyboardTask = /*#__PURE__*/ function() {
225
+ "use strict";
226
+ function KeyboardTask(store, props) {
227
+ _class_call_check(this, KeyboardTask);
228
+ _define_property(this, "store", void 0);
229
+ _define_property(this, "editor", void 0);
230
+ _define_property(this, "props", void 0);
231
+ this.store = store;
232
+ this.editor = store === null || store === void 0 ? void 0 : store.editor;
233
+ this.props = props;
234
+ }
235
+ _create_class(KeyboardTask, [
236
+ {
237
+ key: "curNodes",
238
+ get: /**
39
239
  * 获取当前编辑器中的最低层级元素节点
40
240
  *
41
241
  * @returns 编辑器中所有匹配的元素节点及其路径
42
- */
43
- get curNodes() {
44
- return Editor.nodes(this.editor, {
45
- mode: "lowest",
46
- match: (m) => {
47
- return Element.isElement(m);
48
- }
49
- });
50
- }
51
- /**
242
+ */ function get() {
243
+ return Editor.nodes(this.editor, {
244
+ mode: 'lowest',
245
+ match: function(m) {
246
+ return Element.isElement(m);
247
+ }
248
+ });
249
+ }
250
+ },
251
+ {
252
+ /**
52
253
  * 全选编辑器内容
53
254
  *
54
255
  * 如果当前位于表格单元格内,则选中整个表格;
55
256
  * 否则选中编辑器中的所有内容
56
- */
57
- selectAll() {
58
- Transforms.select(this.editor, {
59
- anchor: Editor.start(this.editor, []),
60
- focus: Editor.end(this.editor, [])
61
- });
62
- }
63
- /**
257
+ */ key: "selectAll",
258
+ value: function selectAll() {
259
+ Transforms.select(this.editor, {
260
+ anchor: Editor.start(this.editor, []),
261
+ focus: Editor.end(this.editor, [])
262
+ });
263
+ }
264
+ },
265
+ {
266
+ /**
64
267
  * 选择当前行的文本。
65
268
  *
66
269
  * 如果编辑器中有选区,则选择当前行的文本,并打开浮动工具栏。
@@ -68,26 +271,27 @@ var KeyboardTask = class {
68
271
  * @remarks
69
272
  * 该方法首先检查编辑器中是否有选区。如果有选区,则选择当前行的文本路径。
70
273
  * 然后获取当前行的文本内容,如果文本内容存在,则打开浮动工具栏。
71
- */
72
- selectLine() {
73
- if (this.editor.selection) {
74
- Transforms.select(
75
- this.editor,
76
- Path.parent(this.editor.selection.anchor.path)
77
- );
78
- }
79
- }
80
- /**
274
+ */ key: "selectLine",
275
+ value: function selectLine() {
276
+ if (this.editor.selection) {
277
+ Transforms.select(this.editor, Path.parent(this.editor.selection.anchor.path));
278
+ }
279
+ }
280
+ },
281
+ {
282
+ /**
81
283
  * 将选中文本转换为行内代码
82
284
  *
83
285
  * 如果编辑器存在选区,将选中的文本转换为行内代码格式
84
- */
85
- selectFormatToCode() {
86
- if (this.editor.selection) {
87
- EditorUtils.toggleFormat(this.editor, "code");
88
- }
89
- }
90
- /**
286
+ */ key: "selectFormatToCode",
287
+ value: function selectFormatToCode() {
288
+ if (this.editor.selection) {
289
+ EditorUtils.toggleFormat(this.editor, 'code');
290
+ }
291
+ }
292
+ },
293
+ {
294
+ /**
91
295
  * 选择当前光标所在的单词或汉字。
92
296
  *
93
297
  * 如果当前选区是折叠的(即光标没有选中任何文本),则会尝试选择光标所在位置的整个单词或汉字。
@@ -101,46 +305,51 @@ var KeyboardTask = class {
101
305
  *
102
306
  * @remarks
103
307
  * 该方法支持英文单词和中文汉字的选择。
104
- */
105
- selectWord() {
106
- const sel = this.editor.selection;
107
- if (sel && Range.isCollapsed(sel)) {
108
- const text = Node.leaf(this.editor, sel.anchor.path).text || "";
109
- let start = sel.anchor.offset;
110
- let end = start;
111
- const next = text.slice(start);
112
- const pre = text.slice(0, start);
113
- let m1 = next.match(/^(\w+)/);
114
- if (m1) {
115
- end += m1[1].length;
116
- let m2 = pre.match(/(\w+)$/);
117
- if (m2)
118
- start = start - m2[1].length;
119
- } else {
120
- m1 = next.match(/^([\u4e00-\u9fa5]+)/);
121
- if (m1) {
122
- end += m1[1].length;
123
- let m2 = pre.match(/([\u4e00-\u9fa5]+)$/);
124
- if (m2)
125
- start = start - m2[1].length;
126
- } else {
127
- let m2 = pre.match(/(\w+)$/);
128
- if (!m2)
129
- m2 = pre.match(/([\u4e00-\u9fa5]+)$/);
130
- if (m2)
131
- start -= m2[1].length;
132
- }
133
- }
134
- if (start === sel.anchor.offset && end === sel.anchor.offset && next) {
135
- end = start + 1;
136
- }
137
- Transforms.select(this.editor, {
138
- anchor: { path: sel.anchor.path, offset: start },
139
- focus: { path: sel.anchor.path, offset: end }
140
- });
141
- }
142
- }
143
- /**
308
+ */ key: "selectWord",
309
+ value: function selectWord() {
310
+ var sel = this.editor.selection;
311
+ if (sel && Range.isCollapsed(sel)) {
312
+ var text = Node.leaf(this.editor, sel.anchor.path).text || '';
313
+ var start = sel.anchor.offset;
314
+ var end = start;
315
+ var next = text.slice(start);
316
+ var pre = text.slice(0, start);
317
+ var m1 = next.match(/^(\w+)/);
318
+ if (m1) {
319
+ end += m1[1].length;
320
+ var m2 = pre.match(/(\w+)$/);
321
+ if (m2) start = start - m2[1].length;
322
+ } else {
323
+ m1 = next.match(/^([\u4e00-\u9fa5]+)/);
324
+ if (m1) {
325
+ end += m1[1].length;
326
+ var m21 = pre.match(/([\u4e00-\u9fa5]+)$/);
327
+ if (m21) start = start - m21[1].length;
328
+ } else {
329
+ var m22 = pre.match(/(\w+)$/);
330
+ if (!m22) m22 = pre.match(/([\u4e00-\u9fa5]+)$/);
331
+ if (m22) start -= m22[1].length;
332
+ }
333
+ }
334
+ if (start === sel.anchor.offset && end === sel.anchor.offset && next) {
335
+ end = start + 1;
336
+ }
337
+ Transforms.select(this.editor, {
338
+ anchor: {
339
+ path: sel.anchor.path,
340
+ offset: start
341
+ },
342
+ focus: {
343
+ path: sel.anchor.path,
344
+ offset: end
345
+ }
346
+ });
347
+ }
348
+ }
349
+ },
350
+ {
351
+ key: "pastePlainText",
352
+ value: /**
144
353
  * 从剪贴板粘贴纯文本内容到编辑器中。
145
354
  *
146
355
  * 该方法首先从剪贴板读取文本内容,然后根据当前节点的类型决定如何插入文本。
@@ -148,646 +357,1002 @@ var KeyboardTask = class {
148
357
  * 否则,直接插入文本。
149
358
  *
150
359
  * @returns {Promise<void>} 一个表示异步操作的 Promise 对象。
151
- */
152
- pastePlainText() {
153
- return __async(this, null, function* () {
154
- var _a;
155
- const text = yield navigator.clipboard.readText();
156
- if (text) {
157
- const [node] = this.curNodes;
158
- if (((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type) === "table-cell") {
159
- Editor.insertText(this.editor, text.replace(/\n/g, " "));
160
- } else {
161
- Editor.insertText(this.editor, text);
162
- }
163
- }
164
- });
165
- }
166
- /**
360
+ */ function pastePlainText() {
361
+ var _this = this;
362
+ return _async_to_generator(function() {
363
+ var text, _node_, _this_curNodes, node;
364
+ return _ts_generator(this, function(_state) {
365
+ switch(_state.label){
366
+ case 0:
367
+ return [
368
+ 4,
369
+ navigator.clipboard.readText()
370
+ ];
371
+ case 1:
372
+ text = _state.sent();
373
+ if (text) {
374
+ ;
375
+ _this_curNodes = _sliced_to_array(_this.curNodes, 1), node = _this_curNodes[0];
376
+ if ((node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) === 'table-cell') {
377
+ Editor.insertText(_this.editor, text.replace(/\n/g, ' '));
378
+ } else {
379
+ Editor.insertText(_this.editor, text);
380
+ }
381
+ }
382
+ return [
383
+ 2
384
+ ];
385
+ }
386
+ });
387
+ })();
388
+ }
389
+ },
390
+ {
391
+ /**
167
392
  * 上传图片
168
393
  *
169
394
  * 创建文件上传输入框,允许用户选择图片文件上传,
170
395
  * 然后根据当前节点位置将图片插入到编辑器中适当的位置。
171
396
  * 支持列单元格、普通节点和空编辑器的不同插入逻辑。
172
- */
173
- uploadImage() {
174
- const input = document.createElement("input");
175
- const [node] = this.curNodes;
176
- input.id = "uploadImage_" + Math.random();
177
- input.type = "file";
178
- input.accept = "image/*";
179
- const insertMedia = (url) => __async(this, null, function* () {
180
- if (node && ["column-cell"].includes(node[0].type)) {
181
- Transforms.insertNodes(
182
- this.editor,
183
- [EditorUtils.createMediaNode(url, "image", {})],
184
- {
185
- at: [...node[1], 0]
186
- }
187
- );
188
- return;
189
- }
190
- if (node) {
191
- Transforms.insertNodes(
192
- this.editor,
193
- [EditorUtils.createMediaNode(url, "image", {})],
194
- {
195
- at: Path.next(node[1])
196
- }
197
- );
198
- } else {
199
- Transforms.insertNodes(
200
- this.editor,
201
- [EditorUtils.createMediaNode(url, "image", {})],
202
- {
203
- select: true
204
- }
205
- );
206
- }
207
- });
208
- input.onchange = (e) => __async(this, null, function* () {
209
- var _a, _b;
210
- if (input.dataset.readonly) {
211
- return;
212
- }
213
- input.dataset.readonly = "true";
214
- const hideLoading = message.loading("上传中...");
215
- try {
216
- if (!((_b = (_a = this.props) == null ? void 0 : _a.image) == null ? void 0 : _b.upload)) {
217
- message.error("图片上传功能未配置");
218
- return;
219
- }
220
- const url = (yield this.props.image.upload(
221
- Array.from(e.target.files) || []
222
- )) || [];
223
- [url].flat().forEach((u) => {
224
- if (u) {
225
- insertMedia(u);
226
- }
227
- });
228
- message.success("上传成功");
229
- } catch (error) {
230
- console.error("图片上传失败:", error);
231
- message.error("图片上传失败");
232
- } finally {
233
- hideLoading();
234
- input.value = "";
235
- }
236
- });
237
- if (input.dataset.readonly) {
238
- return;
239
- }
240
- input.click();
241
- input.remove();
242
- }
243
- /**
397
+ */ key: "uploadImage",
398
+ value: function uploadImage() {
399
+ var input = document.createElement('input');
400
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
401
+ input.id = 'uploadImage' + '_' + Math.random();
402
+ input.type = 'file';
403
+ input.accept = 'image/*';
404
+ var _this = this;
405
+ var insertMedia = /*#__PURE__*/ function() {
406
+ var _ref = _async_to_generator(function(url) {
407
+ return _ts_generator(this, function(_state) {
408
+ if (node && [
409
+ 'column-cell'
410
+ ].includes(node[0].type)) {
411
+ Transforms.insertNodes(_this.editor, [
412
+ EditorUtils.createMediaNode(url, 'image', {})
413
+ ], {
414
+ at: _to_consumable_array(node[1]).concat([
415
+ 0
416
+ ])
417
+ });
418
+ return [
419
+ 2
420
+ ];
421
+ }
422
+ if (node) {
423
+ Transforms.insertNodes(_this.editor, [
424
+ EditorUtils.createMediaNode(url, 'image', {})
425
+ ], {
426
+ at: Path.next(node[1])
427
+ });
428
+ } else {
429
+ Transforms.insertNodes(_this.editor, [
430
+ EditorUtils.createMediaNode(url, 'image', {})
431
+ ], {
432
+ select: true
433
+ });
434
+ }
435
+ return [
436
+ 2
437
+ ];
438
+ });
439
+ });
440
+ return function insertMedia(url) {
441
+ return _ref.apply(this, arguments);
442
+ };
443
+ }();
444
+ var _this1 = this;
445
+ input.onchange = /*#__PURE__*/ function() {
446
+ var _ref = _async_to_generator(function(e) {
447
+ var hideLoading, _this_props_image, _this_props, url, error;
448
+ return _ts_generator(this, function(_state) {
449
+ switch(_state.label){
450
+ case 0:
451
+ if (input.dataset.readonly) {
452
+ return [
453
+ 2
454
+ ];
455
+ }
456
+ input.dataset.readonly = 'true';
457
+ hideLoading = message.loading('上传中...');
458
+ _state.label = 1;
459
+ case 1:
460
+ _state.trys.push([
461
+ 1,
462
+ 3,
463
+ 4,
464
+ 5
465
+ ]);
466
+ if (!((_this_props = _this1.props) === null || _this_props === void 0 ? void 0 : (_this_props_image = _this_props.image) === null || _this_props_image === void 0 ? void 0 : _this_props_image.upload)) {
467
+ message.error('图片上传功能未配置');
468
+ return [
469
+ 2
470
+ ];
471
+ }
472
+ return [
473
+ 4,
474
+ _this1.props.image.upload(Array.from(e.target.files) || [])
475
+ ];
476
+ case 2:
477
+ url = _state.sent() || [];
478
+ [
479
+ url
480
+ ].flat().forEach(function(u) {
481
+ if (u) {
482
+ insertMedia(u);
483
+ }
484
+ });
485
+ message.success('上传成功');
486
+ return [
487
+ 3,
488
+ 5
489
+ ];
490
+ case 3:
491
+ error = _state.sent();
492
+ console.error('图片上传失败:', error);
493
+ message.error('图片上传失败');
494
+ return [
495
+ 3,
496
+ 5
497
+ ];
498
+ case 4:
499
+ hideLoading();
500
+ input.value = '';
501
+ return [
502
+ 7
503
+ ];
504
+ case 5:
505
+ return [
506
+ 2
507
+ ];
508
+ }
509
+ });
510
+ });
511
+ return function(e) {
512
+ return _ref.apply(this, arguments);
513
+ };
514
+ }();
515
+ if (input.dataset.readonly) {
516
+ return;
517
+ }
518
+ input.click();
519
+ input.remove();
520
+ }
521
+ },
522
+ {
523
+ /**
244
524
  * 设置标题级别
245
525
  *
246
526
  * 将当前段落或标题节点转换为指定级别的标题。
247
527
  * 如果级别为4,则转换为普通段落。
248
528
  *
249
529
  * @param level 标题级别(1-3)或4(表示普通段落)
250
- */
251
- head(level) {
252
- var _a;
253
- const [node] = this.curNodes;
254
- if (level === 4) {
255
- this.paragraph();
256
- return;
257
- }
258
- if (node && ["paragraph", "head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type) && EditorUtils.isTop(this.editor, node[1])) {
259
- Transforms.setNodes(
260
- this.editor,
261
- { type: "head", level },
262
- { at: node[1] }
263
- );
264
- }
265
- }
266
- /**
530
+ */ key: "head",
531
+ value: function head(level) {
532
+ var _node_;
533
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
534
+ if (level === 4) {
535
+ this.paragraph();
536
+ return;
537
+ }
538
+ if (node && [
539
+ 'paragraph',
540
+ 'head'
541
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) && EditorUtils.isTop(this.editor, node[1])) {
542
+ Transforms.setNodes(this.editor, {
543
+ type: 'head',
544
+ level: level
545
+ }, {
546
+ at: node[1]
547
+ });
548
+ }
549
+ }
550
+ },
551
+ {
552
+ /**
267
553
  * 将标题转换为普通段落
268
554
  *
269
555
  * 如果当前节点是标题类型,将其转换为普通段落
270
- */
271
- paragraph() {
272
- var _a;
273
- const [node] = this.curNodes;
274
- if (node && ["head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type)) {
275
- Transforms.setNodes(this.editor, { type: "paragraph" }, { at: node[1] });
276
- }
277
- }
278
- /**
556
+ */ key: "paragraph",
557
+ value: function paragraph() {
558
+ var _node_;
559
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
560
+ if (node && [
561
+ 'head'
562
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) {
563
+ Transforms.setNodes(this.editor, {
564
+ type: 'paragraph'
565
+ }, {
566
+ at: node[1]
567
+ });
568
+ }
569
+ }
570
+ },
571
+ {
572
+ /**
279
573
  * 增加标题级别(使标题变小)
280
574
  *
281
575
  * 将段落转换为4级标题,
282
576
  * 或将标题级别从1级改为普通段落,
283
577
  * 或将其他级别标题升级一级(数字变小)
284
- */
285
- increaseHead() {
286
- var _a, _b;
287
- const [node] = this.curNodes;
288
- if (node && ["paragraph", "head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type) && EditorUtils.isTop(this.editor, node[1])) {
289
- if (((_b = node == null ? void 0 : node[0]) == null ? void 0 : _b.type) === "paragraph") {
290
- Transforms.setNodes(
291
- this.editor,
292
- { type: "head", level: 4 },
293
- { at: node[1] }
294
- );
295
- } else if (node[0].level === 1) {
296
- Transforms.setNodes(
297
- this.editor,
298
- { type: "paragraph" },
299
- { at: node[1] }
300
- );
301
- } else {
302
- Transforms.setNodes(
303
- this.editor,
304
- { level: node[0].level - 1 },
305
- { at: node[1] }
306
- );
307
- }
308
- }
309
- }
310
- /**
578
+ */ key: "increaseHead",
579
+ value: function increaseHead() {
580
+ var _node_;
581
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
582
+ if (node && [
583
+ 'paragraph',
584
+ 'head'
585
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) && EditorUtils.isTop(this.editor, node[1])) {
586
+ var _node_1;
587
+ if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'paragraph') {
588
+ Transforms.setNodes(this.editor, {
589
+ type: 'head',
590
+ level: 4
591
+ }, {
592
+ at: node[1]
593
+ });
594
+ } else if (node[0].level === 1) {
595
+ Transforms.setNodes(this.editor, {
596
+ type: 'paragraph'
597
+ }, {
598
+ at: node[1]
599
+ });
600
+ } else {
601
+ Transforms.setNodes(this.editor, {
602
+ level: node[0].level - 1
603
+ }, {
604
+ at: node[1]
605
+ });
606
+ }
607
+ }
608
+ }
609
+ },
610
+ {
611
+ /**
311
612
  * 降低标题级别(使标题变大)
312
613
  *
313
614
  * 将段落转换为1级标题,
314
615
  * 或将4级标题改为普通段落,
315
616
  * 或将其他级别标题降级一级(数字变大)
316
- */
317
- decreaseHead() {
318
- var _a, _b;
319
- const [node] = this.curNodes;
320
- if (node && ["paragraph", "head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type) && EditorUtils.isTop(this.editor, node[1])) {
321
- if (((_b = node == null ? void 0 : node[0]) == null ? void 0 : _b.type) === "paragraph") {
322
- Transforms.setNodes(
323
- this.editor,
324
- { type: "head", level: 1 },
325
- { at: node[1] }
326
- );
327
- } else if (node[0].level === 4) {
328
- Transforms.setNodes(
329
- this.editor,
330
- { type: "paragraph" },
331
- { at: node[1] }
332
- );
333
- } else {
334
- Transforms.setNodes(
335
- this.editor,
336
- { level: node[0].level + 1 },
337
- { at: node[1] }
338
- );
339
- }
340
- }
341
- }
342
- /**
617
+ */ key: "decreaseHead",
618
+ value: function decreaseHead() {
619
+ var _node_;
620
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
621
+ if (node && [
622
+ 'paragraph',
623
+ 'head'
624
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) && EditorUtils.isTop(this.editor, node[1])) {
625
+ var _node_1;
626
+ if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'paragraph') {
627
+ Transforms.setNodes(this.editor, {
628
+ type: 'head',
629
+ level: 1
630
+ }, {
631
+ at: node[1]
632
+ });
633
+ } else if (node[0].level === 4) {
634
+ Transforms.setNodes(this.editor, {
635
+ type: 'paragraph'
636
+ }, {
637
+ at: node[1]
638
+ });
639
+ } else {
640
+ Transforms.setNodes(this.editor, {
641
+ level: node[0].level + 1
642
+ }, {
643
+ at: node[1]
644
+ });
645
+ }
646
+ }
647
+ }
648
+ },
649
+ {
650
+ /**
343
651
  * 插入或移除引用块
344
652
  *
345
653
  * 如果当前节点已在引用块中,则移除引用块;
346
654
  * 否则,将当前节点转换为引用块。
347
655
  * 如果当前节点是标题,先将其转换为普通段落。
348
- */
349
- insertQuote() {
350
- var _a, _b;
351
- const [node] = this.curNodes;
352
- if (!["paragraph", "head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type))
353
- return;
354
- if (Node.parent(this.editor, node[1]).type === "blockquote") {
355
- Transforms.unwrapNodes(this.editor, { at: Path.parent(node[1]) });
356
- return;
357
- }
358
- if (((_b = node == null ? void 0 : node[0]) == null ? void 0 : _b.type) === "head") {
359
- Transforms.setNodes(
360
- this.editor,
361
- {
362
- type: "paragraph"
656
+ */ key: "insertQuote",
657
+ value: function insertQuote() {
658
+ var _node_, _node_1;
659
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
660
+ if (![
661
+ 'paragraph',
662
+ 'head'
663
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) return;
664
+ if (Node.parent(this.editor, node[1]).type === 'blockquote') {
665
+ Transforms.unwrapNodes(this.editor, {
666
+ at: Path.parent(node[1])
667
+ });
668
+ return;
669
+ }
670
+ if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'head') {
671
+ Transforms.setNodes(this.editor, {
672
+ type: 'paragraph'
673
+ }, {
674
+ at: node[1]
675
+ });
676
+ }
677
+ Transforms.wrapNodes(this.editor, {
678
+ type: 'blockquote',
679
+ children: []
680
+ });
681
+ }
363
682
  },
364
- { at: node[1] }
365
- );
366
- }
367
- Transforms.wrapNodes(this.editor, {
368
- type: "blockquote",
369
- children: []
370
- });
371
- }
372
- /**
683
+ {
684
+ /**
373
685
  * 插入表格
374
686
  *
375
687
  * 在当前位置插入一个3x3的表格(包含表头行)。
376
688
  * 根据当前节点类型(段落、标题或列单元格)
377
689
  * 决定在何处插入表格及如何处理现有内容。
378
- */
379
- insertTable() {
380
- var _a, _b, _c, _d;
381
- const [node] = this.curNodes;
382
- if (node && ["paragraph", "head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type)) {
383
- const path = ((_b = node == null ? void 0 : node[0]) == null ? void 0 : _b.type) === "paragraph" && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
384
- NativeTableEditor.insertTable(this.editor, {
385
- rows: 3,
386
- cols: 3,
387
- at: path
388
- });
389
- if (((_c = node == null ? void 0 : node[0]) == null ? void 0 : _c.type) === "paragraph" && !Node.string(node[0])) {
390
- Transforms.delete(this.editor, { at: Path.next(path) });
391
- }
392
- Transforms.select(this.editor, Editor.start(this.editor, path));
393
- }
394
- if (node && ["column-cell"].includes((_d = node == null ? void 0 : node[0]) == null ? void 0 : _d.type)) {
395
- NativeTableEditor.insertTable(this.editor, {
396
- rows: 3,
397
- cols: 3,
398
- at: [...node[1], 0]
399
- });
400
- }
401
- }
402
- /**
690
+ */ key: "insertTable",
691
+ value: function insertTable() {
692
+ var _node_, _node_1;
693
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
694
+ if (node && [
695
+ 'paragraph',
696
+ 'head'
697
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) {
698
+ var _node_2, _node_3;
699
+ var path = (node === null || node === void 0 ? void 0 : (_node_2 = node[0]) === null || _node_2 === void 0 ? void 0 : _node_2.type) === 'paragraph' && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
700
+ // 使用原生表格编辑器插入表格
701
+ NativeTableEditor.insertTable(this.editor, {
702
+ rows: 3,
703
+ cols: 3,
704
+ at: path
705
+ });
706
+ if ((node === null || node === void 0 ? void 0 : (_node_3 = node[0]) === null || _node_3 === void 0 ? void 0 : _node_3.type) === 'paragraph' && !Node.string(node[0])) {
707
+ Transforms.delete(this.editor, {
708
+ at: Path.next(path)
709
+ });
710
+ }
711
+ Transforms.select(this.editor, Editor.start(this.editor, path));
712
+ }
713
+ if (node && [
714
+ 'column-cell'
715
+ ].includes(node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type)) {
716
+ NativeTableEditor.insertTable(this.editor, {
717
+ rows: 3,
718
+ cols: 3,
719
+ at: _to_consumable_array(node[1]).concat([
720
+ 0
721
+ ])
722
+ });
723
+ }
724
+ }
725
+ },
726
+ {
727
+ /**
403
728
  * 插入分栏组
404
729
  *
405
730
  * 在当前位置插入一个两列的分栏布局。
406
731
  * 如果当前节点是空段落,会被删除。
407
- */
408
- /**
732
+ */ /**
409
733
  * 插入代码块
410
734
  *
411
735
  * 在当前位置插入代码块,并根据传入的类型设置语言和渲染模式。
412
736
  * 支持在列单元格内或普通段落/标题后插入代码块。
413
737
  *
414
738
  * @param type 可选的代码块类型,'mermaid'表示流程图,'html'表示HTML渲染
415
- */
416
- insertCode(type) {
417
- const [node] = this.curNodes;
418
- if (node && node[0] && ["paragraph", "head"].includes(node[0].type)) {
419
- const path = node[0].type === "paragraph" && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
420
- let lang = "";
421
- if (type === "mermaid") {
422
- lang = "mermaid";
423
- }
424
- Transforms.insertNodes(
425
- this.editor,
426
- {
427
- type: "code",
428
- language: lang ? lang : void 0,
429
- children: [
430
- {
431
- text: `flowchart TD
432
- Start --> Stop`
739
+ */ key: "insertCode",
740
+ value: function insertCode(type) {
741
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
742
+ if (node && node[0] && [
743
+ 'paragraph',
744
+ 'head'
745
+ ].includes(node[0].type)) {
746
+ var path = node[0].type === 'paragraph' && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
747
+ var lang = '';
748
+ if (type === 'mermaid') {
749
+ lang = 'mermaid';
750
+ }
751
+ Transforms.insertNodes(this.editor, {
752
+ type: 'code',
753
+ language: lang ? lang : undefined,
754
+ children: [
755
+ {
756
+ text: "flowchart TD\n Start --> Stop"
757
+ }
758
+ ],
759
+ render: type === 'html' ? true : undefined
760
+ }, {
761
+ at: path
762
+ });
763
+ Transforms.select(this.editor, Editor.end(this.editor, path));
764
+ }
433
765
  }
434
- ],
435
- render: type === "html" ? true : void 0
436
766
  },
437
- { at: path }
438
- );
439
- Transforms.select(this.editor, Editor.end(this.editor, path));
440
- }
441
- }
442
- /**
767
+ {
768
+ /**
443
769
  * 插入水平分割线
444
770
  *
445
771
  * 在当前位置插入水平分割线,并将光标定位到分割线后的位置。
446
772
  * 如果分割线后没有内容,则自动插入一个空段落并将光标定位到该段落。
447
- */
448
- horizontalLine() {
449
- var _a, _b;
450
- const [node] = this.curNodes;
451
- if (node && ["paragraph", "head"].includes((_a = node == null ? void 0 : node[0]) == null ? void 0 : _a.type)) {
452
- const path = ((_b = node == null ? void 0 : node[0]) == null ? void 0 : _b.type) === "paragraph" && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
453
- Transforms.insertNodes(
454
- this.editor,
455
- {
456
- type: "hr",
457
- children: [{ text: "" }]
773
+ */ key: "horizontalLine",
774
+ value: function horizontalLine() {
775
+ var _node_;
776
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
777
+ if (node && [
778
+ 'paragraph',
779
+ 'head'
780
+ ].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) {
781
+ var _node_1;
782
+ var path = (node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'paragraph' && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
783
+ Transforms.insertNodes(this.editor, {
784
+ type: 'hr',
785
+ children: [
786
+ {
787
+ text: ''
788
+ }
789
+ ]
790
+ }, {
791
+ at: path
792
+ });
793
+ if (Editor.hasPath(this.editor, Path.next(path))) {
794
+ Transforms.select(this.editor, Editor.start(this.editor, Path.next(path)));
795
+ } else {
796
+ Transforms.insertNodes(this.editor, {
797
+ type: 'paragraph',
798
+ children: [
799
+ {
800
+ text: ''
801
+ }
802
+ ]
803
+ }, {
804
+ at: Path.next(path),
805
+ select: true
806
+ });
807
+ }
808
+ }
809
+ }
458
810
  },
459
- { at: path }
460
- );
461
- if (Editor.hasPath(this.editor, Path.next(path))) {
462
- Transforms.select(
463
- this.editor,
464
- Editor.start(this.editor, Path.next(path))
465
- );
466
- } else {
467
- Transforms.insertNodes(
468
- this.editor,
469
- {
470
- type: "paragraph",
471
- children: [{ text: "" }]
472
- },
473
- { at: Path.next(path), select: true }
474
- );
475
- }
476
- }
477
- }
478
- /**
811
+ {
812
+ /**
479
813
  * 创建或转换列表
480
814
  *
481
815
  * 将当前段落或标题转换为指定类型的列表。
482
816
  * 如果已经是列表项,则更改列表类型。
483
817
  *
484
818
  * @param mode 列表类型 'ordered'(有序列表), 'unordered'(无序列表), 'task'(任务列表)
485
- */
486
- list(mode) {
487
- const [curNode] = this.curNodes;
488
- if (curNode && ["paragraph", "head"].includes(curNode[0].type)) {
489
- const parent = Editor.parent(this.editor, curNode[1]);
490
- if (parent[0].type === "list-item" && !Path.hasPrevious(curNode[1])) {
491
- Transforms.setNodes(
492
- this.editor,
493
- {
494
- order: mode === "ordered",
495
- task: mode === "task"
496
- },
497
- { at: Path.parent(parent[1]) }
498
- );
499
- const listItems = Array.from(
500
- Editor.nodes(this.editor, {
501
- match: (n) => n.type === "list-item",
502
- at: Path.parent(parent[1]),
503
- reverse: true,
504
- mode: "lowest"
505
- })
506
- );
507
- Transforms.setNodes(
508
- this.editor,
509
- { start: void 0 },
510
- { at: Path.parent(parent[1]) }
511
- );
512
- for (let l of listItems) {
513
- Transforms.setNodes(
514
- this.editor,
515
- { checked: mode === "task" ? l[0].checked || false : void 0 },
516
- { at: l[1] }
517
- );
518
- }
519
- } else {
520
- const childrenList = [];
521
- const selection = this.editor.selection;
522
- if (!selection || Range.isCollapsed(selection)) {
523
- const textNodes = curNode[0].type === "paragraph" ? curNode[0].children : [{ text: Node.string(curNode[0]) }];
524
- const item = {
525
- type: "list-item",
526
- checked: mode === "task" ? false : void 0,
527
- children: [
528
- {
529
- type: "paragraph",
530
- children: textNodes
531
- }
532
- ]
533
- };
534
- childrenList.push(item);
535
- Transforms.delete(this.editor, { at: curNode[1] });
536
- } else {
537
- const selectedNodes = Array.from(
538
- Editor.nodes(this.editor, {
539
- at: selection,
540
- match: (n) => Element.isElement(n) && ["paragraph", "head"].includes(n.type)
541
- })
542
- );
543
- if (selectedNodes.length === 0) {
544
- const textNodes = Array.from(
545
- Editor.nodes(this.editor, {
546
- at: selection,
547
- match: (n) => Text.isText(n)
548
- })
549
- );
550
- if (textNodes.length > 0) {
551
- const parentPath = Path.parent(textNodes[0][1]);
552
- const [parentNode] = Editor.node(this.editor, parentPath);
553
- if (Element.isElement(parentNode) && ["paragraph", "head"].includes(parentNode.type)) {
554
- selectedNodes.push([
555
- parentNode,
556
- parentPath
557
- ]);
558
- }
559
- }
560
- }
561
- for (const [node, path] of selectedNodes) {
562
- const nodeRange = Editor.range(this.editor, path);
563
- const isFullySelected = Range.equals(selection, nodeRange) || Range.includes(selection, nodeRange) && Range.includes(nodeRange, selection);
564
- if (isFullySelected) {
565
- const textNodes = node.type === "paragraph" ? node.children : [{ text: Node.string(node) }];
566
- const item = {
567
- type: "list-item",
568
- checked: mode === "task" ? false : void 0,
569
- children: [
570
- {
571
- type: "paragraph",
572
- children: textNodes
573
- }
574
- ]
575
- };
576
- childrenList.push(item);
577
- Transforms.delete(this.editor, { at: path });
578
- } else {
579
- const selectedText = Editor.string(this.editor, selection);
580
- if (selectedText.trim()) {
581
- const item = {
582
- type: "list-item",
583
- checked: mode === "task" ? false : void 0,
584
- children: [
585
- {
586
- type: "paragraph",
587
- children: [{ text: selectedText }]
819
+ */ key: "list",
820
+ value: function list(mode) {
821
+ var _this_curNodes = _sliced_to_array(this.curNodes, 1), curNode = _this_curNodes[0];
822
+ if (curNode && [
823
+ 'paragraph',
824
+ 'head'
825
+ ].includes(curNode[0].type)) {
826
+ var parent = Editor.parent(this.editor, curNode[1]);
827
+ if (parent[0].type === 'list-item' && !Path.hasPrevious(curNode[1])) {
828
+ Transforms.setNodes(this.editor, {
829
+ order: mode === 'ordered',
830
+ task: mode === 'task'
831
+ }, {
832
+ at: Path.parent(parent[1])
833
+ });
834
+ var listItems = Array.from(Editor.nodes(this.editor, {
835
+ match: function(n) {
836
+ return n.type === 'list-item';
837
+ },
838
+ at: Path.parent(parent[1]),
839
+ reverse: true,
840
+ mode: 'lowest'
841
+ }));
842
+ Transforms.setNodes(this.editor, {
843
+ start: undefined
844
+ }, {
845
+ at: Path.parent(parent[1])
846
+ });
847
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
848
+ try {
849
+ for(var _iterator = listItems[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
850
+ var l = _step.value;
851
+ Transforms.setNodes(this.editor, {
852
+ checked: mode === 'task' ? l[0].checked || false : undefined
853
+ }, {
854
+ at: l[1]
855
+ });
856
+ }
857
+ } catch (err) {
858
+ _didIteratorError = true;
859
+ _iteratorError = err;
860
+ } finally{
861
+ try {
862
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
863
+ _iterator.return();
864
+ }
865
+ } finally{
866
+ if (_didIteratorError) {
867
+ throw _iteratorError;
868
+ }
869
+ }
870
+ }
871
+ } else {
872
+ var childrenList = [];
873
+ var selection = this.editor.selection;
874
+ if (!selection || Range.isCollapsed(selection)) {
875
+ // 如果没有选区或选区已折叠,使用当前节点
876
+ var textNodes = curNode[0].type === 'paragraph' ? curNode[0].children : [
877
+ {
878
+ text: Node.string(curNode[0])
879
+ }
880
+ ];
881
+ var item = {
882
+ type: 'list-item',
883
+ checked: mode === 'task' ? false : undefined,
884
+ children: [
885
+ {
886
+ type: 'paragraph',
887
+ children: textNodes
888
+ }
889
+ ]
890
+ };
891
+ childrenList.push(item);
892
+ // 删除原节点
893
+ Transforms.delete(this.editor, {
894
+ at: curNode[1]
895
+ });
896
+ } else {
897
+ // 有选区时,获取选区内的所有节点
898
+ var selectedNodes = Array.from(Editor.nodes(this.editor, {
899
+ at: selection,
900
+ match: function(n) {
901
+ return Element.isElement(n) && [
902
+ 'paragraph',
903
+ 'head'
904
+ ].includes(n.type);
905
+ }
906
+ }));
907
+ if (selectedNodes.length === 0) {
908
+ // 如果没有选中块级元素,尝试选中文本节点
909
+ var textNodes1 = Array.from(Editor.nodes(this.editor, {
910
+ at: selection,
911
+ match: function(n) {
912
+ return Text.isText(n);
913
+ }
914
+ }));
915
+ if (textNodes1.length > 0) {
916
+ // 获取文本节点的父节点
917
+ var parentPath = Path.parent(textNodes1[0][1]);
918
+ var _Editor_node = _sliced_to_array(Editor.node(this.editor, parentPath), 1), parentNode = _Editor_node[0];
919
+ if (Element.isElement(parentNode) && [
920
+ 'paragraph',
921
+ 'head'
922
+ ].includes(parentNode.type)) {
923
+ selectedNodes.push([
924
+ parentNode,
925
+ parentPath
926
+ ]);
927
+ }
928
+ }
929
+ }
930
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
931
+ try {
932
+ // 处理选中的节点
933
+ for(var _iterator1 = selectedNodes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
934
+ var _step_value = _sliced_to_array(_step1.value, 2), node = _step_value[0], path = _step_value[1];
935
+ // 检查节点是否完全被选中
936
+ var nodeRange = Editor.range(this.editor, path);
937
+ var isFullySelected = Range.equals(selection, nodeRange) || Range.includes(selection, nodeRange) && Range.includes(nodeRange, selection);
938
+ if (isFullySelected) {
939
+ // 完全选中的节点,直接删除并转换为列表项
940
+ var textNodes2 = node.type === 'paragraph' ? node.children : [
941
+ {
942
+ text: Node.string(node)
943
+ }
944
+ ];
945
+ var item1 = {
946
+ type: 'list-item',
947
+ checked: mode === 'task' ? false : undefined,
948
+ children: [
949
+ {
950
+ type: 'paragraph',
951
+ children: textNodes2
952
+ }
953
+ ]
954
+ };
955
+ childrenList.push(item1);
956
+ Transforms.delete(this.editor, {
957
+ at: path
958
+ });
959
+ } else {
960
+ // 部分选中的节点,使用选区内容创建列表项
961
+ var selectedText = Editor.string(this.editor, selection);
962
+ if (selectedText.trim()) {
963
+ var item2 = {
964
+ type: 'list-item',
965
+ checked: mode === 'task' ? false : undefined,
966
+ children: [
967
+ {
968
+ type: 'paragraph',
969
+ children: [
970
+ {
971
+ text: selectedText
972
+ }
973
+ ]
974
+ }
975
+ ]
976
+ };
977
+ childrenList.push(item2);
978
+ // 删除选中的内容
979
+ Transforms.delete(this.editor, {
980
+ at: selection
981
+ });
982
+ }
983
+ }
984
+ }
985
+ } catch (err) {
986
+ _didIteratorError1 = true;
987
+ _iteratorError1 = err;
988
+ } finally{
989
+ try {
990
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
991
+ _iterator1.return();
992
+ }
993
+ } finally{
994
+ if (_didIteratorError1) {
995
+ throw _iteratorError1;
996
+ }
997
+ }
998
+ }
999
+ }
1000
+ Transforms.insertNodes(this.editor, {
1001
+ type: 'list',
1002
+ order: mode === 'ordered',
1003
+ task: mode === 'task',
1004
+ children: childrenList
1005
+ }, {
1006
+ at: this.editor.selection || curNode[1],
1007
+ select: true
1008
+ });
588
1009
  }
589
- ]
590
- };
591
- childrenList.push(item);
592
- Transforms.delete(this.editor, { at: selection });
593
- }
1010
+ } else if (curNode && curNode[0].type === 'list-item') {
1011
+ Transforms.setNodes(this.editor, {
1012
+ order: mode === 'ordered',
1013
+ task: mode === 'task'
1014
+ }, {
1015
+ at: curNode[1]
1016
+ });
1017
+ }
594
1018
  }
595
- }
596
- }
597
- Transforms.insertNodes(
598
- this.editor,
599
- {
600
- type: "list",
601
- order: mode === "ordered",
602
- task: mode === "task",
603
- children: childrenList
604
- },
605
- { at: this.editor.selection || curNode[1], select: true }
606
- );
607
- }
608
- } else if (curNode && curNode[0].type === "list-item") {
609
- Transforms.setNodes(
610
- this.editor,
611
- { order: mode === "ordered", task: mode === "task" },
612
- { at: curNode[1] }
613
- );
614
- }
615
- }
616
- /**
1019
+ },
1020
+ {
1021
+ /**
617
1022
  * 切换文本格式
618
1023
  *
619
1024
  * 在当前选区上应用或取消指定的文本格式(如加粗、斜体等)
620
1025
  *
621
1026
  * @param type 要应用的格式类型('bold'、'italic'、'strikethrough'等)
622
- */
623
- format(type) {
624
- EditorUtils.toggleFormat(this.editor, type);
625
- }
626
- /**
1027
+ */ key: "format",
1028
+ value: function format(type) {
1029
+ EditorUtils.toggleFormat(this.editor, type);
1030
+ }
1031
+ },
1032
+ {
1033
+ /**
627
1034
  * 清除文本格式
628
1035
  *
629
1036
  * 移除当前选区中的所有格式标记。
630
1037
  * 如果选区是折叠的(只有光标),则清除光标所在位置的所有标记
631
- */
632
- clear() {
633
- if (this.editor.selection)
634
- EditorUtils.clearMarks(
635
- this.editor,
636
- !Range.isCollapsed(this.editor.selection)
637
- );
638
- }
639
- /**
1038
+ */ key: "clear",
1039
+ value: function clear() {
1040
+ if (this.editor.selection) EditorUtils.clearMarks(this.editor, !Range.isCollapsed(this.editor.selection));
1041
+ }
1042
+ },
1043
+ {
1044
+ /**
640
1045
  * 撤销上一步操作
641
1046
  *
642
1047
  * 调用编辑器的undo方法,回退到上一个历史状态
643
- */
644
- undo() {
645
- var _a;
646
- try {
647
- (_a = this.store) == null ? void 0 : _a.editor.undo();
648
- } catch (e) {
649
- }
650
- }
651
- /**
1048
+ */ key: "undo",
1049
+ value: function undo() {
1050
+ try {
1051
+ var _this_store;
1052
+ (_this_store = this.store) === null || _this_store === void 0 ? void 0 : _this_store.editor.undo();
1053
+ } catch (e) {}
1054
+ }
1055
+ },
1056
+ {
1057
+ /**
652
1058
  * 重做上一步被撤销的操作
653
1059
  *
654
1060
  * 调用编辑器的redo方法,前进到下一个历史状态
655
- */
656
- redo() {
657
- var _a;
658
- try {
659
- (_a = this.store) == null ? void 0 : _a.editor.redo();
660
- } catch (e) {
661
- }
662
- }
663
- };
664
- var keyMap = [
665
- ["mod+shift+l", "selectLine"],
666
- ["mod+e", "selectFormatToCode"],
667
- ["mod+d", "selectWord"],
668
- ["mod+a", "selectAll"],
669
- ["mod+shift+v", "pastePlainText"],
670
- ["mod+1", "head", [1]],
671
- ["mod+2", "head", [2]],
672
- ["mod+3", "head", [3]],
673
- ["mod+4", "head", [4]],
674
- ["mod+0", "paragraph"],
675
- ["mod+]", "increaseHead"],
676
- ["mod+[", "decreaseHead"],
677
- ["option+q", "insertQuote"],
678
- ["mod+option+t", "insertTable"],
679
- ["mod+option+c", "insertCode"],
680
- ["mod+option+/", "horizontalLine"],
681
- ["mod+option+o", "list", ["ordered"]],
682
- ["mod+option+u", "list", ["unordered"]],
683
- ["mod+option+s", "list", ["task"]],
684
- ["mod+b", "format", ["bold"]],
685
- ["mod+i", "format", ["italic"]],
686
- ["mod+shift+s", "format", ["strikethrough"]],
687
- ["option+`", "format", ["code"]],
688
- ["mod+\\", "clear"],
689
- ["mod+option+m", "insertCode", ["mermaid"]]
690
- ];
691
- var useSystemKeyboard = (keyTask$, store, props, markdownContainerRef) => {
692
- const task = useMemo(() => {
693
- return new KeyboardTask(store, props);
694
- }, [props.readonly]);
695
- useSubject(keyTask$, ({ key, args }) => {
696
- task[key](...args || []);
697
- });
698
- const keydown = useCallback((e) => {
699
- var _a, _b, _c, _d;
700
- if (!store)
701
- return;
702
- if (isHotkey("mod+c", e) || isHotkey("mod+x", e)) {
703
- const [node] = Editor.nodes(store == null ? void 0 : store.editor, {
704
- mode: "lowest",
705
- match: (m) => Element.isElement(m) && (m.type === "media" || m.type === "attach")
706
- });
707
- if (!node)
708
- return;
709
- let readlUrl = (_a = node[0]) == null ? void 0 : _a.url;
710
- if (((_b = node == null ? void 0 : node[0]) == null ? void 0 : _b.type) === "media") {
711
- const url = `media://file?url=${readlUrl}&height=${node[0].height || ""}`;
712
- try {
713
- copy(url);
714
- } catch (error) {
1061
+ */ key: "redo",
1062
+ value: function redo() {
1063
+ try {
1064
+ var _this_store;
1065
+ (_this_store = this.store) === null || _this_store === void 0 ? void 0 : _this_store.editor.redo();
1066
+ } catch (e) {}
1067
+ }
715
1068
  }
716
- if (isHotkey("mod+x", e)) {
717
- Transforms.delete(store == null ? void 0 : store.editor, { at: node[1] });
718
- ReactEditor.focus(store == null ? void 0 : store.editor);
1069
+ ]);
1070
+ return KeyboardTask;
1071
+ }();
1072
+ /**
1073
+ *
1074
+ 以下是 Markdown 编辑器快捷键列表及其功能说明:
1075
+
1076
+ | 快捷键 | 功能 |
1077
+ |-------|------|
1078
+ | `Cmd/Ctrl+Shift+L` | 选择当前行文本 |
1079
+ | `Cmd/Ctrl+E` | 选择当前格式化的文本 |
1080
+ | `Cmd/Ctrl+D` | 选择当前光标所在的单词或汉字 |
1081
+ | `Cmd/Ctrl+A` | 全选编辑器内容 |
1082
+ | `Cmd/Ctrl+Shift+V` | 粘贴纯文本内容(无格式) |
1083
+ | `Cmd/Ctrl+1` | 设置为一级标题 (H1) |
1084
+ | `Cmd/Ctrl+2` | 设置为二级标题 (H2) |
1085
+ | `Cmd/Ctrl+3` | 设置为三级标题 (H3) |
1086
+ | `Cmd/Ctrl+4` | 转换为普通段落 |
1087
+ | `Cmd/Ctrl+0` | 转换为普通段落 |
1088
+ | `Cmd/Ctrl+]` | 增加标题级别(标题变小) |
1089
+ | `Cmd/Ctrl+[` | 降低标题级别(标题变大) |
1090
+ | `Option/Alt+Q` | 插入或移除引用块 |
1091
+ | `Cmd/Ctrl+Option/Alt+T` | 插入表格 |
1092
+ | `Cmd/Ctrl+Option/Alt+C` | 插入代码块 |
1093
+ | `Cmd/Ctrl+Option/Alt+/` | 插入水平分割线 |
1094
+ | `Cmd/Ctrl+Option/Alt+O` | 创建有序列表 |
1095
+ | `Cmd/Ctrl+Option/Alt+U` | 创建无序列表 |
1096
+ | `Cmd/Ctrl+Option/Alt+S` | 创建任务列表 |
1097
+ | `Cmd/Ctrl+B` | 切换文本加粗格式 |
1098
+ | `Cmd/Ctrl+I` | 切换文本斜体格式 |
1099
+ | `Cmd/Ctrl+Shift+S` | 切换文本删除线格式 |
1100
+ | `Option/Alt+`` | 切换行内代码格式 |
1101
+ | `Cmd/Ctrl+\` | 清除所有文本格式 |
1102
+ | `Cmd/Ctrl+Option/Alt+M` | 插入流程图(Mermaid)代码块 |
1103
+ 注:`Cmd` 键在 Windows 系统上对应 `Ctrl` 键,`Option` 键在 Windows 系统上对应 `Alt` 键。
1104
+ */ var keyMap = [
1105
+ [
1106
+ 'mod+shift+l',
1107
+ 'selectLine'
1108
+ ],
1109
+ [
1110
+ 'mod+e',
1111
+ 'selectFormatToCode'
1112
+ ],
1113
+ [
1114
+ 'mod+d',
1115
+ 'selectWord'
1116
+ ],
1117
+ [
1118
+ 'mod+a',
1119
+ 'selectAll'
1120
+ ],
1121
+ [
1122
+ 'mod+shift+v',
1123
+ 'pastePlainText'
1124
+ ],
1125
+ [
1126
+ 'mod+1',
1127
+ 'head',
1128
+ [
1129
+ 1
1130
+ ]
1131
+ ],
1132
+ [
1133
+ 'mod+2',
1134
+ 'head',
1135
+ [
1136
+ 2
1137
+ ]
1138
+ ],
1139
+ [
1140
+ 'mod+3',
1141
+ 'head',
1142
+ [
1143
+ 3
1144
+ ]
1145
+ ],
1146
+ [
1147
+ 'mod+4',
1148
+ 'head',
1149
+ [
1150
+ 4
1151
+ ]
1152
+ ],
1153
+ [
1154
+ 'mod+0',
1155
+ 'paragraph'
1156
+ ],
1157
+ [
1158
+ 'mod+]',
1159
+ 'increaseHead'
1160
+ ],
1161
+ [
1162
+ 'mod+[',
1163
+ 'decreaseHead'
1164
+ ],
1165
+ [
1166
+ 'option+q',
1167
+ 'insertQuote'
1168
+ ],
1169
+ [
1170
+ 'mod+option+t',
1171
+ 'insertTable'
1172
+ ],
1173
+ [
1174
+ 'mod+option+c',
1175
+ 'insertCode'
1176
+ ],
1177
+ [
1178
+ 'mod+option+/',
1179
+ 'horizontalLine'
1180
+ ],
1181
+ [
1182
+ 'mod+option+o',
1183
+ 'list',
1184
+ [
1185
+ 'ordered'
1186
+ ]
1187
+ ],
1188
+ [
1189
+ 'mod+option+u',
1190
+ 'list',
1191
+ [
1192
+ 'unordered'
1193
+ ]
1194
+ ],
1195
+ [
1196
+ 'mod+option+s',
1197
+ 'list',
1198
+ [
1199
+ 'task'
1200
+ ]
1201
+ ],
1202
+ [
1203
+ 'mod+b',
1204
+ 'format',
1205
+ [
1206
+ 'bold'
1207
+ ]
1208
+ ],
1209
+ [
1210
+ 'mod+i',
1211
+ 'format',
1212
+ [
1213
+ 'italic'
1214
+ ]
1215
+ ],
1216
+ [
1217
+ 'mod+shift+s',
1218
+ 'format',
1219
+ [
1220
+ 'strikethrough'
1221
+ ]
1222
+ ],
1223
+ [
1224
+ 'option+`',
1225
+ 'format',
1226
+ [
1227
+ 'code'
1228
+ ]
1229
+ ],
1230
+ [
1231
+ 'mod+\\',
1232
+ 'clear'
1233
+ ],
1234
+ [
1235
+ 'mod+option+m',
1236
+ 'insertCode',
1237
+ [
1238
+ 'mermaid'
1239
+ ]
1240
+ ]
1241
+ ];
1242
+ export var useSystemKeyboard = function(keyTask$, store, props, markdownContainerRef) {
1243
+ var task = useMemo(function() {
1244
+ return new KeyboardTask(store, props);
1245
+ }, [
1246
+ props.readonly
1247
+ ]);
1248
+ useSubject(keyTask$, function(param) {
1249
+ var key = param.key, args = param.args;
1250
+ var // @ts-ignore
1251
+ _task;
1252
+ (_task = task)[key].apply(_task, _to_consumable_array(args || []));
1253
+ });
1254
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1255
+ var keydown = useCallback(function(e) {
1256
+ if (!store) return;
1257
+ if (isHotkey('mod+c', e) || isHotkey('mod+x', e)) {
1258
+ var _node_, _node_1, _node_2;
1259
+ var _Editor_nodes = _sliced_to_array(Editor.nodes(store === null || store === void 0 ? void 0 : store.editor, {
1260
+ mode: 'lowest',
1261
+ match: function(m) {
1262
+ return Element.isElement(m) && (m.type === 'media' || m.type === 'attach');
1263
+ }
1264
+ }), 1), node = _Editor_nodes[0];
1265
+ if (!node) return;
1266
+ var readlUrl = (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.url;
1267
+ if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'media') {
1268
+ var url = "media://file?url=".concat(readlUrl, "&height=").concat(node[0].height || '');
1269
+ try {
1270
+ copy(url);
1271
+ } catch (error) {}
1272
+ if (isHotkey('mod+x', e)) {
1273
+ Transforms.delete(store === null || store === void 0 ? void 0 : store.editor, {
1274
+ at: node[1]
1275
+ });
1276
+ ReactEditor.focus(store === null || store === void 0 ? void 0 : store.editor);
1277
+ }
1278
+ }
1279
+ if ((node === null || node === void 0 ? void 0 : (_node_2 = node[0]) === null || _node_2 === void 0 ? void 0 : _node_2.type) === 'attach') {
1280
+ var _node_3;
1281
+ var url1 = "attach://file?size=".concat(node[0].size, "&name=").concat(node[0].name, "&url=").concat((_node_3 = node[0]) === null || _node_3 === void 0 ? void 0 : _node_3.url);
1282
+ try {
1283
+ copy(url1);
1284
+ } catch (error) {}
1285
+ if (isHotkey('mod+x', e)) {
1286
+ Transforms.delete(store === null || store === void 0 ? void 0 : store.editor, {
1287
+ at: node[1]
1288
+ });
1289
+ ReactEditor.focus(store === null || store === void 0 ? void 0 : store.editor);
1290
+ }
1291
+ }
719
1292
  }
720
- }
721
- if (((_c = node == null ? void 0 : node[0]) == null ? void 0 : _c.type) === "attach") {
722
- const url = `attach://file?size=${node[0].size}&name=${node[0].name}&url=${(_d = node[0]) == null ? void 0 : _d.url}`;
723
- try {
724
- copy(url);
725
- } catch (error) {
1293
+ if (isHotkey('backspace', e)) {
1294
+ var _task_curNodes = _sliced_to_array(task.curNodes, 1), node1 = _task_curNodes[0];
1295
+ if ((node1 === null || node1 === void 0 ? void 0 : node1[0].type) === 'media') {
1296
+ e.preventDefault();
1297
+ Transforms.removeNodes(task.editor, {
1298
+ at: node1[1]
1299
+ });
1300
+ Transforms.insertNodes(task.editor, EditorUtils.p, {
1301
+ at: node1[1],
1302
+ select: true
1303
+ });
1304
+ ReactEditor.focus(task.editor);
1305
+ }
726
1306
  }
727
- if (isHotkey("mod+x", e)) {
728
- Transforms.delete(store == null ? void 0 : store.editor, { at: node[1] });
729
- ReactEditor.focus(store == null ? void 0 : store.editor);
1307
+ if (isHotkey('arrowUp', e) || isHotkey('arrowDown', e)) {
1308
+ var _task_curNodes1 = _sliced_to_array(task.curNodes, 1), node2 = _task_curNodes1[0];
1309
+ if ((node2 === null || node2 === void 0 ? void 0 : node2[0].type) === 'media') {
1310
+ e.preventDefault();
1311
+ if (isHotkey('arrowUp', e)) {
1312
+ Transforms.select(task.editor, Editor.end(task.editor, EditorUtils.findPrev(task.editor, node2[1])));
1313
+ } else if (EditorUtils.findNext(task.editor, node2[1])) {
1314
+ Transforms.select(task.editor, Editor.start(task.editor, EditorUtils.findNext(task.editor, node2[1])));
1315
+ }
1316
+ ReactEditor.focus(task.editor);
1317
+ }
730
1318
  }
731
- }
732
- }
733
- if (isHotkey("backspace", e)) {
734
- const [node] = task.curNodes;
735
- if ((node == null ? void 0 : node[0].type) === "media") {
736
- e.preventDefault();
737
- Transforms.removeNodes(task.editor, { at: node[1] });
738
- Transforms.insertNodes(task.editor, EditorUtils.p, {
739
- at: node[1],
740
- select: true
741
- });
742
- ReactEditor.focus(task.editor);
743
- }
744
- }
745
- if (isHotkey("arrowUp", e) || isHotkey("arrowDown", e)) {
746
- const [node] = task.curNodes;
747
- if ((node == null ? void 0 : node[0].type) === "media") {
748
- e.preventDefault();
749
- if (isHotkey("arrowUp", e)) {
750
- Transforms.select(
751
- task.editor,
752
- Editor.end(task.editor, EditorUtils.findPrev(task.editor, node[1]))
753
- );
754
- } else if (EditorUtils.findNext(task.editor, node[1])) {
755
- Transforms.select(
756
- task.editor,
757
- Editor.start(
758
- task.editor,
759
- EditorUtils.findNext(task.editor, node[1])
760
- )
761
- );
1319
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1320
+ try {
1321
+ for(var _iterator = keyMap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1322
+ var key = _step.value;
1323
+ if (isHotkey(key[0], e)) {
1324
+ var // @ts-ignore
1325
+ _task;
1326
+ e.preventDefault();
1327
+ e.stopPropagation();
1328
+ (_task = task)[key[1]].apply(_task, _to_consumable_array(key[2] || []));
1329
+ break;
1330
+ }
1331
+ }
1332
+ } catch (err) {
1333
+ _didIteratorError = true;
1334
+ _iteratorError = err;
1335
+ } finally{
1336
+ try {
1337
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1338
+ _iterator.return();
1339
+ }
1340
+ } finally{
1341
+ if (_didIteratorError) {
1342
+ throw _iteratorError;
1343
+ }
1344
+ }
762
1345
  }
763
- ReactEditor.focus(task.editor);
764
- }
765
- }
766
- for (let key of keyMap) {
767
- if (isHotkey(key[0], e)) {
768
- e.preventDefault();
769
- e.stopPropagation();
770
- task[key[1]](...key[2] || []);
771
- break;
772
- }
773
- }
774
- }, []);
775
- useEffect(() => {
776
- var _a;
777
- if (props.readonly)
778
- return;
779
- if (!store)
780
- return;
781
- if (typeof window === "undefined")
782
- return;
783
- (_a = markdownContainerRef == null ? void 0 : markdownContainerRef.current) == null ? void 0 : _a.addEventListener("keydown", keydown);
784
- return () => {
785
- var _a2;
786
- (_a2 = markdownContainerRef == null ? void 0 : markdownContainerRef.current) == null ? void 0 : _a2.removeEventListener("keydown", keydown);
787
- };
788
- }, []);
789
- };
790
- export {
791
- KeyboardTask,
792
- useSystemKeyboard
1346
+ }, []);
1347
+ useEffect(function() {
1348
+ var _markdownContainerRef_current;
1349
+ if (props.readonly) return;
1350
+ if (!store) return;
1351
+ if (typeof window === 'undefined') return;
1352
+ markdownContainerRef === null || markdownContainerRef === void 0 ? void 0 : (_markdownContainerRef_current = markdownContainerRef.current) === null || _markdownContainerRef_current === void 0 ? void 0 : _markdownContainerRef_current.addEventListener('keydown', keydown);
1353
+ return function() {
1354
+ var _markdownContainerRef_current;
1355
+ markdownContainerRef === null || markdownContainerRef === void 0 ? void 0 : (_markdownContainerRef_current = markdownContainerRef.current) === null || _markdownContainerRef_current === void 0 ? void 0 : _markdownContainerRef_current.removeEventListener('keydown', keydown);
1356
+ };
1357
+ }, []);
793
1358
  };