@eclipse-glsp/client 0.9.0-next.f6bfed94 → 0.10.0-next.ab6a367.154

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 (487) hide show
  1. package/LICENSE +642 -277
  2. package/README.md +2 -1
  3. package/css/command-palette.css +3 -0
  4. package/css/decoration.css +3 -2
  5. package/css/glsp-sprotty.css +1 -1
  6. package/css/tool-palette.css +31 -14
  7. package/lib/base/action-dispatcher.d.ts +17 -1
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +2 -1
  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 +1 -0
  35. package/lib/base/di.config.d.ts.map +1 -1
  36. package/lib/base/di.config.js +22 -6
  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 +17 -3
  51. package/lib/base/model/update-model-command.d.ts.map +1 -1
  52. package/lib/base/model/update-model-command.js +6 -10
  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.map +1 -1
  67. package/lib/features/change-bounds/model.js.map +1 -1
  68. package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
  69. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  70. package/lib/features/change-bounds/movement-restrictor.js +0 -15
  71. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  72. package/lib/features/change-bounds/snap.d.ts +17 -1
  73. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  74. package/lib/features/change-bounds/snap.js +0 -15
  75. package/lib/features/change-bounds/snap.js.map +1 -1
  76. package/lib/features/command-palette/server-command-palette-provider.d.ts +18 -2
  77. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  78. package/lib/features/command-palette/server-command-palette-provider.js +6 -6
  79. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  80. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
  81. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  82. package/lib/features/context-menu/delete-element-context-menu.js +3 -3
  83. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  84. package/lib/features/context-menu/server-context-menu-provider.d.ts +18 -2
  85. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  86. package/lib/features/context-menu/server-context-menu-provider.js +6 -6
  87. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  88. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +17 -1
  89. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  90. package/lib/features/copy-paste/copy-paste-context-menu.js +6 -6
  91. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  92. package/lib/features/copy-paste/copy-paste-handler.d.ts +17 -2
  93. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  94. package/lib/features/copy-paste/copy-paste-handler.js +7 -7
  95. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  96. package/lib/features/copy-paste/di.config.d.ts +1 -1
  97. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  98. package/lib/features/copy-paste/di.config.js +5 -5
  99. package/lib/features/copy-paste/di.config.js.map +1 -1
  100. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  101. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  102. package/lib/features/decoration/decoration-placer.js +0 -15
  103. package/lib/features/decoration/decoration-placer.js.map +1 -1
  104. package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
  105. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  106. package/lib/features/edit-label/edit-label-validator.js +5 -5
  107. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  108. package/lib/features/hints/di.config.d.ts +0 -15
  109. package/lib/features/hints/di.config.d.ts.map +1 -1
  110. package/lib/features/hints/di.config.js +3 -3
  111. package/lib/features/hints/di.config.js.map +1 -1
  112. package/lib/features/hints/model.d.ts +2 -1
  113. package/lib/features/hints/model.d.ts.map +1 -1
  114. package/lib/features/hints/model.js.map +1 -1
  115. package/lib/features/hints/type-hints.d.ts +17 -45
  116. package/lib/features/hints/type-hints.d.ts.map +1 -1
  117. package/lib/features/hints/type-hints.js +3 -20
  118. package/lib/features/hints/type-hints.js.map +1 -1
  119. package/lib/features/hover/di.config.d.ts +1 -1
  120. package/lib/features/hover/di.config.d.ts.map +1 -1
  121. package/lib/features/hover/di.config.js +1 -1
  122. package/lib/features/hover/di.config.js.map +1 -1
  123. package/lib/features/hover/hover.d.ts +17 -1
  124. package/lib/features/hover/hover.d.ts.map +1 -1
  125. package/lib/features/hover/hover.js +3 -2
  126. package/lib/features/hover/hover.js.map +1 -1
  127. package/lib/features/layout/di.config.d.ts +1 -1
  128. package/lib/features/layout/di.config.d.ts.map +1 -1
  129. package/lib/features/layout/di.config.js +6 -2
  130. package/lib/features/layout/di.config.js.map +1 -1
  131. package/lib/features/layout/freeform-layout.d.ts +16 -0
  132. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  133. package/lib/features/layout/freeform-layout.js +107 -0
  134. package/lib/features/layout/freeform-layout.js.map +1 -0
  135. package/lib/features/layout/layout-commands.d.ts +17 -1
  136. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  137. package/lib/features/layout/layout-commands.js +3 -3
  138. package/lib/features/layout/layout-commands.js.map +1 -1
  139. package/lib/features/layout/layout-commands.spec.d.ts +0 -15
  140. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  141. package/lib/features/layout/layout-commands.spec.js +4 -4
  142. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  143. package/lib/features/layout/vbox-layout.d.ts +25 -0
  144. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  145. package/lib/features/layout/vbox-layout.js +188 -0
  146. package/lib/features/layout/vbox-layout.js.map +1 -0
  147. package/lib/features/model-source-watcher/di.config.d.ts +0 -15
  148. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  149. package/lib/features/model-source-watcher/di.config.js +4 -4
  150. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  151. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  152. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  153. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +7 -8
  154. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  155. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  156. package/lib/features/mouse-tool/mouse-tool.js +2 -1
  157. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  158. package/lib/features/navigation/di.config.d.ts +0 -15
  159. package/lib/features/navigation/di.config.d.ts.map +1 -1
  160. package/lib/features/navigation/di.config.js +7 -6
  161. package/lib/features/navigation/di.config.js.map +1 -1
  162. package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
  163. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  164. package/lib/features/navigation/navigation-action-handler.js +12 -67
  165. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  166. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  167. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  168. package/lib/features/navigation/navigation-target-resolver.js +6 -83
  169. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  170. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
  171. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  172. package/lib/features/navigation/navigation-target-resolver.spec.js +16 -16
  173. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  174. package/lib/features/save/di.config.js +2 -2
  175. package/lib/features/save/di.config.js.map +1 -1
  176. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +3 -9
  177. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  178. package/lib/features/save/{save.js → save-keylistener.js} +4 -15
  179. package/lib/features/save/save-keylistener.js.map +1 -0
  180. package/lib/features/select/selection-service.d.ts +17 -1
  181. package/lib/features/select/selection-service.d.ts.map +1 -1
  182. package/lib/features/select/selection-service.js +5 -5
  183. package/lib/features/select/selection-service.js.map +1 -1
  184. package/lib/features/select/selection-service.spec.js +0 -16
  185. package/lib/features/select/selection-service.spec.js.map +1 -1
  186. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +18 -1
  187. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  188. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +13 -18
  189. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  190. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +17 -1
  191. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  192. package/lib/features/tool-feedback/creation-tool-feedback.js +0 -15
  193. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  194. package/lib/features/tool-feedback/css-feedback.d.ts +17 -1
  195. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  196. package/lib/features/tool-feedback/css-feedback.js +2 -2
  197. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  198. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +17 -1
  199. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  200. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +0 -15
  201. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  202. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +17 -1
  203. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  204. package/lib/features/tool-feedback/feedback-action-dispatcher.js +0 -15
  205. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  206. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
  207. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  208. package/lib/features/tool-feedback/marquee-tool-feedback.js +0 -15
  209. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  210. package/lib/features/tool-feedback/view.d.ts +17 -1
  211. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  212. package/lib/features/tool-feedback/view.js +0 -15
  213. package/lib/features/tool-feedback/view.js.map +1 -1
  214. package/lib/features/tool-palette/di.config.d.ts +1 -1
  215. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  216. package/lib/features/tool-palette/di.config.js +1 -1
  217. package/lib/features/tool-palette/di.config.js.map +1 -1
  218. package/lib/features/tool-palette/palette-item.d.ts +1 -2
  219. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  220. package/lib/features/tool-palette/palette-item.js +3 -4
  221. package/lib/features/tool-palette/palette-item.js.map +1 -1
  222. package/lib/features/tool-palette/tool-palette.d.ts +19 -3
  223. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  224. package/lib/features/tool-palette/tool-palette.js +38 -31
  225. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  226. package/lib/features/tools/base-glsp-tool.d.ts +18 -2
  227. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  228. package/lib/features/tools/base-glsp-tool.js +3 -18
  229. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  230. package/lib/features/tools/change-bounds-tool.d.ts +18 -1
  231. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  232. package/lib/features/tools/change-bounds-tool.js +21 -6
  233. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  234. package/lib/features/tools/delete-tool.d.ts +17 -1
  235. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  236. package/lib/features/tools/delete-tool.js +3 -3
  237. package/lib/features/tools/delete-tool.js.map +1 -1
  238. package/lib/features/tools/di.config.d.ts +0 -15
  239. package/lib/features/tools/di.config.d.ts.map +1 -1
  240. package/lib/features/tools/di.config.js +4 -4
  241. package/lib/features/tools/di.config.js.map +1 -1
  242. package/lib/features/tools/edge-creation-tool.d.ts +17 -2
  243. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  244. package/lib/features/tools/edge-creation-tool.js +4 -4
  245. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  246. package/lib/features/tools/edge-edit-tool.d.ts +17 -1
  247. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  248. package/lib/features/tools/edge-edit-tool.js +3 -3
  249. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  250. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  251. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  252. package/lib/features/tools/marquee-behavior.js +128 -0
  253. package/lib/features/tools/marquee-behavior.js.map +1 -0
  254. package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
  255. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  256. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  257. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  258. package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
  259. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  260. package/lib/features/tools/marquee-mouse-tool.js +33 -121
  261. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  262. package/lib/features/tools/marquee-tool.d.ts +17 -1
  263. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  264. package/lib/features/tools/marquee-tool.js +0 -15
  265. package/lib/features/tools/marquee-tool.js.map +1 -1
  266. package/lib/features/tools/node-creation-tool.d.ts +17 -2
  267. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  268. package/lib/features/tools/node-creation-tool.js +4 -4
  269. package/lib/features/tools/node-creation-tool.js.map +1 -1
  270. package/lib/features/validation/issue-marker.d.ts +2 -2
  271. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  272. package/lib/features/validation/issue-marker.js +5 -5
  273. package/lib/features/validation/issue-marker.js.map +1 -1
  274. package/lib/features/validation/marker-navigator.d.ts +17 -1
  275. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  276. package/lib/features/validation/marker-navigator.js +2 -1
  277. package/lib/features/validation/marker-navigator.js.map +1 -1
  278. package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
  279. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  280. package/lib/features/validation/marker-navigator.spec.js +9 -9
  281. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  282. package/lib/features/validation/validate.d.ts +18 -29
  283. package/lib/features/validation/validate.d.ts.map +1 -1
  284. package/lib/features/validation/validate.js +11 -49
  285. package/lib/features/validation/validate.js.map +1 -1
  286. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
  287. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  288. package/lib/features/viewport/glsp-scroll-mouse-listener.js +0 -15
  289. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  290. package/lib/index.d.ts +6 -12
  291. package/lib/index.d.ts.map +1 -1
  292. package/lib/index.js +6 -12
  293. package/lib/index.js.map +1 -1
  294. package/lib/model-source/glsp-diagram-server.d.ts +2 -4
  295. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  296. package/lib/model-source/glsp-diagram-server.js +20 -6
  297. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  298. package/lib/protocol-reexport.d.ts +45 -0
  299. package/lib/protocol-reexport.d.ts.map +1 -0
  300. package/lib/protocol-reexport.js +75 -0
  301. package/lib/protocol-reexport.js.map +1 -0
  302. package/lib/utils/argument-utils.d.ts.map +1 -1
  303. package/lib/utils/argument-utils.js +6 -6
  304. package/lib/utils/argument-utils.js.map +1 -1
  305. package/lib/utils/layout-utils.d.ts +2 -1
  306. package/lib/utils/layout-utils.d.ts.map +1 -1
  307. package/lib/utils/marker.d.ts +0 -38
  308. package/lib/utils/marker.d.ts.map +1 -1
  309. package/lib/utils/marker.js +6 -11
  310. package/lib/utils/marker.js.map +1 -1
  311. package/lib/utils/smodel-util.d.ts +1 -1
  312. package/lib/utils/smodel-util.d.ts.map +1 -1
  313. package/lib/utils/smodel-util.js +0 -15
  314. package/lib/utils/smodel-util.js.map +1 -1
  315. package/lib/utils/viewpoint-util.d.ts +2 -1
  316. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  317. package/lib/utils/viewpoint-util.js +0 -15
  318. package/lib/utils/viewpoint-util.js.map +1 -1
  319. package/lib/views/base-view-module.d.ts +0 -15
  320. package/lib/views/base-view-module.d.ts.map +1 -1
  321. package/lib/views/base-view-module.js +20 -20
  322. package/lib/views/base-view-module.js.map +1 -1
  323. package/lib/views/compartments.d.ts +6 -0
  324. package/lib/views/compartments.d.ts.map +1 -0
  325. package/lib/{base/actions/edit-mode-action.js → views/compartments.js} +18 -26
  326. package/lib/views/compartments.js.map +1 -0
  327. package/lib/views/glsp-edge-view.d.ts +17 -1
  328. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  329. package/lib/views/glsp-edge-view.js +0 -15
  330. package/lib/views/glsp-edge-view.js.map +1 -1
  331. package/lib/views/index.d.ts +1 -1
  332. package/lib/views/index.d.ts.map +1 -1
  333. package/lib/views/index.js +1 -1
  334. package/lib/views/index.js.map +1 -1
  335. package/lib/views/issue-marker-view.d.ts +1 -0
  336. package/lib/views/issue-marker-view.d.ts.map +1 -1
  337. package/lib/views/issue-marker-view.js +17 -8
  338. package/lib/views/issue-marker-view.js.map +1 -1
  339. package/lib/views/rounded-corner.d.ts +2 -1
  340. package/lib/views/rounded-corner.d.ts.map +1 -1
  341. package/package.json +8 -5
  342. package/src/base/action-dispatcher.ts +2 -2
  343. package/src/base/actions/focus-change-action.ts +1 -1
  344. package/src/base/{args.ts → argumentable.ts} +1 -4
  345. package/src/base/auto-complete/auto-complete-actions.ts +1 -1
  346. package/src/base/auto-complete/auto-complete-widget.ts +3 -4
  347. package/src/base/auto-complete/validation-decorator.ts +7 -6
  348. package/src/base/command-stack.ts +1 -2
  349. package/src/base/container-modules.ts +112 -0
  350. package/src/base/di.config.ts +3 -3
  351. package/src/base/drag-aware-mouse-listener.ts +2 -1
  352. package/src/base/{editor-context.ts → editor-context-service.ts} +2 -27
  353. package/src/base/focus-tracker.ts +2 -2
  354. package/src/base/model/update-model-command.ts +3 -9
  355. package/src/base/model-initialization-constraint.ts +3 -2
  356. package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
  357. package/src/base/types.ts +4 -2
  358. package/src/features/change-bounds/model.ts +0 -1
  359. package/src/features/change-bounds/movement-restrictor.ts +2 -2
  360. package/src/features/change-bounds/snap.ts +3 -2
  361. package/src/features/command-palette/server-command-palette-provider.ts +3 -4
  362. package/src/features/context-menu/delete-element-context-menu.ts +3 -4
  363. package/src/features/context-menu/server-context-menu-provider.ts +3 -4
  364. package/src/features/copy-paste/copy-paste-context-menu.ts +2 -13
  365. package/src/features/copy-paste/copy-paste-handler.ts +3 -4
  366. package/src/features/copy-paste/di.config.ts +2 -3
  367. package/src/features/decoration/decoration-placer.ts +2 -1
  368. package/src/features/edit-label/edit-label-validator.ts +1 -1
  369. package/src/features/hints/di.config.ts +2 -3
  370. package/src/features/hints/model.ts +2 -1
  371. package/src/features/hints/type-hints.ts +1 -64
  372. package/src/features/hover/di.config.ts +1 -2
  373. package/src/features/hover/hover.ts +1 -5
  374. package/src/features/layout/di.config.ts +8 -4
  375. package/src/features/layout/freeform-layout.ts +133 -0
  376. package/src/features/layout/layout-commands.spec.ts +3 -8
  377. package/src/features/layout/layout-commands.ts +1 -3
  378. package/src/features/layout/vbox-layout.ts +256 -0
  379. package/src/features/model-source-watcher/di.config.ts +3 -4
  380. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +8 -4
  381. package/src/features/mouse-tool/mouse-tool.ts +2 -1
  382. package/src/features/navigation/di.config.ts +4 -10
  383. package/src/features/navigation/navigation-action-handler.ts +16 -62
  384. package/src/features/navigation/navigation-target-resolver.spec.ts +2 -4
  385. package/src/features/navigation/navigation-target-resolver.ts +8 -88
  386. package/src/features/save/di.config.ts +1 -1
  387. package/src/features/save/{save.ts → save-keylistener.ts} +2 -10
  388. package/src/features/select/selection-service.spec.ts +2 -2
  389. package/src/features/select/selection-service.ts +1 -5
  390. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +16 -5
  391. package/src/features/tool-feedback/creation-tool-feedback.ts +1 -3
  392. package/src/features/tool-feedback/css-feedback.ts +2 -2
  393. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +1 -3
  394. package/src/features/tool-feedback/feedback-action-dispatcher.ts +2 -1
  395. package/src/features/tool-feedback/marquee-tool-feedback.ts +1 -3
  396. package/src/features/tool-feedback/view.tsx +2 -2
  397. package/src/features/tool-palette/di.config.ts +1 -3
  398. package/src/features/tool-palette/palette-item.ts +1 -3
  399. package/src/features/tool-palette/tool-palette.ts +32 -26
  400. package/src/features/tools/base-glsp-tool.ts +4 -4
  401. package/src/features/tools/change-bounds-tool.ts +29 -10
  402. package/src/features/tools/delete-tool.ts +1 -3
  403. package/src/features/tools/di.config.ts +2 -3
  404. package/src/features/tools/edge-creation-tool.ts +1 -3
  405. package/src/features/tools/edge-edit-tool.ts +1 -2
  406. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  407. package/src/features/tools/marquee-behavior.ts +158 -0
  408. package/src/features/tools/marquee-mouse-tool.ts +35 -146
  409. package/src/features/tools/marquee-tool.ts +2 -2
  410. package/src/features/tools/node-creation-tool.ts +1 -3
  411. package/src/features/validation/issue-marker.ts +2 -3
  412. package/src/features/validation/marker-navigator.spec.ts +3 -5
  413. package/src/features/validation/marker-navigator.ts +1 -4
  414. package/src/features/validation/validate.ts +4 -33
  415. package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -3
  416. package/src/index.ts +6 -12
  417. package/src/model-source/glsp-diagram-server.ts +10 -14
  418. package/src/protocol-reexport.ts +64 -0
  419. package/src/utils/argument-utils.ts +1 -2
  420. package/src/utils/layout-utils.ts +2 -2
  421. package/src/utils/marker.ts +2 -26
  422. package/src/utils/smodel-util.ts +1 -1
  423. package/src/utils/viewpoint-util.ts +1 -2
  424. package/src/views/base-view-module.ts +1 -2
  425. package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -13
  426. package/src/views/glsp-edge-view.tsx +2 -2
  427. package/src/views/index.ts +1 -1
  428. package/src/views/issue-marker-view.tsx +18 -8
  429. package/src/views/rounded-corner.ts +2 -2
  430. package/lib/base/actions/context-actions.d.ts +0 -36
  431. package/lib/base/actions/context-actions.d.ts.map +0 -1
  432. package/lib/base/actions/context-actions.js +0 -44
  433. package/lib/base/actions/context-actions.js.map +0 -1
  434. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  435. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  436. package/lib/base/actions/edit-mode-action.js.map +0 -1
  437. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  438. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  439. package/lib/base/actions/edit-validation-actions.js +0 -80
  440. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  441. package/lib/base/args.d.ts.map +0 -1
  442. package/lib/base/args.js.map +0 -1
  443. package/lib/base/editor-context.d.ts.map +0 -1
  444. package/lib/base/editor-context.js.map +0 -1
  445. package/lib/base/operations/operation.d.ts +0 -135
  446. package/lib/base/operations/operation.d.ts.map +0 -1
  447. package/lib/base/operations/operation.js +0 -191
  448. package/lib/base/operations/operation.js.map +0 -1
  449. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  450. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  451. package/lib/features/copy-paste/copy-paste-actions.js +0 -58
  452. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  453. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  454. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  455. package/lib/features/hints/request-type-hints-action.js +0 -28
  456. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  457. package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
  458. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  459. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -16
  460. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  461. package/lib/features/save/save.d.ts.map +0 -1
  462. package/lib/features/save/save.js.map +0 -1
  463. package/lib/features/undo-redo/model.d.ts +0 -27
  464. package/lib/features/undo-redo/model.d.ts.map +0 -1
  465. package/lib/features/undo-redo/model.js +0 -18
  466. package/lib/features/undo-redo/model.js.map +0 -1
  467. package/lib/model-source/glsp-server-status.d.ts +0 -30
  468. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  469. package/lib/model-source/glsp-server-status.js +0 -44
  470. package/lib/model-source/glsp-server-status.js.map +0 -1
  471. package/lib/utils/array-utils.d.ts +0 -28
  472. package/lib/utils/array-utils.d.ts.map +0 -1
  473. package/lib/utils/array-utils.js +0 -56
  474. package/lib/utils/array-utils.js.map +0 -1
  475. package/lib/views/default-types.d.ts +0 -37
  476. package/lib/views/default-types.d.ts.map +0 -1
  477. package/lib/views/default-types.js +0 -47
  478. package/lib/views/default-types.js.map +0 -1
  479. package/src/base/actions/context-actions.ts +0 -43
  480. package/src/base/actions/edit-validation-actions.ts +0 -115
  481. package/src/base/operations/operation.ts +0 -204
  482. package/src/features/copy-paste/copy-paste-actions.ts +0 -63
  483. package/src/features/hints/request-type-hints-action.ts +0 -41
  484. package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
  485. package/src/model-source/glsp-server-status.ts +0 -38
  486. package/src/utils/array-utils.ts +0 -57
  487. 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,7 +26,7 @@ import {
26
26
  isViewport,
27
27
  MouseListener,
28
28
  MoveAction,
29
- Point,
29
+ SChildElement,
30
30
  SModelElement,
31
31
  SModelRoot,
32
32
  TYPES
@@ -127,9 +127,10 @@ export class FeedbackMoveMouseListener extends MouseListener {
127
127
  }
128
128
 
129
129
  protected collectStartPositions(root: SModelRoot): void {
130
- root.index
131
- .all()
132
- .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))
133
134
  .forEach(element => {
134
135
  if (isMoveable(element)) {
135
136
  this.elementId2startPos.set(element.id, element.position);
@@ -137,6 +138,16 @@ export class FeedbackMoveMouseListener extends MouseListener {
137
138
  });
138
139
  }
139
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
+
140
151
  protected getElementMoves(target: SModelElement, event: MouseEvent, isFinished: boolean): MoveAction | undefined {
141
152
  if (!this.startDragPosition) {
142
153
  return 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,7 +38,6 @@ import {
39
38
  SRoutableElement,
40
39
  TYPES
41
40
  } from 'sprotty';
42
-
43
41
  import { isRoutable } from '../../utils/smodel-util';
44
42
  import { getAbsolutePosition, toAbsoluteBounds, toAbsolutePosition } from '../../utils/viewpoint-util';
45
43
  import { FeedbackCommand } from './model';
@@ -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
 
@@ -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';
@@ -13,10 +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 { inject, injectable, optional } from 'inversify';
17
16
  import {
18
17
  Action,
19
18
  Bounds,
19
+ ChangeBoundsOperation,
20
+ ChangeRoutingPointsOperation,
21
+ CompoundOperation,
22
+ ElementAndRoutingPoints,
23
+ Operation,
24
+ Point
25
+ } from '@eclipse-glsp/protocol';
26
+ import { inject, injectable, optional } from 'inversify';
27
+ import {
20
28
  BoundsAware,
21
29
  Dimension,
22
30
  EdgeRouterRegistry,
@@ -26,7 +34,7 @@ import {
26
34
  isSelected,
27
35
  isViewport,
28
36
  MouseListener,
29
- Point,
37
+ SChildElement,
30
38
  SConnectableElement,
31
39
  SetBoundsAction,
32
40
  SModelElement,
@@ -35,13 +43,6 @@ import {
35
43
  TYPES
36
44
  } from 'sprotty';
37
45
  import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
38
- import {
39
- ChangeBoundsOperation,
40
- ChangeRoutingPointsOperation,
41
- CompoundOperation,
42
- ElementAndRoutingPoints,
43
- Operation
44
- } from '../../base/operations/operation';
45
46
  import { GLSP_TYPES } from '../../base/types';
46
47
  import { isValidMove, isValidSize, WriteablePoint } from '../../utils/layout-utils';
47
48
  import {
@@ -207,15 +208,33 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
207
208
  protected handleMoveElementsOnServer(target: SModelElement): Action[] {
208
209
  const result: Operation[] = [];
209
210
  const newBounds: ElementAndBounds[] = [];
211
+ const selectedElements: (SModelElement & BoundsAware)[] = [];
210
212
  forEachElement(target, isNonRoutableSelectedMovableBoundsAware, element => {
211
- this.createElementAndBounds(element).forEach(bounds => newBounds.push(bounds));
213
+ selectedElements.push(element);
212
214
  });
215
+
216
+ const selectionSet: Set<SModelElement & BoundsAware> = new Set(selectedElements);
217
+ selectedElements
218
+ .filter(element => !this.isChildOfSelected(selectionSet, element))
219
+ .map(element => this.createElementAndBounds(element))
220
+ .forEach(bounds => newBounds.push(...bounds));
221
+
213
222
  if (newBounds.length > 0) {
214
223
  result.push(new ChangeBoundsOperation(newBounds));
215
224
  }
216
225
  return result;
217
226
  }
218
227
 
228
+ protected isChildOfSelected(selectedElements: Set<SModelElement>, element: SModelElement): boolean {
229
+ while (element instanceof SChildElement) {
230
+ element = element.parent;
231
+ if (selectedElements.has(element)) {
232
+ return true;
233
+ }
234
+ }
235
+ return false;
236
+ }
237
+
219
238
  protected handleMoveRoutingPointsOnServer(target: SModelElement): Action[] {
220
239
  const result: Operation[] = [];
221
240
  const newRoutingPoints: ElementAndRoutingPoints[] = [];
@@ -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, DeleteElementOperation } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
- Action,
19
19
  EnableDefaultToolsAction,
20
20
  findParentByFeature,
21
21
  isCtrlOrCmd,
@@ -27,8 +27,6 @@ import {
27
27
  SModelElement
28
28
  } from 'sprotty';
29
29
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
30
-
31
- import { DeleteElementOperation } from '../../base/operations/operation';
32
30
  import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
33
31
  import { GLSP_TYPES } from '../../base/types';
34
32
  import { IMouseTool } from '../mouse-tool/mouse-tool';