suoqiu-f2
Version:
Charts for mobile visualization.
191 lines (158 loc) • 3.87 kB
TypeScript
import { CanvasProps } from './CanvasProps';
/**
* 图例标记的形状。
*/
export type LegendMarkerSymbol = 'circle' | 'square';
/**
* 图例标记的参数。
*/
export interface LegendMarkerParams extends CanvasProps {
/**
* 形状。
*/
symbol?: LegendMarkerSymbol;
}
/**
* 设置图例标记的函数。
*/
export type LegendMarkerFunc = (
x: number,
y: number,
r: number,
ctx: CanvasRenderingContext2D,
) => void;
/**
* 图例标记。
*/
export type LegendMarker =
| LegendMarkerSymbol
| LegendMarkerParams
| LegendMarkerFunc;
/**
* 图例项目。
*/
export interface LegendItem extends CanvasProps {
/**
* 名称。
*/
name: string;
/**
* 值。
*/
dataValue?: string | number;
/**
* 标记。
*/
marker?: LegendMarker;
/**
* 是否选中。
*/
checked?: boolean;
}
export interface LegendParams {
/**
* 图例的显示位置。默认为 top。
*/
position?: 'top' | 'right' | 'bottom' | 'left';
/**
* 水平方向上图例的对齐方式。默认为 left,左对齐。
*/
align?: 'left' | 'center' | 'right';
/**
* 垂直方向上图例的对齐方式。默认为 middle,居中对齐。
*/
verticalAlign?: 'top' | 'middle' | 'bottom';
/**
* 图例项的宽度。默认为 auto,即使用 F2 默认的图例布局计算 itemWidth。
* 如果为 null,则会根据每个图例项自身的宽度计算。
*/
itemWidth?: 'auto' | number | null;
/**
* 是否显示图例标题,默认值为 false,即不展示。
*/
showTitle?: boolean;
/**
* 图例标题的显示样式。
*/
titleStyle?: CanvasProps;
/**
* 图例 X 方向的整体偏移值,数值类型,数值单位为 px,默认值为 0。
*/
offsetX?: number;
/**
* 图例 Y 方向的整体偏移值,数值类型,数值单位为 px,默认值为 0。
*/
offsetY?: number;
/**
* 标题距离图例项的间距,默认为 12px,如果不展示标题,不生效。
*/
titleGap?: number;
/**
* 每个图例项水平方向上的间距,默认值为 12px。
*/
itemGap?: number;
/**
* 每个图例项下方留白间距,默认值为 12px。
*/
itemMarginBottom?: number;
/**
* marker 和文本之间的间距,默认值为 6px。
*/
wordSpace?: number;
/**
* 用于设置取消选中的图例 marker 以及文本的样式。默认值为:
* ```
* unCheckStyle: {
* fill: '#bfbfbf',
* }
* ```
*/
unCheckStyle?: CanvasProps;
/**
* 回调函数,用于格式化图例每项的文本显示。
*/
itemFormatter?: (value: string) => string;
/**
* 用于设置图例的 marker 样式,默认为 circle 即圆形。
*/
marker?: LegendMarker;
/**
* 用于设置图例项的文本样式。
*/
nameStyle?: CanvasProps;
/**
* 用于设置图例项的文本样式。
*/
valueStyle?: CanvasProps;
/**
* 设置图例项中 name 和 value 的连接字符,默认为 `:`。
*/
joinString?: string;
/**
* 图例筛选行为的触发事件,默认为 click。
*/
triggerOn?: string;
/**
* 设置图例项的选中模式,默认为 multiple,即多选。
*/
selectedMode?: 'multiple' | 'single';
/**
* 设置图例项是否允许点击,默认为 true,即允许点击。
*/
clickable?: boolean;
/**
* 默认为 false,当 custom 为 true,表示不使用默认生成的图例,允许用户自定义图例,
* 包括具体的图例项(`items`)以及点击交互行为(`onClick`)。
*/
custom?: boolean;
/**
* 图例项列表。
*/
items?: LegendItem[];
/**
* 用于自定义鼠标点击图例项的交互,当 clickable 为 false 时不生效。
*
* @todo 明确参数的类型
*/
onClick?: (...args: any[]) => any;
}