UNPKG

2.28 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 /** 自定义 offset */
20 customOffset: ((data: any, range: any) => number) | number;
21 height: number;
22 size: number;
23 reverseOrder: boolean;
24 /** 像素级组间距 */
25 intervalPadding: number;
26 /** 像素级组内间距 */
27 dodgePadding: number;
28 /** x维度长度,计算归一化padding使用 */
29 xDimensionLegenth: number;
30 /** 分组数 */
31 groupNum: number;
32 /** 用户配置宽度 */
33 defaultSize: number;
34 /** 最大宽度约束 */
35 maxColumnWidth: number;
36 /** 最小宽度约束 */
37 minColumnWidth: number;
38 /** 宽度比例 */
39 columnWidthRatio: number;
40 /** 用户自定义的dimValuesMap */
41 dimValuesMap: DimValuesMapType;
42 constructor(cfg: AdjustCfg & {
43 dimValuesMap?: DimValuesMapType;
44 });
45 abstract process(dataArray: Data[][]): Data[][];
46 /**
47 * 查看维度是否是 adjust 字段
48 * @param dim
49 */
50 isAdjust(dim: string): boolean;
51 protected getAdjustRange(dim: string, dimValue: number, values: number[]): Range;
52 protected adjustData(groupedDataArray: Data[][], mergedData: Data[]): void;
53 /**
54 * 对数据进行分组adjustData
55 * @param data 数据
56 * @param dim 分组的字段
57 * @return 分组结果
58 */
59 protected groupData(data: Data[], dim: string): {
60 [dim: string]: Data[];
61 };
62 /** @override */
63 protected adjustDim(dim: string, values: number[], data: Data[], index?: number): void;
64 /**
65 * 获取可调整度量对应的值
66 * @param mergedData 数据
67 * @return 值的映射
68 */
69 private getDimValues;
70}
71
\No newline at end of file