@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,167 +1,191 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useContentEditableEffect = void 0;
4
- const path_1 = require("@formily/path");
5
- const designable_shared_1 = require("@thienvu18/designable-shared");
6
- const events_1 = require("../events");
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
3
+ exports.useContentEditableEffect = void 0
4
+ const path_1 = require('@formily/path')
5
+ const designable_shared_1 = require('@thienvu18/designable-shared')
6
+ const events_1 = require('../events')
7
7
  function getAllRanges(sel) {
8
- const ranges = [];
9
- for (let i = 0; i < sel.rangeCount; i++) {
10
- const range = sel.getRangeAt(i);
11
- ranges[i] = {
12
- collapsed: range.collapsed,
13
- startOffset: range.startOffset,
14
- endOffset: range.endOffset,
15
- };
8
+ const ranges = []
9
+ for (let i = 0; i < sel.rangeCount; i++) {
10
+ const range = sel.getRangeAt(i)
11
+ ranges[i] = {
12
+ collapsed: range.collapsed,
13
+ startOffset: range.startOffset,
14
+ endOffset: range.endOffset,
16
15
  }
17
- return ranges;
16
+ }
17
+ return ranges
18
18
  }
19
19
  function setEndOfContenteditable(contentEditableElement) {
20
- const range = document.createRange();
21
- range.selectNodeContents(contentEditableElement);
22
- range.collapse(false);
23
- const selection = designable_shared_1.globalThisPolyfill.getSelection();
24
- selection.removeAllRanges();
25
- selection.addRange(range);
20
+ const range = document.createRange()
21
+ range.selectNodeContents(contentEditableElement)
22
+ range.collapse(false)
23
+ const selection = designable_shared_1.globalThisPolyfill.getSelection()
24
+ selection.removeAllRanges()
25
+ selection.addRange(range)
26
26
  }
27
27
  function createCaretCache(el) {
28
- const currentSelection = designable_shared_1.globalThisPolyfill.getSelection();
29
- if (currentSelection.containsNode(el))
30
- return;
31
- const ranges = getAllRanges(currentSelection);
32
- return (offset = 0) => {
33
- const sel = designable_shared_1.globalThisPolyfill.getSelection();
34
- const firstNode = el.childNodes[0];
35
- if (!firstNode)
36
- return;
37
- sel.removeAllRanges();
38
- ranges.forEach((item) => {
39
- const range = document.createRange();
40
- range.collapse(item.collapsed);
41
- range.setStart(firstNode, item.startOffset + offset);
42
- range.setEnd(firstNode, item.endOffset + offset);
43
- sel.addRange(range);
44
- });
45
- };
28
+ const currentSelection = designable_shared_1.globalThisPolyfill.getSelection()
29
+ if (currentSelection.containsNode(el)) return
30
+ const ranges = getAllRanges(currentSelection)
31
+ return (offset = 0) => {
32
+ const sel = designable_shared_1.globalThisPolyfill.getSelection()
33
+ const firstNode = el.childNodes[0]
34
+ if (!firstNode) return
35
+ sel.removeAllRanges()
36
+ ranges.forEach((item) => {
37
+ const range = document.createRange()
38
+ range.collapse(item.collapsed)
39
+ range.setStart(firstNode, item.startOffset + offset)
40
+ range.setEnd(firstNode, item.endOffset + offset)
41
+ sel.addRange(range)
42
+ })
43
+ }
46
44
  }
47
45
  const useContentEditableEffect = (engine) => {
48
- const globalState = {
49
- activeElements: new Map(),
50
- queue: [],
51
- requestTimer: null,
52
- isComposition: false,
53
- };
54
- function onKeyDownHandler(event) {
55
- if (event.key === 'Enter') {
56
- event.stopPropagation();
57
- event.preventDefault();
58
- }
46
+ const globalState = {
47
+ activeElements: new Map(),
48
+ queue: [],
49
+ requestTimer: null,
50
+ isComposition: false,
51
+ }
52
+ function onKeyDownHandler(event) {
53
+ if (event.key === 'Enter') {
54
+ event.stopPropagation()
55
+ event.preventDefault()
59
56
  }
60
- function onInputHandler(event) {
61
- const node = globalState.activeElements.get(this);
62
- event.stopPropagation();
63
- event.preventDefault();
64
- if (node) {
65
- const target = event.target;
66
- const handler = () => {
67
- globalState.queue.length = 0;
68
- if (globalState.isComposition)
69
- return;
70
- const restore = createCaretCache(target);
71
- path_1.Path.setIn(node.props, this.getAttribute(engine.props.contentEditableAttrName), target?.textContent);
72
- (0, designable_shared_1.requestIdle)(() => {
73
- node.takeSnapshot('update:node:props');
74
- restore();
75
- });
76
- };
77
- globalState.queue.push(handler);
78
- clearTimeout(globalState.requestTimer);
79
- globalState.requestTimer = setTimeout(handler, 600);
80
- }
57
+ }
58
+ function onInputHandler(event) {
59
+ const node = globalState.activeElements.get(this)
60
+ event.stopPropagation()
61
+ event.preventDefault()
62
+ if (node) {
63
+ const target = event.target
64
+ const handler = () => {
65
+ globalState.queue.length = 0
66
+ if (globalState.isComposition) return
67
+ const restore = createCaretCache(target)
68
+ path_1.Path.setIn(
69
+ node.props,
70
+ this.getAttribute(engine.props.contentEditableAttrName),
71
+ target?.textContent
72
+ )
73
+ ;(0, designable_shared_1.requestIdle)(() => {
74
+ node.takeSnapshot('update:node:props')
75
+ restore()
76
+ })
77
+ }
78
+ globalState.queue.push(handler)
79
+ clearTimeout(globalState.requestTimer)
80
+ globalState.requestTimer = setTimeout(handler, 600)
81
81
  }
82
- function onSelectionChangeHandler() {
83
- clearTimeout(globalState.requestTimer);
84
- globalState.requestTimer = setTimeout(globalState.queue[globalState.queue.length - 1], 600);
82
+ }
83
+ function onSelectionChangeHandler() {
84
+ clearTimeout(globalState.requestTimer)
85
+ globalState.requestTimer = setTimeout(
86
+ globalState.queue[globalState.queue.length - 1],
87
+ 600
88
+ )
89
+ }
90
+ function onCompositionHandler(event) {
91
+ if (event.type === 'compositionend') {
92
+ globalState.isComposition = false
93
+ onInputHandler(event)
94
+ } else {
95
+ clearTimeout(globalState.requestTimer)
96
+ globalState.isComposition = true
85
97
  }
86
- function onCompositionHandler(event) {
87
- if (event.type === 'compositionend') {
88
- globalState.isComposition = false;
89
- onInputHandler(event);
98
+ }
99
+ function onPastHandler(event) {
100
+ event.preventDefault()
101
+ const node = globalState.activeElements.get(this)
102
+ const text = event.clipboardData.getData('text')
103
+ const selObj = designable_shared_1.globalThisPolyfill.getSelection()
104
+ const target = event.target
105
+ const selRange = selObj.getRangeAt(0)
106
+ const restore = createCaretCache(target)
107
+ selRange.deleteContents()
108
+ selRange.insertNode(document.createTextNode(text))
109
+ path_1.Path.setIn(
110
+ node.props,
111
+ this.getAttribute(engine.props.contentEditableAttrName),
112
+ target.textContent
113
+ )
114
+ restore(text.length)
115
+ }
116
+ function findTargetNodeId(element) {
117
+ if (!element) return
118
+ const nodeId = element.getAttribute(
119
+ engine.props.contentEditableNodeIdAttrName
120
+ )
121
+ if (nodeId) return nodeId
122
+ const parent = element.closest(`*[${engine.props.nodeIdAttrName}]`)
123
+ if (parent) return parent.getAttribute(engine.props.nodeIdAttrName)
124
+ }
125
+ engine.subscribeTo(events_1.MouseClickEvent, (event) => {
126
+ const target = event.data.target
127
+ const editableElement = target?.closest?.(
128
+ `*[${engine.props.contentEditableAttrName}]`
129
+ )
130
+ if (
131
+ editableElement &&
132
+ editableElement.getAttribute('contenteditable') === 'true'
133
+ )
134
+ return
135
+ globalState.activeElements.forEach((node, element) => {
136
+ globalState.activeElements.delete(element)
137
+ element.removeAttribute('contenteditable')
138
+ element.removeAttribute('spellcheck')
139
+ element.removeEventListener('input', onInputHandler)
140
+ element.removeEventListener('compositionstart', onCompositionHandler)
141
+ element.removeEventListener('compositionupdate', onCompositionHandler)
142
+ element.removeEventListener('compositionend', onCompositionHandler)
143
+ element.removeEventListener('past', onPastHandler)
144
+ document.removeEventListener('selectionchange', onSelectionChangeHandler)
145
+ })
146
+ })
147
+ engine.subscribeTo(events_1.MouseDoubleClickEvent, (event) => {
148
+ const target = event.data.target
149
+ const editableElement = target?.closest?.(
150
+ `*[${engine.props.contentEditableAttrName}]`
151
+ )
152
+ const workspace = engine.workbench.activeWorkspace
153
+ const tree = workspace.operation.tree
154
+ if (editableElement) {
155
+ const editable = editableElement.getAttribute('contenteditable')
156
+ if (editable === 'false' || !editable) {
157
+ const nodeId = findTargetNodeId(editableElement)
158
+ if (nodeId) {
159
+ const targetNode = tree.findById(nodeId)
160
+ if (targetNode) {
161
+ globalState.activeElements.set(editableElement, targetNode)
162
+ editableElement.setAttribute('spellcheck', 'false')
163
+ editableElement.setAttribute('contenteditable', 'true')
164
+ editableElement.focus()
165
+ editableElement.addEventListener('input', onInputHandler)
166
+ editableElement.addEventListener(
167
+ 'compositionstart',
168
+ onCompositionHandler
169
+ )
170
+ editableElement.addEventListener(
171
+ 'compositionupdate',
172
+ onCompositionHandler
173
+ )
174
+ editableElement.addEventListener(
175
+ 'compositionend',
176
+ onCompositionHandler
177
+ )
178
+ editableElement.addEventListener('keydown', onKeyDownHandler)
179
+ editableElement.addEventListener('paste', onPastHandler)
180
+ document.addEventListener(
181
+ 'selectionchange',
182
+ onSelectionChangeHandler
183
+ )
184
+ setEndOfContenteditable(editableElement)
185
+ }
90
186
  }
91
- else {
92
- clearTimeout(globalState.requestTimer);
93
- globalState.isComposition = true;
94
- }
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 = designable_shared_1.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_1.Path.setIn(node.props, this.getAttribute(engine.props.contentEditableAttrName), target.textContent);
107
- restore(text.length);
187
+ }
108
188
  }
109
- function findTargetNodeId(element) {
110
- if (!element)
111
- return;
112
- const nodeId = element.getAttribute(engine.props.contentEditableNodeIdAttrName);
113
- if (nodeId)
114
- return nodeId;
115
- const parent = element.closest(`*[${engine.props.nodeIdAttrName}]`);
116
- if (parent)
117
- return parent.getAttribute(engine.props.nodeIdAttrName);
118
- }
119
- engine.subscribeTo(events_1.MouseClickEvent, (event) => {
120
- const target = event.data.target;
121
- const editableElement = target?.closest?.(`*[${engine.props.contentEditableAttrName}]`);
122
- if (editableElement &&
123
- editableElement.getAttribute('contenteditable') === 'true')
124
- return;
125
- globalState.activeElements.forEach((node, element) => {
126
- globalState.activeElements.delete(element);
127
- element.removeAttribute('contenteditable');
128
- element.removeAttribute('spellcheck');
129
- element.removeEventListener('input', onInputHandler);
130
- element.removeEventListener('compositionstart', onCompositionHandler);
131
- element.removeEventListener('compositionupdate', onCompositionHandler);
132
- element.removeEventListener('compositionend', onCompositionHandler);
133
- element.removeEventListener('past', onPastHandler);
134
- document.removeEventListener('selectionchange', onSelectionChangeHandler);
135
- });
136
- });
137
- engine.subscribeTo(events_1.MouseDoubleClickEvent, (event) => {
138
- const target = event.data.target;
139
- const editableElement = target?.closest?.(`*[${engine.props.contentEditableAttrName}]`);
140
- const workspace = engine.workbench.activeWorkspace;
141
- const tree = workspace.operation.tree;
142
- if (editableElement) {
143
- const editable = editableElement.getAttribute('contenteditable');
144
- if (editable === 'false' || !editable) {
145
- const nodeId = findTargetNodeId(editableElement);
146
- if (nodeId) {
147
- const targetNode = tree.findById(nodeId);
148
- if (targetNode) {
149
- globalState.activeElements.set(editableElement, targetNode);
150
- editableElement.setAttribute('spellcheck', 'false');
151
- editableElement.setAttribute('contenteditable', 'true');
152
- editableElement.focus();
153
- editableElement.addEventListener('input', onInputHandler);
154
- editableElement.addEventListener('compositionstart', onCompositionHandler);
155
- editableElement.addEventListener('compositionupdate', onCompositionHandler);
156
- editableElement.addEventListener('compositionend', onCompositionHandler);
157
- editableElement.addEventListener('keydown', onKeyDownHandler);
158
- editableElement.addEventListener('paste', onPastHandler);
159
- document.addEventListener('selectionchange', onSelectionChangeHandler);
160
- setEndOfContenteditable(editableElement);
161
- }
162
- }
163
- }
164
- }
165
- });
166
- };
167
- exports.useContentEditableEffect = useContentEditableEffect;
189
+ })
190
+ }
191
+ exports.useContentEditableEffect = useContentEditableEffect
@@ -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,61 +1,60 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useCursorEffect = void 0;
4
- const models_1 = require("../models");
5
- const events_1 = require("../events");
6
- const designable_shared_1 = require("@thienvu18/designable-shared");
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
3
+ exports.useCursorEffect = void 0
4
+ const models_1 = require('../models')
5
+ const events_1 = require('../events')
6
+ const designable_shared_1 = require('@thienvu18/designable-shared')
7
7
  const useCursorEffect = (engine) => {
8
- engine.subscribeTo(events_1.MouseMoveEvent, (event) => {
9
- engine.cursor.setStatus(engine.cursor.status === models_1.CursorStatus.Dragging ||
10
- engine.cursor.status === models_1.CursorStatus.DragStart
11
- ? engine.cursor.status
12
- : models_1.CursorStatus.Normal);
13
- if (engine.cursor.status === models_1.CursorStatus.Dragging)
14
- return;
15
- engine.cursor.setPosition(event.data);
16
- });
17
- engine.subscribeTo(events_1.DragStartEvent, (event) => {
18
- engine.cursor.setStatus(models_1.CursorStatus.DragStart);
19
- engine.cursor.setDragStartPosition(event.data);
20
- });
21
- engine.subscribeTo(events_1.DragMoveEvent, (event) => {
22
- engine.cursor.setStatus(models_1.CursorStatus.Dragging);
23
- engine.cursor.setPosition(event.data);
24
- });
25
- engine.subscribeTo(events_1.DragStopEvent, (event) => {
26
- engine.cursor.setStatus(models_1.CursorStatus.DragStop);
27
- engine.cursor.setDragEndPosition(event.data);
28
- engine.cursor.setDragStartPosition(null);
29
- (0, designable_shared_1.requestIdle)(() => {
30
- engine.cursor.setStatus(models_1.CursorStatus.Normal);
31
- });
32
- });
33
- engine.subscribeTo(events_1.MouseMoveEvent, (event) => {
34
- const currentWorkspace = event?.context?.workspace;
35
- if (!currentWorkspace)
36
- return;
37
- const operation = currentWorkspace.operation;
38
- if (engine.cursor.status !== models_1.CursorStatus.Normal) {
39
- operation.hover.clear();
40
- return;
41
- }
42
- const target = event.data.target;
43
- const el = target?.closest?.(`
8
+ engine.subscribeTo(events_1.MouseMoveEvent, (event) => {
9
+ engine.cursor.setStatus(
10
+ engine.cursor.status === models_1.CursorStatus.Dragging ||
11
+ engine.cursor.status === models_1.CursorStatus.DragStart
12
+ ? engine.cursor.status
13
+ : models_1.CursorStatus.Normal
14
+ )
15
+ if (engine.cursor.status === models_1.CursorStatus.Dragging) return
16
+ engine.cursor.setPosition(event.data)
17
+ })
18
+ engine.subscribeTo(events_1.DragStartEvent, (event) => {
19
+ engine.cursor.setStatus(models_1.CursorStatus.DragStart)
20
+ engine.cursor.setDragStartPosition(event.data)
21
+ })
22
+ engine.subscribeTo(events_1.DragMoveEvent, (event) => {
23
+ engine.cursor.setStatus(models_1.CursorStatus.Dragging)
24
+ engine.cursor.setPosition(event.data)
25
+ })
26
+ engine.subscribeTo(events_1.DragStopEvent, (event) => {
27
+ engine.cursor.setStatus(models_1.CursorStatus.DragStop)
28
+ engine.cursor.setDragEndPosition(event.data)
29
+ engine.cursor.setDragStartPosition(null)
30
+ ;(0, designable_shared_1.requestIdle)(() => {
31
+ engine.cursor.setStatus(models_1.CursorStatus.Normal)
32
+ })
33
+ })
34
+ engine.subscribeTo(events_1.MouseMoveEvent, (event) => {
35
+ const currentWorkspace = event?.context?.workspace
36
+ if (!currentWorkspace) return
37
+ const operation = currentWorkspace.operation
38
+ if (engine.cursor.status !== models_1.CursorStatus.Normal) {
39
+ operation.hover.clear()
40
+ return
41
+ }
42
+ const target = event.data.target
43
+ const el = target?.closest?.(`
44
44
  *[${engine.props.nodeIdAttrName}],
45
45
  *[${engine.props.outlineNodeIdAttrName}]
46
- `);
47
- if (!el?.getAttribute) {
48
- return;
49
- }
50
- const nodeId = el.getAttribute(engine.props.nodeIdAttrName);
51
- const outlineNodeId = el.getAttribute(engine.props.outlineNodeIdAttrName);
52
- const node = operation.tree.findById(nodeId || outlineNodeId);
53
- if (node) {
54
- operation.hover.setHover(node);
55
- }
56
- else {
57
- operation.hover.clear();
58
- }
59
- });
60
- };
61
- exports.useCursorEffect = useCursorEffect;
46
+ `)
47
+ if (!el?.getAttribute) {
48
+ return
49
+ }
50
+ const nodeId = el.getAttribute(engine.props.nodeIdAttrName)
51
+ const outlineNodeId = el.getAttribute(engine.props.outlineNodeIdAttrName)
52
+ const node = operation.tree.findById(nodeId || outlineNodeId)
53
+ if (node) {
54
+ operation.hover.setHover(node)
55
+ } else {
56
+ operation.hover.clear()
57
+ }
58
+ })
59
+ }
60
+ exports.useCursorEffect = useCursorEffect
@@ -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