@thienvu18/designable-core 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/esm/drivers/DragDropDriver.d.ts +12 -12
  2. package/esm/drivers/DragDropDriver.js +127 -105
  3. package/esm/drivers/KeyboardDriver.d.ts +5 -5
  4. package/esm/drivers/KeyboardDriver.js +41 -40
  5. package/esm/drivers/MouseClickDriver.d.ts +6 -6
  6. package/esm/drivers/MouseClickDriver.js +55 -47
  7. package/esm/drivers/MouseMoveDriver.d.ts +6 -6
  8. package/esm/drivers/MouseMoveDriver.js +30 -28
  9. package/esm/drivers/ViewportResizeDriver.d.ts +9 -9
  10. package/esm/drivers/ViewportResizeDriver.js +56 -59
  11. package/esm/drivers/ViewportScrollDriver.d.ts +6 -6
  12. package/esm/drivers/ViewportScrollDriver.js +29 -27
  13. package/esm/drivers/index.d.ts +6 -6
  14. package/esm/drivers/index.js +6 -6
  15. package/esm/effects/index.d.ts +11 -11
  16. package/esm/effects/index.js +11 -11
  17. package/esm/effects/useAutoScrollEffect.d.ts +2 -2
  18. package/esm/effects/useAutoScrollEffect.js +70 -59
  19. package/esm/effects/useContentEditableEffect.d.ts +2 -2
  20. package/esm/effects/useContentEditableEffect.js +174 -150
  21. package/esm/effects/useCursorEffect.d.ts +2 -2
  22. package/esm/effects/useCursorEffect.js +58 -54
  23. package/esm/effects/useDragDropEffect.d.ts +2 -2
  24. package/esm/effects/useDragDropEffect.js +170 -145
  25. package/esm/effects/useFreeSelectionEffect.d.ts +2 -2
  26. package/esm/effects/useFreeSelectionEffect.js +58 -36
  27. package/esm/effects/useKeyboardEffect.d.ts +2 -2
  28. package/esm/effects/useKeyboardEffect.js +16 -16
  29. package/esm/effects/useResizeEffect.d.ts +2 -2
  30. package/esm/effects/useResizeEffect.js +84 -73
  31. package/esm/effects/useSelectionEffect.d.ts +2 -2
  32. package/esm/effects/useSelectionEffect.js +62 -65
  33. package/esm/effects/useTranslateEffect.d.ts +2 -2
  34. package/esm/effects/useTranslateEffect.js +55 -52
  35. package/esm/effects/useViewportEffect.d.ts +2 -2
  36. package/esm/effects/useViewportEffect.js +26 -28
  37. package/esm/effects/useWorkspaceEffect.d.ts +2 -2
  38. package/esm/effects/useWorkspaceEffect.js +30 -27
  39. package/esm/events/cursor/AbstractCursorEvent.d.ts +15 -15
  40. package/esm/events/cursor/AbstractCursorEvent.js +35 -33
  41. package/esm/events/cursor/DragMoveEvent.d.ts +7 -4
  42. package/esm/events/cursor/DragMoveEvent.js +5 -5
  43. package/esm/events/cursor/DragStartEvent.d.ts +7 -4
  44. package/esm/events/cursor/DragStartEvent.js +5 -5
  45. package/esm/events/cursor/DragStopEvent.d.ts +7 -4
  46. package/esm/events/cursor/DragStopEvent.js +5 -5
  47. package/esm/events/cursor/MouseClickEvent.d.ts +12 -6
  48. package/esm/events/cursor/MouseClickEvent.js +9 -9
  49. package/esm/events/cursor/MouseMoveEvent.d.ts +7 -4
  50. package/esm/events/cursor/MouseMoveEvent.js +5 -5
  51. package/esm/events/cursor/index.d.ts +5 -5
  52. package/esm/events/cursor/index.js +5 -5
  53. package/esm/events/history/AbstractHistoryEvent.d.ts +4 -4
  54. package/esm/events/history/AbstractHistoryEvent.js +3 -3
  55. package/esm/events/history/HistoryGotoEvent.d.ts +7 -4
  56. package/esm/events/history/HistoryGotoEvent.js +5 -5
  57. package/esm/events/history/HistoryPushEvent.d.ts +7 -4
  58. package/esm/events/history/HistoryPushEvent.js +5 -5
  59. package/esm/events/history/HistoryRedoEvent.d.ts +7 -4
  60. package/esm/events/history/HistoryRedoEvent.js +5 -5
  61. package/esm/events/history/HistoryUndoEvent.d.ts +7 -4
  62. package/esm/events/history/HistoryUndoEvent.js +5 -5
  63. package/esm/events/history/index.d.ts +4 -4
  64. package/esm/events/history/index.js +4 -4
  65. package/esm/events/index.d.ts +6 -6
  66. package/esm/events/index.js +6 -6
  67. package/esm/events/keyboard/AbstractKeyboardEvent.d.ts +13 -13
  68. package/esm/events/keyboard/AbstractKeyboardEvent.js +34 -36
  69. package/esm/events/keyboard/KeyDownEvent.d.ts +7 -4
  70. package/esm/events/keyboard/KeyDownEvent.js +5 -5
  71. package/esm/events/keyboard/KeyUpEvent.d.ts +7 -4
  72. package/esm/events/keyboard/KeyUpEvent.js +5 -5
  73. package/esm/events/keyboard/index.d.ts +2 -2
  74. package/esm/events/keyboard/index.js +2 -2
  75. package/esm/events/mutation/AbstractMutationNodeEvent.d.ts +9 -9
  76. package/esm/events/mutation/AbstractMutationNodeEvent.js +3 -3
  77. package/esm/events/mutation/AppendNodeEvent.d.ts +7 -4
  78. package/esm/events/mutation/AppendNodeEvent.js +5 -5
  79. package/esm/events/mutation/CloneNodeEvent.d.ts +7 -4
  80. package/esm/events/mutation/CloneNodeEvent.js +5 -5
  81. package/esm/events/mutation/DragNodeEvent.d.ts +7 -4
  82. package/esm/events/mutation/DragNodeEvent.js +5 -5
  83. package/esm/events/mutation/DropNodeEvent.d.ts +7 -4
  84. package/esm/events/mutation/DropNodeEvent.js +5 -5
  85. package/esm/events/mutation/FromNodeEvent.d.ts +9 -9
  86. package/esm/events/mutation/FromNodeEvent.js +4 -4
  87. package/esm/events/mutation/HoverNodeEvent.d.ts +7 -4
  88. package/esm/events/mutation/HoverNodeEvent.js +5 -5
  89. package/esm/events/mutation/InsertAfterEvent.d.ts +7 -4
  90. package/esm/events/mutation/InsertAfterEvent.js +5 -5
  91. package/esm/events/mutation/InsertBeforeEvent.d.ts +7 -4
  92. package/esm/events/mutation/InsertBeforeEvent.js +5 -5
  93. package/esm/events/mutation/InsertChildrenEvent.d.ts +7 -4
  94. package/esm/events/mutation/InsertChildrenEvent.js +5 -5
  95. package/esm/events/mutation/PrependNodeEvent.d.ts +7 -4
  96. package/esm/events/mutation/PrependNodeEvent.js +5 -5
  97. package/esm/events/mutation/RemoveNodeEvent.d.ts +7 -4
  98. package/esm/events/mutation/RemoveNodeEvent.js +5 -5
  99. package/esm/events/mutation/SelectNodeEvent.d.ts +7 -4
  100. package/esm/events/mutation/SelectNodeEvent.js +5 -5
  101. package/esm/events/mutation/UnSelectNodeEvent.d.ts +7 -4
  102. package/esm/events/mutation/UnSelectNodeEvent.js +5 -5
  103. package/esm/events/mutation/UpdateChildrenEvent.d.ts +7 -4
  104. package/esm/events/mutation/UpdateChildrenEvent.js +5 -5
  105. package/esm/events/mutation/UpdateNodePropsEvent.d.ts +7 -4
  106. package/esm/events/mutation/UpdateNodePropsEvent.js +5 -5
  107. package/esm/events/mutation/UserSelectNodeEvent.d.ts +7 -4
  108. package/esm/events/mutation/UserSelectNodeEvent.js +5 -5
  109. package/esm/events/mutation/WrapNodeEvent.d.ts +7 -4
  110. package/esm/events/mutation/WrapNodeEvent.js +5 -5
  111. package/esm/events/mutation/index.d.ts +16 -16
  112. package/esm/events/mutation/index.js +16 -16
  113. package/esm/events/viewport/AbstractViewportEvent.d.ts +12 -12
  114. package/esm/events/viewport/AbstractViewportEvent.js +12 -12
  115. package/esm/events/viewport/ViewportResizeEvent.d.ts +7 -4
  116. package/esm/events/viewport/ViewportResizeEvent.js +5 -5
  117. package/esm/events/viewport/ViewportScrollEvent.d.ts +7 -4
  118. package/esm/events/viewport/ViewportScrollEvent.js +5 -5
  119. package/esm/events/viewport/index.d.ts +2 -2
  120. package/esm/events/viewport/index.js +2 -2
  121. package/esm/events/workbench/AbstractWorkspaceEvent.d.ts +5 -5
  122. package/esm/events/workbench/AbstractWorkspaceEvent.js +3 -3
  123. package/esm/events/workbench/AddWorkspaceEvent.d.ts +7 -4
  124. package/esm/events/workbench/AddWorkspaceEvent.js +5 -5
  125. package/esm/events/workbench/RemoveWorkspaceEvent.d.ts +7 -4
  126. package/esm/events/workbench/RemoveWorkspaceEvent.js +5 -5
  127. package/esm/events/workbench/SwitchWorkspaceEvent.d.ts +7 -4
  128. package/esm/events/workbench/SwitchWorkspaceEvent.js +5 -5
  129. package/esm/events/workbench/index.d.ts +3 -3
  130. package/esm/events/workbench/index.js +3 -3
  131. package/esm/exports.d.ts +5 -5
  132. package/esm/exports.js +5 -5
  133. package/esm/externals.d.ts +25 -12
  134. package/esm/externals.js +57 -50
  135. package/esm/index.d.ts +1 -1
  136. package/esm/index.js +11 -12
  137. package/esm/internals.d.ts +3 -3
  138. package/esm/internals.js +34 -30
  139. package/esm/models/Cursor.d.ts +48 -48
  140. package/esm/models/Cursor.js +129 -125
  141. package/esm/models/Engine.d.ts +24 -24
  142. package/esm/models/Engine.js +73 -73
  143. package/esm/models/History.d.ts +26 -26
  144. package/esm/models/History.js +86 -87
  145. package/esm/models/Hover.d.ts +10 -10
  146. package/esm/models/Hover.js +33 -32
  147. package/esm/models/Keyboard.d.ts +25 -25
  148. package/esm/models/Keyboard.js +95 -94
  149. package/esm/models/MoveHelper.d.ts +57 -54
  150. package/esm/models/MoveHelper.js +304 -290
  151. package/esm/models/Operation.d.ts +25 -25
  152. package/esm/models/Operation.js +59 -60
  153. package/esm/models/Screen.d.ts +25 -25
  154. package/esm/models/Screen.js +67 -67
  155. package/esm/models/Selection.d.ts +25 -25
  156. package/esm/models/Selection.js +143 -149
  157. package/esm/models/Shortcut.d.ts +16 -16
  158. package/esm/models/Shortcut.js +56 -57
  159. package/esm/models/SnapLine.d.ts +24 -24
  160. package/esm/models/SnapLine.js +96 -105
  161. package/esm/models/SpaceBlock.d.ts +41 -36
  162. package/esm/models/SpaceBlock.js +154 -115
  163. package/esm/models/TransformHelper.d.ts +88 -74
  164. package/esm/models/TransformHelper.js +546 -450
  165. package/esm/models/TreeNode.d.ts +117 -109
  166. package/esm/models/TreeNode.js +743 -732
  167. package/esm/models/Viewport.d.ts +83 -81
  168. package/esm/models/Viewport.js +406 -384
  169. package/esm/models/Workbench.d.ts +21 -21
  170. package/esm/models/Workbench.js +90 -88
  171. package/esm/models/Workspace.d.ts +33 -33
  172. package/esm/models/Workspace.js +87 -83
  173. package/esm/models/index.d.ts +13 -13
  174. package/esm/models/index.js +13 -13
  175. package/esm/presets.d.ts +20 -4
  176. package/esm/presets.js +67 -35
  177. package/esm/registry.d.ts +21 -15
  178. package/esm/registry.js +106 -108
  179. package/esm/shortcuts/CursorSwitch.d.ts +2 -2
  180. package/esm/shortcuts/CursorSwitch.js +9 -9
  181. package/esm/shortcuts/MultiSelection.d.ts +5 -5
  182. package/esm/shortcuts/MultiSelection.js +23 -23
  183. package/esm/shortcuts/NodeMutation.d.ts +4 -4
  184. package/esm/shortcuts/NodeMutation.js +33 -33
  185. package/esm/shortcuts/QuickSelection.d.ts +3 -3
  186. package/esm/shortcuts/QuickSelection.js +71 -78
  187. package/esm/shortcuts/UndoRedo.d.ts +3 -3
  188. package/esm/shortcuts/UndoRedo.js +25 -25
  189. package/esm/shortcuts/index.d.ts +5 -5
  190. package/esm/shortcuts/index.js +5 -5
  191. package/esm/types.d.ts +138 -105
  192. package/esm/types.js +1 -1
  193. package/lib/drivers/DragDropDriver.d.ts +12 -12
  194. package/lib/drivers/DragDropDriver.js +131 -109
  195. package/lib/drivers/KeyboardDriver.d.ts +5 -5
  196. package/lib/drivers/KeyboardDriver.js +45 -44
  197. package/lib/drivers/MouseClickDriver.d.ts +6 -6
  198. package/lib/drivers/MouseClickDriver.js +59 -51
  199. package/lib/drivers/MouseMoveDriver.d.ts +6 -6
  200. package/lib/drivers/MouseMoveDriver.js +34 -32
  201. package/lib/drivers/ViewportResizeDriver.d.ts +9 -9
  202. package/lib/drivers/ViewportResizeDriver.js +69 -63
  203. package/lib/drivers/ViewportScrollDriver.d.ts +6 -6
  204. package/lib/drivers/ViewportScrollDriver.js +34 -31
  205. package/lib/drivers/index.d.ts +6 -6
  206. package/lib/drivers/index.js +38 -22
  207. package/lib/effects/index.d.ts +11 -11
  208. package/lib/effects/index.js +43 -27
  209. package/lib/effects/useAutoScrollEffect.d.ts +2 -2
  210. package/lib/effects/useAutoScrollEffect.js +81 -63
  211. package/lib/effects/useContentEditableEffect.d.ts +2 -2
  212. package/lib/effects/useContentEditableEffect.js +178 -154
  213. package/lib/effects/useCursorEffect.d.ts +2 -2
  214. package/lib/effects/useCursorEffect.js +57 -58
  215. package/lib/effects/useDragDropEffect.d.ts +2 -2
  216. package/lib/effects/useDragDropEffect.js +175 -149
  217. package/lib/effects/useFreeSelectionEffect.d.ts +2 -2
  218. package/lib/effects/useFreeSelectionEffect.js +60 -40
  219. package/lib/effects/useKeyboardEffect.d.ts +2 -2
  220. package/lib/effects/useKeyboardEffect.js +20 -20
  221. package/lib/effects/useResizeEffect.d.ts +2 -2
  222. package/lib/effects/useResizeEffect.js +88 -77
  223. package/lib/effects/useSelectionEffect.d.ts +2 -2
  224. package/lib/effects/useSelectionEffect.js +69 -69
  225. package/lib/effects/useTranslateEffect.d.ts +2 -2
  226. package/lib/effects/useTranslateEffect.js +59 -56
  227. package/lib/effects/useViewportEffect.d.ts +2 -2
  228. package/lib/effects/useViewportEffect.js +30 -32
  229. package/lib/effects/useWorkspaceEffect.d.ts +2 -2
  230. package/lib/effects/useWorkspaceEffect.js +34 -31
  231. package/lib/events/cursor/AbstractCursorEvent.d.ts +15 -15
  232. package/lib/events/cursor/AbstractCursorEvent.js +42 -37
  233. package/lib/events/cursor/DragMoveEvent.d.ts +7 -4
  234. package/lib/events/cursor/DragMoveEvent.js +9 -9
  235. package/lib/events/cursor/DragStartEvent.d.ts +7 -4
  236. package/lib/events/cursor/DragStartEvent.js +9 -9
  237. package/lib/events/cursor/DragStopEvent.d.ts +7 -4
  238. package/lib/events/cursor/DragStopEvent.js +9 -9
  239. package/lib/events/cursor/MouseClickEvent.d.ts +12 -6
  240. package/lib/events/cursor/MouseClickEvent.js +14 -14
  241. package/lib/events/cursor/MouseMoveEvent.d.ts +7 -4
  242. package/lib/events/cursor/MouseMoveEvent.js +9 -9
  243. package/lib/events/cursor/index.d.ts +5 -5
  244. package/lib/events/cursor/index.js +37 -21
  245. package/lib/events/history/AbstractHistoryEvent.d.ts +4 -4
  246. package/lib/events/history/AbstractHistoryEvent.js +7 -7
  247. package/lib/events/history/HistoryGotoEvent.d.ts +7 -4
  248. package/lib/events/history/HistoryGotoEvent.js +9 -9
  249. package/lib/events/history/HistoryPushEvent.d.ts +7 -4
  250. package/lib/events/history/HistoryPushEvent.js +9 -9
  251. package/lib/events/history/HistoryRedoEvent.d.ts +7 -4
  252. package/lib/events/history/HistoryRedoEvent.js +9 -9
  253. package/lib/events/history/HistoryUndoEvent.d.ts +7 -4
  254. package/lib/events/history/HistoryUndoEvent.js +9 -9
  255. package/lib/events/history/index.d.ts +4 -4
  256. package/lib/events/history/index.js +36 -20
  257. package/lib/events/index.d.ts +6 -6
  258. package/lib/events/index.js +38 -22
  259. package/lib/events/keyboard/AbstractKeyboardEvent.d.ts +13 -13
  260. package/lib/events/keyboard/AbstractKeyboardEvent.js +38 -40
  261. package/lib/events/keyboard/KeyDownEvent.d.ts +7 -4
  262. package/lib/events/keyboard/KeyDownEvent.js +9 -9
  263. package/lib/events/keyboard/KeyUpEvent.d.ts +7 -4
  264. package/lib/events/keyboard/KeyUpEvent.js +9 -9
  265. package/lib/events/keyboard/index.d.ts +2 -2
  266. package/lib/events/keyboard/index.js +34 -18
  267. package/lib/events/mutation/AbstractMutationNodeEvent.d.ts +9 -9
  268. package/lib/events/mutation/AbstractMutationNodeEvent.js +7 -7
  269. package/lib/events/mutation/AppendNodeEvent.d.ts +7 -4
  270. package/lib/events/mutation/AppendNodeEvent.js +9 -9
  271. package/lib/events/mutation/CloneNodeEvent.d.ts +7 -4
  272. package/lib/events/mutation/CloneNodeEvent.js +9 -9
  273. package/lib/events/mutation/DragNodeEvent.d.ts +7 -4
  274. package/lib/events/mutation/DragNodeEvent.js +9 -9
  275. package/lib/events/mutation/DropNodeEvent.d.ts +7 -4
  276. package/lib/events/mutation/DropNodeEvent.js +9 -9
  277. package/lib/events/mutation/FromNodeEvent.d.ts +9 -9
  278. package/lib/events/mutation/FromNodeEvent.js +8 -8
  279. package/lib/events/mutation/HoverNodeEvent.d.ts +7 -4
  280. package/lib/events/mutation/HoverNodeEvent.js +9 -9
  281. package/lib/events/mutation/InsertAfterEvent.d.ts +7 -4
  282. package/lib/events/mutation/InsertAfterEvent.js +9 -9
  283. package/lib/events/mutation/InsertBeforeEvent.d.ts +7 -4
  284. package/lib/events/mutation/InsertBeforeEvent.js +9 -9
  285. package/lib/events/mutation/InsertChildrenEvent.d.ts +7 -4
  286. package/lib/events/mutation/InsertChildrenEvent.js +9 -9
  287. package/lib/events/mutation/PrependNodeEvent.d.ts +7 -4
  288. package/lib/events/mutation/PrependNodeEvent.js +9 -9
  289. package/lib/events/mutation/RemoveNodeEvent.d.ts +7 -4
  290. package/lib/events/mutation/RemoveNodeEvent.js +9 -9
  291. package/lib/events/mutation/SelectNodeEvent.d.ts +7 -4
  292. package/lib/events/mutation/SelectNodeEvent.js +9 -9
  293. package/lib/events/mutation/UnSelectNodeEvent.d.ts +7 -4
  294. package/lib/events/mutation/UnSelectNodeEvent.js +9 -9
  295. package/lib/events/mutation/UpdateChildrenEvent.d.ts +7 -4
  296. package/lib/events/mutation/UpdateChildrenEvent.js +9 -9
  297. package/lib/events/mutation/UpdateNodePropsEvent.d.ts +7 -4
  298. package/lib/events/mutation/UpdateNodePropsEvent.js +9 -9
  299. package/lib/events/mutation/UserSelectNodeEvent.d.ts +7 -4
  300. package/lib/events/mutation/UserSelectNodeEvent.js +9 -9
  301. package/lib/events/mutation/WrapNodeEvent.d.ts +7 -4
  302. package/lib/events/mutation/WrapNodeEvent.js +9 -9
  303. package/lib/events/mutation/index.d.ts +16 -16
  304. package/lib/events/mutation/index.js +48 -32
  305. package/lib/events/viewport/AbstractViewportEvent.d.ts +12 -12
  306. package/lib/events/viewport/AbstractViewportEvent.js +16 -16
  307. package/lib/events/viewport/ViewportResizeEvent.d.ts +7 -4
  308. package/lib/events/viewport/ViewportResizeEvent.js +9 -9
  309. package/lib/events/viewport/ViewportScrollEvent.d.ts +7 -4
  310. package/lib/events/viewport/ViewportScrollEvent.js +9 -9
  311. package/lib/events/viewport/index.d.ts +2 -2
  312. package/lib/events/viewport/index.js +34 -18
  313. package/lib/events/workbench/AbstractWorkspaceEvent.d.ts +5 -5
  314. package/lib/events/workbench/AbstractWorkspaceEvent.js +7 -7
  315. package/lib/events/workbench/AddWorkspaceEvent.d.ts +7 -4
  316. package/lib/events/workbench/AddWorkspaceEvent.js +9 -9
  317. package/lib/events/workbench/RemoveWorkspaceEvent.d.ts +7 -4
  318. package/lib/events/workbench/RemoveWorkspaceEvent.js +9 -9
  319. package/lib/events/workbench/SwitchWorkspaceEvent.d.ts +7 -4
  320. package/lib/events/workbench/SwitchWorkspaceEvent.js +9 -9
  321. package/lib/events/workbench/index.d.ts +3 -3
  322. package/lib/events/workbench/index.js +35 -19
  323. package/lib/exports.d.ts +5 -5
  324. package/lib/exports.js +37 -21
  325. package/lib/externals.d.ts +25 -12
  326. package/lib/externals.js +81 -63
  327. package/lib/index.d.ts +1 -1
  328. package/lib/index.js +65 -40
  329. package/lib/internals.d.ts +3 -3
  330. package/lib/internals.js +43 -36
  331. package/lib/models/Cursor.d.ts +48 -48
  332. package/lib/models/Cursor.js +140 -129
  333. package/lib/models/Engine.d.ts +24 -24
  334. package/lib/models/Engine.js +77 -77
  335. package/lib/models/History.d.ts +26 -26
  336. package/lib/models/History.js +90 -91
  337. package/lib/models/Hover.d.ts +10 -10
  338. package/lib/models/Hover.js +37 -36
  339. package/lib/models/Keyboard.d.ts +25 -25
  340. package/lib/models/Keyboard.js +103 -98
  341. package/lib/models/MoveHelper.d.ts +57 -54
  342. package/lib/models/MoveHelper.js +316 -294
  343. package/lib/models/Operation.d.ts +25 -25
  344. package/lib/models/Operation.js +63 -64
  345. package/lib/models/Screen.d.ts +25 -25
  346. package/lib/models/Screen.js +71 -71
  347. package/lib/models/Selection.d.ts +25 -25
  348. package/lib/models/Selection.js +151 -153
  349. package/lib/models/Shortcut.d.ts +16 -16
  350. package/lib/models/Shortcut.js +65 -61
  351. package/lib/models/SnapLine.d.ts +24 -24
  352. package/lib/models/SnapLine.js +99 -109
  353. package/lib/models/SpaceBlock.d.ts +41 -36
  354. package/lib/models/SpaceBlock.js +156 -119
  355. package/lib/models/TransformHelper.d.ts +88 -74
  356. package/lib/models/TransformHelper.js +561 -454
  357. package/lib/models/TreeNode.d.ts +117 -109
  358. package/lib/models/TreeNode.js +739 -736
  359. package/lib/models/Viewport.d.ts +83 -81
  360. package/lib/models/Viewport.js +411 -388
  361. package/lib/models/Workbench.d.ts +21 -21
  362. package/lib/models/Workbench.js +92 -92
  363. package/lib/models/Workspace.d.ts +33 -33
  364. package/lib/models/Workspace.js +86 -87
  365. package/lib/models/index.d.ts +13 -13
  366. package/lib/models/index.js +45 -29
  367. package/lib/presets.d.ts +20 -4
  368. package/lib/presets.js +41 -38
  369. package/lib/registry.d.ts +21 -15
  370. package/lib/registry.js +112 -111
  371. package/lib/shortcuts/CursorSwitch.d.ts +2 -2
  372. package/lib/shortcuts/CursorSwitch.js +12 -12
  373. package/lib/shortcuts/MultiSelection.d.ts +5 -5
  374. package/lib/shortcuts/MultiSelection.js +30 -26
  375. package/lib/shortcuts/NodeMutation.d.ts +4 -4
  376. package/lib/shortcuts/NodeMutation.js +36 -36
  377. package/lib/shortcuts/QuickSelection.d.ts +3 -3
  378. package/lib/shortcuts/QuickSelection.js +74 -81
  379. package/lib/shortcuts/UndoRedo.d.ts +3 -3
  380. package/lib/shortcuts/UndoRedo.js +28 -28
  381. package/lib/shortcuts/index.d.ts +5 -5
  382. package/lib/shortcuts/index.js +37 -21
  383. package/lib/types.d.ts +138 -105
  384. package/lib/types.js +2 -2
  385. package/package.json +2 -2
@@ -1,96 +1,95 @@
1
- import { define, observable, action } from '@formily/reactive';
1
+ import { action, define, observable } from '@formily/reactive'
2
2
  export class History {
3
- constructor(context, props) {
4
- this.current = 0;
5
- this.history = [];
6
- this.updateTimer = null;
7
- this.maxSize = 100;
8
- this.locking = false;
9
- this.context = context;
10
- this.props = props;
11
- this.push();
12
- this.makeObservable();
3
+ constructor(context, props) {
4
+ this.current = 0
5
+ this.history = []
6
+ this.updateTimer = null
7
+ this.maxSize = 100
8
+ this.locking = false
9
+ this.context = context
10
+ this.props = props
11
+ this.push()
12
+ this.makeObservable()
13
+ }
14
+ makeObservable() {
15
+ define(this, {
16
+ current: observable.ref,
17
+ history: observable.shallow,
18
+ push: action,
19
+ undo: action,
20
+ redo: action,
21
+ goTo: action,
22
+ clear: action,
23
+ })
24
+ }
25
+ list() {
26
+ return this.history
27
+ }
28
+ push(type) {
29
+ if (this.locking) return
30
+ if (this.current < this.history.length - 1) {
31
+ this.history = this.history.slice(0, this.current + 1)
13
32
  }
14
- makeObservable() {
15
- define(this, {
16
- current: observable.ref,
17
- history: observable.shallow,
18
- push: action,
19
- undo: action,
20
- redo: action,
21
- goTo: action,
22
- clear: action,
23
- });
33
+ const item = {
34
+ data: this.context.serialize(),
35
+ timestamp: Date.now(),
36
+ type,
24
37
  }
25
- list() {
26
- return this.history;
38
+ this.current = this.history.length
39
+ this.history.push(item)
40
+ const overSizeCount = this.history.length - this.maxSize
41
+ if (overSizeCount > 0) {
42
+ this.history.splice(0, overSizeCount)
43
+ this.current = this.history.length - 1
27
44
  }
28
- push(type) {
29
- if (this.locking)
30
- return;
31
- if (this.current < this.history.length - 1) {
32
- this.history = this.history.slice(0, this.current + 1);
33
- }
34
- const item = {
35
- data: this.context.serialize(),
36
- timestamp: Date.now(),
37
- type,
38
- };
39
- this.current = this.history.length;
40
- this.history.push(item);
41
- const overSizeCount = this.history.length - this.maxSize;
42
- if (overSizeCount > 0) {
43
- this.history.splice(0, overSizeCount);
44
- this.current = this.history.length - 1;
45
- }
46
- if (this.props?.onPush) {
47
- this.props.onPush(item);
48
- }
45
+ if (this.props?.onPush) {
46
+ this.props.onPush(item)
49
47
  }
50
- get allowUndo() {
51
- return this.history.length > 0 && this.current - 1 >= 0;
48
+ }
49
+ get allowUndo() {
50
+ return this.history.length > 0 && this.current - 1 >= 0
51
+ }
52
+ get allowRedo() {
53
+ return this.history.length > this.current + 1
54
+ }
55
+ redo() {
56
+ if (this.allowRedo) {
57
+ const item = this.history[this.current + 1]
58
+ this.locking = true
59
+ this.context.from(item.data)
60
+ this.locking = false
61
+ this.current++
62
+ if (this.props?.onRedo) {
63
+ this.props.onRedo(item)
64
+ }
52
65
  }
53
- get allowRedo() {
54
- return this.history.length > this.current + 1;
66
+ }
67
+ undo() {
68
+ if (this.allowUndo) {
69
+ const item = this.history[this.current - 1]
70
+ this.locking = true
71
+ this.context.from(item.data)
72
+ this.locking = false
73
+ this.current--
74
+ if (this.props?.onUndo) {
75
+ this.props.onUndo(item)
76
+ }
55
77
  }
56
- redo() {
57
- if (this.allowRedo) {
58
- const item = this.history[this.current + 1];
59
- this.locking = true;
60
- this.context.from(item.data);
61
- this.locking = false;
62
- this.current++;
63
- if (this.props?.onRedo) {
64
- this.props.onRedo(item);
65
- }
66
- }
67
- }
68
- undo() {
69
- if (this.allowUndo) {
70
- const item = this.history[this.current - 1];
71
- this.locking = true;
72
- this.context.from(item.data);
73
- this.locking = false;
74
- this.current--;
75
- if (this.props?.onUndo) {
76
- this.props.onUndo(item);
77
- }
78
- }
79
- }
80
- goTo(index) {
81
- const item = this.history[index];
82
- if (item) {
83
- this.locking = true;
84
- this.context.from(item.data);
85
- this.locking = false;
86
- this.current = index;
87
- if (this.props?.onGoto) {
88
- this.props.onGoto(item);
89
- }
90
- }
91
- }
92
- clear() {
93
- this.history = [];
94
- this.current = 0;
78
+ }
79
+ goTo(index) {
80
+ const item = this.history[index]
81
+ if (item) {
82
+ this.locking = true
83
+ this.context.from(item.data)
84
+ this.locking = false
85
+ this.current = index
86
+ if (this.props?.onGoto) {
87
+ this.props.onGoto(item)
88
+ }
95
89
  }
90
+ }
91
+ clear() {
92
+ this.history = []
93
+ this.current = 0
94
+ }
96
95
  }
@@ -1,14 +1,14 @@
1
- import { Operation } from './Operation';
2
- import { TreeNode } from './TreeNode';
1
+ import { Operation } from './Operation'
2
+ import { TreeNode } from './TreeNode'
3
3
  export interface IHoverProps {
4
- operation: Operation;
4
+ operation: Operation
5
5
  }
6
6
  export declare class Hover {
7
- node: TreeNode;
8
- operation: Operation;
9
- constructor(props?: IHoverProps);
10
- setHover(node?: TreeNode): void;
11
- clear(): void;
12
- trigger(): any;
13
- makeObservable(): void;
7
+ node: TreeNode
8
+ operation: Operation
9
+ constructor(props?: IHoverProps)
10
+ setHover(node?: TreeNode): void
11
+ clear(): void
12
+ trigger(): any
13
+ makeObservable(): void
14
14
  }
@@ -1,36 +1,37 @@
1
- import { observable, define, action } from '@formily/reactive';
2
- import { HoverNodeEvent } from '../events';
1
+ import { action, define, observable } from '@formily/reactive'
2
+ import { HoverNodeEvent } from '../events'
3
3
  export class Hover {
4
- constructor(props) {
5
- this.node = null;
6
- this.operation = props?.operation;
7
- this.makeObservable();
4
+ constructor(props) {
5
+ this.node = null
6
+ this.operation = props?.operation
7
+ this.makeObservable()
8
+ }
9
+ setHover(node) {
10
+ if (node) {
11
+ this.node = node
12
+ } else {
13
+ this.node = null
8
14
  }
9
- setHover(node) {
10
- if (node) {
11
- this.node = node;
12
- }
13
- else {
14
- this.node = null;
15
- }
16
- this.trigger();
17
- }
18
- clear() {
19
- this.node = null;
20
- }
21
- trigger() {
22
- if (this.operation) {
23
- return this.operation.dispatch(new HoverNodeEvent({
24
- target: this.operation.tree,
25
- source: this.node,
26
- }));
27
- }
28
- }
29
- makeObservable() {
30
- define(this, {
31
- node: observable.ref,
32
- setHover: action,
33
- clear: action,
34
- });
15
+ this.trigger()
16
+ }
17
+ clear() {
18
+ this.node = null
19
+ }
20
+ trigger() {
21
+ if (this.operation) {
22
+ return this.operation.dispatch(
23
+ new HoverNodeEvent({
24
+ target: this.operation.tree,
25
+ source: this.node,
26
+ })
27
+ )
35
28
  }
29
+ }
30
+ makeObservable() {
31
+ define(this, {
32
+ node: observable.ref,
33
+ setHover: action,
34
+ clear: action,
35
+ })
36
+ }
36
37
  }
@@ -1,29 +1,29 @@
1
- import { KeyCode } from '@thienvu18/designable-shared';
2
- import { Engine } from './Engine';
3
- import { Shortcut } from './Shortcut';
4
- import { AbstractKeyboardEvent } from '../events/keyboard/AbstractKeyboardEvent';
5
- import { IEngineContext } from '../types';
1
+ import { KeyCode } from '@thienvu18/designable-shared'
2
+ import { AbstractKeyboardEvent } from '../events/keyboard/AbstractKeyboardEvent'
3
+ import { IEngineContext } from '../types'
4
+ import { Engine } from './Engine'
5
+ import { Shortcut } from './Shortcut'
6
6
  export interface IKeyboard {
7
- engine: Engine;
7
+ engine: Engine
8
8
  }
9
9
  export declare class Keyboard {
10
- engine: Engine;
11
- shortcuts: Shortcut[];
12
- sequence: KeyCode[];
13
- keyDown: KeyCode;
14
- modifiers: {};
15
- requestTimer: any;
16
- constructor(engine?: Engine);
17
- matchCodes(context: IEngineContext): boolean;
18
- preventCodes(): boolean;
19
- includes(key: KeyCode): boolean;
20
- excludes(key: KeyCode): void;
21
- addKeyCode(key: KeyCode): void;
22
- removeKeyCode(key: KeyCode): void;
23
- isModifier(code: KeyCode): boolean;
24
- handleModifiers(event: AbstractKeyboardEvent): void;
25
- handleKeyboard(event: AbstractKeyboardEvent, context: IEngineContext): void;
26
- isKeyDown(code: KeyCode): boolean;
27
- requestClean(duration?: number): void;
28
- makeObservable(): void;
10
+ engine: Engine
11
+ shortcuts: Shortcut[]
12
+ sequence: KeyCode[]
13
+ keyDown: KeyCode
14
+ modifiers: {}
15
+ requestTimer: any
16
+ constructor(engine?: Engine)
17
+ matchCodes(context: IEngineContext): boolean
18
+ preventCodes(): boolean
19
+ includes(key: KeyCode): boolean
20
+ excludes(key: KeyCode): void
21
+ addKeyCode(key: KeyCode): void
22
+ removeKeyCode(key: KeyCode): void
23
+ isModifier(code: KeyCode): boolean
24
+ handleModifiers(event: AbstractKeyboardEvent): void
25
+ handleKeyboard(event: AbstractKeyboardEvent, context: IEngineContext): void
26
+ isKeyDown(code: KeyCode): boolean
27
+ requestClean(duration?: number): void
28
+ makeObservable(): void
29
29
  }
@@ -1,102 +1,103 @@
1
- import { observable, define, action } from '@formily/reactive';
2
- import { KeyCode } from '@thienvu18/designable-shared';
3
- import { Shortcut } from './Shortcut';
1
+ import { action, define, observable } from '@formily/reactive'
2
+ import { KeyCode } from '@thienvu18/designable-shared'
3
+ import { Shortcut } from './Shortcut'
4
4
  const Modifiers = [
5
- ['metaKey', KeyCode.Meta],
6
- ['shiftKey', KeyCode.Shift],
7
- ['ctrlKey', KeyCode.Control],
8
- ['altKey', KeyCode.Alt],
9
- ];
5
+ ['metaKey', KeyCode.Meta],
6
+ ['shiftKey', KeyCode.Shift],
7
+ ['ctrlKey', KeyCode.Control],
8
+ ['altKey', KeyCode.Alt],
9
+ ]
10
10
  export class Keyboard {
11
- constructor(engine) {
12
- this.shortcuts = [];
13
- this.sequence = [];
14
- this.keyDown = null;
15
- this.modifiers = {};
16
- this.requestTimer = null;
17
- this.engine = engine;
18
- this.shortcuts = engine.props?.shortcuts || [];
19
- this.makeObservable();
11
+ constructor(engine) {
12
+ this.shortcuts = []
13
+ this.sequence = []
14
+ this.keyDown = null
15
+ this.modifiers = {}
16
+ this.requestTimer = null
17
+ this.engine = engine
18
+ this.shortcuts = engine.props?.shortcuts || []
19
+ this.makeObservable()
20
+ }
21
+ matchCodes(context) {
22
+ for (let i = 0; i < this.shortcuts.length; i++) {
23
+ const shortcut = this.shortcuts[i]
24
+ if (shortcut.match(this.sequence, context)) {
25
+ return true
26
+ }
20
27
  }
21
- matchCodes(context) {
22
- for (let i = 0; i < this.shortcuts.length; i++) {
23
- const shortcut = this.shortcuts[i];
24
- if (shortcut.match(this.sequence, context)) {
25
- return true;
26
- }
27
- }
28
- return false;
29
- }
30
- preventCodes() {
31
- return this.shortcuts.some((shortcut) => {
32
- return shortcut.preventCodes(this.sequence);
33
- });
28
+ return false
29
+ }
30
+ preventCodes() {
31
+ return this.shortcuts.some((shortcut) => {
32
+ return shortcut.preventCodes(this.sequence)
33
+ })
34
+ }
35
+ includes(key) {
36
+ return this.sequence.some((code) => Shortcut.matchCode(code, key))
37
+ }
38
+ excludes(key) {
39
+ this.sequence = this.sequence.filter(
40
+ (code) => !Shortcut.matchCode(key, code)
41
+ )
42
+ }
43
+ addKeyCode(key) {
44
+ if (!this.includes(key)) {
45
+ this.sequence.push(key)
34
46
  }
35
- includes(key) {
36
- return this.sequence.some((code) => Shortcut.matchCode(code, key));
47
+ }
48
+ removeKeyCode(key) {
49
+ if (this.includes(key)) {
50
+ this.excludes(key)
37
51
  }
38
- excludes(key) {
39
- this.sequence = this.sequence.filter((code) => !Shortcut.matchCode(key, code));
40
- }
41
- addKeyCode(key) {
42
- if (!this.includes(key)) {
43
- this.sequence.push(key);
52
+ }
53
+ isModifier(code) {
54
+ return Modifiers.some((modifier) => Shortcut.matchCode(modifier[1], code))
55
+ }
56
+ handleModifiers(event) {
57
+ Modifiers.forEach(([key, code]) => {
58
+ if (event[key]) {
59
+ if (!this.includes(code)) {
60
+ this.sequence = [code].concat(this.sequence)
44
61
  }
62
+ }
63
+ })
64
+ }
65
+ handleKeyboard(event, context) {
66
+ if (event.eventType === 'keydown') {
67
+ this.keyDown = event.data
68
+ this.addKeyCode(this.keyDown)
69
+ this.handleModifiers(event)
70
+ if (this.matchCodes(context)) {
71
+ this.sequence = []
72
+ }
73
+ this.requestClean(4000)
74
+ if (this.preventCodes()) {
75
+ event.preventDefault()
76
+ event.stopPropagation()
77
+ }
78
+ } else {
79
+ if (this.isModifier(event.data)) {
80
+ this.sequence = []
81
+ }
82
+ this.keyDown = null
45
83
  }
46
- removeKeyCode(key) {
47
- if (this.includes(key)) {
48
- this.excludes(key);
49
- }
50
- }
51
- isModifier(code) {
52
- return Modifiers.some((modifier) => Shortcut.matchCode(modifier[1], code));
53
- }
54
- handleModifiers(event) {
55
- Modifiers.forEach(([key, code]) => {
56
- if (event[key]) {
57
- if (!this.includes(code)) {
58
- this.sequence = [code].concat(this.sequence);
59
- }
60
- }
61
- });
62
- }
63
- handleKeyboard(event, context) {
64
- if (event.eventType === 'keydown') {
65
- this.keyDown = event.data;
66
- this.addKeyCode(this.keyDown);
67
- this.handleModifiers(event);
68
- if (this.matchCodes(context)) {
69
- this.sequence = [];
70
- }
71
- this.requestClean(4000);
72
- if (this.preventCodes()) {
73
- event.preventDefault();
74
- event.stopPropagation();
75
- }
76
- }
77
- else {
78
- if (this.isModifier(event.data)) {
79
- this.sequence = [];
80
- }
81
- this.keyDown = null;
82
- }
83
- }
84
- isKeyDown(code) {
85
- return this.keyDown === code;
86
- }
87
- requestClean(duration = 320) {
88
- clearTimeout(this.requestTimer);
89
- this.requestTimer = setTimeout(() => {
90
- this.keyDown = null;
91
- this.sequence = [];
92
- clearTimeout(this.requestTimer);
93
- }, duration);
94
- }
95
- makeObservable() {
96
- define(this, {
97
- sequence: observable.shallow,
98
- keyDown: observable.ref,
99
- handleKeyboard: action,
100
- });
101
- }
84
+ }
85
+ isKeyDown(code) {
86
+ return this.keyDown === code
87
+ }
88
+ requestClean(duration = 320) {
89
+ clearTimeout(this.requestTimer)
90
+ this.requestTimer = setTimeout(() => {
91
+ this.keyDown = null
92
+ this.sequence = []
93
+ clearTimeout(this.requestTimer)
94
+ }, duration)
95
+ }
96
+ makeObservable() {
97
+ define(this, {
98
+ sequence: observable.shallow,
99
+ keyDown: observable.ref,
100
+ handleKeyboard: action,
101
+ })
102
+ }
102
103
  }
@@ -1,66 +1,69 @@
1
- import { Operation } from './Operation';
2
- import { TreeNode } from './TreeNode';
3
- import { IPoint, Rect } from '@thienvu18/designable-shared';
4
- import { Viewport } from './Viewport';
1
+ import { IPoint, Rect } from '@thienvu18/designable-shared'
2
+ import { Operation } from './Operation'
3
+ import { TreeNode } from './TreeNode'
4
+ import { Viewport } from './Viewport'
5
5
  export declare enum ClosestPosition {
6
- Before = "BEFORE",
7
- ForbidBefore = "FORBID_BEFORE",
8
- After = "After",
9
- ForbidAfter = "FORBID_AFTER",
10
- Upper = "UPPER",
11
- ForbidUpper = "FORBID_UPPER",
12
- Under = "UNDER",
13
- ForbidUnder = "FORBID_UNDER",
14
- Inner = "INNER",
15
- ForbidInner = "FORBID_INNER",
16
- InnerAfter = "INNER_AFTER",
17
- ForbidInnerAfter = "FORBID_INNER_AFTER",
18
- InnerBefore = "INNER_BEFORE",
19
- ForbidInnerBefore = "FORBID_INNER_BEFORE",
20
- Forbid = "FORBID"
6
+ Before = 'BEFORE',
7
+ ForbidBefore = 'FORBID_BEFORE',
8
+ After = 'After',
9
+ ForbidAfter = 'FORBID_AFTER',
10
+ Upper = 'UPPER',
11
+ ForbidUpper = 'FORBID_UPPER',
12
+ Under = 'UNDER',
13
+ ForbidUnder = 'FORBID_UNDER',
14
+ Inner = 'INNER',
15
+ ForbidInner = 'FORBID_INNER',
16
+ InnerAfter = 'INNER_AFTER',
17
+ ForbidInnerAfter = 'FORBID_INNER_AFTER',
18
+ InnerBefore = 'INNER_BEFORE',
19
+ ForbidInnerBefore = 'FORBID_INNER_BEFORE',
20
+ Forbid = 'FORBID',
21
21
  }
22
22
  export interface IMoveHelperProps {
23
- operation: Operation;
23
+ operation: Operation
24
24
  }
25
25
  export interface IMoveHelperDragStartProps {
26
- dragNodes: TreeNode[];
26
+ dragNodes: TreeNode[]
27
27
  }
28
28
  export interface IMoveHelperDragDropProps {
29
- dropNode: TreeNode;
29
+ dropNode: TreeNode
30
30
  }
31
31
  export interface IMoveHelperDragMoveProps {
32
- touchNode: TreeNode;
33
- point: IPoint;
32
+ touchNode: TreeNode
33
+ point: IPoint
34
34
  }
35
35
  export declare class MoveHelper {
36
- operation: Operation;
37
- rootNode: TreeNode;
38
- dragNodes: TreeNode[];
39
- touchNode: TreeNode;
40
- closestNode: TreeNode;
41
- activeViewport: Viewport;
42
- viewportClosestRect: Rect;
43
- outlineClosestRect: Rect;
44
- viewportClosestOffsetRect: Rect;
45
- outlineClosestOffsetRect: Rect;
46
- viewportClosestDirection: ClosestPosition;
47
- outlineClosestDirection: ClosestPosition;
48
- dragging: boolean;
49
- constructor(props: IMoveHelperProps);
50
- get cursor(): import("./Cursor").Cursor;
51
- get viewport(): Viewport;
52
- get outline(): Viewport;
53
- get hasDragNodes(): boolean;
54
- get closestDirection(): ClosestPosition;
55
- getClosestLayout(viewport: Viewport): "vertical" | "horizontal";
56
- calcClosestPosition(point: IPoint, viewport: Viewport): ClosestPosition;
57
- calcClosestNode(point: IPoint, viewport: Viewport): TreeNode;
58
- calcClosestRect(viewport: Viewport, closestDirection: ClosestPosition): Rect;
59
- calcClosestOffsetRect(viewport: Viewport, closestDirection: ClosestPosition): Rect;
60
- dragStart(props: IMoveHelperDragStartProps): void;
61
- dragMove(props: IMoveHelperDragMoveProps): void;
62
- dragDrop(props: IMoveHelperDragDropProps): void;
63
- dragEnd(): void;
64
- trigger(event: any): any;
65
- makeObservable(): void;
36
+ operation: Operation
37
+ rootNode: TreeNode
38
+ dragNodes: TreeNode[]
39
+ touchNode: TreeNode
40
+ closestNode: TreeNode
41
+ activeViewport: Viewport
42
+ viewportClosestRect: Rect
43
+ outlineClosestRect: Rect
44
+ viewportClosestOffsetRect: Rect
45
+ outlineClosestOffsetRect: Rect
46
+ viewportClosestDirection: ClosestPosition
47
+ outlineClosestDirection: ClosestPosition
48
+ dragging: boolean
49
+ constructor(props: IMoveHelperProps)
50
+ get cursor(): import('./Cursor').Cursor
51
+ get viewport(): Viewport
52
+ get outline(): Viewport
53
+ get hasDragNodes(): boolean
54
+ get closestDirection(): ClosestPosition
55
+ getClosestLayout(viewport: Viewport): 'vertical' | 'horizontal'
56
+ calcClosestPosition(point: IPoint, viewport: Viewport): ClosestPosition
57
+ calcClosestNode(point: IPoint, viewport: Viewport): TreeNode
58
+ calcClosestRect(viewport: Viewport, closestDirection: ClosestPosition): Rect
59
+ calcClosestOffsetRect(
60
+ viewport: Viewport,
61
+ closestDirection: ClosestPosition
62
+ ): Rect
63
+ dragStart(props: IMoveHelperDragStartProps): void
64
+ dragMove(props: IMoveHelperDragMoveProps): void
65
+ dragDrop(props: IMoveHelperDragDropProps): void
66
+ dragEnd(): void
67
+ trigger(event: any): any
68
+ makeObservable(): void
66
69
  }