@eclipse-glsp/client 0.9.0-next.d0112315 → 0.9.0-next.f12e3d87

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 (469) hide show
  1. package/README.md +2 -1
  2. package/css/command-palette.css +6 -5
  3. package/css/glsp-sprotty.css +17 -8
  4. package/css/tool-palette.css +14 -14
  5. package/lib/base/action-dispatcher.d.ts.map +1 -1
  6. package/lib/base/action-dispatcher.js +39 -60
  7. package/lib/base/action-dispatcher.js.map +1 -1
  8. package/lib/base/actions/context-actions.d.ts +1 -1
  9. package/lib/base/actions/context-actions.d.ts.map +1 -1
  10. package/lib/base/actions/context-actions.js +11 -18
  11. package/lib/base/actions/context-actions.js.map +1 -1
  12. package/lib/base/actions/edit-mode-action.d.ts.map +1 -1
  13. package/lib/base/actions/edit-mode-action.js +12 -17
  14. package/lib/base/actions/edit-mode-action.js.map +1 -1
  15. package/lib/base/actions/edit-validation-actions.d.ts +1 -1
  16. package/lib/base/actions/edit-validation-actions.d.ts.map +1 -1
  17. package/lib/base/actions/edit-validation-actions.js +23 -26
  18. package/lib/base/actions/edit-validation-actions.js.map +1 -1
  19. package/lib/base/actions/focus-change-action.js +4 -5
  20. package/lib/base/actions/focus-change-action.js.map +1 -1
  21. package/lib/base/args.d.ts +1 -1
  22. package/lib/base/args.d.ts.map +1 -1
  23. package/lib/base/args.js.map +1 -1
  24. package/lib/base/auto-complete/auto-complete-widget.d.ts +1 -1
  25. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  26. package/lib/base/auto-complete/auto-complete-widget.js +100 -150
  27. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  28. package/lib/base/auto-complete/validation-decorator.d.ts +1 -1
  29. package/lib/base/auto-complete/validation-decorator.js +38 -60
  30. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  31. package/lib/base/command-stack.d.ts.map +1 -1
  32. package/lib/base/command-stack.js +19 -37
  33. package/lib/base/command-stack.js.map +1 -1
  34. package/lib/base/container-modules.d.ts +40 -0
  35. package/lib/base/container-modules.d.ts.map +1 -0
  36. package/lib/base/container-modules.js +84 -0
  37. package/lib/base/container-modules.js.map +1 -0
  38. package/lib/base/di.config.d.ts +11 -2
  39. package/lib/base/di.config.d.ts.map +1 -1
  40. package/lib/base/di.config.js +37 -37
  41. package/lib/base/di.config.js.map +1 -1
  42. package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
  43. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  44. package/lib/base/drag-aware-mouse-listener.js +24 -48
  45. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  46. package/lib/base/editor-context.d.ts.map +1 -1
  47. package/lib/base/editor-context.js +64 -128
  48. package/lib/base/editor-context.js.map +1 -1
  49. package/lib/base/focus-tracker.d.ts.map +1 -1
  50. package/lib/base/focus-tracker.js +19 -24
  51. package/lib/base/focus-tracker.js.map +1 -1
  52. package/lib/base/model/model-registry.js +10 -28
  53. package/lib/base/model/model-registry.js.map +1 -1
  54. package/lib/base/model/update-model-command.d.ts +2 -2
  55. package/lib/base/model/update-model-command.d.ts.map +1 -1
  56. package/lib/base/model/update-model-command.js +67 -88
  57. package/lib/base/model/update-model-command.js.map +1 -1
  58. package/lib/base/model-initialization-constraint.js +31 -52
  59. package/lib/base/model-initialization-constraint.js.map +1 -1
  60. package/lib/base/operations/operation.d.ts +5 -5
  61. package/lib/base/operations/operation.d.ts.map +1 -1
  62. package/lib/base/operations/operation.js +75 -115
  63. package/lib/base/operations/operation.js.map +1 -1
  64. package/lib/base/selection-clearing-mouse-listener.js +10 -28
  65. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  66. package/lib/base/source-uri-aware.js +2 -5
  67. package/lib/base/source-uri-aware.js.map +1 -1
  68. package/lib/base/tool-manager/glsp-tool-manager.js +56 -137
  69. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  70. package/lib/base/types.d.ts +2 -1
  71. package/lib/base/types.d.ts.map +1 -1
  72. package/lib/base/types.js +3 -2
  73. package/lib/base/types.js.map +1 -1
  74. package/lib/base/view/view-registry.js +10 -28
  75. package/lib/base/view/view-registry.js.map +1 -1
  76. package/lib/features/change-bounds/model.d.ts +3 -1
  77. package/lib/features/change-bounds/model.d.ts.map +1 -1
  78. package/lib/features/change-bounds/model.js +20 -31
  79. package/lib/features/change-bounds/model.js.map +1 -1
  80. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  81. package/lib/features/change-bounds/movement-restrictor.js +29 -28
  82. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  83. package/lib/features/change-bounds/snap.js +13 -24
  84. package/lib/features/change-bounds/snap.js.map +1 -1
  85. package/lib/features/command-palette/command-palette-tool.js +30 -38
  86. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  87. package/lib/features/command-palette/di.config.js +6 -6
  88. package/lib/features/command-palette/di.config.js.map +1 -1
  89. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  90. package/lib/features/command-palette/server-command-palette-provider.js +27 -32
  91. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  92. package/lib/features/context-menu/delete-element-context-menu.js +19 -67
  93. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  94. package/lib/features/context-menu/di.config.d.ts +1 -1
  95. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  96. package/lib/features/context-menu/di.config.js +8 -8
  97. package/lib/features/context-menu/di.config.js.map +1 -1
  98. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  99. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
  100. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  101. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  102. package/lib/features/context-menu/server-context-menu-provider.js +29 -30
  103. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  104. package/lib/features/copy-paste/copy-paste-actions.d.ts +1 -1
  105. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +1 -1
  106. package/lib/features/copy-paste/copy-paste-actions.js +20 -30
  107. package/lib/features/copy-paste/copy-paste-actions.js.map +1 -1
  108. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +5 -1
  109. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  110. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  111. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  112. package/lib/features/copy-paste/copy-paste-handler.d.ts +2 -0
  113. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  114. package/lib/features/copy-paste/copy-paste-handler.js +67 -67
  115. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  116. package/lib/features/copy-paste/di.config.js +10 -10
  117. package/lib/features/copy-paste/di.config.js.map +1 -1
  118. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  119. package/lib/features/decoration/decoration-placer.js +13 -32
  120. package/lib/features/decoration/decoration-placer.js.map +1 -1
  121. package/lib/features/decoration/di.config.js +4 -4
  122. package/lib/features/decoration/di.config.js.map +1 -1
  123. package/lib/features/edit-label/di.config.js +7 -7
  124. package/lib/features/edit-label/di.config.js.map +1 -1
  125. package/lib/features/edit-label/edit-label-tool.js +20 -43
  126. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  127. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  128. package/lib/features/edit-label/edit-label-validator.js +37 -59
  129. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  130. package/lib/features/hints/di.config.js +8 -8
  131. package/lib/features/hints/di.config.js.map +1 -1
  132. package/lib/features/hints/model.d.ts +1 -1
  133. package/lib/features/hints/model.d.ts.map +1 -1
  134. package/lib/features/hints/request-type-hints-action.d.ts +1 -1
  135. package/lib/features/hints/request-type-hints-action.d.ts.map +1 -1
  136. package/lib/features/hints/request-type-hints-action.js +12 -14
  137. package/lib/features/hints/request-type-hints-action.js.map +1 -1
  138. package/lib/features/hints/type-hints.d.ts +4 -4
  139. package/lib/features/hints/type-hints.d.ts.map +1 -1
  140. package/lib/features/hints/type-hints.js +91 -133
  141. package/lib/features/hints/type-hints.js.map +1 -1
  142. package/lib/features/hover/di.config.js +7 -7
  143. package/lib/features/hover/di.config.js.map +1 -1
  144. package/lib/features/hover/hover.d.ts.map +1 -1
  145. package/lib/features/hover/hover.js +35 -76
  146. package/lib/features/hover/hover.js.map +1 -1
  147. package/lib/features/layout/di.config.d.ts +5 -1
  148. package/lib/features/layout/di.config.d.ts.map +1 -1
  149. package/lib/features/layout/di.config.js +47 -7
  150. package/lib/features/layout/di.config.js.map +1 -1
  151. package/lib/features/layout/freeform-layout.d.ts +16 -0
  152. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  153. package/lib/features/layout/freeform-layout.js +107 -0
  154. package/lib/features/layout/freeform-layout.js.map +1 -0
  155. package/lib/features/layout/layout-commands.d.ts +2 -2
  156. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  157. package/lib/features/layout/layout-commands.js +187 -263
  158. package/lib/features/layout/layout-commands.js.map +1 -1
  159. package/lib/features/layout/layout-commands.spec.d.ts +1 -1
  160. package/lib/features/layout/layout-commands.spec.js +94 -88
  161. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  162. package/lib/features/layout/vbox-layout.d.ts +25 -0
  163. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  164. package/lib/features/layout/vbox-layout.js +187 -0
  165. package/lib/features/layout/vbox-layout.js.map +1 -0
  166. package/lib/features/model-source-watcher/di.config.js +6 -6
  167. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  168. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  169. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -45
  170. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  171. package/lib/features/model-source-watcher/model-source-changed-action.d.ts +1 -1
  172. package/lib/features/model-source-watcher/model-source-changed-action.js +4 -5
  173. package/lib/features/model-source-watcher/model-source-changed-action.js.map +1 -1
  174. package/lib/features/mouse-tool/di.config.js +5 -5
  175. package/lib/features/mouse-tool/di.config.js.map +1 -1
  176. package/lib/features/mouse-tool/mouse-tool.d.ts +2 -1
  177. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  178. package/lib/features/mouse-tool/mouse-tool.js +69 -215
  179. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  180. package/lib/features/navigation/di.config.js +9 -9
  181. package/lib/features/navigation/di.config.js.map +1 -1
  182. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  183. package/lib/features/navigation/navigation-action-handler.js +136 -217
  184. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  185. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  186. package/lib/features/navigation/navigation-target-resolver.js +57 -122
  187. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  188. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +1 -1
  189. package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
  190. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  191. package/lib/features/rank/model.d.ts +1 -1
  192. package/lib/features/rank/model.js +2 -2
  193. package/lib/features/rank/model.js.map +1 -1
  194. package/lib/features/reconnect/model.d.ts +1 -1
  195. package/lib/features/reconnect/model.d.ts.map +1 -1
  196. package/lib/features/reconnect/model.js +9 -27
  197. package/lib/features/reconnect/model.js.map +1 -1
  198. package/lib/features/save/di.config.d.ts +1 -1
  199. package/lib/features/save/di.config.d.ts.map +1 -1
  200. package/lib/features/save/di.config.js +5 -5
  201. package/lib/features/save/di.config.js.map +1 -1
  202. package/lib/features/save/save.d.ts +1 -1
  203. package/lib/features/save/save.js +11 -31
  204. package/lib/features/save/save.js.map +1 -1
  205. package/lib/features/select/di.config.js +11 -11
  206. package/lib/features/select/di.config.js.map +1 -1
  207. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  208. package/lib/features/select/select-feedback-action.js +45 -71
  209. package/lib/features/select/select-feedback-action.js.map +1 -1
  210. package/lib/features/select/select-mouse-listener.js +7 -23
  211. package/lib/features/select/select-mouse-listener.js.map +1 -1
  212. package/lib/features/select/selection-service.d.ts.map +1 -1
  213. package/lib/features/select/selection-service.js +132 -234
  214. package/lib/features/select/selection-service.js.map +1 -1
  215. package/lib/features/select/selection-service.spec.js +97 -124
  216. package/lib/features/select/selection-service.spec.js.map +1 -1
  217. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +2 -1
  218. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  219. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +104 -127
  220. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  221. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  222. package/lib/features/tool-feedback/creation-tool-feedback.js +69 -103
  223. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  224. package/lib/features/tool-feedback/css-feedback.d.ts +3 -1
  225. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  226. package/lib/features/tool-feedback/css-feedback.js +37 -81
  227. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  228. package/lib/features/tool-feedback/di.config.d.ts +1 -1
  229. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  230. package/lib/features/tool-feedback/di.config.js +27 -27
  231. package/lib/features/tool-feedback/di.config.js.map +1 -1
  232. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +1 -1
  233. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  234. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -193
  235. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  236. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
  237. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  238. package/lib/features/tool-feedback/feedback-action-dispatcher.js +36 -58
  239. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  240. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  241. package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -69
  242. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  243. package/lib/features/tool-feedback/model.d.ts +1 -1
  244. package/lib/features/tool-feedback/model.js +11 -27
  245. package/lib/features/tool-feedback/model.js.map +1 -1
  246. package/lib/features/tool-feedback/view.d.ts +4 -4
  247. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  248. package/lib/features/tool-feedback/view.js +30 -37
  249. package/lib/features/tool-feedback/view.js.map +1 -1
  250. package/lib/features/tool-palette/di.config.js +6 -6
  251. package/lib/features/tool-palette/di.config.js.map +1 -1
  252. package/lib/features/tool-palette/palette-item.d.ts +1 -1
  253. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  254. package/lib/features/tool-palette/palette-item.js +6 -5
  255. package/lib/features/tool-palette/palette-item.js.map +1 -1
  256. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  257. package/lib/features/tool-palette/tool-palette.js +182 -259
  258. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  259. package/lib/features/tools/base-glsp-tool.js +37 -44
  260. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  261. package/lib/features/tools/change-bounds-tool.d.ts +3 -2
  262. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  263. package/lib/features/tools/change-bounds-tool.js +187 -237
  264. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  265. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  266. package/lib/features/tools/delete-tool.js +69 -102
  267. package/lib/features/tools/delete-tool.js.map +1 -1
  268. package/lib/features/tools/di.config.js +18 -18
  269. package/lib/features/tools/di.config.js.map +1 -1
  270. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  271. package/lib/features/tools/edge-creation-tool.js +60 -85
  272. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  273. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  274. package/lib/features/tools/edge-edit-tool.js +110 -181
  275. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  276. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  277. package/lib/features/tools/marquee-mouse-tool.js +128 -149
  278. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  279. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  280. package/lib/features/tools/marquee-tool.js +32 -58
  281. package/lib/features/tools/marquee-tool.js.map +1 -1
  282. package/lib/features/tools/model.js +4 -22
  283. package/lib/features/tools/model.js.map +1 -1
  284. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  285. package/lib/features/tools/node-creation-tool.js +59 -89
  286. package/lib/features/tools/node-creation-tool.js.map +1 -1
  287. package/lib/features/tools/view.d.ts +1 -1
  288. package/lib/features/tools/view.d.ts.map +1 -1
  289. package/lib/features/tools/view.js +12 -31
  290. package/lib/features/tools/view.js.map +1 -1
  291. package/lib/features/undo-redo/model.d.ts +1 -1
  292. package/lib/features/undo-redo/model.js +8 -12
  293. package/lib/features/undo-redo/model.js.map +1 -1
  294. package/lib/features/validation/di.config.js +12 -12
  295. package/lib/features/validation/di.config.js.map +1 -1
  296. package/lib/features/validation/issue-marker.js +13 -51
  297. package/lib/features/validation/issue-marker.js.map +1 -1
  298. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  299. package/lib/features/validation/marker-navigator.js +129 -163
  300. package/lib/features/validation/marker-navigator.js.map +1 -1
  301. package/lib/features/validation/marker-navigator.spec.d.ts +1 -1
  302. package/lib/features/validation/marker-navigator.spec.js +79 -73
  303. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  304. package/lib/features/validation/validate.d.ts +2 -2
  305. package/lib/features/validation/validate.d.ts.map +1 -1
  306. package/lib/features/validation/validate.js +161 -276
  307. package/lib/features/validation/validate.js.map +1 -1
  308. package/lib/features/viewport/di.config.js +10 -10
  309. package/lib/features/viewport/di.config.js.map +1 -1
  310. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  311. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -32
  312. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  313. package/lib/index.d.ts +5 -4
  314. package/lib/index.d.ts.map +1 -1
  315. package/lib/index.js +25 -23
  316. package/lib/index.js.map +1 -1
  317. package/lib/lib/model.js +11 -27
  318. package/lib/lib/model.js.map +1 -1
  319. package/lib/model-source/glsp-diagram-server.d.ts +1 -1
  320. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  321. package/lib/model-source/glsp-diagram-server.js +43 -118
  322. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  323. package/lib/model-source/glsp-server-status.js +10 -27
  324. package/lib/model-source/glsp-server-status.js.map +1 -1
  325. package/lib/utils/argument-utils.d.ts +3 -3
  326. package/lib/utils/argument-utils.d.ts.map +1 -1
  327. package/lib/utils/argument-utils.js +27 -92
  328. package/lib/utils/argument-utils.js.map +1 -1
  329. package/lib/utils/array-utils.d.ts +1 -1
  330. package/lib/utils/array-utils.d.ts.map +1 -1
  331. package/lib/utils/array-utils.js +10 -15
  332. package/lib/utils/array-utils.js.map +1 -1
  333. package/lib/utils/html-utils.js +2 -2
  334. package/lib/utils/html-utils.js.map +1 -1
  335. package/lib/utils/layout-utils.d.ts +1 -1
  336. package/lib/utils/layout-utils.d.ts.map +1 -1
  337. package/lib/utils/layout-utils.js +5 -5
  338. package/lib/utils/layout-utils.js.map +1 -1
  339. package/lib/utils/marker.js +11 -53
  340. package/lib/utils/marker.js.map +1 -1
  341. package/lib/utils/smodel-util.d.ts +3 -3
  342. package/lib/utils/smodel-util.d.ts.map +1 -1
  343. package/lib/utils/smodel-util.js +17 -51
  344. package/lib/utils/smodel-util.js.map +1 -1
  345. package/lib/utils/viewpoint-util.d.ts +1 -1
  346. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  347. package/lib/utils/viewpoint-util.js +16 -16
  348. package/lib/utils/viewpoint-util.js.map +1 -1
  349. package/lib/views/base-view-module.js +9 -9
  350. package/lib/views/base-view-module.js.map +1 -1
  351. package/lib/views/compartments.d.ts +6 -0
  352. package/lib/views/compartments.d.ts.map +1 -0
  353. package/lib/views/compartments.js +43 -0
  354. package/lib/views/compartments.js.map +1 -0
  355. package/lib/views/default-types.js +1 -1
  356. package/lib/views/default-types.js.map +1 -1
  357. package/lib/views/glsp-edge-view.d.ts +1 -2
  358. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  359. package/lib/views/glsp-edge-view.js +32 -62
  360. package/lib/views/glsp-edge-view.js.map +1 -1
  361. package/lib/views/index.d.ts +1 -0
  362. package/lib/views/index.d.ts.map +1 -1
  363. package/lib/views/index.js +1 -0
  364. package/lib/views/index.js.map +1 -1
  365. package/lib/views/issue-marker-view.d.ts +1 -1
  366. package/lib/views/issue-marker-view.d.ts.map +1 -1
  367. package/lib/views/issue-marker-view.js +19 -42
  368. package/lib/views/issue-marker-view.js.map +1 -1
  369. package/lib/views/rounded-corner-view.d.ts +2 -3
  370. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  371. package/lib/views/rounded-corner-view.js +40 -70
  372. package/lib/views/rounded-corner-view.js.map +1 -1
  373. package/lib/views/rounded-corner.d.ts.map +1 -1
  374. package/lib/views/rounded-corner.js +44 -65
  375. package/lib/views/rounded-corner.js.map +1 -1
  376. package/package.json +6 -16
  377. package/src/base/action-dispatcher.ts +1 -2
  378. package/src/base/actions/context-actions.ts +6 -6
  379. package/src/base/actions/edit-mode-action.ts +3 -4
  380. package/src/base/actions/edit-validation-actions.ts +26 -14
  381. package/src/base/actions/focus-change-action.ts +1 -1
  382. package/src/base/args.ts +4 -2
  383. package/src/base/auto-complete/auto-complete-widget.ts +34 -21
  384. package/src/base/auto-complete/validation-decorator.ts +5 -5
  385. package/src/base/command-stack.ts +1 -3
  386. package/src/base/container-modules.ts +113 -0
  387. package/src/base/di.config.ts +31 -16
  388. package/src/base/drag-aware-mouse-listener.ts +1 -3
  389. package/src/base/editor-context.ts +2 -4
  390. package/src/base/focus-tracker.ts +0 -2
  391. package/src/base/model/update-model-command.ts +6 -8
  392. package/src/base/operations/operation.ts +57 -31
  393. package/src/base/types.ts +3 -2
  394. package/src/features/change-bounds/model.ts +16 -5
  395. package/src/features/change-bounds/movement-restrictor.ts +15 -7
  396. package/src/features/command-palette/server-command-palette-provider.ts +8 -5
  397. package/src/features/context-menu/di.config.ts +11 -9
  398. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +4 -3
  399. package/src/features/context-menu/server-context-menu-provider.ts +7 -3
  400. package/src/features/copy-paste/copy-paste-actions.ts +11 -8
  401. package/src/features/copy-paste/copy-paste-context-menu.ts +57 -17
  402. package/src/features/copy-paste/copy-paste-handler.ts +15 -6
  403. package/src/features/decoration/decoration-placer.ts +2 -13
  404. package/src/features/edit-label/edit-label-validator.ts +11 -12
  405. package/src/features/hints/model.ts +2 -2
  406. package/src/features/hints/request-type-hints-action.ts +10 -5
  407. package/src/features/hints/type-hints.ts +26 -30
  408. package/src/features/hover/hover.ts +1 -2
  409. package/src/features/layout/di.config.ts +30 -5
  410. package/src/features/layout/freeform-layout.ts +132 -0
  411. package/src/features/layout/layout-commands.spec.ts +79 -56
  412. package/src/features/layout/layout-commands.ts +42 -31
  413. package/src/features/layout/vbox-layout.ts +241 -0
  414. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +3 -3
  415. package/src/features/model-source-watcher/model-source-changed-action.ts +2 -2
  416. package/src/features/mouse-tool/mouse-tool.ts +31 -22
  417. package/src/features/navigation/navigation-action-handler.ts +32 -22
  418. package/src/features/navigation/navigation-target-resolver.spec.ts +1 -3
  419. package/src/features/navigation/navigation-target-resolver.ts +14 -12
  420. package/src/features/rank/model.ts +2 -2
  421. package/src/features/reconnect/model.ts +2 -3
  422. package/src/features/save/di.config.ts +1 -2
  423. package/src/features/save/save.ts +2 -2
  424. package/src/features/select/select-feedback-action.ts +4 -6
  425. package/src/features/select/selection-service.spec.ts +9 -4
  426. package/src/features/select/selection-service.ts +13 -5
  427. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +26 -17
  428. package/src/features/tool-feedback/creation-tool-feedback.ts +16 -7
  429. package/src/features/tool-feedback/css-feedback.ts +7 -4
  430. package/src/features/tool-feedback/di.config.ts +2 -5
  431. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +18 -15
  432. package/src/features/tool-feedback/feedback-action-dispatcher.ts +6 -8
  433. package/src/features/tool-feedback/marquee-tool-feedback.ts +3 -2
  434. package/src/features/tool-feedback/model.ts +1 -2
  435. package/src/features/tool-feedback/view.tsx +16 -10
  436. package/src/features/tool-palette/di.config.ts +1 -1
  437. package/src/features/tool-palette/palette-item.ts +3 -3
  438. package/src/features/tool-palette/tool-palette.ts +12 -14
  439. package/src/features/tools/change-bounds-tool.ts +54 -25
  440. package/src/features/tools/delete-tool.ts +8 -3
  441. package/src/features/tools/edge-creation-tool.ts +5 -8
  442. package/src/features/tools/edge-edit-tool.ts +9 -18
  443. package/src/features/tools/marquee-mouse-tool.ts +57 -37
  444. package/src/features/tools/marquee-tool.ts +0 -1
  445. package/src/features/tools/node-creation-tool.ts +4 -9
  446. package/src/features/tools/view.tsx +17 -12
  447. package/src/features/undo-redo/model.ts +3 -3
  448. package/src/features/validation/marker-navigator.spec.ts +15 -9
  449. package/src/features/validation/marker-navigator.ts +23 -8
  450. package/src/features/validation/validate.ts +9 -13
  451. package/src/features/viewport/glsp-scroll-mouse-listener.ts +1 -10
  452. package/src/index.ts +26 -8
  453. package/src/model-source/glsp-diagram-server.ts +2 -14
  454. package/src/utils/argument-utils.ts +13 -9
  455. package/src/utils/array-utils.ts +4 -2
  456. package/src/utils/layout-utils.ts +11 -5
  457. package/src/utils/smodel-util.ts +14 -10
  458. package/src/utils/viewpoint-util.ts +3 -2
  459. package/src/views/compartments.tsx +37 -0
  460. package/src/views/glsp-edge-view.tsx +20 -13
  461. package/src/views/index.ts +1 -0
  462. package/src/views/issue-marker-view.tsx +11 -12
  463. package/src/views/rounded-corner-view.tsx +38 -25
  464. package/src/views/rounded-corner.ts +3 -4
  465. package/lib/base/actions/protocol-actions.d.ts +0 -41
  466. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  467. package/lib/base/actions/protocol-actions.js +0 -151
  468. package/lib/base/actions/protocol-actions.js.map +0 -1
  469. package/src/base/actions/protocol-actions.ts +0 -82
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,7 +14,6 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  import { Action, generateRequestId, RequestAction, ResponseAction } from 'sprotty';
17
-
18
17
  import { Args } from '../args';
19
18
 
20
19
  export class RequestEditValidationAction implements RequestAction<SetEditValidationResultAction> {
@@ -24,7 +23,8 @@ export class RequestEditValidationAction implements RequestAction<SetEditValidat
24
23
  public readonly modelElementId: string,
25
24
  public readonly text: string,
26
25
  public readonly requestId: string = generateRequestId(),
27
- public readonly kind: string = RequestEditValidationAction.KIND) { }
26
+ public readonly kind: string = RequestEditValidationAction.KIND
27
+ ) {}
28
28
  }
29
29
 
30
30
  export class SetEditValidationResultAction implements ResponseAction {
@@ -33,12 +33,16 @@ export class SetEditValidationResultAction implements ResponseAction {
33
33
  public readonly status: ValidationStatus,
34
34
  public readonly responseId: string = '',
35
35
  public readonly args?: Args,
36
- public readonly kind: string = SetEditValidationResultAction.KIND) { }
36
+ public readonly kind: string = SetEditValidationResultAction.KIND
37
+ ) {}
37
38
  }
38
39
 
39
40
  export function isSetEditValidationResultAction(action: Action): action is SetEditValidationResultAction {
40
- return action !== undefined && (action.kind === SetEditValidationResultAction.KIND)
41
- && (action as SetEditValidationResultAction).status !== undefined;
41
+ return (
42
+ action !== undefined &&
43
+ action.kind === SetEditValidationResultAction.KIND &&
44
+ (action as SetEditValidationResultAction).status !== undefined
45
+ );
42
46
  }
43
47
 
44
48
  export interface ValidationStatus {
@@ -76,20 +80,29 @@ export interface ResponseError {
76
80
  }
77
81
 
78
82
  export namespace ValidationStatus {
79
-
83
+ // eslint-disable-next-line no-shadow
80
84
  export enum Severity {
85
+ FATAL,
86
+ ERROR,
87
+ WARNING,
88
+ INFO,
89
+ OK,
81
90
  // eslint-disable-next-line no-shadow
82
- FATAL, ERROR, WARNING, INFO, OK, NONE
91
+ NONE
83
92
  }
84
93
 
85
94
  export const NONE: ValidationStatus = {
86
- severity: Severity.NONE, message: '', error: { code: -1, message: '', data: {} }
95
+ severity: Severity.NONE,
96
+ message: '',
97
+ error: { code: -1, message: '', data: {} }
87
98
  };
88
99
 
89
100
  export function isOk(validationStatus: ValidationStatus): boolean {
90
- return validationStatus.severity === Severity.OK
91
- || validationStatus.severity === Severity.INFO
92
- || validationStatus.severity === Severity.NONE;
101
+ return (
102
+ validationStatus.severity === Severity.OK ||
103
+ validationStatus.severity === Severity.INFO ||
104
+ validationStatus.severity === Severity.NONE
105
+ );
93
106
  }
94
107
 
95
108
  export function isWarning(validationStatus: ValidationStatus): boolean {
@@ -97,7 +110,6 @@ export namespace ValidationStatus {
97
110
  }
98
111
 
99
112
  export function isError(validationStatus: ValidationStatus): boolean {
100
- return validationStatus.severity === Severity.ERROR
101
- || validationStatus.severity === Severity.FATAL;
113
+ return validationStatus.severity === Severity.ERROR || validationStatus.severity === Severity.FATAL;
102
114
  }
103
115
  }
@@ -18,7 +18,7 @@ import { Action } from 'sprotty';
18
18
  export class FocusStateChangedAction implements Action {
19
19
  static KIND = 'focusStateChanged';
20
20
  readonly kind = FocusStateChangedAction.KIND;
21
- constructor(public readonly hasFocus: boolean) { }
21
+ constructor(public readonly hasFocus: boolean) {}
22
22
  }
23
23
 
24
24
  export function isFocusStateChangedAction(action: Action): action is FocusStateChangedAction {
package/src/base/args.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -15,7 +15,9 @@
15
15
  ********************************************************************************/
16
16
  import { SModelElement } from 'sprotty';
17
17
 
18
- export interface Args { [key: string]: string | number | boolean }
18
+ export interface Args {
19
+ [key: string]: string | number | boolean;
20
+ }
19
21
 
20
22
  export interface SArgumentable {
21
23
  args: Args;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -72,12 +72,14 @@ export class AutoCompleteWidget {
72
72
  public suggestionProvider: SuggestionProvider,
73
73
  public suggestionSubmitHandler: SuggestionSubmitHandler,
74
74
  // eslint-disable-next-line @typescript-eslint/no-empty-function
75
- protected notifyClose: () => void = () => { },
75
+ protected notifyClose: () => void = () => {},
76
76
  protected logger?: ILogger
77
- ) { }
77
+ ) {}
78
78
 
79
- configureValidation(inputValidator: InputValidator,
80
- validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION): void {
79
+ configureValidation(
80
+ inputValidator: InputValidator,
81
+ validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION
82
+ ): void {
81
83
  this.inputValidator = inputValidator;
82
84
  this.validationDecorator = validationDecorator;
83
85
  }
@@ -154,25 +156,33 @@ export class AutoCompleteWidget {
154
156
  showOnFocus: this.autoSuggestionSettings.showOnFocus,
155
157
  debounceWaitMs: this.autoSuggestionSettings.debounceWaitMs,
156
158
  minLength: -1,
157
- fetch: (text: string, update: (items: LabeledAction[]) => void) =>
158
- this.updateSuggestions(update, text, root),
159
+ fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
159
160
  onSelect: (item: LabeledAction) => this.onSelect(item),
160
- render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined =>
161
- this.renderSuggestions(item, currentValue),
161
+ render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
162
162
  customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
163
163
  this.customizeInputElement(input, inputRect, container, maxHeight);
164
164
  }
165
165
  };
166
166
  }
167
167
 
168
- protected customizeInputElement(input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number): void {
168
+ protected customizeInputElement(
169
+ input: HTMLInputElement,
170
+ inputRect: ClientRect | DOMRect,
171
+ container: HTMLDivElement,
172
+ maxHeight: number
173
+ ): void {
169
174
  // move container into our UIExtension container as this is already positioned correctly
170
175
  if (this.containerElement) {
171
176
  this.containerElement.appendChild(container);
172
177
  }
173
178
  }
174
179
 
175
- protected updateSuggestions(update: (items: LabeledAction[]) => void, text: string, root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
180
+ protected updateSuggestions(
181
+ update: (items: LabeledAction[]) => void,
182
+ text: string,
183
+ root: Readonly<SModelRoot>,
184
+ ...contextElementIds: string[]
185
+ ): void {
176
186
  this.onLoading();
177
187
  this.doUpdateSuggestions(text, root)
178
188
  .then(actions => {
@@ -230,11 +240,13 @@ export class AutoCompleteWidget {
230
240
  }
231
241
 
232
242
  protected filterActions(filterText: string, actions: LabeledAction[]): LabeledAction[] {
233
- return toArray(actions.filter(action => {
234
- const label = action.label.toLowerCase();
235
- const searchWords = filterText.split(' ');
236
- return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
237
- }));
243
+ return toArray(
244
+ actions.filter(action => {
245
+ const label = action.label.toLowerCase();
246
+ const searchWords = filterText.split(' ');
247
+ return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
248
+ })
249
+ );
238
250
  }
239
251
 
240
252
  protected onSelect(item: LabeledAction): void {
@@ -257,10 +269,10 @@ export class AutoCompleteWidget {
257
269
  }
258
270
 
259
271
  private isNoOrExactlyOneMatchingContextAction(): boolean | undefined {
260
- return !this.isSuggestionAvailable()
261
- || (this.contextActions
262
- && this.contextActions.length === 1
263
- && this.inputElement.value.endsWith(this.contextActions[0].label));
272
+ return (
273
+ !this.isSuggestionAvailable() ||
274
+ (this.contextActions && this.contextActions.length === 1 && this.inputElement.value.endsWith(this.contextActions[0].label))
275
+ );
264
276
  }
265
277
 
266
278
  protected isSuggestionAvailable(): boolean | undefined {
@@ -269,7 +281,8 @@ export class AutoCompleteWidget {
269
281
 
270
282
  validateInput(): void {
271
283
  if (this.inputValidator) {
272
- this.inputValidator.validate(this.inputElement.value)
284
+ this.inputValidator
285
+ .validate(this.inputElement.value)
273
286
  .then(result => this.validationDecorator.decorateValidationResult(result))
274
287
  .catch(error => this.handleErrorDuringValidation(error));
275
288
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -25,14 +25,14 @@ export interface IValidationDecorator {
25
25
  export namespace IValidationDecorator {
26
26
  export const NO_DECORATION: IValidationDecorator = {
27
27
  // eslint-disable-next-line @typescript-eslint/no-empty-function
28
- decorateValidationResult(_status: ValidationStatus) { },
28
+ decorateValidationResult(_status: ValidationStatus) {},
29
29
  isValidatedOk(): boolean {
30
30
  return false;
31
31
  },
32
32
  // eslint-disable-next-line @typescript-eslint/no-empty-function
33
- invalidate() { },
33
+ invalidate() {},
34
34
  // eslint-disable-next-line @typescript-eslint/no-empty-function
35
- dispose() { }
35
+ dispose() {}
36
36
  };
37
37
  }
38
38
 
@@ -47,7 +47,7 @@ export class ValidationDecorator implements IValidationDecorator {
47
47
 
48
48
  protected decorationDiv?: HTMLDivElement;
49
49
 
50
- constructor(protected containerElement: HTMLElement) { }
50
+ constructor(protected containerElement: HTMLElement) {}
51
51
 
52
52
  decorateValidationResult(status: ValidationStatus): void {
53
53
  if (ValidationStatus.isError(status)) {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -20,7 +20,6 @@ import { RedoOperation, UndoOperation } from '../features/undo-redo/model';
20
20
 
21
21
  @injectable()
22
22
  export class GLSPCommandStack extends CommandStack {
23
-
24
23
  @inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
25
24
 
26
25
  undo(): Promise<SModelRoot> {
@@ -33,4 +32,3 @@ export class GLSPCommandStack extends CommandStack {
33
32
  return this.thenUpdate();
34
33
  }
35
34
  }
36
-
@@ -0,0 +1,113 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2021 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import { Container, ContainerModule } from 'inversify';
18
+ import { defaultModule } from 'sprotty';
19
+ import {
20
+ boundsModule,
21
+ buttonModule,
22
+ edgeIntersectionModule,
23
+ edgeLayoutModule,
24
+ expandModule,
25
+ exportModule,
26
+ fadeModule,
27
+ glspCommandPaletteModule,
28
+ glspContextMenuModule,
29
+ glspDecorationModule,
30
+ glspEditLabelModule,
31
+ glspHoverModule,
32
+ glspMouseToolModule,
33
+ glspSelectModule,
34
+ glspServerCopyPasteModule,
35
+ glspViewportModule,
36
+ labelEditUiModule,
37
+ layoutCommandsModule,
38
+ markerNavigatorModule,
39
+ modelHintsModule,
40
+ modelSourceModule,
41
+ modelSourceWatcherModule,
42
+ navigationModule,
43
+ openModule,
44
+ paletteModule,
45
+ routingModule,
46
+ toolFeedbackModule,
47
+ toolsModule,
48
+ validationModule,
49
+ zorderModule
50
+ } from '../';
51
+ import defaultGLSPModule from './di.config';
52
+
53
+ export const DEFAULT_MODULES = [
54
+ defaultModule,
55
+ defaultGLSPModule,
56
+ boundsModule,
57
+ buttonModule,
58
+ edgeIntersectionModule,
59
+ edgeLayoutModule,
60
+ expandModule,
61
+ exportModule,
62
+ fadeModule,
63
+ glspCommandPaletteModule,
64
+ glspContextMenuModule,
65
+ glspDecorationModule,
66
+ glspEditLabelModule,
67
+ glspHoverModule,
68
+ glspMouseToolModule,
69
+ glspSelectModule,
70
+ glspServerCopyPasteModule,
71
+ glspViewportModule,
72
+ labelEditUiModule,
73
+ layoutCommandsModule,
74
+ markerNavigatorModule,
75
+ modelHintsModule,
76
+ modelSourceModule,
77
+ modelSourceWatcherModule,
78
+ navigationModule,
79
+ openModule,
80
+ paletteModule,
81
+ routingModule,
82
+ toolFeedbackModule,
83
+ toolsModule,
84
+ validationModule,
85
+ zorderModule
86
+ ];
87
+
88
+ /**
89
+ * Creates a GLSP Client container with the GLSP default modules and the specified custom `modules`.
90
+ *
91
+ * You can still customize the default modules in two ways.
92
+ *
93
+ * First, you can unload default modules and load them again with your custom code.
94
+ *
95
+ * ```typescript
96
+ * const container = createClientContainer(myModule1, myModule2);
97
+ * container.unload(modelSourceWatcherModule);
98
+ * container.load(myModelSourceWatcherModule);
99
+ * ```
100
+ *
101
+ * Second, you can unbind or rebind implementations that are originally bound in one of the default modules.
102
+ *
103
+ * ```typescript
104
+ * rebind(NavigationTargetResolver).to(MyNavigationTargetResolver);
105
+ * ```
106
+ * @param modules Custom modules to be loaded in addition to the default modules.
107
+ * @returns The created container.
108
+ */
109
+ export function createClientContainer(...modules: ContainerModule[]): Container {
110
+ const container = new Container();
111
+ container.load(...DEFAULT_MODULES, ...modules);
112
+ return container;
113
+ }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,15 +13,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { InitializeResult } from '@eclipse-glsp/protocol';
17
+ import { Container, ContainerModule } from 'inversify';
18
+ import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand, TYPES } from 'sprotty';
16
19
  import '../../css/glsp-sprotty.css';
17
-
18
- import { ContainerModule } from 'inversify';
19
- import { configureActionHandler, configureCommand, SetModelCommand, TYPES } from 'sprotty';
20
-
21
20
  import { GLSPActionDispatcher } from './action-dispatcher';
22
21
  import { SetEditModeAction } from './actions/edit-mode-action';
23
22
  import { FocusStateChangedAction } from './actions/focus-change-action';
24
- import { ConfigureServerHandlersAction, ConfigureServerHandlersActionHandler } from './actions/protocol-actions';
25
23
  import { GLSPCommandStack } from './command-stack';
26
24
  import { EditorContextService } from './editor-context';
27
25
  import { FocusTracker } from './focus-tracker';
@@ -36,13 +34,16 @@ import { GLSPViewRegistry } from './view/view-registry';
36
34
  const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
37
35
  const context = { bind, _unbind, isBound, rebind };
38
36
  bind(EditorContextService).toSelf().inSingletonScope();
39
- bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(ctx => () => new Promise<EditorContextService>((resolve, reject) => {
40
- if (ctx.container.isBound(EditorContextService)) {
41
- resolve(ctx.container.get<EditorContextService>(EditorContextService));
42
- } else {
43
- reject();
44
- }
45
- }));
37
+ bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
38
+ ctx => () =>
39
+ new Promise<EditorContextService>((resolve, reject) => {
40
+ if (ctx.container.isBound(EditorContextService)) {
41
+ resolve(ctx.container.get<EditorContextService>(EditorContextService));
42
+ } else {
43
+ reject();
44
+ }
45
+ })
46
+ );
46
47
 
47
48
  configureActionHandler(context, SetEditModeAction.KIND, EditorContextService);
48
49
 
@@ -53,9 +54,6 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
53
54
  configureCommand(context, FeedbackAwareUpdateModelCommand);
54
55
  configureActionHandler(context, SetModelCommand.KIND, SetModelActionHandler);
55
56
 
56
- // Dynamically register all server-side action/operation handlers
57
- configureActionHandler(context, ConfigureServerHandlersAction.KIND, ConfigureServerHandlersActionHandler);
58
-
59
57
  bind(TYPES.MouseListener).to(SelectionClearingMouseListener);
60
58
 
61
59
  rebind(TYPES.ICommandStack).to(GLSPCommandStack);
@@ -73,3 +71,20 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
73
71
  });
74
72
 
75
73
  export default defaultGLSPModule;
74
+
75
+ /**
76
+ * Utility function to configure the {@link ModelSource}, i.e. the `DiagramServer`, as action handler for all server actions for the given
77
+ * diagramType.
78
+ * @param result A promise that resolves after all server actions have been registered.
79
+ * @param diagramType The diagram type.
80
+ * @param container The di container.
81
+ */
82
+ export async function configureServerActions(result: InitializeResult, diagramType: string, container: Container): Promise<void> {
83
+ const modelSource = container.get<ModelSource>(TYPES.ModelSource);
84
+ const actionHandlerRegistry = container.get<ActionHandlerRegistry>(ActionHandlerRegistry);
85
+ const serverActions = result.serverActions[diagramType];
86
+ if (serverActions.length === 0) {
87
+ throw new Error(`No server-handled actions could be derived from the initialize result for diagramType: ${diagramType}!`);
88
+ }
89
+ serverActions.forEach(actionKind => actionHandlerRegistry.register(actionKind, modelSource));
90
+ }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -24,7 +24,6 @@ import { Action, MouseListener, SModelElement } from 'sprotty';
24
24
  * of mouse up events.
25
25
  */
26
26
  export class DragAwareMouseListener extends MouseListener {
27
-
28
27
  private _isMouseDown = false;
29
28
  private _isMouseDrag = false;
30
29
 
@@ -65,5 +64,4 @@ export class DragAwareMouseListener extends MouseListener {
65
64
  get isMouseDown(): boolean {
66
65
  return this._isMouseDown;
67
66
  }
68
-
69
67
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -51,13 +51,12 @@ export interface EditModeListener {
51
51
 
52
52
  @injectable()
53
53
  export class EditorContextService implements IActionHandler {
54
-
55
54
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
56
55
  @inject(MousePositionTracker) protected mousePositionTracker: MousePositionTracker;
57
56
  @inject(TYPES.ModelSourceProvider) protected modelSource: () => Promise<ModelSource>;
58
57
  protected _editMode: string;
59
58
 
60
- constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) { }
59
+ constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {}
61
60
 
62
61
  register(editModeListener: EditModeListener): void {
63
62
  distinctAdd(this.editModeListeners, editModeListener);
@@ -121,4 +120,3 @@ export class EditorContextService implements IActionHandler {
121
120
  }
122
121
 
123
122
  export type EditorContextServiceProvider = () => Promise<EditorContextService>;
124
-
@@ -20,7 +20,6 @@ import { isFocusStateChangedAction } from './actions/focus-change-action';
20
20
 
21
21
  @injectable()
22
22
  export class FocusTracker implements IActionHandler {
23
-
24
23
  protected inActiveCssClass = 'inactive';
25
24
  protected _hasFocus = true;
26
25
 
@@ -46,5 +45,4 @@ export class FocusTracker implements IActionHandler {
46
45
  }
47
46
  }
48
47
  }
49
-
50
48
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -29,13 +29,12 @@ import {
29
29
  TYPES
30
30
  } from 'sprotty';
31
31
  import { UpdateModelAction, UpdateModelCommand } from 'sprotty/lib/features/update/update-model';
32
-
33
32
  import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
34
33
  import { FeedbackCommand } from '../../features/tool-feedback/model';
35
34
  import { GLSP_TYPES } from '../types';
36
35
 
37
36
  /* ActionHandler that transforms a SetModelAction into an (feedback-aware) UpdateModelAction. This can be done because in sprotty
38
- * UpdateModel behaves the same as SetModel if no model is present yet.*/
37
+ * UpdateModel behaves the same as SetModel if no model is present yet.*/
39
38
  @injectable()
40
39
  export class SetModelActionHandler implements IActionHandler {
41
40
  handle(action: Action): Action | void {
@@ -46,8 +45,7 @@ export class SetModelActionHandler implements IActionHandler {
46
45
  }
47
46
 
48
47
  export function isSetModelAction(action: Action): action is SetModelAction {
49
- return action !== undefined && (action.kind === SetModelCommand.KIND)
50
- && (action as SetModelAction).newRoot !== undefined;
48
+ return action !== undefined && action.kind === SetModelCommand.KIND && (action as SetModelAction).newRoot !== undefined;
51
49
  }
52
50
 
53
51
  export interface SModelRootListener {
@@ -55,8 +53,8 @@ export interface SModelRootListener {
55
53
  }
56
54
 
57
55
  /**
58
- * A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their feedback
59
- * to the `newRoot` before performing the update
56
+ * A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
57
+ * feedback to the `newRoot` before performing the update
60
58
  */
61
59
  @injectable()
62
60
  export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
@@ -73,7 +71,7 @@ export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
73
71
 
74
72
  @postConstruct()
75
73
  protected initialize(): void {
76
- this.actionHandlerRegistryProvider().then(registry => this.actionHandlerRegistry = registry);
74
+ this.actionHandlerRegistryProvider().then(registry => (this.actionHandlerRegistry = registry));
77
75
  }
78
76
 
79
77
  protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {