@eclipse-glsp/server 1.1.0-next.3d7585d.42

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 (593) hide show
  1. package/LICENSE +642 -0
  2. package/README.md +8 -0
  3. package/browser.d.ts +16 -0
  4. package/browser.js +18 -0
  5. package/lib/browser/di/app-module.d.ts +24 -0
  6. package/lib/browser/di/app-module.d.ts.map +1 -0
  7. package/lib/browser/di/app-module.js +55 -0
  8. package/lib/browser/di/app-module.js.map +1 -0
  9. package/lib/browser/di/console-logger.d.ts +29 -0
  10. package/lib/browser/di/console-logger.d.ts.map +1 -0
  11. package/lib/browser/di/console-logger.js +81 -0
  12. package/lib/browser/di/console-logger.js.map +1 -0
  13. package/lib/browser/index.d.ts +20 -0
  14. package/lib/browser/index.d.ts.map +1 -0
  15. package/lib/browser/index.js +36 -0
  16. package/lib/browser/index.js.map +1 -0
  17. package/lib/browser/launch/worker-server-launcher.d.ts +26 -0
  18. package/lib/browser/launch/worker-server-launcher.d.ts.map +1 -0
  19. package/lib/browser/launch/worker-server-launcher.js +65 -0
  20. package/lib/browser/launch/worker-server-launcher.js.map +1 -0
  21. package/lib/common/actions/action-dispatcher.d.ts +74 -0
  22. package/lib/common/actions/action-dispatcher.d.ts.map +1 -0
  23. package/lib/common/actions/action-dispatcher.js +128 -0
  24. package/lib/common/actions/action-dispatcher.js.map +1 -0
  25. package/lib/common/actions/action-dispatcher.spec.d.ts +2 -0
  26. package/lib/common/actions/action-dispatcher.spec.d.ts.map +1 -0
  27. package/lib/common/actions/action-dispatcher.spec.js +264 -0
  28. package/lib/common/actions/action-dispatcher.spec.js.map +1 -0
  29. package/lib/common/actions/action-handler-registry.d.ts +40 -0
  30. package/lib/common/actions/action-handler-registry.d.ts.map +1 -0
  31. package/lib/common/actions/action-handler-registry.js +65 -0
  32. package/lib/common/actions/action-handler-registry.js.map +1 -0
  33. package/lib/common/actions/action-handler-registry.spec.d.ts +2 -0
  34. package/lib/common/actions/action-handler-registry.spec.d.ts.map +1 -0
  35. package/lib/common/actions/action-handler-registry.spec.js +50 -0
  36. package/lib/common/actions/action-handler-registry.spec.js.map +1 -0
  37. package/lib/common/actions/action-handler.d.ts +55 -0
  38. package/lib/common/actions/action-handler.d.ts.map +1 -0
  39. package/lib/common/actions/action-handler.js +7 -0
  40. package/lib/common/actions/action-handler.js.map +1 -0
  41. package/lib/common/actions/client-action-handler.d.ts +30 -0
  42. package/lib/common/actions/client-action-handler.d.ts.map +1 -0
  43. package/lib/common/actions/client-action-handler.js +56 -0
  44. package/lib/common/actions/client-action-handler.js.map +1 -0
  45. package/lib/common/actions/global-action-provider.d.ts +30 -0
  46. package/lib/common/actions/global-action-provider.d.ts.map +1 -0
  47. package/lib/common/actions/global-action-provider.js +81 -0
  48. package/lib/common/actions/global-action-provider.js.map +1 -0
  49. package/lib/common/actions/global-action-provider.spec.d.ts +2 -0
  50. package/lib/common/actions/global-action-provider.spec.d.ts.map +1 -0
  51. package/lib/common/actions/global-action-provider.spec.js +70 -0
  52. package/lib/common/actions/global-action-provider.spec.js.map +1 -0
  53. package/lib/common/command/command-stack.d.ts +37 -0
  54. package/lib/common/command/command-stack.d.ts.map +1 -0
  55. package/lib/common/command/command-stack.js +48 -0
  56. package/lib/common/command/command-stack.js.map +1 -0
  57. package/lib/common/command/command.d.ts +37 -0
  58. package/lib/common/command/command.d.ts.map +1 -0
  59. package/lib/common/command/command.js +18 -0
  60. package/lib/common/command/command.js.map +1 -0
  61. package/lib/common/di/binding-target.d.ts +73 -0
  62. package/lib/common/di/binding-target.d.ts.map +1 -0
  63. package/lib/common/di/binding-target.js +143 -0
  64. package/lib/common/di/binding-target.js.map +1 -0
  65. package/lib/common/di/binding-target.spec.d.ts +2 -0
  66. package/lib/common/di/binding-target.spec.d.ts.map +1 -0
  67. package/lib/common/di/binding-target.spec.js +121 -0
  68. package/lib/common/di/binding-target.spec.js.map +1 -0
  69. package/lib/common/di/client-session-module.d.ts +19 -0
  70. package/lib/common/di/client-session-module.d.ts.map +1 -0
  71. package/lib/common/di/client-session-module.js +34 -0
  72. package/lib/common/di/client-session-module.js.map +1 -0
  73. package/lib/common/di/diagram-module.d.ts +127 -0
  74. package/lib/common/di/diagram-module.d.ts.map +1 -0
  75. package/lib/common/di/diagram-module.js +283 -0
  76. package/lib/common/di/diagram-module.js.map +1 -0
  77. package/lib/common/di/glsp-module.d.ts +47 -0
  78. package/lib/common/di/glsp-module.d.ts.map +1 -0
  79. package/lib/common/di/glsp-module.js +59 -0
  80. package/lib/common/di/glsp-module.js.map +1 -0
  81. package/lib/common/di/multi-binding.d.ts +41 -0
  82. package/lib/common/di/multi-binding.d.ts.map +1 -0
  83. package/lib/common/di/multi-binding.js +82 -0
  84. package/lib/common/di/multi-binding.js.map +1 -0
  85. package/lib/common/di/multi-bindings.spec.d.ts +2 -0
  86. package/lib/common/di/multi-bindings.spec.d.ts.map +1 -0
  87. package/lib/common/di/multi-bindings.spec.js +137 -0
  88. package/lib/common/di/multi-bindings.spec.js.map +1 -0
  89. package/lib/common/di/server-module.d.ts +73 -0
  90. package/lib/common/di/server-module.d.ts.map +1 -0
  91. package/lib/common/di/server-module.js +103 -0
  92. package/lib/common/di/server-module.js.map +1 -0
  93. package/lib/common/di/service-identifiers.d.ts +29 -0
  94. package/lib/common/di/service-identifiers.d.ts.map +1 -0
  95. package/lib/common/di/service-identifiers.js +14 -0
  96. package/lib/common/di/service-identifiers.js.map +1 -0
  97. package/lib/common/diagram/diagram-configuration.d.ts +89 -0
  98. package/lib/common/diagram/diagram-configuration.d.ts.map +1 -0
  99. package/lib/common/diagram/diagram-configuration.js +30 -0
  100. package/lib/common/diagram/diagram-configuration.js.map +1 -0
  101. package/lib/common/diagram/request-type-hints-action-handler.d.ts +25 -0
  102. package/lib/common/diagram/request-type-hints-action-handler.d.ts.map +1 -0
  103. package/lib/common/diagram/request-type-hints-action-handler.js +53 -0
  104. package/lib/common/diagram/request-type-hints-action-handler.js.map +1 -0
  105. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts +2 -0
  106. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts.map +1 -0
  107. package/lib/common/diagram/request-type-hints-action-handler.spec.js +57 -0
  108. package/lib/common/diagram/request-type-hints-action-handler.spec.js.map +1 -0
  109. package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts +26 -0
  110. package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts.map +1 -0
  111. package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +61 -0
  112. package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -0
  113. package/lib/common/features/contextactions/command-palette-action-provider.d.ts +63 -0
  114. package/lib/common/features/contextactions/command-palette-action-provider.d.ts.map +1 -0
  115. package/lib/common/features/contextactions/command-palette-action-provider.js +72 -0
  116. package/lib/common/features/contextactions/command-palette-action-provider.js.map +1 -0
  117. package/lib/common/features/contextactions/context-actions-provider-registry.d.ts +12 -0
  118. package/lib/common/features/contextactions/context-actions-provider-registry.d.ts.map +1 -0
  119. package/lib/common/features/contextactions/context-actions-provider-registry.js +70 -0
  120. package/lib/common/features/contextactions/context-actions-provider-registry.js.map +1 -0
  121. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts +2 -0
  122. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts.map +1 -0
  123. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js +34 -0
  124. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js.map +1 -0
  125. package/lib/common/features/contextactions/context-actions-provider.d.ts +34 -0
  126. package/lib/common/features/contextactions/context-actions-provider.d.ts.map +1 -0
  127. package/lib/common/features/contextactions/context-actions-provider.js +5 -0
  128. package/lib/common/features/contextactions/context-actions-provider.js.map +1 -0
  129. package/lib/common/features/contextactions/context-menu-item-provider.d.ts +43 -0
  130. package/lib/common/features/contextactions/context-menu-item-provider.d.ts.map +1 -0
  131. package/lib/common/features/contextactions/context-menu-item-provider.js +36 -0
  132. package/lib/common/features/contextactions/context-menu-item-provider.js.map +1 -0
  133. package/lib/common/features/contextactions/request-context-actions-handler.d.ts +24 -0
  134. package/lib/common/features/contextactions/request-context-actions-handler.d.ts.map +1 -0
  135. package/lib/common/features/contextactions/request-context-actions-handler.js +53 -0
  136. package/lib/common/features/contextactions/request-context-actions-handler.js.map +1 -0
  137. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts +2 -0
  138. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts.map +1 -0
  139. package/lib/common/features/contextactions/request-context-actions-handler.spec.js +63 -0
  140. package/lib/common/features/contextactions/request-context-actions-handler.spec.js.map +1 -0
  141. package/lib/common/features/contextactions/tool-palette-item-provider.d.ts +50 -0
  142. package/lib/common/features/contextactions/tool-palette-item-provider.d.ts.map +1 -0
  143. package/lib/common/features/contextactions/tool-palette-item-provider.js +88 -0
  144. package/lib/common/features/contextactions/tool-palette-item-provider.js.map +1 -0
  145. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts +2 -0
  146. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts.map +1 -0
  147. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js +48 -0
  148. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js.map +1 -0
  149. package/lib/common/features/directediting/context-edit-validator-registry.d.ts +14 -0
  150. package/lib/common/features/directediting/context-edit-validator-registry.d.ts.map +1 -0
  151. package/lib/common/features/directediting/context-edit-validator-registry.js +57 -0
  152. package/lib/common/features/directediting/context-edit-validator-registry.js.map +1 -0
  153. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts +2 -0
  154. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts.map +1 -0
  155. package/lib/common/features/directediting/context-edit-validator-registry.spec.js +44 -0
  156. package/lib/common/features/directediting/context-edit-validator-registry.spec.js.map +1 -0
  157. package/lib/common/features/directediting/context-edit-validator.d.ts +25 -0
  158. package/lib/common/features/directediting/context-edit-validator.d.ts.map +1 -0
  159. package/lib/common/features/directediting/context-edit-validator.js +40 -0
  160. package/lib/common/features/directediting/context-edit-validator.js.map +1 -0
  161. package/lib/common/features/directediting/label-edit-validator.d.ts +32 -0
  162. package/lib/common/features/directediting/label-edit-validator.d.ts.map +1 -0
  163. package/lib/common/features/directediting/label-edit-validator.js +21 -0
  164. package/lib/common/features/directediting/label-edit-validator.js.map +1 -0
  165. package/lib/common/features/directediting/request-edit-validation-handler.d.ts +26 -0
  166. package/lib/common/features/directediting/request-edit-validation-handler.d.ts.map +1 -0
  167. package/lib/common/features/directediting/request-edit-validation-handler.js +61 -0
  168. package/lib/common/features/directediting/request-edit-validation-handler.js.map +1 -0
  169. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts +2 -0
  170. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts.map +1 -0
  171. package/lib/common/features/directediting/request-edit-validation-handler.spec.js +97 -0
  172. package/lib/common/features/directediting/request-edit-validation-handler.spec.js.map +1 -0
  173. package/lib/common/features/layout/layout-engine.d.ts +29 -0
  174. package/lib/common/features/layout/layout-engine.d.ts.map +1 -0
  175. package/lib/common/features/layout/layout-engine.js +20 -0
  176. package/lib/common/features/layout/layout-engine.js.map +1 -0
  177. package/lib/common/features/layout/layout-operation-handler.d.ts +28 -0
  178. package/lib/common/features/layout/layout-operation-handler.d.ts.map +1 -0
  179. package/lib/common/features/layout/layout-operation-handler.js +66 -0
  180. package/lib/common/features/layout/layout-operation-handler.js.map +1 -0
  181. package/lib/common/features/model/gmodel-factory.d.ts +39 -0
  182. package/lib/common/features/model/gmodel-factory.d.ts.map +1 -0
  183. package/lib/common/features/model/gmodel-factory.js +39 -0
  184. package/lib/common/features/model/gmodel-factory.js.map +1 -0
  185. package/lib/common/features/model/gmodel-index.d.ts +107 -0
  186. package/lib/common/features/model/gmodel-index.d.ts.map +1 -0
  187. package/lib/common/features/model/gmodel-index.js +193 -0
  188. package/lib/common/features/model/gmodel-index.js.map +1 -0
  189. package/lib/common/features/model/gmodel-serializer.d.ts +67 -0
  190. package/lib/common/features/model/gmodel-serializer.d.ts.map +1 -0
  191. package/lib/common/features/model/gmodel-serializer.js +143 -0
  192. package/lib/common/features/model/gmodel-serializer.js.map +1 -0
  193. package/lib/common/features/model/gmodel-serializer.spec.d.ts +2 -0
  194. package/lib/common/features/model/gmodel-serializer.spec.d.ts.map +1 -0
  195. package/lib/common/features/model/gmodel-serializer.spec.js +124 -0
  196. package/lib/common/features/model/gmodel-serializer.spec.js.map +1 -0
  197. package/lib/common/features/model/model-state.d.ts +53 -0
  198. package/lib/common/features/model/model-state.d.ts.map +1 -0
  199. package/lib/common/features/model/model-state.js +75 -0
  200. package/lib/common/features/model/model-state.js.map +1 -0
  201. package/lib/common/features/model/model-submission-handler.d.ts +56 -0
  202. package/lib/common/features/model/model-submission-handler.d.ts.map +1 -0
  203. package/lib/common/features/model/model-submission-handler.js +97 -0
  204. package/lib/common/features/model/model-submission-handler.js.map +1 -0
  205. package/lib/common/features/model/request-model-action-handler.d.ts +37 -0
  206. package/lib/common/features/model/request-model-action-handler.d.ts.map +1 -0
  207. package/lib/common/features/model/request-model-action-handler.js +83 -0
  208. package/lib/common/features/model/request-model-action-handler.js.map +1 -0
  209. package/lib/common/features/model/save-model-action-handler.d.ts +26 -0
  210. package/lib/common/features/model/save-model-action-handler.d.ts.map +1 -0
  211. package/lib/common/features/model/save-model-action-handler.js +54 -0
  212. package/lib/common/features/model/save-model-action-handler.js.map +1 -0
  213. package/lib/common/features/model/source-model-storage.d.ts +47 -0
  214. package/lib/common/features/model/source-model-storage.d.ts.map +1 -0
  215. package/lib/common/features/model/source-model-storage.js +5 -0
  216. package/lib/common/features/model/source-model-storage.js.map +1 -0
  217. package/lib/common/features/navigation/json-opener-options.d.ts +36 -0
  218. package/lib/common/features/navigation/json-opener-options.d.ts.map +1 -0
  219. package/lib/common/features/navigation/json-opener-options.js +60 -0
  220. package/lib/common/features/navigation/json-opener-options.js.map +1 -0
  221. package/lib/common/features/navigation/navigation-target-provider-registry.d.ts +12 -0
  222. package/lib/common/features/navigation/navigation-target-provider-registry.d.ts.map +1 -0
  223. package/lib/common/features/navigation/navigation-target-provider-registry.js +47 -0
  224. package/lib/common/features/navigation/navigation-target-provider-registry.js.map +1 -0
  225. package/lib/common/features/navigation/navigation-target-provider.d.ts +48 -0
  226. package/lib/common/features/navigation/navigation-target-provider.d.ts.map +1 -0
  227. package/lib/common/features/navigation/navigation-target-provider.js +5 -0
  228. package/lib/common/features/navigation/navigation-target-provider.js.map +1 -0
  229. package/lib/common/features/navigation/navigation-target-resolution.d.ts +23 -0
  230. package/lib/common/features/navigation/navigation-target-resolution.d.ts.map +1 -0
  231. package/lib/common/features/navigation/navigation-target-resolution.js +12 -0
  232. package/lib/common/features/navigation/navigation-target-resolution.js.map +1 -0
  233. package/lib/common/features/navigation/navigation-target-resolver.d.ts +31 -0
  234. package/lib/common/features/navigation/navigation-target-resolver.d.ts.map +1 -0
  235. package/lib/common/features/navigation/navigation-target-resolver.js +49 -0
  236. package/lib/common/features/navigation/navigation-target-resolver.js.map +1 -0
  237. package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts +24 -0
  238. package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts.map +1 -0
  239. package/lib/common/features/navigation/request-navigation-targets-action-handler.js +55 -0
  240. package/lib/common/features/navigation/request-navigation-targets-action-handler.js.map +1 -0
  241. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts +26 -0
  242. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts.map +1 -0
  243. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js +59 -0
  244. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js.map +1 -0
  245. package/lib/common/features/popup/popup-model-factory.d.ts +36 -0
  246. package/lib/common/features/popup/popup-model-factory.d.ts.map +1 -0
  247. package/lib/common/features/popup/popup-model-factory.js +20 -0
  248. package/lib/common/features/popup/popup-model-factory.js.map +1 -0
  249. package/lib/common/features/popup/request-popup-model-action-handler.d.ts +31 -0
  250. package/lib/common/features/popup/request-popup-model-action-handler.d.ts.map +1 -0
  251. package/lib/common/features/popup/request-popup-model-action-handler.js +77 -0
  252. package/lib/common/features/popup/request-popup-model-action-handler.js.map +1 -0
  253. package/lib/common/features/validation/model-validator.d.ts +33 -0
  254. package/lib/common/features/validation/model-validator.d.ts.map +1 -0
  255. package/lib/common/features/validation/model-validator.js +5 -0
  256. package/lib/common/features/validation/model-validator.js.map +1 -0
  257. package/lib/common/features/validation/request-markers-handler.d.ts +11 -0
  258. package/lib/common/features/validation/request-markers-handler.d.ts.map +1 -0
  259. package/lib/common/features/validation/request-markers-handler.js +70 -0
  260. package/lib/common/features/validation/request-markers-handler.js.map +1 -0
  261. package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts +9 -0
  262. package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts.map +1 -0
  263. package/lib/common/gmodel/apply-label-edit-operation-handler.js +55 -0
  264. package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -0
  265. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts +2 -0
  266. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts.map +1 -0
  267. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js +38 -0
  268. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js.map +1 -0
  269. package/lib/common/gmodel/change-bounds-operation-handler.d.ts +10 -0
  270. package/lib/common/gmodel/change-bounds-operation-handler.d.ts.map +1 -0
  271. package/lib/common/gmodel/change-bounds-operation-handler.js +71 -0
  272. package/lib/common/gmodel/change-bounds-operation-handler.js.map +1 -0
  273. package/lib/common/gmodel/change-routing-points-operation-handler.d.ts +24 -0
  274. package/lib/common/gmodel/change-routing-points-operation-handler.d.ts.map +1 -0
  275. package/lib/common/gmodel/change-routing-points-operation-handler.js +53 -0
  276. package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -0
  277. package/lib/common/gmodel/computed-bounds-action-handler.d.ts +29 -0
  278. package/lib/common/gmodel/computed-bounds-action-handler.d.ts.map +1 -0
  279. package/lib/common/gmodel/computed-bounds-action-handler.js +50 -0
  280. package/lib/common/gmodel/computed-bounds-action-handler.js.map +1 -0
  281. package/lib/common/gmodel/delete-operation-handler.d.ts +32 -0
  282. package/lib/common/gmodel/delete-operation-handler.d.ts.map +1 -0
  283. package/lib/common/gmodel/delete-operation-handler.js +116 -0
  284. package/lib/common/gmodel/delete-operation-handler.js.map +1 -0
  285. package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts +31 -0
  286. package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts.map +1 -0
  287. package/lib/common/gmodel/gmodel-create-edge-operation-handler.js +65 -0
  288. package/lib/common/gmodel/gmodel-create-edge-operation-handler.js.map +1 -0
  289. package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts +31 -0
  290. package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts.map +1 -0
  291. package/lib/common/gmodel/gmodel-create-node-operation-handler.js +58 -0
  292. package/lib/common/gmodel/gmodel-create-node-operation-handler.js.map +1 -0
  293. package/lib/common/gmodel/gmodel-diagram-module.d.ts +31 -0
  294. package/lib/common/gmodel/gmodel-diagram-module.d.ts.map +1 -0
  295. package/lib/common/gmodel/gmodel-diagram-module.js +86 -0
  296. package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -0
  297. package/lib/common/gmodel/index.d.ts +26 -0
  298. package/lib/common/gmodel/index.d.ts.map +1 -0
  299. package/lib/common/gmodel/index.js +42 -0
  300. package/lib/common/gmodel/index.js.map +1 -0
  301. package/lib/common/gmodel/paste-operation-handler.d.ts +35 -0
  302. package/lib/common/gmodel/paste-operation-handler.d.ts.map +1 -0
  303. package/lib/common/gmodel/paste-operation-handler.js +131 -0
  304. package/lib/common/gmodel/paste-operation-handler.js.map +1 -0
  305. package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts +9 -0
  306. package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts.map +1 -0
  307. package/lib/common/gmodel/reconnect-edge-operation-handler.js +67 -0
  308. package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -0
  309. package/lib/common/index.d.ts +88 -0
  310. package/lib/common/index.d.ts.map +1 -0
  311. package/lib/common/index.js +104 -0
  312. package/lib/common/index.js.map +1 -0
  313. package/lib/common/launch/glsp-server-launcher.d.ts +34 -0
  314. package/lib/common/launch/glsp-server-launcher.d.ts.map +1 -0
  315. package/lib/common/launch/glsp-server-launcher.js +64 -0
  316. package/lib/common/launch/glsp-server-launcher.js.map +1 -0
  317. package/lib/common/operations/compound-operation-handler.d.ts +25 -0
  318. package/lib/common/operations/compound-operation-handler.d.ts.map +1 -0
  319. package/lib/common/operations/compound-operation-handler.js +54 -0
  320. package/lib/common/operations/compound-operation-handler.js.map +1 -0
  321. package/lib/common/operations/create-operation-handler.d.ts +64 -0
  322. package/lib/common/operations/create-operation-handler.d.ts.map +1 -0
  323. package/lib/common/operations/create-operation-handler.js +90 -0
  324. package/lib/common/operations/create-operation-handler.js.map +1 -0
  325. package/lib/common/operations/cut-operation-handler.d.ts +25 -0
  326. package/lib/common/operations/cut-operation-handler.d.ts.map +1 -0
  327. package/lib/common/operations/cut-operation-handler.js +53 -0
  328. package/lib/common/operations/cut-operation-handler.js.map +1 -0
  329. package/lib/common/operations/operation-action-handler.d.ts +33 -0
  330. package/lib/common/operations/operation-action-handler.d.ts.map +1 -0
  331. package/lib/common/operations/operation-action-handler.js +94 -0
  332. package/lib/common/operations/operation-action-handler.js.map +1 -0
  333. package/lib/common/operations/operation-handler-registry.d.ts +29 -0
  334. package/lib/common/operations/operation-handler-registry.d.ts.map +1 -0
  335. package/lib/common/operations/operation-handler-registry.js +58 -0
  336. package/lib/common/operations/operation-handler-registry.js.map +1 -0
  337. package/lib/common/operations/operation-handler-registry.spec.d.ts +2 -0
  338. package/lib/common/operations/operation-handler-registry.spec.d.ts.map +1 -0
  339. package/lib/common/operations/operation-handler-registry.spec.js +50 -0
  340. package/lib/common/operations/operation-handler-registry.spec.js.map +1 -0
  341. package/lib/common/operations/operation-handler.d.ts +50 -0
  342. package/lib/common/operations/operation-handler.d.ts.map +1 -0
  343. package/lib/common/operations/operation-handler.js +7 -0
  344. package/lib/common/operations/operation-handler.js.map +1 -0
  345. package/lib/common/protocol/glsp-client-proxy.d.ts +45 -0
  346. package/lib/common/protocol/glsp-client-proxy.d.ts.map +1 -0
  347. package/lib/common/protocol/glsp-client-proxy.js +53 -0
  348. package/lib/common/protocol/glsp-client-proxy.js.map +1 -0
  349. package/lib/common/protocol/glsp-server-listener.d.ts +37 -0
  350. package/lib/common/protocol/glsp-server-listener.d.ts.map +1 -0
  351. package/lib/common/protocol/glsp-server-listener.js +5 -0
  352. package/lib/common/protocol/glsp-server-listener.js.map +1 -0
  353. package/lib/common/protocol/glsp-server.d.ts +150 -0
  354. package/lib/common/protocol/glsp-server.d.ts.map +1 -0
  355. package/lib/common/protocol/glsp-server.js +188 -0
  356. package/lib/common/protocol/glsp-server.js.map +1 -0
  357. package/lib/common/protocol/glsp-server.spec.d.ts +2 -0
  358. package/lib/common/protocol/glsp-server.spec.d.ts.map +1 -0
  359. package/lib/common/protocol/glsp-server.spec.js +119 -0
  360. package/lib/common/protocol/glsp-server.spec.js.map +1 -0
  361. package/lib/common/session/client-session-factory.d.ts +42 -0
  362. package/lib/common/session/client-session-factory.d.ts.map +1 -0
  363. package/lib/common/session/client-session-factory.js +54 -0
  364. package/lib/common/session/client-session-factory.js.map +1 -0
  365. package/lib/common/session/client-session-factory.spec.d.ts +2 -0
  366. package/lib/common/session/client-session-factory.spec.d.ts.map +1 -0
  367. package/lib/common/session/client-session-factory.spec.js +56 -0
  368. package/lib/common/session/client-session-factory.spec.js.map +1 -0
  369. package/lib/common/session/client-session-initializer.d.ts +26 -0
  370. package/lib/common/session/client-session-initializer.d.ts.map +1 -0
  371. package/lib/common/session/client-session-initializer.js +5 -0
  372. package/lib/common/session/client-session-initializer.js.map +1 -0
  373. package/lib/common/session/client-session-listener.d.ts +40 -0
  374. package/lib/common/session/client-session-listener.d.ts.map +1 -0
  375. package/lib/common/session/client-session-listener.js +3 -0
  376. package/lib/common/session/client-session-listener.js.map +1 -0
  377. package/lib/common/session/client-session-manager.d.ts +102 -0
  378. package/lib/common/session/client-session-manager.d.ts.map +1 -0
  379. package/lib/common/session/client-session-manager.js +116 -0
  380. package/lib/common/session/client-session-manager.js.map +1 -0
  381. package/lib/common/session/client-session-manager.spec.d.ts +2 -0
  382. package/lib/common/session/client-session-manager.spec.d.ts.map +1 -0
  383. package/lib/common/session/client-session-manager.spec.js +74 -0
  384. package/lib/common/session/client-session-manager.spec.js.map +1 -0
  385. package/lib/common/session/client-session.d.ts +52 -0
  386. package/lib/common/session/client-session.d.ts.map +1 -0
  387. package/lib/common/session/client-session.js +34 -0
  388. package/lib/common/session/client-session.js.map +1 -0
  389. package/lib/common/test/mock-util.d.ts +110 -0
  390. package/lib/common/test/mock-util.d.ts.map +1 -0
  391. package/lib/common/test/mock-util.js +211 -0
  392. package/lib/common/test/mock-util.js.map +1 -0
  393. package/lib/common/utils/args-util.d.ts +38 -0
  394. package/lib/common/utils/args-util.d.ts.map +1 -0
  395. package/lib/common/utils/args-util.js +81 -0
  396. package/lib/common/utils/args-util.js.map +1 -0
  397. package/lib/common/utils/client-options-util.d.ts +20 -0
  398. package/lib/common/utils/client-options-util.d.ts.map +1 -0
  399. package/lib/common/utils/client-options-util.js +26 -0
  400. package/lib/common/utils/client-options-util.js.map +1 -0
  401. package/lib/common/utils/glsp-server-error.d.ts +21 -0
  402. package/lib/common/utils/glsp-server-error.d.ts.map +1 -0
  403. package/lib/common/utils/glsp-server-error.js +33 -0
  404. package/lib/common/utils/glsp-server-error.js.map +1 -0
  405. package/lib/common/utils/layout-util.d.ts +74 -0
  406. package/lib/common/utils/layout-util.d.ts.map +1 -0
  407. package/lib/common/utils/layout-util.js +166 -0
  408. package/lib/common/utils/layout-util.js.map +1 -0
  409. package/lib/common/utils/logger.d.ts +27 -0
  410. package/lib/common/utils/logger.d.ts.map +1 -0
  411. package/lib/common/utils/logger.js +67 -0
  412. package/lib/common/utils/logger.js.map +1 -0
  413. package/lib/common/utils/promise-queue.d.ts +48 -0
  414. package/lib/common/utils/promise-queue.d.ts.map +1 -0
  415. package/lib/common/utils/promise-queue.js +93 -0
  416. package/lib/common/utils/promise-queue.js.map +1 -0
  417. package/lib/common/utils/promise-queue.spec.d.ts +2 -0
  418. package/lib/common/utils/promise-queue.spec.d.ts.map +1 -0
  419. package/lib/common/utils/promise-queue.spec.js +117 -0
  420. package/lib/common/utils/promise-queue.spec.js.map +1 -0
  421. package/lib/common/utils/registry.d.ts +73 -0
  422. package/lib/common/utils/registry.d.ts.map +1 -0
  423. package/lib/common/utils/registry.js +160 -0
  424. package/lib/common/utils/registry.js.map +1 -0
  425. package/lib/common/utils/registry.spec.d.ts +2 -0
  426. package/lib/common/utils/registry.spec.d.ts.map +1 -0
  427. package/lib/common/utils/registry.spec.js +199 -0
  428. package/lib/common/utils/registry.spec.js.map +1 -0
  429. package/lib/node/abstract-json-model-storage.d.ts +45 -0
  430. package/lib/node/abstract-json-model-storage.d.ts.map +1 -0
  431. package/lib/node/abstract-json-model-storage.js +103 -0
  432. package/lib/node/abstract-json-model-storage.js.map +1 -0
  433. package/lib/node/di/app-module.d.ts +36 -0
  434. package/lib/node/di/app-module.d.ts.map +1 -0
  435. package/lib/node/di/app-module.js +91 -0
  436. package/lib/node/di/app-module.js.map +1 -0
  437. package/lib/node/di/winston-logger.d.ts +32 -0
  438. package/lib/node/di/winston-logger.d.ts.map +1 -0
  439. package/lib/node/di/winston-logger.js +57 -0
  440. package/lib/node/di/winston-logger.js.map +1 -0
  441. package/lib/node/gmodel/gmodel-storage.d.ts +34 -0
  442. package/lib/node/gmodel/gmodel-storage.d.ts.map +1 -0
  443. package/lib/node/gmodel/gmodel-storage.js +68 -0
  444. package/lib/node/gmodel/gmodel-storage.js.map +1 -0
  445. package/lib/node/index.d.ts +24 -0
  446. package/lib/node/index.d.ts.map +1 -0
  447. package/lib/node/index.js +40 -0
  448. package/lib/node/index.js.map +1 -0
  449. package/lib/node/launch/cli-parser.d.ts +34 -0
  450. package/lib/node/launch/cli-parser.d.ts.map +1 -0
  451. package/lib/node/launch/cli-parser.js +71 -0
  452. package/lib/node/launch/cli-parser.js.map +1 -0
  453. package/lib/node/launch/cli-parser.spec.d.ts +2 -0
  454. package/lib/node/launch/cli-parser.spec.d.ts.map +1 -0
  455. package/lib/node/launch/cli-parser.spec.js +56 -0
  456. package/lib/node/launch/cli-parser.spec.js.map +1 -0
  457. package/lib/node/launch/socket-cli-parser.d.ts +9 -0
  458. package/lib/node/launch/socket-cli-parser.d.ts.map +1 -0
  459. package/lib/node/launch/socket-cli-parser.js +43 -0
  460. package/lib/node/launch/socket-cli-parser.js.map +1 -0
  461. package/lib/node/launch/socket-cli-parser.spec.d.ts +2 -0
  462. package/lib/node/launch/socket-cli-parser.spec.d.ts.map +1 -0
  463. package/lib/node/launch/socket-cli-parser.spec.js +66 -0
  464. package/lib/node/launch/socket-cli-parser.spec.js.map +1 -0
  465. package/lib/node/launch/socket-server-launcher.d.ts +34 -0
  466. package/lib/node/launch/socket-server-launcher.d.ts.map +1 -0
  467. package/lib/node/launch/socket-server-launcher.js +104 -0
  468. package/lib/node/launch/socket-server-launcher.js.map +1 -0
  469. package/lib/node/launch/socket-server-launcher.spec.d.ts +17 -0
  470. package/lib/node/launch/socket-server-launcher.spec.d.ts.map +1 -0
  471. package/lib/node/launch/socket-server-launcher.spec.js +70 -0
  472. package/lib/node/launch/socket-server-launcher.spec.js.map +1 -0
  473. package/node.d.ts +16 -0
  474. package/node.js +18 -0
  475. package/package.json +76 -0
  476. package/src/browser/di/app-module.ts +55 -0
  477. package/src/browser/di/console-logger.ts +71 -0
  478. package/src/browser/index.ts +19 -0
  479. package/src/browser/launch/worker-server-launcher.ts +58 -0
  480. package/src/common/actions/action-dispatcher.spec.ts +290 -0
  481. package/src/common/actions/action-dispatcher.ts +152 -0
  482. package/src/common/actions/action-handler-registry.spec.ts +52 -0
  483. package/src/common/actions/action-handler-registry.ts +60 -0
  484. package/src/common/actions/action-handler.ts +62 -0
  485. package/src/common/actions/client-action-handler.ts +50 -0
  486. package/src/common/actions/global-action-provider.spec.ts +79 -0
  487. package/src/common/actions/global-action-provider.ts +72 -0
  488. package/src/common/command/command-stack.ts +74 -0
  489. package/src/common/command/command.ts +39 -0
  490. package/src/common/di/binding-target.spec.ts +147 -0
  491. package/src/common/di/binding-target.ts +188 -0
  492. package/src/common/di/client-session-module.ts +29 -0
  493. package/src/common/di/diagram-module.ts +397 -0
  494. package/src/common/di/glsp-module.ts +66 -0
  495. package/src/common/di/multi-binding.ts +89 -0
  496. package/src/common/di/multi-bindings.spec.ts +133 -0
  497. package/src/common/di/server-module.ts +131 -0
  498. package/src/common/di/service-identifiers.ts +39 -0
  499. package/src/common/diagram/diagram-configuration.ts +97 -0
  500. package/src/common/diagram/request-type-hints-action-handler.spec.ts +59 -0
  501. package/src/common/diagram/request-type-hints-action-handler.ts +36 -0
  502. package/src/common/features/clipboard/request-clipboard-data-action-handler.ts +51 -0
  503. package/src/common/features/contextactions/command-palette-action-provider.ts +94 -0
  504. package/src/common/features/contextactions/context-actions-provider-registry.spec.ts +69 -0
  505. package/src/common/features/contextactions/context-actions-provider-registry.ts +47 -0
  506. package/src/common/features/contextactions/context-actions-provider.ts +36 -0
  507. package/src/common/features/contextactions/context-menu-item-provider.ts +52 -0
  508. package/src/common/features/contextactions/request-context-actions-handler.spec.ts +75 -0
  509. package/src/common/features/contextactions/request-context-actions-handler.ts +37 -0
  510. package/src/common/features/contextactions/tool-palette-item-provider.spec.ts +46 -0
  511. package/src/common/features/contextactions/tool-palette-item-provider.ts +90 -0
  512. package/src/common/features/directediting/context-edit-validator-registry.spec.ts +54 -0
  513. package/src/common/features/directediting/context-edit-validator-registry.ts +43 -0
  514. package/src/common/features/directediting/context-edit-validator.ts +55 -0
  515. package/src/common/features/directediting/label-edit-validator.ts +35 -0
  516. package/src/common/features/directediting/request-edit-validation-handler.spec.ts +131 -0
  517. package/src/common/features/directediting/request-edit-validation-handler.ts +43 -0
  518. package/src/common/features/layout/layout-engine.ts +31 -0
  519. package/src/common/features/layout/layout-operation-handler.ts +47 -0
  520. package/src/common/features/model/gmodel-factory.ts +60 -0
  521. package/src/common/features/model/gmodel-index.ts +195 -0
  522. package/src/common/features/model/gmodel-serializer.spec.ts +141 -0
  523. package/src/common/features/model/gmodel-serializer.ts +175 -0
  524. package/src/common/features/model/model-state.ts +101 -0
  525. package/src/common/features/model/model-submission-handler.ts +106 -0
  526. package/src/common/features/model/request-model-action-handler.ts +67 -0
  527. package/src/common/features/model/save-model-action-handler.ts +38 -0
  528. package/src/common/features/model/source-model-storage.ts +49 -0
  529. package/src/common/features/navigation/json-opener-options.ts +69 -0
  530. package/src/common/features/navigation/navigation-target-provider-registry.ts +36 -0
  531. package/src/common/features/navigation/navigation-target-provider.ts +50 -0
  532. package/src/common/features/navigation/navigation-target-resolution.ts +22 -0
  533. package/src/common/features/navigation/navigation-target-resolver.ts +61 -0
  534. package/src/common/features/navigation/request-navigation-targets-action-handler.ts +39 -0
  535. package/src/common/features/navigation/resolve-navigation-targets-action-handler.ts +42 -0
  536. package/src/common/features/popup/popup-model-factory.ts +38 -0
  537. package/src/common/features/popup/request-popup-model-action-handler.ts +60 -0
  538. package/src/common/features/validation/model-validator.ts +34 -0
  539. package/src/common/features/validation/request-markers-handler.ts +51 -0
  540. package/src/common/gmodel/README.md +7 -0
  541. package/src/common/gmodel/apply-label-edit-operation-handler.spec.ts +40 -0
  542. package/src/common/gmodel/apply-label-edit-operation-handler.ts +38 -0
  543. package/src/common/gmodel/change-bounds-operation-handler.ts +58 -0
  544. package/src/common/gmodel/change-routing-points-operation-handler.ts +39 -0
  545. package/src/common/gmodel/computed-bounds-action-handler.ts +51 -0
  546. package/src/common/gmodel/delete-operation-handler.ts +115 -0
  547. package/src/common/gmodel/gmodel-create-edge-operation-handler.ts +58 -0
  548. package/src/common/gmodel/gmodel-create-node-operation-handler.ts +47 -0
  549. package/src/common/gmodel/gmodel-diagram-module.ts +81 -0
  550. package/src/common/gmodel/index.ts +26 -0
  551. package/src/common/gmodel/paste-operation-handler.ts +119 -0
  552. package/src/common/gmodel/reconnect-edge-operation-handler.ts +55 -0
  553. package/src/common/index.ts +88 -0
  554. package/src/common/launch/glsp-server-launcher.ts +70 -0
  555. package/src/common/operations/compound-operation-handler.ts +38 -0
  556. package/src/common/operations/create-operation-handler.ts +106 -0
  557. package/src/common/operations/cut-operation-handler.ts +38 -0
  558. package/src/common/operations/operation-action-handler.ts +69 -0
  559. package/src/common/operations/operation-handler-registry.spec.ts +50 -0
  560. package/src/common/operations/operation-handler-registry.ts +51 -0
  561. package/src/common/operations/operation-handler.ts +57 -0
  562. package/src/common/protocol/glsp-client-proxy.ts +65 -0
  563. package/src/common/protocol/glsp-server-listener.ts +39 -0
  564. package/src/common/protocol/glsp-server.spec.ts +150 -0
  565. package/src/common/protocol/glsp-server.ts +320 -0
  566. package/src/common/session/client-session-factory.spec.ts +60 -0
  567. package/src/common/session/client-session-factory.ts +70 -0
  568. package/src/common/session/client-session-initializer.ts +27 -0
  569. package/src/common/session/client-session-listener.ts +41 -0
  570. package/src/common/session/client-session-manager.spec.ts +82 -0
  571. package/src/common/session/client-session-manager.ts +182 -0
  572. package/src/common/session/client-session.ts +62 -0
  573. package/src/common/test/mock-util.ts +256 -0
  574. package/src/common/utils/args-util.ts +98 -0
  575. package/src/common/utils/client-options-util.ts +22 -0
  576. package/src/common/utils/glsp-server-error.ts +27 -0
  577. package/src/common/utils/layout-util.ts +164 -0
  578. package/src/common/utils/logger.ts +72 -0
  579. package/src/common/utils/promise-queue.spec.ts +138 -0
  580. package/src/common/utils/promise-queue.ts +103 -0
  581. package/src/common/utils/registry.spec.ts +223 -0
  582. package/src/common/utils/registry.ts +154 -0
  583. package/src/node/abstract-json-model-storage.ts +114 -0
  584. package/src/node/di/app-module.ts +102 -0
  585. package/src/node/di/winston-logger.ts +76 -0
  586. package/src/node/gmodel/gmodel-storage.ts +53 -0
  587. package/src/node/index.ts +23 -0
  588. package/src/node/launch/cli-parser.spec.ts +61 -0
  589. package/src/node/launch/cli-parser.ts +86 -0
  590. package/src/node/launch/socket-cli-parser.spec.ts +73 -0
  591. package/src/node/launch/socket-cli-parser.ts +52 -0
  592. package/src/node/launch/socket-server-launcher.spec.ts +68 -0
  593. package/src/node/launch/socket-server-launcher.ts +90 -0
@@ -0,0 +1,50 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { EditorContext, NavigationTarget } from '@eclipse-glsp/protocol';
17
+
18
+ export const NavigationTargetProvider = Symbol('NavigationTargetProviders');
19
+
20
+ /**
21
+ * This provider retrieves navigation targets for its target type from a given {@link EditorContext}.
22
+ */
23
+ export interface NavigationTargetProvider {
24
+ /**
25
+ * Specifies the navigation targets for the given target type.
26
+ *
27
+ * If the `args` of a returned {@link NavigationTarget} contain a
28
+ * {@link NavigationTarget.ELEMENT_IDS_SEPARATOR}, GLSP diagram clients should navigate to
29
+ * the model elements with the specified ID within the current diagram. Multiple element
30
+ * IDs can be concatenated with {@link NavigationTarget.ELEMENT_IDS_SEPARATOR}.
31
+ *
32
+ * If the `args` of a returned {@link NavigationTarget} contain a property
33
+ * `JSON_OPENER_OPTIONS` and its uri is outside of the current diagram, the string
34
+ * value of the `JSON_OPENER_OPTIONS` property will be parsed as JSON
35
+ * and merged into the opener options by the Theia integration of the GLSP client.
36
+ * This allows GLSP servers to pass additional opener options, such as a selection, etc.
37
+ * Other clients (non-Theia clients) should behave the same way.
38
+ *
39
+ * @param editorContext The editor context
40
+ * @returns the list of navigation targets
41
+ */
42
+ getTargets(editorContext: EditorContext): NavigationTarget[];
43
+
44
+ /**
45
+ * Returns the targetTypeId of the provider.
46
+ *
47
+ * @returns The targetTypeId of the provider.
48
+ */
49
+ targetTypeId: string;
50
+ }
@@ -0,0 +1,22 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Args } from '@eclipse-glsp/protocol';
17
+
18
+ export class NavigationTargetResolution {
19
+ static readonly EMPTY = new NavigationTargetResolution([]);
20
+
21
+ constructor(readonly elementIds: string[], readonly args?: Args) {}
22
+ }
@@ -0,0 +1,61 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Args, MaybePromise, NavigationTarget } from '@eclipse-glsp/protocol';
17
+ import { injectable } from 'inversify';
18
+ import { NavigationTargetResolution } from './navigation-target-resolution';
19
+
20
+ @injectable()
21
+ export abstract class NavigationTargetResolver {
22
+ readonly INFO = 'info';
23
+ readonly WARNING = 'warning';
24
+ readonly ERROR = 'error';
25
+
26
+ abstract resolve(navigationTarget: NavigationTarget): MaybePromise<NavigationTargetResolution>;
27
+
28
+ createArgs(): Args {
29
+ return {};
30
+ }
31
+
32
+ createArgsWithInfo(message: string): Args {
33
+ const args = this.createArgs();
34
+ this.addInfo(message, args);
35
+ return args;
36
+ }
37
+
38
+ createArgsWithWarning(message: string): Args {
39
+ const args = this.createArgs();
40
+ this.addWarning(message, args);
41
+ return args;
42
+ }
43
+
44
+ createArgsWithError(message: string): Args {
45
+ const args = this.createArgs();
46
+ this.addError(message, args);
47
+ return args;
48
+ }
49
+
50
+ addInfo(message: string, args: Args): void {
51
+ args[this.INFO] = message;
52
+ }
53
+
54
+ addWarning(message: string, args: Args): void {
55
+ args[this.WARNING] = message;
56
+ }
57
+
58
+ addError(message: string, args: Args): void {
59
+ args[this.ERROR] = message;
60
+ }
61
+ }
@@ -0,0 +1,39 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Action, MaybePromise, NavigationTarget, RequestNavigationTargetsAction, SetNavigationTargetsAction } from '@eclipse-glsp/protocol';
17
+ import { injectable } from 'inversify';
18
+ import { inject } from 'inversify/lib/annotation/inject';
19
+ import { ActionHandler } from '../../actions/action-handler';
20
+ import { NavigationTargetProviderRegistry } from './navigation-target-provider-registry';
21
+
22
+ @injectable()
23
+ export class RequestNavigationTargetsActionHandler implements ActionHandler {
24
+ actionKinds = [RequestNavigationTargetsAction.KIND];
25
+
26
+ @inject(NavigationTargetProviderRegistry)
27
+ protected navigationTargetProviderRegistry: NavigationTargetProviderRegistry;
28
+
29
+ execute(action: RequestNavigationTargetsAction): MaybePromise<Action[]> {
30
+ const editorContext = action.editorContext;
31
+ const allTargets: NavigationTarget[] = [];
32
+ const provider = this.navigationTargetProviderRegistry.get(action.targetTypeId);
33
+ if (provider) {
34
+ const targets = provider.getTargets(editorContext);
35
+ targets.forEach(target => allTargets.push(target));
36
+ }
37
+ return [SetNavigationTargetsAction.create(allTargets, { args: editorContext.args })];
38
+ }
39
+ }
@@ -0,0 +1,42 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Action, ResolveNavigationTargetAction, SetResolvedNavigationTargetAction } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, optional } from 'inversify';
18
+ import { ActionHandler } from '../../actions/action-handler';
19
+ import { Logger } from '../../utils/logger';
20
+ import { NavigationTargetResolver } from './navigation-target-resolver';
21
+
22
+ @injectable()
23
+ export class ResolveNavigationTargetsActionHandler implements ActionHandler {
24
+ actionKinds = [ResolveNavigationTargetAction.KIND];
25
+
26
+ @inject(Logger)
27
+ protected logger: Logger;
28
+
29
+ @inject(NavigationTargetResolver)
30
+ @optional()
31
+ protected readonly navigationTargetResolver: NavigationTargetResolver;
32
+
33
+ async execute(action: ResolveNavigationTargetAction): Promise<Action[]> {
34
+ if (!this.navigationTargetResolver) {
35
+ this.logger.warn('Could not resolve navigation target. No implementation for: NavigationTargetResolver has been bound');
36
+ return [];
37
+ }
38
+ const target = action.navigationTarget;
39
+ const resolution = await this.navigationTargetResolver.resolve(target);
40
+ return [SetResolvedNavigationTargetAction.create(resolution.elementIds, { args: resolution.args })];
41
+ }
42
+ }
@@ -0,0 +1,38 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import { GModelElement, GModelRoot } from '@eclipse-glsp/graph';
18
+ import { RequestPopupModelAction } from '@eclipse-glsp/protocol';
19
+
20
+ export const PopupModelFactory = Symbol('PopupModelFactory');
21
+
22
+ /**
23
+ * A PopupModelFactory creates a popup model for the given element.
24
+ * A popup model is a {@link GHtmlRoot} that is self contained and not part of the diagram model.
25
+ * In contrast to diagram elements popup models typically don't contain dynamically rendered {@link GModelElement}s and
26
+ * use{@link GPreRenderedElement}s that contain server-side computed html or svg code instead.
27
+ */
28
+ export interface PopupModelFactory {
29
+ /**
30
+ * Returns an {@link GModelRoot} for a given {@link GModelElement} triggered by a
31
+ * {@link RequestPopupModelAction}.
32
+ *
33
+ * @param element The element to create the popup model for.
34
+ * @param action The {@link RequestPopupModelAction} that triggered this popup model creation.
35
+ * @returns An optional {@link GHtmlRoot} for a given {@link GModelElement}.
36
+ */
37
+ createPopupModel(element: GModelElement, action: RequestPopupModelAction): GModelRoot | undefined;
38
+ }
@@ -0,0 +1,60 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Action, MaybePromise, RequestPopupModelAction, SetPopupModelAction } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, optional } from 'inversify';
18
+ import { ActionHandler } from '../../actions/action-handler';
19
+ import { GLSPServerError } from '../../utils/glsp-server-error';
20
+ import { Logger } from '../../utils/logger';
21
+ import { GModelSerializer } from '../model/gmodel-serializer';
22
+ import { ModelState } from '../model/model-state';
23
+ import { PopupModelFactory } from './popup-model-factory';
24
+
25
+ @injectable()
26
+ export class RequestPopupModelActionHandler implements ActionHandler {
27
+ @inject(Logger)
28
+ protected logger: Logger;
29
+
30
+ @inject(PopupModelFactory)
31
+ @optional()
32
+ protected popupModelFactory?: PopupModelFactory;
33
+
34
+ @inject(ModelState)
35
+ protected modelState: ModelState;
36
+
37
+ @inject(GModelSerializer)
38
+ protected modelSerializer: GModelSerializer;
39
+
40
+ actionKinds = [RequestPopupModelAction.KIND];
41
+
42
+ execute(action: RequestPopupModelAction): MaybePromise<Action[]> {
43
+ if (this.popupModelFactory) {
44
+ const hoverElement = this.modelState.index.find(action.elementId);
45
+ if (hoverElement) {
46
+ const popupModel = this.popupModelFactory.createPopupModel(hoverElement, action);
47
+ if (popupModel) {
48
+ const modelSchema = this.modelSerializer.createSchema(popupModel);
49
+ return [SetPopupModelAction.create(modelSchema)];
50
+ }
51
+ return [];
52
+ }
53
+ throw new GLSPServerError(`Could not process 'RequestPopupModelAction'. Hover element with id ${action.elementId} not found`);
54
+ }
55
+ this.logger.warn('Could not process `RequestPopupModelAction`. No `PopupModelFactory` is bound');
56
+ return [];
57
+ }
58
+
59
+ priority?: number | undefined;
60
+ }
@@ -0,0 +1,34 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GModelElement } from '@eclipse-glsp/graph';
17
+ import { Marker, MaybePromise } from '@eclipse-glsp/protocol';
18
+
19
+ export const ModelValidator = Symbol('ModelValidator');
20
+
21
+ /**
22
+ * Validates a list of {@link GModelElement}s based on a set of validation rules and returns corresponding issue
23
+ * {@link Marker}s.
24
+ * An issue marker is a serializable description of the validation violation that can be visualized by the GLSP client.
25
+ */
26
+ export interface ModelValidator {
27
+ /**
28
+ * Validates the given list of {@link GModelElement}s and returns a list of {@link Marker}s.
29
+ *
30
+ * @param elements The list of {@link GModelElement} to validate.
31
+ * @returns A list of {@link Marker}s for the validated {@link GModelElement}s.
32
+ */
33
+ validate(elements: GModelElement[]): MaybePromise<Marker[]>;
34
+ }
@@ -0,0 +1,51 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GGraph } from '@eclipse-glsp/graph';
17
+ import { Action, Marker, RequestMarkersAction, SetMarkersAction } from '@eclipse-glsp/protocol';
18
+ import { inject, injectable, optional } from 'inversify';
19
+ import { ActionHandler } from '../../actions/action-handler';
20
+ import { GLSPServerError } from '../../utils/glsp-server-error';
21
+ import { ModelState } from '../model/model-state';
22
+ import { ModelValidator } from './model-validator';
23
+
24
+ @injectable()
25
+ export class RequestMarkersHandler implements ActionHandler {
26
+ actionKinds = [RequestMarkersAction.KIND];
27
+
28
+ @inject(ModelValidator) @optional() validator: ModelValidator;
29
+ @inject(ModelState) modelState: ModelState;
30
+
31
+ async execute(action: RequestMarkersAction): Promise<Action[]> {
32
+ let elementIDs = action.elementsIDs;
33
+ if (!this.validator) {
34
+ throw new GLSPServerError('Cannot compute markers! No implementation for ModelValidator has been bound');
35
+ }
36
+
37
+ if (!elementIDs || elementIDs.length === 0 || (elementIDs.length === 1 && elementIDs[0] === 'EMPTY')) {
38
+ elementIDs = [this.modelState.root.id];
39
+ }
40
+
41
+ let markers: Marker[] = [];
42
+ const currentModelIndex = this.modelState.index;
43
+ for (const elementID of elementIDs) {
44
+ const modelElement = currentModelIndex.findByClass(elementID, GGraph);
45
+ if (modelElement) {
46
+ markers = markers.concat(await this.validator.validate([modelElement]));
47
+ }
48
+ }
49
+ return [SetMarkersAction.create(markers)];
50
+ }
51
+ }
@@ -0,0 +1,7 @@
1
+ # Eclipse GLSP - Node Server
2
+
3
+ ## Direct GModel Library
4
+
5
+ A collection of reusable base handlers and services to implement GLSP diagram languages directly use the graphical model as source model.
6
+ This means the source model is a serializable representation of the graphical model. All operation and action handlers are operating
7
+ directly on the graphical model.
@@ -0,0 +1,40 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GLabel } from '@eclipse-glsp/graph';
17
+ import { ApplyLabelEditOperation } from '@eclipse-glsp/protocol';
18
+ import { expect } from 'chai';
19
+ import * as sinon from 'sinon';
20
+ import { GModelIndex } from '../features/model/gmodel-index';
21
+ import { DefaultModelState } from '../features/model/model-state';
22
+ import { ApplyLabelEditOperationHandler } from './apply-label-edit-operation-handler';
23
+
24
+ import assert = require('assert');
25
+
26
+ describe('Test ApplyLabelEditOperationHandler', () => {
27
+ const label = new GLabel();
28
+ const modelState = new DefaultModelState();
29
+ Object.defineProperty(modelState, 'index', { value: new GModelIndex() });
30
+ sinon.stub(modelState.index, 'findByClass').returns(label);
31
+ const applyLabelEditOperationHandler = new ApplyLabelEditOperationHandler();
32
+ Object.defineProperty(applyLabelEditOperationHandler, 'modelState', { value: modelState });
33
+
34
+ it('text is changed after ApplyLabelEditOperation', async () => {
35
+ assert.doesNotThrow(() =>
36
+ applyLabelEditOperationHandler.execute(ApplyLabelEditOperation.create({ labelId: 'myId', text: 'test' }))
37
+ );
38
+ expect(label.text).to.be.equal('test');
39
+ });
40
+ });
@@ -0,0 +1,38 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GLabel } from '@eclipse-glsp/graph';
17
+ import { ApplyLabelEditOperation, MaybePromise } from '@eclipse-glsp/protocol';
18
+ import { inject, injectable } from 'inversify';
19
+ import { ModelState } from '../features/model/model-state';
20
+ import { OperationHandler } from '../operations/operation-handler';
21
+ import { GLSPServerError } from '../utils/glsp-server-error';
22
+
23
+ @injectable()
24
+ export class ApplyLabelEditOperationHandler implements OperationHandler {
25
+ readonly operationType = ApplyLabelEditOperation.KIND;
26
+
27
+ @inject(ModelState)
28
+ protected readonly modelState: ModelState;
29
+
30
+ execute(operation: ApplyLabelEditOperation): MaybePromise<void> {
31
+ const element = this.modelState.index.findByClass(operation.labelId, GLabel);
32
+ if (element) {
33
+ element.text = operation.text;
34
+ } else {
35
+ throw new GLSPServerError('Element with provided ID cannot be found or is not a GLabel');
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,58 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GModelRoot, GNode } from '@eclipse-glsp/graph';
17
+ import { ChangeBoundsOperation, Dimension, MaybePromise, Point } from '@eclipse-glsp/protocol';
18
+ import { inject, injectable } from 'inversify';
19
+ import { ModelState } from '../features/model/model-state';
20
+ import { OperationHandler } from '../operations/operation-handler';
21
+
22
+ @injectable()
23
+ export class ChangeBoundsOperationHandler implements OperationHandler {
24
+ operationType = ChangeBoundsOperation.KIND;
25
+
26
+ @inject(ModelState)
27
+ protected modelState: ModelState;
28
+
29
+ execute(operation: ChangeBoundsOperation): MaybePromise<void> {
30
+ for (const element of operation.newBounds) {
31
+ this.changeElementBounds(element.elementId, element.newSize, element.newPosition);
32
+ }
33
+ }
34
+
35
+ changeElementBounds(elementId: string, newSize: Dimension, newPosition: Point | undefined): void {
36
+ const index = this.modelState.index;
37
+ const nodeToUpdate = index.findByClass(elementId, GNode);
38
+ if (!nodeToUpdate) {
39
+ return;
40
+ }
41
+
42
+ const parent = nodeToUpdate.parent;
43
+ let positionToSet = { x: 0, y: 0 };
44
+ if (newPosition) {
45
+ positionToSet = parent instanceof GModelRoot ? newPosition : { x: Math.max(0, newPosition.x), y: Math.max(0, newPosition.y) };
46
+ }
47
+ if (nodeToUpdate.layout) {
48
+ if (!nodeToUpdate.layoutOptions) {
49
+ nodeToUpdate.layoutOptions = {};
50
+ }
51
+ nodeToUpdate.layoutOptions['prefWidth'] = newSize.width;
52
+ nodeToUpdate.layoutOptions['prefHeight'] = newSize.height;
53
+ }
54
+
55
+ nodeToUpdate.size = newSize;
56
+ nodeToUpdate.position = positionToSet;
57
+ }
58
+ }
@@ -0,0 +1,39 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 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 { ChangeRoutingPointsOperation, MaybePromise } from '@eclipse-glsp/protocol';
18
+ import { inject, injectable } from 'inversify';
19
+ import { ModelState } from '../features/model/model-state';
20
+ import { OperationHandler } from '../operations/operation-handler';
21
+ import { GLSPServerError } from '../utils/glsp-server-error';
22
+ import { applyRoutingPoints } from '../utils/layout-util';
23
+
24
+ @injectable()
25
+ export class ChangeRoutingPointsOperationHandler implements OperationHandler {
26
+ operationType = ChangeRoutingPointsOperation.KIND;
27
+
28
+ @inject(ModelState)
29
+ protected modelState: ModelState;
30
+
31
+ execute(operation: ChangeRoutingPointsOperation): MaybePromise<void> {
32
+ if (!operation.newRoutingPoints) {
33
+ throw new GLSPServerError('Incomplete change routingPoints action');
34
+ }
35
+
36
+ const index = this.modelState.index;
37
+ operation.newRoutingPoints.forEach(routingPoints => applyRoutingPoints(routingPoints, index));
38
+ }
39
+ }
@@ -0,0 +1,51 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GModelRoot } from '@eclipse-glsp/graph';
17
+ import { Action, ComputedBoundsAction, MaybePromise } from '@eclipse-glsp/protocol';
18
+ import { inject, injectable } from 'inversify';
19
+ import { ActionHandler } from '../actions/action-handler';
20
+ import { ModelState } from '../features/model/model-state';
21
+ import { ModelSubmissionHandler } from '../features/model/model-submission-handler';
22
+ import { applyAlignment, applyBounds, applyRoute } from '../utils/layout-util';
23
+
24
+ @injectable()
25
+ export class ComputedBoundsActionHandler implements ActionHandler {
26
+ @inject(ModelSubmissionHandler)
27
+ protected submissionHandler: ModelSubmissionHandler;
28
+
29
+ @inject(ModelState)
30
+ protected modelState: ModelState;
31
+
32
+ actionKinds = [ComputedBoundsAction.KIND];
33
+ execute(action: ComputedBoundsAction): MaybePromise<Action[]> {
34
+ const model = this.modelState.root;
35
+ if (action.revision === model.revision) {
36
+ this.applyBounds(model, action);
37
+ return this.submissionHandler.submitModelDirectly();
38
+ }
39
+
40
+ return [];
41
+ }
42
+
43
+ protected applyBounds(root: GModelRoot, action: ComputedBoundsAction): void {
44
+ const index = this.modelState.index;
45
+ action.bounds.forEach(bounds => applyBounds(bounds, index));
46
+ (action.alignments ?? []).forEach(alignment => applyAlignment(alignment, index));
47
+ (action.routes ?? []).forEach(route => applyRoute(route, index));
48
+ }
49
+
50
+ priority?: number | undefined;
51
+ }