import { Event } from "../../../base/common/event.js"; import { IInstantiationService } from "../../../platform/instantiation/common/instantiation.js"; import { IProgressIndicator } from "../../../platform/progress/common/progress.js"; import { PaneComposite, PaneCompositeDescriptor } from "../panecomposite.js"; import { IPaneComposite } from "../../common/panecomposite.js"; import { ViewContainerLocation } from "../../common/views.js"; import { IViewDescriptorService } from "../../common/views.service.js"; import { DisposableStore } from "../../../base/common/lifecycle.js"; import { IView } from "../../../base/browser/ui/grid/grid.js"; import { SINGLE_WINDOW_PARTS } from "../../services/layout/browser/layoutService.js"; import { IWorkbenchLayoutService } from "../../services/layout/browser/layoutService.service.js"; import { CompositePart, ICompositePartOptions, ICompositeTitleLabel } from "./compositePart.js"; import { IPaneCompositeBarOptions, PaneCompositeBar } from "./paneCompositeBar.js"; import { Dimension } from "../../../base/browser/dom.js"; import { INotificationService } from "../../../platform/notification/common/notification.service.js"; import { IStorageService } from "../../../platform/storage/common/storage.service.js"; import { IContextMenuService } from "../../../platform/contextview/browser/contextView.service.js"; import { IKeybindingService } from "../../../platform/keybinding/common/keybinding.service.js"; import { IThemeService } from "../../../platform/theme/common/themeService.service.js"; import { IContextKey } from "../../../platform/contextkey/common/contextkey.js"; import { IContextKeyService } from "../../../platform/contextkey/common/contextkey.service.js"; import { IExtensionService } from "../../services/extensions/common/extensions.service.js"; import { MenuId } from "../../../platform/actions/common/actions.js"; import { IMenuService } from "../../../platform/actions/common/actions.service.js"; import { SubmenuAction } from "../../../base/common/actions.js"; import { Composite } from "../composite.js"; import { IHoverService } from "../../../platform/hover/browser/hover.service.js"; export declare enum CompositeBarPosition { TOP = 0, TITLE = 1, BOTTOM = 2 } export interface IPaneCompositePart extends IView { readonly partId: SINGLE_WINDOW_PARTS; readonly registryId: string; readonly onDidPaneCompositeOpen: Event; readonly onDidPaneCompositeClose: Event; /** * Opens a viewlet with the given identifier and pass keyboard focus to it if specified. */ openPaneComposite(id: string | undefined, focus?: boolean): Promise; /** * Returns the current active viewlet if any. */ getActivePaneComposite(): IPaneComposite | undefined; /** * Returns the viewlet by id. */ getPaneComposite(id: string): PaneCompositeDescriptor | undefined; /** * Returns all enabled viewlets */ getPaneComposites(): PaneCompositeDescriptor[]; /** * Returns the progress indicator for the side bar. */ getProgressIndicator(id: string): IProgressIndicator | undefined; /** * Hide the active viewlet. */ hideActivePaneComposite(): void; /** * Return the last active viewlet id. */ getLastActivePaneCompositeId(): string; /** * Returns id of pinned view containers following the visual order. */ getPinnedPaneCompositeIds(): string[]; /** * Returns id of visible view containers following the visual order. */ getVisiblePaneCompositeIds(): string[]; /** * Returns id of all view containers following the visual order. */ getPaneCompositeIds(): string[]; } export declare abstract class AbstractPaneCompositePart extends CompositePart implements IPaneCompositePart { readonly partId: SINGLE_WINDOW_PARTS; private readonly activePaneContextKey; private paneFocusContextKey; protected readonly location: ViewContainerLocation; readonly registryId: string; private readonly globalActionsMenuId; private readonly globalLeftActionsMenuId; private readonly viewDescriptorService; protected readonly contextKeyService: IContextKeyService; private readonly extensionService; protected readonly menuService: IMenuService; private static readonly MIN_COMPOSITE_BAR_WIDTH; get snap(): boolean; get onDidPaneCompositeOpen(): Event; readonly onDidPaneCompositeClose: Event; private titleContainer; private headerFooterCompositeBarContainer; protected readonly headerFooterCompositeBarDispoables: DisposableStore; private paneCompositeBarContainer; private readonly paneCompositeBar; private compositeBarPosition; private emptyPaneMessageElement; private globalToolBar; private globalLeftToolBar; private blockOpening; protected contentDimension: Dimension | undefined; constructor(partId: SINGLE_WINDOW_PARTS, partOptions: ICompositePartOptions, activePaneCompositeSettingsKey: string, activePaneContextKey: IContextKey, paneFocusContextKey: IContextKey, nameForTelemetry: string, compositeCSSClass: string, titleForegroundColor: string | undefined, titleBorderColor: string | undefined, location: ViewContainerLocation, registryId: string, globalActionsMenuId: MenuId, globalLeftActionsMenuId: MenuId | undefined, notificationService: INotificationService, storageService: IStorageService, contextMenuService: IContextMenuService, layoutService: IWorkbenchLayoutService, keybindingService: IKeybindingService, hoverService: IHoverService, instantiationService: IInstantiationService, themeService: IThemeService, viewDescriptorService: IViewDescriptorService, contextKeyService: IContextKeyService, extensionService: IExtensionService, menuService: IMenuService); private registerListeners; private onDidOpen; private onDidClose; protected showComposite(composite: Composite): void; protected hideActiveComposite(): Composite | undefined; create(parent: HTMLElement): void; private createEmptyPaneMessage; protected createTitleArea(parent: HTMLElement): HTMLElement | undefined; protected createTitleLabel(parent: HTMLElement): ICompositeTitleLabel; protected updateCompositeBar(updateCompositeBarOption?: boolean): void; protected createHeaderArea(): HTMLElement; protected createFooterArea(): HTMLElement; protected createHeaderFooterCompositeBarArea(area: HTMLElement): HTMLElement; private removeFooterHeaderArea; protected createCompositeBar(): PaneCompositeBar; protected onTitleAreaUpdate(compositeId: string): void; openPaneComposite(id?: string, focus?: boolean): Promise; private doOpenPaneComposite; getPaneComposite(id: string): PaneCompositeDescriptor | undefined; getPaneComposites(): PaneCompositeDescriptor[]; getPinnedPaneCompositeIds(): string[]; getVisiblePaneCompositeIds(): string[]; getPaneCompositeIds(): string[]; getActivePaneComposite(): IPaneComposite | undefined; getLastActivePaneCompositeId(): string; hideActivePaneComposite(): void; protected focusCompositeBar(): void; layout(width: number, height: number, top: number, left: number): void; private layoutCompositeBar; private layoutEmptyMessage; protected getToolbarWidth(): number; private onTitleAreaContextMenu; private onCompositeBarAreaContextMenu; private onCompositeBarContextMenu; protected getViewsSubmenuAction(): SubmenuAction | undefined; protected abstract shouldShowCompositeBar(): boolean; protected abstract getCompositeBarOptions(): IPaneCompositeBarOptions; protected abstract getCompositeBarPosition(): CompositeBarPosition; }