@eclipse-glsp/client 0.9.0-rc-01 → 0.10.0-next.146a812.165

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 (599) 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 +47 -65
  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/actions/focus-change-action.js +4 -5
  14. package/lib/base/actions/focus-change-action.js.map +1 -1
  15. package/lib/base/{args.d.ts → argumentable.d.ts} +3 -5
  16. package/lib/base/argumentable.d.ts.map +1 -0
  17. package/lib/base/{args.js → argumentable.js} +1 -1
  18. package/lib/base/argumentable.js.map +1 -0
  19. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  20. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.d.ts +3 -3
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  23. package/lib/base/auto-complete/auto-complete-widget.js +123 -157
  24. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  25. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  26. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  27. package/lib/base/auto-complete/validation-decorator.js +44 -65
  28. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  29. package/lib/base/command-stack.d.ts.map +1 -1
  30. package/lib/base/command-stack.js +19 -37
  31. package/lib/base/command-stack.js.map +1 -1
  32. package/lib/base/container-modules.d.ts +40 -0
  33. package/lib/base/container-modules.d.ts.map +1 -0
  34. package/lib/base/container-modules.js +100 -0
  35. package/lib/base/container-modules.js.map +1 -0
  36. package/lib/base/di.config.d.ts +12 -2
  37. package/lib/base/di.config.d.ts.map +1 -1
  38. package/lib/base/di.config.js +46 -30
  39. package/lib/base/di.config.js.map +1 -1
  40. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  41. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  42. package/lib/base/drag-aware-mouse-listener.js +23 -62
  43. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  44. package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
  45. package/lib/base/editor-context-service.d.ts.map +1 -0
  46. package/lib/base/editor-context-service.js +110 -0
  47. package/lib/base/editor-context-service.js.map +1 -0
  48. package/lib/base/focus-tracker.d.ts +17 -1
  49. package/lib/base/focus-tracker.d.ts.map +1 -1
  50. package/lib/base/focus-tracker.js +20 -40
  51. package/lib/base/focus-tracker.js.map +1 -1
  52. package/lib/base/model/model-registry.d.ts.map +1 -1
  53. package/lib/base/model/model-registry.js +11 -29
  54. package/lib/base/model/model-registry.js.map +1 -1
  55. package/lib/base/model/update-model-command.d.ts +19 -5
  56. package/lib/base/model/update-model-command.d.ts.map +1 -1
  57. package/lib/base/model/update-model-command.js +69 -94
  58. package/lib/base/model/update-model-command.js.map +1 -1
  59. package/lib/base/model-initialization-constraint.d.ts +18 -3
  60. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  61. package/lib/base/model-initialization-constraint.js +37 -58
  62. package/lib/base/model-initialization-constraint.js.map +1 -1
  63. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  64. package/lib/base/selection-clearing-mouse-listener.js +10 -28
  65. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  66. package/lib/base/source-uri-aware.js +2 -5
  67. package/lib/base/source-uri-aware.js.map +1 -1
  68. package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
  69. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  70. package/lib/base/tool-manager/glsp-tool-manager.js +58 -140
  71. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  72. package/lib/base/types.d.ts +3 -1
  73. package/lib/base/types.d.ts.map +1 -1
  74. package/lib/base/types.js +4 -2
  75. package/lib/base/types.js.map +1 -1
  76. package/lib/base/view/view-registry.d.ts.map +1 -1
  77. package/lib/base/view/view-registry.js +11 -29
  78. package/lib/base/view/view-registry.js.map +1 -1
  79. package/lib/features/change-bounds/model.d.ts +3 -1
  80. package/lib/features/change-bounds/model.d.ts.map +1 -1
  81. package/lib/features/change-bounds/model.js +22 -33
  82. package/lib/features/change-bounds/model.js.map +1 -1
  83. package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
  84. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  85. package/lib/features/change-bounds/movement-restrictor.js +29 -43
  86. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  87. package/lib/features/change-bounds/snap.d.ts +58 -1
  88. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  89. package/lib/features/change-bounds/snap.js +91 -41
  90. package/lib/features/change-bounds/snap.js.map +1 -1
  91. package/{src/features/undo-redo/model.ts → lib/features/change-bounds/snap.spec.d.ts} +3 -12
  92. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  93. package/lib/features/change-bounds/snap.spec.js +82 -0
  94. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  95. package/lib/features/command-palette/command-palette-tool.js +30 -38
  96. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  97. package/lib/features/command-palette/di.config.js +6 -6
  98. package/lib/features/command-palette/di.config.js.map +1 -1
  99. package/lib/features/command-palette/server-command-palette-provider.d.ts +18 -2
  100. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  101. package/lib/features/command-palette/server-command-palette-provider.js +28 -33
  102. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  103. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
  104. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  105. package/lib/features/context-menu/delete-element-context-menu.js +20 -68
  106. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  107. package/lib/features/context-menu/di.config.d.ts +1 -1
  108. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  109. package/lib/features/context-menu/di.config.js +8 -8
  110. package/lib/features/context-menu/di.config.js.map +1 -1
  111. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +16 -0
  112. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  113. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +61 -71
  114. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  115. package/lib/features/context-menu/server-context-menu-provider.d.ts +18 -2
  116. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  117. package/lib/features/context-menu/server-context-menu-provider.js +30 -31
  118. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  119. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  120. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  121. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  122. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  123. package/lib/features/copy-paste/copy-paste-handler.d.ts +19 -2
  124. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  125. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  126. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  127. package/lib/features/copy-paste/di.config.d.ts +1 -1
  128. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  129. package/lib/features/copy-paste/di.config.js +11 -11
  130. package/lib/features/copy-paste/di.config.js.map +1 -1
  131. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  132. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  133. package/lib/features/decoration/decoration-placer.js +13 -47
  134. package/lib/features/decoration/decoration-placer.js.map +1 -1
  135. package/lib/features/decoration/di.config.js +4 -4
  136. package/lib/features/decoration/di.config.js.map +1 -1
  137. package/lib/features/edit-label/di.config.js +7 -7
  138. package/lib/features/edit-label/di.config.js.map +1 -1
  139. package/lib/features/edit-label/edit-label-tool.js +20 -43
  140. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  141. package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
  142. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  143. package/lib/features/edit-label/edit-label-validator.js +40 -62
  144. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  145. package/lib/features/hints/di.config.d.ts +0 -15
  146. package/lib/features/hints/di.config.d.ts.map +1 -1
  147. package/lib/features/hints/di.config.js +9 -9
  148. package/lib/features/hints/di.config.js.map +1 -1
  149. package/lib/features/hints/model.d.ts +3 -2
  150. package/lib/features/hints/model.d.ts.map +1 -1
  151. package/lib/features/hints/model.js.map +1 -1
  152. package/lib/features/hints/type-hints.d.ts +17 -45
  153. package/lib/features/hints/type-hints.d.ts.map +1 -1
  154. package/lib/features/hints/type-hints.js +81 -140
  155. package/lib/features/hints/type-hints.js.map +1 -1
  156. package/lib/features/hover/di.config.d.ts +1 -1
  157. package/lib/features/hover/di.config.d.ts.map +1 -1
  158. package/lib/features/hover/di.config.js +19 -17
  159. package/lib/features/hover/di.config.js.map +1 -1
  160. package/lib/features/hover/hover.d.ts +28 -2
  161. package/lib/features/hover/hover.d.ts.map +1 -1
  162. package/lib/features/hover/hover.js +56 -76
  163. package/lib/features/hover/hover.js.map +1 -1
  164. package/lib/features/layout/di.config.d.ts +1 -1
  165. package/lib/features/layout/di.config.d.ts.map +1 -1
  166. package/lib/features/layout/di.config.js +11 -7
  167. package/lib/features/layout/di.config.js.map +1 -1
  168. package/lib/features/layout/freeform-layout.d.ts +16 -0
  169. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  170. package/lib/features/layout/freeform-layout.js +107 -0
  171. package/lib/features/layout/freeform-layout.js.map +1 -0
  172. package/lib/features/layout/layout-commands.d.ts +19 -3
  173. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  174. package/lib/features/layout/layout-commands.js +196 -269
  175. package/lib/features/layout/layout-commands.js.map +1 -1
  176. package/lib/features/layout/layout-commands.spec.d.ts +0 -15
  177. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  178. package/lib/features/layout/layout-commands.spec.js +101 -95
  179. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  180. package/lib/features/layout/vbox-layout.d.ts +25 -0
  181. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  182. package/lib/features/layout/vbox-layout.js +188 -0
  183. package/lib/features/layout/vbox-layout.js.map +1 -0
  184. package/lib/features/model-source-watcher/di.config.d.ts +0 -15
  185. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  186. package/lib/features/model-source-watcher/di.config.js +7 -7
  187. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  188. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  189. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  190. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  191. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  192. package/lib/features/mouse-tool/di.config.js +5 -5
  193. package/lib/features/mouse-tool/di.config.js.map +1 -1
  194. package/lib/features/mouse-tool/mouse-tool.d.ts +10 -5
  195. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  196. package/lib/features/mouse-tool/mouse-tool.js +54 -235
  197. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  198. package/lib/features/navigation/di.config.d.ts +0 -15
  199. package/lib/features/navigation/di.config.d.ts.map +1 -1
  200. package/lib/features/navigation/di.config.js +11 -10
  201. package/lib/features/navigation/di.config.js.map +1 -1
  202. package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
  203. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  204. package/lib/features/navigation/navigation-action-handler.js +118 -254
  205. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  206. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  207. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  208. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  209. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  210. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
  211. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  212. package/lib/features/navigation/navigation-target-resolver.spec.js +27 -27
  213. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  214. package/lib/features/rank/model.d.ts +1 -1
  215. package/lib/features/rank/model.js +2 -2
  216. package/lib/features/rank/model.js.map +1 -1
  217. package/lib/features/reconnect/model.d.ts +1 -1
  218. package/lib/features/reconnect/model.d.ts.map +1 -1
  219. package/lib/features/reconnect/model.js +9 -27
  220. package/lib/features/reconnect/model.js.map +1 -1
  221. package/lib/features/save/di.config.d.ts +1 -1
  222. package/lib/features/save/di.config.d.ts.map +1 -1
  223. package/lib/features/save/di.config.js +6 -6
  224. package/lib/features/save/di.config.js.map +1 -1
  225. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
  226. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  227. package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
  228. package/lib/features/save/save-keylistener.js.map +1 -0
  229. package/lib/features/select/di.config.js +11 -11
  230. package/lib/features/select/di.config.js.map +1 -1
  231. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  232. package/lib/features/select/select-feedback-action.js +45 -71
  233. package/lib/features/select/select-feedback-action.js.map +1 -1
  234. package/lib/features/select/select-mouse-listener.js +7 -23
  235. package/lib/features/select/select-mouse-listener.js.map +1 -1
  236. package/lib/features/select/selection-service.d.ts +18 -2
  237. package/lib/features/select/selection-service.d.ts.map +1 -1
  238. package/lib/features/select/selection-service.js +140 -240
  239. package/lib/features/select/selection-service.js.map +1 -1
  240. package/lib/features/select/selection-service.spec.js +111 -154
  241. package/lib/features/select/selection-service.spec.js.map +1 -1
  242. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +19 -2
  243. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  244. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +110 -150
  245. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  246. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
  247. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  248. package/lib/features/tool-feedback/creation-tool-feedback.js +103 -124
  249. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  250. package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
  251. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  252. package/lib/features/tool-feedback/css-feedback.js +37 -81
  253. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  254. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  255. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  256. package/lib/features/tool-feedback/di.config.js +27 -27
  257. package/lib/features/tool-feedback/di.config.js.map +1 -1
  258. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +24 -5
  259. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  260. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +185 -239
  261. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  262. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +20 -4
  263. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  264. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  265. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  266. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
  267. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  268. package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -84
  269. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  270. package/lib/features/tool-feedback/model.d.ts +1 -2
  271. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  272. package/lib/features/tool-feedback/model.js +11 -27
  273. package/lib/features/tool-feedback/model.js.map +1 -1
  274. package/lib/features/tool-feedback/view.d.ts +21 -5
  275. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  276. package/lib/features/tool-feedback/view.js +31 -53
  277. package/lib/features/tool-feedback/view.js.map +1 -1
  278. package/lib/features/tool-palette/di.config.d.ts +1 -1
  279. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  280. package/lib/features/tool-palette/di.config.js +6 -6
  281. package/lib/features/tool-palette/di.config.js.map +1 -1
  282. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  283. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  284. package/lib/features/tool-palette/palette-item.js +6 -6
  285. package/lib/features/tool-palette/palette-item.js.map +1 -1
  286. package/lib/features/tool-palette/tool-palette.d.ts +19 -3
  287. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  288. package/lib/features/tool-palette/tool-palette.js +203 -271
  289. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  290. package/lib/features/tools/base-glsp-tool.d.ts +20 -4
  291. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  292. package/lib/features/tools/base-glsp-tool.js +39 -61
  293. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  294. package/lib/features/tools/change-bounds-tool.d.ts +22 -7
  295. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  296. package/lib/features/tools/change-bounds-tool.js +196 -270
  297. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  298. package/lib/features/tools/delete-tool.d.ts +17 -1
  299. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  300. package/lib/features/tools/delete-tool.js +75 -108
  301. package/lib/features/tools/delete-tool.js.map +1 -1
  302. package/lib/features/tools/di.config.d.ts +0 -15
  303. package/lib/features/tools/di.config.d.ts.map +1 -1
  304. package/lib/features/tools/di.config.js +20 -20
  305. package/lib/features/tools/di.config.js.map +1 -1
  306. package/lib/features/tools/edge-creation-tool.d.ts +17 -2
  307. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  308. package/lib/features/tools/edge-creation-tool.js +68 -93
  309. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  310. package/lib/features/tools/edge-edit-tool.d.ts +18 -1
  311. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  312. package/lib/features/tools/edge-edit-tool.js +129 -195
  313. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  314. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  315. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  316. package/lib/features/tools/marquee-behavior.js +128 -0
  317. package/lib/features/tools/marquee-behavior.js.map +1 -0
  318. package/lib/features/{model-source-watcher/model-source-changed-action.d.ts → tools/marquee-behavior.spec.d.ts} +3 -10
  319. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  320. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  321. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  322. package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
  323. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  324. package/lib/features/tools/marquee-mouse-tool.js +89 -198
  325. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  326. package/lib/features/tools/marquee-tool.d.ts +17 -1
  327. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  328. package/lib/features/tools/marquee-tool.js +32 -73
  329. package/lib/features/tools/marquee-tool.js.map +1 -1
  330. package/lib/features/tools/model.d.ts +1 -1
  331. package/lib/features/tools/model.d.ts.map +1 -1
  332. package/lib/features/tools/model.js +5 -23
  333. package/lib/features/tools/model.js.map +1 -1
  334. package/lib/features/tools/node-creation-tool.d.ts +17 -2
  335. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  336. package/lib/features/tools/node-creation-tool.js +63 -93
  337. package/lib/features/tools/node-creation-tool.js.map +1 -1
  338. package/lib/features/tools/view.d.ts +1 -1
  339. package/lib/features/tools/view.d.ts.map +1 -1
  340. package/lib/features/tools/view.js +13 -32
  341. package/lib/features/tools/view.js.map +1 -1
  342. package/lib/features/validation/di.config.js +12 -12
  343. package/lib/features/validation/di.config.js.map +1 -1
  344. package/lib/features/validation/issue-marker.d.ts +2 -2
  345. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  346. package/lib/features/validation/issue-marker.js +17 -55
  347. package/lib/features/validation/issue-marker.js.map +1 -1
  348. package/lib/features/validation/marker-navigator.d.ts +17 -1
  349. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  350. package/lib/features/validation/marker-navigator.js +134 -167
  351. package/lib/features/validation/marker-navigator.js.map +1 -1
  352. package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
  353. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  354. package/lib/features/validation/marker-navigator.spec.js +104 -98
  355. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  356. package/lib/features/validation/validate.d.ts +18 -29
  357. package/lib/features/validation/validate.d.ts.map +1 -1
  358. package/lib/features/validation/validate.js +148 -301
  359. package/lib/features/validation/validate.js.map +1 -1
  360. package/lib/features/viewport/di.config.js +10 -10
  361. package/lib/features/viewport/di.config.js.map +1 -1
  362. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
  363. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  364. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
  365. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  366. package/lib/index.d.ts +9 -15
  367. package/lib/index.d.ts.map +1 -1
  368. package/lib/index.js +36 -37
  369. package/lib/index.js.map +1 -1
  370. package/lib/lib/model.d.ts +1 -1
  371. package/lib/lib/model.d.ts.map +1 -1
  372. package/lib/lib/model.js +12 -28
  373. package/lib/lib/model.js.map +1 -1
  374. package/lib/model-source/glsp-diagram-server.d.ts +3 -5
  375. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  376. package/lib/model-source/glsp-diagram-server.js +61 -121
  377. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  378. package/lib/protocol-reexport.d.ts +45 -0
  379. package/lib/protocol-reexport.d.ts.map +1 -0
  380. package/lib/protocol-reexport.js +80 -0
  381. package/lib/protocol-reexport.js.map +1 -0
  382. package/lib/utils/argument-utils.d.ts +3 -3
  383. package/lib/utils/argument-utils.d.ts.map +1 -1
  384. package/lib/utils/argument-utils.js +32 -97
  385. package/lib/utils/argument-utils.js.map +1 -1
  386. package/lib/utils/html-utils.js +2 -2
  387. package/lib/utils/html-utils.js.map +1 -1
  388. package/lib/utils/layout-utils.d.ts +3 -2
  389. package/lib/utils/layout-utils.d.ts.map +1 -1
  390. package/lib/utils/layout-utils.js +5 -5
  391. package/lib/utils/layout-utils.js.map +1 -1
  392. package/lib/utils/marker.d.ts +0 -38
  393. package/lib/utils/marker.d.ts.map +1 -1
  394. package/lib/utils/marker.js +14 -61
  395. package/lib/utils/marker.js.map +1 -1
  396. package/lib/utils/smodel-util.d.ts +116 -10
  397. package/lib/utils/smodel-util.d.ts.map +1 -1
  398. package/lib/utils/smodel-util.js +131 -75
  399. package/lib/utils/smodel-util.js.map +1 -1
  400. package/lib/utils/viewpoint-util.d.ts +3 -2
  401. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  402. package/lib/utils/viewpoint-util.js +15 -30
  403. package/lib/utils/viewpoint-util.js.map +1 -1
  404. package/lib/views/base-view-module.d.ts +0 -15
  405. package/lib/views/base-view-module.d.ts.map +1 -1
  406. package/lib/views/base-view-module.js +28 -28
  407. package/lib/views/base-view-module.js.map +1 -1
  408. package/lib/views/compartments.d.ts +6 -0
  409. package/lib/views/compartments.d.ts.map +1 -0
  410. package/lib/views/compartments.js +43 -0
  411. package/lib/views/compartments.js.map +1 -0
  412. package/lib/views/glsp-edge-view.d.ts +18 -3
  413. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  414. package/lib/views/glsp-edge-view.js +32 -77
  415. package/lib/views/glsp-edge-view.js.map +1 -1
  416. package/lib/views/index.d.ts +1 -1
  417. package/lib/views/index.d.ts.map +1 -1
  418. package/lib/views/index.js +7 -3
  419. package/lib/views/index.js.map +1 -1
  420. package/lib/views/issue-marker-view.d.ts +2 -1
  421. package/lib/views/issue-marker-view.d.ts.map +1 -1
  422. package/lib/views/issue-marker-view.js +37 -51
  423. package/lib/views/issue-marker-view.js.map +1 -1
  424. package/lib/views/rounded-corner-view.d.ts +2 -3
  425. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  426. package/lib/views/rounded-corner-view.js +41 -71
  427. package/lib/views/rounded-corner-view.js.map +1 -1
  428. package/lib/views/rounded-corner.d.ts +2 -1
  429. package/lib/views/rounded-corner.d.ts.map +1 -1
  430. package/lib/views/rounded-corner.js +44 -65
  431. package/lib/views/rounded-corner.js.map +1 -1
  432. package/package.json +13 -31
  433. package/src/base/action-dispatcher.ts +15 -15
  434. package/src/base/actions/focus-change-action.ts +2 -2
  435. package/src/base/{args.ts → argumentable.ts} +2 -3
  436. package/src/base/auto-complete/auto-complete-actions.ts +1 -1
  437. package/src/base/auto-complete/auto-complete-widget.ts +37 -25
  438. package/src/base/auto-complete/validation-decorator.ts +12 -11
  439. package/src/base/command-stack.ts +4 -7
  440. package/src/base/container-modules.ts +112 -0
  441. package/src/base/di.config.ts +33 -18
  442. package/src/base/drag-aware-mouse-listener.ts +6 -7
  443. package/src/base/{editor-context.ts → editor-context-service.ts} +4 -31
  444. package/src/base/focus-tracker.ts +2 -4
  445. package/src/base/model/model-registry.ts +2 -2
  446. package/src/base/model/update-model-command.ts +9 -17
  447. package/src/base/model-initialization-constraint.ts +10 -10
  448. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  449. package/src/base/tool-manager/glsp-tool-manager.ts +9 -11
  450. package/src/base/types.ts +4 -2
  451. package/src/base/view/view-registry.ts +2 -2
  452. package/src/features/change-bounds/model.ts +17 -7
  453. package/src/features/change-bounds/movement-restrictor.ts +17 -9
  454. package/src/features/change-bounds/snap.spec.ts +89 -0
  455. package/src/features/change-bounds/snap.ts +87 -2
  456. package/src/features/command-palette/server-command-palette-provider.ts +11 -9
  457. package/src/features/context-menu/delete-element-context-menu.ts +3 -4
  458. package/src/features/context-menu/di.config.ts +11 -9
  459. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +41 -11
  460. package/src/features/context-menu/server-context-menu-provider.ts +10 -7
  461. package/src/features/copy-paste/copy-paste-context-menu.ts +59 -30
  462. package/src/features/copy-paste/copy-paste-handler.ts +18 -10
  463. package/src/features/copy-paste/di.config.ts +2 -3
  464. package/src/features/decoration/decoration-placer.ts +4 -14
  465. package/src/features/edit-label/edit-label-validator.ts +11 -12
  466. package/src/features/hints/di.config.ts +2 -3
  467. package/src/features/hints/model.ts +4 -3
  468. package/src/features/hints/type-hints.ts +24 -91
  469. package/src/features/hover/di.config.ts +4 -3
  470. package/src/features/hover/hover.ts +27 -8
  471. package/src/features/layout/di.config.ts +8 -4
  472. package/src/features/layout/freeform-layout.ts +133 -0
  473. package/src/features/layout/layout-commands.spec.ts +82 -64
  474. package/src/features/layout/layout-commands.ts +47 -38
  475. package/src/features/layout/vbox-layout.ts +260 -0
  476. package/src/features/model-source-watcher/di.config.ts +3 -4
  477. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +11 -7
  478. package/src/features/mouse-tool/mouse-tool.ts +28 -54
  479. package/src/features/navigation/di.config.ts +4 -10
  480. package/src/features/navigation/navigation-action-handler.ts +33 -69
  481. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -7
  482. package/src/features/navigation/navigation-target-resolver.ts +13 -91
  483. package/src/features/rank/model.ts +2 -2
  484. package/src/features/reconnect/model.ts +3 -4
  485. package/src/features/save/di.config.ts +2 -3
  486. package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
  487. package/src/features/select/select-feedback-action.ts +4 -6
  488. package/src/features/select/selection-service.spec.ts +11 -6
  489. package/src/features/select/selection-service.ts +18 -13
  490. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +33 -26
  491. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -14
  492. package/src/features/tool-feedback/css-feedback.ts +9 -6
  493. package/src/features/tool-feedback/di.config.ts +2 -5
  494. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +78 -68
  495. package/src/features/tool-feedback/feedback-action-dispatcher.ts +9 -10
  496. package/src/features/tool-feedback/marquee-tool-feedback.ts +6 -7
  497. package/src/features/tool-feedback/model.ts +1 -4
  498. package/src/features/tool-feedback/view.tsx +17 -11
  499. package/src/features/tool-palette/di.config.ts +2 -4
  500. package/src/features/tool-palette/palette-item.ts +4 -6
  501. package/src/features/tool-palette/tool-palette.ts +48 -42
  502. package/src/features/tools/base-glsp-tool.ts +10 -10
  503. package/src/features/tools/change-bounds-tool.ts +73 -74
  504. package/src/features/tools/delete-tool.ts +11 -8
  505. package/src/features/tools/di.config.ts +2 -3
  506. package/src/features/tools/edge-creation-tool.ts +7 -12
  507. package/src/features/tools/edge-edit-tool.ts +19 -26
  508. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  509. package/src/features/tools/marquee-behavior.ts +158 -0
  510. package/src/features/tools/marquee-mouse-tool.ts +48 -139
  511. package/src/features/tools/marquee-tool.ts +4 -5
  512. package/src/features/tools/model.ts +2 -2
  513. package/src/features/tools/node-creation-tool.ts +6 -13
  514. package/src/features/tools/view.tsx +19 -15
  515. package/src/features/validation/issue-marker.ts +2 -3
  516. package/src/features/validation/marker-navigator.spec.ts +18 -14
  517. package/src/features/validation/marker-navigator.ts +29 -15
  518. package/src/features/validation/validate.ts +10 -43
  519. package/src/features/viewport/glsp-scroll-mouse-listener.ts +4 -13
  520. package/src/index.ts +30 -19
  521. package/src/lib/model.ts +2 -3
  522. package/src/model-source/glsp-diagram-server.ts +18 -32
  523. package/src/protocol-reexport.ts +64 -0
  524. package/src/utils/argument-utils.ts +14 -11
  525. package/src/utils/layout-utils.ts +13 -7
  526. package/src/utils/marker.ts +2 -26
  527. package/src/utils/smodel-util.ts +140 -38
  528. package/src/utils/viewpoint-util.ts +4 -4
  529. package/src/views/base-view-module.ts +1 -2
  530. package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -14
  531. package/src/views/glsp-edge-view.tsx +25 -18
  532. package/src/views/index.ts +1 -1
  533. package/src/views/issue-marker-view.tsx +29 -20
  534. package/src/views/rounded-corner-view.tsx +40 -28
  535. package/src/views/rounded-corner.ts +5 -6
  536. package/lib/base/actions/context-actions.d.ts +0 -36
  537. package/lib/base/actions/context-actions.d.ts.map +0 -1
  538. package/lib/base/actions/context-actions.js +0 -51
  539. package/lib/base/actions/context-actions.js.map +0 -1
  540. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  541. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  542. package/lib/base/actions/edit-mode-action.js +0 -56
  543. package/lib/base/actions/edit-mode-action.js.map +0 -1
  544. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  545. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  546. package/lib/base/actions/edit-validation-actions.js +0 -83
  547. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  548. package/lib/base/actions/protocol-actions.d.ts +0 -41
  549. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  550. package/lib/base/actions/protocol-actions.js +0 -151
  551. package/lib/base/actions/protocol-actions.js.map +0 -1
  552. package/lib/base/args.d.ts.map +0 -1
  553. package/lib/base/args.js.map +0 -1
  554. package/lib/base/editor-context.d.ts.map +0 -1
  555. package/lib/base/editor-context.js +0 -174
  556. package/lib/base/editor-context.js.map +0 -1
  557. package/lib/base/operations/operation.d.ts +0 -135
  558. package/lib/base/operations/operation.d.ts.map +0 -1
  559. package/lib/base/operations/operation.js +0 -231
  560. package/lib/base/operations/operation.js.map +0 -1
  561. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  562. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  563. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  564. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  565. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  566. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  567. package/lib/features/hints/request-type-hints-action.js +0 -30
  568. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  569. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  570. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  571. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  572. package/lib/features/save/save.d.ts.map +0 -1
  573. package/lib/features/save/save.js +0 -62
  574. package/lib/features/save/save.js.map +0 -1
  575. package/lib/features/undo-redo/model.d.ts.map +0 -1
  576. package/lib/features/undo-redo/model.js +0 -22
  577. package/lib/features/undo-redo/model.js.map +0 -1
  578. package/lib/model-source/glsp-server-status.d.ts +0 -30
  579. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  580. package/lib/model-source/glsp-server-status.js +0 -61
  581. package/lib/model-source/glsp-server-status.js.map +0 -1
  582. package/lib/utils/array-utils.d.ts +0 -28
  583. package/lib/utils/array-utils.d.ts.map +0 -1
  584. package/lib/utils/array-utils.js +0 -61
  585. package/lib/utils/array-utils.js.map +0 -1
  586. package/lib/views/default-types.d.ts +0 -37
  587. package/lib/views/default-types.d.ts.map +0 -1
  588. package/lib/views/default-types.js +0 -47
  589. package/lib/views/default-types.js.map +0 -1
  590. package/src/base/actions/context-actions.ts +0 -43
  591. package/src/base/actions/edit-validation-actions.ts +0 -103
  592. package/src/base/actions/protocol-actions.ts +0 -82
  593. package/src/base/operations/operation.ts +0 -178
  594. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  595. package/src/features/hints/request-type-hints-action.ts +0 -36
  596. package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
  597. package/src/model-source/glsp-server-status.ts +0 -38
  598. package/src/utils/array-utils.ts +0 -55
  599. package/src/views/default-types.ts +0 -48
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2020 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,26 +13,20 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { GLSPClient } from '@eclipse-glsp/protocol';
17
- import { injectable } from 'inversify';
18
16
  import {
19
17
  Action,
20
- ActionHandlerRegistry,
21
- ActionMessage,
22
18
  ComputedBoundsAction,
23
- DiagramServer,
24
- ICommand,
25
- RequestModelAction,
26
- ServerStatusAction,
27
- SwitchEditModeCommand
28
- } from 'sprotty';
29
-
30
- import { RequestContextActions } from '../base/actions/context-actions';
31
- import { isSetEditModeAction, SetEditModeAction } from '../base/actions/edit-mode-action';
32
- import { InitializeClientSessionAction } from '../base/actions/protocol-actions';
19
+ ExportSvgAction,
20
+ GLSPClient,
21
+ isRequestModelAction,
22
+ isServerMessageAction,
23
+ isSetEditModeAction,
24
+ ServerMessageAction,
25
+ SetEditModeAction
26
+ } from '@eclipse-glsp/protocol';
27
+ import { injectable } from 'inversify';
28
+ import { ActionHandlerRegistry, ActionMessage, DiagramServer, ICommand, ServerStatusAction, SwitchEditModeCommand } from 'sprotty';
33
29
  import { SourceUriAware } from '../base/source-uri-aware';
34
- import { RequestTypeHintsAction } from '../features/hints/request-type-hints-action';
35
- import { isServerMessageAction, ServerMessageAction } from './glsp-server-status';
36
30
 
37
31
  const receivedFromServerProperty = '__receivedFromServer';
38
32
 
@@ -61,21 +55,21 @@ export class GLSPDiagramServer extends DiagramServer implements SourceUriAware {
61
55
  }
62
56
  }
63
57
 
64
- initialize(registry: ActionHandlerRegistry): void {
58
+ override initialize(registry: ActionHandlerRegistry): void {
65
59
  registerDefaultGLSPServerActions(registry, this);
66
60
  if (!this.clientId) {
67
61
  this.clientId = this.viewerOptions.baseDiv;
68
62
  }
69
63
  }
70
64
 
71
- handle(action: Action): void | ICommand | Action {
72
- if (action instanceof RequestModelAction && action.options !== undefined) {
65
+ override handle(action: Action): void | ICommand | Action {
66
+ if (isRequestModelAction(action) && action.options) {
73
67
  this._sourceUri = action.options.sourceUri as string;
74
68
  }
75
69
  return super.handle(action);
76
70
  }
77
71
 
78
- handleLocally(action: Action): boolean {
72
+ override handleLocally(action: Action): boolean {
79
73
  if (isServerMessageAction(action)) {
80
74
  return this.handleServerMessageAction(action);
81
75
  }
@@ -90,7 +84,7 @@ export class GLSPDiagramServer extends DiagramServer implements SourceUriAware {
90
84
  return false;
91
85
  }
92
86
 
93
- protected handleComputedBounds(_action: ComputedBoundsAction): boolean {
87
+ protected override handleComputedBounds(_action: ComputedBoundsAction): boolean {
94
88
  return true;
95
89
  }
96
90
 
@@ -108,17 +102,9 @@ export function isReceivedFromServer(action: Action): boolean {
108
102
  }
109
103
 
110
104
  export function registerDefaultGLSPServerActions(registry: ActionHandlerRegistry, diagramServer: DiagramServer): void {
111
- // Register the InitializeClientSessionAction as a server action. Then, the server will
112
- // notify us about all actions it handles (Via ConfigureServerHandlersAction/Handler)
113
- registry.register(InitializeClientSessionAction.KIND, diagramServer);
114
-
115
- // Register some additional early actions, that will happen before the server can tell us
116
- // which actions it handles
117
- registry.register(RequestTypeHintsAction.KIND, diagramServer);
118
- registry.register(RequestModelAction.KIND, diagramServer);
119
- registry.register(RequestContextActions.KIND, diagramServer);
120
-
105
+ registry.register(ServerMessageAction.KIND, diagramServer);
121
106
  registry.register(ServerStatusAction.KIND, diagramServer);
107
+ registry.register(ExportSvgAction.KIND, diagramServer);
122
108
 
123
109
  // Register an empty handler for SwitchEditMode, to avoid runtime exceptions.
124
110
  // We don't support SwitchEditMode, but Sprotty still sends those actions, so ignore them.
@@ -0,0 +1,64 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2021 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ /**
18
+ * Workaround for now to solve ambiguous exports in glsp-client. This module provides all glsp-only components.
19
+ * i.e. typings that are not defined in sprotty
20
+ */
21
+
22
+ export {
23
+ CompoundOperation,
24
+ isActionKind,
25
+ isCompoundOperation,
26
+ isRejectAction,
27
+ Operation
28
+ } from '@eclipse-glsp/protocol/lib/action-protocol/base-protocol';
29
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/client-notification';
30
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/clipboard';
31
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/contexts';
32
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/edge-modification';
33
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/element-creation';
34
+ export { isRequestPopupModelAction, isSetPopupModelAction } from '@eclipse-glsp/protocol/lib/action-protocol/element-hover';
35
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/element-navigation';
36
+ export { isSelectAction, isSelectAllAction } from '@eclipse-glsp/protocol/lib/action-protocol/element-selection';
37
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/element-text-editing';
38
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/element-type-hints';
39
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/element-validation';
40
+ export { LayoutOperation } from '@eclipse-glsp/protocol/lib/action-protocol/mode-layout';
41
+ export {
42
+ isModelSourceChangedAction,
43
+ isRequestModelAction,
44
+ isSetModelAction,
45
+ ModelSourceChangedAction
46
+ } from '@eclipse-glsp/protocol/lib/action-protocol/model-data';
47
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/model-edit-mode';
48
+ export {
49
+ DirtyStateChangeReason,
50
+ isExportSvgAction,
51
+ isSaveModelAction,
52
+ isSetDirtyStateAction,
53
+ SaveModelAction,
54
+ SetDirtyStateAction
55
+ } from '@eclipse-glsp/protocol/lib/action-protocol/model-saving';
56
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/node-modification';
57
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/tool-palette';
58
+ export { Args, EditorContext, ElementAndRoutingPoints } from '@eclipse-glsp/protocol/lib/action-protocol/types';
59
+ export * from '@eclipse-glsp/protocol/lib/action-protocol/undo-redo';
60
+ export * from '@eclipse-glsp/protocol/lib/glsp-client';
61
+ export * from '@eclipse-glsp/protocol/lib/jsonrpc/base-jsonrpc-glsp-client';
62
+ export * from '@eclipse-glsp/protocol/lib/jsonrpc/glsp-jsonrpc-client';
63
+ export * from '@eclipse-glsp/protocol/lib/utils/array-util';
64
+ export * from '@eclipse-glsp/protocol/lib/utils/launch-util';
@@ -14,11 +14,10 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { SModelElement } from 'sprotty';
17
-
18
- import { hasArguments } from '../base/args';
17
+ import { hasArguments } from '../base/argumentable';
19
18
 
20
19
  export namespace GArgument {
21
- export function asNumber(argValue: (string | number | boolean)): number | undefined {
20
+ export function asNumber(argValue: string | number | boolean): number | undefined {
22
21
  return typeof argValue === 'number' ? argValue : undefined;
23
22
  }
24
23
 
@@ -26,7 +25,7 @@ export namespace GArgument {
26
25
  return argValues.map(asNumber);
27
26
  }
28
27
 
29
- export function asString(argValue: (string | number | boolean)): string | undefined {
28
+ export function asString(argValue: string | number | boolean): string | undefined {
30
29
  return typeof argValue === 'string' ? argValue : undefined;
31
30
  }
32
31
 
@@ -34,7 +33,7 @@ export namespace GArgument {
34
33
  return argValues.map(asString);
35
34
  }
36
35
 
37
- export function asBoolean(argValue: (string | number | boolean)): boolean | undefined {
36
+ export function asBoolean(argValue: string | number | boolean): boolean | undefined {
38
37
  return typeof argValue === 'boolean' ? argValue : undefined;
39
38
  }
40
39
 
@@ -112,16 +111,20 @@ export class CornerRadius {
112
111
  public readonly topLeft: number = 0,
113
112
  public readonly topRight: number = topLeft,
114
113
  public readonly bottomRight: number = topLeft,
115
- public readonly bottomLeft: number = topRight) {
116
- }
114
+ public readonly bottomLeft: number = topRight
115
+ ) {}
117
116
 
118
117
  static from(element: SModelElement | undefined): CornerRadius | undefined {
119
- const radius = GArgument.getNumbers(element, this.KEY_RADIUS_TOP_LEFT, this.KEY_RADIUS_TOP_RIGHT, this.KEY_RADIUS_BOTTOM_RIGHT, this.KEY_RADIUS_BOTTOM_LEFT);
118
+ const radius = GArgument.getNumbers(
119
+ element,
120
+ this.KEY_RADIUS_TOP_LEFT,
121
+ this.KEY_RADIUS_TOP_RIGHT,
122
+ this.KEY_RADIUS_BOTTOM_RIGHT,
123
+ this.KEY_RADIUS_BOTTOM_LEFT
124
+ );
120
125
  if (radius === undefined || radius[0] === undefined) {
121
126
  return undefined;
122
127
  }
123
- return GArgument.hasNValues(radius, 4)
124
- ? new CornerRadius(radius[0], radius[1], radius[2], radius[3])
125
- : new CornerRadius(radius[0]);
128
+ return GArgument.hasNValues(radius, 4) ? new CornerRadius(radius[0], radius[1], radius[2], radius[3]) : new CornerRadius(radius[0]);
126
129
  }
127
130
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,8 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { BoundsAware, Dimension, ElementAndBounds, ElementMove, ModelLayoutOptions, Point, SModelElement } from 'sprotty';
17
-
16
+ import { Point } from '@eclipse-glsp/protocol';
17
+ import { BoundsAware, Dimension, ElementAndBounds, ElementMove, ModelLayoutOptions, SModelElement } from 'sprotty';
18
18
  import { IMovementRestrictor } from '../features/change-bounds/movement-restrictor';
19
19
 
20
20
  export function minWidth(element: SModelElement & BoundsAware): number {
@@ -52,16 +52,22 @@ export function isValidMove(element: SModelElement & BoundsAware, newPosition: P
52
52
  return true;
53
53
  }
54
54
 
55
- export function toValidElementMove(element: SModelElement & BoundsAware, move: WriteableElementMove, movementRestrictor?: IMovementRestrictor): WriteableElementMove | undefined {
55
+ export function toValidElementMove(
56
+ element: SModelElement & BoundsAware,
57
+ move: WriteableElementMove,
58
+ movementRestrictor?: IMovementRestrictor
59
+ ): WriteableElementMove | undefined {
56
60
  if (!isValidMove(element, move.toPosition, movementRestrictor)) {
57
61
  return;
58
62
  }
59
63
  return move;
60
64
  }
61
65
 
62
- export function toValidElementAndBounds(element: SModelElement & BoundsAware, bounds: WriteableElementAndBounds,
63
- movementRestrictor?: IMovementRestrictor): WriteableElementAndBounds | undefined {
64
-
66
+ export function toValidElementAndBounds(
67
+ element: SModelElement & BoundsAware,
68
+ bounds: WriteableElementAndBounds,
69
+ movementRestrictor?: IMovementRestrictor
70
+ ): WriteableElementAndBounds | undefined {
65
71
  if (!isValidMove(element, bounds.newPosition, movementRestrictor)) {
66
72
  return;
67
73
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,14 +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 { MarkerKind } from '@eclipse-glsp/protocol';
16
17
  import { SIssueMarker, SParentElement } from 'sprotty';
17
18
 
18
- export namespace MarkerKind {
19
- export const INFO = 'info';
20
- export const WARNING = 'warning';
21
- export const ERROR = 'error';
22
- }
23
-
24
19
  export namespace MarkerPredicates {
25
20
  export const ALL = (): boolean => true;
26
21
  export const ERRORS = (marker: SIssueMarker): boolean => hasIssueWithSeverity(marker, MarkerKind.ERROR);
@@ -42,22 +37,3 @@ export function collectIssueMarkers(root: SParentElement): SIssueMarker[] {
42
37
  }
43
38
  return markers;
44
39
  }
45
-
46
- export interface Marker {
47
- /**
48
- * Short label describing this marker message, e.g., short validation message
49
- */
50
- readonly label: string;
51
- /**
52
- * Full description of this marker, e.g., full validation message
53
- */
54
- readonly description: string;
55
- /**
56
- * Id of the model element this marker refers to
57
- */
58
- readonly elementId: string;
59
- /**
60
- * Marker kind, e.g., info, warning, error or custom kind
61
- */
62
- readonly kind: string;
63
- }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -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 { distinctAdd, ElementAndRoutingPoints, remove, TypeGuard } from '@eclipse-glsp/protocol';
16
17
  import {
17
18
  BoundsAware,
18
19
  ElementAndBounds,
@@ -27,90 +28,179 @@ import {
27
28
  SRoutableElement,
28
29
  SRoutingHandle
29
30
  } from 'sprotty';
31
+ import { FluentIterable } from 'sprotty/lib/utils/iterable';
30
32
 
31
- import { ElementAndRoutingPoints } from '../base/operations/operation';
33
+ /**
34
+ * Helper type to represent a filter predicate for {@link SModelElement}s. This is used to retrieve
35
+ * elements from the {@link SModelIndex} that also conform to a second type `T`. Its mainly used for
36
+ * retrieving elements that also implement a certain model features (e.g. selectable)
37
+ */
38
+ export type ModelFilterPredicate<T> = (modelElement: SModelElement) => modelElement is SModelElement & T;
32
39
 
33
- export function getIndex(element: SModelElement): SModelIndex<SModelElement> {
34
- return element.root.index;
40
+ /**
41
+ * Retrieves all elements from the given {@link SModelIndex} that match the given {@link ModelFilterPredicate}
42
+ * @param index The {@link SModelIndex}.
43
+ * @param predicate The {@link ModelFilterPredicate} that should be used.
44
+ * @returns A {@link FluentIterable} of all indexed element that match the predicate
45
+ * (correctly casted to also include the additional type of the predicate).
46
+ */
47
+ export function filter<T>(index: SModelIndex<SModelElement>, predicate: ModelFilterPredicate<T>): FluentIterable<SModelElement & T> {
48
+ return index.all().filter(predicate) as FluentIterable<SModelElement & T>;
35
49
  }
36
50
 
37
- export function forEachElement<T>(element: SModelElement, predicate: (element: SModelElement) => element is SModelElement & T,
38
- runnable: (element: SModelElement & T) => void): void {
39
- getIndex(element).all()
40
- .filter(predicate)
41
- .forEach(runnable);
51
+ /**
52
+ * Retrieves all elements from the given {@link SModelIndex} that match the given {@link ModelFilterPredicate} and executes
53
+ * the given runnable for each element of the result set.
54
+ * @param index The {@link SModelIndex}.
55
+ * @param predicate The {@link ModelFilterPredicate} that should be used.
56
+ * @param runnable The runnable that should be executed for each matching element.
57
+ */
58
+ export function forEachElement<T>(
59
+ index: SModelIndex<SModelElement>,
60
+ predicate: ModelFilterPredicate<T>,
61
+ runnable: (modelElement: SModelElement & T) => void
62
+ ): void {
63
+ filter(index, predicate).forEach(runnable);
42
64
  }
43
65
 
44
- export function getMatchingElements<T>(element: SModelElement, predicate: (element: SModelElement) => element is SModelElement & T): (SModelElement & T)[] {
45
- const matching: (SModelElement & T)[] = [];
46
- forEachElement(element, predicate, item => matching.push(item));
47
- return matching;
66
+ /**
67
+ * Retrieves an array of all elements that match the given {@link ModelFilterPredicate} from the given {@link SModelIndex}.
68
+ * @param index The {@link SModelIndex}.
69
+ * @param predicate The {@link ModelFilterPredicate} that should be used.
70
+ * @returns An array of all indexed element that match the predicate
71
+ * (correctly casted to also include the additional type of the predicate).
72
+ */
73
+ export function getMatchingElements<T>(index: SModelIndex<SModelElement>, predicate: ModelFilterPredicate<T>): (SModelElement & T)[] {
74
+ return Array.from(filter(index, predicate));
48
75
  }
49
76
 
50
- export function hasSelectedElements(element: SModelElement): boolean {
51
- return getSelectedElementCount(element) > 0;
77
+ /**
78
+ * Invokes the given model index to retrieve the corresponding model elements for the given set of ids. Ids that
79
+ * have no corresponding element in the index will be ignored.
80
+ * @param index THe model index.
81
+ * @param elementsIDs The element ids.
82
+ * @param guard Optional typeguard. If defined only elements that match the guard will be returned.
83
+ * @returns An array of the model elements that correspond to the given ids and filter predicate.
84
+ */
85
+ export function getElements<S extends SModelElement>(index: SModelIndex<SModelElement>, elementsIDs: string[], guard?: TypeGuard<S>): S[] {
86
+ // Internal filter function that filters out undefined model elements and runs an optional typeguard check.
87
+ const filterFn = (element?: SModelElement): element is S => {
88
+ if (element !== undefined) {
89
+ return guard ? guard(element) : true;
90
+ }
91
+ return false;
92
+ };
93
+ return elementsIDs.map(id => index.getById(id)).filter(filterFn);
52
94
  }
53
-
54
- export function getSelectedElementCount(element: SModelElement): number {
95
+ /**
96
+ * Retrieves the amount of currently selected elements in the given {@link SModelIndex}.
97
+ * @param index The {@link SModelIndex}.
98
+ * @returns The amount of selected elements.
99
+ */
100
+ export function getSelectedElementCount(index: SModelIndex<SModelElement>): number {
55
101
  let selected = 0;
56
- getIndex(element).all()
57
- .filter(isSelected)
58
- .forEach(e => selected = selected + 1);
102
+ forEachElement(index, isSelected, element => selected++);
59
103
  return selected;
60
104
  }
61
105
 
106
+ /**
107
+ * Helper function to check wether an any element is selected in the given {@link SModelIndex}.
108
+ * @param index The {@link SModelIndex}.
109
+ * @returns `true` if at least one element is selected, `false` otherwise.
110
+ */
111
+ export function hasSelectedElements(index: SModelIndex<SModelElement>): boolean {
112
+ return getSelectedElementCount(index) > 0;
113
+ }
114
+
115
+ /**
116
+ * Helper function to check wether an element is defined. Can be used as {@link ModelFilterPredicate}.
117
+ * @param element The element that should be checked.
118
+ * @returns the type predicate for `T`
119
+ */
62
120
  export function isNotUndefined<T>(element: T | undefined): element is T {
63
121
  return element !== undefined;
64
122
  }
65
123
 
66
- export function addCssClasses(root: SModelElement, cssClasses: string[]): void {
67
- if (root.cssClasses === undefined) {
68
- root.cssClasses = [];
69
- }
70
- for (const cssClass of cssClasses) {
71
- if (root.cssClasses.indexOf(cssClass) < 0) {
72
- root.cssClasses.push(cssClass);
73
- }
74
- }
124
+ /**
125
+ * Adds a set of css classes to the given {@link SModelElement}.
126
+ * @param element The element to which the css classes should be added.
127
+ * @param cssClasses The set of css classes as string array.
128
+ */
129
+ export function addCssClasses(element: SModelElement, cssClasses: string[]): void {
130
+ const elementCssClasses: string[] = element.cssClasses ?? [];
131
+ distinctAdd(elementCssClasses, ...cssClasses);
132
+ element.cssClasses = elementCssClasses;
75
133
  }
76
134
 
135
+ /**
136
+ * Removes a set of css classes from the given {@link SModelElement}.
137
+ * @param element The element from which the css classes should be removed.
138
+ * @param cssClasses The set of css classes as string array.
139
+ */
77
140
  export function removeCssClasses(root: SModelElement, cssClasses: string[]): void {
78
- if (root.cssClasses === undefined || root.cssClasses.length === 0) {
141
+ if (!root.cssClasses || root.cssClasses.length === 0) {
79
142
  return;
80
143
  }
81
- for (const cssClass of cssClasses) {
82
- const index = root.cssClasses.indexOf(cssClass);
83
- if (index !== -1) {
84
- root.cssClasses.splice(root.cssClasses.indexOf(cssClass), 1);
85
- }
86
- }
144
+ remove(root.cssClasses, ...cssClasses);
87
145
  }
88
146
 
89
147
  export function isNonRoutableSelectedMovableBoundsAware(element: SModelElement): element is SelectableBoundsAware {
90
148
  return isNonRoutableSelectedBoundsAware(element) && isMoveable(element);
91
149
  }
92
150
 
151
+ /**
152
+ * A typeguard function to check wether a given {@link SModelElement} implements the {@link BoundsAware} model feature,
153
+ * the {@link Selectable} model feature and is actually selected. In addition, the element must not be a {@link SRoutableElement}.
154
+ * @param element The element to check.
155
+ * @returns A type predicate indicating wether the element is of type {@link SelectableBoundsAware}.
156
+ */
93
157
  export function isNonRoutableSelectedBoundsAware(element: SModelElement): element is SelectableBoundsAware {
94
158
  return isBoundsAware(element) && isSelected(element) && !isRoutable(element);
95
159
  }
96
160
 
161
+ /**
162
+ * A type guard function to check wether a given {@link SModelElement} is a {@link SRoutableElement}.
163
+ * @param element The element to check.
164
+ * @returns A type predicate indicating wether the element is a {@link SRoutableElement}.
165
+ */
97
166
  export function isRoutable<T extends SModelElement>(element: T): element is T & SRoutableElement {
98
167
  return element instanceof SRoutableElement && (element as any).routingPoints !== undefined;
99
168
  }
100
169
 
170
+ /**
171
+ * A typeguard function to check wether a given {@link SModelElement} is a {@link SRoutingHandle}.
172
+ * @param element The element to check.
173
+ * @returns A type predicate indicating wether the element is a {@link SRoutingHandle}
174
+ */
101
175
  export function isRoutingHandle(element: SModelElement | undefined): element is SRoutingHandle {
102
176
  return element !== undefined && element instanceof SRoutingHandle;
103
177
  }
104
178
 
105
- export function isSelectableAndBoundsAware(element: SModelElement): element is BoundsAware & Selectable & SModelElement {
179
+ /**
180
+ * A typeguard function to check wether a given {@link SModelElement} implements the {@link Selectable} model feature and
181
+ * the {@link BoundsAware} model feature.
182
+ * @returns A type predicate indicating wether the element is of type {@link SelectableBoundsAware}.
183
+ */
184
+ export function isSelectableAndBoundsAware(element: SModelElement): element is SelectableBoundsAware {
106
185
  return isSelectable(element) && isBoundsAware(element);
107
186
  }
108
187
 
188
+ /**
189
+ * Union type to describe {@link SModelElement}s that implement the {@link Selectable} and {@link BoundsAware} feature.
190
+ */
109
191
  export type SelectableBoundsAware = SModelElement & BoundsAware & Selectable;
110
192
 
193
+ /**
194
+ * Union type to describe {@link SModelElement}s that implement the {@link BoundsAware} feature.
195
+ */
111
196
  export type BoundsAwareModelElement = SModelElement & BoundsAware;
112
197
 
113
- export function toElementAndBounds(element: SModelElement & BoundsAware): ElementAndBounds {
198
+ /**
199
+ * Helper function to translate a given {@link SModelElement} into its corresponding {@link ElementAndBounds} representation.
200
+ * @param element The element to translate.
201
+ * @returns The corresponding {@link ElementAndBounds} for the given element.
202
+ */
203
+ export function toElementAndBounds(element: BoundsAwareModelElement): ElementAndBounds {
114
204
  return {
115
205
  elementId: element.id,
116
206
  newPosition: {
@@ -124,6 +214,12 @@ export function toElementAndBounds(element: SModelElement & BoundsAware): Elemen
124
214
  };
125
215
  }
126
216
 
217
+ /**
218
+ * Helper function to translate a given {@link SRoutableElement} into its corresponding
219
+ * {@ElementAndRoutingPoints ElementAndBounds} representation.
220
+ * @param element The element to translate.
221
+ * @returns The corresponding {@link ElementAndRoutingPoints} for the given element.
222
+ */
127
223
  export function toElementAndRoutingPoints(element: SRoutableElement): ElementAndRoutingPoints {
128
224
  return {
129
225
  elementId: element.id,
@@ -140,6 +236,12 @@ export function hasCompatibleType(input: SModelElement | SModelElementSchema | s
140
236
  return inputType === type ? true : inputType.split(':').includes(type);
141
237
  }
142
238
 
239
+ /**
240
+ * Convenience function to retrieve the model element type from a given input. The input
241
+ * can either be a {@link SModelElement}, {@link SModelElementSchema} or a string.
242
+ * @param input The type input.
243
+ * @returns The corresponding model type as string.
244
+ */
143
245
  export function getElementTypeId(input: SModelElement | SModelElementSchema | string): string {
144
246
  if (typeof input === 'string') {
145
247
  return input as string;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,15 +13,14 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Bounds, Point } from '@eclipse-glsp/protocol';
16
17
  import {
17
- Bounds,
18
18
  BoundsAware,
19
19
  Dimension,
20
20
  findParentByFeature,
21
21
  isAlignable,
22
22
  isViewport,
23
23
  ORIGIN_POINT,
24
- Point,
25
24
  SModelElement,
26
25
  translateBounds,
27
26
  Viewport
@@ -41,7 +40,8 @@ import {
41
40
  * A mouseEvent
42
41
  */
43
42
  export function getAbsolutePosition(target: SModelElement, mouseEvent: MouseEvent): Point {
44
- let xPos = mouseEvent.pageX; let yPos = mouseEvent.pageY;
43
+ let xPos = mouseEvent.pageX;
44
+ let yPos = mouseEvent.pageY;
45
45
  const canvasBounds = target.root.canvasBounds;
46
46
  xPos -= canvasBounds.x;
47
47
  yPos -= canvasBounds.y;
@@ -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 { DefaultTypes } from '@eclipse-glsp/protocol';
16
17
  import { ContainerModule, interfaces } from 'inversify';
17
18
  import {
18
19
  CircularNode,
@@ -45,9 +46,7 @@ import {
45
46
  SvgViewportView,
46
47
  ViewportRootElement
47
48
  } from 'sprotty';
48
-
49
49
  import { GLSPGraph } from '../lib/model';
50
- import { DefaultTypes } from './default-types';
51
50
  import { GEdgeView } from './glsp-edge-view';
52
51
  import { GIssueMarkerView } from './issue-marker-view';
53
52
  import { RoundedCornerNodeView } from './rounded-corner-view';