import { type IDashboardCommand } from "./base.js"; /** * What triggered a {@link ISwitchDashboardTab} command. * * Open-ended set of values that may grow over time; treat unknown values defensively. When * omitted, the switch is a regular user-initiated tab switch. * * - `"drillToSelf"` - the switch is part of a drill to the same dashboard targeting a different * tab. The drill owns the target tab's filter context, so consumers that restore per-tab filter * state on switches (e.g. "Auto-save last state") should skip their restore for it. * * @alpha */ export type DashboardTabSwitchSource = "drillToSelf"; /** * Payload of the {@link ISwitchDashboardTab} command. * @alpha */ export interface ISwitchDashboardTabPayload { /** * Identifier of the tab to switch to. */ readonly tabId: string; /** * What triggered this tab switch. * * @remarks * Omit for a regular user-initiated tab switch. See {@link DashboardTabSwitchSource} for the * recognized values and their effect. */ readonly source?: DashboardTabSwitchSource; } /** * Command to switch to a different dashboard tab. * * @remarks * This command will: * - Save the current layout and filter context to the currently active tab * - Switch to the specified tab * - Load the new tab's layout and filter context into the main dashboard state * * @alpha */ export interface ISwitchDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.SWITCH"; readonly payload: ISwitchDashboardTabPayload; } /** * Creates the SwitchDashboardTab command. * * @param tabId - identifier of the tab to switch to * @param correlationId - specify correlation id to use for this command * @param source - what triggered the switch; omit for a regular user-initiated tab switch. * See {@link DashboardTabSwitchSource}. * @returns switch dashboard tab command * * @alpha */ export declare function switchDashboardTab(tabId: string, correlationId?: string, source?: DashboardTabSwitchSource): ISwitchDashboardTab; /** * Command to reposition a dashboard tab. * * @remarks * This command will: * - Reorder the tabs in the dashboard to reflect the new position of the tab * * @alpha */ export interface IRepositionDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.REPOSITION"; readonly payload: IRepositionDashboardTabPayload; } /** * Payload of the {@link IRepositionDashboardTab} command. * @alpha */ export interface IRepositionDashboardTabPayload { /** * Old index of the tab before the reposition. */ readonly oldIndex: number; /** * New index of the tab after the reposition. */ readonly newIndex: number; } /** * Creates the RepositionDashboardTab command. * * @param oldIndex - old index of the tab before the reposition * @param newIndex - new index of the tab after the reposition * @param correlationId - specify correlation id to use for this command * @returns reposition dashboard tab command * * @alpha */ export declare function repositionDashboardTab(oldIndex: number, newIndex: number, correlationId?: string): IRepositionDashboardTab; /** * Payload of the {@link ICreateDashboardTab} command. * @alpha */ export interface ICreateDashboardTabPayload { /** * Optional title for the new tab. If not provided, empty title will be used. */ readonly title?: string; /** * Optional index at which the new tab should be inserted. Defaults to the end of the list. */ readonly index?: number; /** * Optional flag to indicate whether the new tab should be started in renaming mode. */ readonly shouldStartRenaming?: boolean; } /** * Command to create a new dashboard tab. * * @remarks * This command will: * - Persist current main dashboard state (layout, filters, configs) into the currently active tab (if any) * - Create a new tab duplicating current main dashboard state * - Insert the tab at requested index (or append) and make it active * * @alpha */ export interface ICreateDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.CREATE"; readonly payload: ICreateDashboardTabPayload; } /** * Creates the CreateDashboardTab command. * * @param title - optional title for the new tab * @param index - optional position to insert tab (defaults to end) * @param shouldStartRenaming - optional flag to indicate whether the new tab should be started in renaming mode * @param correlationId - specify correlation id to use for this command * @returns create dashboard tab command * * @alpha */ export declare function createDashboardTab(title?: string, index?: number, shouldStartRenaming?: boolean, correlationId?: string): ICreateDashboardTab; /** * Payload of the {@link IDeleteDashboardTab} command. * @alpha */ export interface IDeleteDashboardTabPayload { /** * Identifier of the tab to delete. */ readonly tabId: string; } /** * Command to delete a dashboard tab. * * @remarks * This command will: * - Remove the tab with the given identifier * - If the deleted tab is currently active, switch to the next available tab (or previous if next does not exist) * - If no tabs remain, clear the active tab * * @alpha */ export interface IDeleteDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.DELETE"; readonly payload: IDeleteDashboardTabPayload; } /** * Creates the DeleteDashboardTab command. * * @param tabId - identifier of the tab to delete * @param correlationId - specify correlation id to use for this command * @returns delete dashboard tab command * * @alpha */ export declare function deleteDashboardTab(tabId: string, correlationId?: string): IDeleteDashboardTab; /** * Payload of the {@link IStartRenamingDashboardTab} command. * @alpha */ export interface IStartRenamingDashboardTabPayload { /** * Optional identifier of the tab to start renaming. If not provided, the active tab is used. */ readonly tabId?: string; /** * Optional flag to indicate whether the tab should be auto-selected before starting renaming. * Defaults to true. */ readonly shouldSelectTab?: boolean; } /** * Command to start renaming mode for a tab. * @alpha */ export interface IStartRenamingDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.RENAME_MODE.START"; readonly payload: IStartRenamingDashboardTabPayload; } /** * Creates the StartRenamingDashboardTab command. * @alpha */ export declare function startRenamingDashboardTab(tabId?: string, correlationId?: string, shouldSelectTab?: boolean): IStartRenamingDashboardTab; /** * Payload of the {@link ICancelRenamingDashboardTab} command. * @alpha */ export interface ICancelRenamingDashboardTabPayload { /** * Optional identifier of the tab to cancel renaming. If not provided, the active tab is used. */ readonly tabId?: string; } /** * Command to cancel renaming mode for a tab. * @alpha */ export interface ICancelRenamingDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.RENAME_MODE.CANCEL"; readonly payload: ICancelRenamingDashboardTabPayload; } /** * Creates the CancelRenamingDashboardTab command. * @alpha */ export declare function cancelRenamingDashboardTab(tabId?: string, correlationId?: string): ICancelRenamingDashboardTab; /** * Payload of the {@link IRenameDashboardTab} command. * @alpha */ export interface IRenameDashboardTabPayload { /** * New title for the tab. */ readonly title: string; /** * Optional identifier of the tab to rename. If not provided, the active tab is used. */ readonly tabId?: string; } /** * Command to rename a dashboard tab. * @alpha */ export interface IRenameDashboardTab extends IDashboardCommand { readonly type: "GDC.DASH/CMD.TAB.RENAME"; readonly payload: IRenameDashboardTabPayload; } /** * Creates the RenameDashboardTab command. * @alpha */ export declare function renameDashboardTab(title: string, tabId?: string, correlationId?: string): IRenameDashboardTab; //# sourceMappingURL=tabs.d.ts.map