visualifyjs 2.5.3-2.dev → 3.0.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/.claude/mem/TIMELINE.md +36 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-external-script-solution.md +24 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-session-summary.md +43 -0
- package/.claude/mem/notes/2026-02-11-cli-fix-editor-command-alias.md +26 -0
- package/.claude/mem/notes/2026-02-11-phase-3-developer-experience-completed.md +51 -0
- package/.claude/mem/notes/2026-02-11-phase-4-web-workers-implementation-complete.md +59 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-3d-visualization-complete.md +50 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-committed-ready-for-phase-3.md +33 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-3-complete-developer-experience.md +52 -0
- package/.claude/mem/notes/2026-02-11-visualify-repository-cleanup-complete.md +28 -0
- package/.claude/mem/notes/2026-02-18-codebase-cleanup-docsify-plugin-documentation.md +37 -0
- package/.claude/mem/notes/2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller.md +18 -0
- package/.claude/mem/notes/2026-02-19-docsify-plugin-fixes-latex-and-visualify-code-bloc.md +26 -0
- package/.claude/mem/notes/2026-02-19-page-mode-docs-update-decisions.md +23 -0
- package/.claude/mem/notes/2026-02-19-react-context-infinite-re-render-loop-fix-pattern.md +31 -0
- package/.claude/mem/notes/2026-02-19-version-300-bump-and-build-fixes.md +32 -0
- package/.claude/mem/notes/2026-02-19-visualify-build-deployment-architecture-bug-fixes.md +25 -0
- package/.claude/mem/notes/2026-02-19-visualify-dist-iife-self-contained-build-config.md +30 -0
- package/.claude/mem/notes/2026-02-19-visualify-infinite-loop-i18n-fixes.md +31 -0
- package/.claude/mem/notes/2026-02-19-visualify-v3-bundle-splitting-docs-restructuring.md +32 -0
- package/.claude/mem/notes/2026-02-20-bundle-externalization-final-architecture.md +29 -0
- package/.claude/mem/notes/2026-02-20-chromium-page-fix-unstable-keys-and-double-event-b.md +27 -0
- package/.claude/mem/notes/2026-02-20-console-cleanup-bundle-optimization-commit.md +20 -0
- package/.claude/mem/notes/2026-02-20-dotbio-dot-plot-fix-useeffect-dependency.md +21 -0
- package/.claude/mem/notes/2026-02-20-public-folder-cleanup-and-readme-rewrite.md +25 -0
- package/.claude/mem/notes/2026-02-20-v300-release-and-beta-channel-strategy.md +29 -0
- package/.claude/mem/notes/2026-02-20-visium-background-image-unknown-legend-fix.md +19 -0
- package/.claude/mem/notes/2026-02-20-visualify-cdn-loader-bundle-externalization.md +34 -0
- package/.claude/mem/sessions/session-2026-02-20-031524.md +54 -0
- package/.claude/settings.local.json +21 -0
- package/.github/workflows/static.yml.bak +51 -51
- package/.sisyphus/boulder.json +65 -0
- package/.sisyphus/plans/phase-4-advanced-optimizations.md +217 -0
- package/LICENSE +674 -674
- package/README.md +94 -59
- package/config-overrides.js +31 -31
- package/dist/stats.html +4949 -0
- package/dist/visualify-3d.esm.js +1 -0
- package/dist/visualify-3d.js +1 -0
- package/dist/visualify-core.esm.js +1 -0
- package/dist/visualify-core.js +1 -0
- package/dist/visualify-docs.esm.js +1 -0
- package/dist/visualify-docs.js +1 -0
- package/dist/visualify-loader.js +1 -0
- package/dist/visualify-pages.esm.js +1 -0
- package/dist/visualify-pages.js +1 -0
- package/dist/visualify-portal.esm.js +1 -0
- package/dist/visualify-portal.js +1 -0
- package/dist/visualify-shared.js +26571 -0
- package/dist/visualify.js +1 -188
- package/docs/CHANGELOG.md +148 -0
- package/docs/cli/commands.md +513 -0
- package/docs/configuration/visualify-json.md +474 -0
- package/docs/docs/3d-visualization.md +374 -0
- package/docs/docs/CLI.md +303 -34
- package/docs/docs/README.md +65 -65
- package/docs/docs/Rechart/bar.md +190 -190
- package/docs/docs/Rechart/funnel.md +241 -241
- package/docs/docs/Rechart/line.md +355 -355
- package/docs/docs/Rechart/pie.md +225 -225
- package/docs/docs/Rechart/radar.md +253 -253
- package/docs/docs/Rechart/scatter.md +298 -298
- package/docs/docs/_404.md +51 -51
- package/docs/docs/_coverpage.md +11 -11
- package/docs/docs/_sidebar.md +54 -44
- package/docs/docs/components/dotBio.md +87 -34
- package/docs/docs/components/echart.md +171 -82
- package/docs/docs/components/html.md +61 -34
- package/docs/docs/components/macaron.md +156 -145
- package/docs/docs/components/markdown.md +42 -0
- package/docs/docs/components/more.md +183 -142
- package/docs/docs/components/plotly.md +132 -62
- package/docs/docs/components/scatterL.md +171 -70
- package/docs/docs/components/visium.md +112 -57
- package/docs/docs/configuration.md +121 -121
- package/docs/docs/deploy.md +31 -31
- package/docs/docs/docsify-plugin.md +655 -0
- package/docs/docs/hmr.md +165 -0
- package/docs/docs/i18n.md +332 -0
- package/docs/docs/log.md +30 -9
- package/docs/docs/more-pages.md +23 -23
- package/docs/docs/quickstart.md +148 -124
- package/docs/docs/rechart-attributes.md +74 -74
- package/docs/docs/rechart-basic-usage.md +160 -162
- package/docs/docs/theme.md +5 -5
- package/docs/docs/typescript.md +306 -0
- package/docs/docs/visual-editor.md +359 -0
- package/docs/index.html +85 -71
- package/docs/manifest.json +23 -23
- package/docs/migration/v3-migration.md +392 -0
- package/docs/static/css/fluff-stuff.css +169 -169
- package/docs/static/css/font-awesome.min.css +4 -4
- package/docs/static/css/visualify.css +6 -25
- package/docs/static/js/3d-viz-examples.js +181 -0
- package/docs/static/js/configuration.js +630 -448
- package/docs/static/js/visualify.js +1 -188
- package/package.json +106 -84
- package/rollup.config.mjs +766 -76
- package/src/_css/404.css +115 -115
- package/src/_css/App.css +37 -37
- package/src/_css/autoSuggestion.css +26 -26
- package/src/_css/circular-progress.css +32 -32
- package/src/_css/index.css +36 -36
- package/src/_css/modern.css +350 -25
- package/src/_media/corner.svg +8 -8
- package/src/_media/download.svg +3 -3
- package/src/_media/logo.svg +14 -14
- package/src/_test/App.test.js +15 -15
- package/src/_utils/reportWebVitals.js +13 -13
- package/src/a11y/README.md +177 -0
- package/src/a11y/aria-labels.js +339 -0
- package/src/a11y/color-contrast.js +535 -0
- package/src/a11y/index.js +197 -0
- package/src/a11y/keyboard-nav.js +523 -0
- package/src/a11y/styles.css +165 -0
- package/src/cli/commands/dev.js +214 -0
- package/src/cli/commands/docs.js +521 -0
- package/src/cli/commands/edit.js +379 -0
- package/src/cli/commands/init.js +213 -0
- package/src/cli/commands/portal.js +236 -0
- package/src/cli/dev-server.js +530 -0
- package/src/cli/hmr.js +456 -0
- package/src/cli/index.js +180 -0
- package/src/cli/utils/config.js +207 -0
- package/src/cli/utils/logger.js +241 -0
- package/src/config/defaults.ts +122 -0
- package/src/config/index.ts +72 -0
- package/src/config/loader.ts +478 -0
- package/src/config/schema.ts +227 -0
- package/src/config/validator.ts +337 -0
- package/src/core/appContext.js +34 -27
- package/src/core/components/Bar.js +383 -0
- package/src/core/components/Bar3D.js +473 -0
- package/src/core/components/LargeDatasetChart.js +296 -0
- package/src/core/components/Line3D.js +310 -0
- package/src/core/components/Scatter.js +392 -188
- package/src/core/components/Scatter3D.js +455 -0
- package/src/core/components/ScatterBio.js +601 -572
- package/src/core/components/Surface3D.js +326 -0
- package/src/core/components/ThreeCustom.js +648 -0
- package/src/core/components/ThreeScene.js +459 -0
- package/src/core/components/VisiumPlot.js +191 -165
- package/src/core/components/browser.js +42 -42
- package/src/core/components/dotplot.js +413 -413
- package/src/core/components/html.js +29 -29
- package/src/core/components/list.js +178 -178
- package/src/core/components/macaron.js +206 -201
- package/src/core/components/markdown.js +56 -56
- package/src/core/components/parser.scatterBio.js +582 -587
- package/src/core/components/ratio.js +82 -80
- package/src/core/components/scatterL.js +206 -173
- package/src/core/components/searchbar.js +156 -131
- package/src/core/components/selection.js +310 -193
- package/src/core/components/timeline.js +236 -281
- package/src/core/components/visium.js +114 -97
- package/src/core/data-processor.js +413 -0
- package/src/core/fetch/condfetch.js +82 -82
- package/src/core/fetch/fetch.js +92 -92
- package/src/core/fetch/json.js +29 -29
- package/src/core/fetch/vfetch.js +42 -42
- package/src/core/hmr-client.js +724 -0
- package/src/core/liveEditor.js +44 -44
- package/src/core/modules/codeEditorWithPreview.js +104 -104
- package/src/core/modules/echarts/common.js +20 -20
- package/src/core/modules/echarts/gl.js +228 -0
- package/src/core/modules/echarts/presetHandler.js +41 -41
- package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
- package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
- package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
- package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
- package/src/core/modules/echarts.js +70 -71
- package/src/core/modules/echartsUtils.js +43 -43
- package/src/core/modules/echartswitcher.js +227 -152
- package/src/core/modules/replotly/presetHandler.js +24 -24
- package/src/core/modules/replotly/presets/minimum.js +18 -18
- package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
- package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
- package/src/core/modules/replotly.js +74 -71
- package/src/core/modules/threejs/Camera.js +373 -0
- package/src/core/modules/threejs/Lighting.js +459 -0
- package/src/core/modules/threejs/Renderer.js +364 -0
- package/src/core/modules/threejs/Scene.js +266 -0
- package/src/core/modules/threejs/index.js +155 -0
- package/src/core/pages/404.js +50 -50
- package/src/core/pages/error.js +27 -27
- package/src/core/pages/jsonPage.js +62 -62
- package/src/core/pages/loading.js +44 -44
- package/src/core/parser/echart.data.js +204 -183
- package/src/core/parser/echart.features.js +125 -125
- package/src/core/parser/echart.general.js +147 -147
- package/src/core/parser/echart.hilbert.js +57 -57
- package/src/core/parser/echart.parser.js +210 -210
- package/src/core/parser/echart.series.js +67 -67
- package/src/core/parser/echart.types.js +76 -76
- package/src/core/parser/plotly.config.js +10 -10
- package/src/core/parser/plotly.data.js +132 -132
- package/src/core/parser/plotly.layout.js +9 -9
- package/src/core/parser/plotly.violin.js +18 -18
- package/src/core/recharts.js +361 -62
- package/src/core/router/alias.js +49 -49
- package/src/core/router/jsonRouter.js +31 -31
- package/src/core/themes/modern.js +32 -32
- package/src/core/themes/themeSelector.js +33 -33
- package/src/core/visualify.js +213 -47
- package/src/core/widgets/circularProgress.js +23 -23
- package/src/core/widgets/controller.js +116 -83
- package/src/core/widgets/errorBoundary.js +36 -36
- package/src/core/widgets/footer.js +185 -177
- package/src/core/widgets/header.js +238 -234
- package/src/core/widgets/layout/Grid.js +31 -31
- package/src/core/widgets/layout.js +36 -36
- package/src/core/widgets/mapping.js +56 -42
- package/src/core/workers/data-worker.js +349 -0
- package/src/core/workers/worker-pool.js +396 -0
- package/src/docsify/bundle.js +215 -0
- package/src/docsify/markdown.js +271 -0
- package/src/docsify/plugin.js +268 -0
- package/src/editor/README.md +172 -0
- package/src/editor/components/ChartBuilder.jsx +341 -0
- package/src/editor/components/ChartTypeSidebar.jsx +91 -0
- package/src/editor/components/Editor.jsx +367 -0
- package/src/editor/components/Preview.jsx +446 -0
- package/src/editor/components/PropertyPanel.jsx +468 -0
- package/src/editor/components/StatusBar.jsx +85 -0
- package/src/editor/context/EditorContext.js +248 -0
- package/src/editor/hooks/useDebounce.js +32 -0
- package/src/editor/index.js +315 -0
- package/src/editor/styles/editor.css +637 -0
- package/src/editor/utils/chartValidator.js +263 -0
- package/src/entries/charts3d.js +70 -0
- package/src/entries/core.js +78 -0
- package/src/entries/docs.js +154 -0
- package/src/entries/pages.js +93 -0
- package/src/entries/portal.js +204 -0
- package/src/entries/shared.js +50 -0
- package/src/i18n/formatters.js +455 -0
- package/src/i18n/index.js +169 -0
- package/src/i18n/locales/ar.json +137 -0
- package/src/i18n/locales/de.json +137 -0
- package/src/i18n/locales/en.json +137 -0
- package/src/i18n/locales/es.json +137 -0
- package/src/i18n/locales/he.json +137 -0
- package/src/i18n/locales/zh.json +137 -0
- package/src/i18n/rtl.css +183 -0
- package/src/index.js +82 -62
- package/src/loader.js +103 -0
- package/src/setupTests.js +5 -5
- package/tsconfig.json +51 -0
- package/types/charts.d.ts +569 -0
- package/types/components.d.ts +441 -0
- package/types/config.d.ts +199 -0
- package/types/index.d.ts +353 -0
|
@@ -0,0 +1,569 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visualify.js Chart Configuration Types
|
|
3
|
+
* @module types/charts
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* import { ScatterConfig, Bar3DConfig } from 'visualifyjs/types';
|
|
8
|
+
*
|
|
9
|
+
* const scatter: ScatterConfig = {
|
|
10
|
+
* type: 'scatter',
|
|
11
|
+
* data: [{ x: 1, y: 2 }, { x: 3, y: 4 }],
|
|
12
|
+
* title: 'My Scatter Plot'
|
|
13
|
+
* };
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { CSSProperties } from 'react';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Supported chart types
|
|
21
|
+
*/
|
|
22
|
+
export type ChartType =
|
|
23
|
+
| 'scatter'
|
|
24
|
+
| 'scatter3D'
|
|
25
|
+
| 'bar'
|
|
26
|
+
| 'bar3D'
|
|
27
|
+
| 'line'
|
|
28
|
+
| 'line3D'
|
|
29
|
+
| 'surface3D'
|
|
30
|
+
| 'pie'
|
|
31
|
+
| 'heatmap'
|
|
32
|
+
| 'custom';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Axis type for charts
|
|
36
|
+
*/
|
|
37
|
+
export type AxisType = 'value' | 'category' | 'time' | 'log';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Data zoom type
|
|
41
|
+
*/
|
|
42
|
+
export type DataZoomType = 'inside' | 'slider' | 'both' | 'none';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 3D shading modes
|
|
46
|
+
*/
|
|
47
|
+
export type ShadingType = 'lambert' | 'realistic' | 'color';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Coordinate in 2D space
|
|
51
|
+
*/
|
|
52
|
+
export interface Point2D {
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Coordinate in 3D space
|
|
59
|
+
*/
|
|
60
|
+
export interface Point3D {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
z: number;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Data point with optional metadata
|
|
68
|
+
*/
|
|
69
|
+
export interface DataPoint extends Record<string, unknown> {
|
|
70
|
+
name?: string;
|
|
71
|
+
value?: number | number[];
|
|
72
|
+
itemStyle?: ItemStyle;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Item style configuration
|
|
77
|
+
*/
|
|
78
|
+
export interface ItemStyle {
|
|
79
|
+
color?: string;
|
|
80
|
+
opacity?: number;
|
|
81
|
+
borderColor?: string;
|
|
82
|
+
borderWidth?: number;
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Line style configuration
|
|
88
|
+
*/
|
|
89
|
+
export interface LineStyle {
|
|
90
|
+
color?: string;
|
|
91
|
+
width?: number;
|
|
92
|
+
type?: 'solid' | 'dashed' | 'dotted';
|
|
93
|
+
opacity?: number;
|
|
94
|
+
[key: string]: unknown;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Label configuration
|
|
99
|
+
*/
|
|
100
|
+
export interface LabelConfig {
|
|
101
|
+
show?: boolean;
|
|
102
|
+
position?: string;
|
|
103
|
+
formatter?: string | ((params: unknown) => string);
|
|
104
|
+
fontSize?: number;
|
|
105
|
+
color?: string;
|
|
106
|
+
[key: string]: unknown;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Axis configuration
|
|
111
|
+
*/
|
|
112
|
+
export interface AxisConfig {
|
|
113
|
+
/** Axis type */
|
|
114
|
+
type?: AxisType;
|
|
115
|
+
/** Axis name */
|
|
116
|
+
name?: string;
|
|
117
|
+
/** Gap between axis name and axis line */
|
|
118
|
+
nameGap?: number;
|
|
119
|
+
/** Location of axis name */
|
|
120
|
+
nameLocation?: 'start' | 'center' | 'end';
|
|
121
|
+
/** Minimum value */
|
|
122
|
+
min?: number | string;
|
|
123
|
+
/** Maximum value */
|
|
124
|
+
max?: number | string;
|
|
125
|
+
/** Axis data for category type */
|
|
126
|
+
data?: string[] | number[];
|
|
127
|
+
/** Show axis line */
|
|
128
|
+
axisLine?: { show?: boolean; lineStyle?: LineStyle };
|
|
129
|
+
/** Show axis labels */
|
|
130
|
+
axisLabel?: { show?: boolean; formatter?: string | ((value: unknown) => string) };
|
|
131
|
+
/** Show split lines */
|
|
132
|
+
splitLine?: { show?: boolean; lineStyle?: LineStyle };
|
|
133
|
+
[key: string]: unknown;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* 3D Axis configuration
|
|
138
|
+
*/
|
|
139
|
+
export interface Axis3DConfig extends AxisConfig {
|
|
140
|
+
/** 3D specific axis settings */
|
|
141
|
+
nameTextStyle?: {
|
|
142
|
+
fontSize?: number;
|
|
143
|
+
color?: string;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Grid configuration for 2D charts
|
|
149
|
+
*/
|
|
150
|
+
export interface GridConfig {
|
|
151
|
+
left?: string | number;
|
|
152
|
+
right?: string | number;
|
|
153
|
+
top?: string | number;
|
|
154
|
+
bottom?: string | number;
|
|
155
|
+
containLabel?: boolean;
|
|
156
|
+
show?: boolean;
|
|
157
|
+
borderColor?: string;
|
|
158
|
+
backgroundColor?: string;
|
|
159
|
+
[key: string]: unknown;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* 3D Grid configuration
|
|
164
|
+
*/
|
|
165
|
+
export interface Grid3DConfig {
|
|
166
|
+
/** Width of the 3D box */
|
|
167
|
+
boxWidth?: number;
|
|
168
|
+
/** Depth of the 3D box */
|
|
169
|
+
boxDepth?: number;
|
|
170
|
+
/** Height of the 3D box */
|
|
171
|
+
boxHeight?: number;
|
|
172
|
+
/** View control settings */
|
|
173
|
+
viewControl?: {
|
|
174
|
+
autoRotate?: boolean;
|
|
175
|
+
projection?: 'perspective' | 'orthographic';
|
|
176
|
+
alpha?: number;
|
|
177
|
+
beta?: number;
|
|
178
|
+
distance?: number;
|
|
179
|
+
[key: string]: unknown;
|
|
180
|
+
};
|
|
181
|
+
/** Light settings */
|
|
182
|
+
light?: {
|
|
183
|
+
main?: {
|
|
184
|
+
intensity?: number;
|
|
185
|
+
shadow?: boolean;
|
|
186
|
+
[key: string]: unknown;
|
|
187
|
+
};
|
|
188
|
+
ambient?: {
|
|
189
|
+
intensity?: number;
|
|
190
|
+
[key: string]: unknown;
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
[key: string]: unknown;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Visual map configuration for data mapping
|
|
198
|
+
*/
|
|
199
|
+
export interface VisualMapConfig {
|
|
200
|
+
show?: boolean;
|
|
201
|
+
type?: 'continuous' | 'piecewise';
|
|
202
|
+
min?: number;
|
|
203
|
+
max?: number;
|
|
204
|
+
dimension?: number;
|
|
205
|
+
inRange?: {
|
|
206
|
+
color?: string[];
|
|
207
|
+
symbolSize?: number[];
|
|
208
|
+
[key: string]: unknown;
|
|
209
|
+
};
|
|
210
|
+
[key: string]: unknown;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Tooltip configuration
|
|
215
|
+
*/
|
|
216
|
+
export interface TooltipConfig {
|
|
217
|
+
show?: boolean;
|
|
218
|
+
trigger?: 'item' | 'axis' | 'none';
|
|
219
|
+
formatter?: string | ((params: unknown) => string);
|
|
220
|
+
axisPointer?: {
|
|
221
|
+
type?: 'line' | 'cross' | 'shadow';
|
|
222
|
+
[key: string]: unknown;
|
|
223
|
+
};
|
|
224
|
+
[key: string]: unknown;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Legend configuration
|
|
229
|
+
*/
|
|
230
|
+
export interface LegendConfig {
|
|
231
|
+
show?: boolean;
|
|
232
|
+
data?: string[];
|
|
233
|
+
orient?: 'horizontal' | 'vertical';
|
|
234
|
+
left?: string | number;
|
|
235
|
+
right?: string | number;
|
|
236
|
+
top?: string | number;
|
|
237
|
+
bottom?: string | number;
|
|
238
|
+
[key: string]: unknown;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Toolbox configuration
|
|
243
|
+
*/
|
|
244
|
+
export interface ToolboxConfig {
|
|
245
|
+
show?: boolean;
|
|
246
|
+
feature?: {
|
|
247
|
+
saveAsImage?: { show?: boolean; [key: string]: unknown };
|
|
248
|
+
dataZoom?: { show?: boolean; [key: string]: unknown };
|
|
249
|
+
restore?: { show?: boolean; [key: string]: unknown };
|
|
250
|
+
[key: string]: unknown;
|
|
251
|
+
};
|
|
252
|
+
[key: string]: unknown;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Series configuration base interface
|
|
257
|
+
*/
|
|
258
|
+
export interface SeriesConfig {
|
|
259
|
+
type?: string;
|
|
260
|
+
name?: string;
|
|
261
|
+
data?: unknown[];
|
|
262
|
+
itemStyle?: ItemStyle;
|
|
263
|
+
label?: LabelConfig;
|
|
264
|
+
emphasis?: {
|
|
265
|
+
itemStyle?: ItemStyle;
|
|
266
|
+
label?: LabelConfig;
|
|
267
|
+
[key: string]: unknown;
|
|
268
|
+
};
|
|
269
|
+
[key: string]: unknown;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Scatter series configuration
|
|
274
|
+
*/
|
|
275
|
+
export interface ScatterSeriesConfig extends SeriesConfig {
|
|
276
|
+
type: 'scatter';
|
|
277
|
+
symbolSize?: number | ((data: unknown) => number);
|
|
278
|
+
symbol?: string;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* 3D Scatter series configuration
|
|
283
|
+
*/
|
|
284
|
+
export interface Scatter3DSeriesConfig extends SeriesConfig {
|
|
285
|
+
type: 'scatter3D';
|
|
286
|
+
symbolSize?: number;
|
|
287
|
+
opacity?: number;
|
|
288
|
+
shading?: ShadingType;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Bar series configuration
|
|
293
|
+
*/
|
|
294
|
+
export interface BarSeriesConfig extends SeriesConfig {
|
|
295
|
+
type: 'bar';
|
|
296
|
+
barWidth?: string | number;
|
|
297
|
+
barGap?: string | number;
|
|
298
|
+
stack?: string;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* 3D Bar series configuration
|
|
303
|
+
*/
|
|
304
|
+
export interface Bar3DSeriesConfig extends SeriesConfig {
|
|
305
|
+
type: 'bar3D';
|
|
306
|
+
shading?: ShadingType;
|
|
307
|
+
bevelSize?: number;
|
|
308
|
+
bevelSmoothness?: number;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Line series configuration
|
|
313
|
+
*/
|
|
314
|
+
export interface LineSeriesConfig extends SeriesConfig {
|
|
315
|
+
type: 'line';
|
|
316
|
+
smooth?: boolean;
|
|
317
|
+
lineStyle?: LineStyle;
|
|
318
|
+
areaStyle?: ItemStyle;
|
|
319
|
+
symbol?: string;
|
|
320
|
+
symbolSize?: number;
|
|
321
|
+
connectNulls?: boolean;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* 3D Line series configuration
|
|
326
|
+
*/
|
|
327
|
+
export interface Line3DSeriesConfig extends SeriesConfig {
|
|
328
|
+
type: 'line3D';
|
|
329
|
+
lineStyle?: LineStyle;
|
|
330
|
+
symbol?: string;
|
|
331
|
+
symbolSize?: number;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* 3D Surface series configuration
|
|
336
|
+
*/
|
|
337
|
+
export interface SurfaceSeriesConfig extends SeriesConfig {
|
|
338
|
+
type: 'surface';
|
|
339
|
+
shading?: ShadingType;
|
|
340
|
+
wireframe?: {
|
|
341
|
+
show?: boolean;
|
|
342
|
+
lineStyle?: LineStyle;
|
|
343
|
+
};
|
|
344
|
+
contour?: {
|
|
345
|
+
show?: boolean;
|
|
346
|
+
color?: string;
|
|
347
|
+
[key: string]: unknown;
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Title configuration
|
|
353
|
+
*/
|
|
354
|
+
export interface TitleConfig {
|
|
355
|
+
text?: string;
|
|
356
|
+
subtext?: string;
|
|
357
|
+
left?: string | number;
|
|
358
|
+
right?: string | number;
|
|
359
|
+
top?: string | number;
|
|
360
|
+
bottom?: string | number;
|
|
361
|
+
textStyle?: {
|
|
362
|
+
fontSize?: number;
|
|
363
|
+
color?: string;
|
|
364
|
+
fontWeight?: string | number;
|
|
365
|
+
[key: string]: unknown;
|
|
366
|
+
};
|
|
367
|
+
[key: string]: unknown;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Base chart configuration interface
|
|
372
|
+
* All chart configurations extend this interface.
|
|
373
|
+
*/
|
|
374
|
+
export interface ChartConfig {
|
|
375
|
+
/** Chart type identifier */
|
|
376
|
+
type: ChartType;
|
|
377
|
+
/** Chart data - format varies by chart type */
|
|
378
|
+
data: Record<string, unknown> | unknown[];
|
|
379
|
+
/** Chart title configuration */
|
|
380
|
+
title?: string | TitleConfig;
|
|
381
|
+
/** Chart width */
|
|
382
|
+
chartWidth?: string | number;
|
|
383
|
+
/** Chart height */
|
|
384
|
+
chartHeight?: string | number;
|
|
385
|
+
/** Background color */
|
|
386
|
+
backgroundColor?: string;
|
|
387
|
+
/** Color palette */
|
|
388
|
+
color?: string[];
|
|
389
|
+
/** CSS styles */
|
|
390
|
+
style?: CSSProperties;
|
|
391
|
+
[key: string]: unknown;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Scatter chart configuration
|
|
396
|
+
*/
|
|
397
|
+
export interface ScatterConfig extends ChartConfig {
|
|
398
|
+
type: 'scatter';
|
|
399
|
+
data: Point2D[] | number[][] | DataPoint[];
|
|
400
|
+
xAxis?: AxisConfig;
|
|
401
|
+
yAxis?: AxisConfig;
|
|
402
|
+
series?: ScatterSeriesConfig | ScatterSeriesConfig[];
|
|
403
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
404
|
+
tooltip?: TooltipConfig;
|
|
405
|
+
legend?: LegendConfig;
|
|
406
|
+
toolbox?: ToolboxConfig;
|
|
407
|
+
grid?: GridConfig;
|
|
408
|
+
dataZoom?: DataZoomType;
|
|
409
|
+
labels?: { x?: string; y?: string };
|
|
410
|
+
formatter?: string | ((params: unknown) => string);
|
|
411
|
+
is3D?: boolean;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Bar chart configuration
|
|
416
|
+
*/
|
|
417
|
+
export interface BarConfig extends ChartConfig {
|
|
418
|
+
type: 'bar';
|
|
419
|
+
data: number[] | DataPoint[] | Record<string, unknown>[];
|
|
420
|
+
xAxis?: AxisConfig;
|
|
421
|
+
yAxis?: AxisConfig;
|
|
422
|
+
series?: BarSeriesConfig | BarSeriesConfig[];
|
|
423
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
424
|
+
tooltip?: TooltipConfig;
|
|
425
|
+
legend?: LegendConfig;
|
|
426
|
+
toolbox?: ToolboxConfig;
|
|
427
|
+
grid?: GridConfig;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Line chart configuration
|
|
432
|
+
*/
|
|
433
|
+
export interface LineConfig extends ChartConfig {
|
|
434
|
+
type: 'line';
|
|
435
|
+
data: number[] | DataPoint[] | Record<string, unknown>[];
|
|
436
|
+
xAxis?: AxisConfig;
|
|
437
|
+
yAxis?: AxisConfig;
|
|
438
|
+
series?: LineSeriesConfig | LineSeriesConfig[];
|
|
439
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
440
|
+
tooltip?: TooltipConfig;
|
|
441
|
+
legend?: LegendConfig;
|
|
442
|
+
toolbox?: ToolboxConfig;
|
|
443
|
+
grid?: GridConfig;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* 3D Scatter chart configuration
|
|
448
|
+
*/
|
|
449
|
+
export interface Scatter3DConfig extends ChartConfig {
|
|
450
|
+
type: 'scatter3D';
|
|
451
|
+
data: Point3D[] | number[][];
|
|
452
|
+
xAxis3D?: Axis3DConfig;
|
|
453
|
+
yAxis3D?: Axis3DConfig;
|
|
454
|
+
zAxis3D?: Axis3DConfig;
|
|
455
|
+
grid3D?: Grid3DConfig;
|
|
456
|
+
series?: Scatter3DSeriesConfig;
|
|
457
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
458
|
+
tooltip?: TooltipConfig;
|
|
459
|
+
legend?: LegendConfig;
|
|
460
|
+
toolbox?: ToolboxConfig;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* 3D Bar chart configuration
|
|
465
|
+
*/
|
|
466
|
+
export interface Bar3DConfig extends ChartConfig {
|
|
467
|
+
type: 'bar3D';
|
|
468
|
+
data: Point3D[] | number[][];
|
|
469
|
+
xAxis3D?: Axis3DConfig;
|
|
470
|
+
yAxis3D?: Axis3DConfig;
|
|
471
|
+
zAxis3D?: Axis3DConfig;
|
|
472
|
+
grid3D?: Grid3DConfig;
|
|
473
|
+
series?: Bar3DSeriesConfig;
|
|
474
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
475
|
+
tooltip?: TooltipConfig;
|
|
476
|
+
legend?: LegendConfig;
|
|
477
|
+
toolbox?: ToolboxConfig;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* 3D Line chart configuration
|
|
482
|
+
*/
|
|
483
|
+
export interface Line3DConfig extends ChartConfig {
|
|
484
|
+
type: 'line3D';
|
|
485
|
+
data: Point3D[] | number[][] | { x: number[]; y: number[]; z: number[] };
|
|
486
|
+
xAxis3D?: Axis3DConfig;
|
|
487
|
+
yAxis3D?: Axis3DConfig;
|
|
488
|
+
zAxis3D?: Axis3DConfig;
|
|
489
|
+
grid3D?: Grid3DConfig;
|
|
490
|
+
series?: Line3DSeriesConfig;
|
|
491
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
492
|
+
tooltip?: TooltipConfig;
|
|
493
|
+
legend?: LegendConfig;
|
|
494
|
+
toolbox?: ToolboxConfig;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* 3D Surface chart configuration
|
|
499
|
+
*/
|
|
500
|
+
export interface Surface3DConfig extends ChartConfig {
|
|
501
|
+
type: 'surface3D';
|
|
502
|
+
data: Point3D[] | number[][] | ((x: number, y: number) => number);
|
|
503
|
+
xAxis3D?: Axis3DConfig;
|
|
504
|
+
yAxis3D?: Axis3DConfig;
|
|
505
|
+
zAxis3D?: Axis3DConfig;
|
|
506
|
+
grid3D?: Grid3DConfig;
|
|
507
|
+
series?: SurfaceSeriesConfig;
|
|
508
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
509
|
+
tooltip?: TooltipConfig;
|
|
510
|
+
legend?: LegendConfig;
|
|
511
|
+
toolbox?: ToolboxConfig;
|
|
512
|
+
contour?: {
|
|
513
|
+
show?: boolean;
|
|
514
|
+
color?: string;
|
|
515
|
+
[key: string]: unknown;
|
|
516
|
+
};
|
|
517
|
+
range?: {
|
|
518
|
+
xMin?: number;
|
|
519
|
+
xMax?: number;
|
|
520
|
+
yMin?: number;
|
|
521
|
+
yMax?: number;
|
|
522
|
+
step?: number;
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* Union type of all chart configurations
|
|
528
|
+
*/
|
|
529
|
+
export type AnyChartConfig =
|
|
530
|
+
| ScatterConfig
|
|
531
|
+
| BarConfig
|
|
532
|
+
| LineConfig
|
|
533
|
+
| Scatter3DConfig
|
|
534
|
+
| Bar3DConfig
|
|
535
|
+
| Line3DConfig
|
|
536
|
+
| Surface3DConfig;
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Chart data format types
|
|
540
|
+
*/
|
|
541
|
+
export type ChartData =
|
|
542
|
+
| Point2D[]
|
|
543
|
+
| Point3D[]
|
|
544
|
+
| number[][]
|
|
545
|
+
| DataPoint[]
|
|
546
|
+
| Record<string, unknown>[];
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* ECharts option object (simplified)
|
|
550
|
+
*/
|
|
551
|
+
export interface EChartsOption {
|
|
552
|
+
title?: TitleConfig;
|
|
553
|
+
legend?: LegendConfig;
|
|
554
|
+
tooltip?: TooltipConfig;
|
|
555
|
+
toolbox?: ToolboxConfig;
|
|
556
|
+
grid?: GridConfig | GridConfig[];
|
|
557
|
+
grid3D?: Grid3DConfig;
|
|
558
|
+
xAxis?: AxisConfig | AxisConfig[];
|
|
559
|
+
yAxis?: AxisConfig | AxisConfig[];
|
|
560
|
+
xAxis3D?: Axis3DConfig;
|
|
561
|
+
yAxis3D?: Axis3DConfig;
|
|
562
|
+
zAxis3D?: Axis3DConfig;
|
|
563
|
+
series?: SeriesConfig | SeriesConfig[];
|
|
564
|
+
visualMap?: VisualMapConfig | VisualMapConfig[];
|
|
565
|
+
dataZoom?: unknown[];
|
|
566
|
+
backgroundColor?: string;
|
|
567
|
+
color?: string[];
|
|
568
|
+
[key: string]: unknown;
|
|
569
|
+
}
|