# API Docs
TIP
Read type definition file (opens new window) for the full interface information.
All complex properties such as ColumnRegular
, ColumnProp
, ColumnDataSchemaModel
, etc. can be found there.
WARNING
For version 2 check Readme 2.0 (opens new window)
# Properties
Property | Attribute | Description | Type | Default |
---|---|---|---|---|
autoSizeColumn | auto-size-column | Autosize config Enable columns autoSize, for more details check @autoSizeColumn plugin By default disabled, hence operation is not resource efficient true to enable with default params (double header separator click for autosize) or provide config | boolean \| { mode?: ColumnAutoSizeMode; allColumns?: boolean; letterBlockSize?: number; preciseSize?: boolean; } | false |
canFocus | can-focus | When true cell focus appear. | boolean | true |
colSize | col-size | Indicates default column size. | number | 100 |
columnTypes | -- | Types Every type represent multiple column properties Types will be merged but can be replaced with column properties | { [name: string]: ColumnType; } | {} |
columns | -- | Columns - defines an array of grid columns. Can be column or grouped column. | (ColumnRegular \| ColumnGrouping)[] | [] |
editors | -- | Custom editors register | { [name: string]: EditorCtr; } | {} |
exporting | exporting | Enables export plugin Can be boolean Can be export options | boolean | false |
filter | filter | Enables filter plugin Can be boolean Can be filter collection | boolean \| { collection?: Record<ColumnProp, FilterCollectionItem>; include?: string[]; customFilters?: Record<string, CustomFilter>; } | false |
frameSize | frame-size | Defines how many rows/columns should be rendered outside visible area. | number | 1 |
grouping | -- | Group models by provided properties Define properties to be groped by | { props?: ColumnProp[]; expandedAll?: boolean; } | undefined |
pinnedBottomSource | -- | Pinned bottom Source: {[T in ColumnProp]: any} - defines pinned bottom rows data source. | DataType[] | [] |
pinnedTopSource | -- | Pinned top Source: {[T in ColumnProp]: any} - defines pinned top rows data source. | DataType[] | [] |
plugins | -- | Custom grid plugins Has to be predefined during first grid init Every plugin should be inherited from BasePlugin | (typeof Plugin)[] | undefined |
range | range | When true, user can range selection. | boolean | false |
readonly | readonly | When true, grid in read only mode. | boolean | false |
resize | resize | When true, columns are resizable. | boolean | false |
rowClass | row-class | Row class property Define this property in rgRow object and this will be mapped as rgRow class | string | '' |
rowDefinitions | -- | Row properies applied | RowDefinition[] | [] |
rowHeaders | row-headers | Excel like show rgRow indexe per rgRow | RowHeaders \| boolean | undefined |
rowSize | row-size | Indicates default rgRow size. By default 0, means theme package size will be applied | number | 0 |
source | -- | Source - defines main data source. Can be an Object or 2 dimensional array([][]); Keys/indexes referenced from columns Prop | DataType[] | [] |
stretch | stretch | Defines stretch strategy for columns with @StretchColumn plugin if there are more space on the right last column size would be increased | boolean \| string | true |
theme | theme | Theme name | "compact" \| "darkCompact" \| "darkMaterial" \| "default" \| "material" | 'default' |
trimmedRows | -- | Trimmed rows Functionality which allows to hide rows from main data set | { [x: number]: boolean; } | {} |
useClipboard | use-clipboard | When true enable clipboard. | boolean | true |
# Events
Event | Description | Type |
---|---|---|
aftercolumnresize | After column resize Get resized columns | CustomEvent<{ [x: string]: ColumnRegular; [x: number]: ColumnRegular; }> |
aftercolumnsset | Column updated | CustomEvent<{ columns: ColumnCollection; order: Record<ColumnProp, "desc" \| "asc">; }> |
afteredit | After edit. Triggered when after data applied or Range changeged. | CustomEvent<{ data: DataLookup; models: { [rowIndex: number]: DataType; }; type: DimensionRows; } \| { prop: ColumnProp; model: DataType; val?: string; rowIndex: number; type: DimensionRows; }> |
aftersourceset | After rows updated | CustomEvent<{ type: DimensionRows; source: DataType[]; }> |
aftertrimmed | Notify trimmed applied | CustomEvent<any> |
beforeaange | Before range apply. Triggered before range applied. Use e.preventDefault() to prevent range. | CustomEvent<{ type: DimensionRows; newRange: RangeArea; oldRange: RangeArea; newProps: ColumnProp[]; oldProps: ColumnProp[]; newData: { [key: number]: DataType; }; }> |
beforeautofill | Before autofill. Triggered before autofill applied. Use e.preventDefault() to prevent edit data apply. | CustomEvent<{ type: DimensionRows; newRange: RangeArea; oldRange: RangeArea; newProps: ColumnProp[]; oldProps: ColumnProp[]; newData: { [key: number]: DataType; }; }> |
beforecellfocus | Before cell focus changed. Use e.preventDefault() to prevent cell focus change. | CustomEvent<{ prop: ColumnProp; model: DataType; val?: string; rowIndex: number; type: DimensionRows; }> |
beforecolumnapplied | Before column applied but after column set gathered and viewport updated | CustomEvent<{ columns: Record<DimensionCols, ColumnRegular[]>; columnGrouping: Record<DimensionCols, Group[]>; maxLevel: number; sort: Record<ColumnProp, ColumnRegular>; }> |
beforecolumnsset | Before column update | CustomEvent<{ columns: Record<DimensionCols, ColumnRegular[]>; columnGrouping: Record<DimensionCols, Group[]>; maxLevel: number; sort: Record<ColumnProp, ColumnRegular>; }> |
beforeedit | Before edit event. Triggered before edit data applied. Use e.preventDefault() to prevent edit data set and use you own. Use e.val = {your value} to replace edit result with your own. | CustomEvent<{ prop: ColumnProp; model: DataType; val?: string; rowIndex: number; type: DimensionRows; }> |
beforeeditstart | Before edit started Use e.preventDefault() to prevent edit | CustomEvent<{ prop: ColumnProp; model: DataType; val?: string; rowIndex: number; type: DimensionRows; }> |
beforeexport | Before export Use e.preventDefault() to prevent export Replace data in Event in case you want to modify it in export | CustomEvent<{ data: DataType[]; } & ColSource> |
beforefilterapply | Before filter applied to data source Use e.preventDefault() to prevent cell focus change Update @collection if you wish to change filters | CustomEvent<{ collection: Record<ColumnProp, FilterCollectionItem>; }> |
beforefiltertrimmed | Before filter trimmed values Use e.preventDefault() to prevent value trimming and filter apply Update @collection if you wish to change filters Update @itemsToFilter if you wish to filter indexes of trimming | CustomEvent<{ collection: Record<ColumnProp, FilterCollectionItem>; itemsToFilter: Record<number, boolean>; }> |
beforefocuslost | Before grid focus lost happened. Use e.preventDefault() to prevent cell focus change. | CustomEvent<{ model: any; cell: Cell; colType: DimensionCols; rowType: DimensionRows; column?: ColumnRegular; }> |
beforerangeedit | Before range edit event. Triggered before range data applied, when range selection happened. Use e.preventDefault() to prevent edit data set and use you own. | CustomEvent<{ data: DataLookup; models: { [rowIndex: number]: DataType; }; type: DimensionRows; }> |
beforesorting | Before sorting event. Initial sorting triggered, if this event stops no other event called. Use e.preventDefault() to prevent sorting. | CustomEvent<{ column: ColumnRegular; order: "desc" \| "asc"; }> |
beforesortingapply | Before sorting apply. Use e.preventDefault() to prevent sorting data change. | CustomEvent<{ column: ColumnRegular; order: "desc" \| "asc"; }> |
beforesourceset | Before data apply. You can override data source here | CustomEvent<{ type: DimensionRows; source: DataType[]; }> |
beforesourcesortingapply | Before source update sorting apply. Use this event if you intended to prevent sorting on data update. Use e.preventDefault() to prevent sorting data change during rows source update. | CustomEvent<any> |
beforetrimmed | Before trimmed values Use e.preventDefault() to prevent value trimming Update @trimmed if you wish to filter indexes of trimming | CustomEvent<{ trimmed: Record<number, boolean>; trimmedType: string; type: string; }> |
headerclick | On header click. | CustomEvent<ColumnRegular> |
rowdragstart | Row order change started. Use e.preventDefault() to prevent rgRow order change. Use e.text = 'new name' to change item name on start. | CustomEvent<{ pos: PositionItem; text: string; }> |
roworderchanged | Before rgRow order apply. Use e.preventDefault() to prevent rgRow order change. | CustomEvent<{ from: number; to: number; }> |
viewportscroll | Triggered when view port scrolled | CustomEvent<{ dimension: DimensionType; coordinate: number; delta?: number; }> |
# Methods
# addTrimmed(trimmed: Record<number, boolean>, trimmedType?: string, type?: RevoGrid.DimensionRows) => Promise<CustomEvent<{ trimmed: Record<number, boolean>; trimmedType: string; type: string; }>>
Add trimmed by type
# Returns
Type: Promise<CustomEvent<{ trimmed: Record<number, boolean>; trimmedType: string; type: string; }>>
# clearFocus() => Promise<void>
Clear current grid focus
# Returns
Type: Promise<void>
# getColumnStore(type?: RevoGrid.DimensionCols) => Promise<ColumnSource>
Provides access to column internal store observer Can be used for plugin support
# Returns
Type: Promise<Observable<DataSourceState<ColumnRegular, DimensionCols>>>
# getColumns() => Promise<RevoGrid.ColumnRegular[]>
Receive all columns in data source
# Returns
Type: Promise<ColumnRegular[]>
# getFocused() => Promise<FocusedData | null>
Get all active plugins instances
# Returns
Type: Promise<FocusedData>
# getPlugins() => Promise<RevoPlugin.Plugin[]>
Get all active plugins instances
# Returns
Type: Promise<Plugin[]>
# getSource(type?: RevoGrid.DimensionRows) => Promise<RevoGrid.DataType[]>
Get data from source
# Returns
Type: Promise<DataType[]>
# getSourceStore(type?: RevoGrid.DimensionRows) => Promise<RowSource>
Provides access to rows internal store observer Can be used for plugin support
# Returns
Type: Promise<Observable<DataSourceState<DataType, DimensionRows>>>
# getVisibleSource(type?: RevoGrid.DimensionRows) => Promise<any[]>
Get data from visible part of source Trimmed/filtered rows will be excluded
# Returns
Type: Promise<any[]>
# refresh(type?: RevoGrid.DimensionRows | 'all') => Promise<void>
Refreshes data viewport. Can be specific part as rgRow or pinned rgRow or 'all' by default.
# Returns
Type: Promise<void>
# registerVNode(elements: VNode[]) => Promise<void>
Register new virtual node inside of grid Used for additional items creation such as plugin elements
# Returns
Type: Promise<void>
# scrollToColumnIndex(coordinate?: number) => Promise<void>
Scrolls view port to specified column index
# Returns
Type: Promise<void>
# scrollToColumnProp(prop: RevoGrid.ColumnProp) => Promise<void>
Scrolls view port to specified column prop
# Returns
Type: Promise<void>
# scrollToCoordinate(cell: Partial<Selection.Cell>) => Promise<void>
Scrolls view port to coordinate
# Returns
Type: Promise<void>
# scrollToRow(coordinate?: number) => Promise<void>
Scrolls view port to specified rgRow index
# Returns
Type: Promise<void>
# setCellEdit(rgRow: number, prop: RevoGrid.ColumnProp, rowSource?: RevoGrid.DimensionRows) => Promise<void>
Bring cell to edit mode
# Returns
Type: Promise<void>
# updateColumnSorting(column: RevoGrid.ColumnRegular, index: number, order: 'asc' | 'desc') => Promise<RevoGrid.ColumnRegular>
Update column sorting
# Returns
Type: Promise<ColumnRegular>
# updateColumns(cols: RevoGrid.ColumnRegular[]) => Promise<void>
Update columns
# Returns
Type: Promise<void>