@theia/scm 1.67.0-next.56 → 1.67.0-next.86

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 (218) hide show
  1. package/lib/browser/decorations/scm-decorations-service.d.ts +21 -0
  2. package/lib/browser/decorations/scm-decorations-service.d.ts.map +1 -0
  3. package/lib/browser/decorations/scm-decorations-service.js +134 -0
  4. package/lib/browser/decorations/scm-decorations-service.js.map +1 -0
  5. package/lib/browser/decorations/scm-navigator-decorator.d.ts +26 -0
  6. package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +1 -0
  7. package/lib/browser/decorations/scm-navigator-decorator.js +122 -0
  8. package/lib/browser/decorations/scm-navigator-decorator.js.map +1 -0
  9. package/lib/browser/dirty-diff/content-lines.d.ts +15 -0
  10. package/lib/browser/dirty-diff/content-lines.d.ts.map +1 -0
  11. package/lib/browser/dirty-diff/content-lines.js +114 -0
  12. package/lib/browser/dirty-diff/content-lines.js.map +1 -0
  13. package/lib/browser/dirty-diff/content-lines.spec.d.ts +2 -0
  14. package/lib/browser/dirty-diff/content-lines.spec.d.ts.map +1 -0
  15. package/lib/browser/dirty-diff/content-lines.spec.js +40 -0
  16. package/lib/browser/dirty-diff/content-lines.spec.js.map +1 -0
  17. package/lib/browser/dirty-diff/diff-computer.d.ts +39 -0
  18. package/lib/browser/dirty-diff/diff-computer.d.ts.map +1 -0
  19. package/lib/browser/dirty-diff/diff-computer.js +167 -0
  20. package/lib/browser/dirty-diff/diff-computer.js.map +1 -0
  21. package/lib/browser/dirty-diff/diff-computer.spec.d.ts +2 -0
  22. package/lib/browser/dirty-diff/diff-computer.spec.d.ts.map +1 -0
  23. package/lib/browser/dirty-diff/diff-computer.spec.js +384 -0
  24. package/lib/browser/dirty-diff/diff-computer.spec.js.map +1 -0
  25. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +17 -0
  26. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts.map +1 -0
  27. package/lib/browser/dirty-diff/dirty-diff-decorator.js +101 -0
  28. package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +1 -0
  29. package/lib/browser/dirty-diff/dirty-diff-module.d.ts +4 -0
  30. package/lib/browser/dirty-diff/dirty-diff-module.d.ts.map +1 -0
  31. package/lib/browser/dirty-diff/dirty-diff-module.js +34 -0
  32. package/lib/browser/dirty-diff/dirty-diff-module.js.map +1 -0
  33. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts +49 -0
  34. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts.map +1 -0
  35. package/lib/browser/dirty-diff/dirty-diff-navigator.js +295 -0
  36. package/lib/browser/dirty-diff/dirty-diff-navigator.js.map +1 -0
  37. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts +50 -0
  38. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts.map +1 -0
  39. package/lib/browser/dirty-diff/dirty-diff-widget.js +357 -0
  40. package/lib/browser/dirty-diff/dirty-diff-widget.js.map +1 -0
  41. package/lib/browser/merge-editor/merge-editor-contribution.d.ts +34 -0
  42. package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +1 -0
  43. package/lib/browser/merge-editor/merge-editor-contribution.js +335 -0
  44. package/lib/browser/merge-editor/merge-editor-contribution.js.map +1 -0
  45. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +31 -0
  46. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +1 -0
  47. package/lib/browser/merge-editor/merge-editor-dev-contribution.js +151 -0
  48. package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +1 -0
  49. package/lib/browser/merge-editor/merge-editor-module.d.ts +24 -0
  50. package/lib/browser/merge-editor/merge-editor-module.d.ts.map +1 -0
  51. package/lib/browser/merge-editor/merge-editor-module.js +109 -0
  52. package/lib/browser/merge-editor/merge-editor-module.js.map +1 -0
  53. package/lib/browser/merge-editor/merge-editor.d.ts +122 -0
  54. package/lib/browser/merge-editor/merge-editor.d.ts.map +1 -0
  55. package/lib/browser/merge-editor/merge-editor.js +560 -0
  56. package/lib/browser/merge-editor/merge-editor.js.map +1 -0
  57. package/lib/browser/merge-editor/model/line-range.d.ts +37 -0
  58. package/lib/browser/merge-editor/model/line-range.d.ts.map +1 -0
  59. package/lib/browser/merge-editor/model/line-range.js +111 -0
  60. package/lib/browser/merge-editor/model/line-range.js.map +1 -0
  61. package/lib/browser/merge-editor/model/live-diff.d.ts +26 -0
  62. package/lib/browser/merge-editor/model/live-diff.d.ts.map +1 -0
  63. package/lib/browser/merge-editor/model/live-diff.js +85 -0
  64. package/lib/browser/merge-editor/model/live-diff.js.map +1 -0
  65. package/lib/browser/merge-editor/model/merge-editor-model.d.ts +116 -0
  66. package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +1 -0
  67. package/lib/browser/merge-editor/model/merge-editor-model.js +507 -0
  68. package/lib/browser/merge-editor/model/merge-editor-model.js.map +1 -0
  69. package/lib/browser/merge-editor/model/merge-range.d.ts +50 -0
  70. package/lib/browser/merge-editor/model/merge-range.d.ts.map +1 -0
  71. package/lib/browser/merge-editor/model/merge-range.js +215 -0
  72. package/lib/browser/merge-editor/model/merge-range.js.map +1 -0
  73. package/lib/browser/merge-editor/model/range-editing.d.ts +21 -0
  74. package/lib/browser/merge-editor/model/range-editing.d.ts.map +1 -0
  75. package/lib/browser/merge-editor/model/range-editing.js +68 -0
  76. package/lib/browser/merge-editor/model/range-editing.js.map +1 -0
  77. package/lib/browser/merge-editor/model/range-mapping.d.ts +106 -0
  78. package/lib/browser/merge-editor/model/range-mapping.d.ts.map +1 -0
  79. package/lib/browser/merge-editor/model/range-mapping.js +252 -0
  80. package/lib/browser/merge-editor/model/range-mapping.js.map +1 -0
  81. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +2 -0
  82. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +1 -0
  83. package/lib/browser/merge-editor/model/range-mapping.spec.js +48 -0
  84. package/lib/browser/merge-editor/model/range-mapping.spec.js.map +1 -0
  85. package/lib/browser/merge-editor/model/range-utils.d.ts +25 -0
  86. package/lib/browser/merge-editor/model/range-utils.d.ts.map +1 -0
  87. package/lib/browser/merge-editor/model/range-utils.js +118 -0
  88. package/lib/browser/merge-editor/model/range-utils.js.map +1 -0
  89. package/lib/browser/merge-editor/view/diff-spacers.d.ts +50 -0
  90. package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +1 -0
  91. package/lib/browser/merge-editor/view/diff-spacers.js +133 -0
  92. package/lib/browser/merge-editor/view/diff-spacers.js.map +1 -0
  93. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +6 -0
  94. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +1 -0
  95. package/lib/browser/merge-editor/view/merge-editor-panes/index.js +24 -0
  96. package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +1 -0
  97. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +12 -0
  98. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +1 -0
  99. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +65 -0
  100. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +1 -0
  101. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +30 -0
  102. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +1 -0
  103. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +102 -0
  104. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +1 -0
  105. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +49 -0
  106. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +1 -0
  107. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +214 -0
  108. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +1 -0
  109. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +16 -0
  110. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +1 -0
  111. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +107 -0
  112. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +1 -0
  113. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +27 -0
  114. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +1 -0
  115. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +135 -0
  116. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +1 -0
  117. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +20 -0
  118. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +1 -0
  119. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +218 -0
  120. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +1 -0
  121. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +57 -0
  122. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +1 -0
  123. package/lib/browser/merge-editor/view/merge-editor-view-zones.js +218 -0
  124. package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +1 -0
  125. package/lib/browser/merge-editor/view/merge-range-actions.d.ts +23 -0
  126. package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +1 -0
  127. package/lib/browser/merge-editor/view/merge-range-actions.js +142 -0
  128. package/lib/browser/merge-editor/view/merge-range-actions.js.map +1 -0
  129. package/lib/browser/scm-amend-component.d.ts +124 -0
  130. package/lib/browser/scm-amend-component.d.ts.map +1 -0
  131. package/lib/browser/scm-amend-component.js +464 -0
  132. package/lib/browser/scm-amend-component.js.map +1 -0
  133. package/lib/browser/scm-amend-widget.d.ts +21 -0
  134. package/lib/browser/scm-amend-widget.d.ts.map +1 -0
  135. package/lib/browser/scm-amend-widget.js +91 -0
  136. package/lib/browser/scm-amend-widget.js.map +1 -0
  137. package/lib/browser/scm-avatar-service.d.ts +4 -0
  138. package/lib/browser/scm-avatar-service.d.ts.map +1 -0
  139. package/lib/browser/scm-avatar-service.js +32 -0
  140. package/lib/browser/scm-avatar-service.js.map +1 -0
  141. package/lib/browser/scm-colors.d.ts +8 -0
  142. package/lib/browser/scm-colors.d.ts.map +1 -0
  143. package/lib/browser/scm-colors.js +27 -0
  144. package/lib/browser/scm-colors.js.map +1 -0
  145. package/lib/browser/scm-commit-widget.d.ts +53 -0
  146. package/lib/browser/scm-commit-widget.d.ts.map +1 -0
  147. package/lib/browser/scm-commit-widget.js +188 -0
  148. package/lib/browser/scm-commit-widget.js.map +1 -0
  149. package/lib/browser/scm-context-key-service.d.ts +13 -0
  150. package/lib/browser/scm-context-key-service.d.ts.map +1 -0
  151. package/lib/browser/scm-context-key-service.js +55 -0
  152. package/lib/browser/scm-context-key-service.js.map +1 -0
  153. package/lib/browser/scm-contribution.d.ts +98 -0
  154. package/lib/browser/scm-contribution.d.ts.map +1 -0
  155. package/lib/browser/scm-contribution.js +480 -0
  156. package/lib/browser/scm-contribution.js.map +1 -0
  157. package/lib/browser/scm-frontend-module.d.ts +7 -0
  158. package/lib/browser/scm-frontend-module.d.ts.map +1 -0
  159. package/lib/browser/scm-frontend-module.js +129 -0
  160. package/lib/browser/scm-frontend-module.js.map +1 -0
  161. package/lib/browser/scm-groups-tree-model.d.ts +15 -0
  162. package/lib/browser/scm-groups-tree-model.d.ts.map +1 -0
  163. package/lib/browser/scm-groups-tree-model.js +90 -0
  164. package/lib/browser/scm-groups-tree-model.js.map +1 -0
  165. package/lib/browser/scm-input.d.ts +54 -0
  166. package/lib/browser/scm-input.d.ts.map +1 -0
  167. package/lib/browser/scm-input.js +128 -0
  168. package/lib/browser/scm-input.js.map +1 -0
  169. package/lib/browser/scm-layout-migrations.d.ts +10 -0
  170. package/lib/browser/scm-layout-migrations.d.ts.map +1 -0
  171. package/lib/browser/scm-layout-migrations.js +75 -0
  172. package/lib/browser/scm-layout-migrations.js.map +1 -0
  173. package/lib/browser/scm-no-repository-widget.d.ts +9 -0
  174. package/lib/browser/scm-no-repository-widget.d.ts.map +1 -0
  175. package/lib/browser/scm-no-repository-widget.js +42 -0
  176. package/lib/browser/scm-no-repository-widget.js.map +1 -0
  177. package/lib/browser/scm-provider.d.ts +60 -0
  178. package/lib/browser/scm-provider.d.ts.map +1 -0
  179. package/lib/browser/scm-provider.js +20 -0
  180. package/lib/browser/scm-provider.js.map +1 -0
  181. package/lib/browser/scm-quick-open-service.d.ts +12 -0
  182. package/lib/browser/scm-quick-open-service.d.ts.map +1 -0
  183. package/lib/browser/scm-quick-open-service.js +66 -0
  184. package/lib/browser/scm-quick-open-service.js.map +1 -0
  185. package/lib/browser/scm-repository.d.ts +18 -0
  186. package/lib/browser/scm-repository.d.ts.map +1 -0
  187. package/lib/browser/scm-repository.js +42 -0
  188. package/lib/browser/scm-repository.js.map +1 -0
  189. package/lib/browser/scm-service.d.ts +27 -0
  190. package/lib/browser/scm-service.d.ts.map +1 -0
  191. package/lib/browser/scm-service.js +101 -0
  192. package/lib/browser/scm-service.js.map +1 -0
  193. package/lib/browser/scm-tree-label-provider.d.ts +8 -0
  194. package/lib/browser/scm-tree-label-provider.d.ts.map +1 -0
  195. package/lib/browser/scm-tree-label-provider.js +50 -0
  196. package/lib/browser/scm-tree-label-provider.js.map +1 -0
  197. package/lib/browser/scm-tree-model.d.ts +76 -0
  198. package/lib/browser/scm-tree-model.d.ts.map +1 -0
  199. package/lib/browser/scm-tree-model.js +349 -0
  200. package/lib/browser/scm-tree-model.js.map +1 -0
  201. package/lib/browser/scm-tree-widget.d.ts +206 -0
  202. package/lib/browser/scm-tree-widget.d.ts.map +1 -0
  203. package/lib/browser/scm-tree-widget.js +677 -0
  204. package/lib/browser/scm-tree-widget.js.map +1 -0
  205. package/lib/browser/scm-widget.d.ts +42 -0
  206. package/lib/browser/scm-widget.d.ts.map +1 -0
  207. package/lib/browser/scm-widget.js +222 -0
  208. package/lib/browser/scm-widget.js.map +1 -0
  209. package/lib/common/scm-preferences.d.ts +12 -0
  210. package/lib/common/scm-preferences.d.ts.map +1 -0
  211. package/lib/common/scm-preferences.js +51 -0
  212. package/lib/common/scm-preferences.js.map +1 -0
  213. package/lib/node/scm-backend-module.d.ts +4 -0
  214. package/lib/node/scm-backend-module.d.ts.map +1 -0
  215. package/lib/node/scm-backend-module.js +23 -0
  216. package/lib/node/scm-backend-module.js.map +1 -0
  217. package/package.json +6 -6
  218. package/src/browser/scm-widget.tsx +2 -1
@@ -0,0 +1,560 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 1C-Soft LLC 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-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var MergeEditorSettings_1, MergeEditorOpenHandler_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.MergeEditorOpenHandler = exports.MergeEditor = exports.MergeEditorSettings = exports.MergeEditorLayoutMode = exports.MergeEditorUri = void 0;
20
+ const tslib_1 = require("tslib");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const core_1 = require("@theia/core");
23
+ const browser_1 = require("@theia/core/lib/browser");
24
+ const observable_1 = require("@theia/core/lib/common/observable");
25
+ const merge_editor_model_1 = require("./model/merge-editor-model");
26
+ const merge_editor_panes_1 = require("./view/merge-editor-panes");
27
+ const merge_editor_view_zones_1 = require("./view/merge-editor-view-zones");
28
+ const merge_editor_scroll_sync_1 = require("./view/merge-editor-scroll-sync");
29
+ var MergeEditorUri;
30
+ (function (MergeEditorUri) {
31
+ const SCHEME = 'merge-editor';
32
+ function isMergeEditorUri(uri) {
33
+ return uri.scheme === SCHEME;
34
+ }
35
+ MergeEditorUri.isMergeEditorUri = isMergeEditorUri;
36
+ function encode({ baseUri, side1Uri, side2Uri, resultUri }) {
37
+ return new core_1.URI().withScheme(SCHEME).withQuery(JSON.stringify([baseUri.toString(), side1Uri.toString(), side2Uri.toString(), resultUri.toString()]));
38
+ }
39
+ MergeEditorUri.encode = encode;
40
+ function decode(uri) {
41
+ if (uri.scheme !== SCHEME) {
42
+ throw new Error(`The URI must have scheme ${SCHEME}. The URI was: ${uri}`);
43
+ }
44
+ const mergeUris = JSON.parse(uri.query);
45
+ if (!Array.isArray(mergeUris) || !mergeUris.every(mergeUri => typeof mergeUri === 'string')) {
46
+ throw new Error(`The URI ${uri} is not a valid URI for scheme ${SCHEME}`);
47
+ }
48
+ return {
49
+ baseUri: new core_1.URI(mergeUris[0]),
50
+ side1Uri: new core_1.URI(mergeUris[1]),
51
+ side2Uri: new core_1.URI(mergeUris[2]),
52
+ resultUri: new core_1.URI(mergeUris[3])
53
+ };
54
+ }
55
+ MergeEditorUri.decode = decode;
56
+ })(MergeEditorUri || (exports.MergeEditorUri = MergeEditorUri = {}));
57
+ var MergeEditorLayoutMode;
58
+ (function (MergeEditorLayoutMode) {
59
+ MergeEditorLayoutMode.DEFAULT = { kind: 'mixed', showBase: true, showBaseAtTop: false };
60
+ })(MergeEditorLayoutMode || (exports.MergeEditorLayoutMode = MergeEditorLayoutMode = {}));
61
+ let MergeEditorSettings = MergeEditorSettings_1 = class MergeEditorSettings {
62
+ constructor() {
63
+ this.layoutMode = MergeEditorLayoutMode.DEFAULT;
64
+ }
65
+ async load() {
66
+ await Promise.allSettled([
67
+ this.storageService.getData(MergeEditorSettings_1.LAYOUT_MODE, this.layoutMode).then(layoutMode => this.layoutMode = layoutMode),
68
+ ]);
69
+ }
70
+ async save() {
71
+ await Promise.allSettled([
72
+ this.storageService.setData(MergeEditorSettings_1.LAYOUT_MODE, this.layoutMode),
73
+ ]);
74
+ }
75
+ };
76
+ exports.MergeEditorSettings = MergeEditorSettings;
77
+ MergeEditorSettings.LAYOUT_MODE = 'mergeEditor/layoutMode';
78
+ tslib_1.__decorate([
79
+ (0, inversify_1.inject)(browser_1.StorageService),
80
+ tslib_1.__metadata("design:type", Object)
81
+ ], MergeEditorSettings.prototype, "storageService", void 0);
82
+ exports.MergeEditorSettings = MergeEditorSettings = MergeEditorSettings_1 = tslib_1.__decorate([
83
+ (0, inversify_1.injectable)()
84
+ ], MergeEditorSettings);
85
+ let MergeEditor = class MergeEditor extends browser_1.BaseWidget {
86
+ constructor() {
87
+ super(...arguments);
88
+ this.visibilityObservable = observable_1.SettableObservable.create(true);
89
+ this.currentPaneObservable = observable_1.SettableObservable.create(undefined);
90
+ this.layoutModeObservable = observable_1.SettableObservable.create(MergeEditorLayoutMode.DEFAULT, {
91
+ isEqual: (a, b) => JSON.stringify(a) === JSON.stringify(b)
92
+ });
93
+ this.currentMergeRangeObservable = this.createCurrentMergeRangeObservable();
94
+ this.selectionInBaseObservable = this.createSelectionInBaseObservable();
95
+ this.layoutInitialized = false;
96
+ }
97
+ init() {
98
+ this.addClass('theia-merge-editor');
99
+ const { baseUri, side1Uri, side2Uri, resultUri } = this;
100
+ this.id = MergeEditorUri.encode({ baseUri, side1Uri, side2Uri, resultUri }).toString();
101
+ const setLabels = () => {
102
+ this.title.label = core_1.nls.localizeByDefault('Merging: {0}', this.labelProvider.getName(resultUri));
103
+ this.title.iconClass = this.labelProvider.getIcon(resultUri) + ' file-icon';
104
+ this.resultPane.header.description = this.labelProvider.getLongName(resultUri);
105
+ };
106
+ setLabels();
107
+ this.toDispose.push(this.labelProvider.onDidChange(event => {
108
+ if (event.affects(resultUri)) {
109
+ setLabels();
110
+ }
111
+ }));
112
+ this.title.caption = resultUri.path.fsPath();
113
+ this.title.closable = true;
114
+ this.basePane.header.title.label = core_1.nls.localizeByDefault('Base');
115
+ this.side1Pane.header.title.label = core_1.nls.localizeByDefault('Input 1');
116
+ this.side2Pane.header.title.label = core_1.nls.localizeByDefault('Input 2');
117
+ this.resultPane.header.title.label = core_1.nls.localizeByDefault('Result');
118
+ this.panes.forEach(pane => pane.mergeEditor = this);
119
+ const layout = this.layout = new browser_1.PanelLayout();
120
+ this.verticalSplitPanel = new browser_1.SplitPanel({
121
+ spacing: 1, // --theia-border-width
122
+ orientation: 'vertical'
123
+ });
124
+ layout.addWidget(this.verticalSplitPanel);
125
+ this.horizontalSplitPanel = new browser_1.SplitPanel({
126
+ spacing: 1, // --theia-border-width
127
+ orientation: 'horizontal'
128
+ });
129
+ this.verticalSplitPanel.addWidget(this.horizontalSplitPanel);
130
+ this.layoutMode = this.settings.layoutMode;
131
+ this.toDispose.push(this.scrollSync = this.createScrollSynchronizer());
132
+ this.initCurrentPaneTracker();
133
+ }
134
+ createScrollSynchronizer() {
135
+ return new merge_editor_scroll_sync_1.MergeEditorScrollSync(this);
136
+ }
137
+ initCurrentPaneTracker() {
138
+ const focusTracker = new browser_1.FocusTracker();
139
+ this.toDispose.push(focusTracker);
140
+ focusTracker.currentChanged.connect((_, { oldValue, newValue }) => {
141
+ oldValue === null || oldValue === void 0 ? void 0 : oldValue.removeClass('focused');
142
+ newValue === null || newValue === void 0 ? void 0 : newValue.addClass('focused');
143
+ this.currentPaneObservable.set(newValue || undefined);
144
+ });
145
+ this.panes.forEach(pane => focusTracker.add(pane));
146
+ }
147
+ ensureLayoutInitialized() {
148
+ if (!this.layoutInitialized) {
149
+ this.layoutInitialized = true;
150
+ this.doInitializeLayout();
151
+ this.onLayoutInitialized();
152
+ }
153
+ }
154
+ doInitializeLayout() {
155
+ this.toDispose.push(observable_1.Autorun.create(({ isFirstRun }) => {
156
+ const { layoutMode } = this;
157
+ const scrollState = this.scrollSync.storeScrollState();
158
+ const currentPane = this.currentPaneObservable.getUntracked();
159
+ this.applyLayoutMode(layoutMode);
160
+ const pane = (currentPane === null || currentPane === void 0 ? void 0 : currentPane.isVisible) ? currentPane : this.resultPane;
161
+ this.currentPaneObservable.set(pane);
162
+ pane.activate();
163
+ this.scrollSync.restoreScrollState(scrollState);
164
+ if (!isFirstRun) {
165
+ this.settings.layoutMode = layoutMode;
166
+ }
167
+ }));
168
+ let storedState;
169
+ this.toDispose.push(observable_1.ObservableUtils.autorunWithDisposables(({ toDispose }) => {
170
+ if (this.isShown) {
171
+ toDispose.push(this.createViewZones());
172
+ if (storedState) {
173
+ const { currentPane, scrollState } = storedState;
174
+ storedState = undefined;
175
+ const pane = currentPane !== null && currentPane !== void 0 ? currentPane : this.resultPane;
176
+ this.currentPaneObservable.set(pane);
177
+ pane.activate();
178
+ this.scrollSync.restoreScrollState(scrollState);
179
+ }
180
+ else {
181
+ this.scrollSync.update();
182
+ }
183
+ }
184
+ else {
185
+ storedState = {
186
+ scrollState: this.scrollSync.storeScrollState(),
187
+ currentPane: this.currentPaneObservable.getUntracked()
188
+ };
189
+ }
190
+ }));
191
+ }
192
+ onLayoutInitialized() {
193
+ const shouldGoToInitialMergeRange = () => {
194
+ var _a;
195
+ const { cursorPosition } = (_a = this.currentPane) !== null && _a !== void 0 ? _a : this.resultPane;
196
+ return cursorPosition.line === 0 && cursorPosition.character === 0;
197
+ };
198
+ if (shouldGoToInitialMergeRange()) {
199
+ this.model.onInitialized.then(() => {
200
+ if (!this.isDisposed && shouldGoToInitialMergeRange()) {
201
+ this.goToFirstMergeRange(mergeRange => !this.model.isMergeRangeHandled(mergeRange));
202
+ }
203
+ });
204
+ }
205
+ }
206
+ onResize(msg) {
207
+ super.onResize(msg);
208
+ if (msg.width >= 0 && msg.height >= 0) {
209
+ // Don't try to initialize layout until the merge editor itself is positioned.
210
+ // Otherwise, SplitPanel.setRelativeSizes might not work properly when initializing layout.
211
+ this.ensureLayoutInitialized();
212
+ }
213
+ }
214
+ get isShown() {
215
+ return this.visibilityObservable.get();
216
+ }
217
+ get currentPane() {
218
+ return this.currentPaneObservable.get();
219
+ }
220
+ createCurrentMergeRangeObservable() {
221
+ return observable_1.DerivedObservable.create(() => {
222
+ const { currentPane } = this;
223
+ if (!currentPane) {
224
+ return undefined;
225
+ }
226
+ const { cursorLine } = currentPane;
227
+ return this.model.mergeRanges.find(mergeRange => {
228
+ const lineRange = currentPane.getLineRangeForMergeRange(mergeRange);
229
+ return lineRange.isEmpty ? lineRange.startLineNumber === cursorLine : lineRange.containsLine(cursorLine);
230
+ });
231
+ });
232
+ }
233
+ get currentMergeRange() {
234
+ return this.currentMergeRangeObservable.get();
235
+ }
236
+ createSelectionInBaseObservable() {
237
+ return observable_1.DerivedObservable.create(() => {
238
+ var _a;
239
+ const { currentPane } = this;
240
+ return (_a = currentPane === null || currentPane === void 0 ? void 0 : currentPane.selection) === null || _a === void 0 ? void 0 : _a.map(range => {
241
+ if (currentPane === this.side1Pane) {
242
+ return this.model.translateSideRangeToBase(range, 1);
243
+ }
244
+ if (currentPane === this.side2Pane) {
245
+ return this.model.translateSideRangeToBase(range, 2);
246
+ }
247
+ if (currentPane === this.resultPane) {
248
+ return this.model.translateResultRangeToBase(range);
249
+ }
250
+ return range;
251
+ });
252
+ });
253
+ }
254
+ get selectionInBase() {
255
+ return this.selectionInBaseObservable.get();
256
+ }
257
+ get panes() {
258
+ return [this.basePane, this.side1Pane, this.side2Pane, this.resultPane];
259
+ }
260
+ get baseUri() {
261
+ return this.basePane.editor.uri;
262
+ }
263
+ get side1Uri() {
264
+ return this.side1Pane.editor.uri;
265
+ }
266
+ get side1Title() {
267
+ return this.side1Pane.header.title.label;
268
+ }
269
+ get side2Uri() {
270
+ return this.side2Pane.editor.uri;
271
+ }
272
+ get side2Title() {
273
+ return this.side2Pane.header.title.label;
274
+ }
275
+ get resultUri() {
276
+ return this.resultPane.editor.uri;
277
+ }
278
+ storeState() {
279
+ const getSideState = ({ header }) => ({
280
+ title: header.title.label,
281
+ description: header.description,
282
+ detail: header.detail
283
+ });
284
+ return {
285
+ layoutMode: this.layoutMode,
286
+ side1State: getSideState(this.side1Pane),
287
+ side2State: getSideState(this.side2Pane)
288
+ };
289
+ }
290
+ restoreState(state) {
291
+ const { layoutMode, side1State, side2State } = state;
292
+ if (layoutMode) {
293
+ this.layoutMode = layoutMode;
294
+ }
295
+ const restoreSideState = ({ header }, { title, description, detail }) => {
296
+ if (title) {
297
+ header.title.label = title;
298
+ }
299
+ if (description) {
300
+ header.description = description;
301
+ }
302
+ if (detail) {
303
+ header.detail = detail;
304
+ }
305
+ };
306
+ if (side1State) {
307
+ restoreSideState(this.side1Pane, side1State);
308
+ }
309
+ if (side2State) {
310
+ restoreSideState(this.side2Pane, side2State);
311
+ }
312
+ }
313
+ get saveable() {
314
+ return this.resultPane.editor.document;
315
+ }
316
+ getResourceUri() {
317
+ return this.resultUri;
318
+ }
319
+ createMoveToUri(resourceUri) {
320
+ const { baseUri, side1Uri, side2Uri, resultUri } = this;
321
+ return MergeEditorUri.encode({ baseUri, side1Uri, side2Uri, resultUri: resultUri.withPath(resourceUri.path) });
322
+ }
323
+ getTrackableWidgets() {
324
+ return this.panes.map(pane => pane.editorWidget);
325
+ }
326
+ goToFirstMergeRange(predicate = () => true) {
327
+ var _a;
328
+ const firstMergeRange = this.model.mergeRanges.find(mergeRange => predicate(mergeRange));
329
+ if (firstMergeRange) {
330
+ const pane = (_a = this.currentPane) !== null && _a !== void 0 ? _a : this.resultPane;
331
+ pane.goToMergeRange(firstMergeRange);
332
+ }
333
+ }
334
+ goToNextMergeRange(predicate = () => true) {
335
+ var _a;
336
+ const pane = (_a = this.currentPane) !== null && _a !== void 0 ? _a : this.resultPane;
337
+ const lineNumber = pane.cursorLine;
338
+ const nextMergeRange = this.model.mergeRanges.find(mergeRange => predicate(mergeRange) && pane.getLineRangeForMergeRange(mergeRange).startLineNumber > lineNumber) ||
339
+ this.model.mergeRanges.find(mergeRange => predicate(mergeRange));
340
+ if (nextMergeRange) {
341
+ pane.goToMergeRange(nextMergeRange);
342
+ }
343
+ }
344
+ goToPreviousMergeRange(predicate = () => true) {
345
+ var _a;
346
+ const pane = (_a = this.currentPane) !== null && _a !== void 0 ? _a : this.resultPane;
347
+ const lineNumber = pane.cursorLine;
348
+ const previousMergeRange = core_1.ArrayUtils.findLast(this.model.mergeRanges, mergeRange => predicate(mergeRange) && pane.getLineRangeForMergeRange(mergeRange).endLineNumberExclusive <= lineNumber) ||
349
+ core_1.ArrayUtils.findLast(this.model.mergeRanges, mergeRange => predicate(mergeRange));
350
+ if (previousMergeRange) {
351
+ pane.goToMergeRange(previousMergeRange);
352
+ }
353
+ }
354
+ get layoutMode() {
355
+ return this.layoutModeObservable.get();
356
+ }
357
+ set layoutMode(value) {
358
+ this.layoutModeObservable.set(value);
359
+ }
360
+ get layoutKind() {
361
+ return this.layoutMode.kind;
362
+ }
363
+ set layoutKind(kind) {
364
+ this.layoutMode = {
365
+ ...this.layoutMode,
366
+ kind
367
+ };
368
+ }
369
+ get isShowingBase() {
370
+ return this.layoutMode.showBase;
371
+ }
372
+ get isShowingBaseAtTop() {
373
+ const { layoutMode } = this;
374
+ return layoutMode.showBase && layoutMode.showBaseAtTop;
375
+ }
376
+ toggleShowBase() {
377
+ const { layoutMode } = this;
378
+ this.layoutMode = {
379
+ ...layoutMode,
380
+ showBase: !layoutMode.showBase
381
+ };
382
+ }
383
+ toggleShowBaseTop() {
384
+ const { layoutMode } = this;
385
+ const isToggled = layoutMode.showBase && layoutMode.showBaseAtTop;
386
+ this.layoutMode = {
387
+ ...layoutMode,
388
+ showBaseAtTop: true,
389
+ showBase: !isToggled,
390
+ };
391
+ }
392
+ toggleShowBaseCenter() {
393
+ const { layoutMode } = this;
394
+ const isToggled = layoutMode.showBase && !layoutMode.showBaseAtTop;
395
+ this.layoutMode = {
396
+ ...layoutMode,
397
+ showBaseAtTop: false,
398
+ showBase: !isToggled,
399
+ };
400
+ }
401
+ get shouldAlignResult() {
402
+ return this.layoutKind === 'columns';
403
+ }
404
+ get shouldAlignBase() {
405
+ const { layoutMode } = this;
406
+ return layoutMode.kind === 'mixed' && layoutMode.showBase && !layoutMode.showBaseAtTop;
407
+ }
408
+ applyLayoutMode(layoutMode) {
409
+ const oldVerticalSplitWidgets = [...this.verticalSplitPanel.widgets];
410
+ if (!layoutMode.showBase) {
411
+ // eslint-disable-next-line no-null/no-null
412
+ this.basePane.parent = null;
413
+ }
414
+ this.horizontalSplitPanel.insertWidget(0, this.side1Pane);
415
+ this.horizontalSplitPanel.insertWidget(2, this.side2Pane);
416
+ let horizontalSplitRatio = [50, 50];
417
+ let verticalSplitRatio;
418
+ if (layoutMode.kind === 'columns') {
419
+ horizontalSplitRatio = [33, 34, 33];
420
+ verticalSplitRatio = [100];
421
+ this.horizontalSplitPanel.insertWidget(1, this.resultPane);
422
+ if (layoutMode.showBase) {
423
+ verticalSplitRatio = [30, 70];
424
+ this.verticalSplitPanel.insertWidget(0, this.basePane);
425
+ }
426
+ }
427
+ else {
428
+ verticalSplitRatio = [45, 55];
429
+ if (layoutMode.showBase) {
430
+ if (layoutMode.showBaseAtTop) {
431
+ verticalSplitRatio = [30, 33, 37];
432
+ this.verticalSplitPanel.insertWidget(0, this.basePane);
433
+ }
434
+ else {
435
+ horizontalSplitRatio = [33, 34, 33];
436
+ this.horizontalSplitPanel.insertWidget(1, this.basePane);
437
+ }
438
+ }
439
+ this.verticalSplitPanel.insertWidget(2, this.resultPane);
440
+ }
441
+ this.horizontalSplitPanel.setRelativeSizes(horizontalSplitRatio);
442
+ // Keep the existing vertical split ratio if the layout mode change has not affected the vertical split layout.
443
+ if (!core_1.ArrayUtils.equals(oldVerticalSplitWidgets, this.verticalSplitPanel.widgets)) {
444
+ this.verticalSplitPanel.setRelativeSizes(verticalSplitRatio);
445
+ }
446
+ }
447
+ createViewZones() {
448
+ const { baseViewZones, side1ViewZones, side2ViewZones, resultViewZones } = this.viewZoneComputer.computeViewZones(this);
449
+ const toDispose = new core_1.DisposableCollection();
450
+ const addViewZones = (pane, viewZones) => {
451
+ const editor = pane.editor.getControl();
452
+ const viewZoneIds = [];
453
+ toDispose.push(core_1.Disposable.create(() => {
454
+ editor.changeViewZones(accessor => {
455
+ for (const viewZoneId of viewZoneIds) {
456
+ accessor.removeZone(viewZoneId);
457
+ }
458
+ });
459
+ }));
460
+ editor.changeViewZones(accessor => {
461
+ const ctx = {
462
+ createViewZone: viewZone => viewZoneIds.push(accessor.addZone(viewZone)),
463
+ register: disposable => toDispose.push(disposable)
464
+ };
465
+ for (const viewZone of viewZones) {
466
+ viewZone.create(ctx);
467
+ }
468
+ });
469
+ };
470
+ addViewZones(this.basePane, baseViewZones);
471
+ addViewZones(this.side1Pane, side1ViewZones);
472
+ addViewZones(this.side2Pane, side2ViewZones);
473
+ addViewZones(this.resultPane, resultViewZones);
474
+ return toDispose;
475
+ }
476
+ onBeforeHide(msg) {
477
+ this.visibilityObservable.set(false);
478
+ }
479
+ onAfterShow(msg) {
480
+ this.visibilityObservable.set(true);
481
+ }
482
+ onActivateRequest(msg) {
483
+ super.onActivateRequest(msg);
484
+ const { currentPane } = this;
485
+ if (currentPane) {
486
+ currentPane.activate();
487
+ }
488
+ else {
489
+ this.resultPane.activate();
490
+ }
491
+ }
492
+ };
493
+ exports.MergeEditor = MergeEditor;
494
+ tslib_1.__decorate([
495
+ (0, inversify_1.inject)(merge_editor_model_1.MergeEditorModel),
496
+ tslib_1.__metadata("design:type", merge_editor_model_1.MergeEditorModel)
497
+ ], MergeEditor.prototype, "model", void 0);
498
+ tslib_1.__decorate([
499
+ (0, inversify_1.inject)(merge_editor_panes_1.MergeEditorBasePane),
500
+ tslib_1.__metadata("design:type", merge_editor_panes_1.MergeEditorBasePane)
501
+ ], MergeEditor.prototype, "basePane", void 0);
502
+ tslib_1.__decorate([
503
+ (0, inversify_1.inject)(merge_editor_panes_1.MergeEditorSide1Pane),
504
+ tslib_1.__metadata("design:type", merge_editor_panes_1.MergeEditorSide1Pane)
505
+ ], MergeEditor.prototype, "side1Pane", void 0);
506
+ tslib_1.__decorate([
507
+ (0, inversify_1.inject)(merge_editor_panes_1.MergeEditorSide2Pane),
508
+ tslib_1.__metadata("design:type", merge_editor_panes_1.MergeEditorSide2Pane)
509
+ ], MergeEditor.prototype, "side2Pane", void 0);
510
+ tslib_1.__decorate([
511
+ (0, inversify_1.inject)(merge_editor_panes_1.MergeEditorResultPane),
512
+ tslib_1.__metadata("design:type", merge_editor_panes_1.MergeEditorResultPane)
513
+ ], MergeEditor.prototype, "resultPane", void 0);
514
+ tslib_1.__decorate([
515
+ (0, inversify_1.inject)(merge_editor_view_zones_1.MergeEditorViewZoneComputer),
516
+ tslib_1.__metadata("design:type", merge_editor_view_zones_1.MergeEditorViewZoneComputer)
517
+ ], MergeEditor.prototype, "viewZoneComputer", void 0);
518
+ tslib_1.__decorate([
519
+ (0, inversify_1.inject)(MergeEditorSettings),
520
+ tslib_1.__metadata("design:type", MergeEditorSettings)
521
+ ], MergeEditor.prototype, "settings", void 0);
522
+ tslib_1.__decorate([
523
+ (0, inversify_1.inject)(browser_1.LabelProvider),
524
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
525
+ ], MergeEditor.prototype, "labelProvider", void 0);
526
+ tslib_1.__decorate([
527
+ (0, inversify_1.postConstruct)(),
528
+ tslib_1.__metadata("design:type", Function),
529
+ tslib_1.__metadata("design:paramtypes", []),
530
+ tslib_1.__metadata("design:returntype", void 0)
531
+ ], MergeEditor.prototype, "init", null);
532
+ exports.MergeEditor = MergeEditor = tslib_1.__decorate([
533
+ (0, inversify_1.injectable)()
534
+ ], MergeEditor);
535
+ let MergeEditorOpenHandler = MergeEditorOpenHandler_1 = class MergeEditorOpenHandler extends browser_1.NavigatableWidgetOpenHandler {
536
+ constructor() {
537
+ super(...arguments);
538
+ this.id = MergeEditorOpenHandler_1.ID;
539
+ this.label = core_1.nls.localizeByDefault('Merge Editor');
540
+ }
541
+ canHandle(uri, options) {
542
+ return MergeEditorUri.isMergeEditorUri(uri) ? 1000 : 0;
543
+ }
544
+ open(uri, options) {
545
+ return super.open(uri, options);
546
+ }
547
+ async getOrCreateWidget(uri, options) {
548
+ const widget = await super.getOrCreateWidget(uri, options);
549
+ if (options === null || options === void 0 ? void 0 : options.widgetState) {
550
+ widget.restoreState(options.widgetState);
551
+ }
552
+ return widget;
553
+ }
554
+ };
555
+ exports.MergeEditorOpenHandler = MergeEditorOpenHandler;
556
+ MergeEditorOpenHandler.ID = 'merge-editor-opener';
557
+ exports.MergeEditorOpenHandler = MergeEditorOpenHandler = MergeEditorOpenHandler_1 = tslib_1.__decorate([
558
+ (0, inversify_1.injectable)()
559
+ ], MergeEditorOpenHandler);
560
+ //# sourceMappingURL=merge-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor.js","sourceRoot":"","sources":["../../../src/browser/merge-editor/merge-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Range } from '@theia/core/shared/vscode-languageserver-protocol';
2
+ import { TextEditorDocument } from '@theia/editor/lib/browser/editor';
3
+ /**
4
+ * Represents a range of whole lines of text. Line numbers are zero-based.
5
+ */
6
+ export declare class LineRange {
7
+ /** A zero-based number of the start line. The range starts exactly at the beginning of this line. */
8
+ readonly startLineNumber: number;
9
+ readonly lineCount: number;
10
+ static compareByStart(a: LineRange, b: LineRange): number;
11
+ static fromLineNumbers(startLineNumber: number, endExclusiveLineNumber: number): LineRange;
12
+ constructor(
13
+ /** A zero-based number of the start line. The range starts exactly at the beginning of this line. */
14
+ startLineNumber: number, lineCount: number);
15
+ join(other: LineRange): LineRange;
16
+ /** A zero-based number of the end line. The range ends just before the beginning of this line. */
17
+ get endLineNumberExclusive(): number;
18
+ get isEmpty(): boolean;
19
+ /**
20
+ * Returns `false` if there is at least one line between `this` and `other`.
21
+ */
22
+ touches(other: LineRange): boolean;
23
+ isAfter(other: LineRange): boolean;
24
+ isBefore(other: LineRange): boolean;
25
+ delta(lineDelta: number): LineRange;
26
+ deltaStart(lineDelta: number): LineRange;
27
+ deltaEnd(lineDelta: number): LineRange;
28
+ toString(): string;
29
+ equals(other: LineRange): boolean;
30
+ contains(other: LineRange): boolean;
31
+ containsLine(lineNumber: number): boolean;
32
+ getLines(document: TextEditorDocument): string[];
33
+ toRange(): Range;
34
+ toInclusiveRange(): Range | undefined;
35
+ toInclusiveRangeOrEmpty(): Range;
36
+ }
37
+ //# sourceMappingURL=line-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-range.d.ts","sourceRoot":"","sources":["../../../../src/browser/merge-editor/model/line-range.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,EAAY,MAAM,mDAAmD,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;GAEG;AACH,qBAAa,SAAS;IAUd,qGAAqG;IACrG,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAX9B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM;IAIzD,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,GAAG,SAAS;;IAKtF,qGAAqG;IAC5F,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM;IAO9B,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAIjC,kGAAkG;IAClG,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAInC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAInC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAIxC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAItC,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIjC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAInC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIzC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,EAAE;IAQhD,OAAO,IAAI,KAAK;IAIhB,gBAAgB,IAAI,KAAK,GAAG,SAAS;IAOrC,uBAAuB,IAAI,KAAK;CAMnC"}