ag-grid-row-unselectable-angular
Version:
A fork version of ag-grid-angular with row selection disable function added
148 lines (138 loc) • 6.05 kB
text/typescript
import {Component, Input, ContentChildren, QueryList} from "@angular/core";
import {
ColDef,
TextAndNumberFilterParameters,
ICellEditor,
ICellRendererFunc,
ICellRenderer,
IFilter,
RowNode,
IsColumnFunc,
IAggFunc,
ColGroupDef,
GetQuickFilterTextParams,
ISetFilterParams
} from "ag-grid-row-unselectable/main";
export class AgGridColumn {
public childColumns: QueryList<AgGridColumn>;
public hasChildColumns(): boolean {
if (this.childColumns && this.childColumns.length > 0) {
// necessary because of https://github.com/angular/angular/issues/10098
return !(this.childColumns.length === 1 && this.childColumns.first === this);
}
return false;
}
public toColDef(): ColDef {
let colDef: ColDef = this.createColDefFromGridColumn(this);
if (this.hasChildColumns()) {
(<any>colDef)["children"] = this.getChildColDefs(this.childColumns);
}
return colDef;
}
private getChildColDefs(childColumns: QueryList<AgGridColumn>) {
return childColumns
// necessary because of https://github.com/angular/angular/issues/10098
.filter(column => !column.hasChildColumns())
.map((column: AgGridColumn) => {
return column.toColDef();
});
};
private createColDefFromGridColumn(from: AgGridColumn): ColDef {
let colDef: ColDef = {};
Object.assign(colDef, from);
delete (<any>colDef).childColumns;
return colDef;
};
// inputs - pretty much most of ColDef, with the exception of template, templateUrl and internal only properties
public headerName: string;
public columnGroupShow: string;
public headerClass: string | string[] | ((params: any) => string | string[]);
public toolPanelClass: string | string[] | ((params: any) => string | string[]);
public headerValueGetter: string | Function;
public pivotKeys: string[];
public suppressToolPanel: boolean;
public children: (ColDef | ColGroupDef)[];
public groupId: string;
public openByDefault: boolean;
public marryChildren: boolean;
public colId: string;
public sort: string;
public sortedAt: number;
public sortingOrder: string[];
public field: string;
public hide: boolean;
public pinned: boolean | string;
public tooltipField: string;
public headerTooltip: string;
public valueGetter: string | Function;
public keyCreator: Function;
public headerCellRenderer: Function | Object;
public headerCellTemplate: ((params: any) => string | HTMLElement) | string | HTMLElement;
public width: number;
public minWidth: number;
public maxWidth: number;
public cellClass: string | string[] | ((cellClassParams: any) => string | string[]);
public cellStyle: {} | ((params: any) => {});
public cellRenderer: {
new (): ICellRenderer;
} | ICellRendererFunc | string;
public cellRendererFramework: any;
public cellRendererParams: {};
public cellEditor: {
new (): ICellEditor;
} | string;
public cellEditorFramework: any;
public cellEditorParams: {};
public floatingCellRenderer: {
new (): ICellRenderer;
} | ICellRendererFunc | string;
public floatingCellRendererFramework: any;
public floatingCellRendererParams: {};
public cellFormatter: (params: any) => string;
public floatingCellFormatter: (params: any) => string;
public aggFunc: string | IAggFunc;
public rowGroupIndex: number;
public pivotIndex: number;
public comparator: (valueA: any, valueB: any, nodeA: RowNode, nodeB: RowNode, isInverted: boolean) => number;
public checkboxSelection: boolean | (Function);
public suppressMenu: boolean;
public suppressSorting: boolean;
public suppressMovable: boolean;
public suppressFilter: boolean;
public unSortIcon: boolean;
public suppressSizeToFit: boolean;
public suppressResize: boolean;
public suppressAutoSize: boolean;
public enableRowGroup: boolean;
public enablePivot: boolean;
public enableValue: boolean;
public editable: boolean | IsColumnFunc;
public getQuickFilterText: (params: GetQuickFilterTextParams) => string;
public suppressNavigable: boolean | IsColumnFunc;
public newValueHandler: Function;
public volatile: boolean;
public filter: string | {
new (): IFilter;
};
public filterFramework: any;
public filterParams: ISetFilterParams | TextAndNumberFilterParameters;
public cellClassRules: {
[cssClassName: string]: (Function | string);
};
public onCellValueChanged: Function;
public onCellClicked: Function;
public onCellDoubleClicked: Function;
public onCellContextMenu: Function;
public icons: {
[key: string]: string;
};
public enableCellChangeFlash: boolean;
public headerGroupComponentFramework: {new ():any}
public headerGroupComponentParams: any;
public headerComponentFramework: {new ():any}
public headerComponentParams: any;
}