@eclipse-glsp/client 1.1.0-next.697cc23.237 → 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 (840) 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/glsp-sprotty.css +16 -1
  4. package/lib/base/action-dispatcher.d.ts +1 -17
  5. package/lib/base/action-dispatcher.d.ts.map +1 -1
  6. package/lib/base/action-dispatcher.js +10 -9
  7. package/lib/base/action-dispatcher.js.map +1 -1
  8. package/lib/base/actions/focus-change-action.d.ts +2 -2
  9. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  10. package/lib/base/actions/focus-change-action.js +4 -4
  11. package/lib/base/actions/focus-change-action.js.map +1 -1
  12. package/lib/base/argumentable.d.ts +2 -3
  13. package/lib/base/argumentable.d.ts.map +1 -1
  14. package/lib/base/argumentable.js.map +1 -1
  15. package/lib/base/auto-complete/auto-complete-actions.d.ts +2 -2
  16. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  17. package/lib/base/auto-complete/auto-complete-actions.js +4 -4
  18. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  19. package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -4
  20. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.js +33 -32
  22. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  23. package/lib/base/auto-complete/validation-decorator.d.ts +16 -1
  24. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  25. package/lib/base/auto-complete/validation-decorator.js +7 -8
  26. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  27. package/lib/base/command-stack.d.ts +17 -2
  28. package/lib/base/command-stack.d.ts.map +1 -1
  29. package/lib/base/command-stack.js +44 -4
  30. package/lib/base/command-stack.js.map +1 -1
  31. package/lib/base/di.config.d.ts +1 -1
  32. package/lib/base/di.config.d.ts.map +1 -1
  33. package/lib/base/di.config.js +33 -17
  34. package/lib/base/di.config.js.map +1 -1
  35. package/lib/base/drag-aware-mouse-listener.d.ts +4 -5
  36. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  37. package/lib/base/drag-aware-mouse-listener.js +17 -2
  38. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  39. package/lib/base/editor-context-service.d.ts +10 -23
  40. package/lib/base/editor-context-service.d.ts.map +1 -1
  41. package/lib/base/editor-context-service.js +34 -19
  42. package/lib/base/editor-context-service.js.map +1 -1
  43. package/lib/{features/tool-feedback → base/feedback}/css-feedback.d.ts +2 -18
  44. package/lib/base/feedback/css-feedback.d.ts.map +1 -0
  45. package/lib/{features/tool-feedback → base/feedback}/css-feedback.js +9 -12
  46. package/lib/base/feedback/css-feedback.js.map +1 -0
  47. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.d.ts +11 -25
  48. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -0
  49. package/lib/base/feedback/feedback-action-dispatcher.js +81 -0
  50. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -0
  51. package/lib/{features/tool-feedback/model.d.ts → base/feedback/feedback-command.d.ts} +3 -3
  52. package/lib/base/feedback/feedback-command.d.ts.map +1 -0
  53. package/lib/{features/tool-feedback/model.js → base/feedback/feedback-command.js} +4 -4
  54. package/lib/base/feedback/feedback-command.js.map +1 -0
  55. package/lib/base/feedback/update-model-command.d.ts +19 -0
  56. package/lib/base/feedback/update-model-command.d.ts.map +1 -0
  57. package/lib/base/{model → feedback}/update-model-command.js +11 -37
  58. package/lib/base/feedback/update-model-command.js.map +1 -0
  59. package/lib/base/focus-tracker.d.ts +1 -17
  60. package/lib/base/focus-tracker.d.ts.map +1 -1
  61. package/lib/base/focus-tracker.js +19 -5
  62. package/lib/base/focus-tracker.js.map +1 -1
  63. package/lib/base/model/model-registry.d.ts +1 -1
  64. package/lib/base/model/model-registry.d.ts.map +1 -1
  65. package/lib/base/model/model-registry.js +4 -5
  66. package/lib/base/model/model-registry.js.map +1 -1
  67. package/lib/base/model-initialization-constraint.d.ts +1 -16
  68. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  69. package/lib/base/model-initialization-constraint.js +9 -12
  70. package/lib/base/model-initialization-constraint.js.map +1 -1
  71. package/lib/base/ranked.d.ts +34 -0
  72. package/lib/base/ranked.d.ts.map +1 -0
  73. package/lib/base/ranked.js +38 -0
  74. package/lib/base/ranked.js.map +1 -0
  75. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  76. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  77. package/lib/base/selection-clearing-mouse-listener.js +4 -5
  78. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  79. package/lib/{features/select → base}/selection-service.d.ts +34 -29
  80. package/lib/base/selection-service.d.ts.map +1 -0
  81. package/lib/{features/select → base}/selection-service.js +88 -44
  82. package/lib/base/selection-service.js.map +1 -0
  83. package/lib/base/selection-service.spec.d.ts.map +1 -0
  84. package/lib/{features/select → base}/selection-service.spec.js +38 -120
  85. package/lib/base/selection-service.spec.js.map +1 -0
  86. package/lib/base/source-uri-aware.js +3 -3
  87. package/lib/base/source-uri-aware.js.map +1 -1
  88. package/lib/base/tool-manager/glsp-tool-manager.d.ts +4 -4
  89. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  90. package/lib/base/tool-manager/glsp-tool-manager.js +18 -21
  91. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  92. package/lib/base/view/key-tool.d.ts +5 -0
  93. package/lib/base/view/key-tool.d.ts.map +1 -0
  94. package/lib/base/view/key-tool.js +36 -0
  95. package/lib/base/view/key-tool.js.map +1 -0
  96. package/lib/base/view/mouse-tool.d.ts +19 -0
  97. package/lib/base/view/mouse-tool.d.ts.map +1 -0
  98. package/lib/{features/mouse-tool → base/view}/mouse-tool.js +18 -17
  99. package/lib/base/view/mouse-tool.js.map +1 -0
  100. package/lib/base/view/view-registry.d.ts +1 -1
  101. package/lib/base/view/view-registry.d.ts.map +1 -1
  102. package/lib/base/view/view-registry.js +4 -5
  103. package/lib/base/view/view-registry.js.map +1 -1
  104. package/lib/{base/container-modules.d.ts → container-modules.d.ts} +2 -2
  105. package/lib/container-modules.d.ts.map +1 -0
  106. package/lib/{base/container-modules.js → container-modules.js} +51 -44
  107. package/lib/container-modules.js.map +1 -0
  108. package/lib/features/accessibility/di.config.d.ts +21 -0
  109. package/lib/features/accessibility/di.config.d.ts.map +1 -0
  110. package/lib/features/accessibility/di.config.js +34 -0
  111. package/lib/features/accessibility/di.config.js.map +1 -0
  112. package/lib/features/accessibility/move-zoom/di.config.d.ts +23 -0
  113. package/lib/features/accessibility/move-zoom/di.config.d.ts.map +1 -0
  114. package/lib/features/accessibility/move-zoom/di.config.js +41 -0
  115. package/lib/features/accessibility/move-zoom/di.config.js.map +1 -0
  116. package/lib/features/accessibility/move-zoom/move-handler.d.ts +80 -0
  117. package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -0
  118. package/lib/features/accessibility/move-zoom/move-handler.js +169 -0
  119. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -0
  120. package/lib/features/accessibility/move-zoom/zoom-handler.d.ts +73 -0
  121. package/lib/features/accessibility/move-zoom/zoom-handler.d.ts.map +1 -0
  122. package/lib/features/accessibility/move-zoom/zoom-handler.js +155 -0
  123. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -0
  124. package/lib/features/accessibility/resize-key-tool/di.config.d.ts +23 -0
  125. package/lib/features/accessibility/resize-key-tool/di.config.d.ts.map +1 -0
  126. package/lib/features/accessibility/resize-key-tool/di.config.js +36 -0
  127. package/lib/features/accessibility/resize-key-tool/di.config.js.map +1 -0
  128. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +54 -0
  129. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -0
  130. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +123 -0
  131. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -0
  132. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +43 -0
  133. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -0
  134. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +124 -0
  135. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -0
  136. package/lib/features/accessibility/search/di.config.d.ts +20 -0
  137. package/lib/features/accessibility/search/di.config.d.ts.map +1 -0
  138. package/lib/features/accessibility/search/di.config.js +32 -0
  139. package/lib/features/accessibility/search/di.config.js.map +1 -0
  140. package/lib/features/accessibility/search/search-palette.d.ts +46 -0
  141. package/lib/features/accessibility/search/search-palette.d.ts.map +1 -0
  142. package/lib/features/accessibility/search/search-palette.js +161 -0
  143. package/lib/features/accessibility/search/search-palette.js.map +1 -0
  144. package/lib/features/{tools/marquee-tool.d.ts → accessibility/search/search-tool.d.ts} +9 -10
  145. package/lib/features/accessibility/search/search-tool.d.ts.map +1 -0
  146. package/lib/features/accessibility/search/search-tool.js +72 -0
  147. package/lib/features/accessibility/search/search-tool.js.map +1 -0
  148. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts +34 -0
  149. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts.map +1 -0
  150. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +85 -0
  151. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -0
  152. package/lib/features/accessibility/view-key-tools/di.config.d.ts +20 -0
  153. package/lib/features/accessibility/view-key-tools/di.config.d.ts.map +1 -0
  154. package/lib/features/accessibility/view-key-tools/di.config.js +34 -0
  155. package/lib/features/accessibility/view-key-tools/di.config.js.map +1 -0
  156. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +48 -0
  157. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -0
  158. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +129 -0
  159. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -0
  160. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +42 -0
  161. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -0
  162. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +106 -0
  163. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -0
  164. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.d.ts +35 -0
  165. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.d.ts.map +1 -0
  166. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.js +18 -0
  167. package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.js.map +1 -0
  168. package/lib/features/autocomplete-palette/base-autocomplete-palette.d.ts +40 -0
  169. package/lib/features/autocomplete-palette/base-autocomplete-palette.d.ts.map +1 -0
  170. package/lib/features/autocomplete-palette/base-autocomplete-palette.js +82 -0
  171. package/lib/features/autocomplete-palette/base-autocomplete-palette.js.map +1 -0
  172. package/lib/features/bounds/di.config.d.ts +15 -0
  173. package/lib/features/bounds/di.config.d.ts.map +1 -1
  174. package/lib/features/bounds/di.config.js +10 -12
  175. package/lib/features/bounds/di.config.js.map +1 -1
  176. package/lib/features/bounds/freeform-layout.d.ts +1 -19
  177. package/lib/features/bounds/freeform-layout.d.ts.map +1 -1
  178. package/lib/features/bounds/freeform-layout.js +4 -6
  179. package/lib/features/bounds/freeform-layout.js.map +1 -1
  180. package/lib/features/bounds/freeform-layout.spec.js +2 -2
  181. package/lib/features/bounds/freeform-layout.spec.js.map +1 -1
  182. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +1 -2
  183. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts.map +1 -1
  184. package/lib/features/bounds/glsp-hidden-bounds-updater.js +7 -9
  185. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  186. package/lib/features/bounds/hbox-layout.d.ts +1 -17
  187. package/lib/features/bounds/hbox-layout.d.ts.map +1 -1
  188. package/lib/features/bounds/hbox-layout.js +10 -12
  189. package/lib/features/bounds/hbox-layout.js.map +1 -1
  190. package/lib/features/bounds/hbox-layout.spec.d.ts.map +1 -1
  191. package/lib/features/bounds/hbox-layout.spec.js +3 -4
  192. package/lib/features/bounds/hbox-layout.spec.js.map +1 -1
  193. package/lib/features/bounds/layouter-test-util.spec.d.ts +1 -2
  194. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +1 -1
  195. package/lib/features/bounds/layouter-test-util.spec.js +10 -10
  196. package/lib/features/bounds/layouter-test-util.spec.js.map +1 -1
  197. package/lib/features/bounds/layouter.d.ts +1 -17
  198. package/lib/features/bounds/layouter.d.ts.map +1 -1
  199. package/lib/features/bounds/layouter.js +9 -11
  200. package/lib/features/bounds/layouter.js.map +1 -1
  201. package/lib/features/bounds/vbox-layout.d.ts +1 -17
  202. package/lib/features/bounds/vbox-layout.d.ts.map +1 -1
  203. package/lib/features/bounds/vbox-layout.js +10 -12
  204. package/lib/features/bounds/vbox-layout.js.map +1 -1
  205. package/lib/features/bounds/vbox-layout.spec.d.ts.map +1 -1
  206. package/lib/features/bounds/vbox-layout.spec.js +3 -4
  207. package/lib/features/bounds/vbox-layout.spec.js.map +1 -1
  208. package/lib/features/change-bounds/model.d.ts +2 -2
  209. package/lib/features/change-bounds/model.d.ts.map +1 -1
  210. package/lib/features/change-bounds/model.js +7 -7
  211. package/lib/features/change-bounds/model.js.map +1 -1
  212. package/lib/features/change-bounds/movement-restrictor.d.ts +2 -18
  213. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  214. package/lib/features/change-bounds/movement-restrictor.js +22 -8
  215. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  216. package/lib/features/change-bounds/snap.d.ts +1 -17
  217. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  218. package/lib/features/change-bounds/snap.js +19 -5
  219. package/lib/features/change-bounds/snap.js.map +1 -1
  220. package/lib/features/change-bounds/snap.spec.d.ts +1 -1
  221. package/lib/features/change-bounds/snap.spec.js +6 -6
  222. package/lib/features/change-bounds/snap.spec.js.map +1 -1
  223. package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
  224. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  225. package/lib/features/command-palette/command-palette-tool.js +6 -7
  226. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  227. package/lib/features/command-palette/di.config.d.ts +15 -0
  228. package/lib/features/command-palette/di.config.d.ts.map +1 -1
  229. package/lib/features/command-palette/di.config.js +5 -7
  230. package/lib/features/command-palette/di.config.js.map +1 -1
  231. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -17
  232. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  233. package/lib/features/command-palette/server-command-palette-provider.js +8 -10
  234. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  235. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -17
  236. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  237. package/lib/features/context-menu/delete-element-context-menu.js +6 -8
  238. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  239. package/lib/features/context-menu/di.config.d.ts +15 -0
  240. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  241. package/lib/features/context-menu/di.config.js +7 -9
  242. package/lib/features/context-menu/di.config.js.map +1 -1
  243. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -18
  244. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  245. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +23 -10
  246. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  247. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -17
  248. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  249. package/lib/features/context-menu/server-context-menu-provider.js +9 -12
  250. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  251. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +1 -17
  252. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  253. package/lib/features/copy-paste/copy-paste-context-menu.js +12 -16
  254. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  255. package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -17
  256. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  257. package/lib/features/copy-paste/copy-paste-handler.js +11 -14
  258. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  259. package/lib/features/copy-paste/di.config.d.ts +1 -1
  260. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  261. package/lib/features/copy-paste/di.config.js +6 -7
  262. package/lib/features/copy-paste/di.config.js.map +1 -1
  263. package/lib/features/decoration/decoration-placer.d.ts +1 -17
  264. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  265. package/lib/features/decoration/decoration-placer.js +7 -9
  266. package/lib/features/decoration/decoration-placer.js.map +1 -1
  267. package/lib/features/decoration/di.config.d.ts +15 -0
  268. package/lib/features/decoration/di.config.d.ts.map +1 -1
  269. package/lib/features/decoration/di.config.js +2 -3
  270. package/lib/features/decoration/di.config.js.map +1 -1
  271. package/lib/features/edit-label/di.config.d.ts +15 -0
  272. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  273. package/lib/features/edit-label/di.config.js +5 -7
  274. package/lib/features/edit-label/di.config.js.map +1 -1
  275. package/lib/features/edit-label/edit-label-tool.d.ts +1 -4
  276. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  277. package/lib/features/edit-label/edit-label-tool.js +7 -15
  278. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  279. package/lib/features/edit-label/edit-label-validator.d.ts +1 -17
  280. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  281. package/lib/features/edit-label/edit-label-validator.js +12 -15
  282. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  283. package/lib/features/export/di.config.d.ts +15 -0
  284. package/lib/features/export/di.config.d.ts.map +1 -1
  285. package/lib/features/export/di.config.js +5 -6
  286. package/lib/features/export/di.config.js.map +1 -1
  287. package/lib/features/export/glsp-svg-exporter.d.ts +1 -17
  288. package/lib/features/export/glsp-svg-exporter.d.ts.map +1 -1
  289. package/lib/features/export/glsp-svg-exporter.js +19 -5
  290. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  291. package/lib/features/hints/di.config.d.ts +15 -0
  292. package/lib/features/hints/di.config.d.ts.map +1 -1
  293. package/lib/features/hints/di.config.js +5 -7
  294. package/lib/features/hints/di.config.js.map +1 -1
  295. package/lib/features/hints/model.d.ts +2 -3
  296. package/lib/features/hints/model.d.ts.map +1 -1
  297. package/lib/features/hints/model.js.map +1 -1
  298. package/lib/features/hints/type-hints.d.ts +3 -19
  299. package/lib/features/hints/type-hints.d.ts.map +1 -1
  300. package/lib/features/hints/type-hints.js +23 -27
  301. package/lib/features/hints/type-hints.js.map +1 -1
  302. package/lib/features/hover/di.config.d.ts +15 -0
  303. package/lib/features/hover/di.config.d.ts.map +1 -1
  304. package/lib/features/hover/di.config.js +18 -20
  305. package/lib/features/hover/di.config.js.map +1 -1
  306. package/lib/features/hover/hover.d.ts +1 -17
  307. package/lib/features/hover/hover.d.ts.map +1 -1
  308. package/lib/features/hover/hover.js +11 -15
  309. package/lib/features/hover/hover.js.map +1 -1
  310. package/lib/features/layout/di.config.js +4 -4
  311. package/lib/features/layout/di.config.js.map +1 -1
  312. package/lib/features/layout/layout-elements-action.d.ts +2 -18
  313. package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
  314. package/lib/features/layout/layout-elements-action.js +28 -35
  315. package/lib/features/layout/layout-elements-action.js.map +1 -1
  316. package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -1
  317. package/lib/features/layout/layout-elements-action.spec.js +12 -16
  318. package/lib/features/layout/layout-elements-action.spec.js.map +1 -1
  319. package/lib/features/navigation/di.config.d.ts +15 -0
  320. package/lib/features/navigation/di.config.d.ts.map +1 -1
  321. package/lib/features/navigation/di.config.js +5 -6
  322. package/lib/features/navigation/di.config.js.map +1 -1
  323. package/lib/features/navigation/navigation-action-handler.d.ts +1 -17
  324. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  325. package/lib/features/navigation/navigation-action-handler.js +23 -25
  326. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  327. package/lib/features/navigation/navigation-target-resolver.d.ts +1 -17
  328. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  329. package/lib/features/navigation/navigation-target-resolver.js +11 -13
  330. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  331. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  332. package/lib/features/navigation/navigation-target-resolver.spec.js +16 -17
  333. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  334. package/lib/features/reconnect/model.d.ts +2 -2
  335. package/lib/features/reconnect/model.d.ts.map +1 -1
  336. package/lib/features/reconnect/model.js +7 -7
  337. package/lib/features/reconnect/model.js.map +1 -1
  338. package/lib/features/routing/di.config.d.ts +22 -0
  339. package/lib/features/routing/di.config.d.ts.map +1 -0
  340. package/lib/features/routing/di.config.js +57 -0
  341. package/lib/features/routing/di.config.js.map +1 -0
  342. package/lib/features/{tools → routing}/glsp-manhattan-edge-router.d.ts +1 -1
  343. package/lib/features/routing/glsp-manhattan-edge-router.d.ts.map +1 -0
  344. package/lib/features/{tools → routing}/glsp-manhattan-edge-router.js +5 -6
  345. package/lib/features/routing/glsp-manhattan-edge-router.js.map +1 -0
  346. package/lib/features/save/di.config.d.ts +15 -0
  347. package/lib/features/save/di.config.d.ts.map +1 -1
  348. package/lib/features/save/di.config.js +2 -3
  349. package/lib/features/save/di.config.js.map +1 -1
  350. package/lib/features/save/model.d.ts +2 -2
  351. package/lib/features/save/model.d.ts.map +1 -1
  352. package/lib/features/save/save-keylistener.d.ts +2 -3
  353. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  354. package/lib/features/save/save-keylistener.js +5 -7
  355. package/lib/features/save/save-keylistener.js.map +1 -1
  356. package/lib/features/select/di.config.d.ts +15 -0
  357. package/lib/features/select/di.config.d.ts.map +1 -1
  358. package/lib/features/select/di.config.js +7 -11
  359. package/lib/features/select/di.config.js.map +1 -1
  360. package/lib/features/select/select-feedback-command.d.ts +12 -0
  361. package/lib/features/select/select-feedback-command.d.ts.map +1 -0
  362. package/lib/features/select/{select-feedback-action.js → select-feedback-command.js} +10 -24
  363. package/lib/features/select/select-feedback-command.js.map +1 -0
  364. package/lib/features/select/select-mouse-listener.d.ts +3 -4
  365. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  366. package/lib/features/select/select-mouse-listener.js +25 -28
  367. package/lib/features/select/select-mouse-listener.js.map +1 -1
  368. package/lib/features/source-model-watcher/di.config.d.ts +15 -0
  369. package/lib/features/source-model-watcher/di.config.d.ts.map +1 -1
  370. package/lib/features/source-model-watcher/di.config.js +3 -4
  371. package/lib/features/source-model-watcher/di.config.js.map +1 -1
  372. package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts +1 -17
  373. package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -1
  374. package/lib/features/source-model-watcher/source-model-changed-action-handler.js +11 -14
  375. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  376. package/lib/features/svg-metadata/di.config.js +2 -2
  377. package/lib/features/svg-metadata/di.config.js.map +1 -1
  378. package/lib/features/svg-metadata/metadata-placer.d.ts +1 -2
  379. package/lib/features/svg-metadata/metadata-placer.d.ts.map +1 -1
  380. package/lib/features/svg-metadata/metadata-placer.js +13 -16
  381. package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
  382. package/lib/features/tool-palette/di.config.d.ts +15 -0
  383. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  384. package/lib/features/tool-palette/di.config.js +4 -6
  385. package/lib/features/tool-palette/di.config.js.map +1 -1
  386. package/lib/features/tool-palette/tool-palette.d.ts +7 -21
  387. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  388. package/lib/features/tool-palette/tool-palette.js +40 -36
  389. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  390. package/lib/features/tools/base-glsp-creation-tool.d.ts +10 -0
  391. package/lib/features/tools/base-glsp-creation-tool.d.ts.map +1 -0
  392. package/lib/features/tools/base-glsp-creation-tool.js +45 -0
  393. package/lib/features/tools/base-glsp-creation-tool.js.map +1 -0
  394. package/lib/features/tools/base-glsp-tool.d.ts +26 -24
  395. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  396. package/lib/features/tools/base-glsp-tool.js +52 -15
  397. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  398. package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.d.ts +12 -22
  399. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -0
  400. package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.js +57 -41
  401. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -0
  402. package/lib/features/tools/{change-bounds-tool.d.ts → change-bounds/change-bounds-tool.d.ts} +13 -30
  403. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -0
  404. package/lib/features/tools/{change-bounds-tool.js → change-bounds/change-bounds-tool.js} +68 -55
  405. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -0
  406. package/lib/features/tools/change-bounds/di.config.d.ts +19 -0
  407. package/lib/features/tools/change-bounds/di.config.d.ts.map +1 -0
  408. package/lib/features/tools/change-bounds/di.config.js +32 -0
  409. package/lib/features/tools/change-bounds/di.config.js.map +1 -0
  410. package/lib/features/tools/change-bounds/view.d.ts +9 -0
  411. package/lib/features/tools/change-bounds/view.d.ts.map +1 -0
  412. package/lib/features/{tool-feedback → tools/change-bounds}/view.js +8 -25
  413. package/lib/features/tools/change-bounds/view.js.map +1 -0
  414. package/lib/features/tools/deletion/delete-tool.d.ts +31 -0
  415. package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -0
  416. package/lib/features/tools/{delete-tool.js → deletion/delete-tool.js} +23 -42
  417. package/lib/features/tools/deletion/delete-tool.js.map +1 -0
  418. package/lib/features/{mouse-tool → tools/deletion}/di.config.d.ts +3 -3
  419. package/lib/features/tools/deletion/di.config.d.ts.map +1 -0
  420. package/lib/features/{mouse-tool → tools/deletion}/di.config.js +8 -9
  421. package/lib/features/tools/deletion/di.config.js.map +1 -0
  422. package/lib/features/{tool-feedback/creation-tool-feedback.d.ts → tools/edge-creation/dangling-edge-feedback.d.ts} +5 -26
  423. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts.map +1 -0
  424. package/lib/features/tools/edge-creation/dangling-edge-feedback.js +151 -0
  425. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -0
  426. package/lib/features/tools/edge-creation/di.config.d.ts +19 -0
  427. package/lib/features/tools/edge-creation/di.config.d.ts.map +1 -0
  428. package/lib/features/tools/edge-creation/di.config.js +29 -0
  429. package/lib/features/tools/edge-creation/di.config.js.map +1 -0
  430. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +26 -0
  431. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -0
  432. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +74 -0
  433. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -0
  434. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +31 -0
  435. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -0
  436. package/lib/features/tools/{edge-creation-tool.js → edge-creation/edge-creation-tool.js} +38 -50
  437. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -0
  438. package/lib/features/tools/edge-creation/view.d.ts +10 -0
  439. package/lib/features/tools/edge-creation/view.d.ts.map +1 -0
  440. package/lib/features/tools/edge-creation/view.js +43 -0
  441. package/lib/features/tools/edge-creation/view.js.map +1 -0
  442. package/lib/features/tools/edge-edit/di.config.d.ts +19 -0
  443. package/lib/features/tools/edge-edit/di.config.d.ts.map +1 -0
  444. package/lib/features/tools/edge-edit/di.config.js +35 -0
  445. package/lib/features/tools/edge-edit/di.config.js.map +1 -0
  446. package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.d.ts +14 -24
  447. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -0
  448. package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.js +65 -62
  449. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -0
  450. package/lib/features/tools/{edge-edit-tool.d.ts → edge-edit/edge-edit-tool.d.ts} +7 -25
  451. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -0
  452. package/lib/features/tools/{edge-edit-tool.js → edge-edit/edge-edit-tool.js} +43 -50
  453. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -0
  454. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +8 -3
  455. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -1
  456. package/lib/features/tools/enable-default-tools-on-focus-loss.js +26 -5
  457. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -1
  458. package/lib/features/tools/marquee-selection/di.config.d.ts +19 -0
  459. package/lib/features/tools/marquee-selection/di.config.d.ts.map +1 -0
  460. package/lib/features/tools/marquee-selection/di.config.js +34 -0
  461. package/lib/features/tools/marquee-selection/di.config.js.map +1 -0
  462. package/lib/features/tools/{marquee-behavior.d.ts → marquee-selection/marquee-behavior.d.ts} +11 -11
  463. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts.map +1 -0
  464. package/lib/features/tools/{marquee-behavior.js → marquee-selection/marquee-behavior.js} +5 -5
  465. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -0
  466. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +1 -0
  467. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +1 -0
  468. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +29 -0
  469. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -0
  470. package/lib/features/tools/{marquee-mouse-tool.js → marquee-selection/marquee-mouse-tool.js} +24 -41
  471. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -0
  472. package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.d.ts +2 -18
  473. package/lib/features/tools/marquee-selection/marquee-tool-feedback.d.ts.map +1 -0
  474. package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.js +14 -17
  475. package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -0
  476. package/lib/features/tools/marquee-selection/marquee-tool.d.ts +12 -0
  477. package/lib/features/tools/marquee-selection/marquee-tool.d.ts.map +1 -0
  478. package/lib/features/tools/marquee-selection/marquee-tool.js +57 -0
  479. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -0
  480. package/lib/features/tools/{model.d.ts → marquee-selection/model.d.ts} +2 -3
  481. package/lib/features/tools/marquee-selection/model.d.ts.map +1 -0
  482. package/lib/{base/actions/sprotty-actions.js → features/tools/marquee-selection/model.js} +8 -5
  483. package/lib/features/tools/marquee-selection/model.js.map +1 -0
  484. package/lib/features/tools/{view.d.ts → marquee-selection/view.d.ts} +1 -1
  485. package/lib/features/tools/marquee-selection/view.d.ts.map +1 -0
  486. package/lib/features/tools/{view.js → marquee-selection/view.js} +5 -6
  487. package/lib/features/tools/marquee-selection/view.js.map +1 -0
  488. package/lib/features/tools/node-creation/di.config.d.ts +19 -0
  489. package/lib/features/tools/node-creation/di.config.d.ts.map +1 -0
  490. package/lib/features/{rank/model.js → tools/node-creation/di.config.js} +12 -13
  491. package/lib/features/tools/node-creation/di.config.js.map +1 -0
  492. package/lib/features/tools/node-creation/node-creation-tool.d.ts +22 -0
  493. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -0
  494. package/lib/features/tools/{node-creation-tool.js → node-creation/node-creation-tool.js} +24 -38
  495. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -0
  496. package/lib/features/validation/di.config.d.ts +15 -0
  497. package/lib/features/validation/di.config.d.ts.map +1 -1
  498. package/lib/features/validation/di.config.js +7 -9
  499. package/lib/features/validation/di.config.js.map +1 -1
  500. package/lib/features/validation/issue-marker.d.ts +2 -3
  501. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  502. package/lib/features/validation/issue-marker.js +9 -10
  503. package/lib/features/validation/issue-marker.js.map +1 -1
  504. package/lib/features/validation/marker-navigator.d.ts +4 -19
  505. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  506. package/lib/features/validation/marker-navigator.js +29 -36
  507. package/lib/features/validation/marker-navigator.js.map +1 -1
  508. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  509. package/lib/features/validation/marker-navigator.spec.js +23 -10
  510. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  511. package/lib/features/validation/validate.d.ts +3 -19
  512. package/lib/features/validation/validate.d.ts.map +1 -1
  513. package/lib/features/validation/validate.js +23 -30
  514. package/lib/features/validation/validate.js.map +1 -1
  515. package/lib/features/viewport/di.config.d.ts +15 -0
  516. package/lib/features/viewport/di.config.d.ts.map +1 -1
  517. package/lib/features/viewport/di.config.js +10 -11
  518. package/lib/features/viewport/di.config.js.map +1 -1
  519. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -17
  520. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  521. package/lib/features/viewport/glsp-scroll-mouse-listener.js +21 -7
  522. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  523. package/lib/{base/tool-manager/tool-actions.d.ts → glsp-sprotty/augmented-actions.d.ts} +7 -2
  524. package/lib/glsp-sprotty/augmented-actions.d.ts.map +1 -0
  525. package/lib/{base/tool-manager/tool-actions.js → glsp-sprotty/augmented-actions.js} +6 -2
  526. package/lib/glsp-sprotty/augmented-actions.js.map +1 -0
  527. package/lib/{sprotty-reexport.d.ts → glsp-sprotty/index.d.ts} +32 -16
  528. package/lib/glsp-sprotty/index.d.ts.map +1 -0
  529. package/lib/{sprotty-reexport.js → glsp-sprotty/index.js} +72 -38
  530. package/lib/glsp-sprotty/index.js.map +1 -0
  531. package/lib/{base → glsp-sprotty}/types.d.ts +4 -8
  532. package/lib/glsp-sprotty/types.d.ts.map +1 -0
  533. package/lib/{base → glsp-sprotty}/types.js +3 -2
  534. package/lib/glsp-sprotty/types.js.map +1 -0
  535. package/lib/index.d.ts +49 -32
  536. package/lib/index.d.ts.map +1 -1
  537. package/lib/index.js +98 -73
  538. package/lib/index.js.map +1 -1
  539. package/lib/lib/model.d.ts +1 -2
  540. package/lib/lib/model.d.ts.map +1 -1
  541. package/lib/lib/model.js +8 -9
  542. package/lib/lib/model.js.map +1 -1
  543. package/lib/model-source/glsp-diagram-server.d.ts +1 -17
  544. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  545. package/lib/model-source/glsp-diagram-server.js +14 -13
  546. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  547. package/lib/utils/argument-utils.d.ts +2 -2
  548. package/lib/utils/argument-utils.d.ts.map +1 -1
  549. package/lib/utils/argument-utils.js +2 -2
  550. package/lib/utils/argument-utils.js.map +1 -1
  551. package/lib/utils/layout-utils.d.ts +2 -3
  552. package/lib/utils/layout-utils.d.ts.map +1 -1
  553. package/lib/utils/layout-utils.js.map +1 -1
  554. package/lib/utils/marker.d.ts +16 -1
  555. package/lib/utils/marker.d.ts.map +1 -1
  556. package/lib/utils/marker.js +7 -8
  557. package/lib/utils/marker.js.map +1 -1
  558. package/lib/utils/smodel-util.d.ts +6 -5
  559. package/lib/utils/smodel-util.d.ts.map +1 -1
  560. package/lib/utils/smodel-util.js +32 -16
  561. package/lib/utils/smodel-util.js.map +1 -1
  562. package/lib/utils/smodel-util.spec.d.ts +2 -0
  563. package/lib/utils/smodel-util.spec.d.ts.map +1 -0
  564. package/lib/utils/smodel-util.spec.js +184 -0
  565. package/lib/utils/smodel-util.spec.js.map +1 -0
  566. package/lib/utils/viewpoint-util.d.ts +21 -3
  567. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  568. package/lib/utils/viewpoint-util.js +35 -7
  569. package/lib/utils/viewpoint-util.js.map +1 -1
  570. package/lib/views/base-view-module.d.ts +1 -1
  571. package/lib/views/base-view-module.d.ts.map +1 -1
  572. package/lib/views/base-view-module.js +21 -22
  573. package/lib/views/base-view-module.js.map +1 -1
  574. package/lib/views/compartments.d.ts +1 -1
  575. package/lib/views/compartments.d.ts.map +1 -1
  576. package/lib/views/compartments.js +5 -6
  577. package/lib/views/compartments.js.map +1 -1
  578. package/lib/views/glsp-edge-view.d.ts +1 -17
  579. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  580. package/lib/views/glsp-edge-view.js +19 -5
  581. package/lib/views/glsp-edge-view.js.map +1 -1
  582. package/lib/views/glsp-projection-view.d.ts +2 -4
  583. package/lib/views/glsp-projection-view.d.ts.map +1 -1
  584. package/lib/views/glsp-projection-view.js +12 -11
  585. package/lib/views/glsp-projection-view.js.map +1 -1
  586. package/lib/views/issue-marker-view.d.ts +1 -1
  587. package/lib/views/issue-marker-view.d.ts.map +1 -1
  588. package/lib/views/issue-marker-view.js +6 -7
  589. package/lib/views/issue-marker-view.js.map +1 -1
  590. package/lib/views/rounded-corner-view.d.ts +1 -1
  591. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  592. package/lib/views/rounded-corner-view.js +5 -6
  593. package/lib/views/rounded-corner-view.js.map +1 -1
  594. package/lib/views/rounded-corner.d.ts +1 -2
  595. package/lib/views/rounded-corner.d.ts.map +1 -1
  596. package/lib/views/rounded-corner.js.map +1 -1
  597. package/package.json +9 -6
  598. package/src/base/action-dispatcher.ts +5 -4
  599. package/src/base/actions/focus-change-action.ts +2 -2
  600. package/src/base/argumentable.ts +2 -3
  601. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  602. package/src/base/auto-complete/auto-complete-widget.ts +32 -11
  603. package/src/base/auto-complete/validation-decorator.ts +2 -3
  604. package/src/base/command-stack.ts +55 -3
  605. package/src/base/di.config.ts +40 -6
  606. package/src/base/drag-aware-mouse-listener.ts +4 -5
  607. package/src/base/editor-context-service.ts +41 -14
  608. package/src/{features/tool-feedback → base/feedback}/css-feedback.ts +3 -6
  609. package/src/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.ts +32 -26
  610. package/src/{features/tool-feedback/model.ts → base/feedback/feedback-command.ts} +2 -2
  611. package/src/base/{model → feedback}/update-model-command.ts +9 -32
  612. package/src/base/focus-tracker.ts +2 -4
  613. package/src/base/model/model-registry.ts +2 -2
  614. package/src/base/model-initialization-constraint.ts +2 -3
  615. package/src/base/ranked.ts +42 -0
  616. package/src/base/selection-clearing-mouse-listener.ts +2 -2
  617. package/src/{features/select → base}/selection-service.spec.ts +51 -124
  618. package/src/{features/select → base}/selection-service.ts +98 -40
  619. package/src/base/source-uri-aware.ts +2 -2
  620. package/src/base/tool-manager/glsp-tool-manager.ts +5 -7
  621. package/src/{features/rank/model.ts → base/view/key-tool.ts} +9 -13
  622. package/src/{features/mouse-tool → base/view}/mouse-tool.ts +15 -18
  623. package/src/base/view/view-registry.ts +2 -2
  624. package/src/{base/container-modules.ts → container-modules.ts} +36 -28
  625. package/src/features/accessibility/README.md +65 -0
  626. package/src/features/accessibility/di.config.ts +32 -0
  627. package/src/features/accessibility/move-zoom/di.config.ts +42 -0
  628. package/src/features/accessibility/move-zoom/move-handler.ts +209 -0
  629. package/src/features/accessibility/move-zoom/zoom-handler.ts +182 -0
  630. package/src/features/accessibility/resize-key-tool/di.config.ts +35 -0
  631. package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +129 -0
  632. package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +106 -0
  633. package/src/features/accessibility/search/di.config.ts +30 -0
  634. package/src/features/accessibility/search/search-palette.ts +193 -0
  635. package/src/features/accessibility/search/search-tool.ts +59 -0
  636. package/src/features/accessibility/view-key-tools/deselect-key-tool.ts +88 -0
  637. package/src/features/accessibility/view-key-tools/di.config.ts +32 -0
  638. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +113 -0
  639. package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +92 -0
  640. package/src/{base/actions/sprotty-actions.ts → features/autocomplete-palette/autocomplete-suggestion-providers.ts} +21 -10
  641. package/src/features/autocomplete-palette/base-autocomplete-palette.ts +87 -0
  642. package/src/features/bounds/di.config.ts +7 -7
  643. package/src/features/bounds/freeform-layout.spec.ts +2 -2
  644. package/src/features/bounds/freeform-layout.ts +12 -4
  645. package/src/features/bounds/glsp-hidden-bounds-updater.ts +13 -2
  646. package/src/features/bounds/hbox-layout.spec.ts +2 -3
  647. package/src/features/bounds/hbox-layout.ts +8 -6
  648. package/src/features/bounds/layouter-test-util.spec.ts +7 -6
  649. package/src/features/bounds/layouter.ts +6 -6
  650. package/src/features/bounds/vbox-layout.spec.ts +2 -3
  651. package/src/features/bounds/vbox-layout.ts +7 -5
  652. package/src/features/change-bounds/model.ts +2 -2
  653. package/src/features/change-bounds/movement-restrictor.ts +4 -5
  654. package/src/features/change-bounds/snap.spec.ts +2 -2
  655. package/src/features/change-bounds/snap.ts +2 -3
  656. package/src/features/command-palette/command-palette-tool.ts +1 -1
  657. package/src/features/command-palette/di.config.ts +1 -3
  658. package/src/features/command-palette/server-command-palette-provider.ts +11 -4
  659. package/src/features/context-menu/delete-element-context-menu.ts +2 -4
  660. package/src/features/context-menu/di.config.ts +1 -3
  661. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +4 -6
  662. package/src/features/context-menu/server-context-menu-provider.ts +12 -4
  663. package/src/features/copy-paste/copy-paste-context-menu.ts +16 -5
  664. package/src/features/copy-paste/copy-paste-handler.ts +9 -3
  665. package/src/features/copy-paste/di.config.ts +2 -3
  666. package/src/features/decoration/decoration-placer.ts +2 -3
  667. package/src/features/decoration/di.config.ts +1 -2
  668. package/src/features/edit-label/di.config.ts +1 -3
  669. package/src/features/edit-label/edit-label-tool.ts +6 -14
  670. package/src/features/edit-label/edit-label-validator.ts +9 -6
  671. package/src/features/export/di.config.ts +1 -2
  672. package/src/features/export/glsp-svg-exporter.ts +1 -2
  673. package/src/features/hints/di.config.ts +2 -4
  674. package/src/features/hints/model.ts +2 -3
  675. package/src/features/hints/type-hints.ts +15 -11
  676. package/src/features/hover/di.config.ts +6 -6
  677. package/src/features/hover/hover.ts +16 -10
  678. package/src/features/layout/di.config.ts +2 -2
  679. package/src/features/layout/layout-elements-action.spec.ts +14 -18
  680. package/src/features/layout/layout-elements-action.ts +15 -13
  681. package/src/features/navigation/di.config.ts +1 -2
  682. package/src/features/navigation/navigation-action-handler.ts +12 -8
  683. package/src/features/navigation/navigation-target-resolver.spec.ts +2 -3
  684. package/src/features/navigation/navigation-target-resolver.ts +10 -4
  685. package/src/features/reconnect/model.ts +2 -2
  686. package/src/features/routing/di.config.ts +82 -0
  687. package/src/features/{tools → routing}/glsp-manhattan-edge-router.ts +1 -2
  688. package/src/features/save/di.config.ts +1 -2
  689. package/src/features/save/model.ts +2 -2
  690. package/src/features/save/save-keylistener.ts +2 -4
  691. package/src/features/select/di.config.ts +3 -7
  692. package/src/features/select/{select-feedback-action.ts → select-feedback-command.ts} +3 -19
  693. package/src/features/select/select-mouse-listener.ts +13 -12
  694. package/src/features/source-model-watcher/di.config.ts +2 -3
  695. package/src/features/source-model-watcher/source-model-changed-action-handler.ts +12 -5
  696. package/src/features/svg-metadata/di.config.ts +1 -1
  697. package/src/features/svg-metadata/metadata-placer.ts +2 -4
  698. package/src/features/tool-palette/di.config.ts +1 -3
  699. package/src/features/tool-palette/tool-palette.ts +29 -19
  700. package/src/features/tools/base-glsp-creation-tool.ts +40 -0
  701. package/src/features/tools/base-glsp-tool.ts +33 -13
  702. package/src/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.ts +62 -29
  703. package/src/features/tools/{change-bounds-tool.ts → change-bounds/change-bounds-tool.ts} +76 -49
  704. package/src/features/tools/change-bounds/di.config.ts +31 -0
  705. package/src/features/{tool-feedback → tools/change-bounds}/view.tsx +3 -16
  706. package/src/features/tools/{delete-tool.ts → deletion/delete-tool.ts} +17 -26
  707. package/src/features/{mouse-tool → tools/deletion}/di.config.ts +8 -9
  708. package/src/features/{tool-feedback/creation-tool-feedback.ts → tools/edge-creation/dangling-edge-feedback.ts} +26 -93
  709. package/src/features/tools/edge-creation/di.config.ts +28 -0
  710. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +89 -0
  711. package/src/features/tools/{edge-creation-tool.ts → edge-creation/edge-creation-tool.ts} +34 -49
  712. package/{lib/features/tool-feedback/view.d.ts → src/features/tools/edge-creation/view.tsx} +13 -12
  713. package/src/features/tools/edge-edit/di.config.ts +41 -0
  714. package/src/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.ts +40 -25
  715. package/src/features/tools/{edge-edit-tool.ts → edge-edit/edge-edit-tool.ts} +40 -36
  716. package/src/features/tools/enable-default-tools-on-focus-loss.ts +12 -4
  717. package/src/features/tools/marquee-selection/di.config.ts +35 -0
  718. package/src/features/tools/{marquee-behavior.ts → marquee-selection/marquee-behavior.ts} +11 -12
  719. package/src/features/tools/{marquee-mouse-tool.ts → marquee-selection/marquee-mouse-tool.ts} +21 -30
  720. package/src/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.ts +7 -5
  721. package/src/features/tools/{marquee-tool.ts → marquee-selection/marquee-tool.ts} +6 -13
  722. package/src/features/tools/{model.ts → marquee-selection/model.ts} +2 -3
  723. package/src/features/tools/{view.tsx → marquee-selection/view.tsx} +2 -2
  724. package/{lib/features/tools/di.config.d.ts → src/features/tools/node-creation/di.config.ts} +10 -12
  725. package/src/features/tools/{node-creation-tool.ts → node-creation/node-creation-tool.ts} +22 -37
  726. package/src/features/validation/di.config.ts +1 -3
  727. package/src/features/validation/issue-marker.ts +13 -3
  728. package/src/features/validation/marker-navigator.spec.ts +7 -8
  729. package/src/features/validation/marker-navigator.ts +21 -16
  730. package/src/features/validation/validate.ts +18 -6
  731. package/src/features/viewport/di.config.ts +2 -2
  732. package/src/features/viewport/glsp-scroll-mouse-listener.ts +11 -4
  733. package/src/{base/tool-manager/tool-actions.ts → glsp-sprotty/augmented-actions.ts} +14 -3
  734. package/src/{sprotty-reexport.ts → glsp-sprotty/index.ts} +82 -42
  735. package/src/{base → glsp-sprotty}/types.ts +4 -5
  736. package/src/index.ts +75 -48
  737. package/src/lib/model.ts +12 -2
  738. package/src/model-source/glsp-diagram-server.ts +16 -5
  739. package/src/utils/argument-utils.ts +2 -2
  740. package/src/utils/layout-utils.ts +2 -3
  741. package/src/utils/marker.ts +2 -3
  742. package/src/utils/smodel-util.spec.ts +222 -0
  743. package/src/utils/smodel-util.ts +36 -18
  744. package/src/utils/viewpoint-util.ts +45 -3
  745. package/src/views/base-view-module.ts +8 -7
  746. package/src/views/compartments.tsx +2 -2
  747. package/src/views/glsp-edge-view.tsx +1 -2
  748. package/src/views/glsp-projection-view.tsx +6 -5
  749. package/src/views/issue-marker-view.tsx +2 -2
  750. package/src/views/rounded-corner-view.tsx +1 -1
  751. package/src/views/rounded-corner.ts +1 -2
  752. package/lib/base/actions/sprotty-actions.d.ts +0 -7
  753. package/lib/base/actions/sprotty-actions.d.ts.map +0 -1
  754. package/lib/base/actions/sprotty-actions.js.map +0 -1
  755. package/lib/base/container-modules.d.ts.map +0 -1
  756. package/lib/base/container-modules.js.map +0 -1
  757. package/lib/base/model/update-model-command.d.ts +0 -47
  758. package/lib/base/model/update-model-command.d.ts.map +0 -1
  759. package/lib/base/model/update-model-command.js.map +0 -1
  760. package/lib/base/tool-manager/tool-actions.d.ts.map +0 -1
  761. package/lib/base/tool-manager/tool-actions.js.map +0 -1
  762. package/lib/base/types.d.ts.map +0 -1
  763. package/lib/base/types.js.map +0 -1
  764. package/lib/features/mouse-tool/di.config.d.ts.map +0 -1
  765. package/lib/features/mouse-tool/di.config.js.map +0 -1
  766. package/lib/features/mouse-tool/mouse-tool.d.ts +0 -22
  767. package/lib/features/mouse-tool/mouse-tool.d.ts.map +0 -1
  768. package/lib/features/mouse-tool/mouse-tool.js.map +0 -1
  769. package/lib/features/rank/model.d.ts.map +0 -1
  770. package/lib/features/rank/model.js.map +0 -1
  771. package/lib/features/select/select-feedback-action.d.ts +0 -38
  772. package/lib/features/select/select-feedback-action.d.ts.map +0 -1
  773. package/lib/features/select/select-feedback-action.js.map +0 -1
  774. package/lib/features/select/selection-service.d.ts.map +0 -1
  775. package/lib/features/select/selection-service.js.map +0 -1
  776. package/lib/features/select/selection-service.spec.d.ts.map +0 -1
  777. package/lib/features/select/selection-service.spec.js.map +0 -1
  778. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +0 -1
  779. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +0 -1
  780. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +0 -1
  781. package/lib/features/tool-feedback/creation-tool-feedback.js +0 -215
  782. package/lib/features/tool-feedback/creation-tool-feedback.js.map +0 -1
  783. package/lib/features/tool-feedback/css-feedback.d.ts.map +0 -1
  784. package/lib/features/tool-feedback/css-feedback.js.map +0 -1
  785. package/lib/features/tool-feedback/di.config.d.ts +0 -4
  786. package/lib/features/tool-feedback/di.config.d.ts.map +0 -1
  787. package/lib/features/tool-feedback/di.config.js +0 -55
  788. package/lib/features/tool-feedback/di.config.js.map +0 -1
  789. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +0 -1
  790. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +0 -1
  791. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +0 -1
  792. package/lib/features/tool-feedback/feedback-action-dispatcher.js +0 -60
  793. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +0 -1
  794. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +0 -1
  795. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +0 -1
  796. package/lib/features/tool-feedback/model.d.ts.map +0 -1
  797. package/lib/features/tool-feedback/model.js.map +0 -1
  798. package/lib/features/tool-feedback/view.d.ts.map +0 -1
  799. package/lib/features/tool-feedback/view.js.map +0 -1
  800. package/lib/features/tools/change-bounds-tool.d.ts.map +0 -1
  801. package/lib/features/tools/change-bounds-tool.js.map +0 -1
  802. package/lib/features/tools/delete-tool.d.ts +0 -52
  803. package/lib/features/tools/delete-tool.d.ts.map +0 -1
  804. package/lib/features/tools/delete-tool.js.map +0 -1
  805. package/lib/features/tools/di.config.d.ts.map +0 -1
  806. package/lib/features/tools/di.config.js +0 -68
  807. package/lib/features/tools/di.config.js.map +0 -1
  808. package/lib/features/tools/edge-creation-tool.d.ts +0 -52
  809. package/lib/features/tools/edge-creation-tool.d.ts.map +0 -1
  810. package/lib/features/tools/edge-creation-tool.js.map +0 -1
  811. package/lib/features/tools/edge-edit-tool.d.ts.map +0 -1
  812. package/lib/features/tools/edge-edit-tool.js.map +0 -1
  813. package/lib/features/tools/glsp-manhattan-edge-router.d.ts.map +0 -1
  814. package/lib/features/tools/glsp-manhattan-edge-router.js.map +0 -1
  815. package/lib/features/tools/marquee-behavior.d.ts.map +0 -1
  816. package/lib/features/tools/marquee-behavior.js.map +0 -1
  817. package/lib/features/tools/marquee-behavior.spec.d.ts.map +0 -1
  818. package/lib/features/tools/marquee-behavior.spec.js.map +0 -1
  819. package/lib/features/tools/marquee-mouse-tool.d.ts +0 -48
  820. package/lib/features/tools/marquee-mouse-tool.d.ts.map +0 -1
  821. package/lib/features/tools/marquee-mouse-tool.js.map +0 -1
  822. package/lib/features/tools/marquee-tool.d.ts.map +0 -1
  823. package/lib/features/tools/marquee-tool.js +0 -54
  824. package/lib/features/tools/marquee-tool.js.map +0 -1
  825. package/lib/features/tools/model.d.ts.map +0 -1
  826. package/lib/features/tools/model.js +0 -9
  827. package/lib/features/tools/model.js.map +0 -1
  828. package/lib/features/tools/node-creation-tool.d.ts +0 -41
  829. package/lib/features/tools/node-creation-tool.d.ts.map +0 -1
  830. package/lib/features/tools/node-creation-tool.js.map +0 -1
  831. package/lib/features/tools/view.d.ts.map +0 -1
  832. package/lib/features/tools/view.js.map +0 -1
  833. package/lib/sprotty-reexport.d.ts.map +0 -1
  834. package/lib/sprotty-reexport.js.map +0 -1
  835. package/src/features/tool-feedback/di.config.ts +0 -67
  836. package/src/features/tools/di.config.ts +0 -69
  837. /package/lib/{features/select → base}/selection-service.spec.d.ts +0 -0
  838. /package/lib/features/tools/{marquee-behavior.spec.d.ts → marquee-selection/marquee-behavior.spec.d.ts} +0 -0
  839. /package/lib/features/tools/{marquee-behavior.spec.js → marquee-selection/marquee-behavior.spec.js} +0 -0
  840. /package/src/features/tools/{marquee-behavior.spec.ts → marquee-selection/marquee-behavior.spec.ts} +0 -0
@@ -0,0 +1,40 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2023 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { injectable } from 'inversify';
17
+ import { Action, EnableToolsAction, IActionHandler } from '~glsp-sprotty';
18
+ import { BaseGLSPTool } from './base-glsp-tool';
19
+
20
+ @injectable()
21
+ export abstract class BaseGLSPCreationTool<T extends Action> extends BaseGLSPTool implements IActionHandler {
22
+ protected abstract isTriggerAction: (obj: any) => obj is T;
23
+ protected triggerAction: T;
24
+
25
+ handle(action: Action): Action | void {
26
+ if (this.isTriggerAction(action)) {
27
+ this.triggerAction = action;
28
+ return EnableToolsAction.create([this.id]);
29
+ }
30
+ }
31
+
32
+ override enable(): void {
33
+ if (this.triggerAction === undefined) {
34
+ throw new TypeError(`Could not enable tool ${this.id}. The triggerAction cannot be undefined.`);
35
+ }
36
+ this.doEnable();
37
+ }
38
+
39
+ protected abstract doEnable(): void;
40
+ }
@@ -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,25 +13,29 @@
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, KeyTool } from 'sprotty';
17
+ import { Action, Disposable, DisposableCollection, IActionDispatcher, TYPES } from '~glsp-sprotty';
19
18
  import { EditorContextService } from '../../base/editor-context-service';
19
+ import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../../base/feedback/feedback-action-dispatcher';
20
20
  import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
21
- import { TYPES } from '../../base/types';
22
- import { IMouseTool } from '../mouse-tool/mouse-tool';
23
- import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
21
+ import { GLSPKeyTool } from '../../base/view/key-tool';
22
+ import { GLSPMouseTool } from '../../base/view/mouse-tool';
24
23
 
25
24
  @injectable()
26
25
  export abstract class BaseGLSPTool implements GLSPTool {
27
26
  @inject(TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
28
27
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher;
29
- @inject(TYPES.MouseTool) protected mouseTool: IMouseTool;
30
- @inject(KeyTool) protected keyTool: KeyTool;
28
+ @inject(GLSPMouseTool) protected mouseTool: GLSPMouseTool;
29
+ @inject(GLSPKeyTool) protected keyTool: GLSPKeyTool;
31
30
  @inject(EditorContextService) protected readonly editorContext: EditorContextService;
32
31
 
32
+ protected readonly toDisposeOnDisable = new DisposableCollection();
33
+
33
34
  abstract enable(): void;
34
- abstract disable(): void;
35
+
36
+ disable(): void {
37
+ this.toDisposeOnDisable.dispose();
38
+ }
35
39
 
36
40
  abstract id: string;
37
41
 
@@ -43,11 +47,27 @@ export abstract class BaseGLSPTool implements GLSPTool {
43
47
  this.actionDispatcher.dispatchAll(actions);
44
48
  }
45
49
 
46
- dispatchFeedback(actions: Action[], feedbackEmitter?: IFeedbackEmitter): void {
47
- this.feedbackDispatcher.registerFeedback(feedbackEmitter ?? this, actions);
50
+ /**
51
+ * Registers `actions` to be sent out as feedback, i.e., changes that are re-established whenever the `SModelRoot`
52
+ * has been set or updated.
53
+ *
54
+ * @param feedbackActions the actions to be sent out.
55
+ * @param feedbackEmitter the emitter sending out feedback actions (this tool by default).
56
+ * @param cleanupActions the actions to be sent out when the feedback is de-registered through the returned Disposable.
57
+ * @returns A 'Disposable' that de-registers the feedback and cleans up any pending feedback with the given `cleanupActions`.
58
+ */
59
+ registerFeedback(feedbackActions: Action[], feedbackEmitter?: IFeedbackEmitter, cleanupActions?: Action[]): Disposable {
60
+ return this.feedbackDispatcher.registerFeedback(feedbackEmitter ?? this, feedbackActions, cleanupActions);
48
61
  }
49
62
 
50
- deregisterFeedback(actions: Action[], feedbackEmitter?: IFeedbackEmitter): void {
51
- this.feedbackDispatcher.deregisterFeedback(feedbackEmitter ?? this, actions);
63
+ /**
64
+ * De-registers all feedback from the given `feedbackEmitter` (this tool by default) and cleans up any pending feedback with the
65
+ * given `cleanupActions`.
66
+ *
67
+ * @param feedbackEmitter the emitter to be deregistered (this tool by default).
68
+ * @param cleanupActions the actions to be dispatched right after the deregistration to clean up any pending feedback.
69
+ */
70
+ deregisterFeedback(feedbackEmitter?: IFeedbackEmitter, cleanupActions?: Action[]): void {
71
+ this.feedbackDispatcher.deregisterFeedback(feedbackEmitter ?? this, cleanupActions);
52
72
  }
53
73
  }
@@ -13,30 +13,33 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, hasStringProp, Point } from '@eclipse-glsp/protocol';
17
16
  import { inject, injectable } from 'inversify';
18
17
  import { VNode } from 'snabbdom';
19
18
  import {
19
+ Action,
20
20
  CommandExecutionContext,
21
21
  CommandReturn,
22
+ Disposable,
22
23
  ElementMove,
23
- findParentByFeature,
24
- isMoveable,
25
- isSelectable,
26
- isViewport,
27
24
  MouseListener,
25
+ MoveAction,
26
+ Point,
28
27
  SChildElement,
29
28
  SModelElement,
30
29
  SModelRoot,
31
- TYPES
32
- } from 'sprotty';
33
- import { MoveAction } from 'sprotty-protocol/lib/actions';
34
- import { forEachElement } from '../../utils/smodel-util';
35
- import { addResizeHandles, isResizable, removeResizeHandles, SResizeHandle } from '../change-bounds/model';
36
- import { createMovementRestrictionFeedback, removeMovementRestrictionFeedback } from '../change-bounds/movement-restrictor';
37
- import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
38
- import { ChangeBoundsTool } from '../tools/change-bounds-tool';
39
- import { FeedbackCommand } from './model';
30
+ TYPES,
31
+ findParentByFeature,
32
+ hasStringProp,
33
+ isMoveable,
34
+ isSelectable,
35
+ isViewport
36
+ } from '~glsp-sprotty';
37
+ import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
38
+ import { FeedbackCommand } from '../../../base/feedback/feedback-command';
39
+ import { forEachElement } from '../../../utils/smodel-util';
40
+ import { SResizeHandle, addResizeHandles, isResizable, removeResizeHandles } from '../../change-bounds/model';
41
+ import { createMovementRestrictionFeedback, removeMovementRestrictionFeedback } from '../../change-bounds/movement-restrictor';
42
+ import { ChangeBoundsTool } from './change-bounds-tool';
40
43
 
41
44
  export interface ShowChangeBoundsToolResizeFeedbackAction extends Action {
42
45
  kind: typeof ShowChangeBoundsToolResizeFeedbackAction.KIND;
@@ -116,9 +119,10 @@ export class HideChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
116
119
  * the visual feedback but also the basis for sending the change to the server
117
120
  * (see also `tools/MoveTool`).
118
121
  */
119
- export class FeedbackMoveMouseListener extends MouseListener {
122
+ export class FeedbackMoveMouseListener extends MouseListener implements Disposable {
120
123
  protected hasDragged = false;
121
- protected startDragPosition: Point | undefined;
124
+ protected rootElement?: SModelRoot;
125
+ protected startDragPosition?: Point;
122
126
  protected elementId2startPos = new Map<string, Point>();
123
127
 
124
128
  constructor(protected tool: ChangeBoundsTool) {
@@ -153,10 +157,12 @@ export class FeedbackMoveMouseListener extends MouseListener {
153
157
  result.push(cursorFeedbackAction(CursorCSS.MOVE));
154
158
  }
155
159
  }
156
- return result;
160
+ this.tool.registerFeedback(result, this);
161
+ return [];
157
162
  }
158
163
 
159
164
  protected collectStartPositions(root: SModelRoot): void {
165
+ this.rootElement = root;
160
166
  const selectedElements = root.index.all().filter(element => isSelectable(element) && element.selected);
161
167
  const elementsSet = new Set(selectedElements);
162
168
  selectedElements
@@ -182,13 +188,29 @@ export class FeedbackMoveMouseListener extends MouseListener {
182
188
  if (!this.startDragPosition) {
183
189
  return undefined;
184
190
  }
185
- const elementMoves: ElementMove[] = [];
191
+
186
192
  const viewport = findParentByFeature(target, isViewport);
187
193
  const zoom = viewport ? viewport.zoom : 1;
188
194
  const delta = {
189
195
  x: (event.pageX - this.startDragPosition.x) / zoom,
190
196
  y: (event.pageY - this.startDragPosition.y) / zoom
191
197
  };
198
+
199
+ const elementMoves: ElementMove[] = this.getElementMovesForDelta(target, delta, !event.shiftKey, finished);
200
+ if (elementMoves.length > 0) {
201
+ return MoveAction.create(elementMoves, { animate: false, finished });
202
+ } else {
203
+ return undefined;
204
+ }
205
+ }
206
+
207
+ protected getElementMovesForDelta(
208
+ target: SModelElement,
209
+ delta: { x: number; y: number },
210
+ isSnap: boolean,
211
+ finished: boolean
212
+ ): ElementMove[] {
213
+ const elementMoves: ElementMove[] = [];
192
214
  this.elementId2startPos.forEach((startPosition, elementId) => {
193
215
  const element = target.root.index.getById(elementId);
194
216
  if (element) {
@@ -198,7 +220,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
198
220
  y: startPosition.y + delta.y
199
221
  },
200
222
  element,
201
- !event.shiftKey
223
+ isSnap
202
224
  );
203
225
 
204
226
  if (isMoveable(element)) {
@@ -214,11 +236,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
214
236
  }
215
237
  }
216
238
  });
217
- if (elementMoves.length > 0) {
218
- return MoveAction.create(elementMoves, { animate: false, finished });
219
- } else {
220
- return undefined;
221
- }
239
+ return elementMoves;
222
240
  }
223
241
 
224
242
  protected validateMove(startPosition: Point, toPosition: Point, element: SModelElement, isFinished: boolean): Point {
@@ -235,8 +253,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
235
253
  } else {
236
254
  action = removeMovementRestrictionFeedback(element, this.tool.movementRestrictor);
237
255
  }
238
-
239
- this.tool.dispatchFeedback([action], this);
256
+ this.tool.registerFeedback([action], this);
240
257
  }
241
258
  return newPosition;
242
259
  }
@@ -263,18 +280,34 @@ export class FeedbackMoveMouseListener extends MouseListener {
263
280
  if (moveAction) {
264
281
  result.push(moveAction);
265
282
  }
283
+ const resetFeedback: Action[] = [];
266
284
  if (this.tool.movementRestrictor) {
267
- this.tool.deregisterFeedback([removeMovementRestrictionFeedback(target, this.tool.movementRestrictor)], this);
285
+ resetFeedback.push(removeMovementRestrictionFeedback(target, this.tool.movementRestrictor));
268
286
  }
269
- result.push(cursorFeedbackAction(CursorCSS.DEFAULT));
287
+ resetFeedback.push(cursorFeedbackAction(CursorCSS.DEFAULT));
288
+ this.tool.deregisterFeedback(this, resetFeedback);
289
+ }
290
+ this.reset();
291
+ return result;
292
+ }
293
+
294
+ protected reset(resetFeedback = false): void {
295
+ if (this.rootElement && resetFeedback) {
296
+ const elementMoves: ElementMove[] = this.getElementMovesForDelta(this.rootElement, { x: 0, y: 0 }, true, true);
297
+ const moveAction = MoveAction.create(elementMoves, { animate: false, finished: true });
298
+ this.tool.deregisterFeedback(this, [moveAction]);
270
299
  }
271
300
  this.hasDragged = false;
272
301
  this.startDragPosition = undefined;
302
+ this.rootElement = undefined;
273
303
  this.elementId2startPos.clear();
274
- return result;
275
304
  }
276
305
 
277
306
  override decorate(vnode: VNode, _element: SModelElement): VNode {
278
307
  return vnode;
279
308
  }
309
+
310
+ dispose(): void {
311
+ this.reset(true);
312
+ }
280
313
  }
@@ -13,57 +13,57 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { inject, injectable, optional } from 'inversify';
17
+
16
18
  import {
17
19
  Action,
18
20
  Bounds,
21
+ BoundsAware,
19
22
  ChangeBoundsOperation,
20
23
  ChangeRoutingPointsOperation,
21
24
  CompoundOperation,
22
25
  Dimension,
26
+ Disposable,
27
+ EdgeRouterRegistry,
23
28
  ElementAndBounds,
24
29
  ElementAndRoutingPoints,
25
- Operation,
26
- Point,
27
- SetBoundsAction
28
- } from '@eclipse-glsp/protocol';
29
- import { inject, injectable, optional } from 'inversify';
30
- import {
31
- BoundsAware,
32
- EdgeRouterRegistry,
33
- findParentByFeature,
34
30
  ISnapper,
35
- isSelected,
36
31
  MouseListener,
32
+ Operation,
33
+ Point,
37
34
  SChildElement,
38
35
  SConnectableElement,
39
36
  SModelElement,
40
37
  SModelRoot,
41
- SParentElement
42
- } from 'sprotty';
43
- import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
44
- import { TYPES } from '../../base/types';
45
- import { isValidMove, isValidSize } from '../../utils/layout-utils';
38
+ SParentElement,
39
+ SetBoundsAction,
40
+ TYPES,
41
+ findParentByFeature,
42
+ isSelected
43
+ } from '~glsp-sprotty';
44
+ import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
45
+ import { CursorCSS, applyCssClasses, cursorFeedbackAction, deleteCssClasses } from '../../../base/feedback/css-feedback';
46
+ import { ISelectionListener, SelectionService } from '../../../base/selection-service';
47
+ import { PointPositionUpdater } from '../../../features/change-bounds/snap';
48
+ import { isValidMove, isValidSize } from '../../../utils/layout-utils';
46
49
  import {
47
50
  calcElementAndRoutingPoints,
48
51
  forEachElement,
49
52
  isNonRoutableSelectedMovableBoundsAware,
50
53
  toElementAndBounds
51
- } from '../../utils/smodel-util';
52
- import { isBoundsAwareMoveable, isResizable, Resizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
54
+ } from '../../../utils/smodel-util';
55
+ import { Resizable, ResizeHandleLocation, SResizeHandle, isBoundsAwareMoveable, isResizable } from '../../change-bounds/model';
53
56
  import {
54
- createMovementRestrictionFeedback,
55
57
  IMovementRestrictor,
58
+ createMovementRestrictionFeedback,
56
59
  removeMovementRestrictionFeedback
57
- } from '../change-bounds/movement-restrictor';
58
- import { PointPositionUpdater } from '../change-bounds/snap';
59
- import { SelectionListener, SelectionService } from '../select/selection-service';
60
+ } from '../../change-bounds/movement-restrictor';
61
+ import { BaseGLSPTool } from '../base-glsp-tool';
60
62
  import {
61
63
  FeedbackMoveMouseListener,
62
64
  HideChangeBoundsToolResizeFeedbackAction,
63
65
  ShowChangeBoundsToolResizeFeedbackAction
64
- } from '../tool-feedback/change-bounds-tool-feedback';
65
- import { applyCssClasses, CursorCSS, cursorFeedbackAction, deleteCssClasses } from '../tool-feedback/css-feedback';
66
- import { BaseGLSPTool } from './base-glsp-tool';
66
+ } from './change-bounds-tool-feedback';
67
67
 
68
68
  /**
69
69
  * The change bounds tool has the license to move multiple elements or resize a single element by implementing the ChangeBounds operation.
@@ -82,12 +82,10 @@ import { BaseGLSPTool } from './base-glsp-tool';
82
82
  export class ChangeBoundsTool extends BaseGLSPTool {
83
83
  static ID = 'glsp.change-bounds-tool';
84
84
 
85
- @inject(TYPES.SelectionService) protected selectionService: SelectionService;
85
+ @inject(SelectionService) protected selectionService: SelectionService;
86
86
  @inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
87
87
  @inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
88
88
  @inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
89
- protected feedbackMoveMouseListener: MouseListener;
90
- protected changeBoundsListener: MouseListener & SelectionListener;
91
89
 
92
90
  get id(): string {
93
91
  return ChangeBoundsTool.ID;
@@ -95,33 +93,36 @@ export class ChangeBoundsTool extends BaseGLSPTool {
95
93
 
96
94
  enable(): void {
97
95
  // install feedback move mouse listener for client-side move updates
98
- this.feedbackMoveMouseListener = this.createMoveMouseListener();
99
- this.mouseTool.register(this.feedbackMoveMouseListener);
96
+ const feedbackMoveMouseListener = this.createMoveMouseListener();
97
+ if (Disposable.is(feedbackMoveMouseListener)) {
98
+ this.toDisposeOnDisable.push(feedbackMoveMouseListener);
99
+ }
100
100
 
101
101
  // install change bounds listener for client-side resize updates and server-side updates
102
- this.changeBoundsListener = this.createChangeBoundsListener();
103
- this.mouseTool.register(this.changeBoundsListener);
104
- this.selectionService.register(this.changeBoundsListener);
102
+ const changeBoundsListener = this.createChangeBoundsListener();
103
+ if (Disposable.is(changeBoundsListener)) {
104
+ this.toDisposeOnDisable.push(changeBoundsListener);
105
+ }
106
+
107
+ this.toDisposeOnDisable.push(
108
+ this.mouseTool.registerListener(feedbackMoveMouseListener),
109
+ this.mouseTool.registerListener(changeBoundsListener),
110
+ Disposable.create(() => this.deregisterFeedback(feedbackMoveMouseListener)),
111
+ Disposable.create(() => this.deregisterFeedback(changeBoundsListener, [HideChangeBoundsToolResizeFeedbackAction.create()])),
112
+ this.selectionService.onSelectionChanged(change => changeBoundsListener.selectionChanged(change.root, change.selectedElements))
113
+ );
105
114
  }
106
115
 
107
116
  protected createMoveMouseListener(): MouseListener {
108
117
  return new FeedbackMoveMouseListener(this);
109
118
  }
110
119
 
111
- protected createChangeBoundsListener(): MouseListener & SelectionListener {
120
+ protected createChangeBoundsListener(): MouseListener & ISelectionListener {
112
121
  return new ChangeBoundsListener(this);
113
122
  }
114
-
115
- disable(): void {
116
- this.mouseTool.deregister(this.changeBoundsListener);
117
- this.selectionService.deregister(this.changeBoundsListener);
118
- this.mouseTool.deregister(this.feedbackMoveMouseListener);
119
- this.deregisterFeedback([], this.feedbackMoveMouseListener);
120
- this.deregisterFeedback([HideChangeBoundsToolResizeFeedbackAction.create()], this.changeBoundsListener);
121
- }
122
123
  }
123
124
 
124
- export class ChangeBoundsListener extends DragAwareMouseListener implements SelectionListener {
125
+ export class ChangeBoundsListener extends DragAwareMouseListener implements ISelectionListener, Disposable {
125
126
  static readonly CSS_CLASS_ACTIVE = 'active';
126
127
 
127
128
  // members for calculating the correct position change
@@ -172,12 +173,12 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
172
173
  const resizeActions = this.handleResizeOnClient(positionUpdate);
173
174
  actions.push(...resizeActions);
174
175
  }
175
- return actions;
176
+ this.tool.registerFeedback(actions, this);
176
177
  }
177
178
  return [];
178
179
  }
179
180
 
180
- override draggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
181
+ override draggingMouseUp(target: SModelElement, _event: MouseEvent): Action[] {
181
182
  if (this.pointPositionUpdater.isLastDragPositionUndefined()) {
182
183
  this.resetPosition();
183
184
  return [];
@@ -192,6 +193,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
192
193
  actions.push(...this.handleMoveOnServer(target));
193
194
  }
194
195
  this.resetPosition();
196
+ this.tool.deregisterFeedback(this, [cursorFeedbackAction(CursorCSS.DEFAULT)]);
195
197
  return actions;
196
198
  }
197
199
 
@@ -291,7 +293,10 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
291
293
  // only allow one element to have the element resize handles
292
294
  this.activeResizeElement = moveableElement;
293
295
  if (isResizable(this.activeResizeElement)) {
294
- this.tool.dispatchFeedback([ShowChangeBoundsToolResizeFeedbackAction.create(this.activeResizeElement.id)], this);
296
+ this.tool.registerFeedback(
297
+ [ShowChangeBoundsToolResizeFeedbackAction.create(this.activeResizeElement.id)],
298
+ this.activeResizeElement
299
+ );
295
300
  }
296
301
  return true;
297
302
  }
@@ -315,12 +320,34 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
315
320
  }
316
321
  }
317
322
 
318
- protected reset(): void {
323
+ dispose(): void {
324
+ this.reset(true);
325
+ }
326
+
327
+ protected reset(resetBounds = false): void {
328
+ this.resetFeedback(resetBounds);
329
+ this.resetPosition();
330
+ }
331
+
332
+ protected resetFeedback(resetBounds = false): void {
333
+ const resetFeedback: Action[] = [];
319
334
  if (this.activeResizeElement && isResizable(this.activeResizeElement)) {
320
- this.tool.dispatchFeedback([HideChangeBoundsToolResizeFeedbackAction.create()], this);
335
+ if (this.initialBounds && this.activeResizeHandle && resetBounds) {
336
+ // we only reset the bounds if an active resize operation was cancelled due to the tool being disabled
337
+ resetFeedback.push(
338
+ SetBoundsAction.create([
339
+ {
340
+ elementId: this.activeResizeElement.id,
341
+ newPosition: this.initialBounds,
342
+ newSize: this.initialBounds
343
+ }
344
+ ])
345
+ );
346
+ }
347
+ this.tool.deregisterFeedback(this.activeResizeElement, [HideChangeBoundsToolResizeFeedbackAction.create()]);
321
348
  }
322
- this.tool.dispatchActions([cursorFeedbackAction(CursorCSS.DEFAULT)]);
323
- this.resetPosition();
349
+ resetFeedback.push(cursorFeedbackAction(CursorCSS.DEFAULT));
350
+ this.tool.deregisterFeedback(this, resetFeedback);
324
351
  }
325
352
 
326
353
  protected resetPosition(): void {
@@ -0,0 +1,31 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2019-2023 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { ContainerModule } from 'inversify';
17
+ import { TYPES, bindAsService, configureCommand, configureView } from '~glsp-sprotty';
18
+ import { SResizeHandle } from '../../../features/change-bounds/model';
19
+ import { ChangeBoundsTool } from './change-bounds-tool';
20
+ import { HideChangeBoundsToolResizeFeedbackCommand, ShowChangeBoundsToolResizeFeedbackCommand } from './change-bounds-tool-feedback';
21
+ import { SResizeHandleView } from './view';
22
+
23
+ const changeBoundsToolModule = new ContainerModule((bind, unbind, isBound, rebind) => {
24
+ const context = { bind, unbind, isBound, rebind };
25
+ bindAsService(context, TYPES.IDefaultTool, ChangeBoundsTool);
26
+ configureCommand(context, ShowChangeBoundsToolResizeFeedbackCommand);
27
+ configureCommand(context, HideChangeBoundsToolResizeFeedbackCommand);
28
+ configureView(context, SResizeHandle.TYPE, SResizeHandleView);
29
+ });
30
+
31
+ export default changeBoundsToolModule;
@@ -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,27 +13,14 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Point } from '@eclipse-glsp/protocol';
17
16
  import { injectable } from 'inversify';
18
17
  import { VNode } from 'snabbdom';
19
- import { IView, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
20
- import { isResizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
18
+ import { IView, Point, RenderingContext, setAttr, svg } from '~glsp-sprotty';
19
+ import { ResizeHandleLocation, SResizeHandle, isResizable } from '../../change-bounds/model';
21
20
 
22
21
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
22
  const JSX = { createElement: svg };
24
23
 
25
- /**
26
- * This view is used for the invisible end of the feedback edge.
27
- * A feedback edge is shown as a visual feedback when creating edges.
28
- */
29
- @injectable()
30
- export class FeedbackEdgeEndView implements IView {
31
- render(model: Readonly<SModelElement>, context: RenderingContext): VNode {
32
- const position: Point = (model as any).position ?? Point.ORIGIN;
33
- return <g x={position.x} y={position.y} />;
34
- }
35
- }
36
-
37
24
  @injectable()
38
25
  export class SResizeHandleView implements IView {
39
26
  render(handle: SResizeHandle, context: RenderingContext): VNode {
@@ -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,25 +13,24 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, DeleteElementOperation } from '@eclipse-glsp/protocol';
17
16
  import { inject, injectable } from 'inversify';
18
17
  import {
18
+ Action,
19
+ DeleteElementOperation,
19
20
  EnableDefaultToolsAction,
21
+ KeyListener,
22
+ KeyTool,
23
+ MouseListener,
24
+ SModelElement,
20
25
  findParentByFeature,
21
26
  isCtrlOrCmd,
22
27
  isDeletable,
23
28
  isSelectable,
24
- KeyListener,
25
- KeyTool,
26
- MouseListener,
27
- SModelElement
28
- } from 'sprotty';
29
- import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
30
- import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
31
- import { TYPES } from '../../base/types';
32
- import { IMouseTool } from '../mouse-tool/mouse-tool';
33
- import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
34
- import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
29
+ matchesKeystroke
30
+ } from '~glsp-sprotty';
31
+ import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
32
+ import { GLSPTool } from '../../../base/tool-manager/glsp-tool-manager';
33
+ import { BaseGLSPTool } from '../base-glsp-tool';
35
34
 
36
35
  /**
37
36
  * Deletes selected elements when hitting the `Del` key.
@@ -81,28 +80,20 @@ export class DeleteKeyListener extends KeyListener {
81
80
  * Deletes selected elements when clicking on them.
82
81
  */
83
82
  @injectable()
84
- export class MouseDeleteTool implements GLSPTool {
83
+ export class MouseDeleteTool extends BaseGLSPTool {
85
84
  static ID = 'glsp.delete-mouse';
86
85
 
87
- isEditTool = true;
88
-
89
86
  protected deleteToolMouseListener: DeleteToolMouseListener = new DeleteToolMouseListener();
90
87
 
91
- @inject(TYPES.MouseTool) protected mouseTool: IMouseTool;
92
- @inject(TYPES.IFeedbackActionDispatcher) protected readonly feedbackDispatcher: IFeedbackActionDispatcher;
93
-
94
88
  get id(): string {
95
89
  return MouseDeleteTool.ID;
96
90
  }
97
91
 
98
92
  enable(): void {
99
- this.mouseTool.register(this.deleteToolMouseListener);
100
- this.feedbackDispatcher.registerFeedback(this, [cursorFeedbackAction(CursorCSS.ELEMENT_DELETION)]);
101
- }
102
-
103
- disable(): void {
104
- this.mouseTool.deregister(this.deleteToolMouseListener);
105
- this.feedbackDispatcher.registerFeedback(this, [cursorFeedbackAction()]);
93
+ this.toDisposeOnDisable.push(
94
+ this.mouseTool.registerListener(this.deleteToolMouseListener),
95
+ this.registerFeedback([cursorFeedbackAction(CursorCSS.ELEMENT_DELETION)], this, [cursorFeedbackAction()])
96
+ );
106
97
  }
107
98
  }
108
99