UNPKG

ngx-pluto

Version:
123 lines (122 loc) 4.52 kB
import { OnInit, QueryList, OnChanges, SimpleChanges, EventEmitter } from "@angular/core"; import { NpColumnDirective } from "./column.directive"; import { NpEmptyDirective } from "./empty.directive"; import { NpHeaderDirective } from './header.directive'; /** * 可分页表格组件 - 支持分页、自定义列名、自定义列内容等。对于多语言,支持通过·@Input·属性自定义。 * * <example-url>https://stackblitz.com/edit/np-table-sample?embed=1&file=src/app/app.component.html</example-url> */ export declare class NpTable implements OnInit, OnChanges { /**定义列名称(即数据源datasource对象属性名称),列显示名称,列宽度(可选,默认每列自适应等宽) */ columns: Array<ColumnDef>; /**表格组件数据源,数据源为一个对象数组,对象的属性名称必须与表格列名称相同,否则不会展示此列 */ datasource: Array<any>; /**数据总条数 */ total: number; /**每页显示条数,默认20条 */ pageSize: number; /**是否在表头第一列展示多选框,默认不展示 */ showCheckbox: boolean; /**是否显示分页组件,默认显示 */ showPager: boolean; /**是否服务器端排序,默认false,即客户端排序 */ serverSideSort: boolean; /**首页按钮文字 */ firstBtnText: string; /**上一页按钮文字 */ preBtnText: string; /**下一页按钮文字 */ nextBtnText: string; /**尾页按钮文字 */ lastBtnText: string; /**共 */ totalText: string; /**条,每页显示条数 */ itemsPerPageText: string; /**没有数据按钮文字 */ noDataLabel: string; /**当前页码 */ pageNumber: number; /**页码改变事件,即翻页事件 (双向绑定) */ pageNumberChange: EventEmitter<number>; /**页码改变事件,即翻页事件 */ onPageChanged: EventEmitter<number>; /**每页显示条数改变事件 */ onPageSizeChanged: EventEmitter<number>; /** * Will be deprecated, use onRows instead */ onRowsChecked: EventEmitter<any>; /** * Will be deprecated, use onRows instead * * 为了向后兼容,故没有修改onRowsChecked逻辑,增加此output事件 * * 当前行uncheck时触发此事件 */ onRowsUnchecked: EventEmitter<any>; /**当选择服务器端排序(即serverSideSort = true)时,根据当前点击列内容及排序,传给backend api返回服务器端排序数据赋值给datasource及total字段即可 */ onServerSideSorted: EventEmitter<{ col: ColumnDef; sortedBy: "default" | "desc" | "asc"; }>; /** * 当前处理的行row/rows,选中/非选中状态 * * 如点击全选按钮,则处理的是当前页的所有行rows */ onRows: EventEmitter<any>; columnComponents: QueryList<NpColumnDirective>; headerComponents: QueryList<NpHeaderDirective>; emptyContent: NpEmptyDirective; projectedTemplates: Array<{ name: string; template: any; }>; headerTemplates: Array<{ name: string; template: any; }>; internalColumns: Array<InternalColumnDef>; /**此字段后续会废弃 will be deprecated */ selectedRows: Array<any>; datasourceSortedByDefault: Array<any>; constructor(); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterContentInit(): void; onTablePageChanged(currentPageNumber: number): void; onTablePageSizeChanged(currentPageSize: number): void; onSelectAllChecked(isChecked: boolean): void; onRowSelectChecked(row: any): void; onSort(item: InternalColumnDef): void; private buildServerSideSort; private buildClientSideSort; private setNextSortedBy; private initUniqueIdForDatasource; private projectTemplate; private mergeToInternalColumns; private setSortedByToDefault; private ID; private selectAll; private resetOtherSortedColumns; } export interface ColumnDef { /**列名称 */ headerName: string; /**列显示名称 */ headerDisplayName: string; /**列宽度 */ width?: string; sort?: boolean; } /** * @ignore */ interface InternalColumnDef extends ColumnDef { isCheckbox?: boolean; checked?: boolean; sortedBy?: 'default' | 'asc' | 'desc'; } export {};