@eclipse-glsp/client 0.9.0 → 0.10.0-next.385713d.170

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 (512) 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 +13 -1
  38. package/lib/base/editor-context-service.d.ts.map +1 -1
  39. package/lib/base/editor-context-service.js +23 -10
  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/tool-manager/glsp-tool-manager.d.ts +1 -1
  60. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  61. package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
  62. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  63. package/lib/base/tool-manager/tool-actions.d.ts +14 -0
  64. package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
  65. package/lib/base/tool-manager/tool-actions.js +25 -0
  66. package/lib/base/tool-manager/tool-actions.js.map +1 -0
  67. package/lib/base/types.d.ts +144 -20
  68. package/lib/base/types.d.ts.map +1 -1
  69. package/lib/base/types.js +14 -26
  70. package/lib/base/types.js.map +1 -1
  71. package/lib/base/view/view-registry.d.ts.map +1 -1
  72. package/lib/base/view/view-registry.js +2 -2
  73. package/lib/base/view/view-registry.js.map +1 -1
  74. package/lib/features/change-bounds/model.d.ts +1 -1
  75. package/lib/features/change-bounds/model.d.ts.map +1 -1
  76. package/lib/features/change-bounds/model.js +3 -3
  77. package/lib/features/change-bounds/model.js.map +1 -1
  78. package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
  79. package/lib/features/change-bounds/movement-restrictor.js +6 -6
  80. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  81. package/lib/features/change-bounds/snap.d.ts +42 -1
  82. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  83. package/lib/features/change-bounds/snap.js +78 -2
  84. package/lib/features/change-bounds/snap.js.map +1 -1
  85. package/lib/features/change-bounds/snap.spec.d.ts +17 -0
  86. package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
  87. package/lib/features/change-bounds/snap.spec.js +82 -0
  88. package/lib/features/change-bounds/snap.spec.js.map +1 -0
  89. package/lib/features/command-palette/command-palette-tool.js +3 -3
  90. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  91. package/lib/features/command-palette/di.config.d.ts +2 -2
  92. package/lib/features/command-palette/di.config.d.ts.map +1 -1
  93. package/lib/features/command-palette/di.config.js +6 -6
  94. package/lib/features/command-palette/di.config.js.map +1 -1
  95. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
  96. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  97. package/lib/features/command-palette/server-command-palette-provider.js +13 -10
  98. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  99. package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
  100. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  101. package/lib/features/context-menu/delete-element-context-menu.js +4 -4
  102. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  103. package/lib/features/context-menu/di.config.d.ts +1 -1
  104. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  105. package/lib/features/context-menu/di.config.js +8 -7
  106. package/lib/features/context-menu/di.config.js.map +1 -1
  107. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +33 -1
  108. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  109. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +41 -28
  110. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  111. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
  112. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  113. package/lib/features/context-menu/server-context-menu-provider.js +8 -7
  114. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  115. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
  116. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  117. package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
  118. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  119. package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
  120. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  121. package/lib/features/copy-paste/copy-paste-handler.js +10 -11
  122. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  123. package/lib/features/copy-paste/di.config.d.ts +1 -1
  124. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  125. package/lib/features/copy-paste/di.config.js +5 -7
  126. package/lib/features/copy-paste/di.config.js.map +1 -1
  127. package/lib/features/decoration/decoration-placer.d.ts +1 -1
  128. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  129. package/lib/features/decoration/decoration-placer.js +19 -3
  130. package/lib/features/decoration/decoration-placer.js.map +1 -1
  131. package/lib/features/decoration/di.config.d.ts +2 -2
  132. package/lib/features/decoration/di.config.d.ts.map +1 -1
  133. package/lib/features/decoration/di.config.js +4 -4
  134. package/lib/features/decoration/di.config.js.map +1 -1
  135. package/lib/features/edit-label/di.config.d.ts +1 -1
  136. package/lib/features/edit-label/di.config.d.ts.map +1 -1
  137. package/lib/features/edit-label/di.config.js +5 -5
  138. package/lib/features/edit-label/di.config.js.map +1 -1
  139. package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
  140. package/lib/features/edit-label/edit-label-tool.js +2 -2
  141. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  142. package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
  143. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  144. package/lib/features/edit-label/edit-label-validator.js +11 -13
  145. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  146. package/lib/features/hints/di.config.js +4 -4
  147. package/lib/features/hints/di.config.js.map +1 -1
  148. package/lib/features/hints/type-hints.d.ts +15 -5
  149. package/lib/features/hints/type-hints.d.ts.map +1 -1
  150. package/lib/features/hints/type-hints.js +29 -26
  151. package/lib/features/hints/type-hints.js.map +1 -1
  152. package/lib/features/hover/di.config.d.ts +1 -1
  153. package/lib/features/hover/di.config.d.ts.map +1 -1
  154. package/lib/features/hover/di.config.js +14 -10
  155. package/lib/features/hover/di.config.js.map +1 -1
  156. package/lib/features/hover/hover.d.ts +16 -4
  157. package/lib/features/hover/hover.d.ts.map +1 -1
  158. package/lib/features/hover/hover.js +42 -4
  159. package/lib/features/hover/hover.js.map +1 -1
  160. package/lib/features/layout/di.config.d.ts +1 -1
  161. package/lib/features/layout/di.config.d.ts.map +1 -1
  162. package/lib/features/layout/di.config.js +6 -4
  163. package/lib/features/layout/di.config.js.map +1 -1
  164. package/lib/features/layout/freeform-layout.d.ts +17 -1
  165. package/lib/features/layout/freeform-layout.d.ts.map +1 -1
  166. package/lib/features/layout/freeform-layout.js +4 -4
  167. package/lib/features/layout/freeform-layout.js.map +1 -1
  168. package/lib/features/layout/hbox-layout.d.ts +41 -0
  169. package/lib/features/layout/hbox-layout.d.ts.map +1 -0
  170. package/lib/features/layout/hbox-layout.js +189 -0
  171. package/lib/features/layout/hbox-layout.js.map +1 -0
  172. package/lib/features/layout/layout-commands.d.ts +65 -38
  173. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  174. package/lib/features/layout/layout-commands.js +90 -67
  175. package/lib/features/layout/layout-commands.js.map +1 -1
  176. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  177. package/lib/features/layout/layout-commands.spec.js +35 -23
  178. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  179. package/lib/features/layout/vbox-layout.d.ts +17 -1
  180. package/lib/features/layout/vbox-layout.d.ts.map +1 -1
  181. package/lib/features/layout/vbox-layout.js +9 -8
  182. package/lib/features/layout/vbox-layout.js.map +1 -1
  183. package/lib/features/model-source-watcher/di.config.js +1 -1
  184. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  185. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
  186. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  187. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
  188. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  189. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  190. package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
  191. package/lib/features/mouse-tool/di.config.js +2 -2
  192. package/lib/features/mouse-tool/di.config.js.map +1 -1
  193. package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
  194. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  195. package/lib/features/mouse-tool/mouse-tool.js +11 -53
  196. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  197. package/lib/features/navigation/di.config.js +4 -4
  198. package/lib/features/navigation/di.config.js.map +1 -1
  199. package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
  200. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  201. package/lib/features/navigation/navigation-action-handler.js +52 -68
  202. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  203. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  204. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  205. package/lib/features/navigation/navigation-target-resolver.js +8 -9
  206. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  207. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  208. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  209. package/lib/features/reconnect/model.d.ts +1 -1
  210. package/lib/features/reconnect/model.d.ts.map +1 -1
  211. package/lib/features/reconnect/model.js +1 -1
  212. package/lib/features/reconnect/model.js.map +1 -1
  213. package/lib/features/save/di.config.d.ts +1 -1
  214. package/lib/features/save/di.config.d.ts.map +1 -1
  215. package/lib/features/save/di.config.js +3 -3
  216. package/lib/features/save/di.config.js.map +1 -1
  217. package/lib/features/save/save-keylistener.d.ts +1 -1
  218. package/lib/features/save/save-keylistener.d.ts.map +1 -1
  219. package/lib/features/save/save-keylistener.js +3 -3
  220. package/lib/features/save/save-keylistener.js.map +1 -1
  221. package/lib/features/select/di.config.d.ts +1 -1
  222. package/lib/features/select/di.config.d.ts.map +1 -1
  223. package/lib/features/select/di.config.js +7 -8
  224. package/lib/features/select/di.config.js.map +1 -1
  225. package/lib/features/select/select-feedback-action.d.ts +26 -22
  226. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  227. package/lib/features/select/select-feedback-action.js +19 -46
  228. package/lib/features/select/select-feedback-action.js.map +1 -1
  229. package/lib/features/select/select-mouse-listener.d.ts +1 -1
  230. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  231. package/lib/features/select/select-mouse-listener.js +1 -1
  232. package/lib/features/select/select-mouse-listener.js.map +1 -1
  233. package/lib/features/select/selection-service.d.ts +3 -3
  234. package/lib/features/select/selection-service.d.ts.map +1 -1
  235. package/lib/features/select/selection-service.js +28 -23
  236. package/lib/features/select/selection-service.js.map +1 -1
  237. package/lib/features/select/selection-service.spec.js +28 -25
  238. package/lib/features/select/selection-service.spec.js.map +1 -1
  239. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
  240. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  241. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +67 -37
  242. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  243. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
  244. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  245. package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
  246. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  247. package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
  248. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  249. package/lib/features/tool-feedback/css-feedback.js +42 -38
  250. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  251. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  252. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  253. package/lib/features/tool-feedback/di.config.js +18 -18
  254. package/lib/features/tool-feedback/di.config.js.map +1 -1
  255. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +44 -22
  256. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  257. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +140 -114
  258. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  259. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
  260. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  261. package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
  262. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  263. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
  264. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  265. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
  266. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  267. package/lib/features/tool-feedback/model.d.ts +1 -2
  268. package/lib/features/tool-feedback/model.d.ts.map +1 -1
  269. package/lib/features/tool-feedback/model.js +1 -1
  270. package/lib/features/tool-feedback/model.js.map +1 -1
  271. package/lib/features/tool-feedback/view.d.ts +1 -1
  272. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  273. package/lib/features/tool-feedback/view.js +22 -5
  274. package/lib/features/tool-feedback/view.js.map +1 -1
  275. package/lib/features/tool-palette/di.config.d.ts +1 -1
  276. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  277. package/lib/features/tool-palette/di.config.js +5 -4
  278. package/lib/features/tool-palette/di.config.js.map +1 -1
  279. package/lib/features/tool-palette/tool-palette.d.ts +10 -7
  280. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  281. package/lib/features/tool-palette/tool-palette.js +39 -32
  282. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  283. package/lib/features/tools/base-glsp-tool.d.ts +3 -3
  284. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  285. package/lib/features/tools/base-glsp-tool.js +11 -11
  286. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  287. package/lib/features/tools/change-bounds-tool.d.ts +7 -9
  288. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  289. package/lib/features/tools/change-bounds-tool.js +48 -71
  290. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  291. package/lib/features/tools/delete-tool.d.ts +1 -1
  292. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  293. package/lib/features/tools/delete-tool.js +17 -17
  294. package/lib/features/tools/delete-tool.js.map +1 -1
  295. package/lib/features/tools/di.config.d.ts +9 -2
  296. package/lib/features/tools/di.config.d.ts.map +1 -1
  297. package/lib/features/tools/di.config.js +26 -15
  298. package/lib/features/tools/di.config.js.map +1 -1
  299. package/lib/features/tools/edge-creation-tool.d.ts +1 -1
  300. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  301. package/lib/features/tools/edge-creation-tool.js +28 -21
  302. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  303. package/lib/features/tools/edge-edit-tool.d.ts +3 -2
  304. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  305. package/lib/features/tools/edge-edit-tool.js +41 -36
  306. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  307. package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
  308. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
  309. package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
  310. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
  311. package/lib/features/tools/marquee-behavior.d.ts +1 -1
  312. package/lib/features/tools/marquee-behavior.js +2 -2
  313. package/lib/features/tools/marquee-behavior.js.map +1 -1
  314. package/lib/features/tools/marquee-behavior.spec.js +63 -63
  315. package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
  316. package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
  317. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  318. package/lib/features/tools/marquee-mouse-tool.js +20 -20
  319. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  320. package/lib/features/tools/marquee-tool.d.ts +1 -1
  321. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  322. package/lib/features/tools/marquee-tool.js +4 -4
  323. package/lib/features/tools/marquee-tool.js.map +1 -1
  324. package/lib/features/tools/model.d.ts +3 -2
  325. package/lib/features/tools/model.d.ts.map +1 -1
  326. package/lib/features/tools/model.js +0 -15
  327. package/lib/features/tools/model.js.map +1 -1
  328. package/lib/features/tools/node-creation-tool.d.ts +1 -1
  329. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  330. package/lib/features/tools/node-creation-tool.js +17 -17
  331. package/lib/features/tools/node-creation-tool.js.map +1 -1
  332. package/lib/features/tools/view.d.ts.map +1 -1
  333. package/lib/features/tools/view.js +2 -2
  334. package/lib/features/tools/view.js.map +1 -1
  335. package/lib/features/validation/di.config.d.ts +1 -1
  336. package/lib/features/validation/di.config.d.ts.map +1 -1
  337. package/lib/features/validation/di.config.js +7 -7
  338. package/lib/features/validation/di.config.js.map +1 -1
  339. package/lib/features/validation/marker-navigator.d.ts +16 -8
  340. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  341. package/lib/features/validation/marker-navigator.js +39 -37
  342. package/lib/features/validation/marker-navigator.js.map +1 -1
  343. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  344. package/lib/features/validation/marker-navigator.spec.js +23 -37
  345. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  346. package/lib/features/validation/validate.d.ts +10 -12
  347. package/lib/features/validation/validate.d.ts.map +1 -1
  348. package/lib/features/validation/validate.js +42 -41
  349. package/lib/features/validation/validate.js.map +1 -1
  350. package/lib/features/viewport/di.config.d.ts +1 -1
  351. package/lib/features/viewport/di.config.d.ts.map +1 -1
  352. package/lib/features/viewport/di.config.js +7 -7
  353. package/lib/features/viewport/di.config.js.map +1 -1
  354. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
  355. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  356. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
  357. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  358. package/lib/index.d.ts +6 -7
  359. package/lib/index.d.ts.map +1 -1
  360. package/lib/index.js +13 -9
  361. package/lib/index.js.map +1 -1
  362. package/lib/lib/model.d.ts +3 -2
  363. package/lib/lib/model.d.ts.map +1 -1
  364. package/lib/lib/model.js +0 -15
  365. package/lib/lib/model.js.map +1 -1
  366. package/lib/model-source/glsp-diagram-server.d.ts +5 -5
  367. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  368. package/lib/model-source/glsp-diagram-server.js +7 -6
  369. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  370. package/lib/sprotty-reexport.d.ts +174 -0
  371. package/lib/sprotty-reexport.d.ts.map +1 -0
  372. package/lib/sprotty-reexport.js +299 -0
  373. package/lib/sprotty-reexport.js.map +1 -0
  374. package/lib/utils/argument-utils.js +5 -5
  375. package/lib/utils/argument-utils.js.map +1 -1
  376. package/lib/utils/layout-utils.d.ts +3 -3
  377. package/lib/utils/layout-utils.d.ts.map +1 -1
  378. package/lib/utils/smodel-util.d.ts +117 -11
  379. package/lib/utils/smodel-util.d.ts.map +1 -1
  380. package/lib/utils/smodel-util.js +142 -37
  381. package/lib/utils/smodel-util.js.map +1 -1
  382. package/lib/utils/viewpoint-util.d.ts +3 -3
  383. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  384. package/lib/utils/viewpoint-util.js +19 -3
  385. package/lib/utils/viewpoint-util.js.map +1 -1
  386. package/lib/views/base-view-module.js +19 -19
  387. package/lib/views/base-view-module.js.map +1 -1
  388. package/lib/views/compartments.js +2 -2
  389. package/lib/views/compartments.js.map +1 -1
  390. package/lib/views/glsp-edge-view.d.ts +1 -1
  391. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  392. package/lib/views/glsp-edge-view.js +1 -1
  393. package/lib/views/glsp-edge-view.js.map +1 -1
  394. package/lib/views/index.js +6 -2
  395. package/lib/views/index.js.map +1 -1
  396. package/lib/views/issue-marker-view.d.ts.map +1 -1
  397. package/lib/views/issue-marker-view.js +3 -3
  398. package/lib/views/issue-marker-view.js.map +1 -1
  399. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  400. package/lib/views/rounded-corner-view.js +2 -2
  401. package/lib/views/rounded-corner-view.js.map +1 -1
  402. package/package.json +8 -18
  403. package/src/base/action-dispatcher.ts +26 -16
  404. package/src/base/actions/focus-change-action.ts +25 -8
  405. package/src/base/actions/sprotty-actions.ts +26 -0
  406. package/src/base/auto-complete/auto-complete-actions.ts +7 -5
  407. package/src/base/auto-complete/auto-complete-widget.ts +15 -13
  408. package/src/base/command-stack.ts +7 -6
  409. package/src/base/container-modules.ts +2 -1
  410. package/src/base/di.config.ts +4 -5
  411. package/src/base/drag-aware-mouse-listener.ts +4 -4
  412. package/src/base/editor-context-service.ts +19 -7
  413. package/src/base/focus-tracker.ts +5 -4
  414. package/src/base/model/model-registry.ts +2 -2
  415. package/src/base/model/update-model-command.ts +9 -10
  416. package/src/base/model-initialization-constraint.ts +9 -11
  417. package/src/base/selection-clearing-mouse-listener.ts +1 -1
  418. package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
  419. package/src/base/tool-manager/tool-actions.ts +37 -0
  420. package/src/base/types.ts +31 -24
  421. package/src/base/view/view-registry.ts +2 -2
  422. package/src/features/change-bounds/model.ts +5 -5
  423. package/src/features/change-bounds/movement-restrictor.ts +3 -3
  424. package/src/features/change-bounds/snap.spec.ts +89 -0
  425. package/src/features/change-bounds/snap.ts +86 -2
  426. package/src/features/command-palette/di.config.ts +5 -7
  427. package/src/features/command-palette/server-command-palette-provider.ts +9 -8
  428. package/src/features/context-menu/delete-element-context-menu.ts +6 -6
  429. package/src/features/context-menu/di.config.ts +3 -2
  430. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +45 -17
  431. package/src/features/context-menu/server-context-menu-provider.ts +7 -6
  432. package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
  433. package/src/features/copy-paste/copy-paste-handler.ts +6 -6
  434. package/src/features/copy-paste/di.config.ts +7 -15
  435. package/src/features/decoration/decoration-placer.ts +4 -4
  436. package/src/features/decoration/di.config.ts +3 -5
  437. package/src/features/edit-label/di.config.ts +4 -5
  438. package/src/features/edit-label/edit-label-tool.ts +1 -2
  439. package/src/features/edit-label/edit-label-validator.ts +6 -10
  440. package/src/features/hints/di.config.ts +3 -3
  441. package/src/features/hints/type-hints.ts +33 -18
  442. package/src/features/hover/di.config.ts +8 -2
  443. package/src/features/hover/hover.ts +53 -11
  444. package/src/features/layout/di.config.ts +4 -2
  445. package/src/features/layout/freeform-layout.ts +6 -15
  446. package/src/features/layout/hbox-layout.ts +256 -0
  447. package/src/features/layout/layout-commands.spec.ts +38 -22
  448. package/src/features/layout/layout-commands.ts +134 -60
  449. package/src/features/layout/vbox-layout.ts +20 -20
  450. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
  451. package/src/features/mouse-tool/di.config.ts +3 -4
  452. package/src/features/mouse-tool/mouse-tool.ts +18 -59
  453. package/src/features/navigation/navigation-action-handler.ts +76 -42
  454. package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
  455. package/src/features/navigation/navigation-target-resolver.ts +8 -13
  456. package/src/features/reconnect/model.ts +2 -2
  457. package/src/features/save/di.config.ts +2 -3
  458. package/src/features/save/save-keylistener.ts +3 -3
  459. package/src/features/select/di.config.ts +6 -8
  460. package/src/features/select/select-feedback-action.ts +18 -46
  461. package/src/features/select/select-mouse-listener.ts +1 -2
  462. package/src/features/select/selection-service.spec.ts +11 -8
  463. package/src/features/select/selection-service.ts +17 -12
  464. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +51 -21
  465. package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
  466. package/src/features/tool-feedback/css-feedback.ts +40 -37
  467. package/src/features/tool-feedback/di.config.ts +4 -5
  468. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +132 -88
  469. package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
  470. package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
  471. package/src/features/tool-feedback/model.ts +1 -3
  472. package/src/features/tool-feedback/view.tsx +3 -3
  473. package/src/features/tool-palette/di.config.ts +3 -2
  474. package/src/features/tool-palette/tool-palette.ts +35 -19
  475. package/src/features/tools/base-glsp-tool.ts +11 -11
  476. package/src/features/tools/change-bounds-tool.ts +37 -67
  477. package/src/features/tools/delete-tool.ts +9 -9
  478. package/src/features/tools/di.config.ts +23 -12
  479. package/src/features/tools/edge-creation-tool.ts +21 -12
  480. package/src/features/tools/edge-edit-tool.ts +25 -21
  481. package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
  482. package/src/features/tools/marquee-behavior.ts +2 -2
  483. package/src/features/tools/marquee-mouse-tool.ts +13 -14
  484. package/src/features/tools/marquee-tool.ts +3 -3
  485. package/src/features/tools/model.ts +4 -3
  486. package/src/features/tools/node-creation-tool.ts +8 -8
  487. package/src/features/tools/view.tsx +2 -3
  488. package/src/features/validation/di.config.ts +4 -5
  489. package/src/features/validation/marker-navigator.spec.ts +4 -2
  490. package/src/features/validation/marker-navigator.ts +47 -25
  491. package/src/features/validation/validate.ts +31 -24
  492. package/src/features/viewport/di.config.ts +1 -2
  493. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  494. package/src/index.ts +6 -6
  495. package/src/lib/model.ts +4 -4
  496. package/src/model-source/glsp-diagram-server.ts +14 -14
  497. package/src/sprotty-reexport.ts +283 -0
  498. package/src/utils/layout-utils.ts +3 -3
  499. package/src/utils/smodel-util.ts +139 -43
  500. package/src/utils/viewpoint-util.ts +5 -14
  501. package/src/views/compartments.tsx +1 -1
  502. package/src/views/glsp-edge-view.tsx +4 -4
  503. package/src/views/issue-marker-view.tsx +2 -2
  504. package/src/views/rounded-corner-view.tsx +2 -3
  505. package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
  506. package/lib/features/tool-palette/palette-item.js.map +0 -1
  507. package/lib/protocol-reexport.d.ts +0 -45
  508. package/lib/protocol-reexport.d.ts.map +0 -1
  509. package/lib/protocol-reexport.js +0 -75
  510. package/lib/protocol-reexport.js.map +0 -1
  511. package/src/features/tool-palette/palette-item.ts +0 -38
  512. package/src/protocol-reexport.ts +0 -64
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "0.9.0",
3
+ "version": "0.10.0-next.385713d.170+385713d",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
6
6
  "keywords": [
@@ -34,32 +34,22 @@
34
34
  "css"
35
35
  ],
36
36
  "dependencies": {
37
- "@eclipse-glsp/protocol": "0.9.0",
37
+ "@eclipse-glsp/protocol": "0.10.0-next.385713d.170+385713d",
38
38
  "autocompleter": "5.1.0",
39
- "sprotty": "0.10.0"
39
+ "sprotty": "next"
40
40
  },
41
41
  "devDependencies": {
42
- "@babel/runtime": "^7.11.2",
43
- "@types/chai": "4.1.3",
44
- "@types/mocha": "^5.2.7",
45
- "@types/node": "10.14.18",
46
42
  "@vscode/codicons": "^0.0.25",
47
- "chai": "^4.2.0",
48
- "ignore-styles": "^5.0.1",
49
- "mocha": "^6.2.0",
50
- "mocha-jenkins-reporter": "0.4.5",
51
- "reflect-metadata": "^0.1.13",
52
- "rimraf": "^2.6.1",
53
- "ts-node": "^8.3.0",
54
- "typescript": "^3.9.2"
43
+ "eslint-import-resolver-typescript": "2.7.0",
44
+ "typescript": "^4.5.5"
55
45
  },
56
46
  "scripts": {
57
47
  "prepare": "yarn clean && yarn build && yarn lint",
58
- "clean": "rimraf lib",
48
+ "clean": "rimraf lib tsconfig.tsbuildinfo ",
59
49
  "build": "tsc",
60
50
  "lint": "eslint -c ./.eslintrc.js --ext .ts,.tsx ./src",
61
51
  "watch": "tsc -w",
62
- "test": "mocha --opts ./mocha.opts \"./src/**/*.spec.?(ts|tsx)\"",
52
+ "test": "mocha --config ../../.mocharc.json \"./src/**/*.spec.?(ts|tsx)\"",
63
53
  "test:ci": "export JUNIT_REPORT_PATH=./report.xml && yarn test --reporter mocha-jenkins-reporter"
64
54
  },
65
55
  "publishConfig": {
@@ -67,5 +57,5 @@
67
57
  },
68
58
  "main": "lib/index",
69
59
  "types": "lib/index",
70
- "gitHead": "5e12ddb7e7da0e1b55555d95607645e24555f6b4"
60
+ "gitHead": "385713d3bc42d68a1066243341e7bc6a0a9fca68"
71
61
  }
@@ -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,39 +13,40 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, isResponseAction, RequestAction, ResponseAction } from '@eclipse-glsp/protocol';
16
+ import { Action, RequestAction, ResponseAction } from '@eclipse-glsp/protocol';
17
17
  import { inject } from 'inversify';
18
18
  import { ActionDispatcher } from 'sprotty';
19
19
  import { ModelInitializationConstraint } from './model-initialization-constraint';
20
20
 
21
21
  export class GLSPActionDispatcher extends ActionDispatcher {
22
22
  protected readonly timeouts: Map<string, NodeJS.Timeout> = new Map();
23
+ protected initializedConstraint = false;
24
+ @inject(ModelInitializationConstraint) protected initializationConstraint: ModelInitializationConstraint;
23
25
 
24
- @inject(ModelInitializationConstraint) protected initiailizationConstraint: ModelInitializationConstraint;
25
- protected onModelInitialized: Promise<void> = Promise.resolve();
26
-
27
- initialize(): Promise<void> {
26
+ override initialize(): Promise<void> {
28
27
  return super.initialize().then(() => this.startModelInitialization());
29
28
  }
30
29
 
31
30
  startModelInitialization(): void {
32
- this.logger.log(this, 'Starting model initialization mode');
33
- this.onModelInitialized = this.initiailizationConstraint.onInitialized();
34
- this.onModelInitialized.then(() => this.logger.log(this, 'Model initialization completed'));
31
+ if (!this.initializedConstraint) {
32
+ this.logger.log(this, 'Starting model initialization mode');
33
+ this.initializationConstraint.onInitialized().then(() => this.logger.log(this, 'Model initialization completed'));
34
+ this.initializedConstraint = true;
35
+ }
35
36
  }
36
37
 
37
38
  onceModelInitialized(): Promise<void> {
38
- return this.onModelInitialized;
39
+ return this.initializationConstraint.onInitialized();
39
40
  }
40
41
 
41
- dispatch(action: Action): Promise<void> {
42
+ override dispatch(action: Action): Promise<void> {
42
43
  const result = super.dispatch(action);
43
- this.initiailizationConstraint.notifyDispatched(action);
44
+ this.initializationConstraint.notifyDispatched(action);
44
45
  return result;
45
46
  }
46
47
 
47
- protected handleAction(action: Action): Promise<void> {
48
- if (isResponseAction(action)) {
48
+ protected override handleAction(action: Action): Promise<void> {
49
+ if (ResponseAction.hasValidResponseId(action)) {
49
50
  // clear timeout
50
51
  const timeout = this.timeouts.get(action.responseId);
51
52
  if (timeout !== undefined) {
@@ -63,6 +64,14 @@ export class GLSPActionDispatcher extends ActionDispatcher {
63
64
  return super.handleAction(action);
64
65
  }
65
66
 
67
+ override request<Res extends ResponseAction>(action: RequestAction<Res>): Promise<Res> {
68
+ if (!action.requestId && action.requestId === '') {
69
+ // No request id has been specified. So we use a generated one.
70
+ action.requestId = RequestAction.generateRequestId();
71
+ }
72
+ return super.request(action);
73
+ }
74
+
66
75
  /**
67
76
  * Dispatch a request and waits for a response until the timeout given in `timeoutMs` has
68
77
  * been reached. The returned promise is resolved when a response with matching identifier
@@ -74,8 +83,9 @@ export class GLSPActionDispatcher extends ActionDispatcher {
74
83
  * no value, otherwise it will be rejected.
75
84
  */
76
85
  requestUntil<Res extends ResponseAction>(action: RequestAction<Res>, timeoutMs = 2000, rejectOnTimeout = false): Promise<Res> {
77
- if (!action.requestId) {
78
- return Promise.reject(new Error('Request without requestId'));
86
+ if (!action.requestId && action.requestId === '') {
87
+ // No request id has been specified. So we use a generated one.
88
+ action.requestId = RequestAction.generateRequestId();
79
89
  }
80
90
 
81
91
  const requestId = action.requestId;
@@ -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,14 +13,31 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action } from '@eclipse-glsp/protocol';
16
+ import { Action, hasBooleanProp } from '@eclipse-glsp/protocol';
17
17
 
18
- export class FocusStateChangedAction implements Action {
19
- static KIND = 'focusStateChanged';
20
- readonly kind = FocusStateChangedAction.KIND;
21
- constructor(public readonly hasFocus: boolean) {}
18
+ /**
19
+ * A `FocusStateChangedAction` is dispatched by the client whenever the
20
+ * diagram focus changes (i.e. focus loss or focus gain).
21
+ */
22
+ export interface FocusStateChangedAction extends Action {
23
+ kind: typeof FocusStateChangedAction.KIND;
24
+ /**
25
+ * The new focus state of the diagram.
26
+ */
27
+ hasFocus: boolean;
22
28
  }
23
29
 
24
- export function isFocusStateChangedAction(action: Action): action is FocusStateChangedAction {
25
- return action.kind === FocusStateChangedAction.KIND;
30
+ export namespace FocusStateChangedAction {
31
+ export const KIND = 'focusStateChanged';
32
+
33
+ export function is(object: any): object is FocusStateChangedAction {
34
+ return Action.hasKind(object, KIND) && hasBooleanProp(object, 'hasFocus');
35
+ }
36
+
37
+ export function create(hasFocus = true): FocusStateChangedAction {
38
+ return {
39
+ kind: KIND,
40
+ hasFocus
41
+ };
42
+ }
26
43
  }
@@ -0,0 +1,26 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022 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
+ import { Action, hasArrayProp } from '@eclipse-glsp/protocol';
17
+ import { SetBoundsAction } from 'sprotty-protocol/lib/actions';
18
+ declare module 'sprotty-protocol/lib/actions' {
19
+ // eslint-disable-next-line no-shadow
20
+ namespace SetBoundsAction {
21
+ export function is(object: any): object is SetBoundsAction;
22
+ }
23
+ }
24
+
25
+ SetBoundsAction.is = (object: any): object is SetBoundsAction =>
26
+ Action.hasKind(object, SetBoundsAction.KIND) && hasArrayProp(object, 'bounds');
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2022 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,12 +13,14 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { LabeledAction } from '@eclipse-glsp/protocol';
16
+ import { hasStringProp, LabeledAction } from '@eclipse-glsp/protocol';
17
17
 
18
- export interface SetAutoCompleteValueAction extends LabeledAction {
18
+ export interface AutoCompleteValue extends LabeledAction {
19
19
  readonly text: string;
20
20
  }
21
21
 
22
- export function isSetAutoCompleteValueAction(action: LabeledAction): action is SetAutoCompleteValueAction {
23
- return action !== undefined && (action as SetAutoCompleteValueAction).text !== undefined;
22
+ export namespace AutoCompleteValue {
23
+ export function is(object: any): object is AutoCompleteValue {
24
+ return LabeledAction.is(object) && hasStringProp(object, 'text');
25
+ }
24
26
  }
@@ -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,12 +13,12 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, isAction, isLabeledAction, LabeledAction, ValidationStatus } from '@eclipse-glsp/protocol';
16
+ import { Action, LabeledAction, ValidationStatus } from '@eclipse-glsp/protocol';
17
17
  import { AutocompleteResult, AutocompleteSettings } from 'autocompleter';
18
18
  import { codiconCSSClasses, ILogger, SModelRoot } from 'sprotty';
19
19
  import { toArray } from 'sprotty/lib/utils/iterable';
20
20
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
21
- import { isSetAutoCompleteValueAction } from './auto-complete-actions';
21
+ import { AutoCompleteValue } from './auto-complete-actions';
22
22
  import { IValidationDecorator } from './validation-decorator';
23
23
 
24
24
  export interface AutoCompleteSettings {
@@ -51,6 +51,13 @@ export interface TextSubmitHandler {
51
51
  // eslint-disable-next-line @typescript-eslint/no-var-requires
52
52
  const configureAutocomplete: (settings: AutocompleteSettings<LabeledAction>) => AutocompleteResult = require('autocompleter');
53
53
 
54
+ /**
55
+ * The `AutoCompleteWidget` is a reusable UI element that provides a text input supporting auto-completion,
56
+ * validation, validation messages, etc.
57
+ *
58
+ * An example for using it is available in the workflow diagram:
59
+ * https://github.com/eclipse-glsp/glsp-client/blob/master/examples/workflow-glsp/src/direct-task-editing/direct-task-editor.ts
60
+ */
54
61
  export class AutoCompleteWidget {
55
62
  loadingIndicatorClasses = codiconCSSClasses('loading', false, true, ['loading']);
56
63
 
@@ -158,18 +165,13 @@ export class AutoCompleteWidget {
158
165
  fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
159
166
  onSelect: (item: LabeledAction) => this.onSelect(item),
160
167
  render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
161
- customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
168
+ customize: (input: HTMLInputElement, inputRect: DOMRect, container: HTMLDivElement, maxHeight: number) => {
162
169
  this.customizeInputElement(input, inputRect, container, maxHeight);
163
170
  }
164
171
  };
165
172
  }
166
173
 
167
- protected customizeInputElement(
168
- input: HTMLInputElement,
169
- inputRect: ClientRect | DOMRect,
170
- container: HTMLDivElement,
171
- maxHeight: number
172
- ): void {
174
+ protected customizeInputElement(input: HTMLInputElement, inputRect: DOMRect, container: HTMLDivElement, maxHeight: number): void {
173
175
  // move container into our UIExtension container as this is already positioned correctly
174
176
  if (this.containerElement) {
175
177
  this.containerElement.appendChild(container);
@@ -249,7 +251,7 @@ export class AutoCompleteWidget {
249
251
  }
250
252
 
251
253
  protected onSelect(item: LabeledAction): void {
252
- if (isSetAutoCompleteValueAction(item)) {
254
+ if (AutoCompleteValue.is(item)) {
253
255
  this.inputElement.value = item.text;
254
256
  // trigger update of suggestions with an keyup event
255
257
  window.setTimeout(() => this.inputElement.dispatchEvent(new Event('keyup')));
@@ -317,9 +319,9 @@ export class AutoCompleteWidget {
317
319
  }
318
320
 
319
321
  export function toActionArray(input: LabeledAction | Action[] | Action): Action[] {
320
- if (isLabeledAction(input)) {
322
+ if (LabeledAction.is(input)) {
321
323
  return input.actions;
322
- } else if (isAction(input)) {
324
+ } else if (Action.is(input)) {
323
325
  return [input];
324
326
  }
325
327
  return [];
@@ -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
@@ -15,19 +15,20 @@
15
15
  ********************************************************************************/
16
16
  import { RedoOperation, UndoOperation } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable } from 'inversify';
18
- import { CommandStack, IActionDispatcher, SModelRoot, TYPES } from 'sprotty';
18
+ import { CommandStack, IActionDispatcher, SModelRoot } from 'sprotty';
19
+ import { TYPES } from './types';
19
20
 
20
21
  @injectable()
21
22
  export class GLSPCommandStack extends CommandStack {
22
23
  @inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
23
24
 
24
- undo(): Promise<SModelRoot> {
25
- this.actionDispatcher().then(dispatcher => dispatcher.dispatch(new UndoOperation()));
25
+ override undo(): Promise<SModelRoot> {
26
+ this.actionDispatcher().then(dispatcher => dispatcher.dispatch(UndoOperation.create()));
26
27
  return this.thenUpdate();
27
28
  }
28
29
 
29
- redo(): Promise<SModelRoot> {
30
- this.actionDispatcher().then(dispatcher => dispatcher.dispatch(new RedoOperation()));
30
+ override redo(): Promise<SModelRoot> {
31
+ this.actionDispatcher().then(dispatcher => dispatcher.dispatch(RedoOperation.create()));
31
32
  return this.thenUpdate();
32
33
  }
33
34
  }
@@ -44,7 +44,7 @@ import { navigationModule } from '../features/navigation/di.config';
44
44
  import glspSelectModule from '../features/select/di.config';
45
45
  import toolFeedbackModule from '../features/tool-feedback/di.config';
46
46
  import toolPaletteModule from '../features/tool-palette/di.config';
47
- import toolsModule from '../features/tools/di.config';
47
+ import { enableDefaultToolsOnFocusLossModule, toolsModule } from '../features/tools/di.config';
48
48
  import { markerNavigatorModule, validationModule } from '../features/validation/di.config';
49
49
  import glspViewportModule from '../features/viewport/di.config';
50
50
  import defaultGLSPModule from './di.config';
@@ -80,6 +80,7 @@ export const DEFAULT_MODULES = [
80
80
  routingModule,
81
81
  toolFeedbackModule,
82
82
  toolsModule,
83
+ enableDefaultToolsOnFocusLossModule,
83
84
  validationModule,
84
85
  zorderModule
85
86
  ];
@@ -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
@@ -16,7 +16,7 @@
16
16
  import { InitializeResult, SetEditModeAction } from '@eclipse-glsp/protocol';
17
17
  import '@vscode/codicons/dist/codicon.css';
18
18
  import { Container, ContainerModule } from 'inversify';
19
- import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand, TYPES } from 'sprotty';
19
+ import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand } from 'sprotty';
20
20
  import '../../css/glsp-sprotty.css';
21
21
  import { GLSPActionDispatcher } from './action-dispatcher';
22
22
  import { FocusStateChangedAction } from './actions/focus-change-action';
@@ -28,13 +28,13 @@ import { GLSPModelRegistry } from './model/model-registry';
28
28
  import { FeedbackAwareUpdateModelCommand, SetModelActionHandler } from './model/update-model-command';
29
29
  import { SelectionClearingMouseListener } from './selection-clearing-mouse-listener';
30
30
  import { GLSPToolManager } from './tool-manager/glsp-tool-manager';
31
- import { GLSP_TYPES } from './types';
31
+ import { TYPES } from './types';
32
32
  import { GLSPViewRegistry } from './view/view-registry';
33
33
 
34
34
  const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
35
35
  const context = { bind, _unbind, isBound, rebind };
36
36
  bind(EditorContextService).toSelf().inSingletonScope();
37
- bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
37
+ bind(TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
38
38
  ctx => () =>
39
39
  new Promise<EditorContextService>((resolve, reject) => {
40
40
  if (ctx.container.isBound(EditorContextService)) {
@@ -58,7 +58,6 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
58
58
 
59
59
  rebind(TYPES.ICommandStack).to(GLSPCommandStack);
60
60
  bind(GLSPToolManager).toSelf().inSingletonScope();
61
- bind(GLSP_TYPES.IGLSPToolManager).toService(GLSPToolManager);
62
61
  rebind(TYPES.IToolManager).toService(GLSPToolManager);
63
62
  bind(GLSPActionDispatcher).toSelf().inSingletonScope();
64
63
  rebind(TYPES.IActionDispatcher).toService(GLSPActionDispatcher);
@@ -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
@@ -28,19 +28,19 @@ export class DragAwareMouseListener extends MouseListener {
28
28
  private _isMouseDown = false;
29
29
  private _isMouseDrag = false;
30
30
 
31
- mouseDown(target: SModelElement, event: MouseEvent): Action[] {
31
+ override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
32
32
  this._isMouseDown = true;
33
33
  return [];
34
34
  }
35
35
 
36
- mouseMove(target: SModelElement, event: MouseEvent): Action[] {
36
+ override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
37
37
  if (this._isMouseDown) {
38
38
  this._isMouseDrag = true;
39
39
  }
40
40
  return [];
41
41
  }
42
42
 
43
- mouseUp(element: SModelElement, event: MouseEvent): Action[] {
43
+ override mouseUp(element: SModelElement, event: MouseEvent): Action[] {
44
44
  this._isMouseDown = false;
45
45
  if (this._isMouseDrag) {
46
46
  this._isMouseDrag = false;
@@ -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,25 +13,37 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, Args, distinctAdd, EditMode, EditorContext, isSetEditModeAction, remove } from '@eclipse-glsp/protocol';
16
+ import { Action, Args, distinctAdd, EditMode, EditorContext, remove, SetEditModeAction } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable, multiInject, optional } from 'inversify';
18
- import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot, TYPES } from 'sprotty';
18
+ import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot } from 'sprotty';
19
19
  import { SelectionService } from '../features/select/selection-service';
20
20
  import { isSourceUriAware } from './source-uri-aware';
21
- import { GLSP_TYPES } from './types';
21
+ import { TYPES } from './types';
22
22
 
23
23
  export interface EditModeListener {
24
24
  editModeChanged(newValue: string, oldvalue: string): void;
25
25
  }
26
26
 
27
+ /**
28
+ * The `EditorContextService` is a central injectable component that gives read-only access to
29
+ * certain aspects of the diagram, such as the currently selected elements, the model root,
30
+ * the edit mode, the latest position of the mouse in the diagram.
31
+ *
32
+ * It has been introduced for two main reasons:
33
+ * 1. to simplify accessing the model root and the current selection from components that are
34
+ * not commands,
35
+ * 2. to conveniently create an EditorContext, which is a context object sent as part of several
36
+ * actions to the server to describe the current state of the editor (selection, last mouse
37
+ * position, etc.).
38
+ */
27
39
  @injectable()
28
40
  export class EditorContextService implements IActionHandler {
29
- @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
41
+ @inject(TYPES.SelectionService) protected selectionService: SelectionService;
30
42
  @inject(MousePositionTracker) protected mousePositionTracker: MousePositionTracker;
31
43
  @inject(TYPES.ModelSourceProvider) protected modelSource: () => Promise<ModelSource>;
32
44
  protected _editMode: string;
33
45
 
34
- constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {}
46
+ constructor(@multiInject(TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {}
35
47
 
36
48
  register(editModeListener: EditModeListener): void {
37
49
  distinctAdd(this.editModeListeners, editModeListener);
@@ -58,7 +70,7 @@ export class EditorContextService implements IActionHandler {
58
70
  }
59
71
 
60
72
  handle(action: Action): void {
61
- if (isSetEditModeAction(action)) {
73
+ if (SetEditModeAction.is(action)) {
62
74
  const oldValue = this._editMode;
63
75
  this._editMode = action.editMode;
64
76
  this.notifiyEditModeListeners(oldValue);
@@ -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
@@ -15,8 +15,9 @@
15
15
  ********************************************************************************/
16
16
  import { Action } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable } from 'inversify';
18
- import { IActionHandler, ICommand, TYPES, ViewerOptions } from 'sprotty';
19
- import { isFocusStateChangedAction } from './actions/focus-change-action';
18
+ import { IActionHandler, ICommand, ViewerOptions } from 'sprotty';
19
+ import { FocusStateChangedAction } from './actions/focus-change-action';
20
+ import { TYPES } from './types';
20
21
 
21
22
  @injectable()
22
23
  export class FocusTracker implements IActionHandler {
@@ -30,7 +31,7 @@ export class FocusTracker implements IActionHandler {
30
31
  }
31
32
 
32
33
  handle(action: Action): void | Action | ICommand {
33
- if (isFocusStateChangedAction(action)) {
34
+ if (FocusStateChangedAction.is(action)) {
34
35
  this._hasFocus = action.hasFocus;
35
36
  const placeholder = document.getElementById(this.options.baseDiv);
36
37
  if (!placeholder) {
@@ -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
@@ -18,7 +18,7 @@ import { SModelElement, SModelRegistry } from 'sprotty';
18
18
 
19
19
  @injectable()
20
20
  export class GLSPModelRegistry extends SModelRegistry {
21
- register(key: string, factory: (u: void) => SModelElement): void {
21
+ override register(key: string, factory: (u: void) => SModelElement): void {
22
22
  if (key === undefined) {
23
23
  throw new Error('Key is undefined');
24
24
  }
@@ -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,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, isSetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
16
+ import { Action, SetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
18
18
  import {
19
19
  ActionHandlerRegistry,
@@ -24,20 +24,19 @@ import {
24
24
  IActionHandler,
25
25
  ILogger,
26
26
  SModelRoot,
27
- TYPES,
28
27
  UpdateModelCommand
29
28
  } from 'sprotty';
30
29
  import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
31
30
  import { FeedbackCommand } from '../../features/tool-feedback/model';
32
- import { GLSP_TYPES } from '../types';
31
+ import { TYPES } from '../types';
33
32
 
34
33
  /* ActionHandler that transforms a SetModelAction into an (feedback-aware) UpdateModelAction. This can be done because in sprotty
35
34
  * UpdateModel behaves the same as SetModel if no model is present yet.*/
36
35
  @injectable()
37
36
  export class SetModelActionHandler implements IActionHandler {
38
37
  handle(action: Action): Action | void {
39
- if (isSetModelAction(action)) {
40
- return new UpdateModelAction(action.newRoot, false);
38
+ if (SetModelAction.is(action)) {
39
+ return UpdateModelAction.create(action.newRoot, { animate: false });
41
40
  }
42
41
  }
43
42
  }
@@ -53,14 +52,14 @@ export interface SModelRootListener {
53
52
  @injectable()
54
53
  export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
55
54
  @inject(TYPES.ILogger) protected logger: ILogger;
56
- @inject(GLSP_TYPES.IFeedbackActionDispatcher) @optional() protected readonly feedbackActionDispatcher: IFeedbackActionDispatcher;
55
+ @inject(TYPES.IFeedbackActionDispatcher) @optional() protected readonly feedbackActionDispatcher: IFeedbackActionDispatcher;
57
56
  @inject(TYPES.ActionHandlerRegistryProvider) protected actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
58
- @multiInject(GLSP_TYPES.SModelRootListener) @optional() protected modelRootListeners: SModelRootListener[] = [];
57
+ @multiInject(TYPES.SModelRootListener) @optional() protected modelRootListeners: SModelRootListener[] = [];
59
58
 
60
59
  protected actionHandlerRegistry?: ActionHandlerRegistry;
61
60
 
62
61
  constructor(@inject(TYPES.Action) action: UpdateModelAction) {
63
- super(action);
62
+ super({ animate: true, ...action });
64
63
  }
65
64
 
66
65
  @postConstruct()
@@ -68,7 +67,7 @@ export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
68
67
  this.actionHandlerRegistryProvider().then(registry => (this.actionHandlerRegistry = registry));
69
68
  }
70
69
 
71
- protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
70
+ protected override performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
72
71
  if (this.feedbackActionDispatcher && this.actionHandlerRegistry) {
73
72
  // Create a temporary context wich defines the `newRoot` as `root`
74
73
  // This way we do not corrupt the redo/undo behavior of the super class