@rsdoctor/components 1.5.3 → 1.5.5

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 (169) hide show
  1. package/dist/common/imgs/connection-point.mjs +1 -1
  2. package/dist/common/imgs/rsdoctor-navbar.mjs +1 -1
  3. package/dist/common/imgs/webpack.mjs +1 -1
  4. package/dist/common/svg/bundle-size.mjs +1 -1
  5. package/dist/common/svg/cursor.mjs +1 -1
  6. package/dist/common/svg/error.mjs +1 -1
  7. package/dist/common/svg/file-css.mjs +1 -1
  8. package/dist/common/svg/file-html.mjs +1 -1
  9. package/dist/common/svg/file-image.mjs +1 -1
  10. package/dist/common/svg/file-js.mjs +1 -1
  11. package/dist/common/svg/file-unknown.mjs +1 -1
  12. package/dist/common/svg/file.mjs +1 -1
  13. package/dist/common/svg/files/css.mjs +1 -1
  14. package/dist/common/svg/files/html.mjs +1 -1
  15. package/dist/common/svg/files/image.mjs +1 -1
  16. package/dist/common/svg/files/js.mjs +1 -1
  17. package/dist/common/svg/files/unkown-file.mjs +1 -1
  18. package/dist/common/svg/loader/input.mjs +1 -1
  19. package/dist/common/svg/loader/output.mjs +1 -1
  20. package/dist/common/svg/loader/step.mjs +1 -1
  21. package/dist/common/svg/navbar/bundle-size-active.mjs +1 -1
  22. package/dist/common/svg/navbar/bundle-size-inactive.mjs +1 -1
  23. package/dist/common/svg/navbar/compile-analysis-active.mjs +1 -1
  24. package/dist/common/svg/navbar/compile-analysis-inactive.mjs +1 -1
  25. package/dist/common/svg/navbar/overall-active.mjs +1 -1
  26. package/dist/common/svg/navbar/overall-inactive.mjs +1 -1
  27. package/dist/common/svg/output.mjs +1 -1
  28. package/dist/common/svg/source-size.mjs +1 -1
  29. package/dist/common/svg/source.mjs +1 -1
  30. package/dist/common/svg/total-size.mjs +1 -1
  31. package/dist/common/svg/trae.mjs +1 -1
  32. package/dist/common/svg/version.mjs +1 -1
  33. package/dist/common/svg/vscode.mjs +1 -1
  34. package/dist/components/Alert/change.mjs.map +1 -1
  35. package/dist/components/Alert/ecma-version-check.mjs +1 -1
  36. package/dist/components/Alert/ecma-version-check.mjs.map +1 -1
  37. package/dist/components/Alert/ecma-version-check.module.mjs +1 -1
  38. package/dist/components/Alert/package-relation.module.mjs +1 -1
  39. package/dist/components/Alert/view.mjs.map +1 -1
  40. package/dist/components/Alerts/bundle-alert.mjs +50 -2
  41. package/dist/components/Alerts/bundle-alert.mjs.map +1 -1
  42. package/dist/components/Alerts/bundle-alert.module.mjs +1 -1
  43. package/dist/components/Alerts/collapse-cjs-require.d.ts +6 -0
  44. package/dist/components/Alerts/collapse-cjs-require.mjs +142 -0
  45. package/dist/components/Alerts/collapse-cjs-require.mjs.map +1 -0
  46. package/dist/components/Alerts/collapse-cross-chunks.mjs +2 -23
  47. package/dist/components/Alerts/collapse-cross-chunks.mjs.map +1 -1
  48. package/dist/components/Alerts/collapse-esm-cjs.d.ts +6 -0
  49. package/dist/components/Alerts/collapse-esm-cjs.mjs +231 -0
  50. package/dist/components/Alerts/collapse-esm-cjs.mjs.map +1 -0
  51. package/dist/components/Alerts/collapse-module-mixed-chunks.mjs +2 -23
  52. package/dist/components/Alerts/collapse-module-mixed-chunks.mjs.map +1 -1
  53. package/dist/components/Alerts/collapse-shared.d.ts +9 -0
  54. package/dist/components/Alerts/collapse-shared.mjs +90 -0
  55. package/dist/components/Alerts/collapse-shared.mjs.map +1 -0
  56. package/dist/components/Alerts/collapse-side-effects-only-imports.d.ts +6 -0
  57. package/dist/components/Alerts/collapse-side-effects-only-imports.mjs +131 -0
  58. package/dist/components/Alerts/collapse-side-effects-only-imports.mjs.map +1 -0
  59. package/dist/components/Alerts/collapse.mjs +2 -23
  60. package/dist/components/Alerts/collapse.mjs.map +1 -1
  61. package/dist/components/Alerts/collapse.module.mjs +1 -1
  62. package/dist/components/Alerts/list.module.mjs +1 -1
  63. package/dist/components/Alerts/overlay.mjs.map +1 -1
  64. package/dist/components/Alerts/overlay.module.mjs +1 -1
  65. package/dist/components/Card/diff.mjs.map +1 -1
  66. package/dist/components/Card/index.mjs +1 -1
  67. package/dist/components/Card/size.mjs +2 -2
  68. package/dist/components/Card/size.mjs.map +1 -1
  69. package/dist/components/Card/size.module.mjs +1 -1
  70. package/dist/components/Charts/TimelineCharts/index.mjs +1 -1
  71. package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
  72. package/dist/components/Charts/TreeMap.mjs +1 -1
  73. package/dist/components/Charts/TreeMap.mjs.map +1 -1
  74. package/dist/components/Charts/constants.mjs +1 -1
  75. package/dist/components/Charts/loader.mjs +2 -2
  76. package/dist/components/Charts/loader.mjs.map +1 -1
  77. package/dist/components/Charts/treemap.module.mjs +1 -1
  78. package/dist/components/Configuration/builder.module.mjs +1 -1
  79. package/dist/components/FileTree/css.mjs +1 -1
  80. package/dist/components/FileTree/html.mjs +1 -1
  81. package/dist/components/FileTree/image.mjs +1 -1
  82. package/dist/components/FileTree/index.mjs +1 -1
  83. package/dist/components/FileTree/index.mjs.map +1 -1
  84. package/dist/components/FileTree/js.mjs +1 -1
  85. package/dist/components/FileTree/unkown-file.mjs +1 -1
  86. package/dist/components/Keyword/style.module.mjs +1 -1
  87. package/dist/components/Layout/bundle-size-icon.mjs +1 -1
  88. package/dist/components/Layout/compile-icon.mjs +1 -1
  89. package/dist/components/Layout/index.mjs.map +1 -1
  90. package/dist/components/Layout/overall-icon.mjs +1 -1
  91. package/dist/components/Layout/project-info-context.mjs.map +1 -1
  92. package/dist/components/Loader/Analysis/input.mjs +1 -1
  93. package/dist/components/Loader/Analysis/output.mjs +1 -1
  94. package/dist/components/Loader/Analysis/style.module.mjs +1 -1
  95. package/dist/components/Loader/executions.mjs.map +1 -1
  96. package/dist/components/Loader/step.mjs +1 -1
  97. package/dist/components/Manifest/api.mjs.map +1 -1
  98. package/dist/components/Overall/DataSummary.module.mjs +1 -1
  99. package/dist/components/Overall/bundle.mjs +1 -1
  100. package/dist/components/Overall/bundle.mjs.map +1 -1
  101. package/dist/components/Overall/bundle.module.mjs +1 -1
  102. package/dist/components/Overall/card.module.mjs +1 -1
  103. package/dist/components/Overall/compile.mjs.map +1 -1
  104. package/dist/components/Overall/compile.module.mjs +1 -1
  105. package/dist/components/Overall/help-center.module.mjs +1 -1
  106. package/dist/components/Overall/list.module.mjs +1 -1
  107. package/dist/components/Overall/overview.mjs +2 -1
  108. package/dist/components/Overall/overview.module.mjs +1 -1
  109. package/dist/components/Overall/project.module.mjs +1 -1
  110. package/dist/components/Resolver/analysis.mjs +2 -2
  111. package/dist/components/Resolver/analysis.mjs.map +1 -1
  112. package/dist/components/Select/index.mjs.map +1 -1
  113. package/dist/components/Status/failed.mjs.map +1 -1
  114. package/dist/components/TextDrawer/duplicate.mjs.map +1 -1
  115. package/dist/components/TextDrawer/index.mjs +1 -1
  116. package/dist/components/base/CodeViewer/index.mjs +2 -2
  117. package/dist/components/base/CodeViewer/index.mjs.map +1 -1
  118. package/dist/components/base/CodeViewer/index.module.mjs +1 -1
  119. package/dist/components/base/DiffViewer/index.mjs +2 -2
  120. package/dist/components/base/DiffViewer/index.mjs.map +1 -1
  121. package/dist/components/base/DiffViewer/index.module.mjs +1 -1
  122. package/dist/components/index.mjs +1 -2
  123. package/dist/config.mjs.map +1 -1
  124. package/dist/constants.mjs +1 -1
  125. package/dist/pages/BundleSize/components/asset.mjs +2 -2
  126. package/dist/pages/BundleSize/components/asset.mjs.map +1 -1
  127. package/dist/pages/BundleSize/components/card.module.mjs +1 -1
  128. package/dist/pages/BundleSize/components/cards.mjs +2 -2
  129. package/dist/pages/BundleSize/components/cards.mjs.map +1 -1
  130. package/dist/pages/BundleSize/components/index.mjs +1 -1
  131. package/dist/pages/BundleSize/components/index.mjs.map +1 -1
  132. package/dist/pages/BundleSize/components/index.module.mjs +1 -1
  133. package/dist/pages/BundleSize/components/search-modal.mjs +1 -1
  134. package/dist/pages/BundleSize/components/search-modal.mjs.map +1 -1
  135. package/dist/pages/BundleSize/config.mjs.map +1 -1
  136. package/dist/pages/BundleSize/constants.mjs +1 -1
  137. package/dist/pages/BundleSize/index.mjs +1 -1
  138. package/dist/pages/ModuleAnalyze/constants.mjs +1 -1
  139. package/dist/pages/ModuleAnalyze/dependency.mjs +1 -1
  140. package/dist/pages/ModuleResolve/index.mjs +1 -1
  141. package/dist/pages/Overall/index.mjs +1 -1
  142. package/dist/pages/Overall/index.module.mjs +1 -1
  143. package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs.map +1 -1
  144. package/dist/pages/Resources/BundleDiff/DiffContainer/changes.mjs.map +1 -1
  145. package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs.map +1 -1
  146. package/dist/pages/Resources/BundleDiff/DiffContainer/packages.mjs.map +1 -1
  147. package/dist/pages/Resources/BundleDiff/constants.mjs.map +1 -1
  148. package/dist/pages/Resources/BundleDiff/index.mjs +2 -2
  149. package/dist/pages/Resources/RuleIndex/index.mjs +1 -1
  150. package/dist/pages/TreeShaking/index.mjs +1 -1
  151. package/dist/pages/TreeShaking/open-tag.mjs +1 -1
  152. package/dist/pages/TreeShaking/table.mjs.map +1 -1
  153. package/dist/pages/Uploader/index.mjs +1 -1
  154. package/dist/pages/WebpackLoaders/Analysis/index.mjs +2 -2
  155. package/dist/pages/WebpackLoaders/Analysis/index.mjs.map +1 -1
  156. package/dist/pages/WebpackLoaders/Overall/index.mjs +1 -1
  157. package/dist/pages/WebpackPlugins/index.mjs +1 -1
  158. package/dist/pages/index.mjs +1 -1
  159. package/dist/utils/i18n/cn.mjs +1 -1
  160. package/dist/utils/i18n/en.mjs +1 -1
  161. package/dist/utils/i18n/index.mjs +1 -1
  162. package/dist/utils/loader.mjs +1 -1
  163. package/dist/utils/loader.mjs.map +1 -1
  164. package/dist/utils/string.d.ts +1 -0
  165. package/dist/utils/string.mjs +6 -1
  166. package/dist/utils/string.mjs.map +1 -1
  167. package/dist/utils/time.mjs +1 -1
  168. package/dist/utils/time.mjs.map +1 -1
  169. package/package.json +9 -9
@@ -0,0 +1,90 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Space, Tooltip } from "antd";
3
+ import vscode from "../../common/svg/vscode.mjs";
4
+ import cursor from "../../common/svg/cursor.mjs";
5
+ import trae from "../../common/svg/trae.mjs";
6
+ import { openCursor, openTrae, openVSCode } from "../Opener/index.mjs";
7
+ import collapse_module from "./collapse.module.mjs";
8
+ const LabelComponent = (props)=>{
9
+ const { title, description, extra } = props;
10
+ return /*#__PURE__*/ jsxs("div", {
11
+ className: collapse_module.label,
12
+ children: [
13
+ /*#__PURE__*/ jsxs("div", {
14
+ className: collapse_module.labelContent,
15
+ children: [
16
+ /*#__PURE__*/ jsx("div", {
17
+ children: title
18
+ }),
19
+ /*#__PURE__*/ jsx("div", {
20
+ children: description
21
+ })
22
+ ]
23
+ }),
24
+ /*#__PURE__*/ jsx("div", {
25
+ children: extra
26
+ })
27
+ ]
28
+ });
29
+ };
30
+ const IdeIcons = ({ file })=>/*#__PURE__*/ jsxs(Space, {
31
+ size: 4,
32
+ style: {
33
+ marginLeft: 8,
34
+ flexShrink: 0,
35
+ marginTop: 5
36
+ },
37
+ children: [
38
+ /*#__PURE__*/ jsx(Tooltip, {
39
+ title: "Open in VSCode",
40
+ children: /*#__PURE__*/ jsx(vscode, {
41
+ style: {
42
+ width: 16,
43
+ height: 16,
44
+ cursor: 'pointer'
45
+ },
46
+ onClick: (e)=>{
47
+ e.stopPropagation();
48
+ openVSCode({
49
+ file
50
+ });
51
+ }
52
+ })
53
+ }),
54
+ /*#__PURE__*/ jsx(Tooltip, {
55
+ title: "Open in Cursor",
56
+ children: /*#__PURE__*/ jsx(cursor, {
57
+ style: {
58
+ width: 16,
59
+ height: 16,
60
+ cursor: 'pointer'
61
+ },
62
+ onClick: (e)=>{
63
+ e.stopPropagation();
64
+ openCursor({
65
+ file
66
+ });
67
+ }
68
+ })
69
+ }),
70
+ /*#__PURE__*/ jsx(Tooltip, {
71
+ title: "Open in Trae",
72
+ children: /*#__PURE__*/ jsx(trae, {
73
+ style: {
74
+ width: 16,
75
+ height: 16,
76
+ cursor: 'pointer'
77
+ },
78
+ onClick: (e)=>{
79
+ e.stopPropagation();
80
+ openTrae({
81
+ file
82
+ });
83
+ }
84
+ })
85
+ })
86
+ ]
87
+ });
88
+ export { IdeIcons, LabelComponent };
89
+
90
+ //# sourceMappingURL=collapse-shared.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components/Alerts/collapse-shared.mjs","sources":["../../../src/components/Alerts/collapse-shared.tsx"],"sourcesContent":["import { Space, Tooltip } from 'antd';\nimport { ReactNode } from 'react';\n\nimport VSCodeIcon from '../../common/svg/vscode.svg';\nimport CursorIcon from '../../common/svg/cursor.svg';\nimport TraeIcon from '../../common/svg/trae.svg';\nimport { openVSCode, openCursor, openTrae } from '../Opener';\n\nimport styles from './collapse.module.scss';\n\nexport const LabelComponent = (props: {\n title: string | ReactNode;\n description: string;\n extra?: ReactNode;\n}) => {\n const { title, description, extra } = props;\n return (\n <div className={styles.label}>\n <div className={styles.labelContent}>\n <div>{title}</div>\n <div>{description}</div>\n </div>\n <div>{extra}</div>\n </div>\n );\n};\n\nexport const IdeIcons = ({ file }: { file: string }) => (\n <Space size={4} style={{ marginLeft: 8, flexShrink: 0, marginTop: 5 }}>\n <Tooltip title=\"Open in VSCode\">\n <VSCodeIcon\n style={{ width: 16, height: 16, cursor: 'pointer' }}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n openVSCode({ file });\n }}\n />\n </Tooltip>\n <Tooltip title=\"Open in Cursor\">\n <CursorIcon\n style={{ width: 16, height: 16, cursor: 'pointer' }}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n openCursor({ file });\n }}\n />\n </Tooltip>\n <Tooltip title=\"Open in Trae\">\n <TraeIcon\n style={{ width: 16, height: 16, cursor: 'pointer' }}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n openTrae({ file });\n }}\n />\n </Tooltip>\n </Space>\n);\n"],"names":["LabelComponent","props","title","description","extra","styles","IdeIcons","file","Space","Tooltip","VSCodeIcon","e","openVSCode","CursorIcon","openCursor","TraeIcon","openTrae"],"mappings":";;;;;;;AAUO,MAAMA,iBAAiB,CAACC;IAK7B,MAAM,EAAEC,KAAK,EAAEC,WAAW,EAAEC,KAAK,EAAE,GAAGH;IACtC,OAAO,WAAP,GACE,KAAC;QAAI,WAAWI,gBAAAA,KAAY;;0BAC1B,KAAC;gBAAI,WAAWA,gBAAAA,YAAmB;;kCACjC,IAAC;kCAAKH;;kCACN,IAAC;kCAAKC;;;;0BAER,IAAC;0BAAKC;;;;AAGZ;AAEO,MAAME,WAAW,CAAC,EAAEC,IAAI,EAAoB,iBACjD,KAACC,OAAKA;QAAC,MAAM;QAAG,OAAO;YAAE,YAAY;YAAG,YAAY;YAAG,WAAW;QAAE;;0BAClE,IAACC,SAAOA;gBAAC,OAAM;0BACb,kBAACC,QAAUA;oBACT,OAAO;wBAAE,OAAO;wBAAI,QAAQ;wBAAI,QAAQ;oBAAU;oBAClD,SAAS,CAACC;wBACRA,EAAE,eAAe;wBACjBC,WAAW;4BAAEL;wBAAK;oBACpB;;;0BAGJ,IAACE,SAAOA;gBAAC,OAAM;0BACb,kBAACI,QAAUA;oBACT,OAAO;wBAAE,OAAO;wBAAI,QAAQ;wBAAI,QAAQ;oBAAU;oBAClD,SAAS,CAACF;wBACRA,EAAE,eAAe;wBACjBG,WAAW;4BAAEP;wBAAK;oBACpB;;;0BAGJ,IAACE,SAAOA;gBAAC,OAAM;0BACb,kBAACM,MAAQA;oBACP,OAAO;wBAAE,OAAO;wBAAI,QAAQ;wBAAI,QAAQ;oBAAU;oBAClD,SAAS,CAACJ;wBACRA,EAAE,eAAe;wBACjBK,SAAS;4BAAET;wBAAK;oBAClB"}
@@ -0,0 +1,6 @@
1
+ import type { Rule } from '@rsdoctor/types';
2
+ import type { AlertProps } from '../Alert/types.js';
3
+ export declare const SideEffectsOnlyImportsAlertCollapse: (props: {
4
+ data: Array<Rule.RuleStoreDataItem>;
5
+ extraData: Omit<AlertProps, "data">;
6
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,131 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import icons from "@ant-design/icons";
3
+ import { Collapse, Space, Tag, Typography } from "antd";
4
+ import overview from "../Overall/overview.mjs";
5
+ import collapse_module from "./collapse.module.mjs";
6
+ import total_size from "../../common/svg/total-size.mjs";
7
+ import { beautifyPath } from "../../utils/file.mjs";
8
+ import { IdeIcons, LabelComponent } from "./collapse-shared.mjs";
9
+ const { Text: Text } = Typography;
10
+ const { innerWidth: collapse_side_effects_only_imports_innerWidth } = window;
11
+ const SideEffectsOnlyImportsAlertCollapse = (props)=>{
12
+ const { data, extraData } = props;
13
+ const { cwd } = extraData;
14
+ const items = data.map((d)=>{
15
+ const { module, connections } = d;
16
+ const modulePath = beautifyPath(module.path, cwd);
17
+ const ChildComponent = ()=>/*#__PURE__*/ jsx("div", {
18
+ className: collapse_module.collapseContainer,
19
+ children: /*#__PURE__*/ jsx(overview, {
20
+ style: {
21
+ backgroundColor: '#fff'
22
+ },
23
+ title: /*#__PURE__*/ jsxs(Space, {
24
+ align: "center",
25
+ children: [
26
+ /*#__PURE__*/ jsx(icons, {
27
+ style: {
28
+ fontSize: '18px'
29
+ },
30
+ component: total_size
31
+ }),
32
+ /*#__PURE__*/ jsxs(Text, {
33
+ style: {
34
+ width: collapse_side_effects_only_imports_innerWidth > 1500 ? 900 : 700
35
+ },
36
+ children: [
37
+ "Module:",
38
+ ' ',
39
+ /*#__PURE__*/ jsx(Text, {
40
+ style: {
41
+ fontSize: 12,
42
+ color: 'rgba(28, 31, 35, 0.6)',
43
+ fontWeight: 300
44
+ },
45
+ children: modulePath
46
+ })
47
+ ]
48
+ }),
49
+ /*#__PURE__*/ jsx(IdeIcons, {
50
+ file: module.path
51
+ })
52
+ ]
53
+ }),
54
+ description: /*#__PURE__*/ jsxs("div", {
55
+ className: collapse_module.collapseChild,
56
+ children: [
57
+ /*#__PURE__*/ jsx("div", {
58
+ style: {
59
+ marginBottom: 8,
60
+ fontWeight: 500,
61
+ color: 'rgba(28, 31, 35, 0.85)'
62
+ },
63
+ children: "Side-Effects-Only Importers:"
64
+ }),
65
+ connections.map((conn, idx)=>/*#__PURE__*/ jsxs("div", {
66
+ style: {
67
+ display: 'flex',
68
+ marginBottom: 4
69
+ },
70
+ children: [
71
+ /*#__PURE__*/ jsx("div", {
72
+ className: collapse_module.attribute,
73
+ children: "Import"
74
+ }),
75
+ /*#__PURE__*/ jsxs("div", {
76
+ className: collapse_module.iconContainer,
77
+ children: [
78
+ /*#__PURE__*/ jsx("span", {
79
+ className: collapse_module.data,
80
+ children: conn.userRequest
81
+ }),
82
+ /*#__PURE__*/ jsx(Tag, {
83
+ style: {
84
+ marginLeft: 8,
85
+ backgroundColor: '#EAEDF1',
86
+ borderRadius: '2px',
87
+ fontSize: 11
88
+ },
89
+ children: conn.dependencyType
90
+ })
91
+ ]
92
+ })
93
+ ]
94
+ }, idx))
95
+ ]
96
+ })
97
+ })
98
+ });
99
+ return {
100
+ key: modulePath,
101
+ label: /*#__PURE__*/ jsx(LabelComponent, {
102
+ title: /*#__PURE__*/ jsx(Space, {
103
+ size: 4,
104
+ align: "center",
105
+ children: /*#__PURE__*/ jsx(Tag, {
106
+ style: {
107
+ backgroundColor: '#EAEDF1',
108
+ borderRadius: '2px'
109
+ },
110
+ children: /*#__PURE__*/ jsx("span", {
111
+ className: collapse_module.pkgName,
112
+ children: modulePath
113
+ })
114
+ })
115
+ }),
116
+ description: `is only imported for its side effects by ${new Set(connections.map((c)=>c.originModule)).size} importer(s).`
117
+ }),
118
+ children: /*#__PURE__*/ jsx(ChildComponent, {})
119
+ };
120
+ });
121
+ return /*#__PURE__*/ jsx(Collapse, {
122
+ style: {
123
+ width: '100%'
124
+ },
125
+ defaultActiveKey: items.map((item)=>item.key),
126
+ items: items
127
+ });
128
+ };
129
+ export { SideEffectsOnlyImportsAlertCollapse };
130
+
131
+ //# sourceMappingURL=collapse-side-effects-only-imports.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components/Alerts/collapse-side-effects-only-imports.mjs","sources":["../../../src/components/Alerts/collapse-side-effects-only-imports.tsx"],"sourcesContent":["import Icon from '@ant-design/icons';\nimport { Collapse, Space, Tag, Typography } from 'antd';\n\nimport Overview from '../Overall/overview';\nimport styles from './collapse.module.scss';\nimport TotalSizeSvg from '../../common/svg/total-size.svg';\nimport { beautifyPath } from '../../utils/file';\nimport { LabelComponent, IdeIcons } from './collapse-shared';\n\nimport type { Rule } from '@rsdoctor/types';\nimport type { AlertProps } from '../Alert/types';\n\nconst { Text } = Typography;\nconst { innerWidth } = window;\n\nexport const SideEffectsOnlyImportsAlertCollapse = (props: {\n data: Array<Rule.RuleStoreDataItem>;\n extraData: Omit<AlertProps, 'data'>;\n}) => {\n const { data, extraData } = props;\n const { cwd } = extraData;\n\n const items = data.map((d) => {\n const { module, connections } =\n d as Rule.ConnectionsOnlyImportsRuleStoreData;\n\n const modulePath = beautifyPath(module.path, cwd);\n\n const ChildComponent = () => {\n return (\n <div className={styles.collapseContainer}>\n <Overview\n style={{ backgroundColor: '#fff' }}\n title={\n <Space align=\"center\">\n <Icon style={{ fontSize: '18px' }} component={TotalSizeSvg} />\n <Text style={{ width: innerWidth > 1500 ? 900 : 700 }}>\n Module:{' '}\n <Text\n style={{\n fontSize: 12,\n color: 'rgba(28, 31, 35, 0.6)',\n fontWeight: 300,\n }}\n >\n {modulePath}\n </Text>\n </Text>\n <IdeIcons file={module.path} />\n </Space>\n }\n description={\n <div className={styles.collapseChild}>\n <div\n style={{\n marginBottom: 8,\n fontWeight: 500,\n color: 'rgba(28, 31, 35, 0.85)',\n }}\n >\n Side-Effects-Only Importers:\n </div>\n {connections.map((conn, idx) => (\n <div key={idx} style={{ display: 'flex', marginBottom: 4 }}>\n <div className={styles.attribute}>Import</div>\n <div className={styles.iconContainer}>\n <span className={styles.data}>{conn.userRequest}</span>\n <Tag\n style={{\n marginLeft: 8,\n backgroundColor: '#EAEDF1',\n borderRadius: '2px',\n fontSize: 11,\n }}\n >\n {conn.dependencyType}\n </Tag>\n </div>\n </div>\n ))}\n </div>\n }\n />\n </div>\n );\n };\n\n return {\n key: modulePath,\n label: (\n <LabelComponent\n title={\n <Space size={4} align=\"center\">\n <Tag style={{ backgroundColor: '#EAEDF1', borderRadius: '2px' }}>\n <span className={styles.pkgName}>{modulePath}</span>\n </Tag>\n </Space>\n }\n description={`is only imported for its side effects by ${new Set(connections.map((c) => c.originModule)).size} importer(s).`}\n />\n ),\n children: <ChildComponent />,\n };\n });\n\n return (\n <Collapse\n style={{ width: '100%' }}\n defaultActiveKey={items.map((item) => item.key)}\n items={items}\n />\n );\n};\n"],"names":["Text","Typography","innerWidth","window","SideEffectsOnlyImportsAlertCollapse","props","data","extraData","cwd","items","d","module","connections","modulePath","beautifyPath","ChildComponent","styles","Overview","Space","Icon","TotalSizeSvg","IdeIcons","conn","idx","Tag","LabelComponent","Set","c","Collapse","item"],"mappings":";;;;;;;;AAYA,MAAM,EAAEA,MAAAA,IAAI,EAAE,GAAGC;AACjB,MAAM,EAAEC,YAAAA,6CAAU,EAAE,GAAGC;AAEhB,MAAMC,sCAAsC,CAACC;IAIlD,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGF;IAC5B,MAAM,EAAEG,GAAG,EAAE,GAAGD;IAEhB,MAAME,QAAQH,KAAK,GAAG,CAAC,CAACI;QACtB,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAC3BF;QAEF,MAAMG,aAAaC,aAAaH,OAAO,IAAI,EAAEH;QAE7C,MAAMO,iBAAiB,IACd,WAAP,GACE,IAAC;gBAAI,WAAWC,gBAAAA,iBAAwB;0BACtC,kBAACC,UAAQA;oBACP,OAAO;wBAAE,iBAAiB;oBAAO;oBACjC,qBACE,KAACC,OAAKA;wBAAC,OAAM;;0CACX,IAACC,OAAIA;gCAAC,OAAO;oCAAE,UAAU;gCAAO;gCAAG,WAAWC;;0CAC9C,KAACpB,MAAIA;gCAAC,OAAO;oCAAE,OAAOE,gDAAa,OAAO,MAAM;gCAAI;;oCAAG;oCAC7C;kDACR,IAACF,MAAIA;wCACH,OAAO;4CACL,UAAU;4CACV,OAAO;4CACP,YAAY;wCACd;kDAECa;;;;0CAGL,IAACQ,UAAQA;gCAAC,MAAMV,OAAO,IAAI;;;;oBAG/B,2BACE,KAAC;wBAAI,WAAWK,gBAAAA,aAAoB;;0CAClC,IAAC;gCACC,OAAO;oCACL,cAAc;oCACd,YAAY;oCACZ,OAAO;gCACT;0CACD;;4BAGAJ,YAAY,GAAG,CAAC,CAACU,MAAMC,MAAAA,WAAAA,GACtB,KAAC;oCAAc,OAAO;wCAAE,SAAS;wCAAQ,cAAc;oCAAE;;sDACvD,IAAC;4CAAI,WAAWP,gBAAAA,SAAgB;sDAAE;;sDAClC,KAAC;4CAAI,WAAWA,gBAAAA,aAAoB;;8DAClC,IAAC;oDAAK,WAAWA,gBAAAA,IAAW;8DAAGM,KAAK,WAAW;;8DAC/C,IAACE,KAAGA;oDACF,OAAO;wDACL,YAAY;wDACZ,iBAAiB;wDACjB,cAAc;wDACd,UAAU;oDACZ;8DAECF,KAAK,cAAc;;;;;mCAZhBC;;;;;QAwBxB,OAAO;YACL,KAAKV;YACL,OAAO,WAAP,GACE,IAACY,gBAAcA;gBACb,qBACE,IAACP,OAAKA;oBAAC,MAAM;oBAAG,OAAM;8BACpB,kBAACM,KAAGA;wBAAC,OAAO;4BAAE,iBAAiB;4BAAW,cAAc;wBAAM;kCAC5D,kBAAC;4BAAK,WAAWR,gBAAAA,OAAc;sCAAGH;;;;gBAIxC,aAAa,CAAC,yCAAyC,EAAE,IAAIa,IAAId,YAAY,GAAG,CAAC,CAACe,IAAMA,EAAE,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;;YAGhI,UAAU,WAAV,GAAU,IAACZ,gBAAAA,CAAAA;QACb;IACF;IAEA,OAAO,WAAP,GACE,IAACa,UAAQA;QACP,OAAO;YAAE,OAAO;QAAO;QACvB,kBAAkBnB,MAAM,GAAG,CAAC,CAACoB,OAASA,KAAK,GAAG;QAC9C,OAAOpB;;AAGb"}
@@ -12,30 +12,9 @@ import source_size from "../../common/svg/source-size.mjs";
12
12
  import total_size from "../../common/svg/total-size.mjs";
13
13
  import svg_version from "../../common/svg/version.mjs";
14
14
  import collapse_module from "./collapse.module.mjs";
15
- const { Paragraph, Text } = Typography;
15
+ import { LabelComponent } from "./collapse-shared.mjs";
16
+ const { Paragraph: Paragraph, Text: Text } = Typography;
16
17
  const { innerWidth: collapse_innerWidth } = window;
17
- const LabelComponent = (props)=>{
18
- const { title, description, extra } = props;
19
- return /*#__PURE__*/ jsxs("div", {
20
- className: collapse_module.label,
21
- children: [
22
- /*#__PURE__*/ jsxs("div", {
23
- className: collapse_module.labelContent,
24
- children: [
25
- /*#__PURE__*/ jsx("div", {
26
- children: title
27
- }),
28
- /*#__PURE__*/ jsx("div", {
29
- children: description
30
- })
31
- ]
32
- }),
33
- /*#__PURE__*/ jsx("div", {
34
- children: extra
35
- })
36
- ]
37
- });
38
- };
39
18
  const AlertCollapse = (props)=>{
40
19
  const { data, extraData } = props;
41
20
  const items = data.map((d)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"components/Alerts/collapse.mjs","sources":["../../../src/components/Alerts/collapse.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { Collapse, Typography, Divider, Space, Tabs, Tag, Tooltip } from 'antd';\nimport Icon from '@ant-design/icons';\nimport { sumBy } from 'es-toolkit/compat';\n\nimport Overview from '../Overall/overview';\nimport { TextDrawer } from '../TextDrawer';\nimport { Title } from '../Title';\nimport { Size } from '../../constants';\nimport { formatSize } from '../../utils';\nimport BundleSizeSvg from '../../common/svg/bundle-size.svg';\nimport SourceSizeSvg from '../../common/svg/source-size.svg';\nimport TotalSizeSvg from '../../common/svg/total-size.svg';\nimport VersionSvg from '../../common/svg/version.svg';\n\nimport type { Rule } from '@rsdoctor/types';\n\nimport type { AlertProps } from '../Alert/types';\n\nimport styles from './collapse.module.scss';\n\nconst { Paragraph, Text } = Typography;\nconst { innerWidth } = window;\n\nconst LabelComponent = (props: {\n title: string | ReactNode;\n description: string;\n extra: ReactNode;\n}) => {\n const { title, description, extra } = props;\n return (\n <div className={styles.label}>\n <div className={styles.labelContent}>\n <div>{title}</div>\n <div>{description}</div>\n </div>\n <div>{extra}</div>\n </div>\n );\n};\n\nexport const AlertCollapse = (props: {\n data: Array<Rule.RuleStoreDataItem>;\n extraData: Omit<AlertProps, 'data'>;\n}) => {\n const { data, extraData } = props;\n\n const items = data\n .map((d) => {\n const data = d as Rule.PackageRelationDiffRuleStoreData;\n const { packages } = data;\n const totalSize = sumBy(packages, (e) => e.targetSize.sourceSize);\n\n return {\n totalSize,\n data,\n };\n })\n .sort((a, b) => {\n return b.totalSize - a.totalSize;\n })\n .map(({ data, totalSize }) => {\n const { packages } = data;\n const totalSizeStr = formatSize(totalSize);\n const { name } = packages.find((e) => !!e.target.name)!.target;\n const versions = packages.map((item) => item.target.version);\n\n const ChildComponent = () => {\n return packages.map((pkg, idx) => {\n const version = pkg.target.version;\n const root = pkg.target.root;\n const sizeStr = formatSize(pkg.targetSize.sourceSize);\n const parsedSizeStr = pkg.targetSize.parsedSize\n ? formatSize(pkg.targetSize.parsedSize)\n : null;\n\n return (\n <div className={styles.collapseContainer}>\n <Overview\n style={{ backgroundColor: '#fff' }}\n title={\n <Text\n style={{ width: innerWidth > 1500 ? 900 : 700 }}\n ellipsis={{\n tooltip: root,\n }}\n >\n {root}\n </Text>\n }\n description={\n <div className={styles.collapseChild}>\n <div>\n <div className={styles.attribute}>Version</div>\n <div className={styles.iconContainer}>\n <Icon\n style={{ fontSize: '18px' }}\n component={VersionSvg}\n />\n <span className={styles.data}>v{version}</span>\n </div>\n </div>\n <div>\n <div className={styles.attribute}>Source size</div>\n <div className={styles.iconContainer}>\n <Icon\n style={{ fontSize: '18px' }}\n component={SourceSizeSvg}\n />\n <span className={styles.data}>{sizeStr}</span>\n </div>\n </div>\n <div>\n <div className={styles.attribute}>Bundle size</div>\n <div className={styles.iconContainer}>\n <Icon\n style={{ fontSize: '18px' }}\n component={BundleSizeSvg}\n />\n <Tooltip\n title={`The bundle size of \"${name}\" is ${sizeStr}, this is after bundled, concatenated module cannot get bundled size. `}\n >\n <span className={styles.data}>\n {parsedSizeStr || 'CONCATENATED'}\n </span>\n </Tooltip>\n </div>\n </div>\n </div>\n }\n icon={\n <Paragraph\n style={{ position: 'relative', top: '-10px' }}\n copyable={{ text: root }}\n />\n }\n />\n {idx !== packages.length - 1 ? (\n <Divider style={{ margin: '10px 0' }} />\n ) : null}\n </div>\n );\n });\n };\n\n return {\n key: name,\n label: (\n <LabelComponent\n title={\n <Tag style={{ backgroundColor: '#EAEDF1', borderRadius: '2px' }}>\n <span className={styles.pkgName}>{name}</span>\n </Tag>\n }\n description={`${packages.length} versions was found`}\n extra={\n <div className={styles.extraContainer}>\n <div className={styles.iconContainer}>\n <Icon style={{ fontSize: '18px' }} component={TotalSizeSvg} />\n <span className={styles.data}>{totalSizeStr}</span>\n </div>\n {packages && packages.length > 0 ? (\n <TextDrawer\n text=\"Show Relations\"\n buttonProps={{ size: 'small' }}\n drawerProps={{ title: data.title, width: '60%' }}\n >\n <Space\n direction=\"vertical\"\n className=\"alert-space\"\n style={{ width: '100%' }}\n >\n <Space\n style={{\n marginBottom: Size.BasePadding / 2,\n width: '100%',\n }}\n >\n <Title\n text={\n <Tag style={{ backgroundColor: '#EAEDF1' }}>\n {name}\n </Tag>\n }\n upperFirst={false}\n />\n <Typography.Text strong>\n {versions.length}\n </Typography.Text>\n <Typography.Text> versions found</Typography.Text>\n </Space>\n <Tabs\n size=\"middle\"\n items={\n packages.map((pkg) => {\n const { target, targetSize } = pkg;\n return {\n label: (\n <Space className={styles.drawerLabelTitle}>\n <div>v{target.version}</div>\n <Tag className={styles.drawerLabelSize}>\n {formatSize(targetSize.sourceSize)}\n </Tag>\n </Space>\n ),\n key: `${target.root}${target.name}${target.version}`,\n children:\n extraData.getPackageRelationContentComponent({\n data,\n package: pkg,\n }),\n };\n })!\n }\n />\n </Space>\n </TextDrawer>\n ) : null}\n </div>\n }\n />\n ),\n children: <ChildComponent />,\n };\n });\n\n return (\n <Collapse\n style={{ width: '100%' }}\n defaultActiveKey={['E1001']}\n items={items}\n />\n );\n};\n"],"names":["Paragraph","Text","Typography","innerWidth","window","LabelComponent","props","title","description","extra","styles","AlertCollapse","data","extraData","items","d","packages","totalSize","sumBy","e","a","b","totalSizeStr","formatSize","name","versions","item","ChildComponent","pkg","idx","version","root","sizeStr","parsedSizeStr","Overview","Icon","VersionSvg","SourceSizeSvg","BundleSizeSvg","Tooltip","Divider","Tag","TotalSizeSvg","TextDrawer","Space","Size","Title","Tabs","target","targetSize","Collapse"],"mappings":"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"}
1
+ {"version":3,"file":"components/Alerts/collapse.mjs","sources":["../../../src/components/Alerts/collapse.tsx"],"sourcesContent":["import { Collapse, Typography, Divider, Space, Tabs, Tag, Tooltip } from 'antd';\nimport Icon from '@ant-design/icons';\nimport { sumBy } from 'es-toolkit/compat';\n\nimport Overview from '../Overall/overview';\nimport { TextDrawer } from '../TextDrawer';\nimport { Title } from '../Title';\nimport { Size } from '../../constants';\nimport { formatSize } from '../../utils';\nimport BundleSizeSvg from '../../common/svg/bundle-size.svg';\nimport SourceSizeSvg from '../../common/svg/source-size.svg';\nimport TotalSizeSvg from '../../common/svg/total-size.svg';\nimport VersionSvg from '../../common/svg/version.svg';\n\nimport type { Rule } from '@rsdoctor/types';\n\nimport type { AlertProps } from '../Alert/types';\n\nimport styles from './collapse.module.scss';\nimport { LabelComponent } from './collapse-shared';\n\nconst { Paragraph, Text } = Typography;\nconst { innerWidth } = window;\n\nexport const AlertCollapse = (props: {\n data: Array<Rule.RuleStoreDataItem>;\n extraData: Omit<AlertProps, 'data'>;\n}) => {\n const { data, extraData } = props;\n\n const items = data\n .map((d) => {\n const data = d as Rule.PackageRelationDiffRuleStoreData;\n const { packages } = data;\n const totalSize = sumBy(packages, (e) => e.targetSize.sourceSize);\n\n return {\n totalSize,\n data,\n };\n })\n .sort((a, b) => {\n return b.totalSize - a.totalSize;\n })\n .map(({ data, totalSize }) => {\n const { packages } = data;\n const totalSizeStr = formatSize(totalSize);\n const { name } = packages.find((e) => !!e.target.name)!.target;\n const versions = packages.map((item) => item.target.version);\n\n const ChildComponent = () => {\n return packages.map((pkg, idx) => {\n const version = pkg.target.version;\n const root = pkg.target.root;\n const sizeStr = formatSize(pkg.targetSize.sourceSize);\n const parsedSizeStr = pkg.targetSize.parsedSize\n ? formatSize(pkg.targetSize.parsedSize)\n : null;\n\n return (\n <div className={styles.collapseContainer}>\n <Overview\n style={{ backgroundColor: '#fff' }}\n title={\n <Text\n style={{ width: innerWidth > 1500 ? 900 : 700 }}\n ellipsis={{\n tooltip: root,\n }}\n >\n {root}\n </Text>\n }\n description={\n <div className={styles.collapseChild}>\n <div>\n <div className={styles.attribute}>Version</div>\n <div className={styles.iconContainer}>\n <Icon\n style={{ fontSize: '18px' }}\n component={VersionSvg}\n />\n <span className={styles.data}>v{version}</span>\n </div>\n </div>\n <div>\n <div className={styles.attribute}>Source size</div>\n <div className={styles.iconContainer}>\n <Icon\n style={{ fontSize: '18px' }}\n component={SourceSizeSvg}\n />\n <span className={styles.data}>{sizeStr}</span>\n </div>\n </div>\n <div>\n <div className={styles.attribute}>Bundle size</div>\n <div className={styles.iconContainer}>\n <Icon\n style={{ fontSize: '18px' }}\n component={BundleSizeSvg}\n />\n <Tooltip\n title={`The bundle size of \"${name}\" is ${sizeStr}, this is after bundled, concatenated module cannot get bundled size. `}\n >\n <span className={styles.data}>\n {parsedSizeStr || 'CONCATENATED'}\n </span>\n </Tooltip>\n </div>\n </div>\n </div>\n }\n icon={\n <Paragraph\n style={{ position: 'relative', top: '-10px' }}\n copyable={{ text: root }}\n />\n }\n />\n {idx !== packages.length - 1 ? (\n <Divider style={{ margin: '10px 0' }} />\n ) : null}\n </div>\n );\n });\n };\n\n return {\n key: name,\n label: (\n <LabelComponent\n title={\n <Tag style={{ backgroundColor: '#EAEDF1', borderRadius: '2px' }}>\n <span className={styles.pkgName}>{name}</span>\n </Tag>\n }\n description={`${packages.length} versions was found`}\n extra={\n <div className={styles.extraContainer}>\n <div className={styles.iconContainer}>\n <Icon style={{ fontSize: '18px' }} component={TotalSizeSvg} />\n <span className={styles.data}>{totalSizeStr}</span>\n </div>\n {packages && packages.length > 0 ? (\n <TextDrawer\n text=\"Show Relations\"\n buttonProps={{ size: 'small' }}\n drawerProps={{ title: data.title, width: '60%' }}\n >\n <Space\n direction=\"vertical\"\n className=\"alert-space\"\n style={{ width: '100%' }}\n >\n <Space\n style={{\n marginBottom: Size.BasePadding / 2,\n width: '100%',\n }}\n >\n <Title\n text={\n <Tag style={{ backgroundColor: '#EAEDF1' }}>\n {name}\n </Tag>\n }\n upperFirst={false}\n />\n <Typography.Text strong>\n {versions.length}\n </Typography.Text>\n <Typography.Text> versions found</Typography.Text>\n </Space>\n <Tabs\n size=\"middle\"\n items={\n packages.map((pkg) => {\n const { target, targetSize } = pkg;\n return {\n label: (\n <Space className={styles.drawerLabelTitle}>\n <div>v{target.version}</div>\n <Tag className={styles.drawerLabelSize}>\n {formatSize(targetSize.sourceSize)}\n </Tag>\n </Space>\n ),\n key: `${target.root}${target.name}${target.version}`,\n children:\n extraData.getPackageRelationContentComponent({\n data,\n package: pkg,\n }),\n };\n })!\n }\n />\n </Space>\n </TextDrawer>\n ) : null}\n </div>\n }\n />\n ),\n children: <ChildComponent />,\n };\n });\n\n return (\n <Collapse\n style={{ width: '100%' }}\n defaultActiveKey={['E1001']}\n items={items}\n />\n );\n};\n"],"names":["Paragraph","Text","Typography","innerWidth","window","AlertCollapse","props","data","extraData","items","d","packages","totalSize","sumBy","e","a","b","totalSizeStr","formatSize","name","versions","item","ChildComponent","pkg","idx","version","root","sizeStr","parsedSizeStr","styles","Overview","Icon","VersionSvg","SourceSizeSvg","BundleSizeSvg","Tooltip","Divider","LabelComponent","Tag","TotalSizeSvg","TextDrawer","Space","Size","Title","Tabs","target","targetSize","Collapse"],"mappings":";;;;;;;;;;;;;;;AAqBA,MAAM,EAAEA,WAAAA,SAAS,EAAEC,MAAAA,IAAI,EAAE,GAAGC;AAC5B,MAAM,EAAEC,YAAAA,mBAAU,EAAE,GAAGC;AAEhB,MAAMC,gBAAgB,CAACC;IAI5B,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGF;IAE5B,MAAMG,QAAQF,KACX,GAAG,CAAC,CAACG;QACJ,MAAMH,OAAOG;QACb,MAAM,EAAEC,QAAQ,EAAE,GAAGJ;QACrB,MAAMK,YAAYC,MAAMF,UAAU,CAACG,IAAMA,EAAE,UAAU,CAAC,UAAU;QAEhE,OAAO;YACLF;YACAL;QACF;IACF,GACC,IAAI,CAAC,CAACQ,GAAGC,IACDA,EAAE,SAAS,GAAGD,EAAE,SAAS,EAEjC,GAAG,CAAC,CAAC,EAAER,IAAI,EAAEK,SAAS,EAAE;QACvB,MAAM,EAAED,QAAQ,EAAE,GAAGJ;QACrB,MAAMU,eAAeC,WAAWN;QAChC,MAAM,EAAEO,IAAI,EAAE,GAAGR,SAAS,IAAI,CAAC,CAACG,IAAM,CAAC,CAACA,EAAE,MAAM,CAAC,IAAI,EAAG,MAAM;QAC9D,MAAMM,WAAWT,SAAS,GAAG,CAAC,CAACU,OAASA,KAAK,MAAM,CAAC,OAAO;QAE3D,MAAMC,iBAAiB,IACdX,SAAS,GAAG,CAAC,CAACY,KAAKC;gBACxB,MAAMC,UAAUF,IAAI,MAAM,CAAC,OAAO;gBAClC,MAAMG,OAAOH,IAAI,MAAM,CAAC,IAAI;gBAC5B,MAAMI,UAAUT,WAAWK,IAAI,UAAU,CAAC,UAAU;gBACpD,MAAMK,gBAAgBL,IAAI,UAAU,CAAC,UAAU,GAC3CL,WAAWK,IAAI,UAAU,CAAC,UAAU,IACpC;gBAEJ,OAAO,WAAP,GACE,KAAC;oBAAI,WAAWM,gBAAAA,iBAAwB;;sCACtC,IAACC,UAAQA;4BACP,OAAO;gCAAE,iBAAiB;4BAAO;4BACjC,qBACE,IAAC7B,MAAIA;gCACH,OAAO;oCAAE,OAAOE,sBAAa,OAAO,MAAM;gCAAI;gCAC9C,UAAU;oCACR,SAASuB;gCACX;0CAECA;;4BAGL,2BACE,KAAC;gCAAI,WAAWG,gBAAAA,aAAoB;;kDAClC,KAAC;;0DACC,IAAC;gDAAI,WAAWA,gBAAAA,SAAgB;0DAAE;;0DAClC,KAAC;gDAAI,WAAWA,gBAAAA,aAAoB;;kEAClC,IAACE,OAAIA;wDACH,OAAO;4DAAE,UAAU;wDAAO;wDAC1B,WAAWC;;kEAEb,KAAC;wDAAK,WAAWH,gBAAAA,IAAW;;4DAAE;4DAAEJ;;;;;;;kDAGpC,KAAC;;0DACC,IAAC;gDAAI,WAAWI,gBAAAA,SAAgB;0DAAE;;0DAClC,KAAC;gDAAI,WAAWA,gBAAAA,aAAoB;;kEAClC,IAACE,OAAIA;wDACH,OAAO;4DAAE,UAAU;wDAAO;wDAC1B,WAAWE;;kEAEb,IAAC;wDAAK,WAAWJ,gBAAAA,IAAW;kEAAGF;;;;;;kDAGnC,KAAC;;0DACC,IAAC;gDAAI,WAAWE,gBAAAA,SAAgB;0DAAE;;0DAClC,KAAC;gDAAI,WAAWA,gBAAAA,aAAoB;;kEAClC,IAACE,OAAIA;wDACH,OAAO;4DAAE,UAAU;wDAAO;wDAC1B,WAAWG;;kEAEb,IAACC,SAAOA;wDACN,OAAO,CAAC,oBAAoB,EAAEhB,KAAK,KAAK,EAAEQ,QAAQ,sEAAsE,CAAC;kEAEzH,kBAAC;4DAAK,WAAWE,gBAAAA,IAAW;sEACzBD,iBAAiB;;;;;;;;;4BAO9B,oBACE,IAAC5B,WAASA;gCACR,OAAO;oCAAE,UAAU;oCAAY,KAAK;gCAAQ;gCAC5C,UAAU;oCAAE,MAAM0B;gCAAK;;;wBAI5BF,QAAQb,SAAS,MAAM,GAAG,IAAI,WAAJ,GACzB,IAACyB,SAAOA;4BAAC,OAAO;gCAAE,QAAQ;4BAAS;6BACjC;;;YAGV;QAGF,OAAO;YACL,KAAKjB;YACL,OAAO,WAAP,GACE,IAACkB,gBAAcA;gBACb,qBACE,IAACC,KAAGA;oBAAC,OAAO;wBAAE,iBAAiB;wBAAW,cAAc;oBAAM;8BAC5D,kBAAC;wBAAK,WAAWT,gBAAAA,OAAc;kCAAGV;;;gBAGtC,aAAa,GAAGR,SAAS,MAAM,CAAC,mBAAmB,CAAC;gBACpD,qBACE,KAAC;oBAAI,WAAWkB,gBAAAA,cAAqB;;sCACnC,KAAC;4BAAI,WAAWA,gBAAAA,aAAoB;;8CAClC,IAACE,OAAIA;oCAAC,OAAO;wCAAE,UAAU;oCAAO;oCAAG,WAAWQ;;8CAC9C,IAAC;oCAAK,WAAWV,gBAAAA,IAAW;8CAAGZ;;;;wBAEhCN,YAAYA,SAAS,MAAM,GAAG,IAAI,WAAJ,GAC7B,IAAC6B,YAAUA;4BACT,MAAK;4BACL,aAAa;gCAAE,MAAM;4BAAQ;4BAC7B,aAAa;gCAAE,OAAOjC,KAAK,KAAK;gCAAE,OAAO;4BAAM;sCAE/C,mBAACkC,OAAKA;gCACJ,WAAU;gCACV,WAAU;gCACV,OAAO;oCAAE,OAAO;gCAAO;;kDAEvB,KAACA,OAAKA;wCACJ,OAAO;4CACL,cAAcC,KAAK,WAAW,GAAG;4CACjC,OAAO;wCACT;;0DAEA,IAACC,OAAKA;gDACJ,oBACE,IAACL,KAAGA;oDAAC,OAAO;wDAAE,iBAAiB;oDAAU;8DACtCnB;;gDAGL,YAAY;;0DAEd,IAACjB,WAAW,IAAI;gDAAC,QAAM;0DACpBkB,SAAS,MAAM;;0DAElB,IAAClB,WAAW,IAAI;0DAAC;;;;kDAEnB,IAAC0C,MAAIA;wCACH,MAAK;wCACL,OACEjC,SAAS,GAAG,CAAC,CAACY;4CACZ,MAAM,EAAEsB,MAAM,EAAEC,UAAU,EAAE,GAAGvB;4CAC/B,OAAO;gDACL,OAAO,WAAP,GACE,KAACkB,OAAKA;oDAAC,WAAWZ,gBAAAA,gBAAuB;;sEACvC,KAAC;;gEAAI;gEAAEgB,OAAO,OAAO;;;sEACrB,IAACP,KAAGA;4DAAC,WAAWT,gBAAAA,eAAsB;sEACnCX,WAAW4B,WAAW,UAAU;;;;gDAIvC,KAAK,GAAGD,OAAO,IAAI,GAAGA,OAAO,IAAI,GAAGA,OAAO,OAAO,EAAE;gDACpD,UACErC,UAAU,kCAAkC,CAAC;oDAC3CD;oDACA,SAASgB;gDACX;4CACJ;wCACF;;;;6BAKN;;;;YAKZ,UAAU,WAAV,GAAU,IAACD,gBAAAA,CAAAA;QACb;IACF;IAEF,OAAO,WAAP,GACE,IAACyB,UAAQA;QACP,OAAO;YAAE,OAAO;QAAO;QACvB,kBAAkB;YAAC;SAAQ;QAC3B,OAAOtC;;AAGb"}
@@ -13,6 +13,6 @@ const collapse_module = {
13
13
  data: "data-po89g7",
14
14
  pkgName: "pkgName-vA16cZ"
15
15
  };
16
- export { collapse_module as default };
16
+ export default collapse_module;
17
17
 
18
18
  //# sourceMappingURL=collapse.module.mjs.map
@@ -2,6 +2,6 @@ import "./list_module.css";
2
2
  const list_module = {
3
3
  description: "description-h4sYv3"
4
4
  };
5
- export { list_module as default };
5
+ export default list_module;
6
6
 
7
7
  //# sourceMappingURL=list.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/Alerts/overlay.mjs","sources":["../../../src/components/Alerts/overlay.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { SDK } from '@rsdoctor/types';\nimport {\n Alert,\n Button,\n Col,\n Collapse,\n Row,\n Tag,\n Typography,\n Badge,\n} from 'antd';\nimport {\n BugOutlined,\n CloseCircleOutlined,\n DownOutlined,\n RightOutlined,\n} from '@ant-design/icons';\nimport Dialog from 'rc-dialog';\nimport Ansi from 'ansi-to-react';\n\nimport { withServerAPI } from '../Manifest';\nimport { Size, Color } from '../../constants';\n\nimport styles from './overlay.module.scss';\n\nimport 'rc-dialog/assets/index.css';\n\nfunction getOverlayAlertsMessage(\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>,\n) {\n let warns = 0;\n let errors = 0;\n\n alerts.forEach((item) => {\n if (item.level === 'warn') {\n warns++;\n } else {\n errors++;\n }\n });\n\n const suffixText =\n warns !== 0 && errors !== 0 ? 'problems' : warns === 0 ? 'errors' : 'warns';\n\n const fontSize = 16;\n\n return {\n title: `${alerts.length} compiled ${suffixText}`,\n detail: (\n <Typography.Text strong style={{ color: '#fff', marginBottom: 0 }}>\n <Typography.Text style={{ color: 'inherit', fontSize }}>\n Compiled with\n </Typography.Text>\n <Typography.Text strong style={{ color: Color.Red, fontSize }}>\n {' '}\n {errors} {errors === 1 ? 'error' : 'errors'}{' '}\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit', fontSize }}>\n and\n </Typography.Text>\n <Typography.Text strong style={{ color: Color.Yellow, fontSize }}>\n {' '}\n {warns} {warns === 1 ? 'warning' : 'warnings'}\n </Typography.Text>\n </Typography.Text>\n ),\n warns,\n errors,\n };\n}\n\nexport const OverlayAlertsModal: React.FC<{\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>;\n open: boolean;\n onClose(): void;\n}> = ({ alerts = [], open, onClose }) => {\n if (!alerts.length) return null;\n\n return (\n <Dialog\n visible={open}\n onClose={() => onClose()}\n style={{ width: '100%', height: '100%', margin: 0, zIndex: 1000 }}\n closable={false}\n modalRender={(e) => {\n return React.cloneElement(e as React.ReactElement, {\n style: {\n background: 'rgba(0, 0, 0, 0.7)',\n color: '#fff',\n height: '100%',\n overflow: 'scroll',\n borderRadius: 0,\n },\n });\n }}\n >\n <Row justify=\"space-between\" align=\"middle\">\n {getOverlayAlertsMessage(alerts).detail}\n <Button\n onClick={() => onClose()}\n type=\"text\"\n style={{ color: '#fff' }}\n size=\"large\"\n icon={<CloseCircleOutlined />}\n ></Button>\n </Row>\n <Row gutter={[0, Size.BasePadding]}>\n {alerts.map((e) => {\n return (\n <Col\n span={24}\n key={e.id}\n style={{\n whiteSpace: 'pre-wrap',\n lineHeight: `16px`,\n fontSize: 14,\n }}\n >\n <Collapse\n ghost\n style={{ background: '#000' }}\n defaultActiveKey={[e.id]}\n expandIcon={(e) => {\n return e.isActive ? (\n <DownOutlined style={{ color: '#fff' }} />\n ) : (\n <RightOutlined style={{ color: '#fff' }} />\n );\n }}\n >\n <Collapse.Panel\n header={\n <div style={{ color: '#fff' }}>\n {e.level === 'warn' ? (\n <Tag color={Color.Yellow}>WARNING</Tag>\n ) : (\n <Tag color={Color.Red}>ERROR</Tag>\n )}\n <Ansi>{e.description || e.title}</Ansi>\n </div>\n }\n key={e.id}\n >\n <div style={{ color: '#fff' }}>\n <Ansi>{e.stack}</Ansi>\n </div>\n </Collapse.Panel>\n </Collapse>\n </Col>\n );\n })}\n </Row>\n </Dialog>\n );\n};\n\nexport const OverlayAlertsTips: React.FC<{\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>;\n defaultOpen?: boolean;\n}> = ({ alerts = [], defaultOpen = alerts.length > 0 }) => {\n if (!alerts.length) return null;\n\n const [open, setOpen] = useState(defaultOpen);\n\n return (\n <React.Fragment>\n <Alert\n banner\n message={React.cloneElement(getOverlayAlertsMessage(alerts).detail, {\n style: {\n color: '#000',\n },\n })}\n icon={<BugOutlined />}\n action={\n <Button onClick={() => setOpen(true)} size=\"small\">\n More\n </Button>\n }\n ></Alert>\n <OverlayAlertsModal\n alerts={alerts}\n open={open}\n onClose={() => setOpen(false)}\n />\n </React.Fragment>\n );\n};\n\nexport const OverlayAlertsButton: React.FC<{\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>;\n}> = ({ alerts = [] }) => {\n if (!alerts.length) return null;\n\n const [open, setOpen] = useState(false);\n\n return (\n <div className={styles.container}>\n <div onClick={() => setOpen(!open)} className={styles.badgeContainer}>\n <Badge count={alerts.length} size=\"small\">\n <BugOutlined style={{ fontSize: 15 }} />\n </Badge>\n </div>\n <OverlayAlertsModal\n alerts={alerts}\n open={open}\n onClose={() => setOpen(false)}\n />\n </div>\n );\n};\n\nexport const OverlayAlertsWithButton = withServerAPI({\n api: SDK.ServerAPI.API.GetOverlayAlerts,\n Component: OverlayAlertsButton,\n responsePropName: 'alerts',\n fallbackComponent: () => null,\n});\n\nexport const OverlayAlertsWithTips = withServerAPI({\n api: SDK.ServerAPI.API.GetOverlayAlerts,\n Component: OverlayAlertsTips,\n responsePropName: 'alerts',\n fallbackComponent: () => null,\n});\n"],"names":["getOverlayAlertsMessage","alerts","warns","errors","item","suffixText","fontSize","Typography","Color","OverlayAlertsModal","open","onClose","Dialog","e","React","Row","Button","CloseCircleOutlined","Size","Col","Collapse","DownOutlined","RightOutlined","Tag","Ansi","OverlayAlertsTips","defaultOpen","setOpen","useState","Alert","BugOutlined","OverlayAlertsButton","styles","Badge","OverlayAlertsWithButton","withServerAPI","SDK","OverlayAlertsWithTips"],"mappings":"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"}
1
+ {"version":3,"file":"components/Alerts/overlay.mjs","sources":["../../../src/components/Alerts/overlay.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { SDK } from '@rsdoctor/types';\nimport {\n Alert,\n Button,\n Col,\n Collapse,\n Row,\n Tag,\n Typography,\n Badge,\n} from 'antd';\nimport {\n BugOutlined,\n CloseCircleOutlined,\n DownOutlined,\n RightOutlined,\n} from '@ant-design/icons';\nimport Dialog from 'rc-dialog';\nimport Ansi from 'ansi-to-react';\n\nimport { withServerAPI } from '../Manifest';\nimport { Size, Color } from '../../constants';\n\nimport styles from './overlay.module.scss';\n\nimport 'rc-dialog/assets/index.css';\n\nfunction getOverlayAlertsMessage(\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>,\n) {\n let warns = 0;\n let errors = 0;\n\n alerts.forEach((item) => {\n if (item.level === 'warn') {\n warns++;\n } else {\n errors++;\n }\n });\n\n const suffixText =\n warns !== 0 && errors !== 0 ? 'problems' : warns === 0 ? 'errors' : 'warns';\n\n const fontSize = 16;\n\n return {\n title: `${alerts.length} compiled ${suffixText}`,\n detail: (\n <Typography.Text strong style={{ color: '#fff', marginBottom: 0 }}>\n <Typography.Text style={{ color: 'inherit', fontSize }}>\n Compiled with\n </Typography.Text>\n <Typography.Text strong style={{ color: Color.Red, fontSize }}>\n {' '}\n {errors} {errors === 1 ? 'error' : 'errors'}{' '}\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit', fontSize }}>\n and\n </Typography.Text>\n <Typography.Text strong style={{ color: Color.Yellow, fontSize }}>\n {' '}\n {warns} {warns === 1 ? 'warning' : 'warnings'}\n </Typography.Text>\n </Typography.Text>\n ),\n warns,\n errors,\n };\n}\n\nexport const OverlayAlertsModal: React.FC<{\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>;\n open: boolean;\n onClose(): void;\n}> = ({ alerts = [], open, onClose }) => {\n if (!alerts.length) return null;\n\n return (\n <Dialog\n visible={open}\n onClose={() => onClose()}\n style={{ width: '100%', height: '100%', margin: 0, zIndex: 1000 }}\n closable={false}\n modalRender={(e) => {\n return React.cloneElement(e as React.ReactElement, {\n style: {\n background: 'rgba(0, 0, 0, 0.7)',\n color: '#fff',\n height: '100%',\n overflow: 'scroll',\n borderRadius: 0,\n },\n });\n }}\n >\n <Row justify=\"space-between\" align=\"middle\">\n {getOverlayAlertsMessage(alerts).detail}\n <Button\n onClick={() => onClose()}\n type=\"text\"\n style={{ color: '#fff' }}\n size=\"large\"\n icon={<CloseCircleOutlined />}\n ></Button>\n </Row>\n <Row gutter={[0, Size.BasePadding]}>\n {alerts.map((e) => {\n return (\n <Col\n span={24}\n key={e.id}\n style={{\n whiteSpace: 'pre-wrap',\n lineHeight: `16px`,\n fontSize: 14,\n }}\n >\n <Collapse\n ghost\n style={{ background: '#000' }}\n defaultActiveKey={[e.id]}\n expandIcon={(e) => {\n return e.isActive ? (\n <DownOutlined style={{ color: '#fff' }} />\n ) : (\n <RightOutlined style={{ color: '#fff' }} />\n );\n }}\n >\n <Collapse.Panel\n header={\n <div style={{ color: '#fff' }}>\n {e.level === 'warn' ? (\n <Tag color={Color.Yellow}>WARNING</Tag>\n ) : (\n <Tag color={Color.Red}>ERROR</Tag>\n )}\n <Ansi>{e.description || e.title}</Ansi>\n </div>\n }\n key={e.id}\n >\n <div style={{ color: '#fff' }}>\n <Ansi>{e.stack}</Ansi>\n </div>\n </Collapse.Panel>\n </Collapse>\n </Col>\n );\n })}\n </Row>\n </Dialog>\n );\n};\n\nexport const OverlayAlertsTips: React.FC<{\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>;\n defaultOpen?: boolean;\n}> = ({ alerts = [], defaultOpen = alerts.length > 0 }) => {\n if (!alerts.length) return null;\n\n const [open, setOpen] = useState(defaultOpen);\n\n return (\n <React.Fragment>\n <Alert\n banner\n message={React.cloneElement(getOverlayAlertsMessage(alerts).detail, {\n style: {\n color: '#000',\n },\n })}\n icon={<BugOutlined />}\n action={\n <Button onClick={() => setOpen(true)} size=\"small\">\n More\n </Button>\n }\n ></Alert>\n <OverlayAlertsModal\n alerts={alerts}\n open={open}\n onClose={() => setOpen(false)}\n />\n </React.Fragment>\n );\n};\n\nexport const OverlayAlertsButton: React.FC<{\n alerts: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetOverlayAlerts>;\n}> = ({ alerts = [] }) => {\n if (!alerts.length) return null;\n\n const [open, setOpen] = useState(false);\n\n return (\n <div className={styles.container}>\n <div onClick={() => setOpen(!open)} className={styles.badgeContainer}>\n <Badge count={alerts.length} size=\"small\">\n <BugOutlined style={{ fontSize: 15 }} />\n </Badge>\n </div>\n <OverlayAlertsModal\n alerts={alerts}\n open={open}\n onClose={() => setOpen(false)}\n />\n </div>\n );\n};\n\nexport const OverlayAlertsWithButton = withServerAPI({\n api: SDK.ServerAPI.API.GetOverlayAlerts,\n Component: OverlayAlertsButton,\n responsePropName: 'alerts',\n fallbackComponent: () => null,\n});\n\nexport const OverlayAlertsWithTips = withServerAPI({\n api: SDK.ServerAPI.API.GetOverlayAlerts,\n Component: OverlayAlertsTips,\n responsePropName: 'alerts',\n fallbackComponent: () => null,\n});\n"],"names":["getOverlayAlertsMessage","alerts","warns","errors","item","suffixText","fontSize","Typography","Color","OverlayAlertsModal","open","onClose","Dialog","e","React","Row","Button","CloseCircleOutlined","Size","Col","Collapse","DownOutlined","RightOutlined","Tag","Ansi","OverlayAlertsTips","defaultOpen","setOpen","useState","Alert","BugOutlined","OverlayAlertsButton","styles","Badge","OverlayAlertsWithButton","withServerAPI","SDK","OverlayAlertsWithTips"],"mappings":"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"}
@@ -3,6 +3,6 @@ const overlay_module = {
3
3
  container: "container-t1WME9",
4
4
  badgeContainer: "badgeContainer-K7EgOu"
5
5
  };
6
- export { overlay_module as default };
6
+ export default overlay_module;
7
7
 
8
8
  //# sourceMappingURL=overlay.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/Card/diff.mjs","sources":["../../../src/components/Card/diff.tsx"],"sourcesContent":["import { Client } from '@rsdoctor/types';\nimport { Segmented, Space, Tooltip, Typography } from 'antd';\nimport { Graph } from '@rsdoctor/utils/common';\nimport React, { useState } from 'react';\nimport { formatSize } from '../../utils';\nimport { Color } from '../../constants';\nimport { StatisticCard } from './statistic';\nexport { StatisticCard } from './statistic';\nexport interface DiffCardProps extends Pick<DiffCardContentProps, 'formatter'> {\n titles: Array<string> | [string | React.ReactNode];\n datas: Array<DiffCardContentProps['data']>;\n showPercentInTitle?: boolean;\n}\n\nexport interface DiffCardContentProps {\n data: Client.RsdoctorClientAssetsDiffItem;\n formatter?(\n v: number,\n target: 'baseline' | 'current',\n ): number | string | React.ReactNode;\n}\n\nexport interface PercentProps {\n percent: number;\n state: Client.RsdoctorClientDiffState;\n fontSize?: React.CSSProperties['fontSize'];\n}\n\nexport const SizePercent: React.FC<\n {\n baseline: number;\n current: number;\n } & Omit<PercentProps, 'percent' | 'state'>\n> = ({ baseline, current, ...rest }) => {\n const diff = Graph.diffSize(baseline, current);\n return <Percent {...rest} {...diff} />;\n};\n\nexport const Percent: React.FC<PercentProps> = ({\n percent,\n state,\n fontSize = 14,\n}) => {\n const _percent = +percent.toFixed(2);\n\n if (_percent > 0) {\n const percentText = `${_percent}`;\n\n if (state === Client.RsdoctorClientDiffState.Up) {\n return (\n <Typography.Text strong style={{ fontSize, color: Color.Red }}>\n +{percentText}%\n </Typography.Text>\n );\n }\n\n if (state === Client.RsdoctorClientDiffState.Down) {\n return (\n <Typography.Text strong style={{ fontSize, color: Color.Green }}>\n -{percentText}%\n </Typography.Text>\n );\n }\n }\n\n return null;\n};\n\nexport const DiffCardContent: React.FC<DiffCardContentProps> = ({\n data,\n formatter,\n}) => {\n const { percent, state, size } = data;\n const { baseline, current } = size;\n\n const bSize = formatter\n ? formatter(baseline, 'baseline')\n : formatSize(baseline);\n const cSize = formatter ? formatter(current, 'current') : formatSize(current);\n\n return (\n <Space align=\"start\">\n <Space direction=\"vertical\" style={{ textAlign: 'left' }}>\n <Space>\n <Typography.Text style={{ fontSize: 10, color: 'inherit' }} keyboard>\n Current\n </Typography.Text>\n <Tooltip\n title={\n typeof cSize === 'number' || typeof cSize === 'string'\n ? `Value of Current is ${cSize}`\n : undefined\n }\n >\n <Typography.Text style={{ fontSize: 16, color: 'inherit' }} strong>\n {cSize}\n </Typography.Text>\n </Tooltip>\n <Percent percent={percent} state={state} />\n </Space>\n <Space>\n <Typography.Text style={{ fontSize: 10, color: 'inherit' }} keyboard>\n Baseline\n </Typography.Text>\n <Tooltip\n title={\n typeof bSize === 'number' || typeof bSize === 'string'\n ? `Value of Baseline is ${bSize}`\n : undefined\n }\n >\n <Typography.Text style={{ fontSize: 14 }} type=\"secondary\">\n {bSize}\n </Typography.Text>\n </Tooltip>\n </Space>\n </Space>\n </Space>\n );\n};\n\nexport const DiffCard: React.FC<DiffCardProps> = ({\n titles,\n datas,\n formatter,\n showPercentInTitle,\n}) => {\n const [idx, setIdx] = useState(0);\n\n return (\n <StatisticCard\n title={\n titles.length > 1 ? (\n <Segmented\n defaultValue={titles[idx] as string}\n options={\n showPercentInTitle\n ? titles.map((e, i) => {\n const data = datas[i];\n\n return {\n label: (\n <Space>\n <Typography.Text>{e}</Typography.Text>\n <Percent percent={data.percent} state={data.state} />\n </Space>\n ),\n value: e as string,\n };\n })\n : (titles as string[])\n }\n onChange={(e) => {\n setIdx(titles.indexOf(e as string));\n }}\n size=\"small\"\n style={{ transition: 'transform 0.3s ease' }}\n value={(titles[idx] || titles[0]) as string}\n />\n ) : (\n titles[idx]\n )\n }\n value={<DiffCardContent data={datas[idx]} formatter={formatter} />}\n statisticProps={{\n style: { textAlign: 'left' },\n }}\n />\n );\n};\n"],"names":["SizePercent","baseline","current","rest","diff","Graph","Percent","percent","state","fontSize","_percent","percentText","Client","Typography","Color","DiffCardContent","data","formatter","size","bSize","formatSize","cSize","Space","Tooltip","undefined","DiffCard","titles","datas","showPercentInTitle","idx","setIdx","useState","StatisticCard","Segmented","e","i"],"mappings":"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"}
1
+ {"version":3,"file":"components/Card/diff.mjs","sources":["../../../src/components/Card/diff.tsx"],"sourcesContent":["import { Client } from '@rsdoctor/types';\nimport { Segmented, Space, Tooltip, Typography } from 'antd';\nimport { Graph } from '@rsdoctor/utils/common';\nimport React, { useState } from 'react';\nimport { formatSize } from '../../utils';\nimport { Color } from '../../constants';\nimport { StatisticCard } from './statistic';\nexport { StatisticCard } from './statistic';\nexport interface DiffCardProps extends Pick<DiffCardContentProps, 'formatter'> {\n titles: Array<string> | [string | React.ReactNode];\n datas: Array<DiffCardContentProps['data']>;\n showPercentInTitle?: boolean;\n}\n\nexport interface DiffCardContentProps {\n data: Client.RsdoctorClientAssetsDiffItem;\n formatter?(\n v: number,\n target: 'baseline' | 'current',\n ): number | string | React.ReactNode;\n}\n\nexport interface PercentProps {\n percent: number;\n state: Client.RsdoctorClientDiffState;\n fontSize?: React.CSSProperties['fontSize'];\n}\n\nexport const SizePercent: React.FC<\n {\n baseline: number;\n current: number;\n } & Omit<PercentProps, 'percent' | 'state'>\n> = ({ baseline, current, ...rest }) => {\n const diff = Graph.diffSize(baseline, current);\n return <Percent {...rest} {...diff} />;\n};\n\nexport const Percent: React.FC<PercentProps> = ({\n percent,\n state,\n fontSize = 14,\n}) => {\n const _percent = +percent.toFixed(2);\n\n if (_percent > 0) {\n const percentText = `${_percent}`;\n\n if (state === Client.RsdoctorClientDiffState.Up) {\n return (\n <Typography.Text strong style={{ fontSize, color: Color.Red }}>\n +{percentText}%\n </Typography.Text>\n );\n }\n\n if (state === Client.RsdoctorClientDiffState.Down) {\n return (\n <Typography.Text strong style={{ fontSize, color: Color.Green }}>\n -{percentText}%\n </Typography.Text>\n );\n }\n }\n\n return null;\n};\n\nexport const DiffCardContent: React.FC<DiffCardContentProps> = ({\n data,\n formatter,\n}) => {\n const { percent, state, size } = data;\n const { baseline, current } = size;\n\n const bSize = formatter\n ? formatter(baseline, 'baseline')\n : formatSize(baseline);\n const cSize = formatter ? formatter(current, 'current') : formatSize(current);\n\n return (\n <Space align=\"start\">\n <Space direction=\"vertical\" style={{ textAlign: 'left' }}>\n <Space>\n <Typography.Text style={{ fontSize: 10, color: 'inherit' }} keyboard>\n Current\n </Typography.Text>\n <Tooltip\n title={\n typeof cSize === 'number' || typeof cSize === 'string'\n ? `Value of Current is ${cSize}`\n : undefined\n }\n >\n <Typography.Text style={{ fontSize: 16, color: 'inherit' }} strong>\n {cSize}\n </Typography.Text>\n </Tooltip>\n <Percent percent={percent} state={state} />\n </Space>\n <Space>\n <Typography.Text style={{ fontSize: 10, color: 'inherit' }} keyboard>\n Baseline\n </Typography.Text>\n <Tooltip\n title={\n typeof bSize === 'number' || typeof bSize === 'string'\n ? `Value of Baseline is ${bSize}`\n : undefined\n }\n >\n <Typography.Text style={{ fontSize: 14 }} type=\"secondary\">\n {bSize}\n </Typography.Text>\n </Tooltip>\n </Space>\n </Space>\n </Space>\n );\n};\n\nexport const DiffCard: React.FC<DiffCardProps> = ({\n titles,\n datas,\n formatter,\n showPercentInTitle,\n}) => {\n const [idx, setIdx] = useState(0);\n\n return (\n <StatisticCard\n title={\n titles.length > 1 ? (\n <Segmented\n defaultValue={titles[idx] as string}\n options={\n showPercentInTitle\n ? titles.map((e, i) => {\n const data = datas[i];\n\n return {\n label: (\n <Space>\n <Typography.Text>{e}</Typography.Text>\n <Percent percent={data.percent} state={data.state} />\n </Space>\n ),\n value: e as string,\n };\n })\n : (titles as string[])\n }\n onChange={(e) => {\n setIdx(titles.indexOf(e as string));\n }}\n size=\"small\"\n style={{ transition: 'transform 0.3s ease' }}\n value={(titles[idx] || titles[0]) as string}\n />\n ) : (\n titles[idx]\n )\n }\n value={<DiffCardContent data={datas[idx]} formatter={formatter} />}\n statisticProps={{\n style: { textAlign: 'left' },\n }}\n />\n );\n};\n"],"names":["SizePercent","baseline","current","rest","diff","Graph","Percent","percent","state","fontSize","_percent","percentText","Client","Typography","Color","DiffCardContent","data","formatter","size","bSize","formatSize","cSize","Space","Tooltip","undefined","DiffCard","titles","datas","showPercentInTitle","idx","setIdx","useState","StatisticCard","Segmented","e","i"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
+ export * from "./diff.mjs";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { useState } from "react";
3
4
  import { CaretDownOutlined, CaretRightOutlined } from "@ant-design/icons";
4
5
  import { Card, Space } from "antd";
5
- export * from "./diff.mjs";
6
6
  const Card_Card = ({ collapsable = false, children, title, dividerStyle, defaultCollapsed = false, ...rest })=>{
7
7
  const [collapsed, setCollapsed] = useState(defaultCollapsed);
8
8
  if (title && collapsable) return /*#__PURE__*/ jsx(Card, {
@@ -9,7 +9,7 @@ import { getFiles } from "../Overall/index.mjs";
9
9
  import { ServerAPIProvider } from "../Manifest/index.mjs";
10
10
  import { SDK } from "@rsdoctor/types";
11
11
  import size_module from "./size.module.mjs";
12
- const { DirectoryTree } = Tree;
12
+ const { DirectoryTree: DirectoryTree } = Tree;
13
13
  const height = 100;
14
14
  const SizeCard = ({ files, total, showProgress = false, type })=>{
15
15
  const fileType = type.toLocaleLowerCase();
@@ -26,7 +26,7 @@ const SizeCard = ({ files, total, showProgress = false, type })=>{
26
26
  const { treeData } = getFiles(res[type].total);
27
27
  return /*#__PURE__*/ jsxs(Space, {
28
28
  style: {
29
- height
29
+ height: height
30
30
  },
31
31
  align: "center",
32
32
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"components/Card/size.mjs","sources":["../../../src/components/Card/size.tsx"],"sourcesContent":["import { Empty, Progress, Space, Tree } from 'antd';\nimport { sumBy } from 'es-toolkit/compat';\nimport React, { useMemo } from 'react';\nimport { RightOutlined } from '@ant-design/icons';\n\nimport { formatSize } from 'src/utils';\nimport { TextDrawer } from '../TextDrawer';\nimport { getFiles } from '../Overall';\nimport { ServerAPIProvider } from '../Manifest';\n\nimport { SDK, Client } from '@rsdoctor/types';\n\nimport styles from './size.module.scss';\n\nconst { DirectoryTree } = Tree;\nconst height = 100;\n\nexport interface SizeCardProps {\n files: {\n path: string;\n size: number;\n }[];\n /**\n * total size for origin files\n */\n total: number;\n /**\n * @default false\n */\n showProgress?: boolean;\n tagBgColor: string;\n type: string;\n}\nexport interface bgColorType {\n bgColor: string;\n tagBgColor: string;\n}\n\nexport const SizeCard: React.FC<SizeCardProps> = ({\n files,\n total,\n showProgress = false,\n type,\n}) => {\n const fileType =\n type.toLocaleLowerCase() as keyof Client.RsdoctorClientAssetsSummary;\n const sum = useMemo(() => {\n return sumBy(files, (e) => e.size);\n }, [files]);\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: false }}\n >\n {(res) => {\n const type = fileType.includes('image') ? 'imgs' : fileType;\n const { treeData } = getFiles(res[type].total);\n return (\n <Space style={{ height }} align=\"center\">\n <Progress\n type=\"circle\"\n percent={+((sum / total) * 100).toFixed(2)}\n strokeColor={{ '0%': '#108ee9', '100%': '#108ee9' }}\n strokeWidth={12}\n format={(percent) => (\n <div className={styles.percentContainer}>\n <span style={{ marginTop: '10px' }}>{percent}%</span>\n <span className={styles.percentDescription}>\n total {type}\n </span>\n </div>\n )}\n />\n <div style={{ marginLeft: '10px' }}>\n <div className={styles.dataContainer}>\n <div className={styles.title}>Size</div>\n <div className={styles.description}>{formatSize(sum)}</div>\n </div>\n <TextDrawer\n buttonProps={{\n size: 'small',\n }}\n buttonStyle={{\n fontSize: 'inherit',\n }}\n drawerProps={{\n title: 'Files',\n }}\n text={\n <Space\n style={{ textAlign: showProgress ? 'left' : 'center' }}\n align=\"end\"\n >\n <Space direction=\"vertical\">\n <div className={styles.dataContainer}>\n <div className={styles.title}>\n <span style={{ marginRight: '5px' }}>Files</span>\n <RightOutlined />\n </div>\n </div>\n </Space>\n </Space>\n }\n >\n {treeData.length ? (\n <DirectoryTree\n defaultExpandAll\n selectable={false}\n treeData={treeData}\n rootStyle={{\n minHeight: '800px',\n border: '1px solid rgba(235, 237, 241)',\n }}\n />\n ) : (\n <div\n style={{\n position: 'relative',\n top: '50%',\n transform: 'translateY(-50%)',\n }}\n >\n <Empty style={{ height: '100%' }} />\n </div>\n )}\n </TextDrawer>\n <div className={styles.description}>{files.length}</div>\n </div>\n </Space>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["DirectoryTree","Tree","height","SizeCard","files","total","showProgress","type","fileType","sum","useMemo","sumBy","e","ServerAPIProvider","SDK","res","treeData","getFiles","Space","Progress","percent","styles","formatSize","TextDrawer","RightOutlined","Empty"],"mappings":";;;;;;;;;;;AAcA,MAAM,EAAEA,aAAa,EAAE,GAAGC;AAC1B,MAAMC,SAAS;AAuBR,MAAMC,WAAoC,CAAC,EAChDC,KAAK,EACLC,KAAK,EACLC,eAAe,KAAK,EACpBC,IAAI,EACL;IACC,MAAMC,WACJD,KAAK,iBAAiB;IACxB,MAAME,MAAMC,QAAQ,IACXC,MAAMP,OAAO,CAACQ,IAAMA,EAAE,IAAI,GAChC;QAACR;KAAM;IAEV,OAAO,WAAP,GACE,IAACS,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;QACvC,MAAM;YAAE,iBAAiB;QAAM;kBAE9B,CAACC;YACA,MAAMR,OAAOC,SAAS,QAAQ,CAAC,WAAW,SAASA;YACnD,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,SAASF,GAAG,CAACR,KAAK,CAAC,KAAK;YAC7C,OAAO,WAAP,GACE,KAACW,OAAKA;gBAAC,OAAO;oBAAEhB;gBAAO;gBAAG,OAAM;;kCAC9B,IAACiB,UAAQA;wBACP,MAAK;wBACL,SAAS,CAAE,AAACV,CAAAA,MAAMJ,QAAS,GAAE,EAAG,OAAO,CAAC;wBACxC,aAAa;4BAAE,MAAM;4BAAW,QAAQ;wBAAU;wBAClD,aAAa;wBACb,QAAQ,CAACe,UAAAA,WAAAA,GACP,KAAC;gCAAI,WAAWC,YAAAA,gBAAuB;;kDACrC,KAAC;wCAAK,OAAO;4CAAE,WAAW;wCAAO;;4CAAID;4CAAQ;;;kDAC7C,KAAC;wCAAK,WAAWC,YAAAA,kBAAyB;;4CAAE;4CACnCd;;;;;;kCAKf,KAAC;wBAAI,OAAO;4BAAE,YAAY;wBAAO;;0CAC/B,KAAC;gCAAI,WAAWc,YAAAA,aAAoB;;kDAClC,IAAC;wCAAI,WAAWA,YAAAA,KAAY;kDAAE;;kDAC9B,IAAC;wCAAI,WAAWA,YAAAA,WAAkB;kDAAGC,WAAWb;;;;0CAElD,IAACc,YAAUA;gCACT,aAAa;oCACX,MAAM;gCACR;gCACA,aAAa;oCACX,UAAU;gCACZ;gCACA,aAAa;oCACX,OAAO;gCACT;gCACA,oBACE,IAACL,OAAKA;oCACJ,OAAO;wCAAE,WAAWZ,eAAe,SAAS;oCAAS;oCACrD,OAAM;8CAEN,kBAACY,OAAKA;wCAAC,WAAU;kDACf,kBAAC;4CAAI,WAAWG,YAAAA,aAAoB;sDAClC,mBAAC;gDAAI,WAAWA,YAAAA,KAAY;;kEAC1B,IAAC;wDAAK,OAAO;4DAAE,aAAa;wDAAM;kEAAG;;kEACrC,IAACG,eAAaA,CAAAA;;;;;;0CAOvBR,SAAS,MAAM,GAAG,WAAH,GACd,IAAChB,eAAAA;oCACC,kBAAgB;oCAChB,YAAY;oCACZ,UAAUgB;oCACV,WAAW;wCACT,WAAW;wCACX,QAAQ;oCACV;mDAGF,IAAC;oCACC,OAAO;wCACL,UAAU;wCACV,KAAK;wCACL,WAAW;oCACb;8CAEA,kBAACS,OAAKA;wCAAC,OAAO;4CAAE,QAAQ;wCAAO;;;;0CAIrC,IAAC;gCAAI,WAAWJ,YAAAA,WAAkB;0CAAGjB,MAAM,MAAM;;;;;;QAIzD;;AAGN"}
1
+ {"version":3,"file":"components/Card/size.mjs","sources":["../../../src/components/Card/size.tsx"],"sourcesContent":["import { Empty, Progress, Space, Tree } from 'antd';\nimport { sumBy } from 'es-toolkit/compat';\nimport React, { useMemo } from 'react';\nimport { RightOutlined } from '@ant-design/icons';\n\nimport { formatSize } from 'src/utils';\nimport { TextDrawer } from '../TextDrawer';\nimport { getFiles } from '../Overall';\nimport { ServerAPIProvider } from '../Manifest';\n\nimport { SDK, Client } from '@rsdoctor/types';\n\nimport styles from './size.module.scss';\n\nconst { DirectoryTree } = Tree;\nconst height = 100;\n\nexport interface SizeCardProps {\n files: {\n path: string;\n size: number;\n }[];\n /**\n * total size for origin files\n */\n total: number;\n /**\n * @default false\n */\n showProgress?: boolean;\n tagBgColor: string;\n type: string;\n}\nexport interface bgColorType {\n bgColor: string;\n tagBgColor: string;\n}\n\nexport const SizeCard: React.FC<SizeCardProps> = ({\n files,\n total,\n showProgress = false,\n type,\n}) => {\n const fileType =\n type.toLocaleLowerCase() as keyof Client.RsdoctorClientAssetsSummary;\n const sum = useMemo(() => {\n return sumBy(files, (e) => e.size);\n }, [files]);\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: false }}\n >\n {(res) => {\n const type = fileType.includes('image') ? 'imgs' : fileType;\n const { treeData } = getFiles(res[type].total);\n return (\n <Space style={{ height }} align=\"center\">\n <Progress\n type=\"circle\"\n percent={+((sum / total) * 100).toFixed(2)}\n strokeColor={{ '0%': '#108ee9', '100%': '#108ee9' }}\n strokeWidth={12}\n format={(percent) => (\n <div className={styles.percentContainer}>\n <span style={{ marginTop: '10px' }}>{percent}%</span>\n <span className={styles.percentDescription}>\n total {type}\n </span>\n </div>\n )}\n />\n <div style={{ marginLeft: '10px' }}>\n <div className={styles.dataContainer}>\n <div className={styles.title}>Size</div>\n <div className={styles.description}>{formatSize(sum)}</div>\n </div>\n <TextDrawer\n buttonProps={{\n size: 'small',\n }}\n buttonStyle={{\n fontSize: 'inherit',\n }}\n drawerProps={{\n title: 'Files',\n }}\n text={\n <Space\n style={{ textAlign: showProgress ? 'left' : 'center' }}\n align=\"end\"\n >\n <Space direction=\"vertical\">\n <div className={styles.dataContainer}>\n <div className={styles.title}>\n <span style={{ marginRight: '5px' }}>Files</span>\n <RightOutlined />\n </div>\n </div>\n </Space>\n </Space>\n }\n >\n {treeData.length ? (\n <DirectoryTree\n defaultExpandAll\n selectable={false}\n treeData={treeData}\n rootStyle={{\n minHeight: '800px',\n border: '1px solid rgba(235, 237, 241)',\n }}\n />\n ) : (\n <div\n style={{\n position: 'relative',\n top: '50%',\n transform: 'translateY(-50%)',\n }}\n >\n <Empty style={{ height: '100%' }} />\n </div>\n )}\n </TextDrawer>\n <div className={styles.description}>{files.length}</div>\n </div>\n </Space>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["DirectoryTree","Tree","height","SizeCard","files","total","showProgress","type","fileType","sum","useMemo","sumBy","e","ServerAPIProvider","SDK","res","treeData","getFiles","Space","Progress","percent","styles","formatSize","TextDrawer","RightOutlined","Empty"],"mappings":";;;;;;;;;;;AAcA,MAAM,EAAEA,eAAAA,aAAa,EAAE,GAAGC;AAC1B,MAAMC,SAAS;AAuBR,MAAMC,WAAoC,CAAC,EAChDC,KAAK,EACLC,KAAK,EACLC,eAAe,KAAK,EACpBC,IAAI,EACL;IACC,MAAMC,WACJD,KAAK,iBAAiB;IACxB,MAAME,MAAMC,QAAQ,IACXC,MAAMP,OAAO,CAACQ,IAAMA,EAAE,IAAI,GAChC;QAACR;KAAM;IAEV,OAAO,WAAP,GACE,IAACS,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;QACvC,MAAM;YAAE,iBAAiB;QAAM;kBAE9B,CAACC;YACA,MAAMR,OAAOC,SAAS,QAAQ,CAAC,WAAW,SAASA;YACnD,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,SAASF,GAAG,CAACR,KAAK,CAAC,KAAK;YAC7C,OAAO,WAAP,GACE,KAACW,OAAKA;gBAAC,OAAO;oBAAEhB,QAAAA;gBAAO;gBAAG,OAAM;;kCAC9B,IAACiB,UAAQA;wBACP,MAAK;wBACL,SAAS,CAAE,AAACV,CAAAA,MAAMJ,QAAS,GAAE,EAAG,OAAO,CAAC;wBACxC,aAAa;4BAAE,MAAM;4BAAW,QAAQ;wBAAU;wBAClD,aAAa;wBACb,QAAQ,CAACe,UAAAA,WAAAA,GACP,KAAC;gCAAI,WAAWC,YAAAA,gBAAuB;;kDACrC,KAAC;wCAAK,OAAO;4CAAE,WAAW;wCAAO;;4CAAID;4CAAQ;;;kDAC7C,KAAC;wCAAK,WAAWC,YAAAA,kBAAyB;;4CAAE;4CACnCd;;;;;;kCAKf,KAAC;wBAAI,OAAO;4BAAE,YAAY;wBAAO;;0CAC/B,KAAC;gCAAI,WAAWc,YAAAA,aAAoB;;kDAClC,IAAC;wCAAI,WAAWA,YAAAA,KAAY;kDAAE;;kDAC9B,IAAC;wCAAI,WAAWA,YAAAA,WAAkB;kDAAGC,WAAWb;;;;0CAElD,IAACc,YAAUA;gCACT,aAAa;oCACX,MAAM;gCACR;gCACA,aAAa;oCACX,UAAU;gCACZ;gCACA,aAAa;oCACX,OAAO;gCACT;gCACA,oBACE,IAACL,OAAKA;oCACJ,OAAO;wCAAE,WAAWZ,eAAe,SAAS;oCAAS;oCACrD,OAAM;8CAEN,kBAACY,OAAKA;wCAAC,WAAU;kDACf,kBAAC;4CAAI,WAAWG,YAAAA,aAAoB;sDAClC,mBAAC;gDAAI,WAAWA,YAAAA,KAAY;;kEAC1B,IAAC;wDAAK,OAAO;4DAAE,aAAa;wDAAM;kEAAG;;kEACrC,IAACG,eAAaA,CAAAA;;;;;;0CAOvBR,SAAS,MAAM,GAAG,WAAH,GACd,IAAChB,eAAaA;oCACZ,kBAAgB;oCAChB,YAAY;oCACZ,UAAUgB;oCACV,WAAW;wCACT,WAAW;wCACX,QAAQ;oCACV;mDAGF,IAAC;oCACC,OAAO;wCACL,UAAU;wCACV,KAAK;wCACL,WAAW;oCACb;8CAEA,kBAACS,OAAKA;wCAAC,OAAO;4CAAE,QAAQ;wCAAO;;;;0CAIrC,IAAC;gCAAI,WAAWJ,YAAAA,WAAkB;0CAAGjB,MAAM,MAAM;;;;;;QAIzD;;AAGN"}
@@ -6,6 +6,6 @@ const size_module = {
6
6
  percentContainer: "percentContainer-VJxs6L",
7
7
  percentDescription: "percentDescription-ymSkb_"
8
8
  };
9
- export { size_module as default };
9
+ export default size_module;
10
10
 
11
11
  //# sourceMappingURL=size.module.mjs.map
@@ -1,13 +1,13 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { memo, useEffect, useState } from "react";
3
3
  import core from "echarts-for-react/esm/core";
4
+ import * as __rspack_external_echarts_core_d2845954 from "echarts/core";
4
5
  import { CustomChart } from "echarts/charts";
5
6
  import { DataZoomComponent, GridComponent, TooltipComponent } from "echarts/components";
6
7
  import { CanvasRenderer } from "echarts/renderers";
7
8
  import dayjs from "dayjs";
8
9
  import { groupBy } from "es-toolkit/compat";
9
10
  import { ChartTypes, PALETTE_COLORS } from "../constants.mjs";
10
- import * as __rspack_external_echarts_core_d2845954 from "echarts/core";
11
11
  const LINE_HEIGHT = 60;
12
12
  const TimelineCom = /*#__PURE__*/ memo(({ loaderData, pluginsData, formatterFn, chartType = ChartTypes.Normal, exts = null })=>{
13
13
  const data = [];