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,15 +1,15 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-11-29 15:35:28
4
- * @FilePath : /visualifyjs/src/_test/App.test.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- import { render, screen } from '@testing-library/react';
9
- import App from '../core/App';
10
-
11
- test('renders learn react link', () => {
12
- render(<App />);
13
- const linkElement = screen.getByText(/learn react/i);
14
- expect(linkElement).toBeInTheDocument();
15
- });
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-11-29 15:35:28
4
+ * @FilePath : /visualifyjs/src/_test/App.test.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ import { render, screen } from '@testing-library/react';
9
+ import App from '../core/App';
10
+
11
+ test('renders learn react link', () => {
12
+ render(<App />);
13
+ const linkElement = screen.getByText(/learn react/i);
14
+ expect(linkElement).toBeInTheDocument();
15
+ });
@@ -1,13 +1,13 @@
1
- const reportWebVitals = onPerfEntry => {
2
- if (onPerfEntry && onPerfEntry instanceof Function) {
3
- import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4
- getCLS(onPerfEntry);
5
- getFID(onPerfEntry);
6
- getFCP(onPerfEntry);
7
- getLCP(onPerfEntry);
8
- getTTFB(onPerfEntry);
9
- });
10
- }
11
- };
12
-
13
- export default reportWebVitals;
1
+ const reportWebVitals = onPerfEntry => {
2
+ if (onPerfEntry && onPerfEntry instanceof Function) {
3
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4
+ getCLS(onPerfEntry);
5
+ getFID(onPerfEntry);
6
+ getFCP(onPerfEntry);
7
+ getLCP(onPerfEntry);
8
+ getTTFB(onPerfEntry);
9
+ });
10
+ }
11
+ };
12
+
13
+ export default reportWebVitals;
@@ -1,27 +1,27 @@
1
- /*
2
- * @Author : Lihao leolihao@arizona.edu
3
- * @Date : 2023-12-23 15:50:00
4
- * @FilePath : /visualifyjs/src/core/appContext.js
5
- * @Description :
6
- * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
- */
8
- import React, { createContext, useContext, useState } from 'react';
9
-
10
- // Create the AppContext
11
- const Visualify = createContext();
12
-
13
- // Create a custom hook for accessing the AppContext
14
- export function useAppContext() {
15
- return useContext(Visualify);
16
- }
17
-
18
- // Create the AppProvider component to wrap your app with the context
19
- export function VisualifyProvider({ children }) {
20
- const [sharedData, setSharedData] = useState({}); // Initialize your shared data here
21
-
22
- return (
23
- <Visualify.Provider value={{ sharedData, setSharedData }}>
24
- {children}
25
- </Visualify.Provider>
26
- );
27
- }
1
+ /*
2
+ * @Author : Lihao leolihao@arizona.edu
3
+ * @Date : 2023-12-23 15:50:00
4
+ * @FilePath : /visualifyjs/src/core/appContext.js
5
+ * @Description :
6
+ * Copyright (c) 2023 by Lihao (leolihao@arizona.edu), All Rights Reserved.
7
+ */
8
+ import React, { createContext, useContext, useState } from 'react';
9
+
10
+ // Create the AppContext
11
+ const Visualify = createContext();
12
+
13
+ // Create a custom hook for accessing the AppContext
14
+ export function useAppContext() {
15
+ return useContext(Visualify);
16
+ }
17
+
18
+ // Create the AppProvider component to wrap your app with the context
19
+ export function VisualifyProvider({ children }) {
20
+ const [sharedData, setSharedData] = useState({}); // Initialize your shared data here
21
+
22
+ return (
23
+ <Visualify.Provider value={{ sharedData, setSharedData }}>
24
+ {children}
25
+ </Visualify.Provider>
26
+ );
27
+ }
@@ -1,188 +1,188 @@
1
- // Scatter.js
2
- import React, { useState, useEffect, forwardRef } from 'react';
3
- import ReCharts from '../modules/echarts';
4
-
5
- const Scatter = forwardRef(({ props, style }, ref) => {
6
- const getOptions = (config) => {
7
- const _dataZoom = {
8
- inside: [
9
- { type: 'inside', xAxisIndex: 0 },
10
- { type: 'inside', yAxisIndex: 0 },
11
- ],
12
- slider: [
13
- { type: 'slider', xAxisIndex: 0 },
14
- { type: 'slider', yAxisIndex: 0, orient: 'vertical' },
15
- ],
16
- both: [
17
- { type: 'inside', xAxisIndex: 0 },
18
- { type: 'inside', yAxisIndex: 0 },
19
- {
20
- type: 'slider',
21
- xAxisIndex: 0,
22
- },
23
- { type: 'slider', yAxisIndex: 0, orient: 'vertical' },
24
- ],
25
- };
26
- let options = {};
27
- // Title
28
- if (typeof config.title === 'string') {
29
- options.title = { text: config.title };
30
- } else {
31
- options.title = {
32
- left: 'center',
33
- top: 0,
34
- ...config.title,
35
- };
36
- }
37
- // Visual Map
38
- options.visualMap = config.visualMap ?? [];
39
- // Legend
40
- options.legend = config.legend ?? undefined;
41
- // Tooltip
42
- options.tooltip = {
43
- trigger: 'item',
44
- axisPointer: {
45
- type: 'cross',
46
- },
47
- formatter: config.formatter ?? undefined,
48
- };
49
- // Series
50
- options.series = config.series ?? undefined;
51
- // Data Zoom
52
- if (config.dataZoom) {
53
- options.dataZoom = _dataZoom[config.dataZoom];
54
- }
55
- // Toolbox
56
- if (config.toolbox) {
57
- options.toolbox = {
58
- feature: {
59
- ...config.toolbox,
60
- saveAsImage: {
61
- show: config.toolbox.saveAsImage.show ?? false,
62
- },
63
- },
64
- };
65
- }
66
- //Tooltip
67
- if (config.tooltip) {
68
- console.log(config.tooltip);
69
- }
70
- // xAxis
71
- if (config.xAxis) {
72
- options.xAxis = [
73
- {
74
- name: config.labels?.x ?? '',
75
- type: 'value',
76
- nameGap: 25,
77
- nameLocation: 'middle',
78
- ...config.xAxis,
79
- },
80
- ];
81
- }
82
- // yAxis
83
- if (config.yAxis) {
84
- options.yAxis = [
85
- {
86
- name: config.labels?.y ?? '',
87
- type: 'value',
88
- nameGap: 25,
89
- nameLocation: 'middle',
90
- ...config.yAxis,
91
- },
92
- ];
93
- }
94
- // Grid
95
- if (config.grid) {
96
- try {
97
- options.grid = config.grid.map((item) => ({
98
- ...item,
99
- ...config.grid,
100
- }));
101
- } catch (e) {
102
- //console.log(config.grid);
103
- options.grid = config.grid;
104
- }
105
- } else {
106
- options.grid = [];
107
- }
108
- options.xAxis = config.xAxis
109
- ? [
110
- {
111
- name: config.labels?.x ?? '', // Add optional chaining here
112
- type: 'value',
113
- nameGap: 25,
114
- nameLocation: 'middle',
115
- ...config.xAxis,
116
- },
117
- ]
118
- : [
119
- {
120
- type: 'value',
121
- },
122
- ];
123
- options.yAxis = config.yAxis
124
- ? [
125
- {
126
- name: config.labels?.y ?? '', // And here
127
- type: 'value',
128
- nameGap: 25,
129
- nameLocation: 'middle',
130
- ...config.yAxis,
131
- },
132
- ]
133
- : [
134
- {
135
- type: 'value',
136
- },
137
- ];
138
- if (config.is3D) {
139
- options.xAxis3D = {
140
- name: config.xAxis3D?.name || 'X',
141
- type: 'value',
142
- ...config.xAxis3D,
143
- };
144
- options.yAxis3D = {
145
- name: config.yAxis3D?.name || 'Y',
146
- type: 'value',
147
- ...config.yAxis3D,
148
- };
149
- options.zAxis3D = {
150
- name: config.zAxis3D?.name || 'Z',
151
- type: 'value',
152
- ...config.zAxis3D,
153
- };
154
- options.grid3D = {
155
- ...config.grid3D,
156
- };
157
- }
158
- if (config.backgroundColor) {
159
- options.backgroundColor = config.backgroundColor;
160
- }
161
- if (config.color) {
162
- options.color = config.color;
163
- console.log(options.color);
164
- }
165
- return options;
166
- };
167
-
168
- const { config } = props;
169
- const [options, setOptions] = useState(getOptions(config));
170
- // update options when config changes
171
- useEffect(() => {
172
- setOptions(getOptions(config));
173
- }, [config]);
174
-
175
- return (
176
- <div
177
- id={props.id}
178
- style={style}>
179
- <ReCharts
180
- ref={ref}
181
- options={options}
182
- style={{ width: config.chartWidth, height: config.chartHeight }}
183
- />
184
- </div>
185
- );
186
- });
187
-
188
- export default Scatter;
1
+ // Scatter.js
2
+ import React, { useState, useEffect, forwardRef } from 'react';
3
+ import ReCharts from '../modules/echarts';
4
+
5
+ const Scatter = forwardRef(({ props, style }, ref) => {
6
+ const getOptions = (config) => {
7
+ const _dataZoom = {
8
+ inside: [
9
+ { type: 'inside', xAxisIndex: 0 },
10
+ { type: 'inside', yAxisIndex: 0 },
11
+ ],
12
+ slider: [
13
+ { type: 'slider', xAxisIndex: 0 },
14
+ { type: 'slider', yAxisIndex: 0, orient: 'vertical' },
15
+ ],
16
+ both: [
17
+ { type: 'inside', xAxisIndex: 0 },
18
+ { type: 'inside', yAxisIndex: 0 },
19
+ {
20
+ type: 'slider',
21
+ xAxisIndex: 0,
22
+ },
23
+ { type: 'slider', yAxisIndex: 0, orient: 'vertical' },
24
+ ],
25
+ };
26
+ let options = {};
27
+ // Title
28
+ if (typeof config.title === 'string') {
29
+ options.title = { text: config.title };
30
+ } else {
31
+ options.title = {
32
+ left: 'center',
33
+ top: 0,
34
+ ...config.title,
35
+ };
36
+ }
37
+ // Visual Map
38
+ options.visualMap = config.visualMap ?? [];
39
+ // Legend
40
+ options.legend = config.legend ?? undefined;
41
+ // Tooltip
42
+ options.tooltip = {
43
+ trigger: 'item',
44
+ axisPointer: {
45
+ type: 'cross',
46
+ },
47
+ formatter: config.formatter ?? undefined,
48
+ };
49
+ // Series
50
+ options.series = config.series ?? undefined;
51
+ // Data Zoom
52
+ if (config.dataZoom) {
53
+ options.dataZoom = _dataZoom[config.dataZoom];
54
+ }
55
+ // Toolbox
56
+ if (config.toolbox) {
57
+ options.toolbox = {
58
+ feature: {
59
+ ...config.toolbox,
60
+ saveAsImage: {
61
+ show: config.toolbox.saveAsImage.show ?? false,
62
+ },
63
+ },
64
+ };
65
+ }
66
+ //Tooltip
67
+ if (config.tooltip) {
68
+ console.log(config.tooltip);
69
+ }
70
+ // xAxis
71
+ if (config.xAxis) {
72
+ options.xAxis = [
73
+ {
74
+ name: config.labels?.x ?? '',
75
+ type: 'value',
76
+ nameGap: 25,
77
+ nameLocation: 'middle',
78
+ ...config.xAxis,
79
+ },
80
+ ];
81
+ }
82
+ // yAxis
83
+ if (config.yAxis) {
84
+ options.yAxis = [
85
+ {
86
+ name: config.labels?.y ?? '',
87
+ type: 'value',
88
+ nameGap: 25,
89
+ nameLocation: 'middle',
90
+ ...config.yAxis,
91
+ },
92
+ ];
93
+ }
94
+ // Grid
95
+ if (config.grid) {
96
+ try {
97
+ options.grid = config.grid.map((item) => ({
98
+ ...item,
99
+ ...config.grid,
100
+ }));
101
+ } catch (e) {
102
+ //console.log(config.grid);
103
+ options.grid = config.grid;
104
+ }
105
+ } else {
106
+ options.grid = [];
107
+ }
108
+ options.xAxis = config.xAxis
109
+ ? [
110
+ {
111
+ name: config.labels?.x ?? '', // Add optional chaining here
112
+ type: 'value',
113
+ nameGap: 25,
114
+ nameLocation: 'middle',
115
+ ...config.xAxis,
116
+ },
117
+ ]
118
+ : [
119
+ {
120
+ type: 'value',
121
+ },
122
+ ];
123
+ options.yAxis = config.yAxis
124
+ ? [
125
+ {
126
+ name: config.labels?.y ?? '', // And here
127
+ type: 'value',
128
+ nameGap: 25,
129
+ nameLocation: 'middle',
130
+ ...config.yAxis,
131
+ },
132
+ ]
133
+ : [
134
+ {
135
+ type: 'value',
136
+ },
137
+ ];
138
+ if (config.is3D) {
139
+ options.xAxis3D = {
140
+ name: config.xAxis3D?.name || 'X',
141
+ type: 'value',
142
+ ...config.xAxis3D,
143
+ };
144
+ options.yAxis3D = {
145
+ name: config.yAxis3D?.name || 'Y',
146
+ type: 'value',
147
+ ...config.yAxis3D,
148
+ };
149
+ options.zAxis3D = {
150
+ name: config.zAxis3D?.name || 'Z',
151
+ type: 'value',
152
+ ...config.zAxis3D,
153
+ };
154
+ options.grid3D = {
155
+ ...config.grid3D,
156
+ };
157
+ }
158
+ if (config.backgroundColor) {
159
+ options.backgroundColor = config.backgroundColor;
160
+ }
161
+ if (config.color) {
162
+ options.color = config.color;
163
+ console.log(options.color);
164
+ }
165
+ return options;
166
+ };
167
+
168
+ const { config } = props;
169
+ const [options, setOptions] = useState(getOptions(config));
170
+ // update options when config changes
171
+ useEffect(() => {
172
+ setOptions(getOptions(config));
173
+ }, [config]);
174
+
175
+ return (
176
+ <div
177
+ id={props.id}
178
+ style={style}>
179
+ <ReCharts
180
+ ref={ref}
181
+ options={options}
182
+ style={{ width: config.chartWidth, height: config.chartHeight }}
183
+ />
184
+ </div>
185
+ );
186
+ });
187
+
188
+ export default Scatter;