UNPKG

2.06 kBTypeScriptView Raw
1import { AdjustCfg, Data, Range } from '../interface';
2export declare type AdjustConstructor = new (cfg: any) => Adjust;
3export interface DimValuesMapType {
4 [dim: string]: number[];
5}
6export default abstract class Adjust {
7 /** 参与调整的维度 */
8 adjustNames: string[];
9 /** x 维度对应的字段 */
10 xField: string;
11 /** y 维度对应的字段 */
12 yField: string;
13 /** 调整占单位宽度的比例,例如:占 2 个分类间距的 1 / 2 */
14 dodgeRatio: number;
15 /** 调整过程中 2 个数据的间距,以 dodgeRatio 为分母 */
16 marginRatio: number;
17 /** 指定进行 dodge 的字段 */
18 dodgeBy: string;
19 height: number;
20 size: number;
21 reverseOrder: boolean;
22 /** 像素级组间距 */
23 intervalPadding: number;
24 /** 像素级组内间距 */
25 dodgePadding: number;
26 /** x维度长度,计算归一化padding使用 */
27 xDimensionLegenth: number;
28 /** 分组数 */
29 groupNum: number;
30 /** 用户配置宽度 */
31 defaultSize: number;
32 /** 最大宽度约束 */
33 maxColumnWidth: number;
34 /** 最小宽度约束 */
35 minColumnWidth: number;
36 /** 宽度比例 */
37 columnWidthRatio: number;
38 constructor(cfg: AdjustCfg);
39 abstract process(dataArray: Data[][]): Data[][];
40 /**
41 * 查看维度是否是 adjust 字段
42 * @param dim
43 */
44 isAdjust(dim: string): boolean;
45 protected getAdjustRange(dim: string, dimValue: number, values: number[]): Range;
46 protected adjustData(groupedDataArray: Data[][], mergedData: Data[]): void;
47 /**
48 * 对数据进行分组adjustData
49 * @param data 数据
50 * @param dim 分组的字段
51 * @return 分组结果
52 */
53 protected groupData(data: Data[], dim: string): {
54 [dim: string]: Data[];
55 };
56 /** @override */
57 protected adjustDim(dim: string, values: number[], data: Data[], index?: number): void;
58 /**
59 * 获取可调整度量对应的值
60 * @param mergedData 数据
61 * @return 值的映射
62 */
63 private getDimValues;
64}