@agions/taroviz 1.1.1 → 1.2.1

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.
Files changed (81) hide show
  1. package/README.md +324 -53
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/esm/index.js +82979 -0
  4. package/package.json +160 -30
  5. package/src/__tests__/integration.test.tsx +168 -0
  6. package/src/adapters/__tests__/index.test.ts +91 -0
  7. package/src/adapters/h5/__tests__/index.test.ts +156 -0
  8. package/src/adapters/h5/index.ts +301 -0
  9. package/src/adapters/harmony/index.ts +274 -0
  10. package/src/adapters/index.ts +166 -0
  11. package/src/adapters/swan/index.ts +274 -0
  12. package/src/adapters/tt/index.ts +274 -0
  13. package/src/adapters/types.ts +162 -0
  14. package/src/adapters/weapp/index.ts +237 -0
  15. package/src/charts/bar/__tests__/index.test.tsx +113 -0
  16. package/src/charts/bar/index.tsx +18 -0
  17. package/src/charts/common/BaseChartWrapper.tsx +136 -0
  18. package/src/charts/funnel/index.tsx +18 -0
  19. package/src/charts/gauge/index.tsx +18 -0
  20. package/src/charts/heatmap/index.tsx +18 -0
  21. package/src/charts/index.ts +21 -0
  22. package/src/charts/line/__tests__/index.test.tsx +107 -0
  23. package/src/charts/line/index.tsx +18 -0
  24. package/src/charts/pie/__tests__/index.test.tsx +112 -0
  25. package/src/charts/pie/index.tsx +19 -0
  26. package/src/charts/radar/index.tsx +18 -0
  27. package/src/charts/scatter/index.tsx +18 -0
  28. package/src/charts/types.ts +619 -0
  29. package/src/charts/utils.ts +56 -0
  30. package/src/core/__tests__/platform.test.ts +48 -0
  31. package/src/core/animation/AnimationManager.ts +391 -0
  32. package/src/core/animation/index.ts +20 -0
  33. package/src/core/animation/types.ts +248 -0
  34. package/src/core/components/BaseChart.tsx +1313 -0
  35. package/src/core/components/ErrorBoundary.tsx +458 -0
  36. package/src/core/echarts.ts +58 -0
  37. package/src/core/index.ts +22 -0
  38. package/src/core/types/chart.ts +66 -0
  39. package/src/core/types/common.ts +224 -0
  40. package/src/core/types/index.ts +281 -0
  41. package/src/core/types/platform.ts +325 -0
  42. package/src/core/utils/__tests__/common.test.ts +52 -0
  43. package/src/core/utils/__tests__/environment.test.ts +94 -0
  44. package/src/core/utils/__tests__/i18n.test.ts +247 -0
  45. package/src/core/utils/__tests__/index.test.ts +219 -0
  46. package/src/core/utils/__tests__/uuid.test.ts +78 -0
  47. package/src/core/utils/chartInstances.ts +69 -0
  48. package/src/core/utils/codeGenerator/CodeGenerator.ts +655 -0
  49. package/src/core/utils/codeGenerator/index.ts +13 -0
  50. package/src/core/utils/codeGenerator/types.ts +198 -0
  51. package/src/core/utils/common.ts +58 -0
  52. package/src/core/utils/configGenerator/ConfigGenerator.ts +583 -0
  53. package/src/core/utils/configGenerator/index.ts +13 -0
  54. package/src/core/utils/configGenerator/types.ts +445 -0
  55. package/src/core/utils/debug/DebugPanel.tsx +637 -0
  56. package/src/core/utils/debug/debugger.ts +322 -0
  57. package/src/core/utils/debug/index.ts +21 -0
  58. package/src/core/utils/debug/types.ts +142 -0
  59. package/src/core/utils/i18n.ts +452 -0
  60. package/src/core/utils/index.ts +162 -0
  61. package/src/core/utils/performance/PerformanceAnalyzer.ts +586 -0
  62. package/src/core/utils/performance/index.ts +13 -0
  63. package/src/core/utils/performance/types.ts +180 -0
  64. package/src/core/utils/uuid.ts +30 -0
  65. package/src/editor/ThemeEditor.tsx +449 -0
  66. package/src/editor/index.ts +10 -0
  67. package/src/hooks/__tests__/index.test.tsx +333 -0
  68. package/src/hooks/index.ts +594 -0
  69. package/src/index.ts +75 -0
  70. package/src/main.tsx +247 -0
  71. package/src/react-dom.d.ts +7 -0
  72. package/src/themes/__tests__/index.test.ts +91 -0
  73. package/src/themes/index.ts +860 -0
  74. package/dist/389.index.esm.js +0 -1
  75. package/dist/389.index.js +0 -1
  76. package/dist/633.index.esm.js +0 -1
  77. package/dist/633.index.js +0 -1
  78. package/dist/967.index.esm.js +0 -1
  79. package/dist/967.index.js +0 -1
  80. package/dist/index.esm.js +0 -1
  81. package/dist/index.js +0 -1
@@ -0,0 +1,445 @@
1
+ /**
2
+ * TaroViz 图表配置生成器类型定义
3
+ */
4
+
5
+ import { EChartsOption } from '../../types';
6
+
7
+ /**
8
+ * 图表类型
9
+ */
10
+ export type ChartType =
11
+ | 'line'
12
+ | 'bar'
13
+ | 'pie'
14
+ | 'scatter'
15
+ | 'radar'
16
+ | 'heatmap'
17
+ | 'gauge'
18
+ | 'funnel'
19
+ | 'tree'
20
+ | 'treemap'
21
+ | 'sunburst'
22
+ | 'boxplot'
23
+ | 'candlestick'
24
+ | 'effectScatter'
25
+ | 'lines'
26
+ | 'graph'
27
+ | 'sankey'
28
+ | 'parallel'
29
+ | 'liquid'
30
+ | 'map'
31
+ | 'wordCloud'
32
+ | 'custom';
33
+
34
+ /**
35
+ * 数据系列类型
36
+ */
37
+ export type SeriesType =
38
+ | 'line'
39
+ | 'bar'
40
+ | 'pie'
41
+ | 'scatter'
42
+ | 'radar'
43
+ | 'heatmap'
44
+ | 'gauge'
45
+ | 'funnel'
46
+ | 'tree'
47
+ | 'treemap'
48
+ | 'sunburst'
49
+ | 'boxplot'
50
+ | 'candlestick'
51
+ | 'effectScatter'
52
+ | 'lines'
53
+ | 'graph'
54
+ | 'sankey'
55
+ | 'parallel'
56
+ | 'liquid'
57
+ | 'map'
58
+ | 'wordCloud'
59
+ | 'custom';
60
+
61
+ /**
62
+ * 坐标轴类型
63
+ */
64
+ export type AxisType = 'category' | 'value' | 'time' | 'log';
65
+
66
+ /**
67
+ * 数据项类型
68
+ */
69
+ export interface DataItem {
70
+ /**
71
+ * 数据名称
72
+ */
73
+ name?: string;
74
+ /**
75
+ * 数据值
76
+ */
77
+ value: number | number[];
78
+ /**
79
+ * 数据标签
80
+ */
81
+ label?: string;
82
+ /**
83
+ * 数据颜色
84
+ */
85
+ color?: string;
86
+ /**
87
+ * 其他自定义属性
88
+ */
89
+ [key: string]: any;
90
+ }
91
+
92
+ /**
93
+ * 系列配置
94
+ */
95
+ export interface SeriesConfig {
96
+ /**
97
+ * 系列名称
98
+ */
99
+ name?: string;
100
+ /**
101
+ * 系列类型
102
+ */
103
+ type: SeriesType;
104
+ /**
105
+ * 系列数据
106
+ */
107
+ data: DataItem[];
108
+ /**
109
+ * X轴索引
110
+ */
111
+ xAxisIndex?: number;
112
+ /**
113
+ * Y轴索引
114
+ */
115
+ yAxisIndex?: number;
116
+ /**
117
+ * 是否显示图例
118
+ */
119
+ showInLegend?: boolean;
120
+ /**
121
+ * 系列样式配置
122
+ */
123
+ style?: {
124
+ /**
125
+ * 颜色
126
+ */
127
+ color?: string;
128
+ /**
129
+ * 宽度
130
+ */
131
+ width?: number;
132
+ /**
133
+ * 高度
134
+ */
135
+ height?: number;
136
+ /**
137
+ * 其他样式属性
138
+ */
139
+ [key: string]: any;
140
+ };
141
+ /**
142
+ * 其他自定义属性
143
+ */
144
+ [key: string]: any;
145
+ }
146
+
147
+ /**
148
+ * 坐标轴配置
149
+ */
150
+ export interface AxisConfig {
151
+ /**
152
+ * 坐标轴类型
153
+ */
154
+ type: AxisType;
155
+ /**
156
+ * 坐标轴名称
157
+ */
158
+ name?: string;
159
+ /**
160
+ * 坐标轴数据
161
+ */
162
+ data?: string[];
163
+ /**
164
+ * 是否显示坐标轴
165
+ */
166
+ show?: boolean;
167
+ /**
168
+ * 坐标轴位置
169
+ */
170
+ position?: 'top' | 'bottom' | 'left' | 'right';
171
+ /**
172
+ * 其他自定义属性
173
+ */
174
+ [key: string]: any;
175
+ }
176
+
177
+ /**
178
+ * 图例配置
179
+ */
180
+ export interface LegendConfig {
181
+ /**
182
+ * 是否显示图例
183
+ */
184
+ show?: boolean;
185
+ /**
186
+ * 图例位置
187
+ */
188
+ position?: 'top' | 'bottom' | 'left' | 'right';
189
+ /**
190
+ * 图例类型
191
+ */
192
+ type?: 'plain' | 'scroll';
193
+ /**
194
+ * 其他自定义属性
195
+ */
196
+ [key: string]: any;
197
+ }
198
+
199
+ /**
200
+ * 提示框配置
201
+ */
202
+ export interface TooltipConfig {
203
+ /**
204
+ * 是否显示提示框
205
+ */
206
+ show?: boolean;
207
+ /**
208
+ * 提示框触发方式
209
+ */
210
+ trigger?: 'item' | 'axis' | 'none';
211
+ /**
212
+ * 提示框格式化函数
213
+ */
214
+ formatter?: string | ((params: any) => string);
215
+ /**
216
+ * 其他自定义属性
217
+ */
218
+ [key: string]: any;
219
+ }
220
+
221
+ /**
222
+ * 工具箱配置
223
+ */
224
+ export interface ToolboxConfig {
225
+ /**
226
+ * 是否显示工具箱
227
+ */
228
+ show?: boolean;
229
+ /**
230
+ * 工具箱功能
231
+ */
232
+ feature?: {
233
+ /**
234
+ * 保存图片
235
+ */
236
+ saveAsImage?: boolean | object;
237
+ /**
238
+ * 数据视图
239
+ */
240
+ dataView?: boolean | object;
241
+ /**
242
+ * 数据缩放
243
+ */
244
+ dataZoom?: boolean | object;
245
+ /**
246
+ * 重置
247
+ */
248
+ restore?: boolean | object;
249
+ /**
250
+ * 切换图表类型
251
+ */
252
+ magicType?: boolean | object;
253
+ /**
254
+ * 数据筛选
255
+ */
256
+ dataFilter?: boolean | object;
257
+ };
258
+ /**
259
+ * 其他自定义属性
260
+ */
261
+ [key: string]: any;
262
+ }
263
+
264
+ /**
265
+ * 数据缩放配置
266
+ */
267
+ export interface DataZoomConfig {
268
+ /**
269
+ * 是否显示数据缩放
270
+ */
271
+ show?: boolean;
272
+ /**
273
+ * 数据缩放类型
274
+ */
275
+ type?: 'inside' | 'slider';
276
+ /**
277
+ * 数据缩放起始位置
278
+ */
279
+ start?: number;
280
+ /**
281
+ * 数据缩放结束位置
282
+ */
283
+ end?: number;
284
+ /**
285
+ * 其他自定义属性
286
+ */
287
+ [key: string]: any;
288
+ }
289
+
290
+ /**
291
+ * 图表配置生成器选项
292
+ */
293
+ export interface ConfigGeneratorOptions {
294
+ /**
295
+ * 图表类型
296
+ */
297
+ chartType: ChartType;
298
+ /**
299
+ * 图表标题
300
+ */
301
+ title?: string | { text: string; subtext?: string };
302
+ /**
303
+ * 图表副标题
304
+ */
305
+ subtitle?: string;
306
+ /**
307
+ * 系列配置
308
+ */
309
+ series: SeriesConfig[];
310
+ /**
311
+ * X轴配置
312
+ */
313
+ xAxis?: AxisConfig | AxisConfig[];
314
+ /**
315
+ * Y轴配置
316
+ */
317
+ yAxis?: AxisConfig | AxisConfig[];
318
+ /**
319
+ * 图例配置
320
+ */
321
+ legend?: LegendConfig;
322
+ /**
323
+ * 提示框配置
324
+ */
325
+ tooltip?: TooltipConfig;
326
+ /**
327
+ * 工具箱配置
328
+ */
329
+ toolbox?: ToolboxConfig;
330
+ /**
331
+ * 数据缩放配置
332
+ */
333
+ dataZoom?: DataZoomConfig | DataZoomConfig[];
334
+ /**
335
+ * 图表主题
336
+ */
337
+ theme?: string;
338
+ /**
339
+ * 图表宽度
340
+ */
341
+ width?: number | string;
342
+ /**
343
+ * 图表高度
344
+ */
345
+ height?: number | string;
346
+ /**
347
+ * 是否响应式
348
+ */
349
+ responsive?: boolean;
350
+ /**
351
+ * 其他自定义属性
352
+ */
353
+ [key: string]: any;
354
+ }
355
+
356
+ /**
357
+ * 图表配置模板
358
+ */
359
+ export interface ChartConfigTemplate {
360
+ /**
361
+ * 模板名称
362
+ */
363
+ name: string;
364
+ /**
365
+ * 模板描述
366
+ */
367
+ description: string;
368
+ /**
369
+ * 模板适用的图表类型
370
+ */
371
+ chartTypes: ChartType[];
372
+ /**
373
+ * 模板配置
374
+ */
375
+ config: Partial<ConfigGeneratorOptions>;
376
+ /**
377
+ * 模板缩略图
378
+ */
379
+ thumbnail?: string;
380
+ }
381
+
382
+ /**
383
+ * 配置生成器结果
384
+ */
385
+ export interface ConfigGeneratorResult {
386
+ /**
387
+ * 生成的ECharts配置
388
+ */
389
+ option: EChartsOption;
390
+ /**
391
+ * 生成配置的元数据
392
+ */
393
+ metadata: {
394
+ /**
395
+ * 图表类型
396
+ */
397
+ chartType: ChartType;
398
+ /**
399
+ * 系列数量
400
+ */
401
+ seriesCount: number;
402
+ /**
403
+ * 数据项数量
404
+ */
405
+ dataItemCount: number;
406
+ /**
407
+ * 生成时间
408
+ */
409
+ generatedAt: number;
410
+ };
411
+ }
412
+
413
+ /**
414
+ * 配置生成器事件类型
415
+ */
416
+ export enum ConfigGeneratorEventType {
417
+ /**
418
+ * 配置生成开始事件
419
+ */
420
+ GENERATE_START = 'configGenerateStart',
421
+ /**
422
+ * 配置生成完成事件
423
+ */
424
+ GENERATE_COMPLETE = 'configGenerateComplete',
425
+ /**
426
+ * 配置生成失败事件
427
+ */
428
+ GENERATE_ERROR = 'configGenerateError',
429
+ /**
430
+ * 模板应用事件
431
+ */
432
+ TEMPLATE_APPLY = 'templateApply',
433
+ /**
434
+ * 配置预览事件
435
+ */
436
+ CONFIG_PREVIEW = 'configPreview',
437
+ }
438
+
439
+ /**
440
+ * 配置生成器事件处理器
441
+ */
442
+ export type ConfigGeneratorEventHandler = (event: {
443
+ type: ConfigGeneratorEventType;
444
+ data?: any;
445
+ }) => void;