@eclipse-glsp/client 0.10.0-next.ca17587.154 → 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 (501) hide show
  1. package/css/glsp-sprotty.css +110 -8
  2. package/lib/base/action-dispatcher.d.ts +4 -3
  3. package/lib/base/action-dispatcher.d.ts.map +1 -1
  4. package/lib/base/action-dispatcher.js +22 -12
  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 +33 -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 +41 -28
  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 +1 -1
  150. package/lib/features/hover/di.config.d.ts.map +1 -1
  151. package/lib/features/hover/di.config.js +14 -10
  152. package/lib/features/hover/di.config.js.map +1 -1
  153. package/lib/features/hover/hover.d.ts +16 -4
  154. package/lib/features/hover/hover.d.ts.map +1 -1
  155. package/lib/features/hover/hover.js +42 -4
  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 +6 -4
  160. package/lib/features/layout/di.config.js.map +1 -1
  161. package/lib/features/layout/freeform-layout.d.ts +17 -1
  162. package/lib/features/layout/freeform-layout.d.ts.map +1 -1
  163. package/lib/features/layout/freeform-layout.js +4 -4
  164. package/lib/features/layout/freeform-layout.js.map +1 -1
  165. package/lib/features/layout/hbox-layout.d.ts +41 -0
  166. package/lib/features/layout/hbox-layout.d.ts.map +1 -0
  167. package/lib/features/layout/hbox-layout.js +189 -0
  168. package/lib/features/layout/hbox-layout.js.map +1 -0
  169. package/lib/features/layout/layout-commands.d.ts +65 -38
  170. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  171. package/lib/features/layout/layout-commands.js +90 -67
  172. package/lib/features/layout/layout-commands.js.map +1 -1
  173. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  174. package/lib/features/layout/layout-commands.spec.js +35 -23
  175. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  176. package/lib/features/layout/vbox-layout.d.ts +17 -1
  177. package/lib/features/layout/vbox-layout.d.ts.map +1 -1
  178. package/lib/features/layout/vbox-layout.js +9 -8
  179. package/lib/features/layout/vbox-layout.js.map +1 -1
  180. package/lib/features/model-source-watcher/di.config.js +1 -1
  181. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  182. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
  183. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  184. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
  185. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  186. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  187. package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
  188. package/lib/features/mouse-tool/di.config.js +2 -2
  189. package/lib/features/mouse-tool/di.config.js.map +1 -1
  190. package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
  191. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  192. package/lib/features/mouse-tool/mouse-tool.js +11 -53
  193. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  194. package/lib/features/navigation/di.config.js +4 -4
  195. package/lib/features/navigation/di.config.js.map +1 -1
  196. package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
  197. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  198. package/lib/features/navigation/navigation-action-handler.js +52 -68
  199. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  200. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  201. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  202. package/lib/features/navigation/navigation-target-resolver.js +8 -9
  203. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  204. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  205. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  206. package/lib/features/reconnect/model.d.ts +1 -1
  207. package/lib/features/reconnect/model.d.ts.map +1 -1
  208. package/lib/features/reconnect/model.js +1 -1
  209. package/lib/features/reconnect/model.js.map +1 -1
  210. package/lib/features/save/di.config.d.ts +1 -1
  211. package/lib/features/save/di.config.d.ts.map +1 -1
  212. package/lib/features/save/di.config.js +3 -3
  213. package/lib/features/save/di.config.js.map +1 -1
  214. package/lib/features/save/save-keylistener.d.ts +1 -1
  215. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  216. package/lib/features/save/save-keylistener.js +3 -3
  217. package/lib/features/save/save-keylistener.js.map +1 -1
  218. package/lib/features/select/di.config.d.ts +1 -1
  219. package/lib/features/select/di.config.d.ts.map +1 -1
  220. package/lib/features/select/di.config.js +7 -8
  221. package/lib/features/select/di.config.js.map +1 -1
  222. package/lib/features/select/select-feedback-action.d.ts +26 -22
  223. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  224. package/lib/features/select/select-feedback-action.js +19 -46
  225. package/lib/features/select/select-feedback-action.js.map +1 -1
  226. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  227. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  228. package/lib/features/select/select-mouse-listener.js +1 -1
  229. package/lib/features/select/select-mouse-listener.js.map +1 -1
  230. package/lib/features/select/selection-service.d.ts +3 -3
  231. package/lib/features/select/selection-service.d.ts.map +1 -1
  232. package/lib/features/select/selection-service.js +28 -23
  233. package/lib/features/select/selection-service.js.map +1 -1
  234. package/lib/features/select/selection-service.spec.js +28 -25
  235. package/lib/features/select/selection-service.spec.js.map +1 -1
  236. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
  237. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  238. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +67 -37
  239. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  240. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
  241. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  242. package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
  243. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  244. package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
  245. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  246. package/lib/features/tool-feedback/css-feedback.js +42 -38
  247. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  248. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  249. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  250. package/lib/features/tool-feedback/di.config.js +18 -18
  251. package/lib/features/tool-feedback/di.config.js.map +1 -1
  252. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +44 -22
  253. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  254. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +140 -114
  255. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  256. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
  257. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  258. package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
  259. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  260. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
  261. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  262. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
  263. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  264. package/lib/features/tool-feedback/model.d.ts +1 -2
  265. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  266. package/lib/features/tool-feedback/model.js +1 -1
  267. package/lib/features/tool-feedback/model.js.map +1 -1
  268. package/lib/features/tool-feedback/view.d.ts +1 -1
  269. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  270. package/lib/features/tool-feedback/view.js +22 -5
  271. package/lib/features/tool-feedback/view.js.map +1 -1
  272. package/lib/features/tool-palette/di.config.d.ts +1 -1
  273. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  274. package/lib/features/tool-palette/di.config.js +5 -4
  275. package/lib/features/tool-palette/di.config.js.map +1 -1
  276. package/lib/features/tool-palette/tool-palette.d.ts +10 -7
  277. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  278. package/lib/features/tool-palette/tool-palette.js +39 -32
  279. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  280. package/lib/features/tools/base-glsp-tool.d.ts +3 -3
  281. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  282. package/lib/features/tools/base-glsp-tool.js +11 -11
  283. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  284. package/lib/features/tools/change-bounds-tool.d.ts +7 -9
  285. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  286. package/lib/features/tools/change-bounds-tool.js +48 -71
  287. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  288. package/lib/features/tools/delete-tool.d.ts +1 -1
  289. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  290. package/lib/features/tools/delete-tool.js +17 -17
  291. package/lib/features/tools/delete-tool.js.map +1 -1
  292. package/lib/features/tools/di.config.js +12 -12
  293. package/lib/features/tools/di.config.js.map +1 -1
  294. package/lib/features/tools/edge-creation-tool.d.ts +1 -1
  295. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  296. package/lib/features/tools/edge-creation-tool.js +28 -21
  297. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  298. package/lib/features/tools/edge-edit-tool.d.ts +3 -2
  299. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  300. package/lib/features/tools/edge-edit-tool.js +41 -36
  301. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  302. package/lib/features/tools/marquee-behavior.d.ts +1 -1
  303. package/lib/features/tools/marquee-behavior.js +2 -2
  304. package/lib/features/tools/marquee-behavior.js.map +1 -1
  305. package/lib/features/tools/marquee-behavior.spec.js +63 -63
  306. package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
  307. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
  308. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  309. package/lib/features/tools/marquee-mouse-tool.js +20 -20
  310. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  311. package/lib/features/tools/marquee-tool.d.ts +1 -1
  312. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  313. package/lib/features/tools/marquee-tool.js +4 -4
  314. package/lib/features/tools/marquee-tool.js.map +1 -1
  315. package/lib/features/tools/model.d.ts +3 -2
  316. package/lib/features/tools/model.d.ts.map +1 -1
  317. package/lib/features/tools/model.js +0 -15
  318. package/lib/features/tools/model.js.map +1 -1
  319. package/lib/features/tools/node-creation-tool.d.ts +1 -1
  320. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  321. package/lib/features/tools/node-creation-tool.js +17 -17
  322. package/lib/features/tools/node-creation-tool.js.map +1 -1
  323. package/lib/features/tools/view.d.ts.map +1 -1
  324. package/lib/features/tools/view.js +2 -2
  325. package/lib/features/tools/view.js.map +1 -1
  326. package/lib/features/validation/di.config.d.ts +1 -1
  327. package/lib/features/validation/di.config.d.ts.map +1 -1
  328. package/lib/features/validation/di.config.js +7 -7
  329. package/lib/features/validation/di.config.js.map +1 -1
  330. package/lib/features/validation/marker-navigator.d.ts +16 -8
  331. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  332. package/lib/features/validation/marker-navigator.js +39 -37
  333. package/lib/features/validation/marker-navigator.js.map +1 -1
  334. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  335. package/lib/features/validation/marker-navigator.spec.js +23 -37
  336. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  337. package/lib/features/validation/validate.d.ts +10 -12
  338. package/lib/features/validation/validate.d.ts.map +1 -1
  339. package/lib/features/validation/validate.js +42 -41
  340. package/lib/features/validation/validate.js.map +1 -1
  341. package/lib/features/viewport/di.config.d.ts +1 -1
  342. package/lib/features/viewport/di.config.d.ts.map +1 -1
  343. package/lib/features/viewport/di.config.js +7 -7
  344. package/lib/features/viewport/di.config.js.map +1 -1
  345. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
  346. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  347. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
  348. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  349. package/lib/index.d.ts +4 -5
  350. package/lib/index.d.ts.map +1 -1
  351. package/lib/index.js +11 -8
  352. package/lib/index.js.map +1 -1
  353. package/lib/lib/model.d.ts +3 -2
  354. package/lib/lib/model.d.ts.map +1 -1
  355. package/lib/lib/model.js +0 -15
  356. package/lib/lib/model.js.map +1 -1
  357. package/lib/model-source/glsp-diagram-server.d.ts +5 -5
  358. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  359. package/lib/model-source/glsp-diagram-server.js +7 -6
  360. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  361. package/lib/sprotty-reexport.d.ts +174 -0
  362. package/lib/sprotty-reexport.d.ts.map +1 -0
  363. package/lib/sprotty-reexport.js +299 -0
  364. package/lib/sprotty-reexport.js.map +1 -0
  365. package/lib/utils/argument-utils.js +5 -5
  366. package/lib/utils/argument-utils.js.map +1 -1
  367. package/lib/utils/layout-utils.d.ts +3 -3
  368. package/lib/utils/layout-utils.d.ts.map +1 -1
  369. package/lib/utils/smodel-util.d.ts +117 -11
  370. package/lib/utils/smodel-util.d.ts.map +1 -1
  371. package/lib/utils/smodel-util.js +142 -37
  372. package/lib/utils/smodel-util.js.map +1 -1
  373. package/lib/utils/viewpoint-util.d.ts +3 -3
  374. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  375. package/lib/utils/viewpoint-util.js +19 -3
  376. package/lib/utils/viewpoint-util.js.map +1 -1
  377. package/lib/views/base-view-module.js +19 -19
  378. package/lib/views/base-view-module.js.map +1 -1
  379. package/lib/views/compartments.js +2 -2
  380. package/lib/views/compartments.js.map +1 -1
  381. package/lib/views/glsp-edge-view.d.ts +1 -1
  382. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  383. package/lib/views/glsp-edge-view.js +1 -1
  384. package/lib/views/glsp-edge-view.js.map +1 -1
  385. package/lib/views/index.js +6 -2
  386. package/lib/views/index.js.map +1 -1
  387. package/lib/views/issue-marker-view.d.ts.map +1 -1
  388. package/lib/views/issue-marker-view.js +3 -3
  389. package/lib/views/issue-marker-view.js.map +1 -1
  390. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  391. package/lib/views/rounded-corner-view.js +2 -2
  392. package/lib/views/rounded-corner-view.js.map +1 -1
  393. package/package.json +8 -18
  394. package/src/base/action-dispatcher.ts +26 -16
  395. package/src/base/actions/focus-change-action.ts +25 -8
  396. package/{lib/features/tool-palette/palette-item.d.ts → src/base/actions/sprotty-actions.ts} +11 -11
  397. package/src/base/auto-complete/auto-complete-actions.ts +7 -5
  398. package/src/base/auto-complete/auto-complete-widget.ts +15 -13
  399. package/src/base/command-stack.ts +7 -6
  400. package/src/base/di.config.ts +4 -5
  401. package/src/base/drag-aware-mouse-listener.ts +4 -4
  402. package/src/base/editor-context-service.ts +19 -7
  403. package/src/base/focus-tracker.ts +5 -4
  404. package/src/base/model/model-registry.ts +2 -2
  405. package/src/base/model/update-model-command.ts +9 -10
  406. package/src/base/model-initialization-constraint.ts +9 -11
  407. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  408. package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
  409. package/src/base/tool-manager/tool-actions.ts +37 -0
  410. package/src/base/types.ts +31 -24
  411. package/src/base/view/view-registry.ts +2 -2
  412. package/src/features/change-bounds/model.ts +5 -5
  413. package/src/features/change-bounds/movement-restrictor.ts +3 -3
  414. package/src/features/change-bounds/snap.spec.ts +89 -0
  415. package/src/features/change-bounds/snap.ts +86 -2
  416. package/src/features/command-palette/di.config.ts +5 -7
  417. package/src/features/command-palette/server-command-palette-provider.ts +9 -8
  418. package/src/features/context-menu/delete-element-context-menu.ts +6 -6
  419. package/src/features/context-menu/di.config.ts +3 -2
  420. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +45 -17
  421. package/src/features/context-menu/server-context-menu-provider.ts +7 -6
  422. package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
  423. package/src/features/copy-paste/copy-paste-handler.ts +6 -6
  424. package/src/features/copy-paste/di.config.ts +7 -15
  425. package/src/features/decoration/decoration-placer.ts +4 -4
  426. package/src/features/decoration/di.config.ts +3 -5
  427. package/src/features/edit-label/di.config.ts +4 -5
  428. package/src/features/edit-label/edit-label-tool.ts +1 -2
  429. package/src/features/edit-label/edit-label-validator.ts +6 -10
  430. package/src/features/hints/di.config.ts +3 -3
  431. package/src/features/hints/type-hints.ts +33 -18
  432. package/src/features/hover/di.config.ts +8 -2
  433. package/src/features/hover/hover.ts +53 -11
  434. package/src/features/layout/di.config.ts +4 -2
  435. package/src/features/layout/freeform-layout.ts +6 -15
  436. package/src/features/layout/hbox-layout.ts +256 -0
  437. package/src/features/layout/layout-commands.spec.ts +38 -22
  438. package/src/features/layout/layout-commands.ts +134 -60
  439. package/src/features/layout/vbox-layout.ts +20 -20
  440. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
  441. package/src/features/mouse-tool/di.config.ts +3 -4
  442. package/src/features/mouse-tool/mouse-tool.ts +18 -59
  443. package/src/features/navigation/navigation-action-handler.ts +76 -42
  444. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
  445. package/src/features/navigation/navigation-target-resolver.ts +8 -13
  446. package/src/features/reconnect/model.ts +2 -2
  447. package/src/features/save/di.config.ts +2 -3
  448. package/src/features/save/save-keylistener.ts +3 -3
  449. package/src/features/select/di.config.ts +6 -8
  450. package/src/features/select/select-feedback-action.ts +18 -46
  451. package/src/features/select/select-mouse-listener.ts +1 -2
  452. package/src/features/select/selection-service.spec.ts +11 -8
  453. package/src/features/select/selection-service.ts +17 -12
  454. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +51 -21
  455. package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
  456. package/src/features/tool-feedback/css-feedback.ts +40 -37
  457. package/src/features/tool-feedback/di.config.ts +4 -5
  458. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +132 -88
  459. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  460. package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
  461. package/src/features/tool-feedback/model.ts +1 -3
  462. package/src/features/tool-feedback/view.tsx +3 -3
  463. package/src/features/tool-palette/di.config.ts +3 -2
  464. package/src/features/tool-palette/tool-palette.ts +35 -19
  465. package/src/features/tools/base-glsp-tool.ts +11 -11
  466. package/src/features/tools/change-bounds-tool.ts +37 -67
  467. package/src/features/tools/delete-tool.ts +9 -9
  468. package/src/features/tools/di.config.ts +10 -10
  469. package/src/features/tools/edge-creation-tool.ts +21 -12
  470. package/src/features/tools/edge-edit-tool.ts +25 -21
  471. package/src/features/tools/marquee-behavior.ts +2 -2
  472. package/src/features/tools/marquee-mouse-tool.ts +13 -14
  473. package/src/features/tools/marquee-tool.ts +3 -3
  474. package/src/features/tools/model.ts +4 -3
  475. package/src/features/tools/node-creation-tool.ts +8 -8
  476. package/src/features/tools/view.tsx +2 -3
  477. package/src/features/validation/di.config.ts +4 -5
  478. package/src/features/validation/marker-navigator.spec.ts +4 -2
  479. package/src/features/validation/marker-navigator.ts +47 -25
  480. package/src/features/validation/validate.ts +31 -24
  481. package/src/features/viewport/di.config.ts +1 -2
  482. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  483. package/src/index.ts +4 -5
  484. package/src/lib/model.ts +4 -4
  485. package/src/model-source/glsp-diagram-server.ts +14 -14
  486. package/src/sprotty-reexport.ts +283 -0
  487. package/src/utils/layout-utils.ts +3 -3
  488. package/src/utils/smodel-util.ts +139 -43
  489. package/src/utils/viewpoint-util.ts +5 -14
  490. package/src/views/compartments.tsx +1 -1
  491. package/src/views/glsp-edge-view.tsx +4 -4
  492. package/src/views/issue-marker-view.tsx +2 -2
  493. package/src/views/rounded-corner-view.tsx +2 -3
  494. package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
  495. package/lib/features/tool-palette/palette-item.js.map +0 -1
  496. package/lib/protocol-reexport.d.ts +0 -45
  497. package/lib/protocol-reexport.d.ts.map +0 -1
  498. package/lib/protocol-reexport.js +0 -75
  499. package/lib/protocol-reexport.js.map +0 -1
  500. package/src/features/tool-palette/palette-item.ts +0 -38
  501. package/src/protocol-reexport.ts +0 -64
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -17,10 +17,8 @@ import {
17
17
  Action,
18
18
  Args,
19
19
  CenterAction,
20
- GLSPServerStatusAction,
21
- isNavigateToExternalTargetAction,
22
- isNavigateToTargetAction,
23
- isSetNavigationTargetsAction,
20
+ hasObjectProp,
21
+ hasStringProp,
24
22
  NavigateToExternalTargetAction,
25
23
  NavigateToTargetAction,
26
24
  NavigationTarget,
@@ -28,13 +26,15 @@ import {
28
26
  SelectAction,
29
27
  SelectAllAction,
30
28
  ServerMessageAction,
29
+ ServerSeverity,
30
+ ServerStatusAction,
31
+ SetNavigationTargetsAction,
31
32
  SetResolvedNavigationTargetAction
32
33
  } from '@eclipse-glsp/protocol';
33
34
  import { inject, injectable } from 'inversify';
34
- import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger, TYPES } from 'sprotty';
35
-
35
+ import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger } from 'sprotty';
36
36
  import { EditorContextServiceProvider } from '../../base/editor-context-service';
37
- import { GLSP_TYPES } from '../../base/types';
37
+ import { TYPES } from '../../base/types';
38
38
  import { NavigationTargetResolver } from './navigation-target-resolver';
39
39
 
40
40
  /**
@@ -48,38 +48,66 @@ import { NavigationTargetResolver } from './navigation-target-resolver';
48
48
  *
49
49
  * This action is typically triggered by a user action.
50
50
  */
51
- export class NavigateAction implements Action {
52
- static readonly KIND = 'navigate';
53
- readonly kind = NavigateAction.KIND;
54
- constructor(readonly targetTypeId: string, readonly args?: Args) {}
51
+
52
+ export interface NavigateAction extends Action {
53
+ kind: typeof NavigateAction.KIND;
54
+ /**
55
+ * Navigation target type, such as `documentation`, `implementation`, etc.
56
+ */
57
+ targetTypeId: string;
58
+ /**
59
+ * Additional arguments for customization.
60
+ */
61
+ args?: Args;
55
62
  }
56
63
 
57
- export function isNavigateAction(action: Action): action is NavigateAction {
58
- return action !== undefined && action.kind === NavigateAction.KIND && (action as NavigateAction).targetTypeId !== undefined;
64
+ export namespace NavigateAction {
65
+ export const KIND = 'navigate';
66
+
67
+ export function is(object: any): object is NavigateAction {
68
+ return Action.hasKind(object, KIND) && hasStringProp(object, 'targetTypeId');
69
+ }
70
+
71
+ export function create(targetTypeId: string, options: { args?: Args } = {}): NavigateAction {
72
+ return {
73
+ kind: KIND,
74
+ targetTypeId,
75
+ ...options
76
+ };
77
+ }
59
78
  }
60
79
 
61
- /** Action to trigger the processing of additional navigation arguments.
62
- *
80
+ /**
81
+ * Action to trigger the processing of additional navigation arguments.
63
82
  * The resolution of a `NavigationTarget` may entail additional arguments. In this case, this action is
64
83
  * triggered allowing the client to react to those arguments. The default `NavigationActionHandler` will
65
84
  * only process the arguments' keys `info`, `warning`, and `error` to present them to the user.
66
85
  * Customizations, however, may add domain-specific arguments and register custom handler to also process
67
86
  * other arguments and trigger some additional behavior (e.g. update other views, etc.).
68
87
  */
69
- export class ProcessNavigationArgumentsAction implements Action {
70
- static readonly KIND = 'processNavigationArguments';
71
- readonly kind = ProcessNavigationArgumentsAction.KIND;
72
- constructor(readonly args: Args) {}
73
- }
74
88
 
75
- export function isProcessNavigationArgumentsAction(action: Action): action is ProcessNavigationArgumentsAction {
76
- return (
77
- action !== undefined &&
78
- action.kind === ProcessNavigationArgumentsAction.KIND &&
79
- (action as ProcessNavigationArgumentsAction).args !== undefined
80
- );
89
+ export interface ProcessNavigationArgumentsAction extends Action {
90
+ kind: typeof ProcessNavigationArgumentsAction.KIND;
91
+ /**
92
+ * The navigation arguments.
93
+ */
94
+ args: Args;
81
95
  }
82
96
 
97
+ export namespace ProcessNavigationArgumentsAction {
98
+ export const KIND = 'processNavigationArguments';
99
+
100
+ export function is(object: any): object is ProcessNavigationArgumentsAction {
101
+ return Action.hasKind(object, KIND) && hasObjectProp(object, 'args');
102
+ }
103
+
104
+ export function create(args: Args): ProcessNavigationArgumentsAction {
105
+ return {
106
+ kind: KIND,
107
+ args
108
+ };
109
+ }
110
+ }
83
111
  /**
84
112
  * Default handler for all actions that are related to the navigation.
85
113
  *
@@ -109,17 +137,17 @@ export class NavigationActionHandler implements IActionHandler {
109
137
  @inject(TYPES.ILogger) protected logger: ILogger;
110
138
  @inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
111
139
  @inject(TYPES.ActionHandlerRegistryProvider) protected actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
112
- @inject(GLSP_TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
140
+ @inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
113
141
  @inject(NavigationTargetResolver) protected resolver: NavigationTargetResolver;
114
142
 
115
143
  handle(action: Action): ICommand | Action | void {
116
- if (isNavigateAction(action)) {
144
+ if (NavigateAction.is(action)) {
117
145
  this.handleNavigateAction(action);
118
- } else if (isNavigateToTargetAction(action)) {
146
+ } else if (NavigateToTargetAction.is(action)) {
119
147
  this.handleNavigateToTarget(action);
120
- } else if (isProcessNavigationArgumentsAction(action)) {
148
+ } else if (ProcessNavigationArgumentsAction.is(action)) {
121
149
  this.processNavigationArguments(action.args);
122
- } else if (isNavigateToExternalTargetAction(action)) {
150
+ } else if (NavigateToExternalTargetAction.is(action)) {
123
151
  this.handleNavigateToExternalTarget(action);
124
152
  }
125
153
  }
@@ -127,9 +155,11 @@ export class NavigationActionHandler implements IActionHandler {
127
155
  protected async handleNavigateAction(action: NavigateAction): Promise<void> {
128
156
  try {
129
157
  const editorContextService = await this.editorContextService();
130
- const context = editorContextService.get(action.args);
131
- const response = await this.dispatcher.request(new RequestNavigationTargetsAction(action.targetTypeId, context));
132
- if (isSetNavigationTargetsAction(response) && response.targets && response.targets.length === 1) {
158
+ const editorContext = editorContextService.get(action.args);
159
+ const response = await this.dispatcher.request(
160
+ RequestNavigationTargetsAction.create({ targetTypeId: action.targetTypeId, editorContext })
161
+ );
162
+ if (SetNavigationTargetsAction.is(response) && response.targets && response.targets.length === 1) {
133
163
  if (response.targets.length > 1) {
134
164
  this.logger.warn(
135
165
  this,
@@ -137,7 +167,7 @@ export class NavigationActionHandler implements IActionHandler {
137
167
  response.targets
138
168
  );
139
169
  }
140
- return this.dispatcher.dispatch(new NavigateToTargetAction(response.targets[0]));
170
+ return this.dispatcher.dispatch(NavigateToTargetAction.create(response.targets[0]));
141
171
  }
142
172
  this.warnAboutFailedNavigation('No valid navigation target found');
143
173
  } catch (reason) {
@@ -184,7 +214,11 @@ export class NavigationActionHandler implements IActionHandler {
184
214
  if (!this.containsElementIds(elementIds)) {
185
215
  return;
186
216
  }
187
- this.dispatcher.dispatchAll([new SelectAllAction(false), new SelectAction(elementIds), new CenterAction(elementIds)]);
217
+ this.dispatcher.dispatchAll([
218
+ SelectAllAction.create(false),
219
+ SelectAction.create({ selectedElementsIDs: elementIds }),
220
+ CenterAction.create(elementIds)
221
+ ]);
188
222
  }
189
223
 
190
224
  protected handleResolutionArguments(target: SetResolvedNavigationTargetAction): void {
@@ -192,11 +226,11 @@ export class NavigationActionHandler implements IActionHandler {
192
226
  if (!this.containsArguments(args)) {
193
227
  return;
194
228
  }
195
- this.dispatcher.dispatch(new ProcessNavigationArgumentsAction(args));
229
+ this.dispatcher.dispatch(ProcessNavigationArgumentsAction.create(args));
196
230
  }
197
231
 
198
232
  protected navigateToExternal(target: NavigationTarget): Promise<void> {
199
- return this.dispatcher.dispatch(new NavigateToExternalTargetAction(target));
233
+ return this.dispatcher.dispatch(NavigateToExternalTargetAction.create(target));
200
234
  }
201
235
 
202
236
  protected processNavigationArguments(args: Args): void {
@@ -226,11 +260,11 @@ export class NavigationActionHandler implements IActionHandler {
226
260
  this.notify('WARNING', message);
227
261
  }
228
262
 
229
- private notify(severity: string, message: string): void {
263
+ private notify(severity: ServerSeverity, message: string): void {
230
264
  const timeout = this.notificationTimeout;
231
265
  this.dispatcher.dispatchAll([
232
- { kind: GLSPServerStatusAction.KIND, severity, timeout, message } as GLSPServerStatusAction,
233
- { kind: ServerMessageAction.KIND, severity, timeout, message } as ServerMessageAction
266
+ ServerStatusAction.create(message, { severity, timeout }),
267
+ ServerMessageAction.create(message, { severity, timeout })
234
268
  ]);
235
269
  }
236
270
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -22,7 +22,7 @@ import 'reflect-metadata';
22
22
  describe('NavigationTarget', () => {
23
23
  it('should be able to set and get element IDs', () => {
24
24
  const navigationTarget: NavigationTarget = { uri: 'uri' };
25
- NavigationTarget.setElementIds(navigationTarget, ['id1', 'id2']);
25
+ NavigationTarget.setElementIds(navigationTarget, 'id1', 'id2');
26
26
  expect(NavigationTarget.getElementIds(navigationTarget)).to.be.eql(['id1', 'id2']);
27
27
  });
28
28
 
@@ -46,7 +46,7 @@ describe('NavigationTarget', () => {
46
46
 
47
47
  navigationTarget = { uri: 'uri' };
48
48
  expect(NavigationTarget.hasArguments(navigationTarget)).to.be.false;
49
- NavigationTarget.setElementIds(navigationTarget, ['id1', 'id2']);
49
+ NavigationTarget.setElementIds(navigationTarget, 'id1', 'id2');
50
50
  expect(NavigationTarget.hasArguments(navigationTarget)).to.be.true;
51
51
 
52
52
  navigationTarget = { uri: 'uri' };
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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,16 +13,11 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import {
17
- isSetResolvedNavigationTargets,
18
- NavigationTarget,
19
- ResolveNavigationTargetAction,
20
- SetResolvedNavigationTargetAction
21
- } from '@eclipse-glsp/protocol';
16
+ import { NavigationTarget, ResolveNavigationTargetAction, ResponseAction, SetResolvedNavigationTargetAction } from '@eclipse-glsp/protocol';
22
17
  import { inject, injectable } from 'inversify';
23
- import { IActionDispatcher, ILogger, ResponseAction, TYPES } from 'sprotty';
18
+ import { IActionDispatcher, ILogger } from 'sprotty';
24
19
  import { EditorContextServiceProvider } from '../../base/editor-context-service';
25
- import { GLSP_TYPES } from '../../base/types';
20
+ import { TYPES } from '../../base/types';
26
21
 
27
22
  /**
28
23
  * Resolves `NavigationTargets` to element ids.
@@ -32,7 +27,7 @@ import { GLSP_TYPES } from '../../base/types';
32
27
  */
33
28
  @injectable()
34
29
  export class NavigationTargetResolver {
35
- @inject(GLSP_TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
30
+ @inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
36
31
  @inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
37
32
  @inject(TYPES.ILogger) protected readonly logger: ILogger;
38
33
 
@@ -53,16 +48,16 @@ export class NavigationTargetResolver {
53
48
  return undefined;
54
49
  }
55
50
  if (NavigationTarget.getElementIds(target).length > 0) {
56
- return new SetResolvedNavigationTargetAction(NavigationTarget.getElementIds(target));
51
+ return SetResolvedNavigationTargetAction.create(NavigationTarget.getElementIds(target));
57
52
  }
58
53
  const response = await this.requestResolution(target);
59
- if (isSetResolvedNavigationTargets(response)) {
54
+ if (SetResolvedNavigationTargetAction.is(response)) {
60
55
  return response;
61
56
  }
62
57
  return undefined;
63
58
  }
64
59
 
65
60
  protected requestResolution(target: NavigationTarget): Promise<ResponseAction> {
66
- return this.dispatcher.request(new ResolveNavigationTargetAction(target));
61
+ return this.dispatcher.request(ResolveNavigationTargetAction.create(target));
67
62
  }
68
63
  }
@@ -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
@@ -69,7 +69,7 @@ export function createReconnectHandle(edge: SRoutableElement, kind: RoutingHandl
69
69
  }
70
70
 
71
71
  export class SReconnectHandle extends SRoutingHandle {
72
- hasFeature(feature: symbol): boolean {
72
+ override hasFeature(feature: symbol): boolean {
73
73
  return feature !== selectFeature && super.hasFeature(feature);
74
74
  }
75
75
  }
@@ -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,8 +14,7 @@
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 { TYPES } from 'sprotty';
18
-
17
+ import { TYPES } from '../../base/types';
19
18
  import { SaveModelKeyboardListener } from './save-keylistener';
20
19
 
21
20
  /**
@@ -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
@@ -18,9 +18,9 @@ import { KeyListener, SModelRoot } from 'sprotty';
18
18
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
19
19
 
20
20
  export class SaveModelKeyboardListener extends KeyListener {
21
- keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
21
+ override keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
22
22
  if (matchesKeystroke(event, 'KeyS', 'ctrlCmd')) {
23
- return [new SaveModelAction()];
23
+ return [SaveModelAction.create()];
24
24
  }
25
25
  return [];
26
26
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 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,22 +14,20 @@
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, TYPES } from 'sprotty';
18
-
19
- import { GLSP_TYPES } from '../../base/types';
20
- import { SelectAllFeedbackCommand, SelectFeedbackCommand } from './select-feedback-action';
17
+ import { configureCommand } from 'sprotty';
18
+ import { TYPES } from '../../base/types';
19
+ import { SelectFeedbackCommand } from './select-feedback-action';
21
20
  import { RankedSelectMouseListener } from './select-mouse-listener';
22
21
  import { SelectAllCommand, SelectCommand, SelectionService } from './selection-service';
23
22
 
24
23
  const glspSelectModule = new ContainerModule((bind, _unbind, isBound) => {
25
24
  bind(SelectionService).toSelf().inSingletonScope();
26
- bind(GLSP_TYPES.SelectionService).toService(SelectionService);
25
+ bind(TYPES.SelectionService).toService(SelectionService);
27
26
  configureCommand({ bind, isBound }, SelectCommand);
28
27
  configureCommand({ bind, isBound }, SelectAllCommand);
29
28
  configureCommand({ bind, isBound }, SelectFeedbackCommand);
30
- configureCommand({ bind, isBound }, SelectAllFeedbackCommand);
31
29
  bind(TYPES.MouseListener).to(RankedSelectMouseListener);
32
- bind(GLSP_TYPES.SModelRootListener).toService(SelectionService);
30
+ bind(TYPES.SModelRootListener).toService(SelectionService);
33
31
  });
34
32
 
35
33
  export default glspSelectModule;
@@ -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,39 +13,34 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, hasArrayProp, SelectAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import {
18
- Command,
19
- CommandExecutionContext,
20
- SelectAllCommand as SprottySelectAllCommand,
21
- SelectCommand as SprottySelectCommand,
22
- SModelRoot,
23
- TYPES
24
- } from 'sprotty';
18
+ import { Command, CommandExecutionContext, SelectCommand as SprottySelectCommand, SModelRoot } from 'sprotty';
19
+ import { TYPES } from '../../base/types';
25
20
 
26
- export class SelectFeedbackAction {
27
- constructor(
28
- public readonly selectedElementsIDs: string[] = [],
29
- public readonly deselectedElementsIDs: string[] = [],
30
- public readonly kind: string = SelectFeedbackCommand.KIND
31
- ) {}
21
+ export interface SelectFeedbackAction extends Omit<SelectAction, 'kind'>, Action {
22
+ kind: typeof SelectFeedbackAction.KIND;
32
23
  }
33
24
 
34
- export class SelectAllFeedbackAction {
35
- /**
36
- * If `select` is true, all elements are selected, othewise they are deselected.
37
- */
38
- constructor(public readonly select: boolean = true, public readonly kind: string = SelectFeedbackCommand.KIND) {}
39
- }
25
+ export namespace SelectFeedbackAction {
26
+ export const KIND = 'selectFeedback';
27
+
28
+ export function is(object: any): object is SelectFeedbackAction {
29
+ return Action.hasKind(object, KIND) && hasArrayProp(object, 'selectedElementsIDs') && hasArrayProp(object, 'deselectedElementsIDs');
30
+ }
40
31
 
32
+ export function create(options?: { selectedElementsIDs?: string[]; deselectedElementsIDs?: string[] }): SelectFeedbackAction {
33
+ return { ...SelectAction.create(options), kind: KIND };
34
+ }
35
+ }
41
36
  @injectable()
42
37
  export class SelectFeedbackCommand extends Command {
43
- static readonly KIND = 'elementSelectedFeedback';
38
+ static readonly KIND = SelectFeedbackAction.KIND;
44
39
  private sprottySelectCommand: SprottySelectCommand;
45
40
 
46
41
  constructor(@inject(TYPES.Action) public action: SelectFeedbackAction) {
47
42
  super();
48
- this.sprottySelectCommand = new SprottySelectCommand(action);
43
+ this.sprottySelectCommand = new SprottySelectCommand({ ...action, kind: SelectAction.KIND });
49
44
  }
50
45
 
51
46
  execute(context: CommandExecutionContext): SModelRoot {
@@ -60,26 +55,3 @@ export class SelectFeedbackCommand extends Command {
60
55
  return this.sprottySelectCommand.redo(context);
61
56
  }
62
57
  }
63
-
64
- @injectable()
65
- export class SelectAllFeedbackCommand extends Command {
66
- static readonly KIND = 'allSelectedFeedback';
67
- private sprottySelectAllCommand: SprottySelectAllCommand;
68
-
69
- constructor(@inject(TYPES.Action) public action: SelectAllFeedbackAction) {
70
- super();
71
- this.sprottySelectAllCommand = new SprottySelectAllCommand(action);
72
- }
73
-
74
- execute(context: CommandExecutionContext): SModelRoot {
75
- return this.sprottySelectAllCommand.execute(context);
76
- }
77
-
78
- undo(context: CommandExecutionContext): SModelRoot {
79
- return this.sprottySelectAllCommand.undo(context);
80
- }
81
-
82
- redo(context: CommandExecutionContext): SModelRoot {
83
- return this.sprottySelectAllCommand.redo(context);
84
- }
85
- }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 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,7 +14,6 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { SelectMouseListener } from 'sprotty';
17
-
18
17
  import { DEFAULT_RANK, Ranked } from '../rank/model';
19
18
 
20
19
  /**
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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,11 +14,11 @@
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 { Action } from '@eclipse-glsp/protocol';
17
+ import { Action, SModelElementSchema } from '@eclipse-glsp/protocol';
18
18
  import { AssertionError, expect } from 'chai';
19
19
  import { Container, injectable } from 'inversify';
20
- import { defaultModule, SGraphFactory, SModelElementSchema, SModelRoot, TYPES } from 'sprotty';
21
- import { GLSP_TYPES } from '../../base/types';
20
+ import { defaultModule, SGraphFactory, SModelRoot } from 'sprotty';
21
+ import { TYPES } from '../../base/types';
22
22
  import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
23
23
  import { SelectFeedbackAction } from './select-feedback-action';
24
24
  import { SelectionListener, SelectionService } from './selection-service';
@@ -74,14 +74,16 @@ class MockSelectionListener implements SelectionListener {
74
74
  function createContainer(): Container {
75
75
  const container = new Container();
76
76
  container.load(defaultModule);
77
+ // eslint-disable-next-line deprecation/deprecation
77
78
  container.rebind(TYPES.IModelFactory).to(SGraphFactory).inSingletonScope();
78
- container.bind(GLSP_TYPES.IFeedbackActionDispatcher).to(MockFeedbackActionDispatcher).inSingletonScope();
79
+ container.bind(TYPES.IFeedbackActionDispatcher).to(MockFeedbackActionDispatcher).inSingletonScope();
79
80
  container.bind(SelectionService).toSelf().inSingletonScope();
80
- container.bind(GLSP_TYPES.SelectionService).toService(SelectionService);
81
+ container.bind(TYPES.SelectionService).toService(SelectionService);
81
82
  return container;
82
83
  }
83
84
 
84
85
  describe('SelectionService', () => {
86
+ // eslint-disable-next-line deprecation/deprecation
85
87
  let graphFactory: SGraphFactory;
86
88
  let root: SModelRoot;
87
89
  let selectionService: SelectionService;
@@ -89,10 +91,11 @@ describe('SelectionService', () => {
89
91
 
90
92
  beforeEach(() => {
91
93
  const container = createContainer();
94
+ // eslint-disable-next-line deprecation/deprecation
92
95
  graphFactory = container.get<SGraphFactory>(TYPES.IModelFactory);
93
96
  root = createRoot('node1', 'node2', 'node3', 'node4', 'node5');
94
- selectionService = container.get<SelectionService>(GLSP_TYPES.SelectionService);
95
- feedbackDispatcher = container.get<MockFeedbackActionDispatcher>(GLSP_TYPES.IFeedbackActionDispatcher);
97
+ selectionService = container.get<SelectionService>(TYPES.SelectionService);
98
+ feedbackDispatcher = container.get<MockFeedbackActionDispatcher>(TYPES.IFeedbackActionDispatcher);
96
99
  });
97
100
 
98
101
  describe('Initial State', () => {
@@ -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
@@ -20,17 +20,17 @@ import {
20
20
  CommandExecutionContext,
21
21
  ILogger,
22
22
  isSelectable,
23
- isSelected,
24
23
  SChildElement,
24
+ Selectable,
25
25
  SelectAllCommand as SprottySelectAllCommand,
26
26
  SelectCommand as SprottySelectCommand,
27
27
  SModelElement,
28
28
  SModelRoot,
29
- SParentElement,
30
- TYPES
29
+ SParentElement
31
30
  } from 'sprotty';
32
31
  import { SModelRootListener } from '../../base/model/update-model-command';
33
- import { GLSP_TYPES } from '../../base/types';
32
+ import { TYPES } from '../../base/types';
33
+ import { getElements } from '../../utils/smodel-util';
34
34
  import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
35
35
  import { SelectFeedbackAction } from './select-feedback-action';
36
36
 
@@ -43,10 +43,10 @@ export class SelectionService implements SModelRootListener {
43
43
  private root: Readonly<SModelRoot>;
44
44
  private selectedElementIDs: Set<string> = new Set();
45
45
 
46
- @inject(GLSP_TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
46
+ @inject(TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
47
47
  @inject(TYPES.ILogger) protected logger: ILogger;
48
48
 
49
- constructor(@multiInject(GLSP_TYPES.SelectionListener) @optional() protected selectionListeners: SelectionListener[] = []) {}
49
+ constructor(@multiInject(TYPES.SelectionListener) @optional() protected selectionListeners: SelectionListener[] = []) {}
50
50
 
51
51
  register(selectionListener: SelectionListener): void {
52
52
  distinctAdd(this.selectionListeners, selectionListener);
@@ -100,7 +100,12 @@ export class SelectionService implements SModelRootListener {
100
100
  ![...prevSelectedElementIDs].every(value => this.selectedElementIDs.has(value));
101
101
  if (selectionChanged) {
102
102
  // aggregate to feedback action handling all elements as only the last feedback is restored
103
- this.dispatchFeedback([new SelectFeedbackAction([...this.selectedElementIDs], [...deselectedElementIDs])]);
103
+ this.dispatchFeedback([
104
+ SelectFeedbackAction.create({
105
+ selectedElementsIDs: [...this.selectedElementIDs],
106
+ deselectedElementsIDs: [...deselectedElementIDs]
107
+ })
108
+ ]);
104
109
  }
105
110
 
106
111
  const rootChanged = prevRoot !== root;
@@ -122,8 +127,8 @@ export class SelectionService implements SModelRootListener {
122
127
  return this.root;
123
128
  }
124
129
 
125
- getSelectedElements(): Readonly<SModelElement>[] {
126
- return Array.from(this.root.index.all().filter(isSelected));
130
+ getSelectedElements(): Readonly<SModelElement & Selectable>[] {
131
+ return getElements(this.root.index, Array.from(this.selectedElementIDs), isSelectable);
127
132
  }
128
133
 
129
134
  /**
@@ -156,7 +161,7 @@ export class SelectCommand extends Command {
156
161
 
157
162
  constructor(
158
163
  @inject(TYPES.Action) public action: SelectAction,
159
- @inject(GLSP_TYPES.SelectionService) public selectionService: SelectionService
164
+ @inject(TYPES.SelectionService) public selectionService: SelectionService
160
165
  ) {
161
166
  super();
162
167
  }
@@ -200,7 +205,7 @@ export class SelectAllCommand extends Command {
200
205
 
201
206
  constructor(
202
207
  @inject(TYPES.Action) public action: SelectAllAction,
203
- @inject(GLSP_TYPES.SelectionService) public selectionService: SelectionService
208
+ @inject(TYPES.SelectionService) public selectionService: SelectionService
204
209
  ) {
205
210
  super();
206
211
  }