@eclipse-glsp/client 0.9.0-next.6d10f92e → 0.9.0-next.75608185

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 (620) hide show
  1. package/README.md +2 -1
  2. package/css/command-palette.css +9 -5
  3. package/css/decoration.css +3 -2
  4. package/css/glsp-sprotty.css +16 -7
  5. package/css/tool-palette.css +44 -27
  6. package/lib/base/action-dispatcher.d.ts +18 -2
  7. package/lib/base/action-dispatcher.d.ts.map +1 -1
  8. package/lib/base/action-dispatcher.js +41 -61
  9. package/lib/base/action-dispatcher.js.map +1 -1
  10. package/lib/base/actions/focus-change-action.d.ts +1 -1
  11. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  12. package/lib/base/actions/focus-change-action.js +4 -5
  13. package/lib/base/actions/focus-change-action.js.map +1 -1
  14. package/lib/base/{args.d.ts → argumentable.d.ts} +4 -6
  15. package/lib/base/argumentable.d.ts.map +1 -0
  16. package/lib/base/{args.js → argumentable.js} +1 -1
  17. package/lib/base/argumentable.js.map +1 -0
  18. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  19. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  20. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.d.ts +5 -5
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  23. package/lib/base/auto-complete/auto-complete-widget.js +121 -152
  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 +49 -65
  28. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  29. package/lib/base/command-stack.d.ts +1 -1
  30. package/lib/base/command-stack.d.ts.map +1 -1
  31. package/lib/base/command-stack.js +19 -37
  32. package/lib/base/command-stack.js.map +1 -1
  33. package/lib/base/container-modules.d.ts +40 -0
  34. package/lib/base/container-modules.d.ts.map +1 -0
  35. package/lib/base/container-modules.js +84 -0
  36. package/lib/base/container-modules.js.map +1 -0
  37. package/lib/base/di.config.d.ts +13 -3
  38. package/lib/base/di.config.d.ts.map +1 -1
  39. package/lib/base/di.config.js +50 -33
  40. package/lib/base/di.config.js.map +1 -1
  41. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  42. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  43. package/lib/base/drag-aware-mouse-listener.js +23 -62
  44. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  45. package/lib/base/editor-context-service.d.ts +42 -0
  46. package/lib/base/editor-context-service.d.ts.map +1 -0
  47. package/lib/base/editor-context-service.js +109 -0
  48. package/lib/base/editor-context-service.js.map +1 -0
  49. package/lib/base/focus-tracker.d.ts +17 -1
  50. package/lib/base/focus-tracker.d.ts.map +1 -1
  51. package/lib/base/focus-tracker.js +19 -39
  52. package/lib/base/focus-tracker.js.map +1 -1
  53. package/lib/base/model/model-registry.d.ts +5 -0
  54. package/lib/base/model/model-registry.d.ts.map +1 -0
  55. package/lib/base/model/model-registry.js +43 -0
  56. package/lib/base/model/model-registry.js.map +1 -0
  57. package/lib/base/model/update-model-command.d.ts +20 -6
  58. package/lib/base/model/update-model-command.d.ts.map +1 -1
  59. package/lib/base/model/update-model-command.js +69 -94
  60. package/lib/base/model/update-model-command.js.map +1 -1
  61. package/lib/base/model-initialization-constraint.d.ts +17 -2
  62. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  63. package/lib/base/model-initialization-constraint.js +34 -54
  64. package/lib/base/model-initialization-constraint.js.map +1 -1
  65. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  66. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  67. package/lib/base/selection-clearing-mouse-listener.js +11 -28
  68. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  69. package/lib/base/source-uri-aware.js +2 -5
  70. package/lib/base/source-uri-aware.js.map +1 -1
  71. package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
  72. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  73. package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
  74. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  75. package/lib/base/types.d.ts +2 -1
  76. package/lib/base/types.d.ts.map +1 -1
  77. package/lib/base/types.js +22 -21
  78. package/lib/base/types.js.map +1 -1
  79. package/lib/base/view/view-registry.d.ts +5 -0
  80. package/lib/base/view/view-registry.d.ts.map +1 -0
  81. package/lib/base/view/view-registry.js +43 -0
  82. package/lib/base/view/view-registry.js.map +1 -0
  83. package/lib/features/change-bounds/model.d.ts +4 -2
  84. package/lib/features/change-bounds/model.d.ts.map +1 -1
  85. package/lib/features/change-bounds/model.js +21 -32
  86. package/lib/features/change-bounds/model.js.map +1 -1
  87. package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
  88. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  89. package/lib/features/change-bounds/movement-restrictor.js +34 -46
  90. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  91. package/lib/features/change-bounds/snap.d.ts +17 -1
  92. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  93. package/lib/features/change-bounds/snap.js +13 -39
  94. package/lib/features/change-bounds/snap.js.map +1 -1
  95. package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
  96. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  97. package/lib/features/command-palette/command-palette-tool.js +30 -38
  98. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  99. package/lib/features/command-palette/di.config.d.ts +2 -2
  100. package/lib/features/command-palette/di.config.js +6 -6
  101. package/lib/features/command-palette/di.config.js.map +1 -1
  102. package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
  103. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  104. package/lib/features/command-palette/server-command-palette-provider.js +31 -36
  105. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  106. package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
  107. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  108. package/lib/features/context-menu/delete-element-context-menu.js +24 -72
  109. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  110. package/lib/features/context-menu/di.config.d.ts +2 -2
  111. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  112. package/lib/features/context-menu/di.config.js +14 -18
  113. package/lib/features/context-menu/di.config.js.map +1 -1
  114. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  116. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
  117. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  118. package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
  119. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  120. package/lib/features/context-menu/server-context-menu-provider.js +31 -32
  121. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  122. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  123. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  124. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  125. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  126. package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
  127. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  128. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  129. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  130. package/lib/features/copy-paste/di.config.d.ts +2 -2
  131. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  132. package/lib/features/copy-paste/di.config.js +11 -11
  133. package/lib/features/copy-paste/di.config.js.map +1 -1
  134. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  135. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  136. package/lib/features/decoration/decoration-placer.js +14 -47
  137. package/lib/features/decoration/decoration-placer.js.map +1 -1
  138. package/lib/features/decoration/di.config.d.ts +2 -2
  139. package/lib/features/decoration/di.config.d.ts.map +1 -1
  140. package/lib/features/decoration/di.config.js +4 -6
  141. package/lib/features/decoration/di.config.js.map +1 -1
  142. package/lib/features/edit-label/di.config.d.ts +1 -1
  143. package/lib/features/edit-label/di.config.js +7 -7
  144. package/lib/features/edit-label/di.config.js.map +1 -1
  145. package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
  146. package/lib/features/edit-label/edit-label-tool.js +20 -43
  147. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  148. package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
  149. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  150. package/lib/features/edit-label/edit-label-validator.js +40 -62
  151. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  152. package/lib/features/hints/di.config.d.ts +1 -16
  153. package/lib/features/hints/di.config.d.ts.map +1 -1
  154. package/lib/features/hints/di.config.js +9 -9
  155. package/lib/features/hints/di.config.js.map +1 -1
  156. package/lib/features/hints/model.d.ts +3 -2
  157. package/lib/features/hints/model.d.ts.map +1 -1
  158. package/lib/features/hints/model.js +2 -2
  159. package/lib/features/hints/model.js.map +1 -1
  160. package/lib/features/hints/type-hints.d.ts +21 -49
  161. package/lib/features/hints/type-hints.d.ts.map +1 -1
  162. package/lib/features/hints/type-hints.js +83 -142
  163. package/lib/features/hints/type-hints.js.map +1 -1
  164. package/lib/features/hover/di.config.d.ts +2 -2
  165. package/lib/features/hover/di.config.d.ts.map +1 -1
  166. package/lib/features/hover/di.config.js +8 -8
  167. package/lib/features/hover/di.config.js.map +1 -1
  168. package/lib/features/hover/hover.d.ts +18 -2
  169. package/lib/features/hover/hover.d.ts.map +1 -1
  170. package/lib/features/hover/hover.js +37 -75
  171. package/lib/features/hover/hover.js.map +1 -1
  172. package/lib/features/layout/di.config.d.ts +6 -2
  173. package/lib/features/layout/di.config.d.ts.map +1 -1
  174. package/lib/features/layout/di.config.js +47 -7
  175. package/lib/features/layout/di.config.js.map +1 -1
  176. package/lib/features/layout/freeform-layout.d.ts +16 -0
  177. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  178. package/lib/features/layout/freeform-layout.js +107 -0
  179. package/lib/features/layout/freeform-layout.js.map +1 -0
  180. package/lib/features/layout/layout-commands.d.ts +26 -10
  181. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  182. package/lib/features/layout/layout-commands.js +189 -264
  183. package/lib/features/layout/layout-commands.js.map +1 -1
  184. package/lib/features/layout/layout-commands.spec.d.ts +2 -17
  185. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  186. package/lib/features/layout/layout-commands.spec.js +124 -117
  187. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  188. package/lib/features/layout/vbox-layout.d.ts +25 -0
  189. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  190. package/lib/features/layout/vbox-layout.js +188 -0
  191. package/lib/features/layout/vbox-layout.js.map +1 -0
  192. package/lib/features/model-source-watcher/di.config.d.ts +1 -16
  193. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  194. package/lib/features/model-source-watcher/di.config.js +7 -7
  195. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  196. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  197. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  198. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  199. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  200. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  201. package/lib/features/mouse-tool/di.config.js +5 -5
  202. package/lib/features/mouse-tool/di.config.js.map +1 -1
  203. package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
  204. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  205. package/lib/features/mouse-tool/mouse-tool.js +74 -217
  206. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  207. package/lib/features/navigation/di.config.d.ts +1 -16
  208. package/lib/features/navigation/di.config.d.ts.map +1 -1
  209. package/lib/features/navigation/di.config.js +11 -10
  210. package/lib/features/navigation/di.config.js.map +1 -1
  211. package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
  212. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  213. package/lib/features/navigation/navigation-action-handler.js +118 -255
  214. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  215. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  216. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  217. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  218. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  219. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
  220. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  221. package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
  222. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  223. package/lib/features/rank/model.d.ts +2 -2
  224. package/lib/features/rank/model.d.ts.map +1 -1
  225. package/lib/features/rank/model.js +2 -2
  226. package/lib/features/rank/model.js.map +1 -1
  227. package/lib/features/reconnect/model.d.ts +2 -2
  228. package/lib/features/reconnect/model.d.ts.map +1 -1
  229. package/lib/features/reconnect/model.js +10 -28
  230. package/lib/features/reconnect/model.js.map +1 -1
  231. package/lib/features/save/di.config.d.ts +2 -2
  232. package/lib/features/save/di.config.d.ts.map +1 -1
  233. package/lib/features/save/di.config.js +6 -6
  234. package/lib/features/save/di.config.js.map +1 -1
  235. package/lib/features/save/model.d.ts +1 -1
  236. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
  237. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  238. package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
  239. package/lib/features/save/save-keylistener.js.map +1 -0
  240. package/lib/features/select/di.config.d.ts +1 -1
  241. package/lib/features/select/di.config.js +11 -11
  242. package/lib/features/select/di.config.js.map +1 -1
  243. package/lib/features/select/select-feedback-action.d.ts +1 -1
  244. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  245. package/lib/features/select/select-feedback-action.js +45 -71
  246. package/lib/features/select/select-feedback-action.js.map +1 -1
  247. package/lib/features/select/select-mouse-listener.d.ts +2 -2
  248. package/lib/features/select/select-mouse-listener.js +7 -23
  249. package/lib/features/select/select-mouse-listener.js.map +1 -1
  250. package/lib/features/select/selection-service.d.ts +19 -3
  251. package/lib/features/select/selection-service.d.ts.map +1 -1
  252. package/lib/features/select/selection-service.js +134 -236
  253. package/lib/features/select/selection-service.js.map +1 -1
  254. package/lib/features/select/selection-service.spec.js +96 -138
  255. package/lib/features/select/selection-service.spec.js.map +1 -1
  256. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
  257. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  258. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
  259. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  260. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
  261. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  262. package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
  263. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  264. package/lib/features/tool-feedback/css-feedback.d.ts +21 -3
  265. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  266. package/lib/features/tool-feedback/css-feedback.js +37 -81
  267. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  268. package/lib/features/tool-feedback/di.config.d.ts +2 -2
  269. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  270. package/lib/features/tool-feedback/di.config.js +27 -27
  271. package/lib/features/tool-feedback/di.config.js.map +1 -1
  272. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
  273. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  274. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
  275. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  276. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
  277. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  278. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  279. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  280. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +18 -2
  281. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  282. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
  283. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  284. package/lib/features/tool-feedback/model.d.ts +2 -2
  285. package/lib/features/tool-feedback/model.js +11 -27
  286. package/lib/features/tool-feedback/model.js.map +1 -1
  287. package/lib/features/tool-feedback/view.d.ts +22 -6
  288. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  289. package/lib/features/tool-feedback/view.js +30 -51
  290. package/lib/features/tool-feedback/view.js.map +1 -1
  291. package/lib/features/tool-palette/di.config.d.ts +2 -2
  292. package/lib/features/tool-palette/di.config.js +6 -6
  293. package/lib/features/tool-palette/di.config.js.map +1 -1
  294. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  295. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  296. package/lib/features/tool-palette/palette-item.js +6 -6
  297. package/lib/features/tool-palette/palette-item.js.map +1 -1
  298. package/lib/features/tool-palette/tool-palette.d.ts +22 -6
  299. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  300. package/lib/features/tool-palette/tool-palette.js +225 -291
  301. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  302. package/lib/features/tools/base-glsp-tool.d.ts +21 -5
  303. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  304. package/lib/features/tools/base-glsp-tool.js +37 -59
  305. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  306. package/lib/features/tools/change-bounds-tool.d.ts +26 -9
  307. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  308. package/lib/features/tools/change-bounds-tool.js +192 -241
  309. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  310. package/lib/features/tools/delete-tool.d.ts +20 -4
  311. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  312. package/lib/features/tools/delete-tool.js +71 -104
  313. package/lib/features/tools/delete-tool.js.map +1 -1
  314. package/lib/features/tools/di.config.d.ts +1 -16
  315. package/lib/features/tools/di.config.d.ts.map +1 -1
  316. package/lib/features/tools/di.config.js +19 -19
  317. package/lib/features/tools/di.config.js.map +1 -1
  318. package/lib/features/tools/edge-creation-tool.d.ts +20 -5
  319. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  320. package/lib/features/tools/edge-creation-tool.js +64 -89
  321. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  322. package/lib/features/tools/edge-edit-tool.d.ts +22 -6
  323. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  324. package/lib/features/tools/edge-edit-tool.js +125 -189
  325. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  326. package/lib/features/tools/marquee-mouse-tool.d.ts +21 -4
  327. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  328. package/lib/features/tools/marquee-mouse-tool.js +155 -160
  329. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  330. package/lib/features/tools/marquee-tool.d.ts +18 -2
  331. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  332. package/lib/features/tools/marquee-tool.js +32 -73
  333. package/lib/features/tools/marquee-tool.js.map +1 -1
  334. package/lib/features/tools/model.d.ts +1 -1
  335. package/lib/features/tools/model.d.ts.map +1 -1
  336. package/lib/features/tools/model.js +6 -24
  337. package/lib/features/tools/model.js.map +1 -1
  338. package/lib/features/tools/node-creation-tool.d.ts +20 -5
  339. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  340. package/lib/features/tools/node-creation-tool.js +60 -90
  341. package/lib/features/tools/node-creation-tool.js.map +1 -1
  342. package/lib/features/tools/view.d.ts +3 -18
  343. package/lib/features/tools/view.d.ts.map +1 -1
  344. package/lib/features/tools/view.js +21 -39
  345. package/lib/features/tools/view.js.map +1 -1
  346. package/lib/features/validation/di.config.d.ts +1 -1
  347. package/lib/features/validation/di.config.js +12 -12
  348. package/lib/features/validation/di.config.js.map +1 -1
  349. package/lib/features/validation/issue-marker.d.ts +3 -3
  350. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  351. package/lib/features/validation/issue-marker.js +18 -56
  352. package/lib/features/validation/issue-marker.js.map +1 -1
  353. package/lib/features/validation/marker-navigator.d.ts +19 -3
  354. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  355. package/lib/features/validation/marker-navigator.js +131 -164
  356. package/lib/features/validation/marker-navigator.js.map +1 -1
  357. package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
  358. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  359. package/lib/features/validation/marker-navigator.spec.js +84 -77
  360. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  361. package/lib/features/validation/validate.d.ts +20 -31
  362. package/lib/features/validation/validate.d.ts.map +1 -1
  363. package/lib/features/validation/validate.js +148 -299
  364. package/lib/features/validation/validate.js.map +1 -1
  365. package/lib/features/viewport/di.config.d.ts +16 -1
  366. package/lib/features/viewport/di.config.d.ts.map +1 -1
  367. package/lib/features/viewport/di.config.js +10 -10
  368. package/lib/features/viewport/di.config.js.map +1 -1
  369. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +3 -2
  370. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  371. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
  372. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  373. package/lib/index.d.ts +31 -35
  374. package/lib/index.d.ts.map +1 -1
  375. package/lib/index.js +32 -35
  376. package/lib/index.js.map +1 -1
  377. package/lib/lib/model.d.ts +3 -3
  378. package/lib/lib/model.d.ts.map +1 -1
  379. package/lib/lib/model.js +11 -27
  380. package/lib/lib/model.js.map +1 -1
  381. package/lib/model-source/glsp-diagram-server.d.ts +4 -6
  382. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  383. package/lib/model-source/glsp-diagram-server.js +63 -122
  384. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  385. package/lib/protocol-reexport.d.ts +45 -0
  386. package/lib/protocol-reexport.d.ts.map +1 -0
  387. package/lib/protocol-reexport.js +75 -0
  388. package/lib/protocol-reexport.js.map +1 -0
  389. package/lib/utils/argument-utils.d.ts +50 -0
  390. package/lib/utils/argument-utils.d.ts.map +1 -0
  391. package/lib/utils/argument-utils.js +110 -0
  392. package/lib/utils/argument-utils.js.map +1 -0
  393. package/lib/utils/html-utils.js +2 -2
  394. package/lib/utils/html-utils.js.map +1 -1
  395. package/lib/utils/layout-utils.d.ts +4 -3
  396. package/lib/utils/layout-utils.d.ts.map +1 -1
  397. package/lib/utils/layout-utils.js +5 -5
  398. package/lib/utils/layout-utils.js.map +1 -1
  399. package/lib/utils/marker.d.ts +1 -39
  400. package/lib/utils/marker.d.ts.map +1 -1
  401. package/lib/utils/marker.js +14 -61
  402. package/lib/utils/marker.js.map +1 -1
  403. package/lib/utils/smodel-util.d.ts +7 -17
  404. package/lib/utils/smodel-util.d.ts.map +1 -1
  405. package/lib/utils/smodel-util.js +18 -67
  406. package/lib/utils/smodel-util.js.map +1 -1
  407. package/lib/utils/viewpoint-util.d.ts +3 -2
  408. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  409. package/lib/utils/viewpoint-util.js +15 -30
  410. package/lib/utils/viewpoint-util.js.map +1 -1
  411. package/{src/features/undo-redo/model.ts → lib/views/base-view-module.d.ts} +9 -11
  412. package/lib/views/base-view-module.d.ts.map +1 -0
  413. package/lib/views/base-view-module.js +59 -0
  414. package/lib/views/base-view-module.js.map +1 -0
  415. package/lib/views/compartments.d.ts +6 -0
  416. package/lib/views/compartments.d.ts.map +1 -0
  417. package/lib/views/compartments.js +43 -0
  418. package/lib/views/compartments.js.map +1 -0
  419. package/lib/views/default-types.d.ts +37 -0
  420. package/lib/views/default-types.d.ts.map +1 -0
  421. package/lib/views/default-types.js +47 -0
  422. package/lib/views/default-types.js.map +1 -0
  423. package/lib/views/glsp-edge-view.d.ts +27 -0
  424. package/lib/views/glsp-edge-view.d.ts.map +1 -0
  425. package/lib/views/glsp-edge-view.js +55 -0
  426. package/lib/views/glsp-edge-view.js.map +1 -0
  427. package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +9 -10
  428. package/lib/views/index.d.ts.map +1 -0
  429. package/lib/views/index.js +35 -0
  430. package/lib/views/index.js.map +1 -0
  431. package/lib/views/issue-marker-view.d.ts +9 -0
  432. package/lib/views/issue-marker-view.d.ts.map +1 -0
  433. package/lib/views/issue-marker-view.js +68 -0
  434. package/lib/views/issue-marker-view.js.map +1 -0
  435. package/lib/views/rounded-corner-view.d.ts +13 -0
  436. package/lib/views/rounded-corner-view.d.ts.map +1 -0
  437. package/lib/views/rounded-corner-view.js +82 -0
  438. package/lib/views/rounded-corner-view.js.map +1 -0
  439. package/lib/views/rounded-corner.d.ts +38 -0
  440. package/lib/views/rounded-corner.d.ts.map +1 -0
  441. package/lib/views/rounded-corner.js +62 -0
  442. package/lib/views/rounded-corner.js.map +1 -0
  443. package/package.json +24 -32
  444. package/src/base/action-dispatcher.ts +7 -8
  445. package/src/base/actions/focus-change-action.ts +2 -2
  446. package/src/base/{args.ts → argumentable.ts} +3 -4
  447. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  448. package/src/base/auto-complete/auto-complete-widget.ts +66 -48
  449. package/src/base/auto-complete/validation-decorator.ts +21 -15
  450. package/src/base/command-stack.ts +4 -7
  451. package/src/base/container-modules.ts +113 -0
  452. package/src/base/di.config.ts +44 -27
  453. package/src/base/drag-aware-mouse-listener.ts +7 -8
  454. package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
  455. package/src/base/focus-tracker.ts +4 -6
  456. package/src/base/model/model-registry.ts +31 -0
  457. package/src/base/model/update-model-command.ts +14 -22
  458. package/src/base/model-initialization-constraint.ts +16 -11
  459. package/src/base/selection-clearing-mouse-listener.ts +4 -3
  460. package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
  461. package/src/base/types.ts +22 -21
  462. package/src/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
  463. package/src/features/change-bounds/model.ts +23 -13
  464. package/src/features/change-bounds/movement-restrictor.ts +28 -18
  465. package/src/features/change-bounds/snap.ts +6 -5
  466. package/src/features/command-palette/command-palette-tool.ts +4 -4
  467. package/src/features/command-palette/di.config.ts +7 -7
  468. package/src/features/command-palette/server-command-palette-provider.ts +16 -14
  469. package/src/features/context-menu/delete-element-context-menu.ts +10 -11
  470. package/src/features/context-menu/di.config.ts +10 -12
  471. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
  472. package/src/features/context-menu/server-context-menu-provider.ts +13 -10
  473. package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
  474. package/src/features/copy-paste/copy-paste-handler.ts +30 -20
  475. package/src/features/copy-paste/di.config.ts +6 -7
  476. package/src/features/decoration/decoration-placer.ts +6 -15
  477. package/src/features/decoration/di.config.ts +4 -6
  478. package/src/features/edit-label/di.config.ts +5 -5
  479. package/src/features/edit-label/edit-label-tool.ts +4 -4
  480. package/src/features/edit-label/edit-label-validator.ts +18 -19
  481. package/src/features/hints/di.config.ts +6 -7
  482. package/src/features/hints/model.ts +7 -6
  483. package/src/features/hints/type-hints.ts +46 -113
  484. package/src/features/hover/di.config.ts +6 -7
  485. package/src/features/hover/hover.ts +11 -14
  486. package/src/features/layout/di.config.ts +32 -6
  487. package/src/features/layout/freeform-layout.ts +133 -0
  488. package/src/features/layout/layout-commands.spec.ts +104 -85
  489. package/src/features/layout/layout-commands.ts +65 -54
  490. package/src/features/layout/vbox-layout.ts +256 -0
  491. package/src/features/model-source-watcher/di.config.ts +5 -6
  492. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
  493. package/src/features/mouse-tool/di.config.ts +4 -4
  494. package/src/features/mouse-tool/mouse-tool.ts +44 -32
  495. package/src/features/navigation/di.config.ts +6 -12
  496. package/src/features/navigation/navigation-action-handler.ts +46 -78
  497. package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
  498. package/src/features/navigation/navigation-target-resolver.ts +16 -94
  499. package/src/features/rank/model.ts +3 -3
  500. package/src/features/reconnect/model.ts +9 -11
  501. package/src/features/save/di.config.ts +4 -5
  502. package/src/features/save/model.ts +1 -1
  503. package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
  504. package/src/features/select/di.config.ts +6 -6
  505. package/src/features/select/select-feedback-action.ts +6 -8
  506. package/src/features/select/select-mouse-listener.ts +2 -2
  507. package/src/features/select/selection-service.spec.ts +25 -19
  508. package/src/features/select/selection-service.ts +25 -22
  509. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
  510. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
  511. package/src/features/tool-feedback/css-feedback.ts +16 -13
  512. package/src/features/tool-feedback/di.config.ts +12 -15
  513. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
  514. package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
  515. package/src/features/tool-feedback/marquee-tool-feedback.ts +12 -12
  516. package/src/features/tool-feedback/model.ts +2 -3
  517. package/src/features/tool-feedback/view.tsx +20 -13
  518. package/src/features/tool-palette/di.config.ts +5 -5
  519. package/src/features/tool-palette/palette-item.ts +5 -7
  520. package/src/features/tool-palette/tool-palette.ts +118 -110
  521. package/src/features/tools/base-glsp-tool.ts +12 -12
  522. package/src/features/tools/change-bounds-tool.ts +83 -53
  523. package/src/features/tools/delete-tool.ts +23 -20
  524. package/src/features/tools/di.config.ts +16 -17
  525. package/src/features/tools/edge-creation-tool.ts +20 -25
  526. package/src/features/tools/edge-edit-tool.ts +43 -46
  527. package/src/features/tools/marquee-mouse-tool.ts +109 -62
  528. package/src/features/tools/marquee-tool.ts +6 -6
  529. package/src/features/tools/model.ts +1 -2
  530. package/src/features/tools/node-creation-tool.ts +16 -23
  531. package/src/features/tools/view.tsx +21 -15
  532. package/src/features/validation/di.config.ts +5 -5
  533. package/src/features/validation/issue-marker.ts +4 -5
  534. package/src/features/validation/marker-navigator.spec.ts +38 -33
  535. package/src/features/validation/marker-navigator.ts +39 -26
  536. package/src/features/validation/validate.ts +25 -59
  537. package/src/features/viewport/di.config.ts +4 -4
  538. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  539. package/src/index.ts +52 -38
  540. package/src/lib/model.ts +4 -4
  541. package/src/model-source/glsp-diagram-server.ts +19 -33
  542. package/src/protocol-reexport.ts +64 -0
  543. package/src/utils/argument-utils.ts +130 -0
  544. package/src/utils/layout-utils.ts +19 -11
  545. package/src/utils/marker.ts +8 -32
  546. package/src/utils/smodel-util.ts +28 -22
  547. package/src/utils/viewpoint-util.ts +5 -6
  548. package/src/views/base-view-module.ts +98 -0
  549. package/src/views/compartments.tsx +37 -0
  550. package/src/views/default-types.ts +48 -0
  551. package/src/views/glsp-edge-view.tsx +79 -0
  552. package/src/views/index.ts +22 -0
  553. package/src/views/issue-marker-view.tsx +65 -0
  554. package/src/views/rounded-corner-view.tsx +103 -0
  555. package/src/views/rounded-corner.ts +87 -0
  556. package/lib/base/actions/context-actions.d.ts +0 -36
  557. package/lib/base/actions/context-actions.d.ts.map +0 -1
  558. package/lib/base/actions/context-actions.js +0 -51
  559. package/lib/base/actions/context-actions.js.map +0 -1
  560. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  561. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  562. package/lib/base/actions/edit-mode-action.js +0 -56
  563. package/lib/base/actions/edit-mode-action.js.map +0 -1
  564. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  565. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  566. package/lib/base/actions/edit-validation-actions.js +0 -82
  567. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  568. package/lib/base/actions/protocol-actions.d.ts +0 -41
  569. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  570. package/lib/base/actions/protocol-actions.js +0 -151
  571. package/lib/base/actions/protocol-actions.js.map +0 -1
  572. package/lib/base/args.d.ts.map +0 -1
  573. package/lib/base/args.js.map +0 -1
  574. package/lib/base/editor-context.d.ts +0 -46
  575. package/lib/base/editor-context.d.ts.map +0 -1
  576. package/lib/base/editor-context.js +0 -174
  577. package/lib/base/editor-context.js.map +0 -1
  578. package/lib/base/operations/operation.d.ts +0 -129
  579. package/lib/base/operations/operation.d.ts.map +0 -1
  580. package/lib/base/operations/operation.js +0 -201
  581. package/lib/base/operations/operation.js.map +0 -1
  582. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  583. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  584. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  585. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  586. package/lib/features/decoration/view.d.ts +0 -8
  587. package/lib/features/decoration/view.d.ts.map +0 -1
  588. package/lib/features/decoration/view.js +0 -80
  589. package/lib/features/decoration/view.js.map +0 -1
  590. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  591. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  592. package/lib/features/hints/request-type-hints-action.js +0 -30
  593. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  594. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  595. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  596. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  597. package/lib/features/save/save.d.ts.map +0 -1
  598. package/lib/features/save/save.js +0 -62
  599. package/lib/features/save/save.js.map +0 -1
  600. package/lib/features/undo-redo/model.d.ts.map +0 -1
  601. package/lib/features/undo-redo/model.js +0 -22
  602. package/lib/features/undo-redo/model.js.map +0 -1
  603. package/lib/model-source/glsp-server-status.d.ts +0 -30
  604. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  605. package/lib/model-source/glsp-server-status.js +0 -61
  606. package/lib/model-source/glsp-server-status.js.map +0 -1
  607. package/lib/utils/array-utils.d.ts +0 -28
  608. package/lib/utils/array-utils.d.ts.map +0 -1
  609. package/lib/utils/array-utils.js +0 -61
  610. package/lib/utils/array-utils.js.map +0 -1
  611. package/src/base/actions/context-actions.ts +0 -43
  612. package/src/base/actions/edit-mode-action.ts +0 -33
  613. package/src/base/actions/edit-validation-actions.ts +0 -102
  614. package/src/base/actions/protocol-actions.ts +0 -82
  615. package/src/base/operations/operation.ts +0 -148
  616. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  617. package/src/features/decoration/view.tsx +0 -54
  618. package/src/features/hints/request-type-hints-action.ts +0 -36
  619. package/src/model-source/glsp-server-status.ts +0 -38
  620. package/src/utils/array-utils.ts +0 -55
@@ -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,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 { inject, injectable } from "inversify";
16
+ import { Action, EdgeTypeHint, isSetTypeHintsAction, ShapeTypeHint, TypeHint } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
17
18
  import {
18
- Action,
19
19
  CommandExecutionContext,
20
20
  CommandReturn,
21
21
  Connectable,
@@ -28,81 +28,17 @@ import {
28
28
  moveFeature,
29
29
  SEdge,
30
30
  SModelElement,
31
- SModelElementSchema,
32
31
  SModelRoot,
33
32
  SShapeElement,
34
33
  TYPES
35
- } from "sprotty";
36
-
37
- import { GLSP_TYPES } from "../../base/types";
38
- import { getElementTypeId, hasCompatibleType } from "../../utils/smodel-util";
39
- import { resizeFeature } from "../change-bounds/model";
40
- import { reconnectFeature } from "../reconnect/model";
41
- import { IFeedbackActionDispatcher } from "../tool-feedback/feedback-action-dispatcher";
42
- import { FeedbackCommand } from "../tool-feedback/model";
43
- import { Containable, containerFeature, reparentFeature } from "./model";
44
- import { isSetTypeHintsAction } from "./request-type-hints-action";
45
-
46
- export abstract class TypeHint {
47
- /**
48
- The id of the element.
49
- */
50
- readonly elementTypeId: string;
51
-
52
- /**
53
- * Specifies whether the element can be relocated.
54
- */
55
- readonly repositionable: boolean;
56
-
57
- /**
58
- * Specifices wheter the element can be deleted
59
- */
60
- readonly deletable: boolean;
61
- }
62
-
63
- export class ShapeTypeHint extends TypeHint {
64
- /**
65
- * Specifies whether the element can be resized.
66
- */
67
- readonly resizable: boolean;
68
-
69
- /**
70
- * Specifies whether the element can be moved to another parent
71
- */
72
- readonly reparentable: boolean;
73
-
74
- /**
75
- * The types of elements that can be contained by this element (if any)
76
- */
77
- readonly containableElementTypeIds?: string[];
78
- }
79
-
80
- export class EdgeTypeHint extends TypeHint {
81
- /**
82
- * Specifies whether the routing of this element can be changed.
83
- */
84
- readonly routable: boolean;
85
-
86
- /**
87
- * Allowed source element types for this edge type
88
- */
89
- readonly sourceElementTypeIds: string[];
90
-
91
- /**
92
- * Allowed targe element types for this edge type
93
- */
94
- readonly targetElementTypeIds: string[];
95
-
96
- isAllowedSource(input: SModelElement | SModelElementSchema | string): boolean {
97
- const type = getElementTypeId(input);
98
- return this.sourceElementTypeIds.includes(type);
99
-
100
- }
101
- isAllowedTarget(input: SModelElement | SModelElementSchema | string): boolean {
102
- const type = getElementTypeId(input);
103
- return this.targetElementTypeIds.includes(type);
104
- }
105
- }
34
+ } from 'sprotty';
35
+ import { GLSP_TYPES } from '../../base/types';
36
+ import { getElementTypeId, hasCompatibleType } from '../../utils/smodel-util';
37
+ import { resizeFeature } from '../change-bounds/model';
38
+ import { reconnectFeature } from '../reconnect/model';
39
+ import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
40
+ import { FeedbackCommand } from '../tool-feedback/model';
41
+ import { Containable, containerFeature, reparentFeature } from './model';
106
42
 
107
43
  @injectable()
108
44
  export class ApplyTypeHintsAction implements Action {
@@ -111,8 +47,7 @@ export class ApplyTypeHintsAction implements Action {
111
47
 
112
48
  @injectable()
113
49
  export class ApplyTypeHintsCommand extends FeedbackCommand {
114
-
115
- public static KIND = "applyTypeHints";
50
+ public static KIND = 'applyTypeHints';
116
51
  public readonly priority = 10;
117
52
 
118
53
  @inject(GLSP_TYPES.ITypeHintProvider) protected typeHintProvider: ITypeHintProvider;
@@ -122,19 +57,17 @@ export class ApplyTypeHintsCommand extends FeedbackCommand {
122
57
  }
123
58
 
124
59
  execute(context: CommandExecutionContext): CommandReturn {
125
- context.root.index.all()
126
- .forEach(element => {
127
- if (element instanceof SShapeElement || element instanceof SModelRoot) {
128
- this.applyShapeTypeHint(element);
129
-
130
- } else if (element instanceof SEdge) {
131
- return this.applyEdgeTypeHint(element);
132
- }
133
- });
60
+ context.root.index.all().forEach(element => {
61
+ if (element instanceof SShapeElement || element instanceof SModelRoot) {
62
+ this.applyShapeTypeHint(element);
63
+ } else if (element instanceof SEdge) {
64
+ return this.applyEdgeTypeHint(element);
65
+ }
66
+ });
134
67
  return context.root;
135
68
  }
136
69
 
137
- protected applyEdgeTypeHint(element: SModelElement) {
70
+ protected applyEdgeTypeHint(element: SModelElement): void {
138
71
  const hint = this.typeHintProvider.getEdgeTypeHint(element);
139
72
  if (hint && isModifiableFetureSet(element.features)) {
140
73
  addOrRemove(element.features, deletableFeature, hint.deletable);
@@ -143,7 +76,7 @@ export class ApplyTypeHintsCommand extends FeedbackCommand {
143
76
  }
144
77
  }
145
78
 
146
- protected applyShapeTypeHint(element: SModelElement) {
79
+ protected applyShapeTypeHint(element: SModelElement): void {
147
80
  const hint = this.typeHintProvider.getShapeTypeHint(element);
148
81
  if (hint && isModifiableFetureSet(element.features)) {
149
82
  addOrRemove(element.features, deletableFeature, hint.deletable);
@@ -156,8 +89,8 @@ export class ApplyTypeHintsCommand extends FeedbackCommand {
156
89
  Object.assign(element, containable);
157
90
 
158
91
  addOrRemove(element.features, connectableFeature, true);
159
- const validSourceEdges = this.typeHintProvider.getValidEdgeElementTypes(element, "source");
160
- const validTargetEdges = this.typeHintProvider.getValidEdgeElementTypes(element, "target");
92
+ const validSourceEdges = this.typeHintProvider.getValidEdgeElementTypes(element, 'source');
93
+ const validTargetEdges = this.typeHintProvider.getValidEdgeElementTypes(element, 'target');
161
94
  const connectable = createConnectable(validSourceEdges, validTargetEdges);
162
95
  Object.assign(element, connectable);
163
96
  }
@@ -167,22 +100,18 @@ export class ApplyTypeHintsCommand extends FeedbackCommand {
167
100
  function createConnectable(validSourceEdges: string[], validTargetEdges: string[]): Connectable {
168
101
  return {
169
102
  canConnect: (routable, role) =>
170
- role === "source" ?
171
- validSourceEdges.includes(routable.type) :
172
- validTargetEdges.includes(routable.type)
103
+ role === 'source' ? validSourceEdges.includes(routable.type) : validTargetEdges.includes(routable.type)
173
104
  };
174
105
  }
175
106
 
176
107
  function createContainable(hint: ShapeTypeHint): Containable {
177
108
  return {
178
- isContainableElement: (element) =>
179
- hint.containableElementTypeIds ?
180
- hint.containableElementTypeIds.includes(getElementTypeId(element)) :
181
- false
109
+ isContainableElement: element =>
110
+ hint.containableElementTypeIds ? hint.containableElementTypeIds.includes(getElementTypeId(element)) : false
182
111
  };
183
112
  }
184
113
 
185
- function addOrRemove(features: Set<symbol>, feature: symbol, add: boolean) {
114
+ function addOrRemove(features: Set<symbol>, feature: symbol, add: boolean): void {
186
115
  if (add && !features.has(feature)) {
187
116
  features.add(feature);
188
117
  } else if (!add && features.has(feature)) {
@@ -197,17 +126,16 @@ function isModifiableFetureSet(featureSet?: FeatureSet): featureSet is FeatureSe
197
126
  export interface ITypeHintProvider {
198
127
  getShapeTypeHint(input: SModelElement | SModelElement | string): ShapeTypeHint | undefined;
199
128
  getEdgeTypeHint(input: SModelElement | SModelElement | string): EdgeTypeHint | undefined;
200
- getValidEdgeElementTypes(input: SModelElement | SModelElement | string, role: "source" | "target"): string[];
129
+ getValidEdgeElementTypes(input: SModelElement | SModelElement | string, role: 'source' | 'target'): string[];
201
130
  }
202
131
 
203
132
  @injectable()
204
133
  export class TypeHintProvider implements IActionHandler, ITypeHintProvider {
205
-
206
134
  @inject(GLSP_TYPES.IFeedbackActionDispatcher)
207
135
  protected feedbackActionDispatcher: IFeedbackActionDispatcher;
208
136
 
209
- protected shapeHints: Map<string, ShapeTypeHint> = new Map;
210
- protected edgeHints: Map<string, EdgeTypeHint> = new Map;
137
+ protected shapeHints: Map<string, ShapeTypeHint> = new Map();
138
+ protected edgeHints: Map<string, EdgeTypeHint> = new Map();
211
139
 
212
140
  handle(action: Action): ICommand | Action | void {
213
141
  if (isSetTypeHintsAction(action)) {
@@ -217,26 +145,32 @@ export class TypeHintProvider implements IActionHandler, ITypeHintProvider {
217
145
  }
218
146
  }
219
147
 
220
- getValidEdgeElementTypes(input: SModelElement | SModelElement | string, role: "source" | "target"): string[] {
148
+ getValidEdgeElementTypes(input: SModelElement | SModelElement | string, role: 'source' | 'target'): string[] {
221
149
  const elementTypeId = getElementTypeId(input);
222
- if (role === "source") {
150
+ if (role === 'source') {
223
151
  return Array.from(
224
152
  Array.from(this.edgeHints.values())
225
- .filter(hint => hint.sourceElementTypeIds.some(sourceElementTypeId => hasCompatibleType(elementTypeId, sourceElementTypeId)))
226
- .map(hint => hint.elementTypeId));
153
+ .filter(hint =>
154
+ hint.sourceElementTypeIds.some(sourceElementTypeId => hasCompatibleType(elementTypeId, sourceElementTypeId))
155
+ )
156
+ .map(hint => hint.elementTypeId)
157
+ );
227
158
  } else {
228
159
  return Array.from(
229
160
  Array.from(this.edgeHints.values())
230
- .filter(hint => hint.targetElementTypeIds.some(targetElementTypeId => hasCompatibleType(elementTypeId, targetElementTypeId)))
231
- .map(hint => hint.elementTypeId));
161
+ .filter(hint =>
162
+ hint.targetElementTypeIds.some(targetElementTypeId => hasCompatibleType(elementTypeId, targetElementTypeId))
163
+ )
164
+ .map(hint => hint.elementTypeId)
165
+ );
232
166
  }
233
167
  }
234
168
 
235
- getShapeTypeHint(input: SModelElement | SModelElement | string) {
169
+ getShapeTypeHint(input: SModelElement | SModelElement | string): ShapeTypeHint | undefined {
236
170
  return getTypeHint(input, this.shapeHints);
237
171
  }
238
172
 
239
- getEdgeTypeHint(input: SModelElement | SModelElement | string) {
173
+ getEdgeTypeHint(input: SModelElement | SModelElement | string): EdgeTypeHint | undefined {
240
174
  return getTypeHint(input, this.edgeHints);
241
175
  }
242
176
  }
@@ -246,12 +180,11 @@ function getTypeHint<T extends TypeHint>(input: SModelElement | SModelElement |
246
180
  let hint = hints.get(type);
247
181
  // Check subtypes
248
182
  if (hint === undefined) {
249
- const subtypes = type.split(":");
183
+ const subtypes = type.split(':');
250
184
  while (hint === undefined && subtypes.length > 0) {
251
185
  subtypes.pop();
252
- hint = hints.get(subtypes.join(":"));
186
+ hint = hints.get(subtypes.join(':'));
253
187
  }
254
188
  }
255
189
  return hint;
256
190
  }
257
-
@@ -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,7 +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 { ContainerModule } from "inversify";
16
+ import { ContainerModule } from 'inversify';
17
17
  import {
18
18
  CenterCommand,
19
19
  ClosePopupActionHandler,
@@ -28,11 +28,10 @@ import {
28
28
  SetPopupModelCommand,
29
29
  SetViewportCommand,
30
30
  TYPES
31
- } from "sprotty";
32
- import { PopupPositionUpdater } from "sprotty/lib/features/hover/popup-position-updater";
33
-
34
- import { FocusStateChangedAction } from "../../base/actions/focus-change-action";
35
- import { GlspHoverMouseListener } from "./hover";
31
+ } from 'sprotty';
32
+ import { PopupPositionUpdater } from 'sprotty/lib/features/hover/popup-position-updater';
33
+ import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
34
+ import { GlspHoverMouseListener } from './hover';
36
35
 
37
36
  const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
38
37
  bind(TYPES.PopupVNodePostprocessor).to(PopupPositionUpdater).inSingletonScope();
@@ -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,27 +13,22 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { injectable } from "inversify";
16
+ import { Action, Bounds, RequestPopupModelAction, SetPopupModelAction } from '@eclipse-glsp/protocol';
17
+ import { injectable } from 'inversify';
17
18
  import {
18
- Action,
19
- Bounds,
20
19
  EMPTY_ROOT,
21
20
  HoverMouseListener,
22
21
  PreRenderedElementSchema,
23
- RequestPopupModelAction,
24
- SetPopupModelAction,
25
22
  SIssueMarker,
26
23
  SIssueSeverity,
27
24
  SModelElement,
28
25
  SModelElementSchema,
29
26
  SModelRootSchema
30
- } from "sprotty";
31
-
32
- import { GIssueMarker } from "../validation/issue-marker";
27
+ } from 'sprotty';
28
+ import { GIssueMarker } from '../validation/issue-marker';
33
29
 
34
30
  @injectable()
35
31
  export class GlspHoverMouseListener extends HoverMouseListener {
36
-
37
32
  protected startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
38
33
  this.stopMouseOverTimer();
39
34
  return new Promise(resolve => {
@@ -65,11 +60,11 @@ export class GlspHoverMouseListener extends HoverMouseListener {
65
60
 
66
61
  protected createMarkerIssuePopup(marker: GIssueMarker): SModelElementSchema {
67
62
  const message = this.createIssueMessage(marker);
68
- return <PreRenderedElementSchema>{
63
+ return {
69
64
  type: 'pre-rendered',
70
65
  id: 'popup-title',
71
66
  code: `<div class="${getSeverity(marker)}"><div class="sprotty-popup-title">${message}</div></div>`
72
- };
67
+ } as PreRenderedElementSchema;
73
68
  }
74
69
 
75
70
  protected createIssueMessage(marker: GIssueMarker): string {
@@ -84,10 +79,12 @@ export class GlspHoverMouseListener extends HoverMouseListener {
84
79
  export function getSeverity(marker: SIssueMarker): SIssueSeverity {
85
80
  let currentSeverity: SIssueSeverity = 'info';
86
81
  for (const severity of marker.issues.map(s => s.severity)) {
87
- if (severity === 'error')
82
+ if (severity === 'error') {
88
83
  return severity;
89
- if (severity === 'warning' && currentSeverity === 'info')
84
+ }
85
+ if (severity === 'warning' && currentSeverity === 'info') {
90
86
  currentSeverity = severity;
87
+ }
91
88
  }
92
89
  return currentSeverity;
93
90
  }
@@ -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,40 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { ContainerModule } from "inversify";
17
- import { configureCommand } from "sprotty";
16
+ import { ContainerModule, inject, injectable, multiInject, optional } from 'inversify';
17
+ import { configureCommand, configureLayout, ILogger, LayoutRegistration, LayoutRegistry, TYPES } from 'sprotty';
18
+ import { FreeFormLayouter } from './freeform-layout';
19
+ import { AlignElementsCommand, ResizeElementsCommand } from './layout-commands';
20
+ import { VBoxLayouterExt } from './vbox-layout';
18
21
 
19
- import { AlignElementsCommand, ResizeElementsCommand } from "./layout-commands";
20
-
21
- const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound) => {
22
+ const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
22
23
  configureCommand({ bind, isBound }, ResizeElementsCommand);
23
24
  configureCommand({ bind, isBound }, AlignElementsCommand);
25
+
26
+ configureLayout({ bind, isBound }, VBoxLayouterExt.KIND, VBoxLayouterExt);
27
+ configureLayout({ bind, isBound }, FreeFormLayouter.KIND, FreeFormLayouter);
28
+
29
+ bind(OverridableLayoutRegistry).toSelf().inSingletonScope();
30
+ rebind(TYPES.LayoutRegistry).toService(OverridableLayoutRegistry);
24
31
  });
25
32
 
26
33
  export default layoutCommandsModule;
34
+
35
+ @injectable()
36
+ export class OverridableLayoutRegistry extends LayoutRegistry {
37
+ // ensure logger is already used in constructor as otherwise not usable
38
+ constructor(
39
+ @multiInject(TYPES.LayoutRegistration) @optional() layouts: LayoutRegistration[] = [],
40
+ @inject(TYPES.ILogger) logger: ILogger
41
+ ) {
42
+ super();
43
+ layouts.forEach(layout => {
44
+ if (this.hasKey(layout.layoutKind)) {
45
+ logger.warn('Layout kind is already defined and will be overridden: ', layout.layoutKind);
46
+ this.deregister(layout.layoutKind);
47
+ }
48
+ // allow overriding an existing layout kind
49
+ this.register(layout.layoutKind, layout.factory());
50
+ });
51
+ }
52
+ }
@@ -0,0 +1,133 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2021 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { injectable } from 'inversify';
17
+ import {
18
+ Bounds,
19
+ BoundsData,
20
+ Dimension,
21
+ isValidDimension,
22
+ LayoutContainer,
23
+ Point,
24
+ SChildElement,
25
+ SParentElement,
26
+ StatefulLayouter
27
+ } from 'sprotty';
28
+ import { AbstractLayout } from 'sprotty/lib/features/bounds/abstract-layout';
29
+ import { AbstractLayoutOptions } from 'sprotty/lib/features/bounds/layout-options';
30
+
31
+ /**
32
+ * Layouts children of a container with explit X/Y positions
33
+ */
34
+ @injectable()
35
+ export class FreeFormLayouter extends AbstractLayout<AbstractLayoutOptions> {
36
+ static KIND = 'freeform';
37
+
38
+ layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
39
+ const boundsData = layouter.getBoundsData(container);
40
+ const options = this.getLayoutOptions(container);
41
+ const childrenSize = this.getChildrenSize(container, options, layouter);
42
+
43
+ // The real size of the compartment will be determined by the parent node layout;
44
+ // we only need to compute the bounds required to layout the children.
45
+
46
+ const maxWidth = childrenSize.width > 0 ? childrenSize.width + options.paddingLeft + options.paddingRight : 0;
47
+ const maxHeight = childrenSize.height > 0 ? childrenSize.height + options.paddingTop + options.paddingBottom : 0;
48
+ if (maxWidth > 0 && maxHeight > 0) {
49
+ const offset = this.layoutChildren(container, layouter, options, maxWidth, maxHeight);
50
+ boundsData.bounds = this.getFinalContainerBounds(container, offset, options, maxWidth, maxHeight);
51
+ boundsData.boundsChanged = true;
52
+ } else {
53
+ boundsData.bounds = { x: boundsData.bounds!.x, y: boundsData.bounds!.y, width: 0, height: 0 };
54
+ boundsData.boundsChanged = true;
55
+ }
56
+ }
57
+
58
+ protected getChildrenSize(
59
+ container: SParentElement & LayoutContainer,
60
+ containerOptions: AbstractLayoutOptions,
61
+ layouter: StatefulLayouter
62
+ ): Dimension {
63
+ let maxX = 0;
64
+ let maxY = 0;
65
+ container.children.forEach(child => {
66
+ const bounds = layouter.getBoundsData(child).bounds;
67
+ if (bounds !== undefined && isValidDimension(bounds)) {
68
+ const childMaxX = bounds.x + bounds.width;
69
+ const childMaxY = bounds.y + bounds.height;
70
+ maxX = Math.max(maxX, childMaxX);
71
+ maxY = Math.max(maxY, childMaxY);
72
+ }
73
+ });
74
+ return {
75
+ width: maxX,
76
+ height: maxY
77
+ };
78
+ }
79
+
80
+ protected layoutChild(
81
+ child: SChildElement,
82
+ boundsData: BoundsData,
83
+ bounds: Bounds,
84
+ childOptions: AbstractLayoutOptions,
85
+ containerOptions: AbstractLayoutOptions,
86
+ currentOffset: Point,
87
+ maxWidth: number,
88
+ maxHeight: number
89
+ ): Point {
90
+ boundsData.bounds = {
91
+ x: (child as any).bounds.x,
92
+ y: (child as any).bounds.y,
93
+ width: bounds.width,
94
+ height: bounds.height
95
+ };
96
+ boundsData.boundsChanged = true;
97
+ return currentOffset;
98
+ }
99
+
100
+ protected getFinalContainerBounds(
101
+ container: SParentElement & LayoutContainer,
102
+ lastOffset: Point,
103
+ options: AbstractLayoutOptions,
104
+ maxWidth: number,
105
+ maxHeight: number
106
+ ): Bounds {
107
+ const result = {
108
+ x: container.bounds.x,
109
+ y: container.bounds.y,
110
+ width: Math.max(options.minWidth, maxWidth + options.paddingLeft + options.paddingRight),
111
+ height: Math.max(options.minHeight, maxHeight + options.paddingTop + options.paddingBottom)
112
+ };
113
+
114
+ return result;
115
+ }
116
+
117
+ protected getDefaultLayoutOptions(): AbstractLayoutOptions {
118
+ return {
119
+ resizeContainer: true,
120
+ paddingTop: 0,
121
+ paddingBottom: 0,
122
+ paddingLeft: 0,
123
+ paddingRight: 0,
124
+ paddingFactor: 1,
125
+ minWidth: 0,
126
+ minHeight: 0
127
+ };
128
+ }
129
+
130
+ protected spread(a: AbstractLayoutOptions, b: AbstractLayoutOptions): AbstractLayoutOptions {
131
+ return { ...a, ...b };
132
+ }
133
+ }