@thienvu18/designable-core 2.0.1 → 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 +2 -2
@@ -1,110 +1,101 @@
1
- import { calcRectOfAxisLineSegment, calcOffsetOfSnapLineSegmentToEdge, } from '@thienvu18/designable-shared';
2
- import { TransformHelper } from './TransformHelper';
1
+ import {
2
+ calcOffsetOfSnapLineSegmentToEdge,
3
+ calcRectOfAxisLineSegment,
4
+ } from '@thienvu18/designable-shared'
5
+ import { TransformHelper } from './TransformHelper'
3
6
  export class SnapLine {
4
- constructor(helper, line) {
5
- this.helper = helper;
6
- this.type = line.type || 'normal';
7
- this._id = line.id;
8
- this.refer = line.refer;
9
- this.start = { ...line.start };
10
- this.end = { ...line.end };
11
- this.distance = line.distance;
7
+ constructor(helper, line) {
8
+ this.helper = helper
9
+ this.type = line.type || 'normal'
10
+ this._id = line.id
11
+ this.refer = line.refer
12
+ this.start = { ...line.start }
13
+ this.end = { ...line.end }
14
+ this.distance = line.distance
15
+ }
16
+ get id() {
17
+ return (
18
+ this._id ?? `${this.start.x}-${this.start.y}-${this.end.x}-${this.end.y}`
19
+ )
20
+ }
21
+ get direction() {
22
+ if (this.start?.x === this.end?.x) return 'v'
23
+ return 'h'
24
+ }
25
+ get closest() {
26
+ return this.distance < TransformHelper.threshold
27
+ }
28
+ get rect() {
29
+ return calcRectOfAxisLineSegment(this)
30
+ }
31
+ translate(node, translate) {
32
+ if (!node || !node?.parent) return
33
+ const parent = node.parent
34
+ const dragNodeRect = node.getValidElementOffsetRect()
35
+ const parentRect = parent.getValidElementOffsetRect()
36
+ const edgeOffset = calcOffsetOfSnapLineSegmentToEdge(this, dragNodeRect)
37
+ if (this.direction === 'h') {
38
+ translate.y = this.start.y - parentRect.y - edgeOffset.y
39
+ } else {
40
+ translate.x = this.start.x - parentRect.x - edgeOffset.x
12
41
  }
13
- get id() {
14
- return (this._id ?? `${this.start.x}-${this.start.y}-${this.end.x}-${this.end.y}`);
42
+ }
43
+ resize(node, rect) {
44
+ if (!node || !node?.parent) return
45
+ const parent = node.parent
46
+ const dragNodeRect = node.getValidElementOffsetRect()
47
+ const parentRect = parent.getValidElementOffsetRect()
48
+ const edgeOffset = calcOffsetOfSnapLineSegmentToEdge(this, dragNodeRect)
49
+ const cursorRect = this.helper.cursorDragNodesRect
50
+ const snapEdge = this.snapEdge(rect)
51
+ if (this.direction === 'h') {
52
+ const y = this.start.y - parentRect.y - edgeOffset.y
53
+ switch (this.helper.direction) {
54
+ case 'left-top':
55
+ case 'center-top':
56
+ case 'right-top':
57
+ if (snapEdge !== 'ht') return
58
+ rect.y = y
59
+ rect.height = cursorRect.bottom - y
60
+ break
61
+ case 'left-bottom':
62
+ case 'center-bottom':
63
+ case 'right-bottom':
64
+ if (snapEdge !== 'hb') return
65
+ rect.height = this.start.y - cursorRect.top
66
+ break
67
+ }
68
+ } else {
69
+ const x = this.start.x - parentRect.x - edgeOffset.x
70
+ switch (this.helper.direction) {
71
+ case 'left-top':
72
+ case 'left-bottom':
73
+ case 'left-center':
74
+ if (snapEdge !== 'vl') return
75
+ rect.x = x
76
+ rect.width = cursorRect.right - x
77
+ break
78
+ case 'right-center':
79
+ case 'right-top':
80
+ case 'right-bottom':
81
+ if (snapEdge !== 'vr') return
82
+ rect.width = this.start.x - cursorRect.left
83
+ break
84
+ }
15
85
  }
16
- get direction() {
17
- if (this.start?.x === this.end?.x)
18
- return 'v';
19
- return 'h';
20
- }
21
- get closest() {
22
- return this.distance < TransformHelper.threshold;
23
- }
24
- get rect() {
25
- return calcRectOfAxisLineSegment(this);
26
- }
27
- translate(node, translate) {
28
- if (!node || !node?.parent)
29
- return;
30
- const parent = node.parent;
31
- const dragNodeRect = node.getValidElementOffsetRect();
32
- const parentRect = parent.getValidElementOffsetRect();
33
- const edgeOffset = calcOffsetOfSnapLineSegmentToEdge(this, dragNodeRect);
34
- if (this.direction === 'h') {
35
- translate.y = this.start.y - parentRect.y - edgeOffset.y;
36
- }
37
- else {
38
- translate.x = this.start.x - parentRect.x - edgeOffset.x;
39
- }
40
- }
41
- resize(node, rect) {
42
- if (!node || !node?.parent)
43
- return;
44
- const parent = node.parent;
45
- const dragNodeRect = node.getValidElementOffsetRect();
46
- const parentRect = parent.getValidElementOffsetRect();
47
- const edgeOffset = calcOffsetOfSnapLineSegmentToEdge(this, dragNodeRect);
48
- const cursorRect = this.helper.cursorDragNodesRect;
49
- const snapEdge = this.snapEdge(rect);
50
- if (this.direction === 'h') {
51
- const y = this.start.y - parentRect.y - edgeOffset.y;
52
- switch (this.helper.direction) {
53
- case 'left-top':
54
- case 'center-top':
55
- case 'right-top':
56
- if (snapEdge !== 'ht')
57
- return;
58
- rect.y = y;
59
- rect.height = cursorRect.bottom - y;
60
- break;
61
- case 'left-bottom':
62
- case 'center-bottom':
63
- case 'right-bottom':
64
- if (snapEdge !== 'hb')
65
- return;
66
- rect.height = this.start.y - cursorRect.top;
67
- break;
68
- }
69
- }
70
- else {
71
- const x = this.start.x - parentRect.x - edgeOffset.x;
72
- switch (this.helper.direction) {
73
- case 'left-top':
74
- case 'left-bottom':
75
- case 'left-center':
76
- if (snapEdge !== 'vl')
77
- return;
78
- rect.x = x;
79
- rect.width = cursorRect.right - x;
80
- break;
81
- case 'right-center':
82
- case 'right-top':
83
- case 'right-bottom':
84
- if (snapEdge !== 'vr')
85
- return;
86
- rect.width = this.start.x - cursorRect.left;
87
- break;
88
- }
89
- }
90
- }
91
- snapEdge(rect) {
92
- const threshold = TransformHelper.threshold;
93
- if (this.direction === 'h') {
94
- if (Math.abs(this.start.y - rect.top) < threshold)
95
- return 'ht';
96
- if (Math.abs(this.start.y - (rect.top + rect.height / 2)) < threshold)
97
- return 'hc';
98
- if (Math.abs(this.start.y - rect.bottom) < threshold)
99
- return 'hb';
100
- }
101
- else {
102
- if (Math.abs(this.start.x - rect.left) < threshold)
103
- return 'vl';
104
- if (Math.abs(this.start.x - (rect.left + rect.width / 2)) < threshold)
105
- return 'vc';
106
- if (Math.abs(this.start.x - rect.right) < threshold)
107
- return 'vr';
108
- }
86
+ }
87
+ snapEdge(rect) {
88
+ const threshold = TransformHelper.threshold
89
+ if (this.direction === 'h') {
90
+ if (Math.abs(this.start.y - rect.top) < threshold) return 'ht'
91
+ if (Math.abs(this.start.y - (rect.top + rect.height / 2)) < threshold)
92
+ return 'hc'
93
+ if (Math.abs(this.start.y - rect.bottom) < threshold) return 'hb'
94
+ } else {
95
+ if (Math.abs(this.start.x - rect.left) < threshold) return 'vl'
96
+ if (Math.abs(this.start.x - (rect.left + rect.width / 2)) < threshold)
97
+ return 'vc'
98
+ if (Math.abs(this.start.x - rect.right) < threshold) return 'vr'
109
99
  }
100
+ }
110
101
  }
@@ -1,40 +1,45 @@
1
- import { Rect } from '@thienvu18/designable-shared';
2
- import { SnapLine } from './SnapLine';
3
- import { TransformHelper } from './TransformHelper';
4
- import { TreeNode } from './TreeNode';
5
- export type ISpaceBlockType = 'top' | 'right' | 'bottom' | 'left' | (string & {});
1
+ import { Rect } from '@thienvu18/designable-shared'
2
+ import { SnapLine } from './SnapLine'
3
+ import { TransformHelper } from './TransformHelper'
4
+ import { TreeNode } from './TreeNode'
5
+ export type ISpaceBlockType =
6
+ | 'top'
7
+ | 'right'
8
+ | 'bottom'
9
+ | 'left'
10
+ | (string & {})
6
11
  export interface ISpaceBlock {
7
- id?: string;
8
- refer?: TreeNode;
9
- rect?: Rect;
10
- distance?: number;
11
- type?: ISpaceBlockType;
12
+ id?: string
13
+ refer?: TreeNode
14
+ rect?: Rect
15
+ distance?: number
16
+ type?: ISpaceBlockType
12
17
  }
13
- export type AroundSpaceBlock = Record<ISpaceBlockType, SpaceBlock>;
18
+ export type AroundSpaceBlock = Record<ISpaceBlockType, SpaceBlock>
14
19
  export declare class SpaceBlock {
15
- _id: string;
16
- distance: number;
17
- refer: TreeNode;
18
- helper: TransformHelper;
19
- rect: Rect;
20
- type: ISpaceBlockType;
21
- constructor(helper: TransformHelper, box: ISpaceBlock);
22
- get referRect(): Rect;
23
- get id(): string;
24
- get next(): SpaceBlock;
25
- get extendsLine(): {
26
- start: {
27
- x: number;
28
- y: number;
29
- };
30
- end: {
31
- x: number;
32
- y: number;
33
- };
34
- };
35
- get needExtendsLine(): boolean;
36
- get crossReferRect(): Rect;
37
- get crossDragNodesRect(): Rect;
38
- get isometrics(): SpaceBlock[];
39
- get snapLine(): SnapLine;
20
+ _id: string
21
+ distance: number
22
+ refer: TreeNode
23
+ helper: TransformHelper
24
+ rect: Rect
25
+ type: ISpaceBlockType
26
+ constructor(helper: TransformHelper, box: ISpaceBlock)
27
+ get referRect(): Rect
28
+ get id(): string
29
+ get next(): SpaceBlock
30
+ get extendsLine(): {
31
+ start: {
32
+ x: number
33
+ y: number
34
+ }
35
+ end: {
36
+ x: number
37
+ y: number
38
+ }
39
+ }
40
+ get needExtendsLine(): boolean
41
+ get crossReferRect(): Rect
42
+ get crossDragNodesRect(): Rect
43
+ get isometrics(): SpaceBlock[]
44
+ get snapLine(): SnapLine
40
45
  }
@@ -1,126 +1,165 @@
1
- import { calcExtendsLineSegmentOfRect, calcDistanceOfSnapLineToEdges, LineSegment, Rect, } from '@thienvu18/designable-shared';
2
- import { SnapLine } from './SnapLine';
3
- import { TransformHelper } from './TransformHelper';
1
+ import {
2
+ LineSegment,
3
+ Rect,
4
+ calcDistanceOfSnapLineToEdges,
5
+ calcExtendsLineSegmentOfRect,
6
+ } from '@thienvu18/designable-shared'
7
+ import { SnapLine } from './SnapLine'
8
+ import { TransformHelper } from './TransformHelper'
4
9
  export class SpaceBlock {
5
- constructor(helper, box) {
6
- this.helper = helper;
7
- this.distance = box.distance;
8
- this.refer = box.refer;
9
- this.rect = box.rect;
10
- this.type = box.type;
10
+ constructor(helper, box) {
11
+ this.helper = helper
12
+ this.distance = box.distance
13
+ this.refer = box.refer
14
+ this.rect = box.rect
15
+ this.type = box.type
16
+ }
17
+ get referRect() {
18
+ if (!this.refer) return
19
+ return this.helper.getNodeRect(this.refer)
20
+ }
21
+ get id() {
22
+ return (
23
+ this._id ??
24
+ `${this.rect.x}-${this.rect.y}-${this.rect.width}-${this.rect.height}`
25
+ )
26
+ }
27
+ get next() {
28
+ const spaceBlock = this.helper.calcAroundSpaceBlocks(this.referRect)
29
+ return spaceBlock[this.type]
30
+ }
31
+ get extendsLine() {
32
+ if (!this.needExtendsLine) return
33
+ const dragNodesRect = this.helper.dragNodesRect
34
+ return calcExtendsLineSegmentOfRect(dragNodesRect, this.referRect)
35
+ }
36
+ get needExtendsLine() {
37
+ const targetRect = this.crossDragNodesRect
38
+ const referRect = this.crossReferRect
39
+ if (this.type === 'top' || this.type === 'bottom') {
40
+ const rightDelta = referRect.right - targetRect.left
41
+ const leftDelta = targetRect.right - referRect.left
42
+ return (
43
+ rightDelta < targetRect.width / 2 || leftDelta < targetRect.width / 2
44
+ )
45
+ } else {
46
+ const topDelta = targetRect.bottom - referRect.top
47
+ const bottomDelta = referRect.bottom - targetRect.top
48
+ return (
49
+ topDelta < targetRect.height / 2 || bottomDelta < targetRect.height / 2
50
+ )
11
51
  }
12
- get referRect() {
13
- if (!this.refer)
14
- return;
15
- return this.helper.getNodeRect(this.refer);
52
+ return true
53
+ }
54
+ get crossReferRect() {
55
+ const referRect = this.referRect
56
+ if (this.type === 'top' || this.type === 'bottom') {
57
+ return new Rect(
58
+ referRect.x,
59
+ this.rect.y,
60
+ referRect.width,
61
+ this.rect.height
62
+ )
63
+ } else {
64
+ return new Rect(
65
+ this.rect.x,
66
+ referRect.y,
67
+ this.rect.width,
68
+ referRect.height
69
+ )
16
70
  }
17
- get id() {
18
- return (this._id ??
19
- `${this.rect.x}-${this.rect.y}-${this.rect.width}-${this.rect.height}`);
71
+ }
72
+ get crossDragNodesRect() {
73
+ const dragNodesRect = this.helper.dragNodesRect
74
+ if (this.type === 'top' || this.type === 'bottom') {
75
+ return new Rect(
76
+ dragNodesRect.x,
77
+ this.rect.y,
78
+ dragNodesRect.width,
79
+ this.rect.height
80
+ )
81
+ } else {
82
+ return new Rect(
83
+ this.rect.x,
84
+ dragNodesRect.y,
85
+ this.rect.width,
86
+ dragNodesRect.height
87
+ )
20
88
  }
21
- get next() {
22
- const spaceBlock = this.helper.calcAroundSpaceBlocks(this.referRect);
23
- return spaceBlock[this.type];
89
+ }
90
+ get isometrics() {
91
+ const results = []
92
+ let spaceBlock = this
93
+ while ((spaceBlock = spaceBlock.next)) {
94
+ if (
95
+ Math.abs(spaceBlock.distance - this.distance) <
96
+ TransformHelper.threshold
97
+ ) {
98
+ if (results.some((box) => box.distance !== spaceBlock.distance))
99
+ continue
100
+ results.push(spaceBlock)
101
+ }
24
102
  }
25
- get extendsLine() {
26
- if (!this.needExtendsLine)
27
- return;
28
- const dragNodesRect = this.helper.dragNodesRect;
29
- return calcExtendsLineSegmentOfRect(dragNodesRect, this.referRect);
30
- }
31
- get needExtendsLine() {
32
- const targetRect = this.crossDragNodesRect;
33
- const referRect = this.crossReferRect;
34
- if (this.type === 'top' || this.type === 'bottom') {
35
- const rightDelta = referRect.right - targetRect.left;
36
- const leftDelta = targetRect.right - referRect.left;
37
- return (rightDelta < targetRect.width / 2 || leftDelta < targetRect.width / 2);
38
- }
39
- else {
40
- const topDelta = targetRect.bottom - referRect.top;
41
- const bottomDelta = referRect.bottom - targetRect.top;
42
- return (topDelta < targetRect.height / 2 || bottomDelta < targetRect.height / 2);
43
- }
44
- return true;
45
- }
46
- get crossReferRect() {
47
- const referRect = this.referRect;
48
- if (this.type === 'top' || this.type === 'bottom') {
49
- return new Rect(referRect.x, this.rect.y, referRect.width, this.rect.height);
50
- }
51
- else {
52
- return new Rect(this.rect.x, referRect.y, this.rect.width, referRect.height);
53
- }
54
- }
55
- get crossDragNodesRect() {
56
- const dragNodesRect = this.helper.dragNodesRect;
57
- if (this.type === 'top' || this.type === 'bottom') {
58
- return new Rect(dragNodesRect.x, this.rect.y, dragNodesRect.width, this.rect.height);
59
- }
60
- else {
61
- return new Rect(this.rect.x, dragNodesRect.y, this.rect.width, dragNodesRect.height);
62
- }
63
- }
64
- get isometrics() {
65
- const results = [];
66
- let spaceBlock = this;
67
- while ((spaceBlock = spaceBlock.next)) {
68
- if (Math.abs(spaceBlock.distance - this.distance) <
69
- TransformHelper.threshold) {
70
- if (results.some((box) => box.distance !== spaceBlock.distance))
71
- continue;
72
- results.push(spaceBlock);
73
- }
74
- }
75
- return results;
76
- }
77
- get snapLine() {
78
- if (!this.isometrics.length)
79
- return;
80
- const nextRect = this.next.rect;
81
- const referRect = this.referRect;
82
- let line;
83
- if (this.type === 'top') {
84
- line = new LineSegment({
85
- x: nextRect.left,
86
- y: referRect.bottom + nextRect.height,
87
- }, {
88
- x: nextRect.right,
89
- y: referRect.bottom + nextRect.height,
90
- });
103
+ return results
104
+ }
105
+ get snapLine() {
106
+ if (!this.isometrics.length) return
107
+ const nextRect = this.next.rect
108
+ const referRect = this.referRect
109
+ let line
110
+ if (this.type === 'top') {
111
+ line = new LineSegment(
112
+ {
113
+ x: nextRect.left,
114
+ y: referRect.bottom + nextRect.height,
115
+ },
116
+ {
117
+ x: nextRect.right,
118
+ y: referRect.bottom + nextRect.height,
91
119
  }
92
- else if (this.type === 'bottom') {
93
- line = new LineSegment({
94
- x: nextRect.left,
95
- y: referRect.top - nextRect.height,
96
- }, {
97
- x: nextRect.right,
98
- y: referRect.top - nextRect.height,
99
- });
120
+ )
121
+ } else if (this.type === 'bottom') {
122
+ line = new LineSegment(
123
+ {
124
+ x: nextRect.left,
125
+ y: referRect.top - nextRect.height,
126
+ },
127
+ {
128
+ x: nextRect.right,
129
+ y: referRect.top - nextRect.height,
100
130
  }
101
- else if (this.type === 'left') {
102
- line = new LineSegment({
103
- x: referRect.right + nextRect.width,
104
- y: nextRect.top,
105
- }, {
106
- x: referRect.right + nextRect.width,
107
- y: nextRect.bottom,
108
- });
131
+ )
132
+ } else if (this.type === 'left') {
133
+ line = new LineSegment(
134
+ {
135
+ x: referRect.right + nextRect.width,
136
+ y: nextRect.top,
137
+ },
138
+ {
139
+ x: referRect.right + nextRect.width,
140
+ y: nextRect.bottom,
109
141
  }
110
- else {
111
- line = new LineSegment({
112
- x: referRect.left - nextRect.width,
113
- y: nextRect.top,
114
- }, {
115
- x: referRect.left - nextRect.width,
116
- y: nextRect.bottom,
117
- });
142
+ )
143
+ } else {
144
+ line = new LineSegment(
145
+ {
146
+ x: referRect.left - nextRect.width,
147
+ y: nextRect.top,
148
+ },
149
+ {
150
+ x: referRect.left - nextRect.width,
151
+ y: nextRect.bottom,
118
152
  }
119
- const distance = calcDistanceOfSnapLineToEdges(line, this.helper.dragNodesEdgeLines);
120
- return new SnapLine(this.helper, {
121
- ...line,
122
- distance,
123
- type: 'space-block',
124
- });
153
+ )
125
154
  }
155
+ const distance = calcDistanceOfSnapLineToEdges(
156
+ line,
157
+ this.helper.dragNodesEdgeLines
158
+ )
159
+ return new SnapLine(this.helper, {
160
+ ...line,
161
+ distance,
162
+ type: 'space-block',
163
+ })
164
+ }
126
165
  }