visualifyjs 2.5.3-2.dev → 2.5.3-9-dev

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of visualifyjs might be problematic. Click here for more details.

Files changed (139) hide show
  1. package/.github/workflows/{static.yml.bak → build.yaml} +51 -51
  2. package/LICENSE +674 -674
  3. package/README.md +40 -58
  4. package/config-overrides.js +31 -31
  5. package/dist/visualify.js +3 -3
  6. package/docs/CLI.md +15 -0
  7. package/docs/{docs/README.md → README.md} +41 -65
  8. package/docs/{docs/Rechart → Rechart}/bar.md +190 -190
  9. package/docs/{docs/Rechart → Rechart}/funnel.md +193 -241
  10. package/docs/{docs/Rechart → Rechart}/line.md +355 -355
  11. package/docs/{docs/Rechart → Rechart}/pie.md +225 -225
  12. package/docs/{docs/Rechart → Rechart}/radar.md +253 -253
  13. package/docs/{docs/_404.md → _404.md} +51 -51
  14. package/docs/{docs/_coverpage.md → _coverpage.md} +11 -11
  15. package/docs/{docs/_sidebar.md → _sidebar.md} +42 -44
  16. package/docs/{docs/components → components}/dotBio.md +34 -34
  17. package/docs/{docs/components → components}/echart.md +82 -82
  18. package/docs/{docs/components → components}/html.md +34 -34
  19. package/docs/{docs/components → components}/macaron.md +145 -145
  20. package/docs/components/markdown.md +0 -0
  21. package/docs/{docs/components → components}/more.md +142 -142
  22. package/docs/{docs/components → components}/plotly.md +62 -62
  23. package/docs/{docs/components → components}/scatterL.md +70 -70
  24. package/docs/{docs/components → components}/visium.md +56 -56
  25. package/docs/{docs/configuration.md → configuration.md} +123 -121
  26. package/docs/{docs/deploy.md → deploy.md} +23 -31
  27. package/docs/index.html +70 -70
  28. package/docs/log.md +1 -0
  29. package/docs/manifest.json +23 -23
  30. package/docs/{docs/more-pages.md → more-pages.md} +23 -23
  31. package/docs/{docs/quickstart.md → quickstart.md} +115 -124
  32. package/docs/{docs/rechart-attributes.md → rechart-attributes.md} +74 -74
  33. package/docs/{docs/rechart-basic-usage.md → rechart-basic-usage.md} +162 -162
  34. package/docs/static/css/fluff-stuff.css +169 -169
  35. package/docs/static/css/font-awesome.min.css +4 -4
  36. package/docs/static/css/visualify.css +25 -25
  37. package/docs/static/js/configuration.js +448 -448
  38. package/docs/static/js/visualify.js +24 -23
  39. package/docs/theme.md +3 -0
  40. package/package.json +74 -83
  41. package/rollup.config.mjs +75 -75
  42. package/src/_css/404.css +115 -115
  43. package/src/_css/App.css +37 -37
  44. package/src/_css/autoSuggestion.css +26 -26
  45. package/src/_css/circular-progress.css +32 -32
  46. package/src/_css/index.css +36 -36
  47. package/src/_css/modern.css +24 -24
  48. package/src/_media/corner.svg +8 -8
  49. package/src/_media/download.svg +3 -3
  50. package/src/_media/logo.svg +14 -14
  51. package/src/_test/App.test.js +15 -15
  52. package/src/_utils/reportWebVitals.js +13 -13
  53. package/src/core/appContext.js +27 -27
  54. package/src/core/components/Scatter.js +188 -188
  55. package/src/core/components/ScatterBio.js +572 -572
  56. package/src/core/components/VisiumPlot.js +165 -165
  57. package/src/core/components/browser.js +42 -42
  58. package/src/core/components/dotplot.js +413 -413
  59. package/src/core/components/html.js +29 -29
  60. package/src/core/components/list.js +178 -178
  61. package/src/core/components/macaron.js +201 -201
  62. package/src/core/components/markdown.js +56 -56
  63. package/src/core/components/parser.scatterBio.js +579 -587
  64. package/src/core/components/ratio.js +80 -80
  65. package/src/core/components/scatterL.js +173 -173
  66. package/src/core/components/searchbar.js +131 -131
  67. package/src/core/components/selection.js +193 -193
  68. package/src/core/components/timeline.js +281 -281
  69. package/src/core/components/visium.js +97 -97
  70. package/src/core/fetch/condfetch.js +82 -82
  71. package/src/core/fetch/fetch.js +92 -92
  72. package/src/core/fetch/json.js +29 -29
  73. package/src/core/fetch/vfetch.js +42 -42
  74. package/src/core/liveEditor.js +44 -44
  75. package/src/core/modules/codeEditorWithPreview.js +104 -104
  76. package/src/core/modules/echarts/common.js +20 -20
  77. package/src/core/modules/echarts/presetHandler.js +41 -41
  78. package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
  79. package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
  80. package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
  81. package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
  82. package/src/core/modules/echarts.js +71 -71
  83. package/src/core/modules/echartsUtils.js +43 -43
  84. package/src/core/modules/echartswitcher.js +152 -152
  85. package/src/core/modules/replotly/presetHandler.js +24 -24
  86. package/src/core/modules/replotly/presets/minimum.js +18 -18
  87. package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
  88. package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
  89. package/src/core/modules/replotly.js +71 -71
  90. package/src/core/pages/404.js +50 -50
  91. package/src/core/pages/error.js +27 -27
  92. package/src/core/pages/jsonPage.js +62 -62
  93. package/src/core/pages/loading.js +44 -44
  94. package/src/core/parser/echart.data.js +183 -183
  95. package/src/core/parser/echart.features.js +125 -125
  96. package/src/core/parser/echart.general.js +143 -147
  97. package/src/core/parser/echart.hilbert.js +57 -57
  98. package/src/core/parser/echart.parser.js +210 -210
  99. package/src/core/parser/echart.series.js +67 -67
  100. package/src/core/parser/echart.types.js +76 -76
  101. package/src/core/parser/plotly.config.js +10 -10
  102. package/src/core/parser/plotly.data.js +132 -132
  103. package/src/core/parser/plotly.layout.js +9 -9
  104. package/src/core/parser/plotly.violin.js +18 -18
  105. package/src/core/recharts.js +62 -62
  106. package/src/core/router/alias.js +49 -49
  107. package/src/core/router/jsonRouter.js +31 -31
  108. package/src/core/themes/modern.js +32 -32
  109. package/src/core/themes/themeSelector.js +33 -33
  110. package/src/core/visualify.js +47 -47
  111. package/src/core/widgets/circularProgress.js +23 -23
  112. package/src/core/widgets/controller.js +83 -83
  113. package/src/core/widgets/errorBoundary.js +36 -36
  114. package/src/core/widgets/footer.js +177 -177
  115. package/src/core/widgets/header.js +234 -234
  116. package/src/core/widgets/layout/Grid.js +31 -31
  117. package/src/core/widgets/layout.js +36 -36
  118. package/src/core/widgets/mapping.js +42 -42
  119. package/src/index.js +62 -62
  120. package/src/setupTests.js +5 -5
  121. package/docs/docs/CLI.md +0 -34
  122. package/docs/docs/Rechart/scatter.md +0 -298
  123. package/docs/docs/log.md +0 -9
  124. package/docs/docs/static/logo/favicon.ico +0 -0
  125. package/docs/docs/static/logo/logo_128x128.png +0 -0
  126. package/docs/docs/static/logo/logo_192x192.png +0 -0
  127. package/docs/docs/static/logo/logo_256x256.png +0 -0
  128. package/docs/docs/static/logo/logo_512x512.png +0 -0
  129. package/docs/docs/static/logo/logo_64x64.png +0 -0
  130. package/docs/docs/theme.md +0 -5
  131. /package/docs/{docs/Rechart → Rechart}/geo.md +0 -0
  132. /package/docs/{docs/Rechart → Rechart}/liquidfill.md +0 -0
  133. /package/docs/{docs/Rechart → Rechart}/polar.md +0 -0
  134. /package/docs/{docs/Rechart → Rechart}/sankey.md +0 -0
  135. /package/docs/{docs/Rechart/sunburst.md → Rechart/scatter.md} +0 -0
  136. /package/docs/{docs/Rechart/tree.md → Rechart/sunburst.md} +0 -0
  137. /package/docs/{docs/Rechart/wordcloud.md → Rechart/tree.md} +0 -0
  138. /package/docs/{docs/components/markdown.md → Rechart/wordcloud.md} +0 -0
  139. /package/docs/{docs/static → static}/_images/deploy-github-pages.png +0 -0
@@ -1,71 +1,71 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-01 14:18:43
4
- * @FilePath : /visualifyjs/src/core/libs/echarts.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- import React, { useEffect, useRef, forwardRef } from 'react';
9
- import ReactEcharts from 'echarts-for-react';
10
-
11
- const ReCharts = forwardRef(({ options, style, onEvents = {} }, ref) => {
12
- const internalRef = useRef(null);
13
-
14
- // Use the provided ref or the internalRef
15
- const chartRef = ref || internalRef;
16
-
17
- useEffect(() => {
18
- // Ensure the chart instance is available
19
- if (chartRef.current) {
20
- const chart = chartRef.current.getEchartsInstance();
21
-
22
- // Set the 'silent' option to suppress warnings
23
- chart.setOption({
24
- ...options,
25
- silent: true,
26
- });
27
-
28
- // Efficiently update options
29
- if (JSON.stringify(options) !== JSON.stringify(chart.getOption())) {
30
- chart.clear();
31
- chart.setOption(options);
32
- }
33
-
34
- // Handle events
35
- Object.keys(onEvents).forEach((eventName) => {
36
- chart.off(eventName); // Remove old listener
37
- chart.on(eventName, onEvents[eventName]); // Attach new listener
38
- });
39
-
40
- // Resize observer for responsive charts
41
- const resizeObserver = new ResizeObserver(() => {
42
- chart.resize();
43
- });
44
- const parent = chart.getDom().parentElement;
45
- if (parent) {
46
- resizeObserver.observe(parent);
47
- }
48
-
49
- // Cleanup
50
- return () => {
51
- resizeObserver.disconnect();
52
-
53
- if (!chart.isDisposed()) {
54
- chart.off();
55
- chart.dispose();
56
- }
57
- };
58
- }
59
- }, [options, chartRef, onEvents]); // Include onEvents in the dependency array
60
-
61
- return (
62
- <ReactEcharts
63
- ref={chartRef}
64
- option={options}
65
- style={style}
66
- onEvents={onEvents}
67
- />
68
- );
69
- });
70
-
71
- export default ReCharts;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-01 14:18:43
4
+ * @FilePath : /visualifyjs/src/core/libs/echarts.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ import React, { useEffect, useRef, forwardRef } from 'react';
9
+ import ReactEcharts from 'echarts-for-react';
10
+
11
+ const ReCharts = forwardRef(({ options, style, onEvents = {} }, ref) => {
12
+ const internalRef = useRef(null);
13
+
14
+ // Use the provided ref or the internalRef
15
+ const chartRef = ref || internalRef;
16
+
17
+ useEffect(() => {
18
+ // Ensure the chart instance is available
19
+ if (chartRef.current) {
20
+ const chart = chartRef.current.getEchartsInstance();
21
+
22
+ // Set the 'silent' option to suppress warnings
23
+ chart.setOption({
24
+ ...options,
25
+ silent: true,
26
+ });
27
+
28
+ // Efficiently update options
29
+ if (JSON.stringify(options) !== JSON.stringify(chart.getOption())) {
30
+ chart.clear();
31
+ chart.setOption(options);
32
+ }
33
+
34
+ // Handle events
35
+ Object.keys(onEvents).forEach((eventName) => {
36
+ chart.off(eventName); // Remove old listener
37
+ chart.on(eventName, onEvents[eventName]); // Attach new listener
38
+ });
39
+
40
+ // Resize observer for responsive charts
41
+ const resizeObserver = new ResizeObserver(() => {
42
+ chart.resize();
43
+ });
44
+ const parent = chart.getDom().parentElement;
45
+ if (parent) {
46
+ resizeObserver.observe(parent);
47
+ }
48
+
49
+ // Cleanup
50
+ return () => {
51
+ resizeObserver.disconnect();
52
+
53
+ if (!chart.isDisposed()) {
54
+ chart.off();
55
+ chart.dispose();
56
+ }
57
+ };
58
+ }
59
+ }, [options, chartRef, onEvents]); // Include onEvents in the dependency array
60
+
61
+ return (
62
+ <ReactEcharts
63
+ ref={chartRef}
64
+ option={options}
65
+ style={style}
66
+ onEvents={onEvents}
67
+ />
68
+ );
69
+ });
70
+
71
+ export default ReCharts;
@@ -1,43 +1,43 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-11-11 23:09:44
4
- * @FilePath : /visualifyjs/src/core/lib/echartsUtils
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- // echartsUtils.js
9
- import * as echarts from 'echarts';
10
-
11
- export const initChart = (chartRef, chartOption) => {
12
- if (!chartRef.current) {
13
- throw new Error('Chart container DOM element not available.');
14
- }
15
-
16
- let chartInstance = echarts.getInstanceByDom(chartRef.current);
17
- if (!chartInstance) {
18
- chartInstance = echarts.init(chartRef.current);
19
- }
20
- chartInstance.setOption(chartOption);
21
- return chartInstance;
22
- };
23
-
24
- export const disposeChart = (chartInstance) => {
25
- chartInstance && chartInstance.dispose();
26
- };
27
-
28
- export const handleChartForSharedDataChange = (
29
- chartRef,
30
- sharedData,
31
- previousSharedDataRef,
32
- extra_Excute_Func = null,
33
- ) => {
34
- if (sharedData !== previousSharedDataRef.current) {
35
- const chartInstance = echarts.getInstanceByDom(chartRef.current);
36
- disposeChart(chartInstance);
37
- previousSharedDataRef.current = sharedData;
38
- if (extra_Excute_Func) {
39
- //console.log('excute func: ', extra_Excute_Func);
40
- extra_Excute_Func();
41
- }
42
- }
43
- };
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-11-11 23:09:44
4
+ * @FilePath : /visualifyjs/src/core/lib/echartsUtils
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ // echartsUtils.js
9
+ import * as echarts from 'echarts';
10
+
11
+ export const initChart = (chartRef, chartOption) => {
12
+ if (!chartRef.current) {
13
+ throw new Error('Chart container DOM element not available.');
14
+ }
15
+
16
+ let chartInstance = echarts.getInstanceByDom(chartRef.current);
17
+ if (!chartInstance) {
18
+ chartInstance = echarts.init(chartRef.current);
19
+ }
20
+ chartInstance.setOption(chartOption);
21
+ return chartInstance;
22
+ };
23
+
24
+ export const disposeChart = (chartInstance) => {
25
+ chartInstance && chartInstance.dispose();
26
+ };
27
+
28
+ export const handleChartForSharedDataChange = (
29
+ chartRef,
30
+ sharedData,
31
+ previousSharedDataRef,
32
+ extra_Excute_Func = null,
33
+ ) => {
34
+ if (sharedData !== previousSharedDataRef.current) {
35
+ const chartInstance = echarts.getInstanceByDom(chartRef.current);
36
+ disposeChart(chartInstance);
37
+ previousSharedDataRef.current = sharedData;
38
+ if (extra_Excute_Func) {
39
+ //console.log('excute func: ', extra_Excute_Func);
40
+ extra_Excute_Func();
41
+ }
42
+ }
43
+ };
@@ -1,152 +1,152 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-01 14:21:40
4
- * @FilePath : /visualify.js/src/core/modules/echartswitcher.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- import React, { useState, useEffect, useRef } from 'react';
9
- import ReCharts from './echarts';
10
- import Loading from '../pages/loading';
11
- import _ from 'lodash';
12
- import _parser_gereral from '../parser/echart.general';
13
- import _parser_data from '../parser/echart.data';
14
- import _fetch_data, { _process_fetched_data } from '../parser/echart.parser';
15
-
16
- import {
17
- fetchPresetFromURL,
18
- getEmbeddedPreset,
19
- } from '../modules/echarts/presetHandler';
20
- import minimumPreset from './echarts/common';
21
-
22
- import ErrorBoundary from '../widgets/errorBoundary';
23
- import { useAppContext } from '../appContext';
24
-
25
- import downsampleSeries from '../parser/echart.hilbert';
26
-
27
- const EChartSwitcher = ({ props, style }) => {
28
- const { config = {}, parser, advanced, style: _style } = props;
29
-
30
- const [loading, setLoading] = useState({
31
- active: true,
32
- message: null,
33
- style: advanced?.loadingStlye ?? {},
34
- });
35
- // Store the previous sharedData value using a ref
36
- const previousSharedDataRef = useRef(null);
37
- const chartRef = useRef(null);
38
- const [presetData, setPresetData] = useState(null);
39
- const [Options, setOptions] = useState({});
40
- const [onEvents] = useState({});
41
- const { width, height = '400px' } = config;
42
- const { sharedData } = useAppContext();
43
-
44
- useEffect(() => {
45
- let fetched_data, combinedOptions;
46
- const parsedGeneral = _parser_gereral(config, presetData);
47
- const parsedData = _parser_data(config, parsedGeneral);
48
-
49
- const loadPreset = async () => {
50
- try {
51
- if (typeof config.preset === 'string') {
52
- if (
53
- config.preset.startsWith('http://') ||
54
- config.preset.startsWith('https://')
55
- ) {
56
- const presetData = await fetchPresetFromURL(
57
- config.preset,
58
- );
59
- setPresetData(presetData);
60
- } else {
61
- const embeddedPreset = getEmbeddedPreset(config.preset);
62
- setPresetData(embeddedPreset);
63
- }
64
- } else {
65
- setPresetData(minimumPreset);
66
- }
67
- } catch (error) {
68
- console.error('Error loading preset:', error);
69
- // Handle error or set to a default value
70
- setPresetData(minimumPreset);
71
- }
72
- };
73
-
74
- const updatePlot = async () => {
75
- try {
76
- let parsedAPI = parsedData;
77
-
78
- if (parser) {
79
- // fetch data from api
80
- fetched_data = await _fetch_data(
81
- parser,
82
- parsedData,
83
- sharedData,
84
- );
85
- parsedAPI = _process_fetched_data(
86
- fetched_data,
87
- parser,
88
- parsedData,
89
- );
90
- }
91
-
92
- combinedOptions = _.merge(parsedAPI, config.overrides);
93
-
94
- if (advanced?.hilbert)
95
- combinedOptions.series = downsampleSeries(
96
- combinedOptions.series,
97
- advanced.hilbert,
98
- );
99
-
100
- console.log('Final Options:', combinedOptions);
101
- setOptions(combinedOptions);
102
-
103
- setLoading((prev) => ({
104
- ...prev,
105
- active: false,
106
- message: null,
107
- }));
108
- } catch (error) {
109
- setLoading((prev) => ({
110
- ...prev,
111
- active: true,
112
- message: error.message,
113
- }));
114
- }
115
- };
116
-
117
- loadPreset();
118
-
119
- updatePlot();
120
-
121
- if (!_.isEqual(sharedData, previousSharedDataRef.current))
122
- previousSharedDataRef.current = sharedData;
123
- }, [config, parser, advanced, presetData, sharedData]);
124
-
125
- return (
126
- <div
127
- id={props.id}
128
- style={{ ...style, position: 'relative' }}>
129
- {loading.active && (
130
- <Loading
131
- message={loading.message}
132
- style={loading.style}
133
- />
134
- )}
135
- <ErrorBoundary>
136
- <ReCharts
137
- options={Options}
138
- style={{
139
- opacity: loading.active ? 0 : 1,
140
- width,
141
- height,
142
- ..._style,
143
- }}
144
- onEvents={onEvents}
145
- ref={chartRef}
146
- />
147
- </ErrorBoundary>
148
- </div>
149
- );
150
- };
151
-
152
- export default EChartSwitcher;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-01 14:21:40
4
+ * @FilePath : /visualifyjs/src/core/modules/echartswitcher.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ import React, { useState, useEffect, useRef } from 'react';
9
+ import ReCharts from './echarts';
10
+ import Loading from '../pages/loading';
11
+ import _ from 'lodash';
12
+ import _parser_gereral from '../parser/echart.general';
13
+ import _parser_data from '../parser/echart.data';
14
+ import _fetch_data, { _process_fetched_data } from '../parser/echart.parser';
15
+
16
+ import {
17
+ fetchPresetFromURL,
18
+ getEmbeddedPreset,
19
+ } from '../modules/echarts/presetHandler';
20
+ import minimumPreset from './echarts/common';
21
+
22
+ import ErrorBoundary from '../widgets/errorBoundary';
23
+ import { useAppContext } from '../appContext';
24
+
25
+ import downsampleSeries from '../parser/echart.hilbert';
26
+
27
+ const EChartSwitcher = ({ props, style }) => {
28
+ const { config = {}, parser, advanced, style: _style } = props;
29
+
30
+ const [loading, setLoading] = useState({
31
+ active: true,
32
+ message: null,
33
+ style: advanced?.loadingStlye ?? {},
34
+ });
35
+ // Store the previous sharedData value using a ref
36
+ const previousSharedDataRef = useRef(null);
37
+ const chartRef = useRef(null);
38
+ const [presetData, setPresetData] = useState(null);
39
+ const [Options, setOptions] = useState({});
40
+ const [onEvents] = useState({});
41
+ const { width, height = '400px' } = config;
42
+ const { sharedData } = useAppContext();
43
+
44
+ useEffect(() => {
45
+ let fetched_data, combinedOptions;
46
+ const parsedGeneral = _parser_gereral(config, presetData);
47
+ const parsedData = _parser_data(config, parsedGeneral);
48
+
49
+ const loadPreset = async () => {
50
+ try {
51
+ if (typeof config.preset === 'string') {
52
+ if (
53
+ config.preset.startsWith('http://') ||
54
+ config.preset.startsWith('https://')
55
+ ) {
56
+ const presetData = await fetchPresetFromURL(
57
+ config.preset,
58
+ );
59
+ setPresetData(presetData);
60
+ } else {
61
+ const embeddedPreset = getEmbeddedPreset(config.preset);
62
+ setPresetData(embeddedPreset);
63
+ }
64
+ } else {
65
+ setPresetData(minimumPreset);
66
+ }
67
+ } catch (error) {
68
+ console.error('Error loading preset:', error);
69
+ // Handle error or set to a default value
70
+ setPresetData(minimumPreset);
71
+ }
72
+ };
73
+
74
+ const updatePlot = async () => {
75
+ try {
76
+ let parsedAPI = parsedData;
77
+
78
+ if (parser) {
79
+ // fetch data from api
80
+ fetched_data = await _fetch_data(
81
+ parser,
82
+ parsedData,
83
+ sharedData,
84
+ );
85
+ parsedAPI = _process_fetched_data(
86
+ fetched_data,
87
+ parser,
88
+ parsedData,
89
+ );
90
+ }
91
+
92
+ combinedOptions = _.merge(parsedAPI, config.overrides);
93
+
94
+ if (advanced?.hilbert)
95
+ combinedOptions.series = downsampleSeries(
96
+ combinedOptions.series,
97
+ advanced.hilbert,
98
+ );
99
+
100
+ console.log('Final Options:', combinedOptions);
101
+ setOptions(combinedOptions);
102
+
103
+ setLoading((prev) => ({
104
+ ...prev,
105
+ active: false,
106
+ message: null,
107
+ }));
108
+ } catch (error) {
109
+ setLoading((prev) => ({
110
+ ...prev,
111
+ active: true,
112
+ message: error.message,
113
+ }));
114
+ }
115
+ };
116
+
117
+ loadPreset();
118
+
119
+ updatePlot();
120
+
121
+ if (!_.isEqual(sharedData, previousSharedDataRef.current))
122
+ previousSharedDataRef.current = sharedData;
123
+ }, [config, parser, advanced, presetData, sharedData]);
124
+
125
+ return (
126
+ <div
127
+ id={props.id}
128
+ style={{ ...style, position: 'relative' }}>
129
+ {loading.active && (
130
+ <Loading
131
+ message={loading.message}
132
+ style={loading.style}
133
+ />
134
+ )}
135
+ <ErrorBoundary>
136
+ <ReCharts
137
+ options={Options}
138
+ style={{
139
+ opacity: loading.active ? 0 : 1,
140
+ width,
141
+ height,
142
+ ..._style,
143
+ }}
144
+ onEvents={onEvents}
145
+ ref={chartRef}
146
+ />
147
+ </ErrorBoundary>
148
+ </div>
149
+ );
150
+ };
151
+
152
+ export default EChartSwitcher;
@@ -1,24 +1,24 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2024-01-14 14:54:27
4
- * @FilePath : /visualifyjs/src/core/modules/replotly/presetHandler.js
5
- * @Description :
6
- * Copyright (c) 2024 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
-
9
- import minimumPreset from './presets/minimum';
10
- import mmtrbc_violin from './presets/mmtrbc.violin';
11
- import mmtrbc_dot from './presets/mmtrbc.dot';
12
-
13
- // Example embedded presets
14
- const embeddedPresets = {
15
- mmtrbc_violin,
16
- mmtrbc_dot,
17
- // 'presetName': { ...preset data... }
18
- // Define embedded presets here
19
- };
20
-
21
- export const getPreset = (presetKey) => {
22
- // Return minimumPreset if preset not found
23
- return embeddedPresets[presetKey] || minimumPreset;
24
- };
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2024-01-14 14:54:27
4
+ * @FilePath : /visualifyjs/src/core/modules/replotly/presetHandler.js
5
+ * @Description :
6
+ * Copyright (c) 2024 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+
9
+ import minimumPreset from './presets/minimum';
10
+ import mmtrbc_violin from './presets/mmtrbc.violin';
11
+ import mmtrbc_dot from './presets/mmtrbc.dot';
12
+
13
+ // Example embedded presets
14
+ const embeddedPresets = {
15
+ mmtrbc_violin,
16
+ mmtrbc_dot,
17
+ // 'presetName': { ...preset data... }
18
+ // Define embedded presets here
19
+ };
20
+
21
+ export const getPreset = (presetKey) => {
22
+ // Return minimumPreset if preset not found
23
+ return embeddedPresets[presetKey] || minimumPreset;
24
+ };
@@ -1,18 +1,18 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2024-01-14 14:55:51
4
- * @FilePath : /visualifyjs/src/core/modules/replotly/presets/minimum.js
5
- * @Description :
6
- * Copyright (c) 2024 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- const minimumPreset = {
9
- data: [],
10
- config: {},
11
- layout: {
12
- title: 'Minimum Preset of RePlotly',
13
- chartWidth: 800,
14
- chartHeight: 400,
15
- },
16
- };
17
-
18
- export default minimumPreset;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2024-01-14 14:55:51
4
+ * @FilePath : /visualifyjs/src/core/modules/replotly/presets/minimum.js
5
+ * @Description :
6
+ * Copyright (c) 2024 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ const minimumPreset = {
9
+ data: [],
10
+ config: {},
11
+ layout: {
12
+ title: 'Minimum Preset of RePlotly',
13
+ chartWidth: 800,
14
+ chartHeight: 400,
15
+ },
16
+ };
17
+
18
+ export default minimumPreset;