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
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visualify.js Type Definitions
|
|
3
|
+
* @module visualifyjs/types
|
|
4
|
+
*
|
|
5
|
+
* Main type definitions for Visualify.js - A React-based data visualization library
|
|
6
|
+
* for large-scale omics data analysis.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import {
|
|
11
|
+
* VisualifyConfig,
|
|
12
|
+
* ScatterConfig,
|
|
13
|
+
* ChartConfig,
|
|
14
|
+
* ScatterProps
|
|
15
|
+
* } from 'visualifyjs/types';
|
|
16
|
+
*
|
|
17
|
+
* // Configuration
|
|
18
|
+
* const config: VisualifyConfig = {
|
|
19
|
+
* version: '3.0.0',
|
|
20
|
+
* mode: 'portal',
|
|
21
|
+
* docs: { basePath: './docs', theme: 'vue', plugins: [] },
|
|
22
|
+
* portal: { homepage: 'home.json', theme: 'modern', dataSources: [] },
|
|
23
|
+
* visualization: { defaultLibrary: 'echarts', enable3D: true, webWorkers: false }
|
|
24
|
+
* };
|
|
25
|
+
*
|
|
26
|
+
* // Chart configuration
|
|
27
|
+
* const scatterConfig: ScatterConfig = {
|
|
28
|
+
* type: 'scatter',
|
|
29
|
+
* data: [{ x: 1, y: 2 }, { x: 3, y: 4 }],
|
|
30
|
+
* title: 'Scatter Plot'
|
|
31
|
+
* };
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Configuration Types
|
|
37
|
+
// ============================================================================
|
|
38
|
+
|
|
39
|
+
export {
|
|
40
|
+
/** Application mode type */
|
|
41
|
+
AppMode,
|
|
42
|
+
/** Supported chart libraries */
|
|
43
|
+
ChartLibrary,
|
|
44
|
+
/** Data source types */
|
|
45
|
+
DataSourceType,
|
|
46
|
+
/** Data source configuration */
|
|
47
|
+
DataSource,
|
|
48
|
+
/** Documentation configuration */
|
|
49
|
+
DocsConfig,
|
|
50
|
+
/** Portal configuration */
|
|
51
|
+
PortalConfig,
|
|
52
|
+
/** Visualization configuration */
|
|
53
|
+
VisualizationConfig,
|
|
54
|
+
/** Main configuration interface */
|
|
55
|
+
VisualifyConfig,
|
|
56
|
+
/** Configuration loading options */
|
|
57
|
+
LoadConfigOptions,
|
|
58
|
+
/** Configuration cache entry */
|
|
59
|
+
ConfigCacheEntry,
|
|
60
|
+
/** Cache statistics */
|
|
61
|
+
CacheStats,
|
|
62
|
+
/** Config watcher control object */
|
|
63
|
+
ConfigWatcher,
|
|
64
|
+
/** Config reload callback type */
|
|
65
|
+
ConfigReloadCallback,
|
|
66
|
+
/** Partial configuration for merging */
|
|
67
|
+
PartialConfig,
|
|
68
|
+
} from './config';
|
|
69
|
+
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Chart Types
|
|
72
|
+
// ============================================================================
|
|
73
|
+
|
|
74
|
+
export {
|
|
75
|
+
/** Supported chart types */
|
|
76
|
+
ChartType,
|
|
77
|
+
/** Axis type */
|
|
78
|
+
AxisType,
|
|
79
|
+
/** Data zoom type */
|
|
80
|
+
DataZoomType,
|
|
81
|
+
/** 3D shading modes */
|
|
82
|
+
ShadingType,
|
|
83
|
+
/** 2D point coordinates */
|
|
84
|
+
Point2D,
|
|
85
|
+
/** 3D point coordinates */
|
|
86
|
+
Point3D,
|
|
87
|
+
/** Data point with metadata */
|
|
88
|
+
DataPoint,
|
|
89
|
+
/** Item style configuration */
|
|
90
|
+
ItemStyle,
|
|
91
|
+
/** Line style configuration */
|
|
92
|
+
LineStyle,
|
|
93
|
+
/** Label configuration */
|
|
94
|
+
LabelConfig,
|
|
95
|
+
/** Axis configuration */
|
|
96
|
+
AxisConfig,
|
|
97
|
+
/** 3D Axis configuration */
|
|
98
|
+
Axis3DConfig,
|
|
99
|
+
/** Grid configuration for 2D charts */
|
|
100
|
+
GridConfig,
|
|
101
|
+
/** 3D Grid configuration */
|
|
102
|
+
Grid3DConfig,
|
|
103
|
+
/** Visual map configuration */
|
|
104
|
+
VisualMapConfig,
|
|
105
|
+
/** Tooltip configuration */
|
|
106
|
+
TooltipConfig,
|
|
107
|
+
/** Legend configuration */
|
|
108
|
+
LegendConfig,
|
|
109
|
+
/** Toolbox configuration */
|
|
110
|
+
ToolboxConfig,
|
|
111
|
+
/** Base series configuration */
|
|
112
|
+
SeriesConfig,
|
|
113
|
+
/** Scatter series configuration */
|
|
114
|
+
ScatterSeriesConfig,
|
|
115
|
+
/** 3D Scatter series configuration */
|
|
116
|
+
Scatter3DSeriesConfig,
|
|
117
|
+
/** Bar series configuration */
|
|
118
|
+
BarSeriesConfig,
|
|
119
|
+
/** 3D Bar series configuration */
|
|
120
|
+
Bar3DSeriesConfig,
|
|
121
|
+
/** Line series configuration */
|
|
122
|
+
LineSeriesConfig,
|
|
123
|
+
/** 3D Line series configuration */
|
|
124
|
+
Line3DSeriesConfig,
|
|
125
|
+
/** Surface series configuration */
|
|
126
|
+
SurfaceSeriesConfig,
|
|
127
|
+
/** Title configuration */
|
|
128
|
+
TitleConfig,
|
|
129
|
+
/** Base chart configuration */
|
|
130
|
+
ChartConfig,
|
|
131
|
+
/** Scatter chart configuration */
|
|
132
|
+
ScatterConfig,
|
|
133
|
+
/** Bar chart configuration */
|
|
134
|
+
BarConfig,
|
|
135
|
+
/** Line chart configuration */
|
|
136
|
+
LineConfig,
|
|
137
|
+
/** 3D Scatter chart configuration */
|
|
138
|
+
Scatter3DConfig,
|
|
139
|
+
/** 3D Bar chart configuration */
|
|
140
|
+
Bar3DConfig,
|
|
141
|
+
/** 3D Line chart configuration */
|
|
142
|
+
Line3DConfig,
|
|
143
|
+
/** 3D Surface chart configuration */
|
|
144
|
+
Surface3DConfig,
|
|
145
|
+
/** Union of all chart configurations */
|
|
146
|
+
AnyChartConfig,
|
|
147
|
+
/** Chart data format types */
|
|
148
|
+
ChartData,
|
|
149
|
+
/** ECharts option object */
|
|
150
|
+
EChartsOption,
|
|
151
|
+
} from './charts';
|
|
152
|
+
|
|
153
|
+
// ============================================================================
|
|
154
|
+
// Component Types
|
|
155
|
+
// ============================================================================
|
|
156
|
+
|
|
157
|
+
export {
|
|
158
|
+
/** Base component props */
|
|
159
|
+
BaseComponentProps,
|
|
160
|
+
/** ReCharts wrapper props */
|
|
161
|
+
RechartsProps,
|
|
162
|
+
/** Scatter component props */
|
|
163
|
+
ScatterProps,
|
|
164
|
+
/** ScatterBio component props */
|
|
165
|
+
ScatterBioProps,
|
|
166
|
+
/** 3D Scatter component props */
|
|
167
|
+
Scatter3DProps,
|
|
168
|
+
/** 3D Bar component props */
|
|
169
|
+
Bar3DProps,
|
|
170
|
+
/** 3D Line component props */
|
|
171
|
+
Line3DProps,
|
|
172
|
+
/** 3D Surface component props */
|
|
173
|
+
Surface3DProps,
|
|
174
|
+
/** VisiumPlot component props */
|
|
175
|
+
VisiumPlotProps,
|
|
176
|
+
/** DotPlot component props */
|
|
177
|
+
DotPlotProps,
|
|
178
|
+
/** Grid layout configuration */
|
|
179
|
+
GridLayoutConfig,
|
|
180
|
+
/** DynamicGrid component props */
|
|
181
|
+
DynamicGridProps,
|
|
182
|
+
/** Widget base props */
|
|
183
|
+
WidgetProps,
|
|
184
|
+
/** Header widget props */
|
|
185
|
+
HeaderProps,
|
|
186
|
+
/** Footer widget props */
|
|
187
|
+
FooterProps,
|
|
188
|
+
/** Controller widget props */
|
|
189
|
+
ControllerProps,
|
|
190
|
+
/** Error boundary props */
|
|
191
|
+
ErrorBoundaryProps,
|
|
192
|
+
/** Error boundary state */
|
|
193
|
+
ErrorBoundaryState,
|
|
194
|
+
/** Loading component props */
|
|
195
|
+
LoadingProps,
|
|
196
|
+
/** Three.js scene props */
|
|
197
|
+
ThreeSceneProps,
|
|
198
|
+
/** Custom 3D component props */
|
|
199
|
+
ThreeCustomProps,
|
|
200
|
+
/** Circular progress props */
|
|
201
|
+
CircularProgressProps,
|
|
202
|
+
/** Selection component props */
|
|
203
|
+
SelectionProps,
|
|
204
|
+
/** Search bar props */
|
|
205
|
+
SearchBarProps,
|
|
206
|
+
/** Timeline component props */
|
|
207
|
+
TimelineProps,
|
|
208
|
+
/** Browser component props */
|
|
209
|
+
BrowserProps,
|
|
210
|
+
/** Mapping widget props */
|
|
211
|
+
MappingProps,
|
|
212
|
+
/** Layout configuration props */
|
|
213
|
+
LayoutProps,
|
|
214
|
+
/** Generic chart component props */
|
|
215
|
+
ChartComponentProps,
|
|
216
|
+
/** Union of all chart component props */
|
|
217
|
+
AnyChartComponentProps,
|
|
218
|
+
} from './components';
|
|
219
|
+
|
|
220
|
+
// ============================================================================
|
|
221
|
+
// Validation Types
|
|
222
|
+
// ============================================================================
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Validation error object
|
|
226
|
+
*/
|
|
227
|
+
export interface ValidationError {
|
|
228
|
+
/** Path to the invalid property */
|
|
229
|
+
path: string;
|
|
230
|
+
/** Property name */
|
|
231
|
+
property: string;
|
|
232
|
+
/** Error message */
|
|
233
|
+
message: string;
|
|
234
|
+
/** Suggested fix */
|
|
235
|
+
suggestion: string | null;
|
|
236
|
+
/** Validation keyword that failed */
|
|
237
|
+
keyword: string;
|
|
238
|
+
/** Invalid value */
|
|
239
|
+
value: unknown;
|
|
240
|
+
/** Source of the configuration */
|
|
241
|
+
source: string;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Validation result object
|
|
246
|
+
*/
|
|
247
|
+
export interface ValidationResult {
|
|
248
|
+
/** Whether validation passed */
|
|
249
|
+
valid: boolean;
|
|
250
|
+
/** Array of validation errors */
|
|
251
|
+
errors: ValidationError[];
|
|
252
|
+
/** Summary message */
|
|
253
|
+
summary: string | null;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Error template function type
|
|
258
|
+
*/
|
|
259
|
+
export type ErrorTemplate = (params: {
|
|
260
|
+
property: string;
|
|
261
|
+
expected?: string;
|
|
262
|
+
received?: string;
|
|
263
|
+
values?: string[];
|
|
264
|
+
}) => string;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Suggested fix function type
|
|
268
|
+
*/
|
|
269
|
+
export type SuggestedFix = (error: ValidationError) => string | null;
|
|
270
|
+
|
|
271
|
+
// ============================================================================
|
|
272
|
+
// Utility Types
|
|
273
|
+
// ============================================================================
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Deep partial type for nested optional properties
|
|
277
|
+
*/
|
|
278
|
+
export type DeepPartial<T> = {
|
|
279
|
+
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* JSON primitive types
|
|
284
|
+
*/
|
|
285
|
+
export type JSONPrimitive = string | number | boolean | null;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* JSON value types
|
|
289
|
+
*/
|
|
290
|
+
export type JSONValue = JSONPrimitive | JSONObject | JSONArray;
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* JSON object type
|
|
294
|
+
*/
|
|
295
|
+
export interface JSONObject {
|
|
296
|
+
[key: string]: JSONValue;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* JSON array type
|
|
301
|
+
*/
|
|
302
|
+
export interface JSONArray extends Array<JSONValue> {}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Type guard for checking if value is a plain object
|
|
306
|
+
*/
|
|
307
|
+
export function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
308
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Type guard for checking if value is a valid chart configuration
|
|
313
|
+
*/
|
|
314
|
+
export function isChartConfig(value: unknown): value is ChartConfig {
|
|
315
|
+
return (
|
|
316
|
+
isPlainObject(value) &&
|
|
317
|
+
typeof value.type === 'string' &&
|
|
318
|
+
value.data !== undefined
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// ============================================================================
|
|
323
|
+
// Module Declarations
|
|
324
|
+
// ============================================================================
|
|
325
|
+
|
|
326
|
+
declare module 'visualifyjs' {
|
|
327
|
+
// Re-export all types
|
|
328
|
+
export * from './config';
|
|
329
|
+
export * from './charts';
|
|
330
|
+
export * from './components';
|
|
331
|
+
|
|
332
|
+
// Main configuration function
|
|
333
|
+
export function loadConfig(
|
|
334
|
+
cwd?: string,
|
|
335
|
+
overrides?: Record<string, unknown>,
|
|
336
|
+
options?: LoadConfigOptions
|
|
337
|
+
): Promise<VisualifyConfig>;
|
|
338
|
+
|
|
339
|
+
// Validation function
|
|
340
|
+
export function validateConfig(
|
|
341
|
+
config: unknown,
|
|
342
|
+
options?: { source?: string }
|
|
343
|
+
): ValidationResult;
|
|
344
|
+
|
|
345
|
+
// Version check
|
|
346
|
+
export function isVersionCompatible(version: string): boolean;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
declare module 'visualifyjs/types' {
|
|
350
|
+
export * from './config';
|
|
351
|
+
export * from './charts';
|
|
352
|
+
export * from './components';
|
|
353
|
+
}
|