@eclipse-glsp/client 1.1.0-RC10 → 1.1.0-next.0363f0b.261

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 (743) hide show
  1. package/README.md +1 -1
  2. package/lib/base/action-dispatcher.d.ts +1 -0
  3. package/lib/base/action-dispatcher.d.ts.map +1 -1
  4. package/lib/base/action-dispatcher.js +8 -3
  5. package/lib/base/action-dispatcher.js.map +1 -1
  6. package/lib/base/auto-complete/auto-complete-actions.js +1 -1
  7. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  8. package/lib/base/auto-complete/validation-decorator.js +1 -1
  9. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  10. package/lib/base/command-stack.d.ts +17 -2
  11. package/lib/base/command-stack.d.ts.map +1 -1
  12. package/lib/base/command-stack.js +43 -3
  13. package/lib/base/command-stack.js.map +1 -1
  14. package/lib/base/{di.config.d.ts → default.module.d.ts} +8 -5
  15. package/lib/base/default.module.d.ts.map +1 -0
  16. package/lib/base/{di.config.js → default.module.js} +34 -12
  17. package/lib/base/default.module.js.map +1 -0
  18. package/lib/base/drag-aware-mouse-listener.d.ts +2 -2
  19. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  20. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  21. package/lib/base/editor-context-service.d.ts +10 -7
  22. package/lib/base/editor-context-service.d.ts.map +1 -1
  23. package/lib/base/editor-context-service.js +27 -10
  24. package/lib/base/editor-context-service.js.map +1 -1
  25. package/lib/{features/tool-feedback → base/feedback}/css-feedback.d.ts +1 -1
  26. package/lib/base/feedback/css-feedback.d.ts.map +1 -0
  27. package/lib/{features/tool-feedback → base/feedback}/css-feedback.js +5 -6
  28. package/lib/base/feedback/css-feedback.js.map +1 -0
  29. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.d.ts +11 -9
  30. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -0
  31. package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.js +26 -20
  32. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -0
  33. package/lib/{features/tool-feedback/model.d.ts → base/feedback/feedback-command.d.ts} +1 -1
  34. package/lib/base/feedback/feedback-command.d.ts.map +1 -0
  35. package/lib/{features/tool-feedback/model.js → base/feedback/feedback-command.js} +1 -1
  36. package/lib/base/feedback/feedback-command.js.map +1 -0
  37. package/lib/base/{model → feedback}/update-model-command.d.ts +3 -15
  38. package/lib/base/feedback/update-model-command.d.ts.map +1 -0
  39. package/lib/base/{model → feedback}/update-model-command.js +3 -27
  40. package/lib/base/feedback/update-model-command.js.map +1 -0
  41. package/lib/base/{actions/focus-change-action.d.ts → focus/focus-state-change-action.d.ts} +1 -1
  42. package/lib/base/focus/focus-state-change-action.d.ts.map +1 -0
  43. package/lib/base/{actions/focus-change-action.js → focus/focus-state-change-action.js} +2 -2
  44. package/lib/base/focus/focus-state-change-action.js.map +1 -0
  45. package/lib/base/{focus-tracker.d.ts → focus/focus-tracker.d.ts} +1 -1
  46. package/lib/base/focus/focus-tracker.d.ts.map +1 -0
  47. package/lib/base/{focus-tracker.js → focus/focus-tracker.js} +5 -6
  48. package/lib/base/focus/focus-tracker.js.map +1 -0
  49. package/lib/base/model/model-registry.js +2 -3
  50. package/lib/base/model/model-registry.js.map +1 -1
  51. package/lib/base/model-initialization-constraint.js +4 -6
  52. package/lib/base/model-initialization-constraint.js.map +1 -1
  53. package/lib/base/ranked.d.ts +34 -0
  54. package/lib/base/ranked.d.ts.map +1 -0
  55. package/lib/base/ranked.js +38 -0
  56. package/lib/base/ranked.js.map +1 -0
  57. package/lib/base/selection-clearing-mouse-listener.js +2 -3
  58. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  59. package/lib/{features/select → base}/selection-service.d.ts +34 -13
  60. package/lib/base/selection-service.d.ts.map +1 -0
  61. package/lib/{features/select → base}/selection-service.js +77 -31
  62. package/lib/base/selection-service.js.map +1 -0
  63. package/lib/base/selection-service.spec.d.ts +2 -0
  64. package/lib/base/selection-service.spec.d.ts.map +1 -0
  65. package/lib/base/selection-service.spec.js +281 -0
  66. package/lib/base/selection-service.spec.js.map +1 -0
  67. package/lib/base/tool-manager/glsp-tool-manager.d.ts +3 -3
  68. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  69. package/lib/base/tool-manager/glsp-tool-manager.js +5 -6
  70. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  71. package/lib/base/view/key-tool.d.ts +5 -0
  72. package/lib/base/view/key-tool.d.ts.map +1 -0
  73. package/lib/base/view/key-tool.js +36 -0
  74. package/lib/base/view/key-tool.js.map +1 -0
  75. package/lib/base/view/mouse-tool.d.ts +19 -0
  76. package/lib/base/view/mouse-tool.d.ts.map +1 -0
  77. package/lib/{features/mouse-tool → base/view}/mouse-tool.js +14 -11
  78. package/lib/base/view/mouse-tool.js.map +1 -0
  79. package/lib/base/view/view-registry.js +2 -3
  80. package/lib/base/view/view-registry.js.map +1 -1
  81. package/lib/{base/container-modules.d.ts → default-modules.d.ts} +7 -6
  82. package/lib/default-modules.d.ts.map +1 -0
  83. package/lib/default-modules.js +150 -0
  84. package/lib/default-modules.js.map +1 -0
  85. package/lib/features/accessibility/{di.config.d.ts → accessibility-module.d.ts} +3 -3
  86. package/lib/features/accessibility/accessibility-module.d.ts.map +1 -0
  87. package/lib/features/accessibility/{di.config.js → accessibility-module.js} +12 -12
  88. package/lib/features/accessibility/accessibility-module.js.map +1 -0
  89. package/lib/features/accessibility/move-zoom/move-handler.js +6 -8
  90. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
  91. package/lib/features/accessibility/move-zoom/{di.config.d.ts → move-zoom-module.d.ts} +3 -4
  92. package/lib/features/accessibility/move-zoom/move-zoom-module.d.ts.map +1 -0
  93. package/lib/features/accessibility/move-zoom/{di.config.js → move-zoom-module.js} +3 -4
  94. package/lib/features/accessibility/move-zoom/move-zoom-module.js.map +1 -0
  95. package/lib/features/accessibility/move-zoom/zoom-handler.js +6 -8
  96. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -1
  97. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +4 -5
  98. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
  99. package/lib/features/accessibility/resize-key-tool/{di.config.d.ts → resize-key-module.d.ts} +3 -4
  100. package/lib/features/accessibility/resize-key-tool/resize-key-module.d.ts.map +1 -0
  101. package/lib/features/accessibility/resize-key-tool/{di.config.js → resize-key-module.js} +3 -4
  102. package/lib/features/accessibility/resize-key-tool/resize-key-module.js.map +1 -0
  103. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +1 -1
  104. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -1
  105. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +6 -8
  106. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
  107. package/lib/features/accessibility/search/{di.config.d.ts → search-palette-module.d.ts} +3 -4
  108. package/lib/features/accessibility/search/search-palette-module.d.ts.map +1 -0
  109. package/lib/features/accessibility/search/{di.config.js → search-palette-module.js} +3 -4
  110. package/lib/features/accessibility/search/search-palette-module.js.map +1 -0
  111. package/lib/features/accessibility/search/search-palette.js +3 -4
  112. package/lib/features/accessibility/search/search-palette.js.map +1 -1
  113. package/lib/features/accessibility/search/search-tool.js +2 -3
  114. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  115. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +2 -3
  116. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -1
  117. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +1 -1
  118. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
  119. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +5 -6
  120. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  121. package/lib/features/accessibility/view-key-tools/{di.config.d.ts → view-key-tools-module.d.ts} +3 -4
  122. package/lib/features/accessibility/view-key-tools/view-key-tools-module.d.ts.map +1 -0
  123. package/lib/features/accessibility/view-key-tools/{di.config.js → view-key-tools-module.js} +4 -5
  124. package/lib/features/accessibility/view-key-tools/view-key-tools-module.js.map +1 -0
  125. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +1 -1
  126. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -1
  127. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +5 -6
  128. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
  129. package/lib/features/autocomplete-palette/base-autocomplete-palette.js +1 -1
  130. package/lib/features/autocomplete-palette/base-autocomplete-palette.js.map +1 -1
  131. package/lib/features/bounds/{di.config.d.ts → bounds-module.d.ts} +3 -4
  132. package/lib/features/bounds/bounds-module.d.ts.map +1 -0
  133. package/lib/features/bounds/{di.config.js → bounds-module.js} +3 -4
  134. package/lib/features/bounds/bounds-module.js.map +1 -0
  135. package/lib/features/bounds/freeform-layout.js +2 -3
  136. package/lib/features/bounds/freeform-layout.js.map +1 -1
  137. package/lib/features/bounds/freeform-layout.spec.d.ts +3 -0
  138. package/lib/features/bounds/freeform-layout.spec.d.ts.map +1 -0
  139. package/lib/features/bounds/freeform-layout.spec.js +201 -0
  140. package/lib/features/bounds/freeform-layout.spec.js.map +1 -0
  141. package/lib/features/bounds/glsp-hidden-bounds-updater.js +2 -3
  142. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  143. package/lib/features/bounds/hbox-layout.js +2 -3
  144. package/lib/features/bounds/hbox-layout.js.map +1 -1
  145. package/lib/features/bounds/hbox-layout.spec.d.ts +3 -0
  146. package/lib/features/bounds/hbox-layout.spec.d.ts.map +1 -0
  147. package/lib/features/bounds/hbox-layout.spec.js +160 -0
  148. package/lib/features/bounds/hbox-layout.spec.js.map +1 -0
  149. package/lib/features/bounds/layouter-test-util.spec.d.ts +32 -0
  150. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +1 -0
  151. package/lib/features/bounds/layouter-test-util.spec.js +96 -0
  152. package/lib/features/bounds/layouter-test-util.spec.js.map +1 -0
  153. package/lib/features/bounds/layouter.js +2 -3
  154. package/lib/features/bounds/layouter.js.map +1 -1
  155. package/lib/features/bounds/vbox-layout.js +2 -3
  156. package/lib/features/bounds/vbox-layout.js.map +1 -1
  157. package/lib/features/bounds/vbox-layout.spec.d.ts +3 -0
  158. package/lib/features/bounds/vbox-layout.spec.d.ts.map +1 -0
  159. package/lib/features/bounds/vbox-layout.spec.js +160 -0
  160. package/lib/features/bounds/vbox-layout.spec.js.map +1 -0
  161. package/lib/features/change-bounds/model.js +2 -2
  162. package/lib/features/change-bounds/model.js.map +1 -1
  163. package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
  164. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  165. package/lib/features/change-bounds/movement-restrictor.js +3 -4
  166. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  167. package/lib/features/change-bounds/snap.js +2 -3
  168. package/lib/features/change-bounds/snap.js.map +1 -1
  169. package/lib/features/change-bounds/snap.spec.d.ts +17 -0
  170. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  171. package/lib/features/change-bounds/snap.spec.js +82 -0
  172. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  173. package/lib/features/command-palette/{di.config.d.ts → command-palette-module.d.ts} +3 -4
  174. package/lib/features/command-palette/command-palette-module.d.ts.map +1 -0
  175. package/lib/features/command-palette/{di.config.js → command-palette-module.js} +3 -4
  176. package/lib/features/command-palette/command-palette-module.js.map +1 -0
  177. package/lib/features/command-palette/command-palette-tool.js +2 -3
  178. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  179. package/lib/features/command-palette/server-command-palette-provider.js +3 -4
  180. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  181. package/lib/features/{select/di.config.d.ts → context-menu/context-menu-module.d.ts} +3 -4
  182. package/lib/features/context-menu/context-menu-module.d.ts.map +1 -0
  183. package/lib/features/context-menu/{di.config.js → context-menu-module.js} +3 -4
  184. package/lib/features/context-menu/context-menu-module.js.map +1 -0
  185. package/lib/features/context-menu/delete-element-context-menu.js +2 -3
  186. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  187. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +1 -1
  188. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  189. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +6 -7
  190. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  191. package/lib/features/context-menu/server-context-menu-provider.js +3 -4
  192. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  193. package/lib/features/copy-paste/copy-paste-context-menu.js +6 -8
  194. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  195. package/lib/features/copy-paste/copy-paste-handler.js +4 -6
  196. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  197. package/lib/features/copy-paste/{di.config.d.ts → copy-paste-modules.d.ts} +7 -7
  198. package/lib/features/copy-paste/copy-paste-modules.d.ts.map +1 -0
  199. package/lib/features/copy-paste/{di.config.js → copy-paste-modules.js} +8 -9
  200. package/lib/features/copy-paste/copy-paste-modules.js.map +1 -0
  201. package/lib/features/decoration/{di.config.d.ts → decoration-module.d.ts} +3 -4
  202. package/lib/features/decoration/decoration-module.d.ts.map +1 -0
  203. package/lib/features/decoration/{di.config.js → decoration-module.js} +3 -4
  204. package/lib/features/decoration/decoration-module.js.map +1 -0
  205. package/lib/features/decoration/decoration-placer.js +2 -3
  206. package/lib/features/decoration/decoration-placer.js.map +1 -1
  207. package/lib/features/export/export-modules.d.ts +24 -0
  208. package/lib/features/export/export-modules.d.ts.map +1 -0
  209. package/lib/features/export/{di.config.js → export-modules.js} +15 -5
  210. package/lib/features/export/export-modules.js.map +1 -0
  211. package/lib/features/export/export-svg-action-handler.d.ts +11 -0
  212. package/lib/features/export/export-svg-action-handler.d.ts.map +1 -0
  213. package/lib/features/export/export-svg-action-handler.js +42 -0
  214. package/lib/features/export/export-svg-action-handler.js.map +1 -0
  215. package/lib/features/export/glsp-svg-exporter.js +2 -3
  216. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  217. package/lib/features/{layout/di.config.d.ts → hints/type-hints-module.d.ts} +3 -4
  218. package/lib/features/hints/type-hints-module.d.ts.map +1 -0
  219. package/lib/features/hints/{di.config.js → type-hints-module.js} +3 -4
  220. package/lib/features/hints/type-hints-module.js.map +1 -0
  221. package/lib/features/hints/type-hints.d.ts +2 -2
  222. package/lib/features/hints/type-hints.d.ts.map +1 -1
  223. package/lib/features/hints/type-hints.js +9 -11
  224. package/lib/features/hints/type-hints.js.map +1 -1
  225. package/lib/features/hover/{di.config.d.ts → hover-module.d.ts} +3 -4
  226. package/lib/features/hover/hover-module.d.ts.map +1 -0
  227. package/lib/features/hover/{di.config.js → hover-module.js} +6 -7
  228. package/lib/features/hover/hover-module.js.map +1 -0
  229. package/lib/features/hover/hover.d.ts.map +1 -1
  230. package/lib/features/hover/hover.js +5 -6
  231. package/lib/features/hover/hover.js.map +1 -1
  232. package/lib/features/{edit-label → label-edit}/edit-label-tool.d.ts +0 -3
  233. package/lib/features/label-edit/edit-label-tool.d.ts.map +1 -0
  234. package/lib/features/{edit-label → label-edit}/edit-label-tool.js +3 -11
  235. package/lib/features/label-edit/edit-label-tool.js.map +1 -0
  236. package/lib/features/{edit-label → label-edit}/edit-label-validator.d.ts.map +1 -1
  237. package/lib/features/{edit-label → label-edit}/edit-label-validator.js +5 -7
  238. package/lib/features/label-edit/edit-label-validator.js.map +1 -0
  239. package/lib/features/{hints/di.config.d.ts → label-edit/label-edit-module.d.ts} +3 -4
  240. package/lib/features/label-edit/label-edit-module.d.ts.map +1 -0
  241. package/lib/features/{edit-label/di.config.js → label-edit/label-edit-module.js} +3 -4
  242. package/lib/features/label-edit/label-edit-module.js.map +1 -0
  243. package/lib/features/layout/layout-elements-action.d.ts +1 -1
  244. package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
  245. package/lib/features/layout/layout-elements-action.js +14 -17
  246. package/lib/features/layout/layout-elements-action.js.map +1 -1
  247. package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
  248. package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
  249. package/lib/features/layout/layout-elements-action.spec.js +322 -0
  250. package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
  251. package/lib/features/{tool-feedback/di.config.d.ts → layout/layout-module.d.ts} +3 -4
  252. package/lib/features/layout/layout-module.d.ts.map +1 -0
  253. package/lib/features/layout/{di.config.js → layout-module.js} +3 -4
  254. package/lib/features/layout/layout-module.js.map +1 -0
  255. package/lib/features/navigation/navigation-action-handler.js +5 -6
  256. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  257. package/lib/features/navigation/{di.config.d.ts → navigation-module.d.ts} +3 -4
  258. package/lib/features/navigation/navigation-module.d.ts.map +1 -0
  259. package/lib/features/navigation/{di.config.js → navigation-module.js} +3 -4
  260. package/lib/features/navigation/navigation-module.js.map +1 -0
  261. package/lib/features/navigation/navigation-target-resolver.js +2 -3
  262. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  263. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +3 -0
  264. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -0
  265. package/lib/features/navigation/navigation-target-resolver.spec.js +53 -0
  266. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -0
  267. package/lib/features/routing/glsp-manhattan-edge-router.d.ts.map +1 -0
  268. package/lib/features/routing/glsp-manhattan-edge-router.js.map +1 -0
  269. package/lib/features/routing/routing-module.d.ts +18 -0
  270. package/lib/features/routing/routing-module.d.ts.map +1 -0
  271. package/lib/features/routing/routing-module.js +39 -0
  272. package/lib/features/routing/routing-module.js.map +1 -0
  273. package/lib/features/save/{di.config.d.ts → save-module.d.ts} +6 -6
  274. package/lib/features/save/save-module.d.ts.map +1 -0
  275. package/lib/features/save/{di.config.js → save-module.js} +6 -6
  276. package/lib/features/save/save-module.js.map +1 -0
  277. package/lib/features/select/select-feedback-command.d.ts +12 -0
  278. package/lib/features/select/select-feedback-command.d.ts.map +1 -0
  279. package/lib/features/select/{select-feedback-action.js → select-feedback-command.js} +6 -18
  280. package/lib/features/select/select-feedback-command.js.map +1 -0
  281. package/lib/features/select/select-module.d.ts +24 -0
  282. package/lib/features/select/select-module.d.ts.map +1 -0
  283. package/lib/features/select/{di.config.js → select-module.js} +14 -9
  284. package/lib/features/select/select-module.js.map +1 -0
  285. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  286. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  287. package/lib/features/select/select-mouse-listener.js +2 -2
  288. package/lib/features/select/select-mouse-listener.js.map +1 -1
  289. package/lib/features/source-model-watcher/source-model-changed-action-handler.js +5 -7
  290. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  291. package/lib/features/{edit-label/di.config.d.ts → source-model-watcher/source-model-wacher-module.d.ts} +3 -4
  292. package/lib/features/source-model-watcher/source-model-wacher-module.d.ts.map +1 -0
  293. package/lib/features/source-model-watcher/{di.config.js → source-model-wacher-module.js} +3 -4
  294. package/lib/features/source-model-watcher/source-model-wacher-module.js.map +1 -0
  295. package/lib/features/svg-metadata/metadata-placer.js +2 -3
  296. package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
  297. package/lib/features/svg-metadata/{di.config.d.ts → svg-metadata-module.d.ts} +3 -4
  298. package/lib/features/svg-metadata/svg-metadata-module.d.ts.map +1 -0
  299. package/lib/features/svg-metadata/{di.config.js → svg-metadata-module.js} +3 -4
  300. package/lib/features/svg-metadata/svg-metadata-module.js.map +1 -0
  301. package/lib/features/tool-palette/{di.config.d.ts → tool-palette-module.d.ts} +3 -4
  302. package/lib/features/tool-palette/tool-palette-module.d.ts.map +1 -0
  303. package/lib/features/tool-palette/{di.config.js → tool-palette-module.js} +3 -4
  304. package/lib/features/tool-palette/tool-palette-module.js.map +1 -0
  305. package/lib/features/tool-palette/tool-palette.d.ts +6 -4
  306. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  307. package/lib/features/tool-palette/tool-palette.js +22 -15
  308. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  309. package/lib/features/tools/base-glsp-creation-tool.d.ts +10 -0
  310. package/lib/features/tools/base-glsp-creation-tool.d.ts.map +1 -0
  311. package/lib/features/tools/base-glsp-creation-tool.js +45 -0
  312. package/lib/features/tools/base-glsp-creation-tool.js.map +1 -0
  313. package/lib/features/tools/base-glsp-tool.d.ts +26 -8
  314. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  315. package/lib/features/tools/base-glsp-tool.js +34 -11
  316. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  317. package/lib/features/{context-menu/di.config.d.ts → tools/change-bounds/change-boounds-tool-module.d.ts} +3 -4
  318. package/lib/features/tools/change-bounds/change-boounds-tool-module.d.ts.map +1 -0
  319. package/lib/features/tools/change-bounds/change-boounds-tool-module.js +31 -0
  320. package/lib/features/tools/change-bounds/change-boounds-tool-module.js.map +1 -0
  321. package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.d.ts +12 -5
  322. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -0
  323. package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.js +45 -27
  324. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -0
  325. package/lib/features/tools/{change-bounds-tool.d.ts → change-bounds/change-bounds-tool.d.ts} +13 -14
  326. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -0
  327. package/lib/features/tools/{change-bounds-tool.js → change-bounds/change-bounds-tool.js} +50 -35
  328. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -0
  329. package/lib/features/tools/change-bounds/view.d.ts +9 -0
  330. package/lib/features/tools/change-bounds/view.d.ts.map +1 -0
  331. package/lib/features/{tool-feedback → tools/change-bounds}/view.js +5 -21
  332. package/lib/features/tools/change-bounds/view.js.map +1 -0
  333. package/lib/features/tools/{delete-tool.d.ts → deletion/delete-tool.d.ts} +4 -9
  334. package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -0
  335. package/lib/features/tools/{delete-tool.js → deletion/delete-tool.js} +13 -29
  336. package/lib/features/tools/deletion/delete-tool.js.map +1 -0
  337. package/lib/features/tools/deletion/deletion-tool-module.d.ts +18 -0
  338. package/lib/features/tools/deletion/deletion-tool-module.d.ts.map +1 -0
  339. package/lib/features/{mouse-tool/di.config.js → tools/deletion/deletion-tool-module.js} +8 -9
  340. package/lib/features/tools/deletion/deletion-tool-module.js.map +1 -0
  341. package/lib/features/{tool-feedback/creation-tool-feedback.d.ts → tools/edge-creation/dangling-edge-feedback.d.ts} +5 -10
  342. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts.map +1 -0
  343. package/lib/features/{tool-feedback/creation-tool-feedback.js → tools/edge-creation/dangling-edge-feedback.js} +25 -87
  344. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -0
  345. package/lib/features/{export/di.config.d.ts → tools/edge-creation/edege-creation-module.d.ts} +3 -4
  346. package/lib/features/tools/edge-creation/edege-creation-module.d.ts.map +1 -0
  347. package/lib/features/tools/edge-creation/edege-creation-module.js +28 -0
  348. package/lib/features/tools/edge-creation/edege-creation-module.js.map +1 -0
  349. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +26 -0
  350. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -0
  351. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +74 -0
  352. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -0
  353. package/lib/features/tools/{edge-creation-tool.d.ts → edge-creation/edge-creation-tool.d.ts} +6 -11
  354. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -0
  355. package/lib/features/tools/{edge-creation-tool.js → edge-creation/edge-creation-tool.js} +29 -40
  356. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -0
  357. package/lib/features/tools/edge-creation/view.d.ts +10 -0
  358. package/lib/features/tools/edge-creation/view.d.ts.map +1 -0
  359. package/lib/features/tools/edge-creation/view.js +43 -0
  360. package/lib/features/tools/edge-creation/view.js.map +1 -0
  361. package/lib/features/tools/edge-edit/edge-edit-module.d.ts +18 -0
  362. package/lib/features/tools/edge-edit/edge-edit-module.d.ts.map +1 -0
  363. package/lib/features/tools/edge-edit/edge-edit-module.js +34 -0
  364. package/lib/features/tools/edge-edit/edge-edit-module.js.map +1 -0
  365. package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.d.ts +14 -8
  366. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -0
  367. package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.js +42 -37
  368. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -0
  369. package/lib/features/tools/{edge-edit-tool.d.ts → edge-edit/edge-edit-tool.d.ts} +7 -9
  370. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -0
  371. package/lib/features/tools/{edge-edit-tool.js → edge-edit/edge-edit-tool.js} +28 -33
  372. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -0
  373. package/lib/features/tools/{marquee-behavior.d.ts → marquee-selection/marquee-behavior.d.ts} +10 -10
  374. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts.map +1 -0
  375. package/lib/features/tools/{marquee-behavior.js → marquee-selection/marquee-behavior.js} +2 -2
  376. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -0
  377. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts +17 -0
  378. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +1 -0
  379. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +165 -0
  380. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +1 -0
  381. package/lib/features/tools/{marquee-mouse-tool.d.ts → marquee-selection/marquee-mouse-tool.d.ts} +4 -6
  382. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -0
  383. package/lib/features/tools/{marquee-mouse-tool.js → marquee-selection/marquee-mouse-tool.js} +13 -27
  384. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -0
  385. package/lib/features/tools/marquee-selection/marquee-selection-module.d.ts +18 -0
  386. package/lib/features/tools/marquee-selection/marquee-selection-module.d.ts.map +1 -0
  387. package/lib/features/tools/marquee-selection/marquee-selection-module.js +33 -0
  388. package/lib/features/tools/marquee-selection/marquee-selection-module.js.map +1 -0
  389. package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.d.ts +2 -2
  390. package/lib/features/tools/marquee-selection/marquee-tool-feedback.d.ts.map +1 -0
  391. package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.js +8 -10
  392. package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -0
  393. package/lib/features/tools/marquee-selection/marquee-tool.d.ts +12 -0
  394. package/lib/features/tools/marquee-selection/marquee-tool.d.ts.map +1 -0
  395. package/lib/features/tools/{marquee-tool.js → marquee-selection/marquee-tool.js} +8 -20
  396. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -0
  397. package/lib/features/tools/{model.d.ts → marquee-selection/model.d.ts} +1 -1
  398. package/lib/features/tools/marquee-selection/model.d.ts.map +1 -0
  399. package/lib/features/tools/{model.js → marquee-selection/model.js} +2 -2
  400. package/lib/features/tools/marquee-selection/model.js.map +1 -0
  401. package/lib/features/tools/{view.d.ts → marquee-selection/view.d.ts} +1 -1
  402. package/lib/features/tools/marquee-selection/view.d.ts.map +1 -0
  403. package/lib/features/tools/{view.js → marquee-selection/view.js} +3 -4
  404. package/lib/features/tools/marquee-selection/view.js.map +1 -0
  405. package/lib/features/tools/node-creation/node-creation-module.d.ts +18 -0
  406. package/lib/features/tools/node-creation/node-creation-module.d.ts.map +1 -0
  407. package/lib/features/tools/node-creation/node-creation-module.js +26 -0
  408. package/lib/features/tools/node-creation/node-creation-module.js.map +1 -0
  409. package/lib/features/tools/{node-creation-tool.d.ts → node-creation/node-creation-tool.d.ts} +7 -10
  410. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -0
  411. package/lib/features/tools/{node-creation-tool.js → node-creation/node-creation-tool.js} +17 -30
  412. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -0
  413. package/lib/features/tools/tool-focus-loss-module.d.ts +13 -0
  414. package/lib/features/tools/tool-focus-loss-module.d.ts.map +1 -0
  415. package/lib/features/tools/{enable-default-tools-on-focus-loss.js → tool-focus-loss-module.js} +12 -8
  416. package/lib/features/tools/tool-focus-loss-module.js.map +1 -0
  417. package/lib/features/undo-redo/undo-redo-key-listener.d.ts +23 -0
  418. package/lib/features/undo-redo/undo-redo-key-listener.d.ts.map +1 -0
  419. package/lib/features/undo-redo/undo-redo-key-listener.js +35 -0
  420. package/lib/features/undo-redo/undo-redo-key-listener.js.map +1 -0
  421. package/lib/features/undo-redo/undo-redo-module.d.ts +23 -0
  422. package/lib/features/undo-redo/undo-redo-module.d.ts.map +1 -0
  423. package/lib/features/undo-redo/undo-redo-module.js +30 -0
  424. package/lib/features/undo-redo/undo-redo-module.js.map +1 -0
  425. package/lib/features/validation/marker-navigator.d.ts +4 -3
  426. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  427. package/lib/features/validation/marker-navigator.js +16 -20
  428. package/lib/features/validation/marker-navigator.js.map +1 -1
  429. package/lib/features/validation/marker-navigator.spec.d.ts +3 -0
  430. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -0
  431. package/lib/features/validation/marker-navigator.spec.js +184 -0
  432. package/lib/features/validation/marker-navigator.spec.js.map +1 -0
  433. package/lib/features/validation/validate.d.ts +2 -2
  434. package/lib/features/validation/validate.d.ts.map +1 -1
  435. package/lib/features/validation/validate.js +12 -17
  436. package/lib/features/validation/validate.js.map +1 -1
  437. package/lib/features/validation/{di.config.d.ts → validation-modules.d.ts} +8 -8
  438. package/lib/features/validation/validation-modules.d.ts.map +1 -0
  439. package/lib/features/validation/{di.config.js → validation-modules.js} +9 -10
  440. package/lib/features/validation/validation-modules.js.map +1 -0
  441. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -4
  442. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  443. package/lib/features/viewport/{di.config.d.ts → viewport-modules.d.ts} +9 -4
  444. package/lib/features/viewport/viewport-modules.d.ts.map +1 -0
  445. package/lib/features/viewport/{di.config.js → viewport-modules.js} +12 -5
  446. package/lib/features/viewport/viewport-modules.js.map +1 -0
  447. package/lib/glsp-sprotty/index.d.ts +3 -4
  448. package/lib/glsp-sprotty/index.d.ts.map +1 -1
  449. package/lib/glsp-sprotty/index.js +66 -60
  450. package/lib/glsp-sprotty/index.js.map +1 -1
  451. package/lib/glsp-sprotty/types.d.ts +4 -8
  452. package/lib/glsp-sprotty/types.d.ts.map +1 -1
  453. package/lib/glsp-sprotty/types.js +1 -1
  454. package/lib/glsp-sprotty/types.js.map +1 -1
  455. package/lib/index.d.ts +65 -56
  456. package/lib/index.d.ts.map +1 -1
  457. package/lib/index.js +83 -104
  458. package/lib/index.js.map +1 -1
  459. package/lib/lib/model.d.ts +1 -2
  460. package/lib/lib/model.d.ts.map +1 -1
  461. package/lib/lib/model.js +1 -2
  462. package/lib/lib/model.js.map +1 -1
  463. package/lib/model-source/glsp-diagram-server.d.ts +2 -1
  464. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  465. package/lib/model-source/glsp-diagram-server.js +8 -3
  466. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  467. package/lib/standalone-modules.d.ts +29 -0
  468. package/lib/standalone-modules.d.ts.map +1 -0
  469. package/lib/standalone-modules.js +48 -0
  470. package/lib/standalone-modules.js.map +1 -0
  471. package/lib/utils/argument-utils.js +3 -3
  472. package/lib/utils/argument-utils.js.map +1 -1
  473. package/lib/utils/marker.js +1 -1
  474. package/lib/utils/marker.js.map +1 -1
  475. package/lib/utils/smodel-util.d.ts +5 -2
  476. package/lib/utils/smodel-util.d.ts.map +1 -1
  477. package/lib/utils/smodel-util.js +21 -4
  478. package/lib/utils/smodel-util.js.map +1 -1
  479. package/lib/utils/smodel-util.spec.d.ts +2 -0
  480. package/lib/utils/smodel-util.spec.d.ts.map +1 -0
  481. package/lib/utils/smodel-util.spec.js +185 -0
  482. package/lib/utils/smodel-util.spec.js.map +1 -0
  483. package/lib/utils/viewpoint-util.d.ts +20 -1
  484. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  485. package/lib/utils/viewpoint-util.js +30 -1
  486. package/lib/utils/viewpoint-util.js.map +1 -1
  487. package/lib/views/base-view-module.d.ts +2 -4
  488. package/lib/views/base-view-module.d.ts.map +1 -1
  489. package/lib/views/base-view-module.js +2 -4
  490. package/lib/views/base-view-module.js.map +1 -1
  491. package/lib/views/compartments.js +2 -3
  492. package/lib/views/compartments.js.map +1 -1
  493. package/lib/views/glsp-edge-view.js +2 -3
  494. package/lib/views/glsp-edge-view.js.map +1 -1
  495. package/lib/views/glsp-projection-view.js +2 -3
  496. package/lib/views/glsp-projection-view.js.map +1 -1
  497. package/lib/views/issue-marker-view.js +2 -3
  498. package/lib/views/issue-marker-view.js.map +1 -1
  499. package/lib/views/rounded-corner-view.js +2 -3
  500. package/lib/views/rounded-corner-view.js.map +1 -1
  501. package/package.json +4 -3
  502. package/src/base/action-dispatcher.ts +7 -1
  503. package/src/base/command-stack.ts +55 -3
  504. package/src/base/{di.config.ts → default.module.ts} +47 -15
  505. package/src/base/drag-aware-mouse-listener.ts +2 -2
  506. package/src/base/editor-context-service.ts +28 -13
  507. package/src/{features/tool-feedback → base/feedback}/css-feedback.ts +1 -1
  508. package/src/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.ts +31 -23
  509. package/src/base/{model → feedback}/update-model-command.ts +3 -29
  510. package/src/base/{focus-tracker.ts → focus/focus-tracker.ts} +1 -1
  511. package/src/base/ranked.ts +42 -0
  512. package/src/{features/select → base}/selection-service.spec.ts +44 -123
  513. package/src/{features/select → base}/selection-service.ts +86 -33
  514. package/src/base/tool-manager/glsp-tool-manager.ts +4 -4
  515. package/src/{features/rank/model.ts → base/view/key-tool.ts} +9 -13
  516. package/src/{features/mouse-tool → base/view}/mouse-tool.ts +14 -15
  517. package/src/{base/container-modules.ts → default-modules.ts} +62 -47
  518. package/src/features/accessibility/README.md +7 -7
  519. package/src/features/accessibility/{di.config.ts → accessibility-module.ts} +6 -6
  520. package/src/features/accessibility/move-zoom/{di.config.ts → move-zoom-module.ts} +2 -3
  521. package/src/features/accessibility/resize-key-tool/{di.config.ts → resize-key-module.ts} +2 -3
  522. package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +2 -2
  523. package/src/features/accessibility/search/{di.config.ts → search-palette-module.ts} +2 -3
  524. package/src/features/accessibility/search/search-palette.ts +1 -1
  525. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +2 -2
  526. package/src/features/accessibility/view-key-tools/{di.config.ts → view-key-tools-module.ts} +3 -4
  527. package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +3 -3
  528. package/src/features/bounds/{di.config.ts → bounds-module.ts} +2 -4
  529. package/src/features/bounds/layouter-test-util.spec.ts +1 -1
  530. package/src/features/change-bounds/movement-restrictor.ts +1 -1
  531. package/src/features/command-palette/{di.config.ts → command-palette-module.ts} +2 -5
  532. package/src/features/context-menu/{di.config.ts → context-menu-module.ts} +2 -5
  533. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +3 -3
  534. package/src/features/copy-paste/copy-paste-context-menu.ts +1 -1
  535. package/src/features/copy-paste/{di.config.ts → copy-paste-modules.ts} +13 -11
  536. package/src/features/decoration/{di.config.ts → decoration-module.ts} +2 -5
  537. package/src/features/export/{di.config.ts → export-modules.ts} +27 -5
  538. package/src/features/export/export-svg-action-handler.ts +32 -0
  539. package/src/features/hints/{di.config.ts → type-hints-module.ts} +2 -5
  540. package/src/features/hints/type-hints.ts +2 -2
  541. package/src/features/hover/{di.config.ts → hover-module.ts} +3 -5
  542. package/src/features/hover/hover.ts +3 -2
  543. package/src/features/{edit-label → label-edit}/edit-label-tool.ts +4 -12
  544. package/src/features/{edit-label/di.config.ts → label-edit/label-edit-module.ts} +2 -5
  545. package/src/features/layout/layout-elements-action.spec.ts +3 -5
  546. package/src/features/layout/layout-elements-action.ts +2 -2
  547. package/src/features/layout/{di.config.ts → layout-module.ts} +2 -5
  548. package/src/features/navigation/navigation-action-handler.ts +1 -1
  549. package/src/features/navigation/{di.config.ts → navigation-module.ts} +2 -5
  550. package/src/features/routing/routing-module.ts +59 -0
  551. package/src/features/save/{di.config.ts → save-module.ts} +5 -7
  552. package/src/features/select/{select-feedback-action.ts → select-feedback-command.ts} +2 -25
  553. package/src/features/select/{di.config.ts → select-module.ts} +15 -8
  554. package/src/features/select/select-mouse-listener.ts +2 -2
  555. package/src/features/source-model-watcher/source-model-changed-action-handler.ts +1 -1
  556. package/src/features/source-model-watcher/{di.config.ts → source-model-wacher-module.ts} +2 -5
  557. package/src/features/svg-metadata/{di.config.ts → svg-metadata-module.ts} +2 -5
  558. package/src/features/tool-palette/{di.config.ts → tool-palette-module.ts} +2 -5
  559. package/src/features/tool-palette/tool-palette.ts +19 -14
  560. package/src/features/tools/base-glsp-creation-tool.ts +40 -0
  561. package/src/features/tools/base-glsp-tool.ts +32 -10
  562. package/src/features/tools/change-bounds/change-boounds-tool-module.ts +28 -0
  563. package/src/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.ts +52 -21
  564. package/src/features/tools/{change-bounds-tool.ts → change-bounds/change-bounds-tool.ts} +64 -35
  565. package/src/features/{tool-feedback → tools/change-bounds}/view.tsx +2 -14
  566. package/src/features/tools/{delete-tool.ts → deletion/delete-tool.ts} +8 -18
  567. package/src/features/{save/model.ts → tools/deletion/deletion-tool-module.ts} +7 -10
  568. package/src/features/{tool-feedback/creation-tool-feedback.ts → tools/edge-creation/dangling-edge-feedback.ts} +18 -88
  569. package/src/features/tools/edge-creation/edege-creation-module.ts +25 -0
  570. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +89 -0
  571. package/src/features/tools/{edge-creation-tool.ts → edge-creation/edge-creation-tool.ts} +26 -43
  572. package/src/features/tools/edge-creation/view.tsx +33 -0
  573. package/src/features/tools/edge-edit/edge-edit-module.ts +38 -0
  574. package/src/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.ts +27 -15
  575. package/src/features/tools/{edge-edit-tool.ts → edge-edit/edge-edit-tool.ts} +29 -27
  576. package/src/features/tools/{marquee-behavior.ts → marquee-selection/marquee-behavior.ts} +9 -9
  577. package/src/features/tools/{marquee-mouse-tool.ts → marquee-selection/marquee-mouse-tool.ts} +12 -22
  578. package/src/features/tools/marquee-selection/marquee-selection-module.ts +32 -0
  579. package/src/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.ts +1 -1
  580. package/src/features/tools/{marquee-tool.ts → marquee-selection/marquee-tool.ts} +5 -11
  581. package/src/features/{mouse-tool/di.config.ts → tools/node-creation/node-creation-module.ts} +6 -9
  582. package/src/features/tools/{node-creation-tool.ts → node-creation/node-creation-tool.ts} +14 -31
  583. package/src/features/tools/{enable-default-tools-on-focus-loss.ts → tool-focus-loss-module.ts} +9 -3
  584. package/src/features/undo-redo/undo-redo-key-listener.ts +32 -0
  585. package/src/features/undo-redo/undo-redo-module.ts +28 -0
  586. package/src/features/validation/marker-navigator.spec.ts +4 -4
  587. package/src/features/validation/marker-navigator.ts +5 -5
  588. package/src/features/validation/validate.ts +2 -2
  589. package/src/features/validation/{di.config.ts → validation-modules.ts} +13 -11
  590. package/src/features/viewport/glsp-scroll-mouse-listener.ts +1 -1
  591. package/src/features/viewport/{di.config.ts → viewport-modules.ts} +14 -4
  592. package/src/glsp-sprotty/index.ts +30 -27
  593. package/src/glsp-sprotty/types.ts +2 -4
  594. package/src/index.ts +68 -88
  595. package/src/lib/model.ts +2 -3
  596. package/src/model-source/glsp-diagram-server.ts +11 -1
  597. package/src/standalone-modules.ts +48 -0
  598. package/src/utils/smodel-util.spec.ts +222 -0
  599. package/src/utils/smodel-util.ts +27 -7
  600. package/src/utils/viewpoint-util.ts +32 -0
  601. package/src/views/base-view-module.ts +2 -4
  602. package/lib/base/actions/focus-change-action.d.ts.map +0 -1
  603. package/lib/base/actions/focus-change-action.js.map +0 -1
  604. package/lib/base/container-modules.d.ts.map +0 -1
  605. package/lib/base/container-modules.js +0 -135
  606. package/lib/base/container-modules.js.map +0 -1
  607. package/lib/base/di.config.d.ts.map +0 -1
  608. package/lib/base/di.config.js.map +0 -1
  609. package/lib/base/focus-tracker.d.ts.map +0 -1
  610. package/lib/base/focus-tracker.js.map +0 -1
  611. package/lib/base/model/update-model-command.d.ts.map +0 -1
  612. package/lib/base/model/update-model-command.js.map +0 -1
  613. package/lib/features/accessibility/di.config.d.ts.map +0 -1
  614. package/lib/features/accessibility/di.config.js.map +0 -1
  615. package/lib/features/accessibility/move-zoom/di.config.d.ts.map +0 -1
  616. package/lib/features/accessibility/move-zoom/di.config.js.map +0 -1
  617. package/lib/features/accessibility/resize-key-tool/di.config.d.ts.map +0 -1
  618. package/lib/features/accessibility/resize-key-tool/di.config.js.map +0 -1
  619. package/lib/features/accessibility/search/di.config.d.ts.map +0 -1
  620. package/lib/features/accessibility/search/di.config.js.map +0 -1
  621. package/lib/features/accessibility/view-key-tools/di.config.d.ts.map +0 -1
  622. package/lib/features/accessibility/view-key-tools/di.config.js.map +0 -1
  623. package/lib/features/bounds/di.config.d.ts.map +0 -1
  624. package/lib/features/bounds/di.config.js.map +0 -1
  625. package/lib/features/command-palette/di.config.d.ts.map +0 -1
  626. package/lib/features/command-palette/di.config.js.map +0 -1
  627. package/lib/features/context-menu/di.config.d.ts.map +0 -1
  628. package/lib/features/context-menu/di.config.js.map +0 -1
  629. package/lib/features/copy-paste/di.config.d.ts.map +0 -1
  630. package/lib/features/copy-paste/di.config.js.map +0 -1
  631. package/lib/features/decoration/di.config.d.ts.map +0 -1
  632. package/lib/features/decoration/di.config.js.map +0 -1
  633. package/lib/features/edit-label/di.config.d.ts.map +0 -1
  634. package/lib/features/edit-label/di.config.js.map +0 -1
  635. package/lib/features/edit-label/edit-label-tool.d.ts.map +0 -1
  636. package/lib/features/edit-label/edit-label-tool.js.map +0 -1
  637. package/lib/features/edit-label/edit-label-validator.js.map +0 -1
  638. package/lib/features/export/di.config.d.ts.map +0 -1
  639. package/lib/features/export/di.config.js.map +0 -1
  640. package/lib/features/hints/di.config.d.ts.map +0 -1
  641. package/lib/features/hints/di.config.js.map +0 -1
  642. package/lib/features/hover/di.config.d.ts.map +0 -1
  643. package/lib/features/hover/di.config.js.map +0 -1
  644. package/lib/features/layout/di.config.d.ts.map +0 -1
  645. package/lib/features/layout/di.config.js.map +0 -1
  646. package/lib/features/mouse-tool/di.config.d.ts +0 -19
  647. package/lib/features/mouse-tool/di.config.d.ts.map +0 -1
  648. package/lib/features/mouse-tool/di.config.js.map +0 -1
  649. package/lib/features/mouse-tool/mouse-tool.d.ts +0 -22
  650. package/lib/features/mouse-tool/mouse-tool.d.ts.map +0 -1
  651. package/lib/features/mouse-tool/mouse-tool.js.map +0 -1
  652. package/lib/features/navigation/di.config.d.ts.map +0 -1
  653. package/lib/features/navigation/di.config.js.map +0 -1
  654. package/lib/features/rank/model.d.ts +0 -22
  655. package/lib/features/rank/model.d.ts.map +0 -1
  656. package/lib/features/rank/model.js +0 -28
  657. package/lib/features/rank/model.js.map +0 -1
  658. package/lib/features/save/di.config.d.ts.map +0 -1
  659. package/lib/features/save/di.config.js.map +0 -1
  660. package/lib/features/save/model.d.ts +0 -22
  661. package/lib/features/save/model.d.ts.map +0 -1
  662. package/lib/features/save/model.js +0 -9
  663. package/lib/features/save/model.js.map +0 -1
  664. package/lib/features/select/di.config.d.ts.map +0 -1
  665. package/lib/features/select/di.config.js.map +0 -1
  666. package/lib/features/select/select-feedback-action.d.ts +0 -22
  667. package/lib/features/select/select-feedback-action.d.ts.map +0 -1
  668. package/lib/features/select/select-feedback-action.js.map +0 -1
  669. package/lib/features/select/selection-service.d.ts.map +0 -1
  670. package/lib/features/select/selection-service.js.map +0 -1
  671. package/lib/features/source-model-watcher/di.config.d.ts +0 -19
  672. package/lib/features/source-model-watcher/di.config.d.ts.map +0 -1
  673. package/lib/features/source-model-watcher/di.config.js.map +0 -1
  674. package/lib/features/svg-metadata/di.config.d.ts.map +0 -1
  675. package/lib/features/svg-metadata/di.config.js.map +0 -1
  676. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +0 -1
  677. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +0 -1
  678. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +0 -1
  679. package/lib/features/tool-feedback/creation-tool-feedback.js.map +0 -1
  680. package/lib/features/tool-feedback/css-feedback.d.ts.map +0 -1
  681. package/lib/features/tool-feedback/css-feedback.js.map +0 -1
  682. package/lib/features/tool-feedback/di.config.d.ts.map +0 -1
  683. package/lib/features/tool-feedback/di.config.js +0 -53
  684. package/lib/features/tool-feedback/di.config.js.map +0 -1
  685. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +0 -1
  686. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +0 -1
  687. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +0 -1
  688. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +0 -1
  689. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +0 -1
  690. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +0 -1
  691. package/lib/features/tool-feedback/model.d.ts.map +0 -1
  692. package/lib/features/tool-feedback/model.js.map +0 -1
  693. package/lib/features/tool-feedback/view.d.ts +0 -16
  694. package/lib/features/tool-feedback/view.d.ts.map +0 -1
  695. package/lib/features/tool-feedback/view.js.map +0 -1
  696. package/lib/features/tool-palette/di.config.d.ts.map +0 -1
  697. package/lib/features/tool-palette/di.config.js.map +0 -1
  698. package/lib/features/tools/change-bounds-tool.d.ts.map +0 -1
  699. package/lib/features/tools/change-bounds-tool.js.map +0 -1
  700. package/lib/features/tools/delete-tool.d.ts.map +0 -1
  701. package/lib/features/tools/delete-tool.js.map +0 -1
  702. package/lib/features/tools/di.config.d.ts +0 -28
  703. package/lib/features/tools/di.config.d.ts.map +0 -1
  704. package/lib/features/tools/di.config.js +0 -66
  705. package/lib/features/tools/di.config.js.map +0 -1
  706. package/lib/features/tools/edge-creation-tool.d.ts.map +0 -1
  707. package/lib/features/tools/edge-creation-tool.js.map +0 -1
  708. package/lib/features/tools/edge-edit-tool.d.ts.map +0 -1
  709. package/lib/features/tools/edge-edit-tool.js.map +0 -1
  710. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +0 -10
  711. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +0 -1
  712. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +0 -1
  713. package/lib/features/tools/glsp-manhattan-edge-router.d.ts.map +0 -1
  714. package/lib/features/tools/glsp-manhattan-edge-router.js.map +0 -1
  715. package/lib/features/tools/marquee-behavior.d.ts.map +0 -1
  716. package/lib/features/tools/marquee-behavior.js.map +0 -1
  717. package/lib/features/tools/marquee-mouse-tool.d.ts.map +0 -1
  718. package/lib/features/tools/marquee-mouse-tool.js.map +0 -1
  719. package/lib/features/tools/marquee-tool.d.ts +0 -14
  720. package/lib/features/tools/marquee-tool.d.ts.map +0 -1
  721. package/lib/features/tools/marquee-tool.js.map +0 -1
  722. package/lib/features/tools/model.d.ts.map +0 -1
  723. package/lib/features/tools/model.js.map +0 -1
  724. package/lib/features/tools/node-creation-tool.d.ts.map +0 -1
  725. package/lib/features/tools/node-creation-tool.js.map +0 -1
  726. package/lib/features/tools/view.d.ts.map +0 -1
  727. package/lib/features/tools/view.js.map +0 -1
  728. package/lib/features/validation/di.config.d.ts.map +0 -1
  729. package/lib/features/validation/di.config.js.map +0 -1
  730. package/lib/features/viewport/di.config.d.ts.map +0 -1
  731. package/lib/features/viewport/di.config.js.map +0 -1
  732. package/src/features/tool-feedback/di.config.ts +0 -65
  733. package/src/features/tools/di.config.ts +0 -77
  734. /package/lib/features/{edit-label → label-edit}/edit-label-validator.d.ts +0 -0
  735. /package/lib/features/{tools → routing}/glsp-manhattan-edge-router.d.ts +0 -0
  736. /package/lib/features/{tools → routing}/glsp-manhattan-edge-router.js +0 -0
  737. /package/src/{features/tool-feedback/model.ts → base/feedback/feedback-command.ts} +0 -0
  738. /package/src/base/{actions/focus-change-action.ts → focus/focus-state-change-action.ts} +0 -0
  739. /package/src/features/{edit-label → label-edit}/edit-label-validator.ts +0 -0
  740. /package/src/features/{tools → routing}/glsp-manhattan-edge-router.ts +0 -0
  741. /package/src/features/tools/{marquee-behavior.spec.ts → marquee-selection/marquee-behavior.spec.ts} +0 -0
  742. /package/src/features/tools/{model.ts → marquee-selection/model.ts} +0 -0
  743. /package/src/features/tools/{view.tsx → marquee-selection/view.tsx} +0 -0
@@ -16,30 +16,26 @@
16
16
  import { inject, injectable } from 'inversify';
17
17
  import {
18
18
  Action,
19
- AnchorComputerRegistry,
20
- Bounds,
19
+ BindingContext,
21
20
  CommandExecutionContext,
22
21
  CommandReturn,
23
- MouseListener,
24
- MoveAction,
25
- Point,
26
- PolylineEdgeRouter,
27
22
  SChildElement,
28
- SConnectableElement,
29
23
  SDanglingAnchor,
30
24
  SEdgeSchema,
31
- SModelElement,
32
25
  SModelRoot,
33
26
  SRoutableElement,
34
27
  TYPES,
35
- findChildrenAtPosition,
28
+ configureCommand,
29
+ configureView,
36
30
  findParentByFeature,
37
31
  isBoundsAware,
38
32
  isConnectable
39
33
  } from '~glsp-sprotty';
40
- import { BoundsAwareModelElement, isRoutable } from '../../utils/smodel-util';
41
- import { getAbsolutePosition, toAbsoluteBounds, toAbsolutePosition } from '../../utils/viewpoint-util';
42
- import { FeedbackCommand } from './model';
34
+ import { FeedbackCommand } from '../../../base/feedback/feedback-command';
35
+ import { isRoutable } from '../../../utils/smodel-util';
36
+ import { toAbsolutePosition } from '../../../utils/viewpoint-util';
37
+ import { FeedbackEdgeEndView } from './view';
38
+
43
39
  export interface DrawFeedbackEdgeAction extends Action {
44
40
  kind: typeof DrawFeedbackEdgeAction.KIND;
45
41
  elementTypeId: string;
@@ -101,7 +97,7 @@ export class RemoveFeedbackEdgeCommand extends FeedbackCommand {
101
97
  static readonly KIND = RemoveFeedbackEdgeAction.KIND;
102
98
 
103
99
  execute(context: CommandExecutionContext): CommandReturn {
104
- removeFeedbackEdge(context.root);
100
+ removeDanglingFeedbackEdge(context.root);
105
101
  return context.root;
106
102
  }
107
103
  }
@@ -118,80 +114,6 @@ export class FeedbackEdgeEnd extends SDanglingAnchor {
118
114
  }
119
115
  }
120
116
 
121
- export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
122
- constructor(protected anchorRegistry: AnchorComputerRegistry) {
123
- super();
124
- }
125
-
126
- override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
127
- const root = target.root;
128
- const edgeEnd = root.index.getById(feedbackEdgeEndId(root));
129
- if (!(edgeEnd instanceof FeedbackEdgeEnd) || !edgeEnd.feedbackEdge) {
130
- return [];
131
- }
132
-
133
- const edge = edgeEnd.feedbackEdge;
134
- const position = getAbsolutePosition(edgeEnd, event);
135
- const endAtMousePosition = findChildrenAtPosition(target.root, position)
136
- .reverse()
137
- .find(element => isConnectable(element) && element.canConnect(edge, 'target'));
138
-
139
- if (endAtMousePosition instanceof SConnectableElement && edge.source && isBoundsAware(edge.source)) {
140
- const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(toAbsoluteBounds(edge.source)));
141
- if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
142
- return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })];
143
- }
144
- } else {
145
- return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })];
146
- }
147
-
148
- return [];
149
- }
150
-
151
- protected computeAbsoluteAnchor(element: SConnectableElement, absoluteReferencePoint: Point, offset?: number): Point {
152
- const referencePointInParent = absoluteToParent(element, absoluteReferencePoint);
153
- const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, element.anchorKind);
154
- let anchor = anchorComputer.getAnchor(element, referencePointInParent, offset);
155
- // The anchor is computed in the local coordinate system of the element.
156
- // If the element is a nested child element we have to add the absolute position of its parent to the anchor.
157
- if (element.parent !== element.root) {
158
- const parent = findParentByFeature(element.parent, isBoundsAware);
159
- if (parent) {
160
- const absoluteParentPosition = toAbsoluteBounds(parent);
161
- anchor = Point.add(absoluteParentPosition, anchor);
162
- }
163
- }
164
- return anchor;
165
- }
166
- }
167
-
168
- /**
169
- * Convert a point, specified in absolute coordinates, to a point relative
170
- * to the parent of the specified child element.
171
- * @param element the child element
172
- * @param absolutePoint a point in absolute coordinates
173
- * @returns the equivalent point, relative to the element's parent coordinates
174
- */
175
- function absoluteToParent(element: BoundsAwareModelElement & SChildElement, absolutePoint: Point): Point {
176
- if (isBoundsAware(element.parent)) {
177
- return absoluteToLocal(element.parent, absolutePoint);
178
- }
179
- // If the parent is not bounds-aware, assume it's at 0; 0 and proceed
180
- return absoluteToLocal(element, absolutePoint);
181
- }
182
-
183
- /**
184
- * Convert a point, specified in absolute coordinates, to a point relative
185
- * to the specified element.
186
- * @param element the element
187
- * @param absolutePoint a point in absolute coordinates
188
- * @returns the equivalent point, relative to the element's coordinates
189
- */
190
- function absoluteToLocal(element: BoundsAwareModelElement, absolutePoint: Point): Point {
191
- const absoluteElementBounds = toAbsoluteBounds(element);
192
- return { x: absolutePoint.x - absoluteElementBounds.x, y: absolutePoint.y - absoluteElementBounds.y };
193
- }
194
-
195
117
  export function feedbackEdgeId(root: SModelRoot): string {
196
118
  return root.id + '_feedback_edge';
197
119
  }
@@ -243,7 +165,7 @@ export function drawFeedbackEdge(
243
165
  }
244
166
  }
245
167
 
246
- export function removeFeedbackEdge(root: SModelRoot): void {
168
+ export function removeDanglingFeedbackEdge(root: SModelRoot): void {
247
169
  const feedbackEdge = root.index.getById(feedbackEdgeId(root));
248
170
  const feedbackEdgeEnd = root.index.getById(feedbackEdgeEndId(root));
249
171
  if (feedbackEdge instanceof SChildElement) {
@@ -253,3 +175,11 @@ export function removeFeedbackEdge(root: SModelRoot): void {
253
175
  root.remove(feedbackEdgeEnd);
254
176
  }
255
177
  }
178
+
179
+ export function configureDanglingFeedbackEdge(context: BindingContext): void {
180
+ if (!context.isBound(DrawFeedbackEdgeCommand) && !context.isBound(RemoveFeedbackEdgeCommand) && !context.isBound(FeedbackEdgeEndView)) {
181
+ configureCommand(context, DrawFeedbackEdgeCommand);
182
+ configureCommand(context, RemoveFeedbackEdgeCommand);
183
+ configureView(context, FeedbackEdgeEnd.TYPE, FeedbackEdgeEndView);
184
+ }
185
+ }
@@ -0,0 +1,25 @@
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 { FeatureModule, TYPES, TriggerEdgeCreationAction, bindAsService, configureActionHandler } from '~glsp-sprotty';
17
+ import { configureDanglingFeedbackEdge } from './dangling-edge-feedback';
18
+ import { EdgeCreationTool } from './edge-creation-tool';
19
+
20
+ export const edgeCreationToolModule = new FeatureModule((bind, unbind, isBound, rebind) => {
21
+ const context = { bind, unbind, isBound, rebind };
22
+ bindAsService(context, TYPES.ITool, EdgeCreationTool);
23
+ configureActionHandler(context, TriggerEdgeCreationAction.KIND, EdgeCreationTool);
24
+ configureDanglingFeedbackEdge(context);
25
+ });
@@ -0,0 +1,89 @@
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 {
17
+ Action,
18
+ AnchorComputerRegistry,
19
+ Bounds,
20
+ Disposable,
21
+ MouseListener,
22
+ MoveAction,
23
+ Point,
24
+ PolylineEdgeRouter,
25
+ SConnectableElement,
26
+ SModelElement,
27
+ findChildrenAtPosition,
28
+ findParentByFeature,
29
+ isBoundsAware,
30
+ isConnectable
31
+ } from '~glsp-sprotty';
32
+ import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
33
+ import { absoluteToParent, getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
34
+ import { FeedbackEdgeEnd, feedbackEdgeEndId } from './dangling-edge-feedback';
35
+
36
+ export class FeedbackEdgeEndMovingMouseListener extends MouseListener implements Disposable {
37
+ constructor(protected anchorRegistry: AnchorComputerRegistry, protected feedbackDispatcher: IFeedbackActionDispatcher) {
38
+ super();
39
+ }
40
+
41
+ override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
42
+ const root = target.root;
43
+ const edgeEnd = root.index.getById(feedbackEdgeEndId(root));
44
+ if (!(edgeEnd instanceof FeedbackEdgeEnd) || !edgeEnd.feedbackEdge) {
45
+ return [];
46
+ }
47
+
48
+ const edge = edgeEnd.feedbackEdge;
49
+ const position = getAbsolutePosition(edgeEnd, event);
50
+ const endAtMousePosition = findChildrenAtPosition(target.root, position)
51
+ .reverse()
52
+ .find(element => isConnectable(element) && element.canConnect(edge, 'target'));
53
+
54
+ if (endAtMousePosition instanceof SConnectableElement && edge.source && isBoundsAware(edge.source)) {
55
+ const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(toAbsoluteBounds(edge.source)));
56
+ if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
57
+ this.feedbackDispatcher.registerFeedback(this, [
58
+ MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })
59
+ ]);
60
+ }
61
+ } else {
62
+ this.feedbackDispatcher.registerFeedback(this, [
63
+ MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })
64
+ ]);
65
+ }
66
+
67
+ return [];
68
+ }
69
+
70
+ protected computeAbsoluteAnchor(element: SConnectableElement, absoluteReferencePoint: Point, offset?: number): Point {
71
+ const referencePointInParent = absoluteToParent(element, absoluteReferencePoint);
72
+ const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, element.anchorKind);
73
+ let anchor = anchorComputer.getAnchor(element, referencePointInParent, offset);
74
+ // The anchor is computed in the local coordinate system of the element.
75
+ // If the element is a nested child element we have to add the absolute position of its parent to the anchor.
76
+ if (element.parent !== element.root) {
77
+ const parent = findParentByFeature(element.parent, isBoundsAware);
78
+ if (parent) {
79
+ const absoluteParentPosition = toAbsoluteBounds(parent);
80
+ anchor = Point.add(absoluteParentPosition, anchor);
81
+ }
82
+ }
83
+ return anchor;
84
+ }
85
+
86
+ dispose(): void {
87
+ this.feedbackDispatcher.deregisterFeedback(this);
88
+ }
89
+ }
@@ -19,8 +19,6 @@ import {
19
19
  AnchorComputerRegistry,
20
20
  CreateEdgeOperation,
21
21
  EnableDefaultToolsAction,
22
- EnableToolsAction,
23
- IActionHandler,
24
22
  SEdge,
25
23
  SModelElement,
26
24
  TriggerEdgeCreationAction,
@@ -28,54 +26,39 @@ import {
28
26
  isConnectable,
29
27
  isCtrlOrCmd
30
28
  } from '~glsp-sprotty';
31
- import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
32
- import {
33
- DrawFeedbackEdgeAction,
34
- FeedbackEdgeEndMovingMouseListener,
35
- RemoveFeedbackEdgeAction
36
- } from '../tool-feedback/creation-tool-feedback';
37
- import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
38
- import { BaseGLSPTool } from './base-glsp-tool';
29
+ import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
30
+
31
+ import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
32
+ import { BaseGLSPCreationTool } from '../base-glsp-creation-tool';
33
+ import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction } from './dangling-edge-feedback';
34
+ import { FeedbackEdgeEndMovingMouseListener } from './edge-creation-tool-feedback';
39
35
 
40
36
  /**
41
37
  * Tool to create connections in a Diagram, by selecting a source and target node.
42
38
  */
43
39
  @injectable()
44
- export class EdgeCreationTool extends BaseGLSPTool implements IActionHandler {
40
+ export class EdgeCreationTool extends BaseGLSPCreationTool<TriggerEdgeCreationAction> {
45
41
  static ID = 'tool_create_edge';
46
42
 
47
43
  @inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
48
44
 
49
- protected triggerAction: TriggerEdgeCreationAction;
50
- protected creationToolMouseListener: EdgeCreationToolMouseListener;
51
- protected feedbackEndMovingMouseListener: FeedbackEdgeEndMovingMouseListener;
45
+ protected isTriggerAction = TriggerEdgeCreationAction.is;
52
46
 
53
47
  get id(): string {
54
48
  return EdgeCreationTool.ID;
55
49
  }
56
50
 
57
- enable(): void {
58
- if (this.triggerAction === undefined) {
59
- throw new TypeError(`Could not enable tool ${this.id}.The triggerAction cannot be undefined.`);
60
- }
61
- this.creationToolMouseListener = new EdgeCreationToolMouseListener(this.triggerAction, this);
62
- this.mouseTool.register(this.creationToolMouseListener);
63
- this.feedbackEndMovingMouseListener = new FeedbackEdgeEndMovingMouseListener(this.anchorRegistry);
64
- this.mouseTool.register(this.feedbackEndMovingMouseListener);
65
- this.dispatchFeedback([cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED)]);
66
- }
67
-
68
- disable(): void {
69
- this.mouseTool.deregister(this.creationToolMouseListener);
70
- this.mouseTool.deregister(this.feedbackEndMovingMouseListener);
71
- this.deregisterFeedback([RemoveFeedbackEdgeAction.create(), cursorFeedbackAction()]);
72
- }
73
-
74
- handle(action: Action): Action | void {
75
- if (TriggerEdgeCreationAction.is(action)) {
76
- this.triggerAction = action;
77
- return EnableToolsAction.create([this.id]);
78
- }
51
+ doEnable(): void {
52
+ const mouseMovingFeedback = new FeedbackEdgeEndMovingMouseListener(this.anchorRegistry, this.feedbackDispatcher);
53
+ this.toDisposeOnDisable.push(
54
+ mouseMovingFeedback,
55
+ this.mouseTool.registerListener(new EdgeCreationToolMouseListener(this.triggerAction, this)),
56
+ this.mouseTool.registerListener(mouseMovingFeedback),
57
+ this.registerFeedback([cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED)], this, [
58
+ RemoveFeedbackEdgeAction.create(),
59
+ cursorFeedbackAction()
60
+ ])
61
+ );
79
62
  }
80
63
  }
81
64
 
@@ -98,7 +81,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
98
81
  this.target = undefined;
99
82
  this.currentTarget = undefined;
100
83
  this.allowedTarget = false;
101
- this.tool.dispatchFeedback([RemoveFeedbackEdgeAction.create()]);
84
+ this.tool.registerFeedback([RemoveFeedbackEdgeAction.create()]);
102
85
  }
103
86
 
104
87
  override nonDraggingMouseUp(_element: SModelElement, event: MouseEvent): Action[] {
@@ -107,7 +90,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
107
90
  if (!this.isSourceSelected()) {
108
91
  if (this.currentTarget && this.allowedTarget) {
109
92
  this.source = this.currentTarget.id;
110
- this.tool.dispatchFeedback([
93
+ this.tool.registerFeedback([
111
94
  DrawFeedbackEdgeAction.create({ elementTypeId: this.triggerAction.elementTypeId, sourceId: this.source })
112
95
  ]);
113
96
  }
@@ -117,6 +100,11 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
117
100
  }
118
101
  }
119
102
  if (this.source && this.target) {
103
+ if (!isCtrlOrCmd(event)) {
104
+ result.push(EnableDefaultToolsAction.create());
105
+ } else {
106
+ this.reinitialize();
107
+ }
120
108
  result.push(
121
109
  CreateEdgeOperation.create({
122
110
  elementTypeId: this.triggerAction.elementTypeId,
@@ -125,11 +113,6 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
125
113
  args: this.triggerAction.args
126
114
  })
127
115
  );
128
- if (!isCtrlOrCmd(event)) {
129
- result.push(EnableDefaultToolsAction.create());
130
- } else {
131
- this.reinitialize();
132
- }
133
116
  }
134
117
  } else if (event.button === 2) {
135
118
  result.push(EnableDefaultToolsAction.create());
@@ -0,0 +1,33 @@
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 { injectable } from 'inversify';
17
+ import { VNode } from 'snabbdom';
18
+ import { IView, Point, RenderingContext, SModelElement, svg } from '~glsp-sprotty';
19
+
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ const JSX = { createElement: svg };
22
+
23
+ /**
24
+ * This view is used for the invisible end of the feedback edge.
25
+ * A feedback edge is shown as a visual feedback when creating edges.
26
+ */
27
+ @injectable()
28
+ export class FeedbackEdgeEndView implements IView {
29
+ render(model: Readonly<SModelElement>, context: RenderingContext): VNode {
30
+ const position: Point = (model as any).position ?? Point.ORIGIN;
31
+ return <g x={position.x} y={position.y} />;
32
+ }
33
+ }
@@ -0,0 +1,38 @@
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 { FeatureModule, TYPES, bindAsService, configureCommand } from '~glsp-sprotty';
17
+ import { configureDanglingFeedbackEdge } from '../edge-creation/dangling-edge-feedback';
18
+ import { EdgeEditTool } from './edge-edit-tool';
19
+ import {
20
+ DrawFeedbackEdgeSourceCommand,
21
+ HideEdgeReconnectHandlesFeedbackCommand,
22
+ ShowEdgeReconnectHandlesFeedbackCommand,
23
+ SwitchRoutingModeCommand
24
+ } from './edge-edit-tool-feedback';
25
+
26
+ export const edgeEditToolModule = new FeatureModule((bind, unbind, isBound, rebind) => {
27
+ const context = { bind, unbind, isBound, rebind };
28
+ bindAsService(context, TYPES.IDefaultTool, EdgeEditTool);
29
+
30
+ // reconnect edge tool feedback
31
+ configureCommand(context, ShowEdgeReconnectHandlesFeedbackCommand);
32
+ configureCommand(context, HideEdgeReconnectHandlesFeedbackCommand);
33
+ configureCommand(context, DrawFeedbackEdgeSourceCommand);
34
+ configureCommand(context, SwitchRoutingModeCommand);
35
+
36
+ // dangling edge feedback
37
+ configureDanglingFeedbackEdge(context);
38
+ });
@@ -21,6 +21,7 @@ import {
21
21
  Bounds,
22
22
  CommandExecutionContext,
23
23
  CommandReturn,
24
+ Disposable,
24
25
  EdgeRouterRegistry,
25
26
  ElementMove,
26
27
  ISnapper,
@@ -41,12 +42,14 @@ import {
41
42
  isConnectable,
42
43
  isSelected
43
44
  } from '~glsp-sprotty';
44
- import { forEachElement, isRoutable, isRoutingHandle } from '../../utils/smodel-util';
45
- import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
46
- import { PointPositionUpdater } from '../change-bounds/snap';
47
- import { addReconnectHandles, removeReconnectHandles } from '../reconnect/model';
48
- import { FeedbackEdgeEnd, FeedbackEdgeEndMovingMouseListener, feedbackEdgeEndId, feedbackEdgeId } from './creation-tool-feedback';
49
- import { FeedbackCommand } from './model';
45
+ import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
46
+ import { FeedbackCommand } from '../../../base/feedback/feedback-command';
47
+ import { forEachElement, isRoutable, isRoutingHandle } from '../../../utils/smodel-util';
48
+ import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
49
+ import { PointPositionUpdater } from '../../change-bounds/snap';
50
+ import { addReconnectHandles, removeReconnectHandles } from '../../reconnect/model';
51
+ import { FeedbackEdgeEnd, feedbackEdgeEndId, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
52
+ import { FeedbackEdgeEndMovingMouseListener } from '../edge-creation/edge-creation-tool-feedback';
50
53
 
51
54
  /**
52
55
  * RECONNECT HANDLES FEEDBACK
@@ -67,6 +70,7 @@ export namespace ShowEdgeReconnectHandlesFeedbackAction {
67
70
  return { kind: KIND, elementId };
68
71
  }
69
72
  }
73
+
70
74
  export interface HideEdgeReconnectHandlesFeedbackAction extends Action {
71
75
  kind: typeof HideEdgeReconnectHandlesFeedbackAction.KIND;
72
76
  }
@@ -135,6 +139,7 @@ export namespace SwitchRoutingModeAction {
135
139
  };
136
140
  }
137
141
  }
142
+
138
143
  @injectable()
139
144
  export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
140
145
  static override KIND = SwitchRoutingModeAction.KIND;
@@ -187,13 +192,13 @@ export class DrawFeedbackEdgeSourceCommand extends FeedbackCommand {
187
192
  */
188
193
 
189
194
  export class FeedbackEdgeTargetMovingMouseListener extends FeedbackEdgeEndMovingMouseListener {
190
- constructor(protected override anchorRegistry: AnchorComputerRegistry) {
191
- super(anchorRegistry);
195
+ constructor(anchorRegistry: AnchorComputerRegistry, feedbackDispatcher: IFeedbackActionDispatcher) {
196
+ super(anchorRegistry, feedbackDispatcher);
192
197
  }
193
198
  }
194
199
 
195
- export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
196
- constructor(protected anchorRegistry: AnchorComputerRegistry) {
200
+ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener implements Disposable {
201
+ constructor(protected anchorRegistry: AnchorComputerRegistry, protected feedbackDispatcher: IFeedbackActionDispatcher) {
197
202
  super();
198
203
  }
199
204
 
@@ -207,16 +212,20 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
207
212
  const edge = edgeEnd.feedbackEdge;
208
213
  const position = getAbsolutePosition(edgeEnd, event);
209
214
  const endAtMousePosition = findChildrenAtPosition(target.root, position).find(
210
- e => isConnectable(e) && e.canConnect(edge, 'source')
215
+ element => isConnectable(element) && element.canConnect(edge, 'source')
211
216
  );
212
217
 
213
218
  if (endAtMousePosition instanceof SConnectableElement && edge.target && isBoundsAware(edge.target)) {
214
219
  const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(edge.target.bounds));
215
220
  if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
216
- return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })];
221
+ this.feedbackDispatcher.registerFeedback(this, [
222
+ MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })
223
+ ]);
217
224
  }
218
225
  } else {
219
- return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })];
226
+ this.feedbackDispatcher.registerFeedback(this, [
227
+ MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })
228
+ ]);
220
229
  }
221
230
 
222
231
  return [];
@@ -236,6 +245,10 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
236
245
  }
237
246
  return anchor;
238
247
  }
248
+
249
+ dispose(): void {
250
+ this.feedbackDispatcher.deregisterFeedback(this);
251
+ }
239
252
  }
240
253
 
241
254
  export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
@@ -341,8 +354,7 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
341
354
  /**
342
355
  * UTILITY FUNCTIONS
343
356
  */
344
-
345
- function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string): void {
357
+ export function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string): void {
346
358
  const root = context.root;
347
359
  const targetChild = root.index.getById(targetId);
348
360
  if (!targetChild) {