@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,933 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ import { action, define, observable, toJS } from '@formily/reactive';
27
+ import { uid, isFn, each } from '@sulesky/next-shared';
28
+ import { InsertBeforeEvent, InsertAfterEvent, InsertChildrenEvent, PrependNodeEvent, AppendNodeEvent, WrapNodeEvent, UpdateChildrenEvent, RemoveNodeEvent, UpdateNodePropsEvent, CloneNodeEvent, FromNodeEvent, } from '../events';
29
+ import { GlobalRegistry } from '../registry';
30
+ import { mergeLocales } from '../internals';
31
+ var TreeNodes = new Map();
32
+ var CommonDesignerPropsMap = new Map();
33
+ var removeNode = function (node) {
34
+ if (node.parent) {
35
+ node.parent.children = node.parent.children.filter(function (child) { return child !== node; });
36
+ }
37
+ };
38
+ var resetNodesParent = function (nodes, parent) {
39
+ var resetDepth = function (node) {
40
+ node.depth = node.parent ? node.parent.depth + 1 : 0;
41
+ node.children.forEach(resetDepth);
42
+ };
43
+ var shallowReset = function (node) {
44
+ node.parent = parent;
45
+ node.root = parent.root;
46
+ resetDepth(node);
47
+ };
48
+ var deepReset = function (node) {
49
+ shallowReset(node);
50
+ resetNodesParent(node.children, node);
51
+ };
52
+ return nodes.map(function (node) {
53
+ var _a;
54
+ if (node === parent)
55
+ return node;
56
+ if (!parent.isSourceNode) {
57
+ if (node.isSourceNode) {
58
+ node = node.clone(parent);
59
+ resetDepth(node);
60
+ }
61
+ else if (!node.isRoot && node.isInOperation) {
62
+ (_a = node.operation) === null || _a === void 0 ? void 0 : _a.selection.remove(node);
63
+ removeNode(node);
64
+ shallowReset(node);
65
+ }
66
+ else {
67
+ deepReset(node);
68
+ }
69
+ }
70
+ else {
71
+ deepReset(node);
72
+ }
73
+ if (!TreeNodes.has(node.id)) {
74
+ TreeNodes.set(node.id, node);
75
+ CommonDesignerPropsMap.set(node.componentName, node.designerProps);
76
+ }
77
+ return node;
78
+ });
79
+ };
80
+ var resetParent = function (node, parent) {
81
+ return resetNodesParent([node], parent)[0];
82
+ };
83
+ var resolveDesignerProps = function (node, props) {
84
+ if (isFn(props))
85
+ return props(node);
86
+ return props;
87
+ };
88
+ var TreeNode = /** @class */ (function () {
89
+ function TreeNode(node, parent) {
90
+ this.depth = 0;
91
+ this.hidden = false;
92
+ this.componentName = 'NO_NAME_COMPONENT';
93
+ this.sourceName = '';
94
+ this.props = {};
95
+ this.children = [];
96
+ if (node instanceof TreeNode) {
97
+ return node;
98
+ }
99
+ this.id = node.id || uid();
100
+ if (parent) {
101
+ this.parent = parent;
102
+ this.depth = parent.depth + 1;
103
+ this.root = parent.root;
104
+ TreeNodes.set(this.id, this);
105
+ }
106
+ else {
107
+ this.root = this;
108
+ this.rootOperation = node.operation;
109
+ this.isSelfSourceNode = node.isSourceNode || false;
110
+ TreeNodes.set(this.id, this);
111
+ }
112
+ if (node) {
113
+ this.from(node);
114
+ }
115
+ this.makeObservable();
116
+ }
117
+ TreeNode.prototype.makeObservable = function () {
118
+ define(this, {
119
+ componentName: observable.ref,
120
+ props: observable,
121
+ hidden: observable.ref,
122
+ children: observable.shallow,
123
+ designerProps: observable.computed,
124
+ designerLocales: observable.computed,
125
+ wrap: action,
126
+ prepend: action,
127
+ append: action,
128
+ insertAfter: action,
129
+ insertBefore: action,
130
+ remove: action,
131
+ setProps: action,
132
+ setChildren: action,
133
+ setComponentName: action,
134
+ });
135
+ };
136
+ Object.defineProperty(TreeNode.prototype, "designerProps", {
137
+ get: function () {
138
+ var _this = this;
139
+ var behaviors = GlobalRegistry.getDesignerBehaviors(this);
140
+ var designerProps = behaviors.reduce(function (buf, pattern) {
141
+ if (!pattern.designerProps)
142
+ return buf;
143
+ Object.assign(buf, resolveDesignerProps(_this, pattern.designerProps));
144
+ return buf;
145
+ }, {});
146
+ return designerProps;
147
+ },
148
+ enumerable: false,
149
+ configurable: true
150
+ });
151
+ Object.defineProperty(TreeNode.prototype, "designerLocales", {
152
+ get: function () {
153
+ var behaviors = GlobalRegistry.getDesignerBehaviors(this);
154
+ var designerLocales = behaviors.reduce(function (buf, pattern) {
155
+ if (!pattern.designerLocales)
156
+ return buf;
157
+ mergeLocales(buf, pattern.designerLocales);
158
+ return buf;
159
+ }, {});
160
+ return designerLocales;
161
+ },
162
+ enumerable: false,
163
+ configurable: true
164
+ });
165
+ Object.defineProperty(TreeNode.prototype, "previous", {
166
+ get: function () {
167
+ if (this.parent === this || !this.parent)
168
+ return;
169
+ return this.parent.children[this.index - 1];
170
+ },
171
+ enumerable: false,
172
+ configurable: true
173
+ });
174
+ Object.defineProperty(TreeNode.prototype, "next", {
175
+ get: function () {
176
+ if (this.parent === this || !this.parent)
177
+ return;
178
+ return this.parent.children[this.index + 1];
179
+ },
180
+ enumerable: false,
181
+ configurable: true
182
+ });
183
+ Object.defineProperty(TreeNode.prototype, "siblings", {
184
+ get: function () {
185
+ var _this = this;
186
+ if (this.parent) {
187
+ return this.parent.children.filter(function (node) { return node !== _this; });
188
+ }
189
+ return [];
190
+ },
191
+ enumerable: false,
192
+ configurable: true
193
+ });
194
+ Object.defineProperty(TreeNode.prototype, "index", {
195
+ get: function () {
196
+ if (this.parent === this || !this.parent)
197
+ return 0;
198
+ return this.parent.children.indexOf(this);
199
+ },
200
+ enumerable: false,
201
+ configurable: true
202
+ });
203
+ Object.defineProperty(TreeNode.prototype, "descendants", {
204
+ get: function () {
205
+ return this.children.reduce(function (buf, node) {
206
+ return buf.concat(node).concat(node.descendants);
207
+ }, []);
208
+ },
209
+ enumerable: false,
210
+ configurable: true
211
+ });
212
+ Object.defineProperty(TreeNode.prototype, "isRoot", {
213
+ get: function () {
214
+ return this === this.root;
215
+ },
216
+ enumerable: false,
217
+ configurable: true
218
+ });
219
+ Object.defineProperty(TreeNode.prototype, "isInOperation", {
220
+ get: function () {
221
+ return !!this.operation;
222
+ },
223
+ enumerable: false,
224
+ configurable: true
225
+ });
226
+ Object.defineProperty(TreeNode.prototype, "lastChild", {
227
+ get: function () {
228
+ return this.children[this.children.length - 1];
229
+ },
230
+ enumerable: false,
231
+ configurable: true
232
+ });
233
+ Object.defineProperty(TreeNode.prototype, "firstChild", {
234
+ get: function () {
235
+ return this.children[0];
236
+ },
237
+ enumerable: false,
238
+ configurable: true
239
+ });
240
+ Object.defineProperty(TreeNode.prototype, "isSourceNode", {
241
+ get: function () {
242
+ return this.root.isSelfSourceNode;
243
+ },
244
+ enumerable: false,
245
+ configurable: true
246
+ });
247
+ Object.defineProperty(TreeNode.prototype, "operation", {
248
+ get: function () {
249
+ var _a;
250
+ return (_a = this.root) === null || _a === void 0 ? void 0 : _a.rootOperation;
251
+ },
252
+ enumerable: false,
253
+ configurable: true
254
+ });
255
+ Object.defineProperty(TreeNode.prototype, "viewport", {
256
+ get: function () {
257
+ var _a, _b;
258
+ return (_b = (_a = this.operation) === null || _a === void 0 ? void 0 : _a.workspace) === null || _b === void 0 ? void 0 : _b.viewport;
259
+ },
260
+ enumerable: false,
261
+ configurable: true
262
+ });
263
+ Object.defineProperty(TreeNode.prototype, "outline", {
264
+ get: function () {
265
+ var _a, _b;
266
+ return (_b = (_a = this.operation) === null || _a === void 0 ? void 0 : _a.workspace) === null || _b === void 0 ? void 0 : _b.outline;
267
+ },
268
+ enumerable: false,
269
+ configurable: true
270
+ });
271
+ Object.defineProperty(TreeNode.prototype, "moveLayout", {
272
+ get: function () {
273
+ var _a;
274
+ return (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.getValidNodeLayout(this);
275
+ },
276
+ enumerable: false,
277
+ configurable: true
278
+ });
279
+ TreeNode.prototype.getElement = function (area) {
280
+ var _a;
281
+ if (area === void 0) { area = 'viewport'; }
282
+ return (_a = this[area]) === null || _a === void 0 ? void 0 : _a.findElementById(this.id);
283
+ };
284
+ TreeNode.prototype.getValidElement = function (area) {
285
+ var _a;
286
+ if (area === void 0) { area = 'viewport'; }
287
+ return (_a = this[area]) === null || _a === void 0 ? void 0 : _a.getValidNodeElement(this);
288
+ };
289
+ TreeNode.prototype.getElementRect = function (area) {
290
+ var _a;
291
+ if (area === void 0) { area = 'viewport'; }
292
+ return (_a = this[area]) === null || _a === void 0 ? void 0 : _a.getElementRect(this.getElement(area));
293
+ };
294
+ TreeNode.prototype.getValidElementRect = function (area) {
295
+ var _a;
296
+ if (area === void 0) { area = 'viewport'; }
297
+ return (_a = this[area]) === null || _a === void 0 ? void 0 : _a.getValidNodeRect(this);
298
+ };
299
+ TreeNode.prototype.getElementOffsetRect = function (area) {
300
+ var _a;
301
+ if (area === void 0) { area = 'viewport'; }
302
+ return (_a = this[area]) === null || _a === void 0 ? void 0 : _a.getElementOffsetRect(this.getElement(area));
303
+ };
304
+ TreeNode.prototype.getValidElementOffsetRect = function (area) {
305
+ var _a;
306
+ if (area === void 0) { area = 'viewport'; }
307
+ return (_a = this[area]) === null || _a === void 0 ? void 0 : _a.getValidNodeOffsetRect(this);
308
+ };
309
+ TreeNode.prototype.getPrevious = function (step) {
310
+ if (step === void 0) { step = 1; }
311
+ return this.parent.children[this.index - step];
312
+ };
313
+ TreeNode.prototype.getAfter = function (step) {
314
+ if (step === void 0) { step = 1; }
315
+ return this.parent.children[this.index + step];
316
+ };
317
+ TreeNode.prototype.getSibling = function (index) {
318
+ if (index === void 0) { index = 0; }
319
+ return this.parent.children[index];
320
+ };
321
+ TreeNode.prototype.getParents = function (node) {
322
+ var _node = node || this;
323
+ return (_node === null || _node === void 0 ? void 0 : _node.parent)
324
+ ? [_node.parent].concat(this.getParents(_node.parent))
325
+ : [];
326
+ };
327
+ TreeNode.prototype.getParentByDepth = function (depth) {
328
+ if (depth === void 0) { depth = 0; }
329
+ var parent = this.parent;
330
+ if ((parent === null || parent === void 0 ? void 0 : parent.depth) === depth) {
331
+ return parent;
332
+ }
333
+ else {
334
+ return parent === null || parent === void 0 ? void 0 : parent.getParentByDepth(depth);
335
+ }
336
+ };
337
+ TreeNode.prototype.getMessage = function (token) {
338
+ return GlobalRegistry.getDesignerMessage(token, this.designerLocales);
339
+ };
340
+ TreeNode.prototype.isMyAncestor = function (node) {
341
+ if (node === this || this.parent === node)
342
+ return false;
343
+ return node.contains(this);
344
+ };
345
+ TreeNode.prototype.isMyParent = function (node) {
346
+ return this.parent === node;
347
+ };
348
+ TreeNode.prototype.isMyParents = function (node) {
349
+ if (node === this)
350
+ return false;
351
+ return this.isMyParent(node) || this.isMyAncestor(node);
352
+ };
353
+ TreeNode.prototype.isMyChild = function (node) {
354
+ return node.isMyParent(this);
355
+ };
356
+ TreeNode.prototype.isMyChildren = function (node) {
357
+ return node.isMyParents(this);
358
+ };
359
+ TreeNode.prototype.takeSnapshot = function (type) {
360
+ var _a;
361
+ (_a = this.operation) === null || _a === void 0 ? void 0 : _a.snapshot(type);
362
+ };
363
+ TreeNode.prototype.triggerMutation = function (event, callback, defaults) {
364
+ if (this.operation) {
365
+ var result = this.operation.dispatch(event, callback);
366
+ this.takeSnapshot(event === null || event === void 0 ? void 0 : event.type);
367
+ return (result !== null && result !== void 0 ? result : defaults);
368
+ }
369
+ else if (isFn(callback)) {
370
+ return callback();
371
+ }
372
+ return defaults;
373
+ };
374
+ TreeNode.prototype.find = function (finder) {
375
+ if (finder(this)) {
376
+ return this;
377
+ }
378
+ else {
379
+ var result_1 = undefined;
380
+ this.eachChildren(function (node) {
381
+ if (finder(node)) {
382
+ result_1 = node;
383
+ return false;
384
+ }
385
+ });
386
+ return result_1;
387
+ }
388
+ };
389
+ TreeNode.prototype.findAll = function (finder) {
390
+ var results = [];
391
+ if (finder(this)) {
392
+ results.push(this);
393
+ }
394
+ this.eachChildren(function (node) {
395
+ if (finder(node)) {
396
+ results.push(node);
397
+ }
398
+ });
399
+ return results;
400
+ };
401
+ TreeNode.prototype.distanceTo = function (node) {
402
+ if (this.root !== node.root) {
403
+ return Infinity;
404
+ }
405
+ if (this.parent !== node.parent) {
406
+ return Infinity;
407
+ }
408
+ return Math.abs(this.index - node.index);
409
+ };
410
+ TreeNode.prototype.crossSiblings = function (node) {
411
+ if (this.parent !== node.parent)
412
+ return [];
413
+ var minIndex = Math.min(this.index, node.index);
414
+ var maxIndex = Math.max(this.index, node.index);
415
+ var results = [];
416
+ for (var i = minIndex + 1; i < maxIndex; i++) {
417
+ results.push(this.parent.children[i]);
418
+ }
419
+ return results;
420
+ };
421
+ TreeNode.prototype.allowSibling = function (nodes) {
422
+ var _a, _b, _c;
423
+ if (((_b = (_a = this.designerProps) === null || _a === void 0 ? void 0 : _a.allowSiblings) === null || _b === void 0 ? void 0 : _b.call(_a, this, nodes)) === false)
424
+ return false;
425
+ return (_c = this.parent) === null || _c === void 0 ? void 0 : _c.allowAppend(nodes);
426
+ };
427
+ TreeNode.prototype.allowDrop = function (parent) {
428
+ if (!isFn(this.designerProps.allowDrop))
429
+ return true;
430
+ return this.designerProps.allowDrop(parent);
431
+ };
432
+ TreeNode.prototype.allowAppend = function (nodes) {
433
+ var _this = this;
434
+ var _a, _b, _c;
435
+ if (!((_a = this.designerProps) === null || _a === void 0 ? void 0 : _a.droppable))
436
+ return false;
437
+ if (((_c = (_b = this.designerProps) === null || _b === void 0 ? void 0 : _b.allowAppend) === null || _c === void 0 ? void 0 : _c.call(_b, this, nodes)) === false)
438
+ return false;
439
+ if (nodes.some(function (node) { return !node.allowDrop(_this); }))
440
+ return false;
441
+ if (this.root === this)
442
+ return true;
443
+ return true;
444
+ };
445
+ TreeNode.prototype.allowClone = function () {
446
+ var _a;
447
+ if (this === this.root)
448
+ return false;
449
+ return (_a = this.designerProps.cloneable) !== null && _a !== void 0 ? _a : true;
450
+ };
451
+ TreeNode.prototype.allowDrag = function () {
452
+ var _a;
453
+ if (this === this.root && !this.isSourceNode)
454
+ return false;
455
+ return (_a = this.designerProps.draggable) !== null && _a !== void 0 ? _a : true;
456
+ };
457
+ TreeNode.prototype.allowResize = function () {
458
+ if (this === this.root && !this.isSourceNode)
459
+ return false;
460
+ var resizable = this.designerProps.resizable;
461
+ if (!resizable)
462
+ return false;
463
+ if (resizable.width && resizable.height)
464
+ return ['x', 'y'];
465
+ if (resizable.width)
466
+ return ['x'];
467
+ return ['y'];
468
+ };
469
+ TreeNode.prototype.allowRotate = function () { };
470
+ TreeNode.prototype.allowRound = function () { };
471
+ TreeNode.prototype.allowScale = function () { };
472
+ TreeNode.prototype.allowTranslate = function () {
473
+ if (this === this.root && !this.isSourceNode)
474
+ return false;
475
+ var translatable = this.designerProps.translatable;
476
+ if ((translatable === null || translatable === void 0 ? void 0 : translatable.x) && (translatable === null || translatable === void 0 ? void 0 : translatable.y))
477
+ return true;
478
+ return false;
479
+ };
480
+ TreeNode.prototype.allowDelete = function () {
481
+ var _a;
482
+ if (this === this.root)
483
+ return false;
484
+ return (_a = this.designerProps.deletable) !== null && _a !== void 0 ? _a : true;
485
+ };
486
+ TreeNode.prototype.findById = function (id) {
487
+ var _a;
488
+ if (!id)
489
+ return;
490
+ if (this.id === id)
491
+ return this;
492
+ if (((_a = this.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
493
+ return TreeNodes.get(id);
494
+ }
495
+ };
496
+ TreeNode.prototype.contains = function () {
497
+ var _this = this;
498
+ var nodes = [];
499
+ for (var _i = 0; _i < arguments.length; _i++) {
500
+ nodes[_i] = arguments[_i];
501
+ }
502
+ return nodes.every(function (node) {
503
+ if (node === _this ||
504
+ (node === null || node === void 0 ? void 0 : node.parent) === _this ||
505
+ (node === null || node === void 0 ? void 0 : node.getParentByDepth(_this.depth)) === _this) {
506
+ return true;
507
+ }
508
+ return false;
509
+ });
510
+ };
511
+ TreeNode.prototype.eachTree = function (callback) {
512
+ var _a;
513
+ if (isFn(callback)) {
514
+ callback(this.root);
515
+ (_a = this.root) === null || _a === void 0 ? void 0 : _a.eachChildren(callback);
516
+ }
517
+ };
518
+ TreeNode.prototype.eachChildren = function (callback) {
519
+ if (isFn(callback)) {
520
+ for (var i = 0; i < this.children.length; i++) {
521
+ var node = this.children[i];
522
+ if (callback(node) === false)
523
+ return;
524
+ node.eachChildren(callback);
525
+ }
526
+ }
527
+ };
528
+ TreeNode.prototype.resetNodesParent = function (nodes, parent) {
529
+ var _this = this;
530
+ return resetNodesParent(nodes.filter(function (node) { return node !== _this; }), parent);
531
+ };
532
+ TreeNode.prototype.setProps = function (props) {
533
+ var _this = this;
534
+ return this.triggerMutation(new UpdateNodePropsEvent({
535
+ target: this,
536
+ source: null,
537
+ }), function () {
538
+ Object.assign(_this.props, props);
539
+ });
540
+ };
541
+ TreeNode.prototype.setComponentName = function (componentName) {
542
+ this.componentName = componentName;
543
+ };
544
+ TreeNode.prototype.prepend = function () {
545
+ var _this = this;
546
+ var nodes = [];
547
+ for (var _i = 0; _i < arguments.length; _i++) {
548
+ nodes[_i] = arguments[_i];
549
+ }
550
+ if (nodes.some(function (node) { return node.contains(_this); }))
551
+ return [];
552
+ var originSourceParents = nodes.map(function (node) { return node.parent; });
553
+ var newNodes = this.resetNodesParent(nodes, this);
554
+ if (!newNodes.length)
555
+ return [];
556
+ return this.triggerMutation(new PrependNodeEvent({
557
+ originSourceParents: originSourceParents,
558
+ target: this,
559
+ source: newNodes,
560
+ }), function () {
561
+ _this.children = newNodes.concat(_this.children);
562
+ return newNodes;
563
+ }, []);
564
+ };
565
+ TreeNode.prototype.append = function () {
566
+ var _this = this;
567
+ var nodes = [];
568
+ for (var _i = 0; _i < arguments.length; _i++) {
569
+ nodes[_i] = arguments[_i];
570
+ }
571
+ if (nodes.some(function (node) { return node.contains(_this); }))
572
+ return [];
573
+ var originSourceParents = nodes.map(function (node) { return node.parent; });
574
+ var newNodes = this.resetNodesParent(nodes, this);
575
+ if (!newNodes.length)
576
+ return [];
577
+ return this.triggerMutation(new AppendNodeEvent({
578
+ originSourceParents: originSourceParents,
579
+ target: this,
580
+ source: newNodes,
581
+ }), function () {
582
+ _this.children = _this.children.concat(newNodes);
583
+ return newNodes;
584
+ }, []);
585
+ };
586
+ TreeNode.prototype.wrap = function (wrapper) {
587
+ var _this = this;
588
+ if (wrapper === this)
589
+ return;
590
+ var parent = this.parent;
591
+ return this.triggerMutation(new WrapNodeEvent({
592
+ target: this,
593
+ source: wrapper,
594
+ }), function () {
595
+ resetParent(_this, wrapper);
596
+ resetParent(wrapper, parent);
597
+ return wrapper;
598
+ });
599
+ };
600
+ TreeNode.prototype.insertAfter = function () {
601
+ var _this = this;
602
+ var _a;
603
+ var nodes = [];
604
+ for (var _i = 0; _i < arguments.length; _i++) {
605
+ nodes[_i] = arguments[_i];
606
+ }
607
+ var parent = this.parent;
608
+ if (nodes.some(function (node) { return node.contains(_this); }))
609
+ return [];
610
+ if ((_a = parent === null || parent === void 0 ? void 0 : parent.children) === null || _a === void 0 ? void 0 : _a.length) {
611
+ var originSourceParents = nodes.map(function (node) { return node.parent; });
612
+ var newNodes_1 = this.resetNodesParent(nodes, parent);
613
+ if (!newNodes_1.length)
614
+ return [];
615
+ return this.triggerMutation(new InsertAfterEvent({
616
+ originSourceParents: originSourceParents,
617
+ target: this,
618
+ source: newNodes_1,
619
+ }), function () {
620
+ parent.children = parent.children.reduce(function (buf, node) {
621
+ if (node === _this) {
622
+ return buf.concat([node]).concat(newNodes_1);
623
+ }
624
+ else {
625
+ return buf.concat([node]);
626
+ }
627
+ }, []);
628
+ return newNodes_1;
629
+ }, []);
630
+ }
631
+ return [];
632
+ };
633
+ TreeNode.prototype.insertBefore = function () {
634
+ var _this = this;
635
+ var _a;
636
+ var nodes = [];
637
+ for (var _i = 0; _i < arguments.length; _i++) {
638
+ nodes[_i] = arguments[_i];
639
+ }
640
+ var parent = this.parent;
641
+ if (nodes.some(function (node) { return node.contains(_this); }))
642
+ return [];
643
+ if ((_a = parent === null || parent === void 0 ? void 0 : parent.children) === null || _a === void 0 ? void 0 : _a.length) {
644
+ var originSourceParents = nodes.map(function (node) { return node.parent; });
645
+ var newNodes_2 = this.resetNodesParent(nodes, parent);
646
+ if (!newNodes_2.length)
647
+ return [];
648
+ return this.triggerMutation(new InsertBeforeEvent({
649
+ originSourceParents: originSourceParents,
650
+ target: this,
651
+ source: newNodes_2,
652
+ }), function () {
653
+ parent.children = parent.children.reduce(function (buf, node) {
654
+ if (node === _this) {
655
+ return buf.concat(newNodes_2).concat([node]);
656
+ }
657
+ else {
658
+ return buf.concat([node]);
659
+ }
660
+ }, []);
661
+ return newNodes_2;
662
+ }, []);
663
+ }
664
+ return [];
665
+ };
666
+ TreeNode.prototype.insertChildren = function (start) {
667
+ var _this = this;
668
+ var _a;
669
+ var nodes = [];
670
+ for (var _i = 1; _i < arguments.length; _i++) {
671
+ nodes[_i - 1] = arguments[_i];
672
+ }
673
+ if (nodes.some(function (node) { return node.contains(_this); }))
674
+ return [];
675
+ if ((_a = this.children) === null || _a === void 0 ? void 0 : _a.length) {
676
+ var originSourceParents = nodes.map(function (node) { return node.parent; });
677
+ var newNodes_3 = this.resetNodesParent(nodes, this);
678
+ if (!newNodes_3.length)
679
+ return [];
680
+ return this.triggerMutation(new InsertChildrenEvent({
681
+ originSourceParents: originSourceParents,
682
+ target: this,
683
+ source: newNodes_3,
684
+ }), function () {
685
+ _this.children = _this.children.reduce(function (buf, node, index) {
686
+ if (index === start) {
687
+ return buf.concat(newNodes_3).concat([node]);
688
+ }
689
+ return buf.concat([node]);
690
+ }, []);
691
+ return newNodes_3;
692
+ }, []);
693
+ }
694
+ return [];
695
+ };
696
+ TreeNode.prototype.setChildren = function () {
697
+ var _this = this;
698
+ var nodes = [];
699
+ for (var _i = 0; _i < arguments.length; _i++) {
700
+ nodes[_i] = arguments[_i];
701
+ }
702
+ var originSourceParents = nodes.map(function (node) { return node.parent; });
703
+ var newNodes = this.resetNodesParent(nodes, this);
704
+ return this.triggerMutation(new UpdateChildrenEvent({
705
+ originSourceParents: originSourceParents,
706
+ target: this,
707
+ source: newNodes,
708
+ }), function () {
709
+ _this.children = newNodes;
710
+ return newNodes;
711
+ }, []);
712
+ };
713
+ /**
714
+ * @deprecated
715
+ * please use `setChildren`
716
+ */
717
+ TreeNode.prototype.setNodeChildren = function () {
718
+ var nodes = [];
719
+ for (var _i = 0; _i < arguments.length; _i++) {
720
+ nodes[_i] = arguments[_i];
721
+ }
722
+ return this.setChildren.apply(this, __spreadArray([], __read(nodes), false));
723
+ };
724
+ TreeNode.prototype.remove = function () {
725
+ var _this = this;
726
+ return this.triggerMutation(new RemoveNodeEvent({
727
+ target: this,
728
+ source: null,
729
+ }), function () {
730
+ removeNode(_this);
731
+ TreeNodes.delete(_this.id);
732
+ });
733
+ };
734
+ TreeNode.prototype.clone = function (parent) {
735
+ var newNode = new TreeNode({
736
+ id: uid(),
737
+ componentName: this.componentName,
738
+ sourceName: this.sourceName,
739
+ props: toJS(this.props),
740
+ children: [],
741
+ }, parent ? parent : this.parent);
742
+ newNode.children = resetNodesParent(this.children.map(function (child) {
743
+ return child.clone(newNode);
744
+ }), newNode);
745
+ return this.triggerMutation(new CloneNodeEvent({
746
+ target: this,
747
+ source: newNode,
748
+ }), function () { return newNode; });
749
+ };
750
+ TreeNode.prototype.from = function (node) {
751
+ var _this = this;
752
+ if (!node)
753
+ return;
754
+ return this.triggerMutation(new FromNodeEvent({
755
+ target: this,
756
+ source: node,
757
+ }), function () {
758
+ var _a, _b, _c;
759
+ if (node.id && node.id !== _this.id) {
760
+ TreeNodes.delete(_this.id);
761
+ TreeNodes.set(node.id, _this);
762
+ _this.id = node.id;
763
+ }
764
+ if (node.componentName) {
765
+ _this.componentName = node.componentName;
766
+ }
767
+ _this.props = (_a = node.props) !== null && _a !== void 0 ? _a : {};
768
+ if (node.hidden) {
769
+ _this.hidden = node.hidden;
770
+ }
771
+ if (node.children) {
772
+ _this.children =
773
+ ((_c = (_b = node.children) === null || _b === void 0 ? void 0 : _b.map) === null || _c === void 0 ? void 0 : _c.call(_b, function (node) {
774
+ return new TreeNode(node, _this);
775
+ })) || [];
776
+ }
777
+ });
778
+ };
779
+ TreeNode.prototype.serialize = function () {
780
+ return {
781
+ id: this.id,
782
+ componentName: this.componentName,
783
+ sourceName: this.sourceName,
784
+ props: toJS(this.props),
785
+ hidden: this.hidden,
786
+ children: this.children.map(function (treeNode) {
787
+ return treeNode.serialize();
788
+ }),
789
+ };
790
+ };
791
+ TreeNode.create = function (node, parent) {
792
+ return new TreeNode(node, parent);
793
+ };
794
+ TreeNode.findById = function (id) {
795
+ return TreeNodes.get(id);
796
+ };
797
+ TreeNode.remove = function (nodes) {
798
+ var _a, _b;
799
+ if (nodes === void 0) { nodes = []; }
800
+ for (var i = nodes.length - 1; i >= 0; i--) {
801
+ var node = nodes[i];
802
+ if (node.allowDelete()) {
803
+ var previous = node.previous;
804
+ var next = node.next;
805
+ node.remove();
806
+ (_a = node.operation) === null || _a === void 0 ? void 0 : _a.selection.select(previous ? previous : next ? next : node.parent);
807
+ (_b = node.operation) === null || _b === void 0 ? void 0 : _b.hover.clear();
808
+ }
809
+ }
810
+ };
811
+ TreeNode.sort = function (nodes) {
812
+ if (nodes === void 0) { nodes = []; }
813
+ return nodes.sort(function (before, after) {
814
+ if (before.depth !== after.depth)
815
+ return 0;
816
+ return before.index - after.index >= 0 ? 1 : -1;
817
+ });
818
+ };
819
+ TreeNode.clone = function (nodes) {
820
+ if (nodes === void 0) { nodes = []; }
821
+ var groups = {};
822
+ var lastGroupNode = {};
823
+ var filterNestedNode = TreeNode.sort(nodes).filter(function (node) {
824
+ return !nodes.some(function (parent) {
825
+ return node.isMyParents(parent);
826
+ });
827
+ });
828
+ each(filterNestedNode, function (node) {
829
+ var _a, _b, _c, _d, _e, _f, _g;
830
+ if (node === node.root)
831
+ return;
832
+ if (!node.allowClone())
833
+ return;
834
+ if (!(node === null || node === void 0 ? void 0 : node.operation))
835
+ return;
836
+ groups[(_a = node === null || node === void 0 ? void 0 : node.parent) === null || _a === void 0 ? void 0 : _a.id] = groups[(_b = node === null || node === void 0 ? void 0 : node.parent) === null || _b === void 0 ? void 0 : _b.id] || [];
837
+ groups[(_c = node === null || node === void 0 ? void 0 : node.parent) === null || _c === void 0 ? void 0 : _c.id].push(node);
838
+ if (lastGroupNode[(_d = node === null || node === void 0 ? void 0 : node.parent) === null || _d === void 0 ? void 0 : _d.id]) {
839
+ if (node.index > lastGroupNode[(_e = node === null || node === void 0 ? void 0 : node.parent) === null || _e === void 0 ? void 0 : _e.id].index) {
840
+ lastGroupNode[(_f = node === null || node === void 0 ? void 0 : node.parent) === null || _f === void 0 ? void 0 : _f.id] = node;
841
+ }
842
+ }
843
+ else {
844
+ lastGroupNode[(_g = node === null || node === void 0 ? void 0 : node.parent) === null || _g === void 0 ? void 0 : _g.id] = node;
845
+ }
846
+ });
847
+ var parents = new Map();
848
+ each(groups, function (nodes, parentId) {
849
+ var lastNode = lastGroupNode[parentId];
850
+ var insertPoint = lastNode;
851
+ each(nodes, function (node) {
852
+ var _a, _b;
853
+ var cloned = node.clone();
854
+ if (!cloned)
855
+ return;
856
+ if (((_a = node.operation) === null || _a === void 0 ? void 0 : _a.selection.has(node)) &&
857
+ insertPoint.parent.allowAppend([cloned])) {
858
+ insertPoint.insertAfter(cloned);
859
+ insertPoint = insertPoint.next;
860
+ }
861
+ else if (node.operation.selection.length === 1) {
862
+ var targetNode = (_b = node.operation) === null || _b === void 0 ? void 0 : _b.tree.findById(node.operation.selection.first);
863
+ var cloneNodes = parents.get(targetNode);
864
+ if (!cloneNodes) {
865
+ cloneNodes = [];
866
+ parents.set(targetNode, cloneNodes);
867
+ }
868
+ if (targetNode && targetNode.allowAppend([cloned])) {
869
+ cloneNodes.push(cloned);
870
+ }
871
+ }
872
+ });
873
+ });
874
+ parents.forEach(function (nodes, target) {
875
+ if (!nodes.length)
876
+ return;
877
+ target.append.apply(target, __spreadArray([], __read(nodes), false));
878
+ });
879
+ };
880
+ TreeNode.filterResizable = function (nodes) {
881
+ if (nodes === void 0) { nodes = []; }
882
+ return nodes.filter(function (node) { return node.allowResize(); });
883
+ };
884
+ TreeNode.filterRotatable = function (nodes) {
885
+ if (nodes === void 0) { nodes = []; }
886
+ return nodes.filter(function (node) { return node.allowRotate(); });
887
+ };
888
+ TreeNode.filterScalable = function (nodes) {
889
+ if (nodes === void 0) { nodes = []; }
890
+ return nodes.filter(function (node) { return node.allowScale(); });
891
+ };
892
+ TreeNode.filterRoundable = function (nodes) {
893
+ if (nodes === void 0) { nodes = []; }
894
+ return nodes.filter(function (node) { return node.allowRound(); });
895
+ };
896
+ TreeNode.filterTranslatable = function (nodes) {
897
+ if (nodes === void 0) { nodes = []; }
898
+ return nodes.filter(function (node) { return node.allowTranslate(); });
899
+ };
900
+ TreeNode.filterDraggable = function (nodes) {
901
+ if (nodes === void 0) { nodes = []; }
902
+ return nodes.reduce(function (buf, node) {
903
+ var _a;
904
+ if (!node.allowDrag())
905
+ return buf;
906
+ if (isFn((_a = node === null || node === void 0 ? void 0 : node.designerProps) === null || _a === void 0 ? void 0 : _a.getDragNodes)) {
907
+ var transformed = node.designerProps.getDragNodes(node);
908
+ return transformed ? buf.concat(transformed) : buf;
909
+ }
910
+ if (node.componentName === '$$ResourceNode$$')
911
+ return buf.concat(node.children);
912
+ return buf.concat([node]);
913
+ }, []);
914
+ };
915
+ TreeNode.filterDroppable = function (nodes, parent) {
916
+ if (nodes === void 0) { nodes = []; }
917
+ return nodes.reduce(function (buf, node) {
918
+ var _a;
919
+ if (!node.allowDrop(parent))
920
+ return buf;
921
+ if (isFn((_a = node.designerProps) === null || _a === void 0 ? void 0 : _a.getDropNodes)) {
922
+ var cloned = node.isSourceNode ? node.clone(node.parent) : node;
923
+ var transformed = node.designerProps.getDropNodes(cloned, parent);
924
+ return transformed ? buf.concat(transformed) : buf;
925
+ }
926
+ if (node.componentName === '$$ResourceNode$$')
927
+ return buf.concat(node.children);
928
+ return buf.concat([node]);
929
+ }, []);
930
+ };
931
+ return TreeNode;
932
+ }());
933
+ export { TreeNode };