@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,95 +1,35 @@
1
- .errorNumber-NtnGpL, .warningNumber-UgutU8, .successNumber-YOK23K {
2
- font-size: 14px;
3
- font-weight: 500;
4
- line-height: 32px;
5
- }
6
-
7
- .errorNumber-NtnGpL, .errorText-u5Q3ns {
8
- color: #f5222d;
9
- }
10
-
11
- .warningNumber-UgutU8, .warningText-PymRi4 {
12
- color: #fa8c16;
13
- }
14
-
15
- .successNumber-YOK23K, .successText-ddFAF_ {
16
- color: #52c41a;
17
- }
18
-
19
- .errorButton-jYRQzL, .warningButton-KAF3GT, .successButton-clAJSx {
20
- width: 100%;
21
- color: inherit;
22
- height: 90px !important;
23
- font-size: inherit !important;
24
- border-radius: 12px !important;
25
- padding: 4px 0 8px !important;
26
- }
27
-
28
- .errorButton-jYRQzL {
29
- background-color: #f5222d14;
30
- }
31
-
32
- .errorButton-jYRQzL:hover {
33
- background-color: #f5222d26 !important;
34
- }
35
-
36
- .warningButton-KAF3GT {
37
- background-color: #fa8b1614;
38
- }
39
-
40
- .warningButton-KAF3GT:hover {
41
- background-color: #fa8b1626 !important;
42
- }
43
-
44
- .successButton-clAJSx {
45
- background-color: #52c41a14;
46
- }
47
-
48
- .successButton-clAJSx:hover {
49
- background-color: #52c41a26 !important;
50
- }
51
-
52
- .errorText-u5Q3ns, .warningText-PymRi4, .successText-ddFAF_ {
53
- opacity: .75;
54
- margin-top: -2px;
55
- padding-bottom: 6px;
56
- font-size: 13px;
57
- }
58
-
59
1
  .container-ssAvLP {
60
- border-radius: 10px;
61
- align-items: center;
2
+ border-color: var(--color-border-secondary);
3
+ background: var(--color-accent-subtle);
62
4
  height: 40px;
63
5
  margin: 10px 0 20px;
64
6
  padding: 10px 20px 10px 5px;
7
+ font-size: 14px;
8
+ }
9
+
10
+ .container-ssAvLP .ant-alert-message {
11
+ align-items: center;
65
12
  display: flex;
66
13
  }
67
14
 
68
15
  .container-ssAvLP .icon-K6JtIV {
69
- margin: 0 5px 0 10px;
16
+ margin: 0 5px;
17
+ font-size: 18px;
70
18
  }
71
19
 
72
20
  .container-ssAvLP .description-Ik1PO7 {
73
- color: #000000a6;
21
+ color: var(--text-color-secondary);
74
22
  margin-right: 5px;
75
- font-size: 14px;
76
23
  font-weight: 400;
77
24
  line-height: 20px;
78
25
  }
79
26
 
80
27
  .container-ssAvLP .data-J9Vxvq {
81
- font-size: 14px;
82
- font-weight: 500;
28
+ color: var(--text-color);
29
+ font-variant-numeric: tabular-nums;
30
+ font-weight: 600;
83
31
  line-height: 32px;
84
32
  }
85
33
 
86
- .common-sHeHRd {
87
- background: #f0f5ff;
88
- }
89
-
90
- .warning-HnVMOj {
91
- background: #fff7e6;
92
- }
93
-
94
34
 
95
35
  /*# sourceMappingURL=DataSummary_module.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./src/components/Overall/DataSummary.module.scss"],"names":[],"mappings":"AAAA;EACE,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AAJ2F;EAOzF,cAAc;AAChB;;AARiI;EAW/H,cAAc;AAChB;;AAZ2K;EAezK,cAAc;AAChB;;AAhBqN;EAmBnN,WAAW;EACX,cAAc;EACd,uBAAuB;EACvB,6BAA6B;EAC7B,8BAA8B;EAC9B,6BAA6B;AAC/B;;AAzBwY;EA4BtY,2BAA2B;AAC7B;;AA7B0b;EAgCxb,sCAAsC;AACxC;;AAjC6f;EAoC3f,2BAA2B;AAC7B;;AArCkjB;EAwChjB,sCAAsC;AACxC;;AAzCwnB;EA4CtnB,2BAA2B;AAC7B;;AA7C4qB;EAgD1qB,sCAAsC;AACxC;;AAjDivB;EAoD/uB,YAAY;EACZ,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;AACjB;;AAxDo1B;EA2Dl1B,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,mBAAmB;EACnB,2BAA2B;EAC3B,aAAa;AACf;;AAjE88B;EAoE58B,oBAAoB;AACtB;;AArEm/B;EAwEj/B,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AA7E0mC;EAgFxmC,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AAnF2qC;EAsFzqC,mBAAmB;AACrB;;AAvFssC;EA0FpsC,mBAAmB;AACrB","sourcesContent":[".errorNumber,.warningNumber,.successNumber{font-size:14px;font-weight:500;line-height:32px}.errorNumber,.errorText{color:#f5222d}.warningNumber,.warningText{color:#fa8c16}.successNumber,.successText{color:#52c41a}.errorButton,.warningButton,.successButton{width:100%;height:90px !important;color:inherit;font-size:inherit !important;padding:4px 0 8px !important;border-radius:12px !important}.errorButton{background-color:rgba(245,34,45,.08)}.errorButton:hover{background-color:rgba(245,34,45,.15) !important}.warningButton{background-color:rgba(250,139,22,.08)}.warningButton:hover{background-color:rgba(250,139,22,.15) !important}.successButton{background-color:rgba(82,196,26,.08)}.successButton:hover{background-color:rgba(82,196,26,.15) !important}.errorText,.warningText,.successText{opacity:.75;font-size:13px;padding-bottom:6px;margin-top:-2px}.container{height:40px;display:flex;align-items:center;padding:10px 20px 10px 5px;border-radius:10px;margin:10px 0 20px 0}.container .icon{margin:0 5px 0 10px}.container .description{margin-right:5px;font-size:14px;font-weight:400;line-height:20px;color:rgba(0,0,0,.6509803922)}.container .data{font-size:14px;font-weight:500;line-height:32px}.common{background:#f0f5ff}.warning{background:#fff7e6}"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./src/components/Overall/DataSummary.module.scss"],"names":[],"mappings":"AAAA;EACE,2CAA2C;EAC3C,sCAAsC;EACtC,YAAY;EACZ,mBAAmB;EACnB,2BAA2B;EAC3B,eAAe;AACjB;;AAPuK;EAUrK,mBAAmB;EACnB,aAAa;AACf;;AAZ8O;EAe5O,aAAa;EACb,eAAe;AACjB;;AAjB+S;EAoB7S,kCAAkC;EAClC,iBAAiB;EACjB,gBAAgB;EAChB,iBAAiB;AACnB;;AAxB2Z;EA2BzZ,wBAAwB;EACxB,kCAAkC;EAClC,gBAAgB;EAChB,iBAAiB;AACnB","sourcesContent":[".container{height:40px;padding:10px 20px 10px 5px;margin:10px 0 20px 0;font-size:14px;border-color:var(--color-border-secondary);background:var(--color-accent-subtle)}.container :global(.ant-alert-message){display:flex;align-items:center}.container .icon{margin:0 5px 0 10px;font-size:18px;margin:0 5px}.container .description{margin-right:5px;font-weight:400;line-height:20px;color:var(--text-color-secondary)}.container .data{font-weight:600;line-height:32px;color:var(--text-color);font-variant-numeric:tabular-nums}"],"sourceRoot":""}
@@ -51,8 +51,7 @@ const getFiles = (data)=>{
51
51
  className: bundle_module.line
52
52
  }),
53
53
  /*#__PURE__*/ jsx(Tag, {
54
- className: bundle_module.tag,
55
- color: "green",
54
+ className: `${bundle_module.tag} ${bundle_module.sizeTag}`,
56
55
  children: formatSize(file.size)
57
56
  }),
58
57
  file.initial ? /*#__PURE__*/ jsx(Tag, {
@@ -355,7 +354,7 @@ const BundleOverall = ()=>{
355
354
  }
356
355
  }),
357
356
  /*#__PURE__*/ jsx(DataSummary, {
358
- theme: 'files' === view ? 'common' : 'warning',
357
+ theme: 'files' === view ? 'common' : 'size',
359
358
  number: 'files' === view ? res.all.total.count : totalSizeStr,
360
359
  description: `Total ${view}`
361
360
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"components/Overall/bundle.mjs","sources":["../../../src/components/Overall/bundle.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Descriptions,\n DescriptionsProps,\n Button,\n Tree,\n Tag,\n Segmented,\n} from 'antd';\nimport { FolderOpenTwoTone, RightOutlined } from '@ant-design/icons';\nimport { useNavigate } from 'react-router-dom';\n\nimport { getFileCom } from '../FileTree';\nimport { formatSize, useI18n } from '../../utils';\nimport { TextDrawer } from '../TextDrawer';\nimport { Card } from '../Card';\nimport { ServerAPIProvider } from '../Manifest';\nimport listStyles from './list.module.scss';\nimport cardStyles from './card.module.scss';\nimport { DataSummary } from './DataSummary';\n\nimport { Client, SDK } from '@rsdoctor/types';\nimport type { TreeDataNode } from 'antd';\n\nimport styles from './bundle.module.scss';\n\ntype viewType = 'files' | 'size';\n\nconst { DirectoryTree } = Tree;\n\nexport const getFiles = (\n data: Client.RsdoctorClientAssetsSummary['all']['total'],\n) => {\n let files: Array<{\n fileName: string;\n defaultDir: string;\n size: number;\n initial: boolean;\n }> = [];\n if (data.files.length) {\n files = data.files.map((fileMessage) => {\n const filePath = fileMessage.path;\n const pathArray = filePath.split('/');\n const fileName = pathArray.pop()!;\n const defaultDir = pathArray.join('/') || 'output';\n\n return {\n fileName,\n defaultDir,\n size: fileMessage.size,\n initial: fileMessage.initial,\n };\n });\n }\n\n const treeData: TreeDataNode[] = [];\n files.forEach((file) => {\n const target = treeData.find((data) => data.title === file.defaultDir);\n const parent: TreeDataNode = target || {\n title: file.defaultDir,\n key: file.defaultDir,\n icon: <FolderOpenTwoTone />,\n children: [],\n };\n const icon = getFileCom(file.fileName);\n if (!target) {\n treeData.push(parent);\n }\n parent.children!.push({\n title: (\n <div className={styles.treeContainer}>\n <div className={styles.treeTitle}>{file.fileName}</div>\n <div className={styles.line} />\n <Tag className={styles.tag} color=\"green\">\n {formatSize(file.size)}\n </Tag>\n {file.initial ? (\n <Tag className={styles.tag} color=\"cyan\">\n initial\n </Tag>\n ) : null}\n </div>\n ),\n key: file.fileName,\n isLeaf: true,\n icon,\n });\n });\n\n return {\n treeData,\n };\n};\n\nexport const getFilesWithDrawer = (\n data: Client.RsdoctorClientAssetsSummary['all']['total'],\n): React.JSX.Element => {\n const { treeData } = getFiles(data);\n\n return (\n <>\n {data.files.length ? (\n <TextDrawer\n buttonProps={{\n size: 'small',\n }}\n buttonStyle={{\n fontSize: 'inherit',\n }}\n drawerProps={{\n title: 'Files',\n }}\n text={<span>{data.count}</span>}\n >\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 </TextDrawer>\n ) : (\n data.count\n )}\n </>\n );\n};\n\nconst BundleDescriptions = ({\n res,\n view,\n}: {\n res: Client.RsdoctorClientAssetsSummary;\n view: viewType;\n}) => {\n const fileItems: DescriptionsProps['items'] = [\n {\n key: 'js-files-count',\n label: 'JS files',\n children: (\n <span className={`${styles.description} ${styles.column}`}>\n {getFilesWithDrawer(res.js.total)}\n </span>\n ),\n },\n {\n key: 'css-files-count',\n label: 'CSS files',\n children: (\n <span className={`${styles.description} ${styles.column}`}>\n {getFilesWithDrawer(res.css.total)}\n </span>\n ),\n },\n {\n key: 'font-files-count',\n label: 'Font files',\n children: (\n <span className={`${styles.description} ${styles.column}`}>\n {getFilesWithDrawer(res.fonts.total)}\n </span>\n ),\n },\n {\n key: 'html-files-count',\n label: 'HTML files',\n children: (\n <span className={styles.description}>\n {getFilesWithDrawer(res.html.total)}\n </span>\n ),\n },\n {\n key: 'image-files-count',\n label: 'Image files',\n children: (\n <span className={styles.description}>\n {getFilesWithDrawer(res.imgs.total)}\n </span>\n ),\n },\n {\n key: 'media-files-count',\n label: 'Media files',\n children: (\n <span className={styles.description}>\n {getFilesWithDrawer(res.media.total)}\n </span>\n ),\n },\n ];\n\n const [jsSize, jsSizeUnit] = formatSize(res.js.total.size).split(' ');\n const [cssSize, cssSizeUnit] = formatSize(res.css.total.size).split(' ');\n const [fontSize, fontSizeUnit] = formatSize(res.fonts.total.size).split(' ');\n const [htmlSize, htmlSizeUnit] = formatSize(res.html.total.size).split(' ');\n const [imgSize, imgSizeUnit] = formatSize(res.imgs.total.size).split(' ');\n const [mediaSize, mediaSizeUnit] = formatSize(res.media.total.size).split(\n ' ',\n );\n\n const sizeItems: DescriptionsProps['items'] = [\n {\n key: 'js-files-size',\n label: <span className={styles.label}>JS size</span>,\n children: (\n <div className={styles.column}>\n <span className={styles.description}>{jsSize}</span>\n <span className={styles.unit}>{jsSizeUnit}</span>\n </div>\n ),\n },\n {\n key: 'css-files-size',\n label: <span className={styles.label}>CSS size</span>,\n children: (\n <div className={styles.column}>\n <span className={styles.description}>{cssSize}</span>\n <span className={styles.unit}>{cssSizeUnit}</span>\n </div>\n ),\n },\n {\n key: 'font-files-size',\n label: <span className={styles.label}>Font size</span>,\n children: (\n <div className={styles.column}>\n <span className={styles.description}>{fontSize}</span>\n <span className={styles.unit}>{fontSizeUnit}</span>\n </div>\n ),\n },\n {\n key: 'html-files-size',\n label: <span className={styles.label}>HTML size</span>,\n children: (\n <>\n <span className={styles.description}>{htmlSize}</span>\n <span className={styles.unit}>{htmlSizeUnit}</span>\n </>\n ),\n },\n {\n key: 'image-files-size',\n label: <span className={styles.label}>Image size</span>,\n children: (\n <>\n <span className={styles.description}>{imgSize}</span>\n <span className={styles.unit}>{imgSizeUnit}</span>\n </>\n ),\n },\n {\n key: 'media-files-size',\n label: <span className={styles.label}>Media size</span>,\n children: (\n <>\n <span className={styles.description}>{mediaSize}</span>\n <span className={styles.unit}>{mediaSizeUnit}</span>\n </>\n ),\n },\n ];\n\n return (\n <Descriptions\n layout={'vertical'}\n className={listStyles.bundleOverall}\n size=\"small\"\n column={3}\n colon={false}\n items={view === 'files' ? fileItems : sizeItems}\n />\n );\n};\n\nexport const BundleOverall: React.FC<{\n errors: SDK.ErrorsData;\n cwd: string;\n}> = (): React.JSX.Element | null => {\n const [view, setView] = useState<viewType>('size');\n const navigate = useNavigate();\n const { t } = useI18n();\n\n const handleViewChange = (value: viewType) => {\n setView(value);\n };\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: false }}\n >\n {(res) => {\n const totalSizeStr = formatSize(res.all.total.size);\n return (\n <Card className={cardStyles.card} style={{ height: '316px' }}>\n <div>\n <div className={styles.title}>\n <span>{t('Bundle Overall')}</span>\n <Button\n type=\"link\"\n style={{ padding: '0px' }}\n onClick={() => {\n navigate(Client.RsdoctorClientRoutes.BundleSize);\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: '8px', fontSize: '13px' }}>\n {t('ViewBundleSize')}\n </span>\n <RightOutlined style={{ fontSize: '10px' }} />\n </div>\n </Button>\n </div>\n <Segmented\n options={['Size', 'Files']}\n onChange={(val) =>\n handleViewChange(val.toLocaleLowerCase() as viewType)\n }\n size=\"small\"\n style={{ marginBottom: 8, fontSize: '14px' }}\n />\n <DataSummary\n theme={view === 'files' ? 'common' : 'warning'}\n number={view === 'files' ? res.all.total.count : totalSizeStr}\n description={`Total ${view}`}\n />\n <BundleDescriptions view={view} res={res} />\n </div>\n </Card>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["DirectoryTree","Tree","getFiles","data","files","fileMessage","filePath","pathArray","fileName","defaultDir","treeData","file","target","parent","FolderOpenTwoTone","icon","getFileCom","styles","Tag","formatSize","getFilesWithDrawer","TextDrawer","BundleDescriptions","res","view","fileItems","jsSize","jsSizeUnit","cssSize","cssSizeUnit","fontSize","fontSizeUnit","htmlSize","htmlSizeUnit","imgSize","imgSizeUnit","mediaSize","mediaSizeUnit","sizeItems","Descriptions","listStyles","BundleOverall","setView","useState","navigate","useNavigate","t","useI18n","handleViewChange","value","ServerAPIProvider","SDK","totalSizeStr","Card","cardStyles","Button","Client","RightOutlined","Segmented","val","DataSummary"],"mappings":"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"}
1
+ {"version":3,"file":"components/Overall/bundle.mjs","sources":["../../../src/components/Overall/bundle.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Descriptions,\n DescriptionsProps,\n Button,\n Tree,\n Tag,\n Segmented,\n} from 'antd';\nimport { FolderOpenTwoTone, RightOutlined } from '@ant-design/icons';\nimport { useNavigate } from 'react-router-dom';\n\nimport { getFileCom } from '../FileTree';\nimport { formatSize, useI18n } from '../../utils';\nimport { TextDrawer } from '../TextDrawer';\nimport { Card } from '../Card';\nimport { ServerAPIProvider } from '../Manifest';\nimport listStyles from './list.module.scss';\nimport cardStyles from './card.module.scss';\nimport { DataSummary } from './DataSummary';\n\nimport { Client, SDK } from '@rsdoctor/types';\nimport type { TreeDataNode } from 'antd';\n\nimport styles from './bundle.module.scss';\n\ntype viewType = 'files' | 'size';\n\nconst { DirectoryTree } = Tree;\n\nexport const getFiles = (\n data: Client.RsdoctorClientAssetsSummary['all']['total'],\n) => {\n let files: Array<{\n fileName: string;\n defaultDir: string;\n size: number;\n initial: boolean;\n }> = [];\n if (data.files.length) {\n files = data.files.map((fileMessage) => {\n const filePath = fileMessage.path;\n const pathArray = filePath.split('/');\n const fileName = pathArray.pop()!;\n const defaultDir = pathArray.join('/') || 'output';\n\n return {\n fileName,\n defaultDir,\n size: fileMessage.size,\n initial: fileMessage.initial,\n };\n });\n }\n\n const treeData: TreeDataNode[] = [];\n files.forEach((file) => {\n const target = treeData.find((data) => data.title === file.defaultDir);\n const parent: TreeDataNode = target || {\n title: file.defaultDir,\n key: file.defaultDir,\n icon: <FolderOpenTwoTone />,\n children: [],\n };\n const icon = getFileCom(file.fileName);\n if (!target) {\n treeData.push(parent);\n }\n parent.children!.push({\n title: (\n <div className={styles.treeContainer}>\n <div className={styles.treeTitle}>{file.fileName}</div>\n <div className={styles.line} />\n <Tag className={`${styles.tag} ${styles.sizeTag}`}>\n {formatSize(file.size)}\n </Tag>\n {file.initial ? (\n <Tag className={styles.tag} color=\"cyan\">\n initial\n </Tag>\n ) : null}\n </div>\n ),\n key: file.fileName,\n isLeaf: true,\n icon,\n });\n });\n\n return {\n treeData,\n };\n};\n\nexport const getFilesWithDrawer = (\n data: Client.RsdoctorClientAssetsSummary['all']['total'],\n): React.JSX.Element => {\n const { treeData } = getFiles(data);\n\n return (\n <>\n {data.files.length ? (\n <TextDrawer\n buttonProps={{\n size: 'small',\n }}\n buttonStyle={{\n fontSize: 'inherit',\n }}\n drawerProps={{\n title: 'Files',\n }}\n text={<span>{data.count}</span>}\n >\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 </TextDrawer>\n ) : (\n data.count\n )}\n </>\n );\n};\n\nconst BundleDescriptions = ({\n res,\n view,\n}: {\n res: Client.RsdoctorClientAssetsSummary;\n view: viewType;\n}) => {\n const fileItems: DescriptionsProps['items'] = [\n {\n key: 'js-files-count',\n label: 'JS files',\n children: (\n <span className={`${styles.description} ${styles.column}`}>\n {getFilesWithDrawer(res.js.total)}\n </span>\n ),\n },\n {\n key: 'css-files-count',\n label: 'CSS files',\n children: (\n <span className={`${styles.description} ${styles.column}`}>\n {getFilesWithDrawer(res.css.total)}\n </span>\n ),\n },\n {\n key: 'font-files-count',\n label: 'Font files',\n children: (\n <span className={`${styles.description} ${styles.column}`}>\n {getFilesWithDrawer(res.fonts.total)}\n </span>\n ),\n },\n {\n key: 'html-files-count',\n label: 'HTML files',\n children: (\n <span className={styles.description}>\n {getFilesWithDrawer(res.html.total)}\n </span>\n ),\n },\n {\n key: 'image-files-count',\n label: 'Image files',\n children: (\n <span className={styles.description}>\n {getFilesWithDrawer(res.imgs.total)}\n </span>\n ),\n },\n {\n key: 'media-files-count',\n label: 'Media files',\n children: (\n <span className={styles.description}>\n {getFilesWithDrawer(res.media.total)}\n </span>\n ),\n },\n ];\n\n const [jsSize, jsSizeUnit] = formatSize(res.js.total.size).split(' ');\n const [cssSize, cssSizeUnit] = formatSize(res.css.total.size).split(' ');\n const [fontSize, fontSizeUnit] = formatSize(res.fonts.total.size).split(' ');\n const [htmlSize, htmlSizeUnit] = formatSize(res.html.total.size).split(' ');\n const [imgSize, imgSizeUnit] = formatSize(res.imgs.total.size).split(' ');\n const [mediaSize, mediaSizeUnit] = formatSize(res.media.total.size).split(\n ' ',\n );\n\n const sizeItems: DescriptionsProps['items'] = [\n {\n key: 'js-files-size',\n label: <span className={styles.label}>JS size</span>,\n children: (\n <div className={styles.column}>\n <span className={styles.description}>{jsSize}</span>\n <span className={styles.unit}>{jsSizeUnit}</span>\n </div>\n ),\n },\n {\n key: 'css-files-size',\n label: <span className={styles.label}>CSS size</span>,\n children: (\n <div className={styles.column}>\n <span className={styles.description}>{cssSize}</span>\n <span className={styles.unit}>{cssSizeUnit}</span>\n </div>\n ),\n },\n {\n key: 'font-files-size',\n label: <span className={styles.label}>Font size</span>,\n children: (\n <div className={styles.column}>\n <span className={styles.description}>{fontSize}</span>\n <span className={styles.unit}>{fontSizeUnit}</span>\n </div>\n ),\n },\n {\n key: 'html-files-size',\n label: <span className={styles.label}>HTML size</span>,\n children: (\n <>\n <span className={styles.description}>{htmlSize}</span>\n <span className={styles.unit}>{htmlSizeUnit}</span>\n </>\n ),\n },\n {\n key: 'image-files-size',\n label: <span className={styles.label}>Image size</span>,\n children: (\n <>\n <span className={styles.description}>{imgSize}</span>\n <span className={styles.unit}>{imgSizeUnit}</span>\n </>\n ),\n },\n {\n key: 'media-files-size',\n label: <span className={styles.label}>Media size</span>,\n children: (\n <>\n <span className={styles.description}>{mediaSize}</span>\n <span className={styles.unit}>{mediaSizeUnit}</span>\n </>\n ),\n },\n ];\n\n return (\n <Descriptions\n layout={'vertical'}\n className={listStyles.bundleOverall}\n size=\"small\"\n column={3}\n colon={false}\n items={view === 'files' ? fileItems : sizeItems}\n />\n );\n};\n\nexport const BundleOverall: React.FC<{\n errors: SDK.ErrorsData;\n cwd: string;\n}> = (): React.JSX.Element | null => {\n const [view, setView] = useState<viewType>('size');\n const navigate = useNavigate();\n const { t } = useI18n();\n\n const handleViewChange = (value: viewType) => {\n setView(value);\n };\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: false }}\n >\n {(res) => {\n const totalSizeStr = formatSize(res.all.total.size);\n return (\n <Card className={cardStyles.card} style={{ height: '316px' }}>\n <div>\n <div className={styles.title}>\n <span>{t('Bundle Overall')}</span>\n <Button\n type=\"link\"\n style={{ padding: '0px' }}\n onClick={() => {\n navigate(Client.RsdoctorClientRoutes.BundleSize);\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: '8px', fontSize: '13px' }}>\n {t('ViewBundleSize')}\n </span>\n <RightOutlined style={{ fontSize: '10px' }} />\n </div>\n </Button>\n </div>\n <Segmented\n options={['Size', 'Files']}\n onChange={(val) =>\n handleViewChange(val.toLocaleLowerCase() as viewType)\n }\n size=\"small\"\n style={{ marginBottom: 8, fontSize: '14px' }}\n />\n <DataSummary\n theme={view === 'files' ? 'common' : 'size'}\n number={view === 'files' ? res.all.total.count : totalSizeStr}\n description={`Total ${view}`}\n />\n <BundleDescriptions view={view} res={res} />\n </div>\n </Card>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["DirectoryTree","Tree","getFiles","data","files","fileMessage","filePath","pathArray","fileName","defaultDir","treeData","file","target","parent","FolderOpenTwoTone","icon","getFileCom","styles","Tag","formatSize","getFilesWithDrawer","TextDrawer","BundleDescriptions","res","view","fileItems","jsSize","jsSizeUnit","cssSize","cssSizeUnit","fontSize","fontSizeUnit","htmlSize","htmlSizeUnit","imgSize","imgSizeUnit","mediaSize","mediaSizeUnit","sizeItems","Descriptions","listStyles","BundleOverall","setView","useState","navigate","useNavigate","t","useI18n","handleViewChange","value","ServerAPIProvider","SDK","totalSizeStr","Card","cardStyles","Button","Client","RightOutlined","Segmented","val","DataSummary"],"mappings":";;;;;;;;;;;;;;;AA4BA,MAAM,EAAEA,eAAAA,aAAa,EAAE,GAAGC;AAEnB,MAAMC,WAAW,CACtBC;IAEA,IAAIC,QAKC,EAAE;IACP,IAAID,KAAK,KAAK,CAAC,MAAM,EACnBC,QAAQD,KAAK,KAAK,CAAC,GAAG,CAAC,CAACE;QACtB,MAAMC,WAAWD,YAAY,IAAI;QACjC,MAAME,YAAYD,SAAS,KAAK,CAAC;QACjC,MAAME,WAAWD,UAAU,GAAG;QAC9B,MAAME,aAAaF,UAAU,IAAI,CAAC,QAAQ;QAE1C,OAAO;YACLC;YACAC;YACA,MAAMJ,YAAY,IAAI;YACtB,SAASA,YAAY,OAAO;QAC9B;IACF;IAGF,MAAMK,WAA2B,EAAE;IACnCN,MAAM,OAAO,CAAC,CAACO;QACb,MAAMC,SAASF,SAAS,IAAI,CAAC,CAACP,OAASA,KAAK,KAAK,KAAKQ,KAAK,UAAU;QACrE,MAAME,SAAuBD,UAAU;YACrC,OAAOD,KAAK,UAAU;YACtB,KAAKA,KAAK,UAAU;YACpB,MAAM,WAAN,GAAM,IAACG,mBAAiBA,CAAAA;YACxB,UAAU,EAAE;QACd;QACA,MAAMC,OAAOC,WAAWL,KAAK,QAAQ;QACrC,IAAI,CAACC,QACHF,SAAS,IAAI,CAACG;QAEhBA,OAAO,QAAQ,CAAE,IAAI,CAAC;YACpB,OAAO,WAAP,GACE,KAAC;gBAAI,WAAWI,cAAAA,aAAoB;;kCAClC,IAAC;wBAAI,WAAWA,cAAAA,SAAgB;kCAAGN,KAAK,QAAQ;;kCAChD,IAAC;wBAAI,WAAWM,cAAAA,IAAW;;kCAC3B,IAACC,KAAGA;wBAAC,WAAW,GAAGD,cAAAA,GAAU,CAAC,CAAC,EAAEA,cAAAA,OAAc,EAAE;kCAC9CE,WAAWR,KAAK,IAAI;;oBAEtBA,KAAK,OAAO,GAAG,WAAH,GACX,IAACO,KAAGA;wBAAC,WAAWD,cAAAA,GAAU;wBAAE,OAAM;kCAAO;yBAGvC;;;YAGR,KAAKN,KAAK,QAAQ;YAClB,QAAQ;YACRI;QACF;IACF;IAEA,OAAO;QACLL;IACF;AACF;AAEO,MAAMU,qBAAqB,CAChCjB;IAEA,MAAM,EAAEO,QAAQ,EAAE,GAAGR,SAASC;IAE9B,OAAO,WAAP,GACE;kBACGA,KAAK,KAAK,CAAC,MAAM,GAAG,WAAH,GAChB,IAACkB,YAAUA;YACT,aAAa;gBACX,MAAM;YACR;YACA,aAAa;gBACX,UAAU;YACZ;YACA,aAAa;gBACX,OAAO;YACT;YACA,oBAAM,IAAC;0BAAMlB,KAAK,KAAK;;sBAEvB,kBAACH,eAAaA;gBACZ,kBAAgB;gBAChB,YAAY;gBACZ,UAAUU;gBACV,WAAW;oBACT,WAAW;oBACX,QAAQ;gBACV;;aAIJP,KAAK,KAAK;;AAIlB;AAEA,MAAMmB,qBAAqB,CAAC,EAC1BC,GAAG,EACHC,IAAI,EAIL;IACC,MAAMC,YAAwC;QAC5C;YACE,KAAK;YACL,OAAO;YACP,UAAU,WAAV,GACE,IAAC;gBAAK,WAAW,GAAGR,cAAAA,WAAkB,CAAC,CAAC,EAAEA,cAAAA,MAAa,EAAE;0BACtDG,mBAAmBG,IAAI,EAAE,CAAC,KAAK;;QAGtC;QACA;YACE,KAAK;YACL,OAAO;YACP,UAAU,WAAV,GACE,IAAC;gBAAK,WAAW,GAAGN,cAAAA,WAAkB,CAAC,CAAC,EAAEA,cAAAA,MAAa,EAAE;0BACtDG,mBAAmBG,IAAI,GAAG,CAAC,KAAK;;QAGvC;QACA;YACE,KAAK;YACL,OAAO;YACP,UAAU,WAAV,GACE,IAAC;gBAAK,WAAW,GAAGN,cAAAA,WAAkB,CAAC,CAAC,EAAEA,cAAAA,MAAa,EAAE;0BACtDG,mBAAmBG,IAAI,KAAK,CAAC,KAAK;;QAGzC;QACA;YACE,KAAK;YACL,OAAO;YACP,UAAU,WAAV,GACE,IAAC;gBAAK,WAAWN,cAAAA,WAAkB;0BAChCG,mBAAmBG,IAAI,IAAI,CAAC,KAAK;;QAGxC;QACA;YACE,KAAK;YACL,OAAO;YACP,UAAU,WAAV,GACE,IAAC;gBAAK,WAAWN,cAAAA,WAAkB;0BAChCG,mBAAmBG,IAAI,IAAI,CAAC,KAAK;;QAGxC;QACA;YACE,KAAK;YACL,OAAO;YACP,UAAU,WAAV,GACE,IAAC;gBAAK,WAAWN,cAAAA,WAAkB;0BAChCG,mBAAmBG,IAAI,KAAK,CAAC,KAAK;;QAGzC;KACD;IAED,MAAM,CAACG,QAAQC,WAAW,GAAGR,WAAWI,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACjE,MAAM,CAACK,SAASC,YAAY,GAAGV,WAAWI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACpE,MAAM,CAACO,UAAUC,aAAa,GAAGZ,WAAWI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACxE,MAAM,CAACS,UAAUC,aAAa,GAAGd,WAAWI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACvE,MAAM,CAACW,SAASC,YAAY,GAAGhB,WAAWI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACrE,MAAM,CAACa,WAAWC,cAAc,GAAGlB,WAAWI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CACvE;IAGF,MAAMe,YAAwC;QAC5C;YACE,KAAK;YACL,OAAO,WAAP,GAAO,IAAC;gBAAK,WAAWrB,cAAAA,KAAY;0BAAE;;YACtC,UAAU,WAAV,GACE,KAAC;gBAAI,WAAWA,cAAAA,MAAa;;kCAC3B,IAAC;wBAAK,WAAWA,cAAAA,WAAkB;kCAAGS;;kCACtC,IAAC;wBAAK,WAAWT,cAAAA,IAAW;kCAAGU;;;;QAGrC;QACA;YACE,KAAK;YACL,OAAO,WAAP,GAAO,IAAC;gBAAK,WAAWV,cAAAA,KAAY;0BAAE;;YACtC,UAAU,WAAV,GACE,KAAC;gBAAI,WAAWA,cAAAA,MAAa;;kCAC3B,IAAC;wBAAK,WAAWA,cAAAA,WAAkB;kCAAGW;;kCACtC,IAAC;wBAAK,WAAWX,cAAAA,IAAW;kCAAGY;;;;QAGrC;QACA;YACE,KAAK;YACL,OAAO,WAAP,GAAO,IAAC;gBAAK,WAAWZ,cAAAA,KAAY;0BAAE;;YACtC,UAAU,WAAV,GACE,KAAC;gBAAI,WAAWA,cAAAA,MAAa;;kCAC3B,IAAC;wBAAK,WAAWA,cAAAA,WAAkB;kCAAGa;;kCACtC,IAAC;wBAAK,WAAWb,cAAAA,IAAW;kCAAGc;;;;QAGrC;QACA;YACE,KAAK;YACL,OAAO,WAAP,GAAO,IAAC;gBAAK,WAAWd,cAAAA,KAAY;0BAAE;;YACtC,UAAU,WAAV,GACE;;kCACE,IAAC;wBAAK,WAAWA,cAAAA,WAAkB;kCAAGe;;kCACtC,IAAC;wBAAK,WAAWf,cAAAA,IAAW;kCAAGgB;;;;QAGrC;QACA;YACE,KAAK;YACL,OAAO,WAAP,GAAO,IAAC;gBAAK,WAAWhB,cAAAA,KAAY;0BAAE;;YACtC,UAAU,WAAV,GACE;;kCACE,IAAC;wBAAK,WAAWA,cAAAA,WAAkB;kCAAGiB;;kCACtC,IAAC;wBAAK,WAAWjB,cAAAA,IAAW;kCAAGkB;;;;QAGrC;QACA;YACE,KAAK;YACL,OAAO,WAAP,GAAO,IAAC;gBAAK,WAAWlB,cAAAA,KAAY;0BAAE;;YACtC,UAAU,WAAV,GACE;;kCACE,IAAC;wBAAK,WAAWA,cAAAA,WAAkB;kCAAGmB;;kCACtC,IAAC;wBAAK,WAAWnB,cAAAA,IAAW;kCAAGoB;;;;QAGrC;KACD;IAED,OAAO,WAAP,GACE,IAACE,cAAYA;QACX,QAAQ;QACR,WAAWC,YAAAA,aAAwB;QACnC,MAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAOhB,AAAS,YAATA,OAAmBC,YAAYa;;AAG5C;AAEO,MAAMG,gBAGR;IACH,MAAM,CAACjB,MAAMkB,QAAQ,GAAGC,SAAmB;IAC3C,MAAMC,WAAWC;IACjB,MAAM,EAAEC,CAAC,EAAE,GAAGC;IAEd,MAAMC,mBAAmB,CAACC;QACxBP,QAAQO;IACV;IAEA,OAAO,WAAP,GACE,IAACC,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;QACvC,MAAM;YAAE,iBAAiB;QAAM;kBAE9B,CAAC5B;YACA,MAAM6B,eAAejC,WAAWI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI;YAClD,OAAO,WAAP,GACE,IAAC8B,MAAIA;gBAAC,WAAWC,YAAAA,IAAe;gBAAE,OAAO;oBAAE,QAAQ;gBAAQ;0BACzD,mBAAC;;sCACC,KAAC;4BAAI,WAAWrC,cAAAA,KAAY;;8CAC1B,IAAC;8CAAM6B,EAAE;;8CACT,IAACS,QAAMA;oCACL,MAAK;oCACL,OAAO;wCAAE,SAAS;oCAAM;oCACxB,SAAS;wCACPX,SAASY,OAAO,oBAAoB,CAAC,UAAU;oCACjD;8CAEA,mBAAC;wCAAI,OAAO;4CAAE,SAAS;4CAAQ,YAAY;wCAAS;;0DAClD,IAAC;gDAAK,OAAO;oDAAE,aAAa;oDAAO,UAAU;gDAAO;0DACjDV,EAAE;;0DAEL,IAACW,eAAaA;gDAAC,OAAO;oDAAE,UAAU;gDAAO;;;;;;;sCAI/C,IAACC,WAASA;4BACR,SAAS;gCAAC;gCAAQ;6BAAQ;4BAC1B,UAAU,CAACC,MACTX,iBAAiBW,IAAI,iBAAiB;4BAExC,MAAK;4BACL,OAAO;gCAAE,cAAc;gCAAG,UAAU;4BAAO;;sCAE7C,IAACC,aAAWA;4BACV,OAAOpC,AAAS,YAATA,OAAmB,WAAW;4BACrC,QAAQA,AAAS,YAATA,OAAmBD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG6B;4BACjD,aAAa,CAAC,MAAM,EAAE5B,MAAM;;sCAE9B,IAACF,oBAAkBA;4BAAC,MAAME;4BAAM,KAAKD;;;;;QAI7C;;AAGN"}
@@ -9,6 +9,7 @@ const bundle_module = {
9
9
  treeTitle: "treeTitle-B083rc",
10
10
  icon: "icon-jhYzus",
11
11
  tag: "tag-fNEiQ8",
12
+ sizeTag: "sizeTag-ukmRN7",
12
13
  label: "label-vITl7c"
13
14
  };
14
15
  export default bundle_module;
@@ -1 +1 @@
1
- {"version":3,"file":"components/Overall/bundle.module.mjs","sources":["../../../src/components/Overall/bundle.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./bundle_module.css\"\nexport default {\"title\":\"title-fNYU5O\",\"column\":\"column-VJtpT7\",\"description\":\"description-nwRikm\",\"unit\":\"unit-poAoxV\",\"treeContainer\":\"treeContainer-jcFlxc\",\"line\":\"line-Ia_8Yg\",\"treeTitle\":\"treeTitle-B083rc\",\"icon\":\"icon-jhYzus\",\"tag\":\"tag-fNEiQ8\",\"label\":\"label-vITl7c\"};"],"names":[],"mappings":";AAEA,sBAAe;IAAC,OAAQ;IAAe,QAAS;IAAgB,aAAc;IAAqB,MAAO;IAAc,eAAgB;IAAuB,MAAO;IAAc,WAAY;IAAmB,MAAO;IAAc,KAAM;IAAa,OAAQ;AAAc"}
1
+ {"version":3,"file":"components/Overall/bundle.module.mjs","sources":["../../../src/components/Overall/bundle.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./bundle_module.css\"\nexport default {\"title\":\"title-fNYU5O\",\"column\":\"column-VJtpT7\",\"description\":\"description-nwRikm\",\"unit\":\"unit-poAoxV\",\"treeContainer\":\"treeContainer-jcFlxc\",\"line\":\"line-Ia_8Yg\",\"treeTitle\":\"treeTitle-B083rc\",\"icon\":\"icon-jhYzus\",\"tag\":\"tag-fNEiQ8\",\"sizeTag\":\"sizeTag-ukmRN7\",\"label\":\"label-vITl7c\"};"],"names":[],"mappings":";AAEA,sBAAe;IAAC,OAAQ;IAAe,QAAS;IAAgB,aAAc;IAAqB,MAAO;IAAc,eAAgB;IAAuB,MAAO;IAAc,WAAY;IAAmB,MAAO;IAAc,KAAM;IAAa,SAAU;IAAiB,OAAQ;AAAc"}
@@ -16,7 +16,6 @@
16
16
  }
17
17
 
18
18
  .description-nwRikm {
19
- color: #000;
20
19
  margin-right: 5px;
21
20
  font-size: 20px;
22
21
  font-weight: 500;
@@ -30,7 +29,6 @@
30
29
  }
31
30
 
32
31
  .unit-poAoxV {
33
- color: #000;
34
32
  font-size: 12px;
35
33
  font-weight: 400;
36
34
  line-height: 32px;
@@ -41,7 +39,7 @@
41
39
  }
42
40
 
43
41
  .treeContainer-jcFlxc .line-Ia_8Yg {
44
- border-bottom: 1px dashed #e5e6eb;
42
+ border-bottom: 1px dashed var(--color-divider, #e5e6eb);
45
43
  flex: 1;
46
44
  margin: 0 15px 0 10px;
47
45
  transform: translateY(-45%);
@@ -61,16 +59,26 @@
61
59
  height: 23px;
62
60
  }
63
61
 
62
+ .treeContainer-jcFlxc .sizeTag-ukmRN7 {
63
+ color: #5b8ff9;
64
+ background: #5b8ff91f;
65
+ border-color: #5b8ff966;
66
+ }
67
+
64
68
  .label-vITl7c {
65
69
  text-align: left;
66
70
  text-underline-position: from-font;
67
71
  -webkit-text-decoration-skip-ink: none;
68
72
  text-decoration-skip-ink: none;
69
- color: #000000a6;
73
+ color: var(--text-color-secondary);
70
74
  font-size: 12px;
71
75
  font-weight: 400;
72
76
  line-height: 20px;
73
77
  }
74
78
 
79
+ .description-nwRikm, .unit-poAoxV {
80
+ font-variant-numeric: tabular-nums;
81
+ }
82
+
75
83
 
76
84
  /*# sourceMappingURL=bundle_module.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./src/components/Overall/bundle.module.scss"],"names":[],"mappings":"AAAA;EACE,gBAAgB;EAChB,8BAA8B;EAC9B,mBAAmB;EACnB,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,aAAa;EACb,kBAAkB;EAClB,UAAU;AACZ;;AAX6K;EAc3K,mBAAmB;AACrB;;AAfwM;EAkBtM,WAAW;EACX,iBAAiB;EACjB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AAvBiS;EAA0B;IA2BvT,eAAe;EACjB;AACF;;AA7BwV;EAgCtV,WAAW;EACX,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AApCyZ;EAuCvZ,aAAa;AACf;;AAxCqb;EA2Cnb,iCAAiC;EACjC,OAAO;EACP,qBAAqB;EACrB,2BAA2B;AAC7B;;AA/CkiB;EAkDhiB,qBAAqB;EACrB,qBAAqB;EACrB,eAAe;AACjB;;AArDqnB;EAwDnnB,eAAe;AACjB;;AAzDypB;EA4DvpB,YAAY;AACd;;AA7DyrB;EAgEvrB,gBAAgB;EAChB,kCAAkC;EAClC,sCAAsC;EACtC,8BAA8B;EAC9B,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB","sourcesContent":[".title{height:40px;display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:500;line-height:20px;text-align:left;position:relative;top:-10px}.column{margin-bottom:14px}.description{font-size:20px;font-weight:500;line-height:32px;margin-right:5px;color:#000}@media(max-width: 1500px){.description{font-size:16px}}.unit{font-size:12px;font-weight:400;line-height:32px;color:#000}.treeContainer{display:flex}.treeContainer .line{border-bottom:1px dashed #e5e6eb;flex:1;transform:translateY(-45%);margin:0 15px 0 10px}.treeContainer .treeTitle{word-wrap:break-word;word-break:break-all;flex-wrap:wrap}.treeContainer .icon{font-size:16px}.treeContainer .tag{height:23px}.label{font-size:12px;font-weight:400;line-height:20px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none;color:rgba(0,0,0,.6509803922)}"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./src/components/Overall/bundle.module.scss"],"names":[],"mappings":"AAAA;EACE,gBAAgB;EAChB,8BAA8B;EAC9B,mBAAmB;EACnB,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,aAAa;EACb,kBAAkB;EAClB,UAAU;AACZ;;AAX6K;EAc3K,mBAAmB;AACrB;;AAfwM;EAkBtM,iBAAiB;EACjB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AAtBsR;EAA0B;IA0B5S,eAAe;EACjB;AACF;;AA5B6U;EA+B3U,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AAlCmY;EAqCjY,aAAa;AACf;;AAtC+Z;EAyC7Z,uDAAuD;EACvD,OAAO;EACP,qBAAqB;EACrB,2BAA2B;AAC7B;;AA7CkiB;EAgDhiB,qBAAqB;EACrB,qBAAqB;EACrB,eAAe;AACjB;;AAnDqnB;EAsDnnB,eAAe;AACjB;;AAvDypB;EA0DvpB,YAAY;AACd;;AA3DyrB;EA8DvrB,cAAc;EACd,qBAAqB;EACrB,uBAAuB;AACzB;;AAjEgyB;EAoE9xB,gBAAgB;EAChB,kCAAkC;EAClC,sCAAsC;EACtC,8BAA8B;EAC9B,kCAAkC;EAClC,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AA5Ey8B;EA+Ev8B,kCAAkC;AACpC","sourcesContent":[".title{height:40px;display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:500;line-height:20px;text-align:left;position:relative;top:-10px}.column{margin-bottom:14px}.description{font-size:20px;font-weight:500;line-height:32px;margin-right:5px}@media(max-width: 1500px){.description{font-size:16px}}.unit{font-size:12px;font-weight:400;line-height:32px}.treeContainer{display:flex}.treeContainer .line{border-bottom:1px dashed var(--color-divider, #e5e6eb);flex:1;transform:translateY(-45%);margin:0 15px 0 10px}.treeContainer .treeTitle{word-wrap:break-word;word-break:break-all;flex-wrap:wrap}.treeContainer .icon{font-size:16px}.treeContainer .tag{height:23px}.treeContainer .sizeTag{color:#5b8ff9;background:rgba(91,143,249,.12);border-color:rgba(91,143,249,.4)}.label{font-size:12px;font-weight:400;line-height:20px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none;color:var(--text-color-secondary)}.description,.unit{font-variant-numeric:tabular-nums}"],"sourceRoot":""}
@@ -1,17 +1,33 @@
1
1
  :is(.projectOverall-T7onhG .ant-descriptions-item-label, .projectOverall-T7onhG .ant-descriptions-item-content) {
2
- color: #000000a6;
3
2
  font-size: 13px;
4
3
  }
5
4
 
5
+ .projectOverall-T7onhG .ant-descriptions-item-label {
6
+ color: var(--text-color-secondary);
7
+ }
8
+
9
+ .projectOverall-T7onhG .ant-descriptions-item-content {
10
+ color: var(--text-color);
11
+ font-variant-numeric: tabular-nums;
12
+ }
13
+
6
14
  .projectOverall-T7onhG .ant-descriptions-item {
7
15
  padding-bottom: 10px !important;
8
16
  }
9
17
 
10
18
  :is(.bundleOverall-Ay7WmZ .ant-descriptions-item-label, .bundleOverall-Ay7WmZ .ant-descriptions-item-content) {
11
- color: #000000a6;
12
19
  font-size: 13px;
13
20
  }
14
21
 
22
+ .bundleOverall-Ay7WmZ .ant-descriptions-item-label {
23
+ color: var(--text-color-secondary);
24
+ }
25
+
26
+ .bundleOverall-Ay7WmZ .ant-descriptions-item-content {
27
+ color: var(--text-color);
28
+ font-variant-numeric: tabular-nums;
29
+ }
30
+
15
31
  .bundleOverall-Ay7WmZ .ant-descriptions-item {
16
32
  padding-bottom: 0 !important;
17
33
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./src/components/Overall/list.module.scss"],"names":[],"mappings":"AAAA;EACE,gBAAgB;EAChB,eAAe;AACjB;;AAH2J;EAMzJ,+BAA+B;AACjC;;AAP0O;EAUxO,gBAAgB;EAChB,eAAe;AACjB;;AAZmY;EAejY,4BAA4B;AAC9B","sourcesContent":[".projectOverall :global(.ant-descriptions-item-label),.projectOverall :global(.ant-descriptions-item-content){font-size:13px;color:rgba(0,0,0,.6509803922)}.projectOverall :global(.ant-descriptions-item){padding-bottom:10px !important}.bundleOverall :global(.ant-descriptions-item-label),.bundleOverall :global(.ant-descriptions-item-content){font-size:13px;color:rgba(0,0,0,.6509803922)}.bundleOverall :global(.ant-descriptions-item){padding-bottom:0px !important}"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./src/components/Overall/list.module.scss"],"names":[],"mappings":"AAAA;EACE,eAAe;AACjB;;AAF6H;EAK3H,kCAAkC;AACpC;;AANqN;EASnN,wBAAwB;EACxB,kCAAkC;AACpC;;AAXuU;EAcrU,+BAA+B;AACjC;;AAfsZ;EAkBpZ,eAAe;AACjB;;AAnBihB;EAsB/gB,kCAAkC;AACpC;;AAvBwmB;EA0BtmB,wBAAwB;EACxB,kCAAkC;AACpC;;AA5BytB;EA+BvtB,4BAA4B;AAC9B","sourcesContent":[".projectOverall :global(.ant-descriptions-item-label),.projectOverall :global(.ant-descriptions-item-content){font-size:13px}.projectOverall :global(.ant-descriptions-item-label){color:var(--text-color-secondary)}.projectOverall :global(.ant-descriptions-item-content){color:var(--text-color);font-variant-numeric:tabular-nums}.projectOverall :global(.ant-descriptions-item){padding-bottom:10px !important}.bundleOverall :global(.ant-descriptions-item-label),.bundleOverall :global(.ant-descriptions-item-content){font-size:13px}.bundleOverall :global(.ant-descriptions-item-label){color:var(--text-color-secondary)}.bundleOverall :global(.ant-descriptions-item-content){color:var(--text-color);font-variant-numeric:tabular-nums}.bundleOverall :global(.ant-descriptions-item){padding-bottom:0px !important}"],"sourceRoot":""}
@@ -1,12 +1,13 @@
1
1
  .container-KSV5DZ {
2
+ background: var(--color-bg-box-elevated);
3
+ border: 1px solid var(--color-border-secondary);
2
4
  white-space: nowrap;
3
- background: #f6f8fa;
4
- border-radius: 8px;
5
+ border-radius: 10px;
5
6
  justify-content: space-between;
6
7
  align-items: center;
7
8
  width: 100%;
8
- margin-right: 10px;
9
- padding: 8px 20px;
9
+ min-height: 88px;
10
+ padding: 14px 18px;
10
11
  display: flex;
11
12
  }
12
13
 
@@ -15,17 +16,23 @@
15
16
  }
16
17
 
17
18
  .container-KSV5DZ .content-BsjkSU .title-jUwqD5 {
18
- color: #000000a6;
19
+ color: var(--text-color-secondary);
19
20
  font-size: 12px;
20
21
  font-weight: 400;
21
22
  line-height: 20px;
22
23
  }
23
24
 
24
25
  .container-KSV5DZ .content-BsjkSU .description-ArkOg4 {
26
+ color: var(--text-color);
27
+ font-variant-numeric: tabular-nums;
25
28
  font-size: 24px;
26
- font-weight: 500;
29
+ font-weight: 600;
27
30
  line-height: 32px;
28
31
  }
29
32
 
33
+ .container-KSV5DZ .ant-avatar {
34
+ box-shadow: 0 0 0 4px #ffffff0a;
35
+ }
36
+
30
37
 
31
38
  /*# sourceMappingURL=overview_module.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./src/components/Overall/overview.module.scss"],"names":[],"mappings":"AAAA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,kBAAkB;EAClB,8BAA8B;EAC9B,mBAAmB;EACnB,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,aAAa;AACf;;AAVwL;EAatL,OAAO;AACT;;AAdmN;EAiBjN,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AArB4T;EAwB1T,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB","sourcesContent":[".container{width:100%;display:flex;background:#f6f8fa;align-items:center;justify-content:space-between;border-radius:8px;padding:8px 20px 8px 20px;margin-right:10px;white-space:nowrap}.container .content{flex:1}.container .content .title{font-size:12px;font-weight:400;line-height:20px;color:rgba(0,0,0,.6509803922)}.container .content .description{font-size:24px;font-weight:500;line-height:32px}"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./src/components/Overall/overview.module.scss"],"names":[],"mappings":"AAAA;EACE,wCAAwC;EACxC,+CAA+C;EAC/C,mBAAmB;EACnB,mBAAmB;EACnB,8BAA8B;EAC9B,mBAAmB;EACnB,WAAW;EACX,gBAAgB;EAChB,kBAAkB;EAClB,aAAa;AACf;;AAXmP;EAcjP,OAAO;AACT;;AAf8Q;EAkB5Q,kCAAkC;EAClC,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AAtB2X;EAyBzX,wBAAwB;EACxB,kCAAkC;EAClC,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AA9BsgB;EAiCpgB,+BAA+B;AACjC","sourcesContent":[".container{width:100%;display:flex;background:var(--color-bg-box-elevated);align-items:center;justify-content:space-between;min-height:88px;border:1px solid var(--color-border-secondary);border-radius:10px;padding:14px 18px;white-space:nowrap}.container .content{flex:1}.container .content .title{font-size:12px;font-weight:400;line-height:20px;color:var(--text-color-secondary)}.container .content .description{font-size:24px;font-weight:600;line-height:32px;color:var(--text-color);font-variant-numeric:tabular-nums}.container :global(.ant-avatar){box-shadow:0 0 0 4px hsla(0,0%,100%,.04)}"],"sourceRoot":""}
@@ -133,7 +133,7 @@ const ProjectOverall = ({ configs = [], cwd, envinfo, alerts = [], name })=>{
133
133
  }),
134
134
  icon: /*#__PURE__*/ jsx(Avatar, {
135
135
  style: {
136
- background: 'rgba(226, 129, 73)'
136
+ background: '#5B8FF9'
137
137
  },
138
138
  shape: "circle",
139
139
  icon: /*#__PURE__*/ jsx(ExperimentFilled, {
@@ -1 +1 @@
1
- {"version":3,"file":"components/Overall/project.mjs","sources":["../../../src/components/Overall/project.tsx"],"sourcesContent":["import { Descriptions, DescriptionsProps, Avatar } from 'antd';\nimport {\n CloseCircleFilled,\n WarningFilled,\n FileFilled,\n ExperimentFilled,\n} from '@ant-design/icons';\n\nimport { ServerAPIProvider } from '../Manifest';\nimport { useI18n, formatSize } from '../../utils';\nimport { WebpackConfigurationViewer } from '../Configuration';\nimport { Card } from '../Card';\nimport { Overview } from './overview';\nimport styles from './project.module.scss';\n\nimport listStyles from './list.module.scss';\nimport cardStyles from './card.module.scss';\nimport projectStyles from './project.module.scss';\n\nimport { SDK } from '@rsdoctor/types';\n\nexport const ProjectOverall: React.FC<{\n configs: SDK.ConfigData;\n cwd: string;\n envinfo: SDK.EnvInfo;\n alerts: SDK.ErrorsData;\n name?: string;\n}> = ({ configs = [], cwd, envinfo, alerts = [], name }) => {\n const { t } = useI18n();\n\n const warns = alerts.filter((e) => e.level === 'warn').length;\n\n const errors = alerts.length - warns;\n\n const items: DescriptionsProps['items'] = [\n ...(name\n ? [\n {\n key: 'name',\n label: 'Builder',\n children: name,\n },\n ]\n : []),\n ...Object.keys(envinfo || {}).map((key) => {\n const regexp = /Version$/;\n const isVersion = regexp.test(key);\n return {\n key,\n label: isVersion ? key.replace(regexp, '') : key,\n children: envinfo ? envinfo[key] : undefined,\n };\n }),\n ...configs\n .filter((item) => !!item.version)\n .map((config) => {\n const { name: configName, version } = config;\n return {\n key: configName,\n label: configName,\n children: version,\n };\n }),\n {\n key: 'cwd',\n label: 'cwd',\n children: cwd,\n },\n ];\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: false }}\n >\n {(res) => {\n const totalSizeStr = formatSize(res.all.total.size);\n const totalFiles = res.all.total.count;\n const [size, unit] = totalSizeStr.split(' ');\n const overViewData = [\n {\n title: 'Errors',\n description: <span style={{ color: '#FF4D4F' }}>{errors}</span>,\n icon: (\n <Avatar\n style={{ background: '#FF4D4F' }}\n shape=\"circle\"\n icon={<CloseCircleFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n {\n title: 'Warnings',\n description: <span style={{ color: '#FAAD14' }}>{warns}</span>,\n icon: (\n <Avatar\n style={{ background: '#FAAD14' }}\n shape=\"circle\"\n icon={<WarningFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n {\n title: 'Total Files',\n description: <span>{totalFiles}</span>,\n icon: (\n <Avatar\n style={{ background: '#3874F6' }}\n shape=\"circle\"\n icon={<FileFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n {\n title: 'Total Size',\n description: (\n <>\n <span style={{ fontSize: '20px' }}>{size}</span>\n <span style={{ fontSize: '13px', marginLeft: '5px' }}>\n {unit}\n </span>\n </>\n ),\n icon: (\n <Avatar\n style={{ background: 'rgba(226, 129, 73)' }}\n shape=\"circle\"\n icon={<ExperimentFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n ];\n\n return (\n <Card className={cardStyles.card}>\n <div>\n <div className={styles.title}>\n <span className={styles.left}>{t('Project Overall')}</span>\n <WebpackConfigurationViewer />\n </div>\n <div className={projectStyles.overview}>\n {overViewData.map((data, idx) => (\n <Overview\n key={idx}\n title={data.title}\n description={<span>{data.description}</span>}\n icon={data.icon}\n />\n ))}\n </div>\n <Descriptions\n className={listStyles.projectOverall}\n items={items}\n />\n </div>\n </Card>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["ProjectOverall","configs","cwd","envinfo","alerts","name","t","useI18n","warns","e","errors","items","Object","key","regexp","isVersion","undefined","item","config","configName","version","ServerAPIProvider","SDK","res","totalSizeStr","formatSize","totalFiles","size","unit","overViewData","Avatar","CloseCircleFilled","WarningFilled","FileFilled","ExperimentFilled","Card","cardStyles","styles","WebpackConfigurationViewer","projectStyles","data","idx","Overview","Descriptions","listStyles"],"mappings":";;;;;;;;;;;;AAqBO,MAAMA,iBAMR,CAAC,EAAEC,UAAU,EAAE,EAAEC,GAAG,EAAEC,OAAO,EAAEC,SAAS,EAAE,EAAEC,IAAI,EAAE;IACrD,MAAM,EAAEC,CAAC,EAAE,GAAGC;IAEd,MAAMC,QAAQJ,OAAO,MAAM,CAAC,CAACK,IAAMA,AAAY,WAAZA,EAAE,KAAK,EAAa,MAAM;IAE7D,MAAMC,SAASN,OAAO,MAAM,GAAGI;IAE/B,MAAMG,QAAoC;WACpCN,OACA;YACE;gBACE,KAAK;gBACL,OAAO;gBACP,UAAUA;YACZ;SACD,GACD,EAAE;WACHO,OAAO,IAAI,CAACT,WAAW,CAAC,GAAG,GAAG,CAAC,CAACU;YACjC,MAAMC,SAAS;YACf,MAAMC,YAAYD,OAAO,IAAI,CAACD;YAC9B,OAAO;gBACLA;gBACA,OAAOE,YAAYF,IAAI,OAAO,CAACC,QAAQ,MAAMD;gBAC7C,UAAUV,UAAUA,OAAO,CAACU,IAAI,GAAGG;YACrC;QACF;WACGf,QACA,MAAM,CAAC,CAACgB,OAAS,CAAC,CAACA,KAAK,OAAO,EAC/B,GAAG,CAAC,CAACC;YACJ,MAAM,EAAE,MAAMC,UAAU,EAAEC,OAAO,EAAE,GAAGF;YACtC,OAAO;gBACL,KAAKC;gBACL,OAAOA;gBACP,UAAUC;YACZ;QACF;QACF;YACE,KAAK;YACL,OAAO;YACP,UAAUlB;QACZ;KACD;IAED,OAAO,WAAP,GACE,IAACmB,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;QACvC,MAAM;YAAE,iBAAiB;QAAM;kBAE9B,CAACC;YACA,MAAMC,eAAeC,WAAWF,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI;YAClD,MAAMG,aAAaH,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK;YACtC,MAAM,CAACI,MAAMC,KAAK,GAAGJ,aAAa,KAAK,CAAC;YACxC,MAAMK,eAAe;gBACnB;oBACE,OAAO;oBACP,aAAa,WAAb,GAAa,IAAC;wBAAK,OAAO;4BAAE,OAAO;wBAAU;kCAAInB;;oBACjD,MAAM,WAAN,GACE,IAACoB,QAAMA;wBACL,OAAO;4BAAE,YAAY;wBAAU;wBAC/B,OAAM;wBACN,oBAAM,IAACC,mBAAiBA;4BAAC,OAAO;gCAAE,UAAU;4BAAO;;;gBAGzD;gBACA;oBACE,OAAO;oBACP,aAAa,WAAb,GAAa,IAAC;wBAAK,OAAO;4BAAE,OAAO;wBAAU;kCAAIvB;;oBACjD,MAAM,WAAN,GACE,IAACsB,QAAMA;wBACL,OAAO;4BAAE,YAAY;wBAAU;wBAC/B,OAAM;wBACN,oBAAM,IAACE,eAAaA;4BAAC,OAAO;gCAAE,UAAU;4BAAO;;;gBAGrD;gBACA;oBACE,OAAO;oBACP,aAAa,WAAb,GAAa,IAAC;kCAAMN;;oBACpB,MAAM,WAAN,GACE,IAACI,QAAMA;wBACL,OAAO;4BAAE,YAAY;wBAAU;wBAC/B,OAAM;wBACN,oBAAM,IAACG,YAAUA;4BAAC,OAAO;gCAAE,UAAU;4BAAO;;;gBAGlD;gBACA;oBACE,OAAO;oBACP,aAAa,WAAb,GACE;;0CACE,IAAC;gCAAK,OAAO;oCAAE,UAAU;gCAAO;0CAAIN;;0CACpC,IAAC;gCAAK,OAAO;oCAAE,UAAU;oCAAQ,YAAY;gCAAM;0CAChDC;;;;oBAIP,MAAM,WAAN,GACE,IAACE,QAAMA;wBACL,OAAO;4BAAE,YAAY;wBAAqB;wBAC1C,OAAM;wBACN,oBAAM,IAACI,kBAAgBA;4BAAC,OAAO;gCAAE,UAAU;4BAAO;;;gBAGxD;aACD;YAED,OAAO,WAAP,GACE,IAACC,MAAIA;gBAAC,WAAWC,YAAAA,IAAe;0BAC9B,mBAAC;;sCACC,KAAC;4BAAI,WAAWC,eAAAA,KAAY;;8CAC1B,IAAC;oCAAK,WAAWA,eAAAA,IAAW;8CAAG/B,EAAE;;8CACjC,IAACgC,4BAA0BA,CAAAA;;;sCAE7B,IAAC;4BAAI,WAAWC,eAAAA,QAAsB;sCACnCV,aAAa,GAAG,CAAC,CAACW,MAAMC,MAAAA,WAAAA,GACvB,IAACC,UAAQA;oCAEP,OAAOF,KAAK,KAAK;oCACjB,2BAAa,IAAC;kDAAMA,KAAK,WAAW;;oCACpC,MAAMA,KAAK,IAAI;mCAHVC;;sCAOX,IAACE,cAAYA;4BACX,WAAWC,YAAAA,cAAyB;4BACpC,OAAOjC;;;;;QAKjB;;AAGN"}
1
+ {"version":3,"file":"components/Overall/project.mjs","sources":["../../../src/components/Overall/project.tsx"],"sourcesContent":["import { Descriptions, DescriptionsProps, Avatar } from 'antd';\nimport {\n CloseCircleFilled,\n WarningFilled,\n FileFilled,\n ExperimentFilled,\n} from '@ant-design/icons';\n\nimport { ServerAPIProvider } from '../Manifest';\nimport { useI18n, formatSize } from '../../utils';\nimport { WebpackConfigurationViewer } from '../Configuration';\nimport { Card } from '../Card';\nimport { Overview } from './overview';\nimport styles from './project.module.scss';\n\nimport listStyles from './list.module.scss';\nimport cardStyles from './card.module.scss';\nimport projectStyles from './project.module.scss';\n\nimport { SDK } from '@rsdoctor/types';\n\nexport const ProjectOverall: React.FC<{\n configs: SDK.ConfigData;\n cwd: string;\n envinfo: SDK.EnvInfo;\n alerts: SDK.ErrorsData;\n name?: string;\n}> = ({ configs = [], cwd, envinfo, alerts = [], name }) => {\n const { t } = useI18n();\n\n const warns = alerts.filter((e) => e.level === 'warn').length;\n\n const errors = alerts.length - warns;\n\n const items: DescriptionsProps['items'] = [\n ...(name\n ? [\n {\n key: 'name',\n label: 'Builder',\n children: name,\n },\n ]\n : []),\n ...Object.keys(envinfo || {}).map((key) => {\n const regexp = /Version$/;\n const isVersion = regexp.test(key);\n return {\n key,\n label: isVersion ? key.replace(regexp, '') : key,\n children: envinfo ? envinfo[key] : undefined,\n };\n }),\n ...configs\n .filter((item) => !!item.version)\n .map((config) => {\n const { name: configName, version } = config;\n return {\n key: configName,\n label: configName,\n children: version,\n };\n }),\n {\n key: 'cwd',\n label: 'cwd',\n children: cwd,\n },\n ];\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: false }}\n >\n {(res) => {\n const totalSizeStr = formatSize(res.all.total.size);\n const totalFiles = res.all.total.count;\n const [size, unit] = totalSizeStr.split(' ');\n const overViewData = [\n {\n title: 'Errors',\n description: <span style={{ color: '#FF4D4F' }}>{errors}</span>,\n icon: (\n <Avatar\n style={{ background: '#FF4D4F' }}\n shape=\"circle\"\n icon={<CloseCircleFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n {\n title: 'Warnings',\n description: <span style={{ color: '#FAAD14' }}>{warns}</span>,\n icon: (\n <Avatar\n style={{ background: '#FAAD14' }}\n shape=\"circle\"\n icon={<WarningFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n {\n title: 'Total Files',\n description: <span>{totalFiles}</span>,\n icon: (\n <Avatar\n style={{ background: '#3874F6' }}\n shape=\"circle\"\n icon={<FileFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n {\n title: 'Total Size',\n description: (\n <>\n <span style={{ fontSize: '20px' }}>{size}</span>\n <span style={{ fontSize: '13px', marginLeft: '5px' }}>\n {unit}\n </span>\n </>\n ),\n icon: (\n <Avatar\n style={{ background: '#5B8FF9' }}\n shape=\"circle\"\n icon={<ExperimentFilled style={{ fontSize: '18px' }} />}\n />\n ),\n },\n ];\n\n return (\n <Card className={cardStyles.card}>\n <div>\n <div className={styles.title}>\n <span className={styles.left}>{t('Project Overall')}</span>\n <WebpackConfigurationViewer />\n </div>\n <div className={projectStyles.overview}>\n {overViewData.map((data, idx) => (\n <Overview\n key={idx}\n title={data.title}\n description={<span>{data.description}</span>}\n icon={data.icon}\n />\n ))}\n </div>\n <Descriptions\n className={listStyles.projectOverall}\n items={items}\n />\n </div>\n </Card>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["ProjectOverall","configs","cwd","envinfo","alerts","name","t","useI18n","warns","e","errors","items","Object","key","regexp","isVersion","undefined","item","config","configName","version","ServerAPIProvider","SDK","res","totalSizeStr","formatSize","totalFiles","size","unit","overViewData","Avatar","CloseCircleFilled","WarningFilled","FileFilled","ExperimentFilled","Card","cardStyles","styles","WebpackConfigurationViewer","projectStyles","data","idx","Overview","Descriptions","listStyles"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  .overview-ZAp1A3 {
2
+ gap: 12px;
2
3
  margin-bottom: 19px;
3
4
  display: flex;
4
5
  }
@@ -20,5 +21,12 @@
20
21
  line-height: 24px;
21
22
  }
22
23
 
24
+ @media (max-width: 980px) {
25
+ .overview-ZAp1A3 {
26
+ grid-template-columns: repeat(2, minmax(0, 1fr));
27
+ display: grid;
28
+ }
29
+ }
30
+
23
31
 
24
32
  /*# sourceMappingURL=project_module.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://./src/components/Overall/project.module.scss"],"names":[],"mappings":"AAAA;EACE,mBAAmB;EACnB,aAAa;AACf;;AAH0C;EAMxC,8BAA8B;EAC9B,mBAAmB;EACnB,oBAAoB;EACpB,aAAa;AACf;;AAVmI;EAajI,gBAAgB;EAChB,kCAAkC;EAClC,sCAAsC;EACtC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB","sourcesContent":[".overview{display:flex;margin-bottom:19px}.title{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px}.title .left{font-size:16px;font-weight:500;line-height:24px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://./src/components/Overall/project.module.scss"],"names":[],"mappings":"AAAA;EACE,SAAS;EACT,mBAAmB;EACnB,aAAa;AACf;;AAJmD;EAOjD,8BAA8B;EAC9B,mBAAmB;EACnB,oBAAoB;EACpB,aAAa;AACf;;AAX4I;EAc1I,gBAAgB;EAChB,kCAAkC;EAClC,sCAAsC;EACtC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;AACnB;;AArByR;EAAyB;IAyB9S,gDAAgD;IAChD,aAAa;EACf;AACF","sourcesContent":[".overview{display:flex;gap:12px;margin-bottom:19px}.title{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px}.title .left{font-size:16px;font-weight:500;line-height:24px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}@media(max-width: 980px){.overview{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr))}}"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  import { CodeViewerProps } from './interface.js';
2
- export declare function CodeViewer({ className, style, code, lang, filePath, defaultLine, ranges, isEmbed, headerVisible, isLightTheme, formatOnMount, }: CodeViewerProps): import("react").JSX.Element;
2
+ export declare function CodeViewer({ className, style, code, lang, filePath, defaultLine, ranges, isEmbed, headerVisible, isLightTheme: isLightThemeProp, formatOnMount, }: CodeViewerProps): import("react").JSX.Element;
3
3
  export type { CodeViewerProps } from './interface.js';
4
4
  export { useCodeDrawer } from './useCodeDrawer.js';
5
5
  export { defineMonacoOptions } from './utils.js';
@@ -6,7 +6,10 @@ import { defineMonacoOptions, editorShowRange, getFileName, getFilePathFormat }
6
6
  import { Checkbox } from "antd";
7
7
  import index_module from "./index.module.mjs";
8
8
  import { Lodash } from "@rsdoctor/utils/common";
9
- function CodeViewer({ className, style, code = '', lang, filePath = '', defaultLine, ranges, isEmbed = false, headerVisible = true, isLightTheme = true, formatOnMount = false }) {
9
+ import { useTheme } from "../../../utils/index.mjs";
10
+ function CodeViewer({ className, style, code = '', lang, filePath = '', defaultLine, ranges, isEmbed = false, headerVisible = true, isLightTheme: isLightThemeProp, formatOnMount = false }) {
11
+ const { isLight: isLightMode } = useTheme();
12
+ const isLightTheme = isLightThemeProp ?? isLightMode;
10
13
  const editor = useRef(void 0);
11
14
  const monaco = useRef(void 0);
12
15
  const language = useMemo(()=>lang || getFilePathFormat(filePath) || 'plaintext', [
@@ -34,7 +37,6 @@ function CodeViewer({ className, style, code = '', lang, filePath = '', defaultL
34
37
  defaultLine,
35
38
  formatOnMount
36
39
  ]);
37
- const theme = isLightTheme ? 'vs-light' : 'vs-dark';
38
40
  useEffect(()=>()=>{
39
41
  editor.current?.setModel(null);
40
42
  }, []);
@@ -69,7 +71,7 @@ function CodeViewer({ className, style, code = '', lang, filePath = '', defaultL
69
71
  /*#__PURE__*/ jsx("div", {
70
72
  className: clsx(index_module.content, 'editor-wrap'),
71
73
  children: /*#__PURE__*/ jsx(Editor, {
72
- theme: theme,
74
+ theme: isLightTheme ? 'vs-light' : 'vs-dark',
73
75
  language: language,
74
76
  value: code,
75
77
  options: options,
@@ -1 +1 @@
1
- {"version":3,"file":"components/base/CodeViewer/index.mjs","sources":["../../../../src/components/base/CodeViewer/index.tsx"],"sourcesContent":["import { Editor, Monaco, OnMount } from '@monaco-editor/react';\nimport clsx from 'clsx';\nimport { editor } from 'monaco-editor';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { CodeViewerProps } from './interface';\nimport {\n defineMonacoOptions,\n editorShowRange,\n getFileName,\n getFilePathFormat,\n} from './utils';\n\nimport { Checkbox } from 'antd';\nimport styles from './index.module.scss';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nexport function CodeViewer({\n className,\n style,\n code = '',\n lang,\n filePath = '',\n defaultLine,\n ranges,\n isEmbed = false,\n headerVisible = true,\n isLightTheme = true,\n formatOnMount = false,\n}: CodeViewerProps) {\n const editor = useRef<editor.IStandaloneCodeEditor>(undefined);\n const monaco = useRef<Monaco>(undefined);\n const language = useMemo(\n () => lang || getFilePathFormat(filePath) || 'plaintext',\n [lang, filePath],\n );\n const [isWordWrap, setIsWordWrap] = useState(true);\n const options = useMemo(\n () => defineMonacoOptions({ wordWrap: isWordWrap ? 'on' : 'off' }),\n [isWordWrap],\n );\n const onEditorMount = useCallback<OnMount>(\n (editorInstance, monacoVal) => {\n editor.current = editorInstance;\n monaco.current = monacoVal;\n\n editorShowRange(editorInstance, monacoVal, ranges);\n if (Lodash.isNumber(defaultLine)) {\n setTimeout(() => {\n editorInstance.revealLine(defaultLine);\n });\n }\n\n if (formatOnMount) {\n // Use Monaco's built-in formatter to format the whole document\n setTimeout(() => {\n editorInstance.getAction('editor.action.formatDocument')?.run();\n }, 0);\n }\n },\n [ranges, defaultLine, formatOnMount],\n );\n\n const theme = isLightTheme ? 'vs-light' : 'vs-dark';\n\n useEffect(\n () => () => {\n editor.current?.setModel(null);\n },\n [],\n );\n\n return (\n <div\n className={clsx(\n 'monaco-component',\n 'code-viewer',\n styles['code-viewer'],\n isEmbed && styles['embed'],\n className,\n )}\n style={style}\n >\n {headerVisible && Boolean(filePath) && (\n <div className={styles['header']}>\n <div>{getFileName(filePath)}</div>\n <div style={{ flex: 1 }} />\n <div>\n <Checkbox\n className={styles['text']}\n title=\"side-by-side\"\n checked={isWordWrap}\n onChange={(evt) => {\n setIsWordWrap(evt.target.checked);\n }}\n >\n word-wrap\n </Checkbox>\n </div>\n </div>\n )}\n <div className={clsx(styles['content'], 'editor-wrap')}>\n <Editor\n theme={theme}\n language={language}\n value={code}\n options={options}\n onMount={onEditorMount}\n />\n </div>\n </div>\n );\n}\n\nexport type { CodeViewerProps } from './interface';\nexport { useCodeDrawer } from './useCodeDrawer';\nexport { defineMonacoOptions } from './utils';\n"],"names":["CodeViewer","className","style","code","lang","filePath","defaultLine","ranges","isEmbed","headerVisible","isLightTheme","formatOnMount","editor","useRef","undefined","monaco","language","useMemo","getFilePathFormat","isWordWrap","setIsWordWrap","useState","options","defineMonacoOptions","onEditorMount","useCallback","editorInstance","monacoVal","editorShowRange","Lodash","setTimeout","theme","useEffect","clsx","styles","Boolean","getFileName","Checkbox","evt","Editor"],"mappings":";;;;;;;;AAgBO,SAASA,WAAW,EACzBC,SAAS,EACTC,KAAK,EACLC,OAAO,EAAE,EACTC,IAAI,EACJC,WAAW,EAAE,EACbC,WAAW,EACXC,MAAM,EACNC,UAAU,KAAK,EACfC,gBAAgB,IAAI,EACpBC,eAAe,IAAI,EACnBC,gBAAgB,KAAK,EACL;IAChB,MAAMC,SAASC,OAAqCC;IACpD,MAAMC,SAASF,OAAeC;IAC9B,MAAME,WAAWC,QACf,IAAMb,QAAQc,kBAAkBb,aAAa,aAC7C;QAACD;QAAMC;KAAS;IAElB,MAAM,CAACc,YAAYC,cAAc,GAAGC,SAAS;IAC7C,MAAMC,UAAUL,QACd,IAAMM,oBAAoB;YAAE,UAAUJ,aAAa,OAAO;QAAM,IAChE;QAACA;KAAW;IAEd,MAAMK,gBAAgBC,YACpB,CAACC,gBAAgBC;QACff,OAAO,OAAO,GAAGc;QACjBX,OAAO,OAAO,GAAGY;QAEjBC,gBAAgBF,gBAAgBC,WAAWpB;QAC3C,IAAIsB,OAAO,QAAQ,CAACvB,cAClBwB,WAAW;YACTJ,eAAe,UAAU,CAACpB;QAC5B;QAGF,IAAIK,eAEFmB,WAAW;YACTJ,eAAe,SAAS,CAAC,iCAAiC;QAC5D,GAAG;IAEP,GACA;QAACnB;QAAQD;QAAaK;KAAc;IAGtC,MAAMoB,QAAQrB,eAAe,aAAa;IAE1CsB,UACE,IAAM;YACJpB,OAAO,OAAO,EAAE,SAAS;QAC3B,GACA,EAAE;IAGJ,OAAO,WAAP,GACE,KAAC;QACC,WAAWqB,KACT,oBACA,eACAC,YAAAA,CAAAA,cAAqB,EACrB1B,WAAW0B,aAAAA,KAAe,EAC1BjC;QAEF,OAAOC;;YAENO,iBAAiB0B,QAAQ9B,aAAa,WAAbA,GACxB,KAAC;gBAAI,WAAW6B,aAAAA,MAAgB;;kCAC9B,IAAC;kCAAKE,YAAY/B;;kCAClB,IAAC;wBAAI,OAAO;4BAAE,MAAM;wBAAE;;kCACtB,IAAC;kCACC,kBAACgC,UAAQA;4BACP,WAAWH,aAAAA,IAAc;4BACzB,OAAM;4BACN,SAASf;4BACT,UAAU,CAACmB;gCACTlB,cAAckB,IAAI,MAAM,CAAC,OAAO;4BAClC;sCACD;;;;;0BAMP,IAAC;gBAAI,WAAWL,KAAKC,aAAAA,OAAiB,EAAE;0BACtC,kBAACK,QAAMA;oBACL,OAAOR;oBACP,UAAUf;oBACV,OAAOb;oBACP,SAASmB;oBACT,SAASE;;;;;AAKnB"}
1
+ {"version":3,"file":"components/base/CodeViewer/index.mjs","sources":["../../../../src/components/base/CodeViewer/index.tsx"],"sourcesContent":["import { Editor, Monaco, OnMount } from '@monaco-editor/react';\nimport clsx from 'clsx';\nimport { editor } from 'monaco-editor';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { CodeViewerProps } from './interface';\nimport {\n defineMonacoOptions,\n editorShowRange,\n getFileName,\n getFilePathFormat,\n} from './utils';\n\nimport { Checkbox } from 'antd';\nimport styles from './index.module.scss';\nimport { Lodash } from '@rsdoctor/utils/common';\nimport { useTheme } from 'src/utils';\n\nexport function CodeViewer({\n className,\n style,\n code = '',\n lang,\n filePath = '',\n defaultLine,\n ranges,\n isEmbed = false,\n headerVisible = true,\n isLightTheme: isLightThemeProp,\n formatOnMount = false,\n}: CodeViewerProps) {\n const { isLight: isLightMode } = useTheme();\n const isLightTheme: boolean = isLightThemeProp ?? isLightMode;\n const editor = useRef<editor.IStandaloneCodeEditor>(undefined);\n const monaco = useRef<Monaco>(undefined);\n const language = useMemo(\n () => lang || getFilePathFormat(filePath) || 'plaintext',\n [lang, filePath],\n );\n const [isWordWrap, setIsWordWrap] = useState(true);\n const options = useMemo(\n () => defineMonacoOptions({ wordWrap: isWordWrap ? 'on' : 'off' }),\n [isWordWrap],\n );\n const onEditorMount = useCallback<OnMount>(\n (editorInstance, monacoVal) => {\n editor.current = editorInstance;\n monaco.current = monacoVal;\n\n editorShowRange(editorInstance, monacoVal, ranges);\n if (Lodash.isNumber(defaultLine)) {\n setTimeout(() => {\n editorInstance.revealLine(defaultLine);\n });\n }\n\n if (formatOnMount) {\n // Use Monaco's built-in formatter to format the whole document\n setTimeout(() => {\n editorInstance.getAction('editor.action.formatDocument')?.run();\n }, 0);\n }\n },\n [ranges, defaultLine, formatOnMount],\n );\n\n useEffect(\n () => () => {\n editor.current?.setModel(null);\n },\n [],\n );\n\n return (\n <div\n className={clsx(\n 'monaco-component',\n 'code-viewer',\n styles['code-viewer'],\n isEmbed && styles['embed'],\n className,\n )}\n style={style}\n >\n {headerVisible && Boolean(filePath) && (\n <div className={styles['header']}>\n <div>{getFileName(filePath)}</div>\n <div style={{ flex: 1 }} />\n <div>\n <Checkbox\n className={styles['text']}\n title=\"side-by-side\"\n checked={isWordWrap}\n onChange={(evt) => {\n setIsWordWrap(evt.target.checked);\n }}\n >\n word-wrap\n </Checkbox>\n </div>\n </div>\n )}\n <div className={clsx(styles['content'], 'editor-wrap')}>\n <Editor\n theme={isLightTheme ? 'vs-light' : 'vs-dark'}\n language={language}\n value={code}\n options={options}\n onMount={onEditorMount}\n />\n </div>\n </div>\n );\n}\n\nexport type { CodeViewerProps } from './interface';\nexport { useCodeDrawer } from './useCodeDrawer';\nexport { defineMonacoOptions } from './utils';\n"],"names":["CodeViewer","className","style","code","lang","filePath","defaultLine","ranges","isEmbed","headerVisible","isLightThemeProp","formatOnMount","isLightMode","useTheme","isLightTheme","editor","useRef","undefined","monaco","language","useMemo","getFilePathFormat","isWordWrap","setIsWordWrap","useState","options","defineMonacoOptions","onEditorMount","useCallback","editorInstance","monacoVal","editorShowRange","Lodash","setTimeout","useEffect","clsx","styles","Boolean","getFileName","Checkbox","evt","Editor"],"mappings":";;;;;;;;;AAiBO,SAASA,WAAW,EACzBC,SAAS,EACTC,KAAK,EACLC,OAAO,EAAE,EACTC,IAAI,EACJC,WAAW,EAAE,EACbC,WAAW,EACXC,MAAM,EACNC,UAAU,KAAK,EACfC,gBAAgB,IAAI,EACpB,cAAcC,gBAAgB,EAC9BC,gBAAgB,KAAK,EACL;IAChB,MAAM,EAAE,SAASC,WAAW,EAAE,GAAGC;IACjC,MAAMC,eAAwBJ,oBAAoBE;IAClD,MAAMG,SAASC,OAAqCC;IACpD,MAAMC,SAASF,OAAeC;IAC9B,MAAME,WAAWC,QACf,IAAMhB,QAAQiB,kBAAkBhB,aAAa,aAC7C;QAACD;QAAMC;KAAS;IAElB,MAAM,CAACiB,YAAYC,cAAc,GAAGC,SAAS;IAC7C,MAAMC,UAAUL,QACd,IAAMM,oBAAoB;YAAE,UAAUJ,aAAa,OAAO;QAAM,IAChE;QAACA;KAAW;IAEd,MAAMK,gBAAgBC,YACpB,CAACC,gBAAgBC;QACff,OAAO,OAAO,GAAGc;QACjBX,OAAO,OAAO,GAAGY;QAEjBC,gBAAgBF,gBAAgBC,WAAWvB;QAC3C,IAAIyB,OAAO,QAAQ,CAAC1B,cAClB2B,WAAW;YACTJ,eAAe,UAAU,CAACvB;QAC5B;QAGF,IAAIK,eAEFsB,WAAW;YACTJ,eAAe,SAAS,CAAC,iCAAiC;QAC5D,GAAG;IAEP,GACA;QAACtB;QAAQD;QAAaK;KAAc;IAGtCuB,UACE,IAAM;YACJnB,OAAO,OAAO,EAAE,SAAS;QAC3B,GACA,EAAE;IAGJ,OAAO,WAAP,GACE,KAAC;QACC,WAAWoB,KACT,oBACA,eACAC,YAAAA,CAAAA,cAAqB,EACrB5B,WAAW4B,aAAAA,KAAe,EAC1BnC;QAEF,OAAOC;;YAENO,iBAAiB4B,QAAQhC,aAAa,WAAbA,GACxB,KAAC;gBAAI,WAAW+B,aAAAA,MAAgB;;kCAC9B,IAAC;kCAAKE,YAAYjC;;kCAClB,IAAC;wBAAI,OAAO;4BAAE,MAAM;wBAAE;;kCACtB,IAAC;kCACC,kBAACkC,UAAQA;4BACP,WAAWH,aAAAA,IAAc;4BACzB,OAAM;4BACN,SAASd;4BACT,UAAU,CAACkB;gCACTjB,cAAciB,IAAI,MAAM,CAAC,OAAO;4BAClC;sCACD;;;;;0BAMP,IAAC;gBAAI,WAAWL,KAAKC,aAAAA,OAAiB,EAAE;0BACtC,kBAACK,QAAMA;oBACL,OAAO3B,eAAe,aAAa;oBACnC,UAAUK;oBACV,OAAOhB;oBACP,SAASsB;oBACT,SAASE;;;;;AAKnB"}
@@ -10,8 +10,7 @@ export interface CodeViewerProps {
10
10
  */
11
11
  isEmbed?: boolean;
12
12
  /**
13
- * Whether to use light theme configuration
14
- * @default true
13
+ * Whether to use light theme configuration. If not specified the global theme is used.
15
14
  */
16
15
  isLightTheme?: boolean;
17
16
  /**
@@ -1,5 +1,5 @@
1
1
  import { DiffViewerProps } from './interface.js';
2
- export declare function DiffViewer({ className, style, original, modified, originalFilePath, modifiedFilePath, originalLang, modifiedLang, isEmbed, isLightTheme, headerVisible, }: DiffViewerProps): import("react").JSX.Element;
2
+ export declare function DiffViewer({ className, style, original, modified, originalFilePath, modifiedFilePath, originalLang, modifiedLang, isEmbed, isLightTheme: isLightThemeProp, headerVisible, }: DiffViewerProps): import("react").JSX.Element;
3
3
  export type { DiffViewerProps } from './interface.js';
4
4
  export { useDiffDrawer } from './useDiffDrawer.js';
5
5
  export { defineMonacoDiffOptions } from './utils.js';
@@ -6,7 +6,10 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
6
6
  import { getFileName, getFilePathFormat } from "../CodeViewer/utils.mjs";
7
7
  import index_module from "./index.module.mjs";
8
8
  import { defineMonacoDiffOptions } from "./utils.mjs";
9
- function DiffViewer({ className, style, original = '', modified = '', originalFilePath = '', modifiedFilePath = '', originalLang, modifiedLang, isEmbed = false, isLightTheme = true, headerVisible = true }) {
9
+ import { useTheme } from "../../../utils/index.mjs";
10
+ function DiffViewer({ className, style, original = '', modified = '', originalFilePath = '', modifiedFilePath = '', originalLang, modifiedLang, isEmbed = false, isLightTheme: isLightThemeProp, headerVisible = true }) {
11
+ const { isLight: isLightMode } = useTheme();
12
+ const isLightTheme = isLightThemeProp ?? isLightMode;
10
13
  const [isSideBySide, setIsSideBySide] = useState(true);
11
14
  const editor = useRef(void 0);
12
15
  const originalLanguage = useMemo(()=>originalLang || getFilePathFormat(originalFilePath) || 'plaintext', [
@@ -1 +1 @@
1
- {"version":3,"file":"components/base/DiffViewer/index.mjs","sources":["../../../../src/components/base/DiffViewer/index.tsx"],"sourcesContent":["import { DiffEditor, MonacoDiffEditor } from '@monaco-editor/react';\nimport { Checkbox } from 'antd';\nimport clsx from 'clsx';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { getFileName, getFilePathFormat } from '../CodeViewer/utils';\nimport styles from './index.module.scss';\nimport { DiffViewerProps } from './interface';\nimport { defineMonacoDiffOptions } from './utils';\n\nexport function DiffViewer({\n className,\n style,\n original = '',\n modified = '',\n originalFilePath = '',\n modifiedFilePath = '',\n originalLang,\n modifiedLang,\n isEmbed = false,\n isLightTheme = true,\n headerVisible = true,\n}: DiffViewerProps) {\n const [isSideBySide, setIsSideBySide] = useState(true);\n const editor = useRef<MonacoDiffEditor>(undefined);\n const originalLanguage = useMemo(\n () => originalLang || getFilePathFormat(originalFilePath) || 'plaintext',\n [originalLang, originalFilePath],\n );\n const modifiedLanguage = useMemo(\n () => modifiedLang || getFilePathFormat(modifiedFilePath) || 'plaintext',\n [modifiedLang, modifiedFilePath],\n );\n const options = useMemo(\n () => defineMonacoDiffOptions({ renderSideBySide: isSideBySide }),\n [isSideBySide],\n );\n const onEditorMount = useCallback((editorInstance: MonacoDiffEditor) => {\n editor.current = editorInstance;\n }, []);\n const theme = isLightTheme ? 'vs-light' : 'vs-dark';\n\n useEffect(\n () => () => {\n editor.current?.setModel(null);\n },\n [],\n );\n\n return (\n <div\n className={clsx(\n 'monaco-component',\n 'diff-viewer',\n styles['diff-viewer'],\n isEmbed && styles['embed'],\n className,\n )}\n style={style}\n >\n {headerVisible && (\n <div className={styles['header']}>\n <div>{getFileName(originalFilePath)}</div>\n <div style={{ flex: 1 }} />\n <div>\n <Checkbox\n className={styles['text']}\n title=\"side-by-side\"\n checked={isSideBySide}\n onChange={(evt) => {\n setIsSideBySide(evt.target.checked);\n }}\n >\n side-by-side\n </Checkbox>\n </div>\n </div>\n )}\n <div className={clsx(styles['content'], 'editor-wrap')}>\n <DiffEditor\n theme={theme}\n originalLanguage={originalLanguage}\n modifiedLanguage={modifiedLanguage}\n original={original}\n modified={modified}\n width=\"100%\"\n options={options}\n onMount={onEditorMount}\n />\n </div>\n </div>\n );\n}\n\nexport type { DiffViewerProps } from './interface';\nexport { useDiffDrawer } from './useDiffDrawer';\nexport { defineMonacoDiffOptions } from './utils';\n"],"names":["DiffViewer","className","style","original","modified","originalFilePath","modifiedFilePath","originalLang","modifiedLang","isEmbed","isLightTheme","headerVisible","isSideBySide","setIsSideBySide","useState","editor","useRef","undefined","originalLanguage","useMemo","getFilePathFormat","modifiedLanguage","options","defineMonacoDiffOptions","onEditorMount","useCallback","editorInstance","theme","useEffect","clsx","styles","getFileName","Checkbox","evt","DiffEditor"],"mappings":";;;;;;;;AASO,SAASA,WAAW,EACzBC,SAAS,EACTC,KAAK,EACLC,WAAW,EAAE,EACbC,WAAW,EAAE,EACbC,mBAAmB,EAAE,EACrBC,mBAAmB,EAAE,EACrBC,YAAY,EACZC,YAAY,EACZC,UAAU,KAAK,EACfC,eAAe,IAAI,EACnBC,gBAAgB,IAAI,EACJ;IAChB,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SAAS;IACjD,MAAMC,SAASC,OAAyBC;IACxC,MAAMC,mBAAmBC,QACvB,IAAMZ,gBAAgBa,kBAAkBf,qBAAqB,aAC7D;QAACE;QAAcF;KAAiB;IAElC,MAAMgB,mBAAmBF,QACvB,IAAMX,gBAAgBY,kBAAkBd,qBAAqB,aAC7D;QAACE;QAAcF;KAAiB;IAElC,MAAMgB,UAAUH,QACd,IAAMI,wBAAwB;YAAE,kBAAkBX;QAAa,IAC/D;QAACA;KAAa;IAEhB,MAAMY,gBAAgBC,YAAY,CAACC;QACjCX,OAAO,OAAO,GAAGW;IACnB,GAAG,EAAE;IACL,MAAMC,QAAQjB,eAAe,aAAa;IAE1CkB,UACE,IAAM;YACJb,OAAO,OAAO,EAAE,SAAS;QAC3B,GACA,EAAE;IAGJ,OAAO,WAAP,GACE,KAAC;QACC,WAAWc,KACT,oBACA,eACAC,YAAAA,CAAAA,cAAqB,EACrBrB,WAAWqB,aAAAA,KAAe,EAC1B7B;QAEF,OAAOC;;YAENS,iBAAiB,WAAjBA,GACC,KAAC;gBAAI,WAAWmB,aAAAA,MAAgB;;kCAC9B,IAAC;kCAAKC,YAAY1B;;kCAClB,IAAC;wBAAI,OAAO;4BAAE,MAAM;wBAAE;;kCACtB,IAAC;kCACC,kBAAC2B,UAAQA;4BACP,WAAWF,aAAAA,IAAc;4BACzB,OAAM;4BACN,SAASlB;4BACT,UAAU,CAACqB;gCACTpB,gBAAgBoB,IAAI,MAAM,CAAC,OAAO;4BACpC;sCACD;;;;;0BAMP,IAAC;gBAAI,WAAWJ,KAAKC,aAAAA,OAAiB,EAAE;0BACtC,kBAACI,YAAUA;oBACT,OAAOP;oBACP,kBAAkBT;oBAClB,kBAAkBG;oBAClB,UAAUlB;oBACV,UAAUC;oBACV,OAAM;oBACN,SAASkB;oBACT,SAASE;;;;;AAKnB"}
1
+ {"version":3,"file":"components/base/DiffViewer/index.mjs","sources":["../../../../src/components/base/DiffViewer/index.tsx"],"sourcesContent":["import { DiffEditor, MonacoDiffEditor } from '@monaco-editor/react';\nimport { Checkbox } from 'antd';\nimport clsx from 'clsx';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { getFileName, getFilePathFormat } from '../CodeViewer/utils';\nimport styles from './index.module.scss';\nimport { DiffViewerProps } from './interface';\nimport { defineMonacoDiffOptions } from './utils';\nimport { useTheme } from '../../../utils';\n\nexport function DiffViewer({\n className,\n style,\n original = '',\n modified = '',\n originalFilePath = '',\n modifiedFilePath = '',\n originalLang,\n modifiedLang,\n isEmbed = false,\n isLightTheme: isLightThemeProp,\n headerVisible = true,\n}: DiffViewerProps) {\n const { isLight: isLightMode } = useTheme();\n const isLightTheme: boolean = isLightThemeProp ?? isLightMode;\n const [isSideBySide, setIsSideBySide] = useState(true);\n const editor = useRef<MonacoDiffEditor>(undefined);\n const originalLanguage = useMemo(\n () => originalLang || getFilePathFormat(originalFilePath) || 'plaintext',\n [originalLang, originalFilePath],\n );\n const modifiedLanguage = useMemo(\n () => modifiedLang || getFilePathFormat(modifiedFilePath) || 'plaintext',\n [modifiedLang, modifiedFilePath],\n );\n const options = useMemo(\n () => defineMonacoDiffOptions({ renderSideBySide: isSideBySide }),\n [isSideBySide],\n );\n const onEditorMount = useCallback((editorInstance: MonacoDiffEditor) => {\n editor.current = editorInstance;\n }, []);\n const theme = isLightTheme ? 'vs-light' : 'vs-dark';\n\n useEffect(\n () => () => {\n editor.current?.setModel(null);\n },\n [],\n );\n\n return (\n <div\n className={clsx(\n 'monaco-component',\n 'diff-viewer',\n styles['diff-viewer'],\n isEmbed && styles['embed'],\n className,\n )}\n style={style}\n >\n {headerVisible && (\n <div className={styles['header']}>\n <div>{getFileName(originalFilePath)}</div>\n <div style={{ flex: 1 }} />\n <div>\n <Checkbox\n className={styles['text']}\n title=\"side-by-side\"\n checked={isSideBySide}\n onChange={(evt) => {\n setIsSideBySide(evt.target.checked);\n }}\n >\n side-by-side\n </Checkbox>\n </div>\n </div>\n )}\n <div className={clsx(styles['content'], 'editor-wrap')}>\n <DiffEditor\n theme={theme}\n originalLanguage={originalLanguage}\n modifiedLanguage={modifiedLanguage}\n original={original}\n modified={modified}\n width=\"100%\"\n options={options}\n onMount={onEditorMount}\n />\n </div>\n </div>\n );\n}\n\nexport type { DiffViewerProps } from './interface';\nexport { useDiffDrawer } from './useDiffDrawer';\nexport { defineMonacoDiffOptions } from './utils';\n"],"names":["DiffViewer","className","style","original","modified","originalFilePath","modifiedFilePath","originalLang","modifiedLang","isEmbed","isLightThemeProp","headerVisible","isLightMode","useTheme","isLightTheme","isSideBySide","setIsSideBySide","useState","editor","useRef","undefined","originalLanguage","useMemo","getFilePathFormat","modifiedLanguage","options","defineMonacoDiffOptions","onEditorMount","useCallback","editorInstance","theme","useEffect","clsx","styles","getFileName","Checkbox","evt","DiffEditor"],"mappings":";;;;;;;;;AAUO,SAASA,WAAW,EACzBC,SAAS,EACTC,KAAK,EACLC,WAAW,EAAE,EACbC,WAAW,EAAE,EACbC,mBAAmB,EAAE,EACrBC,mBAAmB,EAAE,EACrBC,YAAY,EACZC,YAAY,EACZC,UAAU,KAAK,EACf,cAAcC,gBAAgB,EAC9BC,gBAAgB,IAAI,EACJ;IAChB,MAAM,EAAE,SAASC,WAAW,EAAE,GAAGC;IACjC,MAAMC,eAAwBJ,oBAAoBE;IAClD,MAAM,CAACG,cAAcC,gBAAgB,GAAGC,SAAS;IACjD,MAAMC,SAASC,OAAyBC;IACxC,MAAMC,mBAAmBC,QACvB,IAAMf,gBAAgBgB,kBAAkBlB,qBAAqB,aAC7D;QAACE;QAAcF;KAAiB;IAElC,MAAMmB,mBAAmBF,QACvB,IAAMd,gBAAgBe,kBAAkBjB,qBAAqB,aAC7D;QAACE;QAAcF;KAAiB;IAElC,MAAMmB,UAAUH,QACd,IAAMI,wBAAwB;YAAE,kBAAkBX;QAAa,IAC/D;QAACA;KAAa;IAEhB,MAAMY,gBAAgBC,YAAY,CAACC;QACjCX,OAAO,OAAO,GAAGW;IACnB,GAAG,EAAE;IACL,MAAMC,QAAQhB,eAAe,aAAa;IAE1CiB,UACE,IAAM;YACJb,OAAO,OAAO,EAAE,SAAS;QAC3B,GACA,EAAE;IAGJ,OAAO,WAAP,GACE,KAAC;QACC,WAAWc,KACT,oBACA,eACAC,YAAAA,CAAAA,cAAqB,EACrBxB,WAAWwB,aAAAA,KAAe,EAC1BhC;QAEF,OAAOC;;YAENS,iBAAiB,WAAjBA,GACC,KAAC;gBAAI,WAAWsB,aAAAA,MAAgB;;kCAC9B,IAAC;kCAAKC,YAAY7B;;kCAClB,IAAC;wBAAI,OAAO;4BAAE,MAAM;wBAAE;;kCACtB,IAAC;kCACC,kBAAC8B,UAAQA;4BACP,WAAWF,aAAAA,IAAc;4BACzB,OAAM;4BACN,SAASlB;4BACT,UAAU,CAACqB;gCACTpB,gBAAgBoB,IAAI,MAAM,CAAC,OAAO;4BACpC;sCACD;;;;;0BAMP,IAAC;gBAAI,WAAWJ,KAAKC,aAAAA,OAAiB,EAAE;0BACtC,kBAACI,YAAUA;oBACT,OAAOP;oBACP,kBAAkBT;oBAClB,kBAAkBG;oBAClB,UAAUrB;oBACV,UAAUC;oBACV,OAAM;oBACN,SAASqB;oBACT,SAASE;;;;;AAKnB"}