@codingame/monaco-vscode-api 2.1.3 → 2.2.0-next.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.
Files changed (191) hide show
  1. package/README.md +10 -0
  2. package/contributions.js +1 -0
  3. package/extensions.d.ts +6 -3
  4. package/extensions.js +18 -7
  5. package/lifecycle.js +11 -3
  6. package/missing-services.js +55 -10
  7. package/monaco.js +7 -3
  8. package/package.json +8 -8
  9. package/service-override/tools/editor.js +3 -1
  10. package/service-override/tools/views.d.ts +98 -0
  11. package/service-override/tools/views.js +249 -0
  12. package/services.d.ts +4 -2
  13. package/services.js +11 -9
  14. package/vscode/src/vs/base/browser/deviceAccess.js +60 -0
  15. package/vscode/src/vs/base/browser/dom.js +18 -1
  16. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +178 -0
  17. package/vscode/src/vs/base/browser/ui/grid/grid.js +492 -0
  18. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +4 -0
  19. package/vscode/src/vs/base/browser/ui/grid/gridview.d.ts +1 -0
  20. package/vscode/src/vs/base/browser/ui/grid/gridview.js +1109 -0
  21. package/vscode/src/vs/base/browser/ui/sash/sash.js +9 -1
  22. package/vscode/src/vs/base/browser/ui/splitview/splitview.d.ts +348 -1
  23. package/vscode/src/vs/base/common/async.js +46 -2
  24. package/vscode/src/vs/base/common/codicons.d.ts +579 -0
  25. package/vscode/src/vs/base/common/event.js +11 -2
  26. package/vscode/src/vs/base/common/keybindingParser.js +87 -0
  27. package/vscode/src/vs/base/common/network.js +1 -2
  28. package/vscode/src/vs/base/common/observableInternal/utils.js +1 -1
  29. package/vscode/src/vs/base/common/platform.js +2 -1
  30. package/vscode/src/vs/base/common/scrollable.d.ts +28 -0
  31. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/colors.js +17 -0
  32. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/diffEditorItemTemplate.js +214 -0
  33. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorViewModel.js +84 -0
  34. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidget.js +54 -0
  35. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidgetImpl.js +324 -0
  36. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/objectPool.js +46 -0
  37. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/style.css.js +4 -0
  38. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/utils.js +11 -0
  39. package/vscode/src/vs/platform/keyboardLayout/common/keyboardLayout.js +61 -1
  40. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +10 -0
  41. package/vscode/src/vs/platform/log/browser/log.js +24 -0
  42. package/vscode/src/vs/platform/product/common/product.js +1 -2
  43. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +772 -0
  44. package/vscode/src/vs/platform/userDataSync/common/userDataSyncStoreService.js +551 -0
  45. package/vscode/src/vs/platform/webview/common/mimeTypes.js +22 -0
  46. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +62 -0
  47. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +788 -0
  48. package/vscode/src/vs/workbench/browser/actions/listCommands.js +763 -0
  49. package/vscode/src/vs/workbench/browser/layout.d.ts +26 -0
  50. package/vscode/src/vs/workbench/browser/media/style.css.js +1 -1
  51. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +610 -0
  52. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +4 -0
  53. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +4 -0
  54. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +148 -0
  55. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +4 -0
  56. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +603 -0
  57. package/vscode/src/vs/workbench/browser/parts/compositePart.js +333 -0
  58. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +221 -0
  59. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +1406 -0
  60. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +184 -0
  61. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +509 -0
  62. package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +112 -0
  63. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +1018 -0
  64. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +389 -0
  65. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +4 -0
  66. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +4 -0
  67. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +4 -0
  68. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsActions.css.js +4 -0
  69. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsCenter.css.js +4 -0
  70. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsList.css.js +4 -0
  71. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsToasts.css.js +4 -0
  72. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +213 -0
  73. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +73 -0
  74. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +307 -0
  75. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +226 -0
  76. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +218 -0
  77. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +433 -0
  78. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +436 -0
  79. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +643 -0
  80. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +377 -0
  81. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +66 -0
  82. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +144 -0
  83. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +4 -0
  84. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +220 -0
  85. package/vscode/src/vs/workbench/browser/window.js +239 -5
  86. package/vscode/src/vs/workbench/common/configuration.js +11 -1
  87. package/vscode/src/vs/workbench/common/theme.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +298 -0
  89. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +363 -0
  90. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +133 -0
  91. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +4 -0
  92. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +90 -0
  93. package/vscode/src/vs/workbench/contrib/comments/browser/commentMenus.js +43 -0
  94. package/vscode/src/vs/workbench/contrib/comments/browser/commentService.js +317 -2
  95. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadRangeDecorator.js +107 -0
  96. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +395 -0
  97. package/vscode/src/vs/workbench/contrib/comments/browser/comments.js +3 -0
  98. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +1277 -0
  99. package/vscode/src/vs/workbench/contrib/comments/browser/commentsFilterOptions.js +17 -0
  100. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +123 -0
  101. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +342 -0
  102. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +451 -0
  103. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +176 -0
  104. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +4 -0
  105. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +35 -0
  106. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +16 -0
  107. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +143 -0
  108. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +212 -0
  109. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +4 -0
  110. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +76 -0
  111. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +61 -0
  112. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +117 -0
  113. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessions.js +62 -0
  114. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +5 -0
  115. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +77 -0
  116. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +72 -0
  117. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +254 -0
  118. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +97 -0
  119. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +442 -0
  120. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +430 -0
  121. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +784 -0
  122. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +487 -0
  123. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +521 -0
  124. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +150 -0
  125. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +61 -0
  126. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveDocumentService.js +25 -1
  127. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +178 -0
  128. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +49 -0
  129. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +408 -0
  130. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +4 -0
  131. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +145 -0
  132. package/vscode/src/vs/workbench/contrib/mappedEdits/common/mappedEdits.contribution.js +22 -0
  133. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +691 -0
  134. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +238 -0
  135. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +76 -0
  136. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +40 -0
  137. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +69 -0
  138. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +346 -0
  139. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +96 -0
  140. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +144 -0
  141. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +103 -0
  142. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +399 -0
  143. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +195 -0
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +39 -0
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +126 -0
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +4 -0
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +611 -0
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +156 -0
  149. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +262 -0
  150. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +171 -0
  151. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.js +41 -0
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +317 -0
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +56 -0
  154. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +315 -0
  155. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +193 -0
  156. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +2 -1
  157. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +37 -0
  158. package/vscode/src/vs/workbench/contrib/sash/browser/sash.js +39 -0
  159. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +138 -2
  160. package/vscode/src/vs/workbench/contrib/tags/browser/workspaceTagsService.js +12 -0
  161. package/vscode/src/vs/workbench/contrib/tags/common/workspaceTags.js +3 -0
  162. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +4 -0
  163. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +281 -0
  164. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +358 -0
  165. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +131 -0
  166. package/vscode/src/vs/workbench/contrib/update/common/update.js +2 -0
  167. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +288 -0
  168. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +94 -0
  169. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +86 -0
  170. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +77 -0
  171. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +646 -0
  172. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +63 -0
  173. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +57 -0
  174. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +140 -0
  175. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +119 -0
  176. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +67 -0
  177. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +233 -0
  178. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +143 -0
  179. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +0 -3
  180. package/vscode/src/vs/workbench/services/driver/browser/driver.js +184 -0
  181. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +668 -0
  182. package/vscode/src/vs/workbench/services/history/browser/historyService.js +1482 -0
  183. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +17 -1
  184. package/vscode/src/vs/workbench/services/lifecycle/common/lifecycle.js +8 -1
  185. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +4 -0
  186. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +521 -0
  187. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +102 -0
  188. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +296 -0
  189. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +99 -0
  190. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +711 -0
  191. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +596 -0
@@ -0,0 +1,643 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { localizeWithPath } from '../../../nls.js';
3
+ import { IActivityService } from '../../services/activity/common/activity.js';
4
+ import { IWorkbenchLayoutService } from '../../services/layout/browser/layoutService.js';
5
+ import { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';
6
+ import { Disposable, DisposableMap, DisposableStore } from '../../../base/common/lifecycle.js';
7
+ import { CompositeDragAndDrop, CompositeBar } from './compositeBar.js';
8
+ import { isMouseEvent, asCSSUrl, createCSSRule, Dimension } from '../../../base/browser/dom.js';
9
+ import { IStorageService } from '../../../platform/storage/common/storage.js';
10
+ import { IExtensionService } from '../../services/extensions/common/extensions.js';
11
+ import { URI } from '../../../base/common/uri.js';
12
+ import { CompositeBarAction, ToggleCompositePinnedAction, ToggleCompositeBadgeAction } from './compositeBarActions.js';
13
+ import { IViewDescriptorService } from '../../common/views.js';
14
+ import { ContextKeyExpr, IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';
15
+ import { isString } from '../../../base/common/types.js';
16
+ import { IWorkbenchEnvironmentService } from '../../services/environment/common/environmentService.js';
17
+ import { isNative } from '../../../base/common/platform.js';
18
+ import { ThemeIcon } from '../../../base/common/themables.js';
19
+ import { toAction } from '../../../base/common/actions.js';
20
+ import { StringSHA1 } from '../../../base/common/hash.js';
21
+ import { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js';
22
+ import { IConfigurationService } from '../../../platform/configuration/common/configuration.js';
23
+ var ViewContainerActivityAction_1;
24
+ let PaneCompositeBar = class PaneCompositeBar extends Disposable {
25
+ constructor(options, part, paneCompositePart, instantiationService, storageService, extensionService, viewDescriptorService, contextKeyService, environmentService, layoutService) {
26
+ super();
27
+ this.options = options;
28
+ this.part = part;
29
+ this.paneCompositePart = paneCompositePart;
30
+ this.instantiationService = instantiationService;
31
+ this.storageService = storageService;
32
+ this.extensionService = extensionService;
33
+ this.viewDescriptorService = viewDescriptorService;
34
+ this.contextKeyService = contextKeyService;
35
+ this.environmentService = environmentService;
36
+ this.layoutService = layoutService;
37
+ this.viewContainerDisposables = this._register(( new DisposableMap()));
38
+ this.compositeActions = ( new Map());
39
+ this.hasExtensionsRegistered = false;
40
+ this._cachedViewContainers = undefined;
41
+ this.location = paneCompositePart.partId === "workbench.parts.panel"
42
+ ? 1 : paneCompositePart.partId === "workbench.parts.auxiliarybar"
43
+ ? 2 : 0 ;
44
+ this.dndHandler = ( new CompositeDragAndDrop(
45
+ this.viewDescriptorService,
46
+ this.location,
47
+ async (id, focus) => { return (await this.paneCompositePart.openPaneComposite(id, focus)) ?? null; },
48
+ (from, to, before) => this.compositeBar.move(from, to, this.options.orientation === 1 ? before?.verticallyBefore : before?.horizontallyBefore),
49
+ () => this.compositeBar.getCompositeBarItems()
50
+ ));
51
+ const cachedItems = ( this.cachedViewContainers
52
+ .map(container => ({
53
+ id: container.id,
54
+ name: container.name,
55
+ visible: !this.shouldBeHidden(container.id, container),
56
+ order: container.order,
57
+ pinned: container.pinned,
58
+ })));
59
+ this.compositeBar = this.createCompositeBar(cachedItems);
60
+ this.onDidRegisterViewContainers(this.getViewContainers());
61
+ this.registerListeners();
62
+ }
63
+ createCompositeBar(cachedItems) {
64
+ return this._register(this.instantiationService.createInstance(CompositeBar, cachedItems, {
65
+ icon: this.options.icon,
66
+ compact: this.options.compact,
67
+ orientation: this.options.orientation,
68
+ activityHoverOptions: this.options.activityHoverOptions,
69
+ preventLoopNavigation: this.options.preventLoopNavigation,
70
+ openComposite: async (compositeId, preserveFocus) => {
71
+ return (await this.paneCompositePart.openPaneComposite(compositeId, !preserveFocus)) ?? null;
72
+ },
73
+ getActivityAction: compositeId => this.getCompositeActions(compositeId).activityAction,
74
+ getCompositePinnedAction: compositeId => this.getCompositeActions(compositeId).pinnedAction,
75
+ getCompositeBadgeAction: compositeId => this.getCompositeActions(compositeId).badgeAction,
76
+ getOnCompositeClickAction: compositeId => this.getCompositeActions(compositeId).activityAction,
77
+ fillExtraContextMenuActions: (actions, e) => ( this.options.fillExtraContextMenuActions(actions, e)),
78
+ getContextMenuActionsForComposite: compositeId => this.getContextMenuActionsForComposite(compositeId),
79
+ getDefaultCompositeId: () => this.viewDescriptorService.getDefaultViewContainer(this.location)?.id,
80
+ dndHandler: this.dndHandler,
81
+ compositeSize: this.options.compositeSize,
82
+ overflowActionSize: this.options.overflowActionSize,
83
+ colors: theme => this.options.colors(theme),
84
+ }));
85
+ }
86
+ getContextMenuActionsForComposite(compositeId) {
87
+ const actions = [];
88
+ const viewContainer = this.viewDescriptorService.getViewContainerById(compositeId);
89
+ const defaultLocation = this.viewDescriptorService.getDefaultViewContainerLocation(viewContainer);
90
+ if (defaultLocation !== this.viewDescriptorService.getViewContainerLocation(viewContainer)) {
91
+ actions.push(toAction({ id: 'resetLocationAction', label: ( localizeWithPath(
92
+ 'vs/workbench/browser/parts/paneCompositeBar',
93
+ 'resetLocation',
94
+ "Reset Location"
95
+ )), run: () => this.viewDescriptorService.moveViewContainerToLocation(viewContainer, defaultLocation, undefined, 'resetLocationAction') }));
96
+ }
97
+ else {
98
+ const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer);
99
+ if (viewContainerModel.allViewDescriptors.length === 1) {
100
+ const viewToReset = viewContainerModel.allViewDescriptors[0];
101
+ const defaultContainer = this.viewDescriptorService.getDefaultContainerById(viewToReset.id);
102
+ if (defaultContainer !== viewContainer) {
103
+ actions.push(toAction({ id: 'resetLocationAction', label: ( localizeWithPath(
104
+ 'vs/workbench/browser/parts/paneCompositeBar',
105
+ 'resetLocation',
106
+ "Reset Location"
107
+ )), run: () => this.viewDescriptorService.moveViewsToContainer([viewToReset], defaultContainer, undefined, 'resetLocationAction') }));
108
+ }
109
+ }
110
+ }
111
+ return actions;
112
+ }
113
+ registerListeners() {
114
+ this._register(this.viewDescriptorService.onDidChangeViewContainers(({ added, removed }) => this.onDidChangeViewContainers(added, removed)));
115
+ this._register(this.viewDescriptorService.onDidChangeContainerLocation(({ viewContainer, from, to }) => this.onDidChangeViewContainerLocation(viewContainer, from, to)));
116
+ this._register(this.paneCompositePart.onDidPaneCompositeOpen(e => this.onDidChangeViewContainerVisibility(e.getId(), true)));
117
+ this._register(this.paneCompositePart.onDidPaneCompositeClose(e => this.onDidChangeViewContainerVisibility(e.getId(), false)));
118
+ this.extensionService.whenInstalledExtensionsRegistered().then(() => {
119
+ if (this._store.isDisposed) {
120
+ return;
121
+ }
122
+ this.onDidRegisterExtensions();
123
+ this._register(this.compositeBar.onDidChange(() => this.saveCachedViewContainers()));
124
+ this._register(this.storageService.onDidChangeValue(0 , this.options.pinnedViewContainersKey, this._store)(e => this.onDidPinnedViewContainersStorageValueChange(e)));
125
+ });
126
+ }
127
+ onDidChangeViewContainers(added, removed) {
128
+ removed.filter(({ location }) => location === this.location).forEach(({ container }) => this.onDidDeregisterViewContainer(container));
129
+ this.onDidRegisterViewContainers(( added.filter(({ location }) => location === this.location).map(({ container }) => container)));
130
+ }
131
+ onDidChangeViewContainerLocation(container, from, to) {
132
+ if (from === this.location) {
133
+ this.onDidDeregisterViewContainer(container);
134
+ }
135
+ if (to === this.location) {
136
+ this.onDidRegisterViewContainers([container]);
137
+ const visibleComposites = this.compositeBar.getVisibleComposites();
138
+ if (!this.paneCompositePart.getActivePaneComposite() && this.layoutService.isVisible(this.paneCompositePart.partId) && visibleComposites.length) {
139
+ this.paneCompositePart.openPaneComposite(visibleComposites[0].id);
140
+ }
141
+ }
142
+ }
143
+ onDidChangeViewContainerVisibility(id, visible) {
144
+ if (visible) {
145
+ this.onDidViewContainerVisible(id);
146
+ }
147
+ else {
148
+ this.compositeBar.deactivateComposite(id);
149
+ }
150
+ }
151
+ onDidRegisterExtensions() {
152
+ this.hasExtensionsRegistered = true;
153
+ for (const { id } of this.cachedViewContainers) {
154
+ const viewContainer = this.getViewContainer(id);
155
+ if (viewContainer) {
156
+ this.showOrHideViewContainer(viewContainer);
157
+ }
158
+ else {
159
+ if (this.viewDescriptorService.isViewContainerRemovedPermanently(id)) {
160
+ this.removeComposite(id);
161
+ }
162
+ else {
163
+ this.hideComposite(id);
164
+ }
165
+ }
166
+ }
167
+ this.saveCachedViewContainers();
168
+ }
169
+ onDidViewContainerVisible(id) {
170
+ const viewContainer = this.getViewContainer(id);
171
+ if (viewContainer) {
172
+ this.addComposite(viewContainer);
173
+ this.compositeBar.activateComposite(viewContainer.id);
174
+ if (this.shouldBeHidden(viewContainer)) {
175
+ const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer);
176
+ if (viewContainerModel.activeViewDescriptors.length === 0) {
177
+ this.hideComposite(viewContainer.id);
178
+ }
179
+ }
180
+ }
181
+ }
182
+ create(parent) {
183
+ return this.compositeBar.create(parent);
184
+ }
185
+ getCompositeActions(compositeId) {
186
+ let compositeActions = this.compositeActions.get(compositeId);
187
+ if (!compositeActions) {
188
+ const viewContainer = this.getViewContainer(compositeId);
189
+ if (viewContainer) {
190
+ const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer);
191
+ compositeActions = {
192
+ activityAction: this._register(this.instantiationService.createInstance(ViewContainerActivityAction, this.toCompositeBarActionItemFrom(viewContainerModel), this.part, this.paneCompositePart)),
193
+ pinnedAction: this._register(( new ToggleCompositePinnedAction(this.toCompositeBarActionItemFrom(viewContainerModel), this.compositeBar))),
194
+ badgeAction: this._register(( new ToggleCompositeBadgeAction(this.toCompositeBarActionItemFrom(viewContainerModel), this.compositeBar)))
195
+ };
196
+ }
197
+ else {
198
+ const cachedComposite = this.cachedViewContainers.filter(c => c.id === compositeId)[0];
199
+ compositeActions = {
200
+ activityAction: this._register(this.instantiationService.createInstance(PlaceHolderViewContainerActivityAction, this.toCompositeBarActionItem(compositeId, cachedComposite?.name ?? compositeId, cachedComposite?.icon, undefined), this.part, this.paneCompositePart)),
201
+ pinnedAction: this._register(( new PlaceHolderToggleCompositePinnedAction(compositeId, this.compositeBar))),
202
+ badgeAction: this._register(( new PlaceHolderToggleCompositeBadgeAction(compositeId, this.compositeBar)))
203
+ };
204
+ }
205
+ this.compositeActions.set(compositeId, compositeActions);
206
+ }
207
+ return compositeActions;
208
+ }
209
+ onDidRegisterViewContainers(viewContainers) {
210
+ for (const viewContainer of viewContainers) {
211
+ this.addComposite(viewContainer);
212
+ const cachedViewContainer = this.cachedViewContainers.filter(({ id }) => id === viewContainer.id)[0];
213
+ if (!cachedViewContainer) {
214
+ this.compositeBar.pin(viewContainer.id);
215
+ }
216
+ const visibleViewContainer = this.paneCompositePart.getActivePaneComposite();
217
+ if (visibleViewContainer?.getId() === viewContainer.id) {
218
+ this.compositeBar.activateComposite(viewContainer.id);
219
+ }
220
+ const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer);
221
+ this.updateCompositeBarActionItem(viewContainer, viewContainerModel);
222
+ this.showOrHideViewContainer(viewContainer);
223
+ const disposables = ( new DisposableStore());
224
+ disposables.add(viewContainerModel.onDidChangeContainerInfo(() => this.updateCompositeBarActionItem(viewContainer, viewContainerModel)));
225
+ disposables.add(viewContainerModel.onDidChangeActiveViewDescriptors(() => this.showOrHideViewContainer(viewContainer)));
226
+ this.viewContainerDisposables.set(viewContainer.id, disposables);
227
+ }
228
+ }
229
+ onDidDeregisterViewContainer(viewContainer) {
230
+ this.viewContainerDisposables.deleteAndDispose(viewContainer.id);
231
+ this.removeComposite(viewContainer.id);
232
+ }
233
+ updateCompositeBarActionItem(viewContainer, viewContainerModel) {
234
+ const compositeBarActionItem = this.toCompositeBarActionItemFrom(viewContainerModel);
235
+ const { activityAction, pinnedAction } = this.getCompositeActions(viewContainer.id);
236
+ activityAction.updateCompositeBarActionItem(compositeBarActionItem);
237
+ if (pinnedAction instanceof PlaceHolderToggleCompositePinnedAction) {
238
+ pinnedAction.setActivity(compositeBarActionItem);
239
+ }
240
+ if (this.options.recomputeSizes) {
241
+ this.compositeBar.recomputeSizes();
242
+ }
243
+ this.saveCachedViewContainers();
244
+ }
245
+ toCompositeBarActionItemFrom(viewContainerModel) {
246
+ return this.toCompositeBarActionItem(viewContainerModel.viewContainer.id, viewContainerModel.title, viewContainerModel.icon, viewContainerModel.keybindingId);
247
+ }
248
+ toCompositeBarActionItem(id, name, icon, keybindingId) {
249
+ let classNames = undefined;
250
+ let iconUrl = undefined;
251
+ if (this.options.icon) {
252
+ if (URI.isUri(icon)) {
253
+ iconUrl = icon;
254
+ const cssUrl = asCSSUrl(icon);
255
+ const hash = ( new StringSHA1());
256
+ hash.update(cssUrl);
257
+ const iconId = `activity-${id.replace(/\./g, '-')}-${hash.digest()}`;
258
+ const iconClass = `.monaco-workbench .${this.options.partContainerClass} .monaco-action-bar .action-label.${iconId}`;
259
+ classNames = [iconId, 'uri-icon'];
260
+ createCSSRule(iconClass, `
261
+ mask: ${cssUrl} no-repeat 50% 50%;
262
+ mask-size: ${this.options.iconSize}px;
263
+ -webkit-mask: ${cssUrl} no-repeat 50% 50%;
264
+ -webkit-mask-size: ${this.options.iconSize}px;
265
+ mask-origin: padding;
266
+ -webkit-mask-origin: padding;
267
+ `);
268
+ }
269
+ else if (ThemeIcon.isThemeIcon(icon)) {
270
+ classNames = ThemeIcon.asClassNameArray(icon);
271
+ }
272
+ }
273
+ return { id, name, classNames, iconUrl, keybindingId };
274
+ }
275
+ showOrHideViewContainer(viewContainer) {
276
+ if (this.shouldBeHidden(viewContainer)) {
277
+ this.hideComposite(viewContainer.id);
278
+ }
279
+ else {
280
+ this.addComposite(viewContainer);
281
+ }
282
+ }
283
+ shouldBeHidden(viewContainerOrId, cachedViewContainer) {
284
+ const viewContainer = isString(viewContainerOrId) ? this.getViewContainer(viewContainerOrId) : viewContainerOrId;
285
+ const viewContainerId = isString(viewContainerOrId) ? viewContainerOrId : viewContainerOrId.id;
286
+ if (viewContainer) {
287
+ if (viewContainer.hideIfEmpty) {
288
+ if (this.viewDescriptorService.getViewContainerModel(viewContainer).activeViewDescriptors.length > 0) {
289
+ return false;
290
+ }
291
+ }
292
+ else {
293
+ return false;
294
+ }
295
+ }
296
+ if (!this.hasExtensionsRegistered && !(this.part === "workbench.parts.sidebar" && this.environmentService.remoteAuthority && isNative)) {
297
+ cachedViewContainer = cachedViewContainer || this.cachedViewContainers.find(({ id }) => id === viewContainerId);
298
+ if (!viewContainer && cachedViewContainer?.isBuiltin && cachedViewContainer?.visible) {
299
+ return false;
300
+ }
301
+ if (cachedViewContainer?.views?.length) {
302
+ return cachedViewContainer.views.every(({ when }) => !!when && !this.contextKeyService.contextMatchesRules(ContextKeyExpr.deserialize(when)));
303
+ }
304
+ }
305
+ return true;
306
+ }
307
+ addComposite(viewContainer) {
308
+ this.compositeBar.addComposite({ id: viewContainer.id, name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value, order: viewContainer.order, requestedIndex: viewContainer.requestedIndex });
309
+ }
310
+ hideComposite(compositeId) {
311
+ this.compositeBar.hideComposite(compositeId);
312
+ const compositeActions = this.compositeActions.get(compositeId);
313
+ if (compositeActions) {
314
+ compositeActions.activityAction.dispose();
315
+ compositeActions.pinnedAction.dispose();
316
+ this.compositeActions.delete(compositeId);
317
+ }
318
+ }
319
+ removeComposite(compositeId) {
320
+ this.compositeBar.removeComposite(compositeId);
321
+ const compositeActions = this.compositeActions.get(compositeId);
322
+ if (compositeActions) {
323
+ compositeActions.activityAction.dispose();
324
+ compositeActions.pinnedAction.dispose();
325
+ this.compositeActions.delete(compositeId);
326
+ }
327
+ }
328
+ getPinnedPaneCompositeIds() {
329
+ const pinnedCompositeIds = ( this.compositeBar.getPinnedComposites().map(v => v.id));
330
+ return ( this.getViewContainers()
331
+ .filter(v => this.compositeBar.isPinned(v.id))
332
+ .sort((v1, v2) => pinnedCompositeIds.indexOf(v1.id) - pinnedCompositeIds.indexOf(v2.id))
333
+ .map(v => v.id));
334
+ }
335
+ getVisiblePaneCompositeIds() {
336
+ return ( this.compositeBar.getVisibleComposites()
337
+ .filter(v => this.paneCompositePart.getActivePaneComposite()?.getId() === v.id || this.compositeBar.isPinned(v.id))
338
+ .map(v => v.id));
339
+ }
340
+ getContextMenuActions() {
341
+ return this.compositeBar.getContextMenuActions();
342
+ }
343
+ focus(index) {
344
+ this.compositeBar.focus(index);
345
+ }
346
+ layout(width, height) {
347
+ this.compositeBar.layout(( new Dimension(width, height)));
348
+ }
349
+ getViewContainer(id) {
350
+ const viewContainer = this.viewDescriptorService.getViewContainerById(id);
351
+ return viewContainer && this.viewDescriptorService.getViewContainerLocation(viewContainer) === this.location ? viewContainer : undefined;
352
+ }
353
+ getViewContainers() {
354
+ return this.viewDescriptorService.getViewContainersByLocation(this.location);
355
+ }
356
+ onDidPinnedViewContainersStorageValueChange(e) {
357
+ if (this.pinnedViewContainersValue !== this.getStoredPinnedViewContainersValue() ) {
358
+ this._placeholderViewContainersValue = undefined;
359
+ this._pinnedViewContainersValue = undefined;
360
+ this._cachedViewContainers = undefined;
361
+ const newCompositeItems = [];
362
+ const compositeItems = this.compositeBar.getCompositeBarItems();
363
+ for (const cachedViewContainer of this.cachedViewContainers) {
364
+ newCompositeItems.push({
365
+ id: cachedViewContainer.id,
366
+ name: cachedViewContainer.name,
367
+ order: cachedViewContainer.order,
368
+ pinned: cachedViewContainer.pinned,
369
+ visible: cachedViewContainer.visible && !!this.getViewContainer(cachedViewContainer.id),
370
+ });
371
+ }
372
+ for (const viewContainer of this.getViewContainers()) {
373
+ if (!( newCompositeItems.some(({ id }) => id === viewContainer.id))) {
374
+ const index = compositeItems.findIndex(({ id }) => id === viewContainer.id);
375
+ if (index !== -1) {
376
+ const compositeItem = compositeItems[index];
377
+ newCompositeItems.splice(index, 0, {
378
+ id: viewContainer.id,
379
+ name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value,
380
+ order: compositeItem.order,
381
+ pinned: compositeItem.pinned,
382
+ visible: compositeItem.visible,
383
+ });
384
+ }
385
+ else {
386
+ newCompositeItems.push({
387
+ id: viewContainer.id,
388
+ name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value,
389
+ order: viewContainer.order,
390
+ pinned: true,
391
+ visible: !this.shouldBeHidden(viewContainer),
392
+ });
393
+ }
394
+ }
395
+ }
396
+ this.compositeBar.setCompositeBarItems(newCompositeItems);
397
+ }
398
+ }
399
+ saveCachedViewContainers() {
400
+ const state = [];
401
+ const compositeItems = this.compositeBar.getCompositeBarItems();
402
+ for (const compositeItem of compositeItems) {
403
+ const viewContainer = this.getViewContainer(compositeItem.id);
404
+ if (viewContainer) {
405
+ const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer);
406
+ const views = [];
407
+ for (const { when } of viewContainerModel.allViewDescriptors) {
408
+ views.push({ when: when ? when.serialize() : undefined });
409
+ }
410
+ state.push({
411
+ id: compositeItem.id,
412
+ name: viewContainerModel.title,
413
+ icon: URI.isUri(viewContainerModel.icon) && this.environmentService.remoteAuthority ? undefined : viewContainerModel.icon,
414
+ views,
415
+ pinned: compositeItem.pinned,
416
+ order: compositeItem.order,
417
+ visible: compositeItem.visible,
418
+ isBuiltin: !viewContainer.extensionId
419
+ });
420
+ }
421
+ else {
422
+ state.push({ id: compositeItem.id, name: compositeItem.name, pinned: compositeItem.pinned, order: compositeItem.order, visible: false, isBuiltin: false });
423
+ }
424
+ }
425
+ this.storeCachedViewContainersState(state);
426
+ }
427
+ get cachedViewContainers() {
428
+ if (this._cachedViewContainers === undefined) {
429
+ this._cachedViewContainers = this.getPinnedViewContainers();
430
+ for (const placeholderViewContainer of this.getPlaceholderViewContainers()) {
431
+ const cachedViewContainer = this._cachedViewContainers.find(cached => cached.id === placeholderViewContainer.id);
432
+ if (cachedViewContainer) {
433
+ cachedViewContainer.visible = placeholderViewContainer.visible ?? cachedViewContainer.visible;
434
+ cachedViewContainer.name = placeholderViewContainer.name;
435
+ cachedViewContainer.icon = placeholderViewContainer.themeIcon ? placeholderViewContainer.themeIcon :
436
+ placeholderViewContainer.iconUrl ? URI.revive(placeholderViewContainer.iconUrl) : undefined;
437
+ if (URI.isUri(cachedViewContainer.icon) && this.environmentService.remoteAuthority) {
438
+ cachedViewContainer.icon = undefined;
439
+ }
440
+ cachedViewContainer.views = placeholderViewContainer.views;
441
+ cachedViewContainer.isBuiltin = placeholderViewContainer.isBuiltin;
442
+ }
443
+ }
444
+ for (const viewContainerWorkspaceState of this.getViewContainersWorkspaceState()) {
445
+ const cachedViewContainer = this._cachedViewContainers.find(cached => cached.id === viewContainerWorkspaceState.id);
446
+ if (cachedViewContainer) {
447
+ cachedViewContainer.visible = viewContainerWorkspaceState.visible ?? cachedViewContainer.visible;
448
+ }
449
+ }
450
+ }
451
+ return this._cachedViewContainers;
452
+ }
453
+ storeCachedViewContainersState(cachedViewContainers) {
454
+ const pinnedViewContainers = this.getPinnedViewContainers();
455
+ this.setPinnedViewContainers(( cachedViewContainers.map(({ id, pinned, order }) => ({
456
+ id,
457
+ pinned,
458
+ visible: pinnedViewContainers.find(({ id: pinnedId }) => pinnedId === id)?.visible,
459
+ order
460
+ }))));
461
+ this.setPlaceholderViewContainers(( cachedViewContainers.map(({ id, icon, name, views, isBuiltin }) => ({
462
+ id,
463
+ iconUrl: URI.isUri(icon) ? icon : undefined,
464
+ themeIcon: ThemeIcon.isThemeIcon(icon) ? icon : undefined,
465
+ name,
466
+ isBuiltin,
467
+ views
468
+ }))));
469
+ this.setViewContainersWorkspaceState(( cachedViewContainers.map(({ id, visible }) => ({
470
+ id,
471
+ visible,
472
+ }))));
473
+ }
474
+ getPinnedViewContainers() {
475
+ return JSON.parse(this.pinnedViewContainersValue);
476
+ }
477
+ setPinnedViewContainers(pinnedViewContainers) {
478
+ this.pinnedViewContainersValue = JSON.stringify(pinnedViewContainers);
479
+ }
480
+ get pinnedViewContainersValue() {
481
+ if (!this._pinnedViewContainersValue) {
482
+ this._pinnedViewContainersValue = this.getStoredPinnedViewContainersValue();
483
+ }
484
+ return this._pinnedViewContainersValue;
485
+ }
486
+ set pinnedViewContainersValue(pinnedViewContainersValue) {
487
+ if (this.pinnedViewContainersValue !== pinnedViewContainersValue) {
488
+ this._pinnedViewContainersValue = pinnedViewContainersValue;
489
+ this.setStoredPinnedViewContainersValue(pinnedViewContainersValue);
490
+ }
491
+ }
492
+ getStoredPinnedViewContainersValue() {
493
+ return this.storageService.get(this.options.pinnedViewContainersKey, 0 , '[]');
494
+ }
495
+ setStoredPinnedViewContainersValue(value) {
496
+ this.storageService.store(this.options.pinnedViewContainersKey, value, 0 , 0 );
497
+ }
498
+ getPlaceholderViewContainers() {
499
+ return JSON.parse(this.placeholderViewContainersValue);
500
+ }
501
+ setPlaceholderViewContainers(placeholderViewContainers) {
502
+ this.placeholderViewContainersValue = JSON.stringify(placeholderViewContainers);
503
+ }
504
+ get placeholderViewContainersValue() {
505
+ if (!this._placeholderViewContainersValue) {
506
+ this._placeholderViewContainersValue = this.getStoredPlaceholderViewContainersValue();
507
+ }
508
+ return this._placeholderViewContainersValue;
509
+ }
510
+ set placeholderViewContainersValue(placeholderViewContainesValue) {
511
+ if (this.placeholderViewContainersValue !== placeholderViewContainesValue) {
512
+ this._placeholderViewContainersValue = placeholderViewContainesValue;
513
+ this.setStoredPlaceholderViewContainersValue(placeholderViewContainesValue);
514
+ }
515
+ }
516
+ getStoredPlaceholderViewContainersValue() {
517
+ return this.storageService.get(this.options.placeholderViewContainersKey, 0 , '[]');
518
+ }
519
+ setStoredPlaceholderViewContainersValue(value) {
520
+ this.storageService.store(this.options.placeholderViewContainersKey, value, 0 , 1 );
521
+ }
522
+ getViewContainersWorkspaceState() {
523
+ return JSON.parse(this.viewContainersWorkspaceStateValue);
524
+ }
525
+ setViewContainersWorkspaceState(viewContainersWorkspaceState) {
526
+ this.viewContainersWorkspaceStateValue = JSON.stringify(viewContainersWorkspaceState);
527
+ }
528
+ get viewContainersWorkspaceStateValue() {
529
+ if (!this._viewContainersWorkspaceStateValue) {
530
+ this._viewContainersWorkspaceStateValue = this.getStoredViewContainersWorkspaceStateValue();
531
+ }
532
+ return this._viewContainersWorkspaceStateValue;
533
+ }
534
+ set viewContainersWorkspaceStateValue(viewContainersWorkspaceStateValue) {
535
+ if (this.viewContainersWorkspaceStateValue !== viewContainersWorkspaceStateValue) {
536
+ this._viewContainersWorkspaceStateValue = viewContainersWorkspaceStateValue;
537
+ this.setStoredViewContainersWorkspaceStateValue(viewContainersWorkspaceStateValue);
538
+ }
539
+ }
540
+ getStoredViewContainersWorkspaceStateValue() {
541
+ return this.storageService.get(this.options.viewContainersWorkspaceStateKey, 1 , '[]');
542
+ }
543
+ setStoredViewContainersWorkspaceStateValue(value) {
544
+ this.storageService.store(this.options.viewContainersWorkspaceStateKey, value, 1 , 1 );
545
+ }
546
+ };
547
+ PaneCompositeBar = ( __decorate([
548
+ ( __param(3, IInstantiationService)),
549
+ ( __param(4, IStorageService)),
550
+ ( __param(5, IExtensionService)),
551
+ ( __param(6, IViewDescriptorService)),
552
+ ( __param(7, IContextKeyService)),
553
+ ( __param(8, IWorkbenchEnvironmentService)),
554
+ ( __param(9, IWorkbenchLayoutService))
555
+ ], PaneCompositeBar));
556
+ let ViewContainerActivityAction = class ViewContainerActivityAction extends CompositeBarAction {
557
+ static { ViewContainerActivityAction_1 = this; }
558
+ static { this.preventDoubleClickDelay = 300; }
559
+ constructor(compositeBarActionItem, part, paneCompositePart, layoutService, telemetryService, configurationService, activityService) {
560
+ super(compositeBarActionItem);
561
+ this.part = part;
562
+ this.paneCompositePart = paneCompositePart;
563
+ this.layoutService = layoutService;
564
+ this.telemetryService = telemetryService;
565
+ this.configurationService = configurationService;
566
+ this.activityService = activityService;
567
+ this.lastRun = 0;
568
+ this.updateActivity();
569
+ this._register(this.activityService.onDidChangeActivity(viewContainerOrAction => {
570
+ if (!isString(viewContainerOrAction) && viewContainerOrAction.id === this.compositeBarActionItem.id) {
571
+ this.updateActivity();
572
+ }
573
+ }));
574
+ }
575
+ updateCompositeBarActionItem(compositeBarActionItem) {
576
+ this.compositeBarActionItem = compositeBarActionItem;
577
+ }
578
+ updateActivity() {
579
+ const activities = this.activityService.getViewContainerActivities(this.compositeBarActionItem.id);
580
+ this.activity = activities[0];
581
+ }
582
+ async run(event) {
583
+ if (isMouseEvent(event) && event.button === 2) {
584
+ return;
585
+ }
586
+ const now = Date.now();
587
+ if (now > this.lastRun && now - this.lastRun < ViewContainerActivityAction_1.preventDoubleClickDelay) {
588
+ return;
589
+ }
590
+ this.lastRun = now;
591
+ const focus = (event && 'preserveFocus' in event) ? !event.preserveFocus : true;
592
+ if (this.part === "workbench.parts.activitybar" ) {
593
+ const sideBarVisible = this.layoutService.isVisible("workbench.parts.sidebar" );
594
+ const activeViewlet = this.paneCompositePart.getActivePaneComposite();
595
+ const focusBehavior = this.configurationService.getValue('workbench.activityBar.iconClickBehavior');
596
+ if (sideBarVisible && activeViewlet?.getId() === this.compositeBarActionItem.id) {
597
+ switch (focusBehavior) {
598
+ case 'focus':
599
+ this.logAction('refocus');
600
+ this.paneCompositePart.openPaneComposite(this.compositeBarActionItem.id, focus);
601
+ break;
602
+ case 'toggle':
603
+ default:
604
+ this.logAction('hide');
605
+ this.layoutService.setPartHidden(true, "workbench.parts.sidebar" );
606
+ break;
607
+ }
608
+ return;
609
+ }
610
+ this.logAction('show');
611
+ }
612
+ await this.paneCompositePart.openPaneComposite(this.compositeBarActionItem.id, focus);
613
+ return this.activate();
614
+ }
615
+ logAction(action) {
616
+ this.telemetryService.publicLog2('activityBarAction', { viewletId: this.compositeBarActionItem.id, action });
617
+ }
618
+ };
619
+ ViewContainerActivityAction = ViewContainerActivityAction_1 = ( __decorate([
620
+ ( __param(3, IWorkbenchLayoutService)),
621
+ ( __param(4, ITelemetryService)),
622
+ ( __param(5, IConfigurationService)),
623
+ ( __param(6, IActivityService))
624
+ ], ViewContainerActivityAction));
625
+ class PlaceHolderViewContainerActivityAction extends ViewContainerActivityAction {
626
+ }
627
+ class PlaceHolderToggleCompositePinnedAction extends ToggleCompositePinnedAction {
628
+ constructor(id, compositeBar) {
629
+ super({ id, name: id, classNames: undefined }, compositeBar);
630
+ }
631
+ setActivity(activity) {
632
+ this.label = activity.name;
633
+ }
634
+ }
635
+ class PlaceHolderToggleCompositeBadgeAction extends ToggleCompositeBadgeAction {
636
+ constructor(id, compositeBar) {
637
+ super({ id, name: id, classNames: undefined }, compositeBar);
638
+ }
639
+ setCompositeBarActionItem(actionItem) {
640
+ this.label = actionItem.name;
641
+ }
642
+ }
643
+ export { PaneCompositeBar };