@eclipse-glsp/client 1.1.0-next.383e4e9.264 → 1.1.0-next.3d1b3e6.280

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 (387) hide show
  1. package/css/decoration.css +0 -7
  2. package/css/glsp-sprotty.css +7 -0
  3. package/css/key-shortcut.css +5 -1
  4. package/{lib/base/source-uri-aware.js → css/navigation.css} +11 -9
  5. package/css/status-overlay.css +75 -0
  6. package/css/toast.css +45 -0
  7. package/lib/base/action-dispatcher.d.ts +8 -2
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +15 -7
  10. package/lib/base/action-dispatcher.js.map +1 -1
  11. package/lib/base/action-dispatcher.spec.d.ts +2 -0
  12. package/lib/base/action-dispatcher.spec.d.ts.map +1 -0
  13. package/lib/base/action-dispatcher.spec.js +78 -0
  14. package/lib/base/action-dispatcher.spec.js.map +1 -0
  15. package/lib/base/action-handler-registry.d.ts +25 -0
  16. package/lib/base/action-handler-registry.d.ts.map +1 -0
  17. package/lib/{features/tools/base-glsp-creation-tool.js → base/action-handler-registry.js} +20 -25
  18. package/lib/base/action-handler-registry.js.map +1 -0
  19. package/lib/base/default.module.d.ts +1 -10
  20. package/lib/base/default.module.d.ts.map +1 -1
  21. package/lib/base/default.module.js +20 -30
  22. package/lib/base/default.module.js.map +1 -1
  23. package/lib/base/editor-context-service.d.ts +17 -5
  24. package/lib/base/editor-context-service.d.ts.map +1 -1
  25. package/lib/base/editor-context-service.js +41 -14
  26. package/lib/base/editor-context-service.js.map +1 -1
  27. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -1
  28. package/lib/base/feedback/feedback-action-dispatcher.js +5 -3
  29. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
  30. package/lib/base/focus/focus-tracker.d.ts +4 -0
  31. package/lib/base/focus/focus-tracker.d.ts.map +1 -1
  32. package/lib/base/focus/focus-tracker.js +12 -5
  33. package/lib/base/focus/focus-tracker.js.map +1 -1
  34. package/lib/base/model/diagram-loader.d.ts +116 -0
  35. package/lib/base/model/diagram-loader.d.ts.map +1 -0
  36. package/lib/base/model/diagram-loader.js +130 -0
  37. package/lib/base/model/diagram-loader.js.map +1 -0
  38. package/lib/base/model/glsp-model-source.d.ts +74 -0
  39. package/lib/base/model/glsp-model-source.d.ts.map +1 -0
  40. package/lib/base/model/glsp-model-source.js +178 -0
  41. package/lib/base/model/glsp-model-source.js.map +1 -0
  42. package/lib/base/{model-initialization-constraint.d.ts → model/model-initialization-constraint.d.ts} +24 -3
  43. package/lib/base/model/model-initialization-constraint.d.ts.map +1 -0
  44. package/lib/base/{model-initialization-constraint.js → model/model-initialization-constraint.js} +20 -10
  45. package/lib/base/model/model-initialization-constraint.js.map +1 -0
  46. package/lib/base/model/model-initialization-constraint.spec.d.ts +2 -0
  47. package/lib/base/model/model-initialization-constraint.spec.d.ts.map +1 -0
  48. package/lib/base/model/model-initialization-constraint.spec.js +97 -0
  49. package/lib/base/model/model-initialization-constraint.spec.js.map +1 -0
  50. package/lib/base/selection-service.spec.js +9 -8
  51. package/lib/base/selection-service.spec.js.map +1 -1
  52. package/lib/base/tool-manager/tool-manager.d.ts +82 -0
  53. package/lib/base/tool-manager/tool-manager.d.ts.map +1 -0
  54. package/lib/base/tool-manager/tool-manager.js +140 -0
  55. package/lib/base/tool-manager/tool-manager.js.map +1 -0
  56. package/lib/base/tool-manager/tool.d.ts +54 -0
  57. package/lib/base/tool-manager/tool.d.ts.map +1 -0
  58. package/lib/base/tool-manager/tool.js +60 -0
  59. package/lib/base/tool-manager/tool.js.map +1 -0
  60. package/lib/default-modules.d.ts +20 -26
  61. package/lib/default-modules.d.ts.map +1 -1
  62. package/lib/default-modules.js +31 -29
  63. package/lib/default-modules.js.map +1 -1
  64. package/lib/features/accessibility/accessibility-module.d.ts.map +1 -1
  65. package/lib/features/accessibility/accessibility-module.js +6 -0
  66. package/lib/features/accessibility/accessibility-module.js.map +1 -1
  67. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.d.ts +65 -0
  68. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.d.ts.map +1 -0
  69. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js +290 -0
  70. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js.map +1 -0
  71. package/lib/features/accessibility/element-navigation/element-navigation-module.d.ts +24 -0
  72. package/lib/features/accessibility/element-navigation/element-navigation-module.d.ts.map +1 -0
  73. package/lib/features/accessibility/element-navigation/element-navigation-module.js +38 -0
  74. package/lib/features/accessibility/element-navigation/element-navigation-module.js.map +1 -0
  75. package/lib/features/accessibility/element-navigation/element-navigator.d.ts +26 -0
  76. package/lib/features/accessibility/element-navigation/element-navigator.d.ts.map +1 -0
  77. package/{src/base/source-uri-aware.ts → lib/features/accessibility/element-navigation/element-navigator.js} +4 -9
  78. package/lib/features/accessibility/element-navigation/element-navigator.js.map +1 -0
  79. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.d.ts +28 -0
  80. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.d.ts.map +1 -0
  81. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.js +104 -0
  82. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.js.map +1 -0
  83. package/lib/features/accessibility/element-navigation/local-element-navigator.d.ts +35 -0
  84. package/lib/features/accessibility/element-navigation/local-element-navigator.d.ts.map +1 -0
  85. package/lib/features/accessibility/element-navigation/local-element-navigator.js +117 -0
  86. package/lib/features/accessibility/element-navigation/local-element-navigator.js.map +1 -0
  87. package/lib/features/accessibility/element-navigation/position-navigator.d.ts +32 -0
  88. package/lib/features/accessibility/element-navigation/position-navigator.d.ts.map +1 -0
  89. package/lib/features/accessibility/element-navigation/position-navigator.js +80 -0
  90. package/lib/features/accessibility/element-navigation/position-navigator.js.map +1 -0
  91. package/lib/features/accessibility/focus-tracker/focus-tracker-module.d.ts +23 -0
  92. package/lib/features/accessibility/focus-tracker/focus-tracker-module.d.ts.map +1 -0
  93. package/lib/features/accessibility/focus-tracker/focus-tracker-module.js +33 -0
  94. package/lib/features/accessibility/focus-tracker/focus-tracker-module.js.map +1 -0
  95. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.d.ts +37 -0
  96. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.d.ts.map +1 -0
  97. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.js +133 -0
  98. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.js.map +1 -0
  99. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.d.ts +2 -2
  100. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.d.ts.map +1 -1
  101. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.js +2 -2
  102. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.js.map +1 -1
  103. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.d.ts +1 -0
  104. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.d.ts.map +1 -1
  105. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js +15 -3
  106. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js.map +1 -1
  107. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +2 -2
  108. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -1
  109. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +22 -15
  110. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
  111. package/lib/features/accessibility/search/search-palette.d.ts.map +1 -1
  112. package/lib/features/accessibility/search/search-palette.js +3 -1
  113. package/lib/features/accessibility/search/search-palette.js.map +1 -1
  114. package/lib/features/accessibility/search/search-tool.d.ts +2 -1
  115. package/lib/features/accessibility/search/search-tool.d.ts.map +1 -1
  116. package/lib/features/accessibility/search/search-tool.js +4 -8
  117. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  118. package/lib/features/accessibility/toast/messages.json +16 -0
  119. package/lib/features/accessibility/toast/toast-handler.d.ts +45 -0
  120. package/lib/features/accessibility/toast/toast-handler.d.ts.map +1 -0
  121. package/lib/features/accessibility/toast/toast-handler.js +54 -0
  122. package/lib/features/accessibility/toast/toast-handler.js.map +1 -0
  123. package/lib/features/accessibility/toast/toast-module.d.ts +24 -0
  124. package/lib/features/accessibility/toast/toast-module.d.ts.map +1 -0
  125. package/lib/features/accessibility/toast/toast-module.js +38 -0
  126. package/lib/features/accessibility/toast/toast-module.js.map +1 -0
  127. package/lib/features/accessibility/toast/toast-tool.d.ts +43 -0
  128. package/lib/features/accessibility/toast/toast-tool.d.ts.map +1 -0
  129. package/lib/features/accessibility/toast/toast-tool.js +115 -0
  130. package/lib/features/accessibility/toast/toast-tool.js.map +1 -0
  131. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts +2 -2
  132. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts.map +1 -1
  133. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +2 -2
  134. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
  135. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +4 -8
  136. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  137. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +2 -2
  138. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -1
  139. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +9 -13
  140. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
  141. package/lib/features/bounds/bounds-module.d.ts.map +1 -1
  142. package/lib/features/bounds/bounds-module.js +2 -1
  143. package/lib/features/bounds/bounds-module.js.map +1 -1
  144. package/lib/features/command-palette/command-palette-tool.d.ts +2 -1
  145. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  146. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  147. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  148. package/lib/features/command-palette/server-command-palette-provider.js +3 -2
  149. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  150. package/lib/features/context-menu/context-menu-module.d.ts.map +1 -1
  151. package/lib/features/context-menu/context-menu-module.js +8 -8
  152. package/lib/features/context-menu/context-menu-module.js.map +1 -1
  153. package/lib/features/context-menu/{selection-service-aware-context-menu-mouse-listener.d.ts → glsp-context-menu-mouse-listener.d.ts} +2 -4
  154. package/lib/features/context-menu/glsp-context-menu-mouse-listener.d.ts.map +1 -0
  155. package/lib/features/context-menu/{selection-service-aware-context-menu-mouse-listener.js → glsp-context-menu-mouse-listener.js} +7 -12
  156. package/lib/features/context-menu/glsp-context-menu-mouse-listener.js.map +1 -0
  157. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
  158. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  159. package/lib/features/context-menu/server-context-menu-provider.js +3 -2
  160. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  161. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  162. package/lib/features/copy-paste/copy-paste-context-menu.js +1 -4
  163. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  164. package/lib/features/hints/type-hints-module.d.ts.map +1 -1
  165. package/lib/features/hints/type-hints-module.js +6 -5
  166. package/lib/features/hints/type-hints-module.js.map +1 -1
  167. package/lib/features/hints/type-hints.d.ts +6 -2
  168. package/lib/features/hints/type-hints.d.ts.map +1 -1
  169. package/lib/features/hints/type-hints.js +8 -0
  170. package/lib/features/hints/type-hints.js.map +1 -1
  171. package/lib/features/hover/hover-module.d.ts.map +1 -1
  172. package/lib/features/hover/hover-module.js +3 -2
  173. package/lib/features/hover/hover-module.js.map +1 -1
  174. package/lib/features/hover/hover.d.ts.map +1 -1
  175. package/lib/features/hover/hover.js +3 -2
  176. package/lib/features/hover/hover.js.map +1 -1
  177. package/lib/features/label-edit/edit-label-tool.d.ts +2 -2
  178. package/lib/features/label-edit/edit-label-tool.d.ts.map +1 -1
  179. package/lib/features/label-edit/edit-label-tool.js +2 -2
  180. package/lib/features/label-edit/edit-label-tool.js.map +1 -1
  181. package/lib/features/label-edit/edit-label-validator.d.ts.map +1 -1
  182. package/lib/features/label-edit/edit-label-validator.js +3 -2
  183. package/lib/features/label-edit/edit-label-validator.js.map +1 -1
  184. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  185. package/lib/features/navigation/navigation-action-handler.js +1 -4
  186. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  187. package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
  188. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  189. package/lib/features/navigation/navigation-target-resolver.js +5 -7
  190. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  191. package/lib/features/select/select-mouse-listener.d.ts +4 -2
  192. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  193. package/lib/features/select/select-mouse-listener.js +17 -58
  194. package/lib/features/select/select-mouse-listener.js.map +1 -1
  195. package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -1
  196. package/lib/features/source-model-watcher/source-model-changed-action-handler.js +1 -4
  197. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  198. package/lib/features/status/status-module.d.ts +19 -0
  199. package/lib/features/status/status-module.d.ts.map +1 -0
  200. package/lib/features/status/status-module.js +28 -0
  201. package/lib/features/status/status-module.js.map +1 -0
  202. package/lib/features/status/status-overlay.d.ts +25 -0
  203. package/lib/features/status/status-overlay.d.ts.map +1 -0
  204. package/lib/features/status/status-overlay.js +124 -0
  205. package/lib/features/status/status-overlay.js.map +1 -0
  206. package/lib/features/tool-palette/tool-palette-module.d.ts.map +1 -1
  207. package/lib/features/tool-palette/tool-palette-module.js +3 -2
  208. package/lib/features/tool-palette/tool-palette-module.js.map +1 -1
  209. package/lib/features/tool-palette/tool-palette.d.ts +10 -8
  210. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  211. package/lib/features/tool-palette/tool-palette.js +36 -29
  212. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  213. package/lib/features/tools/{base-glsp-tool.d.ts → base-tools.d.ts} +14 -4
  214. package/lib/features/tools/base-tools.d.ts.map +1 -0
  215. package/lib/features/tools/{base-glsp-tool.js → base-tools.js} +31 -10
  216. package/lib/features/tools/base-tools.js.map +1 -0
  217. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts +2 -2
  218. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -1
  219. package/lib/features/tools/change-bounds/change-bounds-tool.js +2 -2
  220. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
  221. package/lib/features/tools/deletion/delete-tool.d.ts +4 -4
  222. package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -1
  223. package/lib/features/tools/deletion/delete-tool.js +4 -3
  224. package/lib/features/tools/deletion/delete-tool.js.map +1 -1
  225. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +2 -2
  226. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -1
  227. package/lib/features/tools/edge-creation/edge-creation-tool.js +5 -4
  228. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
  229. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts +2 -2
  230. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -1
  231. package/lib/features/tools/edge-edit/edge-edit-tool.js +2 -2
  232. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -1
  233. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +2 -2
  234. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -1
  235. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js +5 -4
  236. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
  237. package/lib/features/tools/marquee-selection/marquee-tool.d.ts +2 -2
  238. package/lib/features/tools/marquee-selection/marquee-tool.d.ts.map +1 -1
  239. package/lib/features/tools/marquee-selection/marquee-tool.js +4 -3
  240. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -1
  241. package/lib/features/tools/node-creation/node-creation-tool.d.ts +2 -2
  242. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
  243. package/lib/features/tools/node-creation/node-creation-tool.js +4 -3
  244. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  245. package/lib/features/tools/tool-focus-loss-module.d.ts.map +1 -1
  246. package/lib/features/tools/tool-focus-loss-module.js +2 -1
  247. package/lib/features/tools/tool-focus-loss-module.js.map +1 -1
  248. package/lib/features/validation/validate.js +1 -1
  249. package/lib/features/validation/validate.js.map +1 -1
  250. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  251. package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -2
  252. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  253. package/lib/features/viewport/reposition.d.ts +38 -0
  254. package/lib/features/viewport/reposition.d.ts.map +1 -0
  255. package/lib/features/viewport/reposition.js +109 -0
  256. package/lib/features/viewport/reposition.js.map +1 -0
  257. package/lib/features/viewport/viewport-modules.d.ts.map +1 -1
  258. package/lib/features/viewport/viewport-modules.js +5 -2
  259. package/lib/features/viewport/viewport-modules.js.map +1 -1
  260. package/lib/glsp-sprotty/augmented-actions.d.ts +2 -10
  261. package/lib/glsp-sprotty/augmented-actions.d.ts.map +1 -1
  262. package/lib/glsp-sprotty/augmented-actions.js +2 -6
  263. package/lib/glsp-sprotty/augmented-actions.js.map +1 -1
  264. package/lib/glsp-sprotty/index.d.ts +3 -6
  265. package/lib/glsp-sprotty/index.d.ts.map +1 -1
  266. package/lib/glsp-sprotty/index.js +4 -7
  267. package/lib/glsp-sprotty/index.js.map +1 -1
  268. package/lib/glsp-sprotty/types.d.ts +5 -82
  269. package/lib/glsp-sprotty/types.d.ts.map +1 -1
  270. package/lib/glsp-sprotty/types.js +2 -8
  271. package/lib/glsp-sprotty/types.js.map +1 -1
  272. package/lib/index.d.ts +17 -7
  273. package/lib/index.d.ts.map +1 -1
  274. package/lib/index.js +17 -7
  275. package/lib/index.js.map +1 -1
  276. package/lib/standalone-modules.d.ts +11 -2
  277. package/lib/standalone-modules.d.ts.map +1 -1
  278. package/lib/standalone-modules.js +37 -1
  279. package/lib/standalone-modules.js.map +1 -1
  280. package/lib/views/base-view-module.d.ts.map +1 -1
  281. package/lib/views/base-view-module.js +2 -1
  282. package/lib/views/base-view-module.js.map +1 -1
  283. package/lib/views/glsp-projection-view.d.ts +2 -1
  284. package/lib/views/glsp-projection-view.d.ts.map +1 -1
  285. package/lib/views/glsp-projection-view.js +11 -2
  286. package/lib/views/glsp-projection-view.js.map +1 -1
  287. package/package.json +4 -4
  288. package/src/base/action-dispatcher.spec.ts +87 -0
  289. package/src/base/action-dispatcher.ts +24 -10
  290. package/src/{features/tools/base-glsp-creation-tool.ts → base/action-handler-registry.ts} +10 -20
  291. package/src/base/default.module.ts +21 -34
  292. package/src/base/editor-context-service.ts +49 -16
  293. package/src/base/feedback/feedback-action-dispatcher.ts +5 -3
  294. package/src/base/focus/focus-tracker.ts +16 -5
  295. package/src/base/model/diagram-loader.ts +215 -0
  296. package/src/base/model/glsp-model-source.ts +199 -0
  297. package/src/base/model/model-initialization-constraint.spec.ts +95 -0
  298. package/src/base/{model-initialization-constraint.ts → model/model-initialization-constraint.ts} +43 -10
  299. package/src/base/selection-service.spec.ts +10 -9
  300. package/src/base/tool-manager/tool-manager.ts +183 -0
  301. package/src/base/tool-manager/tool.ts +85 -0
  302. package/src/default-modules.ts +37 -28
  303. package/src/features/accessibility/README.md +18 -0
  304. package/src/features/accessibility/accessibility-module.ts +6 -1
  305. package/src/features/accessibility/element-navigation/diagram-navigation-tool.ts +307 -0
  306. package/src/features/accessibility/element-navigation/element-navigation-module.ts +36 -0
  307. package/src/features/accessibility/element-navigation/element-navigator.ts +57 -0
  308. package/src/features/accessibility/element-navigation/left-right-top-bottom-navigator.ts +113 -0
  309. package/src/features/accessibility/element-navigation/local-element-navigator.ts +147 -0
  310. package/src/features/accessibility/element-navigation/position-navigator.ts +102 -0
  311. package/src/features/accessibility/focus-tracker/focus-tracker-module.ts +32 -0
  312. package/src/features/accessibility/focus-tracker/focus-tracker-tool.ts +129 -0
  313. package/src/features/accessibility/key-shortcut/accessible-key-shortcut-tool.ts +3 -3
  314. package/src/features/accessibility/key-shortcut/accessible-key-shortcut.ts +18 -3
  315. package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +30 -16
  316. package/src/features/accessibility/search/search-palette.ts +4 -2
  317. package/src/features/accessibility/search/search-tool.ts +8 -9
  318. package/src/features/accessibility/toast/messages.json +16 -0
  319. package/src/features/accessibility/toast/toast-handler.ts +69 -0
  320. package/src/features/accessibility/toast/toast-module.ts +36 -0
  321. package/src/features/accessibility/toast/toast-tool.ts +108 -0
  322. package/src/features/accessibility/view-key-tools/deselect-key-tool.ts +2 -2
  323. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +8 -10
  324. package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +13 -15
  325. package/src/features/bounds/bounds-module.ts +2 -2
  326. package/src/features/command-palette/command-palette-tool.ts +2 -1
  327. package/src/features/command-palette/server-command-palette-provider.ts +3 -2
  328. package/src/features/context-menu/context-menu-module.ts +11 -12
  329. package/src/features/context-menu/{selection-service-aware-context-menu-mouse-listener.ts → glsp-context-menu-mouse-listener.ts} +1 -5
  330. package/src/features/context-menu/server-context-menu-provider.ts +3 -2
  331. package/src/features/copy-paste/copy-paste-context-menu.ts +3 -6
  332. package/src/features/hints/type-hints-module.ts +7 -6
  333. package/src/features/hints/type-hints.ts +12 -1
  334. package/src/features/hover/hover-module.ts +1 -2
  335. package/src/features/hover/hover.ts +2 -3
  336. package/src/features/label-edit/edit-label-tool.ts +2 -2
  337. package/src/features/label-edit/edit-label-validator.ts +7 -6
  338. package/src/features/navigation/navigation-action-handler.ts +5 -8
  339. package/src/features/navigation/navigation-target-resolver.ts +10 -7
  340. package/src/features/select/select-mouse-listener.ts +27 -79
  341. package/src/features/source-model-watcher/source-model-changed-action-handler.ts +3 -6
  342. package/src/features/status/status-module.ts +26 -0
  343. package/src/features/status/status-overlay.ts +121 -0
  344. package/src/features/tool-palette/tool-palette-module.ts +4 -3
  345. package/src/features/tool-palette/tool-palette.ts +44 -33
  346. package/src/features/tools/{base-glsp-tool.ts → base-tools.ts} +28 -3
  347. package/src/features/tools/change-bounds/change-bounds-tool.ts +2 -2
  348. package/src/features/tools/deletion/delete-tool.ts +4 -5
  349. package/src/features/tools/edge-creation/edge-creation-tool.ts +3 -3
  350. package/src/features/tools/edge-edit/edge-edit-tool.ts +2 -2
  351. package/src/features/tools/marquee-selection/marquee-mouse-tool.ts +3 -3
  352. package/src/features/tools/marquee-selection/marquee-tool.ts +4 -3
  353. package/src/features/tools/node-creation/node-creation-tool.ts +3 -3
  354. package/src/features/tools/tool-focus-loss-module.ts +2 -1
  355. package/src/features/validation/validate.ts +1 -1
  356. package/src/features/viewport/glsp-scroll-mouse-listener.ts +2 -9
  357. package/src/features/viewport/reposition.ts +119 -0
  358. package/src/features/viewport/viewport-modules.ts +3 -2
  359. package/src/glsp-sprotty/augmented-actions.ts +1 -16
  360. package/src/glsp-sprotty/index.ts +4 -7
  361. package/src/glsp-sprotty/types.ts +6 -8
  362. package/src/index.ts +17 -7
  363. package/src/standalone-modules.ts +40 -1
  364. package/src/views/base-view-module.ts +2 -2
  365. package/src/views/glsp-projection-view.tsx +18 -8
  366. package/lib/base/model-initialization-constraint.d.ts.map +0 -1
  367. package/lib/base/model-initialization-constraint.js.map +0 -1
  368. package/lib/base/source-uri-aware.d.ts +0 -5
  369. package/lib/base/source-uri-aware.d.ts.map +0 -1
  370. package/lib/base/source-uri-aware.js.map +0 -1
  371. package/lib/base/tool-manager/glsp-tool-manager.d.ts +0 -21
  372. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +0 -1
  373. package/lib/base/tool-manager/glsp-tool-manager.js +0 -113
  374. package/lib/base/tool-manager/glsp-tool-manager.js.map +0 -1
  375. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +0 -1
  376. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +0 -1
  377. package/lib/features/tools/base-glsp-creation-tool.d.ts +0 -10
  378. package/lib/features/tools/base-glsp-creation-tool.d.ts.map +0 -1
  379. package/lib/features/tools/base-glsp-creation-tool.js.map +0 -1
  380. package/lib/features/tools/base-glsp-tool.d.ts.map +0 -1
  381. package/lib/features/tools/base-glsp-tool.js.map +0 -1
  382. package/lib/model-source/glsp-diagram-server.d.ts +0 -21
  383. package/lib/model-source/glsp-diagram-server.d.ts.map +0 -1
  384. package/lib/model-source/glsp-diagram-server.js +0 -107
  385. package/lib/model-source/glsp-diagram-server.js.map +0 -1
  386. package/src/base/tool-manager/glsp-tool-manager.ts +0 -96
  387. package/src/model-source/glsp-diagram-server.ts +0 -125
@@ -1 +1 @@
1
- {"version":3,"file":"default.module.js","sourceRoot":"","sources":["../../src/base/default.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default.module.js","sourceRoot":"","sources":["../../src/base/default.module.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import { Action, Args, Disposable, DisposableCollection, EditorContext, Emitter, Event, IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot, ValueChange } from '../glsp-sprotty/index';
1
+ import { Action, Args, Disposable, DisposableCollection, EditorContext, Emitter, Event, IActionHandler, MaybePromise, MousePositionTracker, SModelElement, SModelRoot, SetDirtyStateAction, SetEditModeAction, ValueChange } from '../glsp-sprotty/index';
2
+ import { GLSPActionDispatcher } from './action-dispatcher';
3
+ import { IDiagramOptions, IDiagramStartup } from './model/diagram-loader';
2
4
  import { SelectionService } from './selection-service';
3
5
  export interface IEditModeListener {
4
6
  editModeChanged(newValue: string, oldValue: string): void;
5
7
  }
8
+ export type DirtyStateChange = Pick<SetDirtyStateAction, 'isDirty' | 'reason'>;
6
9
  /**
7
10
  * The `EditorContextService` is a central injectable component that gives read-only access to
8
11
  * certain aspects of the diagram, such as the currently selected elements, the model root,
@@ -15,26 +18,35 @@ export interface IEditModeListener {
15
18
  * actions to the server to describe the current state of the editor (selection, last mouse
16
19
  * position, etc.).
17
20
  */
18
- export declare class EditorContextService implements IActionHandler, Disposable {
21
+ export declare class EditorContextService implements IActionHandler, Disposable, IDiagramStartup {
19
22
  protected selectionService: SelectionService;
20
23
  protected mousePositionTracker: MousePositionTracker;
24
+ protected diagramOptions: IDiagramOptions;
21
25
  protected editModeListeners: IEditModeListener[];
22
- protected modelSourceProvider: () => Promise<ModelSource>;
26
+ protected actionDispatcher: GLSPActionDispatcher;
23
27
  protected _editMode: string;
24
28
  protected onEditModeChangedEmitter: Emitter<ValueChange<string>>;
25
29
  get onEditModeChanged(): Event<ValueChange<string>>;
30
+ protected _isDirty: boolean;
31
+ protected onDirtyStateChangedEmitter: Emitter<DirtyStateChange>;
32
+ get onDirtyStateChanged(): Event<DirtyStateChange>;
26
33
  protected toDispose: DisposableCollection;
27
34
  protected initialize(): void;
28
35
  dispose(): void;
29
36
  get(args?: Args): EditorContext;
30
37
  getWithSelection(selectedElementIds: string[], args?: Args): EditorContext;
31
38
  handle(action: Action): void;
32
- protected notifyEditModeListeners(oldValue: string): void;
33
- getSourceUri(): Promise<string | undefined>;
39
+ protected handleSetEditModeAction(action: SetEditModeAction): void;
40
+ protected handleSetDirtyStateAction(action: SetDirtyStateAction): void;
41
+ get sourceUri(): string | undefined;
34
42
  get editMode(): string;
43
+ get diagramType(): string;
44
+ get clientId(): string;
35
45
  get modelRoot(): Readonly<SModelRoot>;
36
46
  get selectedElements(): Readonly<SModelElement>[];
37
47
  get isReadonly(): boolean;
48
+ get isDirty(): boolean;
49
+ postRequestModel(): MaybePromise<void>;
38
50
  }
39
51
  export type EditorContextServiceProvider = () => Promise<EditorContextService>;
40
52
  //# sourceMappingURL=editor-context-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-context-service.d.ts","sourceRoot":"","sources":["../../src/base/editor-context-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,MAAM,EACN,IAAI,EACJ,UAAU,EACV,oBAAoB,EAEpB,aAAa,EACb,OAAO,EACP,KAAK,EACL,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,UAAU,EAGV,WAAW,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAC9B,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,qBACa,oBAAqB,YAAW,cAAc,EAAE,UAAU;IAEnE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAIrD,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAM;IAGtD,SAAS,CAAC,mBAAmB,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAE1D,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAE5B,SAAS,CAAC,wBAAwB,+BAAsC;IACxE,IAAI,iBAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAElD;IAED,SAAS,CAAC,SAAS,uBAA8B;IAGjD,SAAS,CAAC,UAAU,IAAI,IAAI;IAQ5B,OAAO,IAAI,IAAI;IAIf,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,aAAa;IAQ/B,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,aAAa;IAQ1E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInD,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQjD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,CAEpC;IAED,IAAI,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAEhD;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;CACJ;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"editor-context-service.d.ts","sourceRoot":"","sources":["../../src/base/editor-context-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,MAAM,EACN,IAAI,EACJ,UAAU,EACV,oBAAoB,EAEpB,aAAa,EACb,OAAO,EACP,KAAK,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EAEjB,WAAW,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAC9B,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AAC/E;;;;;;;;;;;GAWG;AACH,qBACa,oBAAqB,YAAW,cAAc,EAAE,UAAU,EAAE,eAAe;IAEpF,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAI1C,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAM;IAGtD,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAEjD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,wBAAwB,+BAAsC;IACxE,IAAI,iBAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAElD;IAED,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,0BAA0B,4BAAmC;IACvE,IAAI,mBAAmB,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAEjD;IAED,SAAS,CAAC,SAAS,uBAA8B;IAGjD,SAAS,CAAC,UAAU,IAAI,IAAI;IAS5B,OAAO,IAAI,IAAI;IAIf,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,aAAa;IAQ/B,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,aAAa;IAQ1E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAMlE,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAOtE,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,CAEpC;IAED,IAAI,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAEhD;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC;CAGzC;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
@@ -27,8 +27,8 @@ exports.EditorContextService = void 0;
27
27
  ********************************************************************************/
28
28
  const inversify_1 = require("inversify");
29
29
  const _glsp_sprotty_1 = require("../glsp-sprotty/index");
30
+ const action_dispatcher_1 = require("./action-dispatcher");
30
31
  const selection_service_1 = require("./selection-service");
31
- const source_uri_aware_1 = require("./source-uri-aware");
32
32
  /**
33
33
  * The `EditorContextService` is a central injectable component that gives read-only access to
34
34
  * certain aspects of the diagram, such as the currently selected elements, the model root,
@@ -45,13 +45,19 @@ let EditorContextService = exports.EditorContextService = class EditorContextSer
45
45
  constructor() {
46
46
  this.editModeListeners = [];
47
47
  this.onEditModeChangedEmitter = new _glsp_sprotty_1.Emitter();
48
+ this.onDirtyStateChangedEmitter = new _glsp_sprotty_1.Emitter();
48
49
  this.toDispose = new _glsp_sprotty_1.DisposableCollection();
49
50
  }
50
51
  get onEditModeChanged() {
51
52
  return this.onEditModeChangedEmitter.event;
52
53
  }
54
+ get onDirtyStateChanged() {
55
+ return this.onDirtyStateChangedEmitter.event;
56
+ }
53
57
  initialize() {
54
- this.toDispose.push(this.onEditModeChangedEmitter);
58
+ var _a;
59
+ this._editMode = (_a = this.diagramOptions.editMode) !== null && _a !== void 0 ? _a : _glsp_sprotty_1.EditMode.EDITABLE;
60
+ this.toDispose.push(this.onEditModeChangedEmitter, this.onDirtyStateChangedEmitter);
55
61
  this.editModeListeners.forEach(listener => this.onEditModeChanged(change => listener.editModeChanged(change.newValue, change.oldValue)));
56
62
  }
57
63
  dispose() {
@@ -73,24 +79,35 @@ let EditorContextService = exports.EditorContextService = class EditorContextSer
73
79
  }
74
80
  handle(action) {
75
81
  if (_glsp_sprotty_1.SetEditModeAction.is(action)) {
76
- const oldValue = this._editMode;
77
- this._editMode = action.editMode;
78
- this.notifyEditModeListeners(oldValue);
82
+ this.handleSetEditModeAction(action);
83
+ }
84
+ else if (_glsp_sprotty_1.SetDirtyStateAction.is(action)) {
85
+ this.handleSetDirtyStateAction(action);
79
86
  }
80
87
  }
81
- notifyEditModeListeners(oldValue) {
88
+ handleSetEditModeAction(action) {
89
+ const oldValue = this._editMode;
90
+ this._editMode = action.editMode;
82
91
  this.onEditModeChangedEmitter.fire({ newValue: this.editMode, oldValue });
83
92
  }
84
- async getSourceUri() {
85
- const modelSource = await this.modelSourceProvider();
86
- if ((0, source_uri_aware_1.isSourceUriAware)(modelSource)) {
87
- return modelSource.sourceURI;
93
+ handleSetDirtyStateAction(action) {
94
+ if (action.isDirty !== this._isDirty) {
95
+ this._isDirty = action.isDirty;
96
+ this.onDirtyStateChangedEmitter.fire(action);
88
97
  }
89
- return undefined;
98
+ }
99
+ get sourceUri() {
100
+ return this.diagramOptions.sourceUri;
90
101
  }
91
102
  get editMode() {
92
103
  return this._editMode;
93
104
  }
105
+ get diagramType() {
106
+ return this.diagramOptions.diagramType;
107
+ }
108
+ get clientId() {
109
+ return this.diagramOptions.clientId;
110
+ }
94
111
  get modelRoot() {
95
112
  return this.selectionService.getModelRoot();
96
113
  }
@@ -100,6 +117,12 @@ let EditorContextService = exports.EditorContextService = class EditorContextSer
100
117
  get isReadonly() {
101
118
  return this.editMode === _glsp_sprotty_1.EditMode.READONLY;
102
119
  }
120
+ get isDirty() {
121
+ return this._isDirty;
122
+ }
123
+ postRequestModel() {
124
+ this.actionDispatcher.dispatch(_glsp_sprotty_1.SetEditModeAction.create(this.editMode));
125
+ }
103
126
  };
104
127
  __decorate([
105
128
  (0, inversify_1.inject)(selection_service_1.SelectionService),
@@ -109,15 +132,19 @@ __decorate([
109
132
  (0, inversify_1.inject)(_glsp_sprotty_1.MousePositionTracker),
110
133
  __metadata("design:type", _glsp_sprotty_1.MousePositionTracker)
111
134
  ], EditorContextService.prototype, "mousePositionTracker", void 0);
135
+ __decorate([
136
+ (0, inversify_1.inject)(_glsp_sprotty_1.TYPES.IDiagramOptions),
137
+ __metadata("design:type", Object)
138
+ ], EditorContextService.prototype, "diagramOptions", void 0);
112
139
  __decorate([
113
140
  (0, inversify_1.multiInject)(_glsp_sprotty_1.TYPES.IEditModeListener),
114
141
  (0, inversify_1.optional)(),
115
142
  __metadata("design:type", Array)
116
143
  ], EditorContextService.prototype, "editModeListeners", void 0);
117
144
  __decorate([
118
- (0, inversify_1.inject)(_glsp_sprotty_1.TYPES.ModelSourceProvider),
119
- __metadata("design:type", Function)
120
- ], EditorContextService.prototype, "modelSourceProvider", void 0);
145
+ (0, inversify_1.inject)(action_dispatcher_1.GLSPActionDispatcher),
146
+ __metadata("design:type", action_dispatcher_1.GLSPActionDispatcher)
147
+ ], EditorContextService.prototype, "actionDispatcher", void 0);
121
148
  __decorate([
122
149
  (0, inversify_1.postConstruct)(),
123
150
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"editor-context-service.js","sourceRoot":"","sources":["../../src/base/editor-context-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-context-service.js","sourceRoot":"","sources":["../../src/base/editor-context-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-action-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/base/feedback/feedback-action-dispatcher.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAS,MAAM,eAAe,CAAC;AAEtF,MAAM,WAAW,gBAAgB;CAAG;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;;;;OAMG;IACH,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAEtH;;;;;;;;;OASG;IACH,kBAAkB,CAAC,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEvF;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE,CAAC;CACrC;AAED,qBACa,wBAAyB,YAAW,yBAAyB;IACtE,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAa;IAEjC,SAAS,CAAC,gBAAgB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjD,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU;IAMjI,kBAAkB,CAAC,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAOlG,qBAAqB,IAAI,MAAM,EAAE;IAMjC,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;cAUjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CASxG"}
1
+ {"version":3,"file":"feedback-action-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/base/feedback/feedback-action-dispatcher.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAS,MAAM,eAAe,CAAC;AAEtF,MAAM,WAAW,gBAAgB;CAAG;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;;;;OAMG;IACH,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAEtH;;;;;;;;;OASG;IACH,kBAAkB,CAAC,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEvF;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE,CAAC;CACrC;AAED,qBACa,wBAAyB,YAAW,yBAAyB;IACtE,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAa;IAEjC,SAAS,CAAC,gBAAgB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjD,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU;IAQjI,kBAAkB,CAAC,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAOlG,qBAAqB,IAAI,MAAM,EAAE;IAMjC,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;cAUjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CASxG"}
@@ -32,13 +32,15 @@ let FeedbackActionDispatcher = exports.FeedbackActionDispatcher = class Feedback
32
32
  this.registeredFeedback = new Map();
33
33
  }
34
34
  registerFeedback(feedbackEmitter, feedbackActions, cleanupActions) {
35
- this.registeredFeedback.set(feedbackEmitter, feedbackActions);
36
- this.dispatchFeedback(feedbackActions, feedbackEmitter);
35
+ if (feedbackActions.length > 0) {
36
+ this.registeredFeedback.set(feedbackEmitter, feedbackActions);
37
+ this.dispatchFeedback(feedbackActions, feedbackEmitter);
38
+ }
37
39
  return _glsp_sprotty_1.Disposable.create(() => this.deregisterFeedback(feedbackEmitter, cleanupActions));
38
40
  }
39
41
  deregisterFeedback(feedbackEmitter, cleanupActions) {
40
42
  this.registeredFeedback.delete(feedbackEmitter);
41
- if (cleanupActions) {
43
+ if (cleanupActions && cleanupActions.length > 0) {
42
44
  this.dispatchFeedback(cleanupActions, feedbackEmitter);
43
45
  }
44
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-action-dispatcher.js","sourceRoot":"","sources":["../../../src/base/feedback/feedback-action-dispatcher.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA+C;AAC/C,iDAAsF;AA8C/E,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IAA9B;QACO,uBAAkB,GAAoC,IAAI,GAAG,EAAE,CAAC;IA2C9E,CAAC;IAtCG,gBAAgB,CAAC,eAAiC,EAAE,eAAyB,EAAE,cAAqC;QAChH,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QACxD,OAAO,0BAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,kBAAkB,CAAC,eAAiC,EAAE,cAAqC;QACvF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;SAC1D;IACL,CAAC;IAED,qBAAqB;QACjB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,6BAA6B,CAAC,MAAc;QACxC,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,OAAiB,EAAE,eAAiC;QACjF,IAAI;YACA,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvD,MAAM,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,eAAe,EAAE,CAAC,CAAC;SAChF;QAAC,OAAO,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qCAAqC,EAAE,MAAM,CAAC,CAAC;SAC1E;IACL,CAAC;CACJ,CAAA;AAzCsD;IAAlD,IAAA,kBAAM,EAAC,qBAAK,CAAC,yBAAyB,CAAC;;kEAA8D;AACrE;IAAhC,IAAA,kBAAM,EAAC,qBAAK,CAAC,OAAO,CAAC;;wDAA2B;mCAJxC,wBAAwB;IADpC,IAAA,sBAAU,GAAE;GACA,wBAAwB,CA4CpC"}
1
+ {"version":3,"file":"feedback-action-dispatcher.js","sourceRoot":"","sources":["../../../src/base/feedback/feedback-action-dispatcher.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA+C;AAC/C,iDAAsF;AA8C/E,IAAM,wBAAwB,sCAA9B,MAAM,wBAAwB;IAA9B;QACO,uBAAkB,GAAoC,IAAI,GAAG,EAAE,CAAC;IA6C9E,CAAC;IAxCG,gBAAgB,CAAC,eAAiC,EAAE,eAAyB,EAAE,cAAqC;QAChH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;YAC9D,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;SAC3D;QACD,OAAO,0BAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,kBAAkB,CAAC,eAAiC,EAAE,cAAqC;QACvF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;SAC1D;IACL,CAAC;IAED,qBAAqB;QACjB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,6BAA6B,CAAC,MAAc;QACxC,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,OAAiB,EAAE,eAAiC;QACjF,IAAI;YACA,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvD,MAAM,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,eAAe,EAAE,CAAC,CAAC;SAChF;QAAC,OAAO,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qCAAqC,EAAE,MAAM,CAAC,CAAC;SAC1E;IACL,CAAC;CACJ,CAAA;AA3CsD;IAAlD,IAAA,kBAAM,EAAC,qBAAK,CAAC,yBAAyB,CAAC;;kEAA8D;AACrE;IAAhC,IAAA,kBAAM,EAAC,qBAAK,CAAC,OAAO,CAAC;;wDAA2B;mCAJxC,wBAAwB;IADpC,IAAA,sBAAU,GAAE;GACA,wBAAwB,CA8CpC"}
@@ -2,8 +2,12 @@ import { Action, IActionHandler, ICommand, ViewerOptions } from '../../glsp-spro
2
2
  export declare class FocusTracker implements IActionHandler {
3
3
  protected inActiveCssClass: string;
4
4
  protected _hasFocus: boolean;
5
+ protected _focusElement: HTMLOrSVGElement | null;
6
+ protected _diagramElement: HTMLElement | null;
5
7
  protected options: ViewerOptions;
6
8
  get hasFocus(): boolean;
9
+ get focusElement(): HTMLOrSVGElement | null;
10
+ get diagramElement(): HTMLElement | null;
7
11
  handle(action: Action): void | Action | ICommand;
8
12
  }
9
13
  //# sourceMappingURL=focus-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"focus-tracker.d.ts","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAS,aAAa,EAAE,MAAM,eAAe,CAAC;AAGvF,qBACa,YAAa,YAAW,cAAc;IAC/C,SAAS,CAAC,gBAAgB,SAAc;IACxC,SAAS,CAAC,SAAS,UAAQ;IAEE,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IAE9D,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ;CAgBnD"}
1
+ {"version":3,"file":"focus-tracker.d.ts","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAS,aAAa,EAAE,MAAM,eAAe,CAAC;AAGvF,qBACa,YAAa,YAAW,cAAc;IAC/C,SAAS,CAAC,gBAAgB,SAAc;IACxC,SAAS,CAAC,SAAS,UAAQ;IAC3B,SAAS,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjD,SAAS,CAAC,eAAe,EAAE,WAAW,GAAG,IAAI,CAAC;IAEjB,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IAE9D,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,YAAY,IAAI,gBAAgB,GAAG,IAAI,CAE1C;IAED,IAAI,cAAc,IAAI,WAAW,GAAG,IAAI,CAEvC;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ;CAiBnD"}
@@ -36,20 +36,27 @@ let FocusTracker = exports.FocusTracker = class FocusTracker {
36
36
  get hasFocus() {
37
37
  return this._hasFocus;
38
38
  }
39
+ get focusElement() {
40
+ return this._focusElement;
41
+ }
42
+ get diagramElement() {
43
+ return this._diagramElement;
44
+ }
39
45
  handle(action) {
40
46
  if (focus_state_change_action_1.FocusStateChangedAction.is(action)) {
41
47
  this._hasFocus = action.hasFocus;
42
- const placeholder = document.getElementById(this.options.baseDiv);
43
- if (!placeholder) {
48
+ this._focusElement = document.activeElement;
49
+ this._diagramElement = document.getElementById(this.options.baseDiv);
50
+ if (!this._diagramElement) {
44
51
  return;
45
52
  }
46
53
  if (this.hasFocus) {
47
- if (placeholder.classList.contains(this.inActiveCssClass)) {
48
- placeholder.classList.remove(this.inActiveCssClass);
54
+ if (this._diagramElement.classList.contains(this.inActiveCssClass)) {
55
+ this._diagramElement.classList.remove(this.inActiveCssClass);
49
56
  }
50
57
  }
51
58
  else {
52
- placeholder.classList.add(this.inActiveCssClass);
59
+ this._diagramElement.classList.add(this.inActiveCssClass);
53
60
  }
54
61
  }
55
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"focus-tracker.js","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA+C;AAC/C,iDAAuF;AACvF,2EAAsE;AAG/D,IAAM,YAAY,0BAAlB,MAAM,YAAY;IAAlB;QACO,qBAAgB,GAAG,UAAU,CAAC;QAC9B,cAAS,GAAG,IAAI,CAAC;IAwB/B,CAAC;IApBG,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,mDAAuB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO;aACV;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;oBACvD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBACvD;aACJ;iBAAM;gBACH,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACpD;SACJ;IACL,CAAC;CACJ,CAAA;AAtB0C;IAAtC,IAAA,kBAAM,EAAC,qBAAK,CAAC,aAAa,CAAC;;6CAAkC;uBAJrD,YAAY;IADxB,IAAA,sBAAU,GAAE;GACA,YAAY,CA0BxB"}
1
+ {"version":3,"file":"focus-tracker.js","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA+C;AAC/C,iDAAuF;AACvF,2EAAsE;AAG/D,IAAM,YAAY,0BAAlB,MAAM,YAAY;IAAlB;QACO,qBAAgB,GAAG,UAAU,CAAC;QAC9B,cAAS,GAAG,IAAI,CAAC;IAmC/B,CAAC;IA7BG,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,mDAAuB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAwC,CAAC;YACvE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACvB,OAAO;aACV;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;oBAChE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAChE;aACJ;iBAAM;gBACH,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC7D;SACJ;IACL,CAAC;CACJ,CAAA;AA/B0C;IAAtC,IAAA,kBAAM,EAAC,qBAAK,CAAC,aAAa,CAAC;;6CAAkC;uBANrD,YAAY;IADxB,IAAA,sBAAU,GAAE;GACA,YAAY,CAqCxB"}
@@ -0,0 +1,116 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 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
+ import { Args, GLSPClient, InitializeParameters, MaybePromise } from '../../glsp-sprotty/index';
17
+ import { GLSPActionDispatcher } from '../action-dispatcher';
18
+ import { Ranked } from '../ranked';
19
+ import { GLSPModelSource } from './glsp-model-source';
20
+ import { ModelInitializationConstraint } from './model-initialization-constraint';
21
+ /**
22
+ * Configuration options for a specific GLSP diagram instance.
23
+ */
24
+ export interface IDiagramOptions {
25
+ /**
26
+ * Unique id associated with this diagram. Used on the server side to identify the
27
+ * corresponding client session.
28
+ */
29
+ clientId: string;
30
+ /**
31
+ * The diagram type i.e. diagram language this diagram is associated with.
32
+ */
33
+ diagramType: string;
34
+ /**
35
+ * The provider function to retrieve the GLSP client used by this diagram to communicate with the server.
36
+ * Multiple invocations of the provder function should always return the same `GLSPClient` instance.
37
+ */
38
+ glspClientProvider: () => Promise<GLSPClient>;
39
+ /**
40
+ * The file source URI associated with this diagram.
41
+ */
42
+ sourceUri?: string;
43
+ /**
44
+ * The initial edit mode of diagram. Defaults to `editable`.
45
+ */
46
+ editMode?: string;
47
+ }
48
+ /**
49
+ * Services that implement startup hooks which are invoked during the {@link DiagramLoader.load} process.
50
+ * Typically used to dispatch additional initial actions and/or activate UI extensions on startup.
51
+ * Execution order is derived by the `rank` property of the service. If not present, the {@link Ranked.DEFAULT_RANK} will be assumed.
52
+ */
53
+ export interface IDiagramStartup extends Partial<Ranked> {
54
+ /**
55
+ * Hook for services that should be executed before the underlying GLSP client is configured and the server is initialized.
56
+ */
57
+ preInitialize?(): MaybePromise<void>;
58
+ /**
59
+ * Hook for services that should be executed before the initial model loading request (i.e. `RequestModelAction`) but
60
+ * after the underlying GLSP client has been configured and the server is initialized.
61
+ */
62
+ preRequestModel?(): MaybePromise<void>;
63
+ /**
64
+ * Hook for services that should be executed after the initial model loading request (i.e. `RequestModelAction`).
65
+ * Note that this hook is invoked directly after the `RequestModelAction` has been dispatched. It does not necessarily wait
66
+ * until the client-server update roundtrip is completed. If you need to wait until the diagram is fully initialized use the
67
+ * {@link postModelInitialization} hook.
68
+ */
69
+ postRequestModel?(): MaybePromise<void>;
70
+ postModelInitialization?(): MaybePromise<void>;
71
+ }
72
+ export declare namespace IDiagramStartup {
73
+ function is(object: unknown): object is IDiagramStartup;
74
+ }
75
+ export interface DiagramLoadingOptions {
76
+ /**
77
+ * Optional custom options that should be used the initial {@link RequestModelAction}.
78
+ * These options will be merged with the default options (`diagramType` and `sourceUri`).
79
+ * Defaults to an empty object if not defined.
80
+ */
81
+ requestModelOptions?: Args;
82
+ /**
83
+ * Optional partial {@link InitializeParameters} that should be used for `initializeServer` request if the underlying
84
+ * {@link GLSPClient} has not been initialized yet.
85
+ */
86
+ initializeParameters?: Partial<InitializeParameters>;
87
+ /**
88
+ * Flag to enable/disable client side notifications during the loading process.
89
+ * Defaults to `true` if not defined
90
+ */
91
+ enableNotifications?: boolean;
92
+ }
93
+ export interface ResolvedDiagramLoadingOptions {
94
+ requestModelOptions: Args;
95
+ initializeParameters: InitializeParameters;
96
+ enableNotifications: boolean;
97
+ }
98
+ /**
99
+ * The central component responsible for initializing the diagram and loading the graphical model
100
+ * from the GLSP server.
101
+ * Invoking the {@link DiagramLoader.load} method is typically the first operation that is executed after
102
+ * a diagram DI container has been created.
103
+ */
104
+ export declare class DiagramLoader {
105
+ protected options: IDiagramOptions;
106
+ protected actionDispatcher: GLSPActionDispatcher;
107
+ protected diagramStartups: IDiagramStartup[];
108
+ protected modelSource: GLSPModelSource;
109
+ protected modelInitializationConstraint: ModelInitializationConstraint;
110
+ protected postConstruct(): void;
111
+ load(options?: DiagramLoadingOptions): Promise<void>;
112
+ protected invokeStartupHook(hook: keyof Omit<IDiagramStartup, 'rank'>): Promise<void>;
113
+ protected requestModel(options: ResolvedDiagramLoadingOptions): Promise<void>;
114
+ protected initialize(options: ResolvedDiagramLoadingOptions): Promise<void>;
115
+ }
116
+ //# sourceMappingURL=diagram-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-loader.d.ts","sourceRoot":"","sources":["../../../src/base/model/diagram-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAGH,IAAI,EAEJ,UAAU,EACV,oBAAoB,EACpB,YAAY,EAMf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO,CAAC,MAAM,CAAC;IACpD;;OAEG;IACH,aAAa,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,eAAe,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAIxC,uBAAuB,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,yBAAiB,eAAe,CAAC;IAC7B,SAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAS7D;CACJ;AAED,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAE3B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAErD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,6BAA6B;IAC1C,mBAAmB,EAAE,IAAI,CAAC;IAC1B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,mBAAmB,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBACa,aAAa;IAEtB,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC;IAGnC,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAIjD,SAAS,CAAC,eAAe,EAAE,eAAe,EAAE,CAAM;IAGlD,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IAGvC,SAAS,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;IAGvE,SAAS,CAAC,aAAa,IAAI,IAAI;IAIzB,IAAI,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;cAwB9C,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAM3E,YAAY,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;cAOnE,UAAU,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBpF"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2023 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.DiagramLoader = exports.IDiagramStartup = void 0;
28
+ const inversify_1 = require("inversify");
29
+ const _glsp_sprotty_1 = require("../../glsp-sprotty/index");
30
+ const action_dispatcher_1 = require("../action-dispatcher");
31
+ const ranked_1 = require("../ranked");
32
+ const glsp_model_source_1 = require("./glsp-model-source");
33
+ const model_initialization_constraint_1 = require("./model-initialization-constraint");
34
+ var IDiagramStartup;
35
+ (function (IDiagramStartup) {
36
+ function is(object) {
37
+ return (_glsp_sprotty_1.AnyObject.is(object) &&
38
+ (0, _glsp_sprotty_1.hasNumberProp)(object, 'rank', true) &&
39
+ ('preInitialize' in object ||
40
+ 'preRequestModel' in object ||
41
+ 'postRequestModel' in object ||
42
+ 'postModelInitialization' in object));
43
+ }
44
+ IDiagramStartup.is = is;
45
+ })(IDiagramStartup || (exports.IDiagramStartup = IDiagramStartup = {}));
46
+ /**
47
+ * The central component responsible for initializing the diagram and loading the graphical model
48
+ * from the GLSP server.
49
+ * Invoking the {@link DiagramLoader.load} method is typically the first operation that is executed after
50
+ * a diagram DI container has been created.
51
+ */
52
+ let DiagramLoader = exports.DiagramLoader = class DiagramLoader {
53
+ constructor() {
54
+ this.diagramStartups = [];
55
+ }
56
+ postConstruct() {
57
+ this.diagramStartups.sort((a, b) => ranked_1.Ranked.getRank(a) - ranked_1.Ranked.getRank(b));
58
+ }
59
+ async load(options = {}) {
60
+ var _a, _b;
61
+ const resolvedOptions = {
62
+ requestModelOptions: Object.assign({ sourceUri: (_a = this.options.sourceUri) !== null && _a !== void 0 ? _a : '', diagramType: this.options.diagramType }, options.requestModelOptions),
63
+ initializeParameters: Object.assign({ applicationId: _glsp_sprotty_1.ApplicationIdProvider.get(), protocolVersion: _glsp_sprotty_1.GLSPClient.protocolVersion }, options.initializeParameters),
64
+ enableNotifications: (_b = options.enableNotifications) !== null && _b !== void 0 ? _b : true
65
+ };
66
+ // Set empty place holder model until actual model from server is available
67
+ await this.actionDispatcher.dispatch(_glsp_sprotty_1.SetModelAction.create(_glsp_sprotty_1.EMPTY_ROOT));
68
+ await this.invokeStartupHook('preInitialize');
69
+ await this.initialize(resolvedOptions);
70
+ await this.invokeStartupHook('preRequestModel');
71
+ await this.requestModel(resolvedOptions);
72
+ await this.invokeStartupHook('postRequestModel');
73
+ this.modelInitializationConstraint.onInitialized(() => this.invokeStartupHook('postModelInitialization'));
74
+ }
75
+ async invokeStartupHook(hook) {
76
+ var _a;
77
+ for (const startup of this.diagramStartups) {
78
+ await ((_a = startup[hook]) === null || _a === void 0 ? void 0 : _a.call(startup));
79
+ }
80
+ }
81
+ async requestModel(options) {
82
+ const response = await this.actionDispatcher.request(_glsp_sprotty_1.RequestModelAction.create({ options: options.requestModelOptions }));
83
+ return this.actionDispatcher.dispatch(response);
84
+ }
85
+ async initialize(options) {
86
+ if (options.enableNotifications) {
87
+ await this.actionDispatcher.dispatch(_glsp_sprotty_1.StatusAction.create('Initializing...', { severity: 'INFO' }));
88
+ }
89
+ const glspClient = await this.options.glspClientProvider();
90
+ await glspClient.start();
91
+ if (!glspClient.initializeResult) {
92
+ await glspClient.initializeServer(options.initializeParameters);
93
+ }
94
+ this.modelSource.configure(glspClient);
95
+ if (options.enableNotifications) {
96
+ this.actionDispatcher.dispatch(_glsp_sprotty_1.StatusAction.create('', { severity: 'NONE' }));
97
+ }
98
+ }
99
+ };
100
+ __decorate([
101
+ (0, inversify_1.inject)(_glsp_sprotty_1.TYPES.IDiagramOptions),
102
+ __metadata("design:type", Object)
103
+ ], DiagramLoader.prototype, "options", void 0);
104
+ __decorate([
105
+ (0, inversify_1.inject)(action_dispatcher_1.GLSPActionDispatcher),
106
+ __metadata("design:type", action_dispatcher_1.GLSPActionDispatcher)
107
+ ], DiagramLoader.prototype, "actionDispatcher", void 0);
108
+ __decorate([
109
+ (0, inversify_1.multiInject)(_glsp_sprotty_1.TYPES.IDiagramStartup),
110
+ (0, inversify_1.optional)(),
111
+ __metadata("design:type", Array)
112
+ ], DiagramLoader.prototype, "diagramStartups", void 0);
113
+ __decorate([
114
+ (0, inversify_1.inject)(glsp_model_source_1.GLSPModelSource),
115
+ __metadata("design:type", glsp_model_source_1.GLSPModelSource)
116
+ ], DiagramLoader.prototype, "modelSource", void 0);
117
+ __decorate([
118
+ (0, inversify_1.inject)(model_initialization_constraint_1.ModelInitializationConstraint),
119
+ __metadata("design:type", model_initialization_constraint_1.ModelInitializationConstraint)
120
+ ], DiagramLoader.prototype, "modelInitializationConstraint", void 0);
121
+ __decorate([
122
+ (0, inversify_1.postConstruct)(),
123
+ __metadata("design:type", Function),
124
+ __metadata("design:paramtypes", []),
125
+ __metadata("design:returntype", void 0)
126
+ ], DiagramLoader.prototype, "postConstruct", null);
127
+ exports.DiagramLoader = DiagramLoader = __decorate([
128
+ (0, inversify_1.injectable)()
129
+ ], DiagramLoader);
130
+ //# sourceMappingURL=diagram-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-loader.js","sourceRoot":"","sources":["../../../src/base/model/diagram-loader.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;AAElF,yCAAqF;AACrF,iDAauB;AACvB,4DAA4D;AAC5D,sCAAmC;AACnC,2DAAsD;AACtD,uFAAkF;AA0DlF,IAAiB,eAAe,CAW/B;AAXD,WAAiB,eAAe;IAC5B,SAAgB,EAAE,CAAC,MAAe;QAC9B,OAAO,CACH,yBAAS,CAAC,EAAE,CAAC,MAAM,CAAC;YACpB,IAAA,6BAAa,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;YACnC,CAAC,eAAe,IAAI,MAAM;gBACtB,iBAAiB,IAAI,MAAM;gBAC3B,kBAAkB,IAAI,MAAM;gBAC5B,yBAAyB,IAAI,MAAM,CAAC,CAC3C,CAAC;IACN,CAAC;IATe,kBAAE,KASjB,CAAA;AACL,CAAC,EAXgB,eAAe,+BAAf,eAAe,QAW/B;AA6BD;;;;;GAKG;AAEI,IAAM,aAAa,2BAAnB,MAAM,aAAa;IAAnB;QASO,oBAAe,GAAsB,EAAE,CAAC;IAkEtD,CAAC;IAzDa,aAAa;QACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAiC,EAAE;;QAC1C,MAAM,eAAe,GAAkC;YACnD,mBAAmB,kBACf,SAAS,EAAE,MAAA,IAAI,CAAC,OAAO,CAAC,SAAS,mCAAI,EAAE,EACvC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAClC,OAAO,CAAC,mBAAmB,CACjC;YACD,oBAAoB,kBAChB,aAAa,EAAE,qCAAqB,CAAC,GAAG,EAAE,EAC1C,eAAe,EAAE,0BAAU,CAAC,eAAe,IACxC,OAAO,CAAC,oBAAoB,CAClC;YACD,mBAAmB,EAAE,MAAA,OAAO,CAAC,mBAAmB,mCAAI,IAAI;SAC3D,CAAC;QACF,2EAA2E;QAC3E,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,8BAAc,CAAC,MAAM,CAAC,0BAAU,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC9G,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,IAAyC;;QACvE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;YACxC,MAAM,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,uDAAI,CAAA,CAAC;SAC3B;IACL,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,OAAsC;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAChD,kCAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CACtE,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,OAAsC;QAC7D,IAAI,OAAO,CAAC,mBAAmB,EAAE;YAC7B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,4BAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;SACtG;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3D,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAC9B,MAAM,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;SACnE;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,OAAO,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,4BAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;SACjF;IACL,CAAC;CACJ,CAAA;AAzEa;IADT,IAAA,kBAAM,EAAC,qBAAK,CAAC,eAAe,CAAC;;8CACK;AAGzB;IADT,IAAA,kBAAM,EAAC,wCAAoB,CAAC;8BACD,wCAAoB;uDAAC;AAIvC;IAFT,IAAA,uBAAW,EAAC,qBAAK,CAAC,eAAe,CAAC;IAClC,IAAA,oBAAQ,GAAE;;sDACuC;AAGxC;IADT,IAAA,kBAAM,EAAC,mCAAe,CAAC;8BACD,mCAAe;kDAAC;AAG7B;IADT,IAAA,kBAAM,EAAC,+DAA6B,CAAC;8BACG,+DAA6B;oEAAC;AAG7D;IADT,IAAA,yBAAa,GAAE;;;;kDAGf;wBApBQ,aAAa;IADzB,IAAA,sBAAU,GAAE;GACA,aAAa,CA2EzB"}