ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50 lines (49 loc) • 2.69 kB
TypeScript
import type { IComponent } from 'ag-stack';
import type { Column, ProvidedColumnGroup } from './iColumn';
import type { AgGridCommon } from './iCommon';
export type ColumnSelectionPanelSource = 'columnsToolPanel' | 'columnChooser';
export interface IColumnSelectionPanelParams {
/** To suppress updating the layout of columns as they are rearranged in the grid. */
suppressSyncLayoutWithGrid?: boolean;
/** To suppress the column search. */
suppressColumnFilter?: boolean;
/** To suppress the Select / Unselect All widget. */
suppressColumnSelectAll?: boolean;
/** To suppress the Expand / Collapse All widget. */
suppressColumnExpandAll?: boolean;
/** By default, column groups start expanded. Pass `true` to start with groups collapsed. */
contractColumnSelection?: boolean;
/**
* Component used to render column and column group labels. The checkbox, drag handle and expand controls
* remain grid managed.
*/
columnLabelRenderer?: any;
/** Additional parameters passed to the `columnLabelRenderer`. */
columnLabelRendererParams?: any;
/** Callback to select which renderer to use for an individual column or column group label. */
columnLabelRendererSelector?: ColumnSelectionLabelRendererSelectorFunc;
}
export interface IColumnSelectionLabelRendererParams<TData = any, TContext = any> extends AgGridCommon<TData, TContext> {
/** The text value resolved from the column or column group definition. */
displayName: string | null;
/** The column being rendered, or `null` when rendering a column group. */
column: Column | null;
/** The column group being rendered, or `null` when rendering a column. */
columnGroup: ProvidedColumnGroup | null;
/** The panel in which the label is rendered. */
source: ColumnSelectionPanelSource;
}
export interface IColumnSelectionLabelRenderer {
/** Return `true` when the renderer was refreshed, or `false` to recreate it. */
refresh?(params: IColumnSelectionLabelRendererParams): boolean;
}
export interface IColumnSelectionLabelRendererComp extends IComponent<IColumnSelectionLabelRendererParams>, IColumnSelectionLabelRenderer {
}
export type ColumnSelectionLabelRendererFunc = (params: IColumnSelectionLabelRendererParams) => HTMLElement | string;
export type ColumnSelectionLabelRendererSelectorFunc = (params: IColumnSelectionLabelRendererParams) => ColumnSelectionLabelRendererSelectorResult | undefined;
export interface ColumnSelectionLabelRendererSelectorResult {
/** Equivalent to setting `columnLabelRenderer`. */
component?: any;
/** Equivalent to setting `columnLabelRendererParams`. */
params?: any;
}