UNPKG

ag-grid-community

Version:

Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue

50 lines (49 loc) 2.69 kB
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; }