UNPKG

@antv/s2

Version:

effective spreadsheet render core lib

141 lines (140 loc) 5.55 kB
import type { CustomHeaderFields, RawData } from '../../common'; import { QueryDataType } from '../../common/constant'; import type { Meta } from '../../common/interface/basic'; import type { PickEssential } from '../../common/interface/type-utils'; import type { CellData } from '../../data-set/cell-data'; import type { DataPath, DataPathParams, FlattingIndexesData, PivotMeta, PivotMetaValue, SortedDimensionValues, TotalStatus } from '../../data-set/interface'; import type { Node } from '../../facet/layout/node'; export declare function filterExtraDimension(dimensions?: CustomHeaderFields): import("../../common").CustomHeaderField[]; export declare function isMultiValue(pathValue: string | number | undefined): boolean; /** * Transform from origin single data to correct dimension values * data: { * price: 16, * province: '辽宁省', * city: '芜湖市', * category: '家具', * subCategory: '椅子', * } * dimensions: [province, city] * return [辽宁省, 芜湖市] * * @param record * @param dimensions */ export declare function transformDimensionsValues(record?: RawData, dimensions?: string[], placeholder?: string): string[]; export declare function getExistValues(data: RawData, values: string[]): string[]; /** * Get dimensions with parent path * field: 'category' * defaultDimensions: ['province', 'city', 'category', 'subCategory'] * dimensions: [ * { * province: '辽宁省', * city: '芜湖市', * category: '家具', * subCategory: '椅子', * price: '' * }, * ] * return ['辽宁省[&]芜湖市[&]家具'] * * @param field * @param defaultDimensions * @param dimensions */ export declare function getDimensionsWithParentPath(field: string, defaultDimensions: string[] | undefined, dimensions: CellData[]): string[]; export declare function getDataPathPrefix(rowFields: string[], colFields: string[]): string; /** * Transform a single data to path * { * $$VALUE$$: 15 * $$EXTRA$$: 'price' * "price": 15, * "province": "辽宁省", * "city": "达州市", * "category": "家具", * "subCategory": "椅子" * } * rows: [province, city] * columns: [category, subCategory, $$EXTRA$$] * * rowDimensionValues = [辽宁省, 达州市] * colDimensionValues = [家具, 椅子, price] * * @param params */ export declare function getDataPath(params: DataPathParams): DataPath; interface Param { rows: string[]; columns: string[]; values: string[]; valueInCols: boolean; data: RawData[]; indexesData: Record<string, RawData[][] | RawData[]>; sortedDimensionValues: SortedDimensionValues; rowPivotMeta?: PivotMeta; colPivotMeta?: PivotMeta; getExistValuesByDataItem?: (data: RawData, values: string[]) => string[]; } export interface TransformResult { paths: DataPath[]; indexesData: Record<string, RawData[][] | RawData[]>; rowPivotMeta: PivotMeta; colPivotMeta: PivotMeta; sortedDimensionValues: SortedDimensionValues; } /** * 获取用于数据 transform 中定位的 string 的字段,自定义布局中,自定义字段是 object 类型,这些类型不应该参与到数据处理的流程中 */ export declare function getIndexFields(fields?: CustomHeaderFields): string[]; /** * 转换原始数据为二维数组数据 */ export declare function transformIndexesData(params: Param): TransformResult; export declare function deleteMetaById(meta: PivotMeta, nodeId: string): void; export declare function generateExtraFieldMeta(meta: Meta[], cornerExtraFieldText: string | undefined, defaultText: string): Meta; export declare function getHeaderTotalStatus(row: Node, col: Node): TotalStatus; /** * 检查 getMultiData 时,传入的 query 是否是包含总计、小计分组的场景 * MULTI_VALUE 后面再出现具体的名字,就表明是分组场景 * 以 rows: [province, city] 为例 * 如果是: [四川, MULTI_VALUE] => 代表获取四川下面的所有 city * 如果是: [MULTI_VALUE, 成都] => 这种结果就是所有成都的小计分组 * 每个 province 下面的 city 都不一样的 * 就算换成 [province, sex] => [MULTI_VALUE, 女] 这样的形式,去获取所有 province 下的女性,但是每个 province 下的女性的 index 也可能不同 * 需要将其拓展成多个结构 => [MULTI_VALUE, 女] => [[四川,女], [北京,女], ....] => [[1,1],[2,1],[3,2]....] */ export declare function existDimensionTotalGroup(path: string[]): boolean; export declare function getSatisfiedPivotMetaValues(params: { pivotMeta: PivotMeta; dimensionValues: string[]; fieldIdx: number; queryType: QueryDataType; fields: string[]; sortedDimensionValues: SortedDimensionValues; }): PivotMetaValue[]; export declare function flattenDimensionValues(params: { dimensionValues: string[]; pivotMeta: PivotMeta; fields: string[]; sortedDimensionValues: SortedDimensionValues; queryType?: QueryDataType; }): string[][]; export declare function getFlattenDimensionValues(params: PickEssential<DataPathParams> & { sortedDimensionValues: SortedDimensionValues; queryType: QueryDataType; }): { rowQueries: string[][]; colQueries: string[][]; }; export declare function flattenIndexesData(data: FlattingIndexesData, queryType: QueryDataType): FlattingIndexesData; /** * Get dimensions without path pre * dimensions: ['辽宁省[&]芜湖市[&]家具[&]椅子'] * return ['椅子'] * * @param dimensions */ export declare function getDimensionsWithoutPathPre(dimensions: string[]): string[]; export {};