@codingame/monaco-vscode-multi-diff-editor-service-override 23.3.0 → 24.1.1

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.
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  import '@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices';
3
3
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
4
- import { MultiDiffSourceResolverService } from '@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService';
4
+ import { MultiDiffSourceResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService';
5
5
  import { IMultiDiffSourceResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.service';
6
6
  import './vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.contribution.js';
7
7
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-multi-diff-editor-service-override",
3
- "version": "23.3.0",
3
+ "version": "24.1.1",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - multi-diff-editor service-override",
6
6
  "keywords": [],
@@ -15,13 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-0b011daf-0f15-57de-bd5b-8953592c556c-common": "23.3.0",
19
- "@codingame/monaco-vscode-3b5a5cd1-d4ff-500a-b609-57e0cd4afa0a-common": "23.3.0",
20
- "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "23.3.0",
21
- "@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "23.3.0",
22
- "@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common": "23.3.0",
23
- "@codingame/monaco-vscode-api": "23.3.0",
24
- "@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common": "23.3.0"
18
+ "@codingame/monaco-vscode-api": "24.1.1"
25
19
  },
26
20
  "main": "index.js",
27
21
  "module": "index.js",
@@ -7,9 +7,9 @@ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/
7
7
  import { TextEditorSelectionRevealType } from '@codingame/monaco-vscode-api/vscode/vs/platform/editor/common/editor';
8
8
  import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
9
9
  import { IListService } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService.service';
10
- import { resolveCommandsContext } from '@codingame/monaco-vscode-0b011daf-0f15-57de-bd5b-8953592c556c-common/vscode/vs/workbench/browser/parts/editor/editorCommandsContext';
10
+ import { resolveCommandsContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorCommandsContext';
11
11
  import { MultiDiffEditor } from './multiDiffEditor.js';
12
- import { MultiDiffEditorInput } from '@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
12
+ import { MultiDiffEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
13
13
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
14
14
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
15
15
  import { ActiveEditorContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
@@ -18,7 +18,7 @@ class GoToFileAction extends Action2 {
18
18
  constructor() {
19
19
  super({
20
20
  id: 'multiDiffEditor.goToFile',
21
- title: ( localize2(9050, 'Open File')),
21
+ title: ( localize2(9182, 'Open File')),
22
22
  icon: Codicon.goToFile,
23
23
  precondition: ( ActiveEditorContext.isEqualTo(MultiDiffEditor.ID)),
24
24
  menu: {
@@ -60,7 +60,7 @@ class GoToNextChangeAction extends Action2 {
60
60
  constructor() {
61
61
  super({
62
62
  id: 'multiDiffEditor.goToNextChange',
63
- title: ( localize2(9051, 'Go to Next Change')),
63
+ title: ( localize2(9183, 'Go to Next Change')),
64
64
  icon: Codicon.arrowDown,
65
65
  precondition: ( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)),
66
66
  menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
@@ -90,7 +90,7 @@ class GoToPreviousChangeAction extends Action2 {
90
90
  constructor() {
91
91
  super({
92
92
  id: 'multiDiffEditor.goToPreviousChange',
93
- title: ( localize2(9052, 'Go to Previous Change')),
93
+ title: ( localize2(9184, 'Go to Previous Change')),
94
94
  icon: Codicon.arrowUp,
95
95
  precondition: ( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)),
96
96
  menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
@@ -120,7 +120,7 @@ class CollapseAllAction extends Action2 {
120
120
  constructor() {
121
121
  super({
122
122
  id: 'multiDiffEditor.collapseAll',
123
- title: ( localize2(9053, 'Collapse All Diffs')),
123
+ title: ( localize2(9185, 'Collapse All Diffs')),
124
124
  icon: Codicon.collapseAll,
125
125
  precondition: ( ContextKeyExpr.and(( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)), ContextKeyExpr.not('multiDiffEditorAllCollapsed'))),
126
126
  menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
@@ -149,7 +149,7 @@ class ExpandAllAction extends Action2 {
149
149
  constructor() {
150
150
  super({
151
151
  id: 'multiDiffEditor.expandAll',
152
- title: ( localize2(9054, 'Expand All Diffs')),
152
+ title: ( localize2(9186, 'Expand All Diffs')),
153
153
  icon: Codicon.expandAll,
154
154
  precondition: ( ContextKeyExpr.and(( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)), ( ContextKeyExpr.has('multiDiffEditorAllCollapsed')))),
155
155
  menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
@@ -4,17 +4,17 @@ import { registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform
4
4
  import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
5
5
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
6
6
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
7
- import { EditorPaneDescriptor } from '@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common/vscode/vs/workbench/browser/editor';
7
+ import { EditorPaneDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/editor';
8
8
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
9
9
  import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
10
10
  import { MultiDiffEditor } from './multiDiffEditor.js';
11
- import { MultiDiffEditorResolverContribution, MultiDiffEditorInput, MultiDiffEditorSerializer } from '@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
11
+ import { MultiDiffEditorResolverContribution, MultiDiffEditorInput, MultiDiffEditorSerializer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
12
12
  import { GoToFileAction, GoToNextChangeAction, GoToPreviousChangeAction, CollapseAllAction, ExpandAllAction } from './actions.js';
13
13
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
14
14
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
15
15
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
16
16
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
17
- import { OpenScmGroupAction, ScmMultiDiffSourceResolverContribution } from '@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver';
17
+ import { OpenScmGroupAction, ScmMultiDiffSourceResolverContribution } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver';
18
18
 
19
19
  registerAction2(GoToFileAction);
20
20
  registerAction2(GoToNextChangeAction);
@@ -33,7 +33,7 @@ registerAction2(ExpandAllAction);
33
33
  });
34
34
  registerWorkbenchContribution2(MultiDiffEditorResolverContribution.ID, MultiDiffEditorResolverContribution, WorkbenchPhase.BlockStartup );
35
35
  ( Registry.as(EditorExtensions.EditorPane))
36
- .registerEditorPane(EditorPaneDescriptor.create(MultiDiffEditor, MultiDiffEditor.ID, ( localize(9056, "Multi Diff Editor"))), [( new SyncDescriptor(MultiDiffEditorInput))]);
36
+ .registerEditorPane(EditorPaneDescriptor.create(MultiDiffEditor, MultiDiffEditor.ID, ( localize(9188, "Multi Diff Editor"))), [( new SyncDescriptor(MultiDiffEditorInput))]);
37
37
  ( Registry.as(EditorExtensions.EditorFactory))
38
38
  .registerEditorSerializer(MultiDiffEditorInput.ID, MultiDiffEditorSerializer);
39
39
  registerAction2(OpenScmGroupAction);
@@ -1,32 +1,36 @@
1
1
  import * as DOM from "@codingame/monaco-vscode-api/vscode/vs/base/browser/dom";
2
2
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
3
3
  import { ITextResourceConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/textResourceConfiguration.service";
4
+ import { IMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service";
4
5
  import { InstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiationService";
5
6
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
6
7
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
7
8
  import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
8
- import { AbstractEditorWithViewState } from "@codingame/monaco-vscode-0b011daf-0f15-57de-bd5b-8953592c556c-common/vscode/vs/workbench/browser/parts/editor/editorWithViewState";
9
+ import { AbstractEditorWithViewState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorWithViewState";
9
10
  import { ICompositeControl } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/composite";
10
11
  import { IEditorOpenContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
11
12
  import { EditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput";
12
- import { MultiDiffEditorInput } from "@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput";
13
+ import { MultiDiffEditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput";
13
14
  import { IEditorGroup } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService";
14
15
  import { IEditorGroupsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service";
15
16
  import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
16
17
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
17
- import { MultiDiffEditorViewModel } from "@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel";
18
- import { IMultiDiffEditorOptions, IMultiDiffEditorViewState } from "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl";
18
+ import { MultiDiffEditorViewModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel";
19
+ import { IMultiDiffEditorOptions, IMultiDiffEditorViewState } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl";
19
20
  import { ICodeEditor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser";
20
21
  import { IDiffEditor } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/editorCommon";
21
- import { MultiDiffEditorItem } from "@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService";
22
+ import { MultiDiffEditorItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService";
22
23
  import { IEditorProgressService } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service";
23
24
  export declare class MultiDiffEditor extends AbstractEditorWithViewState<IMultiDiffEditorViewState> {
24
25
  private editorProgressService;
26
+ private readonly menuService;
25
27
  static readonly ID = "multiDiffEditor";
26
28
  private _multiDiffEditorWidget;
27
29
  private _viewModel;
30
+ private _sessionResourceContextKey;
31
+ private _contentOverlay;
28
32
  get viewModel(): MultiDiffEditorViewModel | undefined;
29
- constructor(group: IEditorGroup, instantiationService: InstantiationService, telemetryService: ITelemetryService, themeService: IThemeService, storageService: IStorageService, editorService: IEditorService, editorGroupService: IEditorGroupsService, textResourceConfigurationService: ITextResourceConfigurationService, editorProgressService: IEditorProgressService);
33
+ constructor(group: IEditorGroup, instantiationService: InstantiationService, telemetryService: ITelemetryService, themeService: IThemeService, storageService: IStorageService, editorService: IEditorService, editorGroupService: IEditorGroupsService, textResourceConfigurationService: ITextResourceConfigurationService, editorProgressService: IEditorProgressService, menuService: IMenuService);
30
34
  protected createEditor(parent: HTMLElement): void;
31
35
  setInput(input: MultiDiffEditorInput, options: IMultiDiffEditorOptions | undefined, context: IEditorOpenContext, token: CancellationToken): Promise<void>;
32
36
  setOptions(options: IMultiDiffEditorOptions | undefined): void;
@@ -1,18 +1,24 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { MultiDiffEditorWidget } from '@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget';
3
+ import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { Disposable, MutableDisposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { MultiDiffEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget';
4
6
  import { ITextResourceConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/textResourceConfiguration.service';
7
+ import { FloatingClickMenu } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/floatingMenu';
8
+ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
9
+ import { IMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service';
5
10
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
6
11
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
7
12
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
8
13
  import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
9
- import { ResourceLabel } from '@codingame/monaco-vscode-3b5a5cd1-d4ff-500a-b609-57e0cd4afa0a-common/vscode/vs/workbench/browser/labels';
10
- import { AbstractEditorWithViewState } from '@codingame/monaco-vscode-0b011daf-0f15-57de-bd5b-8953592c556c-common/vscode/vs/workbench/browser/parts/editor/editorWithViewState';
11
- import { MultiDiffEditorInput } from '@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
14
+ import { ResourceLabel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/labels';
15
+ import { AbstractEditorWithViewState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorWithViewState';
16
+ import { MultiDiffEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
12
17
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
13
18
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
14
19
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
15
20
  import { IEditorProgressService } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service';
21
+ import { ResourceContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
16
22
 
17
23
  var MultiDiffEditor_1;
18
24
  let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState {
@@ -21,9 +27,10 @@ let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState
21
27
  get viewModel() {
22
28
  return this._viewModel;
23
29
  }
24
- constructor(group, instantiationService, telemetryService, themeService, storageService, editorService, editorGroupService, textResourceConfigurationService, editorProgressService) {
30
+ constructor(group, instantiationService, telemetryService, themeService, storageService, editorService, editorGroupService, textResourceConfigurationService, editorProgressService, menuService) {
25
31
  super(MultiDiffEditor_1.ID, group, 'multiDiffEditor', telemetryService, instantiationService, storageService, textResourceConfigurationService, themeService, editorService, editorGroupService);
26
32
  this.editorProgressService = editorProgressService;
33
+ this.menuService = menuService;
27
34
  this._multiDiffEditorWidget = undefined;
28
35
  }
29
36
  createEditor(parent) {
@@ -31,10 +38,22 @@ let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState
31
38
  this._register(this._multiDiffEditorWidget.onDidChangeActiveControl(() => {
32
39
  this._onDidChangeControl.fire();
33
40
  }));
41
+ const scopedContextKeyService = this._multiDiffEditorWidget.getContextKeyService();
42
+ const scopedInstantiationService = this._multiDiffEditorWidget.getScopedInstantiationService();
43
+ this._sessionResourceContextKey = this._register(scopedInstantiationService.createInstance(ResourceContextKey));
44
+ this._contentOverlay = this._register(( new MultiDiffEditorContentMenuOverlay(
45
+ this._multiDiffEditorWidget.getRootElement(),
46
+ this._sessionResourceContextKey,
47
+ scopedContextKeyService,
48
+ this.menuService,
49
+ scopedInstantiationService
50
+ )));
34
51
  }
35
52
  async setInput(input, options, context, token) {
36
53
  await super.setInput(input, options, context, token);
37
54
  this._viewModel = await input.getViewModel();
55
+ this._sessionResourceContextKey?.set(input.resource);
56
+ this._contentOverlay?.updateResource(input.resource);
38
57
  this._multiDiffEditorWidget.setViewModel(this._viewModel);
39
58
  const viewState = this.loadEditorViewState(input, context);
40
59
  if (viewState) {
@@ -57,6 +76,8 @@ let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState
57
76
  }
58
77
  async clearInput() {
59
78
  await super.clearInput();
79
+ this._sessionResourceContextKey?.set(null);
80
+ this._contentOverlay?.updateResource(undefined);
60
81
  this._multiDiffEditorWidget.setViewModel(undefined);
61
82
  }
62
83
  layout(dimension) {
@@ -110,8 +131,47 @@ MultiDiffEditor = MultiDiffEditor_1 = ( __decorate([
110
131
  ( __param(5, IEditorService)),
111
132
  ( __param(6, IEditorGroupsService)),
112
133
  ( __param(7, ITextResourceConfigurationService)),
113
- ( __param(8, IEditorProgressService))
134
+ ( __param(8, IEditorProgressService)),
135
+ ( __param(9, IMenuService))
114
136
  ], MultiDiffEditor));
137
+ class MultiDiffEditorContentMenuOverlay extends Disposable {
138
+ constructor(root, resourceContextKey, contextKeyService, menuService, instantiationService) {
139
+ super();
140
+ this.overlayStore = this._register(( new MutableDisposable()));
141
+ this.resourceContextKey = resourceContextKey;
142
+ const menu = this._register(menuService.createMenu(MenuId.MultiDiffEditorContent, contextKeyService));
143
+ this.rebuild = () => {
144
+ this.overlayStore.clear();
145
+ const hasActions = menu.getActions().length > 0;
146
+ if (!hasActions) {
147
+ return;
148
+ }
149
+ const container = h('div.floating-menu-overlay-widget.multi-diff-root-floating-menu');
150
+ root.appendChild(container.root);
151
+ const floatingMenu = instantiationService.createInstance(FloatingClickMenu, {
152
+ container: container.root,
153
+ menuId: MenuId.MultiDiffEditorContent,
154
+ getActionArg: () => this.currentResource,
155
+ });
156
+ const store = ( new DisposableStore());
157
+ store.add(floatingMenu);
158
+ store.add(toDisposable(() => container.root.remove()));
159
+ this.overlayStore.value = store;
160
+ };
161
+ this.rebuild();
162
+ this._register(menu.onDidChange(() => {
163
+ this.overlayStore.clear();
164
+ this.rebuild();
165
+ }));
166
+ this._register(resourceContextKey);
167
+ }
168
+ updateResource(resource) {
169
+ this.currentResource = resource;
170
+ this.resourceContextKey.set(resource ?? null);
171
+ this.overlayStore.clear();
172
+ this.rebuild();
173
+ }
174
+ }
115
175
  let WorkbenchUIElementFactory = class WorkbenchUIElementFactory {
116
176
  constructor(_instantiationService) {
117
177
  this._instantiationService = _instantiationService;