@eclipse-glsp/client 0.10.0-next.ca17587.154 → 0.10.0-next.e5fcffe.169

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 (501) hide show
  1. package/css/glsp-sprotty.css +110 -8
  2. package/lib/base/action-dispatcher.d.ts +4 -3
  3. package/lib/base/action-dispatcher.d.ts.map +1 -1
  4. package/lib/base/action-dispatcher.js +22 -12
  5. package/lib/base/action-dispatcher.js.map +1 -1
  6. package/lib/base/actions/focus-change-action.d.ts +16 -7
  7. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  8. package/lib/base/actions/focus-change-action.js +31 -12
  9. package/lib/base/actions/focus-change-action.js.map +1 -1
  10. package/lib/base/actions/sprotty-actions.d.ts +7 -0
  11. package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
  12. package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
  13. package/lib/base/actions/sprotty-actions.js.map +1 -0
  14. package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
  15. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  16. package/lib/base/auto-complete/auto-complete-actions.js +24 -5
  17. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  18. package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
  19. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  20. package/lib/base/auto-complete/auto-complete-widget.js +16 -9
  21. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  22. package/lib/base/auto-complete/validation-decorator.js +2 -2
  23. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  24. package/lib/base/command-stack.d.ts.map +1 -1
  25. package/lib/base/command-stack.js +6 -5
  26. package/lib/base/command-stack.js.map +1 -1
  27. package/lib/base/di.config.d.ts +1 -1
  28. package/lib/base/di.config.d.ts.map +1 -1
  29. package/lib/base/di.config.js +13 -14
  30. package/lib/base/di.config.js.map +1 -1
  31. package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
  32. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  33. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  34. package/lib/base/editor-context-service.d.ts +13 -1
  35. package/lib/base/editor-context-service.d.ts.map +1 -1
  36. package/lib/base/editor-context-service.js +23 -10
  37. package/lib/base/editor-context-service.js.map +1 -1
  38. package/lib/base/focus-tracker.d.ts +1 -1
  39. package/lib/base/focus-tracker.d.ts.map +1 -1
  40. package/lib/base/focus-tracker.js +4 -4
  41. package/lib/base/focus-tracker.js.map +1 -1
  42. package/lib/base/model/model-registry.d.ts.map +1 -1
  43. package/lib/base/model/model-registry.js +2 -2
  44. package/lib/base/model/model-registry.js.map +1 -1
  45. package/lib/base/model/update-model-command.d.ts +1 -1
  46. package/lib/base/model/update-model-command.d.ts.map +1 -1
  47. package/lib/base/model/update-model-command.js +15 -15
  48. package/lib/base/model/update-model-command.js.map +1 -1
  49. package/lib/base/model-initialization-constraint.d.ts +4 -5
  50. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  51. package/lib/base/model-initialization-constraint.js +11 -13
  52. package/lib/base/model-initialization-constraint.js.map +1 -1
  53. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  54. package/lib/base/selection-clearing-mouse-listener.js +1 -1
  55. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  56. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  57. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  58. package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
  59. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  60. package/lib/base/tool-manager/tool-actions.d.ts +14 -0
  61. package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
  62. package/lib/base/tool-manager/tool-actions.js +25 -0
  63. package/lib/base/tool-manager/tool-actions.js.map +1 -0
  64. package/lib/base/types.d.ts +144 -20
  65. package/lib/base/types.d.ts.map +1 -1
  66. package/lib/base/types.js +14 -26
  67. package/lib/base/types.js.map +1 -1
  68. package/lib/base/view/view-registry.d.ts.map +1 -1
  69. package/lib/base/view/view-registry.js +2 -2
  70. package/lib/base/view/view-registry.js.map +1 -1
  71. package/lib/features/change-bounds/model.d.ts +1 -1
  72. package/lib/features/change-bounds/model.d.ts.map +1 -1
  73. package/lib/features/change-bounds/model.js +3 -3
  74. package/lib/features/change-bounds/model.js.map +1 -1
  75. package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
  76. package/lib/features/change-bounds/movement-restrictor.js +6 -6
  77. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  78. package/lib/features/change-bounds/snap.d.ts +42 -1
  79. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  80. package/lib/features/change-bounds/snap.js +78 -2
  81. package/lib/features/change-bounds/snap.js.map +1 -1
  82. package/lib/features/change-bounds/snap.spec.d.ts +17 -0
  83. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  84. package/lib/features/change-bounds/snap.spec.js +82 -0
  85. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  86. package/lib/features/command-palette/command-palette-tool.js +3 -3
  87. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  88. package/lib/features/command-palette/di.config.d.ts +2 -2
  89. package/lib/features/command-palette/di.config.d.ts.map +1 -1
  90. package/lib/features/command-palette/di.config.js +6 -6
  91. package/lib/features/command-palette/di.config.js.map +1 -1
  92. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
  93. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  94. package/lib/features/command-palette/server-command-palette-provider.js +13 -10
  95. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  96. package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
  97. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  98. package/lib/features/context-menu/delete-element-context-menu.js +4 -4
  99. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  100. package/lib/features/context-menu/di.config.d.ts +1 -1
  101. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  102. package/lib/features/context-menu/di.config.js +8 -7
  103. package/lib/features/context-menu/di.config.js.map +1 -1
  104. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +33 -1
  105. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  106. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +41 -28
  107. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  108. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
  109. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  110. package/lib/features/context-menu/server-context-menu-provider.js +8 -7
  111. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  112. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
  113. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  114. package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
  115. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  116. package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
  117. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  118. package/lib/features/copy-paste/copy-paste-handler.js +10 -11
  119. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  120. package/lib/features/copy-paste/di.config.d.ts +1 -1
  121. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  122. package/lib/features/copy-paste/di.config.js +5 -7
  123. package/lib/features/copy-paste/di.config.js.map +1 -1
  124. package/lib/features/decoration/decoration-placer.d.ts +1 -1
  125. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  126. package/lib/features/decoration/decoration-placer.js +19 -3
  127. package/lib/features/decoration/decoration-placer.js.map +1 -1
  128. package/lib/features/decoration/di.config.d.ts +2 -2
  129. package/lib/features/decoration/di.config.d.ts.map +1 -1
  130. package/lib/features/decoration/di.config.js +4 -4
  131. package/lib/features/decoration/di.config.js.map +1 -1
  132. package/lib/features/edit-label/di.config.d.ts +1 -1
  133. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  134. package/lib/features/edit-label/di.config.js +5 -5
  135. package/lib/features/edit-label/di.config.js.map +1 -1
  136. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  137. package/lib/features/edit-label/edit-label-tool.js +2 -2
  138. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  139. package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
  140. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  141. package/lib/features/edit-label/edit-label-validator.js +11 -13
  142. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  143. package/lib/features/hints/di.config.js +4 -4
  144. package/lib/features/hints/di.config.js.map +1 -1
  145. package/lib/features/hints/type-hints.d.ts +15 -5
  146. package/lib/features/hints/type-hints.d.ts.map +1 -1
  147. package/lib/features/hints/type-hints.js +29 -26
  148. package/lib/features/hints/type-hints.js.map +1 -1
  149. package/lib/features/hover/di.config.d.ts +1 -1
  150. package/lib/features/hover/di.config.d.ts.map +1 -1
  151. package/lib/features/hover/di.config.js +14 -10
  152. package/lib/features/hover/di.config.js.map +1 -1
  153. package/lib/features/hover/hover.d.ts +16 -4
  154. package/lib/features/hover/hover.d.ts.map +1 -1
  155. package/lib/features/hover/hover.js +42 -4
  156. package/lib/features/hover/hover.js.map +1 -1
  157. package/lib/features/layout/di.config.d.ts +1 -1
  158. package/lib/features/layout/di.config.d.ts.map +1 -1
  159. package/lib/features/layout/di.config.js +6 -4
  160. package/lib/features/layout/di.config.js.map +1 -1
  161. package/lib/features/layout/freeform-layout.d.ts +17 -1
  162. package/lib/features/layout/freeform-layout.d.ts.map +1 -1
  163. package/lib/features/layout/freeform-layout.js +4 -4
  164. package/lib/features/layout/freeform-layout.js.map +1 -1
  165. package/lib/features/layout/hbox-layout.d.ts +41 -0
  166. package/lib/features/layout/hbox-layout.d.ts.map +1 -0
  167. package/lib/features/layout/hbox-layout.js +189 -0
  168. package/lib/features/layout/hbox-layout.js.map +1 -0
  169. package/lib/features/layout/layout-commands.d.ts +65 -38
  170. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  171. package/lib/features/layout/layout-commands.js +90 -67
  172. package/lib/features/layout/layout-commands.js.map +1 -1
  173. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  174. package/lib/features/layout/layout-commands.spec.js +35 -23
  175. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  176. package/lib/features/layout/vbox-layout.d.ts +17 -1
  177. package/lib/features/layout/vbox-layout.d.ts.map +1 -1
  178. package/lib/features/layout/vbox-layout.js +9 -8
  179. package/lib/features/layout/vbox-layout.js.map +1 -1
  180. package/lib/features/model-source-watcher/di.config.js +1 -1
  181. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  182. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
  183. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  184. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
  185. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  186. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  187. package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
  188. package/lib/features/mouse-tool/di.config.js +2 -2
  189. package/lib/features/mouse-tool/di.config.js.map +1 -1
  190. package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
  191. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  192. package/lib/features/mouse-tool/mouse-tool.js +11 -53
  193. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  194. package/lib/features/navigation/di.config.js +4 -4
  195. package/lib/features/navigation/di.config.js.map +1 -1
  196. package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
  197. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  198. package/lib/features/navigation/navigation-action-handler.js +52 -68
  199. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  200. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  201. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  202. package/lib/features/navigation/navigation-target-resolver.js +8 -9
  203. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  204. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  205. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  206. package/lib/features/reconnect/model.d.ts +1 -1
  207. package/lib/features/reconnect/model.d.ts.map +1 -1
  208. package/lib/features/reconnect/model.js +1 -1
  209. package/lib/features/reconnect/model.js.map +1 -1
  210. package/lib/features/save/di.config.d.ts +1 -1
  211. package/lib/features/save/di.config.d.ts.map +1 -1
  212. package/lib/features/save/di.config.js +3 -3
  213. package/lib/features/save/di.config.js.map +1 -1
  214. package/lib/features/save/save-keylistener.d.ts +1 -1
  215. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  216. package/lib/features/save/save-keylistener.js +3 -3
  217. package/lib/features/save/save-keylistener.js.map +1 -1
  218. package/lib/features/select/di.config.d.ts +1 -1
  219. package/lib/features/select/di.config.d.ts.map +1 -1
  220. package/lib/features/select/di.config.js +7 -8
  221. package/lib/features/select/di.config.js.map +1 -1
  222. package/lib/features/select/select-feedback-action.d.ts +26 -22
  223. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  224. package/lib/features/select/select-feedback-action.js +19 -46
  225. package/lib/features/select/select-feedback-action.js.map +1 -1
  226. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  227. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  228. package/lib/features/select/select-mouse-listener.js +1 -1
  229. package/lib/features/select/select-mouse-listener.js.map +1 -1
  230. package/lib/features/select/selection-service.d.ts +3 -3
  231. package/lib/features/select/selection-service.d.ts.map +1 -1
  232. package/lib/features/select/selection-service.js +28 -23
  233. package/lib/features/select/selection-service.js.map +1 -1
  234. package/lib/features/select/selection-service.spec.js +28 -25
  235. package/lib/features/select/selection-service.spec.js.map +1 -1
  236. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
  237. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  238. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +67 -37
  239. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  240. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
  241. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  242. package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
  243. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  244. package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
  245. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  246. package/lib/features/tool-feedback/css-feedback.js +42 -38
  247. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  248. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  249. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  250. package/lib/features/tool-feedback/di.config.js +18 -18
  251. package/lib/features/tool-feedback/di.config.js.map +1 -1
  252. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +44 -22
  253. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  254. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +140 -114
  255. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  256. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
  257. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  258. package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
  259. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  260. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
  261. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  262. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
  263. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  264. package/lib/features/tool-feedback/model.d.ts +1 -2
  265. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  266. package/lib/features/tool-feedback/model.js +1 -1
  267. package/lib/features/tool-feedback/model.js.map +1 -1
  268. package/lib/features/tool-feedback/view.d.ts +1 -1
  269. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  270. package/lib/features/tool-feedback/view.js +22 -5
  271. package/lib/features/tool-feedback/view.js.map +1 -1
  272. package/lib/features/tool-palette/di.config.d.ts +1 -1
  273. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  274. package/lib/features/tool-palette/di.config.js +5 -4
  275. package/lib/features/tool-palette/di.config.js.map +1 -1
  276. package/lib/features/tool-palette/tool-palette.d.ts +10 -7
  277. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  278. package/lib/features/tool-palette/tool-palette.js +39 -32
  279. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  280. package/lib/features/tools/base-glsp-tool.d.ts +3 -3
  281. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  282. package/lib/features/tools/base-glsp-tool.js +11 -11
  283. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  284. package/lib/features/tools/change-bounds-tool.d.ts +7 -9
  285. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  286. package/lib/features/tools/change-bounds-tool.js +48 -71
  287. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  288. package/lib/features/tools/delete-tool.d.ts +1 -1
  289. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  290. package/lib/features/tools/delete-tool.js +17 -17
  291. package/lib/features/tools/delete-tool.js.map +1 -1
  292. package/lib/features/tools/di.config.js +12 -12
  293. package/lib/features/tools/di.config.js.map +1 -1
  294. package/lib/features/tools/edge-creation-tool.d.ts +1 -1
  295. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  296. package/lib/features/tools/edge-creation-tool.js +28 -21
  297. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  298. package/lib/features/tools/edge-edit-tool.d.ts +3 -2
  299. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  300. package/lib/features/tools/edge-edit-tool.js +41 -36
  301. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  302. package/lib/features/tools/marquee-behavior.d.ts +1 -1
  303. package/lib/features/tools/marquee-behavior.js +2 -2
  304. package/lib/features/tools/marquee-behavior.js.map +1 -1
  305. package/lib/features/tools/marquee-behavior.spec.js +63 -63
  306. package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
  307. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
  308. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  309. package/lib/features/tools/marquee-mouse-tool.js +20 -20
  310. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  311. package/lib/features/tools/marquee-tool.d.ts +1 -1
  312. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  313. package/lib/features/tools/marquee-tool.js +4 -4
  314. package/lib/features/tools/marquee-tool.js.map +1 -1
  315. package/lib/features/tools/model.d.ts +3 -2
  316. package/lib/features/tools/model.d.ts.map +1 -1
  317. package/lib/features/tools/model.js +0 -15
  318. package/lib/features/tools/model.js.map +1 -1
  319. package/lib/features/tools/node-creation-tool.d.ts +1 -1
  320. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  321. package/lib/features/tools/node-creation-tool.js +17 -17
  322. package/lib/features/tools/node-creation-tool.js.map +1 -1
  323. package/lib/features/tools/view.d.ts.map +1 -1
  324. package/lib/features/tools/view.js +2 -2
  325. package/lib/features/tools/view.js.map +1 -1
  326. package/lib/features/validation/di.config.d.ts +1 -1
  327. package/lib/features/validation/di.config.d.ts.map +1 -1
  328. package/lib/features/validation/di.config.js +7 -7
  329. package/lib/features/validation/di.config.js.map +1 -1
  330. package/lib/features/validation/marker-navigator.d.ts +16 -8
  331. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  332. package/lib/features/validation/marker-navigator.js +39 -37
  333. package/lib/features/validation/marker-navigator.js.map +1 -1
  334. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  335. package/lib/features/validation/marker-navigator.spec.js +23 -37
  336. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  337. package/lib/features/validation/validate.d.ts +10 -12
  338. package/lib/features/validation/validate.d.ts.map +1 -1
  339. package/lib/features/validation/validate.js +42 -41
  340. package/lib/features/validation/validate.js.map +1 -1
  341. package/lib/features/viewport/di.config.d.ts +1 -1
  342. package/lib/features/viewport/di.config.d.ts.map +1 -1
  343. package/lib/features/viewport/di.config.js +7 -7
  344. package/lib/features/viewport/di.config.js.map +1 -1
  345. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
  346. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  347. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
  348. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  349. package/lib/index.d.ts +4 -5
  350. package/lib/index.d.ts.map +1 -1
  351. package/lib/index.js +11 -8
  352. package/lib/index.js.map +1 -1
  353. package/lib/lib/model.d.ts +3 -2
  354. package/lib/lib/model.d.ts.map +1 -1
  355. package/lib/lib/model.js +0 -15
  356. package/lib/lib/model.js.map +1 -1
  357. package/lib/model-source/glsp-diagram-server.d.ts +5 -5
  358. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  359. package/lib/model-source/glsp-diagram-server.js +7 -6
  360. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  361. package/lib/sprotty-reexport.d.ts +174 -0
  362. package/lib/sprotty-reexport.d.ts.map +1 -0
  363. package/lib/sprotty-reexport.js +299 -0
  364. package/lib/sprotty-reexport.js.map +1 -0
  365. package/lib/utils/argument-utils.js +5 -5
  366. package/lib/utils/argument-utils.js.map +1 -1
  367. package/lib/utils/layout-utils.d.ts +3 -3
  368. package/lib/utils/layout-utils.d.ts.map +1 -1
  369. package/lib/utils/smodel-util.d.ts +117 -11
  370. package/lib/utils/smodel-util.d.ts.map +1 -1
  371. package/lib/utils/smodel-util.js +142 -37
  372. package/lib/utils/smodel-util.js.map +1 -1
  373. package/lib/utils/viewpoint-util.d.ts +3 -3
  374. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  375. package/lib/utils/viewpoint-util.js +19 -3
  376. package/lib/utils/viewpoint-util.js.map +1 -1
  377. package/lib/views/base-view-module.js +19 -19
  378. package/lib/views/base-view-module.js.map +1 -1
  379. package/lib/views/compartments.js +2 -2
  380. package/lib/views/compartments.js.map +1 -1
  381. package/lib/views/glsp-edge-view.d.ts +1 -1
  382. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  383. package/lib/views/glsp-edge-view.js +1 -1
  384. package/lib/views/glsp-edge-view.js.map +1 -1
  385. package/lib/views/index.js +6 -2
  386. package/lib/views/index.js.map +1 -1
  387. package/lib/views/issue-marker-view.d.ts.map +1 -1
  388. package/lib/views/issue-marker-view.js +3 -3
  389. package/lib/views/issue-marker-view.js.map +1 -1
  390. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  391. package/lib/views/rounded-corner-view.js +2 -2
  392. package/lib/views/rounded-corner-view.js.map +1 -1
  393. package/package.json +8 -18
  394. package/src/base/action-dispatcher.ts +26 -16
  395. package/src/base/actions/focus-change-action.ts +25 -8
  396. package/{lib/features/tool-palette/palette-item.d.ts → src/base/actions/sprotty-actions.ts} +11 -11
  397. package/src/base/auto-complete/auto-complete-actions.ts +7 -5
  398. package/src/base/auto-complete/auto-complete-widget.ts +15 -13
  399. package/src/base/command-stack.ts +7 -6
  400. package/src/base/di.config.ts +4 -5
  401. package/src/base/drag-aware-mouse-listener.ts +4 -4
  402. package/src/base/editor-context-service.ts +19 -7
  403. package/src/base/focus-tracker.ts +5 -4
  404. package/src/base/model/model-registry.ts +2 -2
  405. package/src/base/model/update-model-command.ts +9 -10
  406. package/src/base/model-initialization-constraint.ts +9 -11
  407. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  408. package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
  409. package/src/base/tool-manager/tool-actions.ts +37 -0
  410. package/src/base/types.ts +31 -24
  411. package/src/base/view/view-registry.ts +2 -2
  412. package/src/features/change-bounds/model.ts +5 -5
  413. package/src/features/change-bounds/movement-restrictor.ts +3 -3
  414. package/src/features/change-bounds/snap.spec.ts +89 -0
  415. package/src/features/change-bounds/snap.ts +86 -2
  416. package/src/features/command-palette/di.config.ts +5 -7
  417. package/src/features/command-palette/server-command-palette-provider.ts +9 -8
  418. package/src/features/context-menu/delete-element-context-menu.ts +6 -6
  419. package/src/features/context-menu/di.config.ts +3 -2
  420. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +45 -17
  421. package/src/features/context-menu/server-context-menu-provider.ts +7 -6
  422. package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
  423. package/src/features/copy-paste/copy-paste-handler.ts +6 -6
  424. package/src/features/copy-paste/di.config.ts +7 -15
  425. package/src/features/decoration/decoration-placer.ts +4 -4
  426. package/src/features/decoration/di.config.ts +3 -5
  427. package/src/features/edit-label/di.config.ts +4 -5
  428. package/src/features/edit-label/edit-label-tool.ts +1 -2
  429. package/src/features/edit-label/edit-label-validator.ts +6 -10
  430. package/src/features/hints/di.config.ts +3 -3
  431. package/src/features/hints/type-hints.ts +33 -18
  432. package/src/features/hover/di.config.ts +8 -2
  433. package/src/features/hover/hover.ts +53 -11
  434. package/src/features/layout/di.config.ts +4 -2
  435. package/src/features/layout/freeform-layout.ts +6 -15
  436. package/src/features/layout/hbox-layout.ts +256 -0
  437. package/src/features/layout/layout-commands.spec.ts +38 -22
  438. package/src/features/layout/layout-commands.ts +134 -60
  439. package/src/features/layout/vbox-layout.ts +20 -20
  440. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
  441. package/src/features/mouse-tool/di.config.ts +3 -4
  442. package/src/features/mouse-tool/mouse-tool.ts +18 -59
  443. package/src/features/navigation/navigation-action-handler.ts +76 -42
  444. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
  445. package/src/features/navigation/navigation-target-resolver.ts +8 -13
  446. package/src/features/reconnect/model.ts +2 -2
  447. package/src/features/save/di.config.ts +2 -3
  448. package/src/features/save/save-keylistener.ts +3 -3
  449. package/src/features/select/di.config.ts +6 -8
  450. package/src/features/select/select-feedback-action.ts +18 -46
  451. package/src/features/select/select-mouse-listener.ts +1 -2
  452. package/src/features/select/selection-service.spec.ts +11 -8
  453. package/src/features/select/selection-service.ts +17 -12
  454. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +51 -21
  455. package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
  456. package/src/features/tool-feedback/css-feedback.ts +40 -37
  457. package/src/features/tool-feedback/di.config.ts +4 -5
  458. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +132 -88
  459. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  460. package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
  461. package/src/features/tool-feedback/model.ts +1 -3
  462. package/src/features/tool-feedback/view.tsx +3 -3
  463. package/src/features/tool-palette/di.config.ts +3 -2
  464. package/src/features/tool-palette/tool-palette.ts +35 -19
  465. package/src/features/tools/base-glsp-tool.ts +11 -11
  466. package/src/features/tools/change-bounds-tool.ts +37 -67
  467. package/src/features/tools/delete-tool.ts +9 -9
  468. package/src/features/tools/di.config.ts +10 -10
  469. package/src/features/tools/edge-creation-tool.ts +21 -12
  470. package/src/features/tools/edge-edit-tool.ts +25 -21
  471. package/src/features/tools/marquee-behavior.ts +2 -2
  472. package/src/features/tools/marquee-mouse-tool.ts +13 -14
  473. package/src/features/tools/marquee-tool.ts +3 -3
  474. package/src/features/tools/model.ts +4 -3
  475. package/src/features/tools/node-creation-tool.ts +8 -8
  476. package/src/features/tools/view.tsx +2 -3
  477. package/src/features/validation/di.config.ts +4 -5
  478. package/src/features/validation/marker-navigator.spec.ts +4 -2
  479. package/src/features/validation/marker-navigator.ts +47 -25
  480. package/src/features/validation/validate.ts +31 -24
  481. package/src/features/viewport/di.config.ts +1 -2
  482. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  483. package/src/index.ts +4 -5
  484. package/src/lib/model.ts +4 -4
  485. package/src/model-source/glsp-diagram-server.ts +14 -14
  486. package/src/sprotty-reexport.ts +283 -0
  487. package/src/utils/layout-utils.ts +3 -3
  488. package/src/utils/smodel-util.ts +139 -43
  489. package/src/utils/viewpoint-util.ts +5 -14
  490. package/src/views/compartments.tsx +1 -1
  491. package/src/views/glsp-edge-view.tsx +4 -4
  492. package/src/views/issue-marker-view.tsx +2 -2
  493. package/src/views/rounded-corner-view.tsx +2 -3
  494. package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
  495. package/lib/features/tool-palette/palette-item.js.map +0 -1
  496. package/lib/protocol-reexport.d.ts +0 -45
  497. package/lib/protocol-reexport.d.ts.map +0 -1
  498. package/lib/protocol-reexport.js +0 -75
  499. package/lib/protocol-reexport.js.map +0 -1
  500. package/src/features/tool-palette/palette-item.ts +0 -38
  501. package/src/protocol-reexport.ts +0 -64
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,26 +13,19 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, ChangeBoundsOperation, ElementAndBounds } from '@eclipse-glsp/protocol';
16
+ import { Action, ChangeBoundsOperation, ElementAndBounds, hasArrayProp, hasNumberProp, SetBoundsAction } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable, optional } from 'inversify';
18
- import {
19
- Command,
20
- CommandExecutionContext,
21
- CommandReturn,
22
- ElementMove,
23
- IActionDispatcher,
24
- MoveAction,
25
- SetBoundsAction,
26
- SModelElement,
27
- TYPES
28
- } from 'sprotty';
29
- import { GLSP_TYPES } from '../../base/types';
18
+ import { Command, CommandExecutionContext, CommandReturn, ElementMove, IActionDispatcher, MoveAction, SModelElement } from 'sprotty';
19
+ import { TYPES } from '../../base/types';
30
20
  import { toValidElementAndBounds, toValidElementMove, WriteableElementAndBounds, WriteableElementMove } from '../../utils/layout-utils';
31
21
  import { BoundsAwareModelElement } from '../../utils/smodel-util';
32
22
  import { isBoundsAwareMoveable, isResizable } from '../change-bounds/model';
33
23
  import { IMovementRestrictor } from '../change-bounds/movement-restrictor';
34
24
  import { SelectionService } from '../select/selection-service';
35
25
 
26
+ /**
27
+ * Used to specify the desired resize dimension for a {@link ResizeElementsCommand}.
28
+ */
36
29
  // eslint-disable-next-line no-shadow
37
30
  export enum ResizeDimension {
38
31
  Width,
@@ -41,43 +34,99 @@ export enum ResizeDimension {
41
34
  }
42
35
 
43
36
  export namespace Reduce {
37
+ /**
38
+ * Returns the minimal value of the given numbers.
39
+ * @param values Numbers to be evaluated.
40
+ * @returns The reduced number.
41
+ */
44
42
  export function min(...values: number[]): number {
45
43
  return Math.min(...values);
46
44
  }
47
45
 
46
+ /**
47
+ * Returns the maximal value of the given numbers.
48
+ * @param values Numbers to be evaluated.
49
+ * @returns The reduced number.
50
+ */
48
51
  export function max(...values: number[]): number {
49
52
  return Math.max(...values);
50
53
  }
51
54
 
55
+ /**
56
+ * Computes the average of the given numbers.
57
+ * @param values Numbers to be evaluated.
58
+ */
52
59
  export function avg(...values: number[]): number {
53
60
  return values.reduce((a, b) => a + b, 0) / values.length;
54
61
  }
55
62
 
63
+ /**
64
+ * Returns the last value of the given numbers.
65
+ * @param values Numbers to be evaluated.
66
+ * @returns The reduced number.
67
+ */
56
68
  export function first(...values: number[]): number {
57
69
  return values[0];
58
70
  }
59
71
 
72
+ /**
73
+ * Returns the minimal value of the given numbers.
74
+ * @param values Numbers to be evaluated.
75
+ * @returns The reduced number.
76
+ */
60
77
  export function last(...values: number[]): number {
61
78
  return values[values.length - 1];
62
79
  }
80
+
81
+ /**
82
+ * Returns the reduce function that corresponds to the given {@link ReduceFunctionKind}.
83
+ * @param type The reduce function kind.
84
+ * @returns The corresponding reduce function.
85
+ */
63
86
  }
64
87
 
65
- export class ResizeElementsAction implements Action {
66
- constructor(
67
- /**
68
- * IDs of the elements that should be resized. If no IDs are given, the selected elements will be resized.
69
- */
70
- public readonly elementIds: string[] = [],
71
- /**
72
- * Resize dimension.
73
- */
74
- public readonly dimension: ResizeDimension = ResizeDimension.Width,
75
- /**
76
- * Function to reduce the dimension to a target dimension value, see Reduce.* for potential functions.
77
- */
78
- public readonly reductionFunction: (...values: number[]) => number,
79
- public readonly kind: string = ResizeElementsCommand.KIND
80
- ) {}
88
+ type ReduceFn = (...values: number[]) => number;
89
+ export interface ResizeElementsAction extends Action {
90
+ kind: typeof ResizeElementsAction.KIND;
91
+
92
+ /**
93
+ * IDs of the elements that should be resized. If no IDs are given, the selected elements will be resized.
94
+ */
95
+ elementIds: string[];
96
+ /**
97
+ * Resize dimension. The default is {@link ResizeDimension.Width}.
98
+ */
99
+ dimension: ResizeDimension;
100
+ /**
101
+ * Function to reduce the dimension to a target dimension value, see Reduce.* for potential functions.
102
+ */
103
+ reductionFunction: ReduceFn;
104
+ }
105
+
106
+ export namespace ResizeElementsAction {
107
+ export const KIND = 'resizeElementAction';
108
+
109
+ export function is(object: any): object is ResizeElementsAction {
110
+ return (
111
+ Action.hasKind(object, KIND) &&
112
+ hasArrayProp(object, 'elementIds') &&
113
+ hasNumberProp(object, 'dimension') &&
114
+ 'reductionFunction' in object
115
+ );
116
+ }
117
+
118
+ export function create(options: {
119
+ elementIds?: string[];
120
+ dimension?: ResizeDimension;
121
+ reductionFunction: ReduceFn;
122
+ }): ResizeElementsAction {
123
+ return {
124
+ kind: KIND,
125
+ dimension: ResizeDimension.Width,
126
+ elementIds: [],
127
+ ...options
128
+ };
129
+ }
81
130
  }
82
131
 
83
132
  // eslint-disable-next-line no-shadow
@@ -104,31 +153,56 @@ export namespace Select {
104
153
  }
105
154
  }
106
155
 
107
- export class AlignElementsAction implements Action {
108
- constructor(
109
- /**
110
- * IDs of the elements that should be aligned. If no IDs are given, the selected elements will be aligned.
111
- */
112
- public readonly elementIds: string[] = [],
113
- /**
114
- * Alignment direction.
115
- */
116
- public readonly alignment: Alignment = Alignment.Left,
117
- /**
118
- * Function to selected elements that are considered during alignment calculation, see Select.* for potential functions.
119
- */
120
- public readonly selectionFunction: (elements: BoundsAwareModelElement[]) => BoundsAwareModelElement[] = Select.all,
121
- public readonly kind = AlignElementsCommand.KIND
122
- ) {}
156
+ type SelectFn = (elements: BoundsAwareModelElement[]) => BoundsAwareModelElement[];
157
+ export interface AlignElementsAction extends Action {
158
+ kind: typeof AlignElementsAction.KIND;
159
+
160
+ /**
161
+ * IDs of the elements that should be aligned. If no IDs are given, the selected elements will be aligned.
162
+ */
163
+ elementIds: string[];
164
+ /**
165
+ * Alignment direction. The default is {@link Alignment.Left}
166
+ */
167
+ alignment: Alignment;
168
+ /**
169
+ * Function to selected elements that are considered during alignment calculation, see Select.* for potential functions.
170
+ * The default value is {@link Select.all}.
171
+ */
172
+ selectionFunction: SelectFn;
123
173
  }
124
174
 
175
+ export namespace AlignElementsAction {
176
+ export const KIND = 'alignElements';
177
+
178
+ export function is(object: any): object is AlignElementsAction {
179
+ return (
180
+ Action.hasKind(object, KIND) &&
181
+ hasArrayProp(object, 'elementIds') &&
182
+ hasNumberProp(object, 'alignment') &&
183
+ 'selectionFunction' in object
184
+ );
185
+ }
186
+
187
+ export function create(
188
+ options: { elementIds?: string[]; alignment?: Alignment; selectionFunction?: SelectFn } = {}
189
+ ): AlignElementsAction {
190
+ return {
191
+ kind: KIND,
192
+ elementIds: [],
193
+ alignment: Alignment.Left,
194
+ selectionFunction: Select.all,
195
+ ...options
196
+ };
197
+ }
198
+ }
125
199
  @injectable()
126
200
  abstract class LayoutElementsCommand extends Command {
127
201
  constructor(
128
202
  @inject(TYPES.Action) protected action: ResizeElementsAction | AlignElementsAction,
129
203
  @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
130
- @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
131
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
204
+ @inject(TYPES.SelectionService) protected selectionService: SelectionService,
205
+ @inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
132
206
  ) {
133
207
  super();
134
208
  }
@@ -163,13 +237,13 @@ abstract class LayoutElementsCommand extends Command {
163
237
 
164
238
  @injectable()
165
239
  export class ResizeElementsCommand extends LayoutElementsCommand {
166
- static readonly KIND = 'layout:resize';
240
+ static readonly KIND = ResizeElementsAction.KIND;
167
241
 
168
242
  constructor(
169
- @inject(TYPES.Action) protected action: ResizeElementsAction,
170
- @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
171
- @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
172
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
243
+ @inject(TYPES.Action) protected override action: ResizeElementsAction,
244
+ @inject(TYPES.IActionDispatcher) protected override actionDispatcher: IActionDispatcher,
245
+ @inject(TYPES.SelectionService) protected override selectionService: SelectionService,
246
+ @inject(TYPES.IMovementRestrictor) @optional() override readonly movementRestrictor?: IMovementRestrictor
173
247
  ) {
174
248
  super(action, actionDispatcher, selectionService, movementRestrictor);
175
249
  }
@@ -242,7 +316,7 @@ export class ResizeElementsCommand extends LayoutElementsCommand {
242
316
  elementAndBounds.push(elementChange);
243
317
  }
244
318
  });
245
- this.dispatchActions([new SetBoundsAction(elementAndBounds), new ChangeBoundsOperation(elementAndBounds)]);
319
+ this.dispatchActions([SetBoundsAction.create(elementAndBounds), ChangeBoundsOperation.create(elementAndBounds)]);
246
320
  }
247
321
 
248
322
  createElementAndBounds(
@@ -277,13 +351,13 @@ export class ResizeElementsCommand extends LayoutElementsCommand {
277
351
 
278
352
  @injectable()
279
353
  export class AlignElementsCommand extends LayoutElementsCommand {
280
- static readonly KIND = 'layout:align';
354
+ static readonly KIND = AlignElementsAction.KIND;
281
355
 
282
356
  constructor(
283
- @inject(TYPES.Action) protected action: AlignElementsAction,
284
- @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
285
- @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
286
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
357
+ @inject(TYPES.Action) protected override action: AlignElementsAction,
358
+ @inject(TYPES.IActionDispatcher) protected override actionDispatcher: IActionDispatcher,
359
+ @inject(TYPES.SelectionService) protected override selectionService: SelectionService,
360
+ @inject(TYPES.IMovementRestrictor) @optional() override readonly movementRestrictor?: IMovementRestrictor
287
361
  ) {
288
362
  super(action, actionDispatcher, selectionService, movementRestrictor);
289
363
  }
@@ -376,7 +450,7 @@ export class AlignElementsCommand extends LayoutElementsCommand {
376
450
  elementAndBounds.push(elementAndBound);
377
451
  }
378
452
  });
379
- this.dispatchActions([new MoveAction(moves), new ChangeBoundsOperation(elementAndBounds)]);
453
+ this.dispatchActions([MoveAction.create(moves), ChangeBoundsOperation.create(elementAndBounds)]);
380
454
  }
381
455
 
382
456
  createElementMove(
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2021 EclipseSource and others.
2
+ * Copyright (c) 2021-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,17 +13,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Bounds, Dimension, Point } from '@eclipse-glsp/protocol';
16
17
  import { injectable } from 'inversify';
17
18
  import {
18
- Bounds,
19
19
  BoundsData,
20
- Dimension,
21
- EMPTY_BOUNDS,
22
20
  isBoundsAware,
23
21
  isLayoutableChild,
24
- isValidDimension,
25
22
  LayoutContainer,
26
- Point,
27
23
  SChildElement,
28
24
  SModelElement,
29
25
  SParentElement,
@@ -44,9 +40,9 @@ export interface VBoxLayoutOptionsExt extends VBoxLayoutOptions {
44
40
  */
45
41
  @injectable()
46
42
  export class VBoxLayouterExt extends VBoxLayouter {
47
- static KIND = VBoxLayouter.KIND;
43
+ static override KIND = VBoxLayouter.KIND;
48
44
 
49
- layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
45
+ override layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
50
46
  const boundsData = layouter.getBoundsData(container);
51
47
  const options = this.getLayoutOptions(container);
52
48
  const childrenSize = this.getChildrenSize(container, options, layouter);
@@ -80,7 +76,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
80
76
  }
81
77
  }
82
78
 
83
- protected getChildrenSize(
79
+ protected override getChildrenSize(
84
80
  container: SParentElement & LayoutContainer,
85
81
  containerOptions: VBoxLayoutOptionsExt,
86
82
  layouter: StatefulLayouter
@@ -91,7 +87,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
91
87
  container.children.forEach(child => {
92
88
  if (isLayoutableChild(child)) {
93
89
  const bounds = layouter.getBoundsData(child).bounds;
94
- if (bounds !== undefined && isValidDimension(bounds)) {
90
+ if (bounds !== undefined && Dimension.isValid(bounds)) {
95
91
  maxHeight += bounds.height;
96
92
  if (isFirst) {
97
93
  isFirst = false;
@@ -109,7 +105,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
109
105
  return result;
110
106
  }
111
107
 
112
- protected layoutChildren(
108
+ protected override layoutChildren(
113
109
  container: SParentElement & LayoutContainer,
114
110
  layouter: StatefulLayouter,
115
111
  containerOptions: VBoxLayoutOptionsExt,
@@ -128,7 +124,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
128
124
  const boundsData = layouter.getBoundsData(child);
129
125
  const bounds = boundsData.bounds;
130
126
  const childOptions = this.getChildLayoutOptions(child, containerOptions);
131
- if (bounds !== undefined && isValidDimension(bounds)) {
127
+ if (bounds !== undefined && Dimension.isValid(bounds)) {
132
128
  currentOffset = this.layoutChild(
133
129
  child,
134
130
  boundsData,
@@ -147,7 +143,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
147
143
  return currentOffset;
148
144
  }
149
145
 
150
- protected layoutChild(
146
+ protected override layoutChild(
151
147
  child: SChildElement,
152
148
  boundsData: BoundsData,
153
149
  bounds: Bounds,
@@ -183,7 +179,11 @@ export class VBoxLayouterExt extends VBoxLayouter {
183
179
  return offset;
184
180
  }
185
181
 
186
- protected getFixedContainerBounds(container: SModelElement, layoutOptions: VBoxLayoutOptionsExt, layouter: StatefulLayouter): Bounds {
182
+ protected override getFixedContainerBounds(
183
+ container: SModelElement,
184
+ layoutOptions: VBoxLayoutOptionsExt,
185
+ layouter: StatefulLayouter
186
+ ): Bounds {
187
187
  const currentContainer = container;
188
188
  // eslint-disable-next-line no-constant-condition
189
189
  if (isBoundsAware(currentContainer)) {
@@ -193,14 +193,14 @@ export class VBoxLayouterExt extends VBoxLayouter {
193
193
  const height = elementOptions?.prefHeight ?? 0;
194
194
  return { ...bounds, width, height };
195
195
  }
196
- return EMPTY_BOUNDS;
196
+ return Bounds.EMPTY;
197
197
  }
198
198
 
199
- protected getChildLayoutOptions(child: SChildElement, containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
199
+ protected override getChildLayoutOptions(child: SChildElement, containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
200
200
  return super.getChildLayoutOptions(child, containerOptions) as VBoxLayoutOptionsExt;
201
201
  }
202
202
 
203
- protected getLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt {
203
+ protected override getLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt {
204
204
  return super.getLayoutOptions(element) as VBoxLayoutOptionsExt;
205
205
  }
206
206
 
@@ -208,7 +208,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
208
208
  return (element as any).layoutOptions;
209
209
  }
210
210
 
211
- protected getFinalContainerBounds(
211
+ protected override getFinalContainerBounds(
212
212
  container: SParentElement & LayoutContainer,
213
213
  lastOffset: Point,
214
214
  options: VBoxLayoutOptionsExt,
@@ -229,7 +229,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
229
229
  return result;
230
230
  }
231
231
 
232
- protected getDefaultLayoutOptions(): VBoxLayoutOptionsExt {
232
+ protected override getDefaultLayoutOptions(): VBoxLayoutOptionsExt {
233
233
  return {
234
234
  resizeContainer: true,
235
235
  paddingTop: 5,
@@ -250,7 +250,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
250
250
  };
251
251
  }
252
252
 
253
- protected spread(a: VBoxLayoutOptionsExt, b: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
253
+ protected override spread(a: VBoxLayoutOptionsExt, b: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
254
254
  return { ...a, ...b };
255
255
  }
256
256
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,15 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import {
17
- Action,
18
- GLSPServerStatusAction,
19
- isModelSourceChangedAction,
20
- ModelSourceChangedAction,
21
- ServerMessageAction
22
- } from '@eclipse-glsp/protocol';
16
+ import { Action, ModelSourceChangedAction, ServerMessageAction, ServerStatusAction } from '@eclipse-glsp/protocol';
23
17
  import { inject, injectable, optional } from 'inversify';
24
- import { IActionDispatcher, IActionHandler, TYPES, ViewerOptions } from 'sprotty';
18
+ import { IActionDispatcher, IActionHandler, ViewerOptions } from 'sprotty';
19
+ import { TYPES } from '../../base/types';
25
20
 
26
21
  /**
27
22
  * An external handler of the model source change event.
@@ -51,7 +46,7 @@ export class ModelSourceChangedActionHandler implements IActionHandler {
51
46
  protected externalModelSourceChangedHandler?: ExternalModelSourceChangedHandler;
52
47
 
53
48
  handle(action: Action): void {
54
- if (isModelSourceChangedAction(action)) {
49
+ if (ModelSourceChangedAction.is(action)) {
55
50
  if (this.externalModelSourceChangedHandler) {
56
51
  this.externalModelSourceChangedHandler
57
52
  .notifyModelSourceChange(action.modelSourceName, this.options)
@@ -67,8 +62,8 @@ export class ModelSourceChangedActionHandler implements IActionHandler {
67
62
  const timeout = 0;
68
63
  const severity = 'WARNING';
69
64
  this.dispatcher.dispatchAll([
70
- { kind: GLSPServerStatusAction.KIND, severity, timeout, message } as GLSPServerStatusAction,
71
- { kind: ServerMessageAction.KIND, severity, timeout, message } as ServerMessageAction
65
+ ServerStatusAction.create(message, { severity, timeout }),
66
+ ServerMessageAction.create(message, { severity, timeout })
72
67
  ]);
73
68
  }
74
69
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -15,13 +15,12 @@
15
15
  ********************************************************************************/
16
16
  import { ContainerModule } from 'inversify';
17
17
  import { MouseTool } from 'sprotty';
18
-
19
- import { GLSP_TYPES } from '../../base/types';
18
+ import { TYPES } from '../../base/types';
20
19
  import { RankingMouseTool } from './mouse-tool';
21
20
 
22
21
  const glspMouseToolModule = new ContainerModule((bind, _unbind, _isBound, rebind) => {
23
22
  bind(RankingMouseTool).toSelf().inSingletonScope();
24
- bind(GLSP_TYPES.MouseTool).toService(RankingMouseTool);
23
+ bind(TYPES.MouseTool).toService(RankingMouseTool);
25
24
  rebind(MouseTool).toService(RankingMouseTool);
26
25
  });
27
26
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
2
+ * Copyright (c) 2019-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,10 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, isAction } from '@eclipse-glsp/protocol';
17
16
  import { injectable, multiInject, optional } from 'inversify';
18
- import { On, VNode, VNodeData } from 'snabbdom';
19
- import { MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from 'sprotty';
17
+ import { MouseListener, MouseTool, SModelElement, SModelRoot } from 'sprotty';
18
+ import { TYPES } from '../../base/types';
20
19
  import { getRank } from '../rank/model';
21
20
 
22
21
  export interface IMouseTool {
@@ -24,48 +23,36 @@ export interface IMouseTool {
24
23
  deregister(mouseListener: MouseListener): void;
25
24
  }
26
25
 
26
+ /**
27
+ * Custom helper type to declare the explicit mouse listener methods
28
+ * of {@link MouseListener} i.e. omitting the `decorate` method.
29
+ */
30
+ type MouseListenerMethods = keyof Omit<MouseListener, 'decorate'>;
31
+
27
32
  @injectable()
28
33
  export class RankingMouseTool extends MouseTool implements IMouseTool {
29
34
  protected rankedMouseListeners: Map<number, MouseListener[]>;
30
35
 
31
- constructor(@multiInject(TYPES.MouseListener) @optional() protected mouseListeners: MouseListener[] = []) {
36
+ constructor(@multiInject(TYPES.MouseListener) @optional() protected override mouseListeners: MouseListener[] = []) {
32
37
  super(mouseListeners);
33
38
  this.rankedMouseListeners = groupBy(mouseListeners, listener => getRank(listener));
34
39
  }
35
40
 
36
- register(mouseListener: MouseListener): void {
41
+ override register(mouseListener: MouseListener): void {
37
42
  super.register(mouseListener);
38
43
  this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
39
44
  }
40
45
 
41
- deregister(mouseListener: MouseListener): void {
46
+ override deregister(mouseListener: MouseListener): void {
42
47
  super.deregister(mouseListener);
43
48
  this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
44
49
  }
45
50
 
46
- decorate(vnode: VNode, element: SModelElement): VNode {
47
- // we need to overwrite the existing event handlers registered by the original mouse tool
48
- if (element instanceof SModelRoot) {
49
- overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this, element), element);
50
- overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this, element), element);
51
- overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this, element), element);
52
- overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this, element), element);
53
- overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this, element), element);
54
- overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this, element), element);
55
- overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this, element), element);
56
- overwriteOn(vnode, 'wheel', this.wheel.bind(this, element), element);
57
- overwriteOn(vnode, 'contextmenu', this.contextMenu.bind(this, element), element);
58
- overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this, element), element);
59
- }
60
- vnode = this.mouseListeners.reduce((n: VNode, listener: MouseListener) => listener.decorate(n, element), vnode);
61
- return vnode;
62
- }
63
-
64
51
  contextMenu(model: SModelRoot, event: MouseEvent): void {
65
52
  event.preventDefault();
66
53
  }
67
54
 
68
- protected handleEvent<K extends keyof MouseListener>(methodName: K, model: SModelRoot, event: MouseEvent): void {
55
+ protected override handleEvent<K extends MouseListenerMethods>(methodName: K, model: SModelRoot, event: MouseEvent): void {
69
56
  this.focusOnMouseEvent(methodName, model);
70
57
  const element = this.getTargetElement(model, event);
71
58
  if (!element) {
@@ -74,7 +61,7 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
74
61
  this.notifyListenersByRank(element, methodName, model, event);
75
62
  }
76
63
 
77
- async notifyListenersByRank<K extends keyof MouseListener>(
64
+ async notifyListenersByRank<K extends MouseListenerMethods>(
78
65
  element: SModelElement,
79
66
  methodName: K,
80
67
  model: SModelRoot,
@@ -85,25 +72,18 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
85
72
  }
86
73
  }
87
74
 
88
- async dispatchActions<K extends keyof MouseListener>(
75
+ async dispatchActions<K extends MouseListenerMethods>(
89
76
  mouseListeners: MouseListener[],
90
77
  methodName: K,
91
78
  element: SModelElement,
92
79
  event: MouseEvent
93
80
  ): Promise<void> {
94
- const actions = mouseListeners
95
- .map(listener => listener[methodName].apply(listener, [element, event]))
96
- .reduce((a, b) => a.concat(b));
81
+ const actions = mouseListeners.map(listener => listener[methodName](element, event as WheelEvent)).reduce((a, b) => a.concat(b));
97
82
  if (actions.length > 0) {
98
83
  event.preventDefault();
99
84
  for (const actionOrPromise of actions) {
100
- if (isAction(actionOrPromise)) {
101
- await this.actionDispatcher.dispatch(actionOrPromise);
102
- } else {
103
- actionOrPromise.then((action: Action) => {
104
- this.actionDispatcher.dispatch(action);
105
- });
106
- }
85
+ const action = await actionOrPromise;
86
+ await this.actionDispatcher.dispatch(action);
107
87
  }
108
88
  }
109
89
  }
@@ -124,24 +104,3 @@ function groupBy<K, T>(array: Array<T>, keyFunction: (x: T) => K): Map<K, T[]> {
124
104
  }, new Map<K, T[]>());
125
105
  return new Map<K, T[]>([...unsortedMap.entries()].sort());
126
106
  }
127
-
128
- function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement, _event: Event) => void, element: SModelElement): void {
129
- const val = getOn(vnode);
130
- // ignore any previous val[event] registrations
131
- (val as any)[event] = [listener, element];
132
- }
133
-
134
- function getOn(vnode: VNode): On {
135
- const data = getData(vnode);
136
- if (!data.on) {
137
- data.on = {};
138
- }
139
- return data.on;
140
- }
141
-
142
- function getData(vnode: VNode): VNodeData {
143
- if (!vnode.data) {
144
- vnode.data = {};
145
- }
146
- return vnode.data;
147
- }