@bi8/am-data-table
Version:
ng update @angular/cli --migrate-only --from=1.7.4 ng update @angular/core yarn add ng-packagr yarn add @angular/material yarn add core-js yarn add @angular/flex-layout yarn add lodash yarn add material-design-icons yarn add roboto-fontface yarn
306 lines (305 loc) • 10.6 kB
TypeScript
import { AfterContentChecked, AfterContentInit, AfterViewInit, ChangeDetectorRef, ComponentFactoryResolver, ElementRef, EventEmitter, InjectionToken, IterableChanges, IterableDiffers, OnChanges, OnDestroy, OnInit, QueryList, Renderer2, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { Subscription } from 'rxjs/Subscription';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
export interface GridDateFormat {
format: string;
}
export declare const AM_GRID_DATE_FORMAT: InjectionToken<GridDateFormat>;
export declare const AM_GRID_DATE_DEFAULT: GridDateFormat;
export declare class HeaderRowOutlet {
viewContainer: ViewContainerRef;
constructor(viewContainer: ViewContainerRef);
}
export declare class DataRowOutlet {
viewContainer: ViewContainerRef;
constructor(viewContainer: ViewContainerRef);
}
export declare class RowOutlet {
viewContainer: ViewContainerRef;
constructor(viewContainer: ViewContainerRef);
}
export declare class ExpanderOutlet {
viewContainer: ViewContainerRef;
constructor(viewContainer: ViewContainerRef);
}
export declare class CellOutlet {
viewContainer: ViewContainerRef;
constructor(viewContainer: ViewContainerRef);
}
export declare class HeaderRowDef {
templateRef: TemplateRef<any>;
viewContainer: ViewContainerRef;
model: GridModel;
constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
}
export declare class HeaderCellDef {
templateRef: TemplateRef<any>;
viewContainer: ViewContainerRef;
column: GridColumn;
constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
}
export declare class HeaderCell implements OnInit, OnDestroy, AfterContentInit, OnChanges {
protected componentFactoryResolver: ComponentFactoryResolver;
protected elementRef: ElementRef;
protected renderer: Renderer2;
column: GridColumn;
_cellOutlet: CellOutlet;
constructor(componentFactoryResolver: ComponentFactoryResolver, elementRef: ElementRef, renderer: Renderer2);
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
ngAfterContentInit(): void;
renderCell(): void;
}
export declare class HeaderRow implements AfterContentInit {
protected _changeDetectorRef: ChangeDetectorRef;
events$: EventEmitter<GridEvent>;
_rowOutlet: RowOutlet;
_headerCellDef: HeaderCellDef;
headerCells: QueryList<HeaderCell>;
model: GridModel;
constructor(_changeDetectorRef: ChangeDetectorRef);
ngAfterContentInit(): void;
renderHeaderCell(column: GridColumn, index?: number): void;
clearCells(): void;
/**
* Iterate the changes and apply add/remove/insert operations to the collection of header cells (columns)
* @todo - can still do the TODO one for moving a column (look at material2 data table sort for an example
*
*/
applyColumnChanges(changes: IterableChanges<GridColumn>): void;
}
export interface RowContext {
data: any;
model: GridModel;
index?: number;
count?: number;
first?: boolean;
last?: boolean;
even?: boolean;
odd?: boolean;
expanded?: boolean;
selected?: boolean;
}
export declare class DataRowDef {
templateRef: TemplateRef<any>;
viewContainer: ViewContainerRef;
constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
}
export declare class DataCellDef {
templateRef: TemplateRef<any>;
viewContainer: ViewContainerRef;
constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
}
export declare class DataCell implements OnInit, AfterContentInit {
protected componentFactoryResolver: ComponentFactoryResolver;
protected elementRef: ElementRef;
protected renderer: Renderer2;
column: GridColumn;
row: RowContext;
_cellOutlet: CellOutlet;
constructor(componentFactoryResolver: ComponentFactoryResolver, elementRef: ElementRef, renderer: Renderer2);
ngOnInit(): void;
ngAfterContentInit(): void;
renderCell(): void;
}
export interface DataRowStyleResolver {
(row: RowContext): string[];
}
export interface DataCellStyleResolver {
(row: RowContext, column: GridColumn): string[];
}
export declare class DataRow implements AfterContentInit {
protected _changeDetectorRef: ChangeDetectorRef;
events$: EventEmitter<GridEvent>;
_rowOutlet: RowOutlet;
_dataCellDef: DataCellDef;
dataCells: QueryList<DataCell>;
_expanderOutlet: ExpanderOutlet;
selected: boolean;
row: RowContext;
expanderIcon: string;
constructor(_changeDetectorRef: ChangeDetectorRef);
rowClicked(event: any): void;
selectRow(): void;
deselectRow(): void;
isSelected(): boolean;
rowClass(): string[];
cellClass(column: GridColumn): string[];
ngAfterContentInit(): void;
renderDataCell(column: GridColumn, index?: number): void;
/**
* Iterate the changes and apply add/remove/insert operations to the collection of header cells (columns)
* @todo - can still do the TODO one for moving a column (look at material2 data table sort for an example
*
*/
applyColumnChanges(changes: IterableChanges<GridColumn>): void;
toggleExpander(): void;
}
export declare class GridComponent<T> implements OnInit, AfterViewInit, OnDestroy, AfterContentInit, AfterContentChecked, OnChanges, CollectionViewer {
protected _differs: IterableDiffers;
protected _changeDetectorRef: ChangeDetectorRef;
events$: EventEmitter<GridEvent>;
data: any[];
model: GridModel;
private _dataSource;
private onDestroy;
private dataSubscription;
dataSource: DataSource<T>;
_headerRowOutlet: HeaderRowOutlet;
_headerRowDef: HeaderRowDef;
headerRowTemplate: TemplateRef<any>;
headerRow: HeaderRow;
_dataRowOutlet: DataRowOutlet;
_dataRowDef: DataRowDef;
dataRows: QueryList<DataRow>;
private columnsDiffer;
private dataDiffer;
modelSubscription: Subscription;
viewChange: BehaviorSubject<{
start: number;
end: number;
}>;
gridDefaults: GridDefaults;
constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef);
toggleRowExpander(index: number): void;
emit(event: GridEvent): void;
ngOnInit(): void;
ngAfterContentInit(): void;
ngAfterContentChecked(): void;
ngAfterViewInit(): void;
ngAfterViewChecked(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
setupHeader(): void;
gridModelChanged(event?: GridModelEvent): void;
dataSourceDataChanged(): void;
private switchDataSource;
private observeModel;
private observeDataSource;
}
export declare enum GridEventType {
RowExpanded = 0,
RowContracted = 1,
RowRemoved = 2,
RowAdded = 3,
Reloaded = 4,
ColumnRemoved = 5,
ColumnAdded = 6,
DataChange = 7,
Initialized = 8,
RowClicked = 9,
RowSelected = 10,
RowDeselected = 11
}
export interface GridEvent {
type: GridEventType;
data?: any;
}
export interface GridModelConfig {
selection?: boolean;
showExpander?: boolean;
expanderFormatter?: Type<GridExpanderFormatter>;
expanderTemplate?: TemplateRef<any>;
expandRowIndex?: number;
}
export interface GridModelStyles {
containerClasses?: string[];
gridClasses?: string[];
scrollX?: boolean;
minColumnWidth?: string;
dataRowStyleResolver?: DataRowStyleResolver;
}
export declare enum GridModelEventType {
ADD = 0,
REMOVE = 1,
UPDATE = 2
}
export interface GridModelEvent {
type: GridModelEventType;
column?: GridColumn;
columns: GridColumn[];
}
export declare class GridModel {
config: GridModelConfig;
styles: GridModelStyles;
columns: GridColumn[];
_changes: Subject<GridModelEvent>;
grid: GridComponent<any>;
constructor(config: GridModelConfig, styles?: GridModelStyles);
toggleExpander(index: number): void;
addColumn(column: GridColumn): void;
getColumnByKey(key: string): GridColumn;
insertColumn(column: GridColumn, index: number): void;
removeColumn(column: GridColumn): void;
removeColumnByIndex(index: number): void;
removeColumnsByKey(key: string): void;
updateStyles(): void;
updateColumn(column: GridColumn): void;
removeAll(): void;
notifyChanges(type: GridModelEventType, column?: GridColumn): void;
}
export interface GridColumnConfig {
key: string;
type?: string;
heading?: string;
sortable?: boolean;
noHeading?: boolean;
headingFormatter?: Type<GridHeaderFormatter>;
formatter?: Type<GridDataFormatter>;
context?: any;
headingTemplate?: TemplateRef<any>;
dataTemplate?: TemplateRef<any>;
options?: any;
}
export interface GridColumnStyle {
headerCellStyleClasses?: string[];
filterCellStyleClasses?: string[];
dataCellStyleClasses?: string[];
flex?: number;
minWidth?: string;
maxWidth?: string;
dataCellStyleResolver?: DataCellStyleResolver;
}
export declare class GridColumn {
model: GridModel;
config: GridColumnConfig;
styles: GridColumnStyle;
options: any;
refresh: boolean;
constructor(config: GridColumnConfig, styles?: GridColumnStyle, options?: any);
}
export interface GridDataFormatter {
column: GridColumn;
row: any;
}
export declare class GridPropertyFormatter implements GridDataFormatter {
column: GridColumn;
row: RowContext;
getValue(): any;
}
export declare class GridDateFormatter extends GridPropertyFormatter {
gridDateFormat: GridDateFormat;
column: GridColumn;
row: RowContext;
constructor(gridDateFormat: GridDateFormat);
getFormat(): any;
}
export interface GridHeaderFormatter {
column: GridColumn;
}
export declare class GridKeyHeaderFormatter implements GridHeaderFormatter {
column: GridColumn;
}
export interface GridExpanderFormatter {
row: RowContext;
}
export declare class GridDefaults {
columns: Map<string, GridColumn>;
constructor();
setDefaultColumn(type: string, column: GridColumn): void;
getDefaultColumn(type: string): GridColumn;
applyDefaults(columns: GridColumn[]): void;
}