@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 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,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction, SetClipboardDataAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import { TYPES, ViewerOptions } from 'sprotty';
18
19
  import { v4 as uuid } from 'uuid';
19
-
20
20
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
21
- import { EditorContextService } from '../../base/editor-context';
21
+ import { EditorContextService } from '../../base/editor-context-service';
22
22
  import { GLSP_TYPES } from '../../base/types';
23
- import { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction } from './copy-paste-actions';
24
23
 
25
24
  export interface ICopyPasteHandler {
26
25
  handleCopy(event: ClipboardEvent): void;
@@ -91,11 +90,10 @@ function getClipboardIdFromDataTransfer(dataTransfer: DataTransfer): string | un
91
90
  return isClipboardId(jsonObject) ? jsonObject.clipboardId : undefined;
92
91
  }
93
92
 
94
- const CLIPBOARD_DATA_FORMAT = 'application/json';
93
+ const CLIPBOARD_DATA_FORMAT = 'text/plain';
95
94
 
96
95
  @injectable()
97
96
  export class ServerCopyPasteHandler implements ICopyPasteHandler {
98
-
99
97
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: GLSPActionDispatcher;
100
98
  @inject(TYPES.ViewerOptions) protected viewerOptions: ViewerOptions;
101
99
  @inject(GLSP_TYPES.IAsyncClipboardService) protected clipboadService: IAsyncClipboardService;
@@ -106,7 +104,7 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
106
104
  const clipboardId = uuid();
107
105
  event.clipboardData.setData(CLIPBOARD_DATA_FORMAT, toClipboardId(clipboardId));
108
106
  this.actionDispatcher
109
- .request(RequestClipboardDataAction.create(this.editorContext.get()))
107
+ .request<SetClipboardDataAction>(RequestClipboardDataAction.create(this.editorContext.get()))
110
108
  .then(action => this.clipboadService.put(action.clipboardData, clipboardId));
111
109
  event.preventDefault();
112
110
  } else {
@@ -126,7 +124,7 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
126
124
  }
127
125
 
128
126
  handlePaste(event: ClipboardEvent): void {
129
- if (event.clipboardData) {
127
+ if (event.clipboardData && this.shouldPaste(event)) {
130
128
  const clipboardId = getClipboardIdFromDataTransfer(event.clipboardData);
131
129
  const clipboardData = this.clipboadService.get(clipboardId);
132
130
  if (clipboardData) {
@@ -137,8 +135,18 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
137
135
  }
138
136
 
139
137
  protected shouldCopy(_event: ClipboardEvent): boolean | null {
140
- return this.editorContext.get().selectedElementIds.length > 0 && document.activeElement instanceof SVGElement
141
- && document.activeElement.parentElement && document.activeElement.parentElement.id === this.viewerOptions.baseDiv;
138
+ return this.editorContext.get().selectedElementIds.length > 0 && this.isDiagramActive();
142
139
  }
143
140
 
141
+ protected shouldPaste(_event: ClipboardEvent): boolean | null {
142
+ return this.isDiagramActive();
143
+ }
144
+
145
+ private isDiagramActive(): boolean | null {
146
+ return (
147
+ document.activeElement instanceof SVGElement &&
148
+ document.activeElement.parentElement &&
149
+ document.activeElement.parentElement.id === this.viewerOptions.baseDiv
150
+ );
151
+ }
144
152
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,8 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
- import { configureActionHandler } from 'sprotty/lib';
18
-
17
+ import { configureActionHandler } from 'sprotty';
19
18
  import { GLSP_TYPES } from '../../base/types';
20
19
  import {
21
20
  CopyPasteContextMenuItemProvider,
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,24 +13,15 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Point } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
- import {
18
- Decoration,
19
- DecorationPlacer,
20
- isSizeable,
21
- ORIGIN_POINT,
22
- Point,
23
- SChildElement,
24
- SModelElement,
25
- SRoutableElement
26
- } from 'sprotty';
18
+ import { Decoration, DecorationPlacer, isSizeable, ORIGIN_POINT, SChildElement, SModelElement, SRoutableElement } from 'sprotty';
27
19
 
28
20
  @injectable()
29
21
  export class GlspDecorationPlacer extends DecorationPlacer {
30
-
31
22
  protected static readonly DECORATION_OFFSET: Point = { x: 12, y: 10 };
32
23
 
33
- protected getPosition(element: SModelElement & Decoration): Point {
24
+ protected override getPosition(element: SModelElement & Decoration): Point {
34
25
  if (element instanceof SChildElement && element.parent instanceof SRoutableElement) {
35
26
  return super.getPosition(element);
36
27
  }
@@ -42,5 +33,4 @@ export class GlspDecorationPlacer extends DecorationPlacer {
42
33
  }
43
34
  return ORIGIN_POINT;
44
35
  }
45
-
46
36
  }
@@ -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,6 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { isSetEditValidationResultAction, RequestEditValidationAction, ValidationStatus } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
19
  Action,
@@ -26,11 +27,6 @@ import {
26
27
  } from 'sprotty';
27
28
 
28
29
  import { GLSPActionDispatcher } from '../../base/action-dispatcher';
29
- import {
30
- isSetEditValidationResultAction,
31
- RequestEditValidationAction,
32
- ValidationStatus
33
- } from '../../base/actions/edit-validation-actions';
34
30
 
35
31
  export namespace LabelEditValidation {
36
32
  export const CONTEXT_ID = 'label-edit';
@@ -55,7 +51,6 @@ export class ValidateLabelEditAction extends RequestEditValidationAction {
55
51
 
56
52
  @injectable()
57
53
  export class ServerEditLabelValidator implements IEditLabelValidator {
58
-
59
54
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: GLSPActionDispatcher;
60
55
 
61
56
  validate(value: string, label: EditableLabel & SModelElement): Promise<EditLabelValidationResult> {
@@ -69,12 +64,10 @@ export class ServerEditLabelValidator implements IEditLabelValidator {
69
64
  }
70
65
  return { severity: 'ok' as Severity };
71
66
  }
72
-
73
67
  }
74
68
 
75
69
  @injectable()
76
70
  export class BalloonLabelValidationDecorator implements IEditLabelValidationDecorator {
77
-
78
71
  decorate(input: HTMLInputElement, result: EditLabelValidationResult): void {
79
72
  const containerElement = input.parentElement;
80
73
  if (!containerElement) {
@@ -86,9 +79,15 @@ export class BalloonLabelValidationDecorator implements IEditLabelValidationDeco
86
79
  containerElement.setAttribute('data-balloon-visible', 'true');
87
80
  }
88
81
  switch (result.severity) {
89
- case 'ok': containerElement.classList.add('validation-ok'); break;
90
- case 'warning': containerElement.classList.add('validation-warning'); break;
91
- case 'error': containerElement.classList.add('validation-error'); break;
82
+ case 'ok':
83
+ containerElement.classList.add('validation-ok');
84
+ break;
85
+ case 'warning':
86
+ containerElement.classList.add('validation-warning');
87
+ break;
88
+ case 'error':
89
+ containerElement.classList.add('validation-error');
90
+ break;
92
91
  }
93
92
  }
94
93
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,11 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { SetTypeHintsAction } from '@eclipse-glsp/protocol';
16
17
  import { ContainerModule } from 'inversify';
17
18
  import { configureActionHandler, configureCommand } from 'sprotty';
18
-
19
19
  import { GLSP_TYPES } from '../../base/types';
20
- import { SetTypeHintsAction } from './request-type-hints-action';
21
20
  import { ApplyTypeHintsCommand, TypeHintProvider } from './type-hints';
22
21
 
23
22
  const modelHintsModule = new ContainerModule((bind, _unbind, isBound) => {
@@ -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,7 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { SModelElement, SModelElementSchema, SModelExtension } from 'sprotty';
16
+ import { SModelElementSchema } from '@eclipse-glsp/protocol';
17
+ import { SModelElement, SModelExtension } from 'sprotty';
17
18
 
18
19
  export const containerFeature = Symbol('containable');
19
20
 
@@ -27,7 +28,7 @@ export function isContainable(element: SModelElement): element is SModelElement
27
28
 
28
29
  export const reparentFeature = Symbol('reparentFeature');
29
30
 
30
- export interface Reparentable extends SModelExtension { }
31
+ export interface Reparentable extends SModelExtension {}
31
32
 
32
33
  export function isReparentable(element: SModelElement): element is SModelElement & Reparentable {
33
34
  return element.hasFeature(reparentFeature);
@@ -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,9 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, EdgeTypeHint, isSetTypeHintsAction, ShapeTypeHint, TypeHint } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import {
18
- Action,
19
19
  CommandExecutionContext,
20
20
  CommandReturn,
21
21
  Connectable,
@@ -28,12 +28,10 @@ import {
28
28
  moveFeature,
29
29
  SEdge,
30
30
  SModelElement,
31
- SModelElementSchema,
32
31
  SModelRoot,
33
32
  SShapeElement,
34
33
  TYPES
35
34
  } from 'sprotty';
36
-
37
35
  import { GLSP_TYPES } from '../../base/types';
38
36
  import { getElementTypeId, hasCompatibleType } from '../../utils/smodel-util';
39
37
  import { resizeFeature } from '../change-bounds/model';
@@ -41,68 +39,6 @@ import { reconnectFeature } from '../reconnect/model';
41
39
  import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
42
40
  import { FeedbackCommand } from '../tool-feedback/model';
43
41
  import { Containable, containerFeature, reparentFeature } from './model';
44
- import { isSetTypeHintsAction } from './request-type-hints-action';
45
-
46
- export abstract class TypeHint {
47
- /**
48
- The id of the element.
49
- */
50
- readonly elementTypeId: string;
51
-
52
- /**
53
- * Specifies whether the element can be relocated.
54
- */
55
- readonly repositionable: boolean;
56
-
57
- /**
58
- * Specifices wheter the element can be deleted
59
- */
60
- readonly deletable: boolean;
61
- }
62
-
63
- export class ShapeTypeHint extends TypeHint {
64
- /**
65
- * Specifies whether the element can be resized.
66
- */
67
- readonly resizable: boolean;
68
-
69
- /**
70
- * Specifies whether the element can be moved to another parent
71
- */
72
- readonly reparentable: boolean;
73
-
74
- /**
75
- * The types of elements that can be contained by this element (if any)
76
- */
77
- readonly containableElementTypeIds?: string[];
78
- }
79
-
80
- export class EdgeTypeHint extends TypeHint {
81
- /**
82
- * Specifies whether the routing of this element can be changed.
83
- */
84
- readonly routable: boolean;
85
-
86
- /**
87
- * Allowed source element types for this edge type
88
- */
89
- readonly sourceElementTypeIds: string[];
90
-
91
- /**
92
- * Allowed targe element types for this edge type
93
- */
94
- readonly targetElementTypeIds: string[];
95
-
96
- isAllowedSource(input: SModelElement | SModelElementSchema | string): boolean {
97
- const type = getElementTypeId(input);
98
- return this.sourceElementTypeIds.includes(type);
99
-
100
- }
101
- isAllowedTarget(input: SModelElement | SModelElementSchema | string): boolean {
102
- const type = getElementTypeId(input);
103
- return this.targetElementTypeIds.includes(type);
104
- }
105
- }
106
42
 
107
43
  @injectable()
108
44
  export class ApplyTypeHintsAction implements Action {
@@ -111,9 +47,8 @@ export class ApplyTypeHintsAction implements Action {
111
47
 
112
48
  @injectable()
113
49
  export class ApplyTypeHintsCommand extends FeedbackCommand {
114
-
115
50
  public static KIND = 'applyTypeHints';
116
- public readonly priority = 10;
51
+ public override readonly priority = 10;
117
52
 
118
53
  @inject(GLSP_TYPES.ITypeHintProvider) protected typeHintProvider: ITypeHintProvider;
119
54
 
@@ -122,15 +57,13 @@ 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
 
@@ -167,18 +100,14 @@ 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
109
  isContainableElement: element =>
179
- hint.containableElementTypeIds ?
180
- hint.containableElementTypeIds.includes(getElementTypeId(element)) :
181
- false
110
+ hint.containableElementTypeIds ? hint.containableElementTypeIds.includes(getElementTypeId(element)) : false
182
111
  };
183
112
  }
184
113
 
@@ -202,12 +131,11 @@ export interface ITypeHintProvider {
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)) {
@@ -222,13 +150,19 @@ export class TypeHintProvider implements IActionHandler, ITypeHintProvider {
222
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
 
@@ -254,4 +188,3 @@ function getTypeHint<T extends TypeHint>(input: SModelElement | SModelElement |
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-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -30,13 +30,13 @@ import {
30
30
  TYPES
31
31
  } from 'sprotty';
32
32
  import { PopupPositionUpdater } from 'sprotty/lib/features/hover/popup-position-updater';
33
-
34
33
  import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
35
34
  import { GlspHoverMouseListener } from './hover';
36
35
 
37
36
  const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
38
37
  bind(TYPES.PopupVNodePostprocessor).to(PopupPositionUpdater).inSingletonScope();
39
- bind(TYPES.MouseListener).to(GlspHoverMouseListener);
38
+ bind(GlspHoverMouseListener).toSelf().inSingletonScope();
39
+ bind(TYPES.MouseListener).toService(GlspHoverMouseListener);
40
40
  bind(TYPES.PopupMouseListener).to(PopupHoverMouseListener);
41
41
  bind(TYPES.KeyListener).to(HoverKeyListener);
42
42
  bind<HoverState>(TYPES.HoverState).toConstantValue({
@@ -56,6 +56,7 @@ const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
56
56
  configureActionHandler(context, SetViewportCommand.KIND, ClosePopupActionHandler);
57
57
  configureActionHandler(context, MoveCommand.KIND, ClosePopupActionHandler);
58
58
  configureActionHandler(context, FocusStateChangedAction.KIND, ClosePopupActionHandler);
59
+ configureActionHandler(context, FocusStateChangedAction.KIND, GlspHoverMouseListener);
59
60
  });
60
61
 
61
62
  export default glspHoverModule;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,28 +13,47 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, Bounds, RequestPopupModelAction, SetPopupModelAction } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
18
  import {
18
- Action,
19
- Bounds,
20
19
  EMPTY_ROOT,
20
+ HoverFeedbackAction,
21
21
  HoverMouseListener,
22
+ IActionHandler,
23
+ ICommand,
22
24
  PreRenderedElementSchema,
23
- RequestPopupModelAction,
24
- SetPopupModelAction,
25
25
  SIssueMarker,
26
26
  SIssueSeverity,
27
27
  SModelElement,
28
28
  SModelElementSchema,
29
29
  SModelRootSchema
30
30
  } from 'sprotty';
31
-
31
+ import { isFocusStateChangedAction } from '../../base/actions/focus-change-action';
32
32
  import { GIssueMarker } from '../validation/issue-marker';
33
33
 
34
34
  @injectable()
35
- export class GlspHoverMouseListener extends HoverMouseListener {
35
+ export class GlspHoverMouseListener extends HoverMouseListener implements IActionHandler {
36
+ /**
37
+ * Stops mouse over timer and remove hover feedback, if focus is lost.
38
+ *
39
+ * This fixes strange effects that appear if the mouse left the element via e.g. a context menu,
40
+ * which explicitly removes the focus of the diagram.
41
+ * @see SelectionServiceAwareContextMenuMouseListener
42
+ * @param action should be a `FocusStateChangedAction`
43
+ * @returns a `HoverFeedbackAction` resetting the state, if the specified action indicates lost focus
44
+ */
45
+ handle(action: Action): void | Action | ICommand {
46
+ if (isFocusStateChangedAction(action) && !action.hasFocus) {
47
+ this.stopMouseOverTimer();
48
+ if (this.lastHoverFeedbackElementId) {
49
+ const previousTargetId = this.lastHoverFeedbackElementId;
50
+ this.lastHoverFeedbackElementId = undefined;
51
+ return new HoverFeedbackAction(previousTargetId, false);
52
+ }
53
+ }
54
+ }
36
55
 
37
- protected startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
56
+ protected override startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
38
57
  this.stopMouseOverTimer();
39
58
  return new Promise(resolve => {
40
59
  this.state.mouseOverTimer = window.setTimeout(() => {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,13 +14,17 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
- import { configureCommand } from 'sprotty';
18
-
17
+ import { configureCommand, configureLayout, VBoxLayouter } from 'sprotty';
18
+ import { FreeFormLayouter } from './freeform-layout';
19
19
  import { AlignElementsCommand, ResizeElementsCommand } from './layout-commands';
20
+ import { VBoxLayouterExt } from './vbox-layout';
20
21
 
21
- const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound) => {
22
+ const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
22
23
  configureCommand({ bind, isBound }, ResizeElementsCommand);
23
24
  configureCommand({ bind, isBound }, AlignElementsCommand);
25
+
26
+ rebind(VBoxLayouter).to(VBoxLayouterExt);
27
+ configureLayout({ bind, isBound }, FreeFormLayouter.KIND, FreeFormLayouter);
24
28
  });
25
29
 
26
30
  export default layoutCommandsModule;