editor-svg 1.0.2 → 1.0.3

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 (695) hide show
  1. package/dist/editor-svg.es.js +3 -0
  2. package/dist/editor-svg.es.js.map +1 -0
  3. package/dist/editor-svg.umd.js +3 -0
  4. package/dist/editor-svg.umd.js.map +1 -0
  5. package/dist/src/editor/core/actuator/Actuator.d.ts +7 -0
  6. package/dist/src/editor/core/actuator/handlers/positionContextChange.d.ts +3 -0
  7. package/dist/src/editor/core/command/Command.d.ts +147 -0
  8. package/dist/src/editor/core/command/CommandAdapt.d.ts +190 -0
  9. package/dist/src/editor/core/contextmenu/ContextMenu.d.ts +31 -0
  10. package/dist/src/editor/core/contextmenu/menus/controlMenus.d.ts +2 -0
  11. package/dist/src/editor/core/contextmenu/menus/globalMenus.d.ts +2 -0
  12. package/dist/src/editor/core/contextmenu/menus/hyperlinkMenus.d.ts +2 -0
  13. package/dist/src/editor/core/contextmenu/menus/imageMenus.d.ts +2 -0
  14. package/dist/src/editor/core/contextmenu/menus/tableMenus.d.ts +2 -0
  15. package/dist/src/editor/core/cursor/Cursor.d.ts +41 -0
  16. package/dist/src/editor/core/cursor/CursorAgent.d.ts +16 -0
  17. package/dist/src/editor/core/draw/Draw.d.ts +252 -0
  18. package/dist/src/editor/core/draw/control/Control.d.ts +73 -0
  19. package/dist/src/editor/core/draw/control/checkbox/CheckboxControl.d.ts +16 -0
  20. package/dist/src/editor/core/draw/control/date/DateControl.d.ts +24 -0
  21. package/dist/src/editor/core/draw/control/interactive/ControlSearch.d.ts +20 -0
  22. package/dist/src/editor/core/draw/control/number/Calculator.d.ts +16 -0
  23. package/dist/src/editor/core/draw/control/number/NumberControl.d.ts +13 -0
  24. package/dist/src/editor/core/draw/control/radio/RadioControl.d.ts +5 -0
  25. package/dist/src/editor/core/draw/control/richtext/Border.d.ts +10 -0
  26. package/dist/src/editor/core/draw/control/select/SelectControl.d.ts +28 -0
  27. package/dist/src/editor/core/draw/control/text/TextControl.d.ts +18 -0
  28. package/dist/src/editor/core/draw/frame/Background.d.ts +11 -0
  29. package/dist/src/editor/core/draw/frame/Badge.d.ts +14 -0
  30. package/dist/src/editor/core/draw/frame/Footer.d.ts +27 -0
  31. package/dist/src/editor/core/draw/frame/Header.d.ts +27 -0
  32. package/dist/src/editor/core/draw/frame/LineNumber.d.ts +7 -0
  33. package/dist/src/editor/core/draw/frame/Margin.d.ts +7 -0
  34. package/dist/src/editor/core/draw/frame/PageBorder.d.ts +9 -0
  35. package/dist/src/editor/core/draw/frame/PageNumber.d.ts +9 -0
  36. package/dist/src/editor/core/draw/frame/Placeholder.d.ts +20 -0
  37. package/dist/src/editor/core/draw/frame/Watermark.d.ts +10 -0
  38. package/dist/src/editor/core/draw/graffiti/Graffiti.d.ts +19 -0
  39. package/dist/src/editor/core/draw/interactive/Area.d.ts +27 -0
  40. package/dist/src/editor/core/draw/interactive/Group.d.ts +18 -0
  41. package/dist/src/editor/core/draw/interactive/Search.d.ts +30 -0
  42. package/dist/src/editor/core/draw/particle/CheckboxParticle.d.ts +18 -0
  43. package/dist/src/editor/core/draw/particle/HyperlinkParticle.d.ts +17 -0
  44. package/dist/src/editor/core/draw/particle/ImageParticle.d.ts +23 -0
  45. package/dist/src/editor/core/draw/particle/LabelParticle.d.ts +8 -0
  46. package/dist/src/editor/core/draw/particle/LineBreakParticle.d.ts +10 -0
  47. package/dist/src/editor/core/draw/particle/ListParticle.d.ts +20 -0
  48. package/dist/src/editor/core/draw/particle/PageBreakParticle.d.ts +9 -0
  49. package/dist/src/editor/core/draw/particle/RadioParticle.d.ts +18 -0
  50. package/dist/src/editor/core/draw/particle/SeparatorParticle.d.ts +7 -0
  51. package/dist/src/editor/core/draw/particle/SubscriptParticle.d.ts +5 -0
  52. package/dist/src/editor/core/draw/particle/SuperscriptParticle.d.ts +5 -0
  53. package/dist/src/editor/core/draw/particle/TextParticle.d.ts +29 -0
  54. package/dist/src/editor/core/draw/particle/WhiteSpaceParticle.d.ts +7 -0
  55. package/dist/src/editor/core/draw/particle/block/BlockParticle.d.ts +14 -0
  56. package/dist/src/editor/core/draw/particle/block/modules/BaseBlock.d.ts +33 -0
  57. package/dist/src/editor/core/draw/particle/block/modules/IFrameBlock.d.ts +9 -0
  58. package/dist/src/editor/core/draw/particle/block/modules/VideoBlock.d.ts +8 -0
  59. package/dist/src/editor/core/draw/particle/date/DateParticle.d.ts +13 -0
  60. package/dist/src/editor/core/draw/particle/date/DatePicker.d.ts +64 -0
  61. package/dist/src/editor/core/draw/particle/latex/LaTexParticle.d.ts +7 -0
  62. package/dist/src/editor/core/draw/particle/latex/utils/LaTexUtils.d.ts +47 -0
  63. package/dist/src/editor/core/draw/particle/latex/utils/hershey.d.ts +10 -0
  64. package/dist/src/editor/core/draw/particle/latex/utils/symbols.d.ts +8 -0
  65. package/dist/src/editor/core/draw/particle/previewer/Previewer.d.ts +47 -0
  66. package/dist/src/editor/core/draw/particle/table/TableOperate.d.ts +32 -0
  67. package/dist/src/editor/core/draw/particle/table/TableParticle.d.ts +24 -0
  68. package/dist/src/editor/core/draw/particle/table/TableTool.d.ts +31 -0
  69. package/dist/src/editor/core/draw/richtext/AbstractRichText.d.ts +11 -0
  70. package/dist/src/editor/core/draw/richtext/Highlight.d.ts +7 -0
  71. package/dist/src/editor/core/draw/richtext/Strikeout.d.ts +7 -0
  72. package/dist/src/editor/core/draw/richtext/Underline.d.ts +10 -0
  73. package/dist/src/editor/core/event/CanvasEvent.d.ts +52 -0
  74. package/dist/src/editor/core/event/GlobalEvent.d.ts +26 -0
  75. package/dist/src/editor/core/event/eventbus/EventBus.d.ts +9 -0
  76. package/dist/src/editor/core/event/handlers/click.d.ts +11 -0
  77. package/dist/src/editor/core/event/handlers/composition.d.ts +8 -0
  78. package/dist/src/editor/core/event/handlers/copy.d.ts +3 -0
  79. package/dist/src/editor/core/event/handlers/cut.d.ts +2 -0
  80. package/dist/src/editor/core/event/handlers/drag.d.ts +6 -0
  81. package/dist/src/editor/core/event/handlers/drop.d.ts +2 -0
  82. package/dist/src/editor/core/event/handlers/input.d.ts +3 -0
  83. package/dist/src/editor/core/event/handlers/keydown/backspace.d.ts +2 -0
  84. package/dist/src/editor/core/event/handlers/keydown/delete.d.ts +2 -0
  85. package/dist/src/editor/core/event/handlers/keydown/end.d.ts +2 -0
  86. package/dist/src/editor/core/event/handlers/keydown/enter.d.ts +2 -0
  87. package/dist/src/editor/core/event/handlers/keydown/home.d.ts +2 -0
  88. package/dist/src/editor/core/event/handlers/keydown/index.d.ts +2 -0
  89. package/dist/src/editor/core/event/handlers/keydown/left.d.ts +2 -0
  90. package/dist/src/editor/core/event/handlers/keydown/right.d.ts +2 -0
  91. package/dist/src/editor/core/event/handlers/keydown/tab.d.ts +2 -0
  92. package/dist/src/editor/core/event/handlers/keydown/updown.d.ts +2 -0
  93. package/dist/src/editor/core/event/handlers/mousedown.d.ts +7 -0
  94. package/dist/src/editor/core/event/handlers/mouseleave.d.ts +2 -0
  95. package/dist/src/editor/core/event/handlers/mousemove.d.ts +2 -0
  96. package/dist/src/editor/core/event/handlers/mouseup.d.ts +2 -0
  97. package/dist/src/editor/core/event/handlers/paste.d.ts +8 -0
  98. package/dist/src/editor/core/history/HistoryManager.d.ts +15 -0
  99. package/dist/src/editor/core/i18n/I18n.d.ts +12 -0
  100. package/dist/src/editor/core/listener/Listener.d.ts +15 -0
  101. package/dist/src/editor/core/observer/ImageObserver.d.ts +7 -0
  102. package/dist/src/editor/core/observer/MouseObserver.d.ts +13 -0
  103. package/dist/src/editor/core/observer/ScrollObserver.d.ts +20 -0
  104. package/dist/src/editor/core/observer/SelectionObserver.d.ts +22 -0
  105. package/dist/src/editor/core/override/Override.d.ts +9 -0
  106. package/dist/src/editor/core/plugin/Plugin.d.ts +7 -0
  107. package/dist/src/editor/core/position/Position.d.ts +37 -0
  108. package/dist/src/editor/core/range/RangeManager.d.ts +45 -0
  109. package/dist/src/editor/core/register/Register.d.ts +20 -0
  110. package/dist/src/editor/core/shortcut/Shortcut.d.ts +16 -0
  111. package/dist/src/editor/core/shortcut/keys/listKeys.d.ts +2 -0
  112. package/dist/src/editor/core/shortcut/keys/richtextKeys.d.ts +2 -0
  113. package/dist/src/editor/core/shortcut/keys/titleKeys.d.ts +2 -0
  114. package/dist/src/editor/core/worker/WorkerManager.d.ts +16 -0
  115. package/dist/src/editor/core/worker/works/catalog.d.ts +1 -0
  116. package/dist/src/editor/core/worker/works/group.d.ts +1 -0
  117. package/dist/src/editor/core/worker/works/value.d.ts +1 -0
  118. package/dist/src/editor/core/worker/works/wordCount.d.ts +1 -0
  119. package/dist/src/editor/core/zone/Zone.d.ts +21 -0
  120. package/dist/src/editor/core/zone/ZoneTip.d.ts +17 -0
  121. package/dist/src/editor/dataset/constant/Background.d.ts +2 -0
  122. package/dist/src/editor/dataset/constant/Badge.d.ts +2 -0
  123. package/dist/src/editor/dataset/constant/Checkbox.d.ts +2 -0
  124. package/dist/src/editor/dataset/constant/Common.d.ts +21 -0
  125. package/dist/src/editor/dataset/constant/ContextMenu.d.ts +60 -0
  126. package/dist/src/editor/dataset/constant/Control.d.ts +2 -0
  127. package/dist/src/editor/dataset/constant/Cursor.d.ts +3 -0
  128. package/dist/src/editor/dataset/constant/Editor.d.ts +6 -0
  129. package/dist/src/editor/dataset/constant/Element.d.ts +21 -0
  130. package/dist/src/editor/dataset/constant/Footer.d.ts +2 -0
  131. package/dist/src/editor/dataset/constant/Graffiti.d.ts +2 -0
  132. package/dist/src/editor/dataset/constant/Group.d.ts +2 -0
  133. package/dist/src/editor/dataset/constant/Header.d.ts +2 -0
  134. package/dist/src/editor/dataset/constant/ImgCaption.d.ts +2 -0
  135. package/dist/src/editor/dataset/constant/Label.d.ts +2 -0
  136. package/dist/src/editor/dataset/constant/LineBreak.d.ts +2 -0
  137. package/dist/src/editor/dataset/constant/LineNumber.d.ts +2 -0
  138. package/dist/src/editor/dataset/constant/List.d.ts +6 -0
  139. package/dist/src/editor/dataset/constant/PageBorder.d.ts +2 -0
  140. package/dist/src/editor/dataset/constant/PageBreak.d.ts +2 -0
  141. package/dist/src/editor/dataset/constant/PageNumber.d.ts +6 -0
  142. package/dist/src/editor/dataset/constant/Placeholder.d.ts +2 -0
  143. package/dist/src/editor/dataset/constant/Radio.d.ts +2 -0
  144. package/dist/src/editor/dataset/constant/Regular.d.ts +10 -0
  145. package/dist/src/editor/dataset/constant/Separator.d.ts +2 -0
  146. package/dist/src/editor/dataset/constant/Shortcut.d.ts +3 -0
  147. package/dist/src/editor/dataset/constant/Table.d.ts +2 -0
  148. package/dist/src/editor/dataset/constant/Title.d.ts +6 -0
  149. package/dist/src/editor/dataset/constant/Watermark.d.ts +2 -0
  150. package/dist/src/editor/dataset/constant/WhiteSpace.d.ts +2 -0
  151. package/dist/src/editor/dataset/constant/Zone.d.ts +2 -0
  152. package/dist/src/editor/dataset/enum/Area.d.ts +5 -0
  153. package/dist/src/editor/dataset/enum/Background.d.ts +10 -0
  154. package/dist/src/editor/dataset/enum/Block.d.ts +4 -0
  155. package/dist/src/editor/dataset/enum/Common.d.ts +26 -0
  156. package/dist/src/editor/dataset/enum/Control.d.ts +32 -0
  157. package/dist/src/editor/dataset/enum/Editor.d.ts +44 -0
  158. package/dist/src/editor/dataset/enum/Element.d.ts +21 -0
  159. package/dist/src/editor/dataset/enum/ElementStyle.d.ts +12 -0
  160. package/dist/src/editor/dataset/enum/Event.d.ts +5 -0
  161. package/dist/src/editor/dataset/enum/KeyMap.d.ts +85 -0
  162. package/dist/src/editor/dataset/enum/LineNumber.d.ts +4 -0
  163. package/dist/src/editor/dataset/enum/List.d.ts +20 -0
  164. package/dist/src/editor/dataset/enum/Observer.d.ts +6 -0
  165. package/dist/src/editor/dataset/enum/Row.d.ts +7 -0
  166. package/dist/src/editor/dataset/enum/Text.d.ts +12 -0
  167. package/dist/src/editor/dataset/enum/Title.d.ts +8 -0
  168. package/dist/src/editor/dataset/enum/VerticalAlign.d.ts +5 -0
  169. package/dist/src/editor/dataset/enum/Watermark.d.ts +4 -0
  170. package/dist/src/editor/dataset/enum/table/Table.d.ts +17 -0
  171. package/dist/src/editor/dataset/enum/table/TableTool.d.ts +4 -0
  172. package/dist/src/editor/index.d.ts +57 -0
  173. package/dist/src/editor/interface/Area.d.ts +57 -0
  174. package/dist/src/editor/interface/Background.d.ts +8 -0
  175. package/dist/src/editor/interface/Badge.d.ts +15 -0
  176. package/dist/src/editor/interface/Block.d.ts +15 -0
  177. package/dist/src/editor/interface/Catalog.d.ts +9 -0
  178. package/dist/src/editor/interface/Checkbox.d.ts +15 -0
  179. package/dist/src/editor/interface/Command.d.ts +3 -0
  180. package/dist/src/editor/interface/Common.d.ts +14 -0
  181. package/dist/src/editor/interface/Control.d.ts +198 -0
  182. package/dist/src/editor/interface/Cursor.d.ts +7 -0
  183. package/dist/src/editor/interface/Draw.d.ts +74 -0
  184. package/dist/src/editor/interface/Editor.d.ts +143 -0
  185. package/dist/src/editor/interface/Element.d.ts +218 -0
  186. package/dist/src/editor/interface/Event.d.ts +22 -0
  187. package/dist/src/editor/interface/EventBus.d.ts +26 -0
  188. package/dist/src/editor/interface/Footer.d.ts +8 -0
  189. package/dist/src/editor/interface/Graffiti.d.ts +13 -0
  190. package/dist/src/editor/interface/Group.d.ts +8 -0
  191. package/dist/src/editor/interface/Header.d.ts +8 -0
  192. package/dist/src/editor/interface/Label.d.ts +7 -0
  193. package/dist/src/editor/interface/LineBreak.d.ts +5 -0
  194. package/dist/src/editor/interface/LineNumber.d.ts +9 -0
  195. package/dist/src/editor/interface/Listener.d.ts +66 -0
  196. package/{src/editor/interface/Margin.ts → dist/src/editor/interface/Margin.d.ts} +1 -1
  197. package/dist/src/editor/interface/PageBorder.d.ts +7 -0
  198. package/dist/src/editor/interface/PageBreak.d.ts +5 -0
  199. package/dist/src/editor/interface/PageNumber.d.ts +15 -0
  200. package/dist/src/editor/interface/Placeholder.d.ts +7 -0
  201. package/dist/src/editor/interface/Plugin.d.ts +3 -0
  202. package/dist/src/editor/interface/Position.d.ts +103 -0
  203. package/dist/src/editor/interface/Previewer.d.ts +13 -0
  204. package/dist/src/editor/interface/Radio.d.ts +15 -0
  205. package/dist/src/editor/interface/Range.d.ts +44 -0
  206. package/dist/src/editor/interface/Row.d.ts +23 -0
  207. package/dist/src/editor/interface/Search.d.ts +30 -0
  208. package/dist/src/editor/interface/Separator.d.ts +4 -0
  209. package/dist/src/editor/interface/Text.d.ts +13 -0
  210. package/dist/src/editor/interface/Title.d.ts +26 -0
  211. package/dist/src/editor/interface/Watermark.d.ts +15 -0
  212. package/dist/src/editor/interface/WhiteSpace.d.ts +5 -0
  213. package/{src/editor/interface/Zone.ts → dist/src/editor/interface/Zone.d.ts} +3 -3
  214. package/dist/src/editor/interface/contextmenu/ContextMenu.d.ts +73 -0
  215. package/dist/src/editor/interface/i18n/I18n.d.ts +6 -0
  216. package/dist/src/editor/interface/shortcut/Shortcut.d.ts +13 -0
  217. package/dist/src/editor/interface/table/Colgroup.d.ts +4 -0
  218. package/dist/src/editor/interface/table/Table.d.ts +8 -0
  219. package/dist/src/editor/interface/table/Td.d.ts +35 -0
  220. package/dist/src/editor/interface/table/Tr.d.ts +10 -0
  221. package/dist/src/editor/utils/clipboard.d.ts +13 -0
  222. package/dist/src/editor/utils/element.d.ts +57 -0
  223. package/dist/src/editor/utils/hotkey.d.ts +1 -0
  224. package/dist/src/editor/utils/index.d.ts +34 -0
  225. package/dist/src/editor/utils/option.d.ts +3 -0
  226. package/dist/src/editor/utils/paragraph.d.ts +8 -0
  227. package/dist/src/editor/utils/print.d.ts +7 -0
  228. package/dist/src/editor/utils/ua.d.ts +4 -0
  229. package/package.json +8 -1
  230. package/.editorconfig +0 -9
  231. package/.eslintrc +0 -46
  232. package/.prettierrc +0 -8
  233. package/AGENTS.md +0 -186
  234. package/CLAUDE.md +0 -110
  235. package/cypress/e2e/control/checkbox.cy.ts +0 -46
  236. package/cypress/e2e/control/select.cy.ts +0 -56
  237. package/cypress/e2e/control/text.cy.ts +0 -43
  238. package/cypress/e2e/editor.cy.ts +0 -67
  239. package/cypress/e2e/menus/block.cy.ts +0 -38
  240. package/cypress/e2e/menus/checkbox.cy.ts +0 -33
  241. package/cypress/e2e/menus/codeblock.cy.ts +0 -34
  242. package/cypress/e2e/menus/date.cy.ts +0 -28
  243. package/cypress/e2e/menus/format.cy.ts +0 -40
  244. package/cypress/e2e/menus/hyperlink.cy.ts +0 -39
  245. package/cypress/e2e/menus/image.cy.ts +0 -25
  246. package/cypress/e2e/menus/latex.cy.ts +0 -34
  247. package/cypress/e2e/menus/pagebreak.cy.ts +0 -21
  248. package/cypress/e2e/menus/painter.cy.ts +0 -53
  249. package/cypress/e2e/menus/print.cy.ts +0 -25
  250. package/cypress/e2e/menus/row.cy.ts +0 -103
  251. package/cypress/e2e/menus/search.cy.ts +0 -112
  252. package/cypress/e2e/menus/separator.cy.ts +0 -32
  253. package/cypress/e2e/menus/table.cy.ts +0 -25
  254. package/cypress/e2e/menus/text.cy.ts +0 -304
  255. package/cypress/e2e/menus/title.cy.ts +0 -43
  256. package/cypress/e2e/menus/undoRedo.cy.ts +0 -49
  257. package/cypress/e2e/menus/watermark.cy.ts +0 -64
  258. package/cypress/fixtures/example.json +0 -3
  259. package/cypress/fixtures/test.png +0 -0
  260. package/cypress/global.d.ts +0 -13
  261. package/cypress/support/commands.ts +0 -5
  262. package/cypress/support/e2e.ts +0 -1
  263. package/cypress/tsconfig.json +0 -21
  264. package/cypress.config.ts +0 -10
  265. package/docs/.vitepress/config.ts +0 -191
  266. package/docs/.vitepress/theme/components/DeepWikiBadge.vue +0 -21
  267. package/docs/.vitepress/theme/components/ZreadBadge.vue +0 -21
  268. package/docs/.vitepress/theme/index.ts +0 -27
  269. package/docs/en/guide/api-common.md +0 -49
  270. package/docs/en/guide/api-instance.md +0 -34
  271. package/docs/en/guide/command-execute.md +0 -1167
  272. package/docs/en/guide/command-get.md +0 -355
  273. package/docs/en/guide/contextmenu-custom.md +0 -44
  274. package/docs/en/guide/contextmenu-internal.md +0 -61
  275. package/docs/en/guide/eventbus.md +0 -260
  276. package/docs/en/guide/i18n.md +0 -112
  277. package/docs/en/guide/listener.md +0 -126
  278. package/docs/en/guide/option.md +0 -214
  279. package/docs/en/guide/override.md +0 -57
  280. package/docs/en/guide/plugin-custom.md +0 -25
  281. package/docs/en/guide/plugin-internal.md +0 -125
  282. package/docs/en/guide/schema.md +0 -237
  283. package/docs/en/guide/shortcut-custom.md +0 -22
  284. package/docs/en/guide/shortcut-internal.md +0 -189
  285. package/docs/en/guide/start.md +0 -97
  286. package/docs/en/index.md +0 -43
  287. package/docs/guide/api-common.md +0 -49
  288. package/docs/guide/api-instance.md +0 -34
  289. package/docs/guide/command-execute.md +0 -1157
  290. package/docs/guide/command-get.md +0 -353
  291. package/docs/guide/contextmenu-custom.md +0 -44
  292. package/docs/guide/contextmenu-internal.md +0 -61
  293. package/docs/guide/eventbus.md +0 -260
  294. package/docs/guide/i18n.md +0 -111
  295. package/docs/guide/listener.md +0 -126
  296. package/docs/guide/option.md +0 -214
  297. package/docs/guide/override.md +0 -57
  298. package/docs/guide/plugin-custom.md +0 -25
  299. package/docs/guide/plugin-internal.md +0 -125
  300. package/docs/guide/schema.md +0 -237
  301. package/docs/guide/shortcut-custom.md +0 -22
  302. package/docs/guide/shortcut-internal.md +0 -189
  303. package/docs/guide/start.md +0 -97
  304. package/docs/index.md +0 -43
  305. package/docs/public/favicon.png +0 -0
  306. package/favicon.png +0 -0
  307. package/index.html +0 -435
  308. package/pnpm-lock.yaml +0 -4113
  309. package/scripts/release.js +0 -43
  310. package/scripts/verifyCommit.js +0 -19
  311. package/src/assets/images/alignment.svg +0 -1
  312. package/src/assets/images/arrow-left.svg +0 -1
  313. package/src/assets/images/arrow-right.svg +0 -1
  314. package/src/assets/images/block.svg +0 -1
  315. package/src/assets/images/bold.svg +0 -1
  316. package/src/assets/images/catalog.svg +0 -1
  317. package/src/assets/images/center.svg +0 -1
  318. package/src/assets/images/checkbox.svg +0 -1
  319. package/src/assets/images/close.svg +0 -1
  320. package/src/assets/images/codeblock.svg +0 -1
  321. package/src/assets/images/color.svg +0 -1
  322. package/src/assets/images/control.svg +0 -1
  323. package/src/assets/images/date.svg +0 -1
  324. package/src/assets/images/exit-fullscreen.svg +0 -1
  325. package/src/assets/images/format.svg +0 -1
  326. package/src/assets/images/highlight.svg +0 -1
  327. package/src/assets/images/hyperlink.svg +0 -1
  328. package/src/assets/images/image.svg +0 -1
  329. package/src/assets/images/italic.svg +0 -1
  330. package/src/assets/images/justify.svg +0 -7
  331. package/src/assets/images/latex.svg +0 -1
  332. package/src/assets/images/left.svg +0 -1
  333. package/src/assets/images/line-dash-dot-dot.svg +0 -1
  334. package/src/assets/images/line-dash-dot.svg +0 -1
  335. package/src/assets/images/line-dash-large-gap.svg +0 -1
  336. package/src/assets/images/line-dash-small-gap.svg +0 -1
  337. package/src/assets/images/line-dot.svg +0 -1
  338. package/src/assets/images/line-double.svg +0 -1
  339. package/src/assets/images/line-single.svg +0 -1
  340. package/src/assets/images/line-wavy.svg +0 -1
  341. package/src/assets/images/list.svg +0 -1
  342. package/src/assets/images/option.svg +0 -1
  343. package/src/assets/images/page-break.svg +0 -1
  344. package/src/assets/images/page-mode.svg +0 -1
  345. package/src/assets/images/page-scale-add.svg +0 -1
  346. package/src/assets/images/page-scale-minus.svg +0 -1
  347. package/src/assets/images/painter.svg +0 -1
  348. package/src/assets/images/paper-direction.svg +0 -1
  349. package/src/assets/images/paper-margin.svg +0 -1
  350. package/src/assets/images/paper-size.svg +0 -1
  351. package/src/assets/images/print.svg +0 -1
  352. package/src/assets/images/radio.svg +0 -4
  353. package/src/assets/images/redo.svg +0 -1
  354. package/src/assets/images/request-fullscreen.svg +0 -1
  355. package/src/assets/images/right.svg +0 -1
  356. package/src/assets/images/row-margin.svg +0 -1
  357. package/src/assets/images/search.svg +0 -1
  358. package/src/assets/images/separator.svg +0 -1
  359. package/src/assets/images/signature-undo.svg +0 -1
  360. package/src/assets/images/signature.svg +0 -1
  361. package/src/assets/images/size-add.svg +0 -1
  362. package/src/assets/images/size-minus.svg +0 -1
  363. package/src/assets/images/strikeout.svg +0 -1
  364. package/src/assets/images/subscript.svg +0 -1
  365. package/src/assets/images/superscript.svg +0 -1
  366. package/src/assets/images/table.svg +0 -1
  367. package/src/assets/images/title.svg +0 -1
  368. package/src/assets/images/trash.svg +0 -1
  369. package/src/assets/images/underline.svg +0 -1
  370. package/src/assets/images/undo.svg +0 -1
  371. package/src/assets/images/watermark.svg +0 -1
  372. package/src/assets/images/word-tool.svg +0 -1
  373. package/src/assets/snapshots/main_v0.2.1.png +0 -0
  374. package/src/assets/snapshots/main_v0.2.2.png +0 -0
  375. package/src/assets/snapshots/main_v0.3.0.png +0 -0
  376. package/src/assets/snapshots/main_v0.3.1.png +0 -0
  377. package/src/assets/snapshots/main_v0.5.0.png +0 -0
  378. package/src/assets/snapshots/main_v0.5.1.png +0 -0
  379. package/src/assets/snapshots/main_v0.6.0.png +0 -0
  380. package/src/assets/snapshots/main_v0.6.1.png +0 -0
  381. package/src/assets/snapshots/main_v0.7.0.png +0 -0
  382. package/src/assets/snapshots/main_v0.7.1.png +0 -0
  383. package/src/assets/snapshots/main_v0.7.2.png +0 -0
  384. package/src/assets/snapshots/main_v0.7.3.png +0 -0
  385. package/src/assets/snapshots/main_v0.7.4.png +0 -0
  386. package/src/assets/snapshots/main_v0.7.6.png +0 -0
  387. package/src/assets/snapshots/main_v0.7.7.png +0 -0
  388. package/src/assets/snapshots/main_v0.8.0.png +0 -0
  389. package/src/assets/snapshots/main_v0.8.5.png +0 -0
  390. package/src/assets/snapshots/main_v0.8.6.png +0 -0
  391. package/src/assets/snapshots/main_v0.8.7.png +0 -0
  392. package/src/assets/snapshots/main_v0.8.8.png +0 -0
  393. package/src/assets/snapshots/main_v0.9.0.png +0 -0
  394. package/src/assets/snapshots/main_v0.9.1.png +0 -0
  395. package/src/assets/snapshots/main_v0.9.2.png +0 -0
  396. package/src/assets/snapshots/main_v0.9.23.png +0 -0
  397. package/src/assets/snapshots/main_v0.9.28.png +0 -0
  398. package/src/assets/snapshots/main_v0.9.29.png +0 -0
  399. package/src/assets/snapshots/main_v0.9.3.png +0 -0
  400. package/src/assets/snapshots/main_v0.9.30.png +0 -0
  401. package/src/assets/snapshots/main_v0.9.32.png +0 -0
  402. package/src/assets/snapshots/main_v0.9.35.png +0 -0
  403. package/src/assets/snapshots/main_v0.9.4.png +0 -0
  404. package/src/assets/snapshots/main_v0.9.5.png +0 -0
  405. package/src/assets/snapshots/main_v0.9.6.png +0 -0
  406. package/src/assets/snapshots/main_v0.9.8.png +0 -0
  407. package/src/components/dialog/Dialog.ts +0 -171
  408. package/src/components/dialog/dialog.css +0 -131
  409. package/src/components/signature/Signature.ts +0 -340
  410. package/src/components/signature/signature.css +0 -132
  411. package/src/editor/assets/css/block/block.css +0 -21
  412. package/src/editor/assets/css/contextmenu/contextmenu.css +0 -196
  413. package/src/editor/assets/css/control/calculator.css +0 -85
  414. package/src/editor/assets/css/control/select.css +0 -44
  415. package/src/editor/assets/css/date/datePicker.css +0 -233
  416. package/src/editor/assets/css/hyperlink/hyperlink.css +0 -26
  417. package/src/editor/assets/css/index.css +0 -78
  418. package/src/editor/assets/css/previewer/previewer.css +0 -122
  419. package/src/editor/assets/css/resizer/resizer.css +0 -74
  420. package/src/editor/assets/css/table/table.css +0 -155
  421. package/src/editor/assets/css/zone/zone.css +0 -61
  422. package/src/editor/assets/images/close.svg +0 -1
  423. package/src/editor/assets/images/delete-col.svg +0 -1
  424. package/src/editor/assets/images/delete-row-col.svg +0 -1
  425. package/src/editor/assets/images/delete-row.svg +0 -1
  426. package/src/editor/assets/images/delete-table.svg +0 -1
  427. package/src/editor/assets/images/image-change.svg +0 -1
  428. package/src/editor/assets/images/image-download.svg +0 -1
  429. package/src/editor/assets/images/image-next.svg +0 -1
  430. package/src/editor/assets/images/image-pre.svg +0 -1
  431. package/src/editor/assets/images/image.svg +0 -1
  432. package/src/editor/assets/images/insert-bottom-row.svg +0 -1
  433. package/src/editor/assets/images/insert-left-col.svg +0 -1
  434. package/src/editor/assets/images/insert-right-col.svg +0 -1
  435. package/src/editor/assets/images/insert-row-col.svg +0 -1
  436. package/src/editor/assets/images/insert-top-row.svg +0 -1
  437. package/src/editor/assets/images/merge-cancel-cell.svg +0 -1
  438. package/src/editor/assets/images/merge-cell.svg +0 -1
  439. package/src/editor/assets/images/original-size.svg +0 -1
  440. package/src/editor/assets/images/print.svg +0 -1
  441. package/src/editor/assets/images/rotate.svg +0 -1
  442. package/src/editor/assets/images/submenu-dropdown.svg +0 -1
  443. package/src/editor/assets/images/table-border-all.svg +0 -1
  444. package/src/editor/assets/images/table-border-dash.svg +0 -1
  445. package/src/editor/assets/images/table-border-empty.svg +0 -1
  446. package/src/editor/assets/images/table-border-external.svg +0 -1
  447. package/src/editor/assets/images/table-border-internal.svg +0 -1
  448. package/src/editor/assets/images/table-border-td-back.svg +0 -1
  449. package/src/editor/assets/images/table-border-td-bottom.svg +0 -1
  450. package/src/editor/assets/images/table-border-td-forward.svg +0 -1
  451. package/src/editor/assets/images/table-border-td-left.svg +0 -1
  452. package/src/editor/assets/images/table-border-td-right.svg +0 -1
  453. package/src/editor/assets/images/table-border-td-top.svg +0 -1
  454. package/src/editor/assets/images/table-border-td.svg +0 -1
  455. package/src/editor/assets/images/vertical-align-bottom.svg +0 -1
  456. package/src/editor/assets/images/vertical-align-middle.svg +0 -1
  457. package/src/editor/assets/images/vertical-align-top.svg +0 -1
  458. package/src/editor/assets/images/vertical-align.svg +0 -1
  459. package/src/editor/assets/images/zoom-in.svg +0 -1
  460. package/src/editor/assets/images/zoom-out.svg +0 -1
  461. package/src/editor/core/actuator/Actuator.ts +0 -21
  462. package/src/editor/core/actuator/handlers/positionContextChange.ts +0 -13
  463. package/src/editor/core/command/Command.ts +0 -312
  464. package/src/editor/core/command/CommandAdapt.ts +0 -2733
  465. package/src/editor/core/contextmenu/ContextMenu.ts +0 -363
  466. package/src/editor/core/contextmenu/menus/controlMenus.ts +0 -25
  467. package/src/editor/core/contextmenu/menus/globalMenus.ts +0 -66
  468. package/src/editor/core/contextmenu/menus/hyperlinkMenus.ts +0 -58
  469. package/src/editor/core/contextmenu/menus/imageMenus.ts +0 -134
  470. package/src/editor/core/contextmenu/menus/tableMenus.ts +0 -331
  471. package/src/editor/core/cursor/Cursor.ts +0 -248
  472. package/src/editor/core/cursor/CursorAgent.ts +0 -75
  473. package/src/editor/core/draw/Draw.ts +0 -2934
  474. package/src/editor/core/draw/control/Control.ts +0 -1767
  475. package/src/editor/core/draw/control/checkbox/CheckboxControl.ts +0 -154
  476. package/src/editor/core/draw/control/date/DateControl.ts +0 -363
  477. package/src/editor/core/draw/control/interactive/ControlSearch.ts +0 -214
  478. package/src/editor/core/draw/control/number/Calculator.ts +0 -183
  479. package/src/editor/core/draw/control/number/NumberControl.ts +0 -183
  480. package/src/editor/core/draw/control/radio/RadioControl.ts +0 -68
  481. package/src/editor/core/draw/control/richtext/Border.ts +0 -52
  482. package/src/editor/core/draw/control/select/SelectControl.ts +0 -567
  483. package/src/editor/core/draw/control/text/TextControl.ts +0 -280
  484. package/src/editor/core/draw/frame/Background.ts +0 -117
  485. package/src/editor/core/draw/frame/Badge.ts +0 -88
  486. package/src/editor/core/draw/frame/Footer.ts +0 -155
  487. package/src/editor/core/draw/frame/Header.ts +0 -158
  488. package/src/editor/core/draw/frame/LineNumber.ts +0 -43
  489. package/src/editor/core/draw/frame/Margin.ts +0 -53
  490. package/src/editor/core/draw/frame/PageBorder.ts +0 -47
  491. package/src/editor/core/draw/frame/PageNumber.ts +0 -88
  492. package/src/editor/core/draw/frame/Placeholder.ts +0 -114
  493. package/src/editor/core/draw/frame/Watermark.ts +0 -188
  494. package/src/editor/core/draw/graffiti/Graffiti.ts +0 -125
  495. package/src/editor/core/draw/interactive/Area.ts +0 -312
  496. package/src/editor/core/draw/interactive/Group.ts +0 -198
  497. package/src/editor/core/draw/interactive/Search.ts +0 -527
  498. package/src/editor/core/draw/particle/CheckboxParticle.ts +0 -111
  499. package/src/editor/core/draw/particle/HyperlinkParticle.ts +0 -86
  500. package/src/editor/core/draw/particle/ImageParticle.ts +0 -280
  501. package/src/editor/core/draw/particle/LabelParticle.ts +0 -79
  502. package/src/editor/core/draw/particle/LineBreakParticle.ts +0 -55
  503. package/src/editor/core/draw/particle/ListParticle.ts +0 -255
  504. package/src/editor/core/draw/particle/PageBreakParticle.ts +0 -54
  505. package/src/editor/core/draw/particle/RadioParticle.ts +0 -99
  506. package/src/editor/core/draw/particle/SeparatorParticle.ts +0 -37
  507. package/src/editor/core/draw/particle/SubscriptParticle.ts +0 -23
  508. package/src/editor/core/draw/particle/SuperscriptParticle.ts +0 -23
  509. package/src/editor/core/draw/particle/TextParticle.ts +0 -174
  510. package/src/editor/core/draw/particle/WhiteSpaceParticle.ts +0 -32
  511. package/src/editor/core/draw/particle/block/BlockParticle.ts +0 -76
  512. package/src/editor/core/draw/particle/block/modules/BaseBlock.ts +0 -280
  513. package/src/editor/core/draw/particle/block/modules/IFrameBlock.ts +0 -47
  514. package/src/editor/core/draw/particle/block/modules/VideoBlock.ts +0 -61
  515. package/src/editor/core/draw/particle/date/DateParticle.ts +0 -111
  516. package/src/editor/core/draw/particle/date/DatePicker.ts +0 -577
  517. package/src/editor/core/draw/particle/latex/LaTexParticle.ts +0 -43
  518. package/src/editor/core/draw/particle/latex/utils/LaTexUtils.ts +0 -1196
  519. package/src/editor/core/draw/particle/latex/utils/hershey.ts +0 -1632
  520. package/src/editor/core/draw/particle/latex/utils/symbols.ts +0 -318
  521. package/src/editor/core/draw/particle/previewer/Previewer.ts +0 -582
  522. package/src/editor/core/draw/particle/table/TableOperate.ts +0 -988
  523. package/src/editor/core/draw/particle/table/TableParticle.ts +0 -558
  524. package/src/editor/core/draw/particle/table/TableTool.ts +0 -551
  525. package/src/editor/core/draw/richtext/AbstractRichText.ts +0 -59
  526. package/src/editor/core/draw/richtext/Highlight.ts +0 -24
  527. package/src/editor/core/draw/richtext/Strikeout.ts +0 -28
  528. package/src/editor/core/draw/richtext/Underline.ts +0 -106
  529. package/src/editor/core/event/CanvasEvent.ts +0 -215
  530. package/src/editor/core/event/GlobalEvent.ts +0 -173
  531. package/src/editor/core/event/eventbus/EventBus.ts +0 -50
  532. package/src/editor/core/event/handlers/click.ts +0 -234
  533. package/src/editor/core/event/handlers/composition.ts +0 -45
  534. package/src/editor/core/event/handlers/copy.ts +0 -72
  535. package/src/editor/core/event/handlers/cut.ts +0 -47
  536. package/src/editor/core/event/handlers/drag.ts +0 -66
  537. package/src/editor/core/event/handlers/drop.ts +0 -28
  538. package/src/editor/core/event/handlers/input.ts +0 -129
  539. package/src/editor/core/event/handlers/keydown/backspace.ts +0 -161
  540. package/src/editor/core/event/handlers/keydown/delete.ts +0 -119
  541. package/src/editor/core/event/handlers/keydown/end.ts +0 -69
  542. package/src/editor/core/event/handlers/keydown/enter.ts +0 -126
  543. package/src/editor/core/event/handlers/keydown/home.ts +0 -69
  544. package/src/editor/core/event/handlers/keydown/index.ts +0 -85
  545. package/src/editor/core/event/handlers/keydown/left.ts +0 -162
  546. package/src/editor/core/event/handlers/keydown/right.ts +0 -178
  547. package/src/editor/core/event/handlers/keydown/tab.ts +0 -41
  548. package/src/editor/core/event/handlers/keydown/updown.ts +0 -342
  549. package/src/editor/core/event/handlers/mousedown.ts +0 -262
  550. package/src/editor/core/event/handlers/mouseleave.ts +0 -14
  551. package/src/editor/core/event/handlers/mousemove.ts +0 -133
  552. package/src/editor/core/event/handlers/mouseup.ts +0 -341
  553. package/src/editor/core/event/handlers/paste.ts +0 -231
  554. package/src/editor/core/history/HistoryManager.ts +0 -61
  555. package/src/editor/core/i18n/I18n.ts +0 -51
  556. package/src/editor/core/i18n/lang/en.json +0 -92
  557. package/src/editor/core/i18n/lang/zh-CN.json +0 -92
  558. package/src/editor/core/listener/Listener.ts +0 -41
  559. package/src/editor/core/observer/ImageObserver.ts +0 -19
  560. package/src/editor/core/observer/MouseObserver.ts +0 -56
  561. package/src/editor/core/observer/ScrollObserver.ts +0 -88
  562. package/src/editor/core/observer/SelectionObserver.ts +0 -143
  563. package/src/editor/core/override/Override.ts +0 -14
  564. package/src/editor/core/plugin/Plugin.ts +0 -17
  565. package/src/editor/core/position/Position.ts +0 -870
  566. package/src/editor/core/range/RangeManager.ts +0 -723
  567. package/src/editor/core/register/Register.ts +0 -28
  568. package/src/editor/core/shortcut/Shortcut.ts +0 -80
  569. package/src/editor/core/shortcut/keys/listKeys.ts +0 -22
  570. package/src/editor/core/shortcut/keys/richtextKeys.ts +0 -102
  571. package/src/editor/core/shortcut/keys/titleKeys.ts +0 -62
  572. package/src/editor/core/worker/WorkerManager.ts +0 -96
  573. package/src/editor/core/worker/works/catalog.ts +0 -189
  574. package/src/editor/core/worker/works/group.ts +0 -34
  575. package/src/editor/core/worker/works/value.ts +0 -32
  576. package/src/editor/core/worker/works/wordCount.ts +0 -132
  577. package/src/editor/core/zone/Zone.ts +0 -183
  578. package/src/editor/core/zone/ZoneTip.ts +0 -108
  579. package/src/editor/dataset/constant/Background.ts +0 -10
  580. package/src/editor/dataset/constant/Badge.ts +0 -6
  581. package/src/editor/dataset/constant/Checkbox.ts +0 -12
  582. package/src/editor/dataset/constant/Common.ts +0 -44
  583. package/src/editor/dataset/constant/ContextMenu.ts +0 -61
  584. package/src/editor/dataset/constant/Control.ts +0 -14
  585. package/src/editor/dataset/constant/Cursor.ts +0 -11
  586. package/src/editor/dataset/constant/Editor.ts +0 -19
  587. package/src/editor/dataset/constant/Element.ts +0 -173
  588. package/src/editor/dataset/constant/Footer.ts +0 -10
  589. package/src/editor/dataset/constant/Graffiti.ts +0 -6
  590. package/src/editor/dataset/constant/Group.ts +0 -10
  591. package/src/editor/dataset/constant/Header.ts +0 -10
  592. package/src/editor/dataset/constant/ImgCaption.ts +0 -8
  593. package/src/editor/dataset/constant/Label.ts +0 -8
  594. package/src/editor/dataset/constant/LineBreak.ts +0 -7
  595. package/src/editor/dataset/constant/LineNumber.ts +0 -11
  596. package/src/editor/dataset/constant/List.ts +0 -26
  597. package/src/editor/dataset/constant/PageBorder.ts +0 -8
  598. package/src/editor/dataset/constant/PageBreak.ts +0 -7
  599. package/src/editor/dataset/constant/PageNumber.ts +0 -22
  600. package/src/editor/dataset/constant/Placeholder.ts +0 -9
  601. package/src/editor/dataset/constant/Radio.ts +0 -12
  602. package/src/editor/dataset/constant/Regular.ts +0 -23
  603. package/src/editor/dataset/constant/Separator.ts +0 -6
  604. package/src/editor/dataset/constant/Shortcut.ts +0 -3
  605. package/src/editor/dataset/constant/Table.ts +0 -9
  606. package/src/editor/dataset/constant/Title.ts +0 -38
  607. package/src/editor/dataset/constant/Watermark.ts +0 -17
  608. package/src/editor/dataset/constant/WhiteSpace.ts +0 -7
  609. package/src/editor/dataset/constant/Zone.ts +0 -5
  610. package/src/editor/dataset/enum/Area.ts +0 -5
  611. package/src/editor/dataset/enum/Background.ts +0 -11
  612. package/src/editor/dataset/enum/Block.ts +0 -4
  613. package/src/editor/dataset/enum/Common.ts +0 -30
  614. package/src/editor/dataset/enum/Control.ts +0 -39
  615. package/src/editor/dataset/enum/Editor.ts +0 -51
  616. package/src/editor/dataset/enum/Element.ts +0 -21
  617. package/src/editor/dataset/enum/ElementStyle.ts +0 -12
  618. package/src/editor/dataset/enum/Event.ts +0 -5
  619. package/src/editor/dataset/enum/KeyMap.ts +0 -85
  620. package/src/editor/dataset/enum/LineNumber.ts +0 -4
  621. package/src/editor/dataset/enum/List.ts +0 -23
  622. package/src/editor/dataset/enum/Observer.ts +0 -6
  623. package/src/editor/dataset/enum/Row.ts +0 -7
  624. package/src/editor/dataset/enum/Text.ts +0 -13
  625. package/src/editor/dataset/enum/Title.ts +0 -8
  626. package/src/editor/dataset/enum/VerticalAlign.ts +0 -5
  627. package/src/editor/dataset/enum/Watermark.ts +0 -4
  628. package/src/editor/dataset/enum/table/Table.ts +0 -19
  629. package/src/editor/dataset/enum/table/TableTool.ts +0 -4
  630. package/src/editor/index.ts +0 -241
  631. package/src/editor/interface/Area.ts +0 -68
  632. package/src/editor/interface/Background.ts +0 -9
  633. package/src/editor/interface/Badge.ts +0 -17
  634. package/src/editor/interface/Block.ts +0 -18
  635. package/src/editor/interface/Catalog.ts +0 -11
  636. package/src/editor/interface/Checkbox.ts +0 -17
  637. package/src/editor/interface/Command.ts +0 -3
  638. package/src/editor/interface/Common.ts +0 -43
  639. package/src/editor/interface/Control.ts +0 -250
  640. package/src/editor/interface/Cursor.ts +0 -7
  641. package/src/editor/interface/Draw.ts +0 -86
  642. package/src/editor/interface/Editor.ts +0 -172
  643. package/src/editor/interface/Element.ts +0 -273
  644. package/src/editor/interface/Event.ts +0 -27
  645. package/src/editor/interface/EventBus.ts +0 -46
  646. package/src/editor/interface/Footer.ts +0 -9
  647. package/src/editor/interface/Graffiti.ts +0 -15
  648. package/src/editor/interface/Group.ts +0 -8
  649. package/src/editor/interface/Header.ts +0 -9
  650. package/src/editor/interface/Label.ts +0 -8
  651. package/src/editor/interface/LineBreak.ts +0 -5
  652. package/src/editor/interface/LineNumber.ts +0 -10
  653. package/src/editor/interface/Listener.ts +0 -88
  654. package/src/editor/interface/PageBorder.ts +0 -8
  655. package/src/editor/interface/PageBreak.ts +0 -5
  656. package/src/editor/interface/PageNumber.ts +0 -16
  657. package/src/editor/interface/Placeholder.ts +0 -7
  658. package/src/editor/interface/Plugin.ts +0 -8
  659. package/src/editor/interface/Position.ts +0 -113
  660. package/src/editor/interface/Previewer.ts +0 -15
  661. package/src/editor/interface/Radio.ts +0 -17
  662. package/src/editor/interface/Range.ts +0 -61
  663. package/src/editor/interface/Row.ts +0 -25
  664. package/src/editor/interface/Search.ts +0 -36
  665. package/src/editor/interface/Separator.ts +0 -4
  666. package/src/editor/interface/Text.ts +0 -15
  667. package/src/editor/interface/Title.ts +0 -32
  668. package/src/editor/interface/Watermark.ts +0 -16
  669. package/src/editor/interface/WhiteSpace.ts +0 -5
  670. package/src/editor/interface/contextmenu/ContextMenu.ts +0 -76
  671. package/src/editor/interface/i18n/I18n.ts +0 -7
  672. package/src/editor/interface/shortcut/Shortcut.ts +0 -14
  673. package/src/editor/interface/table/Colgroup.ts +0 -4
  674. package/src/editor/interface/table/Table.ts +0 -9
  675. package/src/editor/interface/table/Td.ts +0 -36
  676. package/src/editor/interface/table/Tr.ts +0 -11
  677. package/src/editor/types/index.d.ts +0 -5
  678. package/src/editor/utils/clipboard.ts +0 -94
  679. package/src/editor/utils/element.ts +0 -1877
  680. package/src/editor/utils/hotkey.ts +0 -5
  681. package/src/editor/utils/index.ts +0 -445
  682. package/src/editor/utils/option.ts +0 -253
  683. package/src/editor/utils/paragraph.ts +0 -28
  684. package/src/editor/utils/print.ts +0 -99
  685. package/src/editor/utils/ua.ts +0 -13
  686. package/src/main.ts +0 -2053
  687. package/src/mock.ts +0 -611
  688. package/src/plugins/copy/index.ts +0 -30
  689. package/src/plugins/markdown/index.ts +0 -118
  690. package/src/style.css +0 -1079
  691. package/src/utils/index.ts +0 -45
  692. package/src/utils/prism.ts +0 -89
  693. package/src/vite-env.d.ts +0 -1
  694. package/tsconfig.json +0 -25
  695. package/vite.config.ts +0 -46
@@ -1,988 +0,0 @@
1
- import { ElementType, IElement, TableBorder, VerticalAlign } from '../../../..'
2
- import { ZERO } from '../../../../dataset/constant/Common'
3
- import { TABLE_CONTEXT_ATTR } from '../../../../dataset/constant/Element'
4
- import { TdBorder, TdSlash } from '../../../../dataset/enum/table/Table'
5
- import { DeepRequired } from '../../../../interface/Common'
6
- import { IEditorOption } from '../../../../interface/Editor'
7
- import { IColgroup } from '../../../../interface/table/Colgroup'
8
- import { ITd } from '../../../../interface/table/Td'
9
- import { ITr } from '../../../../interface/table/Tr'
10
- import { cloneProperty, getUUID } from '../../../../utils'
11
- import {
12
- formatElementContext,
13
- formatElementList
14
- } from '../../../../utils/element'
15
- import { Position } from '../../../position/Position'
16
- import { RangeManager } from '../../../range/RangeManager'
17
- import { Draw } from '../../Draw'
18
- import { TableParticle } from './TableParticle'
19
- import { TableTool } from './TableTool'
20
-
21
- export class TableOperate {
22
- private draw: Draw
23
- private range: RangeManager
24
- private position: Position
25
- private tableTool: TableTool
26
- private tableParticle: TableParticle
27
- private options: DeepRequired<IEditorOption>
28
-
29
- constructor(draw: Draw) {
30
- this.draw = draw
31
- this.range = draw.getRange()
32
- this.position = draw.getPosition()
33
- this.tableTool = draw.getTableTool()
34
- this.tableParticle = draw.getTableParticle()
35
- this.options = draw.getOptions()
36
- }
37
-
38
- public insertTable(row: number, col: number) {
39
- const { startIndex, endIndex } = this.range.getRange()
40
- if (!~startIndex && !~endIndex) return
41
- const { defaultTrMinHeight } = this.options.table
42
- const elementList = this.draw.getElementList()
43
- let offsetX = 0
44
- if (elementList[startIndex]?.listId) {
45
- const positionList = this.position.getPositionList()
46
- const { rowIndex } = positionList[startIndex]
47
- const rowList = this.draw.getRowList()
48
- const row = rowList[rowIndex]
49
- offsetX = row?.offsetX || 0
50
- }
51
- const innerWidth = this.draw.getContextInnerWidth() - offsetX
52
- // colgroup
53
- const colgroup: IColgroup[] = []
54
- const colWidth = innerWidth / col
55
- for (let c = 0; c < col; c++) {
56
- colgroup.push({
57
- width: colWidth
58
- })
59
- }
60
- // trlist
61
- const trList: ITr[] = []
62
- for (let r = 0; r < row; r++) {
63
- const tdList: ITd[] = []
64
- const tr: ITr = {
65
- height: defaultTrMinHeight,
66
- tdList
67
- }
68
- for (let c = 0; c < col; c++) {
69
- tdList.push({
70
- colspan: 1,
71
- rowspan: 1,
72
- value: []
73
- })
74
- }
75
- trList.push(tr)
76
- }
77
- const element: IElement = {
78
- type: ElementType.TABLE,
79
- value: '',
80
- colgroup,
81
- trList
82
- }
83
- // 格式化element
84
- formatElementList([element], {
85
- editorOptions: this.options
86
- })
87
- formatElementContext(elementList, [element], startIndex, {
88
- editorOptions: this.options
89
- })
90
- const curIndex = startIndex + 1
91
- this.draw.spliceElementList(
92
- elementList,
93
- curIndex,
94
- startIndex === endIndex ? 0 : endIndex - startIndex,
95
- [element]
96
- )
97
- this.range.setRange(curIndex, curIndex)
98
- this.draw.render({ curIndex, isSetCursor: false })
99
- }
100
-
101
- public insertTableTopRow() {
102
- const positionContext = this.position.getPositionContext()
103
- if (!positionContext.isTable) return
104
- const { index, trIndex, tableId } = positionContext
105
- const originalElementList = this.draw.getOriginalElementList()
106
- const element = originalElementList[index!]
107
- const curTrList = element.trList!
108
- const curTr = curTrList[trIndex!]
109
- // 之前跨行的增加跨行数
110
- if (curTr.tdList.length < element.colgroup!.length) {
111
- const curTrNo = curTr.tdList[0].rowIndex!
112
- for (let t = 0; t < trIndex!; t++) {
113
- const tr = curTrList[t]
114
- for (let d = 0; d < tr.tdList.length; d++) {
115
- const td = tr.tdList[d]
116
- if (td.rowspan > 1 && td.rowIndex! + td.rowspan >= curTrNo + 1) {
117
- td.rowspan += 1
118
- }
119
- }
120
- }
121
- }
122
- // 增加当前行
123
- const newTrId = getUUID()
124
- const newTr: ITr = {
125
- height: curTr.height,
126
- id: newTrId,
127
- tdList: []
128
- }
129
- for (let t = 0; t < curTr.tdList.length; t++) {
130
- const curTd = curTr.tdList[t]
131
- const newTdId = getUUID()
132
- newTr.tdList.push({
133
- id: newTdId,
134
- rowspan: 1,
135
- colspan: curTd.colspan,
136
- value: [
137
- {
138
- value: ZERO,
139
- size: 16,
140
- tableId,
141
- trId: newTrId,
142
- tdId: newTdId
143
- }
144
- ]
145
- })
146
- }
147
- curTrList.splice(trIndex!, 0, newTr)
148
- // 重新设置上下文
149
- this.position.setPositionContext({
150
- isTable: true,
151
- index,
152
- trIndex,
153
- tdIndex: 0,
154
- tdId: newTr.tdList[0].id,
155
- trId: newTr.id,
156
- tableId
157
- })
158
- this.range.setRange(0, 0)
159
- // 重新渲染
160
- this.draw.render({ curIndex: 0 })
161
- this.tableTool.render()
162
- }
163
-
164
- public insertTableBottomRow() {
165
- const positionContext = this.position.getPositionContext()
166
- if (!positionContext.isTable) return
167
- const { index, trIndex, tableId } = positionContext
168
- const originalElementList = this.draw.getOriginalElementList()
169
- const element = originalElementList[index!]
170
- const curTrList = element.trList!
171
- const curTr = curTrList[trIndex!]
172
- const anchorTr =
173
- curTrList.length - 1 === trIndex ? curTr : curTrList[trIndex! + 1]
174
- // 之前/当前行跨行的增加跨行数
175
- if (anchorTr.tdList.length < element.colgroup!.length) {
176
- const curTrNo = anchorTr.tdList[0].rowIndex!
177
- for (let t = 0; t < trIndex! + 1; t++) {
178
- const tr = curTrList[t]
179
- for (let d = 0; d < tr.tdList.length; d++) {
180
- const td = tr.tdList[d]
181
- if (td.rowspan > 1 && td.rowIndex! + td.rowspan >= curTrNo + 1) {
182
- td.rowspan += 1
183
- }
184
- }
185
- }
186
- }
187
- // 增加当前行
188
- const newTrId = getUUID()
189
- const newTr: ITr = {
190
- height: anchorTr.height,
191
- id: newTrId,
192
- tdList: []
193
- }
194
- for (let t = 0; t < anchorTr.tdList.length; t++) {
195
- const curTd = anchorTr.tdList[t]
196
- const newTdId = getUUID()
197
- newTr.tdList.push({
198
- id: newTdId,
199
- rowspan: 1,
200
- colspan: curTd.colspan,
201
- value: [
202
- {
203
- value: ZERO,
204
- size: 16,
205
- tableId,
206
- trId: newTrId,
207
- tdId: newTdId
208
- }
209
- ]
210
- })
211
- }
212
- curTrList.splice(trIndex! + 1, 0, newTr)
213
- // 重新设置上下文
214
- this.position.setPositionContext({
215
- isTable: true,
216
- index,
217
- trIndex: trIndex! + 1,
218
- tdIndex: 0,
219
- tdId: newTr.tdList[0].id,
220
- trId: newTr.id,
221
- tableId: element.id
222
- })
223
- this.range.setRange(0, 0)
224
- // 重新渲染
225
- this.draw.render({ curIndex: 0 })
226
- }
227
-
228
- public adjustColWidth(element: IElement) {
229
- if (element.type !== ElementType.TABLE) return
230
- const { defaultColMinWidth } = this.options.table
231
- const colgroup = element.colgroup!
232
- const colgroupWidth = colgroup.reduce((pre, cur) => pre + cur.width, 0)
233
- const width = this.draw.getOriginalInnerWidth()
234
- if (colgroupWidth > width) {
235
- // 过滤大于最小宽度的列(可能减少宽度的列)
236
- const greaterMinWidthCol = colgroup.filter(
237
- col => col.width > defaultColMinWidth
238
- )
239
- // 均分多余宽度
240
- const adjustWidth = (colgroupWidth - width) / greaterMinWidthCol.length
241
- for (let g = 0; g < colgroup.length; g++) {
242
- const group = colgroup[g]
243
- // 小于最小宽度的列不处理
244
- if (group.width - adjustWidth >= defaultColMinWidth) {
245
- group.width -= adjustWidth
246
- }
247
- }
248
- }
249
- }
250
-
251
- public insertTableLeftCol() {
252
- const positionContext = this.position.getPositionContext()
253
- if (!positionContext.isTable) return
254
- const { index, tdIndex, tableId } = positionContext
255
- const originalElementList = this.draw.getOriginalElementList()
256
- const element = originalElementList[index!]
257
- const curTrList = element.trList!
258
- const curTdIndex = tdIndex!
259
- // 增加列
260
- for (let t = 0; t < curTrList.length; t++) {
261
- const tr = curTrList[t]
262
- const tdId = getUUID()
263
- tr.tdList.splice(curTdIndex, 0, {
264
- id: tdId,
265
- rowspan: 1,
266
- colspan: 1,
267
- value: [
268
- {
269
- value: ZERO,
270
- size: 16,
271
- tableId,
272
- trId: tr.id,
273
- tdId
274
- }
275
- ]
276
- })
277
- }
278
- // 重新计算宽度
279
- const { defaultColMinWidth } = this.options.table
280
- const colgroup = element.colgroup!
281
- colgroup.splice(curTdIndex, 0, {
282
- width: defaultColMinWidth
283
- })
284
- this.adjustColWidth(element)
285
- // 重新设置上下文
286
- this.position.setPositionContext({
287
- isTable: true,
288
- index,
289
- trIndex: 0,
290
- tdIndex: curTdIndex,
291
- tdId: curTrList[0].tdList[curTdIndex].id,
292
- trId: curTrList[0].id,
293
- tableId
294
- })
295
- this.range.setRange(0, 0)
296
- // 重新渲染
297
- this.draw.render({ curIndex: 0 })
298
- this.tableTool.render()
299
- }
300
-
301
- public insertTableRightCol() {
302
- const positionContext = this.position.getPositionContext()
303
- if (!positionContext.isTable) return
304
- const { index, tdIndex, tableId } = positionContext
305
- const originalElementList = this.draw.getOriginalElementList()
306
- const element = originalElementList[index!]
307
- const curTrList = element.trList!
308
- const curTdIndex = tdIndex! + 1
309
- // 增加列
310
- for (let t = 0; t < curTrList.length; t++) {
311
- const tr = curTrList[t]
312
- const tdId = getUUID()
313
- tr.tdList.splice(curTdIndex, 0, {
314
- id: tdId,
315
- rowspan: 1,
316
- colspan: 1,
317
- value: [
318
- {
319
- value: ZERO,
320
- size: 16,
321
- tableId,
322
- trId: tr.id,
323
- tdId
324
- }
325
- ]
326
- })
327
- }
328
- // 重新计算宽度
329
- const { defaultColMinWidth } = this.options.table
330
- const colgroup = element.colgroup!
331
- colgroup.splice(curTdIndex, 0, {
332
- width: defaultColMinWidth
333
- })
334
- this.adjustColWidth(element)
335
- // 重新设置上下文
336
- this.position.setPositionContext({
337
- isTable: true,
338
- index,
339
- trIndex: 0,
340
- tdIndex: curTdIndex,
341
- tdId: curTrList[0].tdList[curTdIndex].id,
342
- trId: curTrList[0].id,
343
- tableId: element.id
344
- })
345
- this.range.setRange(0, 0)
346
- // 重新渲染
347
- this.draw.render({ curIndex: 0 })
348
- }
349
-
350
- public deleteTableRow() {
351
- const positionContext = this.position.getPositionContext()
352
- if (!positionContext.isTable) return
353
- const { index, trIndex, tdIndex } = positionContext
354
- const originalElementList = this.draw.getOriginalElementList()
355
- const element = originalElementList[index!]
356
- const trList = element.trList!
357
- const curTr = trList[trIndex!]
358
- const curTdRowIndex = curTr.tdList[tdIndex!].rowIndex!
359
- // 如果是最后一行,直接删除整个表格(如果是拆分表格按照正常逻辑走)
360
- if (trList.length <= 1 && element.pagingIndex === 0) {
361
- this.deleteTable()
362
- return
363
- }
364
- // 之前行缩小rowspan
365
- for (let r = 0; r < curTdRowIndex; r++) {
366
- const tr = trList[r]
367
- const tdList = tr.tdList
368
- for (let d = 0; d < tdList.length; d++) {
369
- const td = tdList[d]
370
- if (td.rowIndex! + td.rowspan > curTdRowIndex) {
371
- td.rowspan--
372
- }
373
- }
374
- }
375
- // 补跨行
376
- for (let d = 0; d < curTr.tdList.length; d++) {
377
- const td = curTr.tdList[d]
378
- if (td.rowspan > 1) {
379
- const tdId = getUUID()
380
- const nextTr = trList[trIndex! + 1]
381
- nextTr.tdList.splice(d, 0, {
382
- id: tdId,
383
- rowspan: td.rowspan - 1,
384
- colspan: td.colspan,
385
- value: [
386
- {
387
- value: ZERO,
388
- size: 16,
389
- tableId: element.id,
390
- trId: nextTr.id,
391
- tdId
392
- }
393
- ]
394
- })
395
- }
396
- }
397
- // 删除当前行
398
- trList.splice(trIndex!, 1)
399
- // 重新设置上下文
400
- this.position.setPositionContext({
401
- isTable: false
402
- })
403
- this.range.clearRange()
404
- // 重新渲染
405
- this.draw.render({
406
- curIndex: positionContext.index
407
- })
408
- this.tableTool.dispose()
409
- }
410
-
411
- public deleteTableCol() {
412
- const positionContext = this.position.getPositionContext()
413
- if (!positionContext.isTable) return
414
- const { index, tdIndex, trIndex } = positionContext
415
- const originalElementList = this.draw.getOriginalElementList()
416
- const element = originalElementList[index!]
417
- const curTrList = element.trList!
418
- const curTd = curTrList[trIndex!].tdList[tdIndex!]
419
- const curColIndex = curTd.colIndex!
420
- // 如果是最后一列,直接删除整个表格
421
- const moreTdTr = curTrList.find(tr => tr.tdList.length > 1)
422
- if (!moreTdTr) {
423
- this.deleteTable()
424
- return
425
- }
426
- // 缩小colspan或删除与当前列重叠的单元格
427
- for (let t = 0; t < curTrList.length; t++) {
428
- const tr = curTrList[t]
429
- for (let d = 0; d < tr.tdList.length; d++) {
430
- const td = tr.tdList[d]
431
- if (
432
- td.colIndex! <= curColIndex &&
433
- td.colIndex! + td.colspan > curColIndex
434
- ) {
435
- if (td.colspan > 1) {
436
- td.colspan--
437
- } else {
438
- tr.tdList.splice(d, 1)
439
- }
440
- }
441
- }
442
- }
443
- element.colgroup?.splice(curColIndex, 1)
444
- // 重新设置上下文
445
- this.position.setPositionContext({
446
- isTable: false
447
- })
448
- this.range.setRange(0, 0)
449
- // 重新渲染
450
- this.draw.render({
451
- curIndex: positionContext.index
452
- })
453
- this.tableTool.dispose()
454
- }
455
-
456
- public deleteTable() {
457
- const positionContext = this.position.getPositionContext()
458
- if (!positionContext.isTable) return
459
- const originalElementList = this.draw.getOriginalElementList()
460
- const tableElement = originalElementList[positionContext.index!]
461
- // 需要删除的表格数量(拆分表格)及位置
462
- let deleteCount = 1
463
- let deleteStartIndex = positionContext.index!
464
- if (tableElement.pagingId) {
465
- // 开始删除的下标位置
466
- deleteStartIndex = positionContext.index! - tableElement.pagingIndex!
467
- // 计算删除的表格数量
468
- for (let i = deleteStartIndex + 1; i < originalElementList.length; i++) {
469
- if (originalElementList[i].pagingId === tableElement.pagingId) {
470
- deleteCount++
471
- } else {
472
- break
473
- }
474
- }
475
- }
476
- // 删除
477
- originalElementList.splice(deleteStartIndex, deleteCount)
478
- const curIndex = deleteStartIndex - 1
479
- this.position.setPositionContext({
480
- isTable: false,
481
- index: curIndex
482
- })
483
- this.range.setRange(curIndex, curIndex)
484
- this.draw.render({ curIndex })
485
- this.tableTool.dispose()
486
- }
487
-
488
- public mergeTableCell() {
489
- const positionContext = this.position.getPositionContext()
490
- if (!positionContext.isTable) return
491
- const {
492
- isCrossRowCol,
493
- startTdIndex,
494
- endTdIndex,
495
- startTrIndex,
496
- endTrIndex
497
- } = this.range.getRange()
498
- if (!isCrossRowCol) return
499
- const { index } = positionContext
500
- const originalElementList = this.draw.getOriginalElementList()
501
- const element = originalElementList[index!]
502
- const curTrList = element.trList!
503
- let startTd = curTrList[startTrIndex!].tdList[startTdIndex!]
504
- let endTd = curTrList[endTrIndex!].tdList[endTdIndex!]
505
- // 交换起始位置
506
- if (startTd.x! > endTd.x! || startTd.y! > endTd.y!) {
507
- // prettier-ignore
508
- [startTd, endTd] = [endTd, startTd]
509
- }
510
- const startColIndex = startTd.colIndex!
511
- const endColIndex = endTd.colIndex! + (endTd.colspan - 1)
512
- const startRowIndex = startTd.rowIndex!
513
- const endRowIndex = endTd.rowIndex! + (endTd.rowspan - 1)
514
- // 选区行列
515
- const rowCol: ITd[][] = []
516
- for (let t = 0; t < curTrList.length; t++) {
517
- const tr = curTrList[t]
518
- const tdList: ITd[] = []
519
- for (let d = 0; d < tr.tdList.length; d++) {
520
- const td = tr.tdList[d]
521
- const tdColIndex = td.colIndex!
522
- const tdRowIndex = td.rowIndex!
523
- if (
524
- tdColIndex >= startColIndex &&
525
- tdColIndex <= endColIndex &&
526
- tdRowIndex >= startRowIndex &&
527
- tdRowIndex <= endRowIndex
528
- ) {
529
- tdList.push(td)
530
- }
531
- }
532
- if (tdList.length) {
533
- rowCol.push(tdList)
534
- }
535
- }
536
- if (!rowCol.length) return
537
- // 是否是矩形
538
- const lastRow = rowCol[rowCol.length - 1]
539
- const leftTop = rowCol[0][0]
540
- const rightBottom = lastRow[lastRow.length - 1]
541
- const startX = leftTop.x!
542
- const startY = leftTop.y!
543
- const endX = rightBottom.x! + rightBottom.width!
544
- const endY = rightBottom.y! + rightBottom.height!
545
- for (let t = 0; t < rowCol.length; t++) {
546
- const tr = rowCol[t]
547
- for (let d = 0; d < tr.length; d++) {
548
- const td = tr[d]
549
- const tdStartX = td.x!
550
- const tdStartY = td.y!
551
- const tdEndX = tdStartX + td.width!
552
- const tdEndY = tdStartY + td.height!
553
- // 存在不符合项
554
- if (
555
- startX > tdStartX ||
556
- startY > tdStartY ||
557
- endX < tdEndX ||
558
- endY < tdEndY
559
- ) {
560
- return
561
- }
562
- }
563
- }
564
- // 合并单元格
565
- const mergeTdIdList: string[] = []
566
- const anchorTd = rowCol[0][0]
567
- const anchorElement = anchorTd.value[0]
568
- for (let t = 0; t < rowCol.length; t++) {
569
- const tr = rowCol[t]
570
- for (let d = 0; d < tr.length; d++) {
571
- const td = tr[d]
572
- const isAnchorTd = t === 0 && d === 0
573
- // 缓存待删除单元id并合并单元格内容
574
- if (!isAnchorTd) {
575
- mergeTdIdList.push(td.id!)
576
- // 被合并单元格没内容时忽略换行符
577
- const startTdValueIndex = td.value.length > 1 ? 0 : 1
578
- // 复制表格属性后追加
579
- for (let d = startTdValueIndex; d < td.value.length; d++) {
580
- const tdElement = td.value[d]
581
- cloneProperty<IElement>(
582
- TABLE_CONTEXT_ATTR,
583
- anchorElement,
584
- tdElement
585
- )
586
- anchorTd.value.push(tdElement)
587
- }
588
- }
589
- // 列合并
590
- if (t === 0 && d !== 0) {
591
- anchorTd.colspan += td.colspan
592
- }
593
- // 行合并
594
- if (t !== 0) {
595
- if (anchorTd.colIndex === td.colIndex) {
596
- anchorTd.rowspan += td.rowspan
597
- }
598
- }
599
- }
600
- }
601
- // 移除多余单元格
602
- for (let t = 0; t < curTrList.length; t++) {
603
- const tr = curTrList[t]
604
- let d = 0
605
- while (d < tr.tdList.length) {
606
- const td = tr.tdList[d]
607
- if (mergeTdIdList.includes(td.id!)) {
608
- tr.tdList.splice(d, 1)
609
- d--
610
- }
611
- d++
612
- }
613
- }
614
- // 设置上下文信息
615
- this.position.setPositionContext({
616
- ...positionContext,
617
- trIndex: anchorTd.trIndex,
618
- tdIndex: anchorTd.tdIndex
619
- })
620
- const curIndex = anchorTd.value.length - 1
621
- this.range.setRange(curIndex, curIndex)
622
- // 重新渲染
623
- this.draw.render()
624
- this.tableTool.render()
625
- }
626
-
627
- public cancelMergeTableCell() {
628
- const positionContext = this.position.getPositionContext()
629
- if (!positionContext.isTable) return
630
- const { index, tdIndex, trIndex } = positionContext
631
- const originalElementList = this.draw.getOriginalElementList()
632
- const element = originalElementList[index!]
633
- const curTrList = element.trList!
634
- const curTr = curTrList[trIndex!]!
635
- const curTd = curTr.tdList[tdIndex!]
636
- if (curTd.rowspan === 1 && curTd.colspan === 1) return
637
- const colspan = curTd.colspan
638
- // 设置跨列
639
- if (curTd.colspan > 1) {
640
- for (let c = 1; c < curTd.colspan; c++) {
641
- const tdId = getUUID()
642
- curTr.tdList.splice(tdIndex! + c, 0, {
643
- id: tdId,
644
- rowspan: 1,
645
- colspan: 1,
646
- value: [
647
- {
648
- value: ZERO,
649
- size: 16,
650
- tableId: element.id,
651
- trId: curTr.id,
652
- tdId
653
- }
654
- ]
655
- })
656
- }
657
- curTd.colspan = 1
658
- }
659
- // 设置跨行
660
- if (curTd.rowspan > 1) {
661
- for (let r = 1; r < curTd.rowspan; r++) {
662
- const tr = curTrList[trIndex! + r]
663
- for (let c = 0; c < colspan; c++) {
664
- const tdId = getUUID()
665
- tr.tdList.splice(curTd.colIndex!, 0, {
666
- id: tdId,
667
- rowspan: 1,
668
- colspan: 1,
669
- value: [
670
- {
671
- value: ZERO,
672
- size: 16,
673
- tableId: element.id,
674
- trId: tr.id,
675
- tdId
676
- }
677
- ]
678
- })
679
- }
680
- }
681
- curTd.rowspan = 1
682
- }
683
- // 重新渲染
684
- const curIndex = curTd.value.length - 1
685
- this.range.setRange(curIndex, curIndex)
686
- this.draw.render()
687
- this.tableTool.render()
688
- }
689
-
690
- public splitVerticalTableCell() {
691
- const positionContext = this.position.getPositionContext()
692
- if (!positionContext.isTable) return
693
- // 暂时忽略跨行列选择
694
- const range = this.range.getRange()
695
- if (range.isCrossRowCol) return
696
- const { index, tdIndex, trIndex } = positionContext
697
- const originalElementList = this.draw.getOriginalElementList()
698
- const element = originalElementList[index!]
699
- const curTrList = element.trList!
700
- const curTr = curTrList[trIndex!]!
701
- const curTd = curTr.tdList[tdIndex!]
702
- // 增加列属性
703
- element.colgroup!.splice(tdIndex! + 1, 0, {
704
- width: this.options.table.defaultColMinWidth
705
- })
706
- // 同行增加td,非同行增加跨列数
707
- for (let t = 0; t < curTrList.length; t++) {
708
- const tr = curTrList[t]
709
- let d = 0
710
- while (d < tr.tdList.length) {
711
- const td = tr.tdList[d]
712
- // 非同行:存在交叉时增加跨列数
713
- if (td.rowIndex !== curTd.rowIndex) {
714
- if (
715
- td.colIndex! <= curTd.colIndex! &&
716
- td.colIndex! + td.colspan > curTd.colIndex!
717
- ) {
718
- td.colspan++
719
- }
720
- } else {
721
- // 当前单元格:往右插入td
722
- if (td.id === curTd.id) {
723
- const tdId = getUUID()
724
- curTr.tdList.splice(d + curTd.colspan, 0, {
725
- id: tdId,
726
- rowspan: curTd.rowspan,
727
- colspan: 1,
728
- value: [
729
- {
730
- value: ZERO,
731
- size: 16,
732
- tableId: element.id,
733
- trId: tr.id,
734
- tdId
735
- }
736
- ]
737
- })
738
- d++
739
- }
740
- }
741
- d++
742
- }
743
- }
744
- // 重新渲染
745
- this.draw.render()
746
- this.tableTool.render()
747
- }
748
-
749
- public splitHorizontalTableCell() {
750
- const positionContext = this.position.getPositionContext()
751
- if (!positionContext.isTable) return
752
- // 暂时忽略跨行列选择
753
- const range = this.range.getRange()
754
- if (range.isCrossRowCol) return
755
- const { index, tdIndex, trIndex } = positionContext
756
- const originalElementList = this.draw.getOriginalElementList()
757
- const element = originalElementList[index!]
758
- const curTrList = element.trList!
759
- const curTr = curTrList[trIndex!]!
760
- const curTd = curTr.tdList[tdIndex!]
761
- // 追加的行跳出循环
762
- let appendTrIndex = -1
763
- // 交叉行增加rowspan,当前单元格往下追加一行tr
764
- let t = 0
765
- while (t < curTrList.length) {
766
- if (t === appendTrIndex) {
767
- t++
768
- continue
769
- }
770
- const tr = curTrList[t]
771
- let d = 0
772
- while (d < tr.tdList.length) {
773
- const td = tr.tdList[d]
774
- if (td.id === curTd.id) {
775
- const trId = getUUID()
776
- const tdId = getUUID()
777
- curTrList.splice(t + curTd.rowspan, 0, {
778
- id: trId,
779
- height: this.options.table.defaultTrMinHeight,
780
- tdList: [
781
- {
782
- id: tdId,
783
- rowspan: 1,
784
- colspan: curTd.colspan,
785
- value: [
786
- {
787
- value: ZERO,
788
- size: 16,
789
- tableId: element.id,
790
- trId,
791
- tdId
792
- }
793
- ]
794
- }
795
- ]
796
- })
797
- appendTrIndex = t + curTd.rowspan
798
- } else if (
799
- td.rowIndex! >= curTd.rowIndex! &&
800
- td.rowIndex! < curTd.rowIndex! + curTd.rowspan &&
801
- td.rowIndex! + td.rowspan >= curTd.rowIndex! + curTd.rowspan
802
- ) {
803
- // 1. 循环td上方大于等于当前td上方 && 小于当前td的下方=>存在交叉
804
- // 2. 循环td下方大于或等于当前td下方
805
- td.rowspan++
806
- }
807
- d++
808
- }
809
- t++
810
- }
811
- // 重新渲染
812
- this.draw.render()
813
- this.tableTool.render()
814
- }
815
-
816
- public tableTdVerticalAlign(payload: VerticalAlign) {
817
- const rowCol = this.tableParticle.getRangeRowCol()
818
- if (!rowCol) return
819
- for (let r = 0; r < rowCol.length; r++) {
820
- const row = rowCol[r]
821
- for (let c = 0; c < row.length; c++) {
822
- const td = row[c]
823
- if (
824
- !td ||
825
- td.verticalAlign === payload ||
826
- (!td.verticalAlign && payload === VerticalAlign.TOP)
827
- ) {
828
- continue
829
- }
830
- // 重设垂直对齐方式
831
- td.verticalAlign = payload
832
- }
833
- }
834
- const { endIndex } = this.range.getRange()
835
- this.draw.render({
836
- curIndex: endIndex
837
- })
838
- }
839
-
840
- public tableBorderType(payload: TableBorder) {
841
- const positionContext = this.position.getPositionContext()
842
- if (!positionContext.isTable) return
843
- const { index } = positionContext
844
- const originalElementList = this.draw.getOriginalElementList()
845
- const element = originalElementList[index!]
846
- if (
847
- (!element.borderType && payload === TableBorder.ALL) ||
848
- element.borderType === payload
849
- ) {
850
- return
851
- }
852
- element.borderType = payload
853
- const { endIndex } = this.range.getRange()
854
- this.draw.render({
855
- curIndex: endIndex
856
- })
857
- }
858
-
859
- public tableBorderColor(payload: string) {
860
- const positionContext = this.position.getPositionContext()
861
- if (!positionContext.isTable) return
862
- const { index } = positionContext
863
- const originalElementList = this.draw.getOriginalElementList()
864
- const element = originalElementList[index!]
865
- if (
866
- (!element.borderColor &&
867
- payload === this.options.table.defaultBorderColor) ||
868
- element.borderColor === payload
869
- ) {
870
- return
871
- }
872
- element.borderColor = payload
873
- const { endIndex } = this.range.getRange()
874
- this.draw.render({
875
- curIndex: endIndex,
876
- isCompute: false
877
- })
878
- }
879
-
880
- public tableTdBorderType(payload: TdBorder) {
881
- const rowCol = this.tableParticle.getRangeRowCol()
882
- if (!rowCol) return
883
- const tdList = rowCol.flat()
884
- // 存在则设置边框类型,否则取消设置
885
- const isSetBorderType = tdList.some(
886
- td => !td.borderTypes?.includes(payload)
887
- )
888
- tdList.forEach(td => {
889
- if (!td.borderTypes) {
890
- td.borderTypes = []
891
- }
892
- const borderTypeIndex = td.borderTypes.findIndex(type => type === payload)
893
- if (isSetBorderType) {
894
- if (!~borderTypeIndex) {
895
- td.borderTypes.push(payload)
896
- }
897
- } else {
898
- if (~borderTypeIndex) {
899
- td.borderTypes.splice(borderTypeIndex, 1)
900
- }
901
- }
902
- // 不存在边框设置时删除字段
903
- if (!td.borderTypes.length) {
904
- delete td.borderTypes
905
- }
906
- })
907
- const { endIndex } = this.range.getRange()
908
- this.draw.render({
909
- curIndex: endIndex
910
- })
911
- }
912
-
913
- public tableTdSlashType(payload: TdSlash) {
914
- const rowCol = this.tableParticle.getRangeRowCol()
915
- if (!rowCol) return
916
- const tdList = rowCol.flat()
917
- // 存在则设置单元格斜线类型,否则取消设置
918
- const isSetTdSlashType = tdList.some(
919
- td => !td.slashTypes?.includes(payload)
920
- )
921
- tdList.forEach(td => {
922
- if (!td.slashTypes) {
923
- td.slashTypes = []
924
- }
925
- const slashTypeIndex = td.slashTypes.findIndex(type => type === payload)
926
- if (isSetTdSlashType) {
927
- if (!~slashTypeIndex) {
928
- td.slashTypes.push(payload)
929
- }
930
- } else {
931
- if (~slashTypeIndex) {
932
- td.slashTypes.splice(slashTypeIndex, 1)
933
- }
934
- }
935
- // 不存在斜线设置时删除字段
936
- if (!td.slashTypes.length) {
937
- delete td.slashTypes
938
- }
939
- })
940
- const { endIndex } = this.range.getRange()
941
- this.draw.render({
942
- curIndex: endIndex
943
- })
944
- }
945
-
946
- public tableTdBackgroundColor(payload: string) {
947
- const rowCol = this.tableParticle.getRangeRowCol()
948
- if (!rowCol) return
949
- for (let r = 0; r < rowCol.length; r++) {
950
- const row = rowCol[r]
951
- for (let c = 0; c < row.length; c++) {
952
- const col = row[c]
953
- col.backgroundColor = payload
954
- }
955
- }
956
- const { endIndex } = this.range.getRange()
957
- this.range.setRange(endIndex, endIndex)
958
- this.draw.render({
959
- isCompute: false
960
- })
961
- }
962
-
963
- public tableSelectAll() {
964
- const positionContext = this.position.getPositionContext()
965
- const { index, tableId, isTable } = positionContext
966
- if (!isTable || !tableId) return
967
- const { startIndex, endIndex } = this.range.getRange()
968
- const originalElementList = this.draw.getOriginalElementList()
969
- const trList = originalElementList[index!].trList!
970
- // 最后单元格位置
971
- const endTrIndex = trList.length - 1
972
- const endTdIndex = trList[endTrIndex].tdList.length - 1
973
- this.range.replaceRange({
974
- startIndex,
975
- endIndex,
976
- tableId,
977
- startTdIndex: 0,
978
- endTdIndex,
979
- startTrIndex: 0,
980
- endTrIndex
981
- })
982
- this.draw.render({
983
- isSetCursor: false,
984
- isCompute: false,
985
- isSubmitHistory: false
986
- })
987
- }
988
- }