import { IField, IColumn } from '@shujujiang/core/widget/dataset'; export interface IColContext { field: IField; fieldIndex: number; index: number; result: any[]; value: string | number; colData?: any; } export interface IRowContext { colData: any; value: string | number; field: IField; rowIndex: number; fieldIndex: number; rowData: (number | string)[] | { [key: string]: number | string; }; } export interface IMemberContext { field: IField; fieldIndex: number; index: number; result: any[]; value: string | number; colData: any; rowIndex: number; rowData: { key: any; value: any; }; } export interface INodeContext { field: IField; value: any; isRoot: boolean; parent: any; } export interface ILeafContext { node: any; field: IField; rows: { rowData: any; rowIndex: number; }[]; } export declare type IColMapper = (context: IColContext) => any; export declare type IRowMapper = (context: IRowContext) => any; export declare type IMemberMapper = (context: IMemberContext) => any; export declare type INodeMapper = (context: INodeContext) => any; export declare type ILeafMapper = (context: ILeafContext) => any; export declare type IValueGetter = (rowData: any) => any; export declare type IRowDataGetter = (rowData: any) => { columns: IColumn[]; values: (string | number)[]; }; export declare class Dimension { private _fieldIndex; private _field; private _valueGetter; private _crosshost; private _table; private _nativeDimension; private _group; private _countResult; private _reduceData; constructor(_fieldIndex: number, _field: IField, _valueGetter: any, _crosshost: any, _table: any); values(): (string | number)[]; field(): IField; each(colMapper: IColMapper, rowMapper: IRowMapper, initResult?: any[]): any[]; /** * reduce字段后,遍历列成员项目,然后遍历行数据 */ reduceAll(fieldMapper: IColMapper, memberMapper: IMemberMapper, rowMapper: IRowMapper, initResult?: any[]): any[]; /** * 计数字段,然后遍历列成员项目,但不遍历行数据 */ reduceCount(colMapper: IColMapper, memberMapper: IMemberMapper, initResult?: any[]): any[]; private _getReduceData; }