@eclipse-glsp/client 0.10.0-next.bb1c2fd.157 → 0.10.0-next.e5fcffe.169

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 (499) hide show
  1. package/css/glsp-sprotty.css +110 -8
  2. package/lib/base/action-dispatcher.d.ts +2 -1
  3. package/lib/base/action-dispatcher.d.ts.map +1 -1
  4. package/lib/base/action-dispatcher.js +13 -5
  5. package/lib/base/action-dispatcher.js.map +1 -1
  6. package/lib/base/actions/focus-change-action.d.ts +16 -7
  7. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  8. package/lib/base/actions/focus-change-action.js +31 -12
  9. package/lib/base/actions/focus-change-action.js.map +1 -1
  10. package/lib/base/actions/sprotty-actions.d.ts +7 -0
  11. package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
  12. package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
  13. package/lib/base/actions/sprotty-actions.js.map +1 -0
  14. package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
  15. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  16. package/lib/base/auto-complete/auto-complete-actions.js +24 -5
  17. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  18. package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
  19. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  20. package/lib/base/auto-complete/auto-complete-widget.js +16 -9
  21. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  22. package/lib/base/auto-complete/validation-decorator.js +2 -2
  23. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  24. package/lib/base/command-stack.d.ts.map +1 -1
  25. package/lib/base/command-stack.js +6 -5
  26. package/lib/base/command-stack.js.map +1 -1
  27. package/lib/base/di.config.d.ts +1 -1
  28. package/lib/base/di.config.d.ts.map +1 -1
  29. package/lib/base/di.config.js +13 -14
  30. package/lib/base/di.config.js.map +1 -1
  31. package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
  32. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  33. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  34. package/lib/base/editor-context-service.d.ts +13 -1
  35. package/lib/base/editor-context-service.d.ts.map +1 -1
  36. package/lib/base/editor-context-service.js +23 -10
  37. package/lib/base/editor-context-service.js.map +1 -1
  38. package/lib/base/focus-tracker.d.ts +1 -1
  39. package/lib/base/focus-tracker.d.ts.map +1 -1
  40. package/lib/base/focus-tracker.js +4 -4
  41. package/lib/base/focus-tracker.js.map +1 -1
  42. package/lib/base/model/model-registry.d.ts.map +1 -1
  43. package/lib/base/model/model-registry.js +2 -2
  44. package/lib/base/model/model-registry.js.map +1 -1
  45. package/lib/base/model/update-model-command.d.ts +1 -1
  46. package/lib/base/model/update-model-command.d.ts.map +1 -1
  47. package/lib/base/model/update-model-command.js +15 -15
  48. package/lib/base/model/update-model-command.js.map +1 -1
  49. package/lib/base/model-initialization-constraint.d.ts +4 -5
  50. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  51. package/lib/base/model-initialization-constraint.js +11 -13
  52. package/lib/base/model-initialization-constraint.js.map +1 -1
  53. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  54. package/lib/base/selection-clearing-mouse-listener.js +1 -1
  55. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  56. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  57. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  58. package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
  59. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  60. package/lib/base/tool-manager/tool-actions.d.ts +14 -0
  61. package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
  62. package/lib/base/tool-manager/tool-actions.js +25 -0
  63. package/lib/base/tool-manager/tool-actions.js.map +1 -0
  64. package/lib/base/types.d.ts +144 -20
  65. package/lib/base/types.d.ts.map +1 -1
  66. package/lib/base/types.js +14 -26
  67. package/lib/base/types.js.map +1 -1
  68. package/lib/base/view/view-registry.d.ts.map +1 -1
  69. package/lib/base/view/view-registry.js +2 -2
  70. package/lib/base/view/view-registry.js.map +1 -1
  71. package/lib/features/change-bounds/model.d.ts +1 -1
  72. package/lib/features/change-bounds/model.d.ts.map +1 -1
  73. package/lib/features/change-bounds/model.js +3 -3
  74. package/lib/features/change-bounds/model.js.map +1 -1
  75. package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
  76. package/lib/features/change-bounds/movement-restrictor.js +6 -6
  77. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  78. package/lib/features/change-bounds/snap.d.ts +42 -1
  79. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  80. package/lib/features/change-bounds/snap.js +78 -2
  81. package/lib/features/change-bounds/snap.js.map +1 -1
  82. package/lib/features/change-bounds/snap.spec.d.ts +17 -0
  83. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  84. package/lib/features/change-bounds/snap.spec.js +82 -0
  85. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  86. package/lib/features/command-palette/command-palette-tool.js +3 -3
  87. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  88. package/lib/features/command-palette/di.config.d.ts +2 -2
  89. package/lib/features/command-palette/di.config.d.ts.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 +1 -1
  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 +13 -10
  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 +17 -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 +4 -4
  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 -7
  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 +17 -1
  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 +8 -23
  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 +1 -1
  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 +8 -7
  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 +12 -15
  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 +26 -33
  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 +1 -1
  117. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  118. package/lib/features/copy-paste/copy-paste-handler.js +10 -11
  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 +5 -7
  123. package/lib/features/copy-paste/di.config.js.map +1 -1
  124. package/lib/features/decoration/decoration-placer.d.ts +1 -1
  125. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  126. package/lib/features/decoration/decoration-placer.js +19 -3
  127. package/lib/features/decoration/decoration-placer.js.map +1 -1
  128. package/lib/features/decoration/di.config.d.ts +2 -2
  129. package/lib/features/decoration/di.config.d.ts.map +1 -1
  130. package/lib/features/decoration/di.config.js +4 -4
  131. package/lib/features/decoration/di.config.js.map +1 -1
  132. package/lib/features/edit-label/di.config.d.ts +1 -1
  133. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  134. package/lib/features/edit-label/di.config.js +5 -5
  135. package/lib/features/edit-label/di.config.js.map +1 -1
  136. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  137. package/lib/features/edit-label/edit-label-tool.js +2 -2
  138. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  139. package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
  140. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  141. package/lib/features/edit-label/edit-label-validator.js +11 -13
  142. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  143. package/lib/features/hints/di.config.js +4 -4
  144. package/lib/features/hints/di.config.js.map +1 -1
  145. package/lib/features/hints/type-hints.d.ts +15 -5
  146. package/lib/features/hints/type-hints.d.ts.map +1 -1
  147. package/lib/features/hints/type-hints.js +29 -26
  148. package/lib/features/hints/type-hints.js.map +1 -1
  149. package/lib/features/hover/di.config.d.ts.map +1 -1
  150. package/lib/features/hover/di.config.js +11 -9
  151. package/lib/features/hover/di.config.js.map +1 -1
  152. package/lib/features/hover/hover.d.ts +4 -2
  153. package/lib/features/hover/hover.d.ts.map +1 -1
  154. package/lib/features/hover/hover.js +23 -5
  155. package/lib/features/hover/hover.js.map +1 -1
  156. package/lib/features/layout/di.config.d.ts +1 -1
  157. package/lib/features/layout/di.config.d.ts.map +1 -1
  158. package/lib/features/layout/di.config.js +6 -4
  159. package/lib/features/layout/di.config.js.map +1 -1
  160. package/lib/features/layout/freeform-layout.d.ts +17 -1
  161. package/lib/features/layout/freeform-layout.d.ts.map +1 -1
  162. package/lib/features/layout/freeform-layout.js +4 -4
  163. package/lib/features/layout/freeform-layout.js.map +1 -1
  164. package/lib/features/layout/hbox-layout.d.ts +41 -0
  165. package/lib/features/layout/hbox-layout.d.ts.map +1 -0
  166. package/lib/features/layout/hbox-layout.js +189 -0
  167. package/lib/features/layout/hbox-layout.js.map +1 -0
  168. package/lib/features/layout/layout-commands.d.ts +65 -38
  169. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  170. package/lib/features/layout/layout-commands.js +90 -67
  171. package/lib/features/layout/layout-commands.js.map +1 -1
  172. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  173. package/lib/features/layout/layout-commands.spec.js +35 -23
  174. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  175. package/lib/features/layout/vbox-layout.d.ts +17 -1
  176. package/lib/features/layout/vbox-layout.d.ts.map +1 -1
  177. package/lib/features/layout/vbox-layout.js +9 -8
  178. package/lib/features/layout/vbox-layout.js.map +1 -1
  179. package/lib/features/model-source-watcher/di.config.js +1 -1
  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 +1 -1
  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 +11 -11
  184. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  185. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  186. package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
  187. package/lib/features/mouse-tool/di.config.js +2 -2
  188. package/lib/features/mouse-tool/di.config.js.map +1 -1
  189. package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
  190. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  191. package/lib/features/mouse-tool/mouse-tool.js +11 -53
  192. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  193. package/lib/features/navigation/di.config.js +4 -4
  194. package/lib/features/navigation/di.config.js.map +1 -1
  195. package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
  196. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  197. package/lib/features/navigation/navigation-action-handler.js +52 -68
  198. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  199. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  200. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  201. package/lib/features/navigation/navigation-target-resolver.js +8 -9
  202. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  203. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  204. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  205. package/lib/features/reconnect/model.d.ts +1 -1
  206. package/lib/features/reconnect/model.d.ts.map +1 -1
  207. package/lib/features/reconnect/model.js +1 -1
  208. package/lib/features/reconnect/model.js.map +1 -1
  209. package/lib/features/save/di.config.d.ts +1 -1
  210. package/lib/features/save/di.config.d.ts.map +1 -1
  211. package/lib/features/save/di.config.js +3 -3
  212. package/lib/features/save/di.config.js.map +1 -1
  213. package/lib/features/save/save-keylistener.d.ts +1 -1
  214. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  215. package/lib/features/save/save-keylistener.js +3 -3
  216. package/lib/features/save/save-keylistener.js.map +1 -1
  217. package/lib/features/select/di.config.d.ts +1 -1
  218. package/lib/features/select/di.config.d.ts.map +1 -1
  219. package/lib/features/select/di.config.js +7 -8
  220. package/lib/features/select/di.config.js.map +1 -1
  221. package/lib/features/select/select-feedback-action.d.ts +26 -22
  222. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  223. package/lib/features/select/select-feedback-action.js +19 -46
  224. package/lib/features/select/select-feedback-action.js.map +1 -1
  225. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  226. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  227. package/lib/features/select/select-mouse-listener.js +1 -1
  228. package/lib/features/select/select-mouse-listener.js.map +1 -1
  229. package/lib/features/select/selection-service.d.ts +3 -3
  230. package/lib/features/select/selection-service.d.ts.map +1 -1
  231. package/lib/features/select/selection-service.js +28 -23
  232. package/lib/features/select/selection-service.js.map +1 -1
  233. package/lib/features/select/selection-service.spec.js +28 -25
  234. package/lib/features/select/selection-service.spec.js.map +1 -1
  235. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
  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 +67 -37
  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 +23 -11
  240. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  241. package/lib/features/tool-feedback/creation-tool-feedback.js +62 -35
  242. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  243. package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
  244. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  245. package/lib/features/tool-feedback/css-feedback.js +42 -38
  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 +18 -18
  250. package/lib/features/tool-feedback/di.config.js.map +1 -1
  251. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +44 -22
  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 +140 -114
  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 +2 -2
  256. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  257. package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
  258. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  259. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
  260. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  261. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
  262. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  263. package/lib/features/tool-feedback/model.d.ts +1 -2
  264. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  265. package/lib/features/tool-feedback/model.js +1 -1
  266. package/lib/features/tool-feedback/model.js.map +1 -1
  267. package/lib/features/tool-feedback/view.d.ts +1 -1
  268. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  269. package/lib/features/tool-feedback/view.js +22 -5
  270. package/lib/features/tool-feedback/view.js.map +1 -1
  271. package/lib/features/tool-palette/di.config.d.ts +1 -1
  272. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  273. package/lib/features/tool-palette/di.config.js +5 -4
  274. package/lib/features/tool-palette/di.config.js.map +1 -1
  275. package/lib/features/tool-palette/tool-palette.d.ts +10 -7
  276. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  277. package/lib/features/tool-palette/tool-palette.js +39 -32
  278. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  279. package/lib/features/tools/base-glsp-tool.d.ts +3 -3
  280. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  281. package/lib/features/tools/base-glsp-tool.js +11 -11
  282. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  283. package/lib/features/tools/change-bounds-tool.d.ts +7 -9
  284. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  285. package/lib/features/tools/change-bounds-tool.js +48 -71
  286. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  287. package/lib/features/tools/delete-tool.d.ts +1 -1
  288. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  289. package/lib/features/tools/delete-tool.js +17 -17
  290. package/lib/features/tools/delete-tool.js.map +1 -1
  291. package/lib/features/tools/di.config.js +12 -12
  292. package/lib/features/tools/di.config.js.map +1 -1
  293. package/lib/features/tools/edge-creation-tool.d.ts +1 -1
  294. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  295. package/lib/features/tools/edge-creation-tool.js +28 -21
  296. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  297. package/lib/features/tools/edge-edit-tool.d.ts +3 -2
  298. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  299. package/lib/features/tools/edge-edit-tool.js +41 -36
  300. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  301. package/lib/features/tools/marquee-behavior.d.ts +1 -1
  302. package/lib/features/tools/marquee-behavior.js +2 -2
  303. package/lib/features/tools/marquee-behavior.js.map +1 -1
  304. package/lib/features/tools/marquee-behavior.spec.js +63 -63
  305. package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
  306. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
  307. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  308. package/lib/features/tools/marquee-mouse-tool.js +20 -20
  309. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  310. package/lib/features/tools/marquee-tool.d.ts +1 -1
  311. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  312. package/lib/features/tools/marquee-tool.js +4 -4
  313. package/lib/features/tools/marquee-tool.js.map +1 -1
  314. package/lib/features/tools/model.d.ts +3 -2
  315. package/lib/features/tools/model.d.ts.map +1 -1
  316. package/lib/features/tools/model.js +0 -15
  317. package/lib/features/tools/model.js.map +1 -1
  318. package/lib/features/tools/node-creation-tool.d.ts +1 -1
  319. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  320. package/lib/features/tools/node-creation-tool.js +17 -17
  321. package/lib/features/tools/node-creation-tool.js.map +1 -1
  322. package/lib/features/tools/view.d.ts.map +1 -1
  323. package/lib/features/tools/view.js +2 -2
  324. package/lib/features/tools/view.js.map +1 -1
  325. package/lib/features/validation/di.config.d.ts +1 -1
  326. package/lib/features/validation/di.config.d.ts.map +1 -1
  327. package/lib/features/validation/di.config.js +7 -7
  328. package/lib/features/validation/di.config.js.map +1 -1
  329. package/lib/features/validation/marker-navigator.d.ts +16 -8
  330. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  331. package/lib/features/validation/marker-navigator.js +39 -37
  332. package/lib/features/validation/marker-navigator.js.map +1 -1
  333. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  334. package/lib/features/validation/marker-navigator.spec.js +23 -37
  335. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  336. package/lib/features/validation/validate.d.ts +10 -12
  337. package/lib/features/validation/validate.d.ts.map +1 -1
  338. package/lib/features/validation/validate.js +42 -41
  339. package/lib/features/validation/validate.js.map +1 -1
  340. package/lib/features/viewport/di.config.d.ts +1 -1
  341. package/lib/features/viewport/di.config.d.ts.map +1 -1
  342. package/lib/features/viewport/di.config.js +7 -7
  343. package/lib/features/viewport/di.config.js.map +1 -1
  344. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
  345. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  346. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
  347. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  348. package/lib/index.d.ts +4 -5
  349. package/lib/index.d.ts.map +1 -1
  350. package/lib/index.js +11 -8
  351. package/lib/index.js.map +1 -1
  352. package/lib/lib/model.d.ts +3 -2
  353. package/lib/lib/model.d.ts.map +1 -1
  354. package/lib/lib/model.js +0 -15
  355. package/lib/lib/model.js.map +1 -1
  356. package/lib/model-source/glsp-diagram-server.d.ts +5 -5
  357. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  358. package/lib/model-source/glsp-diagram-server.js +7 -6
  359. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  360. package/lib/sprotty-reexport.d.ts +174 -0
  361. package/lib/sprotty-reexport.d.ts.map +1 -0
  362. package/lib/sprotty-reexport.js +299 -0
  363. package/lib/sprotty-reexport.js.map +1 -0
  364. package/lib/utils/argument-utils.js +5 -5
  365. package/lib/utils/argument-utils.js.map +1 -1
  366. package/lib/utils/layout-utils.d.ts +3 -3
  367. package/lib/utils/layout-utils.d.ts.map +1 -1
  368. package/lib/utils/smodel-util.d.ts +117 -11
  369. package/lib/utils/smodel-util.d.ts.map +1 -1
  370. package/lib/utils/smodel-util.js +142 -37
  371. package/lib/utils/smodel-util.js.map +1 -1
  372. package/lib/utils/viewpoint-util.d.ts +3 -3
  373. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  374. package/lib/utils/viewpoint-util.js +19 -3
  375. package/lib/utils/viewpoint-util.js.map +1 -1
  376. package/lib/views/base-view-module.js +19 -19
  377. package/lib/views/base-view-module.js.map +1 -1
  378. package/lib/views/compartments.js +1 -1
  379. package/lib/views/compartments.js.map +1 -1
  380. package/lib/views/glsp-edge-view.d.ts +1 -1
  381. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  382. package/lib/views/glsp-edge-view.js +1 -1
  383. package/lib/views/glsp-edge-view.js.map +1 -1
  384. package/lib/views/index.js +6 -2
  385. package/lib/views/index.js.map +1 -1
  386. package/lib/views/issue-marker-view.d.ts.map +1 -1
  387. package/lib/views/issue-marker-view.js +3 -3
  388. package/lib/views/issue-marker-view.js.map +1 -1
  389. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  390. package/lib/views/rounded-corner-view.js +2 -2
  391. package/lib/views/rounded-corner-view.js.map +1 -1
  392. package/package.json +8 -18
  393. package/src/base/action-dispatcher.ts +17 -8
  394. package/src/base/actions/focus-change-action.ts +25 -8
  395. package/{lib/features/tool-palette/palette-item.d.ts → src/base/actions/sprotty-actions.ts} +11 -11
  396. package/src/base/auto-complete/auto-complete-actions.ts +7 -5
  397. package/src/base/auto-complete/auto-complete-widget.ts +15 -13
  398. package/src/base/command-stack.ts +7 -6
  399. package/src/base/di.config.ts +4 -5
  400. package/src/base/drag-aware-mouse-listener.ts +4 -4
  401. package/src/base/editor-context-service.ts +19 -7
  402. package/src/base/focus-tracker.ts +5 -4
  403. package/src/base/model/model-registry.ts +2 -2
  404. package/src/base/model/update-model-command.ts +9 -10
  405. package/src/base/model-initialization-constraint.ts +9 -11
  406. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  407. package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
  408. package/src/base/tool-manager/tool-actions.ts +37 -0
  409. package/src/base/types.ts +31 -24
  410. package/src/base/view/view-registry.ts +2 -2
  411. package/src/features/change-bounds/model.ts +5 -5
  412. package/src/features/change-bounds/movement-restrictor.ts +3 -3
  413. package/src/features/change-bounds/snap.spec.ts +89 -0
  414. package/src/features/change-bounds/snap.ts +86 -2
  415. package/src/features/command-palette/di.config.ts +5 -7
  416. package/src/features/command-palette/server-command-palette-provider.ts +9 -8
  417. package/src/features/context-menu/delete-element-context-menu.ts +6 -6
  418. package/src/features/context-menu/di.config.ts +3 -2
  419. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +6 -7
  420. package/src/features/context-menu/server-context-menu-provider.ts +7 -6
  421. package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
  422. package/src/features/copy-paste/copy-paste-handler.ts +6 -6
  423. package/src/features/copy-paste/di.config.ts +7 -15
  424. package/src/features/decoration/decoration-placer.ts +4 -4
  425. package/src/features/decoration/di.config.ts +3 -5
  426. package/src/features/edit-label/di.config.ts +4 -5
  427. package/src/features/edit-label/edit-label-tool.ts +1 -2
  428. package/src/features/edit-label/edit-label-validator.ts +6 -10
  429. package/src/features/hints/di.config.ts +3 -3
  430. package/src/features/hints/type-hints.ts +33 -18
  431. package/src/features/hover/di.config.ts +4 -0
  432. package/src/features/hover/hover.ts +30 -12
  433. package/src/features/layout/di.config.ts +4 -2
  434. package/src/features/layout/freeform-layout.ts +6 -15
  435. package/src/features/layout/hbox-layout.ts +256 -0
  436. package/src/features/layout/layout-commands.spec.ts +38 -22
  437. package/src/features/layout/layout-commands.ts +134 -60
  438. package/src/features/layout/vbox-layout.ts +20 -20
  439. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
  440. package/src/features/mouse-tool/di.config.ts +3 -4
  441. package/src/features/mouse-tool/mouse-tool.ts +18 -59
  442. package/src/features/navigation/navigation-action-handler.ts +76 -42
  443. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
  444. package/src/features/navigation/navigation-target-resolver.ts +8 -13
  445. package/src/features/reconnect/model.ts +2 -2
  446. package/src/features/save/di.config.ts +2 -3
  447. package/src/features/save/save-keylistener.ts +3 -3
  448. package/src/features/select/di.config.ts +6 -8
  449. package/src/features/select/select-feedback-action.ts +18 -46
  450. package/src/features/select/select-mouse-listener.ts +1 -2
  451. package/src/features/select/selection-service.spec.ts +11 -8
  452. package/src/features/select/selection-service.ts +17 -12
  453. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +51 -21
  454. package/src/features/tool-feedback/creation-tool-feedback.ts +52 -31
  455. package/src/features/tool-feedback/css-feedback.ts +40 -37
  456. package/src/features/tool-feedback/di.config.ts +4 -5
  457. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +132 -88
  458. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  459. package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
  460. package/src/features/tool-feedback/model.ts +1 -3
  461. package/src/features/tool-feedback/view.tsx +3 -3
  462. package/src/features/tool-palette/di.config.ts +3 -2
  463. package/src/features/tool-palette/tool-palette.ts +35 -19
  464. package/src/features/tools/base-glsp-tool.ts +11 -11
  465. package/src/features/tools/change-bounds-tool.ts +37 -67
  466. package/src/features/tools/delete-tool.ts +9 -9
  467. package/src/features/tools/di.config.ts +10 -10
  468. package/src/features/tools/edge-creation-tool.ts +21 -12
  469. package/src/features/tools/edge-edit-tool.ts +25 -21
  470. package/src/features/tools/marquee-behavior.ts +2 -2
  471. package/src/features/tools/marquee-mouse-tool.ts +13 -14
  472. package/src/features/tools/marquee-tool.ts +3 -3
  473. package/src/features/tools/model.ts +4 -3
  474. package/src/features/tools/node-creation-tool.ts +8 -8
  475. package/src/features/tools/view.tsx +2 -3
  476. package/src/features/validation/di.config.ts +4 -5
  477. package/src/features/validation/marker-navigator.spec.ts +4 -2
  478. package/src/features/validation/marker-navigator.ts +47 -25
  479. package/src/features/validation/validate.ts +31 -24
  480. package/src/features/viewport/di.config.ts +1 -2
  481. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  482. package/src/index.ts +4 -5
  483. package/src/lib/model.ts +4 -4
  484. package/src/model-source/glsp-diagram-server.ts +14 -14
  485. package/src/sprotty-reexport.ts +283 -0
  486. package/src/utils/layout-utils.ts +3 -3
  487. package/src/utils/smodel-util.ts +139 -43
  488. package/src/utils/viewpoint-util.ts +5 -14
  489. package/src/views/glsp-edge-view.tsx +4 -4
  490. package/src/views/issue-marker-view.tsx +2 -2
  491. package/src/views/rounded-corner-view.tsx +2 -3
  492. package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
  493. package/lib/features/tool-palette/palette-item.js.map +0 -1
  494. package/lib/protocol-reexport.d.ts +0 -45
  495. package/lib/protocol-reexport.d.ts.map +0 -1
  496. package/lib/protocol-reexport.js +0 -75
  497. package/lib/protocol-reexport.js.map +0 -1
  498. package/src/features/tool-palette/palette-item.ts +0 -38
  499. package/src/protocol-reexport.ts +0 -64
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 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,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, Point } from '@eclipse-glsp/protocol';
16
+ import { Action, hasStringProp, Point } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable } from 'inversify';
18
18
  import { VNode } from 'snabbdom';
19
19
  import {
@@ -31,34 +31,64 @@ import {
31
31
  SModelRoot,
32
32
  TYPES
33
33
  } from 'sprotty';
34
- import { isNotUndefined } from '../../utils/smodel-util';
34
+ import { forEachElement } from '../../utils/smodel-util';
35
35
  import { addResizeHandles, isResizable, removeResizeHandles, SResizeHandle } from '../change-bounds/model';
36
36
  import { createMovementRestrictionFeedback, removeMovementRestrictionFeedback } from '../change-bounds/movement-restrictor';
37
37
  import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
38
38
  import { ChangeBoundsTool } from '../tools/change-bounds-tool';
39
39
  import { FeedbackCommand } from './model';
40
40
 
41
- export class ShowChangeBoundsToolResizeFeedbackAction implements Action {
42
- constructor(readonly elementId?: string, public readonly kind: string = ShowChangeBoundsToolResizeFeedbackCommand.KIND) {}
41
+ export interface ShowChangeBoundsToolResizeFeedbackAction extends Action {
42
+ kind: typeof ShowChangeBoundsToolResizeFeedbackAction.KIND;
43
+
44
+ elementId: string;
45
+ }
46
+
47
+ export namespace ShowChangeBoundsToolResizeFeedbackAction {
48
+ export const KIND = 'showChangeBoundsToolResizeFeedback';
49
+
50
+ export function is(object: any): object is ShowChangeBoundsToolResizeFeedbackAction {
51
+ return Action.hasKind(object, KIND) && hasStringProp(object, 'elementId');
52
+ }
53
+
54
+ export function create(elementId: string): ShowChangeBoundsToolResizeFeedbackAction {
55
+ return {
56
+ kind: KIND,
57
+ elementId
58
+ };
59
+ }
43
60
  }
44
61
 
45
- export class HideChangeBoundsToolResizeFeedbackAction implements Action {
46
- constructor(public readonly kind: string = HideChangeBoundsToolResizeFeedbackCommand.KIND) {}
62
+ export interface HideChangeBoundsToolResizeFeedbackAction extends Action {
63
+ kind: typeof HideChangeBoundsToolResizeFeedbackAction.KIND;
64
+ }
65
+
66
+ export namespace HideChangeBoundsToolResizeFeedbackAction {
67
+ export const KIND = 'hideChangeBoundsToolResizeFeedback';
68
+
69
+ export function is(object: any): object is HideChangeBoundsToolResizeFeedbackAction {
70
+ return Action.hasKind(object, KIND);
71
+ }
72
+
73
+ export function create(): HideChangeBoundsToolResizeFeedbackAction {
74
+ return { kind: KIND };
75
+ }
47
76
  }
48
77
 
49
78
  @injectable()
50
79
  export class ShowChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
51
- static readonly KIND = 'showChangeBoundsToolResizeFeedback';
80
+ static readonly KIND = ShowChangeBoundsToolResizeFeedbackAction.KIND;
52
81
 
53
82
  @inject(TYPES.Action) protected action: ShowChangeBoundsToolResizeFeedbackAction;
54
83
 
55
84
  execute(context: CommandExecutionContext): CommandReturn {
56
85
  const index = context.root.index;
57
- index.all().filter(isResizable).forEach(removeResizeHandles);
58
86
 
59
- if (isNotUndefined(this.action.elementId)) {
87
+ forEachElement(index, isResizable, removeResizeHandles);
88
+
89
+ if (this.action.elementId) {
60
90
  const resizeElement = index.getById(this.action.elementId);
61
- if (isNotUndefined(resizeElement) && isResizable(resizeElement)) {
91
+ if (resizeElement && isResizable(resizeElement)) {
62
92
  addResizeHandles(resizeElement);
63
93
  }
64
94
  }
@@ -68,13 +98,13 @@ export class ShowChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
68
98
 
69
99
  @injectable()
70
100
  export class HideChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
71
- static readonly KIND = 'hideChangeBoundsToolResizeFeedback';
101
+ static readonly KIND = HideChangeBoundsToolResizeFeedbackAction.KIND;
72
102
 
73
103
  @inject(TYPES.Action) protected action: HideChangeBoundsToolResizeFeedbackAction;
74
104
 
75
105
  execute(context: CommandExecutionContext): CommandReturn {
76
106
  const index = context.root.index;
77
- index.all().filter(isResizable).forEach(removeResizeHandles);
107
+ forEachElement(index, isResizable, removeResizeHandles);
78
108
  return context.root;
79
109
  }
80
110
  }
@@ -95,7 +125,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
95
125
  super();
96
126
  }
97
127
 
98
- mouseDown(target: SModelElement, event: MouseEvent): Action[] {
128
+ override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
99
129
  if (event.button === 0 && !(target instanceof SResizeHandle)) {
100
130
  const moveable = findParentByFeature(target, isMoveable);
101
131
  if (moveable !== undefined) {
@@ -108,7 +138,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
108
138
  return [];
109
139
  }
110
140
 
111
- mouseMove(target: SModelElement, event: MouseEvent): Action[] {
141
+ override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
112
142
  const result: Action[] = [];
113
143
  if (event.buttons === 0) {
114
144
  this.mouseUp(target, event);
@@ -148,7 +178,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
148
178
  return false;
149
179
  }
150
180
 
151
- protected getElementMoves(target: SModelElement, event: MouseEvent, isFinished: boolean): MoveAction | undefined {
181
+ protected getElementMoves(target: SModelElement, event: MouseEvent, finished: boolean): MoveAction | undefined {
152
182
  if (!this.startDragPosition) {
153
183
  return undefined;
154
184
  }
@@ -172,7 +202,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
172
202
  );
173
203
 
174
204
  if (isMoveable(element)) {
175
- toPosition = this.validateMove(startPosition, toPosition, element, isFinished);
205
+ toPosition = this.validateMove(startPosition, toPosition, element, finished);
176
206
  elementMoves.push({
177
207
  elementId: element.id,
178
208
  fromPosition: {
@@ -185,7 +215,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
185
215
  }
186
216
  });
187
217
  if (elementMoves.length > 0) {
188
- return new MoveAction(elementMoves, false, isFinished);
218
+ return MoveAction.create(elementMoves, { animate: false, finished });
189
219
  } else {
190
220
  return undefined;
191
221
  }
@@ -219,14 +249,14 @@ export class FeedbackMoveMouseListener extends MouseListener {
219
249
  }
220
250
  }
221
251
 
222
- mouseEnter(target: SModelElement, event: MouseEvent): Action[] {
252
+ override mouseEnter(target: SModelElement, event: MouseEvent): Action[] {
223
253
  if (target instanceof SModelRoot && event.buttons === 0 && !this.startDragPosition) {
224
254
  this.mouseUp(target, event);
225
255
  }
226
256
  return [];
227
257
  }
228
258
 
229
- mouseUp(target: SModelElement, event: MouseEvent): Action[] {
259
+ override mouseUp(target: SModelElement, event: MouseEvent): Action[] {
230
260
  const result: Action[] = [];
231
261
  if (this.startDragPosition) {
232
262
  const moveAction = this.getElementMoves(target, event, true);
@@ -244,7 +274,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
244
274
  return result;
245
275
  }
246
276
 
247
- decorate(vnode: VNode, _element: SModelElement): VNode {
277
+ override decorate(vnode: VNode, _element: SModelElement): VNode {
248
278
  return vnode;
249
279
  }
250
280
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 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,15 +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, Point } from '@eclipse-glsp/protocol';
16
+ import { Action, Bounds, Point } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable } from 'inversify';
18
18
  import {
19
- add,
20
19
  AnchorComputerRegistry,
21
- center,
22
20
  CommandExecutionContext,
23
21
  CommandReturn,
24
- euclideanDistance,
25
22
  findChildrenAtPosition,
26
23
  findParentByFeature,
27
24
  isBoundsAware,
@@ -32,28 +29,40 @@ import {
32
29
  SChildElement,
33
30
  SConnectableElement,
34
31
  SDanglingAnchor,
35
- SEdgeSchema,
32
+ SEdge as SEdgeSchema,
36
33
  SModelElement,
37
34
  SModelRoot,
38
35
  SRoutableElement,
39
36
  TYPES
40
37
  } from 'sprotty';
41
- import { isRoutable, BoundsAwareModelElement } from '../../utils/smodel-util';
38
+ import { BoundsAwareModelElement, isRoutable } from '../../utils/smodel-util';
42
39
  import { getAbsolutePosition, toAbsoluteBounds, toAbsolutePosition } from '../../utils/viewpoint-util';
43
40
  import { FeedbackCommand } from './model';
41
+ export interface DrawFeedbackEdgeAction extends Action {
42
+ kind: typeof DrawFeedbackEdgeAction.KIND;
43
+ elementTypeId: string;
44
+ sourceId: string;
45
+ edgeSchema?: SEdgeSchema;
46
+ }
44
47
 
45
- export class DrawFeedbackEdgeAction implements Action {
46
- constructor(
47
- public readonly elementTypeId: string,
48
- public readonly sourceId: string,
49
- public readonly edgeSchema?: SEdgeSchema,
50
- public readonly kind: string = DrawFeedbackEdgeCommand.KIND
51
- ) {}
48
+ export namespace DrawFeedbackEdgeAction {
49
+ export const KIND = 'drawFeedbackEdge';
50
+
51
+ export function is(object: any): object is DrawFeedbackEdgeAction {
52
+ return Action.hasKind(object, KIND);
53
+ }
54
+
55
+ export function create(options: { elementTypeId: string; sourceId: string; edgeSchema?: SEdgeSchema }): DrawFeedbackEdgeAction {
56
+ return {
57
+ kind: KIND,
58
+ ...options
59
+ };
60
+ }
52
61
  }
53
62
 
54
63
  @injectable()
55
64
  export class DrawFeedbackEdgeCommand extends FeedbackCommand {
56
- static readonly KIND = 'drawFeedbackEdge';
65
+ static readonly KIND = DrawFeedbackEdgeAction.KIND;
57
66
 
58
67
  constructor(@inject(TYPES.Action) protected action: DrawFeedbackEdgeAction) {
59
68
  super();
@@ -66,13 +75,25 @@ export class DrawFeedbackEdgeCommand extends FeedbackCommand {
66
75
  }
67
76
  }
68
77
 
69
- export class RemoveFeedbackEdgeAction implements Action {
70
- constructor(public readonly kind: string = RemoveFeedbackEdgeCommand.KIND) {}
78
+ export interface RemoveFeedbackEdgeAction extends Action {
79
+ kind: typeof RemoveFeedbackEdgeAction.KIND;
80
+ }
81
+
82
+ export namespace RemoveFeedbackEdgeAction {
83
+ export const KIND = 'removeFeedbackEdgeCommand';
84
+
85
+ export function is(object: any): object is RemoveFeedbackEdgeAction {
86
+ return Action.hasKind(object, KIND);
87
+ }
88
+
89
+ export function create(): RemoveFeedbackEdgeAction {
90
+ return { kind: KIND };
91
+ }
71
92
  }
72
93
 
73
94
  @injectable()
74
95
  export class RemoveFeedbackEdgeCommand extends FeedbackCommand {
75
- static readonly KIND = 'removeFeedbackEdgeCommand';
96
+ static readonly KIND = RemoveFeedbackEdgeAction.KIND;
76
97
 
77
98
  execute(context: CommandExecutionContext): CommandReturn {
78
99
  removeFeedbackEdge(context.root);
@@ -86,7 +107,7 @@ export class FeedbackEdgeEnd extends SDanglingAnchor {
86
107
  readonly sourceId: string,
87
108
  readonly elementTypeId: string,
88
109
  public feedbackEdge: SRoutableElement | undefined = undefined,
89
- public readonly type: string = FeedbackEdgeEnd.TYPE
110
+ override readonly type: string = FeedbackEdgeEnd.TYPE
90
111
  ) {
91
112
  super();
92
113
  }
@@ -97,7 +118,7 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
97
118
  super();
98
119
  }
99
120
 
100
- mouseMove(target: SModelElement, event: MouseEvent): Action[] {
121
+ override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
101
122
  const root = target.root;
102
123
  const edgeEnd = root.index.getById(feedbackEdgeEndId(root));
103
124
  if (!(edgeEnd instanceof FeedbackEdgeEnd) || !edgeEnd.feedbackEdge) {
@@ -106,17 +127,17 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
106
127
 
107
128
  const edge = edgeEnd.feedbackEdge;
108
129
  const position = getAbsolutePosition(edgeEnd, event);
109
- const endAtMousePosition = findChildrenAtPosition(target.root, position).reverse().find(
110
- element => isConnectable(element) && element.canConnect(edge, 'target')
111
- );
130
+ const endAtMousePosition = findChildrenAtPosition(target.root, position)
131
+ .reverse()
132
+ .find(element => isConnectable(element) && element.canConnect(edge, 'target'));
112
133
 
113
134
  if (endAtMousePosition instanceof SConnectableElement && edge.source && isBoundsAware(edge.source)) {
114
- const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(toAbsoluteBounds(edge.source)));
115
- if (euclideanDistance(anchor, edgeEnd.position) > 1) {
116
- return [new MoveAction([{ elementId: edgeEnd.id, toPosition: anchor }], false)];
135
+ const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(toAbsoluteBounds(edge.source)));
136
+ if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
137
+ return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })];
117
138
  }
118
139
  } else {
119
- return [new MoveAction([{ elementId: edgeEnd.id, toPosition: position }], false)];
140
+ return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })];
120
141
  }
121
142
 
122
143
  return [];
@@ -132,7 +153,7 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
132
153
  const parent = findParentByFeature(element.parent, isBoundsAware);
133
154
  if (parent) {
134
155
  const absoluteParentPosition = toAbsoluteBounds(parent);
135
- anchor = add(absoluteParentPosition, anchor);
156
+ anchor = Point.add(absoluteParentPosition, anchor);
136
157
  }
137
158
  }
138
159
  return anchor;
@@ -146,8 +167,8 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
146
167
  * @param absolutePoint a point in absolute coordinates
147
168
  * @returns the equivalent point, relative to the element's parent coordinates
148
169
  */
149
- function absoluteToParent(element: BoundsAwareModelElement & SChildElement, absolutePoint: Point): Point{
150
- if (isBoundsAware(element.parent)){
170
+ function absoluteToParent(element: BoundsAwareModelElement & SChildElement, absolutePoint: Point): Point {
171
+ if (isBoundsAware(element.parent)) {
151
172
  return absoluteToLocal(element.parent, absolutePoint);
152
173
  }
153
174
  // If the parent is not bounds-aware, assume it's at 0; 0 and proceed
@@ -163,7 +184,7 @@ function absoluteToParent(element: BoundsAwareModelElement & SChildElement, abso
163
184
  */
164
185
  function absoluteToLocal(element: BoundsAwareModelElement, absolutePoint: Point): Point {
165
186
  const absoluteElementBounds = toAbsoluteBounds(element);
166
- return {x: absolutePoint.x - absoluteElementBounds.x, y: absolutePoint.y - absoluteElementBounds.y};
187
+ return { x: absolutePoint.x - absoluteElementBounds.x, y: absolutePoint.y - absoluteElementBounds.y };
167
188
  }
168
189
 
169
190
  export function feedbackEdgeId(root: SModelRoot): string {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 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,50 +13,57 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, isStringArray } from '@eclipse-glsp/protocol';
16
+ import { Action, hasArrayProp } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable } from 'inversify';
18
- import { CommandExecutionContext, SModelElement, SModelRoot, TYPES } from 'sprotty';
19
- import { addCssClasses, removeCssClasses } from '../../utils/smodel-util';
18
+ import { CommandExecutionContext, SModelElement, SModelRoot } from 'sprotty';
19
+ import { TYPES } from '../../base/types';
20
+ import { addCssClasses, getElements, removeCssClasses } from '../../utils/smodel-util';
20
21
  import { FeedbackCommand } from './model';
21
22
 
22
- export class ModifyCSSFeedbackAction implements Action {
23
- readonly elementIds?: string[];
23
+ export interface ModifyCSSFeedbackAction extends Action {
24
+ kind: typeof ModifyCSSFeedbackAction.KIND;
24
25
 
25
- constructor(
26
- public readonly input?: string[] | SModelElement[],
27
- public readonly addClasses?: string[],
28
- public readonly removeClasses?: string[],
29
- public kind = ModifyCssFeedbackCommand.KIND
30
- ) {
31
- if (input) {
32
- this.elementIds = isStringArray(input) ? input : input.map(element => element.id);
33
- }
26
+ elementIds?: string[];
27
+ add?: string[];
28
+ remove?: string[];
29
+ }
30
+
31
+ export namespace ModifyCSSFeedbackAction {
32
+ export const KIND = 'modifyCSSFeedback';
33
+
34
+ export function is(object: any): object is ModifyCSSFeedbackAction {
35
+ return Action.hasKind(object, KIND) && hasArrayProp(object, 'elementIds');
36
+ }
37
+
38
+ export function create(options: { elements?: (string | SModelElement)[]; add?: string[]; remove?: string[] }): ModifyCSSFeedbackAction {
39
+ const { elements, ...rest } = options;
40
+ const elementIds = elements ? elements.map(element => (typeof element === 'string' ? element : element.id)) : undefined;
41
+ return {
42
+ kind: KIND,
43
+ elementIds,
44
+ ...rest
45
+ };
34
46
  }
35
47
  }
36
48
 
37
49
  @injectable()
38
50
  export class ModifyCssFeedbackCommand extends FeedbackCommand {
39
- static readonly KIND = 'modifyCSSFeedback';
51
+ static readonly KIND = ModifyCSSFeedbackAction.KIND;
40
52
 
41
53
  constructor(@inject(TYPES.Action) readonly action: ModifyCSSFeedbackAction) {
42
54
  super();
43
55
  }
44
56
 
45
57
  execute(context: CommandExecutionContext): SModelRoot {
46
- const elements: SModelElement[] = [];
47
- if (this.action.elementIds) {
48
- elements.push(...this.action.elementIds.map(elementId => context.root.index.getById(elementId)).filter(exists));
49
- } else {
50
- elements.push(context.root);
51
- }
58
+ const elements = this.action.elementIds ? getElements(context.root.index, this.action.elementIds) : [context.root];
52
59
 
53
60
  elements.forEach(e => {
54
- if (this.action.removeClasses) {
55
- removeCssClasses(e, this.action.removeClasses);
61
+ if (this.action.remove) {
62
+ removeCssClasses(e, this.action.remove);
56
63
  }
57
64
 
58
- if (this.action.addClasses) {
59
- addCssClasses(e, this.action.addClasses);
65
+ if (this.action.add) {
66
+ addCssClasses(e, this.action.add);
60
67
  }
61
68
  });
62
69
 
@@ -64,10 +71,6 @@ export class ModifyCssFeedbackCommand extends FeedbackCommand {
64
71
  }
65
72
  }
66
73
 
67
- function exists(elt?: SModelElement): elt is SModelElement {
68
- return elt !== undefined;
69
- }
70
-
71
74
  // eslint-disable-next-line no-shadow
72
75
  export enum CursorCSS {
73
76
  DEFAULT = 'default-mode',
@@ -85,17 +88,17 @@ export enum CursorCSS {
85
88
  }
86
89
 
87
90
  export function cursorFeedbackAction(cursorCss?: CursorCSS): ModifyCSSFeedbackAction {
88
- const addCss = [];
91
+ const add = [];
89
92
  if (cursorCss) {
90
- addCss.push(cursorCss);
93
+ add.push(cursorCss);
91
94
  }
92
- return new ModifyCSSFeedbackAction(undefined, addCss, Object.values(CursorCSS));
95
+ return ModifyCSSFeedbackAction.create({ add, remove: Object.values(CursorCSS) });
93
96
  }
94
97
 
95
- export function applyCssClasses(element: SModelElement, ...classes: string[]): ModifyCSSFeedbackAction {
96
- return new ModifyCSSFeedbackAction([element], classes, []);
98
+ export function applyCssClasses(element: SModelElement, ...add: string[]): ModifyCSSFeedbackAction {
99
+ return ModifyCSSFeedbackAction.create({ elements: [element], add });
97
100
  }
98
101
 
99
- export function deleteCssClasses(element: SModelElement, ...classes: string[]): ModifyCSSFeedbackAction {
100
- return new ModifyCSSFeedbackAction([element], [], classes);
102
+ export function deleteCssClasses(element: SModelElement, ...remove: string[]): ModifyCSSFeedbackAction {
103
+ return ModifyCSSFeedbackAction.create({ elements: [element], remove });
101
104
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 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,9 +14,8 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
- import { configureCommand, configureView, LocationPostprocessor, MoveCommand, TYPES } from 'sprotty';
18
-
19
- import { GLSP_TYPES } from '../../base/types';
17
+ import { configureCommand, configureView, LocationPostprocessor, MoveCommand } from 'sprotty';
18
+ import { TYPES } from '../../base/types';
20
19
  import { SResizeHandle } from '../change-bounds/model';
21
20
  import { HideChangeBoundsToolResizeFeedbackCommand, ShowChangeBoundsToolResizeFeedbackCommand } from './change-bounds-tool-feedback';
22
21
  import { DrawFeedbackEdgeCommand, FeedbackEdgeEnd, RemoveFeedbackEdgeCommand } from './creation-tool-feedback';
@@ -32,7 +31,7 @@ import { DrawMarqueeCommand, RemoveMarqueeCommand } from './marquee-tool-feedbac
32
31
  import { FeedbackEdgeEndView, SResizeHandleView } from './view';
33
32
 
34
33
  const toolFeedbackModule = new ContainerModule((bind, _unbind, isBound) => {
35
- bind(GLSP_TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
34
+ bind(TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
36
35
 
37
36
  configureCommand({ bind, isBound }, ModifyCssFeedbackCommand);
38
37