@zhouchangju/standard-chart
Version:
标准范式组件
78 lines (77 loc) • 3.05 kB
TypeScript
import { ThemeParser } from '../../../core/theme';
import type { PresetMode } from '../..';
export declare function labelLayout(chart: any): (params: any) => {
x: number;
width: number;
hideOverlap: boolean;
labelLinePoints: any[];
};
export declare function defaultPie(themeMode: PresetMode): {
radius: number[];
avoidLabelOverlap: boolean;
labelLine: {
/**
* @设计规范 饼图的圆环到标签的**最小距离**(即圆环到标签的水平距离),应该是32
* @实现思路 最小距离包括引导线labelLine的两段直线长度length和length2、引导线与标签的间距distanceToLabelLine组成
* labelLine两段长度最短时,圆环距标签最短,所以 32 = 16(length) + 6(length2) + 10(distanceToLabelLine)
* @see length: https://echarts.apache.org/zh/option.html#series-pie.labelLine.length
* @see length2: https://echarts.apache.org/zh/option.html#series-pie.labelLine.length2
* @see distanceToLabelLine: https://echarts.apache.org/zh/option.html#series-pie.label.distanceToLabelLine
*/
length: number;
length2: number;
lineStyle: {
color: string;
};
};
tooltip: {
trigger: string;
};
label: {
show: boolean;
lineHeight: number;
/**
* @设计规范 饼图标签需要对齐视觉引导线labelLine。
* @example 位于左侧的标签需要右对齐;位于右侧的标签需要左对齐。
* @caution !!!!!alignTo: 'labelLine'要求饼图数据中不包含undefined类型的数据
* @see https://echarts.apache.org/zh/option.html#series-pie.label.alignTo
*/
alignTo: string;
bleedMargin: number;
distanceToLabelLine: number;
color: string;
};
emphasis: {
focus: string;
scaleSize: number;
itemStyle: {
borderWidth: number;
borderColor: string;
color: string;
};
};
/**
* @设计规范 饼图中各扇形切换到高亮状态时,需要弱化其余扇形数据并隐藏引导线、标签。
* @remarks
* 主题配置实现思路:设置高亮状态下聚焦当前图形`foucs: ''self`,并设置每个扇形弱化状态下的样式`series.blur`如下:
* 1、弱化状态下标签颜色设置为透明。
* 2、引导线`labelLine`的线段样式设置不透明度为0
* 3、图形本身保持不透明度为1,覆盖echarts默认聚焦设置。
* @see https://github.com/apache/echarts/blob/master/src/util/states.ts#L345 聚焦条件下图形弱化为opacity:0.1
*/
blur: {
label: {
opacity: number;
};
labelLine: {
show: boolean;
lineStyle: {
opacity: number;
};
};
itemStyle: {
opacity: number;
};
};
};
export declare function pieThemeParse(...args: Parameters<ThemeParser>): void;