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.
Files changed (252) hide show
  1. package/.claude/mem/TIMELINE.md +36 -0
  2. package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-external-script-solution.md +24 -0
  3. package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-session-summary.md +43 -0
  4. package/.claude/mem/notes/2026-02-11-cli-fix-editor-command-alias.md +26 -0
  5. package/.claude/mem/notes/2026-02-11-phase-3-developer-experience-completed.md +51 -0
  6. package/.claude/mem/notes/2026-02-11-phase-4-web-workers-implementation-complete.md +59 -0
  7. package/.claude/mem/notes/2026-02-11-visualify-phase-2-3d-visualization-complete.md +50 -0
  8. package/.claude/mem/notes/2026-02-11-visualify-phase-2-committed-ready-for-phase-3.md +33 -0
  9. package/.claude/mem/notes/2026-02-11-visualify-phase-3-complete-developer-experience.md +52 -0
  10. package/.claude/mem/notes/2026-02-11-visualify-repository-cleanup-complete.md +28 -0
  11. package/.claude/mem/notes/2026-02-18-codebase-cleanup-docsify-plugin-documentation.md +37 -0
  12. package/.claude/mem/notes/2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller.md +18 -0
  13. package/.claude/mem/notes/2026-02-19-docsify-plugin-fixes-latex-and-visualify-code-bloc.md +26 -0
  14. package/.claude/mem/notes/2026-02-19-page-mode-docs-update-decisions.md +23 -0
  15. package/.claude/mem/notes/2026-02-19-react-context-infinite-re-render-loop-fix-pattern.md +31 -0
  16. package/.claude/mem/notes/2026-02-19-version-300-bump-and-build-fixes.md +32 -0
  17. package/.claude/mem/notes/2026-02-19-visualify-build-deployment-architecture-bug-fixes.md +25 -0
  18. package/.claude/mem/notes/2026-02-19-visualify-dist-iife-self-contained-build-config.md +30 -0
  19. package/.claude/mem/notes/2026-02-19-visualify-infinite-loop-i18n-fixes.md +31 -0
  20. package/.claude/mem/notes/2026-02-19-visualify-v3-bundle-splitting-docs-restructuring.md +32 -0
  21. package/.claude/mem/notes/2026-02-20-bundle-externalization-final-architecture.md +29 -0
  22. package/.claude/mem/notes/2026-02-20-chromium-page-fix-unstable-keys-and-double-event-b.md +27 -0
  23. package/.claude/mem/notes/2026-02-20-console-cleanup-bundle-optimization-commit.md +20 -0
  24. package/.claude/mem/notes/2026-02-20-dotbio-dot-plot-fix-useeffect-dependency.md +21 -0
  25. package/.claude/mem/notes/2026-02-20-public-folder-cleanup-and-readme-rewrite.md +25 -0
  26. package/.claude/mem/notes/2026-02-20-v300-release-and-beta-channel-strategy.md +29 -0
  27. package/.claude/mem/notes/2026-02-20-visium-background-image-unknown-legend-fix.md +19 -0
  28. package/.claude/mem/notes/2026-02-20-visualify-cdn-loader-bundle-externalization.md +34 -0
  29. package/.claude/mem/sessions/session-2026-02-20-031524.md +54 -0
  30. package/.claude/settings.local.json +21 -0
  31. package/.github/workflows/static.yml.bak +51 -51
  32. package/.sisyphus/boulder.json +65 -0
  33. package/.sisyphus/plans/phase-4-advanced-optimizations.md +217 -0
  34. package/LICENSE +674 -674
  35. package/README.md +94 -59
  36. package/config-overrides.js +31 -31
  37. package/dist/stats.html +4949 -0
  38. package/dist/visualify-3d.esm.js +1 -0
  39. package/dist/visualify-3d.js +1 -0
  40. package/dist/visualify-core.esm.js +1 -0
  41. package/dist/visualify-core.js +1 -0
  42. package/dist/visualify-docs.esm.js +1 -0
  43. package/dist/visualify-docs.js +1 -0
  44. package/dist/visualify-loader.js +1 -0
  45. package/dist/visualify-pages.esm.js +1 -0
  46. package/dist/visualify-pages.js +1 -0
  47. package/dist/visualify-portal.esm.js +1 -0
  48. package/dist/visualify-portal.js +1 -0
  49. package/dist/visualify-shared.js +26571 -0
  50. package/dist/visualify.js +1 -188
  51. package/docs/CHANGELOG.md +148 -0
  52. package/docs/cli/commands.md +513 -0
  53. package/docs/configuration/visualify-json.md +474 -0
  54. package/docs/docs/3d-visualization.md +374 -0
  55. package/docs/docs/CLI.md +303 -34
  56. package/docs/docs/README.md +65 -65
  57. package/docs/docs/Rechart/bar.md +190 -190
  58. package/docs/docs/Rechart/funnel.md +241 -241
  59. package/docs/docs/Rechart/line.md +355 -355
  60. package/docs/docs/Rechart/pie.md +225 -225
  61. package/docs/docs/Rechart/radar.md +253 -253
  62. package/docs/docs/Rechart/scatter.md +298 -298
  63. package/docs/docs/_404.md +51 -51
  64. package/docs/docs/_coverpage.md +11 -11
  65. package/docs/docs/_sidebar.md +54 -44
  66. package/docs/docs/components/dotBio.md +87 -34
  67. package/docs/docs/components/echart.md +171 -82
  68. package/docs/docs/components/html.md +61 -34
  69. package/docs/docs/components/macaron.md +156 -145
  70. package/docs/docs/components/markdown.md +42 -0
  71. package/docs/docs/components/more.md +183 -142
  72. package/docs/docs/components/plotly.md +132 -62
  73. package/docs/docs/components/scatterL.md +171 -70
  74. package/docs/docs/components/visium.md +112 -57
  75. package/docs/docs/configuration.md +121 -121
  76. package/docs/docs/deploy.md +31 -31
  77. package/docs/docs/docsify-plugin.md +655 -0
  78. package/docs/docs/hmr.md +165 -0
  79. package/docs/docs/i18n.md +332 -0
  80. package/docs/docs/log.md +30 -9
  81. package/docs/docs/more-pages.md +23 -23
  82. package/docs/docs/quickstart.md +148 -124
  83. package/docs/docs/rechart-attributes.md +74 -74
  84. package/docs/docs/rechart-basic-usage.md +160 -162
  85. package/docs/docs/theme.md +5 -5
  86. package/docs/docs/typescript.md +306 -0
  87. package/docs/docs/visual-editor.md +359 -0
  88. package/docs/index.html +85 -71
  89. package/docs/manifest.json +23 -23
  90. package/docs/migration/v3-migration.md +392 -0
  91. package/docs/static/css/fluff-stuff.css +169 -169
  92. package/docs/static/css/font-awesome.min.css +4 -4
  93. package/docs/static/css/visualify.css +6 -25
  94. package/docs/static/js/3d-viz-examples.js +181 -0
  95. package/docs/static/js/configuration.js +630 -448
  96. package/docs/static/js/visualify.js +1 -188
  97. package/package.json +106 -84
  98. package/rollup.config.mjs +766 -76
  99. package/src/_css/404.css +115 -115
  100. package/src/_css/App.css +37 -37
  101. package/src/_css/autoSuggestion.css +26 -26
  102. package/src/_css/circular-progress.css +32 -32
  103. package/src/_css/index.css +36 -36
  104. package/src/_css/modern.css +350 -25
  105. package/src/_media/corner.svg +8 -8
  106. package/src/_media/download.svg +3 -3
  107. package/src/_media/logo.svg +14 -14
  108. package/src/_test/App.test.js +15 -15
  109. package/src/_utils/reportWebVitals.js +13 -13
  110. package/src/a11y/README.md +177 -0
  111. package/src/a11y/aria-labels.js +339 -0
  112. package/src/a11y/color-contrast.js +535 -0
  113. package/src/a11y/index.js +197 -0
  114. package/src/a11y/keyboard-nav.js +523 -0
  115. package/src/a11y/styles.css +165 -0
  116. package/src/cli/commands/dev.js +214 -0
  117. package/src/cli/commands/docs.js +521 -0
  118. package/src/cli/commands/edit.js +379 -0
  119. package/src/cli/commands/init.js +213 -0
  120. package/src/cli/commands/portal.js +236 -0
  121. package/src/cli/dev-server.js +530 -0
  122. package/src/cli/hmr.js +456 -0
  123. package/src/cli/index.js +180 -0
  124. package/src/cli/utils/config.js +207 -0
  125. package/src/cli/utils/logger.js +241 -0
  126. package/src/config/defaults.ts +122 -0
  127. package/src/config/index.ts +72 -0
  128. package/src/config/loader.ts +478 -0
  129. package/src/config/schema.ts +227 -0
  130. package/src/config/validator.ts +337 -0
  131. package/src/core/appContext.js +34 -27
  132. package/src/core/components/Bar.js +383 -0
  133. package/src/core/components/Bar3D.js +473 -0
  134. package/src/core/components/LargeDatasetChart.js +296 -0
  135. package/src/core/components/Line3D.js +310 -0
  136. package/src/core/components/Scatter.js +392 -188
  137. package/src/core/components/Scatter3D.js +455 -0
  138. package/src/core/components/ScatterBio.js +601 -572
  139. package/src/core/components/Surface3D.js +326 -0
  140. package/src/core/components/ThreeCustom.js +648 -0
  141. package/src/core/components/ThreeScene.js +459 -0
  142. package/src/core/components/VisiumPlot.js +191 -165
  143. package/src/core/components/browser.js +42 -42
  144. package/src/core/components/dotplot.js +413 -413
  145. package/src/core/components/html.js +29 -29
  146. package/src/core/components/list.js +178 -178
  147. package/src/core/components/macaron.js +206 -201
  148. package/src/core/components/markdown.js +56 -56
  149. package/src/core/components/parser.scatterBio.js +582 -587
  150. package/src/core/components/ratio.js +82 -80
  151. package/src/core/components/scatterL.js +206 -173
  152. package/src/core/components/searchbar.js +156 -131
  153. package/src/core/components/selection.js +310 -193
  154. package/src/core/components/timeline.js +236 -281
  155. package/src/core/components/visium.js +114 -97
  156. package/src/core/data-processor.js +413 -0
  157. package/src/core/fetch/condfetch.js +82 -82
  158. package/src/core/fetch/fetch.js +92 -92
  159. package/src/core/fetch/json.js +29 -29
  160. package/src/core/fetch/vfetch.js +42 -42
  161. package/src/core/hmr-client.js +724 -0
  162. package/src/core/liveEditor.js +44 -44
  163. package/src/core/modules/codeEditorWithPreview.js +104 -104
  164. package/src/core/modules/echarts/common.js +20 -20
  165. package/src/core/modules/echarts/gl.js +228 -0
  166. package/src/core/modules/echarts/presetHandler.js +41 -41
  167. package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
  168. package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
  169. package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
  170. package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
  171. package/src/core/modules/echarts.js +70 -71
  172. package/src/core/modules/echartsUtils.js +43 -43
  173. package/src/core/modules/echartswitcher.js +227 -152
  174. package/src/core/modules/replotly/presetHandler.js +24 -24
  175. package/src/core/modules/replotly/presets/minimum.js +18 -18
  176. package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
  177. package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
  178. package/src/core/modules/replotly.js +74 -71
  179. package/src/core/modules/threejs/Camera.js +373 -0
  180. package/src/core/modules/threejs/Lighting.js +459 -0
  181. package/src/core/modules/threejs/Renderer.js +364 -0
  182. package/src/core/modules/threejs/Scene.js +266 -0
  183. package/src/core/modules/threejs/index.js +155 -0
  184. package/src/core/pages/404.js +50 -50
  185. package/src/core/pages/error.js +27 -27
  186. package/src/core/pages/jsonPage.js +62 -62
  187. package/src/core/pages/loading.js +44 -44
  188. package/src/core/parser/echart.data.js +204 -183
  189. package/src/core/parser/echart.features.js +125 -125
  190. package/src/core/parser/echart.general.js +147 -147
  191. package/src/core/parser/echart.hilbert.js +57 -57
  192. package/src/core/parser/echart.parser.js +210 -210
  193. package/src/core/parser/echart.series.js +67 -67
  194. package/src/core/parser/echart.types.js +76 -76
  195. package/src/core/parser/plotly.config.js +10 -10
  196. package/src/core/parser/plotly.data.js +132 -132
  197. package/src/core/parser/plotly.layout.js +9 -9
  198. package/src/core/parser/plotly.violin.js +18 -18
  199. package/src/core/recharts.js +361 -62
  200. package/src/core/router/alias.js +49 -49
  201. package/src/core/router/jsonRouter.js +31 -31
  202. package/src/core/themes/modern.js +32 -32
  203. package/src/core/themes/themeSelector.js +33 -33
  204. package/src/core/visualify.js +213 -47
  205. package/src/core/widgets/circularProgress.js +23 -23
  206. package/src/core/widgets/controller.js +116 -83
  207. package/src/core/widgets/errorBoundary.js +36 -36
  208. package/src/core/widgets/footer.js +185 -177
  209. package/src/core/widgets/header.js +238 -234
  210. package/src/core/widgets/layout/Grid.js +31 -31
  211. package/src/core/widgets/layout.js +36 -36
  212. package/src/core/widgets/mapping.js +56 -42
  213. package/src/core/workers/data-worker.js +349 -0
  214. package/src/core/workers/worker-pool.js +396 -0
  215. package/src/docsify/bundle.js +215 -0
  216. package/src/docsify/markdown.js +271 -0
  217. package/src/docsify/plugin.js +268 -0
  218. package/src/editor/README.md +172 -0
  219. package/src/editor/components/ChartBuilder.jsx +341 -0
  220. package/src/editor/components/ChartTypeSidebar.jsx +91 -0
  221. package/src/editor/components/Editor.jsx +367 -0
  222. package/src/editor/components/Preview.jsx +446 -0
  223. package/src/editor/components/PropertyPanel.jsx +468 -0
  224. package/src/editor/components/StatusBar.jsx +85 -0
  225. package/src/editor/context/EditorContext.js +248 -0
  226. package/src/editor/hooks/useDebounce.js +32 -0
  227. package/src/editor/index.js +315 -0
  228. package/src/editor/styles/editor.css +637 -0
  229. package/src/editor/utils/chartValidator.js +263 -0
  230. package/src/entries/charts3d.js +70 -0
  231. package/src/entries/core.js +78 -0
  232. package/src/entries/docs.js +154 -0
  233. package/src/entries/pages.js +93 -0
  234. package/src/entries/portal.js +204 -0
  235. package/src/entries/shared.js +50 -0
  236. package/src/i18n/formatters.js +455 -0
  237. package/src/i18n/index.js +169 -0
  238. package/src/i18n/locales/ar.json +137 -0
  239. package/src/i18n/locales/de.json +137 -0
  240. package/src/i18n/locales/en.json +137 -0
  241. package/src/i18n/locales/es.json +137 -0
  242. package/src/i18n/locales/he.json +137 -0
  243. package/src/i18n/locales/zh.json +137 -0
  244. package/src/i18n/rtl.css +183 -0
  245. package/src/index.js +82 -62
  246. package/src/loader.js +103 -0
  247. package/src/setupTests.js +5 -5
  248. package/tsconfig.json +51 -0
  249. package/types/charts.d.ts +569 -0
  250. package/types/components.d.ts +441 -0
  251. package/types/config.d.ts +199 -0
  252. 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
- try {
16
- if (window.$visualify) {
17
- if (process.env.NODE_ENV === 'development') {
18
- console.log('window.$visualify', window.$visualify);
19
- window.$visualify.Recharts = Recharts;
20
- window.$visualify.LiveEditor = LiveEditor;
21
- }
22
- if (window.$visualify.mode === 'charts') {
23
- window.$visualify.Recharts = Recharts;
24
- window.$visualify.LiveEditor = LiveEditor;
25
- } else if (
26
- window.$visualify.mode === 'pages' ||
27
- window.$visualify.mode === undefined
28
- ) {
29
- // loads the visualify in pages mode
30
- CreateApp(window.$visualify);
31
- } else {
32
- console.error('mode should be recharts or pages');
33
- }
34
-
35
- // If you want to start measuring performance in your app, pass a function
36
- // to log results (for example: reportWebVitals(console.log))
37
- // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
38
- reportWebVitals();
39
- } else {
40
- // If load js before $visualify is set
41
- let _visualify;
42
- Object.defineProperty(window, '$visualify', {
43
- set(config) {
44
- // Store the value internally
45
- _visualify = config;
46
- // Additional code for after $visualify is set
47
- if (config.mode === 'charts')
48
- throw new Error(
49
- 'You need to initialize $visualify before using recharts',
50
- );
51
- // loads the visualify in page mode
52
- else if (config.mode === 'pages') CreateApp(window.$visualify);
53
- else console.warn(`Unsupported mode: ${config.mode}`);
54
- },
55
- get() {
56
- return _visualify;
57
- },
58
- });
59
- }
60
- } catch (e) {
61
- console.error(e);
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
+ }