import { Event, Emitter } from "../../../../base/common/event.js"; import { Action, IAction, IActionRunner } from "../../../../base/common/actions.js"; import { IActionViewItem } from "../../../../base/browser/ui/actionbar/actionbar.js"; import { IKeybindingService } from "../../../../platform/keybinding/common/keybinding.service.js"; import { IContextMenuService } from "../../../../platform/contextview/browser/contextView.service.js"; import { IThemeService } from "../../../../platform/theme/common/themeService.service.js"; import { ThemeIcon } from "../../../../base/common/themables.js"; import { IPaneOptions, Pane, IPaneStyles } from "../../../../base/browser/ui/splitview/paneview.js"; import { IConfigurationService } from "../../../../platform/configuration/common/configuration.service.js"; import { IView, ViewContainerLocation } from "../../../common/views.js"; import { IViewDescriptorService } from "../../../common/views.service.js"; import { IContextKeyService } from "../../../../platform/contextkey/common/contextkey.service.js"; import { PartialExcept } from "../../../../base/common/types.js"; import { IInstantiationService, ServicesAccessor } from "../../../../platform/instantiation/common/instantiation.js"; import { MenuId, Action2, IAction2Options } from "../../../../platform/actions/common/actions.js"; import { IOpenerService } from "../../../../platform/opener/common/opener.service.js"; import { IProgressIndicator } from "../../../../platform/progress/common/progress.js"; import { IDropdownMenuActionViewItemOptions } from "../../../../base/browser/ui/dropdown/dropdownActionViewItem.js"; import { FilterWidget, IFilterWidgetOptions } from "./viewFilter.js"; import { IHoverService } from "../../../../platform/hover/browser/hover.service.js"; import { IListStyles } from "../../../../base/browser/ui/list/listWidget.js"; import { IAccessibleViewInformationService } from "../../../services/accessibility/common/accessibleViewInformationService.service.js"; import { ViewMenuActions } from "./viewMenuActions.js"; export declare enum ViewPaneShowActions { /** Show the actions when the view is hovered. This is the default behavior. */ Default = 0, /** Always shows the actions when the view is expanded */ WhenExpanded = 1, /** Always shows the actions */ Always = 2 } export interface IViewPaneOptions extends IPaneOptions { readonly id: string; readonly showActions?: ViewPaneShowActions; readonly titleMenuId?: MenuId; readonly donotForwardArgs?: boolean; readonly singleViewPaneContainerTitle?: string; } export interface IFilterViewPaneOptions extends IViewPaneOptions { filterOptions: IFilterWidgetOptions; } export declare const VIEWPANE_FILTER_ACTION: Action; export declare abstract class ViewPane extends Pane implements IView { protected keybindingService: IKeybindingService; protected contextMenuService: IContextMenuService; protected readonly configurationService: IConfigurationService; protected contextKeyService: IContextKeyService; protected viewDescriptorService: IViewDescriptorService; protected instantiationService: IInstantiationService; protected openerService: IOpenerService; protected themeService: IThemeService; protected readonly hoverService: IHoverService; protected readonly accessibleViewInformationService?: IAccessibleViewInformationService | undefined; private static readonly AlwaysShowActionsConfig; private _onDidFocus; readonly onDidFocus: Event; private _onDidBlur; readonly onDidBlur: Event; private _onDidChangeBodyVisibility; readonly onDidChangeBodyVisibility: Event; protected _onDidChangeTitleArea: Emitter; readonly onDidChangeTitleArea: Event; protected _onDidChangeViewWelcomeState: Emitter; readonly onDidChangeViewWelcomeState: Event; private _isVisible; readonly id: string; private _title; get title(): string; private _titleDescription; get titleDescription(): string | undefined; private _singleViewPaneContainerTitle; get singleViewPaneContainerTitle(): string | undefined; readonly menuActions: ViewMenuActions; private progressBar?; private progressIndicator?; private toolbar?; private readonly showActions; private headerContainer?; private titleContainer?; private titleContainerHover?; private titleDescriptionContainer?; private titleDescriptionContainerHover?; private iconContainer?; private iconContainerHover?; protected twistiesContainer?: HTMLElement; private viewWelcomeController?; private readonly headerActionViewItems; protected readonly scopedContextKeyService: IContextKeyService; constructor(options: IViewPaneOptions, keybindingService: IKeybindingService, contextMenuService: IContextMenuService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, viewDescriptorService: IViewDescriptorService, instantiationService: IInstantiationService, openerService: IOpenerService, themeService: IThemeService, hoverService: IHoverService, accessibleViewInformationService?: IAccessibleViewInformationService | undefined); get headerVisible(): boolean; set headerVisible(visible: boolean); setVisible(visible: boolean): void; isVisible(): boolean; isBodyVisible(): boolean; setExpanded(expanded: boolean): boolean; render(): void; protected renderHeader(container: HTMLElement): void; protected updateHeader(): void; private updateTwistyIcon; protected getTwistyIcon(expanded: boolean): ThemeIcon; style(styles: IPaneStyles): void; private getIcon; protected renderHeaderTitle(container: HTMLElement, title: string): void; private _getAriaLabel; protected updateTitle(title: string): void; private updateAriaHeaderLabel; private setTitleDescription; protected updateTitleDescription(description?: string | undefined): void; private calculateTitle; protected renderBody(container: HTMLElement): void; protected layoutBody(height: number, width: number): void; onDidScrollRoot(): void; getProgressIndicator(): IProgressIndicator; protected getProgressLocation(): string; protected getLocationBasedColors(): IViewPaneLocationColors; focus(): void; private setActions; private updateActionsVisibility; protected updateActions(): void; createActionViewItem(action: IAction, options?: IDropdownMenuActionViewItemOptions): IActionViewItem | undefined; getActionsContext(): unknown; getActionRunner(): IActionRunner | undefined; getOptimalWidth(): number; saveState(): void; shouldShowWelcome(): boolean; getFilterWidget(): FilterWidget | undefined; shouldShowFilterInHeader(): boolean; } export declare abstract class FilterViewPane extends ViewPane { readonly filterWidget: FilterWidget; private dimension; protected filterContainer: HTMLElement | undefined; constructor(options: IFilterViewPaneOptions, keybindingService: IKeybindingService, contextMenuService: IContextMenuService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, viewDescriptorService: IViewDescriptorService, instantiationService: IInstantiationService, openerService: IOpenerService, themeService: IThemeService, hoverService: IHoverService, accessibleViewService?: IAccessibleViewInformationService); getFilterWidget(): FilterWidget; protected renderBody(container: HTMLElement): void; protected layoutBody(height: number, width: number): void; shouldShowFilterInHeader(): boolean; protected abstract layoutBodyContent(height: number, width: number): void; protected focusBodyContent(): void; } export interface IViewPaneLocationColors { background: string; overlayBackground: string; listOverrideStyles: PartialExcept; } export declare function getLocationBasedViewColors(location: ViewContainerLocation | null): IViewPaneLocationColors; export declare abstract class ViewAction extends Action2 { readonly desc: Readonly & { viewId: string; }; constructor(desc: Readonly & { viewId: string; }); run(accessor: ServicesAccessor, ...args: unknown[]): unknown; abstract runInView(accessor: ServicesAccessor, view: T, ...args: unknown[]): unknown; }