@eclipse-glsp/client 1.1.0-next.6efef44.226 → 1.1.0-next.7be33cd.257

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 (766) hide show
  1. package/README.md +1 -1
  2. package/{lib/features/rank/model.d.ts → css/autocomplete-palette.css} +7 -7
  3. package/css/decoration.css +1 -1
  4. package/css/glsp-sprotty.css +16 -1
  5. package/lib/base/action-dispatcher.d.ts +1 -17
  6. package/lib/base/action-dispatcher.d.ts.map +1 -1
  7. package/lib/base/action-dispatcher.js +7 -8
  8. package/lib/base/action-dispatcher.js.map +1 -1
  9. package/lib/base/actions/focus-change-action.d.ts +2 -2
  10. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  11. package/lib/base/actions/focus-change-action.js +4 -4
  12. package/lib/base/actions/focus-change-action.js.map +1 -1
  13. package/lib/base/argumentable.d.ts +2 -3
  14. package/lib/base/argumentable.d.ts.map +1 -1
  15. package/lib/base/argumentable.js.map +1 -1
  16. package/lib/base/auto-complete/auto-complete-actions.d.ts +2 -2
  17. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  18. package/lib/base/auto-complete/auto-complete-actions.js +4 -4
  19. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  20. package/lib/base/auto-complete/auto-complete-widget.d.ts +11 -6
  21. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  22. package/lib/base/auto-complete/auto-complete-widget.js +35 -34
  23. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  24. package/lib/base/auto-complete/validation-decorator.d.ts +16 -1
  25. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  26. package/lib/base/auto-complete/validation-decorator.js +7 -8
  27. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  28. package/lib/base/command-stack.d.ts +17 -3
  29. package/lib/base/command-stack.d.ts.map +1 -1
  30. package/lib/base/command-stack.js +45 -14
  31. package/lib/base/command-stack.js.map +1 -1
  32. package/lib/base/di.config.d.ts +2 -2
  33. package/lib/base/di.config.d.ts.map +1 -1
  34. package/lib/base/di.config.js +22 -18
  35. package/lib/base/di.config.js.map +1 -1
  36. package/lib/base/drag-aware-mouse-listener.d.ts +2 -3
  37. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  38. package/lib/base/drag-aware-mouse-listener.js +17 -2
  39. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  40. package/lib/base/editor-context-service.d.ts +12 -25
  41. package/lib/base/editor-context-service.d.ts.map +1 -1
  42. package/lib/base/editor-context-service.js +37 -22
  43. package/lib/base/editor-context-service.js.map +1 -1
  44. package/lib/{features/tool-feedback/model.d.ts → base/feedback/feeback-command.d.ts} +3 -3
  45. package/lib/base/feedback/feeback-command.d.ts.map +1 -0
  46. package/lib/{features/tool-feedback/model.js → base/feedback/feeback-command.js} +4 -4
  47. package/lib/base/feedback/feeback-command.js.map +1 -0
  48. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.d.ts +1 -17
  49. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -0
  50. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.js +20 -6
  51. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -0
  52. package/lib/base/feedback/update-model-command.d.ts +19 -0
  53. package/lib/base/feedback/update-model-command.d.ts.map +1 -0
  54. package/lib/base/{model → feedback}/update-model-command.js +11 -37
  55. package/lib/base/feedback/update-model-command.js.map +1 -0
  56. package/lib/base/focus-tracker.d.ts +1 -17
  57. package/lib/base/focus-tracker.d.ts.map +1 -1
  58. package/lib/base/focus-tracker.js +19 -5
  59. package/lib/base/focus-tracker.js.map +1 -1
  60. package/lib/base/model/model-registry.d.ts +1 -1
  61. package/lib/base/model/model-registry.d.ts.map +1 -1
  62. package/lib/base/model/model-registry.js +4 -5
  63. package/lib/base/model/model-registry.js.map +1 -1
  64. package/lib/base/model-initialization-constraint.d.ts +1 -16
  65. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  66. package/lib/base/model-initialization-constraint.js +9 -12
  67. package/lib/base/model-initialization-constraint.js.map +1 -1
  68. package/lib/base/ranked.d.ts +34 -0
  69. package/lib/base/ranked.d.ts.map +1 -0
  70. package/lib/base/ranked.js +38 -0
  71. package/lib/base/ranked.js.map +1 -0
  72. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  73. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  74. package/lib/base/selection-clearing-mouse-listener.js +4 -5
  75. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  76. package/lib/{features/select → base}/selection-service.d.ts +34 -29
  77. package/lib/base/selection-service.d.ts.map +1 -0
  78. package/lib/{features/select → base}/selection-service.js +88 -44
  79. package/lib/base/selection-service.js.map +1 -0
  80. package/lib/base/selection-service.spec.d.ts.map +1 -0
  81. package/lib/{features/select → base}/selection-service.spec.js +52 -119
  82. package/lib/base/selection-service.spec.js.map +1 -0
  83. package/lib/base/source-uri-aware.js +3 -3
  84. package/lib/base/source-uri-aware.js.map +1 -1
  85. package/lib/base/tool-manager/glsp-tool-manager.d.ts +7 -8
  86. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  87. package/lib/base/tool-manager/glsp-tool-manager.js +27 -23
  88. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  89. package/lib/{features/mouse-tool → base/view}/mouse-tool.d.ts +4 -8
  90. package/lib/base/view/mouse-tool.d.ts.map +1 -0
  91. package/lib/{features/mouse-tool → base/view}/mouse-tool.js +12 -15
  92. package/lib/base/view/mouse-tool.js.map +1 -0
  93. package/lib/base/view/view-registry.d.ts +1 -1
  94. package/lib/base/view/view-registry.d.ts.map +1 -1
  95. package/lib/base/view/view-registry.js +4 -5
  96. package/lib/base/view/view-registry.js.map +1 -1
  97. package/lib/{base/container-modules.d.ts → container-modules.d.ts} +15 -15
  98. package/lib/container-modules.d.ts.map +1 -0
  99. package/lib/container-modules.js +133 -0
  100. package/lib/container-modules.js.map +1 -0
  101. package/{src/features/rank/model.ts → lib/features/accessibility/di.config.d.ts} +7 -15
  102. package/lib/features/accessibility/di.config.d.ts.map +1 -0
  103. package/lib/features/{mouse-tool → accessibility}/di.config.js +16 -10
  104. package/lib/features/accessibility/di.config.js.map +1 -0
  105. package/lib/features/accessibility/move-zoom/di.config.d.ts +23 -0
  106. package/lib/features/accessibility/move-zoom/di.config.d.ts.map +1 -0
  107. package/lib/features/accessibility/move-zoom/di.config.js +41 -0
  108. package/lib/features/accessibility/move-zoom/di.config.js.map +1 -0
  109. package/lib/features/accessibility/move-zoom/move-handler.d.ts +80 -0
  110. package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -0
  111. package/lib/features/accessibility/move-zoom/move-handler.js +169 -0
  112. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -0
  113. package/lib/features/accessibility/move-zoom/zoom-handler.d.ts +73 -0
  114. package/lib/features/accessibility/move-zoom/zoom-handler.d.ts.map +1 -0
  115. package/lib/features/accessibility/move-zoom/zoom-handler.js +155 -0
  116. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -0
  117. package/lib/features/accessibility/resize-key-tool/di.config.d.ts +23 -0
  118. package/lib/features/accessibility/resize-key-tool/di.config.d.ts.map +1 -0
  119. package/lib/features/accessibility/resize-key-tool/di.config.js +36 -0
  120. package/lib/features/accessibility/resize-key-tool/di.config.js.map +1 -0
  121. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +54 -0
  122. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -0
  123. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +123 -0
  124. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -0
  125. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +43 -0
  126. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -0
  127. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +124 -0
  128. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -0
  129. package/lib/features/accessibility/search/di.config.d.ts +20 -0
  130. package/lib/features/accessibility/search/di.config.d.ts.map +1 -0
  131. package/lib/features/accessibility/search/di.config.js +32 -0
  132. package/lib/features/accessibility/search/di.config.js.map +1 -0
  133. package/lib/features/accessibility/search/search-palette.d.ts +46 -0
  134. package/lib/features/accessibility/search/search-palette.d.ts.map +1 -0
  135. package/lib/features/accessibility/search/search-palette.js +161 -0
  136. package/lib/features/accessibility/search/search-palette.js.map +1 -0
  137. package/lib/features/accessibility/search/search-tool.d.ts +29 -0
  138. package/lib/features/accessibility/search/search-tool.d.ts.map +1 -0
  139. package/lib/features/accessibility/search/search-tool.js +72 -0
  140. package/lib/features/accessibility/search/search-tool.js.map +1 -0
  141. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts +34 -0
  142. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts.map +1 -0
  143. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +85 -0
  144. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -0
  145. package/lib/features/accessibility/view-key-tools/di.config.d.ts +20 -0
  146. package/lib/features/accessibility/view-key-tools/di.config.d.ts.map +1 -0
  147. package/lib/features/accessibility/view-key-tools/di.config.js +34 -0
  148. package/lib/features/accessibility/view-key-tools/di.config.js.map +1 -0
  149. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +48 -0
  150. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -0
  151. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +129 -0
  152. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -0
  153. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +42 -0
  154. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -0
  155. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +106 -0
  156. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -0
  157. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.d.ts +35 -0
  158. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.d.ts.map +1 -0
  159. package/lib/{base/actions/sprotty-actions.js → features/autocomplete-palette/autocomplete-suggestion-providers.js} +3 -6
  160. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.js.map +1 -0
  161. package/lib/features/autocomplete-palette/base-autocomplete-palette.d.ts +40 -0
  162. package/lib/features/autocomplete-palette/base-autocomplete-palette.d.ts.map +1 -0
  163. package/lib/features/autocomplete-palette/base-autocomplete-palette.js +82 -0
  164. package/lib/features/autocomplete-palette/base-autocomplete-palette.js.map +1 -0
  165. package/lib/features/bounds/di.config.d.ts +1 -2
  166. package/lib/features/bounds/di.config.d.ts.map +1 -1
  167. package/lib/features/bounds/di.config.js +15 -14
  168. package/lib/features/bounds/di.config.js.map +1 -1
  169. package/lib/features/bounds/freeform-layout.d.ts +14 -0
  170. package/lib/features/bounds/freeform-layout.d.ts.map +1 -0
  171. package/lib/features/{layout → bounds}/freeform-layout.js +6 -8
  172. package/lib/features/bounds/freeform-layout.js.map +1 -0
  173. package/lib/features/bounds/freeform-layout.spec.d.ts.map +1 -0
  174. package/lib/features/{layout/tests → bounds}/freeform-layout.spec.js +39 -39
  175. package/lib/features/bounds/freeform-layout.spec.js.map +1 -0
  176. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +2 -3
  177. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts.map +1 -1
  178. package/lib/features/bounds/glsp-hidden-bounds-updater.js +9 -10
  179. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  180. package/lib/features/{layout → bounds}/hbox-layout.d.ts +1 -17
  181. package/lib/features/bounds/hbox-layout.d.ts.map +1 -0
  182. package/lib/features/{layout → bounds}/hbox-layout.js +11 -13
  183. package/lib/features/bounds/hbox-layout.js.map +1 -0
  184. package/lib/features/bounds/hbox-layout.spec.d.ts.map +1 -0
  185. package/lib/features/{layout/tests → bounds}/hbox-layout.spec.js +20 -21
  186. package/lib/features/bounds/hbox-layout.spec.js.map +1 -0
  187. package/lib/features/{layout/tests/layouter-test-util.d.ts → bounds/layouter-test-util.spec.d.ts} +3 -5
  188. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +1 -0
  189. package/lib/features/{layout/tests/layouter-test-util.js → bounds/layouter-test-util.spec.js} +15 -15
  190. package/lib/features/bounds/layouter-test-util.spec.js.map +1 -0
  191. package/lib/features/bounds/layouter.d.ts +21 -0
  192. package/lib/features/bounds/layouter.d.ts.map +1 -0
  193. package/lib/features/{layout → bounds}/layouter.js +10 -12
  194. package/lib/features/bounds/layouter.js.map +1 -0
  195. package/lib/features/{layout → bounds}/vbox-layout.d.ts +1 -17
  196. package/lib/features/bounds/vbox-layout.d.ts.map +1 -0
  197. package/lib/features/{layout → bounds}/vbox-layout.js +11 -13
  198. package/lib/features/bounds/vbox-layout.js.map +1 -0
  199. package/lib/features/bounds/vbox-layout.spec.d.ts.map +1 -0
  200. package/lib/features/{layout/tests → bounds}/vbox-layout.spec.js +20 -21
  201. package/lib/features/bounds/vbox-layout.spec.js.map +1 -0
  202. package/lib/features/change-bounds/model.d.ts +2 -2
  203. package/lib/features/change-bounds/model.d.ts.map +1 -1
  204. package/lib/features/change-bounds/model.js +7 -7
  205. package/lib/features/change-bounds/model.js.map +1 -1
  206. package/lib/features/change-bounds/movement-restrictor.d.ts +1 -17
  207. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  208. package/lib/features/change-bounds/movement-restrictor.js +21 -7
  209. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  210. package/lib/features/change-bounds/snap.d.ts +1 -17
  211. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  212. package/lib/features/change-bounds/snap.js +19 -5
  213. package/lib/features/change-bounds/snap.js.map +1 -1
  214. package/lib/features/change-bounds/snap.spec.d.ts +1 -1
  215. package/lib/features/change-bounds/snap.spec.js +6 -6
  216. package/lib/features/change-bounds/snap.spec.js.map +1 -1
  217. package/lib/features/command-palette/command-palette-tool.d.ts +2 -2
  218. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  219. package/lib/features/command-palette/command-palette-tool.js +9 -10
  220. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  221. package/lib/features/command-palette/di.config.d.ts +1 -1
  222. package/lib/features/command-palette/di.config.d.ts.map +1 -1
  223. package/lib/features/command-palette/di.config.js +6 -9
  224. package/lib/features/command-palette/di.config.js.map +1 -1
  225. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -17
  226. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  227. package/lib/features/command-palette/server-command-palette-provider.js +8 -10
  228. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  229. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -17
  230. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  231. package/lib/features/context-menu/delete-element-context-menu.js +6 -8
  232. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  233. package/lib/features/context-menu/di.config.d.ts +1 -1
  234. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  235. package/lib/features/context-menu/di.config.js +8 -9
  236. package/lib/features/context-menu/di.config.js.map +1 -1
  237. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -18
  238. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  239. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +23 -10
  240. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  241. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -17
  242. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  243. package/lib/features/context-menu/server-context-menu-provider.js +9 -12
  244. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  245. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +1 -17
  246. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  247. package/lib/features/copy-paste/copy-paste-context-menu.js +12 -16
  248. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  249. package/lib/features/copy-paste/copy-paste-handler.d.ts +2 -18
  250. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  251. package/lib/features/copy-paste/copy-paste-handler.js +16 -19
  252. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  253. package/lib/features/copy-paste/di.config.d.ts +1 -1
  254. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  255. package/lib/features/copy-paste/di.config.js +6 -7
  256. package/lib/features/copy-paste/di.config.js.map +1 -1
  257. package/lib/features/decoration/decoration-placer.d.ts +1 -17
  258. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  259. package/lib/features/decoration/decoration-placer.js +7 -9
  260. package/lib/features/decoration/decoration-placer.js.map +1 -1
  261. package/lib/features/decoration/di.config.d.ts +1 -1
  262. package/lib/features/decoration/di.config.d.ts.map +1 -1
  263. package/lib/features/decoration/di.config.js +4 -5
  264. package/lib/features/decoration/di.config.js.map +1 -1
  265. package/lib/features/edit-label/di.config.d.ts +1 -1
  266. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  267. package/lib/features/edit-label/di.config.js +6 -7
  268. package/lib/features/edit-label/di.config.js.map +1 -1
  269. package/lib/features/edit-label/edit-label-tool.d.ts +1 -1
  270. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  271. package/lib/features/edit-label/edit-label-tool.js +6 -7
  272. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  273. package/lib/features/edit-label/edit-label-validator.d.ts +1 -17
  274. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  275. package/lib/features/edit-label/edit-label-validator.js +12 -15
  276. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  277. package/lib/features/export/di.config.d.ts +1 -1
  278. package/lib/features/export/di.config.js +7 -7
  279. package/lib/features/export/di.config.js.map +1 -1
  280. package/lib/features/export/glsp-svg-exporter.d.ts +1 -17
  281. package/lib/features/export/glsp-svg-exporter.d.ts.map +1 -1
  282. package/lib/features/export/glsp-svg-exporter.js +20 -7
  283. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  284. package/lib/features/hints/di.config.d.ts +15 -0
  285. package/lib/features/hints/di.config.d.ts.map +1 -1
  286. package/lib/features/hints/di.config.js +5 -7
  287. package/lib/features/hints/di.config.js.map +1 -1
  288. package/lib/features/hints/model.d.ts +2 -3
  289. package/lib/features/hints/model.d.ts.map +1 -1
  290. package/lib/features/hints/model.js.map +1 -1
  291. package/lib/features/hints/type-hints.d.ts +3 -19
  292. package/lib/features/hints/type-hints.d.ts.map +1 -1
  293. package/lib/features/hints/type-hints.js +23 -27
  294. package/lib/features/hints/type-hints.js.map +1 -1
  295. package/lib/features/hover/di.config.d.ts +1 -1
  296. package/lib/features/hover/di.config.d.ts.map +1 -1
  297. package/lib/features/hover/di.config.js +20 -22
  298. package/lib/features/hover/di.config.js.map +1 -1
  299. package/lib/features/hover/hover.d.ts +1 -17
  300. package/lib/features/hover/hover.d.ts.map +1 -1
  301. package/lib/features/hover/hover.js +10 -14
  302. package/lib/features/hover/hover.js.map +1 -1
  303. package/lib/features/layout/di.config.d.ts +1 -1
  304. package/lib/features/layout/di.config.d.ts.map +1 -1
  305. package/lib/features/layout/di.config.js +4 -12
  306. package/lib/features/layout/di.config.js.map +1 -1
  307. package/lib/features/layout/layout-elements-action.d.ts +2 -18
  308. package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
  309. package/lib/features/layout/layout-elements-action.js +28 -35
  310. package/lib/features/layout/layout-elements-action.js.map +1 -1
  311. package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -1
  312. package/lib/features/layout/layout-elements-action.spec.js +14 -16
  313. package/lib/features/layout/layout-elements-action.spec.js.map +1 -1
  314. package/lib/features/navigation/di.config.d.ts +17 -1
  315. package/lib/features/navigation/di.config.d.ts.map +1 -1
  316. package/lib/features/navigation/di.config.js +8 -9
  317. package/lib/features/navigation/di.config.js.map +1 -1
  318. package/lib/features/navigation/navigation-action-handler.d.ts +2 -18
  319. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  320. package/lib/features/navigation/navigation-action-handler.js +25 -27
  321. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  322. package/lib/features/navigation/navigation-target-resolver.d.ts +1 -17
  323. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  324. package/lib/features/navigation/navigation-target-resolver.js +11 -13
  325. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  326. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  327. package/lib/features/navigation/navigation-target-resolver.spec.js +16 -17
  328. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  329. package/lib/features/reconnect/model.d.ts +2 -2
  330. package/lib/features/reconnect/model.d.ts.map +1 -1
  331. package/lib/features/reconnect/model.js +7 -7
  332. package/lib/features/reconnect/model.js.map +1 -1
  333. package/lib/features/save/di.config.d.ts +1 -1
  334. package/lib/features/save/di.config.js +3 -3
  335. package/lib/features/save/di.config.js.map +1 -1
  336. package/lib/features/save/model.d.ts +2 -2
  337. package/lib/features/save/model.d.ts.map +1 -1
  338. package/lib/features/save/save-keylistener.d.ts +2 -3
  339. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  340. package/lib/features/save/save-keylistener.js +5 -7
  341. package/lib/features/save/save-keylistener.js.map +1 -1
  342. package/lib/features/select/di.config.d.ts +1 -1
  343. package/lib/features/select/di.config.d.ts.map +1 -1
  344. package/lib/features/select/di.config.js +9 -12
  345. package/lib/features/select/di.config.js.map +1 -1
  346. package/lib/features/select/select-feedback-command.d.ts +12 -0
  347. package/lib/features/select/select-feedback-command.d.ts.map +1 -0
  348. package/lib/features/select/{select-feedback-action.js → select-feedback-command.js} +10 -24
  349. package/lib/features/select/select-feedback-command.js.map +1 -0
  350. package/lib/features/select/select-mouse-listener.d.ts +3 -4
  351. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  352. package/lib/features/select/select-mouse-listener.js +25 -28
  353. package/lib/features/select/select-mouse-listener.js.map +1 -1
  354. package/lib/features/source-model-watcher/di.config.d.ts +15 -0
  355. package/lib/features/source-model-watcher/di.config.d.ts.map +1 -1
  356. package/lib/features/source-model-watcher/di.config.js +3 -4
  357. package/lib/features/source-model-watcher/di.config.js.map +1 -1
  358. package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts +1 -17
  359. package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -1
  360. package/lib/features/source-model-watcher/source-model-changed-action-handler.js +11 -14
  361. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  362. package/lib/features/{mouse-tool → svg-metadata}/di.config.d.ts +3 -3
  363. package/lib/features/svg-metadata/di.config.d.ts.map +1 -0
  364. package/lib/features/{rank/model.js → svg-metadata/di.config.js} +10 -12
  365. package/lib/features/svg-metadata/di.config.js.map +1 -0
  366. package/lib/features/svg-metadata/metadata-placer.d.ts +23 -0
  367. package/lib/features/svg-metadata/metadata-placer.d.ts.map +1 -0
  368. package/lib/features/svg-metadata/metadata-placer.js +60 -0
  369. package/lib/features/svg-metadata/metadata-placer.js.map +1 -0
  370. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +12 -22
  371. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  372. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +51 -37
  373. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  374. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +4 -20
  375. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  376. package/lib/features/tool-feedback/creation-tool-feedback.js +29 -33
  377. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  378. package/lib/features/tool-feedback/css-feedback.d.ts +2 -18
  379. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  380. package/lib/features/tool-feedback/css-feedback.js +9 -12
  381. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  382. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  383. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  384. package/lib/features/tool-feedback/di.config.js +20 -22
  385. package/lib/features/tool-feedback/di.config.js.map +1 -1
  386. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +2 -18
  387. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  388. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +40 -46
  389. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  390. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +2 -18
  391. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  392. package/lib/features/tool-feedback/marquee-tool-feedback.js +14 -17
  393. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  394. package/lib/features/tool-feedback/view.d.ts +1 -17
  395. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  396. package/lib/features/tool-feedback/view.js +9 -12
  397. package/lib/features/tool-feedback/view.js.map +1 -1
  398. package/lib/features/tool-palette/di.config.d.ts +1 -1
  399. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  400. package/lib/features/tool-palette/di.config.js +6 -8
  401. package/lib/features/tool-palette/di.config.js.map +1 -1
  402. package/lib/features/tool-palette/tool-palette.d.ts +7 -21
  403. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  404. package/lib/features/tool-palette/tool-palette.js +39 -35
  405. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  406. package/lib/features/tools/base-glsp-tool.d.ts +3 -20
  407. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  408. package/lib/features/tools/base-glsp-tool.js +24 -11
  409. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  410. package/lib/features/tools/change-bounds-tool.d.ts +7 -21
  411. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  412. package/lib/features/tools/change-bounds-tool.js +56 -36
  413. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  414. package/lib/features/tools/delete-tool.d.ts +3 -20
  415. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  416. package/lib/features/tools/delete-tool.js +22 -29
  417. package/lib/features/tools/delete-tool.js.map +1 -1
  418. package/lib/features/tools/di.config.d.ts +18 -5
  419. package/lib/features/tools/di.config.d.ts.map +1 -1
  420. package/lib/features/tools/di.config.js +17 -20
  421. package/lib/features/tools/di.config.js.map +1 -1
  422. package/lib/features/tools/edge-creation-tool.d.ts +1 -17
  423. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  424. package/lib/features/tools/edge-creation-tool.js +18 -21
  425. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  426. package/lib/features/tools/edge-edit-tool.d.ts +4 -19
  427. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  428. package/lib/features/tools/edge-edit-tool.js +27 -26
  429. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  430. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +1 -17
  431. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -1
  432. package/lib/features/tools/enable-default-tools-on-focus-loss.js +19 -5
  433. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -1
  434. package/lib/features/tools/glsp-manhattan-edge-router.d.ts +3 -3
  435. package/lib/features/tools/glsp-manhattan-edge-router.d.ts.map +1 -1
  436. package/lib/features/tools/glsp-manhattan-edge-router.js +8 -9
  437. package/lib/features/tools/glsp-manhattan-edge-router.js.map +1 -1
  438. package/lib/features/tools/marquee-behavior.d.ts +2 -2
  439. package/lib/features/tools/marquee-behavior.d.ts.map +1 -1
  440. package/lib/features/tools/marquee-behavior.js +4 -4
  441. package/lib/features/tools/marquee-behavior.js.map +1 -1
  442. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -18
  443. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  444. package/lib/features/tools/marquee-mouse-tool.js +17 -26
  445. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  446. package/lib/features/tools/marquee-tool.d.ts +1 -17
  447. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  448. package/lib/features/tools/marquee-tool.js +23 -10
  449. package/lib/features/tools/marquee-tool.js.map +1 -1
  450. package/lib/features/tools/model.d.ts +2 -3
  451. package/lib/features/tools/model.d.ts.map +1 -1
  452. package/lib/features/tools/model.js +18 -3
  453. package/lib/features/tools/model.js.map +1 -1
  454. package/lib/features/tools/node-creation-tool.d.ts +1 -17
  455. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  456. package/lib/features/tools/node-creation-tool.js +14 -17
  457. package/lib/features/tools/node-creation-tool.js.map +1 -1
  458. package/lib/features/tools/view.d.ts +1 -1
  459. package/lib/features/tools/view.d.ts.map +1 -1
  460. package/lib/features/tools/view.js +5 -6
  461. package/lib/features/tools/view.js.map +1 -1
  462. package/lib/features/validation/di.config.d.ts +15 -0
  463. package/lib/features/validation/di.config.d.ts.map +1 -1
  464. package/lib/features/validation/di.config.js +9 -11
  465. package/lib/features/validation/di.config.js.map +1 -1
  466. package/lib/features/validation/issue-marker.d.ts +2 -3
  467. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  468. package/lib/features/validation/issue-marker.js +9 -10
  469. package/lib/features/validation/issue-marker.js.map +1 -1
  470. package/lib/features/validation/marker-navigator.d.ts +2 -18
  471. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  472. package/lib/features/validation/marker-navigator.js +28 -36
  473. package/lib/features/validation/marker-navigator.js.map +1 -1
  474. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  475. package/lib/features/validation/marker-navigator.spec.js +23 -10
  476. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  477. package/lib/features/validation/validate.d.ts +8 -24
  478. package/lib/features/validation/validate.d.ts.map +1 -1
  479. package/lib/features/validation/validate.js +40 -46
  480. package/lib/features/validation/validate.js.map +1 -1
  481. package/lib/features/viewport/di.config.d.ts +1 -1
  482. package/lib/features/viewport/di.config.d.ts.map +1 -1
  483. package/lib/features/viewport/di.config.js +12 -12
  484. package/lib/features/viewport/di.config.js.map +1 -1
  485. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -17
  486. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  487. package/lib/features/viewport/glsp-scroll-mouse-listener.js +20 -6
  488. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  489. package/lib/{base/tool-manager/tool-actions.d.ts → glsp-sprotty/augmented-actions.d.ts} +7 -2
  490. package/lib/glsp-sprotty/augmented-actions.d.ts.map +1 -0
  491. package/lib/{base/tool-manager/tool-actions.js → glsp-sprotty/augmented-actions.js} +6 -2
  492. package/lib/glsp-sprotty/augmented-actions.js.map +1 -0
  493. package/lib/{sprotty-reexport.d.ts → glsp-sprotty/index.d.ts} +33 -17
  494. package/lib/glsp-sprotty/index.d.ts.map +1 -0
  495. package/lib/{sprotty-reexport.js → glsp-sprotty/index.js} +73 -39
  496. package/lib/glsp-sprotty/index.js.map +1 -0
  497. package/lib/{base → glsp-sprotty}/types.d.ts +4 -8
  498. package/lib/glsp-sprotty/types.d.ts.map +1 -0
  499. package/lib/{base → glsp-sprotty}/types.js +3 -2
  500. package/lib/glsp-sprotty/types.js.map +1 -0
  501. package/lib/index.d.ts +46 -14
  502. package/lib/index.d.ts.map +1 -1
  503. package/lib/index.js +96 -52
  504. package/lib/index.js.map +1 -1
  505. package/lib/lib/model.d.ts +1 -2
  506. package/lib/lib/model.d.ts.map +1 -1
  507. package/lib/lib/model.js +8 -9
  508. package/lib/lib/model.js.map +1 -1
  509. package/lib/model-source/glsp-diagram-server.d.ts +1 -17
  510. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  511. package/lib/model-source/glsp-diagram-server.js +11 -13
  512. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  513. package/lib/utils/argument-utils.d.ts +2 -2
  514. package/lib/utils/argument-utils.d.ts.map +1 -1
  515. package/lib/utils/argument-utils.js +2 -2
  516. package/lib/utils/argument-utils.js.map +1 -1
  517. package/lib/utils/layout-utils.d.ts +2 -3
  518. package/lib/utils/layout-utils.d.ts.map +1 -1
  519. package/lib/utils/layout-utils.js.map +1 -1
  520. package/lib/utils/marker.d.ts +16 -1
  521. package/lib/utils/marker.d.ts.map +1 -1
  522. package/lib/utils/marker.js +7 -8
  523. package/lib/utils/marker.js.map +1 -1
  524. package/lib/utils/smodel-util.d.ts +7 -6
  525. package/lib/utils/smodel-util.d.ts.map +1 -1
  526. package/lib/utils/smodel-util.js +33 -17
  527. package/lib/utils/smodel-util.js.map +1 -1
  528. package/lib/utils/smodel-util.spec.d.ts +2 -0
  529. package/lib/utils/smodel-util.spec.d.ts.map +1 -0
  530. package/lib/utils/smodel-util.spec.js +184 -0
  531. package/lib/utils/smodel-util.spec.js.map +1 -0
  532. package/lib/utils/viewpoint-util.d.ts +2 -3
  533. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  534. package/lib/utils/viewpoint-util.js +5 -6
  535. package/lib/utils/viewpoint-util.js.map +1 -1
  536. package/lib/views/base-view-module.d.ts +18 -6
  537. package/lib/views/base-view-module.d.ts.map +1 -1
  538. package/lib/views/base-view-module.js +22 -23
  539. package/lib/views/base-view-module.js.map +1 -1
  540. package/lib/views/compartments.d.ts +1 -1
  541. package/lib/views/compartments.d.ts.map +1 -1
  542. package/lib/views/compartments.js +5 -6
  543. package/lib/views/compartments.js.map +1 -1
  544. package/lib/views/glsp-edge-view.d.ts +2 -18
  545. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  546. package/lib/views/glsp-edge-view.js +21 -7
  547. package/lib/views/glsp-edge-view.js.map +1 -1
  548. package/lib/views/glsp-projection-view.d.ts +2 -4
  549. package/lib/views/glsp-projection-view.d.ts.map +1 -1
  550. package/lib/views/glsp-projection-view.js +12 -11
  551. package/lib/views/glsp-projection-view.js.map +1 -1
  552. package/lib/views/index.d.ts +1 -1
  553. package/lib/views/index.js +1 -1
  554. package/lib/views/issue-marker-view.d.ts +1 -1
  555. package/lib/views/issue-marker-view.d.ts.map +1 -1
  556. package/lib/views/issue-marker-view.js +6 -7
  557. package/lib/views/issue-marker-view.js.map +1 -1
  558. package/lib/views/rounded-corner-view.d.ts +1 -1
  559. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  560. package/lib/views/rounded-corner-view.js +7 -8
  561. package/lib/views/rounded-corner-view.js.map +1 -1
  562. package/lib/views/rounded-corner.d.ts +2 -3
  563. package/lib/views/rounded-corner.d.ts.map +1 -1
  564. package/lib/views/rounded-corner.js +1 -1
  565. package/lib/views/rounded-corner.js.map +1 -1
  566. package/package.json +9 -6
  567. package/src/base/action-dispatcher.ts +2 -3
  568. package/src/base/actions/focus-change-action.ts +2 -2
  569. package/src/base/argumentable.ts +2 -3
  570. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  571. package/src/base/auto-complete/auto-complete-widget.ts +35 -14
  572. package/src/base/auto-complete/validation-decorator.ts +2 -3
  573. package/src/base/command-stack.ts +65 -11
  574. package/src/base/di.config.ts +29 -12
  575. package/src/base/drag-aware-mouse-listener.ts +2 -3
  576. package/src/base/editor-context-service.ts +45 -18
  577. package/src/{features/tool-feedback/model.ts → base/feedback/feeback-command.ts} +2 -2
  578. package/src/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.ts +2 -4
  579. package/src/base/{model → feedback}/update-model-command.ts +9 -32
  580. package/src/base/focus-tracker.ts +2 -4
  581. package/src/base/model/model-registry.ts +2 -2
  582. package/src/base/model-initialization-constraint.ts +2 -3
  583. package/src/base/ranked.ts +42 -0
  584. package/src/base/selection-clearing-mouse-listener.ts +2 -2
  585. package/src/{features/select → base}/selection-service.spec.ts +42 -127
  586. package/src/{features/select → base}/selection-service.ts +98 -40
  587. package/src/base/source-uri-aware.ts +2 -2
  588. package/src/base/tool-manager/glsp-tool-manager.ts +18 -17
  589. package/src/{features/mouse-tool → base/view}/mouse-tool.ts +10 -18
  590. package/src/base/view/view-registry.ts +2 -2
  591. package/src/{base/container-modules.ts → container-modules.ts} +41 -53
  592. package/src/features/accessibility/README.md +65 -0
  593. package/src/features/{mouse-tool → accessibility}/di.config.ts +15 -10
  594. package/src/features/accessibility/move-zoom/di.config.ts +42 -0
  595. package/src/features/accessibility/move-zoom/move-handler.ts +209 -0
  596. package/src/features/accessibility/move-zoom/zoom-handler.ts +182 -0
  597. package/src/features/accessibility/resize-key-tool/di.config.ts +35 -0
  598. package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +129 -0
  599. package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +106 -0
  600. package/src/features/accessibility/search/di.config.ts +30 -0
  601. package/src/features/accessibility/search/search-palette.ts +193 -0
  602. package/src/features/accessibility/search/search-tool.ts +59 -0
  603. package/src/features/accessibility/view-key-tools/deselect-key-tool.ts +88 -0
  604. package/src/features/accessibility/view-key-tools/di.config.ts +32 -0
  605. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +113 -0
  606. package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +92 -0
  607. package/src/{base/actions/sprotty-actions.ts → features/autocomplete-palette/autocomplete-suggestion-providers.ts} +21 -10
  608. package/src/features/autocomplete-palette/base-autocomplete-palette.ts +87 -0
  609. package/src/features/bounds/di.config.ts +23 -13
  610. package/src/features/{layout/tests → bounds}/freeform-layout.spec.ts +3 -3
  611. package/src/features/{layout → bounds}/freeform-layout.ts +14 -6
  612. package/src/features/bounds/glsp-hidden-bounds-updater.ts +16 -8
  613. package/src/features/{layout/tests → bounds}/hbox-layout.spec.ts +3 -4
  614. package/src/features/{layout → bounds}/hbox-layout.ts +9 -7
  615. package/src/features/{layout/tests/layouter-test-util.ts → bounds/layouter-test-util.spec.ts} +11 -10
  616. package/src/features/{layout → bounds}/layouter.ts +7 -7
  617. package/src/features/{layout/tests → bounds}/vbox-layout.spec.ts +3 -4
  618. package/src/features/{layout → bounds}/vbox-layout.ts +8 -6
  619. package/src/features/change-bounds/model.ts +2 -2
  620. package/src/features/change-bounds/movement-restrictor.ts +3 -4
  621. package/src/features/change-bounds/snap.spec.ts +2 -2
  622. package/src/features/change-bounds/snap.ts +2 -3
  623. package/src/features/command-palette/command-palette-tool.ts +4 -4
  624. package/src/features/command-palette/di.config.ts +6 -9
  625. package/src/features/command-palette/server-command-palette-provider.ts +11 -4
  626. package/src/features/context-menu/delete-element-context-menu.ts +2 -4
  627. package/src/features/context-menu/di.config.ts +4 -5
  628. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +4 -6
  629. package/src/features/context-menu/server-context-menu-provider.ts +12 -4
  630. package/src/features/copy-paste/copy-paste-context-menu.ts +15 -4
  631. package/src/features/copy-paste/copy-paste-handler.ts +14 -8
  632. package/src/features/copy-paste/di.config.ts +2 -3
  633. package/src/features/decoration/decoration-placer.ts +2 -3
  634. package/src/features/decoration/di.config.ts +4 -5
  635. package/src/features/edit-label/di.config.ts +3 -4
  636. package/src/features/edit-label/edit-label-tool.ts +2 -2
  637. package/src/features/edit-label/edit-label-validator.ts +9 -6
  638. package/src/features/export/di.config.ts +6 -6
  639. package/src/features/export/glsp-svg-exporter.ts +9 -9
  640. package/src/features/hints/di.config.ts +2 -4
  641. package/src/features/hints/model.ts +2 -3
  642. package/src/features/hints/type-hints.ts +15 -11
  643. package/src/features/hover/di.config.ts +13 -12
  644. package/src/features/hover/hover.ts +14 -9
  645. package/src/features/layout/di.config.ts +2 -11
  646. package/src/features/layout/layout-elements-action.spec.ts +15 -17
  647. package/src/features/layout/layout-elements-action.ts +15 -13
  648. package/src/features/navigation/di.config.ts +5 -4
  649. package/src/features/navigation/navigation-action-handler.ts +13 -9
  650. package/src/features/navigation/navigation-target-resolver.spec.ts +2 -3
  651. package/src/features/navigation/navigation-target-resolver.ts +10 -4
  652. package/src/features/reconnect/model.ts +2 -2
  653. package/src/features/save/di.config.ts +3 -3
  654. package/src/features/save/model.ts +2 -2
  655. package/src/features/save/save-keylistener.ts +2 -4
  656. package/src/features/select/di.config.ts +9 -12
  657. package/src/features/select/{select-feedback-action.ts → select-feedback-command.ts} +3 -19
  658. package/src/features/select/select-mouse-listener.ts +13 -12
  659. package/src/features/source-model-watcher/di.config.ts +2 -3
  660. package/src/features/source-model-watcher/source-model-changed-action-handler.ts +11 -4
  661. package/src/features/svg-metadata/di.config.ts +26 -0
  662. package/src/features/svg-metadata/metadata-placer.ts +49 -0
  663. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -25
  664. package/src/features/tool-feedback/creation-tool-feedback.ts +19 -12
  665. package/src/features/tool-feedback/css-feedback.ts +3 -6
  666. package/src/features/tool-feedback/di.config.ts +20 -22
  667. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +15 -12
  668. package/src/features/tool-feedback/marquee-tool-feedback.ts +7 -5
  669. package/src/features/tool-feedback/view.tsx +2 -3
  670. package/src/features/tool-palette/di.config.ts +4 -6
  671. package/src/features/tool-palette/tool-palette.ts +30 -20
  672. package/src/features/tools/base-glsp-tool.ts +4 -7
  673. package/src/features/tools/change-bounds-tool.ts +57 -32
  674. package/src/features/tools/delete-tool.ts +13 -12
  675. package/src/features/tools/di.config.ts +28 -21
  676. package/src/features/tools/edge-creation-tool.ts +9 -7
  677. package/src/features/tools/edge-edit-tool.ts +22 -16
  678. package/src/features/tools/enable-default-tools-on-focus-loss.ts +2 -3
  679. package/src/features/tools/glsp-manhattan-edge-router.ts +9 -7
  680. package/src/features/tools/marquee-behavior.ts +2 -3
  681. package/src/features/tools/marquee-mouse-tool.ts +10 -13
  682. package/src/features/tools/marquee-tool.ts +2 -3
  683. package/src/features/tools/model.ts +2 -3
  684. package/src/features/tools/node-creation-tool.ts +8 -6
  685. package/src/features/tools/view.tsx +2 -2
  686. package/src/features/validation/di.config.ts +5 -7
  687. package/src/features/validation/issue-marker.ts +13 -3
  688. package/src/features/validation/marker-navigator.spec.ts +7 -8
  689. package/src/features/validation/marker-navigator.ts +19 -14
  690. package/src/features/validation/validate.ts +34 -25
  691. package/src/features/viewport/di.config.ts +14 -12
  692. package/src/features/viewport/glsp-scroll-mouse-listener.ts +10 -3
  693. package/src/{base/tool-manager/tool-actions.ts → glsp-sprotty/augmented-actions.ts} +14 -3
  694. package/src/{sprotty-reexport.ts → glsp-sprotty/index.ts} +97 -47
  695. package/src/{base → glsp-sprotty}/types.ts +4 -5
  696. package/src/index.ts +74 -29
  697. package/src/lib/model.ts +12 -2
  698. package/src/model-source/glsp-diagram-server.ts +10 -5
  699. package/src/utils/argument-utils.ts +2 -2
  700. package/src/utils/layout-utils.ts +2 -3
  701. package/src/utils/marker.ts +2 -3
  702. package/src/utils/smodel-util.spec.ts +222 -0
  703. package/src/utils/smodel-util.ts +40 -15
  704. package/src/utils/viewpoint-util.ts +13 -3
  705. package/src/views/base-view-module.ts +11 -15
  706. package/src/views/compartments.tsx +2 -2
  707. package/src/views/glsp-edge-view.tsx +4 -5
  708. package/src/views/glsp-projection-view.tsx +6 -5
  709. package/src/views/index.ts +1 -2
  710. package/src/views/issue-marker-view.tsx +2 -2
  711. package/src/views/rounded-corner-view.tsx +3 -3
  712. package/src/views/rounded-corner.ts +3 -4
  713. package/lib/base/actions/sprotty-actions.d.ts +0 -7
  714. package/lib/base/actions/sprotty-actions.d.ts.map +0 -1
  715. package/lib/base/actions/sprotty-actions.js.map +0 -1
  716. package/lib/base/container-modules.d.ts.map +0 -1
  717. package/lib/base/container-modules.js +0 -140
  718. package/lib/base/container-modules.js.map +0 -1
  719. package/lib/base/model/update-model-command.d.ts +0 -47
  720. package/lib/base/model/update-model-command.d.ts.map +0 -1
  721. package/lib/base/model/update-model-command.js.map +0 -1
  722. package/lib/base/tool-manager/tool-actions.d.ts.map +0 -1
  723. package/lib/base/tool-manager/tool-actions.js.map +0 -1
  724. package/lib/base/types.d.ts.map +0 -1
  725. package/lib/base/types.js.map +0 -1
  726. package/lib/features/layout/freeform-layout.d.ts +0 -32
  727. package/lib/features/layout/freeform-layout.d.ts.map +0 -1
  728. package/lib/features/layout/freeform-layout.js.map +0 -1
  729. package/lib/features/layout/hbox-layout.d.ts.map +0 -1
  730. package/lib/features/layout/hbox-layout.js.map +0 -1
  731. package/lib/features/layout/layouter.d.ts +0 -37
  732. package/lib/features/layout/layouter.d.ts.map +0 -1
  733. package/lib/features/layout/layouter.js.map +0 -1
  734. package/lib/features/layout/tests/freeform-layout.spec.d.ts.map +0 -1
  735. package/lib/features/layout/tests/freeform-layout.spec.js.map +0 -1
  736. package/lib/features/layout/tests/hbox-layout.spec.d.ts.map +0 -1
  737. package/lib/features/layout/tests/hbox-layout.spec.js.map +0 -1
  738. package/lib/features/layout/tests/layouter-test-util.d.ts.map +0 -1
  739. package/lib/features/layout/tests/layouter-test-util.js.map +0 -1
  740. package/lib/features/layout/tests/vbox-layout.spec.d.ts.map +0 -1
  741. package/lib/features/layout/tests/vbox-layout.spec.js.map +0 -1
  742. package/lib/features/layout/vbox-layout.d.ts.map +0 -1
  743. package/lib/features/layout/vbox-layout.js.map +0 -1
  744. package/lib/features/mouse-tool/di.config.d.ts.map +0 -1
  745. package/lib/features/mouse-tool/di.config.js.map +0 -1
  746. package/lib/features/mouse-tool/mouse-tool.d.ts.map +0 -1
  747. package/lib/features/mouse-tool/mouse-tool.js.map +0 -1
  748. package/lib/features/rank/model.d.ts.map +0 -1
  749. package/lib/features/rank/model.js.map +0 -1
  750. package/lib/features/select/select-feedback-action.d.ts +0 -38
  751. package/lib/features/select/select-feedback-action.d.ts.map +0 -1
  752. package/lib/features/select/select-feedback-action.js.map +0 -1
  753. package/lib/features/select/selection-service.d.ts.map +0 -1
  754. package/lib/features/select/selection-service.js.map +0 -1
  755. package/lib/features/select/selection-service.spec.d.ts.map +0 -1
  756. package/lib/features/select/selection-service.spec.js.map +0 -1
  757. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +0 -1
  758. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +0 -1
  759. package/lib/features/tool-feedback/model.d.ts.map +0 -1
  760. package/lib/features/tool-feedback/model.js.map +0 -1
  761. package/lib/sprotty-reexport.d.ts.map +0 -1
  762. package/lib/sprotty-reexport.js.map +0 -1
  763. /package/lib/{features/select → base}/selection-service.spec.d.ts +0 -0
  764. /package/lib/features/{layout/tests → bounds}/freeform-layout.spec.d.ts +0 -0
  765. /package/lib/features/{layout/tests → bounds}/hbox-layout.spec.d.ts +0 -0
  766. /package/lib/features/{layout/tests → bounds}/vbox-layout.spec.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "1.1.0-next.6efef44.226+6efef44",
3
+ "version": "1.1.0-next.7be33cd.257+7be33cd",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "keywords": [
6
6
  "eclipse",
@@ -36,7 +36,7 @@
36
36
  "css"
37
37
  ],
38
38
  "scripts": {
39
- "build": "tsc -b",
39
+ "build": "tsc -b && tsc-alias",
40
40
  "clean": "rimraf lib tsconfig.tsbuildinfo coverage .nyc_output",
41
41
  "lint": "eslint --ext .ts,.tsx ./src",
42
42
  "lint:ci": "yarn lint -o eslint.xml -f checkstyle",
@@ -47,15 +47,18 @@
47
47
  "watch": "tsc -w"
48
48
  },
49
49
  "dependencies": {
50
- "@eclipse-glsp/protocol": "1.1.0-next.6efef44.226+6efef44",
50
+ "@eclipse-glsp/protocol": "1.1.0-next.7be33cd.257+7be33cd",
51
51
  "autocompleter": "5.1.0",
52
- "sprotty": "0.13.0-next.f4445dd.342"
52
+ "lodash": "4.17.21",
53
+ "sprotty": "0.14.0-next.02bbac0.26"
53
54
  },
54
55
  "devDependencies": {
55
- "@vscode/codicons": "^0.0.25"
56
+ "@types/lodash": "4.14.191",
57
+ "@vscode/codicons": "^0.0.25",
58
+ "tsc-alias": "^1.8.2"
56
59
  },
57
60
  "publishConfig": {
58
61
  "access": "public"
59
62
  },
60
- "gitHead": "6efef44234a98cafc891ecefc015b6f6578d2f47"
63
+ "gitHead": "7be33cd6bc4df6cb1d316e9a3c3fec0e5852577a"
61
64
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2022 EclipseSource and others.
2
+ * Copyright (c) 2019-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,9 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, RequestAction, ResponseAction } from '@eclipse-glsp/protocol';
17
16
  import { inject } from 'inversify';
18
- import { ActionDispatcher } from 'sprotty';
17
+ import { Action, ActionDispatcher, RequestAction, ResponseAction } from '~glsp-sprotty';
19
18
  import { ModelInitializationConstraint } from './model-initialization-constraint';
20
19
 
21
20
  export class GLSPActionDispatcher extends ActionDispatcher {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2021-2022 EclipseSource and others.
2
+ * Copyright (c) 2021-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,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, hasBooleanProp } from '@eclipse-glsp/protocol';
16
+ import { Action, hasBooleanProp } from '~glsp-sprotty';
17
17
 
18
18
  /**
19
19
  * A `FocusStateChangedAction` is dispatched by the client whenever the
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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,8 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Args } from '@eclipse-glsp/protocol';
17
- import { SModelElement } from 'sprotty';
16
+ import { Args, SModelElement } from '~glsp-sprotty';
18
17
 
19
18
  export interface SArgumentable {
20
19
  args: Args;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2022 EclipseSource and others.
2
+ * Copyright (c) 2020-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,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { hasStringProp, LabeledAction } from '@eclipse-glsp/protocol';
16
+ import { hasStringProp, LabeledAction } from '~glsp-sprotty';
17
17
 
18
18
  export interface AutoCompleteValue extends LabeledAction {
19
19
  readonly text: string;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2022 EclipseSource and others.
2
+ * Copyright (c) 2020-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,11 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, LabeledAction, ValidationStatus } from '@eclipse-glsp/protocol';
17
16
  import { AutocompleteResult, AutocompleteSettings } from 'autocompleter';
18
- import { codiconCSSClasses, ILogger, SModelRoot } from 'sprotty';
19
- import { toArray } from 'sprotty/lib/utils/iterable';
20
- import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
17
+ import { Action, ILogger, LabeledAction, SModelRoot, ValidationStatus, codiconCSSClasses, matchesKeystroke, toArray } from '~glsp-sprotty';
21
18
  import { AutoCompleteValue } from './auto-complete-actions';
22
19
  import { IValidationDecorator } from './validation-decorator';
23
20
 
@@ -28,6 +25,7 @@ export interface AutoCompleteSettings {
28
25
  readonly showOnFocus?: boolean;
29
26
  }
30
27
 
28
+ export type CloseReason = 'submission' | 'blur' | 'escape';
31
29
  export interface InputValidator {
32
30
  validate(input: string): Promise<ValidationStatus>;
33
31
  }
@@ -48,6 +46,11 @@ export interface TextSubmitHandler {
48
46
  executeFromTextOnlyInput(input: string): void;
49
47
  }
50
48
 
49
+ export interface AutoCompleteWidgetOptions {
50
+ visibleSuggestionsChanged?: (suggestions: LabeledAction[]) => void;
51
+ selectedSuggestionChanged?: (suggestion?: LabeledAction) => void;
52
+ }
53
+
51
54
  // eslint-disable-next-line @typescript-eslint/no-var-requires
52
55
  const configureAutocomplete: (settings: AutocompleteSettings<LabeledAction>) => AutocompleteResult = require('autocompleter');
53
56
 
@@ -78,8 +81,9 @@ export class AutoCompleteWidget {
78
81
  public suggestionProvider: SuggestionProvider,
79
82
  public suggestionSubmitHandler: SuggestionSubmitHandler,
80
83
  // eslint-disable-next-line @typescript-eslint/no-empty-function
81
- protected notifyClose: () => void = () => {},
82
- protected logger?: ILogger
84
+ protected notifyClose: (reason: CloseReason) => void = () => {},
85
+ protected logger?: ILogger,
86
+ protected options?: AutoCompleteWidgetOptions
83
87
  ) {}
84
88
 
85
89
  configureValidation(
@@ -109,13 +113,18 @@ export class AutoCompleteWidget {
109
113
  inputElement.autocomplete = 'false';
110
114
  inputElement.style.width = '100%';
111
115
  inputElement.addEventListener('keydown', event => this.handleKeyDown(event));
112
- inputElement.addEventListener('blur', () => window.setTimeout(() => this.notifyClose(), 200));
116
+ inputElement.addEventListener('blur', () => {
117
+ if (this.containerElement.style.visibility !== 'hidden') {
118
+ window.setTimeout(() => this.notifyClose('blur'), 200);
119
+ }
120
+ });
121
+
113
122
  return inputElement;
114
123
  }
115
124
 
116
125
  protected handleKeyDown(event: KeyboardEvent): void {
117
126
  if (matchesKeystroke(event, 'Escape')) {
118
- this.notifyClose();
127
+ this.notifyClose('escape');
119
128
  return;
120
129
  }
121
130
  if (matchesKeystroke(event, 'Enter') && !this.isInputElementChanged() && this.isSuggestionAvailable()) {
@@ -133,7 +142,7 @@ export class AutoCompleteWidget {
133
142
  }
134
143
  if (this.textSubmitHandler) {
135
144
  this.executeFromTextOnlyInput();
136
- this.notifyClose();
145
+ this.notifyClose('submission');
137
146
  }
138
147
  }
139
148
 
@@ -175,6 +184,17 @@ export class AutoCompleteWidget {
175
184
  // move container into our UIExtension container as this is already positioned correctly
176
185
  if (this.containerElement) {
177
186
  this.containerElement.appendChild(container);
187
+
188
+ if (this.options && this.options.selectedSuggestionChanged) {
189
+ const selectedElement = container.querySelector('.selected');
190
+ // eslint-disable-next-line no-null/no-null
191
+ if (selectedElement !== null && selectedElement !== undefined) {
192
+ const index = Array.from(container.children).indexOf(selectedElement);
193
+ this.options.selectedSuggestionChanged(this.contextActions?.[index]);
194
+ } else {
195
+ this.options.selectedSuggestionChanged(undefined);
196
+ }
197
+ }
178
198
  }
179
199
  }
180
200
 
@@ -189,6 +209,7 @@ export class AutoCompleteWidget {
189
209
  .then(actions => {
190
210
  this.contextActions = this.filterActions(text, actions);
191
211
  update(this.contextActions);
212
+ this.options?.visibleSuggestionsChanged?.(this.contextActions);
192
213
  this.onLoaded('success');
193
214
  })
194
215
  .catch(reason => {
@@ -223,16 +244,16 @@ export class AutoCompleteWidget {
223
244
 
224
245
  protected renderSuggestions(item: LabeledAction, value: string): HTMLDivElement {
225
246
  const itemElement = document.createElement('div');
226
- const wordMatcher = this.espaceForRegExp(value).split(' ').join('|');
247
+ const wordMatcher = this.escapeForRegExp(value).split(' ').join('|');
227
248
  const regex = new RegExp(wordMatcher, 'gi');
228
249
  if (item.icon) {
229
250
  this.renderIcon(itemElement, item.icon);
230
251
  }
231
- itemElement.innerHTML += item.label.replace(regex, match => '<em>' + match + '</em>');
252
+ itemElement.innerHTML += item.label.replace(regex, match => '<em>' + match + '</em>').replace(/ /g, '&nbsp;');
232
253
  return itemElement;
233
254
  }
234
255
 
235
- protected espaceForRegExp(value: string): string {
256
+ protected escapeForRegExp(value: string): string {
236
257
  return value.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
237
258
  }
238
259
 
@@ -257,7 +278,7 @@ export class AutoCompleteWidget {
257
278
  window.setTimeout(() => this.inputElement.dispatchEvent(new Event('keyup')));
258
279
  } else {
259
280
  this.executeFromSuggestion(item);
260
- this.notifyClose();
281
+ this.notifyClose('submission');
261
282
  }
262
283
  }
263
284
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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,8 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { codiconCSSString } from 'sprotty/lib/utils/codicon';
17
- import { ValidationStatus } from '@eclipse-glsp/protocol';
16
+ import { ValidationStatus, codiconCSSString } from '~glsp-sprotty';
18
17
 
19
18
  export interface IValidationDecorator {
20
19
  decorateValidationResult(status: ValidationStatus): void;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2022 EclipseSource and others.
2
+ * Copyright (c) 2019-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,22 +13,76 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { RedoAction, UndoAction } from '@eclipse-glsp/protocol';
17
- import { inject, injectable } from 'inversify';
18
- import { CommandStack, IActionDispatcher, SModelRoot } from 'sprotty';
19
- import { TYPES } from './types';
16
+ import { injectable, multiInject, optional, preDestroy } from 'inversify';
17
+ import {
18
+ CommandStack,
19
+ Disposable,
20
+ DisposableCollection,
21
+ Emitter,
22
+ Event,
23
+ ICommand,
24
+ SModelRoot,
25
+ SetModelCommand,
26
+ TYPES,
27
+ UpdateModelCommand
28
+ } from '~glsp-sprotty';
29
+
30
+ /**
31
+ * A hook to listen for model root changes. Will be called after a server update
32
+ * has been processed
33
+ */
34
+ export interface ISModelRootListener {
35
+ modelRootChanged(root: Readonly<SModelRoot>): void;
36
+ }
20
37
 
21
38
  @injectable()
22
- export class GLSPCommandStack extends CommandStack {
23
- @inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
39
+ export class GLSPCommandStack extends CommandStack implements Disposable {
40
+ @multiInject(TYPES.ISModelRootListener)
41
+ @optional()
42
+ protected modelRootListeners: ISModelRootListener[] = [];
43
+ protected toDispose = new DisposableCollection();
44
+
45
+ protected override initialize(): void {
46
+ super.initialize();
47
+ this.toDispose.push(this.onModelRootChangedEmitter);
48
+ this.modelRootListeners.forEach(listener => this.onModelRootChanged(root => listener.modelRootChanged(root)));
49
+ }
50
+
51
+ @preDestroy()
52
+ dispose(): void {
53
+ this.toDispose.dispose();
54
+ }
55
+
56
+ protected onModelRootChangedEmitter = new Emitter<Readonly<SModelRoot>>();
57
+ get onModelRootChanged(): Event<Readonly<SModelRoot>> {
58
+ return this.onModelRootChangedEmitter.event;
59
+ }
24
60
 
25
61
  override undo(): Promise<SModelRoot> {
26
- this.actionDispatcher().then(dispatcher => dispatcher.dispatch(UndoAction.create()));
27
- return this.thenUpdate();
62
+ this.logger.warn(
63
+ this,
64
+ 'GLSPCommandStack.undo() was called. This should never happen as the GLSP server is responsible for handling undo requests'
65
+ );
66
+ return this.currentModel;
28
67
  }
29
68
 
30
69
  override redo(): Promise<SModelRoot> {
31
- this.actionDispatcher().then(dispatcher => dispatcher.dispatch(RedoAction.create()));
32
- return this.thenUpdate();
70
+ this.logger.warn(
71
+ this,
72
+ 'GLSPCommandStack.redo() was called. This should never happen as the GLSP server is responsible for handling redo requests'
73
+ );
74
+ return this.currentModel;
75
+ }
76
+
77
+ override execute(command: ICommand): Promise<SModelRoot> {
78
+ const result = super.execute(command);
79
+ if (command instanceof SetModelCommand || command instanceof UpdateModelCommand) {
80
+ result.then(root => this.notifyListeners(root));
81
+ }
82
+ return result;
83
+ }
84
+
85
+ protected notifyListeners(root: Readonly<SModelRoot>): void {
86
+ this.onModelRootChangedEmitter.fire(root);
33
87
  }
34
88
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2022 EclipseSource and others.
2
+ * Copyright (c) 2019-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,22 +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 { InitializeResult, SetEditModeAction } from '@eclipse-glsp/protocol';
17
16
  import '@vscode/codicons/dist/codicon.css';
18
17
  import { Container, ContainerModule } from 'inversify';
19
- import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand } from 'sprotty';
18
+ import {
19
+ ActionHandlerRegistry,
20
+ InitializeResult,
21
+ ModelSource,
22
+ MouseTool,
23
+ SetEditModeAction,
24
+ TYPES,
25
+ bindAsService,
26
+ bindOrRebind,
27
+ configureActionHandler,
28
+ configureCommand
29
+ } from '~glsp-sprotty';
20
30
  import '../../css/glsp-sprotty.css';
21
31
  import { GLSPActionDispatcher } from './action-dispatcher';
22
32
  import { FocusStateChangedAction } from './actions/focus-change-action';
23
33
  import { GLSPCommandStack } from './command-stack';
24
34
  import { EditorContextService } from './editor-context-service';
35
+ import { FeedbackActionDispatcher } from './feedback/feedback-action-dispatcher';
36
+ import { FeedbackAwareUpdateModelCommand } from './feedback/update-model-command';
25
37
  import { FocusTracker } from './focus-tracker';
26
38
  import { DefaultModelInitializationConstraint, ModelInitializationConstraint } from './model-initialization-constraint';
27
39
  import { GLSPModelRegistry } from './model/model-registry';
28
- import { FeedbackAwareUpdateModelCommand, SetModelActionHandler } from './model/update-model-command';
29
40
  import { SelectionClearingMouseListener } from './selection-clearing-mouse-listener';
41
+ import { SelectionService } from './selection-service';
30
42
  import { GLSPToolManager } from './tool-manager/glsp-tool-manager';
31
- import { TYPES } from './types';
43
+ import { RankingMouseTool } from './view/mouse-tool';
32
44
  import { GLSPViewRegistry } from './view/view-registry';
33
45
 
34
46
  const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
@@ -51,22 +63,27 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
51
63
  configureActionHandler(context, FocusStateChangedAction.KIND, FocusTracker);
52
64
 
53
65
  // Model update initialization ------------------------------------
66
+ bind(TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
54
67
  configureCommand(context, FeedbackAwareUpdateModelCommand);
55
- configureActionHandler(context, SetModelCommand.KIND, SetModelActionHandler);
56
68
 
57
- bind(TYPES.MouseListener).to(SelectionClearingMouseListener);
69
+ rebind(MouseTool).to(RankingMouseTool).inSingletonScope();
58
70
 
59
- rebind(TYPES.ICommandStack).to(GLSPCommandStack);
71
+ bindAsService(context, TYPES.MouseListener, SelectionClearingMouseListener);
72
+
73
+ bindOrRebind(context, TYPES.ICommandStack).to(GLSPCommandStack).inSingletonScope();
60
74
  bind(GLSPToolManager).toSelf().inSingletonScope();
61
- rebind(TYPES.IToolManager).toService(GLSPToolManager);
75
+ bindOrRebind(context, TYPES.IToolManager).toService(GLSPToolManager);
62
76
  bind(GLSPActionDispatcher).toSelf().inSingletonScope();
63
- rebind(TYPES.IActionDispatcher).toService(GLSPActionDispatcher);
77
+ bindOrRebind(context, TYPES.IActionDispatcher).toService(GLSPActionDispatcher);
64
78
 
65
79
  bind(ModelInitializationConstraint).to(DefaultModelInitializationConstraint).inSingletonScope();
66
80
 
67
81
  // support re-registration of model elements and views
68
- rebind(TYPES.SModelRegistry).to(GLSPModelRegistry).inSingletonScope();
69
- rebind(TYPES.ViewRegistry).to(GLSPViewRegistry).inSingletonScope();
82
+ bindOrRebind(context, TYPES.SModelRegistry).to(GLSPModelRegistry).inSingletonScope();
83
+ bindOrRebind(context, TYPES.ViewRegistry).to(GLSPViewRegistry).inSingletonScope();
84
+
85
+ bind(SelectionService).toSelf().inSingletonScope();
86
+ bind(TYPES.ISModelRootListener).toService(SelectionService);
70
87
  });
71
88
 
72
89
  export default defaultGLSPModule;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2022 EclipseSource and others.
2
+ * Copyright (c) 2019-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,8 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action } from '@eclipse-glsp/protocol';
17
- import { MouseListener, SModelElement } from 'sprotty';
16
+ import { Action, MouseListener, SModelElement } from '~glsp-sprotty';
18
17
 
19
18
  /**
20
19
  * A mouse listener that is aware of prior mouse dragging.
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2022 EclipseSource and others.
2
+ * Copyright (c) 2020-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,15 +13,30 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, Args, distinctAdd, EditMode, EditorContext, remove, SetEditModeAction } from '@eclipse-glsp/protocol';
17
- import { inject, injectable, multiInject, optional } from 'inversify';
18
- import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot } from 'sprotty';
19
- import { SelectionService } from '../features/select/selection-service';
16
+ import { inject, injectable, multiInject, optional, postConstruct, preDestroy } from 'inversify';
17
+ import {
18
+ Action,
19
+ Args,
20
+ Disposable,
21
+ DisposableCollection,
22
+ EditMode,
23
+ EditorContext,
24
+ Emitter,
25
+ Event,
26
+ IActionHandler,
27
+ ModelSource,
28
+ MousePositionTracker,
29
+ SModelElement,
30
+ SModelRoot,
31
+ SetEditModeAction,
32
+ TYPES,
33
+ ValueChange
34
+ } from '~glsp-sprotty';
35
+ import { SelectionService } from './selection-service';
20
36
  import { isSourceUriAware } from './source-uri-aware';
21
- import { TYPES } from './types';
22
37
 
23
- export interface EditModeListener {
24
- editModeChanged(newValue: string, oldvalue: string): void;
38
+ export interface IEditModeListener {
39
+ editModeChanged(newValue: string, oldValue: string): void;
25
40
  }
26
41
 
27
42
  /**
@@ -37,8 +52,8 @@ export interface EditModeListener {
37
52
  * position, etc.).
38
53
  */
39
54
  @injectable()
40
- export class EditorContextService implements IActionHandler {
41
- @inject(TYPES.SelectionService)
55
+ export class EditorContextService implements IActionHandler, Disposable {
56
+ @inject(SelectionService)
42
57
  protected selectionService: SelectionService;
43
58
 
44
59
  @inject(MousePositionTracker)
@@ -46,19 +61,31 @@ export class EditorContextService implements IActionHandler {
46
61
 
47
62
  @multiInject(TYPES.IEditModeListener)
48
63
  @optional()
49
- protected editModeListeners: EditModeListener[] = [];
64
+ protected editModeListeners: IEditModeListener[] = [];
50
65
 
51
66
  @inject(TYPES.ModelSourceProvider)
52
67
  protected modelSourceProvider: () => Promise<ModelSource>;
53
68
 
54
69
  protected _editMode: string;
55
70
 
56
- register(editModeListener: EditModeListener): void {
57
- distinctAdd(this.editModeListeners, editModeListener);
71
+ protected onEditModeChangedEmitter = new Emitter<ValueChange<string>>();
72
+ get onEditModeChanged(): Event<ValueChange<string>> {
73
+ return this.onEditModeChangedEmitter.event;
58
74
  }
59
75
 
60
- deregister(editModeListener: EditModeListener): void {
61
- remove(this.editModeListeners, editModeListener);
76
+ protected toDispose = new DisposableCollection();
77
+
78
+ @postConstruct()
79
+ protected initialize(): void {
80
+ this.toDispose.push(this.onEditModeChangedEmitter);
81
+ this.editModeListeners.forEach(listener =>
82
+ this.onEditModeChanged(change => listener.editModeChanged(change.newValue, change.oldValue))
83
+ );
84
+ }
85
+
86
+ @preDestroy()
87
+ dispose(): void {
88
+ this.toDispose.dispose();
62
89
  }
63
90
 
64
91
  get(args?: Args): EditorContext {
@@ -81,12 +108,12 @@ export class EditorContextService implements IActionHandler {
81
108
  if (SetEditModeAction.is(action)) {
82
109
  const oldValue = this._editMode;
83
110
  this._editMode = action.editMode;
84
- this.notifiyEditModeListeners(oldValue);
111
+ this.notifyEditModeListeners(oldValue);
85
112
  }
86
113
  }
87
114
 
88
- protected notifiyEditModeListeners(oldValue: string): void {
89
- this.editModeListeners.forEach(listener => listener.editModeChanged(oldValue, this.editMode));
115
+ protected notifyEditModeListeners(oldValue: string): void {
116
+ this.onEditModeChangedEmitter.fire({ newValue: this.editMode, oldValue });
90
117
  }
91
118
 
92
119
  async getSourceUri(): Promise<string | undefined> {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2022 EclipseSource and others.
2
+ * Copyright (c) 2019-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,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Command, CommandExecutionContext, CommandReturn } from 'sprotty';
16
+ import { Command, CommandExecutionContext, CommandReturn } from '~glsp-sprotty';
17
17
 
18
18
  export abstract class FeedbackCommand extends Command {
19
19
  // used by the `FeedbackAwareUpdateModelCommand`
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2022 EclipseSource and others.
2
+ * Copyright (c) 2019-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,10 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action } from '@eclipse-glsp/protocol';
17
16
  import { inject, injectable } from 'inversify';
18
- import { IActionDispatcher, ILogger } from 'sprotty';
19
- import { TYPES } from '../../base/types';
17
+ import { Action, IActionDispatcher, ILogger, TYPES } from '~glsp-sprotty';
20
18
 
21
19
  export interface IFeedbackEmitter {}
22
20