@eclipse-glsp/client 0.9.0-next.c9ea4e00 → 0.9.0-next.d3c64530

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 (485) hide show
  1. package/LICENSE +642 -277
  2. package/css/command-palette.css +3 -0
  3. package/css/decoration.css +3 -2
  4. package/css/glsp-sprotty.css +1 -1
  5. package/css/tool-palette.css +31 -14
  6. package/lib/base/action-dispatcher.d.ts +17 -1
  7. package/lib/base/action-dispatcher.d.ts.map +1 -1
  8. package/lib/base/action-dispatcher.js +2 -1
  9. package/lib/base/action-dispatcher.js.map +1 -1
  10. package/lib/base/actions/focus-change-action.d.ts +1 -1
  11. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  12. package/lib/base/{args.d.ts → argumentable.d.ts} +2 -4
  13. package/lib/base/argumentable.d.ts.map +1 -0
  14. package/lib/base/{args.js → argumentable.js} +1 -1
  15. package/lib/base/argumentable.js.map +1 -0
  16. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  17. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  18. package/lib/base/auto-complete/auto-complete-widget.d.ts +2 -2
  19. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  20. package/lib/base/auto-complete/auto-complete-widget.js +20 -4
  21. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  22. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  23. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  24. package/lib/base/auto-complete/validation-decorator.js +9 -8
  25. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  26. package/lib/base/command-stack.d.ts.map +1 -1
  27. package/lib/base/command-stack.js +3 -3
  28. package/lib/base/command-stack.js.map +1 -1
  29. package/lib/base/container-modules.d.ts.map +1 -1
  30. package/lib/base/container-modules.js +48 -32
  31. package/lib/base/container-modules.js.map +1 -1
  32. package/lib/base/di.config.d.ts +1 -0
  33. package/lib/base/di.config.d.ts.map +1 -1
  34. package/lib/base/di.config.js +22 -6
  35. package/lib/base/di.config.js.map +1 -1
  36. package/lib/base/drag-aware-mouse-listener.d.ts +2 -1
  37. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  38. package/lib/base/drag-aware-mouse-listener.js +0 -15
  39. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  40. package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
  41. package/lib/base/editor-context-service.d.ts.map +1 -0
  42. package/lib/base/{editor-context.js → editor-context-service.js} +6 -7
  43. package/lib/base/editor-context-service.js.map +1 -0
  44. package/lib/base/focus-tracker.d.ts +17 -1
  45. package/lib/base/focus-tracker.d.ts.map +1 -1
  46. package/lib/base/focus-tracker.js +0 -15
  47. package/lib/base/focus-tracker.js.map +1 -1
  48. package/lib/base/model/update-model-command.d.ts +17 -3
  49. package/lib/base/model/update-model-command.d.ts.map +1 -1
  50. package/lib/base/model/update-model-command.js +6 -10
  51. package/lib/base/model/update-model-command.js.map +1 -1
  52. package/lib/base/model-initialization-constraint.d.ts +16 -1
  53. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  54. package/lib/base/model-initialization-constraint.js +3 -2
  55. package/lib/base/model-initialization-constraint.js.map +1 -1
  56. package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
  57. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  58. package/lib/base/tool-manager/glsp-tool-manager.js +6 -7
  59. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  60. package/lib/base/types.d.ts +3 -1
  61. package/lib/base/types.d.ts.map +1 -1
  62. package/lib/base/types.js +4 -2
  63. package/lib/base/types.js.map +1 -1
  64. package/lib/features/change-bounds/model.d.ts.map +1 -1
  65. package/lib/features/change-bounds/model.js.map +1 -1
  66. package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
  67. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  68. package/lib/features/change-bounds/movement-restrictor.js +0 -15
  69. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  70. package/lib/features/change-bounds/snap.d.ts +17 -1
  71. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  72. package/lib/features/change-bounds/snap.js +0 -15
  73. package/lib/features/change-bounds/snap.js.map +1 -1
  74. package/lib/features/command-palette/server-command-palette-provider.d.ts +18 -2
  75. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  76. package/lib/features/command-palette/server-command-palette-provider.js +6 -6
  77. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  78. package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
  79. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  80. package/lib/features/context-menu/delete-element-context-menu.js +3 -3
  81. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  82. package/lib/features/context-menu/server-context-menu-provider.d.ts +18 -2
  83. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  84. package/lib/features/context-menu/server-context-menu-provider.js +6 -6
  85. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  86. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +17 -1
  87. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  88. package/lib/features/copy-paste/copy-paste-context-menu.js +6 -6
  89. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  90. package/lib/features/copy-paste/copy-paste-handler.d.ts +17 -2
  91. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  92. package/lib/features/copy-paste/copy-paste-handler.js +7 -7
  93. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  94. package/lib/features/copy-paste/di.config.d.ts +1 -1
  95. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  96. package/lib/features/copy-paste/di.config.js +5 -5
  97. package/lib/features/copy-paste/di.config.js.map +1 -1
  98. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  99. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  100. package/lib/features/decoration/decoration-placer.js +0 -15
  101. package/lib/features/decoration/decoration-placer.js.map +1 -1
  102. package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
  103. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  104. package/lib/features/edit-label/edit-label-validator.js +5 -5
  105. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  106. package/lib/features/hints/di.config.d.ts +0 -15
  107. package/lib/features/hints/di.config.d.ts.map +1 -1
  108. package/lib/features/hints/di.config.js +3 -3
  109. package/lib/features/hints/di.config.js.map +1 -1
  110. package/lib/features/hints/model.d.ts +2 -1
  111. package/lib/features/hints/model.d.ts.map +1 -1
  112. package/lib/features/hints/model.js.map +1 -1
  113. package/lib/features/hints/type-hints.d.ts +17 -45
  114. package/lib/features/hints/type-hints.d.ts.map +1 -1
  115. package/lib/features/hints/type-hints.js +3 -20
  116. package/lib/features/hints/type-hints.js.map +1 -1
  117. package/lib/features/hover/di.config.d.ts +1 -1
  118. package/lib/features/hover/di.config.d.ts.map +1 -1
  119. package/lib/features/hover/di.config.js +1 -1
  120. package/lib/features/hover/di.config.js.map +1 -1
  121. package/lib/features/hover/hover.d.ts +17 -1
  122. package/lib/features/hover/hover.d.ts.map +1 -1
  123. package/lib/features/hover/hover.js +3 -2
  124. package/lib/features/hover/hover.js.map +1 -1
  125. package/lib/features/layout/di.config.d.ts +5 -1
  126. package/lib/features/layout/di.config.d.ts.map +1 -1
  127. package/lib/features/layout/di.config.js +42 -2
  128. package/lib/features/layout/di.config.js.map +1 -1
  129. package/lib/features/layout/freeform-layout.d.ts +16 -0
  130. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  131. package/lib/features/layout/freeform-layout.js +107 -0
  132. package/lib/features/layout/freeform-layout.js.map +1 -0
  133. package/lib/features/layout/layout-commands.d.ts +17 -1
  134. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  135. package/lib/features/layout/layout-commands.js +3 -3
  136. package/lib/features/layout/layout-commands.js.map +1 -1
  137. package/lib/features/layout/layout-commands.spec.d.ts +0 -15
  138. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  139. package/lib/features/layout/layout-commands.spec.js +4 -4
  140. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  141. package/lib/features/layout/vbox-layout.d.ts +25 -0
  142. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  143. package/lib/features/layout/vbox-layout.js +188 -0
  144. package/lib/features/layout/vbox-layout.js.map +1 -0
  145. package/lib/features/model-source-watcher/di.config.d.ts +0 -15
  146. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  147. package/lib/features/model-source-watcher/di.config.js +4 -4
  148. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  149. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  150. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  151. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +7 -8
  152. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  153. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  154. package/lib/features/mouse-tool/mouse-tool.js +2 -1
  155. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  156. package/lib/features/navigation/di.config.d.ts +0 -15
  157. package/lib/features/navigation/di.config.d.ts.map +1 -1
  158. package/lib/features/navigation/di.config.js +7 -6
  159. package/lib/features/navigation/di.config.js.map +1 -1
  160. package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
  161. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  162. package/lib/features/navigation/navigation-action-handler.js +12 -67
  163. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  164. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  165. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  166. package/lib/features/navigation/navigation-target-resolver.js +6 -83
  167. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  168. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
  169. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  170. package/lib/features/navigation/navigation-target-resolver.spec.js +16 -16
  171. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  172. package/lib/features/save/di.config.js +2 -2
  173. package/lib/features/save/di.config.js.map +1 -1
  174. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +3 -9
  175. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  176. package/lib/features/save/{save.js → save-keylistener.js} +4 -15
  177. package/lib/features/save/save-keylistener.js.map +1 -0
  178. package/lib/features/select/selection-service.d.ts +17 -1
  179. package/lib/features/select/selection-service.d.ts.map +1 -1
  180. package/lib/features/select/selection-service.js +5 -5
  181. package/lib/features/select/selection-service.js.map +1 -1
  182. package/lib/features/select/selection-service.spec.js +0 -16
  183. package/lib/features/select/selection-service.spec.js.map +1 -1
  184. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -1
  185. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  186. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +1 -18
  187. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  188. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +17 -1
  189. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  190. package/lib/features/tool-feedback/creation-tool-feedback.js +0 -15
  191. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  192. package/lib/features/tool-feedback/css-feedback.d.ts +17 -1
  193. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  194. package/lib/features/tool-feedback/css-feedback.js +2 -2
  195. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  196. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +17 -1
  197. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  198. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +0 -15
  199. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  200. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +17 -1
  201. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  202. package/lib/features/tool-feedback/feedback-action-dispatcher.js +0 -15
  203. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  204. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
  205. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  206. package/lib/features/tool-feedback/marquee-tool-feedback.js +0 -15
  207. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  208. package/lib/features/tool-feedback/view.d.ts +17 -1
  209. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  210. package/lib/features/tool-feedback/view.js +0 -15
  211. package/lib/features/tool-feedback/view.js.map +1 -1
  212. package/lib/features/tool-palette/di.config.d.ts +1 -1
  213. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  214. package/lib/features/tool-palette/di.config.js +1 -1
  215. package/lib/features/tool-palette/di.config.js.map +1 -1
  216. package/lib/features/tool-palette/palette-item.d.ts +1 -2
  217. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  218. package/lib/features/tool-palette/palette-item.js +3 -4
  219. package/lib/features/tool-palette/palette-item.js.map +1 -1
  220. package/lib/features/tool-palette/tool-palette.d.ts +19 -3
  221. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  222. package/lib/features/tool-palette/tool-palette.js +38 -31
  223. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  224. package/lib/features/tools/base-glsp-tool.d.ts +18 -2
  225. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  226. package/lib/features/tools/base-glsp-tool.js +3 -18
  227. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  228. package/lib/features/tools/change-bounds-tool.d.ts +17 -1
  229. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  230. package/lib/features/tools/change-bounds-tool.js +7 -6
  231. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  232. package/lib/features/tools/delete-tool.d.ts +17 -1
  233. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  234. package/lib/features/tools/delete-tool.js +3 -3
  235. package/lib/features/tools/delete-tool.js.map +1 -1
  236. package/lib/features/tools/di.config.d.ts +0 -15
  237. package/lib/features/tools/di.config.d.ts.map +1 -1
  238. package/lib/features/tools/di.config.js +4 -4
  239. package/lib/features/tools/di.config.js.map +1 -1
  240. package/lib/features/tools/edge-creation-tool.d.ts +17 -2
  241. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  242. package/lib/features/tools/edge-creation-tool.js +4 -4
  243. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  244. package/lib/features/tools/edge-edit-tool.d.ts +17 -1
  245. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  246. package/lib/features/tools/edge-edit-tool.js +3 -3
  247. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  248. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  249. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  250. package/lib/features/tools/marquee-behavior.js +128 -0
  251. package/lib/features/tools/marquee-behavior.js.map +1 -0
  252. package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
  253. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  254. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  255. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  256. package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
  257. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  258. package/lib/features/tools/marquee-mouse-tool.js +33 -121
  259. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  260. package/lib/features/tools/marquee-tool.d.ts +17 -1
  261. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  262. package/lib/features/tools/marquee-tool.js +0 -15
  263. package/lib/features/tools/marquee-tool.js.map +1 -1
  264. package/lib/features/tools/node-creation-tool.d.ts +17 -2
  265. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  266. package/lib/features/tools/node-creation-tool.js +4 -4
  267. package/lib/features/tools/node-creation-tool.js.map +1 -1
  268. package/lib/features/validation/issue-marker.d.ts +2 -2
  269. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  270. package/lib/features/validation/issue-marker.js +5 -5
  271. package/lib/features/validation/issue-marker.js.map +1 -1
  272. package/lib/features/validation/marker-navigator.d.ts +17 -1
  273. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  274. package/lib/features/validation/marker-navigator.js +2 -1
  275. package/lib/features/validation/marker-navigator.js.map +1 -1
  276. package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
  277. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  278. package/lib/features/validation/marker-navigator.spec.js +9 -9
  279. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  280. package/lib/features/validation/validate.d.ts +18 -29
  281. package/lib/features/validation/validate.d.ts.map +1 -1
  282. package/lib/features/validation/validate.js +11 -49
  283. package/lib/features/validation/validate.js.map +1 -1
  284. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
  285. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  286. package/lib/features/viewport/glsp-scroll-mouse-listener.js +0 -15
  287. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  288. package/lib/index.d.ts +5 -12
  289. package/lib/index.d.ts.map +1 -1
  290. package/lib/index.js +5 -12
  291. package/lib/index.js.map +1 -1
  292. package/lib/model-source/glsp-diagram-server.d.ts +2 -4
  293. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  294. package/lib/model-source/glsp-diagram-server.js +20 -6
  295. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  296. package/lib/protocol-reexport.d.ts +45 -0
  297. package/lib/protocol-reexport.d.ts.map +1 -0
  298. package/lib/protocol-reexport.js +75 -0
  299. package/lib/protocol-reexport.js.map +1 -0
  300. package/lib/utils/argument-utils.d.ts.map +1 -1
  301. package/lib/utils/argument-utils.js +6 -6
  302. package/lib/utils/argument-utils.js.map +1 -1
  303. package/lib/utils/layout-utils.d.ts +2 -1
  304. package/lib/utils/layout-utils.d.ts.map +1 -1
  305. package/lib/utils/marker.d.ts +0 -38
  306. package/lib/utils/marker.d.ts.map +1 -1
  307. package/lib/utils/marker.js +6 -11
  308. package/lib/utils/marker.js.map +1 -1
  309. package/lib/utils/smodel-util.d.ts +1 -1
  310. package/lib/utils/smodel-util.d.ts.map +1 -1
  311. package/lib/utils/smodel-util.js +0 -15
  312. package/lib/utils/smodel-util.js.map +1 -1
  313. package/lib/utils/viewpoint-util.d.ts +2 -1
  314. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  315. package/lib/utils/viewpoint-util.js +0 -15
  316. package/lib/utils/viewpoint-util.js.map +1 -1
  317. package/lib/views/base-view-module.d.ts +0 -15
  318. package/lib/views/base-view-module.d.ts.map +1 -1
  319. package/lib/views/base-view-module.js +20 -20
  320. package/lib/views/base-view-module.js.map +1 -1
  321. package/lib/views/compartments.d.ts +6 -0
  322. package/lib/views/compartments.d.ts.map +1 -0
  323. package/lib/{base/actions/edit-mode-action.js → views/compartments.js} +18 -26
  324. package/lib/views/compartments.js.map +1 -0
  325. package/lib/views/glsp-edge-view.d.ts +17 -1
  326. package/lib/views/glsp-edge-view.d.ts.map +1 -1
  327. package/lib/views/glsp-edge-view.js +0 -15
  328. package/lib/views/glsp-edge-view.js.map +1 -1
  329. package/lib/views/index.d.ts +1 -1
  330. package/lib/views/index.d.ts.map +1 -1
  331. package/lib/views/index.js +1 -1
  332. package/lib/views/index.js.map +1 -1
  333. package/lib/views/issue-marker-view.d.ts +1 -0
  334. package/lib/views/issue-marker-view.d.ts.map +1 -1
  335. package/lib/views/issue-marker-view.js +17 -8
  336. package/lib/views/issue-marker-view.js.map +1 -1
  337. package/lib/views/rounded-corner.d.ts +2 -1
  338. package/lib/views/rounded-corner.d.ts.map +1 -1
  339. package/package.json +6 -4
  340. package/src/base/action-dispatcher.ts +2 -2
  341. package/src/base/actions/focus-change-action.ts +1 -1
  342. package/src/base/{args.ts → argumentable.ts} +1 -4
  343. package/src/base/auto-complete/auto-complete-actions.ts +1 -1
  344. package/src/base/auto-complete/auto-complete-widget.ts +3 -4
  345. package/src/base/auto-complete/validation-decorator.ts +7 -6
  346. package/src/base/command-stack.ts +1 -2
  347. package/src/base/container-modules.ts +20 -21
  348. package/src/base/di.config.ts +3 -3
  349. package/src/base/drag-aware-mouse-listener.ts +2 -1
  350. package/src/base/{editor-context.ts → editor-context-service.ts} +2 -27
  351. package/src/base/focus-tracker.ts +2 -2
  352. package/src/base/model/update-model-command.ts +3 -9
  353. package/src/base/model-initialization-constraint.ts +3 -2
  354. package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
  355. package/src/base/types.ts +4 -2
  356. package/src/features/change-bounds/model.ts +0 -1
  357. package/src/features/change-bounds/movement-restrictor.ts +2 -2
  358. package/src/features/change-bounds/snap.ts +3 -2
  359. package/src/features/command-palette/server-command-palette-provider.ts +3 -4
  360. package/src/features/context-menu/delete-element-context-menu.ts +3 -4
  361. package/src/features/context-menu/server-context-menu-provider.ts +3 -4
  362. package/src/features/copy-paste/copy-paste-context-menu.ts +2 -13
  363. package/src/features/copy-paste/copy-paste-handler.ts +3 -4
  364. package/src/features/copy-paste/di.config.ts +2 -3
  365. package/src/features/decoration/decoration-placer.ts +2 -1
  366. package/src/features/edit-label/edit-label-validator.ts +1 -1
  367. package/src/features/hints/di.config.ts +2 -3
  368. package/src/features/hints/model.ts +2 -1
  369. package/src/features/hints/type-hints.ts +1 -64
  370. package/src/features/hover/di.config.ts +1 -2
  371. package/src/features/hover/hover.ts +1 -5
  372. package/src/features/layout/di.config.ts +31 -5
  373. package/src/features/layout/freeform-layout.ts +133 -0
  374. package/src/features/layout/layout-commands.spec.ts +3 -8
  375. package/src/features/layout/layout-commands.ts +1 -3
  376. package/src/features/layout/vbox-layout.ts +256 -0
  377. package/src/features/model-source-watcher/di.config.ts +3 -4
  378. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +8 -4
  379. package/src/features/mouse-tool/mouse-tool.ts +2 -1
  380. package/src/features/navigation/di.config.ts +4 -10
  381. package/src/features/navigation/navigation-action-handler.ts +16 -62
  382. package/src/features/navigation/navigation-target-resolver.spec.ts +2 -4
  383. package/src/features/navigation/navigation-target-resolver.ts +8 -88
  384. package/src/features/save/di.config.ts +1 -1
  385. package/src/features/save/{save.ts → save-keylistener.ts} +2 -10
  386. package/src/features/select/selection-service.spec.ts +2 -2
  387. package/src/features/select/selection-service.ts +1 -5
  388. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +2 -5
  389. package/src/features/tool-feedback/creation-tool-feedback.ts +1 -3
  390. package/src/features/tool-feedback/css-feedback.ts +2 -2
  391. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +1 -3
  392. package/src/features/tool-feedback/feedback-action-dispatcher.ts +2 -1
  393. package/src/features/tool-feedback/marquee-tool-feedback.ts +1 -3
  394. package/src/features/tool-feedback/view.tsx +2 -2
  395. package/src/features/tool-palette/di.config.ts +1 -3
  396. package/src/features/tool-palette/palette-item.ts +1 -3
  397. package/src/features/tool-palette/tool-palette.ts +32 -26
  398. package/src/features/tools/base-glsp-tool.ts +4 -4
  399. package/src/features/tools/change-bounds-tool.ts +11 -10
  400. package/src/features/tools/delete-tool.ts +1 -3
  401. package/src/features/tools/di.config.ts +2 -3
  402. package/src/features/tools/edge-creation-tool.ts +1 -3
  403. package/src/features/tools/edge-edit-tool.ts +1 -2
  404. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  405. package/src/features/tools/marquee-behavior.ts +158 -0
  406. package/src/features/tools/marquee-mouse-tool.ts +35 -146
  407. package/src/features/tools/marquee-tool.ts +2 -2
  408. package/src/features/tools/node-creation-tool.ts +1 -3
  409. package/src/features/validation/issue-marker.ts +2 -3
  410. package/src/features/validation/marker-navigator.spec.ts +3 -5
  411. package/src/features/validation/marker-navigator.ts +1 -4
  412. package/src/features/validation/validate.ts +4 -33
  413. package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -3
  414. package/src/index.ts +5 -12
  415. package/src/model-source/glsp-diagram-server.ts +10 -14
  416. package/src/protocol-reexport.ts +64 -0
  417. package/src/utils/argument-utils.ts +1 -2
  418. package/src/utils/layout-utils.ts +2 -2
  419. package/src/utils/marker.ts +2 -26
  420. package/src/utils/smodel-util.ts +1 -1
  421. package/src/utils/viewpoint-util.ts +1 -2
  422. package/src/views/base-view-module.ts +1 -2
  423. package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -13
  424. package/src/views/glsp-edge-view.tsx +2 -2
  425. package/src/views/index.ts +1 -1
  426. package/src/views/issue-marker-view.tsx +18 -8
  427. package/src/views/rounded-corner.ts +2 -2
  428. package/lib/base/actions/context-actions.d.ts +0 -36
  429. package/lib/base/actions/context-actions.d.ts.map +0 -1
  430. package/lib/base/actions/context-actions.js +0 -44
  431. package/lib/base/actions/context-actions.js.map +0 -1
  432. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  433. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  434. package/lib/base/actions/edit-mode-action.js.map +0 -1
  435. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  436. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  437. package/lib/base/actions/edit-validation-actions.js +0 -80
  438. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  439. package/lib/base/args.d.ts.map +0 -1
  440. package/lib/base/args.js.map +0 -1
  441. package/lib/base/editor-context.d.ts.map +0 -1
  442. package/lib/base/editor-context.js.map +0 -1
  443. package/lib/base/operations/operation.d.ts +0 -135
  444. package/lib/base/operations/operation.d.ts.map +0 -1
  445. package/lib/base/operations/operation.js +0 -191
  446. package/lib/base/operations/operation.js.map +0 -1
  447. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  448. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  449. package/lib/features/copy-paste/copy-paste-actions.js +0 -58
  450. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  451. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  452. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  453. package/lib/features/hints/request-type-hints-action.js +0 -28
  454. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  455. package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
  456. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  457. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -16
  458. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  459. package/lib/features/save/save.d.ts.map +0 -1
  460. package/lib/features/save/save.js.map +0 -1
  461. package/lib/features/undo-redo/model.d.ts +0 -27
  462. package/lib/features/undo-redo/model.d.ts.map +0 -1
  463. package/lib/features/undo-redo/model.js +0 -18
  464. package/lib/features/undo-redo/model.js.map +0 -1
  465. package/lib/model-source/glsp-server-status.d.ts +0 -30
  466. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  467. package/lib/model-source/glsp-server-status.js +0 -44
  468. package/lib/model-source/glsp-server-status.js.map +0 -1
  469. package/lib/utils/array-utils.d.ts +0 -28
  470. package/lib/utils/array-utils.d.ts.map +0 -1
  471. package/lib/utils/array-utils.js +0 -56
  472. package/lib/utils/array-utils.js.map +0 -1
  473. package/lib/views/default-types.d.ts +0 -37
  474. package/lib/views/default-types.d.ts.map +0 -1
  475. package/lib/views/default-types.js +0 -47
  476. package/lib/views/default-types.js.map +0 -1
  477. package/src/base/actions/context-actions.ts +0 -43
  478. package/src/base/actions/edit-validation-actions.ts +0 -115
  479. package/src/base/operations/operation.ts +0 -204
  480. package/src/features/copy-paste/copy-paste-actions.ts +0 -63
  481. package/src/features/hints/request-type-hints-action.ts +0 -41
  482. package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
  483. package/src/model-source/glsp-server-status.ts +0 -38
  484. package/src/utils/array-utils.ts +0 -57
  485. package/src/views/default-types.ts +0 -48
@@ -0,0 +1,256 @@
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
+ import { injectable } from 'inversify';
17
+ import {
18
+ Bounds,
19
+ BoundsData,
20
+ Dimension,
21
+ EMPTY_BOUNDS,
22
+ isBoundsAware,
23
+ isLayoutableChild,
24
+ isValidDimension,
25
+ LayoutContainer,
26
+ Point,
27
+ SChildElement,
28
+ SModelElement,
29
+ SParentElement,
30
+ StatefulLayouter,
31
+ VBoxLayouter,
32
+ VBoxLayoutOptions
33
+ } from 'sprotty';
34
+
35
+ export interface VBoxLayoutOptionsExt extends VBoxLayoutOptions {
36
+ hGrab: boolean;
37
+ vGrab: boolean;
38
+ prefWidth: number | null;
39
+ prefHeight: number | null;
40
+ }
41
+
42
+ /**
43
+ * Extends VBoxLayouter to support additional layout options
44
+ */
45
+ @injectable()
46
+ export class VBoxLayouterExt extends VBoxLayouter {
47
+ static KIND = VBoxLayouter.KIND;
48
+
49
+ layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
50
+ const boundsData = layouter.getBoundsData(container);
51
+ const options = this.getLayoutOptions(container);
52
+ const childrenSize = this.getChildrenSize(container, options, layouter);
53
+
54
+ const fixedSize = this.getFixedContainerBounds(container, options, layouter);
55
+
56
+ const maxWidth =
57
+ options.paddingFactor *
58
+ (options.resizeContainer
59
+ ? Math.max(fixedSize.width - options.paddingLeft - options.paddingRight, childrenSize.width)
60
+ : Math.max(0, fixedSize.width - options.paddingLeft - options.paddingRight));
61
+ const maxHeight =
62
+ options.paddingFactor *
63
+ (options.resizeContainer
64
+ ? Math.max(fixedSize.height - options.paddingTop - options.paddingBottom, childrenSize.height)
65
+ : Math.max(0, fixedSize.height - options.paddingTop - options.paddingBottom));
66
+
67
+ // Remaining size that can be grabbed by children with the vGrab option
68
+ const grabHeight: number = maxHeight - childrenSize.height;
69
+ // Number of children that request vGrab
70
+ // FIXME: This approach works fine when only 1 child uses VGrab, but may cause rounding issues
71
+ // when the grabHeight can't be equally shared by all children.
72
+ const grabbingChildren = container.children
73
+ .map(child => this.getChildLayoutOptions(child, options))
74
+ .filter(opt => opt.vGrab).length;
75
+
76
+ if (maxWidth > 0 && maxHeight > 0) {
77
+ const offset = this.layoutChildren(container, layouter, options, maxWidth, maxHeight, grabHeight, grabbingChildren);
78
+ boundsData.bounds = this.getFinalContainerBounds(container, offset, options, childrenSize.width, childrenSize.height);
79
+ boundsData.boundsChanged = true;
80
+ }
81
+ }
82
+
83
+ protected getChildrenSize(
84
+ container: SParentElement & LayoutContainer,
85
+ containerOptions: VBoxLayoutOptionsExt,
86
+ layouter: StatefulLayouter
87
+ ): Dimension {
88
+ let maxWidth = -1;
89
+ let maxHeight = 0;
90
+ let isFirst = true;
91
+ container.children.forEach(child => {
92
+ if (isLayoutableChild(child)) {
93
+ const bounds = layouter.getBoundsData(child).bounds;
94
+ if (bounds !== undefined && isValidDimension(bounds)) {
95
+ maxHeight += bounds.height;
96
+ if (isFirst) {
97
+ isFirst = false;
98
+ } else {
99
+ maxHeight += containerOptions.vGap;
100
+ }
101
+ maxWidth = Math.max(maxWidth, bounds.width);
102
+ }
103
+ }
104
+ });
105
+ const result = {
106
+ width: maxWidth,
107
+ height: maxHeight
108
+ };
109
+ return result;
110
+ }
111
+
112
+ protected layoutChildren(
113
+ container: SParentElement & LayoutContainer,
114
+ layouter: StatefulLayouter,
115
+ containerOptions: VBoxLayoutOptionsExt,
116
+ maxWidth: number,
117
+ maxHeight: number,
118
+ grabHeight?: number,
119
+ grabbingChildren?: number
120
+ ): Point {
121
+ let currentOffset: Point = {
122
+ x: containerOptions.paddingLeft + 0.5 * (maxWidth - maxWidth / containerOptions.paddingFactor),
123
+ y: containerOptions.paddingTop + 0.5 * (maxHeight - maxHeight / containerOptions.paddingFactor)
124
+ };
125
+
126
+ container.children.forEach(child => {
127
+ if (isLayoutableChild(child)) {
128
+ const boundsData = layouter.getBoundsData(child);
129
+ const bounds = boundsData.bounds;
130
+ const childOptions = this.getChildLayoutOptions(child, containerOptions);
131
+ if (bounds !== undefined && isValidDimension(bounds)) {
132
+ currentOffset = this.layoutChild(
133
+ child,
134
+ boundsData,
135
+ bounds,
136
+ childOptions,
137
+ containerOptions,
138
+ currentOffset,
139
+ maxWidth,
140
+ maxHeight,
141
+ grabHeight,
142
+ grabbingChildren
143
+ );
144
+ }
145
+ }
146
+ });
147
+ return currentOffset;
148
+ }
149
+
150
+ protected layoutChild(
151
+ child: SChildElement,
152
+ boundsData: BoundsData,
153
+ bounds: Bounds,
154
+ childOptions: VBoxLayoutOptionsExt,
155
+ containerOptions: VBoxLayoutOptionsExt,
156
+ currentOffset: Point,
157
+ maxWidth: number,
158
+ maxHeight: number,
159
+ grabHeight?: number,
160
+ grabbingChildren?: number
161
+ ): Point {
162
+ let offset = super.layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight);
163
+ if (childOptions.hGrab) {
164
+ boundsData.bounds = {
165
+ x: boundsData.bounds!.x,
166
+ y: boundsData.bounds!.y,
167
+ width: maxWidth,
168
+ height: boundsData.bounds!.height
169
+ };
170
+ boundsData.boundsChanged = true;
171
+ }
172
+ if (childOptions.vGrab && grabHeight && grabbingChildren) {
173
+ const height = boundsData.bounds!.height + grabHeight / grabbingChildren;
174
+ boundsData.bounds = {
175
+ x: boundsData.bounds!.x,
176
+ y: boundsData.bounds!.y,
177
+ width: boundsData.bounds!.width,
178
+ height: height
179
+ };
180
+ boundsData.boundsChanged = true;
181
+ offset = { x: currentOffset.x, y: currentOffset.y + height };
182
+ }
183
+ return offset;
184
+ }
185
+
186
+ protected getFixedContainerBounds(container: SModelElement, layoutOptions: VBoxLayoutOptionsExt, layouter: StatefulLayouter): Bounds {
187
+ const currentContainer = container;
188
+ // eslint-disable-next-line no-constant-condition
189
+ if (isBoundsAware(currentContainer)) {
190
+ const bounds = currentContainer.bounds;
191
+ const elementOptions = this.getElementLayoutOptions(currentContainer);
192
+ const width = elementOptions?.prefWidth ?? 0;
193
+ const height = elementOptions?.prefHeight ?? 0;
194
+ return { ...bounds, width, height };
195
+ }
196
+ return EMPTY_BOUNDS;
197
+ }
198
+
199
+ protected getChildLayoutOptions(child: SChildElement, containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
200
+ return super.getChildLayoutOptions(child, containerOptions) as VBoxLayoutOptionsExt;
201
+ }
202
+
203
+ protected getLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt {
204
+ return super.getLayoutOptions(element) as VBoxLayoutOptionsExt;
205
+ }
206
+
207
+ protected getElementLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt | undefined {
208
+ return (element as any).layoutOptions;
209
+ }
210
+
211
+ protected getFinalContainerBounds(
212
+ container: SParentElement & LayoutContainer,
213
+ lastOffset: Point,
214
+ options: VBoxLayoutOptionsExt,
215
+ maxWidth: number,
216
+ maxHeight: number
217
+ ): Bounds {
218
+ const elementOptions = this.getElementLayoutOptions(container);
219
+ const width = elementOptions?.prefWidth ?? options.minWidth;
220
+ const height = elementOptions?.prefHeight ?? options.minHeight;
221
+
222
+ const result = {
223
+ x: container.bounds.x,
224
+ y: container.bounds.y,
225
+ width: Math.max(width, maxWidth + options.paddingLeft + options.paddingRight),
226
+ height: Math.max(height, maxHeight + options.paddingTop + options.paddingBottom)
227
+ };
228
+
229
+ return result;
230
+ }
231
+
232
+ protected getDefaultLayoutOptions(): VBoxLayoutOptionsExt {
233
+ return {
234
+ resizeContainer: true,
235
+ paddingTop: 5,
236
+ paddingBottom: 5,
237
+ paddingLeft: 5,
238
+ paddingRight: 5,
239
+ paddingFactor: 1,
240
+ vGap: 1,
241
+ hAlign: 'center',
242
+ minWidth: 0,
243
+ minHeight: 0,
244
+ hGrab: false,
245
+ vGrab: false,
246
+ // eslint-disable-next-line no-null/no-null
247
+ prefHeight: null,
248
+ // eslint-disable-next-line no-null/no-null
249
+ prefWidth: null
250
+ };
251
+ }
252
+
253
+ protected spread(a: VBoxLayoutOptionsExt, b: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
254
+ return { ...a, ...b };
255
+ }
256
+ }
@@ -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,10 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { ModelSourceChangedAction } from '@eclipse-glsp/protocol';
16
17
  import { ContainerModule } from 'inversify';
17
- import { configureActionHandler } from 'sprotty/lib';
18
-
19
- import { ModelSourceChangedAction } from './model-source-changed-action';
18
+ import { configureActionHandler } from 'sprotty';
20
19
  import { ModelSourceChangedActionHandler } from './model-source-changed-action-handler';
21
20
 
22
21
  const modelSourceWatcherModule = new ContainerModule((bind, _unbind, isBound) => {
@@ -13,11 +13,15 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import {
17
+ Action,
18
+ GLSPServerStatusAction,
19
+ isModelSourceChangedAction,
20
+ ModelSourceChangedAction,
21
+ ServerMessageAction
22
+ } from '@eclipse-glsp/protocol';
16
23
  import { inject, injectable, optional } from 'inversify';
17
- import { Action, IActionDispatcher, IActionHandler, TYPES, ViewerOptions } from 'sprotty/lib';
18
-
19
- import { GLSPServerStatusAction, ServerMessageAction } from '../../model-source/glsp-server-status';
20
- import { isModelSourceChangedAction, ModelSourceChangedAction } from './model-source-changed-action';
24
+ import { IActionDispatcher, IActionHandler, TYPES, ViewerOptions } from 'sprotty';
21
25
 
22
26
  /**
23
27
  * An external handler of the model source change event.
@@ -13,9 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, isAction } from '@eclipse-glsp/protocol';
16
17
  import { injectable, multiInject, optional } from 'inversify';
17
18
  import { On, VNode, VNodeData } from 'snabbdom';
18
- import { Action, isAction, MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from 'sprotty';
19
+ import { MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from 'sprotty';
19
20
  import { getRank } from '../rank/model';
20
21
 
21
22
  export interface IMouseTool {
@@ -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,16 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { NavigateToExternalTargetAction, NavigateToTargetAction } from '@eclipse-glsp/protocol';
16
17
  import { ContainerModule } from 'inversify';
17
- import { configureActionHandler } from 'sprotty/lib';
18
-
19
- import {
20
- NavigateAction,
21
- NavigateToExternalTargetAction,
22
- NavigateToTargetAction,
23
- NavigationActionHandler,
24
- ProcessNavigationArgumentsAction
25
- } from './navigation-action-handler';
18
+ import { configureActionHandler } from 'sprotty';
19
+ import { NavigateAction, NavigationActionHandler, ProcessNavigationArgumentsAction } from './navigation-action-handler';
26
20
  import { NavigationTargetResolver } from './navigation-target-resolver';
27
21
 
28
22
  export const navigationModule = new ContainerModule((bind, _unbind, isBound) => {
@@ -13,28 +13,29 @@
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
16
  import {
18
17
  Action,
19
- ActionHandlerRegistry,
18
+ Args,
20
19
  CenterAction,
21
- generateRequestId,
22
- IActionDispatcher,
23
- IActionHandler,
24
- ICommand,
25
- ILogger,
26
- RequestAction,
27
- ResponseAction,
20
+ GLSPServerStatusAction,
21
+ isNavigateToExternalTargetAction,
22
+ isNavigateToTargetAction,
23
+ isSetNavigationTargetsAction,
24
+ NavigateToExternalTargetAction,
25
+ NavigateToTargetAction,
26
+ NavigationTarget,
27
+ RequestNavigationTargetsAction,
28
28
  SelectAction,
29
29
  SelectAllAction,
30
- TYPES
31
- } from 'sprotty';
30
+ ServerMessageAction,
31
+ SetResolvedNavigationTargetAction
32
+ } from '@eclipse-glsp/protocol';
33
+ import { inject, injectable } from 'inversify';
34
+ import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger, TYPES } from 'sprotty';
32
35
 
33
- import { Args } from '../../base/args';
34
- import { EditorContext, EditorContextServiceProvider } from '../../base/editor-context';
36
+ import { EditorContextServiceProvider } from '../../base/editor-context-service';
35
37
  import { GLSP_TYPES } from '../../base/types';
36
- import { GLSPServerStatusAction, ServerMessageAction } from '../../model-source/glsp-server-status';
37
- import { NavigationTarget, NavigationTargetResolver, SetResolvedNavigationTargetAction } from './navigation-target-resolver';
38
+ import { NavigationTargetResolver } from './navigation-target-resolver';
38
39
 
39
40
  /**
40
41
  * Action for triggering a navigation of a certain target type.
@@ -57,53 +58,6 @@ export function isNavigateAction(action: Action): action is NavigateAction {
57
58
  return action !== undefined && action.kind === NavigateAction.KIND && (action as NavigateAction).targetTypeId !== undefined;
58
59
  }
59
60
 
60
- /** Action that is usually sent to the server to request navigation targets for a navigation type. */
61
- export class RequestNavigationTargetsAction implements RequestAction<SetNavigationTargetsAction> {
62
- static readonly KIND = 'requestNavigationTargets';
63
- kind = RequestNavigationTargetsAction.KIND;
64
- constructor(readonly targetTypeId: string, readonly editorContext: EditorContext, readonly requestId: string = generateRequestId()) {}
65
- }
66
-
67
- /** Action that is usually sent from the server to the client as a repsonse to a `RequestNavigationTargetsAction`. */
68
- export class SetNavigationTargetsAction implements ResponseAction {
69
- static readonly KIND = 'setNavigationTargets';
70
- kind = SetNavigationTargetsAction.KIND;
71
- constructor(readonly targets: NavigationTarget[], readonly responseId: string = '', readonly args?: Args) {}
72
- }
73
-
74
- export function isSetNavigationTargetsAction(action: Action): action is SetNavigationTargetsAction {
75
- return (
76
- action !== undefined &&
77
- action.kind === SetNavigationTargetsAction.KIND &&
78
- (action as SetNavigationTargetsAction).targets !== undefined
79
- );
80
- }
81
-
82
- /** Action that triggers the navigation to a particular navigation target, such as element IDs, queries, etc.. */
83
- export class NavigateToTargetAction implements Action {
84
- static readonly KIND = 'navigateToTarget';
85
- readonly kind = NavigateToTargetAction.KIND;
86
- constructor(readonly target: NavigationTarget) {}
87
- }
88
-
89
- export function isNavigateToTargetAction(action: Action): action is NavigateToTargetAction {
90
- return action !== undefined && action.kind === NavigateToTargetAction.KIND && (action as NavigateToTargetAction).target !== undefined;
91
- }
92
-
93
- export class NavigateToExternalTargetAction implements Action {
94
- static readonly KIND = 'navigateToExternalTarget';
95
- readonly kind = NavigateToExternalTargetAction.KIND;
96
- constructor(readonly target: NavigationTarget) {}
97
- }
98
-
99
- export function isNavigateToExternalTargetAction(action: Action): action is NavigateToExternalTargetAction {
100
- return (
101
- action !== undefined &&
102
- action.kind === NavigateToExternalTargetAction.KIND &&
103
- (action as NavigateToExternalTargetAction).target !== undefined
104
- );
105
- }
106
-
107
61
  /** Action to trigger the processing of additional navigation arguments.
108
62
  *
109
63
  * The resolution of a `NavigationTarget` may entail additional arguments. In this case, this action is
@@ -14,13 +14,11 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  /* eslint-disable no-unused-expressions */
17
+ import { NavigationTarget } from '@eclipse-glsp/protocol';
18
+ import { expect } from 'chai';
17
19
  import 'mocha';
18
20
  import 'reflect-metadata';
19
21
 
20
- import { expect } from 'chai';
21
-
22
- import { NavigationTarget } from './navigation-target-resolver';
23
-
24
22
  describe('NavigationTarget', () => {
25
23
  it('should be able to set and get element IDs', () => {
26
24
  const navigationTarget: NavigationTarget = { uri: 'uri' };
@@ -13,97 +13,17 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import {
17
+ isSetResolvedNavigationTargets,
18
+ NavigationTarget,
19
+ ResolveNavigationTargetAction,
20
+ SetResolvedNavigationTargetAction
21
+ } from '@eclipse-glsp/protocol';
16
22
  import { inject, injectable } from 'inversify';
17
- import { Action, generateRequestId, IActionDispatcher, ILogger, RequestAction, ResponseAction, TYPES } from 'sprotty';
18
-
19
- import { Args } from '../../base/args';
20
- import { EditorContextServiceProvider } from '../../base/editor-context';
23
+ import { IActionDispatcher, ILogger, ResponseAction, TYPES } from 'sprotty';
24
+ import { EditorContextServiceProvider } from '../../base/editor-context-service';
21
25
  import { GLSP_TYPES } from '../../base/types';
22
26
 
23
- export interface NavigationTarget {
24
- uri: string;
25
- label?: string;
26
- args?: Args;
27
- }
28
-
29
- export namespace NavigationTarget {
30
- export const ELEMENT_IDS = 'elementIds';
31
- export const ELEMENT_IDS_SEPARATOR = '&';
32
- export const TEXT_LINE = 'line';
33
- export const TEXT_COLUMN = 'column';
34
-
35
- export function hasArguments(target: NavigationTarget): boolean {
36
- return target.args !== undefined && Object.keys(target.args).length > 0;
37
- }
38
-
39
- export function addArgument(target: NavigationTarget, key: string, value: string | number | boolean): void {
40
- if (target.args === undefined) {
41
- target.args = {};
42
- }
43
- target.args[key] = value;
44
- }
45
-
46
- export function getElementIds(target: NavigationTarget): string[] {
47
- if (target.args === undefined || target.args[NavigationTarget.ELEMENT_IDS] === undefined) {
48
- return [];
49
- }
50
- const elementIdsValue = target.args[NavigationTarget.ELEMENT_IDS].toString();
51
- return elementIdsValue.split(NavigationTarget.ELEMENT_IDS_SEPARATOR);
52
- }
53
-
54
- export function setElementIds(target: NavigationTarget, elementIds: string[]): string {
55
- if (target.args === undefined) {
56
- target.args = {};
57
- }
58
- return (target.args[NavigationTarget.ELEMENT_IDS] = elementIds.join(NavigationTarget.ELEMENT_IDS_SEPARATOR));
59
- }
60
-
61
- export function setTextPosition(target: NavigationTarget, position: TextPosition | undefined): void {
62
- if (position) {
63
- if (target.args === undefined) {
64
- target.args = {};
65
- }
66
- target.args[NavigationTarget.TEXT_LINE] = position.line;
67
- target.args[NavigationTarget.TEXT_COLUMN] = position.character;
68
- }
69
- }
70
-
71
- export function getTextPosition(target: NavigationTarget): TextPosition | undefined {
72
- if (
73
- target.args === undefined ||
74
- target.args[NavigationTarget.TEXT_LINE] === undefined ||
75
- target.args[NavigationTarget.TEXT_COLUMN] === undefined
76
- ) {
77
- return undefined;
78
- }
79
- return {
80
- line: Number(target.args[NavigationTarget.TEXT_LINE]),
81
- character: Number(target.args[NavigationTarget.TEXT_COLUMN])
82
- };
83
- }
84
- }
85
-
86
- export interface TextPosition {
87
- line: number;
88
- character: number;
89
- }
90
-
91
- export class ResolveNavigationTargetAction implements RequestAction<SetResolvedNavigationTargetAction> {
92
- static readonly KIND = 'resolveNavigationTarget';
93
- kind = ResolveNavigationTargetAction.KIND;
94
- constructor(readonly navigationTarget: NavigationTarget, public readonly requestId: string = generateRequestId()) {}
95
- }
96
-
97
- export class SetResolvedNavigationTargetAction implements ResponseAction {
98
- static readonly KIND = 'setResolvedNavigationTarget';
99
- kind = SetResolvedNavigationTargetAction.KIND;
100
- constructor(readonly elementIds: string[] = [], readonly args?: Args, readonly responseId: string = '') {}
101
- }
102
-
103
- export function isSetResolvedNavigationTargets(action: Action): action is SetResolvedNavigationTargetAction {
104
- return action !== undefined && action.kind === SetResolvedNavigationTargetAction.KIND;
105
- }
106
-
107
27
  /**
108
28
  * Resolves `NavigationTargets` to element ids.
109
29
  *
@@ -16,7 +16,7 @@
16
16
  import { ContainerModule } from 'inversify';
17
17
  import { TYPES } from 'sprotty';
18
18
 
19
- import { SaveModelKeyboardListener } from './save';
19
+ import { SaveModelKeyboardListener } from './save-keylistener';
20
20
 
21
21
  /**
22
22
  * This module is not required the diagram is deployed in Theia with the `GLSPDiagramWidget`
@@ -13,18 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, KeyListener, SModelRoot } from 'sprotty';
16
+ import { Action, SaveModelAction } from '@eclipse-glsp/protocol';
17
+ import { KeyListener, SModelRoot } from 'sprotty';
17
18
  import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
18
19
 
19
- export class SaveModelAction implements Action {
20
- static readonly KIND = 'saveModel';
21
- constructor(public readonly fileUri?: string, public readonly kind: string = SaveModelAction.KIND) {}
22
- }
23
-
24
- export function isSaveModelAction(action: Action): action is SaveModelAction {
25
- return action.kind === SaveModelAction.KIND;
26
- }
27
-
28
20
  export class SaveModelKeyboardListener extends KeyListener {
29
21
  keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
30
22
  if (matchesKeystroke(event, 'KeyS', 'ctrlCmd')) {
@@ -14,10 +14,10 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  /* eslint-disable import/no-deprecated,no-unused-expressions */
17
+ import { Action } from '@eclipse-glsp/protocol';
17
18
  import { AssertionError, expect } from 'chai';
18
19
  import { Container, injectable } from 'inversify';
19
- import { Action, defaultModule, SGraphFactory, SModelElementSchema, SModelRoot, TYPES } from 'sprotty';
20
-
20
+ import { defaultModule, SGraphFactory, SModelElementSchema, SModelRoot, TYPES } from 'sprotty';
21
21
  import { GLSP_TYPES } from '../../base/types';
22
22
  import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
23
23
  import { SelectFeedbackAction } from './select-feedback-action';
@@ -13,17 +13,15 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, distinctAdd, remove, SelectAction, SelectAllAction } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable, multiInject, optional } from 'inversify';
17
18
  import {
18
- Action,
19
19
  Command,
20
20
  CommandExecutionContext,
21
21
  ILogger,
22
22
  isSelectable,
23
23
  isSelected,
24
24
  SChildElement,
25
- SelectAction,
26
- SelectAllAction,
27
25
  SelectAllCommand as SprottySelectAllCommand,
28
26
  SelectCommand as SprottySelectCommand,
29
27
  SModelElement,
@@ -31,10 +29,8 @@ import {
31
29
  SParentElement,
32
30
  TYPES
33
31
  } from 'sprotty';
34
-
35
32
  import { SModelRootListener } from '../../base/model/update-model-command';
36
33
  import { GLSP_TYPES } from '../../base/types';
37
- import { distinctAdd, remove } from '../../utils/array-utils';
38
34
  import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
39
35
  import { SelectFeedbackAction } from './select-feedback-action';
40
36
 
@@ -13,10 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Action, Point } from '@eclipse-glsp/protocol';
16
17
  import { inject, injectable } from 'inversify';
17
18
  import { VNode } from 'snabbdom';
18
19
  import {
19
- Action,
20
20
  CommandExecutionContext,
21
21
  CommandReturn,
22
22
  ElementMove,
@@ -26,7 +26,6 @@ import {
26
26
  isViewport,
27
27
  MouseListener,
28
28
  MoveAction,
29
- Point,
30
29
  SChildElement,
31
30
  SModelElement,
32
31
  SModelRoot,
@@ -128,9 +127,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
128
127
  }
129
128
 
130
129
  protected collectStartPositions(root: SModelRoot): void {
131
- const selectedElements = root.index
132
- .all()
133
- .filter(element => isSelectable(element) && element.selected);
130
+ const selectedElements = root.index.all().filter(element => isSelectable(element) && element.selected);
134
131
  const elementsSet = new Set(selectedElements);
135
132
  selectedElements
136
133
  .filter(element => !this.isChildOfSelected(elementsSet, element))