visualifyjs 2.5.3 → 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 -193
- 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 -0
- package/docs/docs/_404.md +51 -51
- package/docs/docs/_coverpage.md +11 -11
- package/docs/docs/_sidebar.md +54 -43
- 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 -123
- 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 -1
- package/docs/docs/more-pages.md +23 -23
- package/docs/docs/quickstart.md +148 -119
- 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 -579
- 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 -143
- 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/src/index.js
CHANGED
|
@@ -1,62 +1,82 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author : Lihao leolihao@arizona.edu
|
|
3
|
-
* @Date : 2023-11-29 15:35:28
|
|
4
|
-
* @FilePath : /visualifyjs/src/index.js
|
|
5
|
-
* @Description :
|
|
6
|
-
* Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
|
|
7
|
-
*/
|
|
8
|
-
import './_css/index.css';
|
|
9
|
-
import 'bootstrap/dist/css/bootstrap.min.css';
|
|
10
|
-
import reportWebVitals from './_utils/reportWebVitals';
|
|
11
|
-
import Recharts from './core/recharts';
|
|
12
|
-
import CreateApp from './core/visualify';
|
|
13
|
-
import LiveEditor from './core/liveEditor';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
1
|
+
/*
|
|
2
|
+
* @Author : Lihao leolihao@arizona.edu
|
|
3
|
+
* @Date : 2023-11-29 15:35:28
|
|
4
|
+
* @FilePath : /visualifyjs/src/index.js
|
|
5
|
+
* @Description :
|
|
6
|
+
* Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
|
|
7
|
+
*/
|
|
8
|
+
import './_css/index.css';
|
|
9
|
+
import 'bootstrap/dist/css/bootstrap.min.css';
|
|
10
|
+
import reportWebVitals from './_utils/reportWebVitals';
|
|
11
|
+
import Recharts from './core/recharts';
|
|
12
|
+
import CreateApp from './core/visualify';
|
|
13
|
+
import LiveEditor from './core/liveEditor';
|
|
14
|
+
|
|
15
|
+
// Runtime check for required CDN dependencies
|
|
16
|
+
if (typeof window !== 'undefined') {
|
|
17
|
+
if (typeof window.echarts === 'undefined') {
|
|
18
|
+
console.warn(
|
|
19
|
+
'[Visualify] ECharts not found. Charts will not render.\n' +
|
|
20
|
+
'Add this before visualify.js:\n' +
|
|
21
|
+
'<script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>\n' +
|
|
22
|
+
'Or use visualify-loader.js which auto-loads CDN dependencies.'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
if (typeof window.Plotly === 'undefined') {
|
|
26
|
+
console.warn(
|
|
27
|
+
'[Visualify] Plotly not found. Plotly charts will not render.\n' +
|
|
28
|
+
'Add this before visualify.js:\n' +
|
|
29
|
+
'<script src="https://cdn.plot.ly/plotly-2.27.0.min.js"></script>\n' +
|
|
30
|
+
'Or use visualify-loader.js which auto-loads CDN dependencies.'
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
if (window.$visualify) {
|
|
37
|
+
if (process.env.NODE_ENV === 'development') {
|
|
38
|
+
console.log('window.$visualify', window.$visualify);
|
|
39
|
+
window.$visualify.Recharts = Recharts;
|
|
40
|
+
window.$visualify.LiveEditor = LiveEditor;
|
|
41
|
+
}
|
|
42
|
+
if (window.$visualify.mode === 'charts') {
|
|
43
|
+
window.$visualify.Recharts = Recharts;
|
|
44
|
+
window.$visualify.LiveEditor = LiveEditor;
|
|
45
|
+
} else if (
|
|
46
|
+
window.$visualify.mode === 'pages' ||
|
|
47
|
+
window.$visualify.mode === undefined
|
|
48
|
+
) {
|
|
49
|
+
// loads the visualify in pages mode
|
|
50
|
+
CreateApp(window.$visualify);
|
|
51
|
+
} else {
|
|
52
|
+
console.error('mode should be recharts or pages');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// If you want to start measuring performance in your app, pass a function
|
|
56
|
+
// to log results (for example: reportWebVitals(console.log))
|
|
57
|
+
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
58
|
+
reportWebVitals();
|
|
59
|
+
} else {
|
|
60
|
+
// If load js before $visualify is set
|
|
61
|
+
let _visualify;
|
|
62
|
+
Object.defineProperty(window, '$visualify', {
|
|
63
|
+
set(config) {
|
|
64
|
+
// Store the value internally
|
|
65
|
+
_visualify = config;
|
|
66
|
+
// Additional code for after $visualify is set
|
|
67
|
+
if (config.mode === 'charts')
|
|
68
|
+
throw new Error(
|
|
69
|
+
'You need to initialize $visualify before using recharts',
|
|
70
|
+
);
|
|
71
|
+
// loads the visualify in page mode
|
|
72
|
+
else if (config.mode === 'pages') CreateApp(window.$visualify);
|
|
73
|
+
else console.warn(`Unsupported mode: ${config.mode}`);
|
|
74
|
+
},
|
|
75
|
+
get() {
|
|
76
|
+
return _visualify;
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
} catch (e) {
|
|
81
|
+
console.error(e);
|
|
82
|
+
}
|
package/src/loader.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visualify.js CDN Loader
|
|
3
|
+
*
|
|
4
|
+
* Lightweight bootstrap script that auto-loads required CDN dependencies
|
|
5
|
+
* (echarts, plotly) before loading the main visualify.js bundle.
|
|
6
|
+
* Three.js is bundled with visualify.js and doesn't need separate CDN loading.
|
|
7
|
+
*
|
|
8
|
+
* Usage — replace the manual CDN <script> tags + visualify.js with just:
|
|
9
|
+
* <script src="visualify-loader.js"></script>
|
|
10
|
+
*
|
|
11
|
+
* The loader will:
|
|
12
|
+
* 1. Detect which globals are already available (skip if loaded)
|
|
13
|
+
* 2. Load missing dependencies from CDN in parallel
|
|
14
|
+
* 3. Load visualify.js after all deps are ready
|
|
15
|
+
* 4. Initialize normally via window.$visualify
|
|
16
|
+
*/
|
|
17
|
+
(function () {
|
|
18
|
+
'use strict';
|
|
19
|
+
|
|
20
|
+
// CDN dependency definitions
|
|
21
|
+
// Each entry: [globalName, cdnUrl, optional?]
|
|
22
|
+
var CDN_DEPS = [
|
|
23
|
+
['echarts', 'https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js', false],
|
|
24
|
+
['echartsGL', 'https://cdn.jsdelivr.net/npm/echarts-gl@2.0.9/dist/echarts-gl.min.js', true],
|
|
25
|
+
['Plotly', 'https://cdn.plot.ly/plotly-2.27.0.min.js', true],
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Load a single script from URL, returns a Promise
|
|
30
|
+
*/
|
|
31
|
+
function loadScript(url) {
|
|
32
|
+
return new Promise(function (resolve, reject) {
|
|
33
|
+
var script = document.createElement('script');
|
|
34
|
+
script.src = url;
|
|
35
|
+
script.async = true;
|
|
36
|
+
script.onload = resolve;
|
|
37
|
+
script.onerror = function () {
|
|
38
|
+
// Don't reject — graceful degradation for optional deps
|
|
39
|
+
console.warn('[Visualify Loader] Failed to load: ' + url);
|
|
40
|
+
resolve();
|
|
41
|
+
};
|
|
42
|
+
document.head.appendChild(script);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the path to visualify.js relative to this loader script
|
|
48
|
+
*/
|
|
49
|
+
function resolveVisualilyPath() {
|
|
50
|
+
var scripts = document.getElementsByTagName('script');
|
|
51
|
+
for (var i = scripts.length - 1; i >= 0; i--) {
|
|
52
|
+
var src = scripts[i].src || '';
|
|
53
|
+
if (src.indexOf('visualify-loader') !== -1) {
|
|
54
|
+
// Same directory as loader
|
|
55
|
+
return src.replace(/visualify-loader[^/]*\.js.*$/, 'visualify.js');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Fallback: assume same directory
|
|
59
|
+
return './visualify.js';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Main loader logic
|
|
64
|
+
*/
|
|
65
|
+
function boot() {
|
|
66
|
+
var promises = [];
|
|
67
|
+
|
|
68
|
+
CDN_DEPS.forEach(function (dep) {
|
|
69
|
+
var globalName = dep[0];
|
|
70
|
+
var url = dep[1];
|
|
71
|
+
var optional = dep[2];
|
|
72
|
+
|
|
73
|
+
// Skip if global already exists (user loaded it manually)
|
|
74
|
+
if (window[globalName]) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Skip optional deps if user opts out via config
|
|
79
|
+
if (optional && window.$visualify && window.$visualify.skip) {
|
|
80
|
+
var skip = window.$visualify.skip;
|
|
81
|
+
if (Array.isArray(skip) && skip.indexOf(globalName.toLowerCase()) !== -1) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
promises.push(loadScript(url));
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
// After all CDN deps loaded, load visualify.js
|
|
90
|
+
Promise.all(promises).then(function () {
|
|
91
|
+
return loadScript(resolveVisualilyPath());
|
|
92
|
+
}).then(function () {
|
|
93
|
+
// visualify.js self-initializes via window.$visualify
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Ensure DOM is ready
|
|
98
|
+
if (document.readyState === 'loading') {
|
|
99
|
+
document.addEventListener('DOMContentLoaded', boot);
|
|
100
|
+
} else {
|
|
101
|
+
boot();
|
|
102
|
+
}
|
|
103
|
+
})();
|
package/src/setupTests.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|
2
|
-
// allows you to do things like:
|
|
3
|
-
// expect(element).toHaveTextContent(/react/i)
|
|
4
|
-
// learn more: https://github.com/testing-library/jest-dom
|
|
5
|
-
import '@testing-library/jest-dom';
|
|
1
|
+
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|
2
|
+
// allows you to do things like:
|
|
3
|
+
// expect(element).toHaveTextContent(/react/i)
|
|
4
|
+
// learn more: https://github.com/testing-library/jest-dom
|
|
5
|
+
import '@testing-library/jest-dom';
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"strict": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"declarationMap": true,
|
|
13
|
+
"outDir": "./dist",
|
|
14
|
+
"rootDir": "./src",
|
|
15
|
+
"moduleResolution": "node",
|
|
16
|
+
"resolveJsonModule": true,
|
|
17
|
+
"allowSyntheticDefaultImports": true,
|
|
18
|
+
"experimentalDecorators": true,
|
|
19
|
+
"emitDecoratorMetadata": true,
|
|
20
|
+
"noImplicitAny": true,
|
|
21
|
+
"noImplicitReturns": true,
|
|
22
|
+
"noImplicitThis": true,
|
|
23
|
+
"noUnusedLocals": true,
|
|
24
|
+
"noUnusedParameters": true,
|
|
25
|
+
"strictNullChecks": true,
|
|
26
|
+
"strictFunctionTypes": true,
|
|
27
|
+
"strictBindCallApply": true,
|
|
28
|
+
"strictPropertyInitialization": true,
|
|
29
|
+
"noFallthroughCasesInSwitch": true,
|
|
30
|
+
"sourceMap": true,
|
|
31
|
+
"baseUrl": ".",
|
|
32
|
+
"paths": {
|
|
33
|
+
"@/*": ["src/*"],
|
|
34
|
+
"@core/*": ["src/core/*"],
|
|
35
|
+
"@config/*": ["src/config/*"],
|
|
36
|
+
"@types/*": ["types/*"]
|
|
37
|
+
},
|
|
38
|
+
"typeRoots": ["./node_modules/@types", "./types"]
|
|
39
|
+
},
|
|
40
|
+
"include": [
|
|
41
|
+
"src/**/*",
|
|
42
|
+
"types/**/*"
|
|
43
|
+
],
|
|
44
|
+
"exclude": [
|
|
45
|
+
"node_modules",
|
|
46
|
+
"dist",
|
|
47
|
+
"build",
|
|
48
|
+
"**/*.test.js",
|
|
49
|
+
"**/*.spec.js"
|
|
50
|
+
]
|
|
51
|
+
}
|