@damoqiongqiu/ice-chart 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +530 -0
- package/dist/index.cjs +25 -0
- package/dist/index.mjs +25 -0
- package/dist/index.umd.js +25 -0
- package/dist/types/ICEChart.d.mts +330 -0
- package/dist/types/ICEChart.d.ts +330 -0
- package/dist/types/a11y.d.mts +85 -0
- package/dist/types/a11y.d.ts +85 -0
- package/dist/types/animation/motion.d.mts +11 -0
- package/dist/types/animation/motion.d.ts +11 -0
- package/dist/types/components/Axis.d.mts +60 -0
- package/dist/types/components/Axis.d.ts +60 -0
- package/dist/types/components/Brush.d.mts +19 -0
- package/dist/types/components/Brush.d.ts +19 -0
- package/dist/types/components/ChartComponent.d.mts +48 -0
- package/dist/types/components/ChartComponent.d.ts +48 -0
- package/dist/types/components/Crosshair.d.mts +40 -0
- package/dist/types/components/Crosshair.d.ts +40 -0
- package/dist/types/components/DataZoomSlider.d.mts +30 -0
- package/dist/types/components/DataZoomSlider.d.ts +30 -0
- package/dist/types/components/GridLines.d.mts +37 -0
- package/dist/types/components/GridLines.d.ts +37 -0
- package/dist/types/components/Highlight.d.mts +34 -0
- package/dist/types/components/Highlight.d.ts +34 -0
- package/dist/types/components/Legend.d.mts +26 -0
- package/dist/types/components/Legend.d.ts +26 -0
- package/dist/types/components/PlotArea.d.mts +21 -0
- package/dist/types/components/PlotArea.d.ts +21 -0
- package/dist/types/components/PolarGrid.d.mts +34 -0
- package/dist/types/components/PolarGrid.d.ts +34 -0
- package/dist/types/components/RadarGrid.d.mts +25 -0
- package/dist/types/components/RadarGrid.d.ts +25 -0
- package/dist/types/components/Title.d.mts +14 -0
- package/dist/types/components/Title.d.ts +14 -0
- package/dist/types/components/Tooltip.d.mts +48 -0
- package/dist/types/components/Tooltip.d.ts +48 -0
- package/dist/types/components/series/AreaSeries.d.mts +14 -0
- package/dist/types/components/series/AreaSeries.d.ts +14 -0
- package/dist/types/components/series/BarSeries.d.mts +39 -0
- package/dist/types/components/series/BarSeries.d.ts +39 -0
- package/dist/types/components/series/BoxplotSeries.d.mts +16 -0
- package/dist/types/components/series/BoxplotSeries.d.ts +16 -0
- package/dist/types/components/series/CandlestickSeries.d.mts +13 -0
- package/dist/types/components/series/CandlestickSeries.d.ts +13 -0
- package/dist/types/components/series/CurveSeriesBase.d.mts +58 -0
- package/dist/types/components/series/CurveSeriesBase.d.ts +58 -0
- package/dist/types/components/series/FunctionSeries.d.mts +22 -0
- package/dist/types/components/series/FunctionSeries.d.ts +22 -0
- package/dist/types/components/series/FunnelSeries.d.mts +38 -0
- package/dist/types/components/series/FunnelSeries.d.ts +38 -0
- package/dist/types/components/series/GaugeSeries.d.mts +45 -0
- package/dist/types/components/series/GaugeSeries.d.ts +45 -0
- package/dist/types/components/series/GraphSeries.d.mts +39 -0
- package/dist/types/components/series/GraphSeries.d.ts +39 -0
- package/dist/types/components/series/HeatmapSeries.d.mts +21 -0
- package/dist/types/components/series/HeatmapSeries.d.ts +21 -0
- package/dist/types/components/series/LineSeries.d.mts +31 -0
- package/dist/types/components/series/LineSeries.d.ts +31 -0
- package/dist/types/components/series/LiquidSeries.d.mts +55 -0
- package/dist/types/components/series/LiquidSeries.d.ts +55 -0
- package/dist/types/components/series/ParametricSeries.d.mts +30 -0
- package/dist/types/components/series/ParametricSeries.d.ts +30 -0
- package/dist/types/components/series/PieSeries.d.mts +44 -0
- package/dist/types/components/series/PieSeries.d.ts +44 -0
- package/dist/types/components/series/RadarSeries.d.mts +30 -0
- package/dist/types/components/series/RadarSeries.d.ts +30 -0
- package/dist/types/components/series/SankeySeries.d.mts +34 -0
- package/dist/types/components/series/SankeySeries.d.ts +34 -0
- package/dist/types/components/series/ScatterSeries.d.mts +11 -0
- package/dist/types/components/series/ScatterSeries.d.ts +11 -0
- package/dist/types/components/series/SeriesBase.d.mts +214 -0
- package/dist/types/components/series/SeriesBase.d.ts +214 -0
- package/dist/types/components/series/TreemapSeries.d.mts +48 -0
- package/dist/types/components/series/TreemapSeries.d.ts +48 -0
- package/dist/types/components/series/WaterfallSeries.d.mts +17 -0
- package/dist/types/components/series/WaterfallSeries.d.ts +17 -0
- package/dist/types/components/series/createSeries.d.mts +10 -0
- package/dist/types/components/series/createSeries.d.ts +10 -0
- package/dist/types/components/series/index.d.mts +29 -0
- package/dist/types/components/series/index.d.ts +29 -0
- package/dist/types/expr/diagnostics.d.mts +45 -0
- package/dist/types/expr/diagnostics.d.ts +45 -0
- package/dist/types/expr/expr.d.mts +44 -0
- package/dist/types/expr/expr.d.ts +44 -0
- package/dist/types/expr/sample.d.mts +34 -0
- package/dist/types/expr/sample.d.ts +34 -0
- package/dist/types/index.d.mts +80 -0
- package/dist/types/index.d.ts +80 -0
- package/dist/types/interaction/ChartLink.d.mts +16 -0
- package/dist/types/interaction/ChartLink.d.ts +16 -0
- package/dist/types/interaction/HitResolver.d.mts +44 -0
- package/dist/types/interaction/HitResolver.d.ts +44 -0
- package/dist/types/interaction/InteractionController.d.mts +147 -0
- package/dist/types/interaction/InteractionController.d.ts +147 -0
- package/dist/types/internal.d.mts +232 -0
- package/dist/types/internal.d.ts +232 -0
- package/dist/types/layout/force.d.mts +48 -0
- package/dist/types/layout/force.d.ts +48 -0
- package/dist/types/layout/layout.d.mts +9 -0
- package/dist/types/layout/layout.d.ts +9 -0
- package/dist/types/layout/sankey.d.mts +47 -0
- package/dist/types/layout/sankey.d.ts +47 -0
- package/dist/types/layout/treemap.d.mts +35 -0
- package/dist/types/layout/treemap.d.ts +35 -0
- package/dist/types/option/normalize.d.mts +68 -0
- package/dist/types/option/normalize.d.ts +68 -0
- package/dist/types/scale/BandScale.d.mts +36 -0
- package/dist/types/scale/BandScale.d.ts +36 -0
- package/dist/types/scale/LinearScale.d.mts +21 -0
- package/dist/types/scale/LinearScale.d.ts +21 -0
- package/dist/types/scale/LogScale.d.mts +24 -0
- package/dist/types/scale/LogScale.d.ts +24 -0
- package/dist/types/scale/Scale.d.mts +38 -0
- package/dist/types/scale/Scale.d.ts +38 -0
- package/dist/types/scale/TimeScale.d.mts +28 -0
- package/dist/types/scale/TimeScale.d.ts +28 -0
- package/dist/types/scale/format.d.mts +5 -0
- package/dist/types/scale/format.d.ts +5 -0
- package/dist/types/scale/index.d.mts +7 -0
- package/dist/types/scale/index.d.ts +7 -0
- package/dist/types/theme/chartTheme.d.mts +54 -0
- package/dist/types/theme/chartTheme.d.ts +54 -0
- package/dist/types/types.d.mts +689 -0
- package/dist/types/types.d.ts +689 -0
- package/dist/types/util/emitter.d.mts +11 -0
- package/dist/types/util/emitter.d.ts +11 -0
- package/dist/types/util/math.d.mts +14 -0
- package/dist/types/util/math.d.ts +14 -0
- package/dist/types/util/text.d.mts +10 -0
- package/dist/types/util/text.d.ts +10 -0
- package/package.json +100 -0
|
@@ -0,0 +1,689 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ice-chart 的公开类型定义。
|
|
3
|
+
*
|
|
4
|
+
* 设计约束:`ChartOption` 必须是**纯 JSON 可序列化**的(函数字段除外,例如 formatter),
|
|
5
|
+
* 这样图表配置才能存盘、进 DSL、走 undo/redo。运行时派生的一切(比例尺、像素坐标、
|
|
6
|
+
* 命中索引)都不放在这里。
|
|
7
|
+
*/
|
|
8
|
+
/** 单条数据项:数字、[x, y]、[x, y, size](气泡图)、或对象。 */
|
|
9
|
+
export type DataItem = number | null | [any, number | null] | [any, number | null, number] | Record<string, any>;
|
|
10
|
+
export type ScaleType = 'linear' | 'category' | 'time' | 'log';
|
|
11
|
+
export type SeriesType = 'line' | 'bar' | 'area' | 'scatter' | 'pie' | 'radar' | 'candlestick' | 'heatmap' | 'sankey' | 'funnel' | 'gauge' | 'boxplot' | 'waterfall' | 'treemap' | 'graph' | 'function' | 'parametric' | 'liquid';
|
|
12
|
+
/** 力导向关系图的节点。 */
|
|
13
|
+
export interface GraphNodeOption {
|
|
14
|
+
id?: string;
|
|
15
|
+
name: string;
|
|
16
|
+
/** 权重:影响节点大小与连线粗细。 */
|
|
17
|
+
value?: number;
|
|
18
|
+
/** 分类名(对应 `graph.categories`),用于配色。 */
|
|
19
|
+
category?: string | number;
|
|
20
|
+
color?: string;
|
|
21
|
+
/** 初始坐标(给了就用它,否则按 circular 均匀铺开)。 */
|
|
22
|
+
x?: number;
|
|
23
|
+
y?: number;
|
|
24
|
+
/** 固定不动(不参与力学迭代,但可以被拖拽)。 */
|
|
25
|
+
fixed?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** 关系图的连线。source / target 可以是节点 id、name 或下标。 */
|
|
28
|
+
export interface GraphLinkOption {
|
|
29
|
+
source: string | number;
|
|
30
|
+
target: string | number;
|
|
31
|
+
value?: number;
|
|
32
|
+
color?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface GraphOption {
|
|
35
|
+
nodes: GraphNodeOption[];
|
|
36
|
+
links: GraphLinkOption[];
|
|
37
|
+
/** 布局方式:force(默认,力导向)| circular(环形)| none(只用给定坐标)。 */
|
|
38
|
+
layout?: 'force' | 'circular' | 'none';
|
|
39
|
+
/** 节点之间的斥力,默认 6000。 */
|
|
40
|
+
repulsion?: number;
|
|
41
|
+
/** 连线的理想长度(像素),默认 70。 */
|
|
42
|
+
edgeLength?: number;
|
|
43
|
+
/** 向中心的向心力,默认 0.06。 */
|
|
44
|
+
gravity?: number;
|
|
45
|
+
/** 速度阻尼(0~1),默认 0.85。 */
|
|
46
|
+
damping?: number;
|
|
47
|
+
/** 迭代次数,默认 240。 */
|
|
48
|
+
iterations?: number;
|
|
49
|
+
/** 节点直径区间,默认 [12, 48]。 */
|
|
50
|
+
symbolSizeRange?: [number, number];
|
|
51
|
+
/** 连线是否画成曲线(默认 true)。 */
|
|
52
|
+
curve?: boolean;
|
|
53
|
+
/** 分类配色表:`categories: [{ name: '前端', color: '#0d6efd' }]`。 */
|
|
54
|
+
categories?: Array<{
|
|
55
|
+
name: string;
|
|
56
|
+
color?: string;
|
|
57
|
+
}>;
|
|
58
|
+
/** 是否可以拖动节点,默认 true。 */
|
|
59
|
+
draggable?: boolean;
|
|
60
|
+
/** 拖完松手后是否再跑几轮力迭代让邻居跟随,默认 true。 */
|
|
61
|
+
settleOnDrop?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/** 矩形树图配置。 */
|
|
64
|
+
export interface TreemapOption {
|
|
65
|
+
/** 同级节点之间的间距(像素),默认 2。 */
|
|
66
|
+
gap?: number;
|
|
67
|
+
/** 只显示面积占比大于该值的标签,默认 0.02。 */
|
|
68
|
+
minLabelRatio?: number;
|
|
69
|
+
/** 子节点颜色与白色混合的比例(按 depth 递增),默认 0.18。 */
|
|
70
|
+
depthFade?: number;
|
|
71
|
+
}
|
|
72
|
+
/** 瀑布图配置。 */
|
|
73
|
+
export interface WaterfallOption {
|
|
74
|
+
increaseColor?: string;
|
|
75
|
+
decreaseColor?: string;
|
|
76
|
+
totalColor?: string;
|
|
77
|
+
/** 是否画相邻柱子之间的连接虚线,默认 true。 */
|
|
78
|
+
connector?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/** 漏斗图配置。 */
|
|
81
|
+
export interface FunnelOption {
|
|
82
|
+
/** 阶段之间的间距(像素),默认 2。 */
|
|
83
|
+
gap?: number;
|
|
84
|
+
/** 排序:descending(默认,上大下小)| ascending | none。 */
|
|
85
|
+
sort?: 'descending' | 'ascending' | 'none';
|
|
86
|
+
/** 最小阶段宽度占最大值的比例(0~1),默认 0.12 —— 保证最小的阶段仍然可见可点。 */
|
|
87
|
+
minSize?: number;
|
|
88
|
+
/** 标签位置:inside(默认,居中)| right(右侧外置)。 */
|
|
89
|
+
labelPosition?: 'inside' | 'right';
|
|
90
|
+
/** 顶部扇形是否收窄成三角形(默认 true,ECharts 的 funnel 形态)。 */
|
|
91
|
+
trapezoid?: boolean;
|
|
92
|
+
}
|
|
93
|
+
/** 仪表盘配置。 */
|
|
94
|
+
export interface GaugeOption {
|
|
95
|
+
min?: number;
|
|
96
|
+
max?: number;
|
|
97
|
+
/** 起始 / 结束角度(度):90 = 12 点方向,默认 225 → -45(顺时针扫 270°)。 */
|
|
98
|
+
startAngle?: number;
|
|
99
|
+
endAngle?: number;
|
|
100
|
+
/** 刻度分段数,默认 5。 */
|
|
101
|
+
splitNumber?: number;
|
|
102
|
+
/** 轴线宽度(像素),默认 14。 */
|
|
103
|
+
lineWidth?: number;
|
|
104
|
+
/** 阈值配色:`[[0.4, '#198754'], [0.8, '#ffc107'], [1, '#dc3545']]`。 */
|
|
105
|
+
axisLineColor?: Array<[number, string]> | null;
|
|
106
|
+
/** 指针。 */
|
|
107
|
+
pointer?: {
|
|
108
|
+
show?: boolean;
|
|
109
|
+
width?: number;
|
|
110
|
+
length?: number;
|
|
111
|
+
};
|
|
112
|
+
/** 数值文本。 */
|
|
113
|
+
detail?: {
|
|
114
|
+
show?: boolean;
|
|
115
|
+
formatter?: (value: number) => string;
|
|
116
|
+
fontSize?: number;
|
|
117
|
+
};
|
|
118
|
+
/** 名称(取数据项的 name)。 */
|
|
119
|
+
title?: {
|
|
120
|
+
show?: boolean;
|
|
121
|
+
fontSize?: number;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/** 桑基图节点。 */
|
|
125
|
+
export interface SankeyNodeOption {
|
|
126
|
+
name: string;
|
|
127
|
+
color?: string;
|
|
128
|
+
/** 强制指定层级(不传则按最长路径自动分层)。 */
|
|
129
|
+
depth?: number;
|
|
130
|
+
}
|
|
131
|
+
/** 桑基图连线。source/target 可以是节点下标或节点名。 */
|
|
132
|
+
export interface SankeyLinkOption {
|
|
133
|
+
source: string | number;
|
|
134
|
+
target: string | number;
|
|
135
|
+
value: number;
|
|
136
|
+
color?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface SankeyOption {
|
|
139
|
+
nodes: SankeyNodeOption[];
|
|
140
|
+
links: SankeyLinkOption[];
|
|
141
|
+
/** 节点宽度(像素),默认 16。 */
|
|
142
|
+
nodeWidth?: number;
|
|
143
|
+
/** 同列节点间距(像素),默认 10。 */
|
|
144
|
+
nodePadding?: number;
|
|
145
|
+
/** 纵向松弛迭代次数,默认 6。 */
|
|
146
|
+
iterations?: number;
|
|
147
|
+
label?: {
|
|
148
|
+
show?: boolean;
|
|
149
|
+
};
|
|
150
|
+
/** 连线填充不透明度,默认 0.42(深色底上可以调高一点,否则连线发闷)。 */
|
|
151
|
+
linkOpacity?: number;
|
|
152
|
+
/** 连线是否显示「流动」效果(虚线相位持续推进),默认 false。 */
|
|
153
|
+
flow?: boolean;
|
|
154
|
+
/** 流动速度(像素/秒),默认 40。 */
|
|
155
|
+
flowSpeed?: number;
|
|
156
|
+
}
|
|
157
|
+
/** 雷达图的指标轴。 */
|
|
158
|
+
export interface RadarIndicator {
|
|
159
|
+
name: string;
|
|
160
|
+
min?: number;
|
|
161
|
+
max?: number;
|
|
162
|
+
}
|
|
163
|
+
export interface RadarOption {
|
|
164
|
+
indicators: RadarIndicator[];
|
|
165
|
+
/** 网格形状:多边形(默认)或圆环。 */
|
|
166
|
+
shape?: 'polygon' | 'circle';
|
|
167
|
+
/** 网格环数,默认 4。 */
|
|
168
|
+
splitNumber?: number;
|
|
169
|
+
/** 半径占可用半径的比例,默认 0.72。 */
|
|
170
|
+
radius?: number;
|
|
171
|
+
/** 指标名称标签。 */
|
|
172
|
+
label?: {
|
|
173
|
+
show?: boolean;
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export interface AxisOption {
|
|
177
|
+
type?: ScaleType;
|
|
178
|
+
/**
|
|
179
|
+
* 类目轴直接声明类目(ECharts 兼容)。
|
|
180
|
+
* 横向柱状图就靠它:`yAxis: { type: 'category', data: ['华东', '华北'] }` + `xAxis: { type: 'value' }`。
|
|
181
|
+
*/
|
|
182
|
+
data?: any[];
|
|
183
|
+
/** y 轴位置:left / right。默认第一个 y 轴在左,其余在右。 */
|
|
184
|
+
position?: 'left' | 'right';
|
|
185
|
+
/** 轴名称,绘制在轴线外侧。 */
|
|
186
|
+
name?: string;
|
|
187
|
+
/** 数据域下限;'dataMin' 表示跟随数据。 */
|
|
188
|
+
min?: number | 'dataMin';
|
|
189
|
+
/** 数据域上限;'dataMax' 表示跟随数据。 */
|
|
190
|
+
max?: number | 'dataMax';
|
|
191
|
+
/** 是否把数据域扩展到「整齐」的刻度上,默认 true。 */
|
|
192
|
+
nice?: boolean;
|
|
193
|
+
/** 期望的刻度数量,默认 5。 */
|
|
194
|
+
tickCount?: number;
|
|
195
|
+
/** 刻度文本格式化。 */
|
|
196
|
+
formatter?: (value: any, index: number) => string;
|
|
197
|
+
show?: boolean;
|
|
198
|
+
showGrid?: boolean;
|
|
199
|
+
showAxisLine?: boolean;
|
|
200
|
+
showTick?: boolean;
|
|
201
|
+
/** 轴标签旋转角度(度),仅在水平轴上有实际意义。 */
|
|
202
|
+
labelRotate?: number;
|
|
203
|
+
inverse?: boolean;
|
|
204
|
+
/** log 轴的底数,默认 10。 */
|
|
205
|
+
logBase?: number;
|
|
206
|
+
}
|
|
207
|
+
/** 参数扫动:让某个参数在 [from, to] 之间来回,曲线连续变形(迷你 MATLAB 的「跑起来」)。 */
|
|
208
|
+
export interface SweepOption {
|
|
209
|
+
/** 参数名(表达式里出现的自由变量)。 */
|
|
210
|
+
name: string;
|
|
211
|
+
from: number;
|
|
212
|
+
to: number;
|
|
213
|
+
/** 一个来回的时长(毫秒),默认 3000。 */
|
|
214
|
+
duration?: number;
|
|
215
|
+
/** loop:锯齿波(到头重置);pingpong(默认):来回。 */
|
|
216
|
+
mode?: 'loop' | 'pingpong';
|
|
217
|
+
}
|
|
218
|
+
/** 极坐标网格(画 `r(θ)` 时的同心圆 + 辐条底图)。 */
|
|
219
|
+
export interface PolarGridOption {
|
|
220
|
+
show?: boolean;
|
|
221
|
+
/** 同心圆数量,默认 4。 */
|
|
222
|
+
splitNumber?: number;
|
|
223
|
+
/** 辐条数量(角度刻度),默认 12(每 30°)。 */
|
|
224
|
+
spokeCount?: number;
|
|
225
|
+
/** 0° 的方向(度),默认 0 = 3 点方向。 */
|
|
226
|
+
startAngle?: number;
|
|
227
|
+
/** 是否画半径刻度,默认 true。 */
|
|
228
|
+
showLabels?: boolean;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* 水位图 / 液位球:一个圆里装水,水位随数值升降、水面持续起伏。
|
|
232
|
+
* 数据大屏的常客(`type: 'liquid'`,`data: [{ name, value }]`)。
|
|
233
|
+
*/
|
|
234
|
+
export interface LiquidOption {
|
|
235
|
+
min?: number;
|
|
236
|
+
max?: number;
|
|
237
|
+
/** 水位颜色(缺省取系列色)。 */
|
|
238
|
+
color?: string;
|
|
239
|
+
/** 外圈颜色,缺省是水位色的半透明版。 */
|
|
240
|
+
borderColor?: string;
|
|
241
|
+
/** 外圈宽度(设备像素),默认 3。 */
|
|
242
|
+
borderWidth?: number;
|
|
243
|
+
/** 波高(占半径比例),默认 0.06。 */
|
|
244
|
+
waveHeight?: number;
|
|
245
|
+
/** 波长(半径的倍数),默认 1.2。 */
|
|
246
|
+
waveLength?: number;
|
|
247
|
+
/** 波速(相位/秒),默认 1.6。 */
|
|
248
|
+
waveSpeed?: number;
|
|
249
|
+
/** 数值单位后缀,默认 '%';传 '' 表示不拼单位。 */
|
|
250
|
+
unit?: string;
|
|
251
|
+
/** 中心数值颜色,缺省用主题文本色。 */
|
|
252
|
+
textColor?: string;
|
|
253
|
+
/** 是否在球心显示系列名,默认显示(没有 name 时不画)。 */
|
|
254
|
+
title?: boolean;
|
|
255
|
+
/** 中心数值:字体大小与格式化。 */
|
|
256
|
+
detail?: {
|
|
257
|
+
show?: boolean;
|
|
258
|
+
fontSize?: number;
|
|
259
|
+
formatter?: (value: number) => string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
export interface SeriesOption {
|
|
263
|
+
id?: string;
|
|
264
|
+
type: SeriesType;
|
|
265
|
+
/** 绑定的 y 轴下标,默认 0(对应 option.yAxis 数组下标)。 */
|
|
266
|
+
yAxisIndex?: number;
|
|
267
|
+
name?: string;
|
|
268
|
+
data?: DataItem[];
|
|
269
|
+
/** 对象型数据项的取值字段。 */
|
|
270
|
+
xField?: string;
|
|
271
|
+
yField?: string;
|
|
272
|
+
color?: string;
|
|
273
|
+
show?: boolean;
|
|
274
|
+
/** 折线/面积图:线宽(设备像素)。 */
|
|
275
|
+
lineWidth?: number;
|
|
276
|
+
/** 折线虚线样式(设备像素)。 */
|
|
277
|
+
lineDash?: number[];
|
|
278
|
+
/** 折线:是否平滑,true 等价于 0.3。 */
|
|
279
|
+
smooth?: boolean | number;
|
|
280
|
+
/** 折线/散点:数据点标记形状。 */
|
|
281
|
+
symbol?: 'circle' | 'rect' | 'none';
|
|
282
|
+
/** 标记大小(直径,设备像素)。 */
|
|
283
|
+
symbolSize?: number | ((value: any, params: {
|
|
284
|
+
dataIndex: number;
|
|
285
|
+
data: any;
|
|
286
|
+
seriesName: string;
|
|
287
|
+
}) => number);
|
|
288
|
+
/** 气泡图:数据项第三维映射到直径时的区间,默认 [8, 40]。 */
|
|
289
|
+
symbolSizeRange?: [number, number];
|
|
290
|
+
/** 标记填充色,默认跟随系列色。 */
|
|
291
|
+
symbolFill?: string;
|
|
292
|
+
/** 标记描边色,默认白色。 */
|
|
293
|
+
symbolStroke?: string;
|
|
294
|
+
/** 是否始终显示标记(默认:折线只在悬停时显示,散点始终显示)。 */
|
|
295
|
+
showSymbol?: boolean;
|
|
296
|
+
/** 面积图填充不透明度。 */
|
|
297
|
+
areaOpacity?: number;
|
|
298
|
+
/** 柱宽:数字为像素,0~1 的小数为 band 占比。 */
|
|
299
|
+
barWidth?: number;
|
|
300
|
+
/** 同 band 内多柱的间距占比,默认 0.2。 */
|
|
301
|
+
barGap?: number;
|
|
302
|
+
/** 堆叠分组名:同名系列在同一根柱上堆叠。 */
|
|
303
|
+
stack?: string;
|
|
304
|
+
/** 柱形圆角半径(像素)。 */
|
|
305
|
+
barRadius?: number;
|
|
306
|
+
/** 系列整体不透明度。 */
|
|
307
|
+
opacity?: number;
|
|
308
|
+
/** 命中判定的额外容差(设备像素)。 */
|
|
309
|
+
hitRadius?: number;
|
|
310
|
+
/**
|
|
311
|
+
* 大数据降采样策略。
|
|
312
|
+
* 'lttb'(默认):点数超过「绘图区宽度 × 3」时用 LTTB 抽稀,保留极值与首尾点;
|
|
313
|
+
* 'none':始终画全部点。
|
|
314
|
+
*/
|
|
315
|
+
sampling?: 'lttb' | 'none';
|
|
316
|
+
/** 饼图半径:0~1 的小数视为「可用半径占比」,>1 视为像素。 */
|
|
317
|
+
radius?: number;
|
|
318
|
+
/** 饼图内半径(环形图)。 */
|
|
319
|
+
innerRadius?: number;
|
|
320
|
+
/** 扇形起始角度(度):90 = 12 点方向。 */
|
|
321
|
+
startAngle?: number;
|
|
322
|
+
/** 是否顺时针排布扇形,默认 true。 */
|
|
323
|
+
clockwise?: boolean;
|
|
324
|
+
/** 玫瑰图:radius(半径随数值)| area(面积随数值)。 */
|
|
325
|
+
roseType?: 'radius' | 'area' | false;
|
|
326
|
+
/** K 线配色(默认红涨绿跌)。 */
|
|
327
|
+
candle?: {
|
|
328
|
+
upColor?: string;
|
|
329
|
+
downColor?: string;
|
|
330
|
+
borderWidth?: number;
|
|
331
|
+
};
|
|
332
|
+
/** 热力图配色(默认从浅到深)。 */
|
|
333
|
+
heatmap?: {
|
|
334
|
+
minColor?: string;
|
|
335
|
+
maxColor?: string;
|
|
336
|
+
};
|
|
337
|
+
/** 瀑布图配色与连接线(也可写在 option.waterfall 上,两者等价,series 优先)。 */
|
|
338
|
+
waterfall?: WaterfallOption;
|
|
339
|
+
/** 饼图标签。 */
|
|
340
|
+
label?: {
|
|
341
|
+
show?: boolean;
|
|
342
|
+
position?: 'outside' | 'inside';
|
|
343
|
+
formatter?: (params: PieLabelParams) => string;
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* 函数绘图(`type: 'function'`):`y = expression`。
|
|
347
|
+
* 支持 `+ - * / % ^`、`sin/cos/exp/log/sqrt/...`、常量 `pi/e`、隐式乘法(`2x`、`3sin(x)`)。
|
|
348
|
+
*/
|
|
349
|
+
expression?: string;
|
|
350
|
+
/** 参数曲线(`type: 'parametric'`):`x = xExpression, y = yExpression`(自变量是 `t`)。 */
|
|
351
|
+
xExpression?: string;
|
|
352
|
+
yExpression?: string;
|
|
353
|
+
/**
|
|
354
|
+
* 极坐标函数简写:`r = polarExpression`(自变量 θ 用 `t` 表示)。
|
|
355
|
+
* 组件按 `x = r·cosθ, y = r·sinθ` 展开成参数曲线 —— 玫瑰线 `1+cos(3*t)` 直接能用。
|
|
356
|
+
* 配 `aspect: 'equal'`(圆才是圆)与 `polarGrid: true`(极坐标底图)就是 MATLAB 的 polarplot。
|
|
357
|
+
*/
|
|
358
|
+
polarExpression?: string;
|
|
359
|
+
/** 参数范围:function 是 x 的取值范围(默认 [-10,10]),parametric 是 t 的范围(默认 [0, 2π])。 */
|
|
360
|
+
domain?: [number, number];
|
|
361
|
+
/** 基础采样点数(默认 240 / 360),自适应细分在此之上加点。 */
|
|
362
|
+
samples?: number;
|
|
363
|
+
/** 是否自适应细分,默认 true。关掉后按 `samples` 均匀采样(快,但峰顶/极点会失真)。 */
|
|
364
|
+
adaptive?: boolean;
|
|
365
|
+
/** 自适应阈值(相对可视跨度),越小越精细。默认 function 0.0025 / parametric 0.0015。 */
|
|
366
|
+
samplingTolerance?: number;
|
|
367
|
+
/** 表达式里的自定义参数(纯数字,会进 JSON 快照)。 */
|
|
368
|
+
params?: Record<string, number>;
|
|
369
|
+
/** 参数扫动动画:曲线随时间连续变形(动效偏好为 instant 时停在 from)。 */
|
|
370
|
+
sweep?: SweepOption;
|
|
371
|
+
}
|
|
372
|
+
export interface TitleOption {
|
|
373
|
+
text?: string;
|
|
374
|
+
subtext?: string;
|
|
375
|
+
left?: number | 'left' | 'center' | 'right';
|
|
376
|
+
top?: number;
|
|
377
|
+
textStyle?: {
|
|
378
|
+
color?: string;
|
|
379
|
+
fontSize?: number;
|
|
380
|
+
fontWeight?: string | number;
|
|
381
|
+
};
|
|
382
|
+
subtextStyle?: {
|
|
383
|
+
color?: string;
|
|
384
|
+
fontSize?: number;
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
export interface LegendOption {
|
|
388
|
+
show?: boolean;
|
|
389
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
390
|
+
/** 每项前面的色块尺寸。 */
|
|
391
|
+
itemWidth?: number;
|
|
392
|
+
itemHeight?: number;
|
|
393
|
+
itemGap?: number;
|
|
394
|
+
/** 初始选中状态:false 表示默认隐藏该系列。 */
|
|
395
|
+
selected?: Record<string, boolean>;
|
|
396
|
+
/** 点击图例是否可切换;false 表示纯展示。 */
|
|
397
|
+
selectable?: boolean;
|
|
398
|
+
}
|
|
399
|
+
export interface TooltipOption {
|
|
400
|
+
show?: boolean;
|
|
401
|
+
/** axis:跟随最近的数据列;item:只在命中数据标记时出现。 */
|
|
402
|
+
trigger?: 'axis' | 'item';
|
|
403
|
+
formatter?: (params: TooltipParams) => string | string[];
|
|
404
|
+
backgroundColor?: string;
|
|
405
|
+
borderColor?: string;
|
|
406
|
+
textColor?: string;
|
|
407
|
+
fontSize?: number;
|
|
408
|
+
/** 相对指针的偏移(设备像素)。 */
|
|
409
|
+
offset?: [number, number];
|
|
410
|
+
}
|
|
411
|
+
export interface CrosshairOption {
|
|
412
|
+
show?: boolean;
|
|
413
|
+
/** line:十字准星线;none:不画辅助线。 */
|
|
414
|
+
type?: 'line' | 'none';
|
|
415
|
+
axis?: 'x' | 'y' | 'xy';
|
|
416
|
+
lineColor?: string;
|
|
417
|
+
/** 在坐标轴上同步显示当前值。 */
|
|
418
|
+
showAxisLabel?: boolean;
|
|
419
|
+
}
|
|
420
|
+
export interface GridOption {
|
|
421
|
+
show?: boolean;
|
|
422
|
+
x?: boolean;
|
|
423
|
+
y?: boolean;
|
|
424
|
+
color?: string;
|
|
425
|
+
lineWidth?: number;
|
|
426
|
+
lineDash?: number[];
|
|
427
|
+
}
|
|
428
|
+
export interface DataZoomOption {
|
|
429
|
+
/** 初始视窗,0~100,代表占数据域的比例。 */
|
|
430
|
+
start?: number;
|
|
431
|
+
end?: number;
|
|
432
|
+
/** 缩放的最小/最大跨度(占数据域比例),默认 0.02 / 1。 */
|
|
433
|
+
minSpan?: number;
|
|
434
|
+
maxSpan?: number;
|
|
435
|
+
/** 底部滑块组件。不配置时,只要声明了 dataZoom 就默认显示。 */
|
|
436
|
+
slider?: {
|
|
437
|
+
show?: boolean;
|
|
438
|
+
/** 轨道高度(像素),默认 26。 */
|
|
439
|
+
height?: number;
|
|
440
|
+
/** 选中窗口颜色。 */
|
|
441
|
+
color?: string;
|
|
442
|
+
/** 是否在两端显示当前区间文本。 */
|
|
443
|
+
showDetail?: boolean;
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
export interface ZoomInteractionOption {
|
|
447
|
+
enabled?: boolean;
|
|
448
|
+
/** 参与缩放的轴。 */
|
|
449
|
+
axes?: 'x' | 'y' | 'xy';
|
|
450
|
+
/** 滚轮是否缩放。 */
|
|
451
|
+
wheel?: boolean;
|
|
452
|
+
/** 滚轮缩放的倍率,默认 1.2。 */
|
|
453
|
+
wheelFactor?: number;
|
|
454
|
+
/** data:直接改数据域;viewport:调用 ice.setViewport 做视图缩放。 */
|
|
455
|
+
mode?: 'data' | 'viewport';
|
|
456
|
+
}
|
|
457
|
+
export interface PanInteractionOption {
|
|
458
|
+
enabled?: boolean;
|
|
459
|
+
axes?: 'x' | 'y' | 'xy';
|
|
460
|
+
}
|
|
461
|
+
export interface BrushInteractionOption {
|
|
462
|
+
enabled?: boolean;
|
|
463
|
+
axes?: 'x' | 'y' | 'xy';
|
|
464
|
+
/** select:只发事件 + 保留刷选框;zoom:松手后把刷选范围应用为数据域。 */
|
|
465
|
+
mode?: 'select' | 'zoom';
|
|
466
|
+
/** 画笔颜色。 */
|
|
467
|
+
color?: string;
|
|
468
|
+
}
|
|
469
|
+
export interface InteractionOption {
|
|
470
|
+
hover?: {
|
|
471
|
+
enabled?: boolean;
|
|
472
|
+
mode?: 'nearest-x' | 'item';
|
|
473
|
+
dimOthers?: boolean;
|
|
474
|
+
};
|
|
475
|
+
select?: {
|
|
476
|
+
enabled?: boolean;
|
|
477
|
+
mode?: 'single' | 'multiple';
|
|
478
|
+
toggle?: boolean;
|
|
479
|
+
};
|
|
480
|
+
brush?: BrushInteractionOption | false;
|
|
481
|
+
zoom?: ZoomInteractionOption | false;
|
|
482
|
+
pan?: PanInteractionOption | false;
|
|
483
|
+
/** 键盘导航(←/→ 移动活动点,Esc 取消选择)。 */
|
|
484
|
+
keyboard?: boolean;
|
|
485
|
+
}
|
|
486
|
+
/** 一段动画的配置。 */
|
|
487
|
+
export interface AnimationStageOption {
|
|
488
|
+
duration?: number;
|
|
489
|
+
/** 整体延迟(毫秒)。 */
|
|
490
|
+
delay?: number;
|
|
491
|
+
easing?: string;
|
|
492
|
+
/**
|
|
493
|
+
* 错峰比例(0~1):把入场拆成「依次发生」的波浪。
|
|
494
|
+
* 0.4 表示最后一个数据项比第一个晚 0.4 段,所有项仍会在同一时刻结束。
|
|
495
|
+
*/
|
|
496
|
+
stagger?: number;
|
|
497
|
+
}
|
|
498
|
+
export interface AnimationOption {
|
|
499
|
+
enabled?: boolean;
|
|
500
|
+
/** 入场动画(首次渲染与系列新增)。 */
|
|
501
|
+
enter?: AnimationStageOption | false;
|
|
502
|
+
/** 数据更新动画(setData / setOption 之后)。 */
|
|
503
|
+
update?: AnimationStageOption | false;
|
|
504
|
+
/** 交互反馈动画(悬停放大等)。 */
|
|
505
|
+
highlight?: AnimationStageOption | false;
|
|
506
|
+
/** 兼容扁平写法:等价于 enter.duration / enter.easing / enter.stagger。 */
|
|
507
|
+
duration?: number;
|
|
508
|
+
easing?: string;
|
|
509
|
+
stagger?: number;
|
|
510
|
+
}
|
|
511
|
+
export interface ChartOption {
|
|
512
|
+
/** 'light' | 'dark' | 'auto'(跟随 ice-render 实例主题)| 自定义主题片段。 */
|
|
513
|
+
theme?: 'light' | 'dark' | 'auto' | Partial<ChartTheme>;
|
|
514
|
+
title?: TitleOption;
|
|
515
|
+
xAxis?: AxisOption;
|
|
516
|
+
/** 单个 y 轴,或 y 轴数组(多轴叠加:涨跌幅用右轴、成交量用左轴之类)。 */
|
|
517
|
+
yAxis?: AxisOption | AxisOption[];
|
|
518
|
+
grid?: GridOption;
|
|
519
|
+
legend?: LegendOption;
|
|
520
|
+
tooltip?: TooltipOption;
|
|
521
|
+
crosshair?: CrosshairOption;
|
|
522
|
+
dataZoom?: DataZoomOption;
|
|
523
|
+
/** 雷达图配置(存在雷达系列时必填)。 */
|
|
524
|
+
radar?: RadarOption;
|
|
525
|
+
/** 桑基图配置(存在桑基系列时必填)。 */
|
|
526
|
+
sankey?: SankeyOption;
|
|
527
|
+
/** 漏斗图配置。 */
|
|
528
|
+
funnel?: FunnelOption;
|
|
529
|
+
/** 仪表盘配置。 */
|
|
530
|
+
gauge?: GaugeOption;
|
|
531
|
+
/** 水位图配置(存在 liquid 系列时生效)。 */
|
|
532
|
+
liquid?: LiquidOption;
|
|
533
|
+
/** 瀑布图配置。 */
|
|
534
|
+
waterfall?: WaterfallOption;
|
|
535
|
+
/** 矩形树图配置。 */
|
|
536
|
+
treemap?: TreemapOption;
|
|
537
|
+
/** 力导向关系图配置。 */
|
|
538
|
+
graph?: GraphOption;
|
|
539
|
+
/** 极坐标网格(画 `r(θ)` 时的同心圆 + 辐条底图)。 */
|
|
540
|
+
polarGrid?: boolean | PolarGridOption;
|
|
541
|
+
/**
|
|
542
|
+
* 坐标轴比例:`'equal'` = x/y 一个数据单位在屏幕上等长(MATLAB 的 `axis equal`)。
|
|
543
|
+
* 画圆 / 参数曲线 / 几何图形时必须开,否则圆会被拉成椭圆(绘图区本身也会收缩成正方形)。
|
|
544
|
+
*/
|
|
545
|
+
aspect?: 'auto' | 'equal';
|
|
546
|
+
interaction?: InteractionOption;
|
|
547
|
+
animation?: AnimationOption;
|
|
548
|
+
margin?: Partial<Margin>;
|
|
549
|
+
series: SeriesOption[];
|
|
550
|
+
}
|
|
551
|
+
export interface Margin {
|
|
552
|
+
top: number;
|
|
553
|
+
right: number;
|
|
554
|
+
bottom: number;
|
|
555
|
+
left: number;
|
|
556
|
+
}
|
|
557
|
+
export interface ChartTheme {
|
|
558
|
+
backgroundColor: string;
|
|
559
|
+
colorPalette: string[];
|
|
560
|
+
textColor: string;
|
|
561
|
+
subTextColor: string;
|
|
562
|
+
axisLineColor: string;
|
|
563
|
+
axisLabelColor: string;
|
|
564
|
+
splitLineColor: string;
|
|
565
|
+
/**
|
|
566
|
+
* 压在图形上的文字(桑基节点名 / 关系图节点名)的描边色。
|
|
567
|
+
*
|
|
568
|
+
* 浅色主题用白色描边、深色主题必须换成深色 —— 写死白色会在深色大屏里
|
|
569
|
+
* 变成一层白糊(实测桑基节点名完全不可读)。
|
|
570
|
+
*/
|
|
571
|
+
labelHaloColor: string;
|
|
572
|
+
fontFamily: string;
|
|
573
|
+
fontSize: number;
|
|
574
|
+
legend: {
|
|
575
|
+
textColor: string;
|
|
576
|
+
inactiveColor: string;
|
|
577
|
+
};
|
|
578
|
+
tooltip: {
|
|
579
|
+
background: string;
|
|
580
|
+
borderColor: string;
|
|
581
|
+
textColor: string;
|
|
582
|
+
shadowColor: string;
|
|
583
|
+
fontSize: number;
|
|
584
|
+
padding: number;
|
|
585
|
+
radius: number;
|
|
586
|
+
};
|
|
587
|
+
crosshair: {
|
|
588
|
+
lineColor: string;
|
|
589
|
+
labelBackground: string;
|
|
590
|
+
labelColor: string;
|
|
591
|
+
};
|
|
592
|
+
brush: {
|
|
593
|
+
fill: string;
|
|
594
|
+
stroke: string;
|
|
595
|
+
};
|
|
596
|
+
selection: {
|
|
597
|
+
stroke: string;
|
|
598
|
+
dimOpacity: number;
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
/** 悬停/点击时对外抛出的数据项描述。 */
|
|
602
|
+
export interface DataPointParams {
|
|
603
|
+
seriesId: string;
|
|
604
|
+
seriesName: string;
|
|
605
|
+
seriesIndex: number;
|
|
606
|
+
seriesType: SeriesType;
|
|
607
|
+
color: string;
|
|
608
|
+
/** 系列内部的数据下标。 */
|
|
609
|
+
dataIndex: number;
|
|
610
|
+
/** 原始数据项。 */
|
|
611
|
+
data: any;
|
|
612
|
+
/** x 原始值(category 轴为类目,value/time 轴为数值/时间戳)。 */
|
|
613
|
+
xValue: any;
|
|
614
|
+
/** y 数值。 */
|
|
615
|
+
value: number | null;
|
|
616
|
+
/** 该点在画布上的像素坐标(CSS 像素)。 */
|
|
617
|
+
screen: [number, number];
|
|
618
|
+
}
|
|
619
|
+
/** 饼图 / 玫瑰图标签回调参数。 */
|
|
620
|
+
export interface PieLabelParams {
|
|
621
|
+
name: string;
|
|
622
|
+
value: number | null;
|
|
623
|
+
/** 占可见扇区之和的百分比(0~100)。 */
|
|
624
|
+
percent: number;
|
|
625
|
+
dataIndex: number;
|
|
626
|
+
seriesId: string;
|
|
627
|
+
seriesName: string;
|
|
628
|
+
color: string;
|
|
629
|
+
}
|
|
630
|
+
export interface TooltipParams {
|
|
631
|
+
/** item 触发器时长度为 1;axis 触发器时是所有可见系列在该列上的点。 */
|
|
632
|
+
items: DataPointParams[];
|
|
633
|
+
dataIndex: number;
|
|
634
|
+
xValue: any;
|
|
635
|
+
}
|
|
636
|
+
export interface BrushRange {
|
|
637
|
+
x?: [any, any];
|
|
638
|
+
y?: [number, number];
|
|
639
|
+
}
|
|
640
|
+
export interface ZoomRange {
|
|
641
|
+
x?: [any, any];
|
|
642
|
+
y?: [number, number];
|
|
643
|
+
}
|
|
644
|
+
export interface LegendToggleParams {
|
|
645
|
+
seriesId: string;
|
|
646
|
+
seriesName: string;
|
|
647
|
+
seriesIndex: number;
|
|
648
|
+
selected: boolean;
|
|
649
|
+
/** 饼图扇区被切换时带上数据下标。 */
|
|
650
|
+
dataIndex?: number;
|
|
651
|
+
}
|
|
652
|
+
export type ChartEventName = 'item:hover' | 'item:leave' | 'item:click' | 'item:dblclick' | 'plot:click' | 'chart:click' | 'select:change' | 'brush:change' | 'brush:end' | 'zoom:change' | 'pan:change' | 'legend:toggle' | 'data:change' | 'render';
|
|
653
|
+
export interface ChartEventPayloads {
|
|
654
|
+
'item:hover': DataPointParams;
|
|
655
|
+
'item:leave': undefined;
|
|
656
|
+
'item:click': DataPointParams;
|
|
657
|
+
'item:dblclick': DataPointParams;
|
|
658
|
+
'plot:click': {
|
|
659
|
+
screen: [number, number];
|
|
660
|
+
xValue?: any;
|
|
661
|
+
yValue?: number;
|
|
662
|
+
};
|
|
663
|
+
'chart:click': {
|
|
664
|
+
screen: [number, number];
|
|
665
|
+
};
|
|
666
|
+
'select:change': DataPointParams[];
|
|
667
|
+
'brush:change': BrushRange | null;
|
|
668
|
+
'brush:end': BrushRange | null;
|
|
669
|
+
'zoom:change': ZoomRange;
|
|
670
|
+
'pan:change': ZoomRange;
|
|
671
|
+
'legend:toggle': LegendToggleParams;
|
|
672
|
+
/** 通过 setData / setOption 更新数据后触发。 */
|
|
673
|
+
'data:change': {
|
|
674
|
+
seriesId?: string;
|
|
675
|
+
seriesIndex?: number;
|
|
676
|
+
};
|
|
677
|
+
render: undefined;
|
|
678
|
+
}
|
|
679
|
+
export type ChartEventHandler<K extends ChartEventName> = (payload: ChartEventPayloads[K]) => void;
|
|
680
|
+
export interface ChartLinkOption {
|
|
681
|
+
/** 联动哪个轴的数据域,默认 'x'。 */
|
|
682
|
+
axis?: 'x' | 'y' | 'xy';
|
|
683
|
+
/** 悬停联动:显示同 x 位置的十字准星/提示。 */
|
|
684
|
+
hover?: boolean;
|
|
685
|
+
/** 缩放联动。 */
|
|
686
|
+
zoom?: boolean;
|
|
687
|
+
/** 刷选联动。 */
|
|
688
|
+
brush?: boolean;
|
|
689
|
+
}
|