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.
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 -193
  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 -0
  63. package/docs/docs/_404.md +51 -51
  64. package/docs/docs/_coverpage.md +11 -11
  65. package/docs/docs/_sidebar.md +54 -43
  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 -123
  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 -1
  81. package/docs/docs/more-pages.md +23 -23
  82. package/docs/docs/quickstart.md +148 -119
  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 -579
  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 -143
  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
@@ -1,143 +1,147 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-02 11:56:41
4
- * @FilePath : /visualifyjs/src/core/parser/echart.general.js
5
- * @Description :
6
- *
7
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
8
- */
9
- import { handle_alltypes_chart } from './echart.types';
10
- import { getArrayEl } from './echart.series';
11
-
12
- const _parser_gereral = (options = {}, preset = {}) => {
13
- // Parse the custom options
14
- const parsedOptions = handle_alltypes_chart(getArrayEl(options.type), {
15
- ...preset,
16
- });
17
-
18
- // Parse the common options
19
- if ('title' in options) {
20
- if (typeof options.title === 'string')
21
- parsedOptions.title = {
22
- ...parsedOptions?.title,
23
- text: options.title,
24
- };
25
- else parsedOptions.title = options.title;
26
- }
27
-
28
- if ('subtitle' in options) parsedOptions.title.subtext = options.subtitle;
29
-
30
- if (options.legend === false) parsedOptions.legend = { show: false };
31
- else if ('legend' in options)
32
- parsedOptions.legend = { ...options.legend, ...options.legend };
33
-
34
- if ('xAxis' in options) {
35
- if (options.xAxis === false) parsedOptions.xAxis = { show: false };
36
- else if (options.xAxis)
37
- parsedOptions.xAxis = {
38
- ...parsedOptions?.xAxis,
39
- data: options.xAxis,
40
- };
41
- }
42
-
43
- if ('yAxis' in options) {
44
- if (options.yAxis === false) parsedOptions.yAxis = { show: false };
45
- else if (Array.isArray(options.yAxis))
46
- parsedOptions.yAxis = {
47
- ...parsedOptions?.yAxis,
48
- data: options.yAxis,
49
- };
50
- }
51
-
52
- if ('xAxisLabel' in options) {
53
- parsedOptions.xAxis = {
54
- ...parsedOptions?.xAxis,
55
- name: options.xAxisLabel,
56
- };
57
- }
58
-
59
- if ('yAxisLabel' in options) {
60
- parsedOptions.yAxis = {
61
- ...parsedOptions?.yAxis,
62
- name: options.yAxisLabel,
63
- };
64
- }
65
-
66
- if ('xAxisLineshow' in options) {
67
- parsedOptions.xAxis = {
68
- ...parsedOptions?.xAxis,
69
- axisLine: {
70
- ...parsedOptions.xAxis?.axisLine,
71
- show: options.xAxisLineshow,
72
- },
73
- };
74
- }
75
-
76
- if ('yAxisLineshow' in options) {
77
- parsedOptions.yAxis = {
78
- ...parsedOptions?.yAxis,
79
- axisLine: {
80
- ...parsedOptions.yAxis?.axisLine,
81
- show: options.yAxisLineshow,
82
- },
83
- };
84
- }
85
-
86
- if ('xAxisLabelShow' in options) {
87
- parsedOptions.xAxis = {
88
- ...parsedOptions?.xAxis,
89
- axisLabel: {
90
- ...parsedOptions.xAxis?.axisLabel,
91
- show: options.xAxisLabelShow,
92
- },
93
- };
94
- }
95
-
96
- if ('yAxisLabelShow' in options) {
97
- parsedOptions.yAxis = {
98
- ...parsedOptions.yAxis,
99
- axisLabel: {
100
- ...parsedOptions.yAxis?.axisLabel,
101
- show: options.yAxisLabelShow,
102
- },
103
- };
104
- }
105
-
106
- if ('xAxisLabelColor' in options) {
107
- parsedOptions.xAxis = {
108
- ...parsedOptions?.xAxis, // Copy existing xAxis properties
109
- axisLabel: {
110
- ...parsedOptions.xAxis?.axisLabel, // Copy existing axisLabel properties
111
- color: options.xAxisLabelColor,
112
- },
113
- };
114
- }
115
-
116
- if ('yAxisLabelColor' in options) {
117
- parsedOptions.yAxis = {
118
- ...parsedOptions?.yAxis, // Copy existing yAxis properties
119
- axisLabel: {
120
- ...parsedOptions.yAxis?.axisLabel, // Copy existing axisLabel properties
121
- color: options.yAxisLabelColor,
122
- },
123
- };
124
- }
125
-
126
- if ('tooltip' in options) {
127
- parsedOptions.tooltip = {
128
- ...parsedOptions?.tooltip,
129
- ...options.tooltip,
130
- };
131
- }
132
-
133
- if ('toolbox' in options) {
134
- parsedOptions.toolbox = {
135
- ...parsedOptions?.toolbox,
136
- ...options.toolbox,
137
- };
138
- }
139
-
140
- return parsedOptions;
141
- };
142
-
143
- export default _parser_gereral;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-02 11:56:41
4
+ * @FilePath : /visualify.js/src/core/parser/echart.general.js
5
+ * @Description :
6
+ *
7
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
8
+ */
9
+ import { handle_alltypes_chart } from './echart.types';
10
+ import { getArrayEl } from './echart.series';
11
+
12
+ const _parser_gereral = (options = {}, preset = {}) => {
13
+ // Parse the custom options
14
+ const parsedOptions = handle_alltypes_chart(getArrayEl(options.type), {
15
+ ...preset,
16
+ });
17
+
18
+ // Parse the common options
19
+ if ('title' in options) {
20
+ if (typeof options.title === 'string')
21
+ parsedOptions.title = {
22
+ ...parsedOptions?.title,
23
+ text: options.title,
24
+ };
25
+ else parsedOptions.title = options.title;
26
+ }
27
+
28
+ if ('subtitle' in options) parsedOptions.title.subtext = options.subtitle;
29
+
30
+ if (options.legend === false) parsedOptions.legend = { show: false };
31
+ else if ('legend' in options)
32
+ parsedOptions.legend = { ...options.legend, ...options.legend };
33
+
34
+ if ('xAxis' in options) {
35
+ if (options.xAxis === false) parsedOptions.xAxis = { show: false };
36
+ else if (Array.isArray(options.xAxis)) {
37
+ parsedOptions.xAxis = {
38
+ ...parsedOptions?.xAxis,
39
+ data: options.xAxis,
40
+ };
41
+ } else {
42
+ parsedOptions.xAxis = options.xAxis;
43
+ }
44
+ }
45
+
46
+ if ('yAxis' in options) {
47
+ if (options.yAxis === false) parsedOptions.yAxis = { show: false };
48
+ else if (Array.isArray(options.yAxis))
49
+ parsedOptions.yAxis = {
50
+ ...parsedOptions?.yAxis,
51
+ data: options.yAxis,
52
+ };
53
+ else parsedOptions.yAxis = options.yAxis;
54
+ }
55
+
56
+ if ('xAxisLabel' in options) {
57
+ parsedOptions.xAxis = {
58
+ ...parsedOptions?.xAxis,
59
+ name: options.xAxisLabel,
60
+ };
61
+ }
62
+
63
+ if ('yAxisLabel' in options) {
64
+ parsedOptions.yAxis = {
65
+ ...parsedOptions?.yAxis,
66
+ name: options.yAxisLabel,
67
+ };
68
+ }
69
+
70
+ if ('xAxisLineshow' in options) {
71
+ parsedOptions.xAxis = {
72
+ ...parsedOptions?.xAxis,
73
+ axisLine: {
74
+ ...parsedOptions.xAxis?.axisLine,
75
+ show: options.xAxisLineshow,
76
+ },
77
+ };
78
+ }
79
+
80
+ if ('yAxisLineshow' in options) {
81
+ parsedOptions.yAxis = {
82
+ ...parsedOptions?.yAxis,
83
+ axisLine: {
84
+ ...parsedOptions.yAxis?.axisLine,
85
+ show: options.yAxisLineshow,
86
+ },
87
+ };
88
+ }
89
+
90
+ if ('xAxisLabelShow' in options) {
91
+ parsedOptions.xAxis = {
92
+ ...parsedOptions?.xAxis,
93
+ axisLabel: {
94
+ ...parsedOptions.xAxis?.axisLabel,
95
+ show: options.xAxisLabelShow,
96
+ },
97
+ };
98
+ }
99
+
100
+ if ('yAxisLabelShow' in options) {
101
+ parsedOptions.yAxis = {
102
+ ...parsedOptions.yAxis,
103
+ axisLabel: {
104
+ ...parsedOptions.yAxis?.axisLabel,
105
+ show: options.yAxisLabelShow,
106
+ },
107
+ };
108
+ }
109
+
110
+ if ('xAxisLabelColor' in options) {
111
+ parsedOptions.xAxis = {
112
+ ...parsedOptions?.xAxis, // Copy existing xAxis properties
113
+ axisLabel: {
114
+ ...parsedOptions.xAxis?.axisLabel, // Copy existing axisLabel properties
115
+ color: options.xAxisLabelColor,
116
+ },
117
+ };
118
+ }
119
+
120
+ if ('yAxisLabelColor' in options) {
121
+ parsedOptions.yAxis = {
122
+ ...parsedOptions?.yAxis, // Copy existing yAxis properties
123
+ axisLabel: {
124
+ ...parsedOptions.yAxis?.axisLabel, // Copy existing axisLabel properties
125
+ color: options.yAxisLabelColor,
126
+ },
127
+ };
128
+ }
129
+
130
+ if ('tooltip' in options) {
131
+ parsedOptions.tooltip = {
132
+ ...parsedOptions?.tooltip,
133
+ ...options.tooltip,
134
+ };
135
+ }
136
+
137
+ if ('toolbox' in options) {
138
+ parsedOptions.toolbox = {
139
+ ...parsedOptions?.toolbox,
140
+ ...options.toolbox,
141
+ };
142
+ }
143
+
144
+ return parsedOptions;
145
+ };
146
+
147
+ export default _parser_gereral;
@@ -1,57 +1,57 @@
1
- import hilbert from 'hilbert';
2
-
3
- const selectPointsForDownsampling = (
4
- points,
5
- hilbertValues,
6
- threshold = 1000,
7
- ) => {
8
- // Pair each point with its Hilbert value
9
- const pointsWithHilbert = points.map((point, index) => ({
10
- point,
11
- hilbert: hilbertValues[index],
12
- }));
13
-
14
- // Sort by Hilbert value
15
- pointsWithHilbert.sort((a, b) => a.hilbert - b.hilbert);
16
-
17
- // Calculate the step size to achieve the target number of points
18
- const step = Math.ceil(points.length / threshold);
19
-
20
- // Select a subset of points
21
- const downsampled = [];
22
- for (let i = 0; i < points.length; i += step) {
23
- downsampled.push(pointsWithHilbert[i].point);
24
- }
25
-
26
- return downsampled;
27
- };
28
-
29
- const calculateHilbertValue = (point, order = 16) => {
30
- // Create a Hilbert curve instance
31
- const hilbertInstance = new hilbert.Hilbert2d(); // Replace with the actual class name if different
32
- return hilbertInstance.xy2d(point.x, point.y, order);
33
- };
34
-
35
- const downsampleSeries = (series, hilbertSettings) => {
36
- const { order = 16, threshold } = hilbertSettings;
37
-
38
- const downsampledSeries = series.map((data) => {
39
- const hilbertValues = data.data.map((point) =>
40
- calculateHilbertValue(point, order),
41
- );
42
- const downsampledData = selectPointsForDownsampling(
43
- data.data,
44
- hilbertValues,
45
- threshold,
46
- );
47
-
48
- return {
49
- ...data,
50
- data: downsampledData,
51
- };
52
- });
53
-
54
- return downsampledSeries;
55
- };
56
-
57
- export default downsampleSeries;
1
+ import hilbert from 'hilbert';
2
+
3
+ const selectPointsForDownsampling = (
4
+ points,
5
+ hilbertValues,
6
+ threshold = 1000,
7
+ ) => {
8
+ // Pair each point with its Hilbert value
9
+ const pointsWithHilbert = points.map((point, index) => ({
10
+ point,
11
+ hilbert: hilbertValues[index],
12
+ }));
13
+
14
+ // Sort by Hilbert value
15
+ pointsWithHilbert.sort((a, b) => a.hilbert - b.hilbert);
16
+
17
+ // Calculate the step size to achieve the target number of points
18
+ const step = Math.ceil(points.length / threshold);
19
+
20
+ // Select a subset of points
21
+ const downsampled = [];
22
+ for (let i = 0; i < points.length; i += step) {
23
+ downsampled.push(pointsWithHilbert[i].point);
24
+ }
25
+
26
+ return downsampled;
27
+ };
28
+
29
+ const calculateHilbertValue = (point, order = 16) => {
30
+ // Create a Hilbert curve instance
31
+ const hilbertInstance = new hilbert.Hilbert2d(); // Replace with the actual class name if different
32
+ return hilbertInstance.xy2d(point.x, point.y, order);
33
+ };
34
+
35
+ const downsampleSeries = (series, hilbertSettings) => {
36
+ const { order = 16, threshold } = hilbertSettings;
37
+
38
+ const downsampledSeries = series.map((data) => {
39
+ const hilbertValues = data.data.map((point) =>
40
+ calculateHilbertValue(point, order),
41
+ );
42
+ const downsampledData = selectPointsForDownsampling(
43
+ data.data,
44
+ hilbertValues,
45
+ threshold,
46
+ );
47
+
48
+ return {
49
+ ...data,
50
+ data: downsampledData,
51
+ };
52
+ });
53
+
54
+ return downsampledSeries;
55
+ };
56
+
57
+ export default downsampleSeries;