@opentiny/fluent-editor 4.0.0-alpha.8 → 4.0.0-beta.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 (904) hide show
  1. package/es/config/editor.config.es.js +112 -0
  2. package/es/config/editor.config.es.js.map +1 -0
  3. package/es/config/editor.utils.es.js.map +1 -0
  4. package/es/config/i18n/en-us.es.js +131 -0
  5. package/es/config/i18n/en-us.es.js.map +1 -0
  6. package/es/config/i18n/zh-cn.es.js +131 -0
  7. package/es/config/i18n/zh-cn.es.js.map +1 -0
  8. package/es/config/index.es.js +67 -0
  9. package/es/config/index.es.js.map +1 -0
  10. package/es/core/fluent-editor.es.js.map +1 -0
  11. package/es/fluent-editor.es.js +88 -0
  12. package/es/fluent-editor.es.js.map +1 -0
  13. package/es/formats/soft-break.es.js.map +1 -0
  14. package/es/formats/video.es.js.map +1 -0
  15. package/es/index.es.js +137 -0
  16. package/es/index.es.js.map +1 -0
  17. package/es/modules/ai/constants.es.js.map +1 -0
  18. package/es/modules/ai/index.es.js +670 -0
  19. package/es/modules/ai/index.es.js.map +1 -0
  20. package/es/modules/collaborative-editing/awareness/awareness.es.js +92 -0
  21. package/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -0
  22. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +16 -0
  23. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -0
  24. package/es/modules/collaborative-editing/collaborative-editing.es.js +110 -0
  25. package/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -0
  26. package/es/modules/collaborative-editing/module.es.js.map +1 -0
  27. package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -0
  28. package/es/modules/collaborative-editing/provider/webrtc.es.js +103 -0
  29. package/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -0
  30. package/es/modules/collaborative-editing/provider/websocket.es.js +113 -0
  31. package/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -0
  32. package/es/modules/counter.es.js.map +1 -0
  33. package/es/modules/custom-clipboard.es.js.map +1 -0
  34. package/es/modules/custom-image/actions/action.es.js.map +1 -0
  35. package/es/modules/custom-image/actions/custom-resize-action.es.js.map +1 -0
  36. package/es/modules/custom-image/actions/delete-action.es.js.map +1 -0
  37. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js +137 -0
  38. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +1 -0
  39. package/es/modules/custom-image/actions/toolbar-action.es.js.map +1 -0
  40. package/es/modules/custom-image/actions/toolbar.es.js.map +1 -0
  41. package/es/modules/custom-image/blot-formatter.es.js +140 -0
  42. package/es/modules/custom-image/blot-formatter.es.js.map +1 -0
  43. package/es/modules/custom-image/image.es.js.map +1 -0
  44. package/es/modules/custom-image/options.es.js.map +1 -0
  45. package/es/modules/custom-image/specs/blot-spec.es.js.map +1 -0
  46. package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -0
  47. package/es/modules/custom-image/specs/image-spec.es.js.map +1 -0
  48. package/es/modules/custom-uploader.es.js.map +1 -0
  49. package/es/modules/divider.es.js.map +1 -0
  50. package/es/modules/emoji.es.js +167 -0
  51. package/es/modules/emoji.es.js.map +1 -0
  52. package/es/modules/file/formats/file.es.js.map +1 -0
  53. package/es/modules/file/modules/file-bar.es.js.map +1 -0
  54. package/es/modules/file/modules/file-module.es.js.map +1 -0
  55. package/es/modules/flow-chart/config-utils.es.js +102 -0
  56. package/es/modules/flow-chart/config-utils.es.js.map +1 -0
  57. package/es/modules/flow-chart/formats/flow-chart-blot.es.js +369 -0
  58. package/es/modules/flow-chart/formats/flow-chart-blot.es.js.map +1 -0
  59. package/es/modules/flow-chart/i18n/en-us.es.js +30 -0
  60. package/es/modules/flow-chart/i18n/en-us.es.js.map +1 -0
  61. package/es/modules/flow-chart/i18n/index.es.js +12 -0
  62. package/es/modules/flow-chart/i18n/index.es.js.map +1 -0
  63. package/es/modules/flow-chart/i18n/zh-cn.es.js +30 -0
  64. package/es/modules/flow-chart/i18n/zh-cn.es.js.map +1 -0
  65. package/es/modules/flow-chart/icons.es.js +27 -0
  66. package/es/modules/flow-chart/icons.es.js.map +1 -0
  67. package/es/modules/flow-chart/index.es.js +45 -0
  68. package/es/modules/flow-chart/index.es.js.map +1 -0
  69. package/es/modules/flow-chart/modules/context-menu.es.js +184 -0
  70. package/es/modules/flow-chart/modules/context-menu.es.js.map +1 -0
  71. package/es/modules/flow-chart/modules/control-panel.es.js +286 -0
  72. package/es/modules/flow-chart/modules/control-panel.es.js.map +1 -0
  73. package/es/modules/flow-chart/modules/custom-resize-action.es.js +150 -0
  74. package/es/modules/flow-chart/modules/custom-resize-action.es.js.map +1 -0
  75. package/es/modules/i18n.es.js.map +1 -0
  76. package/es/modules/index.es.js +31 -0
  77. package/es/modules/index.es.js.map +1 -0
  78. package/es/modules/link/formats/link.es.js.map +1 -0
  79. package/es/modules/link/modules/tooltip.es.js.map +1 -0
  80. package/es/modules/mathlive/formats.es.js.map +1 -0
  81. package/es/modules/mathlive/module.es.js.map +1 -0
  82. package/es/modules/mathlive/tooltip.es.js.map +1 -0
  83. package/es/modules/mention/mention-link.es.js.map +1 -0
  84. package/es/modules/mention/mention.es.js.map +1 -0
  85. package/es/modules/mind-map/config-utils.es.js +108 -0
  86. package/es/modules/mind-map/config-utils.es.js.map +1 -0
  87. package/es/modules/mind-map/formats/mind-map-blot.es.js +356 -0
  88. package/es/modules/mind-map/formats/mind-map-blot.es.js.map +1 -0
  89. package/es/modules/mind-map/i18n/en-us.es.js +29 -0
  90. package/es/modules/mind-map/i18n/en-us.es.js.map +1 -0
  91. package/es/modules/mind-map/i18n/index.es.js +12 -0
  92. package/es/modules/mind-map/i18n/index.es.js.map +1 -0
  93. package/es/modules/mind-map/i18n/zh-cn.es.js +29 -0
  94. package/es/modules/mind-map/i18n/zh-cn.es.js.map +1 -0
  95. package/es/modules/mind-map/icons.es.js +45 -0
  96. package/es/modules/mind-map/icons.es.js.map +1 -0
  97. package/es/modules/mind-map/index.es.js +56 -0
  98. package/es/modules/mind-map/index.es.js.map +1 -0
  99. package/es/modules/mind-map/modules/context-menu.es.js +128 -0
  100. package/es/modules/mind-map/modules/context-menu.es.js.map +1 -0
  101. package/es/modules/mind-map/modules/control-panel.es.js +425 -0
  102. package/es/modules/mind-map/modules/control-panel.es.js.map +1 -0
  103. package/es/modules/mind-map/modules/custom-resize-action.es.js +161 -0
  104. package/es/modules/mind-map/modules/custom-resize-action.es.js.map +1 -0
  105. package/es/modules/shortcut-key/index.es.js +245 -0
  106. package/es/modules/shortcut-key/index.es.js.map +1 -0
  107. package/es/modules/syntax.es.js.map +1 -0
  108. package/es/modules/table-up/index.es.js.map +1 -0
  109. package/es/modules/toolbar/better-picker.es.js.map +1 -0
  110. package/es/modules/toolbar/better-toolbar.es.js.map +1 -0
  111. package/es/modules/toolbar/toolbar-tip.es.js.map +1 -0
  112. package/es/themes/snow.es.js.map +1 -0
  113. package/es/tools/format-painter.es.js.map +1 -0
  114. package/es/tools/fullscreen.es.js.map +1 -0
  115. package/es/tools/screenshot.es.js.map +1 -0
  116. package/es/ui/icons.config.es.js +369 -0
  117. package/es/ui/icons.config.es.js.map +1 -0
  118. package/es/ui/icons.es.js +52 -0
  119. package/es/ui/icons.es.js.map +1 -0
  120. package/es/utils/debounce.es.js.map +1 -0
  121. package/es/utils/image.es.js.map +1 -0
  122. package/es/utils/is.es.js.map +1 -0
  123. package/es/utils/merge.es.js +27 -0
  124. package/es/utils/merge.es.js.map +1 -0
  125. package/es/utils/method.es.js.map +1 -0
  126. package/es/utils/scroll-lock.es.js.map +1 -0
  127. package/flow-chart.css +185 -0
  128. package/lib/config/editor.config.cjs.js +112 -0
  129. package/lib/config/editor.config.cjs.js.map +1 -0
  130. package/lib/config/editor.utils.cjs.js.map +1 -0
  131. package/lib/config/i18n/en-us.cjs.js +131 -0
  132. package/lib/config/i18n/en-us.cjs.js.map +1 -0
  133. package/lib/config/i18n/zh-cn.cjs.js +131 -0
  134. package/lib/config/i18n/zh-cn.cjs.js.map +1 -0
  135. package/lib/config/index.cjs.js +66 -0
  136. package/lib/config/index.cjs.js.map +1 -0
  137. package/lib/core/fluent-editor.cjs.js.map +1 -0
  138. package/lib/fluent-editor.cjs.js +88 -0
  139. package/lib/fluent-editor.cjs.js.map +1 -0
  140. package/lib/formats/soft-break.cjs.js.map +1 -0
  141. package/lib/formats/video.cjs.js.map +1 -0
  142. package/lib/index.cjs.js +158 -0
  143. package/lib/index.cjs.js.map +1 -0
  144. package/lib/modules/ai/constants.cjs.js.map +1 -0
  145. package/lib/modules/ai/index.cjs.js.map +1 -0
  146. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +92 -0
  147. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -0
  148. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +16 -0
  149. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -0
  150. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +110 -0
  151. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -0
  152. package/lib/modules/collaborative-editing/module.cjs.js.map +1 -0
  153. package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -0
  154. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +103 -0
  155. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -0
  156. package/lib/modules/collaborative-editing/provider/websocket.cjs.js +113 -0
  157. package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -0
  158. package/lib/modules/counter.cjs.js.map +1 -0
  159. package/lib/modules/custom-clipboard.cjs.js.map +1 -0
  160. package/lib/modules/custom-image/actions/action.cjs.js.map +1 -0
  161. package/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +1 -0
  162. package/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -0
  163. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +1 -0
  164. package/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +1 -0
  165. package/lib/modules/custom-image/actions/toolbar.cjs.js.map +1 -0
  166. package/lib/modules/custom-image/blot-formatter.cjs.js +140 -0
  167. package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -0
  168. package/lib/modules/custom-image/image.cjs.js.map +1 -0
  169. package/lib/modules/custom-image/options.cjs.js.map +1 -0
  170. package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -0
  171. package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -0
  172. package/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -0
  173. package/lib/modules/custom-uploader.cjs.js.map +1 -0
  174. package/lib/modules/divider.cjs.js.map +1 -0
  175. package/lib/modules/emoji.cjs.js +167 -0
  176. package/lib/modules/emoji.cjs.js.map +1 -0
  177. package/lib/modules/file/formats/file.cjs.js.map +1 -0
  178. package/lib/modules/file/modules/file-bar.cjs.js.map +1 -0
  179. package/lib/modules/file/modules/file-module.cjs.js.map +1 -0
  180. package/lib/modules/flow-chart/config-utils.cjs.js +102 -0
  181. package/lib/modules/flow-chart/config-utils.cjs.js.map +1 -0
  182. package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js +369 -0
  183. package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js.map +1 -0
  184. package/lib/modules/flow-chart/i18n/en-us.cjs.js +30 -0
  185. package/lib/modules/flow-chart/i18n/en-us.cjs.js.map +1 -0
  186. package/lib/modules/flow-chart/i18n/index.cjs.js +12 -0
  187. package/lib/modules/flow-chart/i18n/index.cjs.js.map +1 -0
  188. package/lib/modules/flow-chart/i18n/zh-cn.cjs.js +30 -0
  189. package/lib/modules/flow-chart/i18n/zh-cn.cjs.js.map +1 -0
  190. package/lib/modules/flow-chart/icons.cjs.js +27 -0
  191. package/lib/modules/flow-chart/icons.cjs.js.map +1 -0
  192. package/lib/modules/flow-chart/index.cjs.js +45 -0
  193. package/lib/modules/flow-chart/index.cjs.js.map +1 -0
  194. package/lib/modules/flow-chart/modules/context-menu.cjs.js +184 -0
  195. package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +1 -0
  196. package/lib/modules/flow-chart/modules/control-panel.cjs.js +286 -0
  197. package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +1 -0
  198. package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js +150 -0
  199. package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js.map +1 -0
  200. package/lib/modules/i18n.cjs.js.map +1 -0
  201. package/lib/modules/index.cjs.js +31 -0
  202. package/lib/modules/index.cjs.js.map +1 -0
  203. package/lib/modules/link/formats/link.cjs.js.map +1 -0
  204. package/lib/modules/link/modules/tooltip.cjs.js.map +1 -0
  205. package/lib/modules/mathlive/formats.cjs.js.map +1 -0
  206. package/lib/modules/mathlive/module.cjs.js.map +1 -0
  207. package/lib/modules/mathlive/tooltip.cjs.js.map +1 -0
  208. package/lib/modules/mention/mention-link.cjs.js.map +1 -0
  209. package/lib/modules/mention/mention.cjs.js.map +1 -0
  210. package/lib/modules/mind-map/config-utils.cjs.js +108 -0
  211. package/lib/modules/mind-map/config-utils.cjs.js.map +1 -0
  212. package/lib/modules/mind-map/formats/mind-map-blot.cjs.js +356 -0
  213. package/lib/modules/mind-map/formats/mind-map-blot.cjs.js.map +1 -0
  214. package/lib/modules/mind-map/i18n/en-us.cjs.js +29 -0
  215. package/lib/modules/mind-map/i18n/en-us.cjs.js.map +1 -0
  216. package/lib/modules/mind-map/i18n/index.cjs.js +12 -0
  217. package/lib/modules/mind-map/i18n/index.cjs.js.map +1 -0
  218. package/lib/modules/mind-map/i18n/zh-cn.cjs.js +29 -0
  219. package/lib/modules/mind-map/i18n/zh-cn.cjs.js.map +1 -0
  220. package/lib/modules/mind-map/icons.cjs.js +45 -0
  221. package/lib/modules/mind-map/icons.cjs.js.map +1 -0
  222. package/lib/modules/mind-map/index.cjs.js +56 -0
  223. package/lib/modules/mind-map/index.cjs.js.map +1 -0
  224. package/lib/modules/mind-map/modules/context-menu.cjs.js +128 -0
  225. package/lib/modules/mind-map/modules/context-menu.cjs.js.map +1 -0
  226. package/lib/modules/mind-map/modules/control-panel.cjs.js +425 -0
  227. package/lib/modules/mind-map/modules/control-panel.cjs.js.map +1 -0
  228. package/lib/modules/mind-map/modules/custom-resize-action.cjs.js +161 -0
  229. package/lib/modules/mind-map/modules/custom-resize-action.cjs.js.map +1 -0
  230. package/lib/modules/shortcut-key/index.cjs.js +245 -0
  231. package/lib/modules/shortcut-key/index.cjs.js.map +1 -0
  232. package/lib/modules/syntax.cjs.js.map +1 -0
  233. package/lib/modules/table-up/index.cjs.js.map +1 -0
  234. package/lib/modules/toolbar/better-picker.cjs.js.map +1 -0
  235. package/lib/modules/toolbar/better-toolbar.cjs.js.map +1 -0
  236. package/lib/modules/toolbar/toolbar-tip.cjs.js.map +1 -0
  237. package/lib/themes/snow.cjs.js.map +1 -0
  238. package/lib/tools/format-painter.cjs.js.map +1 -0
  239. package/lib/tools/fullscreen.cjs.js.map +1 -0
  240. package/lib/tools/screenshot.cjs.js.map +1 -0
  241. package/lib/ui/icons.cjs.js +52 -0
  242. package/lib/ui/icons.cjs.js.map +1 -0
  243. package/lib/ui/icons.config.cjs.js +369 -0
  244. package/lib/ui/icons.config.cjs.js.map +1 -0
  245. package/lib/utils/debounce.cjs.js.map +1 -0
  246. package/lib/utils/image.cjs.js.map +1 -0
  247. package/lib/utils/is.cjs.js.map +1 -0
  248. package/lib/utils/merge.cjs.js +27 -0
  249. package/lib/utils/merge.cjs.js.map +1 -0
  250. package/lib/utils/method.cjs.js.map +1 -0
  251. package/lib/utils/scroll-lock.cjs.js.map +1 -0
  252. package/mind-map.css +224 -0
  253. package/package.json +15 -37
  254. package/patches/quill@2.0.3.patch +33 -0
  255. package/scripts/apply-patches.cjs +248 -0
  256. package/style.css +3465 -0
  257. package/types/config/editor.config.d.ts +55 -0
  258. package/types/config/i18n/en-us.d.ts +125 -0
  259. package/types/config/i18n/zh-cn.d.ts +125 -0
  260. package/types/config/types/editor-modules.interface.d.ts +45 -0
  261. package/types/index.d.ts +8 -0
  262. package/types/modules/collaborative-editing/awareness/awareness.d.ts +28 -0
  263. package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +3 -0
  264. package/types/modules/collaborative-editing/collaborative-editing.d.ts +25 -0
  265. package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +26 -0
  266. package/types/modules/collaborative-editing/provider/webrtc.d.ts +37 -0
  267. package/types/modules/collaborative-editing/provider/websocket.d.ts +41 -0
  268. package/types/modules/collaborative-editing/types.d.ts +53 -0
  269. package/types/modules/flow-chart/config-utils.d.ts +10 -0
  270. package/types/modules/flow-chart/formats/flow-chart-blot.d.ts +43 -0
  271. package/types/modules/flow-chart/i18n/en-us.d.ts +26 -0
  272. package/types/modules/flow-chart/i18n/index.d.ts +1 -0
  273. package/types/modules/flow-chart/i18n/zh-cn.d.ts +26 -0
  274. package/types/modules/flow-chart/icons.d.ts +12 -0
  275. package/types/modules/flow-chart/index.d.ts +10 -0
  276. package/types/modules/flow-chart/modules/context-menu.d.ts +3 -0
  277. package/types/modules/flow-chart/modules/control-panel.d.ts +3 -0
  278. package/types/modules/flow-chart/modules/custom-resize-action.d.ts +22 -0
  279. package/types/modules/flow-chart/options.d.ts +29 -0
  280. package/types/modules/index.d.ts +18 -0
  281. package/types/modules/mind-map/config-utils.d.ts +12 -0
  282. package/types/modules/mind-map/formats/mind-map-blot.d.ts +44 -0
  283. package/types/modules/mind-map/i18n/en-us.d.ts +25 -0
  284. package/types/modules/mind-map/i18n/index.d.ts +1 -0
  285. package/types/modules/mind-map/i18n/zh-cn.d.ts +25 -0
  286. package/types/modules/mind-map/icons.d.ts +21 -0
  287. package/types/modules/mind-map/index.d.ts +10 -0
  288. package/types/modules/mind-map/modules/context-menu.d.ts +3 -0
  289. package/types/modules/mind-map/modules/control-panel.d.ts +3 -0
  290. package/types/modules/mind-map/modules/custom-resize-action.d.ts +23 -0
  291. package/types/modules/mind-map/options.d.ts +27 -0
  292. package/types/ui/icons.config.d.ts +40 -0
  293. package/types/utils/merge.d.ts +7 -0
  294. package/LICENSE +0 -21
  295. package/dist/es/config/editor.config.es.js +0 -85
  296. package/dist/es/config/editor.config.es.js.map +0 -1
  297. package/dist/es/config/editor.utils.es.js.map +0 -1
  298. package/dist/es/config/i18n/en-us.es.js +0 -129
  299. package/dist/es/config/i18n/en-us.es.js.map +0 -1
  300. package/dist/es/config/i18n/zh-cn.es.js +0 -129
  301. package/dist/es/config/i18n/zh-cn.es.js.map +0 -1
  302. package/dist/es/config/index.es.js +0 -65
  303. package/dist/es/config/index.es.js.map +0 -1
  304. package/dist/es/core/fluent-editor.es.js.map +0 -1
  305. package/dist/es/fluent-editor.es.js +0 -84
  306. package/dist/es/fluent-editor.es.js.map +0 -1
  307. package/dist/es/formats/soft-break.es.js.map +0 -1
  308. package/dist/es/formats/video.es.js.map +0 -1
  309. package/dist/es/index.es.js +0 -104
  310. package/dist/es/index.es.js.map +0 -1
  311. package/dist/es/modules/ai/constants.es.js.map +0 -1
  312. package/dist/es/modules/ai/index.es.js +0 -670
  313. package/dist/es/modules/ai/index.es.js.map +0 -1
  314. package/dist/es/modules/collaborative-editing/awareness/awareness.es.js +0 -93
  315. package/dist/es/modules/collaborative-editing/awareness/awareness.es.js.map +0 -1
  316. package/dist/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +0 -12
  317. package/dist/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +0 -1
  318. package/dist/es/modules/collaborative-editing/collaborative-editing.es.js +0 -105
  319. package/dist/es/modules/collaborative-editing/collaborative-editing.es.js.map +0 -1
  320. package/dist/es/modules/collaborative-editing/module.es.js.map +0 -1
  321. package/dist/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +0 -1
  322. package/dist/es/modules/collaborative-editing/provider/webrtc.es.js +0 -99
  323. package/dist/es/modules/collaborative-editing/provider/webrtc.es.js.map +0 -1
  324. package/dist/es/modules/collaborative-editing/provider/websocket.es.js +0 -111
  325. package/dist/es/modules/collaborative-editing/provider/websocket.es.js.map +0 -1
  326. package/dist/es/modules/counter.es.js.map +0 -1
  327. package/dist/es/modules/custom-clipboard.es.js.map +0 -1
  328. package/dist/es/modules/custom-image/actions/action.es.js.map +0 -1
  329. package/dist/es/modules/custom-image/actions/custom-resize-action.es.js.map +0 -1
  330. package/dist/es/modules/custom-image/actions/delete-action.es.js.map +0 -1
  331. package/dist/es/modules/custom-image/actions/image-toolbar-buttons.es.js +0 -137
  332. package/dist/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +0 -1
  333. package/dist/es/modules/custom-image/actions/toolbar-action.es.js.map +0 -1
  334. package/dist/es/modules/custom-image/actions/toolbar.es.js.map +0 -1
  335. package/dist/es/modules/custom-image/blot-formatter.es.js +0 -140
  336. package/dist/es/modules/custom-image/blot-formatter.es.js.map +0 -1
  337. package/dist/es/modules/custom-image/image.es.js.map +0 -1
  338. package/dist/es/modules/custom-image/options.es.js.map +0 -1
  339. package/dist/es/modules/custom-image/specs/blot-spec.es.js.map +0 -1
  340. package/dist/es/modules/custom-image/specs/custom-image-spec.es.js.map +0 -1
  341. package/dist/es/modules/custom-image/specs/image-spec.es.js.map +0 -1
  342. package/dist/es/modules/custom-uploader.es.js.map +0 -1
  343. package/dist/es/modules/divider.es.js.map +0 -1
  344. package/dist/es/modules/emoji.es.js +0 -167
  345. package/dist/es/modules/emoji.es.js.map +0 -1
  346. package/dist/es/modules/file/formats/file.es.js.map +0 -1
  347. package/dist/es/modules/file/modules/file-bar.es.js.map +0 -1
  348. package/dist/es/modules/file/modules/file-module.es.js.map +0 -1
  349. package/dist/es/modules/i18n.es.js.map +0 -1
  350. package/dist/es/modules/index.es.js +0 -27
  351. package/dist/es/modules/index.es.js.map +0 -1
  352. package/dist/es/modules/link/formats/link.es.js.map +0 -1
  353. package/dist/es/modules/link/modules/tooltip.es.js.map +0 -1
  354. package/dist/es/modules/mathlive/formats.es.js.map +0 -1
  355. package/dist/es/modules/mathlive/module.es.js.map +0 -1
  356. package/dist/es/modules/mathlive/tooltip.es.js.map +0 -1
  357. package/dist/es/modules/mention/mention-link.es.js.map +0 -1
  358. package/dist/es/modules/mention/mention.es.js.map +0 -1
  359. package/dist/es/modules/shortcut-key/index.es.js +0 -229
  360. package/dist/es/modules/shortcut-key/index.es.js.map +0 -1
  361. package/dist/es/modules/syntax.es.js.map +0 -1
  362. package/dist/es/modules/table-up/index.es.js.map +0 -1
  363. package/dist/es/modules/toolbar/better-picker.es.js.map +0 -1
  364. package/dist/es/modules/toolbar/better-toolbar.es.js.map +0 -1
  365. package/dist/es/modules/toolbar/toolbar-tip.es.js.map +0 -1
  366. package/dist/es/themes/snow.es.js.map +0 -1
  367. package/dist/es/tools/format-painter.es.js.map +0 -1
  368. package/dist/es/tools/fullscreen.es.js.map +0 -1
  369. package/dist/es/tools/screenshot.es.js.map +0 -1
  370. package/dist/es/ui/icons.config.es.js +0 -365
  371. package/dist/es/ui/icons.config.es.js.map +0 -1
  372. package/dist/es/ui/icons.es.js +0 -50
  373. package/dist/es/ui/icons.es.js.map +0 -1
  374. package/dist/es/utils/debounce.es.js.map +0 -1
  375. package/dist/es/utils/image.es.js.map +0 -1
  376. package/dist/es/utils/is.es.js.map +0 -1
  377. package/dist/es/utils/method.es.js.map +0 -1
  378. package/dist/es/utils/scroll-lock.es.js.map +0 -1
  379. package/dist/lib/config/editor.config.cjs.js +0 -85
  380. package/dist/lib/config/editor.config.cjs.js.map +0 -1
  381. package/dist/lib/config/editor.utils.cjs.js.map +0 -1
  382. package/dist/lib/config/i18n/en-us.cjs.js +0 -129
  383. package/dist/lib/config/i18n/en-us.cjs.js.map +0 -1
  384. package/dist/lib/config/i18n/zh-cn.cjs.js +0 -129
  385. package/dist/lib/config/i18n/zh-cn.cjs.js.map +0 -1
  386. package/dist/lib/config/index.cjs.js +0 -64
  387. package/dist/lib/config/index.cjs.js.map +0 -1
  388. package/dist/lib/core/fluent-editor.cjs.js.map +0 -1
  389. package/dist/lib/fluent-editor.cjs.js +0 -84
  390. package/dist/lib/fluent-editor.cjs.js.map +0 -1
  391. package/dist/lib/formats/soft-break.cjs.js.map +0 -1
  392. package/dist/lib/formats/video.cjs.js.map +0 -1
  393. package/dist/lib/index.cjs.js +0 -125
  394. package/dist/lib/index.cjs.js.map +0 -1
  395. package/dist/lib/modules/ai/constants.cjs.js.map +0 -1
  396. package/dist/lib/modules/ai/index.cjs.js.map +0 -1
  397. package/dist/lib/modules/collaborative-editing/awareness/awareness.cjs.js +0 -110
  398. package/dist/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +0 -1
  399. package/dist/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +0 -12
  400. package/dist/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +0 -1
  401. package/dist/lib/modules/collaborative-editing/collaborative-editing.cjs.js +0 -122
  402. package/dist/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +0 -1
  403. package/dist/lib/modules/collaborative-editing/module.cjs.js.map +0 -1
  404. package/dist/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +0 -1
  405. package/dist/lib/modules/collaborative-editing/provider/webrtc.cjs.js +0 -116
  406. package/dist/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +0 -1
  407. package/dist/lib/modules/collaborative-editing/provider/websocket.cjs.js +0 -128
  408. package/dist/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +0 -1
  409. package/dist/lib/modules/counter.cjs.js.map +0 -1
  410. package/dist/lib/modules/custom-clipboard.cjs.js.map +0 -1
  411. package/dist/lib/modules/custom-image/actions/action.cjs.js.map +0 -1
  412. package/dist/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +0 -1
  413. package/dist/lib/modules/custom-image/actions/delete-action.cjs.js.map +0 -1
  414. package/dist/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +0 -1
  415. package/dist/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +0 -1
  416. package/dist/lib/modules/custom-image/actions/toolbar.cjs.js.map +0 -1
  417. package/dist/lib/modules/custom-image/blot-formatter.cjs.js +0 -140
  418. package/dist/lib/modules/custom-image/blot-formatter.cjs.js.map +0 -1
  419. package/dist/lib/modules/custom-image/image.cjs.js.map +0 -1
  420. package/dist/lib/modules/custom-image/options.cjs.js.map +0 -1
  421. package/dist/lib/modules/custom-image/specs/blot-spec.cjs.js.map +0 -1
  422. package/dist/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +0 -1
  423. package/dist/lib/modules/custom-image/specs/image-spec.cjs.js.map +0 -1
  424. package/dist/lib/modules/custom-uploader.cjs.js.map +0 -1
  425. package/dist/lib/modules/divider.cjs.js.map +0 -1
  426. package/dist/lib/modules/emoji.cjs.js +0 -167
  427. package/dist/lib/modules/emoji.cjs.js.map +0 -1
  428. package/dist/lib/modules/file/formats/file.cjs.js.map +0 -1
  429. package/dist/lib/modules/file/modules/file-bar.cjs.js.map +0 -1
  430. package/dist/lib/modules/file/modules/file-module.cjs.js.map +0 -1
  431. package/dist/lib/modules/i18n.cjs.js.map +0 -1
  432. package/dist/lib/modules/index.cjs.js +0 -27
  433. package/dist/lib/modules/index.cjs.js.map +0 -1
  434. package/dist/lib/modules/link/formats/link.cjs.js.map +0 -1
  435. package/dist/lib/modules/link/modules/tooltip.cjs.js.map +0 -1
  436. package/dist/lib/modules/mathlive/formats.cjs.js.map +0 -1
  437. package/dist/lib/modules/mathlive/module.cjs.js.map +0 -1
  438. package/dist/lib/modules/mathlive/tooltip.cjs.js.map +0 -1
  439. package/dist/lib/modules/mention/mention-link.cjs.js.map +0 -1
  440. package/dist/lib/modules/mention/mention.cjs.js.map +0 -1
  441. package/dist/lib/modules/shortcut-key/index.cjs.js +0 -229
  442. package/dist/lib/modules/shortcut-key/index.cjs.js.map +0 -1
  443. package/dist/lib/modules/syntax.cjs.js.map +0 -1
  444. package/dist/lib/modules/table-up/index.cjs.js.map +0 -1
  445. package/dist/lib/modules/toolbar/better-picker.cjs.js.map +0 -1
  446. package/dist/lib/modules/toolbar/better-toolbar.cjs.js.map +0 -1
  447. package/dist/lib/modules/toolbar/toolbar-tip.cjs.js.map +0 -1
  448. package/dist/lib/themes/snow.cjs.js.map +0 -1
  449. package/dist/lib/tools/format-painter.cjs.js.map +0 -1
  450. package/dist/lib/tools/fullscreen.cjs.js.map +0 -1
  451. package/dist/lib/tools/screenshot.cjs.js.map +0 -1
  452. package/dist/lib/ui/icons.cjs.js +0 -50
  453. package/dist/lib/ui/icons.cjs.js.map +0 -1
  454. package/dist/lib/ui/icons.config.cjs.js +0 -365
  455. package/dist/lib/ui/icons.config.cjs.js.map +0 -1
  456. package/dist/lib/utils/debounce.cjs.js.map +0 -1
  457. package/dist/lib/utils/image.cjs.js.map +0 -1
  458. package/dist/lib/utils/is.cjs.js.map +0 -1
  459. package/dist/lib/utils/method.cjs.js.map +0 -1
  460. package/dist/lib/utils/scroll-lock.cjs.js.map +0 -1
  461. package/dist/package.json +0 -67
  462. package/dist/style.css +0 -3463
  463. package/dist/types/config/editor.config.d.ts +0 -11
  464. package/dist/types/config/i18n/en-us.d.ts +0 -123
  465. package/dist/types/config/i18n/zh-cn.d.ts +0 -123
  466. package/dist/types/config/types/editor-modules.interface.d.ts +0 -41
  467. package/dist/types/index.d.ts +0 -8
  468. package/dist/types/modules/collaborative-editing/awareness/awareness.d.ts +0 -28
  469. package/dist/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +0 -2
  470. package/dist/types/modules/collaborative-editing/collaborative-editing.d.ts +0 -24
  471. package/dist/types/modules/collaborative-editing/provider/providerRegistry.d.ts +0 -25
  472. package/dist/types/modules/collaborative-editing/provider/webrtc.d.ts +0 -36
  473. package/dist/types/modules/collaborative-editing/provider/websocket.d.ts +0 -40
  474. package/dist/types/modules/collaborative-editing/types.d.ts +0 -37
  475. package/dist/types/modules/index.d.ts +0 -16
  476. package/dist/types/ui/icons.config.d.ts +0 -38
  477. package/scripts/pre-release.cjs +0 -35
  478. package/src/assets/ai.scss +0 -451
  479. package/src/assets/common/config.scss +0 -4
  480. package/src/assets/common.scss +0 -132
  481. package/src/assets/counter.scss +0 -16
  482. package/src/assets/custom-image.scss +0 -19
  483. package/src/assets/editor.scss +0 -351
  484. package/src/assets/fileBar.scss +0 -107
  485. package/src/assets/font.scss +0 -18
  486. package/src/assets/fullscreen.scss +0 -50
  487. package/src/assets/iconfont/iconfont.ttf +0 -0
  488. package/src/assets/iconfont/iconfont.woff +0 -0
  489. package/src/assets/iconfont/iconfont.woff2 +0 -0
  490. package/src/assets/imageBar.scss +0 -98
  491. package/src/assets/lineHeight.scss +0 -15
  492. package/src/assets/link.scss +0 -120
  493. package/src/assets/mathlive.scss +0 -40
  494. package/src/assets/mention.scss +0 -48
  495. package/src/assets/screenshot.scss +0 -78
  496. package/src/assets/size.scss +0 -11
  497. package/src/assets/style.scss +0 -46
  498. package/src/assets/svgs/align-center.svg +0 -41
  499. package/src/assets/svgs/align-justify.svg +0 -8
  500. package/src/assets/svgs/arrow-down.svg +0 -6
  501. package/src/assets/svgs/background-color.svg +0 -7
  502. package/src/assets/svgs/clean.svg +0 -8
  503. package/src/assets/svgs/code-block.svg +0 -5
  504. package/src/assets/svgs/code.svg +0 -25
  505. package/src/assets/svgs/color.svg +0 -7
  506. package/src/assets/svgs/direction-ltr.svg +0 -8
  507. package/src/assets/svgs/direction-rtl.svg +0 -8
  508. package/src/assets/svgs/divider.svg +0 -4
  509. package/src/assets/svgs/emoji.svg +0 -53
  510. package/src/assets/svgs/file.svg +0 -12
  511. package/src/assets/svgs/format-painter.svg +0 -10
  512. package/src/assets/svgs/formula.svg +0 -6
  513. package/src/assets/svgs/fullscreen.svg +0 -43
  514. package/src/assets/svgs/image.svg +0 -17
  515. package/src/assets/svgs/italic.svg +0 -6
  516. package/src/assets/svgs/link.svg +0 -9
  517. package/src/assets/svgs/list-bullet.svg +0 -16
  518. package/src/assets/svgs/list-ordered.svg +0 -18
  519. package/src/assets/svgs/list-task.svg +0 -5
  520. package/src/assets/svgs/redo.svg +0 -8
  521. package/src/assets/svgs/screenshot.svg +0 -17
  522. package/src/assets/svgs/script-sub.svg +0 -15
  523. package/src/assets/svgs/script-super.svg +0 -15
  524. package/src/assets/svgs/strike.svg +0 -6
  525. package/src/assets/svgs/underline.svg +0 -13
  526. package/src/assets/svgs/undo.svg +0 -8
  527. package/src/assets/svgs/video.svg +0 -10
  528. package/src/assets/tasklist.scss +0 -76
  529. package/src/assets/toolbar.scss +0 -385
  530. package/src/assets/variable.scss +0 -9
  531. package/src/assets/video.scss +0 -5
  532. package/src/attributors/font-size.ts +0 -6
  533. package/src/attributors/font-style.ts +0 -6
  534. package/src/attributors/index.ts +0 -4
  535. package/src/attributors/line-height.ts +0 -6
  536. package/src/attributors/text-indent.ts +0 -6
  537. package/src/config/base64-image.ts +0 -5
  538. package/src/config/editor.config.ts +0 -86
  539. package/src/config/editor.utils.ts +0 -193
  540. package/src/config/i18n/en-us.ts +0 -138
  541. package/src/config/i18n/zh-cn.ts +0 -137
  542. package/src/config/index.ts +0 -44
  543. package/src/config/types/editor-config.interface.ts +0 -16
  544. package/src/config/types/editor-modules.interface.ts +0 -47
  545. package/src/config/types/index.ts +0 -3
  546. package/src/config/types/type.ts +0 -2
  547. package/src/core/fluent-editor.ts +0 -31
  548. package/src/fluent-editor.ts +0 -72
  549. package/src/formats/emoji.ts +0 -10
  550. package/src/formats/index.ts +0 -4
  551. package/src/formats/soft-break.ts +0 -27
  552. package/src/formats/strike.ts +0 -11
  553. package/src/formats/video.ts +0 -53
  554. package/src/index.ts +0 -9
  555. package/src/modules/ai/constants.ts +0 -43
  556. package/src/modules/ai/icons.ts +0 -333
  557. package/src/modules/ai/index.ts +0 -850
  558. package/src/modules/ai/types.ts +0 -18
  559. package/src/modules/collaborative-editing/awareness/awareness.ts +0 -141
  560. package/src/modules/collaborative-editing/awareness/index.ts +0 -2
  561. package/src/modules/collaborative-editing/awareness/y-indexeddb.ts +0 -12
  562. package/src/modules/collaborative-editing/collaborative-editing.ts +0 -115
  563. package/src/modules/collaborative-editing/index.ts +0 -2
  564. package/src/modules/collaborative-editing/module.ts +0 -32
  565. package/src/modules/collaborative-editing/provider/index.ts +0 -3
  566. package/src/modules/collaborative-editing/provider/providerRegistry.ts +0 -57
  567. package/src/modules/collaborative-editing/provider/webrtc.ts +0 -125
  568. package/src/modules/collaborative-editing/provider/websocket.ts +0 -142
  569. package/src/modules/collaborative-editing/types.ts +0 -44
  570. package/src/modules/counter.ts +0 -84
  571. package/src/modules/custom-clipboard.ts +0 -537
  572. package/src/modules/custom-image/actions/action.ts +0 -15
  573. package/src/modules/custom-image/actions/custom-resize-action.ts +0 -207
  574. package/src/modules/custom-image/actions/delete-action.ts +0 -32
  575. package/src/modules/custom-image/actions/image-toolbar-buttons.ts +0 -135
  576. package/src/modules/custom-image/actions/index.ts +0 -6
  577. package/src/modules/custom-image/actions/toolbar-action.ts +0 -32
  578. package/src/modules/custom-image/actions/toolbar.ts +0 -145
  579. package/src/modules/custom-image/blot-formatter.ts +0 -158
  580. package/src/modules/custom-image/image.ts +0 -132
  581. package/src/modules/custom-image/index.ts +0 -4
  582. package/src/modules/custom-image/options.ts +0 -139
  583. package/src/modules/custom-image/specs/blot-spec.ts +0 -30
  584. package/src/modules/custom-image/specs/custom-image-spec.ts +0 -131
  585. package/src/modules/custom-image/specs/image-spec.ts +0 -28
  586. package/src/modules/custom-image/specs/index.ts +0 -3
  587. package/src/modules/custom-uploader.ts +0 -101
  588. package/src/modules/divider.ts +0 -15
  589. package/src/modules/emoji.ts +0 -230
  590. package/src/modules/file/formats/file.ts +0 -61
  591. package/src/modules/file/index.ts +0 -3
  592. package/src/modules/file/modules/file-bar.ts +0 -146
  593. package/src/modules/file/modules/file-module.ts +0 -33
  594. package/src/modules/i18n.ts +0 -66
  595. package/src/modules/index.ts +0 -16
  596. package/src/modules/link/formats/link.ts +0 -43
  597. package/src/modules/link/index.ts +0 -2
  598. package/src/modules/link/modules/tooltip.ts +0 -341
  599. package/src/modules/mathlive/formats.ts +0 -39
  600. package/src/modules/mathlive/index.ts +0 -3
  601. package/src/modules/mathlive/module.ts +0 -37
  602. package/src/modules/mathlive/tooltip.ts +0 -87
  603. package/src/modules/mention/constants.ts +0 -3
  604. package/src/modules/mention/index.ts +0 -2
  605. package/src/modules/mention/mention-link.ts +0 -64
  606. package/src/modules/mention/mention.ts +0 -404
  607. package/src/modules/shortcut-key/index.ts +0 -237
  608. package/src/modules/syntax.ts +0 -35
  609. package/src/modules/table-up/index.ts +0 -83
  610. package/src/modules/toolbar/better-picker.ts +0 -67
  611. package/src/modules/toolbar/better-toolbar.ts +0 -176
  612. package/src/modules/toolbar/index.ts +0 -3
  613. package/src/modules/toolbar/toolbar-tip.ts +0 -142
  614. package/src/themes/snow.ts +0 -309
  615. package/src/tools/format-painter.ts +0 -85
  616. package/src/tools/fullscreen.ts +0 -66
  617. package/src/tools/screenshot.ts +0 -231
  618. package/src/ui/icons.config.ts +0 -361
  619. package/src/ui/icons.ts +0 -89
  620. package/src/utils/debounce.ts +0 -150
  621. package/src/utils/image.ts +0 -22
  622. package/src/utils/is.ts +0 -9
  623. package/src/utils/method.ts +0 -77
  624. package/src/utils/scroll-lock.ts +0 -52
  625. package/tsconfig.json +0 -25
  626. package/vite.config.ts +0 -83
  627. /package/{dist/README.md → README.md} +0 -0
  628. /package/{dist/es → es}/attributors/font-size.es.js +0 -0
  629. /package/{dist/es → es}/attributors/font-size.es.js.map +0 -0
  630. /package/{dist/es → es}/attributors/font-style.es.js +0 -0
  631. /package/{dist/es → es}/attributors/font-style.es.js.map +0 -0
  632. /package/{dist/es → es}/attributors/index.es.js +0 -0
  633. /package/{dist/es → es}/attributors/index.es.js.map +0 -0
  634. /package/{dist/es → es}/attributors/line-height.es.js +0 -0
  635. /package/{dist/es → es}/attributors/line-height.es.js.map +0 -0
  636. /package/{dist/es → es}/attributors/text-indent.es.js +0 -0
  637. /package/{dist/es → es}/attributors/text-indent.es.js.map +0 -0
  638. /package/{dist/es → es}/config/base64-image.es.js +0 -0
  639. /package/{dist/es → es}/config/base64-image.es.js.map +0 -0
  640. /package/{dist/es → es}/config/editor.utils.es.js +0 -0
  641. /package/{dist/es → es}/config/types/editor-config.interface.es.js +0 -0
  642. /package/{dist/es → es}/config/types/editor-config.interface.es.js.map +0 -0
  643. /package/{dist/es → es}/config/types/editor-modules.interface.es.js +0 -0
  644. /package/{dist/es → es}/config/types/editor-modules.interface.es.js.map +0 -0
  645. /package/{dist/es → es}/config/types/index.es.js +0 -0
  646. /package/{dist/es → es}/config/types/index.es.js.map +0 -0
  647. /package/{dist/es → es}/config/types/type.es.js +0 -0
  648. /package/{dist/es → es}/config/types/type.es.js.map +0 -0
  649. /package/{dist/es → es}/core/fluent-editor.es.js +0 -0
  650. /package/{dist/es → es}/formats/emoji.es.js +0 -0
  651. /package/{dist/es → es}/formats/emoji.es.js.map +0 -0
  652. /package/{dist/es → es}/formats/index.es.js +0 -0
  653. /package/{dist/es → es}/formats/index.es.js.map +0 -0
  654. /package/{dist/es → es}/formats/soft-break.es.js +0 -0
  655. /package/{dist/es → es}/formats/strike.es.js +0 -0
  656. /package/{dist/es → es}/formats/strike.es.js.map +0 -0
  657. /package/{dist/es → es}/formats/video.es.js +0 -0
  658. /package/{dist/es → es}/modules/ai/constants.es.js +0 -0
  659. /package/{dist/es → es}/modules/ai/icons.es.js +0 -0
  660. /package/{dist/es → es}/modules/ai/icons.es.js.map +0 -0
  661. /package/{dist/es → es}/modules/collaborative-editing/awareness/index.es.js +0 -0
  662. /package/{dist/es → es}/modules/collaborative-editing/awareness/index.es.js.map +0 -0
  663. /package/{dist/es → es}/modules/collaborative-editing/index.es.js +0 -0
  664. /package/{dist/es → es}/modules/collaborative-editing/index.es.js.map +0 -0
  665. /package/{dist/es → es}/modules/collaborative-editing/module.es.js +0 -0
  666. /package/{dist/es → es}/modules/collaborative-editing/provider/providerRegistry.es.js +0 -0
  667. /package/{dist/es → es}/modules/collaborative-editing/types.es.js +0 -0
  668. /package/{dist/es → es}/modules/collaborative-editing/types.es.js.map +0 -0
  669. /package/{dist/es → es}/modules/counter.es.js +0 -0
  670. /package/{dist/es → es}/modules/custom-clipboard.es.js +0 -0
  671. /package/{dist/es → es}/modules/custom-image/actions/action.es.js +0 -0
  672. /package/{dist/es → es}/modules/custom-image/actions/custom-resize-action.es.js +0 -0
  673. /package/{dist/es → es}/modules/custom-image/actions/delete-action.es.js +0 -0
  674. /package/{dist/es → es}/modules/custom-image/actions/index.es.js +0 -0
  675. /package/{dist/es → es}/modules/custom-image/actions/index.es.js.map +0 -0
  676. /package/{dist/es → es}/modules/custom-image/actions/toolbar-action.es.js +0 -0
  677. /package/{dist/es → es}/modules/custom-image/actions/toolbar.es.js +0 -0
  678. /package/{dist/es → es}/modules/custom-image/image.es.js +0 -0
  679. /package/{dist/es → es}/modules/custom-image/index.es.js +0 -0
  680. /package/{dist/es → es}/modules/custom-image/index.es.js.map +0 -0
  681. /package/{dist/es → es}/modules/custom-image/options.es.js +0 -0
  682. /package/{dist/es → es}/modules/custom-image/specs/blot-spec.es.js +0 -0
  683. /package/{dist/es → es}/modules/custom-image/specs/custom-image-spec.es.js +0 -0
  684. /package/{dist/es → es}/modules/custom-image/specs/image-spec.es.js +0 -0
  685. /package/{dist/es → es}/modules/custom-image/specs/index.es.js +0 -0
  686. /package/{dist/es → es}/modules/custom-image/specs/index.es.js.map +0 -0
  687. /package/{dist/es → es}/modules/custom-uploader.es.js +0 -0
  688. /package/{dist/es → es}/modules/divider.es.js +0 -0
  689. /package/{dist/es → es}/modules/file/formats/file.es.js +0 -0
  690. /package/{dist/es → es}/modules/file/index.es.js +0 -0
  691. /package/{dist/es → es}/modules/file/index.es.js.map +0 -0
  692. /package/{dist/es → es}/modules/file/modules/file-bar.es.js +0 -0
  693. /package/{dist/es → es}/modules/file/modules/file-module.es.js +0 -0
  694. /package/{dist/es → es}/modules/i18n.es.js +0 -0
  695. /package/{dist/es → es}/modules/link/formats/link.es.js +0 -0
  696. /package/{dist/es → es}/modules/link/index.es.js +0 -0
  697. /package/{dist/es → es}/modules/link/index.es.js.map +0 -0
  698. /package/{dist/es → es}/modules/link/modules/tooltip.es.js +0 -0
  699. /package/{dist/es → es}/modules/mathlive/formats.es.js +0 -0
  700. /package/{dist/es → es}/modules/mathlive/index.es.js +0 -0
  701. /package/{dist/es → es}/modules/mathlive/index.es.js.map +0 -0
  702. /package/{dist/es → es}/modules/mathlive/module.es.js +0 -0
  703. /package/{dist/es → es}/modules/mathlive/tooltip.es.js +0 -0
  704. /package/{dist/es → es}/modules/mention/constants.es.js +0 -0
  705. /package/{dist/es → es}/modules/mention/constants.es.js.map +0 -0
  706. /package/{dist/es → es}/modules/mention/index.es.js +0 -0
  707. /package/{dist/es → es}/modules/mention/index.es.js.map +0 -0
  708. /package/{dist/es → es}/modules/mention/mention-link.es.js +0 -0
  709. /package/{dist/es → es}/modules/mention/mention.es.js +0 -0
  710. /package/{dist/es → es}/modules/syntax.es.js +0 -0
  711. /package/{dist/es → es}/modules/table-up/index.es.js +0 -0
  712. /package/{dist/es → es}/modules/toolbar/better-picker.es.js +0 -0
  713. /package/{dist/es → es}/modules/toolbar/better-toolbar.es.js +0 -0
  714. /package/{dist/es → es}/modules/toolbar/index.es.js +0 -0
  715. /package/{dist/es → es}/modules/toolbar/index.es.js.map +0 -0
  716. /package/{dist/es → es}/modules/toolbar/toolbar-tip.es.js +0 -0
  717. /package/{dist/es → es}/themes/snow.es.js +0 -0
  718. /package/{dist/es → es}/tools/format-painter.es.js +0 -0
  719. /package/{dist/es → es}/tools/fullscreen.es.js +0 -0
  720. /package/{dist/es → es}/tools/screenshot.es.js +0 -0
  721. /package/{dist/es → es}/utils/debounce.es.js +0 -0
  722. /package/{dist/es → es}/utils/image.es.js +0 -0
  723. /package/{dist/es → es}/utils/is.es.js +0 -0
  724. /package/{dist/es → es}/utils/method.es.js +0 -0
  725. /package/{dist/es → es}/utils/scroll-lock.es.js +0 -0
  726. /package/{dist/lib → lib}/attributors/font-size.cjs.js +0 -0
  727. /package/{dist/lib → lib}/attributors/font-size.cjs.js.map +0 -0
  728. /package/{dist/lib → lib}/attributors/font-style.cjs.js +0 -0
  729. /package/{dist/lib → lib}/attributors/font-style.cjs.js.map +0 -0
  730. /package/{dist/lib → lib}/attributors/index.cjs.js +0 -0
  731. /package/{dist/lib → lib}/attributors/index.cjs.js.map +0 -0
  732. /package/{dist/lib → lib}/attributors/line-height.cjs.js +0 -0
  733. /package/{dist/lib → lib}/attributors/line-height.cjs.js.map +0 -0
  734. /package/{dist/lib → lib}/attributors/text-indent.cjs.js +0 -0
  735. /package/{dist/lib → lib}/attributors/text-indent.cjs.js.map +0 -0
  736. /package/{dist/lib → lib}/config/base64-image.cjs.js +0 -0
  737. /package/{dist/lib → lib}/config/base64-image.cjs.js.map +0 -0
  738. /package/{dist/lib → lib}/config/editor.utils.cjs.js +0 -0
  739. /package/{dist/lib → lib}/config/types/editor-config.interface.cjs.js +0 -0
  740. /package/{dist/lib → lib}/config/types/editor-config.interface.cjs.js.map +0 -0
  741. /package/{dist/lib → lib}/config/types/editor-modules.interface.cjs.js +0 -0
  742. /package/{dist/lib → lib}/config/types/editor-modules.interface.cjs.js.map +0 -0
  743. /package/{dist/lib → lib}/config/types/index.cjs.js +0 -0
  744. /package/{dist/lib → lib}/config/types/index.cjs.js.map +0 -0
  745. /package/{dist/lib → lib}/config/types/type.cjs.js +0 -0
  746. /package/{dist/lib → lib}/config/types/type.cjs.js.map +0 -0
  747. /package/{dist/lib → lib}/core/fluent-editor.cjs.js +0 -0
  748. /package/{dist/lib → lib}/formats/emoji.cjs.js +0 -0
  749. /package/{dist/lib → lib}/formats/emoji.cjs.js.map +0 -0
  750. /package/{dist/lib → lib}/formats/index.cjs.js +0 -0
  751. /package/{dist/lib → lib}/formats/index.cjs.js.map +0 -0
  752. /package/{dist/lib → lib}/formats/soft-break.cjs.js +0 -0
  753. /package/{dist/lib → lib}/formats/strike.cjs.js +0 -0
  754. /package/{dist/lib → lib}/formats/strike.cjs.js.map +0 -0
  755. /package/{dist/lib → lib}/formats/video.cjs.js +0 -0
  756. /package/{dist/lib → lib}/modules/ai/constants.cjs.js +0 -0
  757. /package/{dist/lib → lib}/modules/ai/icons.cjs.js +0 -0
  758. /package/{dist/lib → lib}/modules/ai/icons.cjs.js.map +0 -0
  759. /package/{dist/lib → lib}/modules/ai/index.cjs.js +0 -0
  760. /package/{dist/lib → lib}/modules/collaborative-editing/awareness/index.cjs.js +0 -0
  761. /package/{dist/lib → lib}/modules/collaborative-editing/awareness/index.cjs.js.map +0 -0
  762. /package/{dist/lib → lib}/modules/collaborative-editing/index.cjs.js +0 -0
  763. /package/{dist/lib → lib}/modules/collaborative-editing/index.cjs.js.map +0 -0
  764. /package/{dist/lib → lib}/modules/collaborative-editing/module.cjs.js +0 -0
  765. /package/{dist/lib → lib}/modules/collaborative-editing/provider/providerRegistry.cjs.js +0 -0
  766. /package/{dist/lib → lib}/modules/collaborative-editing/types.cjs.js +0 -0
  767. /package/{dist/lib → lib}/modules/collaborative-editing/types.cjs.js.map +0 -0
  768. /package/{dist/lib → lib}/modules/counter.cjs.js +0 -0
  769. /package/{dist/lib → lib}/modules/custom-clipboard.cjs.js +0 -0
  770. /package/{dist/lib → lib}/modules/custom-image/actions/action.cjs.js +0 -0
  771. /package/{dist/lib → lib}/modules/custom-image/actions/custom-resize-action.cjs.js +0 -0
  772. /package/{dist/lib → lib}/modules/custom-image/actions/delete-action.cjs.js +0 -0
  773. /package/{dist/lib → lib}/modules/custom-image/actions/image-toolbar-buttons.cjs.js +0 -0
  774. /package/{dist/lib → lib}/modules/custom-image/actions/index.cjs.js +0 -0
  775. /package/{dist/lib → lib}/modules/custom-image/actions/index.cjs.js.map +0 -0
  776. /package/{dist/lib → lib}/modules/custom-image/actions/toolbar-action.cjs.js +0 -0
  777. /package/{dist/lib → lib}/modules/custom-image/actions/toolbar.cjs.js +0 -0
  778. /package/{dist/lib → lib}/modules/custom-image/image.cjs.js +0 -0
  779. /package/{dist/lib → lib}/modules/custom-image/index.cjs.js +0 -0
  780. /package/{dist/lib → lib}/modules/custom-image/index.cjs.js.map +0 -0
  781. /package/{dist/lib → lib}/modules/custom-image/options.cjs.js +0 -0
  782. /package/{dist/lib → lib}/modules/custom-image/specs/blot-spec.cjs.js +0 -0
  783. /package/{dist/lib → lib}/modules/custom-image/specs/custom-image-spec.cjs.js +0 -0
  784. /package/{dist/lib → lib}/modules/custom-image/specs/image-spec.cjs.js +0 -0
  785. /package/{dist/lib → lib}/modules/custom-image/specs/index.cjs.js +0 -0
  786. /package/{dist/lib → lib}/modules/custom-image/specs/index.cjs.js.map +0 -0
  787. /package/{dist/lib → lib}/modules/custom-uploader.cjs.js +0 -0
  788. /package/{dist/lib → lib}/modules/divider.cjs.js +0 -0
  789. /package/{dist/lib → lib}/modules/file/formats/file.cjs.js +0 -0
  790. /package/{dist/lib → lib}/modules/file/index.cjs.js +0 -0
  791. /package/{dist/lib → lib}/modules/file/index.cjs.js.map +0 -0
  792. /package/{dist/lib → lib}/modules/file/modules/file-bar.cjs.js +0 -0
  793. /package/{dist/lib → lib}/modules/file/modules/file-module.cjs.js +0 -0
  794. /package/{dist/lib → lib}/modules/i18n.cjs.js +0 -0
  795. /package/{dist/lib → lib}/modules/link/formats/link.cjs.js +0 -0
  796. /package/{dist/lib → lib}/modules/link/index.cjs.js +0 -0
  797. /package/{dist/lib → lib}/modules/link/index.cjs.js.map +0 -0
  798. /package/{dist/lib → lib}/modules/link/modules/tooltip.cjs.js +0 -0
  799. /package/{dist/lib → lib}/modules/mathlive/formats.cjs.js +0 -0
  800. /package/{dist/lib → lib}/modules/mathlive/index.cjs.js +0 -0
  801. /package/{dist/lib → lib}/modules/mathlive/index.cjs.js.map +0 -0
  802. /package/{dist/lib → lib}/modules/mathlive/module.cjs.js +0 -0
  803. /package/{dist/lib → lib}/modules/mathlive/tooltip.cjs.js +0 -0
  804. /package/{dist/lib → lib}/modules/mention/constants.cjs.js +0 -0
  805. /package/{dist/lib → lib}/modules/mention/constants.cjs.js.map +0 -0
  806. /package/{dist/lib → lib}/modules/mention/index.cjs.js +0 -0
  807. /package/{dist/lib → lib}/modules/mention/index.cjs.js.map +0 -0
  808. /package/{dist/lib → lib}/modules/mention/mention-link.cjs.js +0 -0
  809. /package/{dist/lib → lib}/modules/mention/mention.cjs.js +0 -0
  810. /package/{dist/lib → lib}/modules/syntax.cjs.js +0 -0
  811. /package/{dist/lib → lib}/modules/table-up/index.cjs.js +0 -0
  812. /package/{dist/lib → lib}/modules/toolbar/better-picker.cjs.js +0 -0
  813. /package/{dist/lib → lib}/modules/toolbar/better-toolbar.cjs.js +0 -0
  814. /package/{dist/lib → lib}/modules/toolbar/index.cjs.js +0 -0
  815. /package/{dist/lib → lib}/modules/toolbar/index.cjs.js.map +0 -0
  816. /package/{dist/lib → lib}/modules/toolbar/toolbar-tip.cjs.js +0 -0
  817. /package/{dist/lib → lib}/themes/snow.cjs.js +0 -0
  818. /package/{dist/lib → lib}/tools/format-painter.cjs.js +0 -0
  819. /package/{dist/lib → lib}/tools/fullscreen.cjs.js +0 -0
  820. /package/{dist/lib → lib}/tools/screenshot.cjs.js +0 -0
  821. /package/{dist/lib → lib}/utils/debounce.cjs.js +0 -0
  822. /package/{dist/lib → lib}/utils/image.cjs.js +0 -0
  823. /package/{dist/lib → lib}/utils/is.cjs.js +0 -0
  824. /package/{dist/lib → lib}/utils/method.cjs.js +0 -0
  825. /package/{dist/lib → lib}/utils/scroll-lock.cjs.js +0 -0
  826. /package/{dist/types → types}/attributors/font-size.d.ts +0 -0
  827. /package/{dist/types → types}/attributors/font-style.d.ts +0 -0
  828. /package/{dist/types → types}/attributors/index.d.ts +0 -0
  829. /package/{dist/types → types}/attributors/line-height.d.ts +0 -0
  830. /package/{dist/types → types}/attributors/text-indent.d.ts +0 -0
  831. /package/{dist/types → types}/config/base64-image.d.ts +0 -0
  832. /package/{dist/types → types}/config/editor.utils.d.ts +0 -0
  833. /package/{dist/types → types}/config/index.d.ts +0 -0
  834. /package/{dist/types → types}/config/types/editor-config.interface.d.ts +0 -0
  835. /package/{dist/types → types}/config/types/index.d.ts +0 -0
  836. /package/{dist/types → types}/config/types/type.d.ts +0 -0
  837. /package/{dist/types → types}/core/fluent-editor.d.ts +0 -0
  838. /package/{dist/types → types}/fluent-editor.d.ts +0 -0
  839. /package/{dist/types → types}/formats/emoji.d.ts +0 -0
  840. /package/{dist/types → types}/formats/index.d.ts +0 -0
  841. /package/{dist/types → types}/formats/soft-break.d.ts +0 -0
  842. /package/{dist/types → types}/formats/strike.d.ts +0 -0
  843. /package/{dist/types → types}/formats/video.d.ts +0 -0
  844. /package/{dist/types → types}/modules/ai/constants.d.ts +0 -0
  845. /package/{dist/types → types}/modules/ai/icons.d.ts +0 -0
  846. /package/{dist/types → types}/modules/ai/index.d.ts +0 -0
  847. /package/{dist/types → types}/modules/ai/types.d.ts +0 -0
  848. /package/{dist/types → types}/modules/collaborative-editing/awareness/index.d.ts +0 -0
  849. /package/{dist/types → types}/modules/collaborative-editing/index.d.ts +0 -0
  850. /package/{dist/types → types}/modules/collaborative-editing/module.d.ts +0 -0
  851. /package/{dist/types → types}/modules/collaborative-editing/provider/index.d.ts +0 -0
  852. /package/{dist/types → types}/modules/counter.d.ts +0 -0
  853. /package/{dist/types → types}/modules/custom-clipboard.d.ts +0 -0
  854. /package/{dist/types → types}/modules/custom-image/actions/action.d.ts +0 -0
  855. /package/{dist/types → types}/modules/custom-image/actions/custom-resize-action.d.ts +0 -0
  856. /package/{dist/types → types}/modules/custom-image/actions/delete-action.d.ts +0 -0
  857. /package/{dist/types → types}/modules/custom-image/actions/image-toolbar-buttons.d.ts +0 -0
  858. /package/{dist/types → types}/modules/custom-image/actions/index.d.ts +0 -0
  859. /package/{dist/types → types}/modules/custom-image/actions/toolbar-action.d.ts +0 -0
  860. /package/{dist/types → types}/modules/custom-image/actions/toolbar.d.ts +0 -0
  861. /package/{dist/types → types}/modules/custom-image/blot-formatter.d.ts +0 -0
  862. /package/{dist/types → types}/modules/custom-image/image.d.ts +0 -0
  863. /package/{dist/types → types}/modules/custom-image/index.d.ts +0 -0
  864. /package/{dist/types → types}/modules/custom-image/options.d.ts +0 -0
  865. /package/{dist/types → types}/modules/custom-image/specs/blot-spec.d.ts +0 -0
  866. /package/{dist/types → types}/modules/custom-image/specs/custom-image-spec.d.ts +0 -0
  867. /package/{dist/types → types}/modules/custom-image/specs/image-spec.d.ts +0 -0
  868. /package/{dist/types → types}/modules/custom-image/specs/index.d.ts +0 -0
  869. /package/{dist/types → types}/modules/custom-uploader.d.ts +0 -0
  870. /package/{dist/types → types}/modules/divider.d.ts +0 -0
  871. /package/{dist/types → types}/modules/emoji.d.ts +0 -0
  872. /package/{dist/types → types}/modules/file/formats/file.d.ts +0 -0
  873. /package/{dist/types → types}/modules/file/index.d.ts +0 -0
  874. /package/{dist/types → types}/modules/file/modules/file-bar.d.ts +0 -0
  875. /package/{dist/types → types}/modules/file/modules/file-module.d.ts +0 -0
  876. /package/{dist/types → types}/modules/i18n.d.ts +0 -0
  877. /package/{dist/types → types}/modules/link/formats/link.d.ts +0 -0
  878. /package/{dist/types → types}/modules/link/index.d.ts +0 -0
  879. /package/{dist/types → types}/modules/link/modules/tooltip.d.ts +0 -0
  880. /package/{dist/types → types}/modules/mathlive/formats.d.ts +0 -0
  881. /package/{dist/types → types}/modules/mathlive/index.d.ts +0 -0
  882. /package/{dist/types → types}/modules/mathlive/module.d.ts +0 -0
  883. /package/{dist/types → types}/modules/mathlive/tooltip.d.ts +0 -0
  884. /package/{dist/types → types}/modules/mention/constants.d.ts +0 -0
  885. /package/{dist/types → types}/modules/mention/index.d.ts +0 -0
  886. /package/{dist/types → types}/modules/mention/mention-link.d.ts +0 -0
  887. /package/{dist/types → types}/modules/mention/mention.d.ts +0 -0
  888. /package/{dist/types → types}/modules/shortcut-key/index.d.ts +0 -0
  889. /package/{dist/types → types}/modules/syntax.d.ts +0 -0
  890. /package/{dist/types → types}/modules/table-up/index.d.ts +0 -0
  891. /package/{dist/types → types}/modules/toolbar/better-picker.d.ts +0 -0
  892. /package/{dist/types → types}/modules/toolbar/better-toolbar.d.ts +0 -0
  893. /package/{dist/types → types}/modules/toolbar/index.d.ts +0 -0
  894. /package/{dist/types → types}/modules/toolbar/toolbar-tip.d.ts +0 -0
  895. /package/{dist/types → types}/themes/snow.d.ts +0 -0
  896. /package/{dist/types → types}/tools/format-painter.d.ts +0 -0
  897. /package/{dist/types → types}/tools/fullscreen.d.ts +0 -0
  898. /package/{dist/types → types}/tools/screenshot.d.ts +0 -0
  899. /package/{dist/types → types}/ui/icons.d.ts +0 -0
  900. /package/{dist/types → types}/utils/debounce.d.ts +0 -0
  901. /package/{dist/types → types}/utils/image.d.ts +0 -0
  902. /package/{dist/types → types}/utils/is.d.ts +0 -0
  903. /package/{dist/types → types}/utils/method.d.ts +0 -0
  904. /package/{dist/types → types}/utils/scroll-lock.d.ts +0 -0
@@ -1,850 +0,0 @@
1
- import type TypeToolbar from 'quill/modules/toolbar'
2
- import type FluentEditor from '../../core/fluent-editor'
3
- import type { AIOptions, OperationMenuItem, ResultMenuItem } from './types'
4
- import {
5
- CLOSE,
6
- INPUT_PLACEHOLDER,
7
- INSERT_SUB_CONTENT_TEXT,
8
- INSERT_TEXT,
9
- MENU_ID_MAP,
10
- MENU_TITLE_DATA,
11
- REGENERATE,
12
- REPLACE_SELECT,
13
- RESULT_HEADER_TEXT,
14
- SELECT_PLACEHOLDER,
15
- STOP_ANSWER,
16
- THINK_TEXT,
17
- } from './constants'
18
- import {
19
- ADJUST_ICON,
20
- AI_ICON,
21
- CALL_ICON,
22
- CLOSE_ICON,
23
- COPY_ICON,
24
- EDITOR_ICON,
25
- INSERT_ICON,
26
- MENU_CLOSE_ICON,
27
- REBUILD_ICON,
28
- REFRESH_ICON,
29
- REPLACE_SELECT_ICON,
30
- RIGHT_ARROW_ICON,
31
- SEND_BTN_ICON,
32
- STOP_ICON,
33
- THINK_ICON,
34
- } from './icons'
35
-
36
- export class AI {
37
- toolbar: TypeToolbar
38
- host: string
39
- apiKey: string
40
- model: string
41
- message: string
42
- isBreak: boolean = false // 打断标记
43
- textNumber: number // 文本字数限制
44
- private _isSelectRangeMode: boolean = false // 选择/点击模式
45
- private _charCount: number = 0 // 文本字数
46
- private _debounceTimer = null
47
- private _inputPlaceholder: string = ''
48
- private _showOperationMenu: boolean = false
49
- private _isThinking: boolean = false // 思考中
50
- private _showResultPopupEl: boolean = false // 结果弹窗
51
- selectedText: string = '' // 选择的文本
52
- inputValue: string = '' // 存储输入框的值
53
- resultMenuList: ResultMenuItem[] = []
54
- operationMenuList: OperationMenuItem[] = []
55
- private _operationMenuItemList: OperationMenuItem[] = []
56
-
57
- private alertEl: HTMLDivElement | null = null
58
- private alertTimer: number | null = null
59
- private selectionBubbleEl: HTMLDivElement | null = null
60
- private selectionRange: any = null
61
- private dialogContainerEl: HTMLDivElement | null = null
62
- private wrapContainerEl: HTMLDivElement | null = null
63
- private aiIconEl: HTMLSpanElement | null = null
64
- private inputContainerEl: HTMLDivElement | null = null
65
- private inputEl: HTMLInputElement | null = null
66
- private menuContainerEl: HTMLDivElement | null = null
67
- private subMenuEl: HTMLDivElement | null = null
68
- private subMenuEditorEl: HTMLDivElement | null = null
69
- private subMenuToneEl: HTMLDivElement | null = null
70
- private subMenuAdjustEl: HTMLDivElement | null = null
71
- private inputRightEl: HTMLDivElement | null = null
72
- private inputSendBtnEl: HTMLSpanElement | null = null
73
- private inputCloseBtnEl: HTMLSpanElement | null = null
74
- private thinkContainerEl: HTMLDivElement | null = null // 思考元素
75
- private thinkBtnEl: HTMLDivElement | null = null
76
- private resultPopupEl: HTMLDivElement | null = null
77
- private resultPopupHeaderEl: HTMLDivElement | null = null
78
- private resultPopupContentEl: HTMLDivElement | null = null
79
- private resultPopupFooterEl: HTMLDivElement | null = null
80
- private resultPopupFooterTextEl: HTMLSpanElement | null = null
81
- private resultRefreshBtnEl: HTMLSpanElement | null = null
82
- private resultCopyBtnEl: HTMLSpanElement | null = null
83
- // 分享和朗读功能待放开
84
- // private resultShareBtnEl: HTMLSpanElement | null = null
85
- // private resultVoiceBtnEl: HTMLSpanElement | null = null
86
- private actionMenuEl: HTMLDivElement | null = null
87
-
88
- constructor(
89
- public quill: FluentEditor,
90
- public options: AIOptions,
91
- ) {
92
- this.quill = quill
93
- this.toolbar = quill.getModule('toolbar') as TypeToolbar
94
- // 添加AI按钮到工具栏
95
- if (typeof this.toolbar !== 'undefined') {
96
- this.toolbar.addHandler('ai', this.showAIInput.bind(this))
97
- }
98
-
99
- this.quill.on('selection-change', this.handleSelectionChange.bind(this))
100
-
101
- this.host = options.host || 'https://api.deepseek.com/v1'
102
- this.apiKey = options.apiKey
103
- this.model = options.model || 'deepseek-chat'
104
- this.textNumber = options.contentMaxLength || 5000
105
-
106
- this.resultMenuList = [
107
- { text: REPLACE_SELECT, icon: REPLACE_SELECT_ICON },
108
- { text: INSERT_TEXT, icon: INSERT_ICON, selectText: INSERT_SUB_CONTENT_TEXT },
109
- { text: REGENERATE, icon: REBUILD_ICON },
110
- { text: CLOSE, icon: MENU_CLOSE_ICON },
111
- ]
112
-
113
- this.operationMenuList = [
114
- { id: 'editor', text: '编辑调整内容', icon: EDITOR_ICON },
115
- { id: 'tone', text: '改写口吻', icon: CALL_ICON },
116
- { id: 'adjust', text: '整理选区内容', icon: ADJUST_ICON },
117
- ]
118
- }
119
-
120
- // 工具栏启动
121
- showAIInput() {
122
- // 创建输入框和结果弹窗
123
- this.create()
124
-
125
- this.selectionRange = this.quill.getSelection()
126
- if (this.selectionRange.length) {
127
- this.isSelectRangeMode = true
128
- }
129
- else {
130
- this.isSelectRangeMode = false
131
- }
132
- // 定位到编辑器焦点位置
133
- this.positionElements()
134
-
135
- // 添加ESC键监听
136
- const handleKeyDown = (e: KeyboardEvent) => {
137
- if (e.key === 'Escape') {
138
- this.closeAIPanel()
139
- this.quill.container.removeEventListener('keydown', handleKeyDown)
140
- }
141
- }
142
- this.quill.container.addEventListener('keydown', handleKeyDown)
143
- }
144
-
145
- // 气泡启动
146
- private selectTextEvent() {
147
- if (!this.selectionRange) return
148
- this.create()
149
- // 定位到编辑器焦点位置
150
- this.positionElements()
151
-
152
- this.isSelectRangeMode = true
153
- }
154
-
155
- private create() {
156
- this.createResultElement()
157
- this.createOperationMenuElements()
158
- this.createInputBoxElements()
159
-
160
- // 创建事件监听
161
- this.addInputEvent()
162
- this.addResultEvent()
163
- this.handleActionMenuDisplay()
164
- // 添加到编辑器
165
- this.quill.container.appendChild(this.dialogContainerEl)
166
- }
167
-
168
- // 创建结果弹窗
169
- private createResultElement() {
170
- if (!this.resultPopupEl) {
171
- this.resultPopupEl = document.createElement('div')
172
- this.resultPopupEl.className = 'ql-ai-result'
173
- this.resultPopupHeaderEl = document.createElement('div')
174
- this.resultPopupHeaderEl.className = 'ql-ai-result-header'
175
- this.resultPopupHeaderEl.textContent = RESULT_HEADER_TEXT
176
- this.resultPopupContentEl = document.createElement('div')
177
- this.resultPopupContentEl.className = 'ql-ai-result-content'
178
- this.resultPopupFooterEl = document.createElement('div')
179
- this.resultPopupFooterEl.className = 'ql-ai-result-footer'
180
- this.resultPopupFooterTextEl = document.createElement('span')
181
- this.resultPopupFooterTextEl.className = 'ql-ai-result-footer-text'
182
- this.resultPopupFooterTextEl.textContent = `0`
183
- this.resultRefreshBtnEl = document.createElement('span')
184
- this.resultRefreshBtnEl.className = 'ql-ai-result-footer-refresh'
185
- this.resultRefreshBtnEl.innerHTML = REFRESH_ICON
186
- this.resultCopyBtnEl = document.createElement('span')
187
- this.resultCopyBtnEl.className = 'ql-ai-result-footer-copy'
188
- this.resultCopyBtnEl.innerHTML = COPY_ICON
189
-
190
- // 分享和朗读功能待放开
191
- // this.resultShareBtnEl = document.createElement('span')
192
- // this.resultShareBtnEl.className = 'ql-ai-result-footer-share'
193
- // this.resultShareBtnEl.innerHTML = SHARE_ICON
194
- // this.resultVoiceBtnEl = document.createElement('span')
195
- // this.resultVoiceBtnEl.className = 'ql-ai-result-footer-voice'
196
- // this.resultVoiceBtnEl.innerHTML = VOICE_ICON
197
- const resultFooterRightEl: HTMLDivElement = document.createElement('div')
198
- resultFooterRightEl.className = 'ql-ai-result-footer-right'
199
- resultFooterRightEl.appendChild(this.resultRefreshBtnEl)
200
- resultFooterRightEl.appendChild(this.resultCopyBtnEl)
201
- // 分享和朗读功能待放开
202
- // resultFooterRightEl.appendChild(this.resultShareBtnEl)
203
- // resultFooterRightEl.appendChild(this.resultVoiceBtnEl)
204
- this.resultPopupFooterEl.appendChild(this.resultPopupFooterTextEl)
205
- this.resultPopupFooterEl.appendChild(resultFooterRightEl)
206
- this.resultPopupEl.appendChild(this.resultPopupHeaderEl)
207
- this.resultPopupEl.appendChild(this.resultPopupContentEl)
208
- this.resultPopupEl.appendChild(this.resultPopupFooterEl)
209
- }
210
- this.showResultPopupEl = false
211
- }
212
-
213
- private createOperationMenuElements() {
214
- if (!this.menuContainerEl) {
215
- // 创建操作菜单容器
216
- this.menuContainerEl = document.createElement('div')
217
- this.menuContainerEl.className = 'ql-ai-menu-container'
218
-
219
- // 创建主菜单
220
- const mainMenu = document.createElement('div')
221
- mainMenu.className = 'ql-ai-main-menu'
222
- this.operationMenuList.forEach(({ text, icon, id }) => {
223
- const menuItem = document.createElement('div')
224
- menuItem.className = 'ql-ai-menu-item'
225
- menuItem.innerHTML = `${icon}<span>${text}</span>${RIGHT_ARROW_ICON}`
226
- menuItem.addEventListener('mouseenter', (e) => {
227
- e.stopPropagation()
228
- this.subMenuEl.style.display = 'block'
229
- this.subMenuEl.className = `ql-ai-sub-menu ${id}`
230
- this.createOperationMenuItem(id)
231
- })
232
- mainMenu.appendChild(menuItem)
233
- })
234
- if (!this.subMenuEl) {
235
- // 创建子菜单
236
- this.subMenuEl = document.createElement('div')
237
- this.subMenuEl.className = 'ql-ai-sub-menu'
238
- this.subMenuEl.style.display = 'none'
239
- }
240
-
241
- this.menuContainerEl.appendChild(mainMenu)
242
- this.menuContainerEl.appendChild(this.subMenuEl)
243
- }
244
- this.showOperationMenu = false
245
- }
246
-
247
- private createOperationMenuItem(id: string) {
248
- let menuItemBox = this[MENU_ID_MAP[id]]
249
- if (!menuItemBox) {
250
- menuItemBox = document.createElement('div')
251
- }
252
- // 清除子菜单容器中的所有子元素
253
- while (this.subMenuEl.firstChild) {
254
- this.subMenuEl.removeChild(this.subMenuEl.firstChild)
255
- }
256
-
257
- MENU_TITLE_DATA[id].forEach(({ text, icon, id }) => {
258
- const menuItem = document.createElement('div')
259
- menuItem.className = 'ql-ai-menu-item'
260
- menuItem.innerHTML = `${icon || ''}<span>${text}</span>`
261
- menuItem.addEventListener('click', (e) => {
262
- e.stopPropagation()
263
- this.handleOperationMenuItemClick(text, id)
264
- })
265
- menuItemBox.appendChild(menuItem)
266
- })
267
- this.subMenuEl.appendChild(menuItemBox)
268
- }
269
-
270
- private createInputBoxElements() {
271
- if (!this.dialogContainerEl) {
272
- this.dialogContainerEl = document.createElement('div')
273
- this.dialogContainerEl.className = 'ql-ai-dialog'
274
- this.wrapContainerEl = document.createElement('div')
275
- this.wrapContainerEl.className = 'ql-ai-wrapper'
276
- this.wrapContainerEl.style.width = `${this.quill.container.clientWidth - 30}px`
277
-
278
- // 添加AI图标
279
- this.createAIInputIcon()
280
-
281
- // 增加输入框
282
- this.inputEl = document.createElement('input')
283
- this.inputEl.type = 'text'
284
- this.inputPlaceholder = this._isSelectRangeMode ? SELECT_PLACEHOLDER : INPUT_PLACEHOLDER
285
- // 添加发送按钮
286
- this.inputSendBtnEl = document.createElement('span')
287
- this.inputSendBtnEl.className = 'ql-ai-input-right-send'
288
- this.inputSendBtnEl.innerHTML = SEND_BTN_ICON
289
- this.inputCloseBtnEl = document.createElement('span')
290
- this.inputCloseBtnEl.className = 'ql-ai-input-right-close'
291
- this.inputCloseBtnEl.innerHTML = CLOSE_ICON
292
- this.inputRightEl = document.createElement('div')
293
- this.inputRightEl.className = 'ql-ai-input-right'
294
-
295
- // 创建输入框
296
- this.inputContainerEl = document.createElement('div')
297
- this.inputContainerEl.className = 'ql-ai-input'
298
- this.inputContainerEl.appendChild(this.aiIconEl)
299
- this.inputContainerEl.appendChild(this.inputEl)
300
- this.inputRightEl.appendChild(this.inputSendBtnEl)
301
- this.inputRightEl.appendChild(this.inputCloseBtnEl)
302
- this.inputContainerEl.appendChild(this.inputRightEl) // 添加发送按钮
303
- this.wrapContainerEl.appendChild(this.resultPopupEl)
304
- this.wrapContainerEl.appendChild(this.inputContainerEl)
305
- this.wrapContainerEl.appendChild(this.menuContainerEl) // 添加菜单容器
306
- this.dialogContainerEl.appendChild(this.wrapContainerEl)
307
- }
308
- else {
309
- this.dialogContainerEl.style.display = 'block'
310
- }
311
- this.hiddenInputSendBtnEl()
312
- }
313
-
314
- private hiddenInputSendBtnEl(display = 'none') {
315
- if (this.inputEl && this.inputSendBtnEl) {
316
- this.inputSendBtnEl.style.display = display
317
- }
318
- }
319
-
320
- private copyResult() {
321
- if (!this.resultPopupContentEl) return
322
-
323
- try {
324
- const textToCopy = this.resultPopupContentEl.textContent || ''
325
- navigator.clipboard
326
- .writeText(textToCopy)
327
- .then(() => {
328
- this.showAlert('内容已复制到剪贴板')
329
- // 可以在这里添加复制成功的提示
330
- })
331
- .catch((err) => {
332
- this.showAlert(`复制失败:${err}`)
333
- })
334
- }
335
- catch (err) {
336
- this.showAlert(`复制失败:${err}`)
337
- // 兼容不支持clipboard API的浏览器
338
- const textarea = document.createElement('textarea')
339
- textarea.value = this.resultPopupContentEl.textContent || ''
340
- document.body.appendChild(textarea)
341
- textarea.select()
342
- document.execCommand('copy')
343
- document.body.removeChild(textarea)
344
- }
345
- }
346
-
347
- // 分享和朗读功能待放开
348
- // private shareResult() {
349
- // if (!this.resultPopupContentEl) return
350
-
351
- // const textToShare = this.resultPopupContentEl.textContent || ''
352
- // const title = 'AI生成内容分享'
353
-
354
- // if (navigator.share) {
355
- // navigator.share({
356
- // title,
357
- // text: textToShare,
358
- // })
359
- // .catch((err) => {
360
- // this.showAlert(`分享失败:${err}`)
361
- // })
362
- // }
363
- // else {
364
- // // 兼容不支持Web Share API的浏览器
365
- // const shareUrl = `mailto:?subject=${encodeURIComponent(title)}&body=${encodeURIComponent(textToShare)}`
366
- // window.open(shareUrl, '_blank')
367
- // }
368
- // }
369
- // private voiceResult() {
370
- // if (!this.resultPopupContentEl) return
371
-
372
- // const textToSpeak = this.resultPopupContentEl.textContent || ''
373
-
374
- // if ('speechSynthesis' in window) {
375
- // const utterance = new SpeechSynthesisUtterance(textToSpeak)
376
- // utterance.lang = 'zh-CN' // 设置中文语音
377
- // speechSynthesis.speak(utterance)
378
- // }
379
- // else {
380
- // this.showAlert('当前浏览器不支持语音合成API')
381
- // // 可以在这里添加不支持语音的提示
382
- // }
383
- // }
384
-
385
- private addResultEvent() {
386
- if (this.resultRefreshBtnEl) {
387
- this.resultRefreshBtnEl.addEventListener('click', () => {
388
- this.regenerateResponse()
389
- })
390
- }
391
-
392
- if (this.resultCopyBtnEl) {
393
- this.resultCopyBtnEl.addEventListener('click', () => {
394
- this.copyResult()
395
- })
396
- }
397
-
398
- // 分享和朗读功能待放开
399
- // if (this.resultShareBtnEl) {
400
- // this.resultShareBtnEl.addEventListener('click', () => {
401
- // this.shareResult()
402
- // })
403
- // }
404
- // if (this.resultVoiceBtnEl) {
405
- // this.resultVoiceBtnEl.addEventListener('click', () => {
406
- // this.voiceResult()
407
- // })
408
- // }
409
- }
410
-
411
- // 显示选中文本的气泡
412
- private showSelectionBubble() {
413
- if (!this.selectionBubbleEl) {
414
- this.selectionBubbleEl = document.createElement('div')
415
- this.selectionBubbleEl.className = 'ql-ai-selection-bubble'
416
- const icon = AI_ICON.replaceAll('paint_linear_2', 'paint_linear_bubble')
417
- this.selectionBubbleEl.innerHTML = `${icon}<span>AI 智能</span>`
418
- this.selectionBubbleEl.addEventListener('click', () => this.selectTextEvent())
419
- document.body.appendChild(this.selectionBubbleEl)
420
- }
421
-
422
- const { left, top } = this.quill.getBounds(this.selectionRange.index)
423
- const { left: endLeft } = this.quill.getBounds(this.selectionRange.index + this.selectionRange.length)
424
- const width = (endLeft - left) / 2
425
- const editorRect = this.quill.container.getBoundingClientRect()
426
-
427
- this.selectionBubbleEl.style.display = 'flex'
428
- this.selectionBubbleEl.style.left = `${left + editorRect.left + width - 45}px`
429
- this.selectionBubbleEl.style.top = `${top + editorRect.top - 40}px`
430
- }
431
-
432
- // 隐藏选中文本的气泡
433
- private hideSelectionBubble() {
434
- if (this.selectionBubbleEl) {
435
- this.selectionBubbleEl.style.display = 'none'
436
- }
437
- }
438
-
439
- // 处理文本选中变化
440
- private handleSelectionChange(range: any) {
441
- if (range && range.length > 0) {
442
- this.selectionRange = range
443
- this.showSelectionBubble()
444
- this.selectedText = this.quill.getText(range.index, range.length)
445
- }
446
- else {
447
- if (range && range.index !== null) {
448
- this.selectedText = ''
449
- this.closeAIPanel()
450
- }
451
- else {
452
- this.hideSelectionBubble()
453
- }
454
- }
455
- }
456
-
457
- private addInputEvent() {
458
- if (this.inputContainerEl) {
459
- this.inputContainerEl.addEventListener('click', () => {})
460
- }
461
-
462
- // 监听输入事件
463
- if (this.inputEl) {
464
- this.inputEl.addEventListener('input', () => {
465
- this.hiddenInputSendBtnEl(this.inputEl.value.trim() ? 'flex' : 'none')
466
- if (this.menuContainerEl && this._isSelectRangeMode) {
467
- this.showOperationMenu = !this.inputEl.value.trim() && !this._showResultPopupEl
468
- }
469
- })
470
- }
471
-
472
- // 给发送按钮添加点击事件
473
- if (this.inputSendBtnEl) {
474
- this.inputSendBtnEl.addEventListener('click', async () => {
475
- await this.queryAI()
476
- })
477
- }
478
- // 监听发送事件
479
- this.inputEl.addEventListener('keydown', async (e) => {
480
- if (e.key === 'Enter') {
481
- await this.queryAI()
482
- }
483
- })
484
-
485
- // 给关闭按钮添加点击事件
486
- if (this.inputCloseBtnEl) {
487
- this.inputCloseBtnEl.addEventListener('click', () => {
488
- this.closeAIPanel()
489
- })
490
- }
491
- }
492
-
493
- private positionElements() {
494
- if (!this.dialogContainerEl) return
495
- const range = this.selectionRange
496
- if (range) {
497
- const bounds = this.quill.getBounds(range.index)
498
- this.dialogContainerEl.style.position = 'absolute'
499
- this.dialogContainerEl.style.top = `${bounds.top + bounds.height + 20}px`
500
- }
501
- }
502
-
503
- // 添加创建alert元素的方法
504
- private createAlertElement() {
505
- if (!this.alertEl) {
506
- this.alertEl = document.createElement('div')
507
- this.alertEl.className = 'ql-ai-alert'
508
- this.alertEl.style.display = 'none'
509
- document.body.appendChild(this.alertEl)
510
- }
511
- }
512
-
513
- // 添加显示alert的方法
514
- private showAlert(message: string, duration: number = 3000) {
515
- this.createAlertElement()
516
- if (!this.alertEl) return
517
-
518
- // 清除之前的定时器
519
- if (this.alertTimer) {
520
- clearTimeout(this.alertTimer)
521
- this.alertTimer = null
522
- }
523
-
524
- this.alertEl.textContent = message
525
- this.alertEl.style.display = 'block'
526
-
527
- // 自动隐藏
528
- this.alertTimer = setTimeout(() => {
529
- if (this.alertEl) {
530
- this.alertEl.style.display = 'none'
531
- }
532
- this.alertTimer = null
533
- }, duration) as unknown as number
534
- }
535
-
536
- private createAIInputIcon() {
537
- if (!this.aiIconEl) {
538
- this.aiIconEl = document.createElement('span')
539
- this.aiIconEl.className = 'ql-ai-input-pre-icon'
540
- const icon = AI_ICON.replaceAll('paint_linear_2', 'paint_linear_ai_input')
541
- this.aiIconEl.innerHTML = icon
542
- }
543
- }
544
-
545
- // 添加处理子菜单点击的方法
546
- private handleOperationMenuItemClick(text: string, id: string = '') {
547
- let quetion = ''
548
- if (id.startsWith('1-') || id.startsWith('3-')) {
549
- quetion = `将目标文字${text},目标文字为:${this.selectedText}`
550
- }
551
- else if (id.startsWith('2-')) {
552
- quetion = `改写目标文字的口吻,让其变得${text},目标文字为:${this.selectedText}`
553
- }
554
- this.showOperationMenu = false
555
- this.queryAI(quetion)
556
- }
557
-
558
- private createActionMenu() {
559
- if (!this.actionMenuEl) {
560
- this.actionMenuEl = document.createElement('div')
561
- this.actionMenuEl.className = 'ql-ai-actions'
562
-
563
- this.resultMenuList.forEach(({ text, icon }) => {
564
- const menuItem = document.createElement('div')
565
- menuItem.className = 'ql-ai-action-item'
566
- menuItem.innerHTML = `${icon}<span class="ql-ai-result-menu-text">${text}</span>`
567
- menuItem.addEventListener('click', () => this.handleAction(text))
568
- this.actionMenuEl.appendChild(menuItem)
569
- })
570
-
571
- this.wrapContainerEl.appendChild(this.actionMenuEl)
572
- }
573
- const secondMenuItemText = this.actionMenuEl.children[1].querySelector('.ql-ai-result-menu-text') as HTMLDivElement
574
-
575
- const firstChild = this.actionMenuEl.firstChild
576
-
577
- if (!this._isSelectRangeMode) {
578
- if (firstChild instanceof Element) {
579
- firstChild.classList.add('hidden')
580
- }
581
-
582
- secondMenuItemText.textContent = INSERT_TEXT
583
- }
584
- else {
585
- if (firstChild instanceof Element) {
586
- firstChild.classList.remove('hidden')
587
- }
588
-
589
- secondMenuItemText.textContent = INSERT_SUB_CONTENT_TEXT
590
- }
591
-
592
- this.isThinking = false
593
- }
594
-
595
- private handleActionMenuDisplay(value: string = 'none') {
596
- if (this.actionMenuEl) {
597
- this.actionMenuEl.style.display = value
598
- }
599
- }
600
-
601
- private switchInputEl(showInput = true) {
602
- if (this.inputContainerEl) {
603
- this.inputContainerEl.style.display = showInput ? 'flex' : 'none'
604
- }
605
-
606
- this.handleActionMenuDisplay(showInput ? 'block' : 'none')
607
-
608
- if (this.thinkContainerEl) {
609
- this.thinkContainerEl.style.display = showInput ? 'none' : 'flex'
610
- }
611
- }
612
-
613
- // 创建思考元素
614
- private createThinkElements() {
615
- if (!this.thinkContainerEl) {
616
- this.thinkContainerEl = document.createElement('div')
617
- this.thinkContainerEl.className = 'ql-ai-input'
618
- this.thinkContainerEl.innerHTML = `<span class="ql-ai-input-pre-icon ql-ai-think-icon">${THINK_ICON}</span><span class="ql-ai-think-text">${THINK_TEXT}</span>`
619
- this.thinkBtnEl = document.createElement('div')
620
- this.thinkBtnEl.className = 'ql-ai-think-btn'
621
- this.thinkBtnEl.innerHTML = `${STOP_ICON}<span>${STOP_ANSWER}</span>`
622
- this.thinkContainerEl.appendChild(this.thinkBtnEl)
623
- this.wrapContainerEl.appendChild(this.thinkContainerEl) // 添加发送按钮
624
- this.thinkBtnEl.addEventListener('click', () => {
625
- this.isBreak = true
626
- this.isThinking = false
627
- })
628
- }
629
-
630
- this.isThinking = true
631
- }
632
-
633
- // AI查询
634
- private async queryAI(question?: string): Promise<string> {
635
- this.createThinkElements()
636
- this.inputValue = question || this.inputEl.value
637
- if (this.inputValue.trim() === '') {
638
- return
639
- }
640
-
641
- // 有信息
642
- this.isBreak = false // 重置打断标记,防止重复打断ai
643
- // 这里实现实际的AI查询逻辑
644
- try {
645
- const response = await fetch(`${this.host}`, {
646
- method: 'POST',
647
- headers: {
648
- 'Content-Type': 'application/json',
649
- 'Authorization': `Bearer ${this.apiKey}`,
650
- },
651
- body: JSON.stringify({
652
- model: this.model,
653
- prompt: this.inputValue,
654
- stream: true,
655
- }),
656
- })
657
-
658
- if (!response.ok) {
659
- throw new Error(`HTTP error! status: ${response.status}`)
660
- }
661
-
662
- const reader = response.body.getReader()
663
- const decoder = new TextDecoder()
664
- let content = ''
665
-
666
- while (true) {
667
- if (this.isBreak) {
668
- this.isBreak = false
669
- break
670
- }
671
-
672
- const { done, value } = await reader.read()
673
- if (done) break
674
-
675
- const chunk = decoder.decode(value)
676
- const lines = chunk.split('\n').filter(line => line.trim() !== '')
677
-
678
- for (const line of lines) {
679
- try {
680
- const data = JSON.parse(line)
681
- content += data.response || ''
682
- this.showAIResponse(content)
683
- }
684
- catch (e) {
685
- console.error('解析错误:', e)
686
- }
687
- }
688
- }
689
-
690
- // 创建操作菜单
691
- this.createActionMenu()
692
- this.inputEl.value = '' // 清空输入框
693
- this.hiddenInputSendBtnEl()
694
- return content
695
- }
696
- catch (error) {
697
- console.error('AI查询失败:', error)
698
- return 'AI查询失败,请重试'
699
- }
700
- }
701
-
702
- private showAIResponse(response: string) {
703
- if (!this.resultPopupEl) return
704
-
705
- // 显示结果
706
- if (this._charCount <= this.textNumber) {
707
- this.resultPopupContentEl.innerHTML = response
708
- this.charCount = this.resultPopupContentEl.textContent.replace(/\s+/g, '').length
709
- }
710
- else {
711
- this.isBreak = true
712
- this.charCount = 0
713
- }
714
- this.showResultPopupEl = true
715
- }
716
-
717
- private handleAction(action: string) {
718
- switch (action) {
719
- case REPLACE_SELECT:
720
- this.replaceSelectText()
721
- break
722
- case INSERT_TEXT:
723
- this.insertAIResponse()
724
- break
725
- case REGENERATE:
726
- this.regenerateResponse()
727
- break
728
- case CLOSE:
729
- this.closeAIPanel()
730
- break
731
- }
732
- }
733
-
734
- private replaceSelectText() {
735
- if (!this.resultPopupContentEl) return
736
- const range = this.quill.getSelection(true)
737
- if (range && range.length > 0) {
738
- // 删除选中内容
739
- this.quill.deleteText(range.index, range.length)
740
- // 插入AI生成的内容
741
- this.quill.clipboard.dangerouslyPasteHTML(range.index, this.resultPopupContentEl.innerHTML)
742
- }
743
- this.closeAIPanel()
744
- }
745
-
746
- private insertAIResponse() {
747
- if (!this.resultPopupContentEl) return
748
- const range = this.quill.getSelection(true)
749
- if (range) {
750
- this.quill.clipboard.dangerouslyPasteHTML(range.index + range.length, this.resultPopupContentEl.innerHTML)
751
- }
752
- this.closeAIPanel()
753
- }
754
-
755
- private async regenerateResponse() {
756
- await this.queryAI(this.inputValue)
757
- }
758
-
759
- private closeAIPanel() {
760
- this.isBreak = true // 停止查询
761
-
762
- if (this.dialogContainerEl) {
763
- this.dialogContainerEl.style.display = 'none'
764
- }
765
-
766
- if (this.actionMenuEl) {
767
- this.actionMenuEl.style.display = 'none'
768
- }
769
-
770
- this.showResultPopupEl = false
771
-
772
- if (this.inputEl && this.inputEl.value.trim() !== '') {
773
- this.inputEl.value = '' // 清空输入框
774
- }
775
- this.hideSelectionBubble()
776
- }
777
-
778
- set charCount(value: number) {
779
- // 清除之前的定时器
780
- if (this._debounceTimer) {
781
- clearTimeout(this._debounceTimer)
782
- }
783
-
784
- this._debounceTimer = setTimeout(() => {
785
- this._charCount = value
786
- if (this.resultPopupFooterTextEl) {
787
- this.resultPopupFooterTextEl.textContent = `${this._charCount}/${this.textNumber}`
788
- }
789
- clearTimeout(this._debounceTimer)
790
- this._debounceTimer = null
791
- }, 210)
792
- }
793
-
794
- get charCount() {
795
- return this._charCount
796
- }
797
-
798
- set inputPlaceholder(value: string) {
799
- this._inputPlaceholder = value
800
- if (this.inputEl) {
801
- this.inputEl.placeholder = value
802
- }
803
- }
804
-
805
- get inputPlaceholder() {
806
- return this._inputPlaceholder
807
- }
808
-
809
- set showOperationMenu(value: boolean) {
810
- this._showOperationMenu = value
811
- if (this.menuContainerEl) {
812
- this.menuContainerEl.style.display = value ? 'flex' : 'none'
813
- }
814
- }
815
-
816
- get showOperationMenu() {
817
- return this._showOperationMenu
818
- }
819
-
820
- set isSelectRangeMode(value: boolean) {
821
- this._isSelectRangeMode = value
822
- this.showOperationMenu = value
823
- this.inputPlaceholder = value ? SELECT_PLACEHOLDER : INPUT_PLACEHOLDER
824
- this.hideSelectionBubble()
825
- }
826
-
827
- get isSelectRangeMode() {
828
- return this._isSelectRangeMode
829
- }
830
-
831
- set isThinking(value: boolean) {
832
- this._isThinking = value
833
- this.switchInputEl(!value)
834
- }
835
-
836
- get isThinking() {
837
- return this._isThinking
838
- }
839
-
840
- set showResultPopupEl(value: boolean) {
841
- this._showResultPopupEl = value
842
- if (this.resultPopupEl) {
843
- this.resultPopupEl.style.display = value ? 'block' : 'none'
844
- }
845
- }
846
-
847
- get showResultPopupEl() {
848
- return this._showResultPopupEl
849
- }
850
- }