@eclipse-glsp/client 0.9.0-next.fd1a8bb6 → 0.10.0-next.5dad48d.159

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 +17 -1
  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 +18 -2
  235. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  236. package/lib/features/tools/base-glsp-tool.js +3 -18
  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 +2 -1
  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 +4 -4
  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,97 +13,17 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import {
17
+ isSetResolvedNavigationTargets,
18
+ NavigationTarget,
19
+ ResolveNavigationTargetAction,
20
+ SetResolvedNavigationTargetAction
21
+ } from '@eclipse-glsp/protocol';
16
22
  import { inject, injectable } from 'inversify';
17
- import { Action, generateRequestId, IActionDispatcher, ILogger, RequestAction, ResponseAction, TYPES } from 'sprotty';
18
-
19
- import { Args } from '../../base/args';
20
- import { EditorContextServiceProvider } from '../../base/editor-context';
23
+ import { IActionDispatcher, ILogger, ResponseAction, TYPES } from 'sprotty';
24
+ import { EditorContextServiceProvider } from '../../base/editor-context-service';
21
25
  import { GLSP_TYPES } from '../../base/types';
22
26
 
23
- export interface NavigationTarget {
24
- uri: string;
25
- label?: string;
26
- args?: Args;
27
- }
28
-
29
- export namespace NavigationTarget {
30
- export const ELEMENT_IDS = 'elementIds';
31
- export const ELEMENT_IDS_SEPARATOR = '&';
32
- export const TEXT_LINE = 'line';
33
- export const TEXT_COLUMN = 'column';
34
-
35
- export function hasArguments(target: NavigationTarget): boolean {
36
- return target.args !== undefined && Object.keys(target.args).length > 0;
37
- }
38
-
39
- export function addArgument(target: NavigationTarget, key: string, value: string | number | boolean): void {
40
- if (target.args === undefined) {
41
- target.args = {};
42
- }
43
- target.args[key] = value;
44
- }
45
-
46
- export function getElementIds(target: NavigationTarget): string[] {
47
- if (target.args === undefined || target.args[NavigationTarget.ELEMENT_IDS] === undefined) {
48
- return [];
49
- }
50
- const elementIdsValue = target.args[NavigationTarget.ELEMENT_IDS].toString();
51
- return elementIdsValue.split(NavigationTarget.ELEMENT_IDS_SEPARATOR);
52
- }
53
-
54
- export function setElementIds(target: NavigationTarget, elementIds: string[]): string {
55
- if (target.args === undefined) {
56
- target.args = {};
57
- }
58
- return (target.args[NavigationTarget.ELEMENT_IDS] = elementIds.join(NavigationTarget.ELEMENT_IDS_SEPARATOR));
59
- }
60
-
61
- export function setTextPosition(target: NavigationTarget, position: TextPosition | undefined): void {
62
- if (position) {
63
- if (target.args === undefined) {
64
- target.args = {};
65
- }
66
- target.args[NavigationTarget.TEXT_LINE] = position.line;
67
- target.args[NavigationTarget.TEXT_COLUMN] = position.character;
68
- }
69
- }
70
-
71
- export function getTextPosition(target: NavigationTarget): TextPosition | undefined {
72
- if (
73
- target.args === undefined ||
74
- target.args[NavigationTarget.TEXT_LINE] === undefined ||
75
- target.args[NavigationTarget.TEXT_COLUMN] === undefined
76
- ) {
77
- return undefined;
78
- }
79
- return {
80
- line: Number(target.args[NavigationTarget.TEXT_LINE]),
81
- character: Number(target.args[NavigationTarget.TEXT_COLUMN])
82
- };
83
- }
84
- }
85
-
86
- export interface TextPosition {
87
- line: number;
88
- character: number;
89
- }
90
-
91
- export class ResolveNavigationTargetAction implements RequestAction<SetResolvedNavigationTargetAction> {
92
- static readonly KIND = 'resolveNavigationTarget';
93
- kind = ResolveNavigationTargetAction.KIND;
94
- constructor(readonly navigationTarget: NavigationTarget, public readonly requestId: string = generateRequestId()) {}
95
- }
96
-
97
- export class SetResolvedNavigationTargetAction implements ResponseAction {
98
- static readonly KIND = 'setResolvedNavigationTarget';
99
- kind = SetResolvedNavigationTargetAction.KIND;
100
- constructor(readonly elementIds: string[] = [], readonly args?: Args, readonly responseId: string = '') {}
101
- }
102
-
103
- export function isSetResolvedNavigationTargets(action: Action): action is SetResolvedNavigationTargetAction {
104
- return action !== undefined && action.kind === SetResolvedNavigationTargetAction.KIND;
105
- }
106
-
107
27
  /**
108
28
  * Resolves `NavigationTargets` to element ids.
109
29
  *
@@ -16,7 +16,7 @@
16
16
  import { ContainerModule } from 'inversify';
17
17
  import { TYPES } from 'sprotty';
18
18
 
19
- import { SaveModelKeyboardListener } from './save';
19
+ import { SaveModelKeyboardListener } from './save-keylistener';
20
20
 
21
21
  /**
22
22
  * This module is not required the diagram is deployed in Theia with the `GLSPDiagramWidget`
@@ -13,18 +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 { Action, KeyListener, SModelRoot } from 'sprotty';
16
+ import { Action, SaveModelAction } from '@eclipse-glsp/protocol';
17
+ import { KeyListener, SModelRoot } from 'sprotty';
17
18
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
18
19
 
19
- export class SaveModelAction implements Action {
20
- static readonly KIND = 'saveModel';
21
- constructor(public readonly fileUri?: string, public readonly kind: string = SaveModelAction.KIND) {}
22
- }
23
-
24
- export function isSaveModelAction(action: Action): action is SaveModelAction {
25
- return action.kind === SaveModelAction.KIND;
26
- }
27
-
28
20
  export class SaveModelKeyboardListener extends KeyListener {
29
21
  keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
30
22
  if (matchesKeystroke(event, 'KeyS', 'ctrlCmd')) {
@@ -14,10 +14,10 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  /* eslint-disable import/no-deprecated,no-unused-expressions */
17
+ import { Action } from '@eclipse-glsp/protocol';
17
18
  import { AssertionError, expect } from 'chai';
18
19
  import { Container, injectable } from 'inversify';
19
- import { Action, defaultModule, SGraphFactory, SModelElementSchema, SModelRoot, TYPES } from 'sprotty';
20
-
20
+ import { defaultModule, SGraphFactory, SModelElementSchema, SModelRoot, TYPES } from 'sprotty';
21
21
  import { GLSP_TYPES } from '../../base/types';
22
22
  import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
23
23
  import { SelectFeedbackAction } from './select-feedback-action';
@@ -13,17 +13,15 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, distinctAdd, remove, SelectAction, SelectAllAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable, multiInject, optional } from 'inversify';
17
18
  import {
18
- Action,
19
19
  Command,
20
20
  CommandExecutionContext,
21
21
  ILogger,
22
22
  isSelectable,
23
23
  isSelected,
24
24
  SChildElement,
25
- SelectAction,
26
- SelectAllAction,
27
25
  SelectAllCommand as SprottySelectAllCommand,
28
26
  SelectCommand as SprottySelectCommand,
29
27
  SModelElement,
@@ -31,10 +29,8 @@ import {
31
29
  SParentElement,
32
30
  TYPES
33
31
  } from 'sprotty';
34
-
35
32
  import { SModelRootListener } from '../../base/model/update-model-command';
36
33
  import { GLSP_TYPES } from '../../base/types';
37
- import { distinctAdd, remove } from '../../utils/array-utils';
38
34
  import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
39
35
  import { SelectFeedbackAction } from './select-feedback-action';
40
36
 
@@ -13,10 +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 { Action, Point } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import { VNode } from 'snabbdom';
18
19
  import {
19
- Action,
20
20
  CommandExecutionContext,
21
21
  CommandReturn,
22
22
  ElementMove,
@@ -26,15 +26,15 @@ import {
26
26
  isViewport,
27
27
  MouseListener,
28
28
  MoveAction,
29
- Point,
29
+ SChildElement,
30
30
  SModelElement,
31
31
  SModelRoot,
32
32
  TYPES
33
33
  } from 'sprotty';
34
-
35
34
  import { isNotUndefined } from '../../utils/smodel-util';
36
35
  import { addResizeHandles, isResizable, removeResizeHandles, SResizeHandle } from '../change-bounds/model';
37
36
  import { createMovementRestrictionFeedback, removeMovementRestrictionFeedback } from '../change-bounds/movement-restrictor';
37
+ import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
38
38
  import { ChangeBoundsTool } from '../tools/change-bounds-tool';
39
39
  import { FeedbackCommand } from './model';
40
40
 
@@ -120,15 +120,17 @@ export class FeedbackMoveMouseListener extends MouseListener {
120
120
  const moveAction = this.getElementMoves(target, event, false);
121
121
  if (moveAction) {
122
122
  result.push(moveAction);
123
+ result.push(cursorFeedbackAction(CursorCSS.MOVE));
123
124
  }
124
125
  }
125
126
  return result;
126
127
  }
127
128
 
128
129
  protected collectStartPositions(root: SModelRoot): void {
129
- root.index
130
- .all()
131
- .filter(element => isSelectable(element) && element.selected)
130
+ const selectedElements = root.index.all().filter(element => isSelectable(element) && element.selected);
131
+ const elementsSet = new Set(selectedElements);
132
+ selectedElements
133
+ .filter(element => !this.isChildOfSelected(elementsSet, element))
132
134
  .forEach(element => {
133
135
  if (isMoveable(element)) {
134
136
  this.elementId2startPos.set(element.id, element.position);
@@ -136,6 +138,16 @@ export class FeedbackMoveMouseListener extends MouseListener {
136
138
  });
137
139
  }
138
140
 
141
+ protected isChildOfSelected(selectedElements: Set<SModelElement>, element: SModelElement): boolean {
142
+ while (element instanceof SChildElement) {
143
+ element = element.parent;
144
+ if (selectedElements.has(element)) {
145
+ return true;
146
+ }
147
+ }
148
+ return false;
149
+ }
150
+
139
151
  protected getElementMoves(target: SModelElement, event: MouseEvent, isFinished: boolean): MoveAction | undefined {
140
152
  if (!this.startDragPosition) {
141
153
  return undefined;
@@ -224,6 +236,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
224
236
  if (this.tool.movementRestrictor) {
225
237
  this.tool.deregisterFeedback([removeMovementRestrictionFeedback(target, this.tool.movementRestrictor)], this);
226
238
  }
239
+ result.push(cursorFeedbackAction(CursorCSS.DEFAULT));
227
240
  }
228
241
  this.hasDragged = false;
229
242
  this.startDragPosition = undefined;
@@ -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, Point } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
- Action,
19
19
  add,
20
20
  AnchorComputerRegistry,
21
21
  center,
@@ -28,7 +28,6 @@ import {
28
28
  isConnectable,
29
29
  MouseListener,
30
30
  MoveAction,
31
- Point,
32
31
  PolylineEdgeRouter,
33
32
  SChildElement,
34
33
  SConnectableElement,
@@ -39,8 +38,7 @@ import {
39
38
  SRoutableElement,
40
39
  TYPES
41
40
  } from 'sprotty';
42
-
43
- import { isRoutable } from '../../utils/smodel-util';
41
+ import { isRoutable, BoundsAwareModelElement } from '../../utils/smodel-util';
44
42
  import { getAbsolutePosition, toAbsoluteBounds, toAbsolutePosition } from '../../utils/viewpoint-util';
45
43
  import { FeedbackCommand } from './model';
46
44
 
@@ -108,12 +106,12 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
108
106
 
109
107
  const edge = edgeEnd.feedbackEdge;
110
108
  const position = getAbsolutePosition(edgeEnd, event);
111
- const endAtMousePosition = findChildrenAtPosition(target.root, position).find(
109
+ const endAtMousePosition = findChildrenAtPosition(target.root, position).reverse().find(
112
110
  element => isConnectable(element) && element.canConnect(edge, 'target')
113
111
  );
114
112
 
115
113
  if (endAtMousePosition instanceof SConnectableElement && edge.source && isBoundsAware(edge.source)) {
116
- const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(edge.source.bounds));
114
+ const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(toAbsoluteBounds(edge.source)));
117
115
  if (euclideanDistance(anchor, edgeEnd.position) > 1) {
118
116
  return [new MoveAction([{ elementId: edgeEnd.id, toPosition: anchor }], false)];
119
117
  }
@@ -124,9 +122,10 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
124
122
  return [];
125
123
  }
126
124
 
127
- protected computeAbsoluteAnchor(element: SConnectableElement, referencePoint: Point, offset?: number): Point {
125
+ protected computeAbsoluteAnchor(element: SConnectableElement, absoluteReferencePoint: Point, offset?: number): Point {
126
+ const referencePointInParent = absoluteToParent(element, absoluteReferencePoint);
128
127
  const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, element.anchorKind);
129
- let anchor = anchorComputer.getAnchor(element, referencePoint, offset);
128
+ let anchor = anchorComputer.getAnchor(element, referencePointInParent, offset);
130
129
  // The anchor is computed in the local coordinate system of the element.
131
130
  // If the element is a nested child element we have to add the absolute position of its parent to the anchor.
132
131
  if (element.parent !== element.root) {
@@ -140,6 +139,33 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
140
139
  }
141
140
  }
142
141
 
142
+ /**
143
+ * Convert a point, specified in absolute coordinates, to a point relative
144
+ * to the parent of the specified child element.
145
+ * @param element the child element
146
+ * @param absolutePoint a point in absolute coordinates
147
+ * @returns the equivalent point, relative to the element's parent coordinates
148
+ */
149
+ function absoluteToParent(element: BoundsAwareModelElement & SChildElement, absolutePoint: Point): Point{
150
+ if (isBoundsAware(element.parent)){
151
+ return absoluteToLocal(element.parent, absolutePoint);
152
+ }
153
+ // If the parent is not bounds-aware, assume it's at 0; 0 and proceed
154
+ return absoluteToLocal(element, absolutePoint);
155
+ }
156
+
157
+ /**
158
+ * Convert a point, specified in absolute coordinates, to a point relative
159
+ * to the specified element.
160
+ * @param element the element
161
+ * @param absolutePoint a point in absolute coordinates
162
+ * @returns the equivalent point, relative to the element's coordinates
163
+ */
164
+ function absoluteToLocal(element: BoundsAwareModelElement, absolutePoint: Point): Point {
165
+ const absoluteElementBounds = toAbsoluteBounds(element);
166
+ return {x: absolutePoint.x - absoluteElementBounds.x, y: absolutePoint.y - absoluteElementBounds.y};
167
+ }
168
+
143
169
  export function feedbackEdgeId(root: SModelRoot): string {
144
170
  return root.id + '_feedback_edge';
145
171
  }
@@ -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, isStringArray } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import { Action, CommandExecutionContext, SModelElement, SModelRoot, TYPES } from 'sprotty';
18
- import { isStringArray } from '../../utils/array-utils';
18
+ import { CommandExecutionContext, SModelElement, SModelRoot, TYPES } from 'sprotty';
19
19
  import { addCssClasses, removeCssClasses } from '../../utils/smodel-util';
20
20
  import { FeedbackCommand } from './model';
21
21
 
@@ -78,7 +78,9 @@ export enum CursorCSS {
78
78
  EDGE_RECONNECT = 'edge-reconnect-select-target-mode',
79
79
  OPERATION_NOT_ALLOWED = 'edge-modification-not-allowed-mode',
80
80
  ELEMENT_DELETION = 'element-deletion-mode',
81
- RESIZE = 'resize-mode',
81
+ RESIZE_NESW = 'resize-nesw-mode',
82
+ RESIZE_NWSE = 'resize-nwse-mode',
83
+ MOVE = 'move-mode',
82
84
  MARQUEE = 'marquee-mode'
83
85
  }
84
86
 
@@ -13,10 +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 { Action, Point } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import { VNode } from 'snabbdom';
18
19
  import {
19
- Action,
20
20
  add,
21
21
  AnchorComputerRegistry,
22
22
  center,
@@ -33,7 +33,6 @@ import {
33
33
  isViewport,
34
34
  MouseListener,
35
35
  MoveAction,
36
- Point,
37
36
  PolylineEdgeRouter,
38
37
  SConnectableElement,
39
38
  SModelElement,
@@ -43,7 +42,6 @@ import {
43
42
  SwitchEditModeCommand,
44
43
  TYPES
45
44
  } from 'sprotty';
46
-
47
45
  import { isNotUndefined, isRoutable, isRoutingHandle } from '../../utils/smodel-util';
48
46
  import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
49
47
  import { addReconnectHandles, removeReconnectHandles } from '../reconnect/model';
@@ -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 } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import { Action, IActionDispatcher, ILogger, TYPES } from 'sprotty';
18
+ import { IActionDispatcher, ILogger, TYPES } from 'sprotty';
18
19
 
19
20
  export interface IFeedbackEmitter {}
20
21
 
@@ -13,20 +13,18 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, Point } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
- Action,
19
19
  AnchorComputerRegistry,
20
20
  CommandExecutionContext,
21
21
  CommandReturn,
22
22
  MouseListener,
23
- Point,
24
23
  SChildElement,
25
24
  SModelElement,
26
25
  SModelRoot,
27
26
  TYPES
28
27
  } from 'sprotty';
29
-
30
28
  import { FeedbackCommand } from './model';
31
29
 
32
30
  export class DrawMarqueeAction implements Action {
@@ -13,10 +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 { Point } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
18
  import { VNode } from 'snabbdom';
18
- import { IView, ORIGIN_POINT, Point, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
19
-
19
+ import { IView, ORIGIN_POINT, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
20
20
  import { isResizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
21
21
 
22
22
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -13,11 +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 '../../../css/tool-palette.css';
17
-
18
16
  import { ContainerModule } from 'inversify';
19
17
  import { configureActionHandler, EnableDefaultToolsAction, TYPES } from 'sprotty';
20
-
18
+ import '../../../css/tool-palette.css';
21
19
  import { EnableToolPaletteAction, ToolPalette } from './tool-palette';
22
20
 
23
21
  const toolPaletteModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
@@ -13,9 +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 { isLabeledAction, LabeledAction } from 'sprotty';
17
-
18
- import { isTriggerElementTypeCreationAction, TriggerElementCreationAction } from '../../base/operations/operation';
16
+ import { isLabeledAction, isTriggerElementTypeCreationAction, LabeledAction, TriggerElementCreationAction } from '@eclipse-glsp/protocol';
19
17
 
20
18
  export interface PaletteItem extends LabeledAction {
21
19
  readonly id: string;
@@ -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 { isSetContextActionsAction, RequestContextActions, RequestMarkersAction, SetContextActions } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable, postConstruct } from 'inversify';
17
18
  import {
18
19
  AbstractUIExtension,
@@ -26,20 +27,18 @@ import {
26
27
  SModelRoot,
27
28
  TYPES
28
29
  } from 'sprotty';
30
+ import { codiconCSSClasses } from 'sprotty/lib/utils/codicon';
29
31
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
30
-
31
32
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
32
- import { isSetContextActionsAction, RequestContextActions, SetContextActions } from '../../base/actions/context-actions';
33
- import { EditModeListener, EditorContextService } from '../../base/editor-context';
33
+ import { EditModeListener, EditorContextService } from '../../base/editor-context-service';
34
34
  import { MouseDeleteTool } from '../tools/delete-tool';
35
35
  import { MarqueeMouseTool } from '../tools/marquee-mouse-tool';
36
- import { RequestMarkersAction } from '../validation/validate';
37
36
  import { PaletteItem } from './palette-item';
38
37
 
39
38
  const CLICKED_CSS_CLASS = 'clicked';
40
- const SEARCH_ICON = 'fa-search';
41
- const PALETTE_ICON = 'fa-palette';
42
- const CHEVRON_DOWN = 'fa-chevron-down';
39
+ const SEARCH_ICON_ID = 'search';
40
+ const PALETTE_ICON_ID = 'symbol-color';
41
+ const CHEVRON_DOWN_ICON_ID = 'chevron-right';
43
42
  const PALETTE_HEIGHT = '500px';
44
43
 
45
44
  @injectable()
@@ -101,7 +100,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
101
100
  this.containerElement.classList.add('collapsible-palette');
102
101
  if (baseDiv) {
103
102
  const insertedDiv = baseDiv.insertBefore(minPaletteDiv, baseDiv.firstChild);
104
- const minimizeIcon = createIcon(['fas', CHEVRON_DOWN]);
103
+ const minimizeIcon = createIcon(CHEVRON_DOWN_ICON_ID);
105
104
  this.updateMinimizePaletteButtonTooltip(minPaletteDiv);
106
105
  minimizeIcon.onclick = _event => {
107
106
  if (this.isPaletteMaximized()) {
@@ -110,10 +109,8 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
110
109
  this.containerElement.style.maxHeight = PALETTE_HEIGHT;
111
110
  }
112
111
  this.updateMinimizePaletteButtonTooltip(minPaletteDiv);
113
- changeCSSClass(minimizeIcon, PALETTE_ICON);
114
- changeCSSClass(minimizeIcon, 'fa');
115
- changeCSSClass(minimizeIcon, 'fas');
116
- changeCSSClass(minimizeIcon, CHEVRON_DOWN);
112
+ changeCodiconClass(minimizeIcon, PALETTE_ICON_ID);
113
+ changeCodiconClass(minimizeIcon, CHEVRON_DOWN_ICON_ID);
117
114
  };
118
115
  insertedDiv.appendChild(minimizeIcon);
119
116
  }
@@ -192,7 +189,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
192
189
  }
193
190
 
194
191
  protected createDefaultToolButton(): HTMLElement {
195
- const button = createIcon(['fas', 'fa-mouse-pointer', 'fa-xs', 'clicked']);
192
+ const button = createIcon('inspect');
196
193
  button.id = 'btn_default_tools';
197
194
  button.title = 'Enable selection tool';
198
195
  button.onclick = this.onClickStaticToolButton(this.defaultToolsButton);
@@ -200,21 +197,21 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
200
197
  }
201
198
 
202
199
  protected createMouseDeleteToolButton(): HTMLElement {
203
- const deleteToolButton = createIcon(['fas', 'fa-eraser', 'fa-xs']);
200
+ const deleteToolButton = createIcon('chrome-close');
204
201
  deleteToolButton.title = 'Enable deletion tool';
205
202
  deleteToolButton.onclick = this.onClickStaticToolButton(deleteToolButton, MouseDeleteTool.ID);
206
203
  return deleteToolButton;
207
204
  }
208
205
 
209
206
  protected createMarqueeToolButton(): HTMLElement {
210
- const marqueeToolButton = createIcon(['far', 'fa-object-group', 'fa-xs']);
207
+ const marqueeToolButton = createIcon('screen-full');
211
208
  marqueeToolButton.title = 'Enable marquee tool';
212
209
  marqueeToolButton.onclick = this.onClickStaticToolButton(marqueeToolButton, MarqueeMouseTool.ID);
213
210
  return marqueeToolButton;
214
211
  }
215
212
 
216
213
  protected createValidateButton(): HTMLElement {
217
- const validateActionButton = createIcon(['fas', 'fa-check-square', 'fa-xs']);
214
+ const validateActionButton = createIcon('pass');
218
215
  validateActionButton.title = 'Validate model';
219
216
  validateActionButton.onclick = _event => {
220
217
  const modelIds: string[] = [this.modelRootId];
@@ -224,15 +221,15 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
224
221
  }
225
222
 
226
223
  protected createSearchButton(): HTMLElement {
227
- const searchIcon = createIcon(['fas', SEARCH_ICON, 'state-icon', 'fa-xs']);
224
+ const searchIcon = createIcon(SEARCH_ICON_ID);
228
225
  searchIcon.onclick = _ev => {
229
226
  const searchField = document.getElementById(this.containerElement.id + '_search_field');
230
227
  if (searchField) {
231
- if (searchField.style.display === 'inline') {
232
- searchField.style.display = 'none';
233
- } else {
234
- searchField.style.display = 'inline';
228
+ if (searchField.style.display === 'none') {
229
+ searchField.style.display = '';
235
230
  searchField.focus();
231
+ } else {
232
+ searchField.style.display = 'none';
236
233
  }
237
234
  }
238
235
  };
@@ -256,7 +253,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
256
253
  protected createHeaderTitle(): HTMLElement {
257
254
  const header = document.createElement('div');
258
255
  header.classList.add('header-icon');
259
- header.appendChild(createIcon(['fa', 'fa-palette']));
256
+ header.appendChild(createIcon(PALETTE_ICON_ID));
260
257
  header.insertAdjacentText('beforeend', 'Palette');
261
258
  return header;
262
259
  }
@@ -265,7 +262,10 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
265
262
  const button = document.createElement('div');
266
263
  button.tabIndex = index;
267
264
  button.classList.add('tool-button');
268
- button.innerHTML = item.label;
265
+ if (item.icon) {
266
+ button.appendChild(createIcon(item.icon));
267
+ }
268
+ button.insertAdjacentText('beforeend', item.label);
269
269
  button.onclick = this.onClickCreateToolButton(button, item);
270
270
  button.onkeydown = ev => this.clearToolOnEscape(ev);
271
271
  return button;
@@ -382,9 +382,9 @@ export function compare(a: PaletteItem, b: PaletteItem): number {
382
382
  return a.label.localeCompare(b.label);
383
383
  }
384
384
 
385
- export function createIcon(cssClasses: string[]): HTMLElement {
385
+ export function createIcon(codiconId: string): HTMLElement {
386
386
  const icon = document.createElement('i');
387
- icon.classList.add(...cssClasses);
387
+ icon.classList.add(...codiconCSSClasses(codiconId));
388
388
  return icon;
389
389
  }
390
390
 
@@ -395,7 +395,7 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
395
395
  const header = document.createElement('div');
396
396
  header.classList.add('group-header');
397
397
  if (item.icon) {
398
- header.appendChild(createIcon(['fas', item.icon]));
398
+ header.appendChild(createIcon(item.icon));
399
399
  }
400
400
  header.insertAdjacentText('beforeend', item.label);
401
401
  header.ondblclick = _ev => {
@@ -412,3 +412,9 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
412
412
  export function changeCSSClass(element: Element, css: string): void {
413
413
  element.classList.contains(css) ? element.classList.remove(css) : element.classList.add(css);
414
414
  }
415
+
416
+ export function changeCodiconClass(element: Element, codiconId: string): void {
417
+ element.classList.contains(codiconCSSClasses(codiconId)[1])
418
+ ? element.classList.remove(codiconCSSClasses(codiconId)[1])
419
+ : element.classList.add(codiconCSSClasses(codiconId)[1]);
420
+ }
@@ -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,10 +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 { Action } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
- import { Action, IActionDispatcher, KeyTool, TYPES } from 'sprotty';
18
-
19
- import { EditorContextService } from '../../base/editor-context';
18
+ import { IActionDispatcher, KeyTool, TYPES } from 'sprotty';
19
+ import { EditorContextService } from '../../base/editor-context-service';
20
20
  import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
21
21
  import { GLSP_TYPES } from '../../base/types';
22
22
  import { IMouseTool } from '../mouse-tool/mouse-tool';