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,42 +1,42 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-21 16:49:22
4
- * @FilePath : /visualifyjs/src/core/fetch/vfetch.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- const fetchApi = async (
9
- url,
10
- method = 'GET',
11
- body = null,
12
- headers = {},
13
- debug = false,
14
- ) => {
15
- // Setup for CORS and headers
16
- let fetchOptions = {
17
- method: method,
18
- headers: {
19
- 'Content-Type': 'application/json',
20
- ...headers,
21
- },
22
- mode: debug ? 'cors' : 'same-origin',
23
- };
24
-
25
- // Add body for POST request
26
- if (method === 'POST' && body) {
27
- fetchOptions.body = JSON.stringify(body);
28
- }
29
-
30
- try {
31
- const response = await fetch(url, fetchOptions);
32
- if (!response.ok) {
33
- throw new Error(`HTTP error! status: ${response.status}`);
34
- }
35
- return await response.json();
36
- } catch (err) {
37
- console.error('Fetch API Error:', err);
38
- throw err;
39
- }
40
- };
41
-
42
- export default fetchApi;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-21 16:49:22
4
+ * @FilePath : /visualifyjs/src/core/fetch/vfetch.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ const fetchApi = async (
9
+ url,
10
+ method = 'GET',
11
+ body = null,
12
+ headers = {},
13
+ debug = false,
14
+ ) => {
15
+ // Setup for CORS and headers
16
+ let fetchOptions = {
17
+ method: method,
18
+ headers: {
19
+ 'Content-Type': 'application/json',
20
+ ...headers,
21
+ },
22
+ mode: debug ? 'cors' : 'same-origin',
23
+ };
24
+
25
+ // Add body for POST request
26
+ if (method === 'POST' && body) {
27
+ fetchOptions.body = JSON.stringify(body);
28
+ }
29
+
30
+ try {
31
+ const response = await fetch(url, fetchOptions);
32
+ if (!response.ok) {
33
+ throw new Error(`HTTP error! status: ${response.status}`);
34
+ }
35
+ return await response.json();
36
+ } catch (err) {
37
+ console.error('Fetch API Error:', err);
38
+ throw err;
39
+ }
40
+ };
41
+
42
+ export default fetchApi;
@@ -1,44 +1,44 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-01 22:51:45
4
- * @FilePath : /visualifyjs/src/core/liveEditor.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- import React from 'react';
9
- import Recharts from './recharts';
10
- import { createRoot } from 'react-dom/client';
11
- import CodeEditorWithPreview from './modules/codeEditorWithPreview';
12
- import { VisualifyProvider } from './appContext';
13
- class LiveEditor extends Recharts {
14
- constructor(config) {
15
- super();
16
- this.config = config;
17
- }
18
-
19
- mount(selector) {
20
- const el =
21
- typeof selector === 'string'
22
- ? document.querySelector(selector)
23
- : selector;
24
-
25
- if (!el) {
26
- throw new Error(`Element not found with selector: ${selector}`);
27
- }
28
-
29
- try {
30
- // Assuming createRoot is imported from 'react-dom/client'
31
- const charts = createRoot(el);
32
- charts.render(
33
- <VisualifyProvider>
34
- <CodeEditorWithPreview config={this.config} />
35
- </VisualifyProvider>,
36
- );
37
- console.log('mounted ' + selector, el);
38
- } catch (e) {
39
- console.error('Error mounting chart:', e);
40
- }
41
- }
42
- }
43
-
44
- export default LiveEditor;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-01 22:51:45
4
+ * @FilePath : /visualifyjs/src/core/liveEditor.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ import React from 'react';
9
+ import Recharts from './recharts';
10
+ import { createRoot } from 'react-dom/client';
11
+ import CodeEditorWithPreview from './modules/codeEditorWithPreview';
12
+ import { VisualifyProvider } from './appContext';
13
+ class LiveEditor extends Recharts {
14
+ constructor(config) {
15
+ super();
16
+ this.config = config;
17
+ }
18
+
19
+ mount(selector) {
20
+ const el =
21
+ typeof selector === 'string'
22
+ ? document.querySelector(selector)
23
+ : selector;
24
+
25
+ if (!el) {
26
+ throw new Error(`Element not found with selector: ${selector}`);
27
+ }
28
+
29
+ try {
30
+ // Assuming createRoot is imported from 'react-dom/client'
31
+ const charts = createRoot(el);
32
+ charts.render(
33
+ <VisualifyProvider>
34
+ <CodeEditorWithPreview config={this.config} />
35
+ </VisualifyProvider>,
36
+ );
37
+ console.log('mounted ' + selector, el);
38
+ } catch (e) {
39
+ console.error('Error mounting chart:', e);
40
+ }
41
+ }
42
+ }
43
+
44
+ export default LiveEditor;
@@ -1,104 +1,104 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-01 22:17:15
4
- * @FilePath : /visualifyjs/src/core/modules/codeEditorWithPreview.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- import React, { useState } from 'react';
9
- import AceEditor from 'react-ace';
10
- import EChartSwitcher from './echartswitcher';
11
- import 'ace-builds/src-noconflict/mode-javascript';
12
- import 'ace-builds/src-noconflict/theme-monokai';
13
-
14
- const CodeEditorWithPreview = ({ config }) => {
15
- const supportedThemes = ['', 'monokai'];
16
- const supportedMode = ['javascript'];
17
-
18
- const {
19
- theme = '',
20
- mode = 'javascript',
21
- width,
22
- height = '400px',
23
- title = 'Rechart Preview',
24
- editorProps = { $blockScrolling: true },
25
- } = config;
26
-
27
- if (!supportedThemes.includes(theme)) {
28
- throw new Error(
29
- `Theme '${theme}' not supported. Supported themes are: ${supportedThemes.join(
30
- ', ',
31
- )}`,
32
- );
33
- }
34
-
35
- if (!supportedMode.includes(mode)) {
36
- throw new Error(
37
- `Mode '${mode}' not supported. Supported modes are: ${supportedMode.join(
38
- ', ',
39
- )}`,
40
- );
41
- }
42
-
43
- const [code, setCode] = useState(config.code);
44
-
45
- // Function to evaluate the code and return the chart options
46
- const getChartOptions = () => {
47
- try {
48
- // eslint-disable-next-line no-new-func
49
- const func = new Function(code);
50
- return func()();
51
- } catch (error) {
52
- console.error('Error evaluating chart options:', error);
53
- return {};
54
- }
55
- };
56
-
57
- const blockStyles = {
58
- display: 'flex',
59
- justifyContent: 'space-between',
60
- };
61
- if (width) blockStyles.width = width;
62
-
63
- const editorStyles = {
64
- flexGrow: 1,
65
- border: '1px solid #ddd',
66
- borderRadius: '4px',
67
- marginBottom: '10px',
68
- width: '50%',
69
- };
70
-
71
- const editorTitleStyles = {
72
- backgroundColor: '#f4f4f4',
73
- padding: '10px',
74
- borderBottom: '1px solid #ddd',
75
- width: '100%',
76
- };
77
-
78
- return (
79
- <div style={blockStyles}>
80
- <div style={editorStyles}>
81
- <div style={editorTitleStyles}>{title}</div>
82
- <AceEditor
83
- mode={mode}
84
- theme={theme}
85
- value={code}
86
- onChange={setCode}
87
- name={title}
88
- editorProps={editorProps}
89
- width='100%'
90
- height={height}
91
- setOptions={{
92
- wrap: true,
93
- useWorker: false,
94
- }}
95
- />
96
- </div>
97
- <div style={{ width: '50%' }}>
98
- <EChartSwitcher props={{ config: getChartOptions() }} />
99
- </div>
100
- </div>
101
- );
102
- };
103
-
104
- export default CodeEditorWithPreview;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-01 22:17:15
4
+ * @FilePath : /visualifyjs/src/core/modules/codeEditorWithPreview.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ import React, { useState } from 'react';
9
+ import AceEditor from 'react-ace';
10
+ import EChartSwitcher from './echartswitcher';
11
+ import 'ace-builds/src-noconflict/mode-javascript';
12
+ import 'ace-builds/src-noconflict/theme-monokai';
13
+
14
+ const CodeEditorWithPreview = ({ config }) => {
15
+ const supportedThemes = ['', 'monokai'];
16
+ const supportedMode = ['javascript'];
17
+
18
+ const {
19
+ theme = '',
20
+ mode = 'javascript',
21
+ width,
22
+ height = '400px',
23
+ title = 'Rechart Preview',
24
+ editorProps = { $blockScrolling: true },
25
+ } = config;
26
+
27
+ if (!supportedThemes.includes(theme)) {
28
+ throw new Error(
29
+ `Theme '${theme}' not supported. Supported themes are: ${supportedThemes.join(
30
+ ', ',
31
+ )}`,
32
+ );
33
+ }
34
+
35
+ if (!supportedMode.includes(mode)) {
36
+ throw new Error(
37
+ `Mode '${mode}' not supported. Supported modes are: ${supportedMode.join(
38
+ ', ',
39
+ )}`,
40
+ );
41
+ }
42
+
43
+ const [code, setCode] = useState(config.code);
44
+
45
+ // Function to evaluate the code and return the chart options
46
+ const getChartOptions = () => {
47
+ try {
48
+ // eslint-disable-next-line no-new-func
49
+ const func = new Function(code);
50
+ return func()();
51
+ } catch (error) {
52
+ console.error('Error evaluating chart options:', error);
53
+ return {};
54
+ }
55
+ };
56
+
57
+ const blockStyles = {
58
+ display: 'flex',
59
+ justifyContent: 'space-between',
60
+ };
61
+ if (width) blockStyles.width = width;
62
+
63
+ const editorStyles = {
64
+ flexGrow: 1,
65
+ border: '1px solid #ddd',
66
+ borderRadius: '4px',
67
+ marginBottom: '10px',
68
+ width: '50%',
69
+ };
70
+
71
+ const editorTitleStyles = {
72
+ backgroundColor: '#f4f4f4',
73
+ padding: '10px',
74
+ borderBottom: '1px solid #ddd',
75
+ width: '100%',
76
+ };
77
+
78
+ return (
79
+ <div style={blockStyles}>
80
+ <div style={editorStyles}>
81
+ <div style={editorTitleStyles}>{title}</div>
82
+ <AceEditor
83
+ mode={mode}
84
+ theme={theme}
85
+ value={code}
86
+ onChange={setCode}
87
+ name={title}
88
+ editorProps={editorProps}
89
+ width='100%'
90
+ height={height}
91
+ setOptions={{
92
+ wrap: true,
93
+ useWorker: false,
94
+ }}
95
+ />
96
+ </div>
97
+ <div style={{ width: '50%' }}>
98
+ <EChartSwitcher props={{ config: getChartOptions() }} />
99
+ </div>
100
+ </div>
101
+ );
102
+ };
103
+
104
+ export default CodeEditorWithPreview;
@@ -1,20 +1,20 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-01 21:43:02
4
- * @FilePath : /visualifyjs/src/core/modules/echarts/common.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- const minimumPreset = {
9
- title: {},
10
- tooltip: {},
11
- legend: {
12
- top: 25,
13
- },
14
- xAxis: {},
15
- yAxis: {},
16
- series: [],
17
- // ... other default settings for charts
18
- };
19
-
20
- export default minimumPreset;
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-01 21:43:02
4
+ * @FilePath : /visualifyjs/src/core/modules/echarts/common.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ const minimumPreset = {
9
+ title: {},
10
+ tooltip: {},
11
+ legend: {
12
+ top: 25,
13
+ },
14
+ xAxis: {},
15
+ yAxis: {},
16
+ series: [],
17
+ // ... other default settings for charts
18
+ };
19
+
20
+ export default minimumPreset;
@@ -1,41 +1,41 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-02 21:36:01
4
- * @FilePath : /visualifyjs/src/core/modules/echarts/presetHandler.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- // presetHandler.js
9
- import minimumPreset from './common';
10
- import mmtrbc from './presets/mmtrbc';
11
- import esodev_chromium from './presets/esodev.chromium';
12
- import esodev_codex from './presets/esodev.codex';
13
- import esodev_visium from './presets/esodev.visium';
14
-
15
- // Example embedded presets
16
- const embeddedPresets = {
17
- mmtrbc: mmtrbc,
18
- esodev_chromium: esodev_chromium,
19
- esodev_codex: esodev_codex,
20
- esodev_visium: esodev_visium,
21
- // 'presetName': { ...preset data... }
22
- // Define embedded presets here
23
- };
24
-
25
- // Function to fetch preset data from a URL
26
- export const fetchPresetFromURL = async (url) => {
27
- try {
28
- const response = await fetch(url);
29
- const data = await response.json();
30
- return data;
31
- } catch (error) {
32
- console.error('Error fetching preset from URL:', error);
33
- return null; // Return null or appropriate error handling
34
- }
35
- };
36
-
37
- // Function to get an embedded preset based on a string key
38
- export const getEmbeddedPreset = (presetKey) => {
39
- // Return minimumPreset if preset not found
40
- return embeddedPresets[presetKey] || minimumPreset;
41
- };
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-02 21:36:01
4
+ * @FilePath : /visualifyjs/src/core/modules/echarts/presetHandler.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ // presetHandler.js
9
+ import minimumPreset from './common';
10
+ import mmtrbc from './presets/mmtrbc';
11
+ import esodev_chromium from './presets/esodev.chromium';
12
+ import esodev_codex from './presets/esodev.codex';
13
+ import esodev_visium from './presets/esodev.visium';
14
+
15
+ // Example embedded presets
16
+ const embeddedPresets = {
17
+ mmtrbc: mmtrbc,
18
+ esodev_chromium: esodev_chromium,
19
+ esodev_codex: esodev_codex,
20
+ esodev_visium: esodev_visium,
21
+ // 'presetName': { ...preset data... }
22
+ // Define embedded presets here
23
+ };
24
+
25
+ // Function to fetch preset data from a URL
26
+ export const fetchPresetFromURL = async (url) => {
27
+ try {
28
+ const response = await fetch(url);
29
+ const data = await response.json();
30
+ return data;
31
+ } catch (error) {
32
+ console.error('Error fetching preset from URL:', error);
33
+ return null; // Return null or appropriate error handling
34
+ }
35
+ };
36
+
37
+ // Function to get an embedded preset based on a string key
38
+ export const getEmbeddedPreset = (presetKey) => {
39
+ // Return minimumPreset if preset not found
40
+ return embeddedPresets[presetKey] || minimumPreset;
41
+ };