editor-svg 1.0.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 (472) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintrc +46 -0
  3. package/.prettierrc +8 -0
  4. package/AGENTS.md +186 -0
  5. package/CHANGELOG.md +2543 -0
  6. package/CLAUDE.md +110 -0
  7. package/LICENSE +21 -0
  8. package/README.md +110 -0
  9. package/cypress/e2e/control/checkbox.cy.ts +46 -0
  10. package/cypress/e2e/control/select.cy.ts +56 -0
  11. package/cypress/e2e/control/text.cy.ts +43 -0
  12. package/cypress/e2e/editor.cy.ts +67 -0
  13. package/cypress/e2e/menus/block.cy.ts +38 -0
  14. package/cypress/e2e/menus/checkbox.cy.ts +33 -0
  15. package/cypress/e2e/menus/codeblock.cy.ts +34 -0
  16. package/cypress/e2e/menus/date.cy.ts +28 -0
  17. package/cypress/e2e/menus/format.cy.ts +40 -0
  18. package/cypress/e2e/menus/hyperlink.cy.ts +39 -0
  19. package/cypress/e2e/menus/image.cy.ts +25 -0
  20. package/cypress/e2e/menus/latex.cy.ts +34 -0
  21. package/cypress/e2e/menus/pagebreak.cy.ts +21 -0
  22. package/cypress/e2e/menus/painter.cy.ts +53 -0
  23. package/cypress/e2e/menus/print.cy.ts +25 -0
  24. package/cypress/e2e/menus/row.cy.ts +103 -0
  25. package/cypress/e2e/menus/search.cy.ts +112 -0
  26. package/cypress/e2e/menus/separator.cy.ts +32 -0
  27. package/cypress/e2e/menus/table.cy.ts +25 -0
  28. package/cypress/e2e/menus/text.cy.ts +304 -0
  29. package/cypress/e2e/menus/title.cy.ts +43 -0
  30. package/cypress/e2e/menus/undoRedo.cy.ts +49 -0
  31. package/cypress/e2e/menus/watermark.cy.ts +64 -0
  32. package/cypress/fixtures/example.json +3 -0
  33. package/cypress/fixtures/test.png +0 -0
  34. package/cypress/global.d.ts +13 -0
  35. package/cypress/support/commands.ts +5 -0
  36. package/cypress/support/e2e.ts +1 -0
  37. package/cypress/tsconfig.json +21 -0
  38. package/cypress.config.ts +10 -0
  39. package/docs/.vitepress/config.ts +191 -0
  40. package/docs/.vitepress/theme/components/DeepWikiBadge.vue +21 -0
  41. package/docs/.vitepress/theme/components/ZreadBadge.vue +21 -0
  42. package/docs/.vitepress/theme/index.ts +27 -0
  43. package/docs/en/guide/api-common.md +49 -0
  44. package/docs/en/guide/api-instance.md +34 -0
  45. package/docs/en/guide/command-execute.md +1167 -0
  46. package/docs/en/guide/command-get.md +355 -0
  47. package/docs/en/guide/contextmenu-custom.md +44 -0
  48. package/docs/en/guide/contextmenu-internal.md +61 -0
  49. package/docs/en/guide/eventbus.md +260 -0
  50. package/docs/en/guide/i18n.md +112 -0
  51. package/docs/en/guide/listener.md +126 -0
  52. package/docs/en/guide/option.md +214 -0
  53. package/docs/en/guide/override.md +57 -0
  54. package/docs/en/guide/plugin-custom.md +25 -0
  55. package/docs/en/guide/plugin-internal.md +125 -0
  56. package/docs/en/guide/schema.md +237 -0
  57. package/docs/en/guide/shortcut-custom.md +22 -0
  58. package/docs/en/guide/shortcut-internal.md +189 -0
  59. package/docs/en/guide/start.md +97 -0
  60. package/docs/en/index.md +43 -0
  61. package/docs/guide/api-common.md +49 -0
  62. package/docs/guide/api-instance.md +34 -0
  63. package/docs/guide/command-execute.md +1157 -0
  64. package/docs/guide/command-get.md +353 -0
  65. package/docs/guide/contextmenu-custom.md +44 -0
  66. package/docs/guide/contextmenu-internal.md +61 -0
  67. package/docs/guide/eventbus.md +260 -0
  68. package/docs/guide/i18n.md +111 -0
  69. package/docs/guide/listener.md +126 -0
  70. package/docs/guide/option.md +214 -0
  71. package/docs/guide/override.md +57 -0
  72. package/docs/guide/plugin-custom.md +25 -0
  73. package/docs/guide/plugin-internal.md +125 -0
  74. package/docs/guide/schema.md +237 -0
  75. package/docs/guide/shortcut-custom.md +22 -0
  76. package/docs/guide/shortcut-internal.md +189 -0
  77. package/docs/guide/start.md +97 -0
  78. package/docs/index.md +43 -0
  79. package/docs/public/favicon.png +0 -0
  80. package/favicon.png +0 -0
  81. package/index.html +435 -0
  82. package/package.json +55 -0
  83. package/pnpm-lock.yaml +4113 -0
  84. package/scripts/release.js +41 -0
  85. package/scripts/verifyCommit.js +19 -0
  86. package/src/assets/images/alignment.svg +1 -0
  87. package/src/assets/images/arrow-left.svg +1 -0
  88. package/src/assets/images/arrow-right.svg +1 -0
  89. package/src/assets/images/block.svg +1 -0
  90. package/src/assets/images/bold.svg +1 -0
  91. package/src/assets/images/catalog.svg +1 -0
  92. package/src/assets/images/center.svg +1 -0
  93. package/src/assets/images/checkbox.svg +1 -0
  94. package/src/assets/images/close.svg +1 -0
  95. package/src/assets/images/codeblock.svg +1 -0
  96. package/src/assets/images/color.svg +1 -0
  97. package/src/assets/images/control.svg +1 -0
  98. package/src/assets/images/date.svg +1 -0
  99. package/src/assets/images/exit-fullscreen.svg +1 -0
  100. package/src/assets/images/format.svg +1 -0
  101. package/src/assets/images/highlight.svg +1 -0
  102. package/src/assets/images/hyperlink.svg +1 -0
  103. package/src/assets/images/image.svg +1 -0
  104. package/src/assets/images/italic.svg +1 -0
  105. package/src/assets/images/justify.svg +7 -0
  106. package/src/assets/images/latex.svg +1 -0
  107. package/src/assets/images/left.svg +1 -0
  108. package/src/assets/images/line-dash-dot-dot.svg +1 -0
  109. package/src/assets/images/line-dash-dot.svg +1 -0
  110. package/src/assets/images/line-dash-large-gap.svg +1 -0
  111. package/src/assets/images/line-dash-small-gap.svg +1 -0
  112. package/src/assets/images/line-dot.svg +1 -0
  113. package/src/assets/images/line-double.svg +1 -0
  114. package/src/assets/images/line-single.svg +1 -0
  115. package/src/assets/images/line-wavy.svg +1 -0
  116. package/src/assets/images/list.svg +1 -0
  117. package/src/assets/images/option.svg +1 -0
  118. package/src/assets/images/page-break.svg +1 -0
  119. package/src/assets/images/page-mode.svg +1 -0
  120. package/src/assets/images/page-scale-add.svg +1 -0
  121. package/src/assets/images/page-scale-minus.svg +1 -0
  122. package/src/assets/images/painter.svg +1 -0
  123. package/src/assets/images/paper-direction.svg +1 -0
  124. package/src/assets/images/paper-margin.svg +1 -0
  125. package/src/assets/images/paper-size.svg +1 -0
  126. package/src/assets/images/print.svg +1 -0
  127. package/src/assets/images/radio.svg +4 -0
  128. package/src/assets/images/redo.svg +1 -0
  129. package/src/assets/images/request-fullscreen.svg +1 -0
  130. package/src/assets/images/right.svg +1 -0
  131. package/src/assets/images/row-margin.svg +1 -0
  132. package/src/assets/images/search.svg +1 -0
  133. package/src/assets/images/separator.svg +1 -0
  134. package/src/assets/images/signature-undo.svg +1 -0
  135. package/src/assets/images/signature.svg +1 -0
  136. package/src/assets/images/size-add.svg +1 -0
  137. package/src/assets/images/size-minus.svg +1 -0
  138. package/src/assets/images/strikeout.svg +1 -0
  139. package/src/assets/images/subscript.svg +1 -0
  140. package/src/assets/images/superscript.svg +1 -0
  141. package/src/assets/images/table.svg +1 -0
  142. package/src/assets/images/title.svg +1 -0
  143. package/src/assets/images/trash.svg +1 -0
  144. package/src/assets/images/underline.svg +1 -0
  145. package/src/assets/images/undo.svg +1 -0
  146. package/src/assets/images/watermark.svg +1 -0
  147. package/src/assets/images/word-tool.svg +1 -0
  148. package/src/assets/snapshots/main_v0.2.1.png +0 -0
  149. package/src/assets/snapshots/main_v0.2.2.png +0 -0
  150. package/src/assets/snapshots/main_v0.3.0.png +0 -0
  151. package/src/assets/snapshots/main_v0.3.1.png +0 -0
  152. package/src/assets/snapshots/main_v0.5.0.png +0 -0
  153. package/src/assets/snapshots/main_v0.5.1.png +0 -0
  154. package/src/assets/snapshots/main_v0.6.0.png +0 -0
  155. package/src/assets/snapshots/main_v0.6.1.png +0 -0
  156. package/src/assets/snapshots/main_v0.7.0.png +0 -0
  157. package/src/assets/snapshots/main_v0.7.1.png +0 -0
  158. package/src/assets/snapshots/main_v0.7.2.png +0 -0
  159. package/src/assets/snapshots/main_v0.7.3.png +0 -0
  160. package/src/assets/snapshots/main_v0.7.4.png +0 -0
  161. package/src/assets/snapshots/main_v0.7.6.png +0 -0
  162. package/src/assets/snapshots/main_v0.7.7.png +0 -0
  163. package/src/assets/snapshots/main_v0.8.0.png +0 -0
  164. package/src/assets/snapshots/main_v0.8.5.png +0 -0
  165. package/src/assets/snapshots/main_v0.8.6.png +0 -0
  166. package/src/assets/snapshots/main_v0.8.7.png +0 -0
  167. package/src/assets/snapshots/main_v0.8.8.png +0 -0
  168. package/src/assets/snapshots/main_v0.9.0.png +0 -0
  169. package/src/assets/snapshots/main_v0.9.1.png +0 -0
  170. package/src/assets/snapshots/main_v0.9.2.png +0 -0
  171. package/src/assets/snapshots/main_v0.9.23.png +0 -0
  172. package/src/assets/snapshots/main_v0.9.28.png +0 -0
  173. package/src/assets/snapshots/main_v0.9.29.png +0 -0
  174. package/src/assets/snapshots/main_v0.9.3.png +0 -0
  175. package/src/assets/snapshots/main_v0.9.30.png +0 -0
  176. package/src/assets/snapshots/main_v0.9.32.png +0 -0
  177. package/src/assets/snapshots/main_v0.9.35.png +0 -0
  178. package/src/assets/snapshots/main_v0.9.4.png +0 -0
  179. package/src/assets/snapshots/main_v0.9.5.png +0 -0
  180. package/src/assets/snapshots/main_v0.9.6.png +0 -0
  181. package/src/assets/snapshots/main_v0.9.8.png +0 -0
  182. package/src/components/dialog/Dialog.ts +171 -0
  183. package/src/components/dialog/dialog.css +131 -0
  184. package/src/components/signature/Signature.ts +340 -0
  185. package/src/components/signature/signature.css +132 -0
  186. package/src/editor/assets/css/block/block.css +21 -0
  187. package/src/editor/assets/css/contextmenu/contextmenu.css +196 -0
  188. package/src/editor/assets/css/control/calculator.css +85 -0
  189. package/src/editor/assets/css/control/select.css +44 -0
  190. package/src/editor/assets/css/date/datePicker.css +233 -0
  191. package/src/editor/assets/css/hyperlink/hyperlink.css +26 -0
  192. package/src/editor/assets/css/index.css +78 -0
  193. package/src/editor/assets/css/previewer/previewer.css +122 -0
  194. package/src/editor/assets/css/resizer/resizer.css +74 -0
  195. package/src/editor/assets/css/table/table.css +155 -0
  196. package/src/editor/assets/css/zone/zone.css +61 -0
  197. package/src/editor/assets/images/close.svg +1 -0
  198. package/src/editor/assets/images/delete-col.svg +1 -0
  199. package/src/editor/assets/images/delete-row-col.svg +1 -0
  200. package/src/editor/assets/images/delete-row.svg +1 -0
  201. package/src/editor/assets/images/delete-table.svg +1 -0
  202. package/src/editor/assets/images/image-change.svg +1 -0
  203. package/src/editor/assets/images/image-download.svg +1 -0
  204. package/src/editor/assets/images/image-next.svg +1 -0
  205. package/src/editor/assets/images/image-pre.svg +1 -0
  206. package/src/editor/assets/images/image.svg +1 -0
  207. package/src/editor/assets/images/insert-bottom-row.svg +1 -0
  208. package/src/editor/assets/images/insert-left-col.svg +1 -0
  209. package/src/editor/assets/images/insert-right-col.svg +1 -0
  210. package/src/editor/assets/images/insert-row-col.svg +1 -0
  211. package/src/editor/assets/images/insert-top-row.svg +1 -0
  212. package/src/editor/assets/images/merge-cancel-cell.svg +1 -0
  213. package/src/editor/assets/images/merge-cell.svg +1 -0
  214. package/src/editor/assets/images/original-size.svg +1 -0
  215. package/src/editor/assets/images/print.svg +1 -0
  216. package/src/editor/assets/images/rotate.svg +1 -0
  217. package/src/editor/assets/images/submenu-dropdown.svg +1 -0
  218. package/src/editor/assets/images/table-border-all.svg +1 -0
  219. package/src/editor/assets/images/table-border-dash.svg +1 -0
  220. package/src/editor/assets/images/table-border-empty.svg +1 -0
  221. package/src/editor/assets/images/table-border-external.svg +1 -0
  222. package/src/editor/assets/images/table-border-internal.svg +1 -0
  223. package/src/editor/assets/images/table-border-td-back.svg +1 -0
  224. package/src/editor/assets/images/table-border-td-bottom.svg +1 -0
  225. package/src/editor/assets/images/table-border-td-forward.svg +1 -0
  226. package/src/editor/assets/images/table-border-td-left.svg +1 -0
  227. package/src/editor/assets/images/table-border-td-right.svg +1 -0
  228. package/src/editor/assets/images/table-border-td-top.svg +1 -0
  229. package/src/editor/assets/images/table-border-td.svg +1 -0
  230. package/src/editor/assets/images/vertical-align-bottom.svg +1 -0
  231. package/src/editor/assets/images/vertical-align-middle.svg +1 -0
  232. package/src/editor/assets/images/vertical-align-top.svg +1 -0
  233. package/src/editor/assets/images/vertical-align.svg +1 -0
  234. package/src/editor/assets/images/zoom-in.svg +1 -0
  235. package/src/editor/assets/images/zoom-out.svg +1 -0
  236. package/src/editor/core/actuator/Actuator.ts +21 -0
  237. package/src/editor/core/actuator/handlers/positionContextChange.ts +13 -0
  238. package/src/editor/core/command/Command.ts +312 -0
  239. package/src/editor/core/command/CommandAdapt.ts +2733 -0
  240. package/src/editor/core/contextmenu/ContextMenu.ts +363 -0
  241. package/src/editor/core/contextmenu/menus/controlMenus.ts +25 -0
  242. package/src/editor/core/contextmenu/menus/globalMenus.ts +66 -0
  243. package/src/editor/core/contextmenu/menus/hyperlinkMenus.ts +58 -0
  244. package/src/editor/core/contextmenu/menus/imageMenus.ts +134 -0
  245. package/src/editor/core/contextmenu/menus/tableMenus.ts +331 -0
  246. package/src/editor/core/cursor/Cursor.ts +248 -0
  247. package/src/editor/core/cursor/CursorAgent.ts +75 -0
  248. package/src/editor/core/draw/Draw.ts +2934 -0
  249. package/src/editor/core/draw/control/Control.ts +1767 -0
  250. package/src/editor/core/draw/control/checkbox/CheckboxControl.ts +154 -0
  251. package/src/editor/core/draw/control/date/DateControl.ts +363 -0
  252. package/src/editor/core/draw/control/interactive/ControlSearch.ts +214 -0
  253. package/src/editor/core/draw/control/number/Calculator.ts +183 -0
  254. package/src/editor/core/draw/control/number/NumberControl.ts +183 -0
  255. package/src/editor/core/draw/control/radio/RadioControl.ts +68 -0
  256. package/src/editor/core/draw/control/richtext/Border.ts +52 -0
  257. package/src/editor/core/draw/control/select/SelectControl.ts +567 -0
  258. package/src/editor/core/draw/control/text/TextControl.ts +280 -0
  259. package/src/editor/core/draw/frame/Background.ts +117 -0
  260. package/src/editor/core/draw/frame/Badge.ts +88 -0
  261. package/src/editor/core/draw/frame/Footer.ts +155 -0
  262. package/src/editor/core/draw/frame/Header.ts +158 -0
  263. package/src/editor/core/draw/frame/LineNumber.ts +43 -0
  264. package/src/editor/core/draw/frame/Margin.ts +53 -0
  265. package/src/editor/core/draw/frame/PageBorder.ts +47 -0
  266. package/src/editor/core/draw/frame/PageNumber.ts +88 -0
  267. package/src/editor/core/draw/frame/Placeholder.ts +114 -0
  268. package/src/editor/core/draw/frame/Watermark.ts +188 -0
  269. package/src/editor/core/draw/graffiti/Graffiti.ts +125 -0
  270. package/src/editor/core/draw/interactive/Area.ts +312 -0
  271. package/src/editor/core/draw/interactive/Group.ts +198 -0
  272. package/src/editor/core/draw/interactive/Search.ts +527 -0
  273. package/src/editor/core/draw/particle/CheckboxParticle.ts +111 -0
  274. package/src/editor/core/draw/particle/HyperlinkParticle.ts +86 -0
  275. package/src/editor/core/draw/particle/ImageParticle.ts +280 -0
  276. package/src/editor/core/draw/particle/LabelParticle.ts +79 -0
  277. package/src/editor/core/draw/particle/LineBreakParticle.ts +55 -0
  278. package/src/editor/core/draw/particle/ListParticle.ts +255 -0
  279. package/src/editor/core/draw/particle/PageBreakParticle.ts +54 -0
  280. package/src/editor/core/draw/particle/RadioParticle.ts +99 -0
  281. package/src/editor/core/draw/particle/SeparatorParticle.ts +37 -0
  282. package/src/editor/core/draw/particle/SubscriptParticle.ts +23 -0
  283. package/src/editor/core/draw/particle/SuperscriptParticle.ts +23 -0
  284. package/src/editor/core/draw/particle/TextParticle.ts +174 -0
  285. package/src/editor/core/draw/particle/WhiteSpaceParticle.ts +32 -0
  286. package/src/editor/core/draw/particle/block/BlockParticle.ts +76 -0
  287. package/src/editor/core/draw/particle/block/modules/BaseBlock.ts +280 -0
  288. package/src/editor/core/draw/particle/block/modules/IFrameBlock.ts +47 -0
  289. package/src/editor/core/draw/particle/block/modules/VideoBlock.ts +61 -0
  290. package/src/editor/core/draw/particle/date/DateParticle.ts +111 -0
  291. package/src/editor/core/draw/particle/date/DatePicker.ts +577 -0
  292. package/src/editor/core/draw/particle/latex/LaTexParticle.ts +43 -0
  293. package/src/editor/core/draw/particle/latex/utils/LaTexUtils.ts +1196 -0
  294. package/src/editor/core/draw/particle/latex/utils/hershey.ts +1632 -0
  295. package/src/editor/core/draw/particle/latex/utils/symbols.ts +318 -0
  296. package/src/editor/core/draw/particle/previewer/Previewer.ts +582 -0
  297. package/src/editor/core/draw/particle/table/TableOperate.ts +988 -0
  298. package/src/editor/core/draw/particle/table/TableParticle.ts +558 -0
  299. package/src/editor/core/draw/particle/table/TableTool.ts +551 -0
  300. package/src/editor/core/draw/richtext/AbstractRichText.ts +59 -0
  301. package/src/editor/core/draw/richtext/Highlight.ts +24 -0
  302. package/src/editor/core/draw/richtext/Strikeout.ts +28 -0
  303. package/src/editor/core/draw/richtext/Underline.ts +106 -0
  304. package/src/editor/core/event/CanvasEvent.ts +215 -0
  305. package/src/editor/core/event/GlobalEvent.ts +173 -0
  306. package/src/editor/core/event/eventbus/EventBus.ts +50 -0
  307. package/src/editor/core/event/handlers/click.ts +234 -0
  308. package/src/editor/core/event/handlers/composition.ts +45 -0
  309. package/src/editor/core/event/handlers/copy.ts +72 -0
  310. package/src/editor/core/event/handlers/cut.ts +47 -0
  311. package/src/editor/core/event/handlers/drag.ts +66 -0
  312. package/src/editor/core/event/handlers/drop.ts +28 -0
  313. package/src/editor/core/event/handlers/input.ts +129 -0
  314. package/src/editor/core/event/handlers/keydown/backspace.ts +161 -0
  315. package/src/editor/core/event/handlers/keydown/delete.ts +119 -0
  316. package/src/editor/core/event/handlers/keydown/end.ts +69 -0
  317. package/src/editor/core/event/handlers/keydown/enter.ts +126 -0
  318. package/src/editor/core/event/handlers/keydown/home.ts +69 -0
  319. package/src/editor/core/event/handlers/keydown/index.ts +85 -0
  320. package/src/editor/core/event/handlers/keydown/left.ts +162 -0
  321. package/src/editor/core/event/handlers/keydown/right.ts +178 -0
  322. package/src/editor/core/event/handlers/keydown/tab.ts +41 -0
  323. package/src/editor/core/event/handlers/keydown/updown.ts +342 -0
  324. package/src/editor/core/event/handlers/mousedown.ts +262 -0
  325. package/src/editor/core/event/handlers/mouseleave.ts +14 -0
  326. package/src/editor/core/event/handlers/mousemove.ts +133 -0
  327. package/src/editor/core/event/handlers/mouseup.ts +341 -0
  328. package/src/editor/core/event/handlers/paste.ts +231 -0
  329. package/src/editor/core/history/HistoryManager.ts +61 -0
  330. package/src/editor/core/i18n/I18n.ts +51 -0
  331. package/src/editor/core/i18n/lang/en.json +92 -0
  332. package/src/editor/core/i18n/lang/zh-CN.json +92 -0
  333. package/src/editor/core/listener/Listener.ts +41 -0
  334. package/src/editor/core/observer/ImageObserver.ts +19 -0
  335. package/src/editor/core/observer/MouseObserver.ts +56 -0
  336. package/src/editor/core/observer/ScrollObserver.ts +88 -0
  337. package/src/editor/core/observer/SelectionObserver.ts +143 -0
  338. package/src/editor/core/override/Override.ts +14 -0
  339. package/src/editor/core/plugin/Plugin.ts +17 -0
  340. package/src/editor/core/position/Position.ts +870 -0
  341. package/src/editor/core/range/RangeManager.ts +723 -0
  342. package/src/editor/core/register/Register.ts +28 -0
  343. package/src/editor/core/shortcut/Shortcut.ts +80 -0
  344. package/src/editor/core/shortcut/keys/listKeys.ts +22 -0
  345. package/src/editor/core/shortcut/keys/richtextKeys.ts +102 -0
  346. package/src/editor/core/shortcut/keys/titleKeys.ts +62 -0
  347. package/src/editor/core/worker/WorkerManager.ts +96 -0
  348. package/src/editor/core/worker/works/catalog.ts +189 -0
  349. package/src/editor/core/worker/works/group.ts +34 -0
  350. package/src/editor/core/worker/works/value.ts +32 -0
  351. package/src/editor/core/worker/works/wordCount.ts +132 -0
  352. package/src/editor/core/zone/Zone.ts +183 -0
  353. package/src/editor/core/zone/ZoneTip.ts +108 -0
  354. package/src/editor/dataset/constant/Background.ts +10 -0
  355. package/src/editor/dataset/constant/Badge.ts +6 -0
  356. package/src/editor/dataset/constant/Checkbox.ts +12 -0
  357. package/src/editor/dataset/constant/Common.ts +44 -0
  358. package/src/editor/dataset/constant/ContextMenu.ts +61 -0
  359. package/src/editor/dataset/constant/Control.ts +14 -0
  360. package/src/editor/dataset/constant/Cursor.ts +11 -0
  361. package/src/editor/dataset/constant/Editor.ts +19 -0
  362. package/src/editor/dataset/constant/Element.ts +173 -0
  363. package/src/editor/dataset/constant/Footer.ts +10 -0
  364. package/src/editor/dataset/constant/Graffiti.ts +6 -0
  365. package/src/editor/dataset/constant/Group.ts +10 -0
  366. package/src/editor/dataset/constant/Header.ts +10 -0
  367. package/src/editor/dataset/constant/ImgCaption.ts +8 -0
  368. package/src/editor/dataset/constant/Label.ts +8 -0
  369. package/src/editor/dataset/constant/LineBreak.ts +7 -0
  370. package/src/editor/dataset/constant/LineNumber.ts +11 -0
  371. package/src/editor/dataset/constant/List.ts +26 -0
  372. package/src/editor/dataset/constant/PageBorder.ts +8 -0
  373. package/src/editor/dataset/constant/PageBreak.ts +7 -0
  374. package/src/editor/dataset/constant/PageNumber.ts +22 -0
  375. package/src/editor/dataset/constant/Placeholder.ts +9 -0
  376. package/src/editor/dataset/constant/Radio.ts +12 -0
  377. package/src/editor/dataset/constant/Regular.ts +23 -0
  378. package/src/editor/dataset/constant/Separator.ts +6 -0
  379. package/src/editor/dataset/constant/Shortcut.ts +3 -0
  380. package/src/editor/dataset/constant/Table.ts +9 -0
  381. package/src/editor/dataset/constant/Title.ts +38 -0
  382. package/src/editor/dataset/constant/Watermark.ts +17 -0
  383. package/src/editor/dataset/constant/WhiteSpace.ts +7 -0
  384. package/src/editor/dataset/constant/Zone.ts +5 -0
  385. package/src/editor/dataset/enum/Area.ts +5 -0
  386. package/src/editor/dataset/enum/Background.ts +11 -0
  387. package/src/editor/dataset/enum/Block.ts +4 -0
  388. package/src/editor/dataset/enum/Common.ts +30 -0
  389. package/src/editor/dataset/enum/Control.ts +39 -0
  390. package/src/editor/dataset/enum/Editor.ts +51 -0
  391. package/src/editor/dataset/enum/Element.ts +21 -0
  392. package/src/editor/dataset/enum/ElementStyle.ts +12 -0
  393. package/src/editor/dataset/enum/Event.ts +5 -0
  394. package/src/editor/dataset/enum/KeyMap.ts +85 -0
  395. package/src/editor/dataset/enum/LineNumber.ts +4 -0
  396. package/src/editor/dataset/enum/List.ts +23 -0
  397. package/src/editor/dataset/enum/Observer.ts +6 -0
  398. package/src/editor/dataset/enum/Row.ts +7 -0
  399. package/src/editor/dataset/enum/Text.ts +13 -0
  400. package/src/editor/dataset/enum/Title.ts +8 -0
  401. package/src/editor/dataset/enum/VerticalAlign.ts +5 -0
  402. package/src/editor/dataset/enum/Watermark.ts +4 -0
  403. package/src/editor/dataset/enum/table/Table.ts +19 -0
  404. package/src/editor/dataset/enum/table/TableTool.ts +4 -0
  405. package/src/editor/index.ts +241 -0
  406. package/src/editor/interface/Area.ts +68 -0
  407. package/src/editor/interface/Background.ts +9 -0
  408. package/src/editor/interface/Badge.ts +17 -0
  409. package/src/editor/interface/Block.ts +18 -0
  410. package/src/editor/interface/Catalog.ts +11 -0
  411. package/src/editor/interface/Checkbox.ts +17 -0
  412. package/src/editor/interface/Command.ts +3 -0
  413. package/src/editor/interface/Common.ts +43 -0
  414. package/src/editor/interface/Control.ts +250 -0
  415. package/src/editor/interface/Cursor.ts +7 -0
  416. package/src/editor/interface/Draw.ts +86 -0
  417. package/src/editor/interface/Editor.ts +172 -0
  418. package/src/editor/interface/Element.ts +273 -0
  419. package/src/editor/interface/Event.ts +27 -0
  420. package/src/editor/interface/EventBus.ts +46 -0
  421. package/src/editor/interface/Footer.ts +9 -0
  422. package/src/editor/interface/Graffiti.ts +15 -0
  423. package/src/editor/interface/Group.ts +8 -0
  424. package/src/editor/interface/Header.ts +9 -0
  425. package/src/editor/interface/Label.ts +8 -0
  426. package/src/editor/interface/LineBreak.ts +5 -0
  427. package/src/editor/interface/LineNumber.ts +10 -0
  428. package/src/editor/interface/Listener.ts +88 -0
  429. package/src/editor/interface/Margin.ts +1 -0
  430. package/src/editor/interface/PageBorder.ts +8 -0
  431. package/src/editor/interface/PageBreak.ts +5 -0
  432. package/src/editor/interface/PageNumber.ts +16 -0
  433. package/src/editor/interface/Placeholder.ts +7 -0
  434. package/src/editor/interface/Plugin.ts +8 -0
  435. package/src/editor/interface/Position.ts +113 -0
  436. package/src/editor/interface/Previewer.ts +15 -0
  437. package/src/editor/interface/Radio.ts +17 -0
  438. package/src/editor/interface/Range.ts +61 -0
  439. package/src/editor/interface/Row.ts +25 -0
  440. package/src/editor/interface/Search.ts +36 -0
  441. package/src/editor/interface/Separator.ts +4 -0
  442. package/src/editor/interface/Text.ts +15 -0
  443. package/src/editor/interface/Title.ts +32 -0
  444. package/src/editor/interface/Watermark.ts +16 -0
  445. package/src/editor/interface/WhiteSpace.ts +5 -0
  446. package/src/editor/interface/Zone.ts +3 -0
  447. package/src/editor/interface/contextmenu/ContextMenu.ts +76 -0
  448. package/src/editor/interface/i18n/I18n.ts +7 -0
  449. package/src/editor/interface/shortcut/Shortcut.ts +14 -0
  450. package/src/editor/interface/table/Colgroup.ts +4 -0
  451. package/src/editor/interface/table/Table.ts +9 -0
  452. package/src/editor/interface/table/Td.ts +36 -0
  453. package/src/editor/interface/table/Tr.ts +11 -0
  454. package/src/editor/types/index.d.ts +5 -0
  455. package/src/editor/utils/clipboard.ts +94 -0
  456. package/src/editor/utils/element.ts +1877 -0
  457. package/src/editor/utils/hotkey.ts +5 -0
  458. package/src/editor/utils/index.ts +445 -0
  459. package/src/editor/utils/option.ts +253 -0
  460. package/src/editor/utils/paragraph.ts +28 -0
  461. package/src/editor/utils/print.ts +99 -0
  462. package/src/editor/utils/ua.ts +13 -0
  463. package/src/main.ts +2053 -0
  464. package/src/mock.ts +611 -0
  465. package/src/plugins/copy/index.ts +30 -0
  466. package/src/plugins/markdown/index.ts +118 -0
  467. package/src/style.css +1079 -0
  468. package/src/utils/index.ts +45 -0
  469. package/src/utils/prism.ts +89 -0
  470. package/src/vite-env.d.ts +1 -0
  471. package/tsconfig.json +25 -0
  472. package/vite.config.ts +46 -0
@@ -0,0 +1,273 @@
1
+ import { ImageDisplay } from '../dataset/enum/Common'
2
+ import { ControlComponent } from '../dataset/enum/Control'
3
+ import { ElementType } from '../dataset/enum/Element'
4
+ import { ListStyle, ListType } from '../dataset/enum/List'
5
+ import { RowFlex } from '../dataset/enum/Row'
6
+ import { TitleLevel } from '../dataset/enum/Title'
7
+ import { TableBorder } from '../dataset/enum/table/Table'
8
+ import { IArea } from './Area'
9
+ import { IBlock } from './Block'
10
+ import { ICheckbox } from './Checkbox'
11
+ import { IPadding } from './Common'
12
+ import { IControl } from './Control'
13
+ import { IRadio } from './Radio'
14
+ import { ITextDecoration } from './Text'
15
+ import { ITitle } from './Title'
16
+ import { IColgroup } from './table/Colgroup'
17
+ import { ITr } from './table/Tr'
18
+
19
+ export interface IElementBasic {
20
+ id?: string
21
+ type?: ElementType
22
+ value: string
23
+ extension?: unknown
24
+ externalId?: string
25
+ }
26
+
27
+ export interface IElementStyle {
28
+ font?: string
29
+ size?: number
30
+ width?: number
31
+ height?: number
32
+ bold?: boolean
33
+ color?: string
34
+ highlight?: string
35
+ italic?: boolean
36
+ underline?: boolean
37
+ strikeout?: boolean
38
+ rowFlex?: RowFlex
39
+ rowMargin?: number
40
+ letterSpacing?: number
41
+ textDecoration?: ITextDecoration
42
+ }
43
+
44
+ export interface IElementRule {
45
+ hide?: boolean
46
+ }
47
+
48
+ export interface IElementGroup {
49
+ groupIds?: string[]
50
+ }
51
+
52
+ export interface ITitleElement {
53
+ valueList?: IElement[]
54
+ level?: TitleLevel
55
+ titleId?: string
56
+ title?: ITitle
57
+ }
58
+
59
+ export interface IListElement {
60
+ valueList?: IElement[]
61
+ listType?: ListType
62
+ listStyle?: ListStyle
63
+ listId?: string
64
+ listWrap?: boolean
65
+ }
66
+
67
+ export interface ITableAttr {
68
+ colgroup?: IColgroup[]
69
+ trList?: ITr[]
70
+ borderType?: TableBorder
71
+ borderColor?: string
72
+ borderWidth?: number
73
+ borderExternalWidth?: number
74
+ translateX?: number
75
+ }
76
+
77
+ export interface ITableRule {
78
+ tableToolDisabled?: boolean
79
+ }
80
+
81
+ export interface ITableElement {
82
+ tdId?: string
83
+ trId?: string
84
+ tableId?: string
85
+ conceptId?: string
86
+ pagingId?: string // 用于区分拆分的表格同属一个源表格
87
+ pagingIndex?: number // 拆分的表格索引
88
+ }
89
+
90
+ export type ITable = ITableAttr & ITableRule & ITableElement
91
+
92
+ export interface IHyperlinkElement {
93
+ valueList?: IElement[]
94
+ url?: string
95
+ hyperlinkId?: string
96
+ }
97
+
98
+ export interface ISuperscriptSubscript {
99
+ actualSize?: number
100
+ }
101
+
102
+ export interface ISeparator {
103
+ dashArray?: number[]
104
+ lineWidth?: number
105
+ }
106
+
107
+ export interface IControlElement {
108
+ control?: IControl
109
+ controlId?: string
110
+ controlComponent?: ControlComponent
111
+ }
112
+
113
+ export interface ICheckboxElement {
114
+ checkbox?: ICheckbox
115
+ }
116
+
117
+ export interface IRadioElement {
118
+ radio?: IRadio
119
+ }
120
+
121
+ export interface ILaTexElement {
122
+ laTexSVG?: string
123
+ }
124
+
125
+ export interface IDateElement {
126
+ dateFormat?: string
127
+ dateId?: string
128
+ }
129
+
130
+ export interface IImageRule {
131
+ imgToolDisabled?: boolean
132
+ imgPreviewDisabled?: boolean
133
+ }
134
+
135
+ export interface IImageCrop {
136
+ x: number
137
+ y: number
138
+ width: number
139
+ height: number
140
+ }
141
+
142
+ export interface IImageCaption {
143
+ value: string
144
+ color?: string
145
+ font?: string
146
+ size?: number
147
+ top?: number
148
+ }
149
+
150
+ export interface IImgCaptionOption {
151
+ color?: string
152
+ font?: string
153
+ size?: number
154
+ top?: number
155
+ }
156
+
157
+ export interface IListOption {
158
+ inheritStyle?: boolean // 是否让列表序号继承文字样式
159
+ }
160
+
161
+ export interface IImageBasic {
162
+ imgDisplay?: ImageDisplay
163
+ imgFloatPosition?: {
164
+ x: number
165
+ y: number
166
+ pageNo?: number
167
+ }
168
+ imgCrop?: IImageCrop
169
+ imgCaption?: IImageCaption
170
+ }
171
+
172
+ export type IImageElement = IImageBasic & IImageRule
173
+
174
+ export interface IBlockElement {
175
+ block?: IBlock
176
+ }
177
+
178
+ export interface IAreaElement {
179
+ valueList?: IElement[]
180
+ areaId?: string
181
+ areaIndex?: number
182
+ area?: IArea
183
+ }
184
+
185
+ export interface ILabelElement {
186
+ labelId?: string
187
+ label?: {
188
+ color?: string
189
+ backgroundColor?: string
190
+ borderRadius?: number
191
+ padding?: IPadding
192
+ }
193
+ }
194
+
195
+ export type IElement = IElementBasic &
196
+ IElementStyle &
197
+ IElementRule &
198
+ IElementGroup &
199
+ ITable &
200
+ IHyperlinkElement &
201
+ ISuperscriptSubscript &
202
+ ISeparator &
203
+ IControlElement &
204
+ ICheckboxElement &
205
+ IRadioElement &
206
+ ILaTexElement &
207
+ IDateElement &
208
+ IImageElement &
209
+ IBlockElement &
210
+ ITitleElement &
211
+ IListElement &
212
+ IAreaElement &
213
+ ILabelElement
214
+
215
+ export interface IElementMetrics {
216
+ width: number
217
+ height: number
218
+ boundingBoxAscent: number
219
+ boundingBoxDescent: number
220
+ }
221
+
222
+ export interface IElementPosition {
223
+ pageNo: number
224
+ index: number
225
+ value: string
226
+ rowIndex: number
227
+ rowNo: number
228
+ ascent: number
229
+ lineHeight: number
230
+ left: number
231
+ metrics: IElementMetrics
232
+ isFirstLetter: boolean
233
+ isLastLetter: boolean
234
+ coordinate: {
235
+ leftTop: number[]
236
+ leftBottom: number[]
237
+ rightTop: number[]
238
+ rightBottom: number[]
239
+ }
240
+ }
241
+
242
+ export interface IElementFillRect {
243
+ x: number
244
+ y: number
245
+ width: number
246
+ height: number
247
+ }
248
+
249
+ export interface IUpdateElementByIdOption {
250
+ id?: string
251
+ conceptId?: string
252
+ properties: Omit<Partial<IElement>, 'id'>
253
+ }
254
+
255
+ export interface IDeleteElementByIdOption {
256
+ id?: string
257
+ conceptId?: string
258
+ }
259
+
260
+ export interface IGetElementByIdOption {
261
+ id?: string
262
+ conceptId?: string
263
+ }
264
+
265
+ export interface IInsertElementListOption {
266
+ isReplace?: boolean
267
+ isSubmitHistory?: boolean
268
+ ignoreContextKeys?: Array<keyof IElement>
269
+ }
270
+
271
+ export interface ISpliceElementListOption {
272
+ isIgnoreDeletedRule?: boolean
273
+ }
@@ -0,0 +1,27 @@
1
+ import { IElement } from './Element'
2
+ import { RangeRect } from './Range'
3
+
4
+ export interface IPasteOption {
5
+ isPlainText: boolean
6
+ }
7
+
8
+ export interface ITableInfoByEvent {
9
+ element: IElement
10
+ trIndex: number
11
+ tdIndex: number
12
+ }
13
+
14
+ export interface IPositionContextByEventResult {
15
+ pageNo: number
16
+ element: IElement | null
17
+ rangeRect: RangeRect | null
18
+ tableInfo: ITableInfoByEvent | null
19
+ }
20
+
21
+ export interface IPositionContextByEventOption {
22
+ isMustDirectHit?: boolean
23
+ }
24
+
25
+ export interface ICopyOption {
26
+ isPlainText: boolean
27
+ }
@@ -0,0 +1,46 @@
1
+ import {
2
+ IContentChange,
3
+ IControlChange,
4
+ IControlContentChange,
5
+ IImageDblclick,
6
+ IImageMousedown,
7
+ IImageSizeChange,
8
+ IInputEventChange,
9
+ IIntersectionPageNoChange,
10
+ ILabelMousedown,
11
+ IMouseEventChange,
12
+ IPageModeChange,
13
+ IPageScaleChange,
14
+ IPageSizeChange,
15
+ IPositionContextChange,
16
+ IRangeStyleChange,
17
+ ISaved,
18
+ IVisiblePageNoListChange,
19
+ IZoneChange
20
+ } from './Listener'
21
+
22
+ export interface EventBusMap {
23
+ rangeStyleChange: IRangeStyleChange
24
+ visiblePageNoListChange: IVisiblePageNoListChange
25
+ intersectionPageNoChange: IIntersectionPageNoChange
26
+ pageSizeChange: IPageSizeChange
27
+ pageScaleChange: IPageScaleChange
28
+ saved: ISaved
29
+ contentChange: IContentChange
30
+ controlChange: IControlChange
31
+ controlContentChange: IControlContentChange
32
+ pageModeChange: IPageModeChange
33
+ zoneChange: IZoneChange
34
+ mousemove: IMouseEventChange
35
+ mouseleave: IMouseEventChange
36
+ mouseenter: IMouseEventChange
37
+ mousedown: IMouseEventChange
38
+ mouseup: IMouseEventChange
39
+ click: IMouseEventChange
40
+ input: IInputEventChange
41
+ positionContextChange: IPositionContextChange
42
+ imageSizeChange: IImageSizeChange
43
+ imageMousedown: IImageMousedown
44
+ imageDblclick: IImageDblclick
45
+ labelMousedown: ILabelMousedown
46
+ }
@@ -0,0 +1,9 @@
1
+ import { MaxHeightRatio } from '../dataset/enum/Common'
2
+
3
+ export interface IFooter {
4
+ bottom?: number
5
+ inactiveAlpha?: number
6
+ maxHeightRadio?: MaxHeightRatio
7
+ disabled?: boolean
8
+ editable?: boolean
9
+ }
@@ -0,0 +1,15 @@
1
+ export interface IGraffitiStroke {
2
+ lineWidth?: number
3
+ lineColor?: string
4
+ points: number[]
5
+ }
6
+
7
+ export interface IGraffitiData {
8
+ pageNo: number
9
+ strokes: IGraffitiStroke[]
10
+ }
11
+
12
+ export interface IGraffitiOption {
13
+ defaultLineWidth?: number
14
+ defaultLineColor?: string
15
+ }
@@ -0,0 +1,8 @@
1
+ export interface IGroup {
2
+ opacity?: number
3
+ backgroundColor?: string
4
+ activeOpacity?: number
5
+ activeBackgroundColor?: string
6
+ disabled?: boolean
7
+ deletable?: boolean
8
+ }
@@ -0,0 +1,9 @@
1
+ import { MaxHeightRatio } from '../dataset/enum/Common'
2
+
3
+ export interface IHeader {
4
+ top?: number
5
+ inactiveAlpha?: number
6
+ maxHeightRadio?: MaxHeightRatio
7
+ disabled?: boolean
8
+ editable?: boolean
9
+ }
@@ -0,0 +1,8 @@
1
+ import { IPadding } from './Common'
2
+
3
+ export interface ILabelOption {
4
+ defaultColor?: string
5
+ defaultBackgroundColor?: string
6
+ defaultBorderRadius?: number
7
+ defaultPadding?: IPadding
8
+ }
@@ -0,0 +1,5 @@
1
+ export interface ILineBreakOption {
2
+ disabled?: boolean
3
+ color?: string
4
+ lineWidth?: number
5
+ }
@@ -0,0 +1,10 @@
1
+ import { LineNumberType } from '../dataset/enum/LineNumber'
2
+
3
+ export interface ILineNumberOption {
4
+ size?: number
5
+ font?: string
6
+ color?: string
7
+ disabled?: boolean
8
+ right?: number
9
+ type?: LineNumberType
10
+ }
@@ -0,0 +1,88 @@
1
+ import { EditorZone, PageMode } from '../dataset/enum/Editor'
2
+ import { ElementType } from '../dataset/enum/Element'
3
+ import { ListStyle, ListType } from '../dataset/enum/List'
4
+ import { RowFlex } from '../dataset/enum/Row'
5
+ import { TitleLevel } from '../dataset/enum/Title'
6
+ import { IControlChangeResult, IControlContentChangeResult } from './Control'
7
+ import { IEditorResult } from './Editor'
8
+ import { IElement } from './Element'
9
+ import { IPositionContext } from './Position'
10
+ import { ITextDecoration } from './Text'
11
+
12
+ export interface IRangeStyle {
13
+ type: ElementType | null
14
+ undo: boolean
15
+ redo: boolean
16
+ painter: boolean
17
+ font: string
18
+ size: number
19
+ bold: boolean
20
+ italic: boolean
21
+ underline: boolean
22
+ strikeout: boolean
23
+ color: string | null
24
+ highlight: string | null
25
+ rowFlex: RowFlex | null
26
+ rowMargin: number
27
+ dashArray: number[]
28
+ level: TitleLevel | null
29
+ listType: ListType | null
30
+ listStyle: ListStyle | null
31
+ groupIds: string[] | null
32
+ textDecoration: ITextDecoration | null
33
+ extension?: unknown | null
34
+ }
35
+
36
+ export type IRangeStyleChange = (payload: IRangeStyle) => void
37
+
38
+ export type IVisiblePageNoListChange = (payload: number[]) => void
39
+
40
+ export type IIntersectionPageNoChange = (payload: number) => void
41
+
42
+ export type IPageSizeChange = (payload: number) => void
43
+
44
+ export type IPageScaleChange = (payload: number) => void
45
+
46
+ export type ISaved = (payload: IEditorResult) => void
47
+
48
+ export type IContentChange = () => void
49
+
50
+ export type IControlChange = (payload: IControlChangeResult) => void
51
+
52
+ export type IControlContentChange = (
53
+ payload: IControlContentChangeResult
54
+ ) => void
55
+
56
+ export type IPageModeChange = (payload: PageMode) => void
57
+
58
+ export type IZoneChange = (payload: EditorZone) => void
59
+
60
+ export type IMouseEventChange = (evt: MouseEvent) => void
61
+
62
+ export type IInputEventChange = (evt: Event) => void
63
+
64
+ export interface IPositionContextChangePayload {
65
+ value: IPositionContext
66
+ oldValue: IPositionContext
67
+ }
68
+
69
+ export type IPositionContextChange = (
70
+ payload: IPositionContextChangePayload
71
+ ) => void
72
+
73
+ export type IImageSizeChange = (payload: { element: IElement }) => void
74
+
75
+ export type IImageMousedown = (payload: {
76
+ evt: MouseEvent
77
+ element: IElement
78
+ }) => void
79
+
80
+ export type IImageDblclick = (payload: {
81
+ evt: MouseEvent
82
+ element: IElement
83
+ }) => void
84
+
85
+ export type ILabelMousedown = (payload: {
86
+ evt: MouseEvent
87
+ element: IElement
88
+ }) => void
@@ -0,0 +1 @@
1
+ export type IMargin = [top: number, right: number, bottom: number, left: number]
@@ -0,0 +1,8 @@
1
+ import { IPadding } from './Common'
2
+
3
+ export interface IPageBorderOption {
4
+ color?: string
5
+ lineWidth?: number
6
+ padding?: IPadding
7
+ disabled?: boolean
8
+ }
@@ -0,0 +1,5 @@
1
+ export interface IPageBreak {
2
+ font?: string
3
+ fontSize?: number
4
+ lineDash?: number[]
5
+ }
@@ -0,0 +1,16 @@
1
+ import { NumberType } from '../dataset/enum/Common'
2
+ import { RowFlex } from '../dataset/enum/Row'
3
+
4
+ export interface IPageNumber {
5
+ bottom?: number
6
+ size?: number
7
+ font?: string
8
+ color?: string
9
+ rowFlex?: RowFlex
10
+ format?: string
11
+ numberType?: NumberType
12
+ disabled?: boolean
13
+ startPageNo?: number
14
+ fromPageNo?: number
15
+ maxPageNo?: number | null
16
+ }
@@ -0,0 +1,7 @@
1
+ export interface IPlaceholder {
2
+ data: string
3
+ color?: string
4
+ opacity?: number
5
+ size?: number
6
+ font?: string
7
+ }
@@ -0,0 +1,8 @@
1
+ import Editor from '..'
2
+
3
+ export type PluginFunction<Options> = (editor: Editor, options?: Options) => void
4
+
5
+ export type UsePlugin = <Options>(
6
+ pluginFunction: PluginFunction<Options>,
7
+ options?: Options
8
+ ) => void
@@ -0,0 +1,113 @@
1
+ import { ImageDisplay } from '../dataset/enum/Common'
2
+ import { EditorZone } from '../dataset/enum/Editor'
3
+ import { IElement, IElementFillRect, IElementPosition } from './Element'
4
+ import { IRange } from './Range'
5
+ import { IRow, IRowElement } from './Row'
6
+ import { ITd } from './table/Td'
7
+
8
+ export interface ICurrentPosition {
9
+ index: number
10
+ x?: number
11
+ y?: number
12
+ isCheckbox?: boolean
13
+ isRadio?: boolean
14
+ isControl?: boolean
15
+ isImage?: boolean
16
+ isLabel?: boolean
17
+ isTable?: boolean
18
+ isDirectHit?: boolean
19
+ trIndex?: number
20
+ tdIndex?: number
21
+ tdValueIndex?: number
22
+ tdId?: string
23
+ trId?: string
24
+ tableId?: string
25
+ zone?: EditorZone
26
+ hitLineStartIndex?: number
27
+ }
28
+
29
+ export interface IGetPositionByXYPayload {
30
+ x: number
31
+ y: number
32
+ pageNo?: number
33
+ isTable?: boolean
34
+ td?: ITd
35
+ tablePosition?: IElementPosition
36
+ elementList?: IElement[]
37
+ positionList?: IElementPosition[]
38
+ }
39
+
40
+ export type IGetFloatPositionByXYPayload = IGetPositionByXYPayload & {
41
+ imgDisplays: ImageDisplay[]
42
+ }
43
+
44
+ export interface IPositionContext {
45
+ isTable: boolean
46
+ isCheckbox?: boolean
47
+ isRadio?: boolean
48
+ isControl?: boolean
49
+ isImage?: boolean
50
+ isLabel?: boolean
51
+ isDirectHit?: boolean
52
+ index?: number
53
+ trIndex?: number
54
+ tdIndex?: number
55
+ tdId?: string
56
+ trId?: string
57
+ tableId?: string
58
+ }
59
+
60
+ export interface IComputeRowPositionPayload {
61
+ row: IRow
62
+ innerWidth: number
63
+ }
64
+
65
+ export interface IComputePageRowPositionPayload {
66
+ positionList: IElementPosition[]
67
+ rowList: IRow[]
68
+ pageNo: number
69
+ startRowIndex: number
70
+ startIndex: number
71
+ startX: number
72
+ startY: number
73
+ innerWidth: number
74
+ isTable?: boolean
75
+ index?: number
76
+ tdIndex?: number
77
+ trIndex?: number
78
+ tdValueIndex?: number
79
+ zone?: EditorZone
80
+ }
81
+
82
+ export interface IComputePageRowPositionResult {
83
+ x: number
84
+ y: number
85
+ index: number
86
+ }
87
+
88
+ export interface IFloatPosition {
89
+ pageNo: number
90
+ element: IElement
91
+ position: IElementPosition
92
+ isTable?: boolean
93
+ index?: number
94
+ tdIndex?: number
95
+ trIndex?: number
96
+ tdValueIndex?: number
97
+ zone?: EditorZone
98
+ }
99
+
100
+ export interface ILocationPosition {
101
+ zone: EditorZone
102
+ range: IRange
103
+ positionContext: IPositionContext
104
+ }
105
+
106
+ export interface ISetSurroundPositionPayload {
107
+ row: IRow
108
+ rowElement: IRowElement
109
+ rowElementRect: IElementFillRect
110
+ pageNo: number
111
+ availableWidth: number
112
+ surroundElementList: IElement[]
113
+ }
@@ -0,0 +1,15 @@
1
+ import { IElement } from './Element'
2
+
3
+ export interface IPreviewerCreateResult {
4
+ resizerSelection: HTMLDivElement
5
+ resizerHandleList: HTMLDivElement[]
6
+ resizerImageContainer: HTMLDivElement
7
+ resizerImage: HTMLImageElement
8
+ resizerSize: HTMLSpanElement
9
+ }
10
+
11
+ export interface IPreviewerDrawOption {
12
+ mime?: 'png' | 'jpg' | 'jpeg' | 'svg'
13
+ srcKey?: keyof Pick<IElement, 'value' | 'laTexSVG'>
14
+ dragDisable?: boolean
15
+ }