@eclipse-glsp/client 0.9.0-next.f54fd689 → 0.9.0

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 (625) hide show
  1. package/LICENSE +642 -277
  2. package/README.md +4 -2
  3. package/css/command-palette.css +9 -5
  4. package/css/decoration.css +3 -2
  5. package/css/glsp-sprotty.css +20 -7
  6. package/css/tool-palette.css +44 -27
  7. package/lib/base/action-dispatcher.d.ts +18 -2
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +41 -61
  10. package/lib/base/action-dispatcher.js.map +1 -1
  11. package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → base/actions/focus-change-action.d.ts} +7 -7
  12. package/lib/base/actions/focus-change-action.d.ts.map +1 -0
  13. package/lib/base/actions/focus-change-action.js +16 -0
  14. package/lib/base/actions/focus-change-action.js.map +1 -0
  15. package/lib/base/argumentable.d.ts +22 -0
  16. package/lib/base/argumentable.d.ts.map +1 -0
  17. package/lib/base/argumentable.js +8 -0
  18. package/lib/base/argumentable.js.map +1 -0
  19. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  20. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts +12 -12
  23. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  24. package/lib/base/auto-complete/auto-complete-widget.js +121 -152
  25. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  26. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  27. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  28. package/lib/base/auto-complete/validation-decorator.js +49 -65
  29. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  30. package/lib/base/command-stack.d.ts +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 +100 -0
  37. package/lib/base/container-modules.js.map +1 -0
  38. package/lib/base/di.config.d.ts +13 -3
  39. package/lib/base/di.config.d.ts.map +1 -1
  40. package/lib/base/di.config.js +52 -31
  41. package/lib/base/di.config.js.map +1 -1
  42. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  43. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  44. package/lib/base/drag-aware-mouse-listener.js +23 -62
  45. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  46. package/lib/base/editor-context-service.d.ts +42 -0
  47. package/lib/base/editor-context-service.d.ts.map +1 -0
  48. package/lib/base/editor-context-service.js +109 -0
  49. package/lib/base/editor-context-service.js.map +1 -0
  50. package/lib/{features/undo-redo/model.d.ts → base/focus-tracker.d.ts} +10 -12
  51. package/lib/base/focus-tracker.d.ts.map +1 -0
  52. package/lib/base/focus-tracker.js +50 -0
  53. package/lib/base/focus-tracker.js.map +1 -0
  54. package/lib/base/model/model-registry.d.ts +5 -0
  55. package/lib/base/model/model-registry.d.ts.map +1 -0
  56. package/lib/base/model/model-registry.js +43 -0
  57. package/lib/base/model/model-registry.js.map +1 -0
  58. package/lib/base/model/update-model-command.d.ts +20 -6
  59. package/lib/base/model/update-model-command.d.ts.map +1 -1
  60. package/lib/base/model/update-model-command.js +69 -94
  61. package/lib/base/model/update-model-command.js.map +1 -1
  62. package/lib/base/model-initialization-constraint.d.ts +17 -2
  63. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  64. package/lib/base/model-initialization-constraint.js +34 -54
  65. package/lib/base/model-initialization-constraint.js.map +1 -1
  66. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  67. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  68. package/lib/base/selection-clearing-mouse-listener.js +11 -28
  69. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  70. package/lib/base/source-uri-aware.js +2 -5
  71. package/lib/base/source-uri-aware.js.map +1 -1
  72. package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
  73. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  74. package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
  75. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  76. package/lib/base/types.d.ts +3 -1
  77. package/lib/base/types.d.ts.map +1 -1
  78. package/lib/base/types.js +23 -21
  79. package/lib/base/types.js.map +1 -1
  80. package/lib/base/view/view-registry.d.ts +5 -0
  81. package/lib/base/view/view-registry.d.ts.map +1 -0
  82. package/lib/base/view/view-registry.js +43 -0
  83. package/lib/base/view/view-registry.js.map +1 -0
  84. package/lib/features/change-bounds/model.d.ts +4 -2
  85. package/lib/features/change-bounds/model.d.ts.map +1 -1
  86. package/lib/features/change-bounds/model.js +21 -32
  87. package/lib/features/change-bounds/model.js.map +1 -1
  88. package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
  89. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  90. package/lib/features/change-bounds/movement-restrictor.js +34 -46
  91. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  92. package/lib/features/change-bounds/snap.d.ts +17 -1
  93. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  94. package/lib/features/change-bounds/snap.js +13 -39
  95. package/lib/features/change-bounds/snap.js.map +1 -1
  96. package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
  97. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  98. package/lib/features/command-palette/command-palette-tool.js +30 -38
  99. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  100. package/lib/features/command-palette/di.config.d.ts +2 -2
  101. package/lib/features/command-palette/di.config.js +6 -6
  102. package/lib/features/command-palette/di.config.js.map +1 -1
  103. package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
  104. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  105. package/lib/features/command-palette/server-command-palette-provider.js +31 -36
  106. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  107. package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
  108. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  109. package/lib/features/context-menu/delete-element-context-menu.js +24 -72
  110. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  111. package/lib/features/context-menu/di.config.d.ts +2 -2
  112. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  113. package/lib/features/context-menu/di.config.js +14 -18
  114. package/lib/features/context-menu/di.config.js.map +1 -1
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
  116. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  117. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
  118. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  119. package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
  120. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  121. package/lib/features/context-menu/server-context-menu-provider.js +31 -32
  122. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  123. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  124. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  125. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  126. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  127. package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
  128. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  129. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  130. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  131. package/lib/features/copy-paste/di.config.d.ts +2 -2
  132. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  133. package/lib/features/copy-paste/di.config.js +11 -11
  134. package/lib/features/copy-paste/di.config.js.map +1 -1
  135. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  136. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  137. package/lib/features/decoration/decoration-placer.js +14 -47
  138. package/lib/features/decoration/decoration-placer.js.map +1 -1
  139. package/lib/features/decoration/di.config.d.ts +2 -2
  140. package/lib/features/decoration/di.config.d.ts.map +1 -1
  141. package/lib/features/decoration/di.config.js +4 -6
  142. package/lib/features/decoration/di.config.js.map +1 -1
  143. package/lib/features/edit-label/di.config.d.ts +1 -1
  144. package/lib/features/edit-label/di.config.js +7 -7
  145. package/lib/features/edit-label/di.config.js.map +1 -1
  146. package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
  147. package/lib/features/edit-label/edit-label-tool.js +20 -43
  148. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  149. package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
  150. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  151. package/lib/features/edit-label/edit-label-validator.js +40 -62
  152. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  153. package/lib/features/hints/di.config.d.ts +1 -16
  154. package/lib/features/hints/di.config.d.ts.map +1 -1
  155. package/lib/features/hints/di.config.js +9 -9
  156. package/lib/features/hints/di.config.js.map +1 -1
  157. package/lib/features/hints/model.d.ts +3 -2
  158. package/lib/features/hints/model.d.ts.map +1 -1
  159. package/lib/features/hints/model.js +2 -2
  160. package/lib/features/hints/model.js.map +1 -1
  161. package/lib/features/hints/type-hints.d.ts +21 -49
  162. package/lib/features/hints/type-hints.d.ts.map +1 -1
  163. package/lib/features/hints/type-hints.js +83 -142
  164. package/lib/features/hints/type-hints.js.map +1 -1
  165. package/lib/features/hover/di.config.d.ts +2 -2
  166. package/lib/features/hover/di.config.d.ts.map +1 -1
  167. package/lib/features/hover/di.config.js +9 -7
  168. package/lib/features/hover/di.config.js.map +1 -1
  169. package/lib/features/hover/hover.d.ts +18 -2
  170. package/lib/features/hover/hover.d.ts.map +1 -1
  171. package/lib/features/hover/hover.js +37 -75
  172. package/lib/features/hover/hover.js.map +1 -1
  173. package/lib/features/layout/di.config.d.ts +2 -2
  174. package/lib/features/layout/di.config.d.ts.map +1 -1
  175. package/lib/features/layout/di.config.js +11 -7
  176. package/lib/features/layout/di.config.js.map +1 -1
  177. package/lib/features/layout/freeform-layout.d.ts +16 -0
  178. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  179. package/lib/features/layout/freeform-layout.js +107 -0
  180. package/lib/features/layout/freeform-layout.js.map +1 -0
  181. package/lib/features/layout/layout-commands.d.ts +26 -10
  182. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  183. package/lib/features/layout/layout-commands.js +189 -264
  184. package/lib/features/layout/layout-commands.js.map +1 -1
  185. package/lib/features/layout/layout-commands.spec.d.ts +2 -17
  186. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  187. package/lib/features/layout/layout-commands.spec.js +124 -117
  188. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  189. package/lib/features/layout/vbox-layout.d.ts +25 -0
  190. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  191. package/lib/features/layout/vbox-layout.js +188 -0
  192. package/lib/features/layout/vbox-layout.js.map +1 -0
  193. package/lib/features/model-source-watcher/di.config.d.ts +1 -16
  194. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  195. package/lib/features/model-source-watcher/di.config.js +7 -7
  196. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  197. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  198. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  199. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  200. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  201. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  202. package/lib/features/mouse-tool/di.config.js +5 -5
  203. package/lib/features/mouse-tool/di.config.js.map +1 -1
  204. package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
  205. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  206. package/lib/features/mouse-tool/mouse-tool.js +74 -217
  207. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  208. package/lib/features/navigation/di.config.d.ts +1 -16
  209. package/lib/features/navigation/di.config.d.ts.map +1 -1
  210. package/lib/features/navigation/di.config.js +11 -10
  211. package/lib/features/navigation/di.config.js.map +1 -1
  212. package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
  213. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  214. package/lib/features/navigation/navigation-action-handler.js +118 -255
  215. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  216. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  217. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  218. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  219. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  220. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
  221. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  222. package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
  223. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  224. package/lib/features/rank/model.d.ts +2 -2
  225. package/lib/features/rank/model.d.ts.map +1 -1
  226. package/lib/features/rank/model.js +2 -2
  227. package/lib/features/rank/model.js.map +1 -1
  228. package/lib/features/reconnect/model.d.ts +2 -2
  229. package/lib/features/reconnect/model.d.ts.map +1 -1
  230. package/lib/features/reconnect/model.js +10 -28
  231. package/lib/features/reconnect/model.js.map +1 -1
  232. package/lib/features/save/di.config.d.ts +2 -2
  233. package/lib/features/save/di.config.d.ts.map +1 -1
  234. package/lib/features/save/di.config.js +6 -6
  235. package/lib/features/save/di.config.js.map +1 -1
  236. package/lib/features/save/model.d.ts +1 -1
  237. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -8
  238. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  239. package/lib/{utils/array-utils.js → features/save/save-keylistener.js} +14 -19
  240. package/lib/features/save/save-keylistener.js.map +1 -0
  241. package/lib/features/select/di.config.d.ts +1 -1
  242. package/lib/features/select/di.config.js +11 -11
  243. package/lib/features/select/di.config.js.map +1 -1
  244. package/lib/features/select/select-feedback-action.d.ts +1 -1
  245. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  246. package/lib/features/select/select-feedback-action.js +45 -71
  247. package/lib/features/select/select-feedback-action.js.map +1 -1
  248. package/lib/features/select/select-mouse-listener.d.ts +2 -2
  249. package/lib/features/select/select-mouse-listener.js +7 -23
  250. package/lib/features/select/select-mouse-listener.js.map +1 -1
  251. package/lib/features/select/selection-service.d.ts +19 -3
  252. package/lib/features/select/selection-service.d.ts.map +1 -1
  253. package/lib/features/select/selection-service.js +134 -236
  254. package/lib/features/select/selection-service.js.map +1 -1
  255. package/lib/features/select/selection-service.spec.js +96 -138
  256. package/lib/features/select/selection-service.spec.js.map +1 -1
  257. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
  258. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  259. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
  260. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  261. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
  262. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  263. package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
  264. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  265. package/lib/features/tool-feedback/css-feedback.d.ts +24 -5
  266. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  267. package/lib/features/tool-feedback/css-feedback.js +40 -82
  268. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  269. package/lib/features/tool-feedback/di.config.d.ts +2 -2
  270. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  271. package/lib/features/tool-feedback/di.config.js +27 -24
  272. package/lib/features/tool-feedback/di.config.js.map +1 -1
  273. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
  274. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  275. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
  276. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  277. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
  278. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  279. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  280. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  281. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +48 -0
  282. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -0
  283. package/lib/features/tool-feedback/marquee-tool-feedback.js +96 -0
  284. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -0
  285. package/lib/features/tool-feedback/model.d.ts +2 -2
  286. package/lib/features/tool-feedback/model.js +11 -27
  287. package/lib/features/tool-feedback/model.js.map +1 -1
  288. package/lib/features/tool-feedback/view.d.ts +22 -6
  289. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  290. package/lib/features/tool-feedback/view.js +30 -51
  291. package/lib/features/tool-feedback/view.js.map +1 -1
  292. package/lib/features/tool-palette/di.config.d.ts +2 -2
  293. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  294. package/lib/features/tool-palette/di.config.js +6 -6
  295. package/lib/features/tool-palette/di.config.js.map +1 -1
  296. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  297. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  298. package/lib/features/tool-palette/palette-item.js +6 -6
  299. package/lib/features/tool-palette/palette-item.js.map +1 -1
  300. package/lib/features/tool-palette/tool-palette.d.ts +23 -6
  301. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  302. package/lib/features/tool-palette/tool-palette.js +229 -286
  303. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  304. package/lib/features/tools/base-glsp-tool.d.ts +21 -5
  305. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  306. package/lib/features/tools/base-glsp-tool.js +37 -59
  307. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  308. package/lib/features/tools/change-bounds-tool.d.ts +26 -9
  309. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  310. package/lib/features/tools/change-bounds-tool.js +192 -241
  311. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  312. package/lib/features/tools/delete-tool.d.ts +20 -4
  313. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  314. package/lib/features/tools/delete-tool.js +71 -104
  315. package/lib/features/tools/delete-tool.js.map +1 -1
  316. package/lib/features/tools/di.config.d.ts +5 -16
  317. package/lib/features/tools/di.config.d.ts.map +1 -1
  318. package/lib/features/tools/di.config.js +26 -13
  319. package/lib/features/tools/di.config.js.map +1 -1
  320. package/lib/features/tools/edge-creation-tool.d.ts +20 -5
  321. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  322. package/lib/features/tools/edge-creation-tool.js +64 -89
  323. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  324. package/lib/features/tools/edge-edit-tool.d.ts +22 -6
  325. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  326. package/lib/features/tools/edge-edit-tool.js +125 -189
  327. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  328. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  329. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  330. package/lib/features/tools/marquee-behavior.js +128 -0
  331. package/lib/features/tools/marquee-behavior.js.map +1 -0
  332. package/{src/base/args.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -2
  333. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  334. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  335. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  336. package/lib/features/tools/marquee-mouse-tool.d.ts +48 -0
  337. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -0
  338. package/lib/features/tools/marquee-mouse-tool.js +148 -0
  339. package/lib/features/tools/marquee-mouse-tool.js.map +1 -0
  340. package/lib/features/tools/marquee-tool.d.ts +30 -0
  341. package/lib/features/tools/marquee-tool.d.ts.map +1 -0
  342. package/lib/features/tools/marquee-tool.js +54 -0
  343. package/lib/features/tools/marquee-tool.js.map +1 -0
  344. package/lib/features/tools/model.d.ts +22 -0
  345. package/lib/features/tools/model.d.ts.map +1 -0
  346. package/lib/features/tools/model.js +24 -0
  347. package/lib/features/tools/model.js.map +1 -0
  348. package/lib/features/tools/node-creation-tool.d.ts +20 -5
  349. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  350. package/lib/features/tools/node-creation-tool.js +60 -90
  351. package/lib/features/tools/node-creation-tool.js.map +1 -1
  352. package/lib/features/tools/view.d.ts +7 -0
  353. package/lib/features/tools/view.d.ts.map +1 -0
  354. package/lib/features/tools/view.js +40 -0
  355. package/lib/features/tools/view.js.map +1 -0
  356. package/lib/features/validation/di.config.d.ts +1 -1
  357. package/lib/features/validation/di.config.js +12 -12
  358. package/lib/features/validation/di.config.js.map +1 -1
  359. package/lib/features/validation/issue-marker.d.ts +3 -3
  360. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  361. package/lib/features/validation/issue-marker.js +18 -56
  362. package/lib/features/validation/issue-marker.js.map +1 -1
  363. package/lib/features/validation/marker-navigator.d.ts +19 -3
  364. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  365. package/lib/features/validation/marker-navigator.js +131 -164
  366. package/lib/features/validation/marker-navigator.js.map +1 -1
  367. package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
  368. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  369. package/lib/features/validation/marker-navigator.spec.js +84 -77
  370. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  371. package/lib/features/validation/validate.d.ts +20 -31
  372. package/lib/features/validation/validate.d.ts.map +1 -1
  373. package/lib/features/validation/validate.js +148 -299
  374. package/lib/features/validation/validate.js.map +1 -1
  375. package/lib/{base/args.d.ts → features/viewport/di.config.d.ts} +5 -5
  376. package/lib/features/viewport/di.config.d.ts.map +1 -0
  377. package/lib/features/viewport/di.config.js +34 -0
  378. package/lib/features/viewport/di.config.js.map +1 -0
  379. package/{src/features/model-source-watcher/model-source-changed-action.ts → lib/features/viewport/glsp-scroll-mouse-listener.d.ts} +8 -11
  380. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -0
  381. package/lib/features/viewport/glsp-scroll-mouse-listener.js +39 -0
  382. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -0
  383. package/lib/index.d.ts +37 -35
  384. package/lib/index.d.ts.map +1 -1
  385. package/lib/index.js +39 -35
  386. package/lib/index.js.map +1 -1
  387. package/lib/lib/model.d.ts +3 -3
  388. package/lib/lib/model.d.ts.map +1 -1
  389. package/lib/lib/model.js +11 -27
  390. package/lib/lib/model.js.map +1 -1
  391. package/lib/model-source/glsp-diagram-server.d.ts +4 -6
  392. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  393. package/lib/model-source/glsp-diagram-server.js +63 -122
  394. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  395. package/lib/protocol-reexport.d.ts +45 -0
  396. package/lib/protocol-reexport.d.ts.map +1 -0
  397. package/lib/protocol-reexport.js +75 -0
  398. package/lib/protocol-reexport.js.map +1 -0
  399. package/lib/utils/argument-utils.d.ts +50 -0
  400. package/lib/utils/argument-utils.d.ts.map +1 -0
  401. package/lib/utils/argument-utils.js +110 -0
  402. package/lib/utils/argument-utils.js.map +1 -0
  403. package/lib/utils/html-utils.js +2 -2
  404. package/lib/utils/html-utils.js.map +1 -1
  405. package/lib/utils/layout-utils.d.ts +4 -3
  406. package/lib/utils/layout-utils.d.ts.map +1 -1
  407. package/lib/utils/layout-utils.js +5 -5
  408. package/lib/utils/layout-utils.js.map +1 -1
  409. package/lib/utils/marker.d.ts +1 -39
  410. package/lib/utils/marker.d.ts.map +1 -1
  411. package/lib/utils/marker.js +14 -61
  412. package/lib/utils/marker.js.map +1 -1
  413. package/lib/utils/smodel-util.d.ts +7 -17
  414. package/lib/utils/smodel-util.d.ts.map +1 -1
  415. package/lib/utils/smodel-util.js +18 -67
  416. package/lib/utils/smodel-util.js.map +1 -1
  417. package/lib/utils/viewpoint-util.d.ts +3 -2
  418. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  419. package/lib/utils/viewpoint-util.js +15 -30
  420. package/lib/utils/viewpoint-util.js.map +1 -1
  421. package/lib/views/base-view-module.d.ts +9 -0
  422. package/lib/views/base-view-module.d.ts.map +1 -0
  423. package/lib/views/base-view-module.js +59 -0
  424. package/lib/views/base-view-module.js.map +1 -0
  425. package/lib/views/compartments.d.ts +6 -0
  426. package/lib/views/compartments.d.ts.map +1 -0
  427. package/lib/views/compartments.js +43 -0
  428. package/lib/views/compartments.js.map +1 -0
  429. package/lib/views/glsp-edge-view.d.ts +27 -0
  430. package/lib/views/glsp-edge-view.d.ts.map +1 -0
  431. package/lib/views/glsp-edge-view.js +55 -0
  432. package/lib/views/glsp-edge-view.js.map +1 -0
  433. package/lib/views/index.d.ts +22 -0
  434. package/lib/views/index.d.ts.map +1 -0
  435. package/lib/views/index.js +34 -0
  436. package/lib/views/index.js.map +1 -0
  437. package/lib/views/issue-marker-view.d.ts +9 -0
  438. package/lib/views/issue-marker-view.d.ts.map +1 -0
  439. package/lib/views/issue-marker-view.js +68 -0
  440. package/lib/views/issue-marker-view.js.map +1 -0
  441. package/lib/views/rounded-corner-view.d.ts +13 -0
  442. package/lib/views/rounded-corner-view.d.ts.map +1 -0
  443. package/lib/views/rounded-corner-view.js +82 -0
  444. package/lib/views/rounded-corner-view.js.map +1 -0
  445. package/lib/views/rounded-corner.d.ts +38 -0
  446. package/lib/views/rounded-corner.d.ts.map +1 -0
  447. package/lib/views/rounded-corner.js +62 -0
  448. package/lib/views/rounded-corner.js.map +1 -0
  449. package/package.json +27 -34
  450. package/src/base/action-dispatcher.ts +7 -8
  451. package/src/{utils/array-utils.ts → base/actions/focus-change-action.ts} +8 -16
  452. package/src/{features/undo-redo/model.ts → base/argumentable.ts} +7 -8
  453. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  454. package/src/base/auto-complete/auto-complete-widget.ts +73 -57
  455. package/src/base/auto-complete/validation-decorator.ts +21 -15
  456. package/src/base/command-stack.ts +4 -7
  457. package/src/base/container-modules.ts +112 -0
  458. package/src/base/di.config.ts +47 -25
  459. package/src/base/drag-aware-mouse-listener.ts +7 -8
  460. package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
  461. package/src/base/focus-tracker.ts +48 -0
  462. package/src/base/model/model-registry.ts +31 -0
  463. package/src/base/model/update-model-command.ts +14 -22
  464. package/src/base/model-initialization-constraint.ts +16 -11
  465. package/src/base/selection-clearing-mouse-listener.ts +4 -3
  466. package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
  467. package/src/base/types.ts +23 -21
  468. package/src/base/view/view-registry.ts +31 -0
  469. package/src/features/change-bounds/model.ts +23 -13
  470. package/src/features/change-bounds/movement-restrictor.ts +28 -18
  471. package/src/features/change-bounds/snap.ts +6 -5
  472. package/src/features/command-palette/command-palette-tool.ts +4 -4
  473. package/src/features/command-palette/di.config.ts +7 -7
  474. package/src/features/command-palette/server-command-palette-provider.ts +16 -14
  475. package/src/features/context-menu/delete-element-context-menu.ts +10 -11
  476. package/src/features/context-menu/di.config.ts +10 -12
  477. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
  478. package/src/features/context-menu/server-context-menu-provider.ts +13 -10
  479. package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
  480. package/src/features/copy-paste/copy-paste-handler.ts +30 -20
  481. package/src/features/copy-paste/di.config.ts +6 -7
  482. package/src/features/decoration/decoration-placer.ts +6 -15
  483. package/src/features/decoration/di.config.ts +4 -6
  484. package/src/features/edit-label/di.config.ts +5 -5
  485. package/src/features/edit-label/edit-label-tool.ts +4 -4
  486. package/src/features/edit-label/edit-label-validator.ts +18 -19
  487. package/src/features/hints/di.config.ts +6 -7
  488. package/src/features/hints/model.ts +7 -6
  489. package/src/features/hints/type-hints.ts +46 -113
  490. package/src/features/hover/di.config.ts +7 -7
  491. package/src/features/hover/hover.ts +11 -14
  492. package/src/features/layout/di.config.ts +10 -6
  493. package/src/features/layout/freeform-layout.ts +133 -0
  494. package/src/features/layout/layout-commands.spec.ts +104 -85
  495. package/src/features/layout/layout-commands.ts +65 -54
  496. package/src/features/layout/vbox-layout.ts +256 -0
  497. package/src/features/model-source-watcher/di.config.ts +5 -6
  498. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
  499. package/src/features/mouse-tool/di.config.ts +4 -4
  500. package/src/features/mouse-tool/mouse-tool.ts +44 -32
  501. package/src/features/navigation/di.config.ts +6 -12
  502. package/src/features/navigation/navigation-action-handler.ts +46 -78
  503. package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
  504. package/src/features/navigation/navigation-target-resolver.ts +16 -94
  505. package/src/features/rank/model.ts +3 -3
  506. package/src/features/reconnect/model.ts +9 -11
  507. package/src/features/save/di.config.ts +4 -5
  508. package/src/features/save/model.ts +1 -1
  509. package/src/features/save/{save.ts → save-keylistener.ts} +4 -8
  510. package/src/features/select/di.config.ts +6 -6
  511. package/src/features/select/select-feedback-action.ts +6 -8
  512. package/src/features/select/select-mouse-listener.ts +2 -2
  513. package/src/features/select/selection-service.spec.ts +25 -19
  514. package/src/features/select/selection-service.ts +25 -22
  515. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
  516. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
  517. package/src/features/tool-feedback/css-feedback.ts +19 -14
  518. package/src/features/tool-feedback/di.config.ts +15 -14
  519. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
  520. package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
  521. package/src/features/tool-feedback/marquee-tool-feedback.ts +103 -0
  522. package/src/features/tool-feedback/model.ts +2 -3
  523. package/src/features/tool-feedback/view.tsx +20 -13
  524. package/src/features/tool-palette/di.config.ts +5 -7
  525. package/src/features/tool-palette/palette-item.ts +5 -7
  526. package/src/features/tool-palette/tool-palette.ts +126 -107
  527. package/src/features/tools/base-glsp-tool.ts +12 -12
  528. package/src/features/tools/change-bounds-tool.ts +83 -53
  529. package/src/features/tools/delete-tool.ts +23 -20
  530. package/src/features/tools/di.config.ts +22 -11
  531. package/src/features/tools/edge-creation-tool.ts +20 -25
  532. package/src/features/tools/edge-edit-tool.ts +43 -46
  533. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  534. package/src/features/tools/marquee-behavior.ts +158 -0
  535. package/src/features/tools/marquee-mouse-tool.ts +153 -0
  536. package/src/features/tools/marquee-tool.ts +51 -0
  537. package/src/features/tools/model.ts +22 -0
  538. package/src/features/tools/node-creation-tool.ts +18 -22
  539. package/src/features/tools/view.tsx +44 -0
  540. package/src/features/validation/di.config.ts +5 -5
  541. package/src/features/validation/issue-marker.ts +4 -5
  542. package/src/features/validation/marker-navigator.spec.ts +38 -33
  543. package/src/features/validation/marker-navigator.ts +39 -26
  544. package/src/features/validation/validate.ts +25 -59
  545. package/src/features/viewport/di.config.ts +47 -0
  546. package/src/features/viewport/glsp-scroll-mouse-listener.ts +41 -0
  547. package/src/index.ts +57 -37
  548. package/src/lib/model.ts +4 -4
  549. package/src/model-source/glsp-diagram-server.ts +19 -33
  550. package/src/protocol-reexport.ts +64 -0
  551. package/src/utils/argument-utils.ts +130 -0
  552. package/src/utils/layout-utils.ts +19 -11
  553. package/src/utils/marker.ts +8 -32
  554. package/src/utils/smodel-util.ts +28 -22
  555. package/src/utils/viewpoint-util.ts +5 -6
  556. package/src/views/base-view-module.ts +97 -0
  557. package/src/views/compartments.tsx +37 -0
  558. package/src/views/glsp-edge-view.tsx +79 -0
  559. package/{lib/utils/array-utils.d.ts → src/views/index.ts} +7 -4
  560. package/src/views/issue-marker-view.tsx +65 -0
  561. package/src/views/rounded-corner-view.tsx +103 -0
  562. package/src/views/rounded-corner.ts +87 -0
  563. package/lib/base/actions/context-actions.d.ts +0 -36
  564. package/lib/base/actions/context-actions.d.ts.map +0 -1
  565. package/lib/base/actions/context-actions.js +0 -51
  566. package/lib/base/actions/context-actions.js.map +0 -1
  567. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  568. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  569. package/lib/base/actions/edit-mode-action.js +0 -56
  570. package/lib/base/actions/edit-mode-action.js.map +0 -1
  571. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  572. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  573. package/lib/base/actions/edit-validation-actions.js +0 -82
  574. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  575. package/lib/base/actions/protocol-actions.d.ts +0 -41
  576. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  577. package/lib/base/actions/protocol-actions.js +0 -151
  578. package/lib/base/actions/protocol-actions.js.map +0 -1
  579. package/lib/base/args.d.ts.map +0 -1
  580. package/lib/base/args.js +0 -3
  581. package/lib/base/args.js.map +0 -1
  582. package/lib/base/editor-context.d.ts +0 -46
  583. package/lib/base/editor-context.d.ts.map +0 -1
  584. package/lib/base/editor-context.js +0 -174
  585. package/lib/base/editor-context.js.map +0 -1
  586. package/lib/base/operations/operation.d.ts +0 -129
  587. package/lib/base/operations/operation.d.ts.map +0 -1
  588. package/lib/base/operations/operation.js +0 -201
  589. package/lib/base/operations/operation.js.map +0 -1
  590. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  591. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  592. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  593. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  594. package/lib/features/decoration/view.d.ts +0 -8
  595. package/lib/features/decoration/view.d.ts.map +0 -1
  596. package/lib/features/decoration/view.js +0 -80
  597. package/lib/features/decoration/view.js.map +0 -1
  598. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  599. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  600. package/lib/features/hints/request-type-hints-action.js +0 -30
  601. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  602. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  603. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  604. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  605. package/lib/features/save/save.d.ts.map +0 -1
  606. package/lib/features/save/save.js +0 -57
  607. package/lib/features/save/save.js.map +0 -1
  608. package/lib/features/undo-redo/model.d.ts.map +0 -1
  609. package/lib/features/undo-redo/model.js +0 -22
  610. package/lib/features/undo-redo/model.js.map +0 -1
  611. package/lib/model-source/glsp-server-status.d.ts +0 -30
  612. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  613. package/lib/model-source/glsp-server-status.js +0 -61
  614. package/lib/model-source/glsp-server-status.js.map +0 -1
  615. package/lib/utils/array-utils.d.ts.map +0 -1
  616. package/lib/utils/array-utils.js.map +0 -1
  617. package/src/base/actions/context-actions.ts +0 -43
  618. package/src/base/actions/edit-mode-action.ts +0 -33
  619. package/src/base/actions/edit-validation-actions.ts +0 -102
  620. package/src/base/actions/protocol-actions.ts +0 -82
  621. package/src/base/operations/operation.ts +0 -148
  622. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  623. package/src/features/decoration/view.tsx +0 -54
  624. package/src/features/hints/request-type-hints-action.ts +0 -36
  625. package/src/model-source/glsp-server-status.ts +0 -38
@@ -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,13 +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 { inject } from "inversify";
17
- import { Action, ActionDispatcher, isResponseAction, RequestAction, ResponseAction } from "sprotty";
18
-
19
- import { ModelInitializationConstraint } from "./model-initialization-constraint";
16
+ import { Action, isResponseAction, RequestAction, ResponseAction } from '@eclipse-glsp/protocol';
17
+ import { inject } from 'inversify';
18
+ import { ActionDispatcher } from 'sprotty';
19
+ import { ModelInitializationConstraint } from './model-initialization-constraint';
20
20
 
21
21
  export class GLSPActionDispatcher extends ActionDispatcher {
22
-
23
22
  protected readonly timeouts: Map<string, NodeJS.Timeout> = new Map();
24
23
 
25
24
  @inject(ModelInitializationConstraint) protected initiailizationConstraint: ModelInitializationConstraint;
@@ -29,7 +28,7 @@ export class GLSPActionDispatcher extends ActionDispatcher {
29
28
  return super.initialize().then(() => this.startModelInitialization());
30
29
  }
31
30
 
32
- startModelInitialization() {
31
+ startModelInitialization(): void {
33
32
  this.logger.log(this, 'Starting model initialization mode');
34
33
  this.onModelInitialized = this.initiailizationConstraint.onInitialized();
35
34
  this.onModelInitialized.then(() => this.logger.log(this, 'Model initialization completed'));
@@ -74,7 +73,7 @@ export class GLSPActionDispatcher extends ActionDispatcher {
74
73
  * If `rejectOnTimeout` is set to false (default) the returned promise will be resolved with
75
74
  * no value, otherwise it will be rejected.
76
75
  */
77
- requestUntil<Res extends ResponseAction>(action: RequestAction<Res>, timeoutMs: number = 2000, rejectOnTimeout: boolean = false): Promise<Res> {
76
+ requestUntil<Res extends ResponseAction>(action: RequestAction<Res>, timeoutMs = 2000, rejectOnTimeout = false): Promise<Res> {
78
77
  if (!action.requestId) {
79
78
  return Promise.reject(new Error('Request without requestId'));
80
79
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 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,22 +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 { Action } from '@eclipse-glsp/protocol';
16
17
 
17
- export function remove<T>(array: T[], value: T): boolean {
18
- const index = array.indexOf(value);
19
- if (index >= 0) {
20
- array.splice(index, 1);
21
- return true;
22
- }
23
- return false;
18
+ export class FocusStateChangedAction implements Action {
19
+ static KIND = 'focusStateChanged';
20
+ readonly kind = FocusStateChangedAction.KIND;
21
+ constructor(public readonly hasFocus: boolean) {}
24
22
  }
25
23
 
26
- export function distinctAdd<T>(array: T[], value: T): boolean {
27
- if (!array.includes(value)) {
28
- array.push(value);
29
- return true;
30
- }
31
- return false;
24
+ export function isFocusStateChangedAction(action: Action): action is FocusStateChangedAction {
25
+ return action.kind === FocusStateChangedAction.KIND;
32
26
  }
33
-
34
-
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,14 +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 { Operation } from "../../base/operations/operation";
16
+ import { Args } from '@eclipse-glsp/protocol';
17
+ import { SModelElement } from 'sprotty';
17
18
 
18
- export class UndoOperation implements Operation {
19
- static readonly KIND = 'glspUndo';
20
- constructor(public readonly kind = UndoOperation.KIND) { }
19
+ export interface SArgumentable {
20
+ args: Args;
21
21
  }
22
22
 
23
- export class RedoOperation implements Operation {
24
- static readonly KIND = 'glspRedo';
25
- constructor(public readonly kind = RedoOperation.KIND) { }
23
+ export function hasArguments(element?: SModelElement): element is SModelElement & SArgumentable {
24
+ return element !== undefined && 'args' in element;
26
25
  }
@@ -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 { LabeledAction } from "sprotty/lib";
16
+ import { LabeledAction } from '@eclipse-glsp/protocol';
17
17
 
18
18
  export interface SetAutoCompleteValueAction extends LabeledAction {
19
19
  readonly text: string;
20
20
  }
21
21
 
22
22
  export function isSetAutoCompleteValueAction(action: LabeledAction): action is SetAutoCompleteValueAction {
23
- return action !== undefined && (<SetAutoCompleteValueAction>action).text !== undefined;
23
+ return action !== undefined && (action as SetAutoCompleteValueAction).text !== undefined;
24
24
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,20 +13,19 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { AutocompleteResult, AutocompleteSettings } from "autocompleter";
17
- import { Action, ILogger, isAction, isLabeledAction, LabeledAction, SModelRoot } from "sprotty/lib";
18
- import { toArray } from "sprotty/lib/utils/iterable";
19
- import { matchesKeystroke } from "sprotty/lib/utils/keyboard";
20
-
21
- import { ValidationStatus } from "../actions/edit-validation-actions";
22
- import { isSetAutoCompleteValueAction } from "./auto-complete-actions";
23
- import { IValidationDecorator } from "./validation-decorator";
16
+ import { Action, isAction, isLabeledAction, LabeledAction, ValidationStatus } from '@eclipse-glsp/protocol';
17
+ import { AutocompleteResult, AutocompleteSettings } from 'autocompleter';
18
+ import { codiconCSSClasses, ILogger, SModelRoot } from 'sprotty';
19
+ import { toArray } from 'sprotty/lib/utils/iterable';
20
+ import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
21
+ import { isSetAutoCompleteValueAction } from './auto-complete-actions';
22
+ import { IValidationDecorator } from './validation-decorator';
24
23
 
25
24
  export interface AutoCompleteSettings {
26
- readonly noSuggestionsMessage: string;
27
- readonly suggestionsClass: string;
28
- readonly debounceWaitMs: number;
29
- readonly showOnFocus: boolean;
25
+ readonly noSuggestionsMessage?: string;
26
+ readonly suggestionsClass?: string;
27
+ readonly debounceWaitMs?: number;
28
+ readonly showOnFocus?: boolean;
30
29
  }
31
30
 
32
31
  export interface InputValidator {
@@ -49,12 +48,11 @@ export interface TextSubmitHandler {
49
48
  executeFromTextOnlyInput(input: string): void;
50
49
  }
51
50
 
51
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
52
52
  const configureAutocomplete: (settings: AutocompleteSettings<LabeledAction>) => AutocompleteResult = require('autocompleter');
53
53
 
54
-
55
-
56
54
  export class AutoCompleteWidget {
57
- loadingIndicatorClasses = ['loading', 'fa', 'fa-spinner', 'fa-pulse', 'fa-3x', 'fa-fw'];
55
+ loadingIndicatorClasses = codiconCSSClasses('loading', false, true, ['loading']);
58
56
 
59
57
  protected containerElement: HTMLElement;
60
58
  protected inputElement: HTMLInputElement;
@@ -69,15 +67,18 @@ export class AutoCompleteWidget {
69
67
  protected textSubmitHandler?: TextSubmitHandler;
70
68
 
71
69
  constructor(
72
- protected autoSuggestionSettings: AutoCompleteSettings,
73
- protected suggestionProvider: SuggestionProvider,
74
- protected suggestionSubmitHandler: SuggestionSubmitHandler,
75
- protected notifyClose: () => void = () => { },
70
+ public autoSuggestionSettings: AutoCompleteSettings,
71
+ public suggestionProvider: SuggestionProvider,
72
+ public suggestionSubmitHandler: SuggestionSubmitHandler,
73
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
74
+ protected notifyClose: () => void = () => {},
76
75
  protected logger?: ILogger
77
- ) { }
76
+ ) {}
78
77
 
79
- configureValidation(inputValidator: InputValidator,
80
- validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION): void {
78
+ configureValidation(
79
+ inputValidator: InputValidator,
80
+ validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION
81
+ ): void {
81
82
  this.inputValidator = inputValidator;
82
83
  this.validationDecorator = validationDecorator;
83
84
  }
@@ -105,7 +106,7 @@ export class AutoCompleteWidget {
105
106
  return inputElement;
106
107
  }
107
108
 
108
- protected handleKeyDown(event: KeyboardEvent) {
109
+ protected handleKeyDown(event: KeyboardEvent): void {
109
110
  if (matchesKeystroke(event, 'Escape')) {
110
111
  this.notifyClose();
111
112
  return;
@@ -129,16 +130,16 @@ export class AutoCompleteWidget {
129
130
  }
130
131
  }
131
132
 
132
- protected isInputElementChanged() {
133
+ protected isInputElementChanged(): boolean {
133
134
  return this.inputElement.value !== this.previousContent;
134
135
  }
135
136
 
136
- protected invalidateValidationResultAndContextActions() {
137
+ protected invalidateValidationResultAndContextActions(): void {
137
138
  this.contextActions = undefined;
138
139
  this.validationDecorator.invalidate();
139
140
  }
140
141
 
141
- open(root: Readonly<SModelRoot>, ...contextElementIds: string[]) {
142
+ open(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
142
143
  this.contextActions = undefined;
143
144
  this.autoCompleteResult = configureAutocomplete(this.autocompleteSettings(root));
144
145
  this.previousContent = this.inputElement.value;
@@ -154,25 +155,33 @@ export class AutoCompleteWidget {
154
155
  showOnFocus: this.autoSuggestionSettings.showOnFocus,
155
156
  debounceWaitMs: this.autoSuggestionSettings.debounceWaitMs,
156
157
  minLength: -1,
157
- fetch: (text: string, update: (items: LabeledAction[]) => void) =>
158
- this.updateSuggestions(update, text, root),
158
+ fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
159
159
  onSelect: (item: LabeledAction) => this.onSelect(item),
160
- render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined =>
161
- this.renderSuggestions(item, currentValue),
160
+ render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
162
161
  customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
163
162
  this.customizeInputElement(input, inputRect, container, maxHeight);
164
163
  }
165
164
  };
166
165
  }
167
166
 
168
- protected customizeInputElement(input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) {
167
+ protected customizeInputElement(
168
+ input: HTMLInputElement,
169
+ inputRect: ClientRect | DOMRect,
170
+ container: HTMLDivElement,
171
+ maxHeight: number
172
+ ): void {
169
173
  // move container into our UIExtension container as this is already positioned correctly
170
174
  if (this.containerElement) {
171
175
  this.containerElement.appendChild(container);
172
176
  }
173
177
  }
174
178
 
175
- protected updateSuggestions(update: (items: LabeledAction[]) => void, text: string, root: Readonly<SModelRoot>, ...contextElementIds: string[]) {
179
+ protected updateSuggestions(
180
+ update: (items: LabeledAction[]) => void,
181
+ text: string,
182
+ root: Readonly<SModelRoot>,
183
+ ...contextElementIds: string[]
184
+ ): void {
176
185
  this.onLoading();
177
186
  this.doUpdateSuggestions(text, root)
178
187
  .then(actions => {
@@ -181,12 +190,14 @@ export class AutoCompleteWidget {
181
190
  this.onLoaded('success');
182
191
  })
183
192
  .catch(reason => {
184
- if (this.logger) { this.logger.error(this, 'Failed to obtain suggestions', reason); }
193
+ if (this.logger) {
194
+ this.logger.error(this, 'Failed to obtain suggestions', reason);
195
+ }
185
196
  this.onLoaded('error');
186
197
  });
187
198
  }
188
199
 
189
- protected onLoading() {
200
+ protected onLoading(): void {
190
201
  if (this.loadingIndicator && this.containerElement.contains(this.loadingIndicator)) {
191
202
  return;
192
203
  }
@@ -199,7 +210,7 @@ export class AutoCompleteWidget {
199
210
  return this.suggestionProvider.provideSuggestions(text);
200
211
  }
201
212
 
202
- protected onLoaded(_success: 'success' | 'error') {
213
+ protected onLoaded(_success: 'success' | 'error'): void {
203
214
  if (this.containerElement.contains(this.loadingIndicator)) {
204
215
  this.containerElement.removeChild(this.loadingIndicator);
205
216
  }
@@ -208,7 +219,7 @@ export class AutoCompleteWidget {
208
219
  this.previousContent = this.inputElement.value;
209
220
  }
210
221
 
211
- protected renderSuggestions(item: LabeledAction, value: string) {
222
+ protected renderSuggestions(item: LabeledAction, value: string): HTMLDivElement {
212
223
  const itemElement = document.createElement('div');
213
224
  const wordMatcher = this.espaceForRegExp(value).split(' ').join('|');
214
225
  const regex = new RegExp(wordMatcher, 'gi');
@@ -219,23 +230,25 @@ export class AutoCompleteWidget {
219
230
  return itemElement;
220
231
  }
221
232
 
222
- protected espaceForRegExp(value: string) {
233
+ protected espaceForRegExp(value: string): string {
223
234
  return value.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
224
235
  }
225
236
 
226
- protected renderIcon(itemElement: HTMLDivElement, icon: string) {
237
+ protected renderIcon(itemElement: HTMLDivElement, icon: string): void {
227
238
  itemElement.innerHTML += `<span class="icon ${icon}"></span>`;
228
239
  }
229
240
 
230
241
  protected filterActions(filterText: string, actions: LabeledAction[]): LabeledAction[] {
231
- return toArray(actions.filter(action => {
232
- const label = action.label.toLowerCase();
233
- const searchWords = filterText.split(' ');
234
- return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
235
- }));
242
+ return toArray(
243
+ actions.filter(action => {
244
+ const label = action.label.toLowerCase();
245
+ const searchWords = filterText.split(' ');
246
+ return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
247
+ })
248
+ );
236
249
  }
237
250
 
238
- protected onSelect(item: LabeledAction) {
251
+ protected onSelect(item: LabeledAction): void {
239
252
  if (isSetAutoCompleteValueAction(item)) {
240
253
  this.inputElement.value = item.text;
241
254
  // trigger update of suggestions with an keyup event
@@ -246,7 +259,7 @@ export class AutoCompleteWidget {
246
259
  }
247
260
  }
248
261
 
249
- protected validateInputIfNoContextActions() {
262
+ protected validateInputIfNoContextActions(): void {
250
263
  if (this.isNoOrExactlyOneMatchingContextAction()) {
251
264
  this.validateInput();
252
265
  } else {
@@ -254,27 +267,30 @@ export class AutoCompleteWidget {
254
267
  }
255
268
  }
256
269
 
257
- private isNoOrExactlyOneMatchingContextAction() {
258
- return !this.isSuggestionAvailable()
259
- || (this.contextActions
260
- && this.contextActions.length === 1
261
- && this.inputElement.value.endsWith(this.contextActions[0].label));
270
+ private isNoOrExactlyOneMatchingContextAction(): boolean | undefined {
271
+ return (
272
+ !this.isSuggestionAvailable() ||
273
+ (this.contextActions && this.contextActions.length === 1 && this.inputElement.value.endsWith(this.contextActions[0].label))
274
+ );
262
275
  }
263
276
 
264
- protected isSuggestionAvailable() {
277
+ protected isSuggestionAvailable(): boolean | undefined {
265
278
  return this.contextActions && this.contextActions.length > 0;
266
279
  }
267
280
 
268
- validateInput() {
281
+ validateInput(): void {
269
282
  if (this.inputValidator) {
270
- this.inputValidator.validate(this.inputElement.value)
283
+ this.inputValidator
284
+ .validate(this.inputElement.value)
271
285
  .then(result => this.validationDecorator.decorateValidationResult(result))
272
286
  .catch(error => this.handleErrorDuringValidation(error));
273
287
  }
274
288
  }
275
289
 
276
- protected handleErrorDuringValidation(error: Error) {
277
- if (this.logger) { this.logger.error(this, 'Failed to validate input', error); }
290
+ protected handleErrorDuringValidation(error: Error): void {
291
+ if (this.logger) {
292
+ this.logger.error(this, 'Failed to validate input', error);
293
+ }
278
294
  this.validationDecorator.dispose();
279
295
  }
280
296
 
@@ -292,7 +308,7 @@ export class AutoCompleteWidget {
292
308
  return this.inputElement;
293
309
  }
294
310
 
295
- dispose() {
311
+ dispose(): void {
296
312
  this.validationDecorator.dispose();
297
313
  if (this.autoCompleteResult) {
298
314
  this.autoCompleteResult.destroy();
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,7 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { ValidationStatus } from "../actions/edit-validation-actions";
16
+ import { codiconCSSString } from 'sprotty/lib/utils/codicon';
17
+ import { ValidationStatus } from '@eclipse-glsp/protocol';
17
18
 
18
19
  export interface IValidationDecorator {
19
20
  decorateValidationResult(status: ValidationStatus): void;
@@ -24,25 +25,30 @@ export interface IValidationDecorator {
24
25
 
25
26
  export namespace IValidationDecorator {
26
27
  export const NO_DECORATION: IValidationDecorator = {
27
- decorateValidationResult(_status: ValidationStatus) { },
28
- isValidatedOk(): boolean { return false; },
29
- invalidate() { },
30
- dispose() { }
28
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
29
+ decorateValidationResult(_status: ValidationStatus) {},
30
+ isValidatedOk(): boolean {
31
+ return false;
32
+ },
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
34
+ invalidate() {},
35
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
36
+ dispose() {}
31
37
  };
32
38
  }
33
39
 
34
40
  export class ValidationDecorator implements IValidationDecorator {
35
41
  warningClasses = ['warning'];
36
- warningIconClasses = ['fa', 'fa-question-circle'];
42
+ warningIconClasses = codiconCSSString('warning');
37
43
  errorClasses = ['error'];
38
- errorIconClasses = ['fa', 'fa-exclamation-circle'];
44
+ errorIconClasses = codiconCSSString('error');
39
45
 
40
- isValidated: boolean = false;
41
- hasValidationError: boolean = false;
46
+ isValidated = false;
47
+ hasValidationError = false;
42
48
 
43
49
  protected decorationDiv?: HTMLDivElement;
44
50
 
45
- constructor(protected containerElement: HTMLElement) { }
51
+ constructor(protected containerElement: HTMLElement) {}
46
52
 
47
53
  decorateValidationResult(status: ValidationStatus): void {
48
54
  if (ValidationStatus.isError(status)) {
@@ -62,7 +68,7 @@ export class ValidationDecorator implements IValidationDecorator {
62
68
  this.switchCssClasses(this.containerElement, this.errorClasses);
63
69
  const div = this.createDecorationDiv();
64
70
  this.switchCssClasses(div, this.errorClasses);
65
- div.innerHTML = `<span class="${this.errorIconClasses.join(' ')}"></span> ${message}`;
71
+ div.innerHTML = `<span class="${this.errorIconClasses}"></span> ${message}`;
66
72
  this.adjustPosition();
67
73
  }
68
74
 
@@ -70,11 +76,11 @@ export class ValidationDecorator implements IValidationDecorator {
70
76
  this.switchCssClasses(this.containerElement, this.warningClasses);
71
77
  const div = this.createDecorationDiv();
72
78
  this.switchCssClasses(div, this.warningClasses);
73
- div.innerHTML = `<span class="${this.warningIconClasses.join(' ')}"></span> ${message}`;
79
+ div.innerHTML = `<span class="${this.warningIconClasses}"></span> ${message}`;
74
80
  this.adjustPosition();
75
81
  }
76
82
 
77
- protected switchCssClasses(element: HTMLElement, cssClasses: string[]) {
83
+ protected switchCssClasses(element: HTMLElement, cssClasses: string[]): void {
78
84
  element.classList.remove(...this.errorClasses, ...this.warningClasses);
79
85
  element.classList.add(...cssClasses);
80
86
  }
@@ -91,7 +97,7 @@ export class ValidationDecorator implements IValidationDecorator {
91
97
  }
92
98
 
93
99
  protected decorationContainerWidth(): number {
94
- return this.containerElement.clientWidth - 22;
100
+ return this.containerElement.clientWidth - 5;
95
101
  }
96
102
 
97
103
  protected adjustPosition(): void {
@@ -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,14 +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 { inject, injectable } from "inversify";
17
- import { CommandStack, IActionDispatcher, SModelRoot, TYPES } from "sprotty";
18
-
19
- import { RedoOperation, UndoOperation } from "../features/undo-redo/model";
16
+ import { RedoOperation, UndoOperation } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import { CommandStack, IActionDispatcher, SModelRoot, TYPES } from 'sprotty';
20
19
 
21
20
  @injectable()
22
21
  export class GLSPCommandStack extends CommandStack {
23
-
24
22
  @inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
25
23
 
26
24
  undo(): Promise<SModelRoot> {
@@ -33,4 +31,3 @@ export class GLSPCommandStack extends CommandStack {
33
31
  return this.thenUpdate();
34
32
  }
35
33
  }
36
-
@@ -0,0 +1,112 @@
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 {
19
+ boundsModule,
20
+ buttonModule,
21
+ defaultModule,
22
+ edgeIntersectionModule,
23
+ edgeLayoutModule,
24
+ expandModule,
25
+ exportModule,
26
+ fadeModule,
27
+ labelEditUiModule,
28
+ modelSourceModule,
29
+ openModule,
30
+ routingModule,
31
+ zorderModule
32
+ } from 'sprotty';
33
+ import glspCommandPaletteModule from '../features/command-palette/di.config';
34
+ import glspContextMenuModule from '../features/context-menu/di.config';
35
+ import { glspServerCopyPasteModule } from '../features/copy-paste/di.config';
36
+ import glspDecorationModule from '../features/decoration/di.config';
37
+ import glspEditLabelModule from '../features/edit-label/di.config';
38
+ import modelHintsModule from '../features/hints/di.config';
39
+ import glspHoverModule from '../features/hover/di.config';
40
+ import layoutCommandsModule from '../features/layout/di.config';
41
+ import modelSourceWatcherModule from '../features/model-source-watcher/di.config';
42
+ import glspMouseToolModule from '../features/mouse-tool/di.config';
43
+ import { navigationModule } from '../features/navigation/di.config';
44
+ import glspSelectModule from '../features/select/di.config';
45
+ import toolFeedbackModule from '../features/tool-feedback/di.config';
46
+ import toolPaletteModule from '../features/tool-palette/di.config';
47
+ import toolsModule from '../features/tools/di.config';
48
+ import { markerNavigatorModule, validationModule } from '../features/validation/di.config';
49
+ import glspViewportModule from '../features/viewport/di.config';
50
+ import defaultGLSPModule from './di.config';
51
+
52
+ export const DEFAULT_MODULES = [
53
+ defaultModule,
54
+ defaultGLSPModule,
55
+ boundsModule,
56
+ buttonModule,
57
+ edgeIntersectionModule,
58
+ edgeLayoutModule,
59
+ expandModule,
60
+ exportModule,
61
+ fadeModule,
62
+ glspCommandPaletteModule,
63
+ glspContextMenuModule,
64
+ glspDecorationModule,
65
+ glspEditLabelModule,
66
+ glspHoverModule,
67
+ glspMouseToolModule,
68
+ glspSelectModule,
69
+ glspServerCopyPasteModule,
70
+ glspViewportModule,
71
+ labelEditUiModule,
72
+ layoutCommandsModule,
73
+ markerNavigatorModule,
74
+ modelHintsModule,
75
+ modelSourceModule,
76
+ modelSourceWatcherModule,
77
+ navigationModule,
78
+ openModule,
79
+ toolPaletteModule,
80
+ routingModule,
81
+ toolFeedbackModule,
82
+ toolsModule,
83
+ validationModule,
84
+ zorderModule
85
+ ];
86
+
87
+ /**
88
+ * Creates a GLSP Client container with the GLSP default modules and the specified custom `modules`.
89
+ *
90
+ * You can still customize the default modules in two ways.
91
+ *
92
+ * First, you can unload default modules and load them again with your custom code.
93
+ *
94
+ * ```typescript
95
+ * const container = createClientContainer(myModule1, myModule2);
96
+ * container.unload(modelSourceWatcherModule);
97
+ * container.load(myModelSourceWatcherModule);
98
+ * ```
99
+ *
100
+ * Second, you can unbind or rebind implementations that are originally bound in one of the default modules.
101
+ *
102
+ * ```typescript
103
+ * rebind(NavigationTargetResolver).to(MyNavigationTargetResolver);
104
+ * ```
105
+ * @param modules Custom modules to be loaded in addition to the default modules.
106
+ * @returns The created container.
107
+ */
108
+ export function createClientContainer(...modules: ContainerModule[]): Container {
109
+ const container = new Container();
110
+ container.load(...DEFAULT_MODULES, ...modules);
111
+ return container;
112
+ }