@sulesky/next-core 1.0.3

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 (488) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +1 -0
  3. package/dist/designable.core.umd.production.js +1 -0
  4. package/dist/designable.core.umd.production.min.js +7994 -0
  5. package/esm/drivers/DragDropDriver.d.ts +14 -0
  6. package/esm/drivers/DragDropDriver.js +157 -0
  7. package/esm/drivers/KeyboardDriver.d.ts +7 -0
  8. package/esm/drivers/KeyboardDriver.js +90 -0
  9. package/esm/drivers/MouseClickDriver.d.ts +8 -0
  10. package/esm/drivers/MouseClickDriver.js +95 -0
  11. package/esm/drivers/MouseMoveDriver.d.ts +8 -0
  12. package/esm/drivers/MouseMoveDriver.js +75 -0
  13. package/esm/drivers/ViewportResizeDriver.d.ts +10 -0
  14. package/esm/drivers/ViewportResizeDriver.js +94 -0
  15. package/esm/drivers/ViewportScrollDriver.d.ts +8 -0
  16. package/esm/drivers/ViewportScrollDriver.js +74 -0
  17. package/esm/drivers/index.d.ts +6 -0
  18. package/esm/drivers/index.js +6 -0
  19. package/esm/effects/index.d.ts +11 -0
  20. package/esm/effects/index.js +11 -0
  21. package/esm/effects/useAutoScrollEffect.d.ts +2 -0
  22. package/esm/effects/useAutoScrollEffect.js +65 -0
  23. package/esm/effects/useContentEditableEffect.d.ts +2 -0
  24. package/esm/effects/useContentEditableEffect.js +167 -0
  25. package/esm/effects/useCursorEffect.d.ts +2 -0
  26. package/esm/effects/useCursorEffect.js +55 -0
  27. package/esm/effects/useDragDropEffect.d.ts +2 -0
  28. package/esm/effects/useDragDropEffect.js +168 -0
  29. package/esm/effects/useFreeSelectionEffect.d.ts +2 -0
  30. package/esm/effects/useFreeSelectionEffect.js +59 -0
  31. package/esm/effects/useKeyboardEffect.d.ts +2 -0
  32. package/esm/effects/useKeyboardEffect.js +17 -0
  33. package/esm/effects/useResizeEffect.d.ts +2 -0
  34. package/esm/effects/useResizeEffect.js +80 -0
  35. package/esm/effects/useSelectionEffect.d.ts +2 -0
  36. package/esm/effects/useSelectionEffect.js +68 -0
  37. package/esm/effects/useTranslateEffect.d.ts +2 -0
  38. package/esm/effects/useTranslateEffect.js +58 -0
  39. package/esm/effects/useViewportEffect.d.ts +2 -0
  40. package/esm/effects/useViewportEffect.js +31 -0
  41. package/esm/effects/useWorkspaceEffect.d.ts +2 -0
  42. package/esm/effects/useWorkspaceEffect.js +29 -0
  43. package/esm/events/cursor/AbstractCursorEvent.d.ts +21 -0
  44. package/esm/events/cursor/AbstractCursorEvent.js +40 -0
  45. package/esm/events/cursor/DragMoveEvent.d.ts +5 -0
  46. package/esm/events/cursor/DragMoveEvent.js +51 -0
  47. package/esm/events/cursor/DragStartEvent.d.ts +5 -0
  48. package/esm/events/cursor/DragStartEvent.js +51 -0
  49. package/esm/events/cursor/DragStopEvent.d.ts +5 -0
  50. package/esm/events/cursor/DragStopEvent.js +51 -0
  51. package/esm/events/cursor/MouseClickEvent.d.ts +8 -0
  52. package/esm/events/cursor/MouseClickEvent.js +61 -0
  53. package/esm/events/cursor/MouseMoveEvent.d.ts +5 -0
  54. package/esm/events/cursor/MouseMoveEvent.js +51 -0
  55. package/esm/events/cursor/index.d.ts +5 -0
  56. package/esm/events/cursor/index.js +5 -0
  57. package/esm/events/history/AbstractHistoryEvent.d.ts +6 -0
  58. package/esm/events/history/AbstractHistoryEvent.js +7 -0
  59. package/esm/events/history/HistoryGotoEvent.d.ts +5 -0
  60. package/esm/events/history/HistoryGotoEvent.js +51 -0
  61. package/esm/events/history/HistoryPushEvent.d.ts +5 -0
  62. package/esm/events/history/HistoryPushEvent.js +51 -0
  63. package/esm/events/history/HistoryRedoEvent.d.ts +5 -0
  64. package/esm/events/history/HistoryRedoEvent.js +51 -0
  65. package/esm/events/history/HistoryUndoEvent.d.ts +5 -0
  66. package/esm/events/history/HistoryUndoEvent.js +51 -0
  67. package/esm/events/history/index.d.ts +4 -0
  68. package/esm/events/history/index.js +4 -0
  69. package/esm/events/index.d.ts +6 -0
  70. package/esm/events/index.js +6 -0
  71. package/esm/events/keyboard/AbstractKeyboardEvent.d.ts +15 -0
  72. package/esm/events/keyboard/AbstractKeyboardEvent.js +61 -0
  73. package/esm/events/keyboard/KeyDownEvent.d.ts +5 -0
  74. package/esm/events/keyboard/KeyDownEvent.js +51 -0
  75. package/esm/events/keyboard/KeyUpEvent.d.ts +5 -0
  76. package/esm/events/keyboard/KeyUpEvent.js +51 -0
  77. package/esm/events/keyboard/index.d.ts +2 -0
  78. package/esm/events/keyboard/index.js +2 -0
  79. package/esm/events/mutation/AbstractMutationNodeEvent.d.ts +13 -0
  80. package/esm/events/mutation/AbstractMutationNodeEvent.js +7 -0
  81. package/esm/events/mutation/AppendNodeEvent.d.ts +5 -0
  82. package/esm/events/mutation/AppendNodeEvent.js +51 -0
  83. package/esm/events/mutation/CloneNodeEvent.d.ts +5 -0
  84. package/esm/events/mutation/CloneNodeEvent.js +51 -0
  85. package/esm/events/mutation/DragNodeEvent.d.ts +5 -0
  86. package/esm/events/mutation/DragNodeEvent.js +51 -0
  87. package/esm/events/mutation/DropNodeEvent.d.ts +5 -0
  88. package/esm/events/mutation/DropNodeEvent.js +51 -0
  89. package/esm/events/mutation/FromNodeEvent.d.ts +13 -0
  90. package/esm/events/mutation/FromNodeEvent.js +8 -0
  91. package/esm/events/mutation/HoverNodeEvent.d.ts +5 -0
  92. package/esm/events/mutation/HoverNodeEvent.js +51 -0
  93. package/esm/events/mutation/InsertAfterEvent.d.ts +5 -0
  94. package/esm/events/mutation/InsertAfterEvent.js +51 -0
  95. package/esm/events/mutation/InsertBeforeEvent.d.ts +5 -0
  96. package/esm/events/mutation/InsertBeforeEvent.js +51 -0
  97. package/esm/events/mutation/InsertChildrenEvent.d.ts +5 -0
  98. package/esm/events/mutation/InsertChildrenEvent.js +51 -0
  99. package/esm/events/mutation/PrependNodeEvent.d.ts +5 -0
  100. package/esm/events/mutation/PrependNodeEvent.js +51 -0
  101. package/esm/events/mutation/RemoveNodeEvent.d.ts +5 -0
  102. package/esm/events/mutation/RemoveNodeEvent.js +51 -0
  103. package/esm/events/mutation/SelectNodeEvent.d.ts +5 -0
  104. package/esm/events/mutation/SelectNodeEvent.js +51 -0
  105. package/esm/events/mutation/UnSelectNodeEvent.d.ts +5 -0
  106. package/esm/events/mutation/UnSelectNodeEvent.js +51 -0
  107. package/esm/events/mutation/UpdateChildrenEvent.d.ts +5 -0
  108. package/esm/events/mutation/UpdateChildrenEvent.js +51 -0
  109. package/esm/events/mutation/UpdateNodePropsEvent.d.ts +5 -0
  110. package/esm/events/mutation/UpdateNodePropsEvent.js +51 -0
  111. package/esm/events/mutation/UserSelectNodeEvent.d.ts +5 -0
  112. package/esm/events/mutation/UserSelectNodeEvent.js +51 -0
  113. package/esm/events/mutation/WrapNodeEvent.d.ts +5 -0
  114. package/esm/events/mutation/WrapNodeEvent.js +51 -0
  115. package/esm/events/mutation/index.d.ts +16 -0
  116. package/esm/events/mutation/index.js +16 -0
  117. package/esm/events/viewport/AbstractViewportEvent.d.ts +16 -0
  118. package/esm/events/viewport/AbstractViewportEvent.js +17 -0
  119. package/esm/events/viewport/ViewportResizeEvent.d.ts +5 -0
  120. package/esm/events/viewport/ViewportResizeEvent.js +51 -0
  121. package/esm/events/viewport/ViewportScrollEvent.d.ts +5 -0
  122. package/esm/events/viewport/ViewportScrollEvent.js +51 -0
  123. package/esm/events/viewport/index.d.ts +2 -0
  124. package/esm/events/viewport/index.js +2 -0
  125. package/esm/events/workbench/AbstractWorkspaceEvent.d.ts +7 -0
  126. package/esm/events/workbench/AbstractWorkspaceEvent.js +7 -0
  127. package/esm/events/workbench/AddWorkspaceEvent.d.ts +5 -0
  128. package/esm/events/workbench/AddWorkspaceEvent.js +51 -0
  129. package/esm/events/workbench/RemoveWorkspaceEvent.d.ts +5 -0
  130. package/esm/events/workbench/RemoveWorkspaceEvent.js +51 -0
  131. package/esm/events/workbench/SwitchWorkspaceEvent.d.ts +5 -0
  132. package/esm/events/workbench/SwitchWorkspaceEvent.js +51 -0
  133. package/esm/events/workbench/index.d.ts +3 -0
  134. package/esm/events/workbench/index.js +3 -0
  135. package/esm/exports.d.ts +5 -0
  136. package/esm/exports.js +5 -0
  137. package/esm/externals.d.ts +12 -0
  138. package/esm/externals.js +113 -0
  139. package/esm/index.d.ts +1 -0
  140. package/esm/index.js +24 -0
  141. package/esm/internals.d.ts +3 -0
  142. package/esm/internals.js +34 -0
  143. package/esm/models/Cursor.d.ts +60 -0
  144. package/esm/models/Cursor.js +151 -0
  145. package/esm/models/Engine.d.ts +29 -0
  146. package/esm/models/Engine.js +112 -0
  147. package/esm/models/History.d.ts +34 -0
  148. package/esm/models/History.js +110 -0
  149. package/esm/models/Hover.d.ts +14 -0
  150. package/esm/models/Hover.js +38 -0
  151. package/esm/models/Keyboard.d.ts +29 -0
  152. package/esm/models/Keyboard.js +126 -0
  153. package/esm/models/MoveHelper.d.ts +66 -0
  154. package/esm/models/MoveHelper.js +363 -0
  155. package/esm/models/Operation.d.ts +29 -0
  156. package/esm/models/Operation.js +75 -0
  157. package/esm/models/Screen.d.ts +31 -0
  158. package/esm/models/Screen.js +73 -0
  159. package/esm/models/Selection.d.ts +29 -0
  160. package/esm/models/Selection.js +192 -0
  161. package/esm/models/Shortcut.d.ts +20 -0
  162. package/esm/models/Shortcut.js +69 -0
  163. package/esm/models/SnapLine.d.ts +27 -0
  164. package/esm/models/SnapLine.js +141 -0
  165. package/esm/models/SpaceBlock.d.ts +40 -0
  166. package/esm/models/SpaceBlock.js +171 -0
  167. package/esm/models/TransformHelper.d.ts +80 -0
  168. package/esm/models/TransformHelper.js +601 -0
  169. package/esm/models/TreeNode.d.ts +115 -0
  170. package/esm/models/TreeNode.js +933 -0
  171. package/esm/models/Viewport.d.ts +90 -0
  172. package/esm/models/Viewport.js +474 -0
  173. package/esm/models/Workbench.d.ts +23 -0
  174. package/esm/models/Workbench.js +98 -0
  175. package/esm/models/Workspace.d.ts +41 -0
  176. package/esm/models/Workspace.js +95 -0
  177. package/esm/models/index.d.ts +13 -0
  178. package/esm/models/index.js +13 -0
  179. package/esm/presets.d.ts +4 -0
  180. package/esm/presets.js +38 -0
  181. package/esm/registry.d.ts +16 -0
  182. package/esm/registry.js +123 -0
  183. package/esm/shortcuts/CursorSwitch.d.ts +2 -0
  184. package/esm/shortcuts/CursorSwitch.js +10 -0
  185. package/esm/shortcuts/MultiSelection.d.ts +5 -0
  186. package/esm/shortcuts/MultiSelection.js +27 -0
  187. package/esm/shortcuts/NodeMutation.d.ts +7 -0
  188. package/esm/shortcuts/NodeMutation.js +40 -0
  189. package/esm/shortcuts/QuickSelection.d.ts +3 -0
  190. package/esm/shortcuts/QuickSelection.js +85 -0
  191. package/esm/shortcuts/UndoRedo.d.ts +3 -0
  192. package/esm/shortcuts/UndoRedo.js +27 -0
  193. package/esm/shortcuts/index.d.ts +5 -0
  194. package/esm/shortcuts/index.js +5 -0
  195. package/esm/types.d.ts +131 -0
  196. package/esm/types.js +1 -0
  197. package/lib/drivers/DragDropDriver.d.ts +14 -0
  198. package/lib/drivers/DragDropDriver.js +160 -0
  199. package/lib/drivers/KeyboardDriver.d.ts +7 -0
  200. package/lib/drivers/KeyboardDriver.js +93 -0
  201. package/lib/drivers/MouseClickDriver.d.ts +8 -0
  202. package/lib/drivers/MouseClickDriver.js +98 -0
  203. package/lib/drivers/MouseMoveDriver.d.ts +8 -0
  204. package/lib/drivers/MouseMoveDriver.js +78 -0
  205. package/lib/drivers/ViewportResizeDriver.d.ts +10 -0
  206. package/lib/drivers/ViewportResizeDriver.js +97 -0
  207. package/lib/drivers/ViewportScrollDriver.d.ts +8 -0
  208. package/lib/drivers/ViewportScrollDriver.js +77 -0
  209. package/lib/drivers/index.d.ts +6 -0
  210. package/lib/drivers/index.js +22 -0
  211. package/lib/effects/index.d.ts +11 -0
  212. package/lib/effects/index.js +27 -0
  213. package/lib/effects/useAutoScrollEffect.d.ts +2 -0
  214. package/lib/effects/useAutoScrollEffect.js +69 -0
  215. package/lib/effects/useContentEditableEffect.d.ts +2 -0
  216. package/lib/effects/useContentEditableEffect.js +171 -0
  217. package/lib/effects/useCursorEffect.d.ts +2 -0
  218. package/lib/effects/useCursorEffect.js +59 -0
  219. package/lib/effects/useDragDropEffect.d.ts +2 -0
  220. package/lib/effects/useDragDropEffect.js +172 -0
  221. package/lib/effects/useFreeSelectionEffect.d.ts +2 -0
  222. package/lib/effects/useFreeSelectionEffect.js +63 -0
  223. package/lib/effects/useKeyboardEffect.d.ts +2 -0
  224. package/lib/effects/useKeyboardEffect.js +21 -0
  225. package/lib/effects/useResizeEffect.d.ts +2 -0
  226. package/lib/effects/useResizeEffect.js +84 -0
  227. package/lib/effects/useSelectionEffect.d.ts +2 -0
  228. package/lib/effects/useSelectionEffect.js +72 -0
  229. package/lib/effects/useTranslateEffect.d.ts +2 -0
  230. package/lib/effects/useTranslateEffect.js +62 -0
  231. package/lib/effects/useViewportEffect.d.ts +2 -0
  232. package/lib/effects/useViewportEffect.js +35 -0
  233. package/lib/effects/useWorkspaceEffect.d.ts +2 -0
  234. package/lib/effects/useWorkspaceEffect.js +33 -0
  235. package/lib/events/cursor/AbstractCursorEvent.d.ts +21 -0
  236. package/lib/events/cursor/AbstractCursorEvent.js +43 -0
  237. package/lib/events/cursor/DragMoveEvent.d.ts +5 -0
  238. package/lib/events/cursor/DragMoveEvent.js +54 -0
  239. package/lib/events/cursor/DragStartEvent.d.ts +5 -0
  240. package/lib/events/cursor/DragStartEvent.js +54 -0
  241. package/lib/events/cursor/DragStopEvent.d.ts +5 -0
  242. package/lib/events/cursor/DragStopEvent.js +54 -0
  243. package/lib/events/cursor/MouseClickEvent.d.ts +8 -0
  244. package/lib/events/cursor/MouseClickEvent.js +64 -0
  245. package/lib/events/cursor/MouseMoveEvent.d.ts +5 -0
  246. package/lib/events/cursor/MouseMoveEvent.js +54 -0
  247. package/lib/events/cursor/index.d.ts +5 -0
  248. package/lib/events/cursor/index.js +21 -0
  249. package/lib/events/history/AbstractHistoryEvent.d.ts +6 -0
  250. package/lib/events/history/AbstractHistoryEvent.js +10 -0
  251. package/lib/events/history/HistoryGotoEvent.d.ts +5 -0
  252. package/lib/events/history/HistoryGotoEvent.js +54 -0
  253. package/lib/events/history/HistoryPushEvent.d.ts +5 -0
  254. package/lib/events/history/HistoryPushEvent.js +54 -0
  255. package/lib/events/history/HistoryRedoEvent.d.ts +5 -0
  256. package/lib/events/history/HistoryRedoEvent.js +54 -0
  257. package/lib/events/history/HistoryUndoEvent.d.ts +5 -0
  258. package/lib/events/history/HistoryUndoEvent.js +54 -0
  259. package/lib/events/history/index.d.ts +4 -0
  260. package/lib/events/history/index.js +20 -0
  261. package/lib/events/index.d.ts +6 -0
  262. package/lib/events/index.js +22 -0
  263. package/lib/events/keyboard/AbstractKeyboardEvent.d.ts +15 -0
  264. package/lib/events/keyboard/AbstractKeyboardEvent.js +64 -0
  265. package/lib/events/keyboard/KeyDownEvent.d.ts +5 -0
  266. package/lib/events/keyboard/KeyDownEvent.js +54 -0
  267. package/lib/events/keyboard/KeyUpEvent.d.ts +5 -0
  268. package/lib/events/keyboard/KeyUpEvent.js +54 -0
  269. package/lib/events/keyboard/index.d.ts +2 -0
  270. package/lib/events/keyboard/index.js +18 -0
  271. package/lib/events/mutation/AbstractMutationNodeEvent.d.ts +13 -0
  272. package/lib/events/mutation/AbstractMutationNodeEvent.js +10 -0
  273. package/lib/events/mutation/AppendNodeEvent.d.ts +5 -0
  274. package/lib/events/mutation/AppendNodeEvent.js +54 -0
  275. package/lib/events/mutation/CloneNodeEvent.d.ts +5 -0
  276. package/lib/events/mutation/CloneNodeEvent.js +54 -0
  277. package/lib/events/mutation/DragNodeEvent.d.ts +5 -0
  278. package/lib/events/mutation/DragNodeEvent.js +54 -0
  279. package/lib/events/mutation/DropNodeEvent.d.ts +5 -0
  280. package/lib/events/mutation/DropNodeEvent.js +54 -0
  281. package/lib/events/mutation/FromNodeEvent.d.ts +13 -0
  282. package/lib/events/mutation/FromNodeEvent.js +11 -0
  283. package/lib/events/mutation/HoverNodeEvent.d.ts +5 -0
  284. package/lib/events/mutation/HoverNodeEvent.js +54 -0
  285. package/lib/events/mutation/InsertAfterEvent.d.ts +5 -0
  286. package/lib/events/mutation/InsertAfterEvent.js +54 -0
  287. package/lib/events/mutation/InsertBeforeEvent.d.ts +5 -0
  288. package/lib/events/mutation/InsertBeforeEvent.js +54 -0
  289. package/lib/events/mutation/InsertChildrenEvent.d.ts +5 -0
  290. package/lib/events/mutation/InsertChildrenEvent.js +54 -0
  291. package/lib/events/mutation/PrependNodeEvent.d.ts +5 -0
  292. package/lib/events/mutation/PrependNodeEvent.js +54 -0
  293. package/lib/events/mutation/RemoveNodeEvent.d.ts +5 -0
  294. package/lib/events/mutation/RemoveNodeEvent.js +54 -0
  295. package/lib/events/mutation/SelectNodeEvent.d.ts +5 -0
  296. package/lib/events/mutation/SelectNodeEvent.js +54 -0
  297. package/lib/events/mutation/UnSelectNodeEvent.d.ts +5 -0
  298. package/lib/events/mutation/UnSelectNodeEvent.js +54 -0
  299. package/lib/events/mutation/UpdateChildrenEvent.d.ts +5 -0
  300. package/lib/events/mutation/UpdateChildrenEvent.js +54 -0
  301. package/lib/events/mutation/UpdateNodePropsEvent.d.ts +5 -0
  302. package/lib/events/mutation/UpdateNodePropsEvent.js +54 -0
  303. package/lib/events/mutation/UserSelectNodeEvent.d.ts +5 -0
  304. package/lib/events/mutation/UserSelectNodeEvent.js +54 -0
  305. package/lib/events/mutation/WrapNodeEvent.d.ts +5 -0
  306. package/lib/events/mutation/WrapNodeEvent.js +54 -0
  307. package/lib/events/mutation/index.d.ts +16 -0
  308. package/lib/events/mutation/index.js +32 -0
  309. package/lib/events/viewport/AbstractViewportEvent.d.ts +16 -0
  310. package/lib/events/viewport/AbstractViewportEvent.js +20 -0
  311. package/lib/events/viewport/ViewportResizeEvent.d.ts +5 -0
  312. package/lib/events/viewport/ViewportResizeEvent.js +54 -0
  313. package/lib/events/viewport/ViewportScrollEvent.d.ts +5 -0
  314. package/lib/events/viewport/ViewportScrollEvent.js +54 -0
  315. package/lib/events/viewport/index.d.ts +2 -0
  316. package/lib/events/viewport/index.js +18 -0
  317. package/lib/events/workbench/AbstractWorkspaceEvent.d.ts +7 -0
  318. package/lib/events/workbench/AbstractWorkspaceEvent.js +10 -0
  319. package/lib/events/workbench/AddWorkspaceEvent.d.ts +5 -0
  320. package/lib/events/workbench/AddWorkspaceEvent.js +54 -0
  321. package/lib/events/workbench/RemoveWorkspaceEvent.d.ts +5 -0
  322. package/lib/events/workbench/RemoveWorkspaceEvent.js +54 -0
  323. package/lib/events/workbench/SwitchWorkspaceEvent.d.ts +5 -0
  324. package/lib/events/workbench/SwitchWorkspaceEvent.js +54 -0
  325. package/lib/events/workbench/index.d.ts +3 -0
  326. package/lib/events/workbench/index.js +19 -0
  327. package/lib/exports.d.ts +5 -0
  328. package/lib/exports.js +21 -0
  329. package/lib/externals.d.ts +12 -0
  330. package/lib/externals.js +126 -0
  331. package/lib/index.d.ts +1 -0
  332. package/lib/index.js +62 -0
  333. package/lib/internals.d.ts +3 -0
  334. package/lib/internals.js +40 -0
  335. package/lib/models/Cursor.d.ts +60 -0
  336. package/lib/models/Cursor.js +154 -0
  337. package/lib/models/Engine.d.ts +29 -0
  338. package/lib/models/Engine.js +115 -0
  339. package/lib/models/History.d.ts +34 -0
  340. package/lib/models/History.js +113 -0
  341. package/lib/models/Hover.d.ts +14 -0
  342. package/lib/models/Hover.js +41 -0
  343. package/lib/models/Keyboard.d.ts +29 -0
  344. package/lib/models/Keyboard.js +129 -0
  345. package/lib/models/MoveHelper.d.ts +66 -0
  346. package/lib/models/MoveHelper.js +366 -0
  347. package/lib/models/Operation.d.ts +29 -0
  348. package/lib/models/Operation.js +78 -0
  349. package/lib/models/Screen.d.ts +31 -0
  350. package/lib/models/Screen.js +76 -0
  351. package/lib/models/Selection.d.ts +29 -0
  352. package/lib/models/Selection.js +195 -0
  353. package/lib/models/Shortcut.d.ts +20 -0
  354. package/lib/models/Shortcut.js +72 -0
  355. package/lib/models/SnapLine.d.ts +27 -0
  356. package/lib/models/SnapLine.js +144 -0
  357. package/lib/models/SpaceBlock.d.ts +40 -0
  358. package/lib/models/SpaceBlock.js +174 -0
  359. package/lib/models/TransformHelper.d.ts +80 -0
  360. package/lib/models/TransformHelper.js +604 -0
  361. package/lib/models/TreeNode.d.ts +115 -0
  362. package/lib/models/TreeNode.js +936 -0
  363. package/lib/models/Viewport.d.ts +90 -0
  364. package/lib/models/Viewport.js +477 -0
  365. package/lib/models/Workbench.d.ts +23 -0
  366. package/lib/models/Workbench.js +101 -0
  367. package/lib/models/Workspace.d.ts +41 -0
  368. package/lib/models/Workspace.js +98 -0
  369. package/lib/models/index.d.ts +13 -0
  370. package/lib/models/index.js +29 -0
  371. package/lib/presets.d.ts +4 -0
  372. package/lib/presets.js +41 -0
  373. package/lib/registry.d.ts +16 -0
  374. package/lib/registry.js +126 -0
  375. package/lib/shortcuts/CursorSwitch.d.ts +2 -0
  376. package/lib/shortcuts/CursorSwitch.js +13 -0
  377. package/lib/shortcuts/MultiSelection.d.ts +5 -0
  378. package/lib/shortcuts/MultiSelection.js +30 -0
  379. package/lib/shortcuts/NodeMutation.d.ts +7 -0
  380. package/lib/shortcuts/NodeMutation.js +43 -0
  381. package/lib/shortcuts/QuickSelection.d.ts +3 -0
  382. package/lib/shortcuts/QuickSelection.js +88 -0
  383. package/lib/shortcuts/UndoRedo.d.ts +3 -0
  384. package/lib/shortcuts/UndoRedo.js +30 -0
  385. package/lib/shortcuts/index.d.ts +5 -0
  386. package/lib/shortcuts/index.js +21 -0
  387. package/lib/types.d.ts +131 -0
  388. package/lib/types.js +2 -0
  389. package/package.json +43 -0
  390. package/rollup.config.mjs +3 -0
  391. package/src/drivers/DragDropDriver.ts +143 -0
  392. package/src/drivers/KeyboardDriver.ts +49 -0
  393. package/src/drivers/MouseClickDriver.ts +61 -0
  394. package/src/drivers/MouseMoveDriver.ts +34 -0
  395. package/src/drivers/ViewportResizeDriver.ts +52 -0
  396. package/src/drivers/ViewportScrollDriver.ts +34 -0
  397. package/src/drivers/index.ts +6 -0
  398. package/src/effects/index.ts +11 -0
  399. package/src/effects/useAutoScrollEffect.ts +82 -0
  400. package/src/effects/useContentEditableEffect.ts +207 -0
  401. package/src/effects/useCursorEffect.ts +62 -0
  402. package/src/effects/useDragDropEffect.ts +185 -0
  403. package/src/effects/useFreeSelectionEffect.ts +66 -0
  404. package/src/effects/useKeyboardEffect.ts +20 -0
  405. package/src/effects/useResizeEffect.ts +92 -0
  406. package/src/effects/useSelectionEffect.ts +68 -0
  407. package/src/effects/useTranslateEffect.ts +59 -0
  408. package/src/effects/useViewportEffect.ts +29 -0
  409. package/src/effects/useWorkspaceEffect.ts +35 -0
  410. package/src/events/cursor/AbstractCursorEvent.ts +62 -0
  411. package/src/events/cursor/DragMoveEvent.ts +6 -0
  412. package/src/events/cursor/DragStartEvent.ts +9 -0
  413. package/src/events/cursor/DragStopEvent.ts +6 -0
  414. package/src/events/cursor/MouseClickEvent.ts +16 -0
  415. package/src/events/cursor/MouseMoveEvent.ts +9 -0
  416. package/src/events/cursor/index.ts +5 -0
  417. package/src/events/history/AbstractHistoryEvent.ts +9 -0
  418. package/src/events/history/HistoryGotoEvent.ts +9 -0
  419. package/src/events/history/HistoryPushEvent.ts +9 -0
  420. package/src/events/history/HistoryRedoEvent.ts +9 -0
  421. package/src/events/history/HistoryUndoEvent.ts +9 -0
  422. package/src/events/history/index.ts +4 -0
  423. package/src/events/index.ts +6 -0
  424. package/src/events/keyboard/AbstractKeyboardEvent.ts +48 -0
  425. package/src/events/keyboard/KeyDownEvent.ts +9 -0
  426. package/src/events/keyboard/KeyUpEvent.ts +6 -0
  427. package/src/events/keyboard/index.ts +2 -0
  428. package/src/events/mutation/AbstractMutationNodeEvent.ts +21 -0
  429. package/src/events/mutation/AppendNodeEvent.ts +9 -0
  430. package/src/events/mutation/CloneNodeEvent.ts +9 -0
  431. package/src/events/mutation/DragNodeEvent.ts +9 -0
  432. package/src/events/mutation/DropNodeEvent.ts +9 -0
  433. package/src/events/mutation/FromNodeEvent.ts +19 -0
  434. package/src/events/mutation/HoverNodeEvent.ts +9 -0
  435. package/src/events/mutation/InsertAfterEvent.ts +9 -0
  436. package/src/events/mutation/InsertBeforeEvent.ts +9 -0
  437. package/src/events/mutation/InsertChildrenEvent.ts +9 -0
  438. package/src/events/mutation/PrependNodeEvent.ts +9 -0
  439. package/src/events/mutation/RemoveNodeEvent.ts +9 -0
  440. package/src/events/mutation/SelectNodeEvent.ts +9 -0
  441. package/src/events/mutation/UnSelectNodeEvent.ts +9 -0
  442. package/src/events/mutation/UpdateChildrenEvent.ts +9 -0
  443. package/src/events/mutation/UpdateNodePropsEvent.ts +9 -0
  444. package/src/events/mutation/UserSelectNodeEvent.ts +9 -0
  445. package/src/events/mutation/WrapNodeEvent.ts +9 -0
  446. package/src/events/mutation/index.ts +16 -0
  447. package/src/events/viewport/AbstractViewportEvent.ts +30 -0
  448. package/src/events/viewport/ViewportResizeEvent.ts +9 -0
  449. package/src/events/viewport/ViewportScrollEvent.ts +9 -0
  450. package/src/events/viewport/index.ts +2 -0
  451. package/src/events/workbench/AbstractWorkspaceEvent.ts +10 -0
  452. package/src/events/workbench/AddWorkspaceEvent.ts +8 -0
  453. package/src/events/workbench/RemoveWorkspaceEvent.ts +9 -0
  454. package/src/events/workbench/SwitchWorkspaceEvent.ts +9 -0
  455. package/src/events/workbench/index.ts +3 -0
  456. package/src/exports.ts +5 -0
  457. package/src/externals.ts +87 -0
  458. package/src/index.ts +15 -0
  459. package/src/internals.ts +37 -0
  460. package/src/models/Cursor.ts +198 -0
  461. package/src/models/Engine.ts +108 -0
  462. package/src/models/History.ts +125 -0
  463. package/src/models/Hover.ts +49 -0
  464. package/src/models/Keyboard.ts +126 -0
  465. package/src/models/MoveHelper.ts +383 -0
  466. package/src/models/Operation.ts +91 -0
  467. package/src/models/Screen.ts +83 -0
  468. package/src/models/Selection.ts +177 -0
  469. package/src/models/Shortcut.ts +81 -0
  470. package/src/models/SnapLine.ts +129 -0
  471. package/src/models/SpaceBlock.ts +199 -0
  472. package/src/models/TransformHelper.ts +648 -0
  473. package/src/models/TreeNode.ts +894 -0
  474. package/src/models/Viewport.ts +516 -0
  475. package/src/models/Workbench.ts +120 -0
  476. package/src/models/Workspace.ts +142 -0
  477. package/src/models/index.ts +13 -0
  478. package/src/presets.ts +73 -0
  479. package/src/registry.ts +147 -0
  480. package/src/shortcuts/CursorSwitch.ts +11 -0
  481. package/src/shortcuts/MultiSelection.ts +31 -0
  482. package/src/shortcuts/NodeMutation.ts +49 -0
  483. package/src/shortcuts/QuickSelection.ts +81 -0
  484. package/src/shortcuts/UndoRedo.ts +29 -0
  485. package/src/shortcuts/index.ts +5 -0
  486. package/src/types.ts +185 -0
  487. package/tsconfig.build.json +10 -0
  488. package/tsconfig.json +5 -0
@@ -0,0 +1,59 @@
1
+ import { Engine, CursorDragType } from '../models'
2
+ import { DragStartEvent, DragMoveEvent, DragStopEvent } from '../events'
3
+
4
+ export const useTranslateEffect = (engine: Engine) => {
5
+ engine.subscribeTo(DragStartEvent, (event) => {
6
+ const target = event.data.target as HTMLElement
7
+ const currentWorkspace =
8
+ event.context?.workspace ?? engine.workbench.activeWorkspace
9
+ const handler = target?.closest(`*[${engine.props.nodeTranslateAttrName}]`)
10
+ if (!currentWorkspace) return
11
+ const helper = currentWorkspace.operation.transformHelper
12
+ if (handler) {
13
+ const type = handler.getAttribute(engine.props.nodeTranslateAttrName)
14
+ if (type) {
15
+ const selectionElement = handler.closest(
16
+ `*[${engine.props.nodeSelectionIdAttrName}]`
17
+ ) as HTMLElement
18
+ if (selectionElement) {
19
+ const nodeId = selectionElement.getAttribute(
20
+ engine.props.nodeSelectionIdAttrName
21
+ )
22
+ if (nodeId) {
23
+ const node = engine.findNodeById(nodeId)
24
+ if (node) {
25
+ helper.dragStart({ dragNodes: [node], type: 'translate' })
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+ })
32
+ engine.subscribeTo(DragMoveEvent, (event) => {
33
+ if (engine.cursor.dragType !== CursorDragType.Translate) return
34
+ const currentWorkspace =
35
+ event.context?.workspace ?? engine.workbench.activeWorkspace
36
+ const helper = currentWorkspace?.operation.transformHelper
37
+ const dragNodes = helper.dragNodes
38
+ if (!dragNodes.length) return
39
+ helper.dragMove()
40
+ dragNodes.forEach((node) => {
41
+ const element = node.getElement()
42
+ helper.translate(node, (translate) => {
43
+ element.style.position = 'absolute'
44
+ element.style.left = '0px'
45
+ element.style.top = '0px'
46
+ element.style.transform = `translate3d(${translate.x}px,${translate.y}px,0)`
47
+ })
48
+ })
49
+ })
50
+ engine.subscribeTo(DragStopEvent, (event) => {
51
+ if (engine.cursor.dragType !== CursorDragType.Translate) return
52
+ const currentWorkspace =
53
+ event.context?.workspace ?? engine.workbench.activeWorkspace
54
+ const helper = currentWorkspace?.operation.transformHelper
55
+ if (helper) {
56
+ helper.dragEnd()
57
+ }
58
+ })
59
+ }
@@ -0,0 +1,29 @@
1
+ import { Engine } from '../models'
2
+ import { ViewportResizeEvent, ViewportScrollEvent } from '../events'
3
+
4
+ export const useViewportEffect = (engine: Engine) => {
5
+ engine.subscribeTo(ViewportResizeEvent, (event) => {
6
+ const currentWorkspace = event?.context?.workspace
7
+ if (!currentWorkspace) return
8
+ const viewport = currentWorkspace.viewport
9
+ const outline = currentWorkspace.outline
10
+ if (viewport.matchViewport(event.data.target)) {
11
+ viewport.digestViewport()
12
+ }
13
+ if (outline.matchViewport(event.data.target)) {
14
+ outline.digestViewport()
15
+ }
16
+ })
17
+ engine.subscribeTo(ViewportScrollEvent, (event) => {
18
+ const currentWorkspace = event?.context?.workspace
19
+ if (!currentWorkspace) return
20
+ const viewport = currentWorkspace.viewport
21
+ const outline = currentWorkspace.outline
22
+ if (viewport.matchViewport(event.data.target)) {
23
+ viewport.digestViewport()
24
+ }
25
+ if (outline.matchViewport(event.data.target)) {
26
+ outline.digestViewport()
27
+ }
28
+ })
29
+ }
@@ -0,0 +1,35 @@
1
+ import { Engine } from '../models'
2
+ import { ICustomEvent } from '@sulesky/next-shared'
3
+ import { IEngineContext } from '../types'
4
+ import { SelectNodeEvent } from '../events'
5
+
6
+ export const useWorkspaceEffect = (engine: Engine) => {
7
+ engine.subscribeWith<ICustomEvent<any, IEngineContext>>(
8
+ [
9
+ 'append:node',
10
+ 'insert:after',
11
+ 'insert:before',
12
+ 'insert:children',
13
+ 'drag:node',
14
+ 'drop:node',
15
+ 'prepend:node',
16
+ 'remove:node',
17
+ 'select:node',
18
+ 'update:children',
19
+ 'wrap:node',
20
+ 'update:node:props',
21
+ ],
22
+ (event) => {
23
+ if (event.context?.workbench) {
24
+ engine.workbench.setActiveWorkspace(event.context.workspace)
25
+ }
26
+ }
27
+ )
28
+ engine.subscribeTo(SelectNodeEvent, (event) => {
29
+ engine.workbench.eachWorkspace((workspace) => {
30
+ if (workspace !== event.context.workspace) {
31
+ workspace.operation.selection.clear()
32
+ }
33
+ })
34
+ })
35
+ }
@@ -0,0 +1,62 @@
1
+ import { IEngineContext } from '../../types'
2
+ import { globalThisPolyfill } from '@sulesky/next-shared'
3
+
4
+ export interface ICursorEventOriginData {
5
+ clientX: number
6
+ clientY: number
7
+ pageX: number
8
+ pageY: number
9
+ target: EventTarget
10
+ view: Window
11
+ }
12
+
13
+ export interface ICursorEventData extends ICursorEventOriginData {
14
+ topClientX?: number
15
+ topClientY?: number
16
+ topPageX?: number
17
+ topPageY?: number
18
+ }
19
+
20
+ export class AbstractCursorEvent {
21
+ data: ICursorEventData
22
+
23
+ context: IEngineContext
24
+
25
+ constructor(data: ICursorEventOriginData) {
26
+ this.data = data || {
27
+ clientX: 0,
28
+ clientY: 0,
29
+ pageX: 0,
30
+ pageY: 0,
31
+ target: null,
32
+ view: globalThisPolyfill,
33
+ }
34
+ this.transformCoordinates()
35
+ }
36
+
37
+ transformCoordinates() {
38
+ const { frameElement } = this.data?.view || {}
39
+ if (frameElement && this.data.view !== globalThisPolyfill) {
40
+ const frameRect = frameElement.getBoundingClientRect()
41
+ const scale = frameRect.width / frameElement['offsetWidth']
42
+ this.data.topClientX = this.data.clientX * scale + frameRect.x
43
+ this.data.topClientY = this.data.clientY * scale + frameRect.y
44
+ this.data.topPageX =
45
+ this.data.pageX + frameRect.x - this.data.view.scrollX
46
+ this.data.topPageY =
47
+ this.data.pageY + frameRect.y - this.data.view.scrollY
48
+ const topElement = document.elementFromPoint(
49
+ this.data.topPageX,
50
+ this.data.topClientY
51
+ )
52
+ if (topElement !== frameElement) {
53
+ this.data.target = topElement
54
+ }
55
+ } else {
56
+ this.data.topClientX = this.data.clientX
57
+ this.data.topClientY = this.data.clientY
58
+ this.data.topPageX = this.data.pageX
59
+ this.data.topPageY = this.data.pageY
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,6 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractCursorEvent } from './AbstractCursorEvent'
3
+
4
+ export class DragMoveEvent extends AbstractCursorEvent implements ICustomEvent {
5
+ type = 'drag:move'
6
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractCursorEvent } from './AbstractCursorEvent'
3
+
4
+ export class DragStartEvent
5
+ extends AbstractCursorEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'drag:start'
9
+ }
@@ -0,0 +1,6 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractCursorEvent } from './AbstractCursorEvent'
3
+
4
+ export class DragStopEvent extends AbstractCursorEvent implements ICustomEvent {
5
+ type = 'drag:stop'
6
+ }
@@ -0,0 +1,16 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractCursorEvent } from './AbstractCursorEvent'
3
+
4
+ export class MouseClickEvent
5
+ extends AbstractCursorEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'mouse:click'
9
+ }
10
+
11
+ export class MouseDoubleClickEvent
12
+ extends AbstractCursorEvent
13
+ implements ICustomEvent
14
+ {
15
+ type = 'mouse:dblclick'
16
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractCursorEvent } from './AbstractCursorEvent'
3
+
4
+ export class MouseMoveEvent
5
+ extends AbstractCursorEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'mouse:move'
9
+ }
@@ -0,0 +1,5 @@
1
+ export * from './DragMoveEvent'
2
+ export * from './DragStartEvent'
3
+ export * from './DragStopEvent'
4
+ export * from './MouseClickEvent'
5
+ export * from './MouseMoveEvent'
@@ -0,0 +1,9 @@
1
+ import { IEngineContext } from '../../types'
2
+
3
+ export class AbstractHistoryEvent {
4
+ data: any
5
+ context: IEngineContext
6
+ constructor(data: any) {
7
+ this.data = data
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractHistoryEvent } from './AbstractHistoryEvent'
3
+
4
+ export class HistoryGotoEvent
5
+ extends AbstractHistoryEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'history:goto'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractHistoryEvent } from './AbstractHistoryEvent'
3
+
4
+ export class HistoryPushEvent
5
+ extends AbstractHistoryEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'history:push'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractHistoryEvent } from './AbstractHistoryEvent'
3
+
4
+ export class HistoryUndoEvent
5
+ extends AbstractHistoryEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'history:undo'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractHistoryEvent } from './AbstractHistoryEvent'
3
+
4
+ export class HistoryRedoEvent
5
+ extends AbstractHistoryEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'history:redo'
9
+ }
@@ -0,0 +1,4 @@
1
+ export * from './HistoryRedoEvent'
2
+ export * from './HistoryUndoEvent'
3
+ export * from './HistoryGotoEvent'
4
+ export * from './HistoryPushEvent'
@@ -0,0 +1,6 @@
1
+ export * from './cursor'
2
+ export * from './keyboard'
3
+ export * from './mutation'
4
+ export * from './viewport'
5
+ export * from './workbench'
6
+ export * from './history'
@@ -0,0 +1,48 @@
1
+ import { getKeyCodeFromEvent, KeyCode } from '@sulesky/next-shared'
2
+ import { IEngineContext } from '../../types'
3
+
4
+ export class AbstractKeyboardEvent {
5
+ data: KeyCode
6
+ context: IEngineContext
7
+ originEvent: KeyboardEvent
8
+ constructor(e: KeyboardEvent) {
9
+ this.data = getKeyCodeFromEvent(e)
10
+ this.originEvent = e
11
+ }
12
+
13
+ get eventType() {
14
+ return this.originEvent.type
15
+ }
16
+
17
+ get ctrlKey() {
18
+ return this.originEvent.ctrlKey
19
+ }
20
+
21
+ get shiftKey() {
22
+ return this.originEvent.shiftKey
23
+ }
24
+
25
+ get metaKey() {
26
+ return this.originEvent.metaKey
27
+ }
28
+
29
+ get altkey() {
30
+ return this.originEvent.altKey
31
+ }
32
+
33
+ preventDefault() {
34
+ if (this.originEvent.preventDefault) {
35
+ this.originEvent.preventDefault()
36
+ } else {
37
+ this.originEvent.returnValue = false
38
+ }
39
+ }
40
+
41
+ stopPropagation() {
42
+ if (this.originEvent?.stopPropagation) {
43
+ this.originEvent.stopPropagation()
44
+ } else {
45
+ this.originEvent.cancelBubble = true
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractKeyboardEvent } from './AbstractKeyboardEvent'
3
+
4
+ export class KeyDownEvent
5
+ extends AbstractKeyboardEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'key:down'
9
+ }
@@ -0,0 +1,6 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractKeyboardEvent } from './AbstractKeyboardEvent'
3
+
4
+ export class KeyUpEvent extends AbstractKeyboardEvent implements ICustomEvent {
5
+ type = 'key:up'
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './KeyDownEvent'
2
+ export * from './KeyUpEvent'
@@ -0,0 +1,21 @@
1
+ import { TreeNode } from '../../models'
2
+ import { IEngineContext } from '../../types'
3
+
4
+ export interface IMutationNodeEventData {
5
+ //事件发生的数据源
6
+ source: TreeNode | TreeNode[]
7
+ //事件发生的目标对象
8
+ target: TreeNode | TreeNode[]
9
+ // 事件发生的来源对象
10
+ originSourceParents?: TreeNode | TreeNode[]
11
+ //扩展数据
12
+ extra?: any
13
+ }
14
+
15
+ export class AbstractMutationNodeEvent {
16
+ data: IMutationNodeEventData
17
+ context: IEngineContext
18
+ constructor(data: IMutationNodeEventData) {
19
+ this.data = data
20
+ }
21
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class AppendNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'append:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class CloneNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'clone:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class DragNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'drag:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class DropNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'drop:node'
9
+ }
@@ -0,0 +1,19 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { ITreeNode, TreeNode } from '../../models'
3
+ import { IEngineContext } from '../../types'
4
+
5
+ export interface IFromNodeEventData {
6
+ //事件发生的数据源
7
+ source: ITreeNode
8
+ //事件发生的目标对象
9
+ target: TreeNode
10
+ }
11
+
12
+ export class FromNodeEvent implements ICustomEvent {
13
+ type = 'from:node'
14
+ data: IFromNodeEventData
15
+ context: IEngineContext
16
+ constructor(data: IFromNodeEventData) {
17
+ this.data = data
18
+ }
19
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class HoverNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'hover:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class InsertAfterEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'insert:after'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class InsertBeforeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'insert:before'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class InsertChildrenEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'insert:children'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class PrependNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'prepend:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class RemoveNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'remove:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class SelectNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'select:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class UnSelectNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'unselect:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class UpdateChildrenEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'update:children'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class UpdateNodePropsEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'update:node:props'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class SelectNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'user:select:node'
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractMutationNodeEvent } from './AbstractMutationNodeEvent'
3
+
4
+ export class WrapNodeEvent
5
+ extends AbstractMutationNodeEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'wrap:node'
9
+ }
@@ -0,0 +1,16 @@
1
+ export * from './DragNodeEvent'
2
+ export * from './DropNodeEvent'
3
+ export * from './HoverNodeEvent'
4
+ export * from './InsertAfterEvent'
5
+ export * from './InsertBeforeEvent'
6
+ export * from './InsertChildrenEvent'
7
+ export * from './PrependNodeEvent'
8
+ export * from './RemoveNodeEvent'
9
+ export * from './SelectNodeEvent'
10
+ export * from './UnSelectNodeEvent'
11
+ export * from './UpdateChildrenEvent'
12
+ export * from './UpdateNodePropsEvent'
13
+ export * from './WrapNodeEvent'
14
+ export * from './CloneNodeEvent'
15
+ export * from './AppendNodeEvent'
16
+ export * from './FromNodeEvent'
@@ -0,0 +1,30 @@
1
+ import { IEngineContext } from '../../types'
2
+ import { globalThisPolyfill } from '@sulesky/next-shared'
3
+
4
+ export interface IViewportEventData {
5
+ scrollX: number
6
+ scrollY: number
7
+ width: number
8
+ height: number
9
+ view: Window
10
+ innerWidth: number
11
+ innerHeight: number
12
+ target: EventTarget
13
+ }
14
+
15
+ export class AbstractViewportEvent {
16
+ data: IViewportEventData
17
+ context: IEngineContext
18
+ constructor(data: IViewportEventData) {
19
+ this.data = data || {
20
+ scrollX: globalThisPolyfill.scrollX,
21
+ scrollY: globalThisPolyfill.scrollY,
22
+ width: globalThisPolyfill.innerWidth,
23
+ height: globalThisPolyfill.innerHeight,
24
+ innerWidth: globalThisPolyfill.innerWidth,
25
+ innerHeight: globalThisPolyfill.innerHeight,
26
+ view: globalThisPolyfill,
27
+ target: globalThisPolyfill,
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,9 @@
1
+ import { ICustomEvent } from '@sulesky/next-shared'
2
+ import { AbstractViewportEvent } from './AbstractViewportEvent'
3
+
4
+ export class ViewportResizeEvent
5
+ extends AbstractViewportEvent
6
+ implements ICustomEvent
7
+ {
8
+ type = 'viewport:resize'
9
+ }