@eclipse-glsp/client 0.9.0-next.f54fd689 → 0.9.0

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 (625) 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 +20 -7
  6. package/css/tool-palette.css +44 -27
  7. package/lib/base/action-dispatcher.d.ts +18 -2
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +41 -61
  10. package/lib/base/action-dispatcher.js.map +1 -1
  11. package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → base/actions/focus-change-action.d.ts} +7 -7
  12. package/lib/base/actions/focus-change-action.d.ts.map +1 -0
  13. package/lib/base/actions/focus-change-action.js +16 -0
  14. package/lib/base/actions/focus-change-action.js.map +1 -0
  15. package/lib/base/argumentable.d.ts +22 -0
  16. package/lib/base/argumentable.d.ts.map +1 -0
  17. package/lib/base/argumentable.js +8 -0
  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-actions.js.map +1 -1
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts +12 -12
  23. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  24. package/lib/base/auto-complete/auto-complete-widget.js +121 -152
  25. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  26. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  27. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  28. package/lib/base/auto-complete/validation-decorator.js +49 -65
  29. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  30. package/lib/base/command-stack.d.ts +1 -1
  31. package/lib/base/command-stack.d.ts.map +1 -1
  32. package/lib/base/command-stack.js +19 -37
  33. package/lib/base/command-stack.js.map +1 -1
  34. package/lib/base/container-modules.d.ts +40 -0
  35. package/lib/base/container-modules.d.ts.map +1 -0
  36. package/lib/base/container-modules.js +100 -0
  37. package/lib/base/container-modules.js.map +1 -0
  38. package/lib/base/di.config.d.ts +13 -3
  39. package/lib/base/di.config.d.ts.map +1 -1
  40. package/lib/base/di.config.js +52 -31
  41. package/lib/base/di.config.js.map +1 -1
  42. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  43. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  44. package/lib/base/drag-aware-mouse-listener.js +23 -62
  45. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  46. package/lib/base/editor-context-service.d.ts +42 -0
  47. package/lib/base/editor-context-service.d.ts.map +1 -0
  48. package/lib/base/editor-context-service.js +109 -0
  49. package/lib/base/editor-context-service.js.map +1 -0
  50. package/lib/{features/undo-redo/model.d.ts → base/focus-tracker.d.ts} +10 -12
  51. package/lib/base/focus-tracker.d.ts.map +1 -0
  52. package/lib/base/focus-tracker.js +50 -0
  53. package/lib/base/focus-tracker.js.map +1 -0
  54. package/lib/base/model/model-registry.d.ts +5 -0
  55. package/lib/base/model/model-registry.d.ts.map +1 -0
  56. package/lib/base/model/model-registry.js +43 -0
  57. package/lib/base/model/model-registry.js.map +1 -0
  58. package/lib/base/model/update-model-command.d.ts +20 -6
  59. package/lib/base/model/update-model-command.d.ts.map +1 -1
  60. package/lib/base/model/update-model-command.js +69 -94
  61. package/lib/base/model/update-model-command.js.map +1 -1
  62. package/lib/base/model-initialization-constraint.d.ts +17 -2
  63. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  64. package/lib/base/model-initialization-constraint.js +34 -54
  65. package/lib/base/model-initialization-constraint.js.map +1 -1
  66. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  67. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  68. package/lib/base/selection-clearing-mouse-listener.js +11 -28
  69. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  70. package/lib/base/source-uri-aware.js +2 -5
  71. package/lib/base/source-uri-aware.js.map +1 -1
  72. package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
  73. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  74. package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
  75. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  76. package/lib/base/types.d.ts +3 -1
  77. package/lib/base/types.d.ts.map +1 -1
  78. package/lib/base/types.js +23 -21
  79. package/lib/base/types.js.map +1 -1
  80. package/lib/base/view/view-registry.d.ts +5 -0
  81. package/lib/base/view/view-registry.d.ts.map +1 -0
  82. package/lib/base/view/view-registry.js +43 -0
  83. package/lib/base/view/view-registry.js.map +1 -0
  84. package/lib/features/change-bounds/model.d.ts +4 -2
  85. package/lib/features/change-bounds/model.d.ts.map +1 -1
  86. package/lib/features/change-bounds/model.js +21 -32
  87. package/lib/features/change-bounds/model.js.map +1 -1
  88. package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
  89. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  90. package/lib/features/change-bounds/movement-restrictor.js +34 -46
  91. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  92. package/lib/features/change-bounds/snap.d.ts +17 -1
  93. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  94. package/lib/features/change-bounds/snap.js +13 -39
  95. package/lib/features/change-bounds/snap.js.map +1 -1
  96. package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
  97. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  98. package/lib/features/command-palette/command-palette-tool.js +30 -38
  99. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  100. package/lib/features/command-palette/di.config.d.ts +2 -2
  101. package/lib/features/command-palette/di.config.js +6 -6
  102. package/lib/features/command-palette/di.config.js.map +1 -1
  103. package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
  104. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  105. package/lib/features/command-palette/server-command-palette-provider.js +31 -36
  106. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  107. package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
  108. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  109. package/lib/features/context-menu/delete-element-context-menu.js +24 -72
  110. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  111. package/lib/features/context-menu/di.config.d.ts +2 -2
  112. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  113. package/lib/features/context-menu/di.config.js +14 -18
  114. package/lib/features/context-menu/di.config.js.map +1 -1
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
  116. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  117. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
  118. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  119. package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
  120. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  121. package/lib/features/context-menu/server-context-menu-provider.js +31 -32
  122. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  123. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  124. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  125. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  126. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  127. package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
  128. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  129. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  130. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  131. package/lib/features/copy-paste/di.config.d.ts +2 -2
  132. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  133. package/lib/features/copy-paste/di.config.js +11 -11
  134. package/lib/features/copy-paste/di.config.js.map +1 -1
  135. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  136. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  137. package/lib/features/decoration/decoration-placer.js +14 -47
  138. package/lib/features/decoration/decoration-placer.js.map +1 -1
  139. package/lib/features/decoration/di.config.d.ts +2 -2
  140. package/lib/features/decoration/di.config.d.ts.map +1 -1
  141. package/lib/features/decoration/di.config.js +4 -6
  142. package/lib/features/decoration/di.config.js.map +1 -1
  143. package/lib/features/edit-label/di.config.d.ts +1 -1
  144. package/lib/features/edit-label/di.config.js +7 -7
  145. package/lib/features/edit-label/di.config.js.map +1 -1
  146. package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
  147. package/lib/features/edit-label/edit-label-tool.js +20 -43
  148. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  149. package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
  150. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  151. package/lib/features/edit-label/edit-label-validator.js +40 -62
  152. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  153. package/lib/features/hints/di.config.d.ts +1 -16
  154. package/lib/features/hints/di.config.d.ts.map +1 -1
  155. package/lib/features/hints/di.config.js +9 -9
  156. package/lib/features/hints/di.config.js.map +1 -1
  157. package/lib/features/hints/model.d.ts +3 -2
  158. package/lib/features/hints/model.d.ts.map +1 -1
  159. package/lib/features/hints/model.js +2 -2
  160. package/lib/features/hints/model.js.map +1 -1
  161. package/lib/features/hints/type-hints.d.ts +21 -49
  162. package/lib/features/hints/type-hints.d.ts.map +1 -1
  163. package/lib/features/hints/type-hints.js +83 -142
  164. package/lib/features/hints/type-hints.js.map +1 -1
  165. package/lib/features/hover/di.config.d.ts +2 -2
  166. package/lib/features/hover/di.config.d.ts.map +1 -1
  167. package/lib/features/hover/di.config.js +9 -7
  168. package/lib/features/hover/di.config.js.map +1 -1
  169. package/lib/features/hover/hover.d.ts +18 -2
  170. package/lib/features/hover/hover.d.ts.map +1 -1
  171. package/lib/features/hover/hover.js +37 -75
  172. package/lib/features/hover/hover.js.map +1 -1
  173. package/lib/features/layout/di.config.d.ts +2 -2
  174. package/lib/features/layout/di.config.d.ts.map +1 -1
  175. package/lib/features/layout/di.config.js +11 -7
  176. package/lib/features/layout/di.config.js.map +1 -1
  177. package/lib/features/layout/freeform-layout.d.ts +16 -0
  178. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  179. package/lib/features/layout/freeform-layout.js +107 -0
  180. package/lib/features/layout/freeform-layout.js.map +1 -0
  181. package/lib/features/layout/layout-commands.d.ts +26 -10
  182. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  183. package/lib/features/layout/layout-commands.js +189 -264
  184. package/lib/features/layout/layout-commands.js.map +1 -1
  185. package/lib/features/layout/layout-commands.spec.d.ts +2 -17
  186. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  187. package/lib/features/layout/layout-commands.spec.js +124 -117
  188. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  189. package/lib/features/layout/vbox-layout.d.ts +25 -0
  190. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  191. package/lib/features/layout/vbox-layout.js +188 -0
  192. package/lib/features/layout/vbox-layout.js.map +1 -0
  193. package/lib/features/model-source-watcher/di.config.d.ts +1 -16
  194. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  195. package/lib/features/model-source-watcher/di.config.js +7 -7
  196. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  197. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  198. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  199. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  200. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  201. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  202. package/lib/features/mouse-tool/di.config.js +5 -5
  203. package/lib/features/mouse-tool/di.config.js.map +1 -1
  204. package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
  205. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  206. package/lib/features/mouse-tool/mouse-tool.js +74 -217
  207. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  208. package/lib/features/navigation/di.config.d.ts +1 -16
  209. package/lib/features/navigation/di.config.d.ts.map +1 -1
  210. package/lib/features/navigation/di.config.js +11 -10
  211. package/lib/features/navigation/di.config.js.map +1 -1
  212. package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
  213. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  214. package/lib/features/navigation/navigation-action-handler.js +118 -255
  215. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  216. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  217. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  218. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  219. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  220. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
  221. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  222. package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
  223. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  224. package/lib/features/rank/model.d.ts +2 -2
  225. package/lib/features/rank/model.d.ts.map +1 -1
  226. package/lib/features/rank/model.js +2 -2
  227. package/lib/features/rank/model.js.map +1 -1
  228. package/lib/features/reconnect/model.d.ts +2 -2
  229. package/lib/features/reconnect/model.d.ts.map +1 -1
  230. package/lib/features/reconnect/model.js +10 -28
  231. package/lib/features/reconnect/model.js.map +1 -1
  232. package/lib/features/save/di.config.d.ts +2 -2
  233. package/lib/features/save/di.config.d.ts.map +1 -1
  234. package/lib/features/save/di.config.js +6 -6
  235. package/lib/features/save/di.config.js.map +1 -1
  236. package/lib/features/save/model.d.ts +1 -1
  237. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -8
  238. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  239. package/lib/{utils/array-utils.js → features/save/save-keylistener.js} +14 -19
  240. package/lib/features/save/save-keylistener.js.map +1 -0
  241. package/lib/features/select/di.config.d.ts +1 -1
  242. package/lib/features/select/di.config.js +11 -11
  243. package/lib/features/select/di.config.js.map +1 -1
  244. package/lib/features/select/select-feedback-action.d.ts +1 -1
  245. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  246. package/lib/features/select/select-feedback-action.js +45 -71
  247. package/lib/features/select/select-feedback-action.js.map +1 -1
  248. package/lib/features/select/select-mouse-listener.d.ts +2 -2
  249. package/lib/features/select/select-mouse-listener.js +7 -23
  250. package/lib/features/select/select-mouse-listener.js.map +1 -1
  251. package/lib/features/select/selection-service.d.ts +19 -3
  252. package/lib/features/select/selection-service.d.ts.map +1 -1
  253. package/lib/features/select/selection-service.js +134 -236
  254. package/lib/features/select/selection-service.js.map +1 -1
  255. package/lib/features/select/selection-service.spec.js +96 -138
  256. package/lib/features/select/selection-service.spec.js.map +1 -1
  257. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
  258. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  259. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
  260. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  261. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
  262. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  263. package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
  264. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  265. package/lib/features/tool-feedback/css-feedback.d.ts +24 -5
  266. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  267. package/lib/features/tool-feedback/css-feedback.js +40 -82
  268. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  269. package/lib/features/tool-feedback/di.config.d.ts +2 -2
  270. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  271. package/lib/features/tool-feedback/di.config.js +27 -24
  272. package/lib/features/tool-feedback/di.config.js.map +1 -1
  273. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
  274. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  275. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
  276. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  277. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
  278. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  279. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  280. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  281. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +48 -0
  282. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -0
  283. package/lib/features/tool-feedback/marquee-tool-feedback.js +96 -0
  284. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -0
  285. package/lib/features/tool-feedback/model.d.ts +2 -2
  286. package/lib/features/tool-feedback/model.js +11 -27
  287. package/lib/features/tool-feedback/model.js.map +1 -1
  288. package/lib/features/tool-feedback/view.d.ts +22 -6
  289. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  290. package/lib/features/tool-feedback/view.js +30 -51
  291. package/lib/features/tool-feedback/view.js.map +1 -1
  292. package/lib/features/tool-palette/di.config.d.ts +2 -2
  293. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  294. package/lib/features/tool-palette/di.config.js +6 -6
  295. package/lib/features/tool-palette/di.config.js.map +1 -1
  296. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  297. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  298. package/lib/features/tool-palette/palette-item.js +6 -6
  299. package/lib/features/tool-palette/palette-item.js.map +1 -1
  300. package/lib/features/tool-palette/tool-palette.d.ts +23 -6
  301. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  302. package/lib/features/tool-palette/tool-palette.js +229 -286
  303. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  304. package/lib/features/tools/base-glsp-tool.d.ts +21 -5
  305. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  306. package/lib/features/tools/base-glsp-tool.js +37 -59
  307. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  308. package/lib/features/tools/change-bounds-tool.d.ts +26 -9
  309. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  310. package/lib/features/tools/change-bounds-tool.js +192 -241
  311. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  312. package/lib/features/tools/delete-tool.d.ts +20 -4
  313. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  314. package/lib/features/tools/delete-tool.js +71 -104
  315. package/lib/features/tools/delete-tool.js.map +1 -1
  316. package/lib/features/tools/di.config.d.ts +5 -16
  317. package/lib/features/tools/di.config.d.ts.map +1 -1
  318. package/lib/features/tools/di.config.js +26 -13
  319. package/lib/features/tools/di.config.js.map +1 -1
  320. package/lib/features/tools/edge-creation-tool.d.ts +20 -5
  321. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  322. package/lib/features/tools/edge-creation-tool.js +64 -89
  323. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  324. package/lib/features/tools/edge-edit-tool.d.ts +22 -6
  325. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  326. package/lib/features/tools/edge-edit-tool.js +125 -189
  327. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  328. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  329. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  330. package/lib/features/tools/marquee-behavior.js +128 -0
  331. package/lib/features/tools/marquee-behavior.js.map +1 -0
  332. package/{src/base/args.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -2
  333. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  334. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  335. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  336. package/lib/features/tools/marquee-mouse-tool.d.ts +48 -0
  337. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -0
  338. package/lib/features/tools/marquee-mouse-tool.js +148 -0
  339. package/lib/features/tools/marquee-mouse-tool.js.map +1 -0
  340. package/lib/features/tools/marquee-tool.d.ts +30 -0
  341. package/lib/features/tools/marquee-tool.d.ts.map +1 -0
  342. package/lib/features/tools/marquee-tool.js +54 -0
  343. package/lib/features/tools/marquee-tool.js.map +1 -0
  344. package/lib/features/tools/model.d.ts +22 -0
  345. package/lib/features/tools/model.d.ts.map +1 -0
  346. package/lib/features/tools/model.js +24 -0
  347. package/lib/features/tools/model.js.map +1 -0
  348. package/lib/features/tools/node-creation-tool.d.ts +20 -5
  349. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  350. package/lib/features/tools/node-creation-tool.js +60 -90
  351. package/lib/features/tools/node-creation-tool.js.map +1 -1
  352. package/lib/features/tools/view.d.ts +7 -0
  353. package/lib/features/tools/view.d.ts.map +1 -0
  354. package/lib/features/tools/view.js +40 -0
  355. package/lib/features/tools/view.js.map +1 -0
  356. package/lib/features/validation/di.config.d.ts +1 -1
  357. package/lib/features/validation/di.config.js +12 -12
  358. package/lib/features/validation/di.config.js.map +1 -1
  359. package/lib/features/validation/issue-marker.d.ts +3 -3
  360. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  361. package/lib/features/validation/issue-marker.js +18 -56
  362. package/lib/features/validation/issue-marker.js.map +1 -1
  363. package/lib/features/validation/marker-navigator.d.ts +19 -3
  364. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  365. package/lib/features/validation/marker-navigator.js +131 -164
  366. package/lib/features/validation/marker-navigator.js.map +1 -1
  367. package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
  368. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  369. package/lib/features/validation/marker-navigator.spec.js +84 -77
  370. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  371. package/lib/features/validation/validate.d.ts +20 -31
  372. package/lib/features/validation/validate.d.ts.map +1 -1
  373. package/lib/features/validation/validate.js +148 -299
  374. package/lib/features/validation/validate.js.map +1 -1
  375. package/lib/{base/args.d.ts → features/viewport/di.config.d.ts} +5 -5
  376. package/lib/features/viewport/di.config.d.ts.map +1 -0
  377. package/lib/features/viewport/di.config.js +34 -0
  378. package/lib/features/viewport/di.config.js.map +1 -0
  379. package/{src/features/model-source-watcher/model-source-changed-action.ts → lib/features/viewport/glsp-scroll-mouse-listener.d.ts} +8 -11
  380. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -0
  381. package/lib/features/viewport/glsp-scroll-mouse-listener.js +39 -0
  382. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -0
  383. package/lib/index.d.ts +37 -35
  384. package/lib/index.d.ts.map +1 -1
  385. package/lib/index.js +39 -35
  386. package/lib/index.js.map +1 -1
  387. package/lib/lib/model.d.ts +3 -3
  388. package/lib/lib/model.d.ts.map +1 -1
  389. package/lib/lib/model.js +11 -27
  390. package/lib/lib/model.js.map +1 -1
  391. package/lib/model-source/glsp-diagram-server.d.ts +4 -6
  392. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  393. package/lib/model-source/glsp-diagram-server.js +63 -122
  394. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  395. package/lib/protocol-reexport.d.ts +45 -0
  396. package/lib/protocol-reexport.d.ts.map +1 -0
  397. package/lib/protocol-reexport.js +75 -0
  398. package/lib/protocol-reexport.js.map +1 -0
  399. package/lib/utils/argument-utils.d.ts +50 -0
  400. package/lib/utils/argument-utils.d.ts.map +1 -0
  401. package/lib/utils/argument-utils.js +110 -0
  402. package/lib/utils/argument-utils.js.map +1 -0
  403. package/lib/utils/html-utils.js +2 -2
  404. package/lib/utils/html-utils.js.map +1 -1
  405. package/lib/utils/layout-utils.d.ts +4 -3
  406. package/lib/utils/layout-utils.d.ts.map +1 -1
  407. package/lib/utils/layout-utils.js +5 -5
  408. package/lib/utils/layout-utils.js.map +1 -1
  409. package/lib/utils/marker.d.ts +1 -39
  410. package/lib/utils/marker.d.ts.map +1 -1
  411. package/lib/utils/marker.js +14 -61
  412. package/lib/utils/marker.js.map +1 -1
  413. package/lib/utils/smodel-util.d.ts +7 -17
  414. package/lib/utils/smodel-util.d.ts.map +1 -1
  415. package/lib/utils/smodel-util.js +18 -67
  416. package/lib/utils/smodel-util.js.map +1 -1
  417. package/lib/utils/viewpoint-util.d.ts +3 -2
  418. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  419. package/lib/utils/viewpoint-util.js +15 -30
  420. package/lib/utils/viewpoint-util.js.map +1 -1
  421. package/lib/views/base-view-module.d.ts +9 -0
  422. package/lib/views/base-view-module.d.ts.map +1 -0
  423. package/lib/views/base-view-module.js +59 -0
  424. package/lib/views/base-view-module.js.map +1 -0
  425. package/lib/views/compartments.d.ts +6 -0
  426. package/lib/views/compartments.d.ts.map +1 -0
  427. package/lib/views/compartments.js +43 -0
  428. package/lib/views/compartments.js.map +1 -0
  429. package/lib/views/glsp-edge-view.d.ts +27 -0
  430. package/lib/views/glsp-edge-view.d.ts.map +1 -0
  431. package/lib/views/glsp-edge-view.js +55 -0
  432. package/lib/views/glsp-edge-view.js.map +1 -0
  433. package/lib/views/index.d.ts +22 -0
  434. package/lib/views/index.d.ts.map +1 -0
  435. package/lib/views/index.js +34 -0
  436. package/lib/views/index.js.map +1 -0
  437. package/lib/views/issue-marker-view.d.ts +9 -0
  438. package/lib/views/issue-marker-view.d.ts.map +1 -0
  439. package/lib/views/issue-marker-view.js +68 -0
  440. package/lib/views/issue-marker-view.js.map +1 -0
  441. package/lib/views/rounded-corner-view.d.ts +13 -0
  442. package/lib/views/rounded-corner-view.d.ts.map +1 -0
  443. package/lib/views/rounded-corner-view.js +82 -0
  444. package/lib/views/rounded-corner-view.js.map +1 -0
  445. package/lib/views/rounded-corner.d.ts +38 -0
  446. package/lib/views/rounded-corner.d.ts.map +1 -0
  447. package/lib/views/rounded-corner.js +62 -0
  448. package/lib/views/rounded-corner.js.map +1 -0
  449. package/package.json +27 -34
  450. package/src/base/action-dispatcher.ts +7 -8
  451. package/src/{utils/array-utils.ts → base/actions/focus-change-action.ts} +8 -16
  452. package/src/{features/undo-redo/model.ts → base/argumentable.ts} +7 -8
  453. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  454. package/src/base/auto-complete/auto-complete-widget.ts +73 -57
  455. package/src/base/auto-complete/validation-decorator.ts +21 -15
  456. package/src/base/command-stack.ts +4 -7
  457. package/src/base/container-modules.ts +112 -0
  458. package/src/base/di.config.ts +47 -25
  459. package/src/base/drag-aware-mouse-listener.ts +7 -8
  460. package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
  461. package/src/base/focus-tracker.ts +48 -0
  462. package/src/base/model/model-registry.ts +31 -0
  463. package/src/base/model/update-model-command.ts +14 -22
  464. package/src/base/model-initialization-constraint.ts +16 -11
  465. package/src/base/selection-clearing-mouse-listener.ts +4 -3
  466. package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
  467. package/src/base/types.ts +23 -21
  468. package/src/base/view/view-registry.ts +31 -0
  469. package/src/features/change-bounds/model.ts +23 -13
  470. package/src/features/change-bounds/movement-restrictor.ts +28 -18
  471. package/src/features/change-bounds/snap.ts +6 -5
  472. package/src/features/command-palette/command-palette-tool.ts +4 -4
  473. package/src/features/command-palette/di.config.ts +7 -7
  474. package/src/features/command-palette/server-command-palette-provider.ts +16 -14
  475. package/src/features/context-menu/delete-element-context-menu.ts +10 -11
  476. package/src/features/context-menu/di.config.ts +10 -12
  477. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
  478. package/src/features/context-menu/server-context-menu-provider.ts +13 -10
  479. package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
  480. package/src/features/copy-paste/copy-paste-handler.ts +30 -20
  481. package/src/features/copy-paste/di.config.ts +6 -7
  482. package/src/features/decoration/decoration-placer.ts +6 -15
  483. package/src/features/decoration/di.config.ts +4 -6
  484. package/src/features/edit-label/di.config.ts +5 -5
  485. package/src/features/edit-label/edit-label-tool.ts +4 -4
  486. package/src/features/edit-label/edit-label-validator.ts +18 -19
  487. package/src/features/hints/di.config.ts +6 -7
  488. package/src/features/hints/model.ts +7 -6
  489. package/src/features/hints/type-hints.ts +46 -113
  490. package/src/features/hover/di.config.ts +7 -7
  491. package/src/features/hover/hover.ts +11 -14
  492. package/src/features/layout/di.config.ts +10 -6
  493. package/src/features/layout/freeform-layout.ts +133 -0
  494. package/src/features/layout/layout-commands.spec.ts +104 -85
  495. package/src/features/layout/layout-commands.ts +65 -54
  496. package/src/features/layout/vbox-layout.ts +256 -0
  497. package/src/features/model-source-watcher/di.config.ts +5 -6
  498. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
  499. package/src/features/mouse-tool/di.config.ts +4 -4
  500. package/src/features/mouse-tool/mouse-tool.ts +44 -32
  501. package/src/features/navigation/di.config.ts +6 -12
  502. package/src/features/navigation/navigation-action-handler.ts +46 -78
  503. package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
  504. package/src/features/navigation/navigation-target-resolver.ts +16 -94
  505. package/src/features/rank/model.ts +3 -3
  506. package/src/features/reconnect/model.ts +9 -11
  507. package/src/features/save/di.config.ts +4 -5
  508. package/src/features/save/model.ts +1 -1
  509. package/src/features/save/{save.ts → save-keylistener.ts} +4 -8
  510. package/src/features/select/di.config.ts +6 -6
  511. package/src/features/select/select-feedback-action.ts +6 -8
  512. package/src/features/select/select-mouse-listener.ts +2 -2
  513. package/src/features/select/selection-service.spec.ts +25 -19
  514. package/src/features/select/selection-service.ts +25 -22
  515. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
  516. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
  517. package/src/features/tool-feedback/css-feedback.ts +19 -14
  518. package/src/features/tool-feedback/di.config.ts +15 -14
  519. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
  520. package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
  521. package/src/features/tool-feedback/marquee-tool-feedback.ts +103 -0
  522. package/src/features/tool-feedback/model.ts +2 -3
  523. package/src/features/tool-feedback/view.tsx +20 -13
  524. package/src/features/tool-palette/di.config.ts +5 -7
  525. package/src/features/tool-palette/palette-item.ts +5 -7
  526. package/src/features/tool-palette/tool-palette.ts +126 -107
  527. package/src/features/tools/base-glsp-tool.ts +12 -12
  528. package/src/features/tools/change-bounds-tool.ts +83 -53
  529. package/src/features/tools/delete-tool.ts +23 -20
  530. package/src/features/tools/di.config.ts +22 -11
  531. package/src/features/tools/edge-creation-tool.ts +20 -25
  532. package/src/features/tools/edge-edit-tool.ts +43 -46
  533. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  534. package/src/features/tools/marquee-behavior.ts +158 -0
  535. package/src/features/tools/marquee-mouse-tool.ts +153 -0
  536. package/src/features/tools/marquee-tool.ts +51 -0
  537. package/src/features/tools/model.ts +22 -0
  538. package/src/features/tools/node-creation-tool.ts +18 -22
  539. package/src/features/tools/view.tsx +44 -0
  540. package/src/features/validation/di.config.ts +5 -5
  541. package/src/features/validation/issue-marker.ts +4 -5
  542. package/src/features/validation/marker-navigator.spec.ts +38 -33
  543. package/src/features/validation/marker-navigator.ts +39 -26
  544. package/src/features/validation/validate.ts +25 -59
  545. package/src/features/viewport/di.config.ts +47 -0
  546. package/src/features/viewport/glsp-scroll-mouse-listener.ts +41 -0
  547. package/src/index.ts +57 -37
  548. package/src/lib/model.ts +4 -4
  549. package/src/model-source/glsp-diagram-server.ts +19 -33
  550. package/src/protocol-reexport.ts +64 -0
  551. package/src/utils/argument-utils.ts +130 -0
  552. package/src/utils/layout-utils.ts +19 -11
  553. package/src/utils/marker.ts +8 -32
  554. package/src/utils/smodel-util.ts +28 -22
  555. package/src/utils/viewpoint-util.ts +5 -6
  556. package/src/views/base-view-module.ts +97 -0
  557. package/src/views/compartments.tsx +37 -0
  558. package/src/views/glsp-edge-view.tsx +79 -0
  559. package/{lib/utils/array-utils.d.ts → src/views/index.ts} +7 -4
  560. package/src/views/issue-marker-view.tsx +65 -0
  561. package/src/views/rounded-corner-view.tsx +103 -0
  562. package/src/views/rounded-corner.ts +87 -0
  563. package/lib/base/actions/context-actions.d.ts +0 -36
  564. package/lib/base/actions/context-actions.d.ts.map +0 -1
  565. package/lib/base/actions/context-actions.js +0 -51
  566. package/lib/base/actions/context-actions.js.map +0 -1
  567. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  568. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  569. package/lib/base/actions/edit-mode-action.js +0 -56
  570. package/lib/base/actions/edit-mode-action.js.map +0 -1
  571. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  572. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  573. package/lib/base/actions/edit-validation-actions.js +0 -82
  574. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  575. package/lib/base/actions/protocol-actions.d.ts +0 -41
  576. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  577. package/lib/base/actions/protocol-actions.js +0 -151
  578. package/lib/base/actions/protocol-actions.js.map +0 -1
  579. package/lib/base/args.d.ts.map +0 -1
  580. package/lib/base/args.js +0 -3
  581. package/lib/base/args.js.map +0 -1
  582. package/lib/base/editor-context.d.ts +0 -46
  583. package/lib/base/editor-context.d.ts.map +0 -1
  584. package/lib/base/editor-context.js +0 -174
  585. package/lib/base/editor-context.js.map +0 -1
  586. package/lib/base/operations/operation.d.ts +0 -129
  587. package/lib/base/operations/operation.d.ts.map +0 -1
  588. package/lib/base/operations/operation.js +0 -201
  589. package/lib/base/operations/operation.js.map +0 -1
  590. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  591. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  592. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  593. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  594. package/lib/features/decoration/view.d.ts +0 -8
  595. package/lib/features/decoration/view.d.ts.map +0 -1
  596. package/lib/features/decoration/view.js +0 -80
  597. package/lib/features/decoration/view.js.map +0 -1
  598. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  599. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  600. package/lib/features/hints/request-type-hints-action.js +0 -30
  601. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  602. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  603. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  604. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  605. package/lib/features/save/save.d.ts.map +0 -1
  606. package/lib/features/save/save.js +0 -57
  607. package/lib/features/save/save.js.map +0 -1
  608. package/lib/features/undo-redo/model.d.ts.map +0 -1
  609. package/lib/features/undo-redo/model.js +0 -22
  610. package/lib/features/undo-redo/model.js.map +0 -1
  611. package/lib/model-source/glsp-server-status.d.ts +0 -30
  612. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  613. package/lib/model-source/glsp-server-status.js +0 -61
  614. package/lib/model-source/glsp-server-status.js.map +0 -1
  615. package/lib/utils/array-utils.d.ts.map +0 -1
  616. package/lib/utils/array-utils.js.map +0 -1
  617. package/src/base/actions/context-actions.ts +0 -43
  618. package/src/base/actions/edit-mode-action.ts +0 -33
  619. package/src/base/actions/edit-validation-actions.ts +0 -102
  620. package/src/base/actions/protocol-actions.ts +0 -82
  621. package/src/base/operations/operation.ts +0 -148
  622. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  623. package/src/features/decoration/view.tsx +0 -54
  624. package/src/features/hints/request-type-hints-action.ts +0 -36
  625. package/src/model-source/glsp-server-status.ts +0 -38
@@ -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,25 +13,23 @@
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, configureView, LocationPostprocessor, MoveCommand, TYPES } from "sprotty";
16
+ import { ContainerModule } from 'inversify';
17
+ import { configureCommand, configureView, LocationPostprocessor, MoveCommand, TYPES } from 'sprotty';
18
18
 
19
- import { GLSP_TYPES } from "../../base/types";
20
- import { SResizeHandle } from "../change-bounds/model";
21
- import {
22
- HideChangeBoundsToolResizeFeedbackCommand,
23
- ShowChangeBoundsToolResizeFeedbackCommand
24
- } from "./change-bounds-tool-feedback";
25
- import { DrawFeedbackEdgeCommand, FeedbackEdgeEnd, RemoveFeedbackEdgeCommand } from "./creation-tool-feedback";
26
- import { ModifyCssFeedbackCommand } from "./css-feedback";
19
+ import { GLSP_TYPES } from '../../base/types';
20
+ import { SResizeHandle } from '../change-bounds/model';
21
+ import { HideChangeBoundsToolResizeFeedbackCommand, ShowChangeBoundsToolResizeFeedbackCommand } from './change-bounds-tool-feedback';
22
+ import { DrawFeedbackEdgeCommand, FeedbackEdgeEnd, RemoveFeedbackEdgeCommand } from './creation-tool-feedback';
23
+ import { ModifyCssFeedbackCommand } from './css-feedback';
27
24
  import {
28
25
  DrawFeedbackEdgeSourceCommand,
29
26
  HideEdgeReconnectHandlesFeedbackCommand,
30
27
  ShowEdgeReconnectHandlesFeedbackCommand,
31
28
  SwitchRoutingModeCommand
32
- } from "./edge-edit-tool-feedback";
33
- import { FeedbackActionDispatcher } from "./feedback-action-dispatcher";
34
- import { FeedbackEdgeEndView, SResizeHandleView } from "./view";
29
+ } from './edge-edit-tool-feedback';
30
+ import { FeedbackActionDispatcher } from './feedback-action-dispatcher';
31
+ import { DrawMarqueeCommand, RemoveMarqueeCommand } from './marquee-tool-feedback';
32
+ import { FeedbackEdgeEndView, SResizeHandleView } from './view';
35
33
 
36
34
  const toolFeedbackModule = new ContainerModule((bind, _unbind, isBound) => {
37
35
  bind(GLSP_TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
@@ -42,6 +40,9 @@ const toolFeedbackModule = new ContainerModule((bind, _unbind, isBound) => {
42
40
  configureCommand({ bind, isBound }, DrawFeedbackEdgeCommand);
43
41
  configureCommand({ bind, isBound }, RemoveFeedbackEdgeCommand);
44
42
 
43
+ configureCommand({ bind, isBound }, DrawMarqueeCommand);
44
+ configureCommand({ bind, isBound }, RemoveMarqueeCommand);
45
+
45
46
  configureView({ bind, isBound }, FeedbackEdgeEnd.TYPE, FeedbackEdgeEndView);
46
47
  // move tool feedback: we use sprotties MoveCommand as client-side visual feedback
47
48
  configureCommand({ bind, isBound }, MoveCommand);
@@ -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,10 +13,11 @@
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";
17
- import { VNode } from "snabbdom/vnode";
16
+ import { Action, Point } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import { VNode } from 'snabbdom';
18
19
  import {
19
- Action,
20
+ add,
20
21
  AnchorComputerRegistry,
21
22
  center,
22
23
  CommandExecutionContext,
@@ -32,7 +33,6 @@ import {
32
33
  isViewport,
33
34
  MouseListener,
34
35
  MoveAction,
35
- Point,
36
36
  PolylineEdgeRouter,
37
37
  SConnectableElement,
38
38
  SModelElement,
@@ -41,29 +41,23 @@ import {
41
41
  SwitchEditModeAction,
42
42
  SwitchEditModeCommand,
43
43
  TYPES
44
- } from "sprotty";
45
-
46
- import { isNotUndefined, isRoutable, isRoutingHandle } from "../../utils/smodel-util";
47
- import { getAbsolutePosition } from "../../utils/viewpoint-util";
48
- import { addReconnectHandles, removeReconnectHandles } from "../reconnect/model";
49
- import {
50
- FeedbackEdgeEnd,
51
- feedbackEdgeEndId,
52
- FeedbackEdgeEndMovingMouseListener,
53
- feedbackEdgeId
54
- } from "./creation-tool-feedback";
55
- import { FeedbackCommand } from "./model";
44
+ } from 'sprotty';
45
+ import { isNotUndefined, isRoutable, isRoutingHandle } from '../../utils/smodel-util';
46
+ import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
47
+ import { addReconnectHandles, removeReconnectHandles } from '../reconnect/model';
48
+ import { FeedbackEdgeEnd, feedbackEdgeEndId, FeedbackEdgeEndMovingMouseListener, feedbackEdgeId } from './creation-tool-feedback';
49
+ import { FeedbackCommand } from './model';
56
50
 
57
51
  /**
58
52
  * RECONNECT HANDLES FEEDBACK
59
53
  */
60
54
 
61
55
  export class ShowEdgeReconnectHandlesFeedbackAction implements Action {
62
- constructor(readonly elementId?: string, public readonly kind: string = ShowEdgeReconnectHandlesFeedbackCommand.KIND) { }
56
+ constructor(readonly elementId?: string, public readonly kind: string = ShowEdgeReconnectHandlesFeedbackCommand.KIND) {}
63
57
  }
64
58
 
65
59
  export class HideEdgeReconnectHandlesFeedbackAction implements Action {
66
- constructor(public readonly kind: string = HideEdgeReconnectHandlesFeedbackCommand.KIND) { }
60
+ constructor(public readonly kind: string = HideEdgeReconnectHandlesFeedbackCommand.KIND) {}
67
61
  }
68
62
 
69
63
  @injectable()
@@ -107,17 +101,21 @@ export class HideEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
107
101
  */
108
102
 
109
103
  export class SwitchRoutingModeAction extends SwitchEditModeAction {
110
- constructor(public readonly elementsToActivate: string[] = [],
104
+ constructor(
105
+ public readonly elementsToActivate: string[] = [],
111
106
  public readonly elementsToDeactivate: string[] = [],
112
- public readonly kind: string = SwitchRoutingModeCommand.KIND) {
107
+ public readonly kind: string = SwitchRoutingModeCommand.KIND
108
+ ) {
113
109
  super(elementsToActivate, elementsToDeactivate);
114
110
  }
115
111
  }
116
112
 
117
113
  @injectable()
118
114
  export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
119
- static KIND = "switchRoutingMode";
120
- constructor(@inject(TYPES.Action) action: SwitchRoutingModeAction) { super(action); }
115
+ static KIND = 'switchRoutingMode';
116
+ constructor(@inject(TYPES.Action) action: SwitchRoutingModeAction) {
117
+ super(action);
118
+ }
121
119
  }
122
120
 
123
121
  /**
@@ -125,7 +123,11 @@ export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
125
123
  */
126
124
 
127
125
  export class DrawFeedbackEdgeSourceAction implements Action {
128
- constructor(readonly elementTypeId: string, readonly targetId: string, public readonly kind: string = DrawFeedbackEdgeSourceCommand.KIND) { }
126
+ constructor(
127
+ readonly elementTypeId: string,
128
+ readonly targetId: string,
129
+ public readonly kind: string = DrawFeedbackEdgeSourceCommand.KIND
130
+ ) {}
129
131
  }
130
132
 
131
133
  @injectable()
@@ -166,12 +168,12 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
166
168
 
167
169
  const edge = edgeEnd.feedbackEdge;
168
170
  const position = getAbsolutePosition(edgeEnd, event);
169
- const endAtMousePosition = findChildrenAtPosition(target.root, position)
170
- .find(e => isConnectable(e) && e.canConnect(edge, 'source'));
171
+ const endAtMousePosition = findChildrenAtPosition(target.root, position).find(
172
+ e => isConnectable(e) && e.canConnect(edge, 'source')
173
+ );
171
174
 
172
175
  if (endAtMousePosition instanceof SConnectableElement && edge.target && isBoundsAware(edge.target)) {
173
- const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, endAtMousePosition.anchorKind);
174
- const anchor = anchorComputer.getAnchor(endAtMousePosition, center(edge.target.bounds));
176
+ const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(edge.target.bounds));
175
177
  if (euclideanDistance(anchor, edgeEnd.position) > 1) {
176
178
  return [new MoveAction([{ elementId: edgeEnd.id, toPosition: anchor }], false)];
177
179
  }
@@ -181,6 +183,21 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
181
183
 
182
184
  return [];
183
185
  }
186
+
187
+ protected computeAbsoluteAnchor(element: SConnectableElement, referencePoint: Point, offset?: number): Point {
188
+ const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, element.anchorKind);
189
+ let anchor = anchorComputer.getAnchor(element, referencePoint, offset);
190
+ // The anchor is computed in the local coordinate system of the element.
191
+ // If the element is a nested child element we have to add the absolute position of its parent to the anchor.
192
+ if (element.parent !== element.root) {
193
+ const parent = findParentByFeature(element.parent, isBoundsAware);
194
+ if (parent) {
195
+ const absoluteParentPosition = toAbsoluteBounds(parent);
196
+ anchor = add(absoluteParentPosition, anchor);
197
+ }
198
+ }
199
+ return anchor;
200
+ }
184
201
  }
185
202
 
186
203
  export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
@@ -208,16 +225,17 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
208
225
 
209
226
  mouseMove(target: SModelElement, event: MouseEvent): Action[] {
210
227
  const result: Action[] = [];
211
- if (event.buttons === 0)
228
+ if (event.buttons === 0) {
212
229
  this.mouseUp(target, event);
213
- else if (this.lastDragPosition) {
230
+ } else if (this.lastDragPosition) {
214
231
  const viewport = findParentByFeature(target, isViewport);
215
232
  this.hasDragged = true;
216
233
  const zoom = viewport ? viewport.zoom : 1;
217
234
  const dx = (event.pageX - this.lastDragPosition.x) / zoom;
218
235
  const dy = (event.pageY - this.lastDragPosition.y) / zoom;
219
236
  const handleMoves: ElementMove[] = [];
220
- target.root.index.all()
237
+ target.root.index
238
+ .all()
221
239
  .filter(element => isSelected(element))
222
240
  .forEach(element => {
223
241
  if (isRoutingHandle(element)) {
@@ -235,8 +253,9 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
235
253
  }
236
254
  });
237
255
  this.lastDragPosition = { x: event.pageX, y: event.pageY };
238
- if (handleMoves.length > 0)
256
+ if (handleMoves.length > 0) {
239
257
  result.push(new MoveAction(handleMoves, false));
258
+ }
240
259
  }
241
260
  return result;
242
261
  }
@@ -244,8 +263,9 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
244
263
  protected getHandlePosition(handle: SRoutingHandle): Point | undefined {
245
264
  if (this.edgeRouterRegistry) {
246
265
  const parent = handle.parent;
247
- if (!isRoutable(parent))
266
+ if (!isRoutable(parent)) {
248
267
  return undefined;
268
+ }
249
269
  const router = this.edgeRouterRegistry.get(parent.routerKind);
250
270
  const route = router.route(parent);
251
271
  return router.getHandlePosition(parent, route, handle);
@@ -254,8 +274,9 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
254
274
  }
255
275
 
256
276
  mouseEnter(target: SModelElement, event: MouseEvent): Action[] {
257
- if (target instanceof SModelRoot && event.buttons === 0)
277
+ if (target instanceof SModelRoot && event.buttons === 0) {
258
278
  this.mouseUp(target, event);
279
+ }
259
280
  return [];
260
281
  }
261
282
 
@@ -274,7 +295,7 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
274
295
  * UTILITY FUNCTIONS
275
296
  */
276
297
 
277
- function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string) {
298
+ function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string): void {
278
299
  const root = context.root;
279
300
  const targetChild = root.index.getById(targetId);
280
301
  if (!targetChild) {
@@ -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,10 +13,11 @@
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";
17
- import { Action, IActionDispatcher, ILogger, TYPES } from "sprotty";
16
+ import { Action } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import { IActionDispatcher, ILogger, TYPES } from 'sprotty';
18
19
 
19
- export interface IFeedbackEmitter { }
20
+ export interface IFeedbackEmitter {}
20
21
 
21
22
  /**
22
23
  * Dispatcher for actions that are meant to show visual feedback on
@@ -52,14 +53,14 @@ export interface IFeedbackActionDispatcher {
52
53
  deregisterFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): void;
53
54
 
54
55
  /**
55
- * Retrieve all `actions` sent out by currently registered `feedbackEmitter`.
56
- */
57
- getRegisteredFeedback(): Action[]
56
+ * Retrieve all `actions` sent out by currently registered `feedbackEmitter`.
57
+ */
58
+ getRegisteredFeedback(): Action[];
58
59
  }
59
60
 
60
61
  @injectable()
61
62
  export class FeedbackActionDispatcher implements IFeedbackActionDispatcher {
62
- protected feedbackEmitters: Map<IFeedbackEmitter, Action[]> = new Map;
63
+ protected feedbackEmitters: Map<IFeedbackEmitter, Action[]> = new Map();
63
64
 
64
65
  @inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
65
66
  @inject(TYPES.ILogger) protected logger: ILogger;
@@ -74,28 +75,26 @@ export class FeedbackActionDispatcher implements IFeedbackActionDispatcher {
74
75
  this.dispatch(actions, feedbackEmitter);
75
76
  }
76
77
 
77
- private dispatch(actions: Action[], feedbackEmitter: IFeedbackEmitter) {
78
+ private dispatch(actions: Action[], feedbackEmitter: IFeedbackEmitter): void {
78
79
  this.actionDispatcher()
79
80
  .then(dispatcher => dispatcher.dispatchAll(actions))
80
81
  .then(() => this.logger.info(this, `Dispatched feedback actions for ${feedbackEmitter}`))
81
82
  .catch(reason => this.logger.error(this, 'Failed to dispatch feedback actions', reason));
82
83
  }
83
84
 
84
- getRegisteredFeedback() {
85
+ getRegisteredFeedback(): Action[] {
85
86
  const result: Action[] = [];
86
87
  this.feedbackEmitters.forEach((value, key) => result.push(...value));
87
88
  return result;
88
89
  }
89
90
 
90
- getRegisteredFeedbackEmitters(action: Action) {
91
+ getRegisteredFeedbackEmitters(action: Action): IFeedbackEmitter[] {
91
92
  const result: IFeedbackEmitter[] = [];
92
93
  this.feedbackEmitters.forEach((value, key) => {
93
94
  if (value.find(a => a === action)) {
94
95
  result.push(key);
95
96
  }
96
- }
97
- );
97
+ });
98
98
  return result;
99
99
  }
100
-
101
100
  }
@@ -0,0 +1,103 @@
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 { Action, Point } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import {
19
+ AnchorComputerRegistry,
20
+ CommandExecutionContext,
21
+ CommandReturn,
22
+ MouseListener,
23
+ SChildElement,
24
+ SModelElement,
25
+ SModelRoot,
26
+ TYPES
27
+ } from 'sprotty';
28
+ import { FeedbackCommand } from './model';
29
+
30
+ export class DrawMarqueeAction implements Action {
31
+ constructor(
32
+ public readonly startPoint: Point,
33
+ public readonly endPoint: Point,
34
+ public readonly kind: string = DrawMarqueeCommand.KIND
35
+ ) {}
36
+ }
37
+
38
+ @injectable()
39
+ export class DrawMarqueeCommand extends FeedbackCommand {
40
+ static readonly KIND = 'drawMarquee';
41
+
42
+ constructor(@inject(TYPES.Action) protected action: DrawMarqueeAction) {
43
+ super();
44
+ }
45
+
46
+ execute(context: CommandExecutionContext): CommandReturn {
47
+ drawMarquee(context, this.action.startPoint, this.action.endPoint);
48
+ return context.root;
49
+ }
50
+ }
51
+
52
+ export class RemoveMarqueeAction implements Action {
53
+ constructor(public readonly kind: string = RemoveMarqueeCommand.KIND) {}
54
+ }
55
+
56
+ @injectable()
57
+ export class RemoveMarqueeCommand extends FeedbackCommand {
58
+ static readonly KIND = 'removeMarqueeCommand';
59
+
60
+ execute(context: CommandExecutionContext): CommandReturn {
61
+ removeMarquee(context.root);
62
+ return context.root;
63
+ }
64
+ }
65
+
66
+ export class MarqueeEndMovingMouseListener extends MouseListener {
67
+ constructor(protected anchorRegistry: AnchorComputerRegistry) {
68
+ super();
69
+ }
70
+
71
+ mouseMove(target: SModelElement, event: MouseEvent): Action[] {
72
+ return [];
73
+ }
74
+ }
75
+
76
+ export function marqueeId(root: SModelRoot): string {
77
+ return root.id + '_' + MARQUEE;
78
+ }
79
+
80
+ export const MARQUEE = 'marquee';
81
+
82
+ export function drawMarquee(context: CommandExecutionContext, startPoint: Point, endPoint: Point): void {
83
+ const root = context.root;
84
+
85
+ removeMarquee(root);
86
+
87
+ const marqueeSchema = {
88
+ type: MARQUEE,
89
+ id: marqueeId(root),
90
+ startPoint: startPoint,
91
+ endPoint: endPoint
92
+ };
93
+
94
+ const marquee = context.modelFactory.createElement(marqueeSchema);
95
+ root.add(marquee);
96
+ }
97
+
98
+ export function removeMarquee(root: SModelRoot): void {
99
+ const marquee = root.index.getById(marqueeId(root));
100
+ if (marquee instanceof SChildElement) {
101
+ root.remove(marquee);
102
+ }
103
+ }
@@ -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,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Command, CommandExecutionContext, CommandReturn } from "sprotty";
16
+ import { Command, CommandExecutionContext, CommandReturn } from 'sprotty';
17
17
 
18
18
  export abstract class FeedbackCommand extends Command {
19
19
  // used by the `FeedbackAwareUpdateModelCommand`
@@ -29,4 +29,3 @@ export abstract class FeedbackCommand extends Command {
29
29
  return context.root;
30
30
  }
31
31
  }
32
-
@@ -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,19 +13,19 @@
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";
17
- import * as snabbdom from "snabbdom-jsx";
18
- import { VNode } from "snabbdom/vnode";
19
- import { IView, ORIGIN_POINT, Point, RenderingContext, setAttr, SModelElement } from "sprotty";
16
+ import { Point } from '@eclipse-glsp/protocol';
17
+ import { injectable } from 'inversify';
18
+ import { VNode } from 'snabbdom';
19
+ import { IView, ORIGIN_POINT, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
20
+ import { isResizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
20
21
 
21
- import { isResizable, ResizeHandleLocation, SResizeHandle } from "../change-bounds/model";
22
-
23
- const JSX = { createElement: snabbdom.svg };
22
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
+ const JSX = { createElement: svg };
24
24
 
25
25
  /**
26
- * This view is used for the invisible end of the feedback edge.
27
- * A feedback edge is shown as a visual feedback when creating edges.
28
- */
26
+ * This view is used for the invisible end of the feedback edge.
27
+ * A feedback edge is shown as a visual feedback when creating edges.
28
+ */
29
29
  @injectable()
30
30
  export class FeedbackEdgeEndView implements IView {
31
31
  render(model: Readonly<SModelElement>, context: RenderingContext): VNode {
@@ -39,8 +39,15 @@ export class SResizeHandleView implements IView {
39
39
  render(handle: SResizeHandle, context: RenderingContext): VNode {
40
40
  const position = this.getPosition(handle);
41
41
  if (position !== undefined) {
42
- const node = <circle class-sprotty-resize-handle={true} class-mouseover={handle.hoverFeedback}
43
- cx={position.x} cy={position.y} r={this.getRadius()} />;
42
+ const node = (
43
+ <circle
44
+ class-sprotty-resize-handle={true}
45
+ class-mouseover={handle.hoverFeedback}
46
+ cx={position.x}
47
+ cy={position.y}
48
+ r={this.getRadius()}
49
+ />
50
+ );
44
51
  setAttr(node, 'data-kind', handle.location);
45
52
  return node;
46
53
  }
@@ -13,14 +13,12 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import "../../../css/tool-palette.css";
16
+ import { ContainerModule } from 'inversify';
17
+ import { configureActionHandler, EnableDefaultToolsAction, TYPES } from 'sprotty';
18
+ import '../../../css/tool-palette.css';
19
+ import { EnableToolPaletteAction, ToolPalette } from './tool-palette';
17
20
 
18
- import { ContainerModule } from "inversify";
19
- import { configureActionHandler, EnableDefaultToolsAction, TYPES } from "sprotty";
20
-
21
- import { EnableToolPaletteAction, ToolPalette } from "./tool-palette";
22
-
23
- const toolPaletteModule = new ContainerModule((bind, _unbind, isBound) => {
21
+ const toolPaletteModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
24
22
  bind(ToolPalette).toSelf().inSingletonScope();
25
23
  bind(TYPES.IUIExtension).toService(ToolPalette);
26
24
  configureActionHandler({ bind, isBound }, EnableToolPaletteAction.KIND, ToolPalette);
@@ -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,9 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { isLabeledAction, LabeledAction } from "sprotty";
17
-
18
- import { isTriggerElementTypeCreationAction, TriggerElementCreationAction } from "../../base/operations/operation";
16
+ import { isLabeledAction, isTriggerElementTypeCreationAction, LabeledAction, TriggerElementCreationAction } from '@eclipse-glsp/protocol';
19
17
 
20
18
  export interface PaletteItem extends LabeledAction {
21
19
  readonly id: string;
@@ -24,17 +22,17 @@ export interface PaletteItem extends LabeledAction {
24
22
  }
25
23
 
26
24
  export function isPaletteItem(object?: any): object is PaletteItem {
27
- return isLabeledAction(object) && "id" in object && "sortString" in object;
25
+ return isLabeledAction(object) && 'id' in object && 'sortString' in object;
28
26
  }
29
27
 
30
28
  export namespace PaletteItem {
31
29
  export function getTriggerAction(item?: PaletteItem): TriggerElementCreationAction | undefined {
32
30
  if (item) {
33
- const initiAction = item.actions.filter(a => isTriggerElementTypeCreationAction(a))
31
+ const initiAction = item.actions
32
+ .filter(a => isTriggerElementTypeCreationAction(a))
34
33
  .map(action => action as TriggerElementCreationAction);
35
34
  return initiAction.length > 0 ? initiAction[0] : undefined;
36
35
  }
37
36
  return undefined;
38
37
  }
39
38
  }
40
-