@eclipse-glsp/client 2.5.0-next.426 → 2.5.0-next.428

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 (202) hide show
  1. package/lib/base/auto-complete/auto-complete-widget.d.ts +1 -1
  2. package/lib/base/auto-complete/auto-complete-widget.js +1 -1
  3. package/lib/base/auto-complete/base-autocomplete-palette.d.ts +1 -1
  4. package/lib/base/auto-complete/base-autocomplete-palette.js +1 -1
  5. package/lib/base/command-stack.d.ts +6 -4
  6. package/lib/base/command-stack.d.ts.map +1 -1
  7. package/lib/base/command-stack.js +16 -7
  8. package/lib/base/command-stack.js.map +1 -1
  9. package/lib/base/default.module.d.ts +1 -1
  10. package/lib/base/default.module.d.ts.map +1 -1
  11. package/lib/base/default.module.js +3 -1
  12. package/lib/base/default.module.js.map +1 -1
  13. package/lib/base/editor-context-service.d.ts +10 -13
  14. package/lib/base/editor-context-service.d.ts.map +1 -1
  15. package/lib/base/editor-context-service.js +23 -27
  16. package/lib/base/editor-context-service.js.map +1 -1
  17. package/lib/base/focus/focus-tracker.d.ts +3 -2
  18. package/lib/base/focus/focus-tracker.d.ts.map +1 -1
  19. package/lib/base/focus/focus-tracker.js +9 -0
  20. package/lib/base/focus/focus-tracker.js.map +1 -1
  21. package/lib/base/model/model-change-service.d.ts +65 -0
  22. package/lib/base/model/model-change-service.d.ts.map +1 -0
  23. package/lib/base/model/model-change-service.js +113 -0
  24. package/lib/base/model/model-change-service.js.map +1 -0
  25. package/lib/base/shortcuts/available-shortcuts-extension.d.ts +1 -1
  26. package/lib/base/shortcuts/available-shortcuts-extension.js +1 -1
  27. package/lib/base/shortcuts/available-shortcuts-tool.d.ts +1 -1
  28. package/lib/base/shortcuts/available-shortcuts-tool.js +1 -1
  29. package/lib/base/shortcuts/shortcuts-module.d.ts +1 -1
  30. package/lib/base/shortcuts/shortcuts-module.js +1 -1
  31. package/lib/base/ui-extension/ui-extension.d.ts +1 -1
  32. package/lib/base/ui-extension/ui-extension.js +1 -1
  33. package/lib/default-modules.d.ts +1 -1
  34. package/lib/default-modules.js +1 -1
  35. package/lib/features/accessibility/accessibility-module.d.ts +1 -1
  36. package/lib/features/accessibility/accessibility-module.js +1 -1
  37. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.d.ts +1 -1
  38. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.js +1 -1
  39. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-tool.d.ts +1 -1
  40. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-tool.js +1 -1
  41. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.d.ts +1 -1
  42. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js +1 -1
  43. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.d.ts +1 -1
  44. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.js +1 -1
  45. package/lib/features/accessibility/element-navigation/position-navigator.d.ts +1 -1
  46. package/lib/features/accessibility/element-navigation/position-navigator.js +1 -1
  47. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.d.ts +1 -1
  48. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.js +1 -1
  49. package/lib/features/accessibility/global-keylistener-tool.d.ts +1 -1
  50. package/lib/features/accessibility/global-keylistener-tool.js +1 -1
  51. package/lib/features/accessibility/keyboard-grid/keyboard-grid.d.ts +1 -1
  52. package/lib/features/accessibility/keyboard-grid/keyboard-grid.js +1 -1
  53. package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.d.ts +1 -1
  54. package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.js +1 -1
  55. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.d.ts +1 -1
  56. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.js +1 -1
  57. package/lib/features/accessibility/search/search-palette-module.d.ts +1 -1
  58. package/lib/features/accessibility/search/search-palette-module.js +1 -1
  59. package/lib/features/accessibility/search/search-palette.d.ts +1 -1
  60. package/lib/features/accessibility/search/search-palette.js +1 -1
  61. package/lib/features/accessibility/search/search-tool.d.ts +1 -1
  62. package/lib/features/accessibility/search/search-tool.js +1 -1
  63. package/lib/features/accessibility/view-key-tools/grid-cell-zoom-key-tool.d.ts +1 -1
  64. package/lib/features/accessibility/view-key-tools/grid-cell-zoom-key-tool.js +1 -1
  65. package/lib/features/accessibility/view-key-tools/view-key-tools-module.d.ts +1 -1
  66. package/lib/features/accessibility/view-key-tools/view-key-tools-module.js +1 -1
  67. package/lib/features/bounds/bounds-module.d.ts +1 -1
  68. package/lib/features/bounds/bounds-module.js +1 -1
  69. package/lib/features/bounds/hbox-layout.d.ts +1 -1
  70. package/lib/features/bounds/hbox-layout.js +1 -1
  71. package/lib/features/bounds/vbox-layout.d.ts +1 -1
  72. package/lib/features/bounds/vbox-layout.js +1 -1
  73. package/lib/features/change-bounds/move-element-action.d.ts +1 -1
  74. package/lib/features/change-bounds/move-element-action.js +1 -1
  75. package/lib/features/change-bounds/move-element-handler.d.ts +1 -1
  76. package/lib/features/change-bounds/move-element-handler.js +1 -1
  77. package/lib/features/change-bounds/resize/resize-default-tool.d.ts +1 -1
  78. package/lib/features/change-bounds/resize/resize-default-tool.js +1 -1
  79. package/lib/features/change-bounds/resize/resize-handler.d.ts +1 -1
  80. package/lib/features/change-bounds/resize/resize-handler.js +1 -1
  81. package/lib/features/change-bounds/resize/resize-module.d.ts +1 -1
  82. package/lib/features/change-bounds/resize/resize-module.js +1 -1
  83. package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
  84. package/lib/features/command-palette/server-command-palette-provider.js +1 -1
  85. package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
  86. package/lib/features/context-menu/server-context-menu-provider.js +1 -1
  87. package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
  88. package/lib/features/copy-paste/copy-paste-handler.js +1 -1
  89. package/lib/features/grid/grid-module.d.ts +1 -1
  90. package/lib/features/grid/grid-module.js +1 -1
  91. package/lib/features/grid/grid-snapper.d.ts +1 -1
  92. package/lib/features/grid/grid-snapper.js +1 -1
  93. package/lib/features/grid/grid.d.ts +1 -1
  94. package/lib/features/helper-lines/helper-line-feedback.d.ts +1 -1
  95. package/lib/features/helper-lines/helper-line-feedback.js +1 -1
  96. package/lib/features/hover/hover.d.ts +1 -1
  97. package/lib/features/hover/hover.js +1 -1
  98. package/lib/features/label-edit/edit-label-validator.d.ts +1 -1
  99. package/lib/features/label-edit/edit-label-validator.js +1 -1
  100. package/lib/features/layout/layout-module.d.ts +1 -1
  101. package/lib/features/layout/layout-module.js +1 -1
  102. package/lib/features/navigation/navigation-target-resolver.d.ts +1 -1
  103. package/lib/features/navigation/navigation-target-resolver.js +1 -1
  104. package/lib/features/tool-palette/tool-palette.d.ts +1 -1
  105. package/lib/features/tool-palette/tool-palette.js +1 -1
  106. package/lib/features/tools/base-tools.d.ts +1 -1
  107. package/lib/features/tools/base-tools.js +1 -1
  108. package/lib/features/tools/change-bounds/change-bounds-tool.js +1 -1
  109. package/lib/features/tools/node-creation/container-manager.d.ts +1 -1
  110. package/lib/features/tools/node-creation/container-manager.js +1 -1
  111. package/lib/features/viewport/origin-viewport.d.ts +1 -1
  112. package/lib/features/viewport/origin-viewport.js +1 -1
  113. package/lib/features/viewport/reposition.d.ts +1 -1
  114. package/lib/features/viewport/reposition.js +1 -1
  115. package/lib/features/viewport/viewport-handler.d.ts +1 -1
  116. package/lib/features/viewport/viewport-handler.js +1 -1
  117. package/lib/features/viewport/viewport-key-listener.d.ts +1 -1
  118. package/lib/features/viewport/viewport-key-listener.js +1 -1
  119. package/lib/features/viewport/viewport-modules.d.ts +1 -1
  120. package/lib/features/viewport/viewport-modules.js +1 -1
  121. package/lib/features/viewport/zoom-viewport-action.d.ts +1 -1
  122. package/lib/features/viewport/zoom-viewport-action.js +1 -1
  123. package/lib/index.d.ts +1 -1
  124. package/lib/index.js +1 -1
  125. package/lib/standalone-modules.d.ts +1 -1
  126. package/lib/standalone-modules.js +1 -1
  127. package/lib/utils/viewpoint-util.d.ts +1 -1
  128. package/lib/utils/viewpoint-util.js +1 -1
  129. package/lib/views/base-view-module.d.ts +1 -1
  130. package/lib/views/base-view-module.js +1 -1
  131. package/lib/views/compartments.d.ts +1 -1
  132. package/lib/views/compartments.js +1 -1
  133. package/lib/views/glsp-projection-view.d.ts +1 -1
  134. package/lib/views/glsp-projection-view.js +1 -1
  135. package/lib/views/rounded-corner-view.d.ts +1 -1
  136. package/lib/views/rounded-corner-view.js +1 -1
  137. package/package.json +3 -3
  138. package/src/base/auto-complete/auto-complete-widget.ts +1 -1
  139. package/src/base/auto-complete/base-autocomplete-palette.ts +1 -1
  140. package/src/base/command-stack.ts +19 -13
  141. package/src/base/default.module.ts +3 -1
  142. package/src/base/editor-context-service.ts +23 -30
  143. package/src/base/focus/focus-tracker.ts +8 -3
  144. package/src/base/model/model-change-service.ts +151 -0
  145. package/src/base/shortcuts/available-shortcuts-extension.ts +1 -1
  146. package/src/base/shortcuts/available-shortcuts-tool.ts +1 -1
  147. package/src/base/shortcuts/shortcuts-module.ts +1 -1
  148. package/src/base/ui-extension/ui-extension.ts +1 -1
  149. package/src/default-modules.ts +1 -1
  150. package/src/features/accessibility/accessibility-module.ts +1 -1
  151. package/src/features/accessibility/edge-autocomplete/edge-autocomplete-palette.ts +1 -1
  152. package/src/features/accessibility/edge-autocomplete/edge-autocomplete-tool.ts +1 -1
  153. package/src/features/accessibility/element-navigation/diagram-navigation-tool.ts +1 -1
  154. package/src/features/accessibility/element-navigation/left-right-top-bottom-navigator.ts +1 -1
  155. package/src/features/accessibility/element-navigation/position-navigator.ts +1 -1
  156. package/src/features/accessibility/focus-tracker/focus-tracker-tool.ts +1 -1
  157. package/src/features/accessibility/global-keylistener-tool.ts +1 -1
  158. package/src/features/accessibility/keyboard-grid/keyboard-grid.ts +1 -1
  159. package/src/features/accessibility/keyboard-grid/keyboard-node-grid.ts +1 -1
  160. package/src/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.ts +1 -1
  161. package/src/features/accessibility/search/search-palette-module.ts +1 -1
  162. package/src/features/accessibility/search/search-palette.ts +1 -1
  163. package/src/features/accessibility/search/search-tool.ts +1 -1
  164. package/src/features/accessibility/view-key-tools/grid-cell-zoom-key-tool.ts +1 -1
  165. package/src/features/accessibility/view-key-tools/view-key-tools-module.ts +1 -1
  166. package/src/features/bounds/bounds-module.ts +1 -1
  167. package/src/features/bounds/hbox-layout.ts +1 -1
  168. package/src/features/bounds/vbox-layout.ts +1 -1
  169. package/src/features/change-bounds/move-element-action.ts +1 -1
  170. package/src/features/change-bounds/move-element-handler.ts +1 -1
  171. package/src/features/change-bounds/resize/resize-default-tool.ts +1 -1
  172. package/src/features/change-bounds/resize/resize-handler.ts +1 -1
  173. package/src/features/change-bounds/resize/resize-module.ts +1 -1
  174. package/src/features/command-palette/server-command-palette-provider.ts +1 -1
  175. package/src/features/context-menu/server-context-menu-provider.ts +1 -1
  176. package/src/features/copy-paste/copy-paste-handler.ts +1 -1
  177. package/src/features/grid/grid-module.ts +1 -1
  178. package/src/features/grid/grid-snapper.ts +1 -1
  179. package/src/features/grid/grid.ts +1 -1
  180. package/src/features/helper-lines/helper-line-feedback.ts +1 -1
  181. package/src/features/hover/hover.ts +1 -1
  182. package/src/features/label-edit/edit-label-validator.ts +1 -1
  183. package/src/features/layout/layout-elements-action.spec.ts +1 -1
  184. package/src/features/layout/layout-module.ts +1 -1
  185. package/src/features/navigation/navigation-target-resolver.ts +1 -1
  186. package/src/features/tool-palette/tool-palette.ts +1 -1
  187. package/src/features/tools/base-tools.ts +1 -1
  188. package/src/features/tools/change-bounds/change-bounds-tool.ts +1 -1
  189. package/src/features/tools/node-creation/container-manager.ts +1 -1
  190. package/src/features/viewport/origin-viewport.ts +1 -1
  191. package/src/features/viewport/reposition.ts +1 -1
  192. package/src/features/viewport/viewport-handler.ts +1 -1
  193. package/src/features/viewport/viewport-key-listener.ts +1 -1
  194. package/src/features/viewport/viewport-modules.ts +1 -1
  195. package/src/features/viewport/zoom-viewport-action.ts +1 -1
  196. package/src/index.ts +1 -1
  197. package/src/standalone-modules.ts +1 -1
  198. package/src/utils/viewpoint-util.ts +1 -1
  199. package/src/views/base-view-module.ts +1 -1
  200. package/src/views/compartments.tsx +1 -1
  201. package/src/views/glsp-projection-view.tsx +1 -1
  202. package/src/views/rounded-corner-view.tsx +1 -1
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2024 EclipseSource and others.
2
+ * Copyright (c) 2020-2025 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toActionArray = exports.AutoCompleteWidget = void 0;
4
4
  /********************************************************************************
5
- * Copyright (c) 2020-2024 EclipseSource and others.
5
+ * Copyright (c) 2020-2025 EclipseSource and others.
6
6
  *
7
7
  * This program and the accompanying materials are made available under the
8
8
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2023-2024 Business Informatics Group (TU Wien) and others.
2
+ * Copyright (c) 2023-2025 Business Informatics Group (TU Wien) and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /********************************************************************************
3
- * Copyright (c) 2023-2024 Business Informatics Group (TU Wien) and others.
3
+ * Copyright (c) 2023-2025 Business Informatics Group (TU Wien) and others.
4
4
  *
5
5
  * This program and the accompanying materials are made available under the
6
6
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2024 EclipseSource and others.
2
+ * Copyright (c) 2019-2025 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,11 +13,14 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { CommandExecutionContext, CommandStack, Disposable, DisposableCollection, Event, GModelRoot, ICommand, LazyInjector } from '@eclipse-glsp/sprotty';
16
+ import { CommandExecutionContext, CommandExecutionData, CommandStack, Disposable, DisposableCollection, Emitter, Event, GModelRoot, ICommand, ICommandStack, LazyInjector } from '@eclipse-glsp/sprotty';
17
17
  import { EditorContextService } from './editor-context-service';
18
- export declare class GLSPCommandStack extends CommandStack implements Disposable {
18
+ export declare class GLSPCommandStack extends CommandStack implements ICommandStack, Disposable {
19
19
  protected lazyInjector: LazyInjector;
20
20
  protected toDispose: DisposableCollection;
21
+ protected onCommandExecutedEmitter: Emitter<CommandExecutionData>;
22
+ get onCommandExecuted(): Event<CommandExecutionData>;
23
+ protected initialize(): void;
21
24
  dispose(): void;
22
25
  get editorContext(): EditorContextService;
23
26
  /**
@@ -47,6 +50,5 @@ export declare class GLSPCommandStack extends CommandStack implements Disposable
47
50
  */
48
51
  protected mergeOrPush(command: ICommand, context: CommandExecutionContext): void;
49
52
  execute(command: ICommand): Promise<GModelRoot>;
50
- protected notifyListeners(root: Readonly<GModelRoot>): void;
51
53
  }
52
54
  //# sourceMappingURL=command-stack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-stack.d.ts","sourceRoot":"","sources":["../../src/base/command-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,KAAK,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EAGf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,gBAAiB,SAAQ,YAAa,YAAW,UAAU;IAEpE,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,SAAS,uBAA8B;IAGjD,OAAO,IAAI,IAAI;IAMf,IAAI,aAAa,IAAI,oBAAoB,CAExC;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAEpD;IAED;;;OAGG;IACM,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAQpC;;;OAGG;IACM,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAQpC;;;;OAIG;cACgB,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAI3D;;;;OAIG;cACgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAG1E,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ9D,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"command-stack.d.ts","sourceRoot":"","sources":["../../src/base/command-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,gBAAiB,SAAQ,YAAa,YAAW,aAAa,EAAE,UAAU;IAEnF,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,SAAS,uBAA8B;IAEjD,SAAS,CAAC,wBAAwB,gCAAuC;IACzE,IAAI,iBAAiB,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAEnD;cAGkB,UAAU,IAAI,IAAI;IAMrC,OAAO,IAAI,IAAI;IAMf,IAAI,aAAa,IAAI,oBAAoB,CAExC;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAEpD;IAED;;;OAGG;IACM,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAQpC;;;OAGG;IACM,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAQpC;;;;OAIG;cACgB,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAI3D;;;;OAIG;cACgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAG1E,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAKjE"}
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GLSPCommandStack = void 0;
13
13
  /********************************************************************************
14
- * Copyright (c) 2019-2024 EclipseSource and others.
14
+ * Copyright (c) 2019-2025 EclipseSource and others.
15
15
  *
16
16
  * This program and the accompanying materials are made available under the
17
17
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -32,6 +32,14 @@ let GLSPCommandStack = class GLSPCommandStack extends sprotty_1.CommandStack {
32
32
  constructor() {
33
33
  super(...arguments);
34
34
  this.toDispose = new sprotty_1.DisposableCollection();
35
+ this.onCommandExecutedEmitter = new sprotty_1.Emitter();
36
+ }
37
+ get onCommandExecuted() {
38
+ return this.onCommandExecutedEmitter.event;
39
+ }
40
+ initialize() {
41
+ super.initialize();
42
+ this.toDispose.push(this.onCommandExecutedEmitter);
35
43
  }
36
44
  dispose() {
37
45
  this.toDispose.dispose();
@@ -81,20 +89,21 @@ let GLSPCommandStack = class GLSPCommandStack extends sprotty_1.CommandStack {
81
89
  }
82
90
  async execute(command) {
83
91
  const result = await super.execute(command);
84
- if (command instanceof sprotty_1.SetModelCommand || command instanceof sprotty_1.UpdateModelCommand) {
85
- this.notifyListeners(result);
86
- }
92
+ this.onCommandExecutedEmitter.fire({ command, newRoot: result });
87
93
  return result;
88
94
  }
89
- notifyListeners(root) {
90
- this.editorContext.notifyModelRootChanged(root, this);
91
- }
92
95
  };
93
96
  exports.GLSPCommandStack = GLSPCommandStack;
94
97
  __decorate([
95
98
  (0, inversify_1.inject)(sprotty_1.LazyInjector),
96
99
  __metadata("design:type", Object)
97
100
  ], GLSPCommandStack.prototype, "lazyInjector", void 0);
101
+ __decorate([
102
+ (0, inversify_1.postConstruct)(),
103
+ __metadata("design:type", Function),
104
+ __metadata("design:paramtypes", []),
105
+ __metadata("design:returntype", void 0)
106
+ ], GLSPCommandStack.prototype, "initialize", null);
98
107
  __decorate([
99
108
  (0, inversify_1.preDestroy)(),
100
109
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"command-stack.js","sourceRoot":"","sources":["../../src/base/command-stack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAW+B;AAC/B,yCAA2D;AAC3D,qEAAgE;AAGzD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,sBAAY;IAA3C;;QAGO,cAAS,GAAG,IAAI,8BAAoB,EAAE,CAAC;IAwErD,CAAC;IArEG,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,+FAA+F;IAC/F,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;IACjD,CAAC;IAED;;;OAGG;IACM,IAAI;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,EACJ,2HAA2H,CAC9H,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACM,IAAI;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,EACJ,2HAA2H,CAC9H,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACgB,eAAe,CAAC,OAAiB;QAChD,QAAQ;IACZ,CAAC;IAED;;;;OAIG;IACgB,WAAW,CAAC,OAAiB,EAAE,OAAgC;QAC9E,QAAQ;IACZ,CAAC;IACQ,KAAK,CAAC,OAAO,CAAC,OAAiB;QACpC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,OAAO,YAAY,yBAAe,IAAI,OAAO,YAAY,4BAAkB,EAAE,CAAC;YAC9E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,eAAe,CAAC,IAA0B;QAChD,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACJ,CAAA;AA3EY,4CAAgB;AAEf;IADT,IAAA,kBAAM,EAAC,sBAAY,CAAC;;sDACgB;AAIrC;IADC,IAAA,sBAAU,GAAE;;;;+CAGZ;2BARQ,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CA2E5B"}
1
+ {"version":3,"file":"command-stack.js","sourceRoot":"","sources":["../../src/base/command-stack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAY+B;AAC/B,yCAA0E;AAC1E,qEAAgE;AAGzD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,sBAAY;IAA3C;;QAGO,cAAS,GAAG,IAAI,8BAAoB,EAAE,CAAC;QAEvC,6BAAwB,GAAG,IAAI,iBAAO,EAAwB,CAAC;IA2E7E,CAAC;IA1EG,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC/C,CAAC;IAGkB,UAAU;QACzB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvD,CAAC;IAGD,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,+FAA+F;IAC/F,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;IACjD,CAAC;IAED;;;OAGG;IACM,IAAI;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,EACJ,2HAA2H,CAC9H,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACM,IAAI;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,EACJ,2HAA2H,CAC9H,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACgB,eAAe,CAAC,OAAiB;QAChD,QAAQ;IACZ,CAAC;IAED;;;;OAIG;IACgB,WAAW,CAAC,OAAiB,EAAE,OAAgC;QAC9E,QAAQ;IACZ,CAAC;IACQ,KAAK,CAAC,OAAO,CAAC,OAAiB;QACpC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAhFY,4CAAgB;AAEf;IADT,IAAA,kBAAM,EAAC,sBAAY,CAAC;;sDACgB;AASlB;IADlB,IAAA,yBAAa,GAAE;;;;kDAIf;AAGD;IADC,IAAA,sBAAU,GAAE;;;;+CAGZ;2BAnBQ,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CAgF5B"}
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2024 EclipseSource and others.
2
+ * Copyright (c) 2019-2025 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -1 +1 @@
1
- {"version":3,"file":"default.module.d.ts","sourceRoot":"","sources":["../../src/base/default.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAEH,aAAa,EAgBhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4BAA4B,CAAC;AA0BpC;;;GAGG;AACH,eAAO,MAAM,aAAa,eAuFzB,CAAC"}
1
+ {"version":3,"file":"default.module.d.ts","sourceRoot":"","sources":["../../src/base/default.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAEH,aAAa,EAgBhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4BAA4B,CAAC;AA2BpC;;;GAGG;AACH,eAAO,MAAM,aAAa,eAwFzB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultModule = void 0;
4
4
  /********************************************************************************
5
- * Copyright (c) 2019-2024 EclipseSource and others.
5
+ * Copyright (c) 2019-2025 EclipseSource and others.
6
6
  *
7
7
  * This program and the accompanying materials are made available under the
8
8
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -31,6 +31,7 @@ const focus_state_change_action_1 = require("./focus/focus-state-change-action")
31
31
  const focus_tracker_1 = require("./focus/focus-tracker");
32
32
  const diagram_loader_1 = require("./model/diagram-loader");
33
33
  const glsp_model_source_1 = require("./model/glsp-model-source");
34
+ const model_change_service_1 = require("./model/model-change-service");
34
35
  const model_initialization_constraint_1 = require("./model/model-initialization-constraint");
35
36
  const model_registry_1 = require("./model/model-registry");
36
37
  const mouse_position_tracker_1 = require("./mouse-position-tracker");
@@ -56,6 +57,7 @@ exports.defaultModule = new sprotty_1.FeatureModule((bind, unbind, isBound, rebi
56
57
  bind(sprotty_1.TYPES.IDiagramStartup).toService(editor_context_service_1.EditorContextService);
57
58
  // eslint-disable-next-line deprecation/deprecation
58
59
  bind(sprotty_1.TYPES.IEditorContextServiceProvider).toProvider(ctx => async () => ctx.container.get(editor_context_service_1.EditorContextService));
60
+ bind(sprotty_1.TYPES.IModelChangeService).to(model_change_service_1.ModelChangeService).inSingletonScope();
59
61
  (0, sprotty_1.configureActionHandler)(context, sprotty_1.SetEditModeAction.KIND, editor_context_service_1.EditorContextService);
60
62
  (0, sprotty_1.configureActionHandler)(context, sprotty_1.SetDirtyStateAction.KIND, editor_context_service_1.EditorContextService);
61
63
  bind(focus_tracker_1.FocusTracker).toSelf().inSingletonScope();
@@ -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,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2024 EclipseSource and others.
2
+ * Copyright (c) 2020-2025 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,9 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, AnyObject, Args, Bounds, Disposable, DisposableCollection, EditorContext, Emitter, Event, GModelElement, GModelRoot, IActionDispatcher, IActionHandler, LazyInjector, MaybePromise, MousePositionTracker, SetDirtyStateAction, SetEditModeAction, ValueChange, Viewport } from '@eclipse-glsp/sprotty';
16
+ import { Action, Args, Bounds, Disposable, DisposableCollection, EditorContext, Emitter, Event, GModelElement, GModelRoot, IActionDispatcher, IActionHandler, LazyInjector, MaybePromise, MousePositionTracker, SetDirtyStateAction, SetEditModeAction, ValueChange, Viewport } from '@eclipse-glsp/sprotty';
17
17
  import { FocusChange, FocusTracker } from './focus/focus-tracker';
18
18
  import { IDiagramOptions, IDiagramStartup } from './model/diagram-loader';
19
+ import { IModelChangeService, ViewportChange } from './model/model-change-service';
19
20
  import { SelectionChange, SelectionService } from './selection-service';
20
21
  /**
21
22
  * A hook to listen for model root changes. Will be called after a server update
@@ -50,6 +51,7 @@ export type DirtyStateChange = Pick<SetDirtyStateAction, 'isDirty' | 'reason'>;
50
51
  */
51
52
  export declare class EditorContextService implements IActionHandler, Disposable, IDiagramStartup {
52
53
  protected selectionService: SelectionService;
54
+ protected modelChangeService: IModelChangeService;
53
55
  protected mousePositionTracker: MousePositionTracker;
54
56
  protected lazyInjector: LazyInjector;
55
57
  protected diagramOptions: IDiagramOptions;
@@ -67,11 +69,9 @@ export declare class EditorContextService implements IActionHandler, Disposable,
67
69
  * Event that is fired when the dirty state of the diagram changes i.e. after a {@link SetDirtyStateAction} has been handled.
68
70
  */
69
71
  get onDirtyStateChanged(): Event<DirtyStateChange>;
70
- protected _modelRoot?: Readonly<GModelRoot>;
71
72
  /**
72
73
  * Event that is fired when the model root of the diagram changes i.e. after the `CommandStack` has processed a model update.
73
74
  */
74
- protected onModelRootChangedEmitter: Emitter<Readonly<GModelRoot>>;
75
75
  get onModelRootChanged(): Event<Readonly<GModelRoot>>;
76
76
  /**
77
77
  * Event that is fired when the focus state of the diagram changes i.e. after a {@link FocusStateChangedAction} has been handled
@@ -83,20 +83,17 @@ export declare class EditorContextService implements IActionHandler, Disposable,
83
83
  * by the {@link SelectionService}.
84
84
  */
85
85
  get onSelectionChanged(): Event<SelectionChange>;
86
+ /**
87
+ * Event that is fired when the viewport of the diagram changes i.e. after the `CommandStack` has processed a viewport update.
88
+ * By default, this event is only fired if the viewport was changed via a `SetViewportCommand` or `BoundsAwareViewportCommand`
89
+ */
90
+ get onViewportChanged(): Event<ViewportChange>;
86
91
  protected toDispose: DisposableCollection;
87
92
  protected initialize(): void;
88
- preLoadDiagram(): MaybePromise<void>;
89
93
  dispose(): void;
94
+ preLoadDiagram(): MaybePromise<void>;
90
95
  get(args?: Args): EditorContext;
91
96
  getWithSelection(selectedElementIds: string[], args?: Args): EditorContext;
92
- /**
93
- * Notifies the service about a model root change. This method should not be called
94
- * directly. It is called by the `CommandStack` after a model update has been processed.
95
- * @throws an error if the notifier is not a `CommandStack`
96
- * @param root the new model root
97
- * @param notifier the object that triggered the model root change
98
- */
99
- notifyModelRootChanged(root: Readonly<GModelRoot>, notifier: AnyObject): void;
100
97
  handle(action: Action): void;
101
98
  protected handleSetEditModeAction(action: SetEditModeAction): void;
102
99
  protected handleSetDirtyStateAction(action: SetDirtyStateAction): void;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-context-service.d.ts","sourceRoot":"","sources":["../../src/base/editor-context-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EACN,SAAS,EACT,IAAI,EACJ,MAAM,EAEN,UAAU,EACV,oBAAoB,EAEpB,aAAa,EACb,OAAO,EACP,KAAK,EAEL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,cAAc,EAEd,YAAY,EACZ,YAAY,EACZ,oBAAoB,EAEpB,mBAAmB,EACnB,iBAAiB,EAEjB,WAAW,EACX,QAAQ,EACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,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,YAAY,EAAE,YAAY,CAAC;IAGrC,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAG1C,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAG9C,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAErC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,wBAAwB,+BAAsC;IACxE;;OAEG;IACH,IAAI,iBAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAElD;IAED,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,0BAA0B,4BAAmC;IACvE;;OAEG;IACH,IAAI,mBAAmB,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAEjD;IAED,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C;;OAEG;IACH,SAAS,CAAC,yBAAyB,gCAAuC;IAC1E,IAAI,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAEpD;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,KAAK,CAAC,WAAW,CAAC,CAEvC;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAAC,CAE/C;IAED,SAAS,CAAC,SAAS,uBAA8B;IAGjD,SAAS,CAAC,UAAU,IAAI,IAAI;IAK5B,cAAc,IAAI,YAAY,CAAC,IAAI,CAAC;IAUpC,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;;;;;;OAMG;IACH,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;IAQ7E,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,CAKpC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,SAAS,CAE1D;IAED,IAAI,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAOrC;IAED,IAAI,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC,CAGnC;IAED,IAAI,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAEhD;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;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":"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"}
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.EditorContextService = void 0;
13
13
  /********************************************************************************
14
- * Copyright (c) 2020-2024 EclipseSource and others.
14
+ * Copyright (c) 2020-2025 EclipseSource and others.
15
15
  *
16
16
  * This program and the accompanying materials are made available under the
17
17
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -45,10 +45,6 @@ let EditorContextService = class EditorContextService {
45
45
  constructor() {
46
46
  this.onEditModeChangedEmitter = new sprotty_1.Emitter();
47
47
  this.onDirtyStateChangedEmitter = new sprotty_1.Emitter();
48
- /**
49
- * Event that is fired when the model root of the diagram changes i.e. after the `CommandStack` has processed a model update.
50
- */
51
- this.onModelRootChangedEmitter = new sprotty_1.Emitter();
52
48
  this.toDispose = new sprotty_1.DisposableCollection();
53
49
  }
54
50
  /**
@@ -63,8 +59,11 @@ let EditorContextService = class EditorContextService {
63
59
  get onDirtyStateChanged() {
64
60
  return this.onDirtyStateChangedEmitter.event;
65
61
  }
62
+ /**
63
+ * Event that is fired when the model root of the diagram changes i.e. after the `CommandStack` has processed a model update.
64
+ */
66
65
  get onModelRootChanged() {
67
- return this.onModelRootChangedEmitter.event;
66
+ return this.modelChangeService.onModelRootChanged;
68
67
  }
69
68
  /**
70
69
  * Event that is fired when the focus state of the diagram changes i.e. after a {@link FocusStateChangedAction} has been handled
@@ -80,11 +79,21 @@ let EditorContextService = class EditorContextService {
80
79
  get onSelectionChanged() {
81
80
  return this.selectionService.onSelectionChanged;
82
81
  }
82
+ /**
83
+ * Event that is fired when the viewport of the diagram changes i.e. after the `CommandStack` has processed a viewport update.
84
+ * By default, this event is only fired if the viewport was changed via a `SetViewportCommand` or `BoundsAwareViewportCommand`
85
+ */
86
+ get onViewportChanged() {
87
+ return this.modelChangeService.onViewportChanged;
88
+ }
83
89
  initialize() {
84
90
  var _a;
85
91
  this._editMode = (_a = this.diagramOptions.editMode) !== null && _a !== void 0 ? _a : sprotty_1.EditMode.EDITABLE;
86
92
  this.toDispose.push(this.onEditModeChangedEmitter, this.onDirtyStateChangedEmitter);
87
93
  }
94
+ dispose() {
95
+ this.toDispose.dispose();
96
+ }
88
97
  preLoadDiagram() {
89
98
  this.lazyInjector.getAll(sprotty_1.TYPES.IGModelRootListener).forEach(listener => {
90
99
  this.onModelRootChanged(event => listener.modelRootChanged(event));
@@ -93,9 +102,6 @@ let EditorContextService = class EditorContextService {
93
102
  this.onEditModeChanged(event => listener.editModeChanged(event.newValue, event.oldValue));
94
103
  });
95
104
  }
96
- dispose() {
97
- this.toDispose.dispose();
98
- }
99
105
  get(args) {
100
106
  return {
101
107
  selectedElementIds: Array.from(this.selectionService.getSelectedElementIDs()),
@@ -110,20 +116,6 @@ let EditorContextService = class EditorContextService {
110
116
  args
111
117
  };
112
118
  }
113
- /**
114
- * Notifies the service about a model root change. This method should not be called
115
- * directly. It is called by the `CommandStack` after a model update has been processed.
116
- * @throws an error if the notifier is not a `CommandStack`
117
- * @param root the new model root
118
- * @param notifier the object that triggered the model root change
119
- */
120
- notifyModelRootChanged(root, notifier) {
121
- if (!(notifier instanceof sprotty_1.CommandStack)) {
122
- throw new Error('Invalid model root change notification. Notifier is not an instance of `CommandStack`.');
123
- }
124
- this._modelRoot = root;
125
- this.onModelRootChangedEmitter.fire(root);
126
- }
127
119
  handle(action) {
128
120
  if (sprotty_1.SetEditModeAction.is(action)) {
129
121
  this.handleSetEditModeAction(action);
@@ -156,13 +148,13 @@ let EditorContextService = class EditorContextService {
156
148
  return this.diagramOptions.clientId;
157
149
  }
158
150
  get modelRoot() {
159
- if (!this._modelRoot) {
151
+ if (!this.modelChangeService.currentRoot) {
160
152
  throw new Error('Model root not available yet');
161
153
  }
162
- return this._modelRoot;
154
+ return this.modelChangeService.currentRoot;
163
155
  }
164
156
  get viewport() {
165
- return this._modelRoot ? (0, sprotty_1.findParentByFeature)(this._modelRoot, sprotty_1.isViewport) : undefined;
157
+ return this.modelRoot ? (0, sprotty_1.findParentByFeature)(this.modelRoot, sprotty_1.isViewport) : undefined;
166
158
  }
167
159
  get viewportData() {
168
160
  var _a, _b;
@@ -176,7 +168,7 @@ let EditorContextService = class EditorContextService {
176
168
  get canvasBounds() {
177
169
  var _a, _b;
178
170
  // default value aligned with the initialization of canvasBounds in GModelRoot
179
- return (_b = (_a = this._modelRoot) === null || _a === void 0 ? void 0 : _a.canvasBounds) !== null && _b !== void 0 ? _b : sprotty_1.Bounds.EMPTY;
171
+ return (_b = (_a = this.modelRoot) === null || _a === void 0 ? void 0 : _a.canvasBounds) !== null && _b !== void 0 ? _b : sprotty_1.Bounds.EMPTY;
180
172
  }
181
173
  get selectedElements() {
182
174
  return this.selectionService.getSelectedElements();
@@ -193,6 +185,10 @@ __decorate([
193
185
  (0, inversify_1.inject)(selection_service_1.SelectionService),
194
186
  __metadata("design:type", selection_service_1.SelectionService)
195
187
  ], EditorContextService.prototype, "selectionService", void 0);
188
+ __decorate([
189
+ (0, inversify_1.inject)(sprotty_1.TYPES.IModelChangeService),
190
+ __metadata("design:type", Object)
191
+ ], EditorContextService.prototype, "modelChangeService", void 0);
196
192
  __decorate([
197
193
  (0, inversify_1.inject)(sprotty_1.MousePositionTracker),
198
194
  __metadata("design:type", sprotty_1.MousePositionTracker)
@@ -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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"}
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, Emitter, Event, IActionHandler, ICommand, ViewerOptions } from '@eclipse-glsp/sprotty';
16
+ import { Action, Disposable, Emitter, Event, IActionHandler, ICommand, ViewerOptions } from '@eclipse-glsp/sprotty';
17
17
  export interface FocusChange {
18
18
  hasFocus: boolean;
19
19
  focusElement: HTMLOrSVGElement | null;
@@ -24,7 +24,7 @@ export interface FocusChange {
24
24
  * Emits a {@link FocusChange} event when the focus state changes.
25
25
  * Allows querying of the current focus state and the focused root diagram element and the currently focused element within the diagram.
26
26
  */
27
- export declare class FocusTracker implements IActionHandler {
27
+ export declare class FocusTracker implements IActionHandler, Disposable {
28
28
  protected inActiveCssClass: string;
29
29
  protected _hasFocus: boolean;
30
30
  protected _focusElement: HTMLOrSVGElement | null;
@@ -39,5 +39,6 @@ export declare class FocusTracker implements IActionHandler {
39
39
  get focusElement(): HTMLOrSVGElement | null;
40
40
  get diagramElement(): HTMLElement | null;
41
41
  handle(action: Action): void | Action | ICommand;
42
+ dispose(): void;
42
43
  }
43
44
  //# 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":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAS,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI/G,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;CACtC;AAED;;;;GAIG;AACH,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,SAAS,CAAC,qBAAqB,uBAA8B;IAC7D;;OAEG;IACH,IAAI,cAAc,IAAI,KAAK,CAAC,WAAW,CAAC,CAEvC;IAED,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;CAoBnD"}
1
+ {"version":3,"file":"focus-tracker.d.ts","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAS,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3H,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;CACtC;AAED;;;;GAIG;AACH,qBACa,YAAa,YAAW,cAAc,EAAE,UAAU;IAC3D,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,SAAS,CAAC,qBAAqB,uBAA8B;IAC7D;;OAEG;IACH,IAAI,cAAc,IAAI,KAAK,CAAC,WAAW,CAAC,CAEvC;IAED,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;IAsBhD,OAAO,IAAI,IAAI;CAGlB"}
@@ -74,12 +74,21 @@ let FocusTracker = class FocusTracker {
74
74
  }
75
75
  this.onFocusChangedEmitter.fire({ hasFocus: this.hasFocus, focusElement: this.focusElement, diagramElement: this.diagramElement });
76
76
  }
77
+ dispose() {
78
+ this.onFocusChangedEmitter.dispose();
79
+ }
77
80
  };
78
81
  exports.FocusTracker = FocusTracker;
79
82
  __decorate([
80
83
  (0, inversify_1.inject)(sprotty_1.TYPES.ViewerOptions),
81
84
  __metadata("design:type", Object)
82
85
  ], FocusTracker.prototype, "options", void 0);
86
+ __decorate([
87
+ (0, inversify_1.preDestroy)(),
88
+ __metadata("design:type", Function),
89
+ __metadata("design:paramtypes", []),
90
+ __metadata("design:returntype", void 0)
91
+ ], FocusTracker.prototype, "dispose", null);
83
92
  exports.FocusTracker = FocusTracker = __decorate([
84
93
  (0, inversify_1.injectable)()
85
94
  ], FocusTracker);
@@ -1 +1 @@
1
- {"version":3,"file":"focus-tracker.js","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAA+G;AAC/G,yCAA+C;AAC/C,2EAAsE;AAQtE;;;;GAIG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACO,qBAAgB,GAAG,UAAU,CAAC;QAC9B,cAAS,GAAG,IAAI,CAAC;QAMjB,0BAAqB,GAAG,IAAI,iBAAO,EAAe,CAAC;IAwCjE,CAAC;IAvCG;;OAEG;IACH,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,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,CAAC,mDAAuB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAwC,CAAC;QACvE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvI,CAAC;CACJ,CAAA;AAhDY,oCAAY;AAMkB;IAAtC,IAAA,kBAAM,EAAC,eAAK,CAAC,aAAa,CAAC;;6CAAkC;uBANrD,YAAY;IADxB,IAAA,sBAAU,GAAE;GACA,YAAY,CAgDxB"}
1
+ {"version":3,"file":"focus-tracker.js","sourceRoot":"","sources":["../../../src/base/focus/focus-tracker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAA2H;AAC3H,yCAA2D;AAC3D,2EAAsE;AAQtE;;;;GAIG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACO,qBAAgB,GAAG,UAAU,CAAC;QAC9B,cAAS,GAAG,IAAI,CAAC;QAMjB,0BAAqB,GAAG,IAAI,iBAAO,EAAe,CAAC;IA6CjE,CAAC;IA5CG;;OAEG;IACH,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,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,CAAC,mDAAuB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAwC,CAAC;QACvE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvI,CAAC;IAGD,OAAO;QACH,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;CACJ,CAAA;AArDY,oCAAY;AAMkB;IAAtC,IAAA,kBAAM,EAAC,eAAK,CAAC,aAAa,CAAC;;6CAAkC;AA4C9D;IADC,IAAA,sBAAU,GAAE;;;;2CAGZ;uBApDQ,YAAY;IADxB,IAAA,sBAAU,GAAE;GACA,YAAY,CAqDxB"}
@@ -0,0 +1,65 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2025 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 { Disposable, DisposableCollection, Emitter, Event, GModelRoot, ICommand, ICommandStack, LazyInjector, Viewport } from '@eclipse-glsp/sprotty';
17
+ /**
18
+ * Service that tracks changes to the model root and the viewport.
19
+ * Allows to register listeners that are notified when the model root or the viewport changes.
20
+ * The current model root can be queried at any time.
21
+ */
22
+ export interface IModelChangeService {
23
+ /** The current model root */
24
+ readonly currentRoot: Readonly<GModelRoot> | undefined;
25
+ /**
26
+ * Event that is fired when the model root of the diagram changes i.e. after the `CommandStack` has processed a model update.
27
+ */
28
+ onModelRootChanged: Event<Readonly<GModelRoot>>;
29
+ /**
30
+ * Event that is fired when the viewport of the diagram changes i.e. after the `CommandStack` has processed a viewport update.
31
+ * By default, this event is only fired if the viewport was changed via a `SetViewportCommand` or `BoundsAwareViewportCommand`
32
+ */
33
+ onViewportChanged: Event<ViewportChange>;
34
+ }
35
+ /**
36
+ * Event data for the {@link IModelChangeService.onViewportChanged} event.
37
+ */
38
+ export interface ViewportChange {
39
+ /** The new viewport */
40
+ newViewport: Readonly<Viewport>;
41
+ /** The old viewport */
42
+ oldViewport?: Readonly<Viewport>;
43
+ }
44
+ export declare class ModelChangeService implements IModelChangeService, Disposable {
45
+ protected lazyInjector: LazyInjector;
46
+ protected _currentRoot?: Readonly<GModelRoot>;
47
+ protected lastViewport?: Readonly<Viewport>;
48
+ protected toDispose: DisposableCollection;
49
+ get currentRoot(): Readonly<GModelRoot> | undefined;
50
+ protected get commandStack(): ICommandStack;
51
+ protected onModelRootChangedEmitter: Emitter<Readonly<GModelRoot>>;
52
+ get onModelRootChanged(): Event<Readonly<GModelRoot>>;
53
+ protected onViewportChangedEmitter: Emitter<ViewportChange>;
54
+ get onViewportChanged(): Event<ViewportChange>;
55
+ protected initialize(): void;
56
+ dispose(): void;
57
+ protected handleCommandExecution(command: ICommand, newRoot: GModelRoot): void;
58
+ protected isModelRootChangeCommand(command: ICommand): boolean;
59
+ protected isViewportChangeCommand(command: ICommand): boolean;
60
+ protected handleModelRootChangeCommand(command: ICommand, newRoot: GModelRoot): void;
61
+ protected handleViewportChangeCommand(command: ICommand, newRoot: GModelRoot): void;
62
+ protected hasViewportChanged(newViewport: Readonly<Viewport>): boolean;
63
+ protected toViewport(root: Readonly<GModelRoot>): Readonly<Viewport> | undefined;
64
+ }
65
+ //# sourceMappingURL=model-change-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-change-service.d.ts","sourceRoot":"","sources":["../../../src/base/model/model-change-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAEH,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EAKZ,QAAQ,EAGX,MAAM,uBAAuB,CAAC;AAG/B;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACvD;;OAEG;IACH,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhD;;;OAGG;IACH,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,uBAAuB;IACvB,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,uBAAuB;IACvB,WAAW,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;CACpC;AAED,qBAAa,kBAAmB,YAAW,mBAAmB,EAAE,UAAU;IAEtE,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,SAAS,uBAA8B;IAEjD,IAAI,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAElD;IAED,SAAS,KAAK,YAAY,IAAI,aAAa,CAE1C;IAED,SAAS,CAAC,yBAAyB,gCAAuC;IAC1E,IAAI,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAEpD;IAED,SAAS,CAAC,wBAAwB,0BAAiC;IACnE,IAAI,iBAAiB,IAAI,KAAK,CAAC,cAAc,CAAC,CAE7C;IAGD,SAAS,CAAC,UAAU,IAAI,IAAI;IAM5B,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAS9E,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAI9D,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAI7D,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAMpF,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAYnF,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO;IAWtE,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;CAGnF"}