@eclipse-glsp/client 0.9.0 → 0.10.0-next.17bfb07.173

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 (531) 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/container-modules.d.ts.map +1 -1
  28. package/lib/base/container-modules.js +2 -1
  29. package/lib/base/container-modules.js.map +1 -1
  30. package/lib/base/di.config.d.ts +1 -1
  31. package/lib/base/di.config.d.ts.map +1 -1
  32. package/lib/base/di.config.js +13 -14
  33. package/lib/base/di.config.js.map +1 -1
  34. package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
  35. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  36. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  37. package/lib/base/editor-context-service.d.ts +18 -5
  38. package/lib/base/editor-context-service.d.ts.map +1 -1
  39. package/lib/base/editor-context-service.js +39 -22
  40. package/lib/base/editor-context-service.js.map +1 -1
  41. package/lib/base/focus-tracker.d.ts +1 -1
  42. package/lib/base/focus-tracker.d.ts.map +1 -1
  43. package/lib/base/focus-tracker.js +4 -4
  44. package/lib/base/focus-tracker.js.map +1 -1
  45. package/lib/base/model/model-registry.d.ts.map +1 -1
  46. package/lib/base/model/model-registry.js +2 -2
  47. package/lib/base/model/model-registry.js.map +1 -1
  48. package/lib/base/model/update-model-command.d.ts +1 -1
  49. package/lib/base/model/update-model-command.d.ts.map +1 -1
  50. package/lib/base/model/update-model-command.js +15 -15
  51. package/lib/base/model/update-model-command.js.map +1 -1
  52. package/lib/base/model-initialization-constraint.d.ts +4 -5
  53. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  54. package/lib/base/model-initialization-constraint.js +11 -13
  55. package/lib/base/model-initialization-constraint.js.map +1 -1
  56. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  57. package/lib/base/selection-clearing-mouse-listener.js +1 -1
  58. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  59. package/lib/base/source-uri-aware.d.ts +2 -17
  60. package/lib/base/source-uri-aware.d.ts.map +1 -1
  61. package/lib/base/source-uri-aware.js +4 -6
  62. package/lib/base/source-uri-aware.js.map +1 -1
  63. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  64. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  65. package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
  66. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  67. package/lib/base/tool-manager/tool-actions.d.ts +14 -0
  68. package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
  69. package/lib/base/tool-manager/tool-actions.js +25 -0
  70. package/lib/base/tool-manager/tool-actions.js.map +1 -0
  71. package/lib/base/types.d.ts +144 -20
  72. package/lib/base/types.d.ts.map +1 -1
  73. package/lib/base/types.js +14 -26
  74. package/lib/base/types.js.map +1 -1
  75. package/lib/base/view/view-registry.d.ts.map +1 -1
  76. package/lib/base/view/view-registry.js +2 -2
  77. package/lib/base/view/view-registry.js.map +1 -1
  78. package/lib/features/change-bounds/model.d.ts +1 -1
  79. package/lib/features/change-bounds/model.d.ts.map +1 -1
  80. package/lib/features/change-bounds/model.js +3 -3
  81. package/lib/features/change-bounds/model.js.map +1 -1
  82. package/lib/features/change-bounds/movement-restrictor.d.ts +37 -7
  83. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  84. package/lib/features/change-bounds/movement-restrictor.js +55 -40
  85. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  86. package/lib/features/change-bounds/snap.d.ts +42 -2
  87. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  88. package/lib/features/change-bounds/snap.js +78 -2
  89. package/lib/features/change-bounds/snap.js.map +1 -1
  90. package/lib/features/change-bounds/snap.spec.d.ts +17 -0
  91. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  92. package/lib/features/change-bounds/snap.spec.js +82 -0
  93. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  94. package/lib/features/command-palette/command-palette-tool.js +3 -3
  95. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  96. package/lib/features/command-palette/di.config.d.ts +2 -2
  97. package/lib/features/command-palette/di.config.d.ts.map +1 -1
  98. package/lib/features/command-palette/di.config.js +6 -6
  99. package/lib/features/command-palette/di.config.js.map +1 -1
  100. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
  101. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  102. package/lib/features/command-palette/server-command-palette-provider.js +13 -10
  103. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  104. package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
  105. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  106. package/lib/features/context-menu/delete-element-context-menu.js +4 -4
  107. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  108. package/lib/features/context-menu/di.config.d.ts +1 -1
  109. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  110. package/lib/features/context-menu/di.config.js +8 -7
  111. package/lib/features/context-menu/di.config.js.map +1 -1
  112. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +33 -1
  113. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  114. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +41 -28
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  116. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
  117. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  118. package/lib/features/context-menu/server-context-menu-provider.js +8 -7
  119. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  120. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
  121. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  122. package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
  123. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  124. package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
  125. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  126. package/lib/features/copy-paste/copy-paste-handler.js +10 -11
  127. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  128. package/lib/features/copy-paste/di.config.d.ts +1 -1
  129. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  130. package/lib/features/copy-paste/di.config.js +5 -7
  131. package/lib/features/copy-paste/di.config.js.map +1 -1
  132. package/lib/features/decoration/decoration-placer.d.ts +1 -1
  133. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  134. package/lib/features/decoration/decoration-placer.js +19 -3
  135. package/lib/features/decoration/decoration-placer.js.map +1 -1
  136. package/lib/features/decoration/di.config.d.ts +2 -2
  137. package/lib/features/decoration/di.config.d.ts.map +1 -1
  138. package/lib/features/decoration/di.config.js +4 -4
  139. package/lib/features/decoration/di.config.js.map +1 -1
  140. package/lib/features/edit-label/di.config.d.ts +1 -1
  141. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  142. package/lib/features/edit-label/di.config.js +5 -5
  143. package/lib/features/edit-label/di.config.js.map +1 -1
  144. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  145. package/lib/features/edit-label/edit-label-tool.js +2 -2
  146. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  147. package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
  148. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  149. package/lib/features/edit-label/edit-label-validator.js +11 -13
  150. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  151. package/lib/features/hints/di.config.js +4 -4
  152. package/lib/features/hints/di.config.js.map +1 -1
  153. package/lib/features/hints/type-hints.d.ts +15 -5
  154. package/lib/features/hints/type-hints.d.ts.map +1 -1
  155. package/lib/features/hints/type-hints.js +29 -26
  156. package/lib/features/hints/type-hints.js.map +1 -1
  157. package/lib/features/hover/di.config.d.ts +1 -1
  158. package/lib/features/hover/di.config.d.ts.map +1 -1
  159. package/lib/features/hover/di.config.js +14 -10
  160. package/lib/features/hover/di.config.js.map +1 -1
  161. package/lib/features/hover/hover.d.ts +16 -4
  162. package/lib/features/hover/hover.d.ts.map +1 -1
  163. package/lib/features/hover/hover.js +42 -4
  164. package/lib/features/hover/hover.js.map +1 -1
  165. package/lib/features/layout/di.config.d.ts +3 -3
  166. package/lib/features/layout/di.config.d.ts.map +1 -1
  167. package/lib/features/layout/di.config.js +11 -7
  168. package/lib/features/layout/di.config.js.map +1 -1
  169. package/lib/features/layout/freeform-layout.d.ts +17 -1
  170. package/lib/features/layout/freeform-layout.d.ts.map +1 -1
  171. package/lib/features/layout/freeform-layout.js +4 -4
  172. package/lib/features/layout/freeform-layout.js.map +1 -1
  173. package/lib/features/layout/hbox-layout.d.ts +41 -0
  174. package/lib/features/layout/hbox-layout.d.ts.map +1 -0
  175. package/lib/features/layout/hbox-layout.js +189 -0
  176. package/lib/features/layout/hbox-layout.js.map +1 -0
  177. package/lib/features/layout/layout-elements-action.d.ts +198 -0
  178. package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
  179. package/lib/features/layout/layout-elements-action.js +391 -0
  180. package/lib/features/layout/layout-elements-action.js.map +1 -0
  181. package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
  182. package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
  183. package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
  184. package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
  185. package/lib/features/layout/vbox-layout.d.ts +17 -1
  186. package/lib/features/layout/vbox-layout.d.ts.map +1 -1
  187. package/lib/features/layout/vbox-layout.js +9 -8
  188. package/lib/features/layout/vbox-layout.js.map +1 -1
  189. package/lib/features/model-source-watcher/di.config.js +1 -1
  190. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  191. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
  192. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  193. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
  194. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  195. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  196. package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
  197. package/lib/features/mouse-tool/di.config.js +2 -2
  198. package/lib/features/mouse-tool/di.config.js.map +1 -1
  199. package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
  200. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  201. package/lib/features/mouse-tool/mouse-tool.js +11 -53
  202. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  203. package/lib/features/navigation/di.config.js +4 -4
  204. package/lib/features/navigation/di.config.js.map +1 -1
  205. package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
  206. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  207. package/lib/features/navigation/navigation-action-handler.js +52 -68
  208. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  209. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  210. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  211. package/lib/features/navigation/navigation-target-resolver.js +9 -10
  212. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  213. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  214. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  215. package/lib/features/reconnect/model.d.ts +1 -1
  216. package/lib/features/reconnect/model.d.ts.map +1 -1
  217. package/lib/features/reconnect/model.js +1 -1
  218. package/lib/features/reconnect/model.js.map +1 -1
  219. package/lib/features/save/di.config.d.ts +1 -1
  220. package/lib/features/save/di.config.d.ts.map +1 -1
  221. package/lib/features/save/di.config.js +3 -3
  222. package/lib/features/save/di.config.js.map +1 -1
  223. package/lib/features/save/save-keylistener.d.ts +1 -1
  224. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  225. package/lib/features/save/save-keylistener.js +3 -3
  226. package/lib/features/save/save-keylistener.js.map +1 -1
  227. package/lib/features/select/di.config.d.ts +1 -1
  228. package/lib/features/select/di.config.d.ts.map +1 -1
  229. package/lib/features/select/di.config.js +7 -8
  230. package/lib/features/select/di.config.js.map +1 -1
  231. package/lib/features/select/select-feedback-action.d.ts +26 -22
  232. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  233. package/lib/features/select/select-feedback-action.js +19 -46
  234. package/lib/features/select/select-feedback-action.js.map +1 -1
  235. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  236. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  237. package/lib/features/select/select-mouse-listener.js +1 -1
  238. package/lib/features/select/select-mouse-listener.js.map +1 -1
  239. package/lib/features/select/selection-service.d.ts +14 -5
  240. package/lib/features/select/selection-service.d.ts.map +1 -1
  241. package/lib/features/select/selection-service.js +55 -64
  242. package/lib/features/select/selection-service.js.map +1 -1
  243. package/lib/features/select/selection-service.spec.js +28 -25
  244. package/lib/features/select/selection-service.spec.js.map +1 -1
  245. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
  246. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  247. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +68 -38
  248. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  249. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
  250. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  251. package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
  252. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  253. package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
  254. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  255. package/lib/features/tool-feedback/css-feedback.js +42 -38
  256. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  257. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  258. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  259. package/lib/features/tool-feedback/di.config.js +18 -18
  260. package/lib/features/tool-feedback/di.config.js.map +1 -1
  261. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -22
  262. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  263. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -114
  264. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  265. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
  266. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  267. package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
  268. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  269. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
  270. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  271. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
  272. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  273. package/lib/features/tool-feedback/model.d.ts +1 -2
  274. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  275. package/lib/features/tool-feedback/model.js +1 -1
  276. package/lib/features/tool-feedback/model.js.map +1 -1
  277. package/lib/features/tool-feedback/view.d.ts +1 -1
  278. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  279. package/lib/features/tool-feedback/view.js +22 -5
  280. package/lib/features/tool-feedback/view.js.map +1 -1
  281. package/lib/features/tool-palette/di.config.d.ts +1 -1
  282. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  283. package/lib/features/tool-palette/di.config.js +5 -4
  284. package/lib/features/tool-palette/di.config.js.map +1 -1
  285. package/lib/features/tool-palette/tool-palette.d.ts +10 -7
  286. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  287. package/lib/features/tool-palette/tool-palette.js +39 -32
  288. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  289. package/lib/features/tools/base-glsp-tool.d.ts +3 -3
  290. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  291. package/lib/features/tools/base-glsp-tool.js +11 -11
  292. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  293. package/lib/features/tools/change-bounds-tool.d.ts +7 -9
  294. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  295. package/lib/features/tools/change-bounds-tool.js +48 -71
  296. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  297. package/lib/features/tools/delete-tool.d.ts +1 -1
  298. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  299. package/lib/features/tools/delete-tool.js +17 -17
  300. package/lib/features/tools/delete-tool.js.map +1 -1
  301. package/lib/features/tools/di.config.d.ts +9 -2
  302. package/lib/features/tools/di.config.d.ts.map +1 -1
  303. package/lib/features/tools/di.config.js +26 -15
  304. package/lib/features/tools/di.config.js.map +1 -1
  305. package/lib/features/tools/edge-creation-tool.d.ts +1 -1
  306. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  307. package/lib/features/tools/edge-creation-tool.js +28 -21
  308. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  309. package/lib/features/tools/edge-edit-tool.d.ts +3 -2
  310. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  311. package/lib/features/tools/edge-edit-tool.js +41 -36
  312. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  313. package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
  314. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
  315. package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
  316. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
  317. package/lib/features/tools/marquee-behavior.d.ts +1 -1
  318. package/lib/features/tools/marquee-behavior.js +2 -2
  319. package/lib/features/tools/marquee-behavior.js.map +1 -1
  320. package/lib/features/tools/marquee-behavior.spec.js +63 -63
  321. package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
  322. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
  323. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  324. package/lib/features/tools/marquee-mouse-tool.js +20 -20
  325. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  326. package/lib/features/tools/marquee-tool.d.ts +1 -1
  327. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  328. package/lib/features/tools/marquee-tool.js +4 -4
  329. package/lib/features/tools/marquee-tool.js.map +1 -1
  330. package/lib/features/tools/model.d.ts +3 -2
  331. package/lib/features/tools/model.d.ts.map +1 -1
  332. package/lib/features/tools/model.js +0 -15
  333. package/lib/features/tools/model.js.map +1 -1
  334. package/lib/features/tools/node-creation-tool.d.ts +1 -1
  335. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  336. package/lib/features/tools/node-creation-tool.js +17 -17
  337. package/lib/features/tools/node-creation-tool.js.map +1 -1
  338. package/lib/features/tools/view.d.ts.map +1 -1
  339. package/lib/features/tools/view.js +2 -2
  340. package/lib/features/tools/view.js.map +1 -1
  341. package/lib/features/validation/di.config.d.ts +0 -15
  342. package/lib/features/validation/di.config.d.ts.map +1 -1
  343. package/lib/features/validation/di.config.js +9 -7
  344. package/lib/features/validation/di.config.js.map +1 -1
  345. package/lib/features/validation/marker-navigator.d.ts +27 -25
  346. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  347. package/lib/features/validation/marker-navigator.js +64 -91
  348. package/lib/features/validation/marker-navigator.js.map +1 -1
  349. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  350. package/lib/features/validation/marker-navigator.spec.js +23 -37
  351. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  352. package/lib/features/validation/validate.d.ts +16 -30
  353. package/lib/features/validation/validate.d.ts.map +1 -1
  354. package/lib/features/validation/validate.js +61 -92
  355. package/lib/features/validation/validate.js.map +1 -1
  356. package/lib/features/viewport/di.config.d.ts +1 -1
  357. package/lib/features/viewport/di.config.d.ts.map +1 -1
  358. package/lib/features/viewport/di.config.js +7 -7
  359. package/lib/features/viewport/di.config.js.map +1 -1
  360. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
  361. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  362. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
  363. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  364. package/lib/index.d.ts +8 -9
  365. package/lib/index.d.ts.map +1 -1
  366. package/lib/index.js +15 -11
  367. package/lib/index.js.map +1 -1
  368. package/lib/lib/model.d.ts +3 -2
  369. package/lib/lib/model.d.ts.map +1 -1
  370. package/lib/lib/model.js +3 -18
  371. package/lib/lib/model.js.map +1 -1
  372. package/lib/model-source/glsp-diagram-server.d.ts +6 -6
  373. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  374. package/lib/model-source/glsp-diagram-server.js +8 -7
  375. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  376. package/lib/sprotty-reexport.d.ts +174 -0
  377. package/lib/sprotty-reexport.d.ts.map +1 -0
  378. package/lib/sprotty-reexport.js +299 -0
  379. package/lib/sprotty-reexport.js.map +1 -0
  380. package/lib/utils/argument-utils.js +5 -5
  381. package/lib/utils/argument-utils.js.map +1 -1
  382. package/lib/utils/layout-utils.d.ts +6 -22
  383. package/lib/utils/layout-utils.d.ts.map +1 -1
  384. package/lib/utils/layout-utils.js +1 -1
  385. package/lib/utils/layout-utils.js.map +1 -1
  386. package/lib/utils/smodel-util.d.ts +117 -11
  387. package/lib/utils/smodel-util.d.ts.map +1 -1
  388. package/lib/utils/smodel-util.js +142 -37
  389. package/lib/utils/smodel-util.js.map +1 -1
  390. package/lib/utils/viewpoint-util.d.ts +3 -3
  391. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  392. package/lib/utils/viewpoint-util.js +19 -3
  393. package/lib/utils/viewpoint-util.js.map +1 -1
  394. package/lib/views/base-view-module.d.ts.map +1 -1
  395. package/lib/views/base-view-module.js +21 -19
  396. package/lib/views/base-view-module.js.map +1 -1
  397. package/lib/views/compartments.js +2 -2
  398. package/lib/views/compartments.js.map +1 -1
  399. package/lib/views/glsp-edge-view.d.ts +1 -1
  400. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  401. package/lib/views/glsp-edge-view.js +1 -1
  402. package/lib/views/glsp-edge-view.js.map +1 -1
  403. package/lib/views/index.js +6 -2
  404. package/lib/views/index.js.map +1 -1
  405. package/lib/views/issue-marker-view.d.ts.map +1 -1
  406. package/lib/views/issue-marker-view.js +3 -3
  407. package/lib/views/issue-marker-view.js.map +1 -1
  408. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  409. package/lib/views/rounded-corner-view.js +2 -2
  410. package/lib/views/rounded-corner-view.js.map +1 -1
  411. package/package.json +8 -18
  412. package/src/base/action-dispatcher.ts +26 -16
  413. package/src/base/actions/focus-change-action.ts +25 -8
  414. package/src/base/actions/sprotty-actions.ts +26 -0
  415. package/src/base/auto-complete/auto-complete-actions.ts +7 -5
  416. package/src/base/auto-complete/auto-complete-widget.ts +15 -13
  417. package/src/base/command-stack.ts +7 -6
  418. package/src/base/container-modules.ts +4 -3
  419. package/src/base/di.config.ts +4 -5
  420. package/src/base/drag-aware-mouse-listener.ts +4 -4
  421. package/src/base/editor-context-service.ts +38 -16
  422. package/src/base/focus-tracker.ts +5 -4
  423. package/src/base/model/model-registry.ts +2 -2
  424. package/src/base/model/update-model-command.ts +9 -10
  425. package/src/base/model-initialization-constraint.ts +9 -11
  426. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  427. package/src/base/source-uri-aware.ts +5 -4
  428. package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
  429. package/src/base/tool-manager/tool-actions.ts +37 -0
  430. package/src/base/types.ts +31 -24
  431. package/src/base/view/view-registry.ts +2 -2
  432. package/src/features/change-bounds/model.ts +5 -5
  433. package/src/features/change-bounds/movement-restrictor.ts +74 -44
  434. package/src/features/change-bounds/snap.spec.ts +89 -0
  435. package/src/features/change-bounds/snap.ts +86 -3
  436. package/src/features/command-palette/di.config.ts +5 -7
  437. package/src/features/command-palette/server-command-palette-provider.ts +9 -8
  438. package/src/features/context-menu/delete-element-context-menu.ts +6 -6
  439. package/src/features/context-menu/di.config.ts +3 -2
  440. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +45 -17
  441. package/src/features/context-menu/server-context-menu-provider.ts +7 -6
  442. package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
  443. package/src/features/copy-paste/copy-paste-handler.ts +6 -6
  444. package/src/features/copy-paste/di.config.ts +7 -15
  445. package/src/features/decoration/decoration-placer.ts +4 -4
  446. package/src/features/decoration/di.config.ts +3 -5
  447. package/src/features/edit-label/di.config.ts +4 -5
  448. package/src/features/edit-label/edit-label-tool.ts +1 -2
  449. package/src/features/edit-label/edit-label-validator.ts +6 -10
  450. package/src/features/hints/di.config.ts +3 -3
  451. package/src/features/hints/type-hints.ts +33 -18
  452. package/src/features/hover/di.config.ts +8 -2
  453. package/src/features/hover/hover.ts +53 -11
  454. package/src/features/layout/di.config.ts +11 -7
  455. package/src/features/layout/freeform-layout.ts +6 -15
  456. package/src/features/layout/hbox-layout.ts +256 -0
  457. package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +89 -65
  458. package/src/features/layout/layout-elements-action.ts +486 -0
  459. package/src/features/layout/vbox-layout.ts +20 -20
  460. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
  461. package/src/features/mouse-tool/di.config.ts +3 -4
  462. package/src/features/mouse-tool/mouse-tool.ts +18 -59
  463. package/src/features/navigation/navigation-action-handler.ts +76 -42
  464. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
  465. package/src/features/navigation/navigation-target-resolver.ts +9 -14
  466. package/src/features/reconnect/model.ts +2 -2
  467. package/src/features/save/di.config.ts +2 -3
  468. package/src/features/save/save-keylistener.ts +3 -3
  469. package/src/features/select/di.config.ts +6 -8
  470. package/src/features/select/select-feedback-action.ts +18 -46
  471. package/src/features/select/select-mouse-listener.ts +1 -2
  472. package/src/features/select/selection-service.spec.ts +12 -9
  473. package/src/features/select/selection-service.ts +52 -60
  474. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
  475. package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
  476. package/src/features/tool-feedback/css-feedback.ts +40 -37
  477. package/src/features/tool-feedback/di.config.ts +4 -5
  478. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -88
  479. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  480. package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
  481. package/src/features/tool-feedback/model.ts +1 -3
  482. package/src/features/tool-feedback/view.tsx +3 -3
  483. package/src/features/tool-palette/di.config.ts +3 -2
  484. package/src/features/tool-palette/tool-palette.ts +35 -19
  485. package/src/features/tools/base-glsp-tool.ts +11 -11
  486. package/src/features/tools/change-bounds-tool.ts +37 -67
  487. package/src/features/tools/delete-tool.ts +9 -9
  488. package/src/features/tools/di.config.ts +23 -12
  489. package/src/features/tools/edge-creation-tool.ts +21 -12
  490. package/src/features/tools/edge-edit-tool.ts +25 -21
  491. package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
  492. package/src/features/tools/marquee-behavior.ts +2 -2
  493. package/src/features/tools/marquee-mouse-tool.ts +13 -14
  494. package/src/features/tools/marquee-tool.ts +3 -3
  495. package/src/features/tools/model.ts +4 -3
  496. package/src/features/tools/node-creation-tool.ts +8 -8
  497. package/src/features/tools/view.tsx +2 -3
  498. package/src/features/validation/di.config.ts +13 -11
  499. package/src/features/validation/marker-navigator.spec.ts +4 -2
  500. package/src/features/validation/marker-navigator.ts +67 -82
  501. package/src/features/validation/validate.ts +57 -91
  502. package/src/features/viewport/di.config.ts +1 -2
  503. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  504. package/src/index.ts +9 -9
  505. package/src/lib/model.ts +4 -4
  506. package/src/model-source/glsp-diagram-server.ts +15 -15
  507. package/src/sprotty-reexport.ts +283 -0
  508. package/src/utils/layout-utils.ts +9 -29
  509. package/src/utils/smodel-util.ts +139 -43
  510. package/src/utils/viewpoint-util.ts +5 -14
  511. package/src/views/base-view-module.ts +5 -1
  512. package/src/views/compartments.tsx +1 -1
  513. package/src/views/glsp-edge-view.tsx +4 -4
  514. package/src/views/issue-marker-view.tsx +2 -2
  515. package/src/views/rounded-corner-view.tsx +2 -3
  516. package/lib/features/layout/layout-commands.d.ts +0 -153
  517. package/lib/features/layout/layout-commands.d.ts.map +0 -1
  518. package/lib/features/layout/layout-commands.js +0 -412
  519. package/lib/features/layout/layout-commands.js.map +0 -1
  520. package/lib/features/layout/layout-commands.spec.d.ts +0 -3
  521. package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
  522. package/lib/features/layout/layout-commands.spec.js.map +0 -1
  523. package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
  524. package/lib/features/tool-palette/palette-item.js.map +0 -1
  525. package/lib/protocol-reexport.d.ts +0 -45
  526. package/lib/protocol-reexport.d.ts.map +0 -1
  527. package/lib/protocol-reexport.js +0 -75
  528. package/lib/protocol-reexport.js.map +0 -1
  529. package/src/features/layout/layout-commands.ts +0 -424
  530. package/src/features/tool-palette/palette-item.ts +0 -38
  531. package/src/protocol-reexport.ts +0 -64
@@ -1,424 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (c) 2019-2021 EclipseSource and others.
3
- *
4
- * This program and the accompanying materials are made available under the
5
- * terms of the Eclipse Public License v. 2.0 which is available at
6
- * http://www.eclipse.org/legal/epl-2.0.
7
- *
8
- * This Source Code may also be made available under the following Secondary
9
- * Licenses when the conditions for such availability set forth in the Eclipse
10
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- * with the GNU Classpath Exception which is available at
12
- * https://www.gnu.org/software/classpath/license.html.
13
- *
14
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- ********************************************************************************/
16
- import { Action, ChangeBoundsOperation, ElementAndBounds } from '@eclipse-glsp/protocol';
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';
30
- import { toValidElementAndBounds, toValidElementMove, WriteableElementAndBounds, WriteableElementMove } from '../../utils/layout-utils';
31
- import { BoundsAwareModelElement } from '../../utils/smodel-util';
32
- import { isBoundsAwareMoveable, isResizable } from '../change-bounds/model';
33
- import { IMovementRestrictor } from '../change-bounds/movement-restrictor';
34
- import { SelectionService } from '../select/selection-service';
35
-
36
- // eslint-disable-next-line no-shadow
37
- export enum ResizeDimension {
38
- Width,
39
- Height,
40
- Width_And_Height
41
- }
42
-
43
- export namespace Reduce {
44
- export function min(...values: number[]): number {
45
- return Math.min(...values);
46
- }
47
-
48
- export function max(...values: number[]): number {
49
- return Math.max(...values);
50
- }
51
-
52
- export function avg(...values: number[]): number {
53
- return values.reduce((a, b) => a + b, 0) / values.length;
54
- }
55
-
56
- export function first(...values: number[]): number {
57
- return values[0];
58
- }
59
-
60
- export function last(...values: number[]): number {
61
- return values[values.length - 1];
62
- }
63
- }
64
-
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
- ) {}
81
- }
82
-
83
- // eslint-disable-next-line no-shadow
84
- export enum Alignment {
85
- Left,
86
- Center,
87
- Right,
88
- Top,
89
- Middle,
90
- Bottom
91
- }
92
-
93
- export namespace Select {
94
- export function all(elements: BoundsAwareModelElement[]): BoundsAwareModelElement[] {
95
- return elements;
96
- }
97
-
98
- export function first(elements: BoundsAwareModelElement[]): BoundsAwareModelElement[] {
99
- return [elements[0]];
100
- }
101
-
102
- export function last(elements: BoundsAwareModelElement[]): BoundsAwareModelElement[] {
103
- return [elements[elements.length - 1]];
104
- }
105
- }
106
-
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
- ) {}
123
- }
124
-
125
- @injectable()
126
- abstract class LayoutElementsCommand extends Command {
127
- constructor(
128
- @inject(TYPES.Action) protected action: ResizeElementsAction | AlignElementsAction,
129
- @inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher,
130
- @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService,
131
- @inject(GLSP_TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor
132
- ) {
133
- super();
134
- }
135
-
136
- getActionElements(context: CommandExecutionContext): BoundsAwareModelElement[] {
137
- const model = context.root;
138
- const elementIDs = this.action.elementIds;
139
- if (elementIDs.length === 0) {
140
- // collect the selected elements from the selection service (selection order is kept by service)
141
- this.selectionService.getSelectedElementIDs().forEach(elementID => elementIDs.push(elementID));
142
- }
143
- const boundsAwareElements: BoundsAwareModelElement[] = [];
144
- elementIDs.forEach(id => {
145
- const element = model.index.getById(id);
146
- if (element && this.isActionElement(element)) {
147
- boundsAwareElements.push(element);
148
- }
149
- });
150
- return boundsAwareElements;
151
- }
152
-
153
- protected abstract isActionElement(element: SModelElement): element is BoundsAwareModelElement;
154
-
155
- dispatchAction(action: Action): void {
156
- this.actionDispatcher.dispatch(action);
157
- }
158
-
159
- dispatchActions(actions: Action[]): void {
160
- this.actionDispatcher.dispatchAll(actions);
161
- }
162
- }
163
-
164
- @injectable()
165
- export class ResizeElementsCommand extends LayoutElementsCommand {
166
- static readonly KIND = 'layout:resize';
167
-
168
- 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
173
- ) {
174
- super(action, actionDispatcher, selectionService, movementRestrictor);
175
- }
176
-
177
- protected isActionElement(element: SModelElement): element is BoundsAwareModelElement {
178
- return isResizable(element);
179
- }
180
-
181
- execute(context: CommandExecutionContext): CommandReturn {
182
- const elements = this.getActionElements(context);
183
- if (elements.length > 1) {
184
- switch (this.action.dimension) {
185
- case ResizeDimension.Width:
186
- this.resizeWidth(elements);
187
- break;
188
- case ResizeDimension.Height:
189
- this.resizeHeight(elements);
190
- break;
191
- case ResizeDimension.Width_And_Height:
192
- this.resizeWidthAndHeight(elements);
193
- break;
194
- }
195
- }
196
- return context.root;
197
- }
198
-
199
- resizeWidth(elements: BoundsAwareModelElement[]): void {
200
- const targetWidth = this.action.reductionFunction(...elements.map(element => element.bounds.width));
201
- this.dispatchResizeActions(elements, (element, bounds) => {
202
- // resize around center
203
- const halfDiffWidth = 0.5 * (targetWidth - element.bounds.width);
204
- bounds.newPosition.x = element.bounds.x - halfDiffWidth;
205
- bounds.newSize.width = targetWidth;
206
- });
207
- }
208
-
209
- resizeHeight(elements: BoundsAwareModelElement[]): void {
210
- const targetHeight = this.action.reductionFunction(...elements.map(element => element.bounds.height));
211
- this.dispatchResizeActions(elements, (element, bounds) => {
212
- // resize around middle
213
- const halfDiffHeight = 0.5 * (targetHeight - element.bounds.height);
214
- bounds.newPosition.y = element.bounds.y - halfDiffHeight;
215
- bounds.newSize.height = targetHeight;
216
- });
217
- }
218
-
219
- resizeWidthAndHeight(elements: BoundsAwareModelElement[]): void {
220
- const targetWidth = this.action.reductionFunction(...elements.map(element => element.bounds.width));
221
- const targetHeight = this.action.reductionFunction(...elements.map(element => element.bounds.height));
222
- this.dispatchResizeActions(elements, (element, bounds) => {
223
- // resize around center and middle
224
- const halfDiffWidth = 0.5 * (targetWidth - element.bounds.width);
225
- const halfDiffHeight = 0.5 * (targetHeight - element.bounds.height);
226
- bounds.newPosition.x = element.bounds.x - halfDiffWidth;
227
- bounds.newPosition.y = element.bounds.y - halfDiffHeight;
228
- bounds.newSize.width = targetWidth;
229
- bounds.newSize.height = targetHeight;
230
- });
231
- }
232
-
233
- dispatchResizeActions(
234
- elements: BoundsAwareModelElement[],
235
- change: (element: BoundsAwareModelElement, bounds: WriteableElementAndBounds) => void
236
- ): void {
237
- const elementAndBounds: ElementAndBounds[] = []; // client- and server-side resize
238
- elements.forEach(element => {
239
- const elementChange = this.createElementAndBounds(element, change);
240
- if (elementChange) {
241
- // simply skip invalid changes
242
- elementAndBounds.push(elementChange);
243
- }
244
- });
245
- this.dispatchActions([new SetBoundsAction(elementAndBounds), new ChangeBoundsOperation(elementAndBounds)]);
246
- }
247
-
248
- createElementAndBounds(
249
- element: BoundsAwareModelElement,
250
- change: (_element: BoundsAwareModelElement, _bounds: WriteableElementAndBounds) => void
251
- ): WriteableElementAndBounds | undefined {
252
- const bounds: WriteableElementAndBounds = {
253
- elementId: element.id,
254
- newPosition: {
255
- x: element.bounds.x,
256
- y: element.bounds.y
257
- },
258
- newSize: {
259
- width: element.bounds.width,
260
- height: element.bounds.height
261
- }
262
- };
263
- change(element, bounds);
264
- return toValidElementAndBounds(element, bounds, this.movementRestrictor);
265
- }
266
-
267
- undo(context: CommandExecutionContext): CommandReturn {
268
- // we dispatch another action which can be undone, so no explicit implementation necessary
269
- return context.root;
270
- }
271
-
272
- redo(context: CommandExecutionContext): CommandReturn {
273
- // we dispatch another action which can be redone, so no explicit implementation necessary
274
- return context.root;
275
- }
276
- }
277
-
278
- @injectable()
279
- export class AlignElementsCommand extends LayoutElementsCommand {
280
- static readonly KIND = 'layout:align';
281
-
282
- 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
287
- ) {
288
- super(action, actionDispatcher, selectionService, movementRestrictor);
289
- }
290
-
291
- protected isActionElement(element: SModelElement): element is BoundsAwareModelElement {
292
- return isBoundsAwareMoveable(element);
293
- }
294
-
295
- execute(context: CommandExecutionContext): CommandReturn {
296
- const elements = this.getActionElements(context);
297
- if (elements.length > 1) {
298
- switch (this.action.alignment) {
299
- case Alignment.Left:
300
- this.alignLeft(elements);
301
- break;
302
- case Alignment.Center:
303
- this.alignCenter(elements);
304
- break;
305
- case Alignment.Right:
306
- this.alignRight(elements);
307
- break;
308
- case Alignment.Top:
309
- this.alignTop(elements);
310
- break;
311
- case Alignment.Middle:
312
- this.alignMiddle(elements);
313
- break;
314
- case Alignment.Bottom:
315
- this.alignBottom(elements);
316
- break;
317
- }
318
- }
319
- return context.root;
320
- }
321
-
322
- alignLeft(elements: BoundsAwareModelElement[]): void {
323
- const calculationElements = this.action.selectionFunction(elements);
324
- const minX = calculationElements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
325
- this.dispatchAlignActions(elements, (_, move) => (move.toPosition.x = minX));
326
- }
327
-
328
- alignCenter(elements: BoundsAwareModelElement[]): void {
329
- const calculationElements = this.action.selectionFunction(elements);
330
- const minX = calculationElements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
331
- const maxX = calculationElements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
332
- const diffX = maxX - minX;
333
- const centerX = minX + 0.5 * diffX;
334
- this.dispatchAlignActions(elements, (element, move) => (move.toPosition.x = centerX - 0.5 * element.bounds.width));
335
- }
336
-
337
- alignRight(elements: BoundsAwareModelElement[]): void {
338
- const calculationElements = this.action.selectionFunction(elements);
339
- const maxX = calculationElements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
340
- this.dispatchAlignActions(elements, (element, move) => (move.toPosition.x = maxX - element.bounds.width));
341
- }
342
-
343
- alignTop(elements: BoundsAwareModelElement[]): void {
344
- const calculationElements = this.action.selectionFunction(elements);
345
- const minY = calculationElements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
346
- this.dispatchAlignActions(elements, (_, move) => (move.toPosition.y = minY));
347
- }
348
-
349
- alignMiddle(elements: BoundsAwareModelElement[]): void {
350
- const calculationElements = this.action.selectionFunction(elements);
351
- const minY = calculationElements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
352
- const maxY = calculationElements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
353
- const diffY = maxY - minY;
354
- const middleY = minY + 0.5 * diffY;
355
- this.dispatchAlignActions(elements, (element, move) => (move.toPosition.y = middleY - 0.5 * element.bounds.height));
356
- }
357
-
358
- alignBottom(elements: BoundsAwareModelElement[]): void {
359
- const calculationElements = this.action.selectionFunction(elements);
360
- const maxY = calculationElements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
361
- this.dispatchAlignActions(elements, (element, move) => (move.toPosition.y = maxY - element.bounds.height));
362
- }
363
-
364
- dispatchAlignActions(
365
- elements: BoundsAwareModelElement[],
366
- change: (element: BoundsAwareModelElement, move: WriteableElementMove) => void
367
- ): void {
368
- const moves: ElementMove[] = []; // client-side move
369
- const elementAndBounds: ElementAndBounds[] = []; // server-side move
370
- elements.forEach(element => {
371
- const move = this.createElementMove(element, change);
372
- if (move) {
373
- // simply skip invalid changes
374
- moves.push(move);
375
- const elementAndBound = this.createElementAndBounds(element, move);
376
- elementAndBounds.push(elementAndBound);
377
- }
378
- });
379
- this.dispatchActions([new MoveAction(moves), new ChangeBoundsOperation(elementAndBounds)]);
380
- }
381
-
382
- createElementMove(
383
- element: BoundsAwareModelElement,
384
- change: (_element: BoundsAwareModelElement, _move: WriteableElementMove) => void
385
- ): WriteableElementMove | undefined {
386
- const move: WriteableElementMove = {
387
- elementId: element.id,
388
- fromPosition: {
389
- x: element.bounds.x,
390
- y: element.bounds.y
391
- },
392
- toPosition: {
393
- x: element.bounds.x,
394
- y: element.bounds.y
395
- }
396
- };
397
- change(element, move);
398
- return toValidElementMove(element, move, this.movementRestrictor);
399
- }
400
-
401
- createElementAndBounds(element: BoundsAwareModelElement, move: ElementMove): ElementAndBounds {
402
- return {
403
- elementId: element.id,
404
- newPosition: {
405
- x: move.toPosition.x,
406
- y: move.toPosition.y
407
- },
408
- newSize: {
409
- width: element.bounds.width,
410
- height: element.bounds.height
411
- }
412
- };
413
- }
414
-
415
- undo(context: CommandExecutionContext): CommandReturn {
416
- // we dispatch another action which can be undone, so no explicit implementation necessary
417
- return context.root;
418
- }
419
-
420
- redo(context: CommandExecutionContext): CommandReturn {
421
- // we dispatch another action which can be redone, so no explicit implementation necessary
422
- return context.root;
423
- }
424
- }
@@ -1,38 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
3
- *
4
- * This program and the accompanying materials are made available under the
5
- * terms of the Eclipse Public License v. 2.0 which is available at
6
- * http://www.eclipse.org/legal/epl-2.0.
7
- *
8
- * This Source Code may also be made available under the following Secondary
9
- * Licenses when the conditions for such availability set forth in the Eclipse
10
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- * with the GNU Classpath Exception which is available at
12
- * https://www.gnu.org/software/classpath/license.html.
13
- *
14
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- ********************************************************************************/
16
- import { isLabeledAction, isTriggerElementTypeCreationAction, LabeledAction, TriggerElementCreationAction } from '@eclipse-glsp/protocol';
17
-
18
- export interface PaletteItem extends LabeledAction {
19
- readonly id: string;
20
- readonly sortString: string;
21
- readonly children?: PaletteItem[];
22
- }
23
-
24
- export function isPaletteItem(object?: any): object is PaletteItem {
25
- return isLabeledAction(object) && 'id' in object && 'sortString' in object;
26
- }
27
-
28
- export namespace PaletteItem {
29
- export function getTriggerAction(item?: PaletteItem): TriggerElementCreationAction | undefined {
30
- if (item) {
31
- const initiAction = item.actions
32
- .filter(a => isTriggerElementTypeCreationAction(a))
33
- .map(action => action as TriggerElementCreationAction);
34
- return initiAction.length > 0 ? initiAction[0] : undefined;
35
- }
36
- return undefined;
37
- }
38
- }
@@ -1,64 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (c) 2021 STMicroelectronics and others.
3
- *
4
- * This program and the accompanying materials are made available under the
5
- * terms of the Eclipse Public License v. 2.0 which is available at
6
- * http://www.eclipse.org/legal/epl-2.0.
7
- *
8
- * This Source Code may also be made available under the following Secondary
9
- * Licenses when the conditions for such availability set forth in the Eclipse
10
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- * with the GNU Classpath Exception which is available at
12
- * https://www.gnu.org/software/classpath/license.html.
13
- *
14
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- ********************************************************************************/
16
-
17
- /**
18
- * Workaround for now to solve ambiguous exports in glsp-client. This module provides all glsp-only components.
19
- * i.e. typings that are not defined in sprotty
20
- */
21
-
22
- export {
23
- CompoundOperation,
24
- isActionKind,
25
- isCompoundOperation,
26
- isRejectAction,
27
- Operation
28
- } from '@eclipse-glsp/protocol/lib/action-protocol/base-protocol';
29
- export * from '@eclipse-glsp/protocol/lib/action-protocol/client-notification';
30
- export * from '@eclipse-glsp/protocol/lib/action-protocol/clipboard';
31
- export * from '@eclipse-glsp/protocol/lib/action-protocol/contexts';
32
- export * from '@eclipse-glsp/protocol/lib/action-protocol/edge-modification';
33
- export * from '@eclipse-glsp/protocol/lib/action-protocol/element-creation';
34
- export { isRequestPopupModelAction, isSetPopupModelAction } from '@eclipse-glsp/protocol/lib/action-protocol/element-hover';
35
- export * from '@eclipse-glsp/protocol/lib/action-protocol/element-navigation';
36
- export { isSelectAction, isSelectAllAction } from '@eclipse-glsp/protocol/lib/action-protocol/element-selection';
37
- export * from '@eclipse-glsp/protocol/lib/action-protocol/element-text-editing';
38
- export * from '@eclipse-glsp/protocol/lib/action-protocol/element-type-hints';
39
- export * from '@eclipse-glsp/protocol/lib/action-protocol/element-validation';
40
- export { LayoutOperation } from '@eclipse-glsp/protocol/lib/action-protocol/mode-layout';
41
- export {
42
- isModelSourceChangedAction,
43
- isRequestModelAction,
44
- isSetModelAction,
45
- ModelSourceChangedAction
46
- } from '@eclipse-glsp/protocol/lib/action-protocol/model-data';
47
- export * from '@eclipse-glsp/protocol/lib/action-protocol/model-edit-mode';
48
- export {
49
- DirtyStateChangeReason,
50
- isExportSvgAction,
51
- isSaveModelAction,
52
- isSetDirtyStateAction,
53
- SaveModelAction,
54
- SetDirtyStateAction
55
- } from '@eclipse-glsp/protocol/lib/action-protocol/model-saving';
56
- export * from '@eclipse-glsp/protocol/lib/action-protocol/node-modification';
57
- export * from '@eclipse-glsp/protocol/lib/action-protocol/tool-palette';
58
- export { Args, EditorContext, ElementAndRoutingPoints } from '@eclipse-glsp/protocol/lib/action-protocol/types';
59
- export * from '@eclipse-glsp/protocol/lib/action-protocol/undo-redo';
60
- export * from '@eclipse-glsp/protocol/lib/glsp-client';
61
- export * from '@eclipse-glsp/protocol/lib/jsonrpc/base-jsonrpc-glsp-client';
62
- export * from '@eclipse-glsp/protocol/lib/jsonrpc/glsp-jsonrpc-client';
63
- export * from '@eclipse-glsp/protocol/lib/utils/array-util';
64
- export * from '@eclipse-glsp/protocol/lib/utils/launch-util';