@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.
Files changed (148) hide show
  1. package/dist/components/Alert/ecma-version-check_module.css +1 -1
  2. package/dist/components/Alert/ecma-version-check_module.css.map +1 -1
  3. package/dist/components/Alerts/bundle-alert.mjs +12 -8
  4. package/dist/components/Alerts/bundle-alert.mjs.map +1 -1
  5. package/dist/components/Alerts/bundle.mjs +3 -4
  6. package/dist/components/Alerts/bundle.mjs.map +1 -1
  7. package/dist/components/Alerts/collapse-cjs-require.mjs +6 -14
  8. package/dist/components/Alerts/collapse-cjs-require.mjs.map +1 -1
  9. package/dist/components/Alerts/collapse-cross-chunks.mjs +3 -8
  10. package/dist/components/Alerts/collapse-cross-chunks.mjs.map +1 -1
  11. package/dist/components/Alerts/collapse-esm-cjs.mjs +6 -10
  12. package/dist/components/Alerts/collapse-esm-cjs.mjs.map +1 -1
  13. package/dist/components/Alerts/collapse-module-mixed-chunks.mjs +5 -12
  14. package/dist/components/Alerts/collapse-module-mixed-chunks.mjs.map +1 -1
  15. package/dist/components/Alerts/collapse-side-effects-only-imports.mjs +5 -12
  16. package/dist/components/Alerts/collapse-side-effects-only-imports.mjs.map +1 -1
  17. package/dist/components/Alerts/collapse.mjs +3 -10
  18. package/dist/components/Alerts/collapse.mjs.map +1 -1
  19. package/dist/components/Alerts/collapse_module.css +1 -1
  20. package/dist/components/Alerts/collapse_module.css.map +1 -1
  21. package/dist/components/Alerts/index.module.mjs +7 -0
  22. package/dist/components/Alerts/index.module.mjs.map +1 -0
  23. package/dist/components/Alerts/index_module.css +9 -0
  24. package/dist/components/Alerts/index_module.css.map +1 -0
  25. package/dist/components/Alerts/list.mjs +0 -3
  26. package/dist/components/Alerts/list.mjs.map +1 -1
  27. package/dist/components/Card/size.d.ts +1 -0
  28. package/dist/components/Card/size.mjs +29 -7
  29. package/dist/components/Card/size.mjs.map +1 -1
  30. package/dist/components/Card/size.module.mjs +1 -0
  31. package/dist/components/Card/size.module.mjs.map +1 -1
  32. package/dist/components/Card/size_module.css +5 -2
  33. package/dist/components/Card/size_module.css.map +1 -1
  34. package/dist/components/Charts/TimelineCharts/index.mjs +118 -94
  35. package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
  36. package/dist/components/Charts/TreeMap.d.ts +2 -1
  37. package/dist/components/Charts/TreeMap.mjs +111 -126
  38. package/dist/components/Charts/TreeMap.mjs.map +1 -1
  39. package/dist/components/Charts/constants.d.ts +1 -0
  40. package/dist/components/Charts/constants.mjs +11 -1
  41. package/dist/components/Charts/constants.mjs.map +1 -1
  42. package/dist/components/Charts/index.mjs +3 -1
  43. package/dist/components/Charts/index.mjs.map +1 -1
  44. package/dist/components/Charts/loader.css +1 -1
  45. package/dist/components/Charts/loader.css.map +1 -1
  46. package/dist/components/Charts/treeMapSize.d.ts +10 -0
  47. package/dist/components/Charts/treeMapSize.mjs +17 -0
  48. package/dist/components/Charts/treeMapSize.mjs.map +1 -0
  49. package/dist/components/Charts/treeMapSize.test.d.ts +1 -0
  50. package/dist/components/Charts/treeMapSize.test.mjs +44 -0
  51. package/dist/components/Charts/treeMapSize.test.mjs.map +1 -0
  52. package/dist/components/Charts/treemap_module.css +6 -5
  53. package/dist/components/Charts/treemap_module.css.map +1 -1
  54. package/dist/components/FileTree/index.css +0 -1
  55. package/dist/components/FileTree/index.css.map +1 -1
  56. package/dist/components/FileTree/index.mjs +3 -4
  57. package/dist/components/FileTree/index.mjs.map +1 -1
  58. package/dist/components/Keyword/style_module.css +0 -1
  59. package/dist/components/Keyword/style_module.css.map +1 -1
  60. package/dist/components/Layout/header.mjs +38 -16
  61. package/dist/components/Layout/header.mjs.map +1 -1
  62. package/dist/components/Layout/header.module.mjs +5 -2
  63. package/dist/components/Layout/header.module.mjs.map +1 -1
  64. package/dist/components/Layout/header_module.css +69 -21
  65. package/dist/components/Layout/header_module.css.map +1 -1
  66. package/dist/components/Layout/index.mjs +34 -8
  67. package/dist/components/Layout/index.mjs.map +1 -1
  68. package/dist/components/Layout/menus.mjs +9 -6
  69. package/dist/components/Layout/menus.mjs.map +1 -1
  70. package/dist/components/Layout/rsdoctor-title-logo-dark.mjs +2 -0
  71. package/dist/components/Loader/Analysis/files.mjs +16 -17
  72. package/dist/components/Loader/Analysis/files.mjs.map +1 -1
  73. package/dist/components/Loader/Analysis/style_module.css +13 -14
  74. package/dist/components/Loader/Analysis/style_module.css.map +1 -1
  75. package/dist/components/Loader/executions.mjs +5 -13
  76. package/dist/components/Loader/executions.mjs.map +1 -1
  77. package/dist/components/Overall/DataSummary.d.ts +1 -1
  78. package/dist/components/Overall/DataSummary.mjs +21 -20
  79. package/dist/components/Overall/DataSummary.mjs.map +1 -1
  80. package/dist/components/Overall/DataSummary.module.mjs +1 -12
  81. package/dist/components/Overall/DataSummary.module.mjs.map +1 -1
  82. package/dist/components/Overall/DataSummary_module.css +13 -73
  83. package/dist/components/Overall/DataSummary_module.css.map +1 -1
  84. package/dist/components/Overall/bundle.mjs +2 -3
  85. package/dist/components/Overall/bundle.mjs.map +1 -1
  86. package/dist/components/Overall/bundle.module.mjs +1 -0
  87. package/dist/components/Overall/bundle.module.mjs.map +1 -1
  88. package/dist/components/Overall/bundle_module.css +12 -4
  89. package/dist/components/Overall/bundle_module.css.map +1 -1
  90. package/dist/components/Overall/list_module.css +18 -2
  91. package/dist/components/Overall/list_module.css.map +1 -1
  92. package/dist/components/Overall/overview_module.css +13 -6
  93. package/dist/components/Overall/overview_module.css.map +1 -1
  94. package/dist/components/Overall/project.mjs +1 -1
  95. package/dist/components/Overall/project.mjs.map +1 -1
  96. package/dist/components/Overall/project_module.css +8 -0
  97. package/dist/components/Overall/project_module.css.map +1 -1
  98. package/dist/components/base/CodeViewer/index.d.ts +1 -1
  99. package/dist/components/base/CodeViewer/index.mjs +5 -3
  100. package/dist/components/base/CodeViewer/index.mjs.map +1 -1
  101. package/dist/components/base/CodeViewer/interface.d.ts +1 -2
  102. package/dist/components/base/DiffViewer/index.d.ts +1 -1
  103. package/dist/components/base/DiffViewer/index.mjs +4 -1
  104. package/dist/components/base/DiffViewer/index.mjs.map +1 -1
  105. package/dist/components/base/DiffViewer/interface.d.ts +1 -2
  106. package/dist/pages/BundleSize/components/asset_module.css +7 -5
  107. package/dist/pages/BundleSize/components/asset_module.css.map +1 -1
  108. package/dist/pages/BundleSize/components/card_module.css +9 -3
  109. package/dist/pages/BundleSize/components/card_module.css.map +1 -1
  110. package/dist/pages/BundleSize/components/cards.mjs +5 -6
  111. package/dist/pages/BundleSize/components/cards.mjs.map +1 -1
  112. package/dist/pages/BundleSize/components/index.mjs +11 -8
  113. package/dist/pages/BundleSize/components/index.mjs.map +1 -1
  114. package/dist/pages/BundleSize/components/index.module.mjs +1 -6
  115. package/dist/pages/BundleSize/components/index.module.mjs.map +1 -1
  116. package/dist/pages/BundleSize/components/index_module.css +0 -37
  117. package/dist/pages/BundleSize/components/index_module.css.map +1 -1
  118. package/dist/pages/BundleSize/components/search-modal.mjs +5 -5
  119. package/dist/pages/BundleSize/components/search-modal.mjs.map +1 -1
  120. package/dist/pages/BundleSize/components/search-modal.module.mjs +10 -0
  121. package/dist/pages/BundleSize/components/search-modal.module.mjs.map +1 -0
  122. package/dist/pages/BundleSize/components/search-modal_module.css +39 -0
  123. package/dist/pages/BundleSize/components/search-modal_module.css.map +1 -0
  124. package/dist/pages/BundleSize/components/tree-graph.mjs +4 -4
  125. package/dist/pages/BundleSize/components/tree-graph.mjs.map +1 -1
  126. package/dist/pages/ModuleAnalyze/components/fileTreeCom.css +6 -2
  127. package/dist/pages/ModuleAnalyze/components/fileTreeCom.css.map +1 -1
  128. package/dist/pages/ModuleAnalyze/index.css +4 -6
  129. package/dist/pages/ModuleAnalyze/index.css.map +1 -1
  130. package/dist/pages/ModuleAnalyze/index.mjs +3 -4
  131. package/dist/pages/ModuleAnalyze/index.mjs.map +1 -1
  132. package/dist/pages/Overall/index.mjs +5 -13
  133. package/dist/pages/Overall/index.mjs.map +1 -1
  134. package/dist/pages/Overall/index.module.mjs +3 -0
  135. package/dist/pages/Overall/index.module.mjs.map +1 -1
  136. package/dist/pages/Overall/index_module.css +35 -2
  137. package/dist/pages/Overall/index_module.css.map +1 -1
  138. package/dist/pages/Overall/responsiveLayout.mjs +3 -3
  139. package/dist/pages/Overall/responsiveLayout.mjs.map +1 -1
  140. package/dist/pages/WebpackLoaders/Analysis/index.mjs +3 -3
  141. package/dist/pages/WebpackLoaders/Analysis/index.mjs.map +1 -1
  142. package/dist/pages/WebpackLoaders/Overall/index.mjs +1 -1
  143. package/dist/pages/WebpackLoaders/Overall/index.mjs.map +1 -1
  144. package/dist/static/image/rsdoctor-title-logo-dark.png +0 -0
  145. package/dist/utils/hooks.d.ts +1 -0
  146. package/dist/utils/hooks.mjs +6 -1
  147. package/dist/utils/hooks.mjs.map +1 -1
  148. 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, PALETTE_COLORS } from "../constants.mjs";
11
- const LINE_HEIGHT = 60;
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
- __rspack_external_echarts_core_d2845954.use([
17
- CustomChart,
18
- TooltipComponent,
19
- GridComponent,
20
- DataZoomComponent,
21
- CanvasRenderer
22
- ]);
23
- useEffect(()=>{
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
- if (!_loaderData?.c) return;
47
- for(let l = 0; l < _loaderData?.c?.length; l++)data.push({
48
- name: _loaderData.n,
49
- value: [
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
- i,
80
- _plugin.args.s,
81
- _plugin.args.e,
82
- _plugin.args.e - _plugin.args.s
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: PALETTE_COLORS[Math.floor(27 * Math.random())],
87
- opacity: 0.25
43
+ color: totalColor,
44
+ opacity: 0.34
88
45
  }
89
- },
90
- ext: _plugin
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
- categories.push(String(key.charAt(0).toUpperCase() + key.slice(1)));
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.3 * api.size([
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: -10
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: 10,
157
- left: 0,
158
- bottom: 10,
159
- right: 0,
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: true,
203
+ inside: false,
186
204
  lineHeight: 20,
187
- width: 100,
205
+ width: chartType === ChartTypes.Loader ? 220 : 140,
206
+ overflow: 'truncate',
207
+ margin: 16,
188
208
  fontSize: 12,
189
- color: '#000',
190
- verticalAlign: 'bottom'
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: 0.8
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
- loaderData,
221
- pluginsData,
222
- exts
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
- minHeight: chartType === ChartTypes.Loader ? '500px' : chartType === ChartTypes.Minify ? '100px' : '200px',
230
- maxHeight: chartType === ChartTypes.Minify ? '100px' : '1000px',
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 = 'stat' | 'parsed' | 'gzip' | 'value';
14
+ export type SizeType = TreeMapSizeType;
14
15
  interface TreeMapProps {
15
16
  treeData: TreeNode[];
16
17
  sizeType: SizeType;