@swimlane/ngx-datatable
Version:
ngx-datatable is an Angular table grid component for presenting large and complex data.
191 lines (190 loc) • 4.03 kB
TypeScript
import { PipeTransform } from '@angular/core';
import { ValueGetter } from '../utils/column-prop-getters';
/**
* Column property that indicates how to retrieve this column's
* value from a row.
* 'a.deep.value', 'normalprop', 0 (numeric)
*/
export declare type TableColumnProp = string | number;
/**
* Column Type
*/
export interface TableColumn {
/**
* Internal unique id
*
* @memberOf TableColumn
*/
$$id?: string;
/**
* Internal for column width distributions
*
* @memberOf TableColumn
*/
$$oldWidth?: number;
/**
* Internal for setColumnDefaults
*
* @memberOf TableColumn
*/
$$valueGetter?: ValueGetter;
/**
* Determines if column is checkbox
*
* @memberOf TableColumn
*/
checkboxable?: boolean;
/**
* Determines if the column is frozen to the left
*
* @memberOf TableColumn
*/
frozenLeft?: boolean;
/**
* Determines if the column is frozen to the right
*
* @memberOf TableColumn
*/
frozenRight?: boolean;
/**
* The grow factor relative to other columns. Same as the flex-grow
* API from http =//www.w3.org/TR/css3-flexbox/. Basically;
* take any available extra width and distribute it proportionally
* according to all columns' flexGrow values.
*
* @memberOf TableColumn
*/
flexGrow?: number;
/**
* Min width of the column
*
* @memberOf TableColumn
*/
minWidth?: number;
/**
* Max width of the column
*
* @memberOf TableColumn
*/
maxWidth?: number;
/**
* The default width of the column, in pixels
*
* @memberOf TableColumn
*/
width?: number;
/**
* Can the column be resized
*
* @memberOf TableColumn
*/
resizeable?: boolean;
/**
* Custom sort comparator
*
* @memberOf TableColumn
*/
comparator?: any;
/**
* Custom pipe transforms
*
* @memberOf TableColumn
*/
pipe?: PipeTransform;
/**
* Can the column be sorted
*
* @memberOf TableColumn
*/
sortable?: boolean;
/**
* Can the column be re-arranged by dragging
*
* @memberOf TableColumn
*/
draggable?: boolean;
/**
* Whether the column can automatically resize to fill space in the table.
*
* @memberOf TableColumn
*/
canAutoResize?: boolean;
/**
* Column name or label
*
* @memberOf TableColumn
*/
name?: string;
/**
* Property to bind to the row. Example:
*
* `someField` or `some.field.nested`, 0 (numeric)
*
* If left blank, will use the name as camel case conversion
*
* @memberOf TableColumn
*/
prop?: TableColumnProp;
/**
* Cell template ref
*
* @memberOf TableColumn
*/
cellTemplate?: any;
/**
* Header template ref
*
* @memberOf TableColumn
*/
headerTemplate?: any;
/**
* Tree toggle template ref
*
* @memberOf TableColumn
*/
treeToggleTemplate?: any;
/**
* CSS Classes for the cell
*
*
* @memberOf TableColumn
*/
cellClass?: string | ((data: any) => string | any);
/**
* CSS classes for the header
*
*
* @memberOf TableColumn
*/
headerClass?: string | ((data: any) => string | any);
/**
* Header checkbox enabled
*
* @memberOf TableColumn
*/
headerCheckboxable?: boolean;
/**
* Is tree displayed on this column
*
* @memberOf TableColumn
*/
isTreeColumn?: boolean;
/**
* Width of the tree level indent
*
* @memberOf TableColumn
*/
treeLevelIndent?: number;
/**
* Summary function
*
* @memberOf TableColumn
*/
summaryFunc?: (cells: any[]) => any;
/**
* Summary cell template ref
*
* @memberOf TableColumn
*/
summaryTemplate?: any;
}