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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/README.md +2 -1
  2. package/css/command-palette.css +9 -5
  3. package/css/decoration.css +3 -2
  4. package/css/glsp-sprotty.css +16 -7
  5. package/css/tool-palette.css +44 -27
  6. package/lib/base/action-dispatcher.d.ts +18 -2
  7. package/lib/base/action-dispatcher.d.ts.map +1 -1
  8. package/lib/base/action-dispatcher.js +41 -61
  9. package/lib/base/action-dispatcher.js.map +1 -1
  10. package/lib/base/actions/focus-change-action.d.ts +1 -1
  11. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  12. package/lib/base/actions/focus-change-action.js +4 -5
  13. package/lib/base/actions/focus-change-action.js.map +1 -1
  14. package/lib/base/{args.d.ts → argumentable.d.ts} +4 -6
  15. package/lib/base/argumentable.d.ts.map +1 -0
  16. package/lib/base/{args.js → argumentable.js} +1 -1
  17. package/lib/base/argumentable.js.map +1 -0
  18. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  19. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  20. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.d.ts +5 -5
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  23. package/lib/base/auto-complete/auto-complete-widget.js +121 -152
  24. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  25. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  26. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  27. package/lib/base/auto-complete/validation-decorator.js +49 -65
  28. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  29. package/lib/base/command-stack.d.ts +1 -1
  30. package/lib/base/command-stack.d.ts.map +1 -1
  31. package/lib/base/command-stack.js +19 -37
  32. package/lib/base/command-stack.js.map +1 -1
  33. package/lib/base/container-modules.d.ts +40 -0
  34. package/lib/base/container-modules.d.ts.map +1 -0
  35. package/lib/base/container-modules.js +84 -0
  36. package/lib/base/container-modules.js.map +1 -0
  37. package/lib/base/di.config.d.ts +13 -3
  38. package/lib/base/di.config.d.ts.map +1 -1
  39. package/lib/base/di.config.js +50 -33
  40. package/lib/base/di.config.js.map +1 -1
  41. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  42. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  43. package/lib/base/drag-aware-mouse-listener.js +23 -62
  44. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  45. package/lib/base/editor-context-service.d.ts +42 -0
  46. package/lib/base/editor-context-service.d.ts.map +1 -0
  47. package/lib/base/editor-context-service.js +109 -0
  48. package/lib/base/editor-context-service.js.map +1 -0
  49. package/lib/base/focus-tracker.d.ts +17 -1
  50. package/lib/base/focus-tracker.d.ts.map +1 -1
  51. package/lib/base/focus-tracker.js +19 -39
  52. package/lib/base/focus-tracker.js.map +1 -1
  53. package/lib/base/model/model-registry.d.ts +5 -0
  54. package/lib/base/model/model-registry.d.ts.map +1 -0
  55. package/lib/base/model/model-registry.js +43 -0
  56. package/lib/base/model/model-registry.js.map +1 -0
  57. package/lib/base/model/update-model-command.d.ts +20 -6
  58. package/lib/base/model/update-model-command.d.ts.map +1 -1
  59. package/lib/base/model/update-model-command.js +69 -94
  60. package/lib/base/model/update-model-command.js.map +1 -1
  61. package/lib/base/model-initialization-constraint.d.ts +17 -2
  62. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  63. package/lib/base/model-initialization-constraint.js +34 -54
  64. package/lib/base/model-initialization-constraint.js.map +1 -1
  65. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  66. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  67. package/lib/base/selection-clearing-mouse-listener.js +11 -28
  68. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  69. package/lib/base/source-uri-aware.js +2 -5
  70. package/lib/base/source-uri-aware.js.map +1 -1
  71. package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
  72. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  73. package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
  74. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  75. package/lib/base/types.d.ts +2 -1
  76. package/lib/base/types.d.ts.map +1 -1
  77. package/lib/base/types.js +22 -21
  78. package/lib/base/types.js.map +1 -1
  79. package/lib/base/view/view-registry.d.ts +5 -0
  80. package/lib/base/view/view-registry.d.ts.map +1 -0
  81. package/lib/base/view/view-registry.js +43 -0
  82. package/lib/base/view/view-registry.js.map +1 -0
  83. package/lib/features/change-bounds/model.d.ts +4 -2
  84. package/lib/features/change-bounds/model.d.ts.map +1 -1
  85. package/lib/features/change-bounds/model.js +21 -32
  86. package/lib/features/change-bounds/model.js.map +1 -1
  87. package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
  88. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  89. package/lib/features/change-bounds/movement-restrictor.js +34 -46
  90. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  91. package/lib/features/change-bounds/snap.d.ts +17 -1
  92. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  93. package/lib/features/change-bounds/snap.js +13 -39
  94. package/lib/features/change-bounds/snap.js.map +1 -1
  95. package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
  96. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  97. package/lib/features/command-palette/command-palette-tool.js +30 -38
  98. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  99. package/lib/features/command-palette/di.config.d.ts +2 -2
  100. package/lib/features/command-palette/di.config.js +6 -6
  101. package/lib/features/command-palette/di.config.js.map +1 -1
  102. package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
  103. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  104. package/lib/features/command-palette/server-command-palette-provider.js +31 -36
  105. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  106. package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
  107. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  108. package/lib/features/context-menu/delete-element-context-menu.js +24 -72
  109. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  110. package/lib/features/context-menu/di.config.d.ts +2 -2
  111. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  112. package/lib/features/context-menu/di.config.js +14 -18
  113. package/lib/features/context-menu/di.config.js.map +1 -1
  114. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  116. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
  117. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  118. package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
  119. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  120. package/lib/features/context-menu/server-context-menu-provider.js +31 -32
  121. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  122. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  123. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  124. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  125. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  126. package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
  127. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  128. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  129. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  130. package/lib/features/copy-paste/di.config.d.ts +2 -2
  131. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  132. package/lib/features/copy-paste/di.config.js +11 -11
  133. package/lib/features/copy-paste/di.config.js.map +1 -1
  134. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  135. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  136. package/lib/features/decoration/decoration-placer.js +14 -47
  137. package/lib/features/decoration/decoration-placer.js.map +1 -1
  138. package/lib/features/decoration/di.config.d.ts +2 -2
  139. package/lib/features/decoration/di.config.d.ts.map +1 -1
  140. package/lib/features/decoration/di.config.js +4 -6
  141. package/lib/features/decoration/di.config.js.map +1 -1
  142. package/lib/features/edit-label/di.config.d.ts +1 -1
  143. package/lib/features/edit-label/di.config.js +7 -7
  144. package/lib/features/edit-label/di.config.js.map +1 -1
  145. package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
  146. package/lib/features/edit-label/edit-label-tool.js +20 -43
  147. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  148. package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
  149. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  150. package/lib/features/edit-label/edit-label-validator.js +40 -62
  151. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  152. package/lib/features/hints/di.config.d.ts +1 -16
  153. package/lib/features/hints/di.config.d.ts.map +1 -1
  154. package/lib/features/hints/di.config.js +9 -9
  155. package/lib/features/hints/di.config.js.map +1 -1
  156. package/lib/features/hints/model.d.ts +3 -2
  157. package/lib/features/hints/model.d.ts.map +1 -1
  158. package/lib/features/hints/model.js +2 -2
  159. package/lib/features/hints/model.js.map +1 -1
  160. package/lib/features/hints/type-hints.d.ts +21 -49
  161. package/lib/features/hints/type-hints.d.ts.map +1 -1
  162. package/lib/features/hints/type-hints.js +83 -142
  163. package/lib/features/hints/type-hints.js.map +1 -1
  164. package/lib/features/hover/di.config.d.ts +2 -2
  165. package/lib/features/hover/di.config.d.ts.map +1 -1
  166. package/lib/features/hover/di.config.js +8 -8
  167. package/lib/features/hover/di.config.js.map +1 -1
  168. package/lib/features/hover/hover.d.ts +18 -2
  169. package/lib/features/hover/hover.d.ts.map +1 -1
  170. package/lib/features/hover/hover.js +37 -75
  171. package/lib/features/hover/hover.js.map +1 -1
  172. package/lib/features/layout/di.config.d.ts +6 -2
  173. package/lib/features/layout/di.config.d.ts.map +1 -1
  174. package/lib/features/layout/di.config.js +47 -7
  175. package/lib/features/layout/di.config.js.map +1 -1
  176. package/lib/features/layout/freeform-layout.d.ts +16 -0
  177. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  178. package/lib/features/layout/freeform-layout.js +107 -0
  179. package/lib/features/layout/freeform-layout.js.map +1 -0
  180. package/lib/features/layout/layout-commands.d.ts +26 -10
  181. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  182. package/lib/features/layout/layout-commands.js +189 -264
  183. package/lib/features/layout/layout-commands.js.map +1 -1
  184. package/lib/features/layout/layout-commands.spec.d.ts +2 -17
  185. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  186. package/lib/features/layout/layout-commands.spec.js +124 -117
  187. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  188. package/lib/features/layout/vbox-layout.d.ts +25 -0
  189. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  190. package/lib/features/layout/vbox-layout.js +188 -0
  191. package/lib/features/layout/vbox-layout.js.map +1 -0
  192. package/lib/features/model-source-watcher/di.config.d.ts +1 -16
  193. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  194. package/lib/features/model-source-watcher/di.config.js +7 -7
  195. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  196. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  197. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  198. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  199. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  200. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  201. package/lib/features/mouse-tool/di.config.js +5 -5
  202. package/lib/features/mouse-tool/di.config.js.map +1 -1
  203. package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
  204. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  205. package/lib/features/mouse-tool/mouse-tool.js +74 -217
  206. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  207. package/lib/features/navigation/di.config.d.ts +1 -16
  208. package/lib/features/navigation/di.config.d.ts.map +1 -1
  209. package/lib/features/navigation/di.config.js +11 -10
  210. package/lib/features/navigation/di.config.js.map +1 -1
  211. package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
  212. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  213. package/lib/features/navigation/navigation-action-handler.js +118 -255
  214. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  215. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  216. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  217. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  218. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  219. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
  220. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  221. package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
  222. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  223. package/lib/features/rank/model.d.ts +2 -2
  224. package/lib/features/rank/model.d.ts.map +1 -1
  225. package/lib/features/rank/model.js +2 -2
  226. package/lib/features/rank/model.js.map +1 -1
  227. package/lib/features/reconnect/model.d.ts +2 -2
  228. package/lib/features/reconnect/model.d.ts.map +1 -1
  229. package/lib/features/reconnect/model.js +10 -28
  230. package/lib/features/reconnect/model.js.map +1 -1
  231. package/lib/features/save/di.config.d.ts +2 -2
  232. package/lib/features/save/di.config.d.ts.map +1 -1
  233. package/lib/features/save/di.config.js +6 -6
  234. package/lib/features/save/di.config.js.map +1 -1
  235. package/lib/features/save/model.d.ts +1 -1
  236. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
  237. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  238. package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
  239. package/lib/features/save/save-keylistener.js.map +1 -0
  240. package/lib/features/select/di.config.d.ts +1 -1
  241. package/lib/features/select/di.config.js +11 -11
  242. package/lib/features/select/di.config.js.map +1 -1
  243. package/lib/features/select/select-feedback-action.d.ts +1 -1
  244. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  245. package/lib/features/select/select-feedback-action.js +45 -71
  246. package/lib/features/select/select-feedback-action.js.map +1 -1
  247. package/lib/features/select/select-mouse-listener.d.ts +2 -2
  248. package/lib/features/select/select-mouse-listener.js +7 -23
  249. package/lib/features/select/select-mouse-listener.js.map +1 -1
  250. package/lib/features/select/selection-service.d.ts +19 -3
  251. package/lib/features/select/selection-service.d.ts.map +1 -1
  252. package/lib/features/select/selection-service.js +134 -236
  253. package/lib/features/select/selection-service.js.map +1 -1
  254. package/lib/features/select/selection-service.spec.js +96 -138
  255. package/lib/features/select/selection-service.spec.js.map +1 -1
  256. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
  257. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  258. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
  259. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  260. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
  261. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  262. package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
  263. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  264. package/lib/features/tool-feedback/css-feedback.d.ts +21 -3
  265. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  266. package/lib/features/tool-feedback/css-feedback.js +37 -81
  267. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  268. package/lib/features/tool-feedback/di.config.d.ts +2 -2
  269. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  270. package/lib/features/tool-feedback/di.config.js +27 -27
  271. package/lib/features/tool-feedback/di.config.js.map +1 -1
  272. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
  273. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  274. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
  275. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  276. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
  277. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  278. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  279. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  280. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +18 -2
  281. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  282. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
  283. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  284. package/lib/features/tool-feedback/model.d.ts +2 -2
  285. package/lib/features/tool-feedback/model.js +11 -27
  286. package/lib/features/tool-feedback/model.js.map +1 -1
  287. package/lib/features/tool-feedback/view.d.ts +22 -6
  288. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  289. package/lib/features/tool-feedback/view.js +30 -51
  290. package/lib/features/tool-feedback/view.js.map +1 -1
  291. package/lib/features/tool-palette/di.config.d.ts +2 -2
  292. package/lib/features/tool-palette/di.config.js +6 -6
  293. package/lib/features/tool-palette/di.config.js.map +1 -1
  294. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  295. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  296. package/lib/features/tool-palette/palette-item.js +6 -6
  297. package/lib/features/tool-palette/palette-item.js.map +1 -1
  298. package/lib/features/tool-palette/tool-palette.d.ts +22 -6
  299. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  300. package/lib/features/tool-palette/tool-palette.js +225 -291
  301. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  302. package/lib/features/tools/base-glsp-tool.d.ts +21 -5
  303. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  304. package/lib/features/tools/base-glsp-tool.js +37 -59
  305. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  306. package/lib/features/tools/change-bounds-tool.d.ts +26 -9
  307. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  308. package/lib/features/tools/change-bounds-tool.js +192 -241
  309. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  310. package/lib/features/tools/delete-tool.d.ts +20 -4
  311. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  312. package/lib/features/tools/delete-tool.js +71 -104
  313. package/lib/features/tools/delete-tool.js.map +1 -1
  314. package/lib/features/tools/di.config.d.ts +1 -16
  315. package/lib/features/tools/di.config.d.ts.map +1 -1
  316. package/lib/features/tools/di.config.js +19 -19
  317. package/lib/features/tools/di.config.js.map +1 -1
  318. package/lib/features/tools/edge-creation-tool.d.ts +20 -5
  319. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  320. package/lib/features/tools/edge-creation-tool.js +64 -89
  321. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  322. package/lib/features/tools/edge-edit-tool.d.ts +22 -6
  323. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  324. package/lib/features/tools/edge-edit-tool.js +125 -189
  325. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  326. package/lib/features/tools/marquee-mouse-tool.d.ts +21 -4
  327. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  328. package/lib/features/tools/marquee-mouse-tool.js +155 -160
  329. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  330. package/lib/features/tools/marquee-tool.d.ts +18 -2
  331. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  332. package/lib/features/tools/marquee-tool.js +32 -73
  333. package/lib/features/tools/marquee-tool.js.map +1 -1
  334. package/lib/features/tools/model.d.ts +1 -1
  335. package/lib/features/tools/model.d.ts.map +1 -1
  336. package/lib/features/tools/model.js +6 -24
  337. package/lib/features/tools/model.js.map +1 -1
  338. package/lib/features/tools/node-creation-tool.d.ts +20 -5
  339. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  340. package/lib/features/tools/node-creation-tool.js +60 -90
  341. package/lib/features/tools/node-creation-tool.js.map +1 -1
  342. package/lib/features/tools/view.d.ts +3 -18
  343. package/lib/features/tools/view.d.ts.map +1 -1
  344. package/lib/features/tools/view.js +21 -39
  345. package/lib/features/tools/view.js.map +1 -1
  346. package/lib/features/validation/di.config.d.ts +1 -1
  347. package/lib/features/validation/di.config.js +12 -12
  348. package/lib/features/validation/di.config.js.map +1 -1
  349. package/lib/features/validation/issue-marker.d.ts +3 -3
  350. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  351. package/lib/features/validation/issue-marker.js +18 -56
  352. package/lib/features/validation/issue-marker.js.map +1 -1
  353. package/lib/features/validation/marker-navigator.d.ts +19 -3
  354. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  355. package/lib/features/validation/marker-navigator.js +131 -164
  356. package/lib/features/validation/marker-navigator.js.map +1 -1
  357. package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
  358. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  359. package/lib/features/validation/marker-navigator.spec.js +84 -77
  360. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  361. package/lib/features/validation/validate.d.ts +20 -31
  362. package/lib/features/validation/validate.d.ts.map +1 -1
  363. package/lib/features/validation/validate.js +148 -299
  364. package/lib/features/validation/validate.js.map +1 -1
  365. package/lib/features/viewport/di.config.d.ts +16 -1
  366. package/lib/features/viewport/di.config.d.ts.map +1 -1
  367. package/lib/features/viewport/di.config.js +10 -10
  368. package/lib/features/viewport/di.config.js.map +1 -1
  369. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +3 -2
  370. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  371. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
  372. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  373. package/lib/index.d.ts +31 -35
  374. package/lib/index.d.ts.map +1 -1
  375. package/lib/index.js +32 -35
  376. package/lib/index.js.map +1 -1
  377. package/lib/lib/model.d.ts +3 -3
  378. package/lib/lib/model.d.ts.map +1 -1
  379. package/lib/lib/model.js +11 -27
  380. package/lib/lib/model.js.map +1 -1
  381. package/lib/model-source/glsp-diagram-server.d.ts +4 -6
  382. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  383. package/lib/model-source/glsp-diagram-server.js +63 -122
  384. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  385. package/lib/protocol-reexport.d.ts +45 -0
  386. package/lib/protocol-reexport.d.ts.map +1 -0
  387. package/lib/protocol-reexport.js +75 -0
  388. package/lib/protocol-reexport.js.map +1 -0
  389. package/lib/utils/argument-utils.d.ts +50 -0
  390. package/lib/utils/argument-utils.d.ts.map +1 -0
  391. package/lib/utils/argument-utils.js +110 -0
  392. package/lib/utils/argument-utils.js.map +1 -0
  393. package/lib/utils/html-utils.js +2 -2
  394. package/lib/utils/html-utils.js.map +1 -1
  395. package/lib/utils/layout-utils.d.ts +4 -3
  396. package/lib/utils/layout-utils.d.ts.map +1 -1
  397. package/lib/utils/layout-utils.js +5 -5
  398. package/lib/utils/layout-utils.js.map +1 -1
  399. package/lib/utils/marker.d.ts +1 -39
  400. package/lib/utils/marker.d.ts.map +1 -1
  401. package/lib/utils/marker.js +14 -61
  402. package/lib/utils/marker.js.map +1 -1
  403. package/lib/utils/smodel-util.d.ts +7 -17
  404. package/lib/utils/smodel-util.d.ts.map +1 -1
  405. package/lib/utils/smodel-util.js +18 -67
  406. package/lib/utils/smodel-util.js.map +1 -1
  407. package/lib/utils/viewpoint-util.d.ts +3 -2
  408. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  409. package/lib/utils/viewpoint-util.js +15 -30
  410. package/lib/utils/viewpoint-util.js.map +1 -1
  411. package/{src/features/undo-redo/model.ts → lib/views/base-view-module.d.ts} +9 -11
  412. package/lib/views/base-view-module.d.ts.map +1 -0
  413. package/lib/views/base-view-module.js +59 -0
  414. package/lib/views/base-view-module.js.map +1 -0
  415. package/lib/views/compartments.d.ts +6 -0
  416. package/lib/views/compartments.d.ts.map +1 -0
  417. package/lib/views/compartments.js +43 -0
  418. package/lib/views/compartments.js.map +1 -0
  419. package/lib/views/default-types.d.ts +37 -0
  420. package/lib/views/default-types.d.ts.map +1 -0
  421. package/lib/views/default-types.js +47 -0
  422. package/lib/views/default-types.js.map +1 -0
  423. package/lib/views/glsp-edge-view.d.ts +27 -0
  424. package/lib/views/glsp-edge-view.d.ts.map +1 -0
  425. package/lib/views/glsp-edge-view.js +55 -0
  426. package/lib/views/glsp-edge-view.js.map +1 -0
  427. package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +9 -10
  428. package/lib/views/index.d.ts.map +1 -0
  429. package/lib/views/index.js +35 -0
  430. package/lib/views/index.js.map +1 -0
  431. package/lib/views/issue-marker-view.d.ts +9 -0
  432. package/lib/views/issue-marker-view.d.ts.map +1 -0
  433. package/lib/views/issue-marker-view.js +68 -0
  434. package/lib/views/issue-marker-view.js.map +1 -0
  435. package/lib/views/rounded-corner-view.d.ts +13 -0
  436. package/lib/views/rounded-corner-view.d.ts.map +1 -0
  437. package/lib/views/rounded-corner-view.js +82 -0
  438. package/lib/views/rounded-corner-view.js.map +1 -0
  439. package/lib/views/rounded-corner.d.ts +38 -0
  440. package/lib/views/rounded-corner.d.ts.map +1 -0
  441. package/lib/views/rounded-corner.js +62 -0
  442. package/lib/views/rounded-corner.js.map +1 -0
  443. package/package.json +24 -32
  444. package/src/base/action-dispatcher.ts +7 -8
  445. package/src/base/actions/focus-change-action.ts +2 -2
  446. package/src/base/{args.ts → argumentable.ts} +3 -4
  447. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  448. package/src/base/auto-complete/auto-complete-widget.ts +66 -48
  449. package/src/base/auto-complete/validation-decorator.ts +21 -15
  450. package/src/base/command-stack.ts +4 -7
  451. package/src/base/container-modules.ts +113 -0
  452. package/src/base/di.config.ts +44 -27
  453. package/src/base/drag-aware-mouse-listener.ts +7 -8
  454. package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
  455. package/src/base/focus-tracker.ts +4 -6
  456. package/src/base/model/model-registry.ts +31 -0
  457. package/src/base/model/update-model-command.ts +14 -22
  458. package/src/base/model-initialization-constraint.ts +16 -11
  459. package/src/base/selection-clearing-mouse-listener.ts +4 -3
  460. package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
  461. package/src/base/types.ts +22 -21
  462. package/src/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
  463. package/src/features/change-bounds/model.ts +23 -13
  464. package/src/features/change-bounds/movement-restrictor.ts +28 -18
  465. package/src/features/change-bounds/snap.ts +6 -5
  466. package/src/features/command-palette/command-palette-tool.ts +4 -4
  467. package/src/features/command-palette/di.config.ts +7 -7
  468. package/src/features/command-palette/server-command-palette-provider.ts +16 -14
  469. package/src/features/context-menu/delete-element-context-menu.ts +10 -11
  470. package/src/features/context-menu/di.config.ts +10 -12
  471. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
  472. package/src/features/context-menu/server-context-menu-provider.ts +13 -10
  473. package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
  474. package/src/features/copy-paste/copy-paste-handler.ts +30 -20
  475. package/src/features/copy-paste/di.config.ts +6 -7
  476. package/src/features/decoration/decoration-placer.ts +6 -15
  477. package/src/features/decoration/di.config.ts +4 -6
  478. package/src/features/edit-label/di.config.ts +5 -5
  479. package/src/features/edit-label/edit-label-tool.ts +4 -4
  480. package/src/features/edit-label/edit-label-validator.ts +18 -19
  481. package/src/features/hints/di.config.ts +6 -7
  482. package/src/features/hints/model.ts +7 -6
  483. package/src/features/hints/type-hints.ts +46 -113
  484. package/src/features/hover/di.config.ts +6 -7
  485. package/src/features/hover/hover.ts +11 -14
  486. package/src/features/layout/di.config.ts +32 -6
  487. package/src/features/layout/freeform-layout.ts +133 -0
  488. package/src/features/layout/layout-commands.spec.ts +104 -85
  489. package/src/features/layout/layout-commands.ts +65 -54
  490. package/src/features/layout/vbox-layout.ts +256 -0
  491. package/src/features/model-source-watcher/di.config.ts +5 -6
  492. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
  493. package/src/features/mouse-tool/di.config.ts +4 -4
  494. package/src/features/mouse-tool/mouse-tool.ts +44 -32
  495. package/src/features/navigation/di.config.ts +6 -12
  496. package/src/features/navigation/navigation-action-handler.ts +46 -78
  497. package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
  498. package/src/features/navigation/navigation-target-resolver.ts +16 -94
  499. package/src/features/rank/model.ts +3 -3
  500. package/src/features/reconnect/model.ts +9 -11
  501. package/src/features/save/di.config.ts +4 -5
  502. package/src/features/save/model.ts +1 -1
  503. package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
  504. package/src/features/select/di.config.ts +6 -6
  505. package/src/features/select/select-feedback-action.ts +6 -8
  506. package/src/features/select/select-mouse-listener.ts +2 -2
  507. package/src/features/select/selection-service.spec.ts +25 -19
  508. package/src/features/select/selection-service.ts +25 -22
  509. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
  510. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
  511. package/src/features/tool-feedback/css-feedback.ts +16 -13
  512. package/src/features/tool-feedback/di.config.ts +12 -15
  513. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
  514. package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
  515. package/src/features/tool-feedback/marquee-tool-feedback.ts +12 -12
  516. package/src/features/tool-feedback/model.ts +2 -3
  517. package/src/features/tool-feedback/view.tsx +20 -13
  518. package/src/features/tool-palette/di.config.ts +5 -5
  519. package/src/features/tool-palette/palette-item.ts +5 -7
  520. package/src/features/tool-palette/tool-palette.ts +118 -110
  521. package/src/features/tools/base-glsp-tool.ts +12 -12
  522. package/src/features/tools/change-bounds-tool.ts +83 -53
  523. package/src/features/tools/delete-tool.ts +23 -20
  524. package/src/features/tools/di.config.ts +16 -17
  525. package/src/features/tools/edge-creation-tool.ts +20 -25
  526. package/src/features/tools/edge-edit-tool.ts +43 -46
  527. package/src/features/tools/marquee-mouse-tool.ts +109 -62
  528. package/src/features/tools/marquee-tool.ts +6 -6
  529. package/src/features/tools/model.ts +1 -2
  530. package/src/features/tools/node-creation-tool.ts +16 -23
  531. package/src/features/tools/view.tsx +21 -15
  532. package/src/features/validation/di.config.ts +5 -5
  533. package/src/features/validation/issue-marker.ts +4 -5
  534. package/src/features/validation/marker-navigator.spec.ts +38 -33
  535. package/src/features/validation/marker-navigator.ts +39 -26
  536. package/src/features/validation/validate.ts +25 -59
  537. package/src/features/viewport/di.config.ts +4 -4
  538. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  539. package/src/index.ts +52 -38
  540. package/src/lib/model.ts +4 -4
  541. package/src/model-source/glsp-diagram-server.ts +19 -33
  542. package/src/protocol-reexport.ts +64 -0
  543. package/src/utils/argument-utils.ts +130 -0
  544. package/src/utils/layout-utils.ts +19 -11
  545. package/src/utils/marker.ts +8 -32
  546. package/src/utils/smodel-util.ts +28 -22
  547. package/src/utils/viewpoint-util.ts +5 -6
  548. package/src/views/base-view-module.ts +98 -0
  549. package/src/views/compartments.tsx +37 -0
  550. package/src/views/default-types.ts +48 -0
  551. package/src/views/glsp-edge-view.tsx +79 -0
  552. package/src/views/index.ts +22 -0
  553. package/src/views/issue-marker-view.tsx +65 -0
  554. package/src/views/rounded-corner-view.tsx +103 -0
  555. package/src/views/rounded-corner.ts +87 -0
  556. package/lib/base/actions/context-actions.d.ts +0 -36
  557. package/lib/base/actions/context-actions.d.ts.map +0 -1
  558. package/lib/base/actions/context-actions.js +0 -51
  559. package/lib/base/actions/context-actions.js.map +0 -1
  560. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  561. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  562. package/lib/base/actions/edit-mode-action.js +0 -56
  563. package/lib/base/actions/edit-mode-action.js.map +0 -1
  564. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  565. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  566. package/lib/base/actions/edit-validation-actions.js +0 -82
  567. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  568. package/lib/base/actions/protocol-actions.d.ts +0 -41
  569. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  570. package/lib/base/actions/protocol-actions.js +0 -151
  571. package/lib/base/actions/protocol-actions.js.map +0 -1
  572. package/lib/base/args.d.ts.map +0 -1
  573. package/lib/base/args.js.map +0 -1
  574. package/lib/base/editor-context.d.ts +0 -46
  575. package/lib/base/editor-context.d.ts.map +0 -1
  576. package/lib/base/editor-context.js +0 -174
  577. package/lib/base/editor-context.js.map +0 -1
  578. package/lib/base/operations/operation.d.ts +0 -129
  579. package/lib/base/operations/operation.d.ts.map +0 -1
  580. package/lib/base/operations/operation.js +0 -201
  581. package/lib/base/operations/operation.js.map +0 -1
  582. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  583. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  584. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  585. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  586. package/lib/features/decoration/view.d.ts +0 -8
  587. package/lib/features/decoration/view.d.ts.map +0 -1
  588. package/lib/features/decoration/view.js +0 -80
  589. package/lib/features/decoration/view.js.map +0 -1
  590. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  591. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  592. package/lib/features/hints/request-type-hints-action.js +0 -30
  593. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  594. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  595. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  596. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  597. package/lib/features/save/save.d.ts.map +0 -1
  598. package/lib/features/save/save.js +0 -62
  599. package/lib/features/save/save.js.map +0 -1
  600. package/lib/features/undo-redo/model.d.ts.map +0 -1
  601. package/lib/features/undo-redo/model.js +0 -22
  602. package/lib/features/undo-redo/model.js.map +0 -1
  603. package/lib/model-source/glsp-server-status.d.ts +0 -30
  604. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  605. package/lib/model-source/glsp-server-status.js +0 -61
  606. package/lib/model-source/glsp-server-status.js.map +0 -1
  607. package/lib/utils/array-utils.d.ts +0 -28
  608. package/lib/utils/array-utils.d.ts.map +0 -1
  609. package/lib/utils/array-utils.js +0 -61
  610. package/lib/utils/array-utils.js.map +0 -1
  611. package/src/base/actions/context-actions.ts +0 -43
  612. package/src/base/actions/edit-mode-action.ts +0 -33
  613. package/src/base/actions/edit-validation-actions.ts +0 -102
  614. package/src/base/actions/protocol-actions.ts +0 -82
  615. package/src/base/operations/operation.ts +0 -148
  616. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  617. package/src/features/decoration/view.tsx +0 -54
  618. package/src/features/hints/request-type-hints-action.ts +0 -36
  619. package/src/model-source/glsp-server-status.ts +0 -38
  620. package/src/utils/array-utils.ts +0 -55
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable, optional } from "inversify";
16
+ import { Action, ChangeRoutingPointsOperation, ReconnectEdgeOperation } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, optional } from 'inversify';
17
18
  import {
18
- Action,
19
19
  AnchorComputerRegistry,
20
20
  canEditRouting,
21
21
  Connectable,
@@ -27,22 +27,14 @@ import {
27
27
  SModelRoot,
28
28
  SRoutableElement,
29
29
  SRoutingHandle
30
- } from "sprotty";
31
-
32
- import { DragAwareMouseListener } from "../../base/drag-aware-mouse-listener";
33
- import { ChangeRoutingPointsOperation, ReconnectEdgeOperation } from "../../base/operations/operation";
34
- import { GLSP_TYPES } from "../../base/types";
35
- import { isRoutable, isRoutingHandle } from "../../utils/smodel-util";
36
- import {
37
- isReconnectable,
38
- isReconnectHandle,
39
- isSourceRoutingHandle,
40
- isTargetRoutingHandle,
41
- SReconnectHandle
42
- } from "../reconnect/model";
43
- import { SelectionListener, SelectionService } from "../select/selection-service";
44
- import { DrawFeedbackEdgeAction, feedbackEdgeId, RemoveFeedbackEdgeAction } from "../tool-feedback/creation-tool-feedback";
45
- import { CursorCSS, cursorFeedbackAction } from "../tool-feedback/css-feedback";
30
+ } from 'sprotty';
31
+ import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
32
+ import { GLSP_TYPES } from '../../base/types';
33
+ import { isRoutable, isRoutingHandle } from '../../utils/smodel-util';
34
+ import { isReconnectable, isReconnectHandle, isSourceRoutingHandle, isTargetRoutingHandle, SReconnectHandle } from '../reconnect/model';
35
+ import { SelectionListener, SelectionService } from '../select/selection-service';
36
+ import { DrawFeedbackEdgeAction, feedbackEdgeId, RemoveFeedbackEdgeAction } from '../tool-feedback/creation-tool-feedback';
37
+ import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
46
38
  import {
47
39
  DrawFeedbackEdgeSourceAction,
48
40
  FeedbackEdgeRouteMovingMouseListener,
@@ -51,12 +43,12 @@ import {
51
43
  HideEdgeReconnectHandlesFeedbackAction,
52
44
  ShowEdgeReconnectHandlesFeedbackAction,
53
45
  SwitchRoutingModeAction
54
- } from "../tool-feedback/edge-edit-tool-feedback";
55
- import { BaseGLSPTool } from "./base-glsp-tool";
46
+ } from '../tool-feedback/edge-edit-tool-feedback';
47
+ import { BaseGLSPTool } from './base-glsp-tool';
56
48
 
57
49
  @injectable()
58
50
  export class EdgeEditTool extends BaseGLSPTool {
59
- static ID = "glsp.edge-edit-tool";
51
+ static ID = 'glsp.edge-edit-tool';
60
52
 
61
53
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
62
54
  @inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
@@ -121,7 +113,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
121
113
  return edge !== undefined && edge.id !== feedbackEdgeId(edge.root) && isSelected(edge);
122
114
  }
123
115
 
124
- protected setEdgeSelected(edge: SRoutableElement) {
116
+ protected setEdgeSelected(edge: SRoutableElement): void {
125
117
  if (this.edge && this.edge.id !== edge.id) {
126
118
  // reset from a previously selected edge
127
119
  this.reset();
@@ -143,18 +135,22 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
143
135
  return this.edge !== undefined && isSelected(this.edge);
144
136
  }
145
137
 
146
- protected setReconnectHandleSelected(edge: SRoutableElement, reconnectHandle: SReconnectHandle) {
138
+ protected setReconnectHandleSelected(edge: SRoutableElement, reconnectHandle: SReconnectHandle): void {
147
139
  if (this.edge && this.edge.target && this.edge.source) {
148
140
  if (isSourceRoutingHandle(edge, reconnectHandle)) {
149
- this.tool.dispatchFeedback([new HideEdgeReconnectHandlesFeedbackAction(),
150
- cursorFeedbackAction(CursorCSS.EDGE_RECONNECT),
151
- new DrawFeedbackEdgeSourceAction(this.edge.type, this.edge.targetId)]);
152
- this.reconnectMode = "NEW_SOURCE";
141
+ this.tool.dispatchFeedback([
142
+ new HideEdgeReconnectHandlesFeedbackAction(),
143
+ cursorFeedbackAction(CursorCSS.EDGE_RECONNECT),
144
+ new DrawFeedbackEdgeSourceAction(this.edge.type, this.edge.targetId)
145
+ ]);
146
+ this.reconnectMode = 'NEW_SOURCE';
153
147
  } else if (isTargetRoutingHandle(edge, reconnectHandle)) {
154
- this.tool.dispatchFeedback([new HideEdgeReconnectHandlesFeedbackAction(),
155
- cursorFeedbackAction(CursorCSS.EDGE_CREATION_TARGET),
156
- new DrawFeedbackEdgeAction(this.edge.type, this.edge.sourceId)]);
157
- this.reconnectMode = "NEW_TARGET";
148
+ this.tool.dispatchFeedback([
149
+ new HideEdgeReconnectHandlesFeedbackAction(),
150
+ cursorFeedbackAction(CursorCSS.EDGE_CREATION_TARGET),
151
+ new DrawFeedbackEdgeAction(this.edge.type, this.edge.sourceId)
152
+ ]);
153
+ this.reconnectMode = 'NEW_TARGET';
158
154
  }
159
155
  }
160
156
  }
@@ -164,10 +160,10 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
164
160
  }
165
161
 
166
162
  protected isReconnectingNewSource(): boolean {
167
- return this.reconnectMode === "NEW_SOURCE";
163
+ return this.reconnectMode === 'NEW_SOURCE';
168
164
  }
169
165
 
170
- protected setRoutingHandleSelected(edge: SRoutableElement, routingHandle: SRoutingHandle) {
166
+ protected setRoutingHandleSelected(edge: SRoutableElement, routingHandle: SRoutingHandle): void {
171
167
  if (this.edge && this.edge.target && this.edge.source) {
172
168
  this.routingHandle = routingHandle;
173
169
  }
@@ -177,15 +173,15 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
177
173
  return this.edge !== undefined && (this.edge.sourceId !== sourceId || this.edge.targetId !== targetId);
178
174
  }
179
175
 
180
- protected setNewConnectable(connectable?: SModelElement & Connectable) {
176
+ protected setNewConnectable(connectable?: SModelElement & Connectable): void {
181
177
  this.newConnectable = connectable;
182
178
  }
183
179
 
184
- protected isReadyToReconnect() {
180
+ protected isReadyToReconnect(): boolean | undefined {
185
181
  return this.edge && this.isReconnecting() && this.newConnectable !== undefined;
186
182
  }
187
183
 
188
- protected isReadyToReroute() {
184
+ protected isReadyToReroute(): boolean {
189
185
  return this.routingHandle !== undefined;
190
186
  }
191
187
 
@@ -235,7 +231,8 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
235
231
  }
236
232
  this.reset();
237
233
  } else if (this.edge && this.routingHandle) {
238
- // we need to re-retrieve the edge as it might have changed due to a server udpate since we do not reset the state between reroute actions
234
+ // we need to re-retrieve the edge as it might have changed due to a server update since we do not reset the state between
235
+ // reroute actions
239
236
  const latestEdge = target.index.getById(this.edge.id);
240
237
  if (latestEdge && isRoutable(latestEdge)) {
241
238
  result.push(new ChangeRoutingPointsOperation([{ elementId: latestEdge.id, newRoutingPoints: latestEdge.routingPoints }]));
@@ -251,9 +248,10 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
251
248
  if (!this.newConnectable || currentTarget !== this.newConnectable) {
252
249
  this.setNewConnectable(currentTarget);
253
250
  if (currentTarget) {
254
- if ((this.reconnectMode === 'NEW_SOURCE' && currentTarget.canConnect(this.edge, "source")) ||
255
- (this.reconnectMode === 'NEW_TARGET' && currentTarget.canConnect(this.edge, "target"))) {
256
-
251
+ if (
252
+ (this.reconnectMode === 'NEW_SOURCE' && currentTarget.canConnect(this.edge, 'source')) ||
253
+ (this.reconnectMode === 'NEW_TARGET' && currentTarget.canConnect(this.edge, 'target'))
254
+ ) {
257
255
  this.tool.dispatchFeedback([cursorFeedbackAction(CursorCSS.EDGE_RECONNECT)]);
258
256
  return [];
259
257
  }
@@ -293,25 +291,24 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
293
291
  }
294
292
  }
295
293
 
296
- public reset() {
294
+ public reset(): void {
297
295
  this.resetFeedback();
298
296
  this.resetData();
299
297
  }
300
298
 
301
- protected resetData() {
299
+ protected resetData(): void {
302
300
  this.edge = undefined;
303
301
  this.reconnectMode = undefined;
304
302
  this.newConnectable = undefined;
305
303
  this.routingHandle = undefined;
306
304
  }
307
305
 
308
- protected resetFeedback() {
306
+ protected resetFeedback(): void {
309
307
  const result: Action[] = [];
310
308
  if (this.edge) {
311
309
  result.push(new SwitchRoutingModeAction([], [this.edge.id]));
312
310
  }
313
- result.push(...[new HideEdgeReconnectHandlesFeedbackAction(),
314
- cursorFeedbackAction(), new RemoveFeedbackEdgeAction()]);
311
+ result.push(...[new HideEdgeReconnectHandlesFeedbackAction(), cursorFeedbackAction(), new RemoveFeedbackEdgeAction()]);
315
312
  this.tool.deregisterFeedback(result);
316
313
  this.tool.deregisterFeedbackListeners();
317
314
  }
@@ -13,18 +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 { inject, injectable } from "inversify";
17
- import { Action, BoundsAware, EnableDefaultToolsAction, isSelectable, KeyListener, Point, SEdge, SelectAction, SModelElement, SNode, TYPES } from "sprotty";
18
- import { DragAwareMouseListener } from "../../base/drag-aware-mouse-listener";
19
- import { CursorCSS, cursorFeedbackAction } from "../tool-feedback/css-feedback";
20
- import { DrawMarqueeAction, RemoveMarqueeAction } from "../tool-feedback/marquee-tool-feedback";
21
- import { BaseGLSPTool } from "../tools/base-glsp-tool";
22
- import { getAbsolutePosition, toAbsoluteBounds } from "../../utils/viewpoint-util";
23
- import { DOMHelper } from "sprotty/lib/base/views/dom-helper";
16
+ import { Action, Point, SelectAction } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import { BoundsAware, EnableDefaultToolsAction, isSelectable, isSelected, KeyListener, SEdge, SModelElement, SNode, TYPES } from 'sprotty';
19
+ import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
20
+ import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
21
+ import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
22
+ import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
23
+ import { DrawMarqueeAction, RemoveMarqueeAction } from '../tool-feedback/marquee-tool-feedback';
24
+ import { BaseGLSPTool } from '../tools/base-glsp-tool';
24
25
 
25
26
  @injectable()
26
27
  export class MarqueeMouseTool extends BaseGLSPTool {
27
- static ID = "glsp.marquee-mouse-tool";
28
+ static ID = 'glsp.marquee-mouse-tool';
28
29
 
29
30
  @inject(TYPES.DOMHelper) protected domHelper: DOMHelper;
30
31
 
@@ -51,14 +52,15 @@ export class MarqueeMouseTool extends BaseGLSPTool {
51
52
 
52
53
  @injectable()
53
54
  export class MarqueeMouseListener extends DragAwareMouseListener {
54
-
55
55
  protected startPoint: Point;
56
56
 
57
57
  protected currentPoint: Point;
58
58
 
59
59
  protected domHelper: DOMHelper;
60
60
 
61
- protected isActive: boolean = false;
61
+ protected previouslySelected: string[];
62
+
63
+ protected isActive = false;
62
64
 
63
65
  constructor(domHelper: DOMHelper) {
64
66
  super();
@@ -68,24 +70,36 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
68
70
  mouseDown(target: SModelElement, event: MouseEvent): Action[] {
69
71
  this.isActive = true;
70
72
  this.startPoint = { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y };
73
+ if (event.ctrlKey) {
74
+ this.previouslySelected = Array.from(
75
+ target.root.index
76
+ .all()
77
+ .map(e => e as SModelElement & BoundsAware)
78
+ .filter(e => isSelected(e))
79
+ .map(e => e.id)
80
+ );
81
+ }
71
82
  return [];
72
83
  }
73
84
 
74
85
  mouseMove(target: SModelElement, event: MouseEvent): Action[] {
75
86
  this.currentPoint = { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y };
76
87
  if (this.isActive) {
77
- const nodeIdsSelected = Array.from(target.root.index.all()
78
- .map(e => e as SModelElement & BoundsAware)
79
- .filter(e => isSelectable(e))
80
- .filter(e => e instanceof SNode)
81
- .filter(e => this.isNodeMarked(e)).map(e => e.id));
88
+ const nodeIdsSelected = Array.from(
89
+ target.root.index
90
+ .all()
91
+ .map(e => e as SModelElement & BoundsAware)
92
+ .filter(e => isSelectable(e))
93
+ .filter(e => e instanceof SNode)
94
+ .filter(e => this.isNodeMarked(e))
95
+ .map(e => e.id)
96
+ );
82
97
  const edgeIdsSelected = this.getMarkedEdges(target.root);
83
98
  const selected = nodeIdsSelected.concat(edgeIdsSelected);
84
99
  return [
85
- new SelectAction([], Array.from(target.index.all().map(e => e.id))),
86
- new SelectAction(selected, []),
87
- new DrawMarqueeAction(this.startPoint,
88
- { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y })
100
+ new SelectAction([], Array.from(target.root.index.all().map(e => e.id))),
101
+ new SelectAction(selected.concat(this.previouslySelected), []),
102
+ new DrawMarqueeAction(this.startPoint, { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y })
89
103
  ];
90
104
  }
91
105
  return [];
@@ -100,25 +114,34 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
100
114
  }
101
115
 
102
116
  getMarkedEdges(root: SModelElement): string[] {
103
- const elements = Array.from(document.querySelectorAll("g"));
104
- const edges = Array.from(root.index.all().filter(e => e instanceof SEdge).
105
- filter(e => isSelectable(e)).map(e => e.id));
106
- return elements.filter(e => edges.includes(this.domHelper.findSModelIdByDOMElement(e)))
107
- .filter(e => this.isEdgeMarked(e)).map(e => this.domHelper.findSModelIdByDOMElement(e));
117
+ const elements = Array.from(document.querySelectorAll('g'));
118
+ const edges = Array.from(
119
+ root.index
120
+ .all()
121
+ .filter(e => e instanceof SEdge)
122
+ .filter(e => isSelectable(e))
123
+ .map(e => e.id)
124
+ );
125
+ return elements
126
+ .filter(e => edges.includes(this.domHelper.findSModelIdByDOMElement(e)))
127
+ .filter(e => this.isEdgeMarked(e))
128
+ .map(e => this.domHelper.findSModelIdByDOMElement(e));
108
129
  }
109
130
 
110
131
  isEdgeMarked(element: SVGElement): boolean {
111
- if (element.getAttribute("transform") == null) {
112
- if (element.children[0] != null) {
113
- const path = element.children[0].getAttribute("d");
114
- if (path != null) {
132
+ if (!element.getAttribute('transform')) {
133
+ if (element.children[0]) {
134
+ const path = element.children[0].getAttribute('d');
135
+ if (path) {
115
136
  const points = path.split(/M|L/);
116
137
  for (let i = 0; i < points.length - 1; i++) {
117
- const coord1 = points[i].split(",");
118
- const coord2 = points[i + 1].split(",");
119
- const point1 = { x: parseInt(coord1[0]), y: parseInt(coord1[1]) };
120
- const point2 = { x: parseInt(coord2[0]), y: parseInt(coord2[1]) };
121
- if (this.isLineMarked(point1, point2)) return true;
138
+ const coord1 = points[i].split(',');
139
+ const coord2 = points[i + 1].split(',');
140
+ const point1 = { x: parseInt(coord1[0], 10), y: parseInt(coord1[1], 10) };
141
+ const point2 = { x: parseInt(coord2[0], 10), y: parseInt(coord2[1], 10) };
142
+ if (this.isLineMarked(point1, point2)) {
143
+ return true;
144
+ }
122
145
  }
123
146
  }
124
147
  }
@@ -127,47 +150,69 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
127
150
  }
128
151
 
129
152
  isLineMarked(point1: Point, point2: Point): boolean {
130
- if (this.pointInRect(point1) || this.pointInRect(point2)) return true;
131
- if (this.linesIntersect(point1, point2, this.startPoint, { x: this.startPoint.x, y: this.currentPoint.y })) return true;
132
- if (this.linesIntersect(point1, point2, this.startPoint, { x: this.currentPoint.x, y: this.startPoint.y })) return true;
133
- if (this.linesIntersect(point1, point2, { x: this.currentPoint.x, y: this.startPoint.y }, this.currentPoint)) return true;
134
- if (this.linesIntersect(point1, point2, { x: this.startPoint.x, y: this.currentPoint.y }, this.currentPoint)) return true;
153
+ if (this.pointInRect(point1) || this.pointInRect(point2)) {
154
+ return true;
155
+ }
156
+ if (this.linesIntersect(point1, point2, this.startPoint, { x: this.startPoint.x, y: this.currentPoint.y })) {
157
+ return true;
158
+ }
159
+ if (this.linesIntersect(point1, point2, this.startPoint, { x: this.currentPoint.x, y: this.startPoint.y })) {
160
+ return true;
161
+ }
162
+ if (this.linesIntersect(point1, point2, { x: this.currentPoint.x, y: this.startPoint.y }, this.currentPoint)) {
163
+ return true;
164
+ }
165
+ if (this.linesIntersect(point1, point2, { x: this.startPoint.x, y: this.currentPoint.y }, this.currentPoint)) {
166
+ return true;
167
+ }
135
168
  return false;
136
169
  }
137
170
 
138
171
  linesIntersect(p1: Point, p2: Point, p3: Point, p4: Point): boolean {
139
- const tCount = ((p1.x - p3.x) * (p3.y - p4.y)) - ((p1.y - p3.y) * (p3.x - p4.x));
140
- const tDenom = ((p1.x - p2.x) * (p3.y - p4.y)) - ((p1.y - p2.y) * (p3.x - p4.x));
172
+ const tCount = (p1.x - p3.x) * (p3.y - p4.y) - (p1.y - p3.y) * (p3.x - p4.x);
173
+ const tDenom = (p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x);
141
174
  const t = tCount / tDenom;
142
- const uCount = ((p2.x - p1.x) * (p1.y - p3.y)) - ((p2.y - p1.y) * (p1.x - p3.x));
143
- const uDenom = ((p1.x - p2.x) * (p3.y - p4.y)) - ((p1.y - p2.y) * (p3.x - p4.x));
175
+ const uCount = (p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x);
176
+ const uDenom = (p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x);
144
177
  const u = uCount / uDenom;
145
- if (t >= 0.0 && t <= 1.0 && u >= 0.0 && u <= 1.0) return true;
178
+ if (t >= 0.0 && t <= 1.0 && u >= 0.0 && u <= 1.0) {
179
+ return true;
180
+ }
146
181
  return false;
147
182
  }
148
183
 
149
184
  pointInRect(point: Point): boolean {
150
- const boolX = this.startPoint.x <= this.currentPoint.x ?
151
- this.isBetween(point.x, this.startPoint.x, this.currentPoint.x) : this.isBetween(point.x, this.currentPoint.x, this.startPoint.x);
152
- const boolY = this.startPoint.y <= this.currentPoint.y ?
153
- this.isBetween(point.y, this.startPoint.y, this.currentPoint.y) : this.isBetween(point.y, this.currentPoint.y, this.startPoint.y);
185
+ const boolX =
186
+ this.startPoint.x <= this.currentPoint.x
187
+ ? this.isBetween(point.x, this.startPoint.x, this.currentPoint.x)
188
+ : this.isBetween(point.x, this.currentPoint.x, this.startPoint.x);
189
+ const boolY =
190
+ this.startPoint.y <= this.currentPoint.y
191
+ ? this.isBetween(point.y, this.startPoint.y, this.currentPoint.y)
192
+ : this.isBetween(point.y, this.currentPoint.y, this.startPoint.y);
154
193
  return boolX && boolY;
155
194
  }
156
195
 
157
196
  isNodeMarked(element: SModelElement & BoundsAware): boolean {
158
- const horizontallyIn = this.startPoint.x < this.currentPoint.x ?
159
- this.isElementBetweenXAxis(element, this.startPoint.x, this.currentPoint.x) :
160
- this.isElementBetweenXAxis(element, this.currentPoint.x, this.startPoint.x);
161
- const verticallyIn = this.startPoint.y < this.currentPoint.y ?
162
- this.isElementBetweenYAxis(element, this.startPoint.y, this.currentPoint.y) :
163
- this.isElementBetweenYAxis(element, this.currentPoint.y, this.startPoint.y);
164
- if (horizontallyIn && verticallyIn) return true;
197
+ const horizontallyIn =
198
+ this.startPoint.x < this.currentPoint.x
199
+ ? this.isElementBetweenXAxis(element, this.startPoint.x, this.currentPoint.x)
200
+ : this.isElementBetweenXAxis(element, this.currentPoint.x, this.startPoint.x);
201
+ const verticallyIn =
202
+ this.startPoint.y < this.currentPoint.y
203
+ ? this.isElementBetweenYAxis(element, this.startPoint.y, this.currentPoint.y)
204
+ : this.isElementBetweenYAxis(element, this.currentPoint.y, this.startPoint.y);
205
+ if (horizontallyIn && verticallyIn) {
206
+ return true;
207
+ }
165
208
  return false;
166
209
  }
167
210
 
168
211
  isElementBetweenXAxis(element: SModelElement & BoundsAware, marqueeLeft: number, marqueeRight: number): boolean {
169
- if (this.isBetween(marqueeLeft, toAbsoluteBounds(element).x, toAbsoluteBounds(element).x + toAbsoluteBounds(element).width)
170
- || this.isBetween(marqueeRight, toAbsoluteBounds(element).x, toAbsoluteBounds(element).x + toAbsoluteBounds(element).width)) {
212
+ if (
213
+ this.isBetween(marqueeLeft, toAbsoluteBounds(element).x, toAbsoluteBounds(element).x + toAbsoluteBounds(element).width) ||
214
+ this.isBetween(marqueeRight, toAbsoluteBounds(element).x, toAbsoluteBounds(element).x + toAbsoluteBounds(element).width)
215
+ ) {
171
216
  return true;
172
217
  }
173
218
  const leftEdge = this.isBetween(toAbsoluteBounds(element).x, marqueeLeft, marqueeRight);
@@ -176,8 +221,10 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
176
221
  }
177
222
 
178
223
  isElementBetweenYAxis(element: SModelElement & BoundsAware, marqueeTop: number, marqueeBottom: number): boolean {
179
- if (this.isBetween(marqueeTop, toAbsoluteBounds(element).y, toAbsoluteBounds(element).y + toAbsoluteBounds(element).height)
180
- || this.isBetween(marqueeBottom, toAbsoluteBounds(element).y, toAbsoluteBounds(element).y + toAbsoluteBounds(element).height)) {
224
+ if (
225
+ this.isBetween(marqueeTop, toAbsoluteBounds(element).y, toAbsoluteBounds(element).y + toAbsoluteBounds(element).height) ||
226
+ this.isBetween(marqueeBottom, toAbsoluteBounds(element).y, toAbsoluteBounds(element).y + toAbsoluteBounds(element).height)
227
+ ) {
181
228
  return true;
182
229
  }
183
230
  const topEdge = this.isBetween(toAbsoluteBounds(element).y, marqueeTop, marqueeBottom);
@@ -186,15 +233,15 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
186
233
  }
187
234
 
188
235
  isBetween(x: number, lower: number, upper: number): boolean {
189
- if (lower <= x && x <= upper) return true;
236
+ if (lower <= x && x <= upper) {
237
+ return true;
238
+ }
190
239
  return false;
191
240
  }
192
-
193
241
  }
194
242
 
195
243
  @injectable()
196
244
  export class ShiftKeyListener extends KeyListener {
197
-
198
245
  keyUp(element: SModelElement, event: KeyboardEvent): Action[] {
199
246
  if (event.shiftKey) {
200
247
  return [];
@@ -13,14 +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 { inject, injectable } from "inversify";
17
- import { Action, EnableToolsAction, KeyListener, KeyTool, SModelElement } from "sprotty";
18
- import { BaseGLSPTool } from "../tools/base-glsp-tool";
19
- import { MarqueeMouseTool } from "./marquee-mouse-tool";
16
+ import { Action } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import { EnableToolsAction, KeyListener, KeyTool, SModelElement } from 'sprotty';
19
+ import { BaseGLSPTool } from '../tools/base-glsp-tool';
20
+ import { MarqueeMouseTool } from './marquee-mouse-tool';
20
21
 
21
22
  @injectable()
22
23
  export class MarqueeTool extends BaseGLSPTool {
23
- static ID = "glsp.marquee-tool";
24
+ static ID = 'glsp.marquee-tool';
24
25
 
25
26
  protected marqueeKeyListener: MarqueeKeyListener = new MarqueeKeyListener();
26
27
 
@@ -41,7 +42,6 @@ export class MarqueeTool extends BaseGLSPTool {
41
42
 
42
43
  @injectable()
43
44
  export class MarqueeKeyListener extends KeyListener {
44
-
45
45
  keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
46
46
  if (event.shiftKey) {
47
47
  return [new EnableToolsAction([MarqueeMouseTool.ID])];
@@ -13,8 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
-
17
- import { boundsFeature, Point, RectangularNode } from "sprotty";
16
+ import { boundsFeature, Point, RectangularNode } from 'sprotty';
18
17
 
19
18
  export class MarqueeNode extends RectangularNode {
20
19
  static readonly DEFAULT_FEATURES = [boundsFeature];
@@ -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,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable, optional } from "inversify";
16
+ import { Action, CreateNodeOperation, isTriggerNodeCreationAction, TriggerNodeCreationAction } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, optional } from 'inversify';
17
18
  import {
18
- Action,
19
19
  EnableDefaultToolsAction,
20
20
  EnableToolsAction,
21
21
  findParentByFeature,
@@ -25,22 +25,16 @@ import {
25
25
  SModelElement,
26
26
  SNode,
27
27
  TYPES
28
- } from "sprotty";
29
-
30
- import { DragAwareMouseListener } from "../../base/drag-aware-mouse-listener";
31
- import {
32
- CreateNodeOperation,
33
- isTriggerNodeCreationAction,
34
- TriggerNodeCreationAction
35
- } from "../../base/operations/operation";
36
- import { getAbsolutePosition } from "../../utils/viewpoint-util";
37
- import { Containable, isContainable } from "../hints/model";
38
- import { CursorCSS, cursorFeedbackAction } from "../tool-feedback/css-feedback";
39
- import { BaseGLSPTool } from "./base-glsp-tool";
28
+ } from 'sprotty';
29
+ import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
30
+ import { getAbsolutePosition } from '../../utils/viewpoint-util';
31
+ import { Containable, isContainable } from '../hints/model';
32
+ import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
33
+ import { BaseGLSPTool } from './base-glsp-tool';
40
34
 
41
35
  @injectable()
42
36
  export class NodeCreationTool extends BaseGLSPTool implements IActionHandler {
43
- static ID = "tool_create_node";
37
+ static ID = 'tool_create_node';
44
38
 
45
39
  @inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
46
40
 
@@ -51,7 +45,7 @@ export class NodeCreationTool extends BaseGLSPTool implements IActionHandler {
51
45
  return NodeCreationTool.ID;
52
46
  }
53
47
 
54
- enable() {
48
+ enable(): void {
55
49
  if (this.triggerAction === undefined) {
56
50
  throw new TypeError(`Could not enable tool ${this.id}.The triggerAction cannot be undefined.`);
57
51
  }
@@ -60,7 +54,7 @@ export class NodeCreationTool extends BaseGLSPTool implements IActionHandler {
60
54
  this.dispatchFeedback([cursorFeedbackAction(CursorCSS.NODE_CREATION)]);
61
55
  }
62
56
 
63
- disable() {
57
+ disable(): void {
64
58
  this.mouseTool.deregister(this.creationToolMouseListener);
65
59
  this.deregisterFeedback([cursorFeedbackAction()]);
66
60
  }
@@ -75,18 +69,17 @@ export class NodeCreationTool extends BaseGLSPTool implements IActionHandler {
75
69
 
76
70
  @injectable()
77
71
  export class NodeCreationToolMouseListener extends DragAwareMouseListener {
78
-
79
72
  protected container?: SModelElement & Containable;
80
73
 
81
74
  constructor(protected triggerAction: TriggerNodeCreationAction, protected tool: NodeCreationTool) {
82
75
  super();
83
76
  }
84
77
 
85
- protected creationAllowed(elementTypeId: string) {
78
+ protected creationAllowed(elementTypeId: string): boolean | undefined {
86
79
  return this.container && this.container.isContainableElement(elementTypeId);
87
80
  }
88
81
 
89
- get elementTypeId() {
82
+ get elementTypeId(): string {
90
83
  return this.triggerAction.elementTypeId;
91
84
  }
92
85
 
@@ -114,8 +107,8 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
114
107
  if (!this.container || currentContainer !== this.container) {
115
108
  this.container = currentContainer;
116
109
  const feedback = this.creationAllowed(this.elementTypeId)
117
- ? cursorFeedbackAction(CursorCSS.NODE_CREATION) :
118
- cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED);
110
+ ? cursorFeedbackAction(CursorCSS.NODE_CREATION)
111
+ : cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED);
119
112
  this.tool.dispatchFeedback([feedback]);
120
113
  }
121
114
  return [];
@@ -13,26 +13,32 @@
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 { VNode } from 'snabbdom';
18
+ import { RectangularNodeView, RenderingContext, svg } from 'sprotty';
16
19
 
17
- import { injectable } from "inversify";
18
- import * as snabbdom from "snabbdom-jsx";
19
- import { VNode } from "snabbdom/vnode";
20
- import { RectangularNodeView, RenderingContext } from "sprotty";
21
- import { MarqueeNode } from "./model";
20
+ import { MarqueeNode } from './model';
22
21
 
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
  @injectable()
26
26
  export class MarqueeView extends RectangularNodeView {
27
27
  render(node: MarqueeNode, context: RenderingContext): VNode {
28
- const graph = <g>
29
- <rect class-sprotty-node={true} class-marquee={true}
30
- x={((node.startPoint.x - node.endPoint.x) <= 0) ? node.startPoint.x : node.endPoint.x}
31
- y={((node.startPoint.y - node.endPoint.y) <= 0) ? node.startPoint.y : node.endPoint.y}
32
- rx={0} ry={0}
33
- width={Math.abs(node.startPoint.x - node.endPoint.x)}
34
- height={Math.abs(node.startPoint.y - node.endPoint.y)}></rect>
35
- </g>;
28
+ const graph = (
29
+ <g>
30
+ <rect
31
+ class-sprotty-node={true}
32
+ class-marquee={true}
33
+ x={node.startPoint.x - node.endPoint.x <= 0 ? node.startPoint.x : node.endPoint.x}
34
+ y={node.startPoint.y - node.endPoint.y <= 0 ? node.startPoint.y : node.endPoint.y}
35
+ rx={0}
36
+ ry={0}
37
+ width={Math.abs(node.startPoint.x - node.endPoint.x)}
38
+ height={Math.abs(node.startPoint.y - node.endPoint.y)}
39
+ ></rect>
40
+ </g>
41
+ );
36
42
  return graph;
37
43
  }
38
- }
44
+ }