@eclipse-glsp/client 1.1.0-next.698b9de.254 → 1.1.0-next.69a77b0.259

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 (519) hide show
  1. package/lib/base/action-dispatcher.d.ts.map +1 -1
  2. package/lib/base/action-dispatcher.js +5 -3
  3. package/lib/base/action-dispatcher.js.map +1 -1
  4. package/lib/base/actions/focus-change-action.js +1 -1
  5. package/lib/base/actions/focus-change-action.js.map +1 -1
  6. package/lib/base/auto-complete/auto-complete-actions.js +1 -1
  7. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  8. package/lib/base/auto-complete/validation-decorator.js +1 -1
  9. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  10. package/lib/base/command-stack.d.ts +17 -2
  11. package/lib/base/command-stack.d.ts.map +1 -1
  12. package/lib/base/command-stack.js +43 -3
  13. package/lib/base/command-stack.js.map +1 -1
  14. package/lib/base/di.config.d.ts.map +1 -1
  15. package/lib/base/di.config.js +21 -3
  16. package/lib/base/di.config.js.map +1 -1
  17. package/lib/base/drag-aware-mouse-listener.d.ts +2 -2
  18. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  19. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  20. package/lib/base/editor-context-service.d.ts +10 -7
  21. package/lib/base/editor-context-service.d.ts.map +1 -1
  22. package/lib/base/editor-context-service.js +27 -10
  23. package/lib/base/editor-context-service.js.map +1 -1
  24. package/lib/{features/tool-feedback → base/feedback}/css-feedback.d.ts +1 -1
  25. package/lib/base/feedback/css-feedback.d.ts.map +1 -0
  26. package/lib/{features/tool-feedback → base/feedback}/css-feedback.js +5 -6
  27. package/lib/base/feedback/css-feedback.js.map +1 -0
  28. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.d.ts +11 -9
  29. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -0
  30. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.js +26 -20
  31. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -0
  32. package/lib/{features/tool-feedback/model.d.ts → base/feedback/feedback-command.d.ts} +1 -1
  33. package/lib/base/feedback/feedback-command.d.ts.map +1 -0
  34. package/lib/{features/tool-feedback/model.js → base/feedback/feedback-command.js} +1 -1
  35. package/lib/base/feedback/feedback-command.js.map +1 -0
  36. package/lib/base/{model → feedback}/update-model-command.d.ts +3 -15
  37. package/lib/base/feedback/update-model-command.d.ts.map +1 -0
  38. package/lib/base/{model → feedback}/update-model-command.js +3 -27
  39. package/lib/base/feedback/update-model-command.js.map +1 -0
  40. package/lib/base/focus-tracker.js +2 -3
  41. package/lib/base/focus-tracker.js.map +1 -1
  42. package/lib/base/model/model-registry.js +2 -3
  43. package/lib/base/model/model-registry.js.map +1 -1
  44. package/lib/base/model-initialization-constraint.js +4 -6
  45. package/lib/base/model-initialization-constraint.js.map +1 -1
  46. package/lib/base/ranked.d.ts +34 -0
  47. package/lib/base/ranked.d.ts.map +1 -0
  48. package/lib/base/ranked.js +38 -0
  49. package/lib/base/ranked.js.map +1 -0
  50. package/lib/base/selection-clearing-mouse-listener.js +2 -3
  51. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  52. package/lib/{features/select → base}/selection-service.d.ts +34 -13
  53. package/lib/base/selection-service.d.ts.map +1 -0
  54. package/lib/{features/select → base}/selection-service.js +73 -29
  55. package/lib/base/selection-service.js.map +1 -0
  56. package/lib/base/selection-service.spec.d.ts +2 -0
  57. package/lib/base/selection-service.spec.d.ts.map +1 -0
  58. package/lib/base/selection-service.spec.js +281 -0
  59. package/lib/base/selection-service.spec.js.map +1 -0
  60. package/lib/base/tool-manager/glsp-tool-manager.d.ts +3 -3
  61. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  62. package/lib/base/tool-manager/glsp-tool-manager.js +5 -6
  63. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  64. package/lib/base/view/key-tool.d.ts +5 -0
  65. package/lib/base/view/key-tool.d.ts.map +1 -0
  66. package/lib/base/view/key-tool.js +36 -0
  67. package/lib/base/view/key-tool.js.map +1 -0
  68. package/lib/base/view/mouse-tool.d.ts +19 -0
  69. package/lib/base/view/mouse-tool.d.ts.map +1 -0
  70. package/lib/{features/mouse-tool → base/view}/mouse-tool.js +14 -11
  71. package/lib/base/view/mouse-tool.js.map +1 -0
  72. package/lib/base/view/view-registry.js +2 -3
  73. package/lib/base/view/view-registry.js.map +1 -1
  74. package/lib/{base/container-modules.d.ts → container-modules.d.ts} +2 -2
  75. package/lib/container-modules.d.ts.map +1 -0
  76. package/lib/{base/container-modules.js → container-modules.js} +49 -41
  77. package/lib/container-modules.js.map +1 -0
  78. package/lib/features/accessibility/move-zoom/move-handler.js +6 -8
  79. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
  80. package/lib/features/accessibility/move-zoom/zoom-handler.js +6 -8
  81. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -1
  82. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +4 -5
  83. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
  84. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +1 -1
  85. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -1
  86. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +6 -8
  87. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
  88. package/lib/features/accessibility/search/search-palette.js +3 -4
  89. package/lib/features/accessibility/search/search-palette.js.map +1 -1
  90. package/lib/features/accessibility/search/search-tool.js +2 -3
  91. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  92. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +2 -3
  93. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -1
  94. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +1 -1
  95. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
  96. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +5 -6
  97. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  98. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +1 -1
  99. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -1
  100. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +5 -6
  101. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
  102. package/lib/features/autocomplete-palette/base-autocomplete-palette.js +1 -1
  103. package/lib/features/autocomplete-palette/base-autocomplete-palette.js.map +1 -1
  104. package/lib/features/bounds/freeform-layout.js +2 -3
  105. package/lib/features/bounds/freeform-layout.js.map +1 -1
  106. package/lib/features/bounds/freeform-layout.spec.d.ts +3 -0
  107. package/lib/features/bounds/freeform-layout.spec.d.ts.map +1 -0
  108. package/lib/features/bounds/freeform-layout.spec.js +201 -0
  109. package/lib/features/bounds/freeform-layout.spec.js.map +1 -0
  110. package/lib/features/bounds/glsp-hidden-bounds-updater.js +2 -3
  111. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  112. package/lib/features/bounds/hbox-layout.js +2 -3
  113. package/lib/features/bounds/hbox-layout.js.map +1 -1
  114. package/lib/features/bounds/hbox-layout.spec.d.ts +3 -0
  115. package/lib/features/bounds/hbox-layout.spec.d.ts.map +1 -0
  116. package/lib/features/bounds/hbox-layout.spec.js +160 -0
  117. package/lib/features/bounds/hbox-layout.spec.js.map +1 -0
  118. package/lib/features/bounds/layouter-test-util.spec.d.ts +32 -0
  119. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +1 -0
  120. package/lib/features/bounds/layouter-test-util.spec.js +96 -0
  121. package/lib/features/bounds/layouter-test-util.spec.js.map +1 -0
  122. package/lib/features/bounds/layouter.js +2 -3
  123. package/lib/features/bounds/layouter.js.map +1 -1
  124. package/lib/features/bounds/vbox-layout.js +2 -3
  125. package/lib/features/bounds/vbox-layout.js.map +1 -1
  126. package/lib/features/bounds/vbox-layout.spec.d.ts +3 -0
  127. package/lib/features/bounds/vbox-layout.spec.d.ts.map +1 -0
  128. package/lib/features/bounds/vbox-layout.spec.js +160 -0
  129. package/lib/features/bounds/vbox-layout.spec.js.map +1 -0
  130. package/lib/features/change-bounds/model.js +2 -2
  131. package/lib/features/change-bounds/model.js.map +1 -1
  132. package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
  133. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  134. package/lib/features/change-bounds/movement-restrictor.js +3 -4
  135. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  136. package/lib/features/change-bounds/snap.js +2 -3
  137. package/lib/features/change-bounds/snap.js.map +1 -1
  138. package/lib/features/{rank/model.d.ts → change-bounds/snap.spec.d.ts} +3 -8
  139. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  140. package/lib/features/change-bounds/snap.spec.js +82 -0
  141. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  142. package/lib/features/command-palette/command-palette-tool.js +2 -3
  143. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  144. package/lib/features/command-palette/server-command-palette-provider.js +3 -4
  145. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  146. package/lib/features/context-menu/delete-element-context-menu.js +2 -3
  147. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  148. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +1 -1
  149. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  150. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +4 -5
  151. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  152. package/lib/features/context-menu/server-context-menu-provider.js +3 -4
  153. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  154. package/lib/features/copy-paste/copy-paste-context-menu.js +6 -8
  155. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  156. package/lib/features/copy-paste/copy-paste-handler.js +4 -6
  157. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  158. package/lib/features/decoration/decoration-placer.js +2 -3
  159. package/lib/features/decoration/decoration-placer.js.map +1 -1
  160. package/lib/features/edit-label/edit-label-tool.d.ts +0 -3
  161. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  162. package/lib/features/edit-label/edit-label-tool.js +3 -11
  163. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  164. package/lib/features/edit-label/edit-label-validator.js +5 -7
  165. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  166. package/lib/features/export/glsp-svg-exporter.js +2 -3
  167. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  168. package/lib/features/hints/type-hints.d.ts +2 -2
  169. package/lib/features/hints/type-hints.d.ts.map +1 -1
  170. package/lib/features/hints/type-hints.js +9 -11
  171. package/lib/features/hints/type-hints.js.map +1 -1
  172. package/lib/features/hover/hover.d.ts.map +1 -1
  173. package/lib/features/hover/hover.js +3 -4
  174. package/lib/features/hover/hover.js.map +1 -1
  175. package/lib/features/layout/di.config.js +1 -1
  176. package/lib/features/layout/di.config.js.map +1 -1
  177. package/lib/features/layout/layout-elements-action.d.ts +1 -1
  178. package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
  179. package/lib/features/layout/layout-elements-action.js +14 -17
  180. package/lib/features/layout/layout-elements-action.js.map +1 -1
  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-elements-action.spec.js +321 -0
  184. package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
  185. package/lib/features/navigation/navigation-action-handler.js +5 -6
  186. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  187. package/lib/features/navigation/navigation-target-resolver.js +2 -3
  188. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  189. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +3 -0
  190. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -0
  191. package/lib/features/navigation/navigation-target-resolver.spec.js +53 -0
  192. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -0
  193. package/lib/features/routing/di.config.d.ts +22 -0
  194. package/lib/features/routing/di.config.d.ts.map +1 -0
  195. package/lib/features/routing/di.config.js +57 -0
  196. package/lib/features/routing/di.config.js.map +1 -0
  197. package/lib/features/routing/glsp-manhattan-edge-router.d.ts.map +1 -0
  198. package/lib/features/routing/glsp-manhattan-edge-router.js.map +1 -0
  199. package/lib/features/select/di.config.d.ts.map +1 -1
  200. package/lib/features/select/di.config.js +3 -5
  201. package/lib/features/select/di.config.js.map +1 -1
  202. package/lib/features/select/select-feedback-command.d.ts +12 -0
  203. package/lib/features/select/select-feedback-command.d.ts.map +1 -0
  204. package/lib/features/select/{select-feedback-action.js → select-feedback-command.js} +6 -30
  205. package/lib/features/select/select-feedback-command.js.map +1 -0
  206. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  207. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  208. package/lib/features/select/select-mouse-listener.js +2 -2
  209. package/lib/features/select/select-mouse-listener.js.map +1 -1
  210. package/lib/features/source-model-watcher/source-model-changed-action-handler.js +5 -7
  211. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  212. package/lib/features/svg-metadata/metadata-placer.js +2 -3
  213. package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
  214. package/lib/features/tool-palette/tool-palette.d.ts +4 -4
  215. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  216. package/lib/features/tool-palette/tool-palette.js +12 -13
  217. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  218. package/lib/features/tools/base-glsp-creation-tool.d.ts +10 -0
  219. package/lib/features/tools/base-glsp-creation-tool.d.ts.map +1 -0
  220. package/lib/features/tools/base-glsp-creation-tool.js +45 -0
  221. package/lib/features/tools/base-glsp-creation-tool.js.map +1 -0
  222. package/lib/features/tools/base-glsp-tool.d.ts +26 -8
  223. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  224. package/lib/features/tools/base-glsp-tool.js +34 -11
  225. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  226. package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.d.ts +12 -5
  227. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -0
  228. package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.js +45 -27
  229. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -0
  230. package/lib/features/tools/{change-bounds-tool.d.ts → change-bounds/change-bounds-tool.d.ts} +13 -14
  231. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -0
  232. package/lib/features/tools/{change-bounds-tool.js → change-bounds/change-bounds-tool.js} +50 -35
  233. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -0
  234. package/lib/features/tools/change-bounds/di.config.d.ts +19 -0
  235. package/lib/features/tools/change-bounds/di.config.d.ts.map +1 -0
  236. package/lib/features/tools/change-bounds/di.config.js +32 -0
  237. package/lib/features/tools/change-bounds/di.config.js.map +1 -0
  238. package/lib/features/tools/change-bounds/view.d.ts +9 -0
  239. package/lib/features/tools/change-bounds/view.d.ts.map +1 -0
  240. package/lib/features/{tool-feedback → tools/change-bounds}/view.js +5 -21
  241. package/lib/features/tools/change-bounds/view.js.map +1 -0
  242. package/lib/features/tools/{delete-tool.d.ts → deletion/delete-tool.d.ts} +4 -9
  243. package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -0
  244. package/lib/features/tools/{delete-tool.js → deletion/delete-tool.js} +13 -29
  245. package/lib/features/tools/deletion/delete-tool.js.map +1 -0
  246. package/lib/features/{tool-feedback → tools/deletion}/di.config.d.ts +2 -2
  247. package/lib/features/tools/deletion/di.config.d.ts.map +1 -0
  248. package/lib/features/{mouse-tool → tools/deletion}/di.config.js +7 -7
  249. package/lib/features/tools/deletion/di.config.js.map +1 -0
  250. package/lib/features/{tool-feedback/creation-tool-feedback.d.ts → tools/edge-creation/dangling-edge-feedback.d.ts} +5 -10
  251. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts.map +1 -0
  252. package/lib/features/{tool-feedback/creation-tool-feedback.js → tools/edge-creation/dangling-edge-feedback.js} +25 -87
  253. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -0
  254. package/lib/features/tools/edge-creation/di.config.d.ts +19 -0
  255. package/lib/features/tools/edge-creation/di.config.d.ts.map +1 -0
  256. package/lib/features/tools/edge-creation/di.config.js +29 -0
  257. package/lib/features/tools/edge-creation/di.config.js.map +1 -0
  258. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +26 -0
  259. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -0
  260. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +74 -0
  261. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -0
  262. package/lib/features/tools/{edge-creation-tool.d.ts → edge-creation/edge-creation-tool.d.ts} +6 -11
  263. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -0
  264. package/lib/features/tools/{edge-creation-tool.js → edge-creation/edge-creation-tool.js} +29 -40
  265. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -0
  266. package/lib/features/tools/edge-creation/view.d.ts +10 -0
  267. package/lib/features/tools/edge-creation/view.d.ts.map +1 -0
  268. package/lib/features/tools/edge-creation/view.js +43 -0
  269. package/lib/features/tools/edge-creation/view.js.map +1 -0
  270. package/lib/features/{mouse-tool → tools/edge-edit}/di.config.d.ts +2 -2
  271. package/lib/features/tools/edge-edit/di.config.d.ts.map +1 -0
  272. package/lib/features/tools/edge-edit/di.config.js +35 -0
  273. package/lib/features/tools/edge-edit/di.config.js.map +1 -0
  274. package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.d.ts +14 -8
  275. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -0
  276. package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.js +42 -37
  277. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -0
  278. package/lib/features/tools/{edge-edit-tool.d.ts → edge-edit/edge-edit-tool.d.ts} +7 -9
  279. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -0
  280. package/lib/features/tools/{edge-edit-tool.js → edge-edit/edge-edit-tool.js} +28 -33
  281. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -0
  282. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +21 -0
  283. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -1
  284. package/lib/features/tools/enable-default-tools-on-focus-loss.js +9 -3
  285. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -1
  286. package/lib/features/tools/marquee-selection/di.config.d.ts +19 -0
  287. package/lib/features/tools/marquee-selection/di.config.d.ts.map +1 -0
  288. package/lib/features/tools/marquee-selection/di.config.js +34 -0
  289. package/lib/features/tools/marquee-selection/di.config.js.map +1 -0
  290. package/lib/features/tools/{marquee-behavior.d.ts → marquee-selection/marquee-behavior.d.ts} +10 -10
  291. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts.map +1 -0
  292. package/lib/features/tools/{marquee-behavior.js → marquee-selection/marquee-behavior.js} +2 -2
  293. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -0
  294. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts +17 -0
  295. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +1 -0
  296. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +165 -0
  297. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +1 -0
  298. package/lib/features/tools/{marquee-mouse-tool.d.ts → marquee-selection/marquee-mouse-tool.d.ts} +4 -6
  299. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -0
  300. package/lib/features/tools/{marquee-mouse-tool.js → marquee-selection/marquee-mouse-tool.js} +12 -22
  301. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -0
  302. package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.d.ts +2 -2
  303. package/lib/features/tools/marquee-selection/marquee-tool-feedback.d.ts.map +1 -0
  304. package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.js +8 -10
  305. package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -0
  306. package/lib/features/tools/marquee-selection/marquee-tool.d.ts +12 -0
  307. package/lib/features/tools/marquee-selection/marquee-tool.d.ts.map +1 -0
  308. package/lib/features/tools/{marquee-tool.js → marquee-selection/marquee-tool.js} +8 -20
  309. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -0
  310. package/lib/features/tools/{model.d.ts → marquee-selection/model.d.ts} +1 -1
  311. package/lib/features/tools/marquee-selection/model.d.ts.map +1 -0
  312. package/lib/features/tools/{model.js → marquee-selection/model.js} +2 -2
  313. package/lib/features/tools/marquee-selection/model.js.map +1 -0
  314. package/lib/features/tools/{view.d.ts → marquee-selection/view.d.ts} +1 -1
  315. package/lib/features/tools/marquee-selection/view.d.ts.map +1 -0
  316. package/lib/features/tools/{view.js → marquee-selection/view.js} +3 -4
  317. package/lib/features/tools/marquee-selection/view.js.map +1 -0
  318. package/lib/features/tools/node-creation/di.config.d.ts +19 -0
  319. package/lib/features/tools/node-creation/di.config.d.ts.map +1 -0
  320. package/lib/features/{rank/model.js → tools/node-creation/di.config.js} +12 -13
  321. package/lib/features/tools/node-creation/di.config.js.map +1 -0
  322. package/lib/features/tools/{node-creation-tool.d.ts → node-creation/node-creation-tool.d.ts} +7 -10
  323. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -0
  324. package/lib/features/tools/{node-creation-tool.js → node-creation/node-creation-tool.js} +17 -30
  325. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -0
  326. package/lib/features/validation/marker-navigator.d.ts +4 -3
  327. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  328. package/lib/features/validation/marker-navigator.js +16 -20
  329. package/lib/features/validation/marker-navigator.js.map +1 -1
  330. package/lib/features/validation/marker-navigator.spec.d.ts +3 -0
  331. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -0
  332. package/lib/features/validation/marker-navigator.spec.js +182 -0
  333. package/lib/features/validation/marker-navigator.spec.js.map +1 -0
  334. package/lib/features/validation/validate.d.ts +2 -2
  335. package/lib/features/validation/validate.d.ts.map +1 -1
  336. package/lib/features/validation/validate.js +12 -17
  337. package/lib/features/validation/validate.js.map +1 -1
  338. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -4
  339. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  340. package/lib/glsp-sprotty/index.d.ts +1 -1
  341. package/lib/glsp-sprotty/index.d.ts.map +1 -1
  342. package/lib/glsp-sprotty/index.js +26 -25
  343. package/lib/glsp-sprotty/index.js.map +1 -1
  344. package/lib/glsp-sprotty/types.d.ts +4 -8
  345. package/lib/glsp-sprotty/types.d.ts.map +1 -1
  346. package/lib/glsp-sprotty/types.js +1 -1
  347. package/lib/glsp-sprotty/types.js.map +1 -1
  348. package/lib/index.d.ts +36 -27
  349. package/lib/index.d.ts.map +1 -1
  350. package/lib/index.js +58 -46
  351. package/lib/index.js.map +1 -1
  352. package/lib/lib/model.js +1 -1
  353. package/lib/lib/model.js.map +1 -1
  354. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  355. package/lib/model-source/glsp-diagram-server.js +5 -3
  356. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  357. package/lib/utils/argument-utils.js +3 -3
  358. package/lib/utils/argument-utils.js.map +1 -1
  359. package/lib/utils/marker.js +1 -1
  360. package/lib/utils/marker.js.map +1 -1
  361. package/lib/utils/smodel-util.spec.d.ts +2 -0
  362. package/lib/utils/smodel-util.spec.d.ts.map +1 -0
  363. package/lib/utils/smodel-util.spec.js +184 -0
  364. package/lib/utils/smodel-util.spec.js.map +1 -0
  365. package/lib/utils/viewpoint-util.d.ts +20 -1
  366. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  367. package/lib/utils/viewpoint-util.js +30 -1
  368. package/lib/utils/viewpoint-util.js.map +1 -1
  369. package/lib/views/compartments.js +2 -3
  370. package/lib/views/compartments.js.map +1 -1
  371. package/lib/views/glsp-edge-view.js +2 -3
  372. package/lib/views/glsp-edge-view.js.map +1 -1
  373. package/lib/views/glsp-projection-view.js +2 -3
  374. package/lib/views/glsp-projection-view.js.map +1 -1
  375. package/lib/views/issue-marker-view.js +2 -3
  376. package/lib/views/issue-marker-view.js.map +1 -1
  377. package/lib/views/rounded-corner-view.js +2 -3
  378. package/lib/views/rounded-corner-view.js.map +1 -1
  379. package/package.json +3 -3
  380. package/src/base/action-dispatcher.ts +3 -1
  381. package/src/base/command-stack.ts +55 -3
  382. package/src/base/di.config.ts +34 -9
  383. package/src/base/drag-aware-mouse-listener.ts +2 -2
  384. package/src/base/editor-context-service.ts +28 -13
  385. package/src/{features/tool-feedback → base/feedback}/css-feedback.ts +1 -1
  386. package/src/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.ts +31 -23
  387. package/src/base/{model → feedback}/update-model-command.ts +3 -29
  388. package/src/base/ranked.ts +42 -0
  389. package/src/{features/select → base}/selection-service.spec.ts +51 -121
  390. package/src/{features/select → base}/selection-service.ts +82 -31
  391. package/src/base/tool-manager/glsp-tool-manager.ts +4 -4
  392. package/src/{features/rank/model.ts → base/view/key-tool.ts} +9 -13
  393. package/src/{features/mouse-tool → base/view}/mouse-tool.ts +14 -15
  394. package/src/{base/container-modules.ts → container-modules.ts} +33 -26
  395. package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +2 -2
  396. package/src/features/accessibility/search/search-palette.ts +1 -1
  397. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +2 -2
  398. package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +3 -3
  399. package/src/features/bounds/layouter-test-util.spec.ts +1 -1
  400. package/src/features/change-bounds/movement-restrictor.ts +1 -1
  401. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +2 -2
  402. package/src/features/copy-paste/copy-paste-context-menu.ts +1 -1
  403. package/src/features/edit-label/edit-label-tool.ts +4 -12
  404. package/src/features/hints/type-hints.ts +2 -2
  405. package/src/features/hover/hover.ts +2 -1
  406. package/src/features/layout/di.config.ts +1 -1
  407. package/src/features/layout/layout-elements-action.spec.ts +1 -3
  408. package/src/features/layout/layout-elements-action.ts +2 -2
  409. package/src/features/navigation/navigation-action-handler.ts +1 -1
  410. package/src/features/routing/di.config.ts +82 -0
  411. package/src/features/select/di.config.ts +2 -4
  412. package/src/features/select/{select-feedback-action.ts → select-feedback-command.ts} +2 -38
  413. package/src/features/select/select-mouse-listener.ts +2 -2
  414. package/src/features/source-model-watcher/source-model-changed-action-handler.ts +1 -1
  415. package/src/features/tool-palette/tool-palette.ts +12 -12
  416. package/src/features/tools/base-glsp-creation-tool.ts +40 -0
  417. package/src/features/tools/base-glsp-tool.ts +32 -10
  418. package/src/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.ts +52 -21
  419. package/src/features/tools/{change-bounds-tool.ts → change-bounds/change-bounds-tool.ts} +64 -35
  420. package/src/features/tools/change-bounds/di.config.ts +31 -0
  421. package/src/features/{tool-feedback → tools/change-bounds}/view.tsx +2 -14
  422. package/src/features/tools/{delete-tool.ts → deletion/delete-tool.ts} +8 -18
  423. package/src/features/{mouse-tool → tools/deletion}/di.config.ts +7 -7
  424. package/src/features/{tool-feedback/creation-tool-feedback.ts → tools/edge-creation/dangling-edge-feedback.ts} +18 -88
  425. package/src/features/tools/edge-creation/di.config.ts +28 -0
  426. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +89 -0
  427. package/src/features/tools/{edge-creation-tool.ts → edge-creation/edge-creation-tool.ts} +26 -43
  428. package/src/features/tools/edge-creation/view.tsx +33 -0
  429. package/src/features/tools/edge-edit/di.config.ts +41 -0
  430. package/src/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.ts +27 -15
  431. package/src/features/tools/{edge-edit-tool.ts → edge-edit/edge-edit-tool.ts} +29 -27
  432. package/src/features/tools/enable-default-tools-on-focus-loss.ts +11 -2
  433. package/src/features/tools/marquee-selection/di.config.ts +35 -0
  434. package/src/features/tools/{marquee-behavior.ts → marquee-selection/marquee-behavior.ts} +9 -9
  435. package/src/features/tools/{marquee-mouse-tool.ts → marquee-selection/marquee-mouse-tool.ts} +11 -17
  436. package/src/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.ts +1 -1
  437. package/src/features/tools/{marquee-tool.ts → marquee-selection/marquee-tool.ts} +5 -11
  438. package/{lib/features/tools/di.config.d.ts → src/features/tools/node-creation/di.config.ts} +10 -12
  439. package/src/features/tools/{node-creation-tool.ts → node-creation/node-creation-tool.ts} +14 -31
  440. package/src/features/validation/marker-navigator.ts +5 -5
  441. package/src/features/validation/validate.ts +2 -2
  442. package/src/features/viewport/glsp-scroll-mouse-listener.ts +1 -1
  443. package/src/glsp-sprotty/index.ts +1 -1
  444. package/src/glsp-sprotty/types.ts +2 -4
  445. package/src/index.ts +63 -49
  446. package/src/model-source/glsp-diagram-server.ts +7 -1
  447. package/src/utils/smodel-util.spec.ts +3 -3
  448. package/src/utils/viewpoint-util.ts +32 -0
  449. package/lib/base/container-modules.d.ts.map +0 -1
  450. package/lib/base/container-modules.js.map +0 -1
  451. package/lib/base/model/update-model-command.d.ts.map +0 -1
  452. package/lib/base/model/update-model-command.js.map +0 -1
  453. package/lib/features/mouse-tool/di.config.d.ts.map +0 -1
  454. package/lib/features/mouse-tool/di.config.js.map +0 -1
  455. package/lib/features/mouse-tool/mouse-tool.d.ts +0 -22
  456. package/lib/features/mouse-tool/mouse-tool.d.ts.map +0 -1
  457. package/lib/features/mouse-tool/mouse-tool.js.map +0 -1
  458. package/lib/features/rank/model.d.ts.map +0 -1
  459. package/lib/features/rank/model.js.map +0 -1
  460. package/lib/features/select/select-feedback-action.d.ts +0 -25
  461. package/lib/features/select/select-feedback-action.d.ts.map +0 -1
  462. package/lib/features/select/select-feedback-action.js.map +0 -1
  463. package/lib/features/select/selection-service.d.ts.map +0 -1
  464. package/lib/features/select/selection-service.js.map +0 -1
  465. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +0 -1
  466. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +0 -1
  467. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +0 -1
  468. package/lib/features/tool-feedback/creation-tool-feedback.js.map +0 -1
  469. package/lib/features/tool-feedback/css-feedback.d.ts.map +0 -1
  470. package/lib/features/tool-feedback/css-feedback.js.map +0 -1
  471. package/lib/features/tool-feedback/di.config.d.ts.map +0 -1
  472. package/lib/features/tool-feedback/di.config.js +0 -53
  473. package/lib/features/tool-feedback/di.config.js.map +0 -1
  474. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +0 -1
  475. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +0 -1
  476. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +0 -1
  477. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +0 -1
  478. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +0 -1
  479. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +0 -1
  480. package/lib/features/tool-feedback/model.d.ts.map +0 -1
  481. package/lib/features/tool-feedback/model.js.map +0 -1
  482. package/lib/features/tool-feedback/view.d.ts +0 -16
  483. package/lib/features/tool-feedback/view.d.ts.map +0 -1
  484. package/lib/features/tool-feedback/view.js.map +0 -1
  485. package/lib/features/tools/change-bounds-tool.d.ts.map +0 -1
  486. package/lib/features/tools/change-bounds-tool.js.map +0 -1
  487. package/lib/features/tools/delete-tool.d.ts.map +0 -1
  488. package/lib/features/tools/delete-tool.js.map +0 -1
  489. package/lib/features/tools/di.config.d.ts.map +0 -1
  490. package/lib/features/tools/di.config.js +0 -66
  491. package/lib/features/tools/di.config.js.map +0 -1
  492. package/lib/features/tools/edge-creation-tool.d.ts.map +0 -1
  493. package/lib/features/tools/edge-creation-tool.js.map +0 -1
  494. package/lib/features/tools/edge-edit-tool.d.ts.map +0 -1
  495. package/lib/features/tools/edge-edit-tool.js.map +0 -1
  496. package/lib/features/tools/glsp-manhattan-edge-router.d.ts.map +0 -1
  497. package/lib/features/tools/glsp-manhattan-edge-router.js.map +0 -1
  498. package/lib/features/tools/marquee-behavior.d.ts.map +0 -1
  499. package/lib/features/tools/marquee-behavior.js.map +0 -1
  500. package/lib/features/tools/marquee-mouse-tool.d.ts.map +0 -1
  501. package/lib/features/tools/marquee-mouse-tool.js.map +0 -1
  502. package/lib/features/tools/marquee-tool.d.ts +0 -14
  503. package/lib/features/tools/marquee-tool.d.ts.map +0 -1
  504. package/lib/features/tools/marquee-tool.js.map +0 -1
  505. package/lib/features/tools/model.d.ts.map +0 -1
  506. package/lib/features/tools/model.js.map +0 -1
  507. package/lib/features/tools/node-creation-tool.d.ts.map +0 -1
  508. package/lib/features/tools/node-creation-tool.js.map +0 -1
  509. package/lib/features/tools/view.d.ts.map +0 -1
  510. package/lib/features/tools/view.js.map +0 -1
  511. package/src/features/tool-feedback/di.config.ts +0 -65
  512. package/src/features/tools/di.config.ts +0 -77
  513. /package/lib/features/{tools → routing}/glsp-manhattan-edge-router.d.ts +0 -0
  514. /package/lib/features/{tools → routing}/glsp-manhattan-edge-router.js +0 -0
  515. /package/src/{features/tool-feedback/model.ts → base/feedback/feedback-command.ts} +0 -0
  516. /package/src/features/{tools → routing}/glsp-manhattan-edge-router.ts +0 -0
  517. /package/src/features/tools/{marquee-behavior.spec.ts → marquee-selection/marquee-behavior.spec.ts} +0 -0
  518. /package/src/features/tools/{model.ts → marquee-selection/model.ts} +0 -0
  519. /package/src/features/tools/{view.tsx → marquee-selection/view.tsx} +0 -0
@@ -13,11 +13,15 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable, multiInject, optional } from 'inversify';
16
+ import { inject, injectable, multiInject, optional, postConstruct, preDestroy } from 'inversify';
17
17
  import {
18
18
  Action,
19
19
  Command,
20
20
  CommandExecutionContext,
21
+ Disposable,
22
+ DisposableCollection,
23
+ Emitter,
24
+ Event,
21
25
  ILogger,
22
26
  SChildElement,
23
27
  SModelElement,
@@ -28,36 +32,57 @@ import {
28
32
  SprottySelectAllCommand,
29
33
  SprottySelectCommand,
30
34
  TYPES,
31
- distinctAdd,
35
+ hasArrayProp,
32
36
  isSelectable,
33
- pluck,
34
- remove
37
+ pluck
35
38
  } from '~glsp-sprotty';
36
- import { SModelRootListener } from '../../base/model/update-model-command';
37
- import { getElements, getMatchingElements } from '../../utils/smodel-util';
38
- import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
39
- import { SelectFeedbackAction } from './select-feedback-action';
39
+ import { getElements, getMatchingElements } from '../utils/smodel-util';
40
+ import { ISModelRootListener } from './command-stack';
41
+ import { IFeedbackActionDispatcher } from './feedback/feedback-action-dispatcher';
40
42
 
41
- export interface SelectionListener {
42
- selectionChanged(root: Readonly<SModelRoot>, selectedElements: string[]): void;
43
+ export interface ISelectionListener {
44
+ selectionChanged(root: Readonly<SModelRoot>, selectedElements: string[], deselectedElements?: string[]): void;
45
+ }
46
+
47
+ export interface SelectionChange {
48
+ root: Readonly<SModelRoot>;
49
+ selectedElements: string[];
50
+ deselectedElements: string[];
43
51
  }
44
52
 
45
53
  @injectable()
46
- export class SelectionService implements SModelRootListener {
47
- private root: Readonly<SModelRoot>;
48
- private selectedElementIDs: Set<string> = new Set();
54
+ export class SelectionService implements ISModelRootListener, Disposable {
55
+ protected root: Readonly<SModelRoot>;
56
+ protected selectedElementIDs: Set<string> = new Set();
57
+
58
+ @inject(TYPES.IFeedbackActionDispatcher)
59
+ protected feedbackDispatcher: IFeedbackActionDispatcher;
60
+
61
+ @inject(TYPES.ILogger)
62
+ protected logger: ILogger;
63
+
64
+ @multiInject(TYPES.ISelectionListener)
65
+ @optional()
66
+ protected selectionListeners: ISelectionListener[] = [];
49
67
 
50
- @inject(TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
51
- @inject(TYPES.ILogger) protected logger: ILogger;
68
+ protected toDispose = new DisposableCollection();
52
69
 
53
- constructor(@multiInject(TYPES.SelectionListener) @optional() protected selectionListeners: SelectionListener[] = []) {}
70
+ @postConstruct()
71
+ protected initialize(): void {
72
+ this.toDispose.push(this.onSelectionChangedEmitter);
73
+ this.selectionListeners.forEach(listener =>
74
+ this.onSelectionChanged(change => listener.selectionChanged(change.root, change.selectedElements, change.deselectedElements))
75
+ );
76
+ }
54
77
 
55
- register(selectionListener: SelectionListener): void {
56
- distinctAdd(this.selectionListeners, selectionListener);
78
+ @preDestroy()
79
+ dispose(): void {
80
+ this.toDispose.dispose();
57
81
  }
58
82
 
59
- deregister(selectionListener: SelectionListener): void {
60
- remove(this.selectionListeners, selectionListener);
83
+ protected onSelectionChangedEmitter = new Emitter<SelectionChange>();
84
+ get onSelectionChanged(): Event<SelectionChange> {
85
+ return this.onSelectionChangedEmitter.event;
61
86
  }
62
87
 
63
88
  modelRootChanged(root: Readonly<SModelRoot>): void {
@@ -115,7 +140,7 @@ export class SelectionService implements SModelRootListener {
115
140
  const rootChanged = prevRoot !== root;
116
141
  if (rootChanged || selectionChanged) {
117
142
  // notify listeners after the feedback action
118
- this.notifyListeners(this.root, this.selectedElementIDs);
143
+ this.notifyListeners(this.root, this.selectedElementIDs, deselectedElementIDs);
119
144
  }
120
145
  }
121
146
 
@@ -123,8 +148,12 @@ export class SelectionService implements SModelRootListener {
123
148
  this.feedbackDispatcher.registerFeedback(this, actions);
124
149
  }
125
150
 
126
- notifyListeners(root: SModelRoot, selectedElementIDs: Set<string>): void {
127
- this.selectionListeners.forEach(listener => listener.selectionChanged(root, Array.from(selectedElementIDs)));
151
+ notifyListeners(root: SModelRoot, selectedElementIDs: Set<string>, deselectedElementIDs: Set<string>): void {
152
+ this.onSelectionChangedEmitter.fire({
153
+ root,
154
+ selectedElements: Array.from(selectedElementIDs),
155
+ deselectedElements: Array.from(deselectedElementIDs)
156
+ });
128
157
  }
129
158
 
130
159
  getModelRoot(): Readonly<SModelRoot> {
@@ -168,10 +197,7 @@ export class SelectCommand extends Command {
168
197
  protected selected: SModelElement[] = [];
169
198
  protected deselected: SModelElement[] = [];
170
199
 
171
- constructor(
172
- @inject(TYPES.Action) public action: SelectAction,
173
- @inject(TYPES.SelectionService) public selectionService: SelectionService
174
- ) {
200
+ constructor(@inject(TYPES.Action) public action: SelectAction, @inject(SelectionService) public selectionService: SelectionService) {
175
201
  super();
176
202
  }
177
203
 
@@ -208,10 +234,7 @@ export class SelectAllCommand extends Command {
208
234
  static readonly KIND = SprottySelectAllCommand.KIND;
209
235
  protected previousSelection: Map<string, boolean> = new Map<string, boolean>();
210
236
 
211
- constructor(
212
- @inject(TYPES.Action) public action: SelectAllAction,
213
- @inject(TYPES.SelectionService) public selectionService: SelectionService
214
- ) {
237
+ constructor(@inject(TYPES.Action) public action: SelectAllAction, @inject(SelectionService) public selectionService: SelectionService) {
215
238
  super();
216
239
  }
217
240
 
@@ -240,3 +263,31 @@ export class SelectAllCommand extends Command {
240
263
  return context.root;
241
264
  }
242
265
  }
266
+
267
+ export interface SelectFeedbackAction extends Omit<SelectAction, 'kind'>, Action {
268
+ kind: typeof SelectFeedbackAction.KIND;
269
+ }
270
+
271
+ export namespace SelectFeedbackAction {
272
+ export const KIND = 'selectFeedback';
273
+
274
+ export function is(object: any): object is SelectFeedbackAction {
275
+ return Action.hasKind(object, KIND) && hasArrayProp(object, 'selectedElementsIDs') && hasArrayProp(object, 'deselectedElementsIDs');
276
+ }
277
+
278
+ export function create(options?: { selectedElementsIDs?: string[]; deselectedElementsIDs?: string[] | boolean }): SelectFeedbackAction {
279
+ return { ...SelectAction.create(options), kind: KIND };
280
+ }
281
+
282
+ export function addSelection(selectedElementsIDs: string[]): SelectFeedbackAction {
283
+ return { ...SelectAction.addSelection(selectedElementsIDs), kind: KIND };
284
+ }
285
+
286
+ export function removeSelection(deselectedElementsIDs: string[]): SelectFeedbackAction {
287
+ return { ...SelectAction.removeSelection(deselectedElementsIDs), kind: KIND };
288
+ }
289
+
290
+ export function setSelection(selectedElementsIDs: string[]): SelectFeedbackAction {
291
+ return { ...SelectAction.setSelection(selectedElementsIDs), kind: KIND };
292
+ }
293
+ }
@@ -15,10 +15,10 @@
15
15
  ********************************************************************************/
16
16
  import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
17
17
  import { AnyObject, EditMode, TYPES, Tool, ToolManager, distinctAdd, hasBooleanProp, hasFunctionProp, hasStringProp } from '~glsp-sprotty';
18
- import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
18
+ import { EditorContextService, EditorContextServiceProvider, IEditModeListener } from '../editor-context-service';
19
19
 
20
20
  @injectable()
21
- export class GLSPToolManager extends ToolManager implements EditModeListener {
21
+ export class GLSPToolManager extends ToolManager implements IEditModeListener {
22
22
  protected editorContext?: EditorContextService;
23
23
 
24
24
  @multiInject(TYPES.ITool) @optional() override tools: Tool[];
@@ -31,7 +31,7 @@ export class GLSPToolManager extends ToolManager implements EditModeListener {
31
31
  this.registerDefaultTools(...this.defaultTools);
32
32
  this.enableDefaultTools();
33
33
  this.contextServiceProvider().then(editorContext => {
34
- editorContext.register(this);
34
+ editorContext.onEditModeChanged(change => this.editModeChanged(change.newValue, change.oldValue));
35
35
  this.editorContext = editorContext;
36
36
  });
37
37
  }
@@ -67,7 +67,7 @@ export class GLSPToolManager extends ToolManager implements EditModeListener {
67
67
  this.enable(this.defaultTools.filter(tool => !GLSPTool.is(tool) || tool.isEditTool === false).map(tool => tool.id));
68
68
  }
69
69
 
70
- editModeChanged(oldValue: string, newValue: string): void {
70
+ editModeChanged(newValue: string, oldValue: string): void {
71
71
  if (oldValue === newValue) {
72
72
  return;
73
73
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2023 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,17 +13,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { injectable } from 'inversify';
17
+ import { Disposable, KeyListener, KeyTool } from '~glsp-sprotty';
16
18
 
17
- export const DEFAULT_RANK = 0;
18
-
19
- export interface Ranked {
20
- rank: number;
21
- }
22
-
23
- export function isRanked(arg: any): arg is Ranked {
24
- return arg !== undefined && arg.rank !== undefined && typeof arg.rank === 'number';
25
- }
26
-
27
- export function getRank(arg: any): number {
28
- return isRanked(arg) ? arg.rank : DEFAULT_RANK;
19
+ @injectable()
20
+ export class GLSPKeyTool extends KeyTool {
21
+ registerListener(keyListener: KeyListener): Disposable {
22
+ super.register(keyListener);
23
+ return Disposable.create(() => this.deregister(keyListener));
24
+ }
29
25
  }
@@ -14,13 +14,8 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { injectable, multiInject, optional } from 'inversify';
17
- import { Action, MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from '~glsp-sprotty';
18
- import { getRank } from '../rank/model';
19
-
20
- export interface IMouseTool {
21
- register(mouseListener: MouseListener): void;
22
- deregister(mouseListener: MouseListener): void;
23
- }
17
+ import { Action, Disposable, MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from '~glsp-sprotty';
18
+ import { Ranked } from '../ranked';
24
19
 
25
20
  /**
26
21
  * Custom helper type to declare the explicit mouse listener methods
@@ -29,22 +24,27 @@ export interface IMouseTool {
29
24
  type MouseListenerMethods = keyof Omit<MouseListener, 'decorate'>;
30
25
 
31
26
  @injectable()
32
- export class RankingMouseTool extends MouseTool implements IMouseTool {
27
+ export class GLSPMouseTool extends MouseTool {
33
28
  protected rankedMouseListeners: Map<number, MouseListener[]>;
34
29
 
35
30
  constructor(@multiInject(TYPES.MouseListener) @optional() protected override mouseListeners: MouseListener[] = []) {
36
31
  super(mouseListeners);
37
- this.rankedMouseListeners = groupBy(mouseListeners, listener => getRank(listener));
32
+ this.rankedMouseListeners = groupBy(mouseListeners, listener => Ranked.getRank(listener));
38
33
  }
39
34
 
40
35
  override register(mouseListener: MouseListener): void {
41
36
  super.register(mouseListener);
42
- this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
37
+ this.rankedMouseListeners = groupBy(this.mouseListeners, listener => Ranked.getRank(listener));
38
+ }
39
+
40
+ registerListener(mouseListener: MouseListener): Disposable {
41
+ this.register(mouseListener);
42
+ return Disposable.create(() => this.deregister(mouseListener));
43
43
  }
44
44
 
45
45
  override deregister(mouseListener: MouseListener): void {
46
46
  super.deregister(mouseListener);
47
- this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
47
+ this.rankedMouseListeners = groupBy(this.mouseListeners, listener => Ranked.getRank(listener));
48
48
  }
49
49
 
50
50
  protected override handleEvent<K extends MouseListenerMethods>(methodName: K, model: SModelRoot, event: MouseEvent): void {
@@ -53,13 +53,12 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
53
53
  if (!element) {
54
54
  return;
55
55
  }
56
- this.notifyListenersByRank(element, methodName, model, event);
56
+ this.notifyListenersByRank(element, methodName, event);
57
57
  }
58
58
 
59
- async notifyListenersByRank<K extends MouseListenerMethods>(
59
+ protected async notifyListenersByRank<K extends MouseListenerMethods>(
60
60
  element: SModelElement,
61
61
  methodName: K,
62
- model: SModelRoot,
63
62
  event: MouseEvent
64
63
  ): Promise<void> {
65
64
  for (const rank of this.rankedMouseListeners) {
@@ -67,7 +66,7 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
67
66
  }
68
67
  }
69
68
 
70
- async dispatchActions<K extends MouseListenerMethods>(
69
+ protected async dispatchActions<K extends MouseListenerMethods>(
71
70
  mouseListeners: MouseListener[],
72
71
  methodName: K,
73
72
  element: SModelElement,
@@ -27,30 +27,34 @@ import {
27
27
  labelEditUiModule,
28
28
  modelSourceModule,
29
29
  openModule,
30
- routingModule,
31
30
  zorderModule
32
31
  } from '~glsp-sprotty';
33
- import glspBoundsModule from '../features/bounds/di.config';
34
- import glspCommandPaletteModule from '../features/command-palette/di.config';
35
- import glspContextMenuModule from '../features/context-menu/di.config';
36
- import { glspServerCopyPasteModule } from '../features/copy-paste/di.config';
37
- import glspDecorationModule from '../features/decoration/di.config';
38
- import glspEditLabelModule from '../features/edit-label/di.config';
39
- import glspExportModule from '../features/export/di.config';
40
- import modelHintsModule from '../features/hints/di.config';
41
- import glspHoverModule from '../features/hover/di.config';
42
- import layoutModule from '../features/layout/di.config';
43
- import glspMouseToolModule from '../features/mouse-tool/di.config';
44
- import navigationModule from '../features/navigation/di.config';
45
- import glspSelectModule from '../features/select/di.config';
46
- import sourceModelWatcherModule from '../features/source-model-watcher/di.config';
47
- import svgMetadataModule from '../features/svg-metadata/di.config';
48
- import toolFeedbackModule from '../features/tool-feedback/di.config';
49
- import toolPaletteModule from '../features/tool-palette/di.config';
50
- import { enableDefaultToolsOnFocusLossModule, toolsModule } from '../features/tools/di.config';
51
- import { markerNavigatorModule, validationModule } from '../features/validation/di.config';
52
- import glspViewportModule from '../features/viewport/di.config';
53
- import defaultGLSPModule from './di.config';
32
+ import defaultGLSPModule from './base/di.config';
33
+ import glspBoundsModule from './features/bounds/di.config';
34
+ import glspCommandPaletteModule from './features/command-palette/di.config';
35
+ import glspContextMenuModule from './features/context-menu/di.config';
36
+ import { glspServerCopyPasteModule } from './features/copy-paste/di.config';
37
+ import glspDecorationModule from './features/decoration/di.config';
38
+ import glspEditLabelModule from './features/edit-label/di.config';
39
+ import glspExportModule from './features/export/di.config';
40
+ import modelHintsModule from './features/hints/di.config';
41
+ import glspHoverModule from './features/hover/di.config';
42
+ import layoutModule from './features/layout/di.config';
43
+ import navigationModule from './features/navigation/di.config';
44
+ import glspRoutingModule from './features/routing/di.config';
45
+ import glspSelectModule from './features/select/di.config';
46
+ import sourceModelWatcherModule from './features/source-model-watcher/di.config';
47
+ import svgMetadataModule from './features/svg-metadata/di.config';
48
+ import toolPaletteModule from './features/tool-palette/di.config';
49
+ import changeBoundsToolModule from './features/tools/change-bounds/di.config';
50
+ import deletionToolModule from './features/tools/deletion/di.config';
51
+ import edgeCreationToolModule from './features/tools/edge-creation/di.config';
52
+ import edgeEditToolModule from './features/tools/edge-edit/di.config';
53
+ import enableDefaultToolsOnFocusLossModule from './features/tools/enable-default-tools-on-focus-loss';
54
+ import marqueeSelectionToolModule from './features/tools/marquee-selection/di.config';
55
+ import nodeCreationToolModule from './features/tools/node-creation/di.config';
56
+ import { markerNavigatorModule, validationModule } from './features/validation/di.config';
57
+ import glspViewportModule from './features/viewport/di.config';
54
58
 
55
59
  export const DEFAULT_MODULES = [
56
60
  defaultModule,
@@ -67,7 +71,6 @@ export const DEFAULT_MODULES = [
67
71
  glspDecorationModule,
68
72
  glspEditLabelModule,
69
73
  glspHoverModule,
70
- glspMouseToolModule,
71
74
  glspSelectModule,
72
75
  glspServerCopyPasteModule,
73
76
  glspViewportModule,
@@ -79,10 +82,14 @@ export const DEFAULT_MODULES = [
79
82
  sourceModelWatcherModule,
80
83
  navigationModule,
81
84
  openModule,
85
+ glspRoutingModule,
82
86
  toolPaletteModule,
83
- routingModule,
84
- toolFeedbackModule,
85
- toolsModule,
87
+ edgeCreationToolModule,
88
+ edgeEditToolModule,
89
+ deletionToolModule,
90
+ nodeCreationToolModule,
91
+ changeBoundsToolModule,
92
+ marqueeSelectionToolModule,
86
93
  enableDefaultToolsOnFocusLossModule,
87
94
  validationModule,
88
95
  zorderModule,
@@ -17,9 +17,9 @@
17
17
  import { inject, injectable, optional } from 'inversify';
18
18
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
19
19
  import { Action, EnableDefaultToolsAction, EnableToolsAction, ISnapper, KeyListener, KeyTool, SModelElement, TYPES } from '~glsp-sprotty';
20
+ import { SelectionService } from '../../../base/selection-service';
20
21
  import { GLSPTool } from '../../../base/tool-manager/glsp-tool-manager';
21
22
  import { IMovementRestrictor } from '../../change-bounds/movement-restrictor';
22
- import { SelectionService } from '../../select/selection-service';
23
23
  import { ResizeElementAction, ResizeType } from './resize-key-handler';
24
24
 
25
25
  @injectable()
@@ -31,7 +31,7 @@ export class ResizeKeyTool implements GLSPTool {
31
31
  @inject(KeyTool) protected readonly keytool: KeyTool;
32
32
  @inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
33
33
  @inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
34
- @inject(TYPES.SelectionService) readonly selectionService: SelectionService;
34
+ @inject(SelectionService) readonly selectionService: SelectionService;
35
35
 
36
36
  protected resizeKeyListener: ResizeKeyListener = new ResizeKeyListener(this);
37
37
 
@@ -34,7 +34,7 @@ import {
34
34
  import { AutocompleteSuggestion, IAutocompleteSuggestionProvider } from '../../autocomplete-palette/autocomplete-suggestion-providers';
35
35
  import { BaseAutocompletePalette } from '../../autocomplete-palette/base-autocomplete-palette';
36
36
 
37
- import { applyCssClasses, deleteCssClasses } from '../../tool-feedback/css-feedback';
37
+ import { applyCssClasses, deleteCssClasses } from '../../../base/feedback/css-feedback';
38
38
 
39
39
  const CSS_SEARCH_HIDDEN = 'search-hidden';
40
40
  const CSS_SEARCH_HIGHLIGHTED = 'search-highlighted';
@@ -20,7 +20,7 @@ import { Action, ISnapper, KeyListener, KeyTool, SModelElement, TYPES } from '~g
20
20
  import { GLSPTool } from '../../../base/tool-manager/glsp-tool-manager';
21
21
  import { GridSnapper } from '../../change-bounds/snap';
22
22
 
23
- import { SelectionService } from '../../select/selection-service';
23
+ import { SelectionService } from '../../../base/selection-service';
24
24
  import { MoveElementAction, MoveViewportAction } from '../move-zoom/move-handler';
25
25
 
26
26
  /**
@@ -35,7 +35,7 @@ export class MovementKeyTool implements GLSPTool {
35
35
  protected readonly movementKeyListener = new MoveKeyListener(this);
36
36
 
37
37
  @inject(KeyTool) protected readonly keytool: KeyTool;
38
- @inject(TYPES.SelectionService) selectionService: SelectionService;
38
+ @inject(SelectionService) selectionService: SelectionService;
39
39
  @inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
40
40
 
41
41
  get id(): string {
@@ -16,9 +16,9 @@
16
16
 
17
17
  import { inject, injectable } from 'inversify';
18
18
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
19
- import { Action, CenterAction, KeyListener, KeyTool, SModelElement, TYPES } from '~glsp-sprotty';
19
+ import { Action, CenterAction, KeyListener, KeyTool, SModelElement } from '~glsp-sprotty';
20
+ import { SelectionService } from '../../../base/selection-service';
20
21
  import { GLSPTool } from '../../../base/tool-manager/glsp-tool-manager';
21
- import { SelectionService } from '../../select/selection-service';
22
22
  import { ZoomElementAction, ZoomViewportAction } from '../move-zoom/zoom-handler';
23
23
 
24
24
  /**
@@ -33,7 +33,7 @@ export class ZoomKeyTool implements GLSPTool {
33
33
  protected readonly zoomKeyListener = new ZoomKeyListener(this);
34
34
 
35
35
  @inject(KeyTool) protected readonly keytool: KeyTool;
36
- @inject(TYPES.SelectionService) selectionService: SelectionService;
36
+ @inject(SelectionService) selectionService: SelectionService;
37
37
 
38
38
  get id(): string {
39
39
  return ZoomKeyTool.ID;
@@ -31,7 +31,7 @@ import {
31
31
  createFeatureSet,
32
32
  layoutableChildFeature
33
33
  } from '~glsp-sprotty';
34
- import { initializeDiagramContainer } from '../../base/container-modules';
34
+ import { initializeDiagramContainer } from '../../container-modules';
35
35
  import { GLSPGraph } from '../../lib/model';
36
36
  import { StatefulLayouterExt } from './layouter';
37
37
 
@@ -15,8 +15,8 @@
15
15
  ********************************************************************************/
16
16
  import { injectable } from 'inversify';
17
17
  import { BoundsAware, Point, SModelElement, SNode, SParentElement } from '~glsp-sprotty';
18
+ import { ModifyCSSFeedbackAction } from '../../base/feedback/css-feedback';
18
19
  import { toAbsoluteBounds } from '../../utils/viewpoint-util';
19
- import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
20
20
  import { SResizeHandle, isBoundsAwareMoveable } from './model';
21
21
 
22
22
  /**
@@ -16,7 +16,7 @@
16
16
  import { inject, injectable, optional } from 'inversify';
17
17
  import { Action, ContextMenuProviderRegistry, IContextMenuServiceProvider, MouseListener, SModelElement, TYPES } from '~glsp-sprotty';
18
18
  import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
19
- import { SelectionService } from '../select/selection-service';
19
+ import { SelectionService } from '../../base/selection-service';
20
20
 
21
21
  @injectable()
22
22
  export class SelectionServiceAwareContextMenuMouseListener extends MouseListener {
@@ -28,7 +28,7 @@ export class SelectionServiceAwareContextMenuMouseListener extends MouseListener
28
28
  @optional()
29
29
  protected readonly menuProvider?: ContextMenuProviderRegistry;
30
30
 
31
- @inject(TYPES.SelectionService)
31
+ @inject(SelectionService)
32
32
  protected selectionService: SelectionService;
33
33
 
34
34
  /**
@@ -85,7 +85,7 @@ export class InvokeCopyPasteActionHandler implements IActionHandler {
85
85
  const severity = 'WARNING';
86
86
  this.dispatcher.dispatchAll([
87
87
  ServerStatusAction.create(message, { severity, timeout }),
88
- ServerMessageAction.create(message, { severity, timeout })
88
+ ServerMessageAction.create(message, { severity })
89
89
  ]);
90
90
  }
91
91
  }
@@ -21,9 +21,6 @@ import { BaseGLSPTool } from '../tools/base-glsp-tool';
21
21
  export class DirectLabelEditTool extends BaseGLSPTool {
22
22
  static readonly ID = 'glsp.direct-label-edit-tool';
23
23
 
24
- protected editLabelMouseListener: MouseListener;
25
- protected editLabelKeyListener: KeyListener;
26
-
27
24
  get id(): string {
28
25
  return DirectLabelEditTool.ID;
29
26
  }
@@ -37,14 +34,9 @@ export class DirectLabelEditTool extends BaseGLSPTool {
37
34
  }
38
35
 
39
36
  enable(): void {
40
- this.editLabelKeyListener = this.createEditLabelKeyListener();
41
- this.editLabelMouseListener = this.createEditLabelMouseListener();
42
- this.mouseTool.register(this.editLabelMouseListener);
43
- this.keyTool.register(this.editLabelKeyListener);
44
- }
45
-
46
- disable(): void {
47
- this.keyTool.deregister(this.editLabelKeyListener);
48
- this.mouseTool.deregister(this.editLabelMouseListener);
37
+ this.toDisposeOnDisable.push(
38
+ this.mouseTool.registerListener(this.createEditLabelMouseListener()),
39
+ this.keyTool.registerListener(this.createEditLabelKeyListener())
40
+ );
49
41
  }
50
42
  }
@@ -36,11 +36,11 @@ import {
36
36
  editFeature,
37
37
  moveFeature
38
38
  } from '~glsp-sprotty';
39
+ import { IFeedbackActionDispatcher } from '../../base/feedback/feedback-action-dispatcher';
40
+ import { FeedbackCommand } from '../../base/feedback/feedback-command';
39
41
  import { getElementTypeId, hasCompatibleType } from '../../utils/smodel-util';
40
42
  import { resizeFeature } from '../change-bounds/model';
41
43
  import { reconnectFeature } from '../reconnect/model';
42
- import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
43
- import { FeedbackCommand } from '../tool-feedback/model';
44
44
  import { Containable, containerFeature, reparentFeature } from './model';
45
45
 
46
46
  /**
@@ -32,8 +32,9 @@ import {
32
32
  SetPopupModelAction
33
33
  } from '~glsp-sprotty';
34
34
  import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
35
- import { EdgeCreationTool } from '../tools/edge-creation-tool';
35
+ import { EdgeCreationTool } from '../tools/edge-creation/edge-creation-tool';
36
36
  import { GIssueMarker, getSeverity } from '../validation/issue-marker';
37
+
37
38
  @injectable()
38
39
  export class GlspHoverMouseListener extends HoverMouseListener implements IActionHandler {
39
40
  protected enableHover = true;
@@ -22,7 +22,7 @@ import {
22
22
  ResizeElementsActionHandler
23
23
  } from './layout-elements-action';
24
24
 
25
- const layoutModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
25
+ const layoutModule = new ContainerModule((bind, _unbind, isBound) => {
26
26
  const context = { bind, isBound };
27
27
  configureActionHandler(context, ResizeElementsAction.KIND, ResizeElementsActionHandler);
28
28
  configureActionHandler(context, AlignElementsAction.KIND, AlignElementsActionHandler);
@@ -41,9 +41,8 @@ import {
41
41
  TYPES,
42
42
  defaultModule
43
43
  } from '~glsp-sprotty';
44
+ import { SelectionService } from '../../base/selection-service';
44
45
  import { resizeFeature } from '../change-bounds/model';
45
- import { SelectionService } from '../select/selection-service';
46
- import { FeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
47
46
  import {
48
47
  AlignElementsAction,
49
48
  AlignElementsActionHandler,
@@ -80,7 +79,6 @@ class MockSelectionService extends SelectionService {
80
79
  // Generic Test setup
81
80
  const container = new Container();
82
81
  container.load(defaultModule);
83
- container.bind(TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
84
82
  container.rebind(TYPES.IModelFactory).to(SGraphFactory).inSingletonScope();
85
83
  const graphFactory = container.get<SGraphFactory>(TYPES.IModelFactory);
86
84
 
@@ -31,11 +31,11 @@ import {
31
31
  hasNumberProp,
32
32
  hasStringProp
33
33
  } from '~glsp-sprotty';
34
+ import { SelectionService } from '../../base/selection-service';
34
35
  import { toValidElementAndBounds, toValidElementMove } from '../../utils/layout-utils';
35
36
  import { BoundsAwareModelElement, getElements } from '../../utils/smodel-util';
36
37
  import { isBoundsAwareMoveable, isResizable } from '../change-bounds/model';
37
38
  import { IMovementRestrictor } from '../change-bounds/movement-restrictor';
38
- import { SelectionService } from '../select/selection-service';
39
39
 
40
40
  /**
41
41
  * Used to specify the desired resize dimension for a {@link ResizeElementsCommand}.
@@ -161,7 +161,7 @@ export abstract class LayoutElementsActionHandler implements IActionHandler {
161
161
  @inject(TYPES.IActionDispatcher)
162
162
  protected actionDispatcher: IActionDispatcher;
163
163
 
164
- @inject(TYPES.SelectionService)
164
+ @inject(SelectionService)
165
165
  protected selectionService: SelectionService;
166
166
 
167
167
  @inject(TYPES.IMovementRestrictor)
@@ -268,7 +268,7 @@ export class NavigationActionHandler implements IActionHandler {
268
268
  const timeout = this.notificationTimeout;
269
269
  this.dispatcher.dispatchAll([
270
270
  ServerStatusAction.create(message, { severity, timeout }),
271
- ServerMessageAction.create(message, { severity, timeout })
271
+ ServerMessageAction.create(message, { severity })
272
272
  ]);
273
273
  }
274
274
  }