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,355 @@
1
+ # Get Data Command
2
+
3
+ ## How to Use
4
+
5
+ ```javascript
6
+ import Editor from "@hufe921/canvas-editor"
7
+
8
+ const instance = new Editor(container, <IElement[]>data, options)
9
+ const value = instance.command.commandName()
10
+ ```
11
+
12
+ ## getValue
13
+
14
+ Feature: Get the current document value
15
+
16
+ Usage:
17
+
18
+ ```javascript
19
+ const {
20
+ version: string
21
+ data: IEditorData
22
+ options: IEditorOption
23
+ } = instance.command.getValue(options?: IGetValueOption)
24
+ ```
25
+
26
+ ## getValueAsync
27
+
28
+ Feature: Get the current document value (async)
29
+
30
+ Usage:
31
+
32
+ ```javascript
33
+ const {
34
+ version: string
35
+ data: IEditorData
36
+ options: IEditorOption
37
+ } = await instance.command.getValueAsync(options?: IGetValueOption)
38
+ ```
39
+
40
+
41
+ ## getImage
42
+
43
+ Feature: Gets the base64 string of the current page image
44
+
45
+ Usage:
46
+
47
+ ```javascript
48
+ const base64StringList = await instance.command.getImage(option?: IGetImageOption)
49
+ ```
50
+
51
+ ## getOptions
52
+
53
+ Feature: Get editor options
54
+
55
+ Usage:
56
+
57
+ ```javascript
58
+ const editorOption = await instance.command.getOptions()
59
+ ```
60
+
61
+ ## getWordCount
62
+
63
+ Feature: Get document word count
64
+
65
+ Usage:
66
+
67
+ ```javascript
68
+ const wordCount = await instance.command.getWordCount()
69
+ ```
70
+
71
+ ## getCursorPosition
72
+
73
+ Feature: Get cursor position with coordinates
74
+
75
+ Usage:
76
+
77
+ ```javascript
78
+ const range = instance.command.getCursorPosition()
79
+ ```
80
+
81
+ ## getRemainingContentHeight
82
+
83
+ Feature: Get remaining available content height on last page
84
+
85
+ Usage:
86
+
87
+ ```javascript
88
+ const remainingHeight = instance.command.getRemainingContentHeight()
89
+ ```
90
+
91
+ ## computeElementListHeight
92
+
93
+ Feature: Compute element list height
94
+
95
+ Usage:
96
+
97
+ ```javascript
98
+ const height = instance.command.computeElementListHeight(
99
+ elementList: IElement[]
100
+ )
101
+ ```
102
+
103
+ ## getRange
104
+
105
+ Feature: Get range
106
+
107
+ Usage:
108
+
109
+ ```javascript
110
+ const range = instance.command.getRange()
111
+ ```
112
+
113
+ ## getRangeText
114
+
115
+ Feature: Get range text
116
+
117
+ Usage:
118
+
119
+ ```javascript
120
+ const rangeText = instance.command.getRangeText()
121
+ ```
122
+
123
+ ## getRangeContext
124
+
125
+ Feature: Get range context
126
+
127
+ Usage:
128
+
129
+ ```javascript
130
+ const rangeContext = instance.command.getRangeContext()
131
+ ```
132
+
133
+ ## getRangeRow
134
+
135
+ Feature: Get range row element list
136
+
137
+ Usage:
138
+
139
+ ```javascript
140
+ const rowElementList = instance.command.getRangeRow()
141
+ ```
142
+
143
+ ## getKeywordRangeList
144
+
145
+ Feature: Get range list by keyword
146
+
147
+ Usage:
148
+
149
+ ```javascript
150
+ const rangeList = instance.command.getKeywordRangeList()
151
+ ```
152
+
153
+ ## getKeywordContext
154
+
155
+ Feature: Get context list by keyword
156
+
157
+ Usage:
158
+
159
+ ```javascript
160
+ const keywordContextList = instance.command.getKeywordContext(payload: string)
161
+ ```
162
+
163
+ ## getRangeParagraph
164
+
165
+ Feature: Get range paragraph element list
166
+
167
+ Usage:
168
+
169
+ ```javascript
170
+ const paragraphElementList = instance.command.getRangeParagraph()
171
+ ```
172
+
173
+ ## getPaperMargin
174
+
175
+ Feature: Gets the margins
176
+
177
+ Usage:
178
+
179
+ ```javascript
180
+ const [top: number, right: number, bottom: number, left: number] =
181
+ instance.command.getPaperMargin()
182
+ ```
183
+
184
+ ## getSearchNavigateInfo
185
+
186
+ Feature: Get search navigation information
187
+
188
+ Usage:
189
+
190
+ ```javascript
191
+ const {
192
+ index: number;
193
+ count: number;
194
+ } = instance.command.getSearchNavigateInfo()
195
+ ```
196
+
197
+ ## getCatalog
198
+
199
+ Feature: Get directory
200
+
201
+ Usage:
202
+
203
+ ```javascript
204
+ const catalog = await instance.command.getCatalog()
205
+ ```
206
+
207
+ ## getHTML
208
+
209
+ Feature: Get HTML
210
+
211
+ Usage:
212
+
213
+ ```javascript
214
+ const {
215
+ header: string
216
+ main: string
217
+ footer: string
218
+ } = await instance.command.getHTML()
219
+ ```
220
+
221
+ ## getText
222
+
223
+ Feature: Get text
224
+
225
+ Usage:
226
+
227
+ ```javascript
228
+ const {
229
+ header: string
230
+ main: string
231
+ footer: string
232
+ } = await instance.command.getText()
233
+ ```
234
+
235
+ ## getLocale
236
+
237
+ Feature: Get current locale
238
+
239
+ Usage:
240
+
241
+ ```javascript
242
+ const locale = await instance.command.getLocale()
243
+ ```
244
+
245
+ ## getGroupIds
246
+
247
+ Feature: Get all group ids
248
+
249
+ Usage:
250
+
251
+ ```javascript
252
+ const groupIds = await instance.command.getGroupIds()
253
+ ```
254
+
255
+ ## getControlValue
256
+
257
+ Feature: Get control value
258
+
259
+ Usage:
260
+
261
+ ```javascript
262
+ const {
263
+ value: string | null
264
+ innerText: string | null
265
+ zone: EditorZone
266
+ elementList?: IElement[]
267
+ } = await instance.command.getControlValue(payload: IGetControlValueOption)
268
+ ```
269
+
270
+ ## getControlList
271
+
272
+ Feature: Get control list
273
+
274
+ Usage:
275
+
276
+ ```javascript
277
+ const controlList = await instance.command.getControlList()
278
+ ```
279
+
280
+ ## getContainer
281
+
282
+ Feature: Get editor container
283
+
284
+ Usage:
285
+
286
+ ```javascript
287
+ const container = await instance.command.getContainer()
288
+ ```
289
+
290
+ ## getTitleValue
291
+
292
+ Feature: Get title value
293
+
294
+ Usage:
295
+
296
+ ```javascript
297
+ const {
298
+ value: string | null
299
+ elementList: IElement[]
300
+ zone: EditorZone
301
+ }[] = await instance.command.getTitleValue(payload: IGetTitleValueOption)
302
+ ```
303
+
304
+ ## getPositionContextByEvent
305
+
306
+ Feature: Get position context by mouse event
307
+
308
+ Usage:
309
+
310
+ ```javascript
311
+ const {
312
+ pageNo: number
313
+ element: IElement | null
314
+ rangeRect: RangeRect | null
315
+ tableInfo: ITableInfoByEvent | null
316
+ }[] = await instance.command.getPositionContextByEvent(evt: MouseEvent, options?: IPositionContextByEventOption)
317
+ ```
318
+
319
+ demo:
320
+
321
+ ```javascript
322
+ instance.eventBus.on(
323
+ 'mousemove',
324
+ debounce(evt => {
325
+ const positionContext = instance.command.getPositionContextByEvent(evt)
326
+ console.log(positionContext)
327
+ }, 200)
328
+ )``
329
+ ```
330
+
331
+ ## getElementById
332
+
333
+ Feature: Get element list by id
334
+
335
+ Usage:
336
+
337
+ ```javascript
338
+ const elementList = await instance.command.getElementById(payload: IGetElementByIdOption)
339
+ ```
340
+
341
+ ## getAreaValue
342
+
343
+ Feature: Get area value
344
+
345
+ Usage:
346
+
347
+ ```javascript
348
+ const {
349
+ id?: string
350
+ area: IArea
351
+ value: IElement[]
352
+ startPageNo: number
353
+ endPageNo: number
354
+ } = instance.command.getAreaValue(options: IGetAreaValueOption)
355
+ ```
@@ -0,0 +1,44 @@
1
+ # Customize Contextmenu
2
+
3
+ ## How to Use
4
+
5
+ ```javascript
6
+ import Editor from "@hufe921/canvas-editor"
7
+
8
+ const instance = new Editor(container, <IElement[]>data, options)
9
+ instance.register.contextMenuList([
10
+ {
11
+ key?: string;
12
+ isDivider?: boolean;
13
+ icon?: string;
14
+ name?: string; // Use %s for selection text. Example: Search: %s
15
+ shortCut?: string;
16
+ disable?: boolean;
17
+ when?: (payload: IContextMenuContext) => boolean;
18
+ callback?: (command: Command, context: IContextMenuContext) => any;
19
+ childMenus?: IRegisterContextMenu[];
20
+ }
21
+ ])
22
+ ```
23
+
24
+ ## getContextMenuList
25
+
26
+ Feature: Get context menu list
27
+
28
+ Usage:
29
+
30
+ ```javascript
31
+ const contextMenuList = await instance.register.getContextMenuList()
32
+ ```
33
+
34
+ Remark:
35
+
36
+ ```javascript
37
+ // Example of modifying internal contextmenu
38
+ contextmenuList.forEach(menu => {
39
+ // Find the menu item through the menu key and modify its properties
40
+ if (menu.key === INTERNAL_CONTEXT_MENU_KEY.GLOBAL.PASTE) {
41
+ menu.when = () => false
42
+ }
43
+ })
44
+ ```
@@ -0,0 +1,61 @@
1
+ # Internal Contextmenu
2
+
3
+ ## Global
4
+
5
+ - Cut
6
+ - Copy
7
+ - Paste
8
+ - Select all
9
+ - Print
10
+
11
+ ## Hyperlinks
12
+
13
+ - Delete the link
14
+ - Unlink
15
+ - Edit the link
16
+
17
+ ## Image
18
+
19
+ - Change the picture
20
+ - Save as picture
21
+ - Text wrapping
22
+ - Embed
23
+ - Up down
24
+ - Surround
25
+ - Float above text
26
+ - Float below text
27
+
28
+ ## Table
29
+
30
+ - Table borders
31
+ - All borders
32
+ - Borderless
33
+ - Dashed border
34
+ - Outer border
35
+ - Internal border
36
+ - Td borders
37
+ - Top border
38
+ - Right border
39
+ - Bottom border
40
+ - Left border
41
+ - Forward border
42
+ - Back border
43
+ - Vertical alignment
44
+ - Top alignment
45
+ - Center vertically
46
+ - Bottom end alignment
47
+ - Insert rows and columns
48
+ - Insert 1 row above
49
+ - Insert 1 row below
50
+ - Insert 1 column on the left
51
+ - Insert 1 column on the right side
52
+ - Delete rows and columns
53
+ - Delete 1 row
54
+ - Remove 1 column
55
+ - Delete the entire table
56
+ - Merge cells
57
+ - Cancel the merge
58
+
59
+ ## control
60
+
61
+ - Delete the control
@@ -0,0 +1,260 @@
1
+ # Event Listening(eventBus)
2
+
3
+ ## How to Use
4
+
5
+ ```javascript
6
+ import Editor from "@hufe921/canvas-editor"
7
+
8
+ const instance = new Editor(container, <IElement[]>data, options)
9
+
10
+ // register
11
+ instance.eventBus.on<K keyof EventMap>(
12
+ eventName: K,
13
+ callback: EventMap[K]
14
+ )
15
+
16
+ // remove
17
+ instance.eventBus.off<K keyof EventMap>(
18
+ eventName: K,
19
+ callback: EventMap[K]
20
+ )
21
+ ```
22
+
23
+ ## rangeStyleChange
24
+
25
+ Feature: The selection style changes
26
+
27
+ Usage:
28
+
29
+ ```javascript
30
+ instance.eventBus.on('rangeStyleChange', (payload: IRangeStyle) => void)
31
+ ```
32
+
33
+ ## visiblePageNoListChange
34
+
35
+ Feature: The visible page changes
36
+
37
+ Usage:
38
+
39
+ ```javascript
40
+ instance.eventBus.on('visiblePageNoListChange', (payload: number[]) => void)
41
+ ```
42
+
43
+ ## intersectionPageNoChange
44
+
45
+ Feature: The current page changes
46
+
47
+ Usage:
48
+
49
+ ```javascript
50
+ instance.eventBus.on('intersectionPageNoChange', (payload: number) => void)
51
+ ```
52
+
53
+ ## pageSizeChange
54
+
55
+ Feature: The current number of pages has changed
56
+
57
+ Usage:
58
+
59
+ ```javascript
60
+ instance.eventBus.on('pageSizeChange', (payload: number) => void)
61
+ ```
62
+
63
+ ## pageScaleChange
64
+
65
+ Feature: The current page scaling has changed
66
+
67
+ Usage:
68
+
69
+ ```javascript
70
+ instance.eventBus.on('pageScaleChange', (payload: number) => void)
71
+ ```
72
+
73
+ ## contentChange
74
+
75
+ Feature: The current content has changed
76
+
77
+ Usage:
78
+
79
+ ```javascript
80
+ instance.eventBus.on('contentChange', () => void)
81
+ ```
82
+
83
+ ## controlChange
84
+
85
+ Feature: The control where the current cursor is located changes
86
+
87
+ Usage:
88
+
89
+ ```javascript
90
+ instance.eventBus.on('controlChange', (payload: IControlChangeResult) => void)
91
+ ```
92
+
93
+ ## controlContentChange
94
+
95
+ Feature: The control content changes
96
+
97
+ Usage:
98
+
99
+ ```javascript
100
+ instance.eventBus.on('controlContentChange', (payload: IControlContentChangeResult) => void)
101
+ ```
102
+
103
+ ## pageModeChange
104
+
105
+ Feature: The page mode changes
106
+
107
+ Usage:
108
+
109
+ ```javascript
110
+ instance.eventBus.on('pageModeChange', (payload: PageMode) => void)
111
+ ```
112
+
113
+ ## saved
114
+
115
+ Feature: Document saved
116
+
117
+ Usage:
118
+
119
+ ```javascript
120
+ instance.eventBus.on('saved', (payload: IEditorResult) => void)
121
+ ```
122
+
123
+ ## zoneChange
124
+
125
+ Feature: The zone changes
126
+
127
+ Usage:
128
+
129
+ ```javascript
130
+ instance.eventBus.on('zoneChange', (payload: EditorZone) => void)
131
+ ```
132
+
133
+ ## mousemove
134
+
135
+ Feature: Editor mousemove event
136
+
137
+ Usage:
138
+
139
+ ```javascript
140
+ instance.eventBus.on('mousemove', (evt: MouseEvent) => void)
141
+ ```
142
+
143
+ ## mouseenter
144
+
145
+ Feature: Editor mouseenter event
146
+
147
+ Usage:
148
+
149
+ ```javascript
150
+ instance.eventBus.on('mouseenter', (evt: MouseEvent) => void)
151
+ ```
152
+
153
+ ## mouseleave
154
+
155
+ Feature: Editor mouseleave event
156
+
157
+ Usage:
158
+
159
+ ```javascript
160
+ instance.eventBus.on('mouseleave', (evt: MouseEvent) => void)
161
+ ```
162
+
163
+ ## mousedown
164
+
165
+ Feature: Editor mousedown event
166
+
167
+ Usage:
168
+
169
+ ```javascript
170
+ instance.eventBus.on('mousedown', (evt: MouseEvent) => void)
171
+ ```
172
+
173
+ ## mouseup
174
+
175
+ Feature: Editor mouseup event
176
+
177
+ Usage:
178
+
179
+ ```javascript
180
+ instance.eventBus.on('mouseup', (evt: MouseEvent) => void)
181
+ ```
182
+
183
+ ## click
184
+
185
+ Feature: Editor click event
186
+
187
+ Usage:
188
+
189
+ ```javascript
190
+ instance.eventBus.on('click', (evt: MouseEvent) => void)
191
+ ```
192
+
193
+ ## input
194
+
195
+ Feature: Editor input event
196
+
197
+ Usage:
198
+
199
+ ```javascript
200
+ instance.eventBus.on('input', (evt: Event) => void)
201
+ ```
202
+
203
+ ## positionContextChange
204
+
205
+ Feature: The position context change
206
+
207
+ Usage:
208
+
209
+ ```javascript
210
+ instance.eventBus.on('positionContextChange', (payload: IPositionContextChangePayload) => void)
211
+ ```
212
+
213
+ ## imageSizeChange
214
+
215
+ Feature: The image size change
216
+
217
+ Usage:
218
+
219
+ ```javascript
220
+ instance.eventBus.on('imageSizeChange', (payload: { element: IElement }) => void)
221
+ ```
222
+
223
+ ## imageMousedown
224
+
225
+ Feature: The image mousedown event
226
+
227
+ Usage:
228
+
229
+ ```javascript
230
+ instance.eventBus.on('imageMousedown', (payload: {
231
+ evt: MouseEvent
232
+ element: IElement
233
+ }) => void)
234
+ ```
235
+
236
+ ## imageDblclick
237
+
238
+ Feature: The image double click event
239
+
240
+ Usage:
241
+
242
+ ```javascript
243
+ instance.eventBus.on('imageDblclick', (payload: {
244
+ evt: MouseEvent
245
+ element: IElement
246
+ }) => void)
247
+ ```
248
+
249
+ ## labelMousedown
250
+
251
+ Feature: The label mousedown event
252
+
253
+ Usage:
254
+
255
+ ```javascript
256
+ instance.eventBus.on('labelMousedown', (payload: {
257
+ evt: MouseEvent
258
+ element: IElement
259
+ }) => void)
260
+ ```