@eclipse-glsp/client 0.9.0 → 0.10.0-next.17bfb07.173

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 (531) 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/container-modules.d.ts.map +1 -1
  28. package/lib/base/container-modules.js +2 -1
  29. package/lib/base/container-modules.js.map +1 -1
  30. package/lib/base/di.config.d.ts +1 -1
  31. package/lib/base/di.config.d.ts.map +1 -1
  32. package/lib/base/di.config.js +13 -14
  33. package/lib/base/di.config.js.map +1 -1
  34. package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
  35. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  36. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  37. package/lib/base/editor-context-service.d.ts +18 -5
  38. package/lib/base/editor-context-service.d.ts.map +1 -1
  39. package/lib/base/editor-context-service.js +39 -22
  40. package/lib/base/editor-context-service.js.map +1 -1
  41. package/lib/base/focus-tracker.d.ts +1 -1
  42. package/lib/base/focus-tracker.d.ts.map +1 -1
  43. package/lib/base/focus-tracker.js +4 -4
  44. package/lib/base/focus-tracker.js.map +1 -1
  45. package/lib/base/model/model-registry.d.ts.map +1 -1
  46. package/lib/base/model/model-registry.js +2 -2
  47. package/lib/base/model/model-registry.js.map +1 -1
  48. package/lib/base/model/update-model-command.d.ts +1 -1
  49. package/lib/base/model/update-model-command.d.ts.map +1 -1
  50. package/lib/base/model/update-model-command.js +15 -15
  51. package/lib/base/model/update-model-command.js.map +1 -1
  52. package/lib/base/model-initialization-constraint.d.ts +4 -5
  53. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  54. package/lib/base/model-initialization-constraint.js +11 -13
  55. package/lib/base/model-initialization-constraint.js.map +1 -1
  56. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  57. package/lib/base/selection-clearing-mouse-listener.js +1 -1
  58. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  59. package/lib/base/source-uri-aware.d.ts +2 -17
  60. package/lib/base/source-uri-aware.d.ts.map +1 -1
  61. package/lib/base/source-uri-aware.js +4 -6
  62. package/lib/base/source-uri-aware.js.map +1 -1
  63. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  64. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  65. package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
  66. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  67. package/lib/base/tool-manager/tool-actions.d.ts +14 -0
  68. package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
  69. package/lib/base/tool-manager/tool-actions.js +25 -0
  70. package/lib/base/tool-manager/tool-actions.js.map +1 -0
  71. package/lib/base/types.d.ts +144 -20
  72. package/lib/base/types.d.ts.map +1 -1
  73. package/lib/base/types.js +14 -26
  74. package/lib/base/types.js.map +1 -1
  75. package/lib/base/view/view-registry.d.ts.map +1 -1
  76. package/lib/base/view/view-registry.js +2 -2
  77. package/lib/base/view/view-registry.js.map +1 -1
  78. package/lib/features/change-bounds/model.d.ts +1 -1
  79. package/lib/features/change-bounds/model.d.ts.map +1 -1
  80. package/lib/features/change-bounds/model.js +3 -3
  81. package/lib/features/change-bounds/model.js.map +1 -1
  82. package/lib/features/change-bounds/movement-restrictor.d.ts +37 -7
  83. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  84. package/lib/features/change-bounds/movement-restrictor.js +55 -40
  85. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  86. package/lib/features/change-bounds/snap.d.ts +42 -2
  87. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  88. package/lib/features/change-bounds/snap.js +78 -2
  89. package/lib/features/change-bounds/snap.js.map +1 -1
  90. package/lib/features/change-bounds/snap.spec.d.ts +17 -0
  91. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  92. package/lib/features/change-bounds/snap.spec.js +82 -0
  93. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  94. package/lib/features/command-palette/command-palette-tool.js +3 -3
  95. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  96. package/lib/features/command-palette/di.config.d.ts +2 -2
  97. package/lib/features/command-palette/di.config.d.ts.map +1 -1
  98. package/lib/features/command-palette/di.config.js +6 -6
  99. package/lib/features/command-palette/di.config.js.map +1 -1
  100. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
  101. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  102. package/lib/features/command-palette/server-command-palette-provider.js +13 -10
  103. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  104. package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
  105. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  106. package/lib/features/context-menu/delete-element-context-menu.js +4 -4
  107. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  108. package/lib/features/context-menu/di.config.d.ts +1 -1
  109. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  110. package/lib/features/context-menu/di.config.js +8 -7
  111. package/lib/features/context-menu/di.config.js.map +1 -1
  112. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +33 -1
  113. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  114. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +41 -28
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  116. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
  117. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  118. package/lib/features/context-menu/server-context-menu-provider.js +8 -7
  119. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  120. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
  121. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  122. package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
  123. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  124. package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
  125. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  126. package/lib/features/copy-paste/copy-paste-handler.js +10 -11
  127. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  128. package/lib/features/copy-paste/di.config.d.ts +1 -1
  129. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  130. package/lib/features/copy-paste/di.config.js +5 -7
  131. package/lib/features/copy-paste/di.config.js.map +1 -1
  132. package/lib/features/decoration/decoration-placer.d.ts +1 -1
  133. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  134. package/lib/features/decoration/decoration-placer.js +19 -3
  135. package/lib/features/decoration/decoration-placer.js.map +1 -1
  136. package/lib/features/decoration/di.config.d.ts +2 -2
  137. package/lib/features/decoration/di.config.d.ts.map +1 -1
  138. package/lib/features/decoration/di.config.js +4 -4
  139. package/lib/features/decoration/di.config.js.map +1 -1
  140. package/lib/features/edit-label/di.config.d.ts +1 -1
  141. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  142. package/lib/features/edit-label/di.config.js +5 -5
  143. package/lib/features/edit-label/di.config.js.map +1 -1
  144. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  145. package/lib/features/edit-label/edit-label-tool.js +2 -2
  146. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  147. package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
  148. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  149. package/lib/features/edit-label/edit-label-validator.js +11 -13
  150. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  151. package/lib/features/hints/di.config.js +4 -4
  152. package/lib/features/hints/di.config.js.map +1 -1
  153. package/lib/features/hints/type-hints.d.ts +15 -5
  154. package/lib/features/hints/type-hints.d.ts.map +1 -1
  155. package/lib/features/hints/type-hints.js +29 -26
  156. package/lib/features/hints/type-hints.js.map +1 -1
  157. package/lib/features/hover/di.config.d.ts +1 -1
  158. package/lib/features/hover/di.config.d.ts.map +1 -1
  159. package/lib/features/hover/di.config.js +14 -10
  160. package/lib/features/hover/di.config.js.map +1 -1
  161. package/lib/features/hover/hover.d.ts +16 -4
  162. package/lib/features/hover/hover.d.ts.map +1 -1
  163. package/lib/features/hover/hover.js +42 -4
  164. package/lib/features/hover/hover.js.map +1 -1
  165. package/lib/features/layout/di.config.d.ts +3 -3
  166. package/lib/features/layout/di.config.d.ts.map +1 -1
  167. package/lib/features/layout/di.config.js +11 -7
  168. package/lib/features/layout/di.config.js.map +1 -1
  169. package/lib/features/layout/freeform-layout.d.ts +17 -1
  170. package/lib/features/layout/freeform-layout.d.ts.map +1 -1
  171. package/lib/features/layout/freeform-layout.js +4 -4
  172. package/lib/features/layout/freeform-layout.js.map +1 -1
  173. package/lib/features/layout/hbox-layout.d.ts +41 -0
  174. package/lib/features/layout/hbox-layout.d.ts.map +1 -0
  175. package/lib/features/layout/hbox-layout.js +189 -0
  176. package/lib/features/layout/hbox-layout.js.map +1 -0
  177. package/lib/features/layout/layout-elements-action.d.ts +198 -0
  178. package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
  179. package/lib/features/layout/layout-elements-action.js +391 -0
  180. package/lib/features/layout/layout-elements-action.js.map +1 -0
  181. package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
  182. package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
  183. package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
  184. package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
  185. package/lib/features/layout/vbox-layout.d.ts +17 -1
  186. package/lib/features/layout/vbox-layout.d.ts.map +1 -1
  187. package/lib/features/layout/vbox-layout.js +9 -8
  188. package/lib/features/layout/vbox-layout.js.map +1 -1
  189. package/lib/features/model-source-watcher/di.config.js +1 -1
  190. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  191. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
  192. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  193. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
  194. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  195. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  196. package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
  197. package/lib/features/mouse-tool/di.config.js +2 -2
  198. package/lib/features/mouse-tool/di.config.js.map +1 -1
  199. package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
  200. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  201. package/lib/features/mouse-tool/mouse-tool.js +11 -53
  202. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  203. package/lib/features/navigation/di.config.js +4 -4
  204. package/lib/features/navigation/di.config.js.map +1 -1
  205. package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
  206. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  207. package/lib/features/navigation/navigation-action-handler.js +52 -68
  208. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  209. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  210. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  211. package/lib/features/navigation/navigation-target-resolver.js +9 -10
  212. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  213. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  214. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  215. package/lib/features/reconnect/model.d.ts +1 -1
  216. package/lib/features/reconnect/model.d.ts.map +1 -1
  217. package/lib/features/reconnect/model.js +1 -1
  218. package/lib/features/reconnect/model.js.map +1 -1
  219. package/lib/features/save/di.config.d.ts +1 -1
  220. package/lib/features/save/di.config.d.ts.map +1 -1
  221. package/lib/features/save/di.config.js +3 -3
  222. package/lib/features/save/di.config.js.map +1 -1
  223. package/lib/features/save/save-keylistener.d.ts +1 -1
  224. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  225. package/lib/features/save/save-keylistener.js +3 -3
  226. package/lib/features/save/save-keylistener.js.map +1 -1
  227. package/lib/features/select/di.config.d.ts +1 -1
  228. package/lib/features/select/di.config.d.ts.map +1 -1
  229. package/lib/features/select/di.config.js +7 -8
  230. package/lib/features/select/di.config.js.map +1 -1
  231. package/lib/features/select/select-feedback-action.d.ts +26 -22
  232. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  233. package/lib/features/select/select-feedback-action.js +19 -46
  234. package/lib/features/select/select-feedback-action.js.map +1 -1
  235. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  236. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  237. package/lib/features/select/select-mouse-listener.js +1 -1
  238. package/lib/features/select/select-mouse-listener.js.map +1 -1
  239. package/lib/features/select/selection-service.d.ts +14 -5
  240. package/lib/features/select/selection-service.d.ts.map +1 -1
  241. package/lib/features/select/selection-service.js +55 -64
  242. package/lib/features/select/selection-service.js.map +1 -1
  243. package/lib/features/select/selection-service.spec.js +28 -25
  244. package/lib/features/select/selection-service.spec.js.map +1 -1
  245. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
  246. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  247. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +68 -38
  248. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  249. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
  250. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  251. package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
  252. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  253. package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
  254. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  255. package/lib/features/tool-feedback/css-feedback.js +42 -38
  256. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  257. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  258. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  259. package/lib/features/tool-feedback/di.config.js +18 -18
  260. package/lib/features/tool-feedback/di.config.js.map +1 -1
  261. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -22
  262. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  263. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -114
  264. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  265. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
  266. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  267. package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
  268. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  269. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
  270. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  271. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
  272. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  273. package/lib/features/tool-feedback/model.d.ts +1 -2
  274. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  275. package/lib/features/tool-feedback/model.js +1 -1
  276. package/lib/features/tool-feedback/model.js.map +1 -1
  277. package/lib/features/tool-feedback/view.d.ts +1 -1
  278. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  279. package/lib/features/tool-feedback/view.js +22 -5
  280. package/lib/features/tool-feedback/view.js.map +1 -1
  281. package/lib/features/tool-palette/di.config.d.ts +1 -1
  282. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  283. package/lib/features/tool-palette/di.config.js +5 -4
  284. package/lib/features/tool-palette/di.config.js.map +1 -1
  285. package/lib/features/tool-palette/tool-palette.d.ts +10 -7
  286. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  287. package/lib/features/tool-palette/tool-palette.js +39 -32
  288. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  289. package/lib/features/tools/base-glsp-tool.d.ts +3 -3
  290. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  291. package/lib/features/tools/base-glsp-tool.js +11 -11
  292. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  293. package/lib/features/tools/change-bounds-tool.d.ts +7 -9
  294. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  295. package/lib/features/tools/change-bounds-tool.js +48 -71
  296. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  297. package/lib/features/tools/delete-tool.d.ts +1 -1
  298. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  299. package/lib/features/tools/delete-tool.js +17 -17
  300. package/lib/features/tools/delete-tool.js.map +1 -1
  301. package/lib/features/tools/di.config.d.ts +9 -2
  302. package/lib/features/tools/di.config.d.ts.map +1 -1
  303. package/lib/features/tools/di.config.js +26 -15
  304. package/lib/features/tools/di.config.js.map +1 -1
  305. package/lib/features/tools/edge-creation-tool.d.ts +1 -1
  306. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  307. package/lib/features/tools/edge-creation-tool.js +28 -21
  308. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  309. package/lib/features/tools/edge-edit-tool.d.ts +3 -2
  310. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  311. package/lib/features/tools/edge-edit-tool.js +41 -36
  312. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  313. package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
  314. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
  315. package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
  316. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
  317. package/lib/features/tools/marquee-behavior.d.ts +1 -1
  318. package/lib/features/tools/marquee-behavior.js +2 -2
  319. package/lib/features/tools/marquee-behavior.js.map +1 -1
  320. package/lib/features/tools/marquee-behavior.spec.js +63 -63
  321. package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
  322. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
  323. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  324. package/lib/features/tools/marquee-mouse-tool.js +20 -20
  325. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  326. package/lib/features/tools/marquee-tool.d.ts +1 -1
  327. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  328. package/lib/features/tools/marquee-tool.js +4 -4
  329. package/lib/features/tools/marquee-tool.js.map +1 -1
  330. package/lib/features/tools/model.d.ts +3 -2
  331. package/lib/features/tools/model.d.ts.map +1 -1
  332. package/lib/features/tools/model.js +0 -15
  333. package/lib/features/tools/model.js.map +1 -1
  334. package/lib/features/tools/node-creation-tool.d.ts +1 -1
  335. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  336. package/lib/features/tools/node-creation-tool.js +17 -17
  337. package/lib/features/tools/node-creation-tool.js.map +1 -1
  338. package/lib/features/tools/view.d.ts.map +1 -1
  339. package/lib/features/tools/view.js +2 -2
  340. package/lib/features/tools/view.js.map +1 -1
  341. package/lib/features/validation/di.config.d.ts +0 -15
  342. package/lib/features/validation/di.config.d.ts.map +1 -1
  343. package/lib/features/validation/di.config.js +9 -7
  344. package/lib/features/validation/di.config.js.map +1 -1
  345. package/lib/features/validation/marker-navigator.d.ts +27 -25
  346. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  347. package/lib/features/validation/marker-navigator.js +64 -91
  348. package/lib/features/validation/marker-navigator.js.map +1 -1
  349. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  350. package/lib/features/validation/marker-navigator.spec.js +23 -37
  351. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  352. package/lib/features/validation/validate.d.ts +16 -30
  353. package/lib/features/validation/validate.d.ts.map +1 -1
  354. package/lib/features/validation/validate.js +61 -92
  355. package/lib/features/validation/validate.js.map +1 -1
  356. package/lib/features/viewport/di.config.d.ts +1 -1
  357. package/lib/features/viewport/di.config.d.ts.map +1 -1
  358. package/lib/features/viewport/di.config.js +7 -7
  359. package/lib/features/viewport/di.config.js.map +1 -1
  360. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
  361. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  362. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
  363. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  364. package/lib/index.d.ts +8 -9
  365. package/lib/index.d.ts.map +1 -1
  366. package/lib/index.js +15 -11
  367. package/lib/index.js.map +1 -1
  368. package/lib/lib/model.d.ts +3 -2
  369. package/lib/lib/model.d.ts.map +1 -1
  370. package/lib/lib/model.js +3 -18
  371. package/lib/lib/model.js.map +1 -1
  372. package/lib/model-source/glsp-diagram-server.d.ts +6 -6
  373. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  374. package/lib/model-source/glsp-diagram-server.js +8 -7
  375. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  376. package/lib/sprotty-reexport.d.ts +174 -0
  377. package/lib/sprotty-reexport.d.ts.map +1 -0
  378. package/lib/sprotty-reexport.js +299 -0
  379. package/lib/sprotty-reexport.js.map +1 -0
  380. package/lib/utils/argument-utils.js +5 -5
  381. package/lib/utils/argument-utils.js.map +1 -1
  382. package/lib/utils/layout-utils.d.ts +6 -22
  383. package/lib/utils/layout-utils.d.ts.map +1 -1
  384. package/lib/utils/layout-utils.js +1 -1
  385. package/lib/utils/layout-utils.js.map +1 -1
  386. package/lib/utils/smodel-util.d.ts +117 -11
  387. package/lib/utils/smodel-util.d.ts.map +1 -1
  388. package/lib/utils/smodel-util.js +142 -37
  389. package/lib/utils/smodel-util.js.map +1 -1
  390. package/lib/utils/viewpoint-util.d.ts +3 -3
  391. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  392. package/lib/utils/viewpoint-util.js +19 -3
  393. package/lib/utils/viewpoint-util.js.map +1 -1
  394. package/lib/views/base-view-module.d.ts.map +1 -1
  395. package/lib/views/base-view-module.js +21 -19
  396. package/lib/views/base-view-module.js.map +1 -1
  397. package/lib/views/compartments.js +2 -2
  398. package/lib/views/compartments.js.map +1 -1
  399. package/lib/views/glsp-edge-view.d.ts +1 -1
  400. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  401. package/lib/views/glsp-edge-view.js +1 -1
  402. package/lib/views/glsp-edge-view.js.map +1 -1
  403. package/lib/views/index.js +6 -2
  404. package/lib/views/index.js.map +1 -1
  405. package/lib/views/issue-marker-view.d.ts.map +1 -1
  406. package/lib/views/issue-marker-view.js +3 -3
  407. package/lib/views/issue-marker-view.js.map +1 -1
  408. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  409. package/lib/views/rounded-corner-view.js +2 -2
  410. package/lib/views/rounded-corner-view.js.map +1 -1
  411. package/package.json +8 -18
  412. package/src/base/action-dispatcher.ts +26 -16
  413. package/src/base/actions/focus-change-action.ts +25 -8
  414. package/src/base/actions/sprotty-actions.ts +26 -0
  415. package/src/base/auto-complete/auto-complete-actions.ts +7 -5
  416. package/src/base/auto-complete/auto-complete-widget.ts +15 -13
  417. package/src/base/command-stack.ts +7 -6
  418. package/src/base/container-modules.ts +4 -3
  419. package/src/base/di.config.ts +4 -5
  420. package/src/base/drag-aware-mouse-listener.ts +4 -4
  421. package/src/base/editor-context-service.ts +38 -16
  422. package/src/base/focus-tracker.ts +5 -4
  423. package/src/base/model/model-registry.ts +2 -2
  424. package/src/base/model/update-model-command.ts +9 -10
  425. package/src/base/model-initialization-constraint.ts +9 -11
  426. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  427. package/src/base/source-uri-aware.ts +5 -4
  428. package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
  429. package/src/base/tool-manager/tool-actions.ts +37 -0
  430. package/src/base/types.ts +31 -24
  431. package/src/base/view/view-registry.ts +2 -2
  432. package/src/features/change-bounds/model.ts +5 -5
  433. package/src/features/change-bounds/movement-restrictor.ts +74 -44
  434. package/src/features/change-bounds/snap.spec.ts +89 -0
  435. package/src/features/change-bounds/snap.ts +86 -3
  436. package/src/features/command-palette/di.config.ts +5 -7
  437. package/src/features/command-palette/server-command-palette-provider.ts +9 -8
  438. package/src/features/context-menu/delete-element-context-menu.ts +6 -6
  439. package/src/features/context-menu/di.config.ts +3 -2
  440. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +45 -17
  441. package/src/features/context-menu/server-context-menu-provider.ts +7 -6
  442. package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
  443. package/src/features/copy-paste/copy-paste-handler.ts +6 -6
  444. package/src/features/copy-paste/di.config.ts +7 -15
  445. package/src/features/decoration/decoration-placer.ts +4 -4
  446. package/src/features/decoration/di.config.ts +3 -5
  447. package/src/features/edit-label/di.config.ts +4 -5
  448. package/src/features/edit-label/edit-label-tool.ts +1 -2
  449. package/src/features/edit-label/edit-label-validator.ts +6 -10
  450. package/src/features/hints/di.config.ts +3 -3
  451. package/src/features/hints/type-hints.ts +33 -18
  452. package/src/features/hover/di.config.ts +8 -2
  453. package/src/features/hover/hover.ts +53 -11
  454. package/src/features/layout/di.config.ts +11 -7
  455. package/src/features/layout/freeform-layout.ts +6 -15
  456. package/src/features/layout/hbox-layout.ts +256 -0
  457. package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +89 -65
  458. package/src/features/layout/layout-elements-action.ts +486 -0
  459. package/src/features/layout/vbox-layout.ts +20 -20
  460. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
  461. package/src/features/mouse-tool/di.config.ts +3 -4
  462. package/src/features/mouse-tool/mouse-tool.ts +18 -59
  463. package/src/features/navigation/navigation-action-handler.ts +76 -42
  464. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
  465. package/src/features/navigation/navigation-target-resolver.ts +9 -14
  466. package/src/features/reconnect/model.ts +2 -2
  467. package/src/features/save/di.config.ts +2 -3
  468. package/src/features/save/save-keylistener.ts +3 -3
  469. package/src/features/select/di.config.ts +6 -8
  470. package/src/features/select/select-feedback-action.ts +18 -46
  471. package/src/features/select/select-mouse-listener.ts +1 -2
  472. package/src/features/select/selection-service.spec.ts +12 -9
  473. package/src/features/select/selection-service.ts +52 -60
  474. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
  475. package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
  476. package/src/features/tool-feedback/css-feedback.ts +40 -37
  477. package/src/features/tool-feedback/di.config.ts +4 -5
  478. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -88
  479. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  480. package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
  481. package/src/features/tool-feedback/model.ts +1 -3
  482. package/src/features/tool-feedback/view.tsx +3 -3
  483. package/src/features/tool-palette/di.config.ts +3 -2
  484. package/src/features/tool-palette/tool-palette.ts +35 -19
  485. package/src/features/tools/base-glsp-tool.ts +11 -11
  486. package/src/features/tools/change-bounds-tool.ts +37 -67
  487. package/src/features/tools/delete-tool.ts +9 -9
  488. package/src/features/tools/di.config.ts +23 -12
  489. package/src/features/tools/edge-creation-tool.ts +21 -12
  490. package/src/features/tools/edge-edit-tool.ts +25 -21
  491. package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
  492. package/src/features/tools/marquee-behavior.ts +2 -2
  493. package/src/features/tools/marquee-mouse-tool.ts +13 -14
  494. package/src/features/tools/marquee-tool.ts +3 -3
  495. package/src/features/tools/model.ts +4 -3
  496. package/src/features/tools/node-creation-tool.ts +8 -8
  497. package/src/features/tools/view.tsx +2 -3
  498. package/src/features/validation/di.config.ts +13 -11
  499. package/src/features/validation/marker-navigator.spec.ts +4 -2
  500. package/src/features/validation/marker-navigator.ts +67 -82
  501. package/src/features/validation/validate.ts +57 -91
  502. package/src/features/viewport/di.config.ts +1 -2
  503. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  504. package/src/index.ts +9 -9
  505. package/src/lib/model.ts +4 -4
  506. package/src/model-source/glsp-diagram-server.ts +15 -15
  507. package/src/sprotty-reexport.ts +283 -0
  508. package/src/utils/layout-utils.ts +9 -29
  509. package/src/utils/smodel-util.ts +139 -43
  510. package/src/utils/viewpoint-util.ts +5 -14
  511. package/src/views/base-view-module.ts +5 -1
  512. package/src/views/compartments.tsx +1 -1
  513. package/src/views/glsp-edge-view.tsx +4 -4
  514. package/src/views/issue-marker-view.tsx +2 -2
  515. package/src/views/rounded-corner-view.tsx +2 -3
  516. package/lib/features/layout/layout-commands.d.ts +0 -153
  517. package/lib/features/layout/layout-commands.d.ts.map +0 -1
  518. package/lib/features/layout/layout-commands.js +0 -412
  519. package/lib/features/layout/layout-commands.js.map +0 -1
  520. package/lib/features/layout/layout-commands.spec.d.ts +0 -3
  521. package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
  522. package/lib/features/layout/layout-commands.spec.js.map +0 -1
  523. package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
  524. package/lib/features/tool-palette/palette-item.js.map +0 -1
  525. package/lib/protocol-reexport.d.ts +0 -45
  526. package/lib/protocol-reexport.d.ts.map +0 -1
  527. package/lib/protocol-reexport.js +0 -75
  528. package/lib/protocol-reexport.js.map +0 -1
  529. package/src/features/layout/layout-commands.ts +0 -424
  530. package/src/features/tool-palette/palette-item.ts +0 -38
  531. 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,10 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, isAction } from '@eclipse-glsp/protocol';
17
16
  import { injectable, multiInject, optional } from 'inversify';
18
- import { On, VNode, VNodeData } from 'snabbdom';
19
- import { MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from 'sprotty';
17
+ import { MouseListener, MouseTool, SModelElement, SModelRoot } from 'sprotty';
18
+ import { TYPES } from '../../base/types';
20
19
  import { getRank } from '../rank/model';
21
20
 
22
21
  export interface IMouseTool {
@@ -24,48 +23,36 @@ export interface IMouseTool {
24
23
  deregister(mouseListener: MouseListener): void;
25
24
  }
26
25
 
26
+ /**
27
+ * Custom helper type to declare the explicit mouse listener methods
28
+ * of {@link MouseListener} i.e. omitting the `decorate` method.
29
+ */
30
+ type MouseListenerMethods = keyof Omit<MouseListener, 'decorate'>;
31
+
27
32
  @injectable()
28
33
  export class RankingMouseTool extends MouseTool implements IMouseTool {
29
34
  protected rankedMouseListeners: Map<number, MouseListener[]>;
30
35
 
31
- constructor(@multiInject(TYPES.MouseListener) @optional() protected mouseListeners: MouseListener[] = []) {
36
+ constructor(@multiInject(TYPES.MouseListener) @optional() protected override mouseListeners: MouseListener[] = []) {
32
37
  super(mouseListeners);
33
38
  this.rankedMouseListeners = groupBy(mouseListeners, listener => getRank(listener));
34
39
  }
35
40
 
36
- register(mouseListener: MouseListener): void {
41
+ override register(mouseListener: MouseListener): void {
37
42
  super.register(mouseListener);
38
43
  this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
39
44
  }
40
45
 
41
- deregister(mouseListener: MouseListener): void {
46
+ override deregister(mouseListener: MouseListener): void {
42
47
  super.deregister(mouseListener);
43
48
  this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
44
49
  }
45
50
 
46
- decorate(vnode: VNode, element: SModelElement): VNode {
47
- // we need to overwrite the existing event handlers registered by the original mouse tool
48
- if (element instanceof SModelRoot) {
49
- overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this, element), element);
50
- overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this, element), element);
51
- overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this, element), element);
52
- overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this, element), element);
53
- overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this, element), element);
54
- overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this, element), element);
55
- overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this, element), element);
56
- overwriteOn(vnode, 'wheel', this.wheel.bind(this, element), element);
57
- overwriteOn(vnode, 'contextmenu', this.contextMenu.bind(this, element), element);
58
- overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this, element), element);
59
- }
60
- vnode = this.mouseListeners.reduce((n: VNode, listener: MouseListener) => listener.decorate(n, element), vnode);
61
- return vnode;
62
- }
63
-
64
51
  contextMenu(model: SModelRoot, event: MouseEvent): void {
65
52
  event.preventDefault();
66
53
  }
67
54
 
68
- protected handleEvent<K extends keyof MouseListener>(methodName: K, model: SModelRoot, event: MouseEvent): void {
55
+ protected override handleEvent<K extends MouseListenerMethods>(methodName: K, model: SModelRoot, event: MouseEvent): void {
69
56
  this.focusOnMouseEvent(methodName, model);
70
57
  const element = this.getTargetElement(model, event);
71
58
  if (!element) {
@@ -74,7 +61,7 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
74
61
  this.notifyListenersByRank(element, methodName, model, event);
75
62
  }
76
63
 
77
- async notifyListenersByRank<K extends keyof MouseListener>(
64
+ async notifyListenersByRank<K extends MouseListenerMethods>(
78
65
  element: SModelElement,
79
66
  methodName: K,
80
67
  model: SModelRoot,
@@ -85,25 +72,18 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
85
72
  }
86
73
  }
87
74
 
88
- async dispatchActions<K extends keyof MouseListener>(
75
+ async dispatchActions<K extends MouseListenerMethods>(
89
76
  mouseListeners: MouseListener[],
90
77
  methodName: K,
91
78
  element: SModelElement,
92
79
  event: MouseEvent
93
80
  ): Promise<void> {
94
- const actions = mouseListeners
95
- .map(listener => listener[methodName].apply(listener, [element, event]))
96
- .reduce((a, b) => a.concat(b));
81
+ const actions = mouseListeners.map(listener => listener[methodName](element, event as WheelEvent)).reduce((a, b) => a.concat(b));
97
82
  if (actions.length > 0) {
98
83
  event.preventDefault();
99
84
  for (const actionOrPromise of actions) {
100
- if (isAction(actionOrPromise)) {
101
- await this.actionDispatcher.dispatch(actionOrPromise);
102
- } else {
103
- actionOrPromise.then((action: Action) => {
104
- this.actionDispatcher.dispatch(action);
105
- });
106
- }
85
+ const action = await actionOrPromise;
86
+ await this.actionDispatcher.dispatch(action);
107
87
  }
108
88
  }
109
89
  }
@@ -124,24 +104,3 @@ function groupBy<K, T>(array: Array<T>, keyFunction: (x: T) => K): Map<K, T[]> {
124
104
  }, new Map<K, T[]>());
125
105
  return new Map<K, T[]>([...unsortedMap.entries()].sort());
126
106
  }
127
-
128
- function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement, _event: Event) => void, element: SModelElement): void {
129
- const val = getOn(vnode);
130
- // ignore any previous val[event] registrations
131
- (val as any)[event] = [listener, element];
132
- }
133
-
134
- function getOn(vnode: VNode): On {
135
- const data = getData(vnode);
136
- if (!data.on) {
137
- data.on = {};
138
- }
139
- return data.on;
140
- }
141
-
142
- function getData(vnode: VNode): VNodeData {
143
- if (!vnode.data) {
144
- vnode.data = {};
145
- }
146
- return vnode.data;
147
- }
@@ -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,13 +27,13 @@ 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
 
39
34
  async resolve(navigationTarget: NavigationTarget): Promise<SetResolvedNavigationTargetAction | undefined> {
40
35
  const contextService = await this.editorContextService();
41
- const sourceUri = await contextService.getSourceUri();
36
+ const sourceUri = contextService.sourceUri;
42
37
  return this.resolveWithSourceUri(sourceUri, navigationTarget);
43
38
  }
44
39
 
@@ -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
  /**