ng-devui
Version:
DevUI components based on Angular
375 lines (374 loc) • 15.9 kB
TypeScript
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, QueryList, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { Subscription } from 'rxjs';
import { DataTableHeadComponent } from './data-table-head.component';
import { CellSelectedEventArg, CheckableRelation, ColumnResizeEventArg, RowCheckChangeEventArg, RowSelectedEventArg, SortEventArg, TableCheckOptions, TableCheckStatusArg, TableExpandConfig, TableWidthConfig } from './data-table.model';
import { TableTbodyComponent } from './table/body/tbody.component';
import { TableThComponent } from './table/head/th/th.component';
import { TableTheadComponent } from './table/head/thead.component';
import { DataTableColumnTmplComponent } from './tmpl/data-table-column-tmpl.component';
import * as i0 from "@angular/core";
export declare class DataTableComponent implements OnDestroy, OnInit, OnChanges, AfterContentInit, AfterViewInit {
private elementRef;
private ngZone;
private renderer;
private cdr;
private doc;
/**
* 【可选】Datatable是否提供勾选行的功能
*/
checkable: boolean;
/**
* 【可选】表头checkbox是否disabled
*/
headerCheckDisabled: boolean;
/**
* 【可选】表头checkbox是否可见
*/
headerCheckVisible: boolean;
/**
* 【可选】表头选中的下拉项及操作
*/
checkOptions: TableCheckOptions[];
checkOptionsIndex: number;
selectOptionOnCheckbox: boolean;
/**
* 【可选】是否提供显示行详情的功能
*/
showExpandToggle: boolean;
/**
* 【可选】是否固定表头(在表格超过容器最大高度时,表格可滚动时生效)
*/
fixHeader: boolean;
/**
* 【可选】表格在超出容器时,是否可以通过滚动查看表格内容
*/
scrollable: boolean;
/**
* 【可选】默认表格使用的表格类型,可选值为'cell' @deprecated
*/
editModel: string;
/**
* 【可选】限制表格最大宽度,默认撑满父容器
*/
maxWidth: string;
/**
* 【可选】限制最大高度,默认
*/
maxHeight: string;
/**
* 表格类型 @deprecated
*/
type: any;
/**
* 鼠标悬浮行时是否高亮
*/
rowHoveredHighlight: boolean;
/**
* 鼠标悬浮行时$hovered是否记录到rowItem中
*/
generalRowHoveredData: any;
/**
* 表格自定义样式
*/
cssClass: string;
/**
* 表格宽度
*/
tableWidth: string;
/**
* 表格高度
*/
tableHeight: string;
/**
* 固定表头指定高度是否包含表头的高度,`tableHeight`设置的高度默认是表格body的高度
*/
containFixHeaderHeight: boolean;
/**
* 【可选】是否限制多列排序的输出限制为一项
*/
onlyOneColumnSort: boolean;
/**
* 【可选】多列选择数组,用来指导那几列会被排序
*/
multiSort: SortEventArg[];
/**
* 【可选】是否可以拖拽调整列宽
*/
resizeable: boolean;
/**
* 【可选】用来自定义表格是否可以拖动
*/
colDraggable: boolean;
/**
* 【可选】用来自定义不可拖拽的前几列
*/
colDropFreezeTo: number;
/**
* 【可选】用来自定义详情页的模板 @deprecated
*/
detailTemplateRef: TemplateRef<any>;
/**
* 【可选】同时绑定单击、双击事件时,用于区分点击的时间间隔,默认300ms,两个事件不同时使用可以指定为0
*/
timeout: number;
/**
* 【可选】配置表头操作未激活状态下是否显示操作区域,默认不显示
*/
showOperationArea: boolean;
/**
* 【可选】是否显示排序未激活图标,默认显示,
*/
showSortIcon: boolean;
/**
* 【可选】是否显示筛选未激活图标,默认显示,
*/
showFilterIcon: boolean;
/**
* 多列选择Change事件,用来更新多列选择数组, column param
* */
multiSortChange: EventEmitter<SortEventArg[]>;
/**
* 表格单元格点击事件
*/
cellClick: EventEmitter<CellSelectedEventArg>;
/**
* 表格单元格双击事件
*/
cellDBClick: EventEmitter<CellSelectedEventArg>;
/**
* 表格行点击事件
*/
rowClick: EventEmitter<RowSelectedEventArg>;
/**
* 表格行双击事件
*/
rowDBClick: EventEmitter<RowSelectedEventArg>;
/**
* 行detail toggle事件
*/
detialToggle: EventEmitter<any>;
/**
* 表格单元格开始编辑前的拦截事件
*/
beforeCellEdit: (rowItem: any, column: any) => Promise<any>;
/**
* 表格单元格开始编辑后的拦截事件
*/
beforeCellEditEnd: (rowItem: any, column: any) => boolean;
/**
* 表格单元格开始编辑事件
*/
cellEditStart: EventEmitter<CellSelectedEventArg>;
/**
* 表格单元格结束编辑事件
*/
cellEditEnd: EventEmitter<CellSelectedEventArg>;
/**
* 某行的勾选状态变化事件
*/
rowCheckChange: EventEmitter<RowCheckChangeEventArg>;
/**
* 当前页码全勾选状态变化事件
*/
checkAllChange: EventEmitter<boolean>;
/**
* 延迟懒加载完成事件
*/
loadMore: EventEmitter<any>;
/**
* 列宽变化事件
*/
resize: EventEmitter<ColumnResizeEventArg>;
/**
* 当前表格层级,默认为0,在树形表格场景下自增长
* 内部嵌套使用,不对外暴露
*/
tableLevel: number;
/**
* 配置树形表格的父子选中是否互相关联
* upward:选中子关联父
* downward: 选中父关联子
*/
checkableRelation: CheckableRelation;
/**
* 异步加载子列表
*/
loadChildrenTable: (rowItem: any) => Promise<any>;
/**
* 异步加载全部子列表
*/
loadAllChildrenTable: () => Promise<any>;
/**
* 是否虚拟滚动
*/
virtualScroll: any;
/**
* 配置header的展开内容
*/
headerExpandConfig: TableExpandConfig;
/**
* 子列表关闭事件
*/
childrenTableClose: EventEmitter<any>;
/**
* 全部子列表关闭事件
*/
allChildrenTableClose: EventEmitter<any>;
/**
* 虚拟滚动配置
*/
virtualItemSize: number;
virtualMinBufferPx: number;
virtualMaxBufferPx: number;
/**
* 懒加载
*/
lazy: boolean;
/**
* 列宽配置
*/
tableWidthConfig: TableWidthConfig[];
/**
* 表头是否有背景色
*/
headerBg: boolean;
/**
* 表格布局
*/
tableLayout: 'fixed' | 'auto';
/**
* 表格边框类型,默认有行边框,bordered:全边框,borderless:无边框
*/
borderType: '' | 'bordered' | 'borderless';
/**
* 表格是否展示为斑马纹间隔
*/
striped: boolean;
/**
* 表格内部滚动事件
*/
tableScrollEvent: EventEmitter<Event>;
minHeight: string;
columnDragEnd: EventEmitter<any>;
/**
* 表格尺寸,sm对应行高40px, md对应行高48px,lg对应行高56px
*/
size: 'mini' | 'xs' | 'sm' | 'md' | 'lg';
shadowType: 'normal' | 'embed';
tableOverflowType: 'overlay' | 'auto';
columns: QueryList<DataTableColumnTmplComponent>;
innerHeader: TableTheadComponent;
innerBody: TableTbodyComponent;
thList: QueryList<TableThComponent>;
noResultTemplate: TemplateRef<any>;
fixHeaderContainerRefElement: ElementRef;
tableViewRefElement: ElementRef;
virtualScrollViewport: CdkVirtualScrollViewport;
normalScrollElement: ElementRef;
vitualScrollElement: TemplateRef<any>;
columnHeaderComponent: DataTableHeadComponent;
devuiNormalScrollBody: ElementRef;
get hostHeight(): string;
get hasShadow(): boolean;
hasWidthScroll: boolean;
hasHeightScroll: boolean;
_dataSource: any[];
_pageAllChecked: boolean;
selectable: boolean;
allChecked: number[];
selectedRowItem: any;
selectedColumnItem: any;
isCellEdit: boolean;
editRowItem: any;
documentClickEvent: EventEmitter<any>;
cellEditorClickEvent: EventEmitter<Event>;
_hideColumn: string[];
_columns: DataTableColumnTmplComponent[];
displayDataSource: any[];
headertoggleTableSubscription: Subscription;
headerCheckStatusSubscription: Subscription;
searchQueryChange: EventEmitter<{
[key: string]: any;
}>;
halfChecked: boolean;
childrenTableOpen: boolean;
private scrollY;
BUILTIN_COL_WIDTH: string;
BUILTIN_COL_WIDTH_EXTRA: string;
tableBodyEl: ElementRef;
onDocumentClickListen: any;
_tableTotalWidth: number;
_lastColSize: number;
set content(content: ElementRef);
set dataSource(dataSource: any[]);
get dataSource(): any[];
set hideColumn(hideColumn: string[]);
get hideColumn(): string[];
set pageAllChecked(pageAllChecked: boolean);
get pageAllChecked(): boolean;
virtualBodyHeight: any;
document: Document;
constructor(elementRef: ElementRef, ngZone: NgZone, renderer: Renderer2, cdr: ChangeDetectorRef, doc: any);
initVirtualBodyHeight(): void;
private getColumns;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
onDocumentClick($event: Event): void;
ngAfterContentInit(): void;
initScrollStatus(): void;
ngAfterViewInit(): void;
initScrollClass(): void;
private resetThSortOrder;
updateColumns(): void;
ngOnDestroy(): void;
onHandleSort(column: SortEventArg): void;
onCellClick($event: CellSelectedEventArg): void;
onCellEditStart($event: CellSelectedEventArg): void;
onCellEditEnd($event: CellSelectedEventArg): void;
onCellDBClick($event: CellSelectedEventArg): void;
onRowClick($event: RowSelectedEventArg): void;
onRowDBClick($event: RowSelectedEventArg): void;
onDetailToggle($event: any): void;
private hasChecked;
private hasUnChecked;
setRowCheckStatus($event: RowCheckChangeEventArg): void;
private setParentCheckStatus;
private findLastParent;
private setSelfCheckStatus;
private setCheckedStatus;
onCheckAllChange($event: boolean): void;
onSearchQueryChange($event: {
[key: string]: any;
}): void;
getSelectedRowItem(): any[];
onLoadMore(event: any): void;
private updateColumnsWidth;
beginResizeHandlerEvent($event: any): void;
onResizingFixedHandler({ field, width }: {
field: any;
width: any;
}): void;
onResizeHandler({ width, field }: {
width: any;
field: any;
}): void;
handleDragTable({ from, to }: {
from: any;
to: any;
}): void;
onBodyScroll(event?: Event): void;
private setScrollViewClass;
private unSubscription;
setRowChildToggleStatus(rowItem: any, open: boolean): void;
setTableChildrenToggleStatus(open: boolean): void;
private travelChildrenToggleStatus;
onToggleAllChildrenTable(open: boolean): void;
cancelEditingStatus(): void;
private collectCheckedRows;
getCheckedRows(): any[];
setTableCheckStatus(status: TableCheckStatusArg): void;
updateVirtualScrollSize(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "d-data-table", ["dataTable"], { "checkable": { "alias": "checkable"; "required": false; }; "headerCheckDisabled": { "alias": "headerCheckDisabled"; "required": false; }; "headerCheckVisible": { "alias": "headerCheckVisible"; "required": false; }; "checkOptions": { "alias": "checkOptions"; "required": false; }; "checkOptionsIndex": { "alias": "checkOptionsIndex"; "required": false; }; "selectOptionOnCheckbox": { "alias": "selectOptionOnCheckbox"; "required": false; }; "showExpandToggle": { "alias": "showExpandToggle"; "required": false; }; "fixHeader": { "alias": "fixHeader"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "editModel": { "alias": "editModel"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "type": { "alias": "type"; "required": false; }; "rowHoveredHighlight": { "alias": "rowHoveredHighlight"; "required": false; }; "generalRowHoveredData": { "alias": "generalRowHoveredData"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "tableWidth": { "alias": "tableWidth"; "required": false; }; "tableHeight": { "alias": "tableHeight"; "required": false; }; "containFixHeaderHeight": { "alias": "containFixHeaderHeight"; "required": false; }; "onlyOneColumnSort": { "alias": "onlyOneColumnSort"; "required": false; }; "multiSort": { "alias": "multiSort"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "colDraggable": { "alias": "colDraggable"; "required": false; }; "colDropFreezeTo": { "alias": "colDropFreezeTo"; "required": false; }; "detailTemplateRef": { "alias": "detailTemplateRef"; "required": false; }; "timeout": { "alias": "timeout"; "required": false; }; "showOperationArea": { "alias": "showOperationArea"; "required": false; }; "showSortIcon": { "alias": "showSortIcon"; "required": false; }; "showFilterIcon": { "alias": "showFilterIcon"; "required": false; }; "beforeCellEdit": { "alias": "beforeCellEdit"; "required": false; }; "beforeCellEditEnd": { "alias": "beforeCellEditEnd"; "required": false; }; "tableLevel": { "alias": "tableLevel"; "required": false; }; "checkableRelation": { "alias": "checkableRelation"; "required": false; }; "loadChildrenTable": { "alias": "loadChildrenTable"; "required": false; }; "loadAllChildrenTable": { "alias": "loadAllChildrenTable"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "headerExpandConfig": { "alias": "headerExpandConfig"; "required": false; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; }; "virtualMinBufferPx": { "alias": "virtualMinBufferPx"; "required": false; }; "virtualMaxBufferPx": { "alias": "virtualMaxBufferPx"; "required": false; }; "lazy": { "alias": "lazy"; "required": false; }; "tableWidthConfig": { "alias": "tableWidthConfig"; "required": false; }; "headerBg": { "alias": "headerBg"; "required": false; }; "tableLayout": { "alias": "tableLayout"; "required": false; }; "borderType": { "alias": "borderType"; "required": false; }; "striped": { "alias": "striped"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shadowType": { "alias": "shadowType"; "required": false; }; "tableOverflowType": { "alias": "tableOverflowType"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "hideColumn": { "alias": "hideColumn"; "required": false; }; "pageAllChecked": { "alias": "pageAllChecked"; "required": false; }; }, { "multiSortChange": "multiSortChange"; "cellClick": "cellClick"; "cellDBClick": "cellDBClick"; "rowClick": "rowClick"; "rowDBClick": "rowDBClick"; "detialToggle": "detialToggle"; "cellEditStart": "cellEditStart"; "cellEditEnd": "cellEditEnd"; "rowCheckChange": "rowCheckChange"; "checkAllChange": "checkAllChange"; "loadMore": "loadMore"; "resize": "resize"; "childrenTableClose": "childrenTableClose"; "allChildrenTableClose": "allChildrenTableClose"; "tableScrollEvent": "tableScrollEvent"; "columnDragEnd": "columnDragEnd"; }, ["innerHeader", "innerBody", "noResultTemplate", "columns", "thList"], ["thead"], false, never>;
}