@eclipse-glsp/client 0.9.0-next.d9bed812 → 0.9.0-next.e99d24cc

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 (627) hide show
  1. package/LICENSE +642 -277
  2. package/README.md +2 -1
  3. package/css/command-palette.css +9 -5
  4. package/css/decoration.css +3 -2
  5. package/css/glsp-sprotty.css +16 -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/base/actions/focus-change-action.d.ts +1 -1
  12. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  13. package/lib/base/actions/focus-change-action.js +4 -5
  14. package/lib/base/actions/focus-change-action.js.map +1 -1
  15. package/lib/base/{args.d.ts → argumentable.d.ts} +4 -6
  16. package/lib/base/argumentable.d.ts.map +1 -0
  17. package/lib/base/{args.js → argumentable.js} +1 -1
  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 +5 -5
  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 +50 -33
  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/base/focus-tracker.d.ts +17 -1
  51. package/lib/base/focus-tracker.d.ts.map +1 -1
  52. package/lib/base/focus-tracker.js +19 -39
  53. package/lib/base/focus-tracker.js.map +1 -1
  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 +8 -8
  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 +6 -2
  174. package/lib/features/layout/di.config.d.ts.map +1 -1
  175. package/lib/features/layout/di.config.js +47 -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 -10
  238. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  239. package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
  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 +21 -3
  266. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  267. package/lib/features/tool-feedback/css-feedback.js +37 -81
  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 -27
  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 +18 -2
  282. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  283. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
  284. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  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 +22 -6
  301. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  302. package/lib/features/tool-palette/tool-palette.js +225 -291
  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 +1 -16
  317. package/lib/features/tools/di.config.d.ts.map +1 -1
  318. package/lib/features/tools/di.config.js +19 -19
  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/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
  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 +27 -15
  337. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  338. package/lib/features/tools/marquee-mouse-tool.js +90 -184
  339. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  340. package/lib/features/tools/marquee-tool.d.ts +18 -2
  341. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  342. package/lib/features/tools/marquee-tool.js +32 -73
  343. package/lib/features/tools/marquee-tool.js.map +1 -1
  344. package/lib/features/tools/model.d.ts +1 -1
  345. package/lib/features/tools/model.d.ts.map +1 -1
  346. package/lib/features/tools/model.js +6 -24
  347. package/lib/features/tools/model.js.map +1 -1
  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 +3 -18
  353. package/lib/features/tools/view.d.ts.map +1 -1
  354. package/lib/features/tools/view.js +21 -39
  355. package/lib/features/tools/view.js.map +1 -1
  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/features/viewport/di.config.d.ts +16 -1
  376. package/lib/features/viewport/di.config.d.ts.map +1 -1
  377. package/lib/features/viewport/di.config.js +10 -10
  378. package/lib/features/viewport/di.config.js.map +1 -1
  379. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +3 -2
  380. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  381. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
  382. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  383. package/lib/index.d.ts +32 -35
  384. package/lib/index.d.ts.map +1 -1
  385. package/lib/index.js +33 -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/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +8 -10
  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 +24 -32
  450. package/src/base/action-dispatcher.ts +7 -8
  451. package/src/base/actions/focus-change-action.ts +2 -2
  452. package/src/base/{args.ts → argumentable.ts} +3 -4
  453. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  454. package/src/base/auto-complete/auto-complete-widget.ts +66 -48
  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 +44 -27
  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 +4 -6
  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/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
  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 +6 -7
  491. package/src/features/hover/hover.ts +11 -14
  492. package/src/features/layout/di.config.ts +32 -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 -12
  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 +16 -13
  518. package/src/features/tool-feedback/di.config.ts +12 -15
  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 +12 -12
  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 +118 -110
  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 +16 -17
  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 +67 -118
  536. package/src/features/tools/marquee-tool.ts +6 -6
  537. package/src/features/tools/model.ts +1 -2
  538. package/src/features/tools/node-creation-tool.ts +16 -23
  539. package/src/features/tools/view.tsx +21 -15
  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 +4 -4
  546. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  547. package/src/index.ts +53 -38
  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/src/views/index.ts +21 -0
  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.map +0 -1
  581. package/lib/base/editor-context.d.ts +0 -46
  582. package/lib/base/editor-context.d.ts.map +0 -1
  583. package/lib/base/editor-context.js +0 -174
  584. package/lib/base/editor-context.js.map +0 -1
  585. package/lib/base/operations/operation.d.ts +0 -135
  586. package/lib/base/operations/operation.d.ts.map +0 -1
  587. package/lib/base/operations/operation.js +0 -231
  588. package/lib/base/operations/operation.js.map +0 -1
  589. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  590. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  591. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  592. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  593. package/lib/features/decoration/view.d.ts +0 -8
  594. package/lib/features/decoration/view.d.ts.map +0 -1
  595. package/lib/features/decoration/view.js +0 -80
  596. package/lib/features/decoration/view.js.map +0 -1
  597. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  598. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  599. package/lib/features/hints/request-type-hints-action.js +0 -30
  600. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  601. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  602. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  603. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  604. package/lib/features/save/save.d.ts.map +0 -1
  605. package/lib/features/save/save.js +0 -62
  606. package/lib/features/save/save.js.map +0 -1
  607. package/lib/features/undo-redo/model.d.ts.map +0 -1
  608. package/lib/features/undo-redo/model.js +0 -22
  609. package/lib/features/undo-redo/model.js.map +0 -1
  610. package/lib/model-source/glsp-server-status.d.ts +0 -30
  611. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  612. package/lib/model-source/glsp-server-status.js +0 -61
  613. package/lib/model-source/glsp-server-status.js.map +0 -1
  614. package/lib/utils/array-utils.d.ts +0 -28
  615. package/lib/utils/array-utils.d.ts.map +0 -1
  616. package/lib/utils/array-utils.js +0 -61
  617. package/lib/utils/array-utils.js.map +0 -1
  618. package/src/base/actions/context-actions.ts +0 -43
  619. package/src/base/actions/edit-mode-action.ts +0 -33
  620. package/src/base/actions/edit-validation-actions.ts +0 -102
  621. package/src/base/actions/protocol-actions.ts +0 -82
  622. package/src/base/operations/operation.ts +0 -178
  623. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  624. package/src/features/decoration/view.tsx +0 -54
  625. package/src/features/hints/request-type-hints-action.ts +0 -36
  626. package/src/model-source/glsp-server-status.ts +0 -38
  627. package/src/utils/array-utils.ts +0 -55
@@ -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
  }
@@ -13,12 +13,12 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action } from "sprotty";
16
+ import { Action } from '@eclipse-glsp/protocol';
17
17
 
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 {
@@ -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,9 +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 { SModelElement } from "sprotty";
17
-
18
- export type Args = { [key: string]: string | number | boolean };
16
+ import { Args } from '@eclipse-glsp/protocol';
17
+ import { SModelElement } from 'sprotty';
19
18
 
20
19
  export interface SArgumentable {
21
20
  args: Args;
@@ -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,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 { 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
25
  readonly noSuggestionsMessage?: string;
@@ -49,10 +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
54
  export class AutoCompleteWidget {
55
- loadingIndicatorClasses = ['loading', 'fa', 'fa-spinner', 'fa-pulse', 'fa-3x', 'fa-fw'];
55
+ loadingIndicatorClasses = codiconCSSClasses('loading', false, true, ['loading']);
56
56
 
57
57
  protected containerElement: HTMLElement;
58
58
  protected inputElement: HTMLInputElement;
@@ -70,12 +70,15 @@ export class AutoCompleteWidget {
70
70
  public autoSuggestionSettings: AutoCompleteSettings,
71
71
  public suggestionProvider: SuggestionProvider,
72
72
  public suggestionSubmitHandler: SuggestionSubmitHandler,
73
- protected notifyClose: () => void = () => { },
73
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
74
+ protected notifyClose: () => void = () => {},
74
75
  protected logger?: ILogger
75
- ) { }
76
+ ) {}
76
77
 
77
- configureValidation(inputValidator: InputValidator,
78
- validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION): void {
78
+ configureValidation(
79
+ inputValidator: InputValidator,
80
+ validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION
81
+ ): void {
79
82
  this.inputValidator = inputValidator;
80
83
  this.validationDecorator = validationDecorator;
81
84
  }
@@ -103,7 +106,7 @@ export class AutoCompleteWidget {
103
106
  return inputElement;
104
107
  }
105
108
 
106
- protected handleKeyDown(event: KeyboardEvent) {
109
+ protected handleKeyDown(event: KeyboardEvent): void {
107
110
  if (matchesKeystroke(event, 'Escape')) {
108
111
  this.notifyClose();
109
112
  return;
@@ -127,16 +130,16 @@ export class AutoCompleteWidget {
127
130
  }
128
131
  }
129
132
 
130
- protected isInputElementChanged() {
133
+ protected isInputElementChanged(): boolean {
131
134
  return this.inputElement.value !== this.previousContent;
132
135
  }
133
136
 
134
- protected invalidateValidationResultAndContextActions() {
137
+ protected invalidateValidationResultAndContextActions(): void {
135
138
  this.contextActions = undefined;
136
139
  this.validationDecorator.invalidate();
137
140
  }
138
141
 
139
- open(root: Readonly<SModelRoot>, ...contextElementIds: string[]) {
142
+ open(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
140
143
  this.contextActions = undefined;
141
144
  this.autoCompleteResult = configureAutocomplete(this.autocompleteSettings(root));
142
145
  this.previousContent = this.inputElement.value;
@@ -152,25 +155,33 @@ export class AutoCompleteWidget {
152
155
  showOnFocus: this.autoSuggestionSettings.showOnFocus,
153
156
  debounceWaitMs: this.autoSuggestionSettings.debounceWaitMs,
154
157
  minLength: -1,
155
- fetch: (text: string, update: (items: LabeledAction[]) => void) =>
156
- this.updateSuggestions(update, text, root),
158
+ fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
157
159
  onSelect: (item: LabeledAction) => this.onSelect(item),
158
- render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined =>
159
- this.renderSuggestions(item, currentValue),
160
+ render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
160
161
  customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
161
162
  this.customizeInputElement(input, inputRect, container, maxHeight);
162
163
  }
163
164
  };
164
165
  }
165
166
 
166
- 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 {
167
173
  // move container into our UIExtension container as this is already positioned correctly
168
174
  if (this.containerElement) {
169
175
  this.containerElement.appendChild(container);
170
176
  }
171
177
  }
172
178
 
173
- 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 {
174
185
  this.onLoading();
175
186
  this.doUpdateSuggestions(text, root)
176
187
  .then(actions => {
@@ -179,12 +190,14 @@ export class AutoCompleteWidget {
179
190
  this.onLoaded('success');
180
191
  })
181
192
  .catch(reason => {
182
- 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
+ }
183
196
  this.onLoaded('error');
184
197
  });
185
198
  }
186
199
 
187
- protected onLoading() {
200
+ protected onLoading(): void {
188
201
  if (this.loadingIndicator && this.containerElement.contains(this.loadingIndicator)) {
189
202
  return;
190
203
  }
@@ -197,7 +210,7 @@ export class AutoCompleteWidget {
197
210
  return this.suggestionProvider.provideSuggestions(text);
198
211
  }
199
212
 
200
- protected onLoaded(_success: 'success' | 'error') {
213
+ protected onLoaded(_success: 'success' | 'error'): void {
201
214
  if (this.containerElement.contains(this.loadingIndicator)) {
202
215
  this.containerElement.removeChild(this.loadingIndicator);
203
216
  }
@@ -206,7 +219,7 @@ export class AutoCompleteWidget {
206
219
  this.previousContent = this.inputElement.value;
207
220
  }
208
221
 
209
- protected renderSuggestions(item: LabeledAction, value: string) {
222
+ protected renderSuggestions(item: LabeledAction, value: string): HTMLDivElement {
210
223
  const itemElement = document.createElement('div');
211
224
  const wordMatcher = this.espaceForRegExp(value).split(' ').join('|');
212
225
  const regex = new RegExp(wordMatcher, 'gi');
@@ -217,23 +230,25 @@ export class AutoCompleteWidget {
217
230
  return itemElement;
218
231
  }
219
232
 
220
- protected espaceForRegExp(value: string) {
233
+ protected espaceForRegExp(value: string): string {
221
234
  return value.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
222
235
  }
223
236
 
224
- protected renderIcon(itemElement: HTMLDivElement, icon: string) {
237
+ protected renderIcon(itemElement: HTMLDivElement, icon: string): void {
225
238
  itemElement.innerHTML += `<span class="icon ${icon}"></span>`;
226
239
  }
227
240
 
228
241
  protected filterActions(filterText: string, actions: LabeledAction[]): LabeledAction[] {
229
- return toArray(actions.filter(action => {
230
- const label = action.label.toLowerCase();
231
- const searchWords = filterText.split(' ');
232
- return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
233
- }));
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
+ );
234
249
  }
235
250
 
236
- protected onSelect(item: LabeledAction) {
251
+ protected onSelect(item: LabeledAction): void {
237
252
  if (isSetAutoCompleteValueAction(item)) {
238
253
  this.inputElement.value = item.text;
239
254
  // trigger update of suggestions with an keyup event
@@ -244,7 +259,7 @@ export class AutoCompleteWidget {
244
259
  }
245
260
  }
246
261
 
247
- protected validateInputIfNoContextActions() {
262
+ protected validateInputIfNoContextActions(): void {
248
263
  if (this.isNoOrExactlyOneMatchingContextAction()) {
249
264
  this.validateInput();
250
265
  } else {
@@ -252,27 +267,30 @@ export class AutoCompleteWidget {
252
267
  }
253
268
  }
254
269
 
255
- private isNoOrExactlyOneMatchingContextAction() {
256
- return !this.isSuggestionAvailable()
257
- || (this.contextActions
258
- && this.contextActions.length === 1
259
- && 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
+ );
260
275
  }
261
276
 
262
- protected isSuggestionAvailable() {
277
+ protected isSuggestionAvailable(): boolean | undefined {
263
278
  return this.contextActions && this.contextActions.length > 0;
264
279
  }
265
280
 
266
- validateInput() {
281
+ validateInput(): void {
267
282
  if (this.inputValidator) {
268
- this.inputValidator.validate(this.inputElement.value)
283
+ this.inputValidator
284
+ .validate(this.inputElement.value)
269
285
  .then(result => this.validationDecorator.decorateValidationResult(result))
270
286
  .catch(error => this.handleErrorDuringValidation(error));
271
287
  }
272
288
  }
273
289
 
274
- protected handleErrorDuringValidation(error: Error) {
275
- 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
+ }
276
294
  this.validationDecorator.dispose();
277
295
  }
278
296
 
@@ -290,7 +308,7 @@ export class AutoCompleteWidget {
290
308
  return this.inputElement;
291
309
  }
292
310
 
293
- dispose() {
311
+ dispose(): void {
294
312
  this.validationDecorator.dispose();
295
313
  if (this.autoCompleteResult) {
296
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
+ }