import { SimPaginatorComponent } from '@ngx-simple/simple-ui/paginator'; import { SimSortDirective } from '@ngx-simple/simple-ui/sort'; import { BehaviorSubject, Subject, Subscription } from 'rxjs'; import { SimDataSource } from './data-source'; export declare class SimTableDataChange { filter?: string; pageIndex?: number; pageSize?: number; sort?: { /** 正在排序的列的id */ active: string; /** 正在排序的方向 */ direction: 'asc' | 'desc' | ''; /** * 正在排序的方向值 * - asc => 1 * - desc => -1 * - '' => 0 */ sort: number; }; constructor(sort?: SimSortDirective, paginator?: SimPaginatorComponent, filter?: string); } /** * 本地分页排序筛选表格数源 */ export declare class SimTableDataSource implements SimDataSource { page?: { index?: number; size?: number; sizeOptions?: number[]; auto?: boolean; }; private readonly _data; private readonly _renderData; /** 在数据源上设置新的筛选器字符串时发出的流 */ private readonly _filter; /** 该表应呈现的数据数组,其中每个对象代表一行。 */ get data(): T[]; set data(data: T[]); /** * 用于从数据数组中过滤出对象的筛选术语。若要覆盖数据对象与此筛选器字符串匹配的方式,请为filterPredicate提供一个自定义函数。 */ get filter(): string; set filter(filter: string); get sort(): SimSortDirective | null; set sort(sort: SimSortDirective | null); private _sort; get paginator(): SimPaginatorComponent | null; set paginator(paginator: SimPaginatorComponent | null); private _paginator; private readonly _internalPageChanges; /** * 订阅应该触发对表呈现行的更新的更改,如筛选、排序、分页或基本数据更改。 */ _renderChangesSubscription: Subscription; /** 已由筛选器字符串匹配的筛选数据集,或如果没有筛选器,则为所有数据。 */ filteredData: T[]; /** * 显示加载效果 * @example * * pipe(indicate(SimTableDataSource.loading$)) */ loading$: Subject; /** * @param initialData 初始化数据 */ constructor(initialData?: T[], page?: { index?: number; size?: number; sizeOptions?: number[]; auto?: boolean; }); /** * 检查数据对象是否与数据源的筛选器字符串匹配。 * @param data 用于检查筛选器的数据对象 * @param filter 在数据源上设置的筛选字符串 * @returns 过滤器是否与数据匹配 */ filterPredicate: (data: T, filter: string) => boolean; /** * filterChange、sortChange、pageChange 任意改变发出事件 */ readonly change: Subject; connect(): BehaviorSubject; disconnect(): void; /** * 排序数据 可以定制 * @param data 用于排序的数据对象 * @param sort 在数据源上设置的筛选字符串 * @returns 排序结果数据 */ sortData: (data: T[], sort: SimSortDirective) => T[]; private _updateChangeSubscription; /** 返回筛选后的数据数组,其中每个筛选对象都包含筛选器函数结果中的筛选器字符串。如果没有设置过滤器,则返回所提供的数据数组。 */ private _filterData; /** 根据提供的SimPaginator的页面索引和长度返回提供的数据数组的分页片。如果没有提供分页器,则返回所提供的数据数组。 */ private _pageData; private _orderData; sortingDataAccessor: (data: T, sortHeaderId: string) => string | number; private _updatePaginator; /** 发出一个事件,通知已触发paginator属性的更改。 */ private _emitChangeEvent; }