@thienvu18/designable-core 2.0.0 → 2.0.2

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 (385) hide show
  1. package/esm/drivers/DragDropDriver.d.ts +12 -12
  2. package/esm/drivers/DragDropDriver.js +127 -105
  3. package/esm/drivers/KeyboardDriver.d.ts +5 -5
  4. package/esm/drivers/KeyboardDriver.js +41 -40
  5. package/esm/drivers/MouseClickDriver.d.ts +6 -6
  6. package/esm/drivers/MouseClickDriver.js +55 -47
  7. package/esm/drivers/MouseMoveDriver.d.ts +6 -6
  8. package/esm/drivers/MouseMoveDriver.js +30 -28
  9. package/esm/drivers/ViewportResizeDriver.d.ts +9 -9
  10. package/esm/drivers/ViewportResizeDriver.js +56 -59
  11. package/esm/drivers/ViewportScrollDriver.d.ts +6 -6
  12. package/esm/drivers/ViewportScrollDriver.js +29 -27
  13. package/esm/drivers/index.d.ts +6 -6
  14. package/esm/drivers/index.js +6 -6
  15. package/esm/effects/index.d.ts +11 -11
  16. package/esm/effects/index.js +11 -11
  17. package/esm/effects/useAutoScrollEffect.d.ts +2 -2
  18. package/esm/effects/useAutoScrollEffect.js +70 -59
  19. package/esm/effects/useContentEditableEffect.d.ts +2 -2
  20. package/esm/effects/useContentEditableEffect.js +174 -150
  21. package/esm/effects/useCursorEffect.d.ts +2 -2
  22. package/esm/effects/useCursorEffect.js +58 -54
  23. package/esm/effects/useDragDropEffect.d.ts +2 -2
  24. package/esm/effects/useDragDropEffect.js +170 -145
  25. package/esm/effects/useFreeSelectionEffect.d.ts +2 -2
  26. package/esm/effects/useFreeSelectionEffect.js +58 -36
  27. package/esm/effects/useKeyboardEffect.d.ts +2 -2
  28. package/esm/effects/useKeyboardEffect.js +16 -16
  29. package/esm/effects/useResizeEffect.d.ts +2 -2
  30. package/esm/effects/useResizeEffect.js +84 -73
  31. package/esm/effects/useSelectionEffect.d.ts +2 -2
  32. package/esm/effects/useSelectionEffect.js +62 -65
  33. package/esm/effects/useTranslateEffect.d.ts +2 -2
  34. package/esm/effects/useTranslateEffect.js +55 -52
  35. package/esm/effects/useViewportEffect.d.ts +2 -2
  36. package/esm/effects/useViewportEffect.js +26 -28
  37. package/esm/effects/useWorkspaceEffect.d.ts +2 -2
  38. package/esm/effects/useWorkspaceEffect.js +30 -27
  39. package/esm/events/cursor/AbstractCursorEvent.d.ts +15 -15
  40. package/esm/events/cursor/AbstractCursorEvent.js +35 -33
  41. package/esm/events/cursor/DragMoveEvent.d.ts +7 -4
  42. package/esm/events/cursor/DragMoveEvent.js +5 -5
  43. package/esm/events/cursor/DragStartEvent.d.ts +7 -4
  44. package/esm/events/cursor/DragStartEvent.js +5 -5
  45. package/esm/events/cursor/DragStopEvent.d.ts +7 -4
  46. package/esm/events/cursor/DragStopEvent.js +5 -5
  47. package/esm/events/cursor/MouseClickEvent.d.ts +12 -6
  48. package/esm/events/cursor/MouseClickEvent.js +9 -9
  49. package/esm/events/cursor/MouseMoveEvent.d.ts +7 -4
  50. package/esm/events/cursor/MouseMoveEvent.js +5 -5
  51. package/esm/events/cursor/index.d.ts +5 -5
  52. package/esm/events/cursor/index.js +5 -5
  53. package/esm/events/history/AbstractHistoryEvent.d.ts +4 -4
  54. package/esm/events/history/AbstractHistoryEvent.js +3 -3
  55. package/esm/events/history/HistoryGotoEvent.d.ts +7 -4
  56. package/esm/events/history/HistoryGotoEvent.js +5 -5
  57. package/esm/events/history/HistoryPushEvent.d.ts +7 -4
  58. package/esm/events/history/HistoryPushEvent.js +5 -5
  59. package/esm/events/history/HistoryRedoEvent.d.ts +7 -4
  60. package/esm/events/history/HistoryRedoEvent.js +5 -5
  61. package/esm/events/history/HistoryUndoEvent.d.ts +7 -4
  62. package/esm/events/history/HistoryUndoEvent.js +5 -5
  63. package/esm/events/history/index.d.ts +4 -4
  64. package/esm/events/history/index.js +4 -4
  65. package/esm/events/index.d.ts +6 -6
  66. package/esm/events/index.js +6 -6
  67. package/esm/events/keyboard/AbstractKeyboardEvent.d.ts +13 -13
  68. package/esm/events/keyboard/AbstractKeyboardEvent.js +34 -36
  69. package/esm/events/keyboard/KeyDownEvent.d.ts +7 -4
  70. package/esm/events/keyboard/KeyDownEvent.js +5 -5
  71. package/esm/events/keyboard/KeyUpEvent.d.ts +7 -4
  72. package/esm/events/keyboard/KeyUpEvent.js +5 -5
  73. package/esm/events/keyboard/index.d.ts +2 -2
  74. package/esm/events/keyboard/index.js +2 -2
  75. package/esm/events/mutation/AbstractMutationNodeEvent.d.ts +9 -9
  76. package/esm/events/mutation/AbstractMutationNodeEvent.js +3 -3
  77. package/esm/events/mutation/AppendNodeEvent.d.ts +7 -4
  78. package/esm/events/mutation/AppendNodeEvent.js +5 -5
  79. package/esm/events/mutation/CloneNodeEvent.d.ts +7 -4
  80. package/esm/events/mutation/CloneNodeEvent.js +5 -5
  81. package/esm/events/mutation/DragNodeEvent.d.ts +7 -4
  82. package/esm/events/mutation/DragNodeEvent.js +5 -5
  83. package/esm/events/mutation/DropNodeEvent.d.ts +7 -4
  84. package/esm/events/mutation/DropNodeEvent.js +5 -5
  85. package/esm/events/mutation/FromNodeEvent.d.ts +9 -9
  86. package/esm/events/mutation/FromNodeEvent.js +4 -4
  87. package/esm/events/mutation/HoverNodeEvent.d.ts +7 -4
  88. package/esm/events/mutation/HoverNodeEvent.js +5 -5
  89. package/esm/events/mutation/InsertAfterEvent.d.ts +7 -4
  90. package/esm/events/mutation/InsertAfterEvent.js +5 -5
  91. package/esm/events/mutation/InsertBeforeEvent.d.ts +7 -4
  92. package/esm/events/mutation/InsertBeforeEvent.js +5 -5
  93. package/esm/events/mutation/InsertChildrenEvent.d.ts +7 -4
  94. package/esm/events/mutation/InsertChildrenEvent.js +5 -5
  95. package/esm/events/mutation/PrependNodeEvent.d.ts +7 -4
  96. package/esm/events/mutation/PrependNodeEvent.js +5 -5
  97. package/esm/events/mutation/RemoveNodeEvent.d.ts +7 -4
  98. package/esm/events/mutation/RemoveNodeEvent.js +5 -5
  99. package/esm/events/mutation/SelectNodeEvent.d.ts +7 -4
  100. package/esm/events/mutation/SelectNodeEvent.js +5 -5
  101. package/esm/events/mutation/UnSelectNodeEvent.d.ts +7 -4
  102. package/esm/events/mutation/UnSelectNodeEvent.js +5 -5
  103. package/esm/events/mutation/UpdateChildrenEvent.d.ts +7 -4
  104. package/esm/events/mutation/UpdateChildrenEvent.js +5 -5
  105. package/esm/events/mutation/UpdateNodePropsEvent.d.ts +7 -4
  106. package/esm/events/mutation/UpdateNodePropsEvent.js +5 -5
  107. package/esm/events/mutation/UserSelectNodeEvent.d.ts +7 -4
  108. package/esm/events/mutation/UserSelectNodeEvent.js +5 -5
  109. package/esm/events/mutation/WrapNodeEvent.d.ts +7 -4
  110. package/esm/events/mutation/WrapNodeEvent.js +5 -5
  111. package/esm/events/mutation/index.d.ts +16 -16
  112. package/esm/events/mutation/index.js +16 -16
  113. package/esm/events/viewport/AbstractViewportEvent.d.ts +12 -12
  114. package/esm/events/viewport/AbstractViewportEvent.js +12 -12
  115. package/esm/events/viewport/ViewportResizeEvent.d.ts +7 -4
  116. package/esm/events/viewport/ViewportResizeEvent.js +5 -5
  117. package/esm/events/viewport/ViewportScrollEvent.d.ts +7 -4
  118. package/esm/events/viewport/ViewportScrollEvent.js +5 -5
  119. package/esm/events/viewport/index.d.ts +2 -2
  120. package/esm/events/viewport/index.js +2 -2
  121. package/esm/events/workbench/AbstractWorkspaceEvent.d.ts +5 -5
  122. package/esm/events/workbench/AbstractWorkspaceEvent.js +3 -3
  123. package/esm/events/workbench/AddWorkspaceEvent.d.ts +7 -4
  124. package/esm/events/workbench/AddWorkspaceEvent.js +5 -5
  125. package/esm/events/workbench/RemoveWorkspaceEvent.d.ts +7 -4
  126. package/esm/events/workbench/RemoveWorkspaceEvent.js +5 -5
  127. package/esm/events/workbench/SwitchWorkspaceEvent.d.ts +7 -4
  128. package/esm/events/workbench/SwitchWorkspaceEvent.js +5 -5
  129. package/esm/events/workbench/index.d.ts +3 -3
  130. package/esm/events/workbench/index.js +3 -3
  131. package/esm/exports.d.ts +5 -5
  132. package/esm/exports.js +5 -5
  133. package/esm/externals.d.ts +25 -12
  134. package/esm/externals.js +57 -50
  135. package/esm/index.d.ts +1 -1
  136. package/esm/index.js +11 -12
  137. package/esm/internals.d.ts +3 -3
  138. package/esm/internals.js +34 -30
  139. package/esm/models/Cursor.d.ts +48 -48
  140. package/esm/models/Cursor.js +129 -125
  141. package/esm/models/Engine.d.ts +24 -24
  142. package/esm/models/Engine.js +73 -73
  143. package/esm/models/History.d.ts +26 -26
  144. package/esm/models/History.js +86 -87
  145. package/esm/models/Hover.d.ts +10 -10
  146. package/esm/models/Hover.js +33 -32
  147. package/esm/models/Keyboard.d.ts +25 -25
  148. package/esm/models/Keyboard.js +95 -94
  149. package/esm/models/MoveHelper.d.ts +57 -54
  150. package/esm/models/MoveHelper.js +304 -290
  151. package/esm/models/Operation.d.ts +25 -25
  152. package/esm/models/Operation.js +59 -60
  153. package/esm/models/Screen.d.ts +25 -25
  154. package/esm/models/Screen.js +67 -67
  155. package/esm/models/Selection.d.ts +25 -25
  156. package/esm/models/Selection.js +143 -149
  157. package/esm/models/Shortcut.d.ts +16 -16
  158. package/esm/models/Shortcut.js +56 -57
  159. package/esm/models/SnapLine.d.ts +24 -24
  160. package/esm/models/SnapLine.js +96 -105
  161. package/esm/models/SpaceBlock.d.ts +41 -36
  162. package/esm/models/SpaceBlock.js +154 -115
  163. package/esm/models/TransformHelper.d.ts +88 -74
  164. package/esm/models/TransformHelper.js +546 -450
  165. package/esm/models/TreeNode.d.ts +117 -109
  166. package/esm/models/TreeNode.js +743 -732
  167. package/esm/models/Viewport.d.ts +83 -81
  168. package/esm/models/Viewport.js +406 -384
  169. package/esm/models/Workbench.d.ts +21 -21
  170. package/esm/models/Workbench.js +90 -88
  171. package/esm/models/Workspace.d.ts +33 -33
  172. package/esm/models/Workspace.js +87 -83
  173. package/esm/models/index.d.ts +13 -13
  174. package/esm/models/index.js +13 -13
  175. package/esm/presets.d.ts +20 -4
  176. package/esm/presets.js +67 -35
  177. package/esm/registry.d.ts +21 -15
  178. package/esm/registry.js +106 -108
  179. package/esm/shortcuts/CursorSwitch.d.ts +2 -2
  180. package/esm/shortcuts/CursorSwitch.js +9 -9
  181. package/esm/shortcuts/MultiSelection.d.ts +5 -5
  182. package/esm/shortcuts/MultiSelection.js +23 -23
  183. package/esm/shortcuts/NodeMutation.d.ts +4 -4
  184. package/esm/shortcuts/NodeMutation.js +33 -33
  185. package/esm/shortcuts/QuickSelection.d.ts +3 -3
  186. package/esm/shortcuts/QuickSelection.js +71 -78
  187. package/esm/shortcuts/UndoRedo.d.ts +3 -3
  188. package/esm/shortcuts/UndoRedo.js +25 -25
  189. package/esm/shortcuts/index.d.ts +5 -5
  190. package/esm/shortcuts/index.js +5 -5
  191. package/esm/types.d.ts +138 -105
  192. package/esm/types.js +1 -1
  193. package/lib/drivers/DragDropDriver.d.ts +12 -12
  194. package/lib/drivers/DragDropDriver.js +131 -109
  195. package/lib/drivers/KeyboardDriver.d.ts +5 -5
  196. package/lib/drivers/KeyboardDriver.js +45 -44
  197. package/lib/drivers/MouseClickDriver.d.ts +6 -6
  198. package/lib/drivers/MouseClickDriver.js +59 -51
  199. package/lib/drivers/MouseMoveDriver.d.ts +6 -6
  200. package/lib/drivers/MouseMoveDriver.js +34 -32
  201. package/lib/drivers/ViewportResizeDriver.d.ts +9 -9
  202. package/lib/drivers/ViewportResizeDriver.js +69 -63
  203. package/lib/drivers/ViewportScrollDriver.d.ts +6 -6
  204. package/lib/drivers/ViewportScrollDriver.js +34 -31
  205. package/lib/drivers/index.d.ts +6 -6
  206. package/lib/drivers/index.js +38 -22
  207. package/lib/effects/index.d.ts +11 -11
  208. package/lib/effects/index.js +43 -27
  209. package/lib/effects/useAutoScrollEffect.d.ts +2 -2
  210. package/lib/effects/useAutoScrollEffect.js +81 -63
  211. package/lib/effects/useContentEditableEffect.d.ts +2 -2
  212. package/lib/effects/useContentEditableEffect.js +178 -154
  213. package/lib/effects/useCursorEffect.d.ts +2 -2
  214. package/lib/effects/useCursorEffect.js +57 -58
  215. package/lib/effects/useDragDropEffect.d.ts +2 -2
  216. package/lib/effects/useDragDropEffect.js +175 -149
  217. package/lib/effects/useFreeSelectionEffect.d.ts +2 -2
  218. package/lib/effects/useFreeSelectionEffect.js +60 -40
  219. package/lib/effects/useKeyboardEffect.d.ts +2 -2
  220. package/lib/effects/useKeyboardEffect.js +20 -20
  221. package/lib/effects/useResizeEffect.d.ts +2 -2
  222. package/lib/effects/useResizeEffect.js +88 -77
  223. package/lib/effects/useSelectionEffect.d.ts +2 -2
  224. package/lib/effects/useSelectionEffect.js +69 -69
  225. package/lib/effects/useTranslateEffect.d.ts +2 -2
  226. package/lib/effects/useTranslateEffect.js +59 -56
  227. package/lib/effects/useViewportEffect.d.ts +2 -2
  228. package/lib/effects/useViewportEffect.js +30 -32
  229. package/lib/effects/useWorkspaceEffect.d.ts +2 -2
  230. package/lib/effects/useWorkspaceEffect.js +34 -31
  231. package/lib/events/cursor/AbstractCursorEvent.d.ts +15 -15
  232. package/lib/events/cursor/AbstractCursorEvent.js +42 -37
  233. package/lib/events/cursor/DragMoveEvent.d.ts +7 -4
  234. package/lib/events/cursor/DragMoveEvent.js +9 -9
  235. package/lib/events/cursor/DragStartEvent.d.ts +7 -4
  236. package/lib/events/cursor/DragStartEvent.js +9 -9
  237. package/lib/events/cursor/DragStopEvent.d.ts +7 -4
  238. package/lib/events/cursor/DragStopEvent.js +9 -9
  239. package/lib/events/cursor/MouseClickEvent.d.ts +12 -6
  240. package/lib/events/cursor/MouseClickEvent.js +14 -14
  241. package/lib/events/cursor/MouseMoveEvent.d.ts +7 -4
  242. package/lib/events/cursor/MouseMoveEvent.js +9 -9
  243. package/lib/events/cursor/index.d.ts +5 -5
  244. package/lib/events/cursor/index.js +37 -21
  245. package/lib/events/history/AbstractHistoryEvent.d.ts +4 -4
  246. package/lib/events/history/AbstractHistoryEvent.js +7 -7
  247. package/lib/events/history/HistoryGotoEvent.d.ts +7 -4
  248. package/lib/events/history/HistoryGotoEvent.js +9 -9
  249. package/lib/events/history/HistoryPushEvent.d.ts +7 -4
  250. package/lib/events/history/HistoryPushEvent.js +9 -9
  251. package/lib/events/history/HistoryRedoEvent.d.ts +7 -4
  252. package/lib/events/history/HistoryRedoEvent.js +9 -9
  253. package/lib/events/history/HistoryUndoEvent.d.ts +7 -4
  254. package/lib/events/history/HistoryUndoEvent.js +9 -9
  255. package/lib/events/history/index.d.ts +4 -4
  256. package/lib/events/history/index.js +36 -20
  257. package/lib/events/index.d.ts +6 -6
  258. package/lib/events/index.js +38 -22
  259. package/lib/events/keyboard/AbstractKeyboardEvent.d.ts +13 -13
  260. package/lib/events/keyboard/AbstractKeyboardEvent.js +38 -40
  261. package/lib/events/keyboard/KeyDownEvent.d.ts +7 -4
  262. package/lib/events/keyboard/KeyDownEvent.js +9 -9
  263. package/lib/events/keyboard/KeyUpEvent.d.ts +7 -4
  264. package/lib/events/keyboard/KeyUpEvent.js +9 -9
  265. package/lib/events/keyboard/index.d.ts +2 -2
  266. package/lib/events/keyboard/index.js +34 -18
  267. package/lib/events/mutation/AbstractMutationNodeEvent.d.ts +9 -9
  268. package/lib/events/mutation/AbstractMutationNodeEvent.js +7 -7
  269. package/lib/events/mutation/AppendNodeEvent.d.ts +7 -4
  270. package/lib/events/mutation/AppendNodeEvent.js +9 -9
  271. package/lib/events/mutation/CloneNodeEvent.d.ts +7 -4
  272. package/lib/events/mutation/CloneNodeEvent.js +9 -9
  273. package/lib/events/mutation/DragNodeEvent.d.ts +7 -4
  274. package/lib/events/mutation/DragNodeEvent.js +9 -9
  275. package/lib/events/mutation/DropNodeEvent.d.ts +7 -4
  276. package/lib/events/mutation/DropNodeEvent.js +9 -9
  277. package/lib/events/mutation/FromNodeEvent.d.ts +9 -9
  278. package/lib/events/mutation/FromNodeEvent.js +8 -8
  279. package/lib/events/mutation/HoverNodeEvent.d.ts +7 -4
  280. package/lib/events/mutation/HoverNodeEvent.js +9 -9
  281. package/lib/events/mutation/InsertAfterEvent.d.ts +7 -4
  282. package/lib/events/mutation/InsertAfterEvent.js +9 -9
  283. package/lib/events/mutation/InsertBeforeEvent.d.ts +7 -4
  284. package/lib/events/mutation/InsertBeforeEvent.js +9 -9
  285. package/lib/events/mutation/InsertChildrenEvent.d.ts +7 -4
  286. package/lib/events/mutation/InsertChildrenEvent.js +9 -9
  287. package/lib/events/mutation/PrependNodeEvent.d.ts +7 -4
  288. package/lib/events/mutation/PrependNodeEvent.js +9 -9
  289. package/lib/events/mutation/RemoveNodeEvent.d.ts +7 -4
  290. package/lib/events/mutation/RemoveNodeEvent.js +9 -9
  291. package/lib/events/mutation/SelectNodeEvent.d.ts +7 -4
  292. package/lib/events/mutation/SelectNodeEvent.js +9 -9
  293. package/lib/events/mutation/UnSelectNodeEvent.d.ts +7 -4
  294. package/lib/events/mutation/UnSelectNodeEvent.js +9 -9
  295. package/lib/events/mutation/UpdateChildrenEvent.d.ts +7 -4
  296. package/lib/events/mutation/UpdateChildrenEvent.js +9 -9
  297. package/lib/events/mutation/UpdateNodePropsEvent.d.ts +7 -4
  298. package/lib/events/mutation/UpdateNodePropsEvent.js +9 -9
  299. package/lib/events/mutation/UserSelectNodeEvent.d.ts +7 -4
  300. package/lib/events/mutation/UserSelectNodeEvent.js +9 -9
  301. package/lib/events/mutation/WrapNodeEvent.d.ts +7 -4
  302. package/lib/events/mutation/WrapNodeEvent.js +9 -9
  303. package/lib/events/mutation/index.d.ts +16 -16
  304. package/lib/events/mutation/index.js +48 -32
  305. package/lib/events/viewport/AbstractViewportEvent.d.ts +12 -12
  306. package/lib/events/viewport/AbstractViewportEvent.js +16 -16
  307. package/lib/events/viewport/ViewportResizeEvent.d.ts +7 -4
  308. package/lib/events/viewport/ViewportResizeEvent.js +9 -9
  309. package/lib/events/viewport/ViewportScrollEvent.d.ts +7 -4
  310. package/lib/events/viewport/ViewportScrollEvent.js +9 -9
  311. package/lib/events/viewport/index.d.ts +2 -2
  312. package/lib/events/viewport/index.js +34 -18
  313. package/lib/events/workbench/AbstractWorkspaceEvent.d.ts +5 -5
  314. package/lib/events/workbench/AbstractWorkspaceEvent.js +7 -7
  315. package/lib/events/workbench/AddWorkspaceEvent.d.ts +7 -4
  316. package/lib/events/workbench/AddWorkspaceEvent.js +9 -9
  317. package/lib/events/workbench/RemoveWorkspaceEvent.d.ts +7 -4
  318. package/lib/events/workbench/RemoveWorkspaceEvent.js +9 -9
  319. package/lib/events/workbench/SwitchWorkspaceEvent.d.ts +7 -4
  320. package/lib/events/workbench/SwitchWorkspaceEvent.js +9 -9
  321. package/lib/events/workbench/index.d.ts +3 -3
  322. package/lib/events/workbench/index.js +35 -19
  323. package/lib/exports.d.ts +5 -5
  324. package/lib/exports.js +37 -21
  325. package/lib/externals.d.ts +25 -12
  326. package/lib/externals.js +81 -63
  327. package/lib/index.d.ts +1 -1
  328. package/lib/index.js +65 -40
  329. package/lib/internals.d.ts +3 -3
  330. package/lib/internals.js +43 -36
  331. package/lib/models/Cursor.d.ts +48 -48
  332. package/lib/models/Cursor.js +140 -129
  333. package/lib/models/Engine.d.ts +24 -24
  334. package/lib/models/Engine.js +77 -77
  335. package/lib/models/History.d.ts +26 -26
  336. package/lib/models/History.js +90 -91
  337. package/lib/models/Hover.d.ts +10 -10
  338. package/lib/models/Hover.js +37 -36
  339. package/lib/models/Keyboard.d.ts +25 -25
  340. package/lib/models/Keyboard.js +103 -98
  341. package/lib/models/MoveHelper.d.ts +57 -54
  342. package/lib/models/MoveHelper.js +316 -294
  343. package/lib/models/Operation.d.ts +25 -25
  344. package/lib/models/Operation.js +63 -64
  345. package/lib/models/Screen.d.ts +25 -25
  346. package/lib/models/Screen.js +71 -71
  347. package/lib/models/Selection.d.ts +25 -25
  348. package/lib/models/Selection.js +151 -153
  349. package/lib/models/Shortcut.d.ts +16 -16
  350. package/lib/models/Shortcut.js +65 -61
  351. package/lib/models/SnapLine.d.ts +24 -24
  352. package/lib/models/SnapLine.js +99 -109
  353. package/lib/models/SpaceBlock.d.ts +41 -36
  354. package/lib/models/SpaceBlock.js +156 -119
  355. package/lib/models/TransformHelper.d.ts +88 -74
  356. package/lib/models/TransformHelper.js +561 -454
  357. package/lib/models/TreeNode.d.ts +117 -109
  358. package/lib/models/TreeNode.js +739 -736
  359. package/lib/models/Viewport.d.ts +83 -81
  360. package/lib/models/Viewport.js +411 -388
  361. package/lib/models/Workbench.d.ts +21 -21
  362. package/lib/models/Workbench.js +92 -92
  363. package/lib/models/Workspace.d.ts +33 -33
  364. package/lib/models/Workspace.js +86 -87
  365. package/lib/models/index.d.ts +13 -13
  366. package/lib/models/index.js +45 -29
  367. package/lib/presets.d.ts +20 -4
  368. package/lib/presets.js +41 -38
  369. package/lib/registry.d.ts +21 -15
  370. package/lib/registry.js +112 -111
  371. package/lib/shortcuts/CursorSwitch.d.ts +2 -2
  372. package/lib/shortcuts/CursorSwitch.js +12 -12
  373. package/lib/shortcuts/MultiSelection.d.ts +5 -5
  374. package/lib/shortcuts/MultiSelection.js +30 -26
  375. package/lib/shortcuts/NodeMutation.d.ts +4 -4
  376. package/lib/shortcuts/NodeMutation.js +36 -36
  377. package/lib/shortcuts/QuickSelection.d.ts +3 -3
  378. package/lib/shortcuts/QuickSelection.js +74 -81
  379. package/lib/shortcuts/UndoRedo.d.ts +3 -3
  380. package/lib/shortcuts/UndoRedo.js +28 -28
  381. package/lib/shortcuts/index.d.ts +5 -5
  382. package/lib/shortcuts/index.js +37 -21
  383. package/lib/types.d.ts +138 -105
  384. package/lib/types.js +2 -2
  385. package/package.json +18 -18
@@ -1,163 +1,187 @@
1
- import { Path } from '@formily/path';
2
- import { requestIdle, globalThisPolyfill } from '@thienvu18/designable-shared';
3
- import { MouseDoubleClickEvent, MouseClickEvent } from '../events';
1
+ import { Path } from '@formily/path'
2
+ import { globalThisPolyfill, requestIdle } from '@thienvu18/designable-shared'
3
+ import { MouseClickEvent, MouseDoubleClickEvent } from '../events'
4
4
  function getAllRanges(sel) {
5
- const ranges = [];
6
- for (let i = 0; i < sel.rangeCount; i++) {
7
- const range = sel.getRangeAt(i);
8
- ranges[i] = {
9
- collapsed: range.collapsed,
10
- startOffset: range.startOffset,
11
- endOffset: range.endOffset,
12
- };
5
+ const ranges = []
6
+ for (let i = 0; i < sel.rangeCount; i++) {
7
+ const range = sel.getRangeAt(i)
8
+ ranges[i] = {
9
+ collapsed: range.collapsed,
10
+ startOffset: range.startOffset,
11
+ endOffset: range.endOffset,
13
12
  }
14
- return ranges;
13
+ }
14
+ return ranges
15
15
  }
16
16
  function setEndOfContenteditable(contentEditableElement) {
17
- const range = document.createRange();
18
- range.selectNodeContents(contentEditableElement);
19
- range.collapse(false);
20
- const selection = globalThisPolyfill.getSelection();
21
- selection.removeAllRanges();
22
- selection.addRange(range);
17
+ const range = document.createRange()
18
+ range.selectNodeContents(contentEditableElement)
19
+ range.collapse(false)
20
+ const selection = globalThisPolyfill.getSelection()
21
+ selection.removeAllRanges()
22
+ selection.addRange(range)
23
23
  }
24
24
  function createCaretCache(el) {
25
- const currentSelection = globalThisPolyfill.getSelection();
26
- if (currentSelection.containsNode(el))
27
- return;
28
- const ranges = getAllRanges(currentSelection);
29
- return (offset = 0) => {
30
- const sel = globalThisPolyfill.getSelection();
31
- const firstNode = el.childNodes[0];
32
- if (!firstNode)
33
- return;
34
- sel.removeAllRanges();
35
- ranges.forEach((item) => {
36
- const range = document.createRange();
37
- range.collapse(item.collapsed);
38
- range.setStart(firstNode, item.startOffset + offset);
39
- range.setEnd(firstNode, item.endOffset + offset);
40
- sel.addRange(range);
41
- });
42
- };
25
+ const currentSelection = globalThisPolyfill.getSelection()
26
+ if (currentSelection.containsNode(el)) return
27
+ const ranges = getAllRanges(currentSelection)
28
+ return (offset = 0) => {
29
+ const sel = globalThisPolyfill.getSelection()
30
+ const firstNode = el.childNodes[0]
31
+ if (!firstNode) return
32
+ sel.removeAllRanges()
33
+ ranges.forEach((item) => {
34
+ const range = document.createRange()
35
+ range.collapse(item.collapsed)
36
+ range.setStart(firstNode, item.startOffset + offset)
37
+ range.setEnd(firstNode, item.endOffset + offset)
38
+ sel.addRange(range)
39
+ })
40
+ }
43
41
  }
44
42
  export const useContentEditableEffect = (engine) => {
45
- const globalState = {
46
- activeElements: new Map(),
47
- queue: [],
48
- requestTimer: null,
49
- isComposition: false,
50
- };
51
- function onKeyDownHandler(event) {
52
- if (event.key === 'Enter') {
53
- event.stopPropagation();
54
- event.preventDefault();
55
- }
43
+ const globalState = {
44
+ activeElements: new Map(),
45
+ queue: [],
46
+ requestTimer: null,
47
+ isComposition: false,
48
+ }
49
+ function onKeyDownHandler(event) {
50
+ if (event.key === 'Enter') {
51
+ event.stopPropagation()
52
+ event.preventDefault()
56
53
  }
57
- function onInputHandler(event) {
58
- const node = globalState.activeElements.get(this);
59
- event.stopPropagation();
60
- event.preventDefault();
61
- if (node) {
62
- const target = event.target;
63
- const handler = () => {
64
- globalState.queue.length = 0;
65
- if (globalState.isComposition)
66
- return;
67
- const restore = createCaretCache(target);
68
- Path.setIn(node.props, this.getAttribute(engine.props.contentEditableAttrName), target?.textContent);
69
- requestIdle(() => {
70
- node.takeSnapshot('update:node:props');
71
- restore();
72
- });
73
- };
74
- globalState.queue.push(handler);
75
- clearTimeout(globalState.requestTimer);
76
- globalState.requestTimer = setTimeout(handler, 600);
77
- }
54
+ }
55
+ function onInputHandler(event) {
56
+ const node = globalState.activeElements.get(this)
57
+ event.stopPropagation()
58
+ event.preventDefault()
59
+ if (node) {
60
+ const target = event.target
61
+ const handler = () => {
62
+ globalState.queue.length = 0
63
+ if (globalState.isComposition) return
64
+ const restore = createCaretCache(target)
65
+ Path.setIn(
66
+ node.props,
67
+ this.getAttribute(engine.props.contentEditableAttrName),
68
+ target?.textContent
69
+ )
70
+ requestIdle(() => {
71
+ node.takeSnapshot('update:node:props')
72
+ restore()
73
+ })
74
+ }
75
+ globalState.queue.push(handler)
76
+ clearTimeout(globalState.requestTimer)
77
+ globalState.requestTimer = setTimeout(handler, 600)
78
78
  }
79
- function onSelectionChangeHandler() {
80
- clearTimeout(globalState.requestTimer);
81
- globalState.requestTimer = setTimeout(globalState.queue[globalState.queue.length - 1], 600);
79
+ }
80
+ function onSelectionChangeHandler() {
81
+ clearTimeout(globalState.requestTimer)
82
+ globalState.requestTimer = setTimeout(
83
+ globalState.queue[globalState.queue.length - 1],
84
+ 600
85
+ )
86
+ }
87
+ function onCompositionHandler(event) {
88
+ if (event.type === 'compositionend') {
89
+ globalState.isComposition = false
90
+ onInputHandler(event)
91
+ } else {
92
+ clearTimeout(globalState.requestTimer)
93
+ globalState.isComposition = true
82
94
  }
83
- function onCompositionHandler(event) {
84
- if (event.type === 'compositionend') {
85
- globalState.isComposition = false;
86
- onInputHandler(event);
95
+ }
96
+ function onPastHandler(event) {
97
+ event.preventDefault()
98
+ const node = globalState.activeElements.get(this)
99
+ const text = event.clipboardData.getData('text')
100
+ const selObj = globalThisPolyfill.getSelection()
101
+ const target = event.target
102
+ const selRange = selObj.getRangeAt(0)
103
+ const restore = createCaretCache(target)
104
+ selRange.deleteContents()
105
+ selRange.insertNode(document.createTextNode(text))
106
+ Path.setIn(
107
+ node.props,
108
+ this.getAttribute(engine.props.contentEditableAttrName),
109
+ target.textContent
110
+ )
111
+ restore(text.length)
112
+ }
113
+ function findTargetNodeId(element) {
114
+ if (!element) return
115
+ const nodeId = element.getAttribute(
116
+ engine.props.contentEditableNodeIdAttrName
117
+ )
118
+ if (nodeId) return nodeId
119
+ const parent = element.closest(`*[${engine.props.nodeIdAttrName}]`)
120
+ if (parent) return parent.getAttribute(engine.props.nodeIdAttrName)
121
+ }
122
+ engine.subscribeTo(MouseClickEvent, (event) => {
123
+ const target = event.data.target
124
+ const editableElement = target?.closest?.(
125
+ `*[${engine.props.contentEditableAttrName}]`
126
+ )
127
+ if (
128
+ editableElement &&
129
+ editableElement.getAttribute('contenteditable') === 'true'
130
+ )
131
+ return
132
+ globalState.activeElements.forEach((node, element) => {
133
+ globalState.activeElements.delete(element)
134
+ element.removeAttribute('contenteditable')
135
+ element.removeAttribute('spellcheck')
136
+ element.removeEventListener('input', onInputHandler)
137
+ element.removeEventListener('compositionstart', onCompositionHandler)
138
+ element.removeEventListener('compositionupdate', onCompositionHandler)
139
+ element.removeEventListener('compositionend', onCompositionHandler)
140
+ element.removeEventListener('past', onPastHandler)
141
+ document.removeEventListener('selectionchange', onSelectionChangeHandler)
142
+ })
143
+ })
144
+ engine.subscribeTo(MouseDoubleClickEvent, (event) => {
145
+ const target = event.data.target
146
+ const editableElement = target?.closest?.(
147
+ `*[${engine.props.contentEditableAttrName}]`
148
+ )
149
+ const workspace = engine.workbench.activeWorkspace
150
+ const tree = workspace.operation.tree
151
+ if (editableElement) {
152
+ const editable = editableElement.getAttribute('contenteditable')
153
+ if (editable === 'false' || !editable) {
154
+ const nodeId = findTargetNodeId(editableElement)
155
+ if (nodeId) {
156
+ const targetNode = tree.findById(nodeId)
157
+ if (targetNode) {
158
+ globalState.activeElements.set(editableElement, targetNode)
159
+ editableElement.setAttribute('spellcheck', 'false')
160
+ editableElement.setAttribute('contenteditable', 'true')
161
+ editableElement.focus()
162
+ editableElement.addEventListener('input', onInputHandler)
163
+ editableElement.addEventListener(
164
+ 'compositionstart',
165
+ onCompositionHandler
166
+ )
167
+ editableElement.addEventListener(
168
+ 'compositionupdate',
169
+ onCompositionHandler
170
+ )
171
+ editableElement.addEventListener(
172
+ 'compositionend',
173
+ onCompositionHandler
174
+ )
175
+ editableElement.addEventListener('keydown', onKeyDownHandler)
176
+ editableElement.addEventListener('paste', onPastHandler)
177
+ document.addEventListener(
178
+ 'selectionchange',
179
+ onSelectionChangeHandler
180
+ )
181
+ setEndOfContenteditable(editableElement)
182
+ }
87
183
  }
88
- else {
89
- clearTimeout(globalState.requestTimer);
90
- globalState.isComposition = true;
91
- }
92
- }
93
- function onPastHandler(event) {
94
- event.preventDefault();
95
- const node = globalState.activeElements.get(this);
96
- const text = event.clipboardData.getData('text');
97
- const selObj = globalThisPolyfill.getSelection();
98
- const target = event.target;
99
- const selRange = selObj.getRangeAt(0);
100
- const restore = createCaretCache(target);
101
- selRange.deleteContents();
102
- selRange.insertNode(document.createTextNode(text));
103
- Path.setIn(node.props, this.getAttribute(engine.props.contentEditableAttrName), target.textContent);
104
- restore(text.length);
184
+ }
105
185
  }
106
- function findTargetNodeId(element) {
107
- if (!element)
108
- return;
109
- const nodeId = element.getAttribute(engine.props.contentEditableNodeIdAttrName);
110
- if (nodeId)
111
- return nodeId;
112
- const parent = element.closest(`*[${engine.props.nodeIdAttrName}]`);
113
- if (parent)
114
- return parent.getAttribute(engine.props.nodeIdAttrName);
115
- }
116
- engine.subscribeTo(MouseClickEvent, (event) => {
117
- const target = event.data.target;
118
- const editableElement = target?.closest?.(`*[${engine.props.contentEditableAttrName}]`);
119
- if (editableElement &&
120
- editableElement.getAttribute('contenteditable') === 'true')
121
- return;
122
- globalState.activeElements.forEach((node, element) => {
123
- globalState.activeElements.delete(element);
124
- element.removeAttribute('contenteditable');
125
- element.removeAttribute('spellcheck');
126
- element.removeEventListener('input', onInputHandler);
127
- element.removeEventListener('compositionstart', onCompositionHandler);
128
- element.removeEventListener('compositionupdate', onCompositionHandler);
129
- element.removeEventListener('compositionend', onCompositionHandler);
130
- element.removeEventListener('past', onPastHandler);
131
- document.removeEventListener('selectionchange', onSelectionChangeHandler);
132
- });
133
- });
134
- engine.subscribeTo(MouseDoubleClickEvent, (event) => {
135
- const target = event.data.target;
136
- const editableElement = target?.closest?.(`*[${engine.props.contentEditableAttrName}]`);
137
- const workspace = engine.workbench.activeWorkspace;
138
- const tree = workspace.operation.tree;
139
- if (editableElement) {
140
- const editable = editableElement.getAttribute('contenteditable');
141
- if (editable === 'false' || !editable) {
142
- const nodeId = findTargetNodeId(editableElement);
143
- if (nodeId) {
144
- const targetNode = tree.findById(nodeId);
145
- if (targetNode) {
146
- globalState.activeElements.set(editableElement, targetNode);
147
- editableElement.setAttribute('spellcheck', 'false');
148
- editableElement.setAttribute('contenteditable', 'true');
149
- editableElement.focus();
150
- editableElement.addEventListener('input', onInputHandler);
151
- editableElement.addEventListener('compositionstart', onCompositionHandler);
152
- editableElement.addEventListener('compositionupdate', onCompositionHandler);
153
- editableElement.addEventListener('compositionend', onCompositionHandler);
154
- editableElement.addEventListener('keydown', onKeyDownHandler);
155
- editableElement.addEventListener('paste', onPastHandler);
156
- document.addEventListener('selectionchange', onSelectionChangeHandler);
157
- setEndOfContenteditable(editableElement);
158
- }
159
- }
160
- }
161
- }
162
- });
163
- };
186
+ })
187
+ }
@@ -1,2 +1,2 @@
1
- import { Engine } from '../models';
2
- export declare const useCursorEffect: (engine: Engine) => void;
1
+ import { Engine } from '../models'
2
+ export declare const useCursorEffect: (engine: Engine) => void
@@ -1,57 +1,61 @@
1
- import { CursorStatus } from '../models';
2
- import { MouseMoveEvent, DragStartEvent, DragMoveEvent, DragStopEvent, } from '../events';
3
- import { requestIdle } from '@thienvu18/designable-shared';
1
+ import { requestIdle } from '@thienvu18/designable-shared'
2
+ import {
3
+ DragMoveEvent,
4
+ DragStartEvent,
5
+ DragStopEvent,
6
+ MouseMoveEvent,
7
+ } from '../events'
8
+ import { CursorStatus } from '../models'
4
9
  export const useCursorEffect = (engine) => {
5
- engine.subscribeTo(MouseMoveEvent, (event) => {
6
- engine.cursor.setStatus(engine.cursor.status === CursorStatus.Dragging ||
7
- engine.cursor.status === CursorStatus.DragStart
8
- ? engine.cursor.status
9
- : CursorStatus.Normal);
10
- if (engine.cursor.status === CursorStatus.Dragging)
11
- return;
12
- engine.cursor.setPosition(event.data);
13
- });
14
- engine.subscribeTo(DragStartEvent, (event) => {
15
- engine.cursor.setStatus(CursorStatus.DragStart);
16
- engine.cursor.setDragStartPosition(event.data);
17
- });
18
- engine.subscribeTo(DragMoveEvent, (event) => {
19
- engine.cursor.setStatus(CursorStatus.Dragging);
20
- engine.cursor.setPosition(event.data);
21
- });
22
- engine.subscribeTo(DragStopEvent, (event) => {
23
- engine.cursor.setStatus(CursorStatus.DragStop);
24
- engine.cursor.setDragEndPosition(event.data);
25
- engine.cursor.setDragStartPosition(null);
26
- requestIdle(() => {
27
- engine.cursor.setStatus(CursorStatus.Normal);
28
- });
29
- });
30
- engine.subscribeTo(MouseMoveEvent, (event) => {
31
- const currentWorkspace = event?.context?.workspace;
32
- if (!currentWorkspace)
33
- return;
34
- const operation = currentWorkspace.operation;
35
- if (engine.cursor.status !== CursorStatus.Normal) {
36
- operation.hover.clear();
37
- return;
38
- }
39
- const target = event.data.target;
40
- const el = target?.closest?.(`
10
+ engine.subscribeTo(MouseMoveEvent, (event) => {
11
+ engine.cursor.setStatus(
12
+ engine.cursor.status === CursorStatus.Dragging ||
13
+ engine.cursor.status === CursorStatus.DragStart
14
+ ? engine.cursor.status
15
+ : CursorStatus.Normal
16
+ )
17
+ if (engine.cursor.status === CursorStatus.Dragging) return
18
+ engine.cursor.setPosition(event.data)
19
+ })
20
+ engine.subscribeTo(DragStartEvent, (event) => {
21
+ engine.cursor.setStatus(CursorStatus.DragStart)
22
+ engine.cursor.setDragStartPosition(event.data)
23
+ })
24
+ engine.subscribeTo(DragMoveEvent, (event) => {
25
+ engine.cursor.setStatus(CursorStatus.Dragging)
26
+ engine.cursor.setPosition(event.data)
27
+ })
28
+ engine.subscribeTo(DragStopEvent, (event) => {
29
+ engine.cursor.setStatus(CursorStatus.DragStop)
30
+ engine.cursor.setDragEndPosition(event.data)
31
+ engine.cursor.setDragStartPosition(null)
32
+ requestIdle(() => {
33
+ engine.cursor.setStatus(CursorStatus.Normal)
34
+ })
35
+ })
36
+ engine.subscribeTo(MouseMoveEvent, (event) => {
37
+ const currentWorkspace = event?.context?.workspace
38
+ if (!currentWorkspace) return
39
+ const operation = currentWorkspace.operation
40
+ if (engine.cursor.status !== CursorStatus.Normal) {
41
+ operation.hover.clear()
42
+ return
43
+ }
44
+ const target = event.data.target
45
+ const el = target?.closest?.(`
41
46
  *[${engine.props.nodeIdAttrName}],
42
47
  *[${engine.props.outlineNodeIdAttrName}]
43
- `);
44
- if (!el?.getAttribute) {
45
- return;
46
- }
47
- const nodeId = el.getAttribute(engine.props.nodeIdAttrName);
48
- const outlineNodeId = el.getAttribute(engine.props.outlineNodeIdAttrName);
49
- const node = operation.tree.findById(nodeId || outlineNodeId);
50
- if (node) {
51
- operation.hover.setHover(node);
52
- }
53
- else {
54
- operation.hover.clear();
55
- }
56
- });
57
- };
48
+ `)
49
+ if (!el?.getAttribute) {
50
+ return
51
+ }
52
+ const nodeId = el.getAttribute(engine.props.nodeIdAttrName)
53
+ const outlineNodeId = el.getAttribute(engine.props.outlineNodeIdAttrName)
54
+ const node = operation.tree.findById(nodeId || outlineNodeId)
55
+ if (node) {
56
+ operation.hover.setHover(node)
57
+ } else {
58
+ operation.hover.clear()
59
+ }
60
+ })
61
+ }
@@ -1,2 +1,2 @@
1
- import { Engine } from '../models';
2
- export declare const useDragDropEffect: (engine: Engine) => void;
1
+ import { Engine } from '../models'
2
+ export declare const useDragDropEffect: (engine: Engine) => void