@eclipse-glsp/client 0.9.0-next.fd1a8bb6 → 0.10.0-next.4ce46ea.160

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 (497) hide show
  1. package/LICENSE +642 -277
  2. package/README.md +4 -2
  3. package/css/command-palette.css +9 -5
  4. package/css/decoration.css +3 -2
  5. package/css/glsp-sprotty.css +125 -14
  6. package/css/tool-palette.css +44 -27
  7. package/lib/base/action-dispatcher.d.ts +19 -3
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +11 -8
  10. package/lib/base/action-dispatcher.js.map +1 -1
  11. package/lib/base/actions/focus-change-action.d.ts +1 -1
  12. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  13. package/lib/base/{args.d.ts → argumentable.d.ts} +2 -4
  14. package/lib/base/argumentable.d.ts.map +1 -0
  15. package/lib/base/{args.js → argumentable.js} +1 -1
  16. package/lib/base/argumentable.js.map +1 -0
  17. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  18. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  19. package/lib/base/auto-complete/auto-complete-widget.d.ts +2 -2
  20. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.js +20 -4
  22. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  23. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  24. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  25. package/lib/base/auto-complete/validation-decorator.js +9 -8
  26. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  27. package/lib/base/command-stack.d.ts.map +1 -1
  28. package/lib/base/command-stack.js +3 -3
  29. package/lib/base/command-stack.js.map +1 -1
  30. package/lib/base/container-modules.d.ts +40 -0
  31. package/lib/base/container-modules.d.ts.map +1 -0
  32. package/lib/base/container-modules.js +100 -0
  33. package/lib/base/container-modules.js.map +1 -0
  34. package/lib/base/di.config.d.ts +4 -2
  35. package/lib/base/di.config.d.ts.map +1 -1
  36. package/lib/base/di.config.js +10 -8
  37. package/lib/base/di.config.js.map +1 -1
  38. package/lib/base/drag-aware-mouse-listener.d.ts +2 -1
  39. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  40. package/lib/base/drag-aware-mouse-listener.js +0 -15
  41. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  42. package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
  43. package/lib/base/editor-context-service.d.ts.map +1 -0
  44. package/lib/base/{editor-context.js → editor-context-service.js} +6 -7
  45. package/lib/base/editor-context-service.js.map +1 -0
  46. package/lib/base/focus-tracker.d.ts +17 -1
  47. package/lib/base/focus-tracker.d.ts.map +1 -1
  48. package/lib/base/focus-tracker.js +0 -15
  49. package/lib/base/focus-tracker.js.map +1 -1
  50. package/lib/base/model/update-model-command.d.ts +19 -5
  51. package/lib/base/model/update-model-command.d.ts.map +1 -1
  52. package/lib/base/model/update-model-command.js +8 -12
  53. package/lib/base/model/update-model-command.js.map +1 -1
  54. package/lib/base/model-initialization-constraint.d.ts +16 -1
  55. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  56. package/lib/base/model-initialization-constraint.js +3 -2
  57. package/lib/base/model-initialization-constraint.js.map +1 -1
  58. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  59. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  60. package/lib/base/tool-manager/glsp-tool-manager.js +6 -7
  61. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  62. package/lib/base/types.d.ts +3 -1
  63. package/lib/base/types.d.ts.map +1 -1
  64. package/lib/base/types.js +4 -2
  65. package/lib/base/types.js.map +1 -1
  66. package/lib/features/change-bounds/model.d.ts +2 -0
  67. package/lib/features/change-bounds/model.d.ts.map +1 -1
  68. package/lib/features/change-bounds/model.js +6 -0
  69. package/lib/features/change-bounds/model.js.map +1 -1
  70. package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
  71. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  72. package/lib/features/change-bounds/movement-restrictor.js +0 -15
  73. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  74. package/lib/features/change-bounds/snap.d.ts +17 -1
  75. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  76. package/lib/features/change-bounds/snap.js +0 -15
  77. package/lib/features/change-bounds/snap.js.map +1 -1
  78. package/lib/features/command-palette/server-command-palette-provider.d.ts +18 -2
  79. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  80. package/lib/features/command-palette/server-command-palette-provider.js +6 -6
  81. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  82. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
  83. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  84. package/lib/features/context-menu/delete-element-context-menu.js +3 -3
  85. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  86. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  87. package/lib/features/context-menu/di.config.js.map +1 -1
  88. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +16 -0
  89. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  90. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +36 -8
  91. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  92. package/lib/features/context-menu/server-context-menu-provider.d.ts +18 -2
  93. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  94. package/lib/features/context-menu/server-context-menu-provider.js +6 -6
  95. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  96. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +17 -1
  97. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  98. package/lib/features/copy-paste/copy-paste-context-menu.js +6 -6
  99. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  100. package/lib/features/copy-paste/copy-paste-handler.d.ts +17 -2
  101. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  102. package/lib/features/copy-paste/copy-paste-handler.js +7 -7
  103. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  104. package/lib/features/copy-paste/di.config.d.ts +1 -1
  105. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  106. package/lib/features/copy-paste/di.config.js +5 -5
  107. package/lib/features/copy-paste/di.config.js.map +1 -1
  108. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  109. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  110. package/lib/features/decoration/decoration-placer.js +0 -15
  111. package/lib/features/decoration/decoration-placer.js.map +1 -1
  112. package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
  113. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  114. package/lib/features/edit-label/edit-label-validator.js +5 -5
  115. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  116. package/lib/features/hints/di.config.d.ts +0 -15
  117. package/lib/features/hints/di.config.d.ts.map +1 -1
  118. package/lib/features/hints/di.config.js +3 -3
  119. package/lib/features/hints/di.config.js.map +1 -1
  120. package/lib/features/hints/model.d.ts +2 -1
  121. package/lib/features/hints/model.d.ts.map +1 -1
  122. package/lib/features/hints/model.js.map +1 -1
  123. package/lib/features/hints/type-hints.d.ts +17 -45
  124. package/lib/features/hints/type-hints.d.ts.map +1 -1
  125. package/lib/features/hints/type-hints.js +3 -20
  126. package/lib/features/hints/type-hints.js.map +1 -1
  127. package/lib/features/hover/di.config.d.ts +1 -1
  128. package/lib/features/hover/di.config.d.ts.map +1 -1
  129. package/lib/features/hover/di.config.js +4 -2
  130. package/lib/features/hover/di.config.js.map +1 -1
  131. package/lib/features/hover/hover.d.ts +28 -2
  132. package/lib/features/hover/hover.d.ts.map +1 -1
  133. package/lib/features/hover/hover.js +24 -3
  134. package/lib/features/hover/hover.js.map +1 -1
  135. package/lib/features/layout/di.config.d.ts +1 -1
  136. package/lib/features/layout/di.config.d.ts.map +1 -1
  137. package/lib/features/layout/di.config.js +6 -2
  138. package/lib/features/layout/di.config.js.map +1 -1
  139. package/lib/features/layout/freeform-layout.d.ts +16 -0
  140. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  141. package/lib/features/layout/freeform-layout.js +107 -0
  142. package/lib/features/layout/freeform-layout.js.map +1 -0
  143. package/lib/features/layout/layout-commands.d.ts +17 -1
  144. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  145. package/lib/features/layout/layout-commands.js +3 -3
  146. package/lib/features/layout/layout-commands.js.map +1 -1
  147. package/lib/features/layout/layout-commands.spec.d.ts +0 -15
  148. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  149. package/lib/features/layout/layout-commands.spec.js +4 -4
  150. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  151. package/lib/features/layout/vbox-layout.d.ts +25 -0
  152. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  153. package/lib/features/layout/vbox-layout.js +188 -0
  154. package/lib/features/layout/vbox-layout.js.map +1 -0
  155. package/lib/features/model-source-watcher/di.config.d.ts +0 -15
  156. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  157. package/lib/features/model-source-watcher/di.config.js +4 -4
  158. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  159. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  160. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  161. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +7 -8
  162. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  163. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  164. package/lib/features/mouse-tool/mouse-tool.js +2 -1
  165. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  166. package/lib/features/navigation/di.config.d.ts +0 -15
  167. package/lib/features/navigation/di.config.d.ts.map +1 -1
  168. package/lib/features/navigation/di.config.js +7 -6
  169. package/lib/features/navigation/di.config.js.map +1 -1
  170. package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
  171. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  172. package/lib/features/navigation/navigation-action-handler.js +12 -67
  173. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  174. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  175. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  176. package/lib/features/navigation/navigation-target-resolver.js +6 -83
  177. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  178. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
  179. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  180. package/lib/features/navigation/navigation-target-resolver.spec.js +16 -16
  181. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  182. package/lib/features/save/di.config.js +2 -2
  183. package/lib/features/save/di.config.js.map +1 -1
  184. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +3 -9
  185. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  186. package/lib/features/save/{save.js → save-keylistener.js} +4 -15
  187. package/lib/features/save/save-keylistener.js.map +1 -0
  188. package/lib/features/select/selection-service.d.ts +17 -1
  189. package/lib/features/select/selection-service.d.ts.map +1 -1
  190. package/lib/features/select/selection-service.js +5 -5
  191. package/lib/features/select/selection-service.js.map +1 -1
  192. package/lib/features/select/selection-service.spec.js +0 -16
  193. package/lib/features/select/selection-service.spec.js.map +1 -1
  194. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +18 -1
  195. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  196. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +16 -18
  197. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  198. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
  199. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  200. package/lib/features/tool-feedback/creation-tool-feedback.js +30 -19
  201. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  202. package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
  203. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  204. package/lib/features/tool-feedback/css-feedback.js +5 -3
  205. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  206. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +17 -1
  207. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  208. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +0 -15
  209. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  210. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +18 -2
  211. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  212. package/lib/features/tool-feedback/feedback-action-dispatcher.js +0 -15
  213. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  214. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
  215. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  216. package/lib/features/tool-feedback/marquee-tool-feedback.js +0 -15
  217. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  218. package/lib/features/tool-feedback/view.d.ts +17 -1
  219. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  220. package/lib/features/tool-feedback/view.js +0 -15
  221. package/lib/features/tool-feedback/view.js.map +1 -1
  222. package/lib/features/tool-palette/di.config.d.ts +1 -1
  223. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  224. package/lib/features/tool-palette/di.config.js +1 -1
  225. package/lib/features/tool-palette/di.config.js.map +1 -1
  226. package/lib/features/tool-palette/palette-item.d.ts +1 -2
  227. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  228. package/lib/features/tool-palette/palette-item.js +3 -4
  229. package/lib/features/tool-palette/palette-item.js.map +1 -1
  230. package/lib/features/tool-palette/tool-palette.d.ts +19 -3
  231. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  232. package/lib/features/tool-palette/tool-palette.js +38 -31
  233. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  234. package/lib/features/tools/base-glsp-tool.d.ts +20 -4
  235. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  236. package/lib/features/tools/base-glsp-tool.js +8 -23
  237. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  238. package/lib/features/tools/change-bounds-tool.d.ts +20 -3
  239. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  240. package/lib/features/tools/change-bounds-tool.js +28 -13
  241. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  242. package/lib/features/tools/delete-tool.d.ts +17 -1
  243. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  244. package/lib/features/tools/delete-tool.js +3 -3
  245. package/lib/features/tools/delete-tool.js.map +1 -1
  246. package/lib/features/tools/di.config.d.ts +0 -15
  247. package/lib/features/tools/di.config.d.ts.map +1 -1
  248. package/lib/features/tools/di.config.js +4 -4
  249. package/lib/features/tools/di.config.js.map +1 -1
  250. package/lib/features/tools/edge-creation-tool.d.ts +17 -2
  251. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  252. package/lib/features/tools/edge-creation-tool.js +4 -4
  253. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  254. package/lib/features/tools/edge-edit-tool.d.ts +17 -1
  255. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  256. package/lib/features/tools/edge-edit-tool.js +5 -4
  257. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  258. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  259. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  260. package/lib/features/tools/marquee-behavior.js +128 -0
  261. package/lib/features/tools/marquee-behavior.js.map +1 -0
  262. package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
  263. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  264. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  265. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  266. package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
  267. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  268. package/lib/features/tools/marquee-mouse-tool.js +33 -121
  269. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  270. package/lib/features/tools/marquee-tool.d.ts +17 -1
  271. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  272. package/lib/features/tools/marquee-tool.js +0 -15
  273. package/lib/features/tools/marquee-tool.js.map +1 -1
  274. package/lib/features/tools/node-creation-tool.d.ts +17 -2
  275. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  276. package/lib/features/tools/node-creation-tool.js +4 -4
  277. package/lib/features/tools/node-creation-tool.js.map +1 -1
  278. package/lib/features/validation/issue-marker.d.ts +2 -2
  279. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  280. package/lib/features/validation/issue-marker.js +5 -5
  281. package/lib/features/validation/issue-marker.js.map +1 -1
  282. package/lib/features/validation/marker-navigator.d.ts +17 -1
  283. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  284. package/lib/features/validation/marker-navigator.js +2 -1
  285. package/lib/features/validation/marker-navigator.js.map +1 -1
  286. package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
  287. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  288. package/lib/features/validation/marker-navigator.spec.js +9 -9
  289. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  290. package/lib/features/validation/validate.d.ts +18 -29
  291. package/lib/features/validation/validate.d.ts.map +1 -1
  292. package/lib/features/validation/validate.js +11 -49
  293. package/lib/features/validation/validate.js.map +1 -1
  294. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
  295. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  296. package/lib/features/viewport/glsp-scroll-mouse-listener.js +0 -15
  297. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  298. package/lib/index.d.ts +6 -12
  299. package/lib/index.d.ts.map +1 -1
  300. package/lib/index.js +6 -12
  301. package/lib/index.js.map +1 -1
  302. package/lib/model-source/glsp-diagram-server.d.ts +2 -4
  303. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  304. package/lib/model-source/glsp-diagram-server.js +21 -6
  305. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  306. package/lib/protocol-reexport.d.ts +45 -0
  307. package/lib/protocol-reexport.d.ts.map +1 -0
  308. package/lib/protocol-reexport.js +75 -0
  309. package/lib/protocol-reexport.js.map +1 -0
  310. package/lib/utils/argument-utils.d.ts.map +1 -1
  311. package/lib/utils/argument-utils.js +6 -6
  312. package/lib/utils/argument-utils.js.map +1 -1
  313. package/lib/utils/layout-utils.d.ts +2 -1
  314. package/lib/utils/layout-utils.d.ts.map +1 -1
  315. package/lib/utils/marker.d.ts +0 -38
  316. package/lib/utils/marker.d.ts.map +1 -1
  317. package/lib/utils/marker.js +6 -11
  318. package/lib/utils/marker.js.map +1 -1
  319. package/lib/utils/smodel-util.d.ts +1 -1
  320. package/lib/utils/smodel-util.d.ts.map +1 -1
  321. package/lib/utils/smodel-util.js +0 -15
  322. package/lib/utils/smodel-util.js.map +1 -1
  323. package/lib/utils/viewpoint-util.d.ts +2 -1
  324. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  325. package/lib/utils/viewpoint-util.js +0 -15
  326. package/lib/utils/viewpoint-util.js.map +1 -1
  327. package/lib/views/base-view-module.d.ts +0 -15
  328. package/lib/views/base-view-module.d.ts.map +1 -1
  329. package/lib/views/base-view-module.js +20 -20
  330. package/lib/views/base-view-module.js.map +1 -1
  331. package/lib/views/compartments.d.ts +6 -0
  332. package/lib/views/compartments.d.ts.map +1 -0
  333. package/lib/{base/actions/edit-mode-action.js → views/compartments.js} +18 -26
  334. package/lib/views/compartments.js.map +1 -0
  335. package/lib/views/glsp-edge-view.d.ts +17 -1
  336. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  337. package/lib/views/glsp-edge-view.js +0 -15
  338. package/lib/views/glsp-edge-view.js.map +1 -1
  339. package/lib/views/index.d.ts +1 -1
  340. package/lib/views/index.d.ts.map +1 -1
  341. package/lib/views/index.js +1 -1
  342. package/lib/views/index.js.map +1 -1
  343. package/lib/views/issue-marker-view.d.ts +1 -0
  344. package/lib/views/issue-marker-view.d.ts.map +1 -1
  345. package/lib/views/issue-marker-view.js +17 -8
  346. package/lib/views/issue-marker-view.js.map +1 -1
  347. package/lib/views/rounded-corner.d.ts +2 -1
  348. package/lib/views/rounded-corner.d.ts.map +1 -1
  349. package/package.json +8 -5
  350. package/src/base/action-dispatcher.ts +11 -10
  351. package/src/base/actions/focus-change-action.ts +1 -1
  352. package/src/base/{args.ts → argumentable.ts} +1 -4
  353. package/src/base/auto-complete/auto-complete-actions.ts +1 -1
  354. package/src/base/auto-complete/auto-complete-widget.ts +3 -4
  355. package/src/base/auto-complete/validation-decorator.ts +7 -6
  356. package/src/base/command-stack.ts +1 -2
  357. package/src/base/container-modules.ts +112 -0
  358. package/src/base/di.config.ts +6 -7
  359. package/src/base/drag-aware-mouse-listener.ts +2 -1
  360. package/src/base/{editor-context.ts → editor-context-service.ts} +2 -27
  361. package/src/base/focus-tracker.ts +2 -2
  362. package/src/base/model/update-model-command.ts +5 -12
  363. package/src/base/model-initialization-constraint.ts +3 -2
  364. package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
  365. package/src/base/types.ts +4 -2
  366. package/src/features/change-bounds/model.ts +9 -1
  367. package/src/features/change-bounds/movement-restrictor.ts +2 -2
  368. package/src/features/change-bounds/snap.ts +3 -2
  369. package/src/features/command-palette/server-command-palette-provider.ts +3 -4
  370. package/src/features/context-menu/delete-element-context-menu.ts +3 -4
  371. package/src/features/context-menu/di.config.ts +0 -1
  372. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +40 -11
  373. package/src/features/context-menu/server-context-menu-provider.ts +3 -4
  374. package/src/features/copy-paste/copy-paste-context-menu.ts +2 -13
  375. package/src/features/copy-paste/copy-paste-handler.ts +3 -4
  376. package/src/features/copy-paste/di.config.ts +2 -3
  377. package/src/features/decoration/decoration-placer.ts +2 -1
  378. package/src/features/edit-label/edit-label-validator.ts +1 -1
  379. package/src/features/hints/di.config.ts +2 -3
  380. package/src/features/hints/model.ts +2 -1
  381. package/src/features/hints/type-hints.ts +1 -64
  382. package/src/features/hover/di.config.ts +4 -3
  383. package/src/features/hover/hover.ts +27 -7
  384. package/src/features/layout/di.config.ts +8 -4
  385. package/src/features/layout/freeform-layout.ts +133 -0
  386. package/src/features/layout/layout-commands.spec.ts +3 -8
  387. package/src/features/layout/layout-commands.ts +1 -3
  388. package/src/features/layout/vbox-layout.ts +256 -0
  389. package/src/features/model-source-watcher/di.config.ts +3 -4
  390. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +8 -4
  391. package/src/features/mouse-tool/mouse-tool.ts +2 -1
  392. package/src/features/navigation/di.config.ts +4 -10
  393. package/src/features/navigation/navigation-action-handler.ts +16 -62
  394. package/src/features/navigation/navigation-target-resolver.spec.ts +2 -4
  395. package/src/features/navigation/navigation-target-resolver.ts +8 -88
  396. package/src/features/save/di.config.ts +1 -1
  397. package/src/features/save/{save.ts → save-keylistener.ts} +2 -10
  398. package/src/features/select/selection-service.spec.ts +2 -2
  399. package/src/features/select/selection-service.ts +1 -5
  400. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +19 -6
  401. package/src/features/tool-feedback/creation-tool-feedback.ts +34 -8
  402. package/src/features/tool-feedback/css-feedback.ts +5 -3
  403. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +1 -3
  404. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  405. package/src/features/tool-feedback/marquee-tool-feedback.ts +1 -3
  406. package/src/features/tool-feedback/view.tsx +2 -2
  407. package/src/features/tool-palette/di.config.ts +1 -3
  408. package/src/features/tool-palette/palette-item.ts +1 -3
  409. package/src/features/tool-palette/tool-palette.ts +32 -26
  410. package/src/features/tools/base-glsp-tool.ts +10 -10
  411. package/src/features/tools/change-bounds-tool.ts +36 -18
  412. package/src/features/tools/delete-tool.ts +1 -3
  413. package/src/features/tools/di.config.ts +2 -3
  414. package/src/features/tools/edge-creation-tool.ts +1 -3
  415. package/src/features/tools/edge-edit-tool.ts +3 -4
  416. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  417. package/src/features/tools/marquee-behavior.ts +158 -0
  418. package/src/features/tools/marquee-mouse-tool.ts +35 -146
  419. package/src/features/tools/marquee-tool.ts +2 -2
  420. package/src/features/tools/node-creation-tool.ts +1 -3
  421. package/src/features/validation/issue-marker.ts +2 -3
  422. package/src/features/validation/marker-navigator.spec.ts +3 -5
  423. package/src/features/validation/marker-navigator.ts +1 -4
  424. package/src/features/validation/validate.ts +4 -33
  425. package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -3
  426. package/src/index.ts +6 -12
  427. package/src/model-source/glsp-diagram-server.ts +12 -14
  428. package/src/protocol-reexport.ts +64 -0
  429. package/src/utils/argument-utils.ts +1 -2
  430. package/src/utils/layout-utils.ts +2 -2
  431. package/src/utils/marker.ts +2 -26
  432. package/src/utils/smodel-util.ts +1 -1
  433. package/src/utils/viewpoint-util.ts +1 -2
  434. package/src/views/base-view-module.ts +1 -2
  435. package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -13
  436. package/src/views/glsp-edge-view.tsx +2 -2
  437. package/src/views/index.ts +1 -1
  438. package/src/views/issue-marker-view.tsx +18 -8
  439. package/src/views/rounded-corner.ts +2 -2
  440. package/lib/base/actions/context-actions.d.ts +0 -36
  441. package/lib/base/actions/context-actions.d.ts.map +0 -1
  442. package/lib/base/actions/context-actions.js +0 -44
  443. package/lib/base/actions/context-actions.js.map +0 -1
  444. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  445. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  446. package/lib/base/actions/edit-mode-action.js.map +0 -1
  447. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  448. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  449. package/lib/base/actions/edit-validation-actions.js +0 -80
  450. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  451. package/lib/base/args.d.ts.map +0 -1
  452. package/lib/base/args.js.map +0 -1
  453. package/lib/base/editor-context.d.ts.map +0 -1
  454. package/lib/base/editor-context.js.map +0 -1
  455. package/lib/base/operations/operation.d.ts +0 -135
  456. package/lib/base/operations/operation.d.ts.map +0 -1
  457. package/lib/base/operations/operation.js +0 -191
  458. package/lib/base/operations/operation.js.map +0 -1
  459. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  460. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  461. package/lib/features/copy-paste/copy-paste-actions.js +0 -58
  462. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  463. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  464. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  465. package/lib/features/hints/request-type-hints-action.js +0 -28
  466. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  467. package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
  468. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  469. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -16
  470. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  471. package/lib/features/save/save.d.ts.map +0 -1
  472. package/lib/features/save/save.js.map +0 -1
  473. package/lib/features/undo-redo/model.d.ts +0 -27
  474. package/lib/features/undo-redo/model.d.ts.map +0 -1
  475. package/lib/features/undo-redo/model.js +0 -18
  476. package/lib/features/undo-redo/model.js.map +0 -1
  477. package/lib/model-source/glsp-server-status.d.ts +0 -30
  478. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  479. package/lib/model-source/glsp-server-status.js +0 -44
  480. package/lib/model-source/glsp-server-status.js.map +0 -1
  481. package/lib/utils/array-utils.d.ts +0 -28
  482. package/lib/utils/array-utils.d.ts.map +0 -1
  483. package/lib/utils/array-utils.js +0 -56
  484. package/lib/utils/array-utils.js.map +0 -1
  485. package/lib/views/default-types.d.ts +0 -37
  486. package/lib/views/default-types.d.ts.map +0 -1
  487. package/lib/views/default-types.js +0 -47
  488. package/lib/views/default-types.js.map +0 -1
  489. package/src/base/actions/context-actions.ts +0 -43
  490. package/src/base/actions/edit-validation-actions.ts +0 -115
  491. package/src/base/operations/operation.ts +0 -205
  492. package/src/features/copy-paste/copy-paste-actions.ts +0 -63
  493. package/src/features/hints/request-type-hints-action.ts +0 -41
  494. package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
  495. package/src/model-source/glsp-server-status.ts +0 -38
  496. package/src/utils/array-utils.ts +0 -57
  497. package/src/views/default-types.ts +0 -48
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, isSetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
17
18
  import {
18
- Action,
19
19
  ActionHandlerRegistry,
20
20
  Command,
21
21
  CommandActionHandler,
@@ -23,13 +23,10 @@ import {
23
23
  CommandReturn,
24
24
  IActionHandler,
25
25
  ILogger,
26
- SetModelAction,
27
- SetModelCommand,
28
26
  SModelRoot,
29
- TYPES
27
+ TYPES,
28
+ UpdateModelCommand
30
29
  } from 'sprotty';
31
- import { UpdateModelAction, UpdateModelCommand } from 'sprotty/lib/features/update/update-model';
32
-
33
30
  import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
34
31
  import { FeedbackCommand } from '../../features/tool-feedback/model';
35
32
  import { GLSP_TYPES } from '../types';
@@ -45,17 +42,13 @@ export class SetModelActionHandler implements IActionHandler {
45
42
  }
46
43
  }
47
44
 
48
- export function isSetModelAction(action: Action): action is SetModelAction {
49
- return action !== undefined && action.kind === SetModelCommand.KIND && (action as SetModelAction).newRoot !== undefined;
50
- }
51
-
52
45
  export interface SModelRootListener {
53
46
  modelRootChanged(root: Readonly<SModelRoot>): void;
54
47
  }
55
48
 
56
49
  /**
57
- * A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their feedback
58
- * to the `newRoot` before performing the update
50
+ * A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
51
+ * feedback to the `newRoot` before performing the update
59
52
  */
60
53
  @injectable()
61
54
  export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,8 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, UpdateModelAction } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
- import { Action, InitializeCanvasBoundsAction, UpdateModelAction } from 'sprotty';
18
+ import { InitializeCanvasBoundsAction } from 'sprotty';
18
19
  import { Deferred } from 'sprotty/lib/utils/async';
19
20
 
20
21
  /**
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 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,12 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { distinctAdd, EditMode } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
17
18
  import { Tool, ToolManager } from 'sprotty';
18
-
19
- import { distinctAdd } from '../../utils/array-utils';
20
- import { EditMode } from '../actions/edit-mode-action';
21
- import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context';
19
+ import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
22
20
  import { GLSP_TYPES } from '../types';
23
21
 
24
22
  export interface IGLSPToolManager extends ToolManager {
package/src/base/types.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 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
@@ -33,5 +33,7 @@ export const GLSP_TYPES = {
33
33
  IGLSPToolManager: Symbol.for('IGLSPToolManager'),
34
34
  ITool: Symbol.for('ITool'),
35
35
  IDefaultTool: Symbol.for('IDefaultTool'),
36
- IEditModeListener: Symbol.for('IEditModeListener')
36
+ IEditModeListener: Symbol.for('IEditModeListener'),
37
+ LayoutRegistration: Symbol.for('LayoutRegistration'),
38
+ IMarqueeBehavior: Symbol.for('IMarqueeBehavior')
37
39
  };
@@ -29,7 +29,7 @@ import {
29
29
 
30
30
  export const resizeFeature = Symbol('resizeFeature');
31
31
 
32
- export interface Resizable extends BoundsAware, Selectable { }
32
+ export interface Resizable extends BoundsAware, Selectable {}
33
33
 
34
34
  export function isResizable(element: SModelElement): element is SParentElement & Resizable {
35
35
  return isBoundsAware(element) && isSelectable(element) && element instanceof SParentElement && element.hasFeature(resizeFeature);
@@ -61,6 +61,14 @@ export class SResizeHandle extends SChildElement implements Hoverable {
61
61
  hasFeature(feature: symbol): boolean {
62
62
  return feature === hoverFeedbackFeature;
63
63
  }
64
+
65
+ isNwSeResize(): boolean {
66
+ return this.location === ResizeHandleLocation.TopLeft || this.location === ResizeHandleLocation.BottomRight;
67
+ }
68
+
69
+ isNeSwResize(): boolean {
70
+ return this.location === ResizeHandleLocation.TopRight || this.location === ResizeHandleLocation.BottomLeft;
71
+ }
64
72
  }
65
73
 
66
74
  export function addResizeHandles(element: SParentElement): void {
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Point } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
- import { BoundsAware, Point, SModelElement, SNode, SParentElement } from 'sprotty';
18
-
18
+ import { BoundsAware, SModelElement, SNode, SParentElement } from 'sprotty';
19
19
  import { toAbsoluteBounds } from '../../utils/viewpoint-util';
20
20
  import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
21
21
  import { isBoundsAwareMoveable, SResizeHandle } from './model';
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,8 +13,9 @@
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';
16
17
  import { injectable } from 'inversify';
17
- import { ISnapper, Point, SModelElement } from 'sprotty';
18
+ import { ISnapper, SModelElement } from 'sprotty';
18
19
 
19
20
  @injectable()
20
21
  export class GridSnapper implements ISnapper {
@@ -13,12 +13,11 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, isSetContextActionsAction, LabeledAction, Point, RequestContextActions } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import { Action, ICommandPaletteActionProvider, LabeledAction, Point, SModelElement, TYPES } from 'sprotty';
18
-
18
+ import { ICommandPaletteActionProvider, SModelElement, TYPES } from 'sprotty';
19
19
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
20
- import { isSetContextActionsAction, RequestContextActions } from '../../base/actions/context-actions';
21
- import { EditorContextService } from '../../base/editor-context';
20
+ import { EditorContextService } from '../../base/editor-context-service';
22
21
 
23
22
  export namespace ServerCommandPalette {
24
23
  export const CONTEXT_ID = 'command-palette';
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,11 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { DeleteElementOperation } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import { IContextMenuItemProvider, MenuItem, Point, SModelRoot } from 'sprotty';
18
-
19
- import { EditorContextService, EditorContextServiceProvider } from '../../base/editor-context';
20
- import { DeleteElementOperation } from '../../base/operations/operation';
19
+ import { EditorContextService, EditorContextServiceProvider } from '../../base/editor-context-service';
21
20
  import { GLSP_TYPES } from '../../base/types';
22
21
 
23
22
  @injectable()
@@ -15,7 +15,6 @@
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
17
  import { ContextMenuProviderRegistry, IContextMenuService, TYPES } from 'sprotty';
18
-
19
18
  import { SelectionServiceAwareContextMenuMouseListener } from './selection-service-aware-context-menu-mouse-listener';
20
19
  import { ServerContextMenuItemProvider } from './server-context-menu-provider';
21
20
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -24,7 +24,7 @@ import {
24
24
  SModelElement,
25
25
  TYPES
26
26
  } from 'sprotty';
27
-
27
+ import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
28
28
  import { GLSP_TYPES } from '../../base/types';
29
29
  import { SelectionService } from '../select/selection-service';
30
30
 
@@ -34,18 +34,47 @@ export class SelectionServiceAwareContextMenuMouseListener extends MouseListener
34
34
  @inject(TYPES.IContextMenuProviderRegistry) @optional() protected readonly menuProvider: ContextMenuProviderRegistry;
35
35
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
36
36
 
37
+ /**
38
+ * Opens the context menu on right-click.
39
+ */
37
40
  mouseDown(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
38
41
  if (event.button === 2 && this.contextMenuService && this.menuProvider) {
39
- const mousePosition = { x: event.x, y: event.y };
40
- const selectableTarget = findParentByFeature(target, isSelectable);
41
- if (selectableTarget) {
42
- selectableTarget.selected = true;
43
- this.selectionService.updateSelection(target.root, [selectableTarget.id], []);
44
- }
45
- Promise.all([this.contextMenuService(), this.menuProvider.getItems(target.root, mousePosition)]).then(
46
- ([menuService, menuItems]) => menuService.show(menuItems, mousePosition)
47
- );
42
+ return this.openContextMenu(event, target);
48
43
  }
49
44
  return [];
50
45
  }
46
+
47
+ /**
48
+ * Opens the context menu.
49
+ *
50
+ * - query the element on the click-target
51
+ * - select the element
52
+ * - query the context menu service and the context menu elements
53
+ * - show the context menu
54
+ * - send a focus state change to indicate that the diagram becomes inactive, once the context menu is shown
55
+ *
56
+ * When the context menu is closed, we focus the diagram element again.
57
+ */
58
+ protected openContextMenu(event: MouseEvent, target: SModelElement): Promise<Action>[] {
59
+ const mousePosition = { x: event.x, y: event.y };
60
+ const selectableTarget = findParentByFeature(target, isSelectable);
61
+ if (selectableTarget) {
62
+ selectableTarget.selected = true;
63
+ this.selectionService.updateSelection(target.root, [selectableTarget.id], []);
64
+ }
65
+
66
+ const result = Promise.all([this.contextMenuService(), this.menuProvider.getItems(target.root, mousePosition)])
67
+ .then(([menuService, menuItems]) => menuService.show(menuItems, mousePosition, () => this.focusEventTarget(event)))
68
+ .then((): Action => new FocusStateChangedAction(false));
69
+
70
+ return [result];
71
+ }
72
+
73
+ protected focusEventTarget(event: MouseEvent): void {
74
+ const targetElement = event.target instanceof SVGElement ? event.target : undefined;
75
+ const svgParentElement = targetElement?.closest('svg');
76
+ if (svgParentElement) {
77
+ svgParentElement.focus();
78
+ }
79
+ }
51
80
  }
@@ -13,12 +13,11 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, isSetContextActionsAction, LabeledAction, Point, RequestContextActions } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import { Action, IContextMenuItemProvider, isSelected, LabeledAction, Point, SModelElement, TYPES } from 'sprotty';
18
-
18
+ import { IContextMenuItemProvider, isSelected, SModelElement, TYPES } from 'sprotty';
19
19
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
20
- import { isSetContextActionsAction, RequestContextActions } from '../../base/actions/context-actions';
21
- import { EditorContextService } from '../../base/editor-context';
20
+ import { EditorContextService } from '../../base/editor-context-service';
22
21
 
23
22
  export namespace ServerContextMenu {
24
23
  export const CONTEXT_ID = 'context-menu';
@@ -13,20 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, GLSPServerStatusAction, Point, ServerMessageAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import {
18
- Action,
19
- IActionDispatcher,
20
- IActionHandler,
21
- IContextMenuItemProvider,
22
- isSelected,
23
- MenuItem,
24
- Point,
25
- SModelRoot,
26
- TYPES
27
- } from 'sprotty/lib';
28
-
29
- import { GLSPServerStatusAction, ServerMessageAction } from '../../model-source/glsp-server-status';
18
+ import { IActionDispatcher, IActionHandler, IContextMenuItemProvider, isSelected, MenuItem, SModelRoot, TYPES } from 'sprotty';
30
19
 
31
20
  export class InvokeCopyAction implements Action {
32
21
  static readonly KIND = 'invoke-copy';
@@ -13,14 +13,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction, SetClipboardDataAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import { TYPES, ViewerOptions } from 'sprotty';
18
19
  import { v4 as uuid } from 'uuid';
19
-
20
20
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
21
- import { EditorContextService } from '../../base/editor-context';
21
+ import { EditorContextService } from '../../base/editor-context-service';
22
22
  import { GLSP_TYPES } from '../../base/types';
23
- import { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction } from './copy-paste-actions';
24
23
 
25
24
  export interface ICopyPasteHandler {
26
25
  handleCopy(event: ClipboardEvent): void;
@@ -105,7 +104,7 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
105
104
  const clipboardId = uuid();
106
105
  event.clipboardData.setData(CLIPBOARD_DATA_FORMAT, toClipboardId(clipboardId));
107
106
  this.actionDispatcher
108
- .request(RequestClipboardDataAction.create(this.editorContext.get()))
107
+ .request<SetClipboardDataAction>(RequestClipboardDataAction.create(this.editorContext.get()))
109
108
  .then(action => this.clipboadService.put(action.clipboardData, clipboardId));
110
109
  event.preventDefault();
111
110
  } else {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,8 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
- import { configureActionHandler } from 'sprotty/lib';
18
-
17
+ import { configureActionHandler } from 'sprotty';
19
18
  import { GLSP_TYPES } from '../../base/types';
20
19
  import {
21
20
  CopyPasteContextMenuItemProvider,
@@ -13,8 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Point } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
- import { Decoration, DecorationPlacer, isSizeable, ORIGIN_POINT, Point, SChildElement, SModelElement, SRoutableElement } from 'sprotty';
18
+ import { Decoration, DecorationPlacer, isSizeable, ORIGIN_POINT, SChildElement, SModelElement, SRoutableElement } from 'sprotty';
18
19
 
19
20
  @injectable()
20
21
  export class GlspDecorationPlacer extends DecorationPlacer {
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { isSetEditValidationResultAction, RequestEditValidationAction, ValidationStatus } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
19
  Action,
@@ -26,7 +27,6 @@ import {
26
27
  } from 'sprotty';
27
28
 
28
29
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
29
- import { isSetEditValidationResultAction, RequestEditValidationAction, ValidationStatus } from '../../base/actions/edit-validation-actions';
30
30
 
31
31
  export namespace LabelEditValidation {
32
32
  export const CONTEXT_ID = 'label-edit';
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,11 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { SetTypeHintsAction } from '@eclipse-glsp/protocol';
16
17
  import { ContainerModule } from 'inversify';
17
18
  import { configureActionHandler, configureCommand } from 'sprotty';
18
-
19
19
  import { GLSP_TYPES } from '../../base/types';
20
- import { SetTypeHintsAction } from './request-type-hints-action';
21
20
  import { ApplyTypeHintsCommand, TypeHintProvider } from './type-hints';
22
21
 
23
22
  const modelHintsModule = new ContainerModule((bind, _unbind, isBound) => {
@@ -13,7 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { SModelElement, SModelElementSchema, SModelExtension } from 'sprotty';
16
+ import { SModelElementSchema } from '@eclipse-glsp/protocol';
17
+ import { SModelElement, SModelExtension } from 'sprotty';
17
18
 
18
19
  export const containerFeature = Symbol('containable');
19
20
 
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, EdgeTypeHint, isSetTypeHintsAction, ShapeTypeHint, TypeHint } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
- Action,
19
19
  CommandExecutionContext,
20
20
  CommandReturn,
21
21
  Connectable,
@@ -28,12 +28,10 @@ import {
28
28
  moveFeature,
29
29
  SEdge,
30
30
  SModelElement,
31
- SModelElementSchema,
32
31
  SModelRoot,
33
32
  SShapeElement,
34
33
  TYPES
35
34
  } from 'sprotty';
36
-
37
35
  import { GLSP_TYPES } from '../../base/types';
38
36
  import { getElementTypeId, hasCompatibleType } from '../../utils/smodel-util';
39
37
  import { resizeFeature } from '../change-bounds/model';
@@ -41,67 +39,6 @@ import { reconnectFeature } from '../reconnect/model';
41
39
  import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
42
40
  import { FeedbackCommand } from '../tool-feedback/model';
43
41
  import { Containable, containerFeature, reparentFeature } from './model';
44
- import { isSetTypeHintsAction } from './request-type-hints-action';
45
-
46
- export abstract class TypeHint {
47
- /**
48
- The id of the element.
49
- */
50
- readonly elementTypeId: string;
51
-
52
- /**
53
- * Specifies whether the element can be relocated.
54
- */
55
- readonly repositionable: boolean;
56
-
57
- /**
58
- * Specifices wheter the element can be deleted
59
- */
60
- readonly deletable: boolean;
61
- }
62
-
63
- export class ShapeTypeHint extends TypeHint {
64
- /**
65
- * Specifies whether the element can be resized.
66
- */
67
- readonly resizable: boolean;
68
-
69
- /**
70
- * Specifies whether the element can be moved to another parent
71
- */
72
- readonly reparentable: boolean;
73
-
74
- /**
75
- * The types of elements that can be contained by this element (if any)
76
- */
77
- readonly containableElementTypeIds?: string[];
78
- }
79
-
80
- export class EdgeTypeHint extends TypeHint {
81
- /**
82
- * Specifies whether the routing of this element can be changed.
83
- */
84
- readonly routable: boolean;
85
-
86
- /**
87
- * Allowed source element types for this edge type
88
- */
89
- readonly sourceElementTypeIds: string[];
90
-
91
- /**
92
- * Allowed targe element types for this edge type
93
- */
94
- readonly targetElementTypeIds: string[];
95
-
96
- isAllowedSource(input: SModelElement | SModelElementSchema | string): boolean {
97
- const type = getElementTypeId(input);
98
- return this.sourceElementTypeIds.includes(type);
99
- }
100
- isAllowedTarget(input: SModelElement | SModelElementSchema | string): boolean {
101
- const type = getElementTypeId(input);
102
- return this.targetElementTypeIds.includes(type);
103
- }
104
- }
105
42
 
106
43
  @injectable()
107
44
  export class ApplyTypeHintsAction implements Action {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -30,13 +30,13 @@ import {
30
30
  TYPES
31
31
  } from 'sprotty';
32
32
  import { PopupPositionUpdater } from 'sprotty/lib/features/hover/popup-position-updater';
33
-
34
33
  import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
35
34
  import { GlspHoverMouseListener } from './hover';
36
35
 
37
36
  const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
38
37
  bind(TYPES.PopupVNodePostprocessor).to(PopupPositionUpdater).inSingletonScope();
39
- bind(TYPES.MouseListener).to(GlspHoverMouseListener);
38
+ bind(GlspHoverMouseListener).toSelf().inSingletonScope();
39
+ bind(TYPES.MouseListener).toService(GlspHoverMouseListener);
40
40
  bind(TYPES.PopupMouseListener).to(PopupHoverMouseListener);
41
41
  bind(TYPES.KeyListener).to(HoverKeyListener);
42
42
  bind<HoverState>(TYPES.HoverState).toConstantValue({
@@ -56,6 +56,7 @@ const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
56
56
  configureActionHandler(context, SetViewportCommand.KIND, ClosePopupActionHandler);
57
57
  configureActionHandler(context, MoveCommand.KIND, ClosePopupActionHandler);
58
58
  configureActionHandler(context, FocusStateChangedAction.KIND, ClosePopupActionHandler);
59
+ configureActionHandler(context, FocusStateChangedAction.KIND, GlspHoverMouseListener);
59
60
  });
60
61
 
61
62
  export default glspHoverModule;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,26 +13,46 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, Bounds, RequestPopupModelAction, SetPopupModelAction } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
18
  import {
18
- Action,
19
- Bounds,
20
19
  EMPTY_ROOT,
20
+ HoverFeedbackAction,
21
21
  HoverMouseListener,
22
+ IActionHandler,
23
+ ICommand,
22
24
  PreRenderedElementSchema,
23
- RequestPopupModelAction,
24
- SetPopupModelAction,
25
25
  SIssueMarker,
26
26
  SIssueSeverity,
27
27
  SModelElement,
28
28
  SModelElementSchema,
29
29
  SModelRootSchema
30
30
  } from 'sprotty';
31
-
31
+ import { isFocusStateChangedAction } from '../../base/actions/focus-change-action';
32
32
  import { GIssueMarker } from '../validation/issue-marker';
33
33
 
34
34
  @injectable()
35
- export class GlspHoverMouseListener extends HoverMouseListener {
35
+ export class GlspHoverMouseListener extends HoverMouseListener implements IActionHandler {
36
+ /**
37
+ * Stops mouse over timer and remove hover feedback, if focus is lost.
38
+ *
39
+ * This fixes strange effects that appear if the mouse left the element via e.g. a context menu,
40
+ * which explicitly removes the focus of the diagram.
41
+ * @see SelectionServiceAwareContextMenuMouseListener
42
+ * @param action should be a `FocusStateChangedAction`
43
+ * @returns a `HoverFeedbackAction` resetting the state, if the specified action indicates lost focus
44
+ */
45
+ handle(action: Action): void | Action | ICommand {
46
+ if (isFocusStateChangedAction(action) && !action.hasFocus) {
47
+ this.stopMouseOverTimer();
48
+ if (this.lastHoverFeedbackElementId) {
49
+ const previousTargetId = this.lastHoverFeedbackElementId;
50
+ this.lastHoverFeedbackElementId = undefined;
51
+ return new HoverFeedbackAction(previousTargetId, false);
52
+ }
53
+ }
54
+ }
55
+
36
56
  protected startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
37
57
  this.stopMouseOverTimer();
38
58
  return new Promise(resolve => {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,13 +14,17 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
- import { configureCommand } from 'sprotty';
18
-
17
+ import { configureCommand, configureLayout, VBoxLayouter } from 'sprotty';
18
+ import { FreeFormLayouter } from './freeform-layout';
19
19
  import { AlignElementsCommand, ResizeElementsCommand } from './layout-commands';
20
+ import { VBoxLayouterExt } from './vbox-layout';
20
21
 
21
- const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound) => {
22
+ const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
22
23
  configureCommand({ bind, isBound }, ResizeElementsCommand);
23
24
  configureCommand({ bind, isBound }, AlignElementsCommand);
25
+
26
+ rebind(VBoxLayouter).to(VBoxLayouterExt);
27
+ configureLayout({ bind, isBound }, FreeFormLayouter.KIND, FreeFormLayouter);
24
28
  });
25
29
 
26
30
  export default layoutCommandsModule;