@theia/scm 1.75.0-next.18 → 1.75.0-next.21

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 (44) hide show
  1. package/lib/browser/scm-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/scm-frontend-module.js +6 -0
  3. package/lib/browser/scm-frontend-module.js.map +1 -1
  4. package/lib/browser/scm-history-graph-contribution.d.ts +42 -0
  5. package/lib/browser/scm-history-graph-contribution.d.ts.map +1 -0
  6. package/lib/browser/scm-history-graph-contribution.js +220 -0
  7. package/lib/browser/scm-history-graph-contribution.js.map +1 -0
  8. package/lib/browser/scm-history-graph-contribution.spec.d.ts +2 -0
  9. package/lib/browser/scm-history-graph-contribution.spec.d.ts.map +1 -0
  10. package/lib/browser/scm-history-graph-contribution.spec.js +66 -0
  11. package/lib/browser/scm-history-graph-contribution.spec.js.map +1 -0
  12. package/lib/browser/scm-history-graph-helpers.d.ts +8 -0
  13. package/lib/browser/scm-history-graph-helpers.d.ts.map +1 -1
  14. package/lib/browser/scm-history-graph-helpers.js +20 -0
  15. package/lib/browser/scm-history-graph-helpers.js.map +1 -1
  16. package/lib/browser/scm-history-graph-helpers.spec.js +25 -0
  17. package/lib/browser/scm-history-graph-helpers.spec.js.map +1 -1
  18. package/lib/browser/scm-history-graph-model.d.ts +43 -5
  19. package/lib/browser/scm-history-graph-model.d.ts.map +1 -1
  20. package/lib/browser/scm-history-graph-model.js +84 -10
  21. package/lib/browser/scm-history-graph-model.js.map +1 -1
  22. package/lib/browser/scm-history-graph-model.spec.js +145 -4
  23. package/lib/browser/scm-history-graph-model.spec.js.map +1 -1
  24. package/lib/browser/scm-history-graph-widget.d.ts +8 -1
  25. package/lib/browser/scm-history-graph-widget.d.ts.map +1 -1
  26. package/lib/browser/scm-history-graph-widget.js +23 -4
  27. package/lib/browser/scm-history-graph-widget.js.map +1 -1
  28. package/lib/browser/scm-history-graph-widget.spec.js +11 -1
  29. package/lib/browser/scm-history-graph-widget.spec.js.map +1 -1
  30. package/lib/common/scm-preferences.d.ts +3 -0
  31. package/lib/common/scm-preferences.d.ts.map +1 -1
  32. package/lib/common/scm-preferences.js +24 -0
  33. package/lib/common/scm-preferences.js.map +1 -1
  34. package/package.json +6 -6
  35. package/src/browser/scm-frontend-module.ts +7 -1
  36. package/src/browser/scm-history-graph-contribution.spec.ts +83 -0
  37. package/src/browser/scm-history-graph-contribution.ts +220 -0
  38. package/src/browser/scm-history-graph-helpers.spec.ts +34 -1
  39. package/src/browser/scm-history-graph-helpers.ts +25 -0
  40. package/src/browser/scm-history-graph-model.spec.ts +184 -9
  41. package/src/browser/scm-history-graph-model.ts +99 -11
  42. package/src/browser/scm-history-graph-widget.spec.ts +12 -1
  43. package/src/browser/scm-history-graph-widget.tsx +26 -6
  44. package/src/common/scm-preferences.ts +27 -0
@@ -2,9 +2,19 @@ import { DisposableCollection } from '@theia/core/lib/common/disposable';
2
2
  import { Emitter } from '@theia/core/lib/common/event';
3
3
  import { CancellationTokenSource } from '@theia/core/lib/common/cancellation';
4
4
  import { ScmService } from './scm-service';
5
- import { ScmHistoryItem, ScmHistoryProvider } from './scm-provider';
5
+ import { ScmHistoryItem, ScmHistoryItemRef, ScmHistoryProvider } from './scm-provider';
6
6
  import { GraphRow } from './scm-history-graph-lanes';
7
+ import { ScmPreferences } from '../common/scm-preferences';
7
8
  export declare const PAGE_SIZE = 50;
9
+ export declare const ScmHistoryGraphModelProvider: unique symbol;
10
+ /**
11
+ * Resolves the {@link ScmHistoryGraphModel} singleton on first use. The model
12
+ * starts loading history and subscribing to provider events as soon as it is
13
+ * instantiated, so clients that may not need it (e.g. command contributions
14
+ * instantiated at application start) must inject this provider instead of the
15
+ * model itself.
16
+ */
17
+ export type ScmHistoryGraphModelProvider = () => ScmHistoryGraphModel;
8
18
  export interface HistoryGraphEntry {
9
19
  readonly item: ScmHistoryItem;
10
20
  readonly graphRow: GraphRow;
@@ -13,6 +23,7 @@ export interface HistoryGraphEntry {
13
23
  }
14
24
  export declare class ScmHistoryGraphModel {
15
25
  protected readonly scmService: ScmService;
26
+ protected readonly scmPreferences: ScmPreferences;
16
27
  protected readonly toDispose: DisposableCollection;
17
28
  protected readonly toDisposeOnProviderChange: DisposableCollection;
18
29
  protected _entries: HistoryGraphEntry[];
@@ -20,12 +31,26 @@ export declare class ScmHistoryGraphModel {
20
31
  protected _loading: boolean;
21
32
  protected _hasAttemptedLoad: boolean;
22
33
  protected _provider: ScmHistoryProvider | undefined;
34
+ /** Explicitly picked ref ids to filter the graph by; `undefined` = auto (current/remote/base). */
35
+ protected _historyItemRefFilter: string[] | undefined;
23
36
  protected readonly onDidChangeEmitter: Emitter<void>;
24
37
  readonly onDidChange: import("@theia/core/lib/common/event").Event<void>;
25
38
  protected cancelSource: CancellationTokenSource;
26
39
  protected init(): void;
27
40
  dispose(): void;
28
41
  get provider(): ScmHistoryProvider | undefined;
42
+ /** The explicitly picked ref ids filtering the graph, or `undefined` in auto mode. */
43
+ get historyItemRefFilter(): readonly string[] | undefined;
44
+ /**
45
+ * Sets the ref ids to filter the graph by (`undefined` returns to auto
46
+ * mode) and reloads the graph.
47
+ */
48
+ setHistoryItemRefFilter(refIds: readonly string[] | undefined): void;
49
+ /**
50
+ * Whether the current history item ref is part of the graph's filter.
51
+ * Always true in auto mode, which includes the current ref.
52
+ */
53
+ isCurrentRefInFilter(): boolean;
29
54
  get entries(): readonly HistoryGraphEntry[];
30
55
  get hasMore(): boolean;
31
56
  get loading(): boolean;
@@ -36,17 +61,30 @@ export declare class ScmHistoryGraphModel {
36
61
  */
37
62
  get hasAttemptedLoad(): boolean;
38
63
  refresh(): void;
64
+ /**
65
+ * Drops refs that no longer exist from the explicit filter, so that
66
+ * deleting or renaming a filtered ref does not leave the graph stuck
67
+ * requesting history for it. When the last filtered ref is removed,
68
+ * the filter falls back to auto mode.
69
+ */
70
+ protected pruneHistoryItemRefFilter(removed: readonly ScmHistoryItemRef[]): void;
71
+ /** Clears the loaded entries and loads the first page again from the current provider. */
72
+ protected reload(): void;
39
73
  loadMore(): Promise<void>;
40
74
  protected loadPage(): Promise<void>;
75
+ /** The configured page size (`scm.graph.pageSize`). */
76
+ protected get pageSize(): number;
41
77
  /**
42
78
  * Resolves the ref-based color index of an item from its references,
43
- * preferring current (0) over remote (1) over base (2).
79
+ * preferring current (0) over remote (1) over base (2). Refs excluded by
80
+ * an explicit filter get no role color, mirroring VS Code's color map.
44
81
  */
45
82
  protected resolveColorIndex(item: ScmHistoryItem): number | undefined;
46
83
  /**
47
- * Returns the revisions of the current branch ref, its remote tracking ref,
48
- * and the merge-base ref to pass to `provideHistoryItems`. Providers walk
49
- * history starting from these revisions.
84
+ * Returns the refs to pass to `provideHistoryItems`: the explicitly picked
85
+ * ref ids when a filter is active, otherwise (auto mode) the revisions of
86
+ * the current branch ref, its remote tracking ref, and the merge-base ref.
87
+ * Providers walk history starting from these refs.
50
88
  */
51
89
  protected getCurrentHistoryItemRefs(): string[];
52
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-model.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAoB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B;AAED,qBACa,oBAAoB;IAET,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAE9D,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,QAAQ,CAAC,yBAAyB,uBAA8B;IAE1E,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAC7C,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,qDAAiC;IAErD,SAAS,CAAC,YAAY,0BAAiC;IAGvD,SAAS,CAAC,IAAI,IAAI,IAAI;IAStB,OAAO,IAAI,IAAI;IAKf,IAAI,QAAQ,IAAI,kBAAkB,GAAG,SAAS,CAE7C;IAED,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAE1C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,OAAO,IAAI,IAAI;IA+BT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAOf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA4DzC;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAWrE;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,IAAI,MAAM,EAAE;CAgBlD"}
1
+ {"version":3,"file":"scm-history-graph-model.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAoB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AACnF;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,oBAAoB,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B;AAED,qBACa,oBAAoB;IAET,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAE1E,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,QAAQ,CAAC,yBAAyB,uBAA8B;IAE1E,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAC7C,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACpD,kGAAkG;IAClG,SAAS,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,qDAAiC;IAErD,SAAS,CAAC,YAAY,0BAAiC;IAGvD,SAAS,CAAC,IAAI,IAAI,IAAI;IActB,OAAO,IAAI,IAAI;IAKf,IAAI,QAAQ,IAAI,kBAAkB,GAAG,SAAS,CAE7C;IAED,sFAAsF;IACtF,IAAI,oBAAoB,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS,CAExD;IAED;;;OAGG;IACH,uBAAuB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAKpE;;;OAGG;IACH,oBAAoB,IAAI,OAAO;IAQ/B,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAE1C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,OAAO,IAAI,IAAI;IAgCf;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;IAWhF,0FAA0F;IAC1F,SAAS,CAAC,MAAM,IAAI,IAAI;IAUlB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAOf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6DzC,uDAAuD;IACvD,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAcrE;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,IAAI,MAAM,EAAE;CAmBlD"}
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ScmHistoryGraphModel = exports.PAGE_SIZE = void 0;
18
+ exports.ScmHistoryGraphModel = exports.ScmHistoryGraphModelProvider = exports.PAGE_SIZE = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("@theia/core/shared/inversify");
21
21
  const disposable_1 = require("@theia/core/lib/common/disposable");
@@ -24,7 +24,9 @@ const cancellation_1 = require("@theia/core/lib/common/cancellation");
24
24
  const scm_service_1 = require("./scm-service");
25
25
  const scm_history_graph_lanes_1 = require("./scm-history-graph-lanes");
26
26
  const scm_history_graph_helpers_1 = require("./scm-history-graph-helpers");
27
+ const scm_preferences_1 = require("../common/scm-preferences");
27
28
  exports.PAGE_SIZE = 50;
29
+ exports.ScmHistoryGraphModelProvider = Symbol('ScmHistoryGraphModelProvider');
28
30
  let ScmHistoryGraphModel = class ScmHistoryGraphModel {
29
31
  constructor() {
30
32
  this.toDispose = new disposable_1.DisposableCollection();
@@ -42,6 +44,11 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
42
44
  disposable_1.Disposable.create(() => this.toDisposeOnProviderChange.dispose()),
43
45
  this.onDidChangeEmitter,
44
46
  this.scmService.onDidChangeSelectedRepository(() => this.refresh()),
47
+ this.scmPreferences.onPreferenceChanged(e => {
48
+ if (e.preferenceName === 'scm.graph.pageSize') {
49
+ this.reload();
50
+ }
51
+ }),
45
52
  ]);
46
53
  this.refresh();
47
54
  }
@@ -52,6 +59,29 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
52
59
  get provider() {
53
60
  return this._provider;
54
61
  }
62
+ /** The explicitly picked ref ids filtering the graph, or `undefined` in auto mode. */
63
+ get historyItemRefFilter() {
64
+ return this._historyItemRefFilter;
65
+ }
66
+ /**
67
+ * Sets the ref ids to filter the graph by (`undefined` returns to auto
68
+ * mode) and reloads the graph.
69
+ */
70
+ setHistoryItemRefFilter(refIds) {
71
+ this._historyItemRefFilter = refIds && refIds.length > 0 ? [...refIds] : undefined;
72
+ this.reload();
73
+ }
74
+ /**
75
+ * Whether the current history item ref is part of the graph's filter.
76
+ * Always true in auto mode, which includes the current ref.
77
+ */
78
+ isCurrentRefInFilter() {
79
+ if (!this._historyItemRefFilter) {
80
+ return true;
81
+ }
82
+ const currentId = this._provider?.currentHistoryItemRef?.id;
83
+ return currentId !== undefined && this._historyItemRefFilter.includes(currentId);
84
+ }
55
85
  get entries() {
56
86
  return this._entries;
57
87
  }
@@ -70,21 +100,48 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
70
100
  return this._hasAttemptedLoad;
71
101
  }
72
102
  refresh() {
73
- this.cancelSource.cancel();
74
- this.cancelSource = new cancellation_1.CancellationTokenSource();
75
103
  this.toDisposeOnProviderChange.dispose();
76
104
  const repo = this.scmService.selectedRepository;
77
105
  const hp = repo?.provider.historyProvider;
106
+ if (hp !== this._provider) {
107
+ // The repository changed — a filter picked for the old provider does not apply.
108
+ this._historyItemRefFilter = undefined;
109
+ }
78
110
  this._provider = hp;
79
111
  if (this._provider) {
80
112
  this.toDisposeOnProviderChange.push(this._provider.onDidChangeCurrentHistoryItemRefs(() => this.refresh()));
81
- this.toDisposeOnProviderChange.push(this._provider.onDidChangeHistoryItemRefs(() => this.refresh()));
113
+ this.toDisposeOnProviderChange.push(this._provider.onDidChangeHistoryItemRefs(e => {
114
+ this.pruneHistoryItemRefFilter(e.removed);
115
+ this.refresh();
116
+ }));
82
117
  }
83
118
  else if (repo) {
84
119
  // historyProvider is not yet available; listen for provider changes
85
120
  // so that refresh() is retried when historyProvider becomes available.
86
121
  this.toDisposeOnProviderChange.push(repo.provider.onDidChange(() => this.refresh()));
87
122
  }
123
+ this.reload();
124
+ }
125
+ /**
126
+ * Drops refs that no longer exist from the explicit filter, so that
127
+ * deleting or renaming a filtered ref does not leave the graph stuck
128
+ * requesting history for it. When the last filtered ref is removed,
129
+ * the filter falls back to auto mode.
130
+ */
131
+ pruneHistoryItemRefFilter(removed) {
132
+ if (!this._historyItemRefFilter || removed.length === 0) {
133
+ return;
134
+ }
135
+ const removedIds = new Set(removed.map(ref => ref.id));
136
+ const remaining = this._historyItemRefFilter.filter(id => !removedIds.has(id));
137
+ if (remaining.length !== this._historyItemRefFilter.length) {
138
+ this._historyItemRefFilter = remaining.length > 0 ? remaining : undefined;
139
+ }
140
+ }
141
+ /** Clears the loaded entries and loads the first page again from the current provider. */
142
+ reload() {
143
+ this.cancelSource.cancel();
144
+ this.cancelSource = new cancellation_1.CancellationTokenSource();
88
145
  this._entries = [];
89
146
  this._hasMore = false;
90
147
  this.loadPage();
@@ -108,10 +165,11 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
108
165
  this.onDidChangeEmitter.fire();
109
166
  const token = this.cancelSource.token;
110
167
  try {
168
+ const pageSize = this.pageSize;
111
169
  const historyItemRefs = this.getCurrentHistoryItemRefs();
112
170
  const options = {
113
171
  skip: this._entries.length,
114
- limit: exports.PAGE_SIZE,
172
+ limit: pageSize,
115
173
  historyItemRefs: historyItemRefs.length > 0 ? historyItemRefs : undefined,
116
174
  };
117
175
  const items = await this._provider.provideHistoryItems(options, token);
@@ -119,7 +177,7 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
119
177
  return;
120
178
  }
121
179
  const fetchedItems = items ?? [];
122
- this._hasMore = fetchedItems.length >= exports.PAGE_SIZE;
180
+ this._hasMore = fetchedItems.length >= pageSize;
123
181
  // Filter out any items already loaded so the graph does not show duplicates.
124
182
  const existingIds = new Set(this._entries.map(e => e.item.id));
125
183
  const newItems = fetchedItems.filter(i => !existingIds.has(i.id));
@@ -149,13 +207,21 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
149
207
  }
150
208
  }
151
209
  }
210
+ /** The configured page size (`scm.graph.pageSize`). */
211
+ get pageSize() {
212
+ return this.scmPreferences['scm.graph.pageSize'] ?? exports.PAGE_SIZE;
213
+ }
152
214
  /**
153
215
  * Resolves the ref-based color index of an item from its references,
154
- * preferring current (0) over remote (1) over base (2).
216
+ * preferring current (0) over remote (1) over base (2). Refs excluded by
217
+ * an explicit filter get no role color, mirroring VS Code's color map.
155
218
  */
156
219
  resolveColorIndex(item) {
157
220
  let result;
158
221
  for (const ref of item.references ?? []) {
222
+ if (this._historyItemRefFilter && !this._historyItemRefFilter.includes(ref.id)) {
223
+ continue;
224
+ }
159
225
  const index = (0, scm_history_graph_helpers_1.getRefColorIndex)(ref, this._provider);
160
226
  if (index !== undefined && (result === undefined || index < result)) {
161
227
  result = index;
@@ -164,11 +230,15 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
164
230
  return result;
165
231
  }
166
232
  /**
167
- * Returns the revisions of the current branch ref, its remote tracking ref,
168
- * and the merge-base ref to pass to `provideHistoryItems`. Providers walk
169
- * history starting from these revisions.
233
+ * Returns the refs to pass to `provideHistoryItems`: the explicitly picked
234
+ * ref ids when a filter is active, otherwise (auto mode) the revisions of
235
+ * the current branch ref, its remote tracking ref, and the merge-base ref.
236
+ * Providers walk history starting from these refs.
170
237
  */
171
238
  getCurrentHistoryItemRefs() {
239
+ if (this._historyItemRefFilter) {
240
+ return [...this._historyItemRefFilter];
241
+ }
172
242
  if (!this._provider) {
173
243
  return [];
174
244
  }
@@ -190,6 +260,10 @@ tslib_1.__decorate([
190
260
  (0, inversify_1.inject)(scm_service_1.ScmService),
191
261
  tslib_1.__metadata("design:type", scm_service_1.ScmService)
192
262
  ], ScmHistoryGraphModel.prototype, "scmService", void 0);
263
+ tslib_1.__decorate([
264
+ (0, inversify_1.inject)(scm_preferences_1.ScmPreferences),
265
+ tslib_1.__metadata("design:type", Object)
266
+ ], ScmHistoryGraphModel.prototype, "scmPreferences", void 0);
193
267
  tslib_1.__decorate([
194
268
  (0, inversify_1.postConstruct)(),
195
269
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-model.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-model.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"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"}
@@ -21,12 +21,16 @@ const scm_history_graph_model_1 = require("./scm-history-graph-model");
21
21
  class StubHistoryProvider {
22
22
  constructor() {
23
23
  this.onDidChangeCurrentHistoryItemRefs = new event_1.Emitter().event;
24
- this.onDidChangeHistoryItemRefs = new event_1.Emitter().event;
24
+ this.onDidChangeHistoryItemRefsEmitter = new event_1.Emitter();
25
+ this.onDidChangeHistoryItemRefs = this.onDidChangeHistoryItemRefsEmitter.event;
25
26
  /** Pages this provider will return on consecutive calls (FIFO). */
26
27
  this.pages = [];
27
28
  /** Captured options for each call (so tests can assert what was sent). */
28
29
  this.receivedOptions = [];
29
30
  }
31
+ fireHistoryItemRefsChanged(event) {
32
+ this.onDidChangeHistoryItemRefsEmitter.fire(event);
33
+ }
30
34
  async provideHistoryItemRefs() {
31
35
  return [];
32
36
  }
@@ -59,21 +63,31 @@ function makeItems(start, count) {
59
63
  /**
60
64
  * Instantiates the model with a stub provider, bypassing inversify and the
61
65
  * SCM service so tests can drive pagination directly via loadPage().
66
+ * When `wireRepository` is set, the provider is instead wired through a stub
67
+ * selected repository and refresh(), so provider event subscriptions are live.
62
68
  */
63
- function createModel(provider) {
69
+ function createModel(provider, preferences = {}, wireRepository = false) {
64
70
  const model = new scm_history_graph_model_1.ScmHistoryGraphModel();
65
71
  const internals = model;
72
+ const preferenceEmitter = new event_1.Emitter();
66
73
  internals.scmService = {
67
74
  onDidChangeSelectedRepository: new event_1.Emitter().event,
68
- selectedRepository: undefined,
75
+ selectedRepository: wireRepository ? { provider: { historyProvider: provider } } : undefined,
69
76
  };
77
+ internals.scmPreferences = Object.assign(preferences, { onPreferenceChanged: preferenceEmitter.event });
70
78
  internals.init();
71
- internals._provider = provider;
79
+ if (!wireRepository) {
80
+ internals._provider = provider;
81
+ }
72
82
  return {
73
83
  model,
74
84
  loadPage: () => internals.loadPage(),
85
+ firePreferenceChanged: preferenceName => preferenceEmitter.fire({ preferenceName }),
75
86
  };
76
87
  }
88
+ async function nextTick() {
89
+ return new Promise(resolve => setTimeout(resolve, 0));
90
+ }
77
91
  describe('ScmHistoryGraphModel - pagination', () => {
78
92
  it('hasMore is true when a full page returns', async () => {
79
93
  const provider = new StubHistoryProvider();
@@ -128,6 +142,133 @@ describe('ScmHistoryGraphModel - pagination', () => {
128
142
  (0, chai_1.expect)(model.entries).to.have.length(scm_history_graph_model_1.PAGE_SIZE, 'should not grow when all items are duplicates');
129
143
  });
130
144
  });
145
+ describe('ScmHistoryGraphModel - page size preference', () => {
146
+ it('requests the configured page size and paginates by it', async () => {
147
+ const provider = new StubHistoryProvider();
148
+ provider.pages = [makeItems(1, 10)];
149
+ const { model, loadPage } = createModel(provider, { 'scm.graph.pageSize': 10 });
150
+ await loadPage();
151
+ (0, chai_1.expect)(provider.receivedOptions[0].limit).to.equal(10);
152
+ (0, chai_1.expect)(model.entries).to.have.length(10);
153
+ (0, chai_1.expect)(model.hasMore).to.be.true;
154
+ });
155
+ it('falls back to the default page size without a preference value', async () => {
156
+ const provider = new StubHistoryProvider();
157
+ provider.pages = [makeItems(1, 10)];
158
+ const { loadPage } = createModel(provider);
159
+ await loadPage();
160
+ (0, chai_1.expect)(provider.receivedOptions[0].limit).to.equal(scm_history_graph_model_1.PAGE_SIZE);
161
+ });
162
+ it('reloads from the start when scm.graph.pageSize changes', async () => {
163
+ const provider = new StubHistoryProvider();
164
+ provider.pages = [makeItems(1, 10), makeItems(1, 5)];
165
+ const preferences = { 'scm.graph.pageSize': 10 };
166
+ const { loadPage, firePreferenceChanged } = createModel(provider, preferences);
167
+ await loadPage();
168
+ (0, chai_1.expect)(provider.receivedOptions[0].limit).to.equal(10);
169
+ preferences['scm.graph.pageSize'] = 5;
170
+ firePreferenceChanged('scm.graph.pageSize');
171
+ await nextTick();
172
+ (0, chai_1.expect)(provider.receivedOptions[1].limit).to.equal(5);
173
+ (0, chai_1.expect)(provider.receivedOptions[1].skip).to.equal(0);
174
+ });
175
+ });
176
+ describe('ScmHistoryGraphModel - history item ref filter', () => {
177
+ const mainRef = { id: 'refs/heads/main', name: 'main', revision: 'c1' };
178
+ function createFilterProvider() {
179
+ const provider = new StubHistoryProvider();
180
+ provider.currentHistoryItemRef = mainRef;
181
+ provider.pages = [makeItems(1, 3), makeItems(1, 3), makeItems(1, 3)];
182
+ return provider;
183
+ }
184
+ it('is in auto mode by default: current ref revisions are requested and the current ref is in the filter', async () => {
185
+ const provider = createFilterProvider();
186
+ const { model, loadPage } = createModel(provider);
187
+ await loadPage();
188
+ (0, chai_1.expect)(provider.receivedOptions[0].historyItemRefs).to.deep.equal(['c1']);
189
+ (0, chai_1.expect)(model.historyItemRefFilter).to.be.undefined;
190
+ (0, chai_1.expect)(model.isCurrentRefInFilter()).to.be.true;
191
+ });
192
+ it('passes the picked ref ids to the provider and reloads', async () => {
193
+ const provider = createFilterProvider();
194
+ const { model } = createModel(provider);
195
+ model.setHistoryItemRefFilter(['refs/heads/feature']);
196
+ await nextTick();
197
+ (0, chai_1.expect)(provider.receivedOptions[0].historyItemRefs).to.deep.equal(['refs/heads/feature']);
198
+ (0, chai_1.expect)(model.historyItemRefFilter).to.deep.equal(['refs/heads/feature']);
199
+ });
200
+ it('reports whether the current ref is part of the filter', async () => {
201
+ const provider = createFilterProvider();
202
+ const { model } = createModel(provider);
203
+ model.setHistoryItemRefFilter(['refs/heads/feature']);
204
+ await nextTick();
205
+ (0, chai_1.expect)(model.isCurrentRefInFilter()).to.be.false;
206
+ model.setHistoryItemRefFilter(['refs/heads/feature', 'refs/heads/main']);
207
+ await nextTick();
208
+ (0, chai_1.expect)(model.isCurrentRefInFilter()).to.be.true;
209
+ });
210
+ it('returns to auto mode when the filter is cleared', async () => {
211
+ const provider = createFilterProvider();
212
+ const { model } = createModel(provider);
213
+ model.setHistoryItemRefFilter(['refs/heads/feature']);
214
+ await nextTick();
215
+ model.setHistoryItemRefFilter(undefined);
216
+ await nextTick();
217
+ (0, chai_1.expect)(model.historyItemRefFilter).to.be.undefined;
218
+ (0, chai_1.expect)(provider.receivedOptions[1].historyItemRefs).to.deep.equal(['c1']);
219
+ });
220
+ it('does not apply ref role colors to refs excluded by the filter', async () => {
221
+ const provider = createFilterProvider();
222
+ provider.pages = [[
223
+ { id: 'c1', subject: 'head', parentIds: ['c2'], references: [mainRef] },
224
+ { id: 'c2', subject: 'base', parentIds: [] },
225
+ ]];
226
+ const { model } = createModel(provider);
227
+ model.setHistoryItemRefFilter(['refs/heads/feature']);
228
+ await nextTick();
229
+ (0, chai_1.expect)(model.entries[0].graphRow.color).to.not.equal(0);
230
+ });
231
+ });
232
+ describe('ScmHistoryGraphModel - ref filter pruning', () => {
233
+ const mainRef = { id: 'refs/heads/main', name: 'main', revision: 'c1' };
234
+ const featureRef = { id: 'refs/heads/feature', name: 'feature', revision: 'c5' };
235
+ function createWiredProvider() {
236
+ const provider = new StubHistoryProvider();
237
+ provider.currentHistoryItemRef = mainRef;
238
+ return provider;
239
+ }
240
+ it('drops a removed ref from the filter and keeps the remaining ones', async () => {
241
+ const provider = createWiredProvider();
242
+ const { model } = createModel(provider, {}, true);
243
+ model.setHistoryItemRefFilter([featureRef.id, mainRef.id]);
244
+ await nextTick();
245
+ provider.fireHistoryItemRefsChanged({ added: [], removed: [featureRef], modified: [] });
246
+ await nextTick();
247
+ (0, chai_1.expect)(model.historyItemRefFilter).to.deep.equal([mainRef.id]);
248
+ const last = provider.receivedOptions[provider.receivedOptions.length - 1];
249
+ (0, chai_1.expect)(last.historyItemRefs).to.deep.equal([mainRef.id]);
250
+ });
251
+ it('falls back to auto mode when all filtered refs are removed', async () => {
252
+ const provider = createWiredProvider();
253
+ const { model } = createModel(provider, {}, true);
254
+ model.setHistoryItemRefFilter([featureRef.id]);
255
+ await nextTick();
256
+ provider.fireHistoryItemRefsChanged({ added: [], removed: [featureRef], modified: [] });
257
+ await nextTick();
258
+ (0, chai_1.expect)(model.historyItemRefFilter).to.be.undefined;
259
+ const last = provider.receivedOptions[provider.receivedOptions.length - 1];
260
+ (0, chai_1.expect)(last.historyItemRefs).to.deep.equal(['c1']);
261
+ });
262
+ it('keeps the filter when unrelated refs are removed', async () => {
263
+ const provider = createWiredProvider();
264
+ const { model } = createModel(provider, {}, true);
265
+ model.setHistoryItemRefFilter([mainRef.id]);
266
+ await nextTick();
267
+ provider.fireHistoryItemRefsChanged({ added: [], removed: [featureRef], modified: [] });
268
+ await nextTick();
269
+ (0, chai_1.expect)(model.historyItemRefFilter).to.deep.equal([mainRef.id]);
270
+ });
271
+ });
131
272
  describe('ScmHistoryGraphModel - ref colors and current item', () => {
132
273
  const mainRef = { id: 'refs/heads/main', name: 'main', revision: 'c2' };
133
274
  const originMainRef = { id: 'refs/remotes/origin/main', name: 'origin/main', revision: 'c1' };
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-model.spec.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-model.spec.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAC9B,wDAAuD;AACvD,uEAA4E;AAI5E,MAAM,mBAAmB;IAAzB;QAKa,sCAAiC,GAAG,IAAI,eAAO,EAAQ,CAAC,KAAK,CAAC;QACpD,sCAAiC,GAAG,IAAI,eAAO,EAAiC,CAAC;QAC3F,+BAA0B,GAAG,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC;QAMnF,mEAAmE;QACnE,UAAK,GAAuB,EAAE,CAAC;QAC/B,0EAA0E;QAC1E,oBAAe,GAAwB,EAAE,CAAC;IAsB9C,CAAC;IA7BG,0BAA0B,CAAC,KAAoC;QAC3D,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAOD,KAAK,CAAC,sBAAsB;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAA0B;QAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,oCAAoC;QACtC,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa;IAC3C,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC;YACP,EAAE;YACF,OAAO,EAAE,UAAU,EAAE,EAAE;YACvB,SAAS,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAChB,QAA4B,EAC5B,cAAuC,EAAE,EACzC,cAAc,GAAG,KAAK;IAEtB,MAAM,KAAK,GAAG,IAAI,8CAAoB,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,KASjB,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,eAAO,EAA8B,CAAC;IACpE,SAAS,CAAC,UAAU,GAAG;QACnB,6BAA6B,EAAE,IAAI,eAAO,EAA6B,CAAC,KAAK;QAC7E,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAA8B,CAAC,CAAC,CAAC,SAAS;KAC3H,CAAC;IACF,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC;IACxG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO;QACH,KAAK;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;QACpC,qBAAqB,EAAE,cAAc,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;KACtF,CAAC;AACN,CAAC;AAED,KAAK,UAAU,QAAQ;IACnB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAE/C,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,mCAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAS,CAAC,CAAC;QAChD,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG;YACb,SAAS,CAAC,CAAC,EAAE,mCAAS,CAAC;YACvB,SAAS,CAAC,EAAE,EAAE,mCAAS,CAAC;YACxB,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC;SACrB,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAS,CAAC,CAAC;QAChD,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAErD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,mCAAS,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mCAAS,CAAC,CAAC;QAE7D,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,mCAAS,GAAG,EAAE,CAAC,CAAC;QACzD,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,mCAAS,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,mCAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAyB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACpF,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,mCAAS,CAAC,CAAC;QAC1C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAS,CAAC,CAAC;QAEhD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAS,EAAE,+CAA+C,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAEzD,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;QAEhF,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mCAAS,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,WAAW,GAA4B,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC;QAC1E,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE/E,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEvD,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACtC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAC5C,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAE5D,MAAM,OAAO,GAAsB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE3F,SAAS,oBAAoB;QACzB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACzC,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;QAClH,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACnD,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC1F,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACjD,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,EAAE,CAAC;QACjB,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACnD,IAAA,aAAM,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,GAAG,CAAC;gBACd,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE;gBACvE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;aAC/C,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IAEvD,MAAM,OAAO,GAAsB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3F,MAAM,UAAU,GAAsB,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEpG,SAAS,mBAAmB;QACxB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACzC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,QAAQ,EAAE,CAAC;QAEjB,QAAQ,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,QAAQ,EAAE,CAAC;QAEjB,QAAQ,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,EAAE,CAAC;QAEjB,QAAQ,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAA,aAAM,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAEhE,MAAM,OAAO,GAAsB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3F,MAAM,aAAa,GAAsB,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEjH,4EAA4E;IAC5E,SAAS,oBAAoB;QACzB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACzC,QAAQ,CAAC,2BAA2B,GAAG,aAAa,CAAC;QACrD,QAAQ,CAAC,KAAK,GAAG,CAAC;gBACd,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE;gBACpF,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE;gBAC7E,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;aAC/C,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAsB,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrE,MAAM,YAAY,GAAsB,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7E,QAAQ,CAAC,qBAAqB,GAAG,UAAU,CAAC;QAC5C,QAAQ,CAAC,2BAA2B,GAAG,YAAY,CAAC;QACpD,QAAQ,CAAC,KAAK,GAAG,CAAC;gBACd,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE;aAC1F,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -10,17 +10,20 @@ import { ScmService } from './scm-service';
10
10
  import { GraphRow } from './scm-history-graph-lanes';
11
11
  import { CancellationTokenSource } from '@theia/core/lib/common/cancellation';
12
12
  import { DisposableCollection } from '@theia/core/lib/common/disposable';
13
+ import { Emitter, Event } from '@theia/core/lib/common/event';
14
+ import { DynamicToolbarWidget } from '@theia/core/lib/browser/view-container';
13
15
  import { MenuPath } from '@theia/core/lib/common/menu/menu-types';
14
16
  import { ContextMenuRenderer } from '@theia/core/lib/browser/context-menu-renderer';
15
17
  import { OpenerService } from '@theia/core/lib/browser/opener-service';
16
18
  import { ScmContextKeyService } from './scm-context-key-service';
19
+ import { ScmPreferences } from '../common/scm-preferences';
17
20
  /** Menu path matching the VS Code 'scm/history/title' contribution point (graph section toolbar). */
18
21
  export declare const SCM_HISTORY_TITLE_MENU: MenuPath;
19
22
  /** Menu path matching the VS Code 'scm/historyItem/context' contribution point (commit row context menu). */
20
23
  export declare const SCM_HISTORY_ITEM_CONTEXT_MENU: MenuPath;
21
24
  /** Menu path matching the VS Code 'scm/historyItemRef/context' contribution point (ref badge context menu). */
22
25
  export declare const SCM_HISTORY_ITEM_REF_CONTEXT_MENU: MenuPath;
23
- export declare class ScmHistoryGraphWidget extends ReactWidget {
26
+ export declare class ScmHistoryGraphWidget extends ReactWidget implements DynamicToolbarWidget {
24
27
  static readonly ID = "scm-history-graph-widget";
25
28
  static readonly LABEL: string;
26
29
  protected readonly model: ScmHistoryGraphModel;
@@ -32,6 +35,7 @@ export declare class ScmHistoryGraphWidget extends ReactWidget {
32
35
  protected readonly contextMenuRenderer: ContextMenuRenderer;
33
36
  protected readonly openerService: OpenerService;
34
37
  protected readonly scmContextKeys: ScmContextKeyService;
38
+ protected readonly scmPreferences: ScmPreferences;
35
39
  protected selectedIndex: number;
36
40
  /** Currently selected change row key (`${itemId}-${ci}`), or undefined. */
37
41
  protected selectedChangeKey: string | undefined;
@@ -43,6 +47,9 @@ export declare class ScmHistoryGraphWidget extends ReactWidget {
43
47
  protected loadChangesCts: Map<string, CancellationTokenSource>;
44
48
  /** Cleanup for the content of the hover currently being shown. */
45
49
  protected readonly toDisposeOnHover: DisposableCollection;
50
+ protected readonly onDidChangeToolbarItemsEmitter: Emitter<void>;
51
+ /** Re-renders the part toolbar on model changes, e.g. to reflect the toggled state of the ref filter picker. */
52
+ readonly onDidChangeToolbarItems: Event<void>;
46
53
  constructor();
47
54
  protected init(): void;
48
55
  protected updateContextKeys(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-widget.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-widget.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-widget.tsx"],"names":[],"mappings":"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"}