@antv/s2
Version:
effective spreadsheet render core lib
141 lines (140 loc) • 5.55 kB
TypeScript
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 {};