@rsdoctor/components 1.5.18 → 1.6.1
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.
- package/dist/components/Alert/ecma-version-check_module.css +1 -1
- package/dist/components/Alert/ecma-version-check_module.css.map +1 -1
- package/dist/components/Alerts/bundle-alert.mjs +12 -8
- package/dist/components/Alerts/bundle-alert.mjs.map +1 -1
- package/dist/components/Alerts/bundle.mjs +3 -4
- package/dist/components/Alerts/bundle.mjs.map +1 -1
- package/dist/components/Alerts/collapse-cjs-require.mjs +6 -14
- package/dist/components/Alerts/collapse-cjs-require.mjs.map +1 -1
- package/dist/components/Alerts/collapse-cross-chunks.mjs +3 -8
- package/dist/components/Alerts/collapse-cross-chunks.mjs.map +1 -1
- package/dist/components/Alerts/collapse-esm-cjs.mjs +6 -10
- package/dist/components/Alerts/collapse-esm-cjs.mjs.map +1 -1
- package/dist/components/Alerts/collapse-module-mixed-chunks.mjs +5 -12
- package/dist/components/Alerts/collapse-module-mixed-chunks.mjs.map +1 -1
- package/dist/components/Alerts/collapse-side-effects-only-imports.mjs +5 -12
- package/dist/components/Alerts/collapse-side-effects-only-imports.mjs.map +1 -1
- package/dist/components/Alerts/collapse.mjs +3 -10
- package/dist/components/Alerts/collapse.mjs.map +1 -1
- package/dist/components/Alerts/collapse_module.css +1 -1
- package/dist/components/Alerts/collapse_module.css.map +1 -1
- package/dist/components/Alerts/index.module.mjs +7 -0
- package/dist/components/Alerts/index.module.mjs.map +1 -0
- package/dist/components/Alerts/index_module.css +9 -0
- package/dist/components/Alerts/index_module.css.map +1 -0
- package/dist/components/Alerts/list.mjs +0 -3
- package/dist/components/Alerts/list.mjs.map +1 -1
- package/dist/components/Card/size.d.ts +1 -0
- package/dist/components/Card/size.mjs +29 -7
- package/dist/components/Card/size.mjs.map +1 -1
- package/dist/components/Card/size.module.mjs +1 -0
- package/dist/components/Card/size.module.mjs.map +1 -1
- package/dist/components/Card/size_module.css +5 -2
- package/dist/components/Card/size_module.css.map +1 -1
- package/dist/components/Charts/TimelineCharts/index.mjs +118 -94
- package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
- package/dist/components/Charts/TreeMap.d.ts +2 -1
- package/dist/components/Charts/TreeMap.mjs +111 -126
- package/dist/components/Charts/TreeMap.mjs.map +1 -1
- package/dist/components/Charts/constants.d.ts +1 -0
- package/dist/components/Charts/constants.mjs +11 -1
- package/dist/components/Charts/constants.mjs.map +1 -1
- package/dist/components/Charts/index.mjs +3 -1
- package/dist/components/Charts/index.mjs.map +1 -1
- package/dist/components/Charts/loader.css +1 -1
- package/dist/components/Charts/loader.css.map +1 -1
- package/dist/components/Charts/treeMapSize.d.ts +10 -0
- package/dist/components/Charts/treeMapSize.mjs +17 -0
- package/dist/components/Charts/treeMapSize.mjs.map +1 -0
- package/dist/components/Charts/treeMapSize.test.d.ts +1 -0
- package/dist/components/Charts/treeMapSize.test.mjs +44 -0
- package/dist/components/Charts/treeMapSize.test.mjs.map +1 -0
- package/dist/components/Charts/treemap_module.css +6 -5
- package/dist/components/Charts/treemap_module.css.map +1 -1
- package/dist/components/FileTree/index.css +0 -1
- package/dist/components/FileTree/index.css.map +1 -1
- package/dist/components/FileTree/index.mjs +3 -4
- package/dist/components/FileTree/index.mjs.map +1 -1
- package/dist/components/Keyword/style_module.css +0 -1
- package/dist/components/Keyword/style_module.css.map +1 -1
- package/dist/components/Layout/header.mjs +38 -16
- package/dist/components/Layout/header.mjs.map +1 -1
- package/dist/components/Layout/header.module.mjs +5 -2
- package/dist/components/Layout/header.module.mjs.map +1 -1
- package/dist/components/Layout/header_module.css +69 -21
- package/dist/components/Layout/header_module.css.map +1 -1
- package/dist/components/Layout/index.mjs +34 -8
- package/dist/components/Layout/index.mjs.map +1 -1
- package/dist/components/Layout/menus.mjs +9 -6
- package/dist/components/Layout/menus.mjs.map +1 -1
- package/dist/components/Layout/rsdoctor-title-logo-dark.mjs +2 -0
- package/dist/components/Loader/Analysis/files.mjs +16 -17
- package/dist/components/Loader/Analysis/files.mjs.map +1 -1
- package/dist/components/Loader/Analysis/style_module.css +13 -14
- package/dist/components/Loader/Analysis/style_module.css.map +1 -1
- package/dist/components/Loader/executions.mjs +5 -13
- package/dist/components/Loader/executions.mjs.map +1 -1
- package/dist/components/Overall/DataSummary.d.ts +1 -1
- package/dist/components/Overall/DataSummary.mjs +21 -20
- package/dist/components/Overall/DataSummary.mjs.map +1 -1
- package/dist/components/Overall/DataSummary.module.mjs +1 -12
- package/dist/components/Overall/DataSummary.module.mjs.map +1 -1
- package/dist/components/Overall/DataSummary_module.css +13 -73
- package/dist/components/Overall/DataSummary_module.css.map +1 -1
- package/dist/components/Overall/bundle.mjs +2 -3
- package/dist/components/Overall/bundle.mjs.map +1 -1
- package/dist/components/Overall/bundle.module.mjs +1 -0
- package/dist/components/Overall/bundle.module.mjs.map +1 -1
- package/dist/components/Overall/bundle_module.css +12 -4
- package/dist/components/Overall/bundle_module.css.map +1 -1
- package/dist/components/Overall/list_module.css +18 -2
- package/dist/components/Overall/list_module.css.map +1 -1
- package/dist/components/Overall/overview_module.css +13 -6
- package/dist/components/Overall/overview_module.css.map +1 -1
- package/dist/components/Overall/project.mjs +1 -1
- package/dist/components/Overall/project.mjs.map +1 -1
- package/dist/components/Overall/project_module.css +8 -0
- package/dist/components/Overall/project_module.css.map +1 -1
- package/dist/components/base/CodeViewer/index.d.ts +1 -1
- package/dist/components/base/CodeViewer/index.mjs +5 -3
- package/dist/components/base/CodeViewer/index.mjs.map +1 -1
- package/dist/components/base/CodeViewer/interface.d.ts +1 -2
- package/dist/components/base/DiffViewer/index.d.ts +1 -1
- package/dist/components/base/DiffViewer/index.mjs +4 -1
- package/dist/components/base/DiffViewer/index.mjs.map +1 -1
- package/dist/components/base/DiffViewer/interface.d.ts +1 -2
- package/dist/pages/BundleSize/components/asset_module.css +7 -5
- package/dist/pages/BundleSize/components/asset_module.css.map +1 -1
- package/dist/pages/BundleSize/components/card_module.css +9 -3
- package/dist/pages/BundleSize/components/card_module.css.map +1 -1
- package/dist/pages/BundleSize/components/cards.mjs +5 -6
- package/dist/pages/BundleSize/components/cards.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index.mjs +11 -8
- package/dist/pages/BundleSize/components/index.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index.module.mjs +1 -6
- package/dist/pages/BundleSize/components/index.module.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index_module.css +0 -37
- package/dist/pages/BundleSize/components/index_module.css.map +1 -1
- package/dist/pages/BundleSize/components/search-modal.mjs +5 -5
- package/dist/pages/BundleSize/components/search-modal.mjs.map +1 -1
- package/dist/pages/BundleSize/components/search-modal.module.mjs +10 -0
- package/dist/pages/BundleSize/components/search-modal.module.mjs.map +1 -0
- package/dist/pages/BundleSize/components/search-modal_module.css +39 -0
- package/dist/pages/BundleSize/components/search-modal_module.css.map +1 -0
- package/dist/pages/BundleSize/components/tree-graph.mjs +4 -4
- package/dist/pages/BundleSize/components/tree-graph.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/components/fileTreeCom.css +6 -2
- package/dist/pages/ModuleAnalyze/components/fileTreeCom.css.map +1 -1
- package/dist/pages/ModuleAnalyze/index.css +4 -6
- package/dist/pages/ModuleAnalyze/index.css.map +1 -1
- package/dist/pages/ModuleAnalyze/index.mjs +3 -4
- package/dist/pages/ModuleAnalyze/index.mjs.map +1 -1
- package/dist/pages/Overall/index.mjs +5 -13
- package/dist/pages/Overall/index.mjs.map +1 -1
- package/dist/pages/Overall/index.module.mjs +3 -0
- package/dist/pages/Overall/index.module.mjs.map +1 -1
- package/dist/pages/Overall/index_module.css +35 -2
- package/dist/pages/Overall/index_module.css.map +1 -1
- package/dist/pages/Overall/responsiveLayout.mjs +3 -3
- package/dist/pages/Overall/responsiveLayout.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/Analysis/index.mjs +3 -3
- package/dist/pages/WebpackLoaders/Analysis/index.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/Overall/index.mjs +1 -1
- package/dist/pages/WebpackLoaders/Overall/index.mjs.map +1 -1
- package/dist/static/image/rsdoctor-title-logo-dark.png +0 -0
- package/dist/utils/hooks.d.ts +1 -0
- package/dist/utils/hooks.mjs +6 -1
- package/dist/utils/hooks.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useEffect, useState } from "react";
|
|
2
|
+
import { memo, useEffect, useMemo, useState } from "react";
|
|
3
3
|
import core from "echarts-for-react/esm/core";
|
|
4
4
|
import * as __rspack_external_echarts_core_d2845954 from "echarts/core";
|
|
5
5
|
import { CustomChart } from "echarts/charts";
|
|
@@ -7,92 +7,95 @@ import { DataZoomComponent, GridComponent, TooltipComponent } from "echarts/comp
|
|
|
7
7
|
import { CanvasRenderer } from "echarts/renderers";
|
|
8
8
|
import dayjs from "dayjs";
|
|
9
9
|
import { groupBy } from "es-toolkit/compat";
|
|
10
|
-
import { ChartTypes,
|
|
11
|
-
|
|
10
|
+
import { ChartTypes, TIMELINE_PALETTE_COLORS } from "../constants.mjs";
|
|
11
|
+
import { useThemeToken } from "../../../utils/index.mjs";
|
|
12
|
+
const LINE_HEIGHT = 46;
|
|
13
|
+
__rspack_external_echarts_core_d2845954.use([
|
|
14
|
+
CustomChart,
|
|
15
|
+
TooltipComponent,
|
|
16
|
+
GridComponent,
|
|
17
|
+
DataZoomComponent,
|
|
18
|
+
CanvasRenderer
|
|
19
|
+
]);
|
|
12
20
|
const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn, chartType = ChartTypes.Normal, exts = null })=>{
|
|
13
|
-
const data = [];
|
|
14
|
-
let categories = [];
|
|
15
21
|
const [optionsData, setOptionsData] = useState({});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (!loaderData) return;
|
|
25
|
-
const _categories = [];
|
|
26
|
-
loaderData.forEach((_l)=>{
|
|
27
|
-
_categories.unshift(_l.n + ' total');
|
|
28
|
-
_categories.unshift(_l.n);
|
|
29
|
-
});
|
|
30
|
-
loaderData.forEach(function(_loaderData, _i) {
|
|
31
|
-
data.push({
|
|
32
|
-
name: _loaderData.n + ' total',
|
|
33
|
-
value: [
|
|
34
|
-
_categories.indexOf(_loaderData.n + ' total'),
|
|
35
|
-
_loaderData.s,
|
|
36
|
-
_loaderData.e,
|
|
37
|
-
_loaderData.e - _loaderData.s
|
|
38
|
-
],
|
|
39
|
-
itemStyle: {
|
|
40
|
-
normal: {
|
|
41
|
-
color: PALETTE_COLORS[Math.floor(27 * Math.random())],
|
|
42
|
-
opacity: 0.25
|
|
43
|
-
}
|
|
44
|
-
}
|
|
22
|
+
const themeToken = useThemeToken();
|
|
23
|
+
const { data, categories } = useMemo(()=>{
|
|
24
|
+
const chartData = [];
|
|
25
|
+
const categoryLabels = [];
|
|
26
|
+
if (loaderData) {
|
|
27
|
+
loaderData.forEach((loader)=>{
|
|
28
|
+
categoryLabels.unshift(loader.n + ' total');
|
|
29
|
+
categoryLabels.unshift(loader.n);
|
|
45
30
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
_categories.indexOf(_loaderData.n),
|
|
51
|
-
_loaderData.c[l].s,
|
|
52
|
-
_loaderData.c[l].e,
|
|
53
|
-
_loaderData.c[l].e - _loaderData.c[l].s
|
|
54
|
-
],
|
|
55
|
-
itemStyle: {
|
|
56
|
-
normal: {
|
|
57
|
-
color: PALETTE_COLORS[Math.floor(27 * Math.random())],
|
|
58
|
-
opacity: 0.25
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
ext: _loaderData.c[l].ext
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
categories = _categories.map((val, i)=>{
|
|
65
|
-
if (i % 2 !== 0) return val.replace(' total', '');
|
|
66
|
-
return '';
|
|
67
|
-
});
|
|
68
|
-
}, [
|
|
69
|
-
loaderData
|
|
70
|
-
]);
|
|
71
|
-
useEffect(()=>{
|
|
72
|
-
if (!pluginsData) return;
|
|
73
|
-
const _pluginsData = groupBy(pluginsData, (e)=>e.pid);
|
|
74
|
-
Object.keys(_pluginsData).reverse().forEach(function(key, i) {
|
|
75
|
-
_pluginsData[key].forEach((_plugin, _i)=>{
|
|
76
|
-
data.push({
|
|
77
|
-
name: String(_plugin.pid),
|
|
31
|
+
loaderData.forEach((loader, loaderIndex)=>{
|
|
32
|
+
const totalColor = TIMELINE_PALETTE_COLORS[loaderIndex % TIMELINE_PALETTE_COLORS.length];
|
|
33
|
+
chartData.push({
|
|
34
|
+
name: loader.n + ' total',
|
|
78
35
|
value: [
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
36
|
+
categoryLabels.indexOf(loader.n + ' total'),
|
|
37
|
+
loader.s,
|
|
38
|
+
loader.e,
|
|
39
|
+
loader.e - loader.s
|
|
83
40
|
],
|
|
84
41
|
itemStyle: {
|
|
85
42
|
normal: {
|
|
86
|
-
color:
|
|
87
|
-
opacity: 0.
|
|
43
|
+
color: totalColor,
|
|
44
|
+
opacity: 0.34
|
|
88
45
|
}
|
|
89
|
-
}
|
|
90
|
-
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
loader.c?.forEach((child, childIndex)=>{
|
|
49
|
+
chartData.push({
|
|
50
|
+
name: loader.n,
|
|
51
|
+
value: [
|
|
52
|
+
categoryLabels.indexOf(loader.n),
|
|
53
|
+
child.s,
|
|
54
|
+
child.e,
|
|
55
|
+
child.e - child.s
|
|
56
|
+
],
|
|
57
|
+
itemStyle: {
|
|
58
|
+
normal: {
|
|
59
|
+
color: TIMELINE_PALETTE_COLORS[(loaderIndex + childIndex) % TIMELINE_PALETTE_COLORS.length],
|
|
60
|
+
opacity: 0.78
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
ext: child.ext
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
for(let index = 0; index < categoryLabels.length; index++)categoryLabels[index] = index % 2 !== 0 ? categoryLabels[index].replace(' total', '') : '';
|
|
68
|
+
}
|
|
69
|
+
if (pluginsData) {
|
|
70
|
+
const groupedPlugins = groupBy(pluginsData, (event)=>event.pid);
|
|
71
|
+
Object.keys(groupedPlugins).reverse().forEach((key, groupIndex)=>{
|
|
72
|
+
groupedPlugins[key].forEach((plugin, pluginIndex)=>{
|
|
73
|
+
chartData.push({
|
|
74
|
+
name: String(plugin.pid),
|
|
75
|
+
value: [
|
|
76
|
+
groupIndex,
|
|
77
|
+
plugin.args.s,
|
|
78
|
+
plugin.args.e,
|
|
79
|
+
plugin.args.e - plugin.args.s
|
|
80
|
+
],
|
|
81
|
+
itemStyle: {
|
|
82
|
+
normal: {
|
|
83
|
+
color: TIMELINE_PALETTE_COLORS[(groupIndex + pluginIndex) % TIMELINE_PALETTE_COLORS.length],
|
|
84
|
+
opacity: 0.78
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
ext: plugin
|
|
88
|
+
});
|
|
91
89
|
});
|
|
90
|
+
categoryLabels.push(String(key.charAt(0).toUpperCase() + key.slice(1)));
|
|
92
91
|
});
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
data: chartData,
|
|
95
|
+
categories: categoryLabels
|
|
96
|
+
};
|
|
95
97
|
}, [
|
|
98
|
+
loaderData,
|
|
96
99
|
pluginsData
|
|
97
100
|
]);
|
|
98
101
|
useEffect(()=>{
|
|
@@ -106,7 +109,7 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
106
109
|
api.value(2),
|
|
107
110
|
categoryIndex
|
|
108
111
|
]);
|
|
109
|
-
const height = 0.
|
|
112
|
+
const height = 0.36 * api.size([
|
|
110
113
|
0,
|
|
111
114
|
1
|
|
112
115
|
])[1];
|
|
@@ -145,7 +148,15 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
145
148
|
type: 'slider',
|
|
146
149
|
filterMode: 'weakFilter',
|
|
147
150
|
showDataShadow: false,
|
|
148
|
-
top: -
|
|
151
|
+
top: -8,
|
|
152
|
+
height: 14,
|
|
153
|
+
borderColor: themeToken.colorBorderSecondary,
|
|
154
|
+
backgroundColor: themeToken.colorFillQuaternary,
|
|
155
|
+
fillerColor: themeToken.colorPrimaryBg,
|
|
156
|
+
handleStyle: {
|
|
157
|
+
color: themeToken.colorTextSecondary,
|
|
158
|
+
borderColor: themeToken.colorBorder
|
|
159
|
+
}
|
|
149
160
|
},
|
|
150
161
|
{
|
|
151
162
|
type: 'inside',
|
|
@@ -153,10 +164,10 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
153
164
|
}
|
|
154
165
|
],
|
|
155
166
|
grid: {
|
|
156
|
-
top:
|
|
157
|
-
left:
|
|
158
|
-
bottom:
|
|
159
|
-
right:
|
|
167
|
+
top: 18,
|
|
168
|
+
left: 12,
|
|
169
|
+
bottom: 12,
|
|
170
|
+
right: 16,
|
|
160
171
|
height: categories.length > (chartType === ChartTypes.Loader ? 6 : 3) ? 'auto' : categories.length * LINE_HEIGHT,
|
|
161
172
|
containLabel: true
|
|
162
173
|
},
|
|
@@ -164,13 +175,20 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
164
175
|
interval: exts?.endTimestamp && exts?.startTimestamp ? Math.floor((exts.endTimestamp - exts.startTimestamp) / 8) : null,
|
|
165
176
|
position: 'top',
|
|
166
177
|
splitLine: {
|
|
167
|
-
show: true
|
|
178
|
+
show: true,
|
|
179
|
+
lineStyle: {
|
|
180
|
+
color: themeToken.colorBorderSecondary,
|
|
181
|
+
width: 1
|
|
182
|
+
}
|
|
168
183
|
},
|
|
169
184
|
scale: true,
|
|
170
185
|
axisLine: {
|
|
171
186
|
show: false
|
|
172
187
|
},
|
|
173
188
|
axisLabel: {
|
|
189
|
+
color: themeToken.colorTextSecondary,
|
|
190
|
+
fontSize: 11,
|
|
191
|
+
margin: 10,
|
|
174
192
|
formatter (val) {
|
|
175
193
|
return dayjs(val).format('HH:mm:ss:SSS');
|
|
176
194
|
}
|
|
@@ -182,12 +200,14 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
182
200
|
show: false
|
|
183
201
|
},
|
|
184
202
|
axisLabel: {
|
|
185
|
-
inside:
|
|
203
|
+
inside: false,
|
|
186
204
|
lineHeight: 20,
|
|
187
|
-
width:
|
|
205
|
+
width: chartType === ChartTypes.Loader ? 220 : 140,
|
|
206
|
+
overflow: 'truncate',
|
|
207
|
+
margin: 16,
|
|
188
208
|
fontSize: 12,
|
|
189
|
-
color:
|
|
190
|
-
verticalAlign: '
|
|
209
|
+
color: themeToken.colorTextSecondary,
|
|
210
|
+
verticalAlign: 'middle'
|
|
191
211
|
},
|
|
192
212
|
axisLine: {
|
|
193
213
|
show: false
|
|
@@ -202,7 +222,7 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
202
222
|
type: 'custom',
|
|
203
223
|
renderItem,
|
|
204
224
|
itemStyle: {
|
|
205
|
-
opacity:
|
|
225
|
+
opacity: 1
|
|
206
226
|
},
|
|
207
227
|
encode: {
|
|
208
228
|
x: [
|
|
@@ -217,18 +237,22 @@ const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn,
|
|
|
217
237
|
};
|
|
218
238
|
setOptionsData(option);
|
|
219
239
|
}, [
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
240
|
+
categories,
|
|
241
|
+
chartType,
|
|
242
|
+
data,
|
|
243
|
+
exts,
|
|
244
|
+
formatterFn,
|
|
245
|
+
themeToken
|
|
223
246
|
]);
|
|
247
|
+
const categoryCount = loaderData ? 2 * loaderData.length : new Set(pluginsData?.map((item)=>item.pid)).size;
|
|
248
|
+
const chartHeight = chartType === ChartTypes.Minify ? 100 : chartType === ChartTypes.Loader ? Math.min(Math.max(categoryCount * LINE_HEIGHT + 80, 300), 1000) : Math.min(Math.max(categoryCount * LINE_HEIGHT + 70, 200), 1000);
|
|
224
249
|
return /*#__PURE__*/ jsx(core, {
|
|
225
250
|
option: optionsData,
|
|
226
251
|
echarts: __rspack_external_echarts_core_d2845954,
|
|
227
252
|
style: {
|
|
228
253
|
width: '100%',
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
border: '1px solid #eee',
|
|
254
|
+
height: `${chartHeight}px`,
|
|
255
|
+
border: '1px solid var(--color-border)',
|
|
232
256
|
borderRadius: '10px'
|
|
233
257
|
}
|
|
234
258
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Charts/TimelineCharts/index.mjs","sources":["../../../../src/components/Charts/TimelineCharts/index.tsx"],"sourcesContent":["import React, { useState, useEffect, memo } from 'react';\nimport ReactEChartsCore from 'echarts-for-react/esm/core';\nimport * as echarts from 'echarts/core';\nimport { CustomChart } from 'echarts/charts';\nimport {\n TooltipComponent,\n GridComponent,\n DataZoomComponent,\n} from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\n\nimport dayjs from 'dayjs';\nimport { ChartProps, DurationMetric, ITraceEventData } from '../types';\nimport { groupBy } from 'es-toolkit/compat';\nimport { ChartTypes, PALETTE_COLORS } from '../constants';\n\ninterface CoordSysType {\n x: number;\n y: number;\n width: number;\n height: number;\n}\ntype LoaderType = {\n name: string;\n value: number[];\n itemStyle: { normal: { color: string; opacity?: number } };\n ext?: Record<string, any>;\n};\n\nconst LINE_HEIGHT = 60;\n\nexport const TimelineCom: React.FC<{\n loaderData?: DurationMetric[];\n pluginsData?: ITraceEventData[];\n formatterFn: Function;\n chartType?: ChartTypes;\n exts?: { endTimestamp: number; startTimestamp: number };\n}> = memo(\n ({\n loaderData,\n pluginsData,\n formatterFn,\n chartType = ChartTypes.Normal,\n exts = null,\n }) => {\n const data: LoaderType[] = [];\n let categories: string[] = [];\n const [optionsData, setOptionsData] = useState({});\n\n // Register the required components\n echarts.use([\n CustomChart,\n TooltipComponent,\n GridComponent,\n DataZoomComponent,\n CanvasRenderer,\n ]);\n\n useEffect(() => {\n if (!loaderData) return;\n const _categories: string[] = [];\n loaderData.forEach((_l) => {\n _categories.unshift(_l.n + ' total');\n _categories.unshift(_l.n);\n });\n\n // Generate mock data\n loaderData.forEach(function (_loaderData, _i) {\n data.push({\n name: _loaderData.n + ' total',\n value: [\n _categories.indexOf(_loaderData.n + ' total'),\n _loaderData.s,\n _loaderData.e,\n _loaderData.e - _loaderData.s,\n ],\n itemStyle: {\n normal: {\n color: PALETTE_COLORS[Math.floor(Math.random() * 27)],\n opacity: 0.25,\n },\n },\n });\n\n if (!_loaderData?.c) return;\n for (let l = 0; l < _loaderData?.c?.length; l++) {\n data.push({\n name: _loaderData.n,\n value: [\n _categories.indexOf(_loaderData.n),\n _loaderData.c[l].s,\n _loaderData.c[l].e,\n _loaderData.c[l].e - _loaderData.c[l].s,\n ],\n itemStyle: {\n normal: {\n color: PALETTE_COLORS[Math.floor(Math.random() * 27)],\n opacity: 0.25,\n },\n },\n ext: _loaderData.c[l].ext as ChartProps['loaders'][0],\n });\n }\n });\n\n categories = _categories.map((val, i) => {\n if (i % 2 !== 0) {\n return val.replace(' total', '');\n } else {\n return '';\n }\n });\n }, [loaderData]);\n\n useEffect(() => {\n if (!pluginsData) return;\n\n const _pluginsData = groupBy(pluginsData, (e: ITraceEventData) => e.pid);\n\n Object.keys(_pluginsData)\n .reverse()\n .forEach(function (key, i) {\n _pluginsData[key].forEach((_plugin, _i) => {\n data.push({\n name: String(_plugin.pid),\n value: [\n i,\n _plugin.args.s,\n _plugin.args.e,\n _plugin.args.e - _plugin.args.s,\n ],\n itemStyle: {\n normal: {\n color: PALETTE_COLORS[Math.floor(Math.random() * 27)],\n opacity: 0.25,\n },\n },\n ext: _plugin,\n });\n });\n categories.push(String(key.charAt(0).toUpperCase() + key.slice(1)));\n });\n }, [pluginsData]);\n\n useEffect(() => {\n function renderItem(\n params: { coordSys: CoordSysType },\n api: {\n value: (arg0: number) => number;\n coord: (arg0: number[]) => any;\n size: (arg0: number[]) => number[];\n style: () => string;\n },\n ) {\n const categoryIndex = api.value(0);\n const start = api.coord([api.value(1), categoryIndex]);\n const end = api.coord([api.value(2), categoryIndex]);\n const height = api.size([0, 1])[1] * 0.3;\n\n const rectShape = echarts.graphic.clipRectByRect(\n {\n x: start[0],\n y:\n chartType === ChartTypes.Loader\n ? start[1] - (categoryIndex % 2 !== 0 ? 0 : height * 2)\n : start[1],\n width: end[0] - start[0] || 5,\n height: height,\n },\n {\n x: params.coordSys.x,\n y: params.coordSys.y,\n width: params.coordSys.width,\n height: params.coordSys.height,\n },\n );\n return (\n rectShape && {\n type: 'rect',\n transition: ['shape'],\n shape: rectShape,\n style: api.style(),\n enterFrom: {\n style: { opacity: 0 },\n x: 0,\n },\n }\n );\n }\n\n const option = {\n tooltip: {\n formatter: (raw: any) => {\n return formatterFn(raw);\n },\n },\n dataZoom: [\n {\n type: 'slider',\n filterMode: 'weakFilter',\n showDataShadow: false,\n top: -10,\n },\n {\n type: 'inside',\n filterMode: 'weakFilter',\n },\n ],\n grid: {\n top: 10,\n left: 0,\n bottom: 10,\n right: 0,\n height:\n categories.length > (chartType === ChartTypes.Loader ? 6 : 3)\n ? 'auto'\n : categories.length * LINE_HEIGHT,\n containLabel: true,\n },\n xAxis: {\n interval:\n exts?.endTimestamp && exts?.startTimestamp\n ? Math.floor((exts.endTimestamp - exts.startTimestamp) / 8)\n : null,\n position: 'top',\n splitLine: {\n show: true,\n },\n scale: true,\n axisLine: {\n show: false,\n },\n axisLabel: {\n formatter(val: number) {\n return dayjs(val as number).format('HH:mm:ss:SSS');\n },\n },\n },\n yAxis: {\n type: 'category',\n splitLine: {\n show: false,\n },\n axisLabel: {\n inside: true,\n lineHeight: 20,\n width: 100,\n fontSize: 12,\n color: '#000',\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: categories,\n },\n series: [\n {\n type: 'custom',\n renderItem,\n itemStyle: {\n opacity: 0.8,\n },\n encode: {\n x: [1, 2],\n y: 0,\n },\n data,\n },\n ],\n };\n setOptionsData(option);\n }, [loaderData, pluginsData, exts]);\n\n return (\n <ReactEChartsCore\n option={optionsData}\n echarts={echarts}\n style={{\n width: '100%',\n minHeight:\n chartType === ChartTypes.Loader\n ? '500px'\n : chartType === ChartTypes.Minify\n ? '100px'\n : '200px',\n maxHeight: chartType === ChartTypes.Minify ? '100px' : '1000px',\n border: '1px solid #eee',\n borderRadius: '10px',\n }}\n />\n );\n },\n);\n"],"names":["LINE_HEIGHT","TimelineCom","memo","loaderData","pluginsData","formatterFn","chartType","ChartTypes","exts","data","categories","optionsData","setOptionsData","useState","echarts","CustomChart","TooltipComponent","GridComponent","DataZoomComponent","CanvasRenderer","useEffect","_categories","_l","_loaderData","_i","PALETTE_COLORS","Math","l","val","i","_pluginsData","groupBy","e","Object","key","_plugin","String","renderItem","params","api","categoryIndex","start","end","height","rectShape","option","raw","dayjs","ReactEChartsCore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/Charts/TimelineCharts/index.mjs","sources":["../../../../src/components/Charts/TimelineCharts/index.tsx"],"sourcesContent":["import React, { useState, useEffect, memo, useMemo } from 'react';\nimport ReactEChartsCore from 'echarts-for-react/esm/core';\nimport * as echarts from 'echarts/core';\nimport { CustomChart } from 'echarts/charts';\nimport {\n TooltipComponent,\n GridComponent,\n DataZoomComponent,\n} from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\n\nimport dayjs from 'dayjs';\nimport { ChartProps, DurationMetric, ITraceEventData } from '../types';\nimport { groupBy } from 'es-toolkit/compat';\nimport { ChartTypes, TIMELINE_PALETTE_COLORS } from '../constants';\nimport { useThemeToken } from 'src/utils';\n\ninterface CoordSysType {\n x: number;\n y: number;\n width: number;\n height: number;\n}\ntype LoaderType = {\n name: string;\n value: number[];\n itemStyle: { normal: { color: string; opacity?: number } };\n ext?: Record<string, any>;\n};\n\nconst LINE_HEIGHT = 46;\n\necharts.use([\n CustomChart,\n TooltipComponent,\n GridComponent,\n DataZoomComponent,\n CanvasRenderer,\n]);\n\nexport const TimelineCom: React.FC<{\n loaderData?: DurationMetric[];\n pluginsData?: ITraceEventData[];\n // rslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n formatterFn: Function;\n chartType?: ChartTypes;\n exts?: { endTimestamp: number; startTimestamp: number };\n}> = memo(\n ({\n loaderData,\n pluginsData,\n formatterFn,\n chartType = ChartTypes.Normal,\n exts = null,\n }) => {\n const [optionsData, setOptionsData] = useState({});\n const themeToken = useThemeToken();\n\n const { data, categories } = useMemo(() => {\n const chartData: LoaderType[] = [];\n const categoryLabels: string[] = [];\n\n if (loaderData) {\n loaderData.forEach((loader) => {\n categoryLabels.unshift(loader.n + ' total');\n categoryLabels.unshift(loader.n);\n });\n\n loaderData.forEach((loader, loaderIndex) => {\n const totalColor =\n TIMELINE_PALETTE_COLORS[\n loaderIndex % TIMELINE_PALETTE_COLORS.length\n ];\n chartData.push({\n name: loader.n + ' total',\n value: [\n categoryLabels.indexOf(loader.n + ' total'),\n loader.s,\n loader.e,\n loader.e - loader.s,\n ],\n itemStyle: {\n normal: {\n color: totalColor,\n opacity: 0.34,\n },\n },\n });\n\n loader.c?.forEach((child, childIndex) => {\n chartData.push({\n name: loader.n,\n value: [\n categoryLabels.indexOf(loader.n),\n child.s,\n child.e,\n child.e - child.s,\n ],\n itemStyle: {\n normal: {\n color:\n TIMELINE_PALETTE_COLORS[\n (loaderIndex + childIndex) %\n TIMELINE_PALETTE_COLORS.length\n ],\n opacity: 0.78,\n },\n },\n ext: child.ext as ChartProps['loaders'][0],\n });\n });\n });\n\n for (let index = 0; index < categoryLabels.length; index++) {\n categoryLabels[index] =\n index % 2 !== 0 ? categoryLabels[index].replace(' total', '') : '';\n }\n }\n\n if (pluginsData) {\n const groupedPlugins = groupBy(\n pluginsData,\n (event: ITraceEventData) => event.pid,\n );\n\n Object.keys(groupedPlugins)\n .reverse()\n .forEach((key, groupIndex) => {\n groupedPlugins[key].forEach((plugin, pluginIndex) => {\n chartData.push({\n name: String(plugin.pid),\n value: [\n groupIndex,\n plugin.args.s,\n plugin.args.e,\n plugin.args.e - plugin.args.s,\n ],\n itemStyle: {\n normal: {\n color:\n TIMELINE_PALETTE_COLORS[\n (groupIndex + pluginIndex) %\n TIMELINE_PALETTE_COLORS.length\n ],\n opacity: 0.78,\n },\n },\n ext: plugin,\n });\n });\n categoryLabels.push(\n String(key.charAt(0).toUpperCase() + key.slice(1)),\n );\n });\n }\n\n return {\n data: chartData,\n categories: categoryLabels,\n };\n }, [loaderData, pluginsData]);\n useEffect(() => {\n function renderItem(\n params: { coordSys: CoordSysType },\n api: {\n value: (arg0: number) => number;\n coord: (arg0: number[]) => any;\n size: (arg0: number[]) => number[];\n style: () => string;\n },\n ) {\n const categoryIndex = api.value(0);\n const start = api.coord([api.value(1), categoryIndex]);\n const end = api.coord([api.value(2), categoryIndex]);\n const height = api.size([0, 1])[1] * 0.36;\n\n const rectShape = echarts.graphic.clipRectByRect(\n {\n x: start[0],\n y:\n chartType === ChartTypes.Loader\n ? start[1] - (categoryIndex % 2 !== 0 ? 0 : height * 2)\n : start[1],\n width: end[0] - start[0] || 5,\n height: height,\n },\n {\n x: params.coordSys.x,\n y: params.coordSys.y,\n width: params.coordSys.width,\n height: params.coordSys.height,\n },\n );\n return (\n rectShape && {\n type: 'rect',\n transition: ['shape'],\n shape: rectShape,\n style: api.style(),\n enterFrom: {\n style: { opacity: 0 },\n x: 0,\n },\n }\n );\n }\n\n const option = {\n tooltip: {\n formatter: (raw: any) => {\n return formatterFn(raw);\n },\n },\n dataZoom: [\n {\n type: 'slider',\n filterMode: 'weakFilter',\n showDataShadow: false,\n top: -8,\n height: 14,\n borderColor: themeToken.colorBorderSecondary,\n backgroundColor: themeToken.colorFillQuaternary,\n fillerColor: themeToken.colorPrimaryBg,\n handleStyle: {\n color: themeToken.colorTextSecondary,\n borderColor: themeToken.colorBorder,\n },\n },\n {\n type: 'inside',\n filterMode: 'weakFilter',\n },\n ],\n grid: {\n top: 18,\n left: 12,\n bottom: 12,\n right: 16,\n height:\n categories.length > (chartType === ChartTypes.Loader ? 6 : 3)\n ? 'auto'\n : categories.length * LINE_HEIGHT,\n containLabel: true,\n },\n xAxis: {\n interval:\n exts?.endTimestamp && exts?.startTimestamp\n ? Math.floor((exts.endTimestamp - exts.startTimestamp) / 8)\n : null,\n position: 'top',\n splitLine: {\n show: true,\n lineStyle: {\n color: themeToken.colorBorderSecondary,\n width: 1,\n },\n },\n scale: true,\n axisLine: {\n show: false,\n },\n axisLabel: {\n color: themeToken.colorTextSecondary,\n fontSize: 11,\n margin: 10,\n formatter(val: number) {\n return dayjs(val as number).format('HH:mm:ss:SSS');\n },\n },\n },\n yAxis: {\n type: 'category',\n splitLine: {\n show: false,\n },\n axisLabel: {\n inside: false,\n lineHeight: 20,\n width: chartType === ChartTypes.Loader ? 220 : 140,\n overflow: 'truncate',\n margin: 16,\n fontSize: 12,\n color: themeToken.colorTextSecondary,\n verticalAlign: 'middle',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n data: categories,\n },\n series: [\n {\n type: 'custom',\n renderItem,\n itemStyle: {\n opacity: 1,\n },\n encode: {\n x: [1, 2],\n y: 0,\n },\n data,\n },\n ],\n };\n setOptionsData(option);\n }, [categories, chartType, data, exts, formatterFn, themeToken]);\n\n const categoryCount = loaderData\n ? loaderData.length * 2\n : new Set(pluginsData?.map((item) => item.pid)).size;\n const chartHeight =\n chartType === ChartTypes.Minify\n ? 100\n : chartType === ChartTypes.Loader\n ? Math.min(Math.max(categoryCount * LINE_HEIGHT + 80, 300), 1000)\n : Math.min(Math.max(categoryCount * LINE_HEIGHT + 70, 200), 1000);\n\n return (\n <ReactEChartsCore\n option={optionsData}\n echarts={echarts}\n style={{\n width: '100%',\n height: `${chartHeight}px`,\n border: '1px solid var(--color-border)',\n borderRadius: '10px',\n }}\n />\n );\n },\n);\n"],"names":["LINE_HEIGHT","echarts","CustomChart","TooltipComponent","GridComponent","DataZoomComponent","CanvasRenderer","TimelineCom","memo","loaderData","pluginsData","formatterFn","chartType","ChartTypes","exts","optionsData","setOptionsData","useState","themeToken","useThemeToken","data","categories","useMemo","chartData","categoryLabels","loader","loaderIndex","totalColor","TIMELINE_PALETTE_COLORS","child","childIndex","index","groupedPlugins","groupBy","event","Object","key","groupIndex","plugin","pluginIndex","String","useEffect","renderItem","params","api","categoryIndex","start","end","height","rectShape","option","raw","Math","val","dayjs","categoryCount","Set","item","chartHeight","ReactEChartsCore"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ECElementEvent } from 'echarts/types/dist/shared';
|
|
3
|
+
import { type TreeMapSizeType } from './treeMapSize.js';
|
|
3
4
|
export type TreeNode = {
|
|
4
5
|
name: string;
|
|
5
6
|
value?: number;
|
|
@@ -10,7 +11,7 @@ export type TreeNode = {
|
|
|
10
11
|
gzipSize?: number;
|
|
11
12
|
id?: string | number;
|
|
12
13
|
};
|
|
13
|
-
export type SizeType =
|
|
14
|
+
export type SizeType = TreeMapSizeType;
|
|
14
15
|
interface TreeMapProps {
|
|
15
16
|
treeData: TreeNode[];
|
|
16
17
|
sizeType: SizeType;
|