@eclipse-glsp/client 0.9.0-rc-01 → 0.10.0-next.bb1c2fd.157

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 (582) hide show
  1. package/LICENSE +642 -277
  2. package/README.md +4 -2
  3. package/css/command-palette.css +9 -5
  4. package/css/decoration.css +3 -2
  5. package/css/glsp-sprotty.css +16 -7
  6. package/css/tool-palette.css +44 -27
  7. package/lib/base/action-dispatcher.d.ts +19 -3
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +47 -65
  10. package/lib/base/action-dispatcher.js.map +1 -1
  11. package/lib/base/actions/focus-change-action.d.ts +1 -1
  12. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  13. package/lib/base/actions/focus-change-action.js +4 -5
  14. package/lib/base/actions/focus-change-action.js.map +1 -1
  15. package/lib/base/{args.d.ts → argumentable.d.ts} +3 -5
  16. package/lib/base/argumentable.d.ts.map +1 -0
  17. package/lib/base/{args.js → argumentable.js} +1 -1
  18. package/lib/base/argumentable.js.map +1 -0
  19. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  20. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.d.ts +3 -3
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  23. package/lib/base/auto-complete/auto-complete-widget.js +119 -153
  24. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  25. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  26. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  27. package/lib/base/auto-complete/validation-decorator.js +44 -65
  28. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  29. package/lib/base/command-stack.d.ts.map +1 -1
  30. package/lib/base/command-stack.js +19 -37
  31. package/lib/base/command-stack.js.map +1 -1
  32. package/lib/base/container-modules.d.ts +40 -0
  33. package/lib/base/container-modules.d.ts.map +1 -0
  34. package/lib/base/container-modules.js +100 -0
  35. package/lib/base/container-modules.js.map +1 -0
  36. package/lib/base/di.config.d.ts +12 -2
  37. package/lib/base/di.config.d.ts.map +1 -1
  38. package/lib/base/di.config.js +43 -27
  39. package/lib/base/di.config.js.map +1 -1
  40. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  41. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  42. package/lib/base/drag-aware-mouse-listener.js +23 -62
  43. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  44. package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
  45. package/lib/base/editor-context-service.d.ts.map +1 -0
  46. package/lib/base/editor-context-service.js +109 -0
  47. package/lib/base/editor-context-service.js.map +1 -0
  48. package/lib/base/focus-tracker.d.ts +17 -1
  49. package/lib/base/focus-tracker.d.ts.map +1 -1
  50. package/lib/base/focus-tracker.js +19 -39
  51. package/lib/base/focus-tracker.js.map +1 -1
  52. package/lib/base/model/model-registry.js +10 -28
  53. package/lib/base/model/model-registry.js.map +1 -1
  54. package/lib/base/model/update-model-command.d.ts +19 -5
  55. package/lib/base/model/update-model-command.d.ts.map +1 -1
  56. package/lib/base/model/update-model-command.js +69 -94
  57. package/lib/base/model/update-model-command.js.map +1 -1
  58. package/lib/base/model-initialization-constraint.d.ts +16 -1
  59. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  60. package/lib/base/model-initialization-constraint.js +34 -54
  61. package/lib/base/model-initialization-constraint.js.map +1 -1
  62. package/lib/base/selection-clearing-mouse-listener.js +10 -28
  63. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  64. package/lib/base/source-uri-aware.js +2 -5
  65. package/lib/base/source-uri-aware.js.map +1 -1
  66. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  67. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  68. package/lib/base/tool-manager/glsp-tool-manager.js +58 -140
  69. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  70. package/lib/base/types.d.ts +3 -1
  71. package/lib/base/types.d.ts.map +1 -1
  72. package/lib/base/types.js +4 -2
  73. package/lib/base/types.js.map +1 -1
  74. package/lib/base/view/view-registry.js +10 -28
  75. package/lib/base/view/view-registry.js.map +1 -1
  76. package/lib/features/change-bounds/model.d.ts +3 -1
  77. package/lib/features/change-bounds/model.d.ts.map +1 -1
  78. package/lib/features/change-bounds/model.js +20 -31
  79. package/lib/features/change-bounds/model.js.map +1 -1
  80. package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
  81. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  82. package/lib/features/change-bounds/movement-restrictor.js +28 -42
  83. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  84. package/lib/features/change-bounds/snap.d.ts +17 -1
  85. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  86. package/lib/features/change-bounds/snap.js +13 -39
  87. package/lib/features/change-bounds/snap.js.map +1 -1
  88. package/lib/features/command-palette/command-palette-tool.js +30 -38
  89. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  90. package/lib/features/command-palette/di.config.js +6 -6
  91. package/lib/features/command-palette/di.config.js.map +1 -1
  92. package/lib/features/command-palette/server-command-palette-provider.d.ts +18 -2
  93. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  94. package/lib/features/command-palette/server-command-palette-provider.js +28 -33
  95. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  96. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
  97. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  98. package/lib/features/context-menu/delete-element-context-menu.js +20 -68
  99. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  100. package/lib/features/context-menu/di.config.d.ts +1 -1
  101. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  102. package/lib/features/context-menu/di.config.js +8 -8
  103. package/lib/features/context-menu/di.config.js.map +1 -1
  104. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +16 -0
  105. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  106. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +61 -71
  107. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  108. package/lib/features/context-menu/server-context-menu-provider.d.ts +18 -2
  109. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  110. package/lib/features/context-menu/server-context-menu-provider.js +30 -31
  111. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  112. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  113. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  114. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  115. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  116. package/lib/features/copy-paste/copy-paste-handler.d.ts +19 -2
  117. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  118. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  119. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  120. package/lib/features/copy-paste/di.config.d.ts +1 -1
  121. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  122. package/lib/features/copy-paste/di.config.js +11 -11
  123. package/lib/features/copy-paste/di.config.js.map +1 -1
  124. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  125. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  126. package/lib/features/decoration/decoration-placer.js +12 -46
  127. package/lib/features/decoration/decoration-placer.js.map +1 -1
  128. package/lib/features/decoration/di.config.js +4 -4
  129. package/lib/features/decoration/di.config.js.map +1 -1
  130. package/lib/features/edit-label/di.config.js +7 -7
  131. package/lib/features/edit-label/di.config.js.map +1 -1
  132. package/lib/features/edit-label/edit-label-tool.js +20 -43
  133. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  134. package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
  135. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  136. package/lib/features/edit-label/edit-label-validator.js +40 -62
  137. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  138. package/lib/features/hints/di.config.d.ts +0 -15
  139. package/lib/features/hints/di.config.d.ts.map +1 -1
  140. package/lib/features/hints/di.config.js +9 -9
  141. package/lib/features/hints/di.config.js.map +1 -1
  142. package/lib/features/hints/model.d.ts +3 -2
  143. package/lib/features/hints/model.d.ts.map +1 -1
  144. package/lib/features/hints/model.js.map +1 -1
  145. package/lib/features/hints/type-hints.d.ts +17 -45
  146. package/lib/features/hints/type-hints.d.ts.map +1 -1
  147. package/lib/features/hints/type-hints.js +81 -140
  148. package/lib/features/hints/type-hints.js.map +1 -1
  149. package/lib/features/hover/di.config.d.ts +1 -1
  150. package/lib/features/hover/di.config.d.ts.map +1 -1
  151. package/lib/features/hover/di.config.js +11 -9
  152. package/lib/features/hover/di.config.js.map +1 -1
  153. package/lib/features/hover/hover.d.ts +28 -2
  154. package/lib/features/hover/hover.d.ts.map +1 -1
  155. package/lib/features/hover/hover.js +56 -76
  156. package/lib/features/hover/hover.js.map +1 -1
  157. package/lib/features/layout/di.config.d.ts +1 -1
  158. package/lib/features/layout/di.config.d.ts.map +1 -1
  159. package/lib/features/layout/di.config.js +11 -7
  160. package/lib/features/layout/di.config.js.map +1 -1
  161. package/lib/features/layout/freeform-layout.d.ts +16 -0
  162. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  163. package/lib/features/layout/freeform-layout.js +107 -0
  164. package/lib/features/layout/freeform-layout.js.map +1 -0
  165. package/lib/features/layout/layout-commands.d.ts +19 -3
  166. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  167. package/lib/features/layout/layout-commands.js +189 -265
  168. package/lib/features/layout/layout-commands.js.map +1 -1
  169. package/lib/features/layout/layout-commands.spec.d.ts +0 -15
  170. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  171. package/lib/features/layout/layout-commands.spec.js +95 -89
  172. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  173. package/lib/features/layout/vbox-layout.d.ts +25 -0
  174. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  175. package/lib/features/layout/vbox-layout.js +188 -0
  176. package/lib/features/layout/vbox-layout.js.map +1 -0
  177. package/lib/features/model-source-watcher/di.config.d.ts +0 -15
  178. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  179. package/lib/features/model-source-watcher/di.config.js +7 -7
  180. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  181. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  182. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  183. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  184. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  185. package/lib/features/mouse-tool/di.config.js +5 -5
  186. package/lib/features/mouse-tool/di.config.js.map +1 -1
  187. package/lib/features/mouse-tool/mouse-tool.d.ts +2 -1
  188. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  189. package/lib/features/mouse-tool/mouse-tool.js +70 -215
  190. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  191. package/lib/features/navigation/di.config.d.ts +0 -15
  192. package/lib/features/navigation/di.config.d.ts.map +1 -1
  193. package/lib/features/navigation/di.config.js +11 -10
  194. package/lib/features/navigation/di.config.js.map +1 -1
  195. package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
  196. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  197. package/lib/features/navigation/navigation-action-handler.js +118 -254
  198. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  199. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  200. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  201. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  202. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  203. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
  204. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  205. package/lib/features/navigation/navigation-target-resolver.spec.js +26 -26
  206. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  207. package/lib/features/rank/model.d.ts +1 -1
  208. package/lib/features/rank/model.js +2 -2
  209. package/lib/features/rank/model.js.map +1 -1
  210. package/lib/features/reconnect/model.d.ts +1 -1
  211. package/lib/features/reconnect/model.d.ts.map +1 -1
  212. package/lib/features/reconnect/model.js +9 -27
  213. package/lib/features/reconnect/model.js.map +1 -1
  214. package/lib/features/save/di.config.d.ts +1 -1
  215. package/lib/features/save/di.config.d.ts.map +1 -1
  216. package/lib/features/save/di.config.js +6 -6
  217. package/lib/features/save/di.config.js.map +1 -1
  218. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
  219. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  220. package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
  221. package/lib/features/save/save-keylistener.js.map +1 -0
  222. package/lib/features/select/di.config.js +11 -11
  223. package/lib/features/select/di.config.js.map +1 -1
  224. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  225. package/lib/features/select/select-feedback-action.js +45 -71
  226. package/lib/features/select/select-feedback-action.js.map +1 -1
  227. package/lib/features/select/select-mouse-listener.js +7 -23
  228. package/lib/features/select/select-mouse-listener.js.map +1 -1
  229. package/lib/features/select/selection-service.d.ts +17 -1
  230. package/lib/features/select/selection-service.d.ts.map +1 -1
  231. package/lib/features/select/selection-service.js +134 -236
  232. package/lib/features/select/selection-service.js.map +1 -1
  233. package/lib/features/select/selection-service.spec.js +96 -139
  234. package/lib/features/select/selection-service.spec.js.map +1 -1
  235. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +19 -2
  236. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  237. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +102 -142
  238. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  239. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
  240. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  241. package/lib/features/tool-feedback/creation-tool-feedback.js +95 -118
  242. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  243. package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
  244. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  245. package/lib/features/tool-feedback/css-feedback.js +37 -81
  246. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  247. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  248. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  249. package/lib/features/tool-feedback/di.config.js +27 -27
  250. package/lib/features/tool-feedback/di.config.js.map +1 -1
  251. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +18 -2
  252. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  253. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -208
  254. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  255. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
  256. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  257. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  258. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  259. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
  260. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  261. package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -84
  262. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  263. package/lib/features/tool-feedback/model.d.ts +1 -1
  264. package/lib/features/tool-feedback/model.js +11 -27
  265. package/lib/features/tool-feedback/model.js.map +1 -1
  266. package/lib/features/tool-feedback/view.d.ts +21 -5
  267. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  268. package/lib/features/tool-feedback/view.js +29 -51
  269. package/lib/features/tool-feedback/view.js.map +1 -1
  270. package/lib/features/tool-palette/di.config.d.ts +1 -1
  271. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  272. package/lib/features/tool-palette/di.config.js +6 -6
  273. package/lib/features/tool-palette/di.config.js.map +1 -1
  274. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  275. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  276. package/lib/features/tool-palette/palette-item.js +6 -6
  277. package/lib/features/tool-palette/palette-item.js.map +1 -1
  278. package/lib/features/tool-palette/tool-palette.d.ts +19 -3
  279. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  280. package/lib/features/tool-palette/tool-palette.js +199 -269
  281. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  282. package/lib/features/tools/base-glsp-tool.d.ts +18 -2
  283. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  284. package/lib/features/tools/base-glsp-tool.js +37 -59
  285. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  286. package/lib/features/tools/change-bounds-tool.d.ts +20 -3
  287. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  288. package/lib/features/tools/change-bounds-tool.js +192 -241
  289. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  290. package/lib/features/tools/delete-tool.d.ts +17 -1
  291. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  292. package/lib/features/tools/delete-tool.js +71 -104
  293. package/lib/features/tools/delete-tool.js.map +1 -1
  294. package/lib/features/tools/di.config.d.ts +0 -15
  295. package/lib/features/tools/di.config.d.ts.map +1 -1
  296. package/lib/features/tools/di.config.js +19 -19
  297. package/lib/features/tools/di.config.js.map +1 -1
  298. package/lib/features/tools/edge-creation-tool.d.ts +17 -2
  299. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  300. package/lib/features/tools/edge-creation-tool.js +62 -87
  301. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  302. package/lib/features/tools/edge-edit-tool.d.ts +17 -1
  303. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  304. package/lib/features/tools/edge-edit-tool.js +112 -183
  305. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  306. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  307. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  308. package/lib/features/tools/marquee-behavior.js +128 -0
  309. package/lib/features/tools/marquee-behavior.js.map +1 -0
  310. package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
  311. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  312. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  313. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  314. package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
  315. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  316. package/lib/features/tools/marquee-mouse-tool.js +86 -195
  317. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  318. package/lib/features/tools/marquee-tool.d.ts +17 -1
  319. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  320. package/lib/features/tools/marquee-tool.js +32 -73
  321. package/lib/features/tools/marquee-tool.js.map +1 -1
  322. package/lib/features/tools/model.js +4 -22
  323. package/lib/features/tools/model.js.map +1 -1
  324. package/lib/features/tools/node-creation-tool.d.ts +17 -2
  325. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  326. package/lib/features/tools/node-creation-tool.js +60 -90
  327. package/lib/features/tools/node-creation-tool.js.map +1 -1
  328. package/lib/features/tools/view.d.ts +1 -1
  329. package/lib/features/tools/view.d.ts.map +1 -1
  330. package/lib/features/tools/view.js +12 -31
  331. package/lib/features/tools/view.js.map +1 -1
  332. package/lib/features/validation/di.config.js +12 -12
  333. package/lib/features/validation/di.config.js.map +1 -1
  334. package/lib/features/validation/issue-marker.d.ts +2 -2
  335. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  336. package/lib/features/validation/issue-marker.js +17 -55
  337. package/lib/features/validation/issue-marker.js.map +1 -1
  338. package/lib/features/validation/marker-navigator.d.ts +17 -1
  339. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  340. package/lib/features/validation/marker-navigator.js +131 -164
  341. package/lib/features/validation/marker-navigator.js.map +1 -1
  342. package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
  343. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  344. package/lib/features/validation/marker-navigator.spec.js +83 -77
  345. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  346. package/lib/features/validation/validate.d.ts +18 -29
  347. package/lib/features/validation/validate.d.ts.map +1 -1
  348. package/lib/features/validation/validate.js +147 -300
  349. package/lib/features/validation/validate.js.map +1 -1
  350. package/lib/features/viewport/di.config.js +10 -10
  351. package/lib/features/viewport/di.config.js.map +1 -1
  352. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
  353. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  354. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
  355. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  356. package/lib/index.d.ts +9 -15
  357. package/lib/index.d.ts.map +1 -1
  358. package/lib/index.js +29 -34
  359. package/lib/index.js.map +1 -1
  360. package/lib/lib/model.js +11 -27
  361. package/lib/lib/model.js.map +1 -1
  362. package/lib/model-source/glsp-diagram-server.d.ts +3 -5
  363. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  364. package/lib/model-source/glsp-diagram-server.js +60 -121
  365. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  366. package/lib/protocol-reexport.d.ts +45 -0
  367. package/lib/protocol-reexport.d.ts.map +1 -0
  368. package/lib/protocol-reexport.js +75 -0
  369. package/lib/protocol-reexport.js.map +1 -0
  370. package/lib/utils/argument-utils.d.ts +3 -3
  371. package/lib/utils/argument-utils.d.ts.map +1 -1
  372. package/lib/utils/argument-utils.js +32 -97
  373. package/lib/utils/argument-utils.js.map +1 -1
  374. package/lib/utils/html-utils.js +2 -2
  375. package/lib/utils/html-utils.js.map +1 -1
  376. package/lib/utils/layout-utils.d.ts +3 -2
  377. package/lib/utils/layout-utils.d.ts.map +1 -1
  378. package/lib/utils/layout-utils.js +5 -5
  379. package/lib/utils/layout-utils.js.map +1 -1
  380. package/lib/utils/marker.d.ts +0 -38
  381. package/lib/utils/marker.d.ts.map +1 -1
  382. package/lib/utils/marker.js +14 -61
  383. package/lib/utils/marker.js.map +1 -1
  384. package/lib/utils/smodel-util.d.ts +4 -4
  385. package/lib/utils/smodel-util.d.ts.map +1 -1
  386. package/lib/utils/smodel-util.js +16 -65
  387. package/lib/utils/smodel-util.js.map +1 -1
  388. package/lib/utils/viewpoint-util.d.ts +3 -2
  389. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  390. package/lib/utils/viewpoint-util.js +15 -30
  391. package/lib/utils/viewpoint-util.js.map +1 -1
  392. package/lib/views/base-view-module.d.ts +0 -15
  393. package/lib/views/base-view-module.d.ts.map +1 -1
  394. package/lib/views/base-view-module.js +28 -28
  395. package/lib/views/base-view-module.js.map +1 -1
  396. package/lib/views/compartments.d.ts +6 -0
  397. package/lib/views/compartments.d.ts.map +1 -0
  398. package/lib/views/compartments.js +43 -0
  399. package/lib/views/compartments.js.map +1 -0
  400. package/lib/views/glsp-edge-view.d.ts +18 -3
  401. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  402. package/lib/views/glsp-edge-view.js +32 -77
  403. package/lib/views/glsp-edge-view.js.map +1 -1
  404. package/lib/views/index.d.ts +1 -1
  405. package/lib/views/index.d.ts.map +1 -1
  406. package/lib/views/index.js +1 -1
  407. package/lib/views/index.js.map +1 -1
  408. package/lib/views/issue-marker-view.d.ts +2 -1
  409. package/lib/views/issue-marker-view.d.ts.map +1 -1
  410. package/lib/views/issue-marker-view.js +36 -50
  411. package/lib/views/issue-marker-view.js.map +1 -1
  412. package/lib/views/rounded-corner-view.d.ts +2 -3
  413. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  414. package/lib/views/rounded-corner-view.js +40 -70
  415. package/lib/views/rounded-corner-view.js.map +1 -1
  416. package/lib/views/rounded-corner.d.ts +2 -1
  417. package/lib/views/rounded-corner.d.ts.map +1 -1
  418. package/lib/views/rounded-corner.js +44 -65
  419. package/lib/views/rounded-corner.js.map +1 -1
  420. package/package.json +12 -19
  421. package/src/base/action-dispatcher.ts +12 -12
  422. package/src/base/actions/focus-change-action.ts +2 -2
  423. package/src/base/{args.ts → argumentable.ts} +2 -3
  424. package/src/base/auto-complete/auto-complete-actions.ts +1 -1
  425. package/src/base/auto-complete/auto-complete-widget.ts +37 -25
  426. package/src/base/auto-complete/validation-decorator.ts +12 -11
  427. package/src/base/command-stack.ts +2 -5
  428. package/src/base/container-modules.ts +112 -0
  429. package/src/base/di.config.ts +33 -18
  430. package/src/base/drag-aware-mouse-listener.ts +3 -4
  431. package/src/base/{editor-context.ts → editor-context-service.ts} +4 -31
  432. package/src/base/focus-tracker.ts +2 -4
  433. package/src/base/model/update-model-command.ts +8 -16
  434. package/src/base/model-initialization-constraint.ts +3 -2
  435. package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
  436. package/src/base/types.ts +4 -2
  437. package/src/features/change-bounds/model.ts +15 -5
  438. package/src/features/change-bounds/movement-restrictor.ts +17 -9
  439. package/src/features/change-bounds/snap.ts +3 -2
  440. package/src/features/command-palette/server-command-palette-provider.ts +11 -9
  441. package/src/features/context-menu/delete-element-context-menu.ts +3 -4
  442. package/src/features/context-menu/di.config.ts +11 -9
  443. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +40 -10
  444. package/src/features/context-menu/server-context-menu-provider.ts +10 -7
  445. package/src/features/copy-paste/copy-paste-context-menu.ts +59 -30
  446. package/src/features/copy-paste/copy-paste-handler.ts +18 -10
  447. package/src/features/copy-paste/di.config.ts +2 -3
  448. package/src/features/decoration/decoration-placer.ts +3 -13
  449. package/src/features/edit-label/edit-label-validator.ts +11 -12
  450. package/src/features/hints/di.config.ts +2 -3
  451. package/src/features/hints/model.ts +4 -3
  452. package/src/features/hints/type-hints.ts +23 -90
  453. package/src/features/hover/di.config.ts +4 -3
  454. package/src/features/hover/hover.ts +26 -7
  455. package/src/features/layout/di.config.ts +8 -4
  456. package/src/features/layout/freeform-layout.ts +133 -0
  457. package/src/features/layout/layout-commands.spec.ts +82 -64
  458. package/src/features/layout/layout-commands.ts +43 -34
  459. package/src/features/layout/vbox-layout.ts +256 -0
  460. package/src/features/model-source-watcher/di.config.ts +3 -4
  461. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +11 -7
  462. package/src/features/mouse-tool/mouse-tool.ts +33 -23
  463. package/src/features/navigation/di.config.ts +4 -10
  464. package/src/features/navigation/navigation-action-handler.ts +33 -69
  465. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -7
  466. package/src/features/navigation/navigation-target-resolver.ts +13 -91
  467. package/src/features/rank/model.ts +2 -2
  468. package/src/features/reconnect/model.ts +2 -3
  469. package/src/features/save/di.config.ts +2 -3
  470. package/src/features/save/{save.ts → save-keylistener.ts} +3 -11
  471. package/src/features/select/select-feedback-action.ts +4 -6
  472. package/src/features/select/selection-service.spec.ts +11 -6
  473. package/src/features/select/selection-service.ts +14 -10
  474. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +26 -20
  475. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -14
  476. package/src/features/tool-feedback/css-feedback.ts +9 -6
  477. package/src/features/tool-feedback/di.config.ts +2 -5
  478. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +19 -18
  479. package/src/features/tool-feedback/feedback-action-dispatcher.ts +8 -9
  480. package/src/features/tool-feedback/marquee-tool-feedback.ts +4 -5
  481. package/src/features/tool-feedback/model.ts +1 -2
  482. package/src/features/tool-feedback/view.tsx +17 -11
  483. package/src/features/tool-palette/di.config.ts +2 -4
  484. package/src/features/tool-palette/palette-item.ts +4 -6
  485. package/src/features/tool-palette/tool-palette.ts +44 -40
  486. package/src/features/tools/base-glsp-tool.ts +4 -4
  487. package/src/features/tools/change-bounds-tool.ts +64 -34
  488. package/src/features/tools/delete-tool.ts +9 -6
  489. package/src/features/tools/di.config.ts +2 -3
  490. package/src/features/tools/edge-creation-tool.ts +5 -10
  491. package/src/features/tools/edge-edit-tool.ts +10 -20
  492. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  493. package/src/features/tools/marquee-behavior.ts +158 -0
  494. package/src/features/tools/marquee-mouse-tool.ts +43 -134
  495. package/src/features/tools/marquee-tool.ts +2 -3
  496. package/src/features/tools/node-creation-tool.ts +4 -11
  497. package/src/features/tools/view.tsx +17 -12
  498. package/src/features/validation/issue-marker.ts +2 -3
  499. package/src/features/validation/marker-navigator.spec.ts +18 -14
  500. package/src/features/validation/marker-navigator.ts +24 -12
  501. package/src/features/validation/validate.ts +7 -40
  502. package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -12
  503. package/src/index.ts +30 -19
  504. package/src/model-source/glsp-diagram-server.ts +12 -28
  505. package/src/protocol-reexport.ts +64 -0
  506. package/src/utils/argument-utils.ts +14 -11
  507. package/src/utils/layout-utils.ts +13 -7
  508. package/src/utils/marker.ts +2 -26
  509. package/src/utils/smodel-util.ts +15 -11
  510. package/src/utils/viewpoint-util.ts +4 -4
  511. package/src/views/base-view-module.ts +1 -2
  512. package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -14
  513. package/src/views/glsp-edge-view.tsx +21 -14
  514. package/src/views/index.ts +1 -1
  515. package/src/views/issue-marker-view.tsx +28 -19
  516. package/src/views/rounded-corner-view.tsx +38 -25
  517. package/src/views/rounded-corner.ts +5 -6
  518. package/lib/base/actions/context-actions.d.ts +0 -36
  519. package/lib/base/actions/context-actions.d.ts.map +0 -1
  520. package/lib/base/actions/context-actions.js +0 -51
  521. package/lib/base/actions/context-actions.js.map +0 -1
  522. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  523. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  524. package/lib/base/actions/edit-mode-action.js +0 -56
  525. package/lib/base/actions/edit-mode-action.js.map +0 -1
  526. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  527. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  528. package/lib/base/actions/edit-validation-actions.js +0 -83
  529. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  530. package/lib/base/actions/protocol-actions.d.ts +0 -41
  531. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  532. package/lib/base/actions/protocol-actions.js +0 -151
  533. package/lib/base/actions/protocol-actions.js.map +0 -1
  534. package/lib/base/args.d.ts.map +0 -1
  535. package/lib/base/args.js.map +0 -1
  536. package/lib/base/editor-context.d.ts.map +0 -1
  537. package/lib/base/editor-context.js +0 -174
  538. package/lib/base/editor-context.js.map +0 -1
  539. package/lib/base/operations/operation.d.ts +0 -135
  540. package/lib/base/operations/operation.d.ts.map +0 -1
  541. package/lib/base/operations/operation.js +0 -231
  542. package/lib/base/operations/operation.js.map +0 -1
  543. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  544. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  545. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  546. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  547. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  548. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  549. package/lib/features/hints/request-type-hints-action.js +0 -30
  550. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  551. package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
  552. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  553. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  554. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  555. package/lib/features/save/save.d.ts.map +0 -1
  556. package/lib/features/save/save.js +0 -62
  557. package/lib/features/save/save.js.map +0 -1
  558. package/lib/features/undo-redo/model.d.ts.map +0 -1
  559. package/lib/features/undo-redo/model.js +0 -22
  560. package/lib/features/undo-redo/model.js.map +0 -1
  561. package/lib/model-source/glsp-server-status.d.ts +0 -30
  562. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  563. package/lib/model-source/glsp-server-status.js +0 -61
  564. package/lib/model-source/glsp-server-status.js.map +0 -1
  565. package/lib/utils/array-utils.d.ts +0 -28
  566. package/lib/utils/array-utils.d.ts.map +0 -1
  567. package/lib/utils/array-utils.js +0 -61
  568. package/lib/utils/array-utils.js.map +0 -1
  569. package/lib/views/default-types.d.ts +0 -37
  570. package/lib/views/default-types.d.ts.map +0 -1
  571. package/lib/views/default-types.js +0 -47
  572. package/lib/views/default-types.js.map +0 -1
  573. package/src/base/actions/context-actions.ts +0 -43
  574. package/src/base/actions/edit-validation-actions.ts +0 -103
  575. package/src/base/actions/protocol-actions.ts +0 -82
  576. package/src/base/operations/operation.ts +0 -178
  577. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  578. package/src/features/hints/request-type-hints-action.ts +0 -36
  579. package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
  580. package/src/model-source/glsp-server-status.ts +0 -38
  581. package/src/utils/array-utils.ts +0 -55
  582. package/src/views/default-types.ts +0 -48
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,19 +14,16 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  /* eslint-disable import/no-deprecated,no-unused-expressions */
17
- import 'mocha';
18
- import 'reflect-metadata';
19
-
17
+ import { Action, Bounds, ChangeBoundsOperation, ElementAndBounds } from '@eclipse-glsp/protocol';
20
18
  import { expect } from 'chai';
21
19
  import { Container } from 'inversify';
20
+ import 'mocha';
21
+ import 'reflect-metadata';
22
22
  import {
23
- Action,
24
23
  AnimationFrameSyncer,
25
- Bounds,
26
24
  CommandExecutionContext,
27
25
  ConsoleLogger,
28
26
  defaultModule,
29
- ElementAndBounds,
30
27
  ElementMove,
31
28
  FeatureSet,
32
29
  IActionDispatcher,
@@ -41,8 +38,6 @@ import {
41
38
  SModelRoot,
42
39
  TYPES
43
40
  } from 'sprotty';
44
-
45
- import { ChangeBoundsOperation } from '../../base/operations/operation';
46
41
  import { GLSP_TYPES } from '../../base/types';
47
42
  import { resizeFeature } from '../change-bounds/model';
48
43
  import { SelectionService } from '../select/selection-service';
@@ -58,7 +53,7 @@ import {
58
53
  } from './layout-commands';
59
54
 
60
55
  class MockActionDispatcher implements IActionDispatcher {
61
- constructor(public dispatchedActions: Action[] = []) { }
56
+ constructor(public dispatchedActions: Action[] = []) {}
62
57
  dispatch(action: Action): Promise<void> {
63
58
  this.dispatchedActions.push(action);
64
59
  return Promise.resolve();
@@ -84,15 +79,18 @@ const selectionService = container.get<SelectionService>(GLSP_TYPES.SelectionSer
84
79
  const actionDispatcher = new MockActionDispatcher();
85
80
 
86
81
  const node1 = {
87
- id: 'node1', type: 'node:circle',
82
+ id: 'node1',
83
+ type: 'node:circle',
88
84
  selected: true
89
85
  };
90
86
  const node2 = {
91
- id: 'node2', type: 'node:circle',
87
+ id: 'node2',
88
+ type: 'node:circle',
92
89
  selected: true
93
90
  };
94
91
  const node3 = {
95
- id: 'node3', type: 'node:circle',
92
+ id: 'node3',
93
+ type: 'node:circle',
96
94
  selected: true
97
95
  };
98
96
  const model = createModel();
@@ -123,7 +121,6 @@ const context: CommandExecutionContext = {
123
121
  const defaultSize = { height: 10, width: 10 };
124
122
 
125
123
  describe('AlignElementsCommand', () => {
126
-
127
124
  it('should align all elements left', () => {
128
125
  actionDispatcher.dispatchedActions = [];
129
126
  const newModel = initModel([
@@ -135,11 +132,13 @@ describe('AlignElementsCommand', () => {
135
132
  const command = new AlignElementsCommand(action, actionDispatcher, selectionService);
136
133
  command.execute(newContext(newModel));
137
134
 
138
- assertAllBounds(new Map([
139
- ['node1', { x: 111, y: 111, width: defaultSize.width, height: defaultSize.height }],
140
- ['node2', { x: 111, y: 222, width: defaultSize.width, height: defaultSize.height }],
141
- ['node3', { x: 111, y: 333, width: defaultSize.width, height: defaultSize.height }]
142
- ]));
135
+ assertAllBounds(
136
+ new Map([
137
+ ['node1', { x: 111, y: 111, width: defaultSize.width, height: defaultSize.height }],
138
+ ['node2', { x: 111, y: 222, width: defaultSize.width, height: defaultSize.height }],
139
+ ['node3', { x: 111, y: 333, width: defaultSize.width, height: defaultSize.height }]
140
+ ])
141
+ );
143
142
  });
144
143
 
145
144
  it('should align all elements right', () => {
@@ -153,11 +152,13 @@ describe('AlignElementsCommand', () => {
153
152
  const command = new AlignElementsCommand(action, actionDispatcher, selectionService);
154
153
  command.execute(newContext(newModel));
155
154
 
156
- assertAllBounds(new Map([
157
- ['node1', { x: 333, y: 111, width: defaultSize.width, height: defaultSize.height }],
158
- ['node2', { x: 333, y: 222, width: defaultSize.width, height: defaultSize.height }],
159
- ['node3', { x: 333, y: 333, width: defaultSize.width, height: defaultSize.height }]
160
- ]));
155
+ assertAllBounds(
156
+ new Map([
157
+ ['node1', { x: 333, y: 111, width: defaultSize.width, height: defaultSize.height }],
158
+ ['node2', { x: 333, y: 222, width: defaultSize.width, height: defaultSize.height }],
159
+ ['node3', { x: 333, y: 333, width: defaultSize.width, height: defaultSize.height }]
160
+ ])
161
+ );
161
162
  });
162
163
 
163
164
  it('should align all elements center', () => {
@@ -171,11 +172,13 @@ describe('AlignElementsCommand', () => {
171
172
  const command = new AlignElementsCommand(action, actionDispatcher, selectionService);
172
173
  command.execute(newContext(newModel));
173
174
 
174
- assertAllBounds(new Map([
175
- ['node1', { x: 222, y: 111, width: defaultSize.width, height: defaultSize.height }],
176
- ['node2', { x: 222, y: 222, width: defaultSize.width, height: defaultSize.height }],
177
- ['node3', { x: 222, y: 333, width: defaultSize.width, height: defaultSize.height }]
178
- ]));
175
+ assertAllBounds(
176
+ new Map([
177
+ ['node1', { x: 222, y: 111, width: defaultSize.width, height: defaultSize.height }],
178
+ ['node2', { x: 222, y: 222, width: defaultSize.width, height: defaultSize.height }],
179
+ ['node3', { x: 222, y: 333, width: defaultSize.width, height: defaultSize.height }]
180
+ ])
181
+ );
179
182
  });
180
183
 
181
184
  it('should align all elements top', () => {
@@ -189,11 +192,13 @@ describe('AlignElementsCommand', () => {
189
192
  const command = new AlignElementsCommand(action, actionDispatcher, selectionService);
190
193
  command.execute(newContext(newModel));
191
194
 
192
- assertAllBounds(new Map([
193
- ['node1', { x: 111, y: 111, width: defaultSize.width, height: defaultSize.height }],
194
- ['node2', { x: 222, y: 111, width: defaultSize.width, height: defaultSize.height }],
195
- ['node3', { x: 333, y: 111, width: defaultSize.width, height: defaultSize.height }]
196
- ]));
195
+ assertAllBounds(
196
+ new Map([
197
+ ['node1', { x: 111, y: 111, width: defaultSize.width, height: defaultSize.height }],
198
+ ['node2', { x: 222, y: 111, width: defaultSize.width, height: defaultSize.height }],
199
+ ['node3', { x: 333, y: 111, width: defaultSize.width, height: defaultSize.height }]
200
+ ])
201
+ );
197
202
  });
198
203
 
199
204
  it('should align all elements bottom', () => {
@@ -207,11 +212,13 @@ describe('AlignElementsCommand', () => {
207
212
  const command = new AlignElementsCommand(action, actionDispatcher, selectionService);
208
213
  command.execute(newContext(newModel));
209
214
 
210
- assertAllBounds(new Map([
211
- ['node1', { x: 111, y: 333, width: defaultSize.width, height: defaultSize.height }],
212
- ['node2', { x: 222, y: 333, width: defaultSize.width, height: defaultSize.height }],
213
- ['node3', { x: 333, y: 333, width: defaultSize.width, height: defaultSize.height }]
214
- ]));
215
+ assertAllBounds(
216
+ new Map([
217
+ ['node1', { x: 111, y: 333, width: defaultSize.width, height: defaultSize.height }],
218
+ ['node2', { x: 222, y: 333, width: defaultSize.width, height: defaultSize.height }],
219
+ ['node3', { x: 333, y: 333, width: defaultSize.width, height: defaultSize.height }]
220
+ ])
221
+ );
215
222
  });
216
223
 
217
224
  it('should align all elements middle', () => {
@@ -225,17 +232,17 @@ describe('AlignElementsCommand', () => {
225
232
  const command = new AlignElementsCommand(action, actionDispatcher, selectionService);
226
233
  command.execute(newContext(newModel));
227
234
 
228
- assertAllBounds(new Map([
229
- ['node1', { x: 111, y: 222, width: defaultSize.width, height: defaultSize.height }],
230
- ['node2', { x: 222, y: 222, width: defaultSize.width, height: defaultSize.height }],
231
- ['node3', { x: 333, y: 222, width: defaultSize.width, height: defaultSize.height }]
232
- ]));
235
+ assertAllBounds(
236
+ new Map([
237
+ ['node1', { x: 111, y: 222, width: defaultSize.width, height: defaultSize.height }],
238
+ ['node2', { x: 222, y: 222, width: defaultSize.width, height: defaultSize.height }],
239
+ ['node3', { x: 333, y: 222, width: defaultSize.width, height: defaultSize.height }]
240
+ ])
241
+ );
233
242
  });
234
-
235
243
  });
236
244
 
237
245
  describe('ResizeElementsCommand', () => {
238
-
239
246
  it('should make same width as last', () => {
240
247
  actionDispatcher.dispatchedActions = [];
241
248
  const newModel = initModel([
@@ -248,11 +255,13 @@ describe('ResizeElementsCommand', () => {
248
255
  command.execute(newContext(newModel));
249
256
 
250
257
  // resize is keeping the center, so the X moves by diff / 2
251
- assertAllBoundsInChangeBounds(new Map([
252
- ['node1', { x: 90, y: 100, height: 10, width: 30 }],
253
- ['node2', { x: 95, y: 200, height: 20, width: 30 }],
254
- ['node3', { x: 100, y: 300, height: 30, width: 30 }]
255
- ]));
258
+ assertAllBoundsInChangeBounds(
259
+ new Map([
260
+ ['node1', { x: 90, y: 100, height: 10, width: 30 }],
261
+ ['node2', { x: 95, y: 200, height: 20, width: 30 }],
262
+ ['node3', { x: 100, y: 300, height: 30, width: 30 }]
263
+ ])
264
+ );
256
265
  });
257
266
 
258
267
  it('should make same height as last', () => {
@@ -267,11 +276,13 @@ describe('ResizeElementsCommand', () => {
267
276
  command.execute(newContext(newModel));
268
277
 
269
278
  // resize is keeping the center, so the Y moves by diff / 2
270
- assertAllBoundsInChangeBounds(new Map([
271
- ['node1', { x: 100, y: 90, height: 30, width: 10 }],
272
- ['node2', { x: 100, y: 195, height: 30, width: 20 }],
273
- ['node3', { x: 100, y: 300, height: 30, width: 30 }]
274
- ]));
279
+ assertAllBoundsInChangeBounds(
280
+ new Map([
281
+ ['node1', { x: 100, y: 90, height: 30, width: 10 }],
282
+ ['node2', { x: 100, y: 195, height: 30, width: 20 }],
283
+ ['node3', { x: 100, y: 300, height: 30, width: 30 }]
284
+ ])
285
+ );
275
286
  });
276
287
 
277
288
  it('should make same width and height as last', () => {
@@ -286,13 +297,14 @@ describe('ResizeElementsCommand', () => {
286
297
  command.execute(newContext(newModel));
287
298
 
288
299
  // resize is keeping the center, so the Y moves by diff / 2
289
- assertAllBoundsInChangeBounds(new Map([
290
- ['node1', { x: 90, y: 90, height: 30, width: 30 }],
291
- ['node2', { x: 95, y: 195, height: 30, width: 30 }],
292
- ['node3', { x: 100, y: 300, height: 30, width: 30 }]
293
- ]));
300
+ assertAllBoundsInChangeBounds(
301
+ new Map([
302
+ ['node1', { x: 90, y: 90, height: 30, width: 30 }],
303
+ ['node2', { x: 95, y: 195, height: 30, width: 30 }],
304
+ ['node3', { x: 100, y: 300, height: 30, width: 30 }]
305
+ ])
306
+ );
294
307
  });
295
-
296
308
  });
297
309
 
298
310
  function initModel(elementAndBounds: ElementAndBounds[]): SModelRoot {
@@ -350,11 +362,17 @@ function getElementAndBoundsById(id: string, elementAndBounds: ElementAndBounds[
350
362
  }
351
363
 
352
364
  function dispatchedElementMoves(): ElementMove[] {
353
- return actionDispatcher.dispatchedActions.filter(isMoveAction).map(a => a.moves).reduce((acc, val) => acc.concat(val), []);
365
+ return actionDispatcher.dispatchedActions
366
+ .filter(isMoveAction)
367
+ .map(a => a.moves)
368
+ .reduce((acc, val) => acc.concat(val), []);
354
369
  }
355
370
 
356
371
  function dispatchedChangeBounds(): ElementAndBounds[] {
357
- return actionDispatcher.dispatchedActions.filter(isChangeBounds).map(a => a.newBounds).reduce((acc, val) => acc.concat(val), []);
372
+ return actionDispatcher.dispatchedActions
373
+ .filter(isChangeBounds)
374
+ .map(a => a.newBounds)
375
+ .reduce((acc, val) => acc.concat(val), []);
358
376
  }
359
377
 
360
378
  function isMoveAction(action: Action): action is MoveAction {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,13 +13,12 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, ChangeBoundsOperation, ElementAndBounds } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable, optional } from 'inversify';
17
18
  import {
18
- Action,
19
19
  Command,
20
20
  CommandExecutionContext,
21
21
  CommandReturn,
22
- ElementAndBounds,
23
22
  ElementMove,
24
23
  IActionDispatcher,
25
24
  MoveAction,
@@ -27,24 +26,17 @@ import {
27
26
  SModelElement,
28
27
  TYPES
29
28
  } from 'sprotty';
30
-
31
- import { ChangeBoundsOperation } from '../../base/operations/operation';
32
29
  import { GLSP_TYPES } from '../../base/types';
33
- import {
34
- toValidElementAndBounds,
35
- toValidElementMove,
36
- WriteableElementAndBounds,
37
- WriteableElementMove
38
- } from '../../utils/layout-utils';
30
+ import { toValidElementAndBounds, toValidElementMove, WriteableElementAndBounds, WriteableElementMove } from '../../utils/layout-utils';
39
31
  import { BoundsAwareModelElement } from '../../utils/smodel-util';
40
32
  import { isBoundsAwareMoveable, isResizable } from '../change-bounds/model';
41
33
  import { IMovementRestrictor } from '../change-bounds/movement-restrictor';
42
34
  import { SelectionService } from '../select/selection-service';
43
35
 
36
+ // eslint-disable-next-line no-shadow
44
37
  export enum ResizeDimension {
45
38
  Width,
46
39
  Height,
47
- // eslint-disable-next-line @typescript-eslint/camelcase
48
40
  Width_And_Height
49
41
  }
50
42
 
@@ -84,10 +76,11 @@ export class ResizeElementsAction implements Action {
84
76
  * Function to reduce the dimension to a target dimension value, see Reduce.* for potential functions.
85
77
  */
86
78
  public readonly reductionFunction: (...values: number[]) => number,
87
- public readonly kind: string = ResizeElementsCommand.KIND) {
88
- }
79
+ public readonly kind: string = ResizeElementsCommand.KIND
80
+ ) {}
89
81
  }
90
82
 
83
+ // eslint-disable-next-line no-shadow
91
84
  export enum Alignment {
92
85
  Left,
93
86
  Center,
@@ -125,16 +118,18 @@ export class AlignElementsAction implements Action {
125
118
  * Function to selected elements that are considered during alignment calculation, see Select.* for potential functions.
126
119
  */
127
120
  public readonly selectionFunction: (elements: BoundsAwareModelElement[]) => BoundsAwareModelElement[] = Select.all,
128
- public readonly kind = AlignElementsCommand.KIND) {
129
- }
121
+ public readonly kind = AlignElementsCommand.KIND
122
+ ) {}
130
123
  }
131
124
 
132
125
  @injectable()
133
126
  abstract class LayoutElementsCommand extends Command {
134
- constructor(@inject(TYPES.Action) protected action: ResizeElementsAction | AlignElementsAction,
127
+ constructor(
128
+ @inject(TYPES.Action) protected action: ResizeElementsAction | AlignElementsAction,
135
129
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
136
130
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
137
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor) {
131
+ @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
132
+ ) {
138
133
  super();
139
134
  }
140
135
 
@@ -170,10 +165,12 @@ abstract class LayoutElementsCommand extends Command {
170
165
  export class ResizeElementsCommand extends LayoutElementsCommand {
171
166
  static readonly KIND = 'layout:resize';
172
167
 
173
- constructor(@inject(TYPES.Action) protected action: ResizeElementsAction,
168
+ constructor(
169
+ @inject(TYPES.Action) protected action: ResizeElementsAction,
174
170
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
175
171
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
176
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor) {
172
+ @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
173
+ ) {
177
174
  super(action, actionDispatcher, selectionService, movementRestrictor);
178
175
  }
179
176
 
@@ -233,7 +230,10 @@ export class ResizeElementsCommand extends LayoutElementsCommand {
233
230
  });
234
231
  }
235
232
 
236
- dispatchResizeActions(elements: BoundsAwareModelElement[], change: (element: BoundsAwareModelElement, bounds: WriteableElementAndBounds) => void): void {
233
+ dispatchResizeActions(
234
+ elements: BoundsAwareModelElement[],
235
+ change: (element: BoundsAwareModelElement, bounds: WriteableElementAndBounds) => void
236
+ ): void {
237
237
  const elementAndBounds: ElementAndBounds[] = []; // client- and server-side resize
238
238
  elements.forEach(element => {
239
239
  const elementChange = this.createElementAndBounds(element, change);
@@ -245,9 +245,10 @@ export class ResizeElementsCommand extends LayoutElementsCommand {
245
245
  this.dispatchActions([new SetBoundsAction(elementAndBounds), new ChangeBoundsOperation(elementAndBounds)]);
246
246
  }
247
247
 
248
- createElementAndBounds(element: BoundsAwareModelElement, change: (element: BoundsAwareModelElement,
249
- bounds: WriteableElementAndBounds) => void): WriteableElementAndBounds | undefined {
250
-
248
+ createElementAndBounds(
249
+ element: BoundsAwareModelElement,
250
+ change: (_element: BoundsAwareModelElement, _bounds: WriteableElementAndBounds) => void
251
+ ): WriteableElementAndBounds | undefined {
251
252
  const bounds: WriteableElementAndBounds = {
252
253
  elementId: element.id,
253
254
  newPosition: {
@@ -278,10 +279,12 @@ export class ResizeElementsCommand extends LayoutElementsCommand {
278
279
  export class AlignElementsCommand extends LayoutElementsCommand {
279
280
  static readonly KIND = 'layout:align';
280
281
 
281
- constructor(@inject(TYPES.Action) protected action: AlignElementsAction,
282
+ constructor(
283
+ @inject(TYPES.Action) protected action: AlignElementsAction,
282
284
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
283
285
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
284
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor) {
286
+ @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
287
+ ) {
285
288
  super(action, actionDispatcher, selectionService, movementRestrictor);
286
289
  }
287
290
 
@@ -319,7 +322,7 @@ export class AlignElementsCommand extends LayoutElementsCommand {
319
322
  alignLeft(elements: BoundsAwareModelElement[]): void {
320
323
  const calculationElements = this.action.selectionFunction(elements);
321
324
  const minX = calculationElements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
322
- this.dispatchAlignActions(elements, (_, move) => move.toPosition.x = minX);
325
+ this.dispatchAlignActions(elements, (_, move) => (move.toPosition.x = minX));
323
326
  }
324
327
 
325
328
  alignCenter(elements: BoundsAwareModelElement[]): void {
@@ -328,19 +331,19 @@ export class AlignElementsCommand extends LayoutElementsCommand {
328
331
  const maxX = calculationElements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
329
332
  const diffX = maxX - minX;
330
333
  const centerX = minX + 0.5 * diffX;
331
- this.dispatchAlignActions(elements, (element, move) => move.toPosition.x = centerX - 0.5 * element.bounds.width);
334
+ this.dispatchAlignActions(elements, (element, move) => (move.toPosition.x = centerX - 0.5 * element.bounds.width));
332
335
  }
333
336
 
334
337
  alignRight(elements: BoundsAwareModelElement[]): void {
335
338
  const calculationElements = this.action.selectionFunction(elements);
336
339
  const maxX = calculationElements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
337
- this.dispatchAlignActions(elements, (element, move) => move.toPosition.x = maxX - element.bounds.width);
340
+ this.dispatchAlignActions(elements, (element, move) => (move.toPosition.x = maxX - element.bounds.width));
338
341
  }
339
342
 
340
343
  alignTop(elements: BoundsAwareModelElement[]): void {
341
344
  const calculationElements = this.action.selectionFunction(elements);
342
345
  const minY = calculationElements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
343
- this.dispatchAlignActions(elements, (_, move) => move.toPosition.y = minY);
346
+ this.dispatchAlignActions(elements, (_, move) => (move.toPosition.y = minY));
344
347
  }
345
348
 
346
349
  alignMiddle(elements: BoundsAwareModelElement[]): void {
@@ -349,16 +352,19 @@ export class AlignElementsCommand extends LayoutElementsCommand {
349
352
  const maxY = calculationElements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
350
353
  const diffY = maxY - minY;
351
354
  const middleY = minY + 0.5 * diffY;
352
- this.dispatchAlignActions(elements, (element, move) => move.toPosition.y = middleY - 0.5 * element.bounds.height);
355
+ this.dispatchAlignActions(elements, (element, move) => (move.toPosition.y = middleY - 0.5 * element.bounds.height));
353
356
  }
354
357
 
355
358
  alignBottom(elements: BoundsAwareModelElement[]): void {
356
359
  const calculationElements = this.action.selectionFunction(elements);
357
360
  const maxY = calculationElements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
358
- this.dispatchAlignActions(elements, (element, move) => move.toPosition.y = maxY - element.bounds.height);
361
+ this.dispatchAlignActions(elements, (element, move) => (move.toPosition.y = maxY - element.bounds.height));
359
362
  }
360
363
 
361
- dispatchAlignActions(elements: BoundsAwareModelElement[], change: (element: BoundsAwareModelElement, move: WriteableElementMove) => void): void {
364
+ dispatchAlignActions(
365
+ elements: BoundsAwareModelElement[],
366
+ change: (element: BoundsAwareModelElement, move: WriteableElementMove) => void
367
+ ): void {
362
368
  const moves: ElementMove[] = []; // client-side move
363
369
  const elementAndBounds: ElementAndBounds[] = []; // server-side move
364
370
  elements.forEach(element => {
@@ -373,7 +379,10 @@ export class AlignElementsCommand extends LayoutElementsCommand {
373
379
  this.dispatchActions([new MoveAction(moves), new ChangeBoundsOperation(elementAndBounds)]);
374
380
  }
375
381
 
376
- createElementMove(element: BoundsAwareModelElement, change: (element: BoundsAwareModelElement, move: WriteableElementMove) => void): WriteableElementMove | undefined {
382
+ createElementMove(
383
+ element: BoundsAwareModelElement,
384
+ change: (_element: BoundsAwareModelElement, _move: WriteableElementMove) => void
385
+ ): WriteableElementMove | undefined {
377
386
  const move: WriteableElementMove = {
378
387
  elementId: element.id,
379
388
  fromPosition: {