@rsdoctor/components 1.3.7 → 1.3.9

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 (281) hide show
  1. package/dist/common/imgs/connection-point.mjs.map +1 -1
  2. package/dist/common/imgs/webpack.mjs.map +1 -1
  3. package/dist/common/svg/bundle-size.mjs.map +1 -1
  4. package/dist/common/svg/error.mjs.map +1 -1
  5. package/dist/common/svg/file-css.mjs.map +1 -1
  6. package/dist/common/svg/file-html.mjs.map +1 -1
  7. package/dist/common/svg/file-image.mjs.map +1 -1
  8. package/dist/common/svg/file-js.mjs.map +1 -1
  9. package/dist/common/svg/file-unknown.mjs.map +1 -1
  10. package/dist/common/svg/file.mjs.map +1 -1
  11. package/dist/common/svg/files/css.mjs.map +1 -1
  12. package/dist/common/svg/files/html.mjs.map +1 -1
  13. package/dist/common/svg/files/image.mjs.map +1 -1
  14. package/dist/common/svg/files/js.mjs.map +1 -1
  15. package/dist/common/svg/files/unkown-file.mjs.map +1 -1
  16. package/dist/common/svg/loader/input.mjs.map +1 -1
  17. package/dist/common/svg/loader/output.mjs.map +1 -1
  18. package/dist/common/svg/loader/step.mjs.map +1 -1
  19. package/dist/common/svg/navbar/bundle-size-active.mjs.map +1 -1
  20. package/dist/common/svg/navbar/bundle-size-inactive.mjs.map +1 -1
  21. package/dist/common/svg/navbar/compile-analysis-active.mjs.map +1 -1
  22. package/dist/common/svg/navbar/compile-analysis-inactive.mjs.map +1 -1
  23. package/dist/common/svg/navbar/overall-active.mjs.map +1 -1
  24. package/dist/common/svg/navbar/overall-inactive.mjs.map +1 -1
  25. package/dist/common/svg/output.mjs.map +1 -1
  26. package/dist/common/svg/source-size.mjs.map +1 -1
  27. package/dist/common/svg/source.mjs.map +1 -1
  28. package/dist/common/svg/total-size.mjs.map +1 -1
  29. package/dist/common/svg/version.mjs.map +1 -1
  30. package/dist/components/Alert/change.d.ts +1 -1
  31. package/dist/components/Alert/change.mjs.map +1 -1
  32. package/dist/components/Alert/ecma-version-check.d.ts +1 -1
  33. package/dist/components/Alert/ecma-version-check.mjs.map +1 -1
  34. package/dist/components/Alert/ecma-version-check.module.mjs.map +1 -1
  35. package/dist/components/Alert/file-relation.d.ts +1 -1
  36. package/dist/components/Alert/file-relation.mjs.map +1 -1
  37. package/dist/components/Alert/package-relation.d.ts +1 -1
  38. package/dist/components/Alert/package-relation.mjs.map +1 -1
  39. package/dist/components/Alert/package-relation.module.mjs.map +1 -1
  40. package/dist/components/Alert/view.d.ts +1 -1
  41. package/dist/components/Alert/view.mjs.map +1 -1
  42. package/dist/components/Alerts/bundle-alert.d.ts +2 -2
  43. package/dist/components/Alerts/bundle-alert.mjs.map +1 -1
  44. package/dist/components/Alerts/bundle-alert.module.mjs.map +1 -1
  45. package/dist/components/Alerts/bundle.mjs.map +1 -1
  46. package/dist/components/Alerts/collapse-cross-chunks.d.ts +1 -1
  47. package/dist/components/Alerts/collapse-cross-chunks.mjs.map +1 -1
  48. package/dist/components/Alerts/collapse.d.ts +1 -1
  49. package/dist/components/Alerts/collapse.mjs.map +1 -1
  50. package/dist/components/Alerts/collapse.module.mjs.map +1 -1
  51. package/dist/components/Alerts/compile.mjs.map +1 -1
  52. package/dist/components/Alerts/index.d.ts +3 -3
  53. package/dist/components/Alerts/list.mjs.map +1 -1
  54. package/dist/components/Alerts/list.module.mjs.map +1 -1
  55. package/dist/components/Alerts/overlay.mjs.map +1 -1
  56. package/dist/components/Alerts/overlay.module.mjs.map +1 -1
  57. package/dist/components/Badge/index.mjs.map +1 -1
  58. package/dist/components/Card/diff.d.ts +1 -1
  59. package/dist/components/Card/diff.mjs.map +1 -1
  60. package/dist/components/Card/index.d.ts +1 -1
  61. package/dist/components/Card/index.mjs.map +1 -1
  62. package/dist/components/Card/size.mjs.map +1 -1
  63. package/dist/components/Card/size.module.mjs.map +1 -1
  64. package/dist/components/Card/statistic.mjs.map +1 -1
  65. package/dist/components/Charts/TimelineCharts/index.d.ts +2 -2
  66. package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
  67. package/dist/components/Charts/TreeMap.mjs.map +1 -1
  68. package/dist/components/Charts/bootstrap.d.ts +1 -1
  69. package/dist/components/Charts/bootstrap.mjs.map +1 -1
  70. package/dist/components/Charts/common.d.ts +2 -2
  71. package/dist/components/Charts/common.mjs.map +1 -1
  72. package/dist/components/Charts/constants.mjs.map +1 -1
  73. package/dist/components/Charts/done.d.ts +1 -1
  74. package/dist/components/Charts/done.mjs.map +1 -1
  75. package/dist/components/Charts/index.mjs.map +1 -1
  76. package/dist/components/Charts/loader.d.ts +1 -1
  77. package/dist/components/Charts/loader.mjs.map +1 -1
  78. package/dist/components/Charts/minify.d.ts +1 -1
  79. package/dist/components/Charts/minify.mjs.map +1 -1
  80. package/dist/components/Charts/treemap.module.mjs.map +1 -1
  81. package/dist/components/Charts/types.mjs.map +1 -1
  82. package/dist/components/Charts/utils.d.ts +1 -1
  83. package/dist/components/Charts/utils.mjs.map +1 -1
  84. package/dist/components/Configuration/builder.mjs.map +1 -1
  85. package/dist/components/Configuration/builder.module.mjs.map +1 -1
  86. package/dist/components/Configuration/index.d.ts +1 -1
  87. package/dist/components/FileTree/css.mjs.map +1 -1
  88. package/dist/components/FileTree/html.mjs.map +1 -1
  89. package/dist/components/FileTree/image.mjs.map +1 -1
  90. package/dist/components/FileTree/index.mjs.map +1 -1
  91. package/dist/components/FileTree/js.mjs.map +1 -1
  92. package/dist/components/FileTree/unkown-file.mjs.map +1 -1
  93. package/dist/components/Form/keyword.mjs.map +1 -1
  94. package/dist/components/Keyword/index.mjs.map +1 -1
  95. package/dist/components/Keyword/style.module.mjs.map +1 -1
  96. package/dist/components/Layout/builder-select.mjs.map +1 -1
  97. package/dist/components/Layout/bundle-size-icon.mjs.map +1 -1
  98. package/dist/components/Layout/compile-icon.mjs.map +1 -1
  99. package/dist/components/Layout/constants.mjs.map +1 -1
  100. package/dist/components/Layout/header.mjs.map +1 -1
  101. package/dist/components/Layout/index.mjs.map +1 -1
  102. package/dist/components/Layout/menus.mjs.map +1 -1
  103. package/dist/components/Layout/overall-icon.mjs.map +1 -1
  104. package/dist/components/Layout/progress.mjs.map +1 -1
  105. package/dist/components/Loader/Analysis/files.mjs.map +1 -1
  106. package/dist/components/Loader/Analysis/index.mjs.map +1 -1
  107. package/dist/components/Loader/Analysis/input.mjs.map +1 -1
  108. package/dist/components/Loader/Analysis/output.mjs.map +1 -1
  109. package/dist/components/Loader/Analysis/style.module.mjs.map +1 -1
  110. package/dist/components/Loader/executions.mjs.map +1 -1
  111. package/dist/components/Loader/step.mjs.map +1 -1
  112. package/dist/components/Manifest/api.mjs.map +1 -1
  113. package/dist/components/Manifest/data.mjs.map +1 -1
  114. package/dist/components/Manifest/index.d.ts +2 -2
  115. package/dist/components/Opener/code.mjs.map +1 -1
  116. package/dist/components/Opener/index.d.ts +2 -2
  117. package/dist/components/Opener/vscode.mjs.map +1 -1
  118. package/dist/components/Overall/DataSummary.mjs.map +1 -1
  119. package/dist/components/Overall/DataSummary.module.mjs.map +1 -1
  120. package/dist/components/Overall/bundle.mjs.map +1 -1
  121. package/dist/components/Overall/bundle.module.mjs.map +1 -1
  122. package/dist/components/Overall/card.module.mjs.map +1 -1
  123. package/dist/components/Overall/compile.mjs.map +1 -1
  124. package/dist/components/Overall/compile.module.mjs.map +1 -1
  125. package/dist/components/Overall/help-center.mjs.map +1 -1
  126. package/dist/components/Overall/help-center.module.mjs.map +1 -1
  127. package/dist/components/Overall/index.d.ts +3 -3
  128. package/dist/components/Overall/list.module.mjs.map +1 -1
  129. package/dist/components/Overall/overview.mjs.map +1 -1
  130. package/dist/components/Overall/overview.module.mjs.map +1 -1
  131. package/dist/components/Overall/project.mjs.map +1 -1
  132. package/dist/components/Overall/project.module.mjs.map +1 -1
  133. package/dist/components/Plugins/webpack.mjs.map +1 -1
  134. package/dist/components/Resolver/analysis.mjs.map +1 -1
  135. package/dist/components/Select/index.mjs.map +1 -1
  136. package/dist/components/Status/failed.mjs.map +1 -1
  137. package/dist/components/Status/index.d.ts +1 -1
  138. package/dist/components/TextDrawer/duplicate.d.ts +2 -2
  139. package/dist/components/TextDrawer/duplicate.mjs.map +1 -1
  140. package/dist/components/TextDrawer/index.d.ts +1 -1
  141. package/dist/components/TextDrawer/index.mjs.map +1 -1
  142. package/dist/components/Title/index.mjs.map +1 -1
  143. package/dist/components/base/CodeViewer/index.d.ts +4 -4
  144. package/dist/components/base/CodeViewer/index.mjs.map +1 -1
  145. package/dist/components/base/CodeViewer/index.module.mjs.map +1 -1
  146. package/dist/components/base/CodeViewer/useCodeDrawer.d.ts +1 -1
  147. package/dist/components/base/CodeViewer/useCodeDrawer.mjs.map +1 -1
  148. package/dist/components/base/CodeViewer/utils.mjs.map +1 -1
  149. package/dist/components/base/DiffViewer/index.d.ts +4 -4
  150. package/dist/components/base/DiffViewer/index.mjs.map +1 -1
  151. package/dist/components/base/DiffViewer/index.module.mjs.map +1 -1
  152. package/dist/components/base/DiffViewer/useDiffDrawer.d.ts +1 -1
  153. package/dist/components/base/DiffViewer/useDiffDrawer.mjs.map +1 -1
  154. package/dist/components/base/DiffViewer/utils.mjs.map +1 -1
  155. package/dist/components/base/index.d.ts +2 -2
  156. package/dist/components/index.d.ts +10 -10
  157. package/dist/config.d.ts +1 -1
  158. package/dist/config.mjs.map +1 -1
  159. package/dist/constants.mjs.map +1 -1
  160. package/dist/index.d.ts +3 -3
  161. package/dist/pages/BundleSize/components/asset.d.ts +1 -1
  162. package/dist/pages/BundleSize/components/asset.mjs.map +1 -1
  163. package/dist/pages/BundleSize/components/card.module.mjs.map +1 -1
  164. package/dist/pages/BundleSize/components/cards.mjs.map +1 -1
  165. package/dist/pages/BundleSize/components/index.mjs.map +1 -1
  166. package/dist/pages/BundleSize/components/index.module.mjs.map +1 -1
  167. package/dist/pages/BundleSize/components/search-modal.mjs.map +1 -1
  168. package/dist/pages/BundleSize/config.mjs.map +1 -1
  169. package/dist/pages/BundleSize/constants.mjs.map +1 -1
  170. package/dist/pages/BundleSize/index.d.ts +1 -1
  171. package/dist/pages/BundleSize/index.mjs.map +1 -1
  172. package/dist/pages/ModuleAnalyze/chunks.mjs.map +1 -1
  173. package/dist/pages/ModuleAnalyze/components/fileTreeCom.d.ts +1 -1
  174. package/dist/pages/ModuleAnalyze/components/fileTreeCom.mjs.map +1 -1
  175. package/dist/pages/ModuleAnalyze/constants.mjs.map +1 -1
  176. package/dist/pages/ModuleAnalyze/dependency.mjs.map +1 -1
  177. package/dist/pages/ModuleAnalyze/fileTree.mjs.map +1 -1
  178. package/dist/pages/ModuleAnalyze/index.mjs.map +1 -1
  179. package/dist/pages/ModuleAnalyze/utils/hooks.mjs.map +1 -1
  180. package/dist/pages/ModuleAnalyze/utils/index.mjs.map +1 -1
  181. package/dist/pages/ModuleResolve/constants.mjs.map +1 -1
  182. package/dist/pages/ModuleResolve/index.d.ts +1 -1
  183. package/dist/pages/ModuleResolve/index.mjs.map +1 -1
  184. package/dist/pages/Overall/constants.mjs.map +1 -1
  185. package/dist/pages/Overall/index.d.ts +1 -1
  186. package/dist/pages/Overall/index.mjs.map +1 -1
  187. package/dist/pages/Overall/index.module.mjs.map +1 -1
  188. package/dist/pages/Overall/responsiveLayout.mjs.map +1 -1
  189. package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs.map +1 -1
  190. package/dist/pages/Resources/BundleDiff/DiffContainer/cards.d.ts +1 -1
  191. package/dist/pages/Resources/BundleDiff/DiffContainer/cards.mjs.map +1 -1
  192. package/dist/pages/Resources/BundleDiff/DiffContainer/changes.mjs.map +1 -1
  193. package/dist/pages/Resources/BundleDiff/DiffContainer/constants.mjs.map +1 -1
  194. package/dist/pages/Resources/BundleDiff/DiffContainer/index.d.ts +1 -1
  195. package/dist/pages/Resources/BundleDiff/DiffContainer/index.mjs.map +1 -1
  196. package/dist/pages/Resources/BundleDiff/DiffContainer/modules.d.ts +2 -2
  197. package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs.map +1 -1
  198. package/dist/pages/Resources/BundleDiff/DiffContainer/overview.mjs.map +1 -1
  199. package/dist/pages/Resources/BundleDiff/DiffContainer/packages.d.ts +1 -1
  200. package/dist/pages/Resources/BundleDiff/DiffContainer/packages.mjs.map +1 -1
  201. package/dist/pages/Resources/BundleDiff/DiffContainer/row.d.ts +1 -1
  202. package/dist/pages/Resources/BundleDiff/DiffContainer/row.mjs.map +1 -1
  203. package/dist/pages/Resources/BundleDiff/DiffContainer/types.d.ts +2 -2
  204. package/dist/pages/Resources/BundleDiff/DiffContainer/utils.mjs.map +1 -1
  205. package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.d.ts +1 -1
  206. package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs.map +1 -1
  207. package/dist/pages/Resources/BundleDiff/constants.mjs.map +1 -1
  208. package/dist/pages/Resources/BundleDiff/index.d.ts +2 -2
  209. package/dist/pages/Resources/BundleDiff/index.mjs.map +1 -1
  210. package/dist/pages/Resources/RuleIndex/constants.mjs.map +1 -1
  211. package/dist/pages/Resources/RuleIndex/index.d.ts +1 -1
  212. package/dist/pages/Resources/RuleIndex/index.mjs.map +1 -1
  213. package/dist/pages/TreeShaking/constants.mjs.map +1 -1
  214. package/dist/pages/TreeShaking/editor.d.ts +1 -1
  215. package/dist/pages/TreeShaking/editor.mjs.map +1 -1
  216. package/dist/pages/TreeShaking/index.d.ts +1 -1
  217. package/dist/pages/TreeShaking/index.mjs.map +1 -1
  218. package/dist/pages/TreeShaking/open-tag.mjs.map +1 -1
  219. package/dist/pages/TreeShaking/range.mjs.map +1 -1
  220. package/dist/pages/TreeShaking/space.mjs.map +1 -1
  221. package/dist/pages/TreeShaking/table.d.ts +1 -1
  222. package/dist/pages/TreeShaking/table.mjs.map +1 -1
  223. package/dist/pages/TreeShaking/utils.d.ts +1 -1
  224. package/dist/pages/TreeShaking/utils.mjs.map +1 -1
  225. package/dist/pages/Uploader/constants.mjs.map +1 -1
  226. package/dist/pages/Uploader/index.d.ts +1 -1
  227. package/dist/pages/Uploader/index.mjs.map +1 -1
  228. package/dist/pages/Uploader/utils.mjs.map +1 -1
  229. package/dist/pages/WebpackLoaders/Analysis/constants.mjs.map +1 -1
  230. package/dist/pages/WebpackLoaders/Analysis/index.d.ts +1 -1
  231. package/dist/pages/WebpackLoaders/Analysis/index.mjs.map +1 -1
  232. package/dist/pages/WebpackLoaders/Overall/constants.mjs.map +1 -1
  233. package/dist/pages/WebpackLoaders/Overall/index.d.ts +1 -1
  234. package/dist/pages/WebpackLoaders/Overall/index.mjs.map +1 -1
  235. package/dist/pages/WebpackLoaders/constants.mjs.map +1 -1
  236. package/dist/pages/WebpackPlugins/constants.mjs.map +1 -1
  237. package/dist/pages/WebpackPlugins/index.d.ts +1 -1
  238. package/dist/pages/WebpackPlugins/index.mjs.map +1 -1
  239. package/dist/pages/index.d.ts +11 -11
  240. package/dist/utils/data/base.mjs.map +1 -1
  241. package/dist/utils/data/brief.d.ts +1 -1
  242. package/dist/utils/data/brief.mjs.map +1 -1
  243. package/dist/utils/data/index.d.ts +1 -1
  244. package/dist/utils/data/index.mjs.map +1 -1
  245. package/dist/utils/data/local.d.ts +1 -1
  246. package/dist/utils/data/local.mjs.map +1 -1
  247. package/dist/utils/data/remote.d.ts +1 -1
  248. package/dist/utils/data/remote.mjs.map +1 -1
  249. package/dist/utils/file.mjs.map +1 -1
  250. package/dist/utils/hooks.d.ts +1 -1
  251. package/dist/utils/hooks.mjs +4 -3
  252. package/dist/utils/hooks.mjs.map +1 -1
  253. package/dist/utils/i18n/cn.d.ts +1 -1
  254. package/dist/utils/i18n/cn.mjs.map +1 -1
  255. package/dist/utils/i18n/en.mjs +3 -3
  256. package/dist/utils/i18n/en.mjs.map +1 -1
  257. package/dist/utils/i18n/index.mjs.map +1 -1
  258. package/dist/utils/index.d.ts +16 -16
  259. package/dist/utils/loader.mjs.map +1 -1
  260. package/dist/utils/locale.d.ts +1 -1
  261. package/dist/utils/locale.mjs.map +1 -1
  262. package/dist/utils/manifest.d.ts +4 -4
  263. package/dist/utils/manifest.mjs.map +1 -1
  264. package/dist/utils/request.mjs.map +1 -1
  265. package/dist/utils/routes.mjs.map +1 -1
  266. package/dist/utils/size.mjs.map +1 -1
  267. package/dist/utils/socket.mjs.map +1 -1
  268. package/dist/utils/stats.mjs.map +1 -1
  269. package/dist/utils/storage.d.ts +2 -2
  270. package/dist/utils/storage.mjs.map +1 -1
  271. package/dist/utils/string.mjs.map +1 -1
  272. package/dist/utils/time.mjs.map +1 -1
  273. package/dist/utils/url.mjs.map +1 -1
  274. package/dist/utils/worker/index.d.ts +4 -4
  275. package/dist/utils/worker/master.d.ts +2 -2
  276. package/dist/utils/worker/master.mjs.map +1 -1
  277. package/dist/utils/worker/utils.d.ts +1 -1
  278. package/dist/utils/worker/utils.mjs.map +1 -1
  279. package/dist/utils/worker/worker.d.ts +1 -1
  280. package/dist/utils/worker/worker.mjs.map +1 -1
  281. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"pages/BundleSize/components/index.mjs","sources":["webpack://@rsdoctor/components/./src/pages/BundleSize/components/index.tsx"],"sourcesContent":["import {\n CodeOutlined,\n CodepenCircleOutlined,\n DeploymentUnitOutlined,\n InfoCircleOutlined,\n} from '@ant-design/icons';\nimport { Client, SDK } from '@rsdoctor/types';\nimport {\n Button,\n Card,\n Col,\n Divider,\n Empty,\n InputNumber,\n Row,\n Select,\n Space,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { debounce, sumBy } from 'es-toolkit/compat';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useCodeDrawer } from 'src/components/base/CodeViewer/useCodeDrawer';\nimport { Badge as Bdg } from '../../../components/Badge';\nimport { FileTree } from '../../../components/FileTree';\nimport { KeywordInput } from '../../../components/Form/keyword';\nimport { Keyword } from '../../../components/Keyword';\nimport { ServerAPIProvider, withServerAPI } from '../../../components/Manifest';\nimport { Size } from '../../../constants';\nimport {\n createFileStructures,\n flattenTreemapData,\n formatSize,\n useI18n,\n} from '../../../utils';\nimport { GraphType } from '../constants';\nimport { AssetDetail } from './asset';\nimport { BundleCards } from './cards';\nimport styles from './index.module.scss';\nimport './index.sass';\nimport { SearchModal } from './search-modal';\nimport {\n AssetTreemapWithFilter,\n TreeNode,\n} from 'src/components/Charts/TreeMap';\nimport { Rspack } from '@rsdoctor/utils/common';\n\nconst { Option } = Select;\n\nconst cardBodyHeight = 600;\n\ninterface WebpackModulesOverallProps {\n cwd: string;\n errors: SDK.ErrorsData;\n summary: Client.RsdoctorClientAssetsSummary;\n entryPoints: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetEntryPoints>;\n}\nconst tabList = [\n {\n key: 'tree',\n label: (\n <Space>\n <Typography.Text>{'Tree Graph'}</Typography.Text>\n <Tooltip\n overlayStyle={{ maxWidth: 380 }}\n overlayInnerStyle={{ marginLeft: 16, padding: 10 }}\n color=\"white\"\n title={\n <Space direction=\"vertical\" color=\"white\" size=\"middle\">\n <Row>\n <Col>\n <Tag color=\"cyan\" style={{ margin: 0 }}>\n initial\n </Tag>\n <Typography.Text style={{ marginLeft: 4 }}>\n Identify whether the chunk is an initial chunk.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Tag color=\"green\" style={{ margin: 0 }}>\n concatenated\n </Tag>\n <Typography.Text style={{ marginLeft: 4 }}>\n Identify whether the module is a concatenated module\n </Typography.Text>\n <Tooltip\n overlayStyle={{ maxWidth: 408 }}\n placement=\"bottom\"\n color=\"white\"\n title={\n <Space direction=\"vertical\" color=\"white\">\n <Row>\n <Col>\n <Typography.Text strong>\n Concatenated Module\n </Typography.Text>\n <Typography.Text>\n : A performance optimization where multiple\n modules are merged (or \"hoisted\") into a single\n scope instead of wrapping each module in separate\n function closures. This reduces the bundle size\n and improves runtime performance by minimizing\n function call overhead.\n </Typography.Text>\n </Col>\n </Row>\n </Space>\n }\n >\n <InfoCircleOutlined\n style={{ color: 'rgba(0,0,0,.45)', marginLeft: 4 }}\n />\n </Tooltip>\n <Typography.Text>.</Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Button size=\"small\" icon={<CodepenCircleOutlined />} />\n <Typography.Text style={{ marginLeft: 4 }}>\n Open the code.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Button size=\"small\" icon={<DeploymentUnitOutlined />} />\n <Typography.Text style={{ marginLeft: 4 }}>\n View the module dependency, that is, module reasons in\n stats.json.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Tag color={'purple'}>{'Bundled: 15.77 KB'}</Tag>\n <Typography.Text>\n The final size of the output files after processing,\n bundling, and optimization. This is what is delivered to the\n browser.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Tag color={'orange'}>{'Source: 60.46 KB'}</Tag>\n <Typography.Text>\n The original size of your source code files before any\n processing or transformations. This is the raw size of your\n code as you wrote it.\n </Typography.Text>\n </Col>\n </Row>\n </Space>\n }\n >\n <InfoCircleOutlined style={{ color: 'rgba(0,0,0,.45)' }} />\n </Tooltip>\n </Space>\n ),\n },\n {\n key: 'treemap',\n label: 'Treemap',\n },\n];\n\nexport const WebpackModulesOverallBase: React.FC<\n WebpackModulesOverallProps\n> = ({ errors, cwd, summary, entryPoints }) => {\n const [selectedEntryPoints, setEntryPoints] = useState<SDK.EntryPointData[]>(\n [],\n );\n const [inputModule, setModuleValue] = useState(0);\n const [inputAssetName, setAssetName] = useState('');\n const [inputAssetSize, setAssetSize] = useState(0);\n const [defaultExpandAll, setDefaultExpandAll] = useState(false);\n const [inputModuleUnit, setModuleUnit] = useState('');\n const [inputChunkUnit, setChunkUnit] = useState('');\n const [assetPath, setAssetPath] = useState<string | null>(null);\n const [graphType, setGraphType] = useState('tree' as GraphType);\n const { showCode, codeDrawerComponent } = useCodeDrawer(\n 'Do not have the codes of assets. If you use the lite or brief mode, there will have codes.',\n );\n\n const { t } = useI18n();\n\n const assets = summary.all.total.files;\n\n const handleChange = useCallback(\n (type: string) => (value: string) => {\n if (type === 'module') {\n setModuleUnit(value);\n } else if (type === 'chunk') {\n setChunkUnit(value);\n }\n },\n [],\n );\n\n const selectAfter = (type: string) => (\n <Select defaultValue=\"kb\" onChange={handleChange(type)}>\n <Option value=\"kb\">KB</Option>\n <Option value=\"mb\">MB</Option>\n </Select>\n );\n const onChangeModule = useCallback(\n debounce((newValue: number) => {\n const count =\n inputModuleUnit === 'mb' ? newValue * 1024 * 1024 : newValue * 1024;\n setModuleValue(count);\n }, 300),\n [],\n );\n\n const onChangeAsset = useCallback(\n debounce((newValue: number) => {\n const count =\n inputChunkUnit === 'mb' ? newValue * 1024 * 1024 : newValue * 1024;\n setAssetSize(count);\n }, 300),\n [],\n );\n\n const filteredAssets = useMemo(() => {\n let res = assets.slice();\n\n if (inputAssetName) {\n res = res.filter((e) => e.path.indexOf(inputAssetName) > -1);\n }\n\n if (inputAssetSize > 0) {\n res = res.filter((e) => e.size >= inputAssetSize);\n }\n\n if (selectedEntryPoints.length) {\n res = res.filter((e) => {\n if (selectedEntryPoints.some((ep) => ep.assets.includes(e.path))) {\n return true;\n }\n return false;\n });\n }\n\n return res.sort((a, b) => {\n const _a = a.path.indexOf('/') > -1 ? 1 : 0;\n const _b = b.path.indexOf('/') > -1 ? 1 : 0;\n // return _a - _b;\n return _b - _a;\n });\n }, [assets, selectedEntryPoints, inputAssetName, inputAssetSize]);\n\n useEffect(() => {\n function getFileExtension(filePath: string) {\n const parts = filePath.split('.');\n return parts.length > 1 ? parts.pop() : '';\n }\n\n summary.all.total.files.forEach((f) => {\n const ext = getFileExtension(f.path);\n if (ext === 'js') {\n setAssetPath(f.path);\n }\n });\n }, [summary.all.total.files]);\n\n const assetsStructures = useMemo(() => {\n const res = createFileStructures({\n files: filteredAssets.map((e) => e.path).filter(Boolean),\n fileTitle(file, basename) {\n const target = filteredAssets.find((e) => e.path === file)!;\n const { size, initial, path, content } = target;\n\n return (\n <div\n className={styles.assetBox}\n onClick={() => {\n setAssetPath(path);\n }}\n >\n <Keyword text={basename} keyword={''} className={styles.fileText} />\n <Space size=\"small\" className={styles.assetsTag}>\n <Divider type=\"vertical\" />\n <Typography.Text style={{ color: '#4FD233' }}>\n {formatSize(size)}\n </Typography.Text>\n <Divider type=\"vertical\" />\n {initial ? (\n <Typography.Text style={{ color: '#009A9E' }}>\n initial\n </Typography.Text>\n ) : null}\n <CodeOutlined\n style={{ fontSize: 14, padding: 0 }}\n onClick={() => showCode({ code: content!, filePath: path })}\n />\n </Space>\n </div>\n );\n },\n });\n return res;\n }, [filteredAssets]);\n\n const onSearch = (value: string) => {\n setAssetName(value);\n setDefaultExpandAll(false);\n };\n\n return (\n <>\n <div className=\"bundle-size-card\">\n <BundleCards cwd={cwd} errors={errors} summary={summary} />\n <Card\n className=\"bundle-size=card\"\n tabList={tabList}\n activeTabKey={graphType as 'tree' | 'treemap'}\n onTabChange={(e) => setGraphType(e as 'tree' | 'treemap')}\n hidden={graphType === 'tree'}\n tabProps={{\n size: 'middle',\n }}\n >\n <ServerAPIProvider api={SDK.ServerAPI.API.GetProjectInfo}>\n {(data) => {\n const { isRspack, hasSourceMap } = Rspack.checkSourceMapSupport(\n data.configs,\n );\n return (\n <ServerAPIProvider api={SDK.ServerAPI.API.GetSummaryBundles}>\n {(data) => {\n // Filter assets to only show JS (js, cjs, mjs), CSS, and HTML files\n const isTargetFileType = (filePath: string): boolean => {\n const ext = filePath.toLowerCase().split('.').pop() || '';\n return (\n ext === 'js' ||\n ext === 'cjs' ||\n ext === 'mjs' ||\n ext === 'css' ||\n ext === 'html'\n );\n };\n\n const computedTreeData: TreeNode[] = data\n .filter((item) => isTargetFileType(item.asset.path))\n .map((item) => ({\n name: item.asset.path,\n value: item.asset.size,\n children: flattenTreemapData(item.modules).children,\n }));\n return (\n <AssetTreemapWithFilter\n treeData={computedTreeData}\n bundledSize={hasSourceMap || isRspack}\n />\n );\n }}\n </ServerAPIProvider>\n );\n }}\n </ServerAPIProvider>\n </Card>\n\n <Card\n hidden={graphType === 'treemap'}\n tabList={tabList}\n activeTabKey={graphType as 'tree' | 'treemap'}\n onTabChange={(e) => setGraphType(e as 'tree' | 'treemap')}\n tabProps={{\n size: 'middle',\n }}\n >\n <Space direction=\"vertical\">\n <Row align=\"middle\" gutter={[Size.BasePadding, Size.BasePadding]}>\n {entryPoints && entryPoints.length ? (\n <Col>\n <Select\n mode=\"multiple\"\n value={selectedEntryPoints.map((e) => e.name)}\n style={{ minWidth: 230, width: 'auto', maxWidth: 300 }}\n placeholder={'filter assets by entry point'}\n onChange={(name: string[]) => {\n setEntryPoints(\n name\n .map((e) => entryPoints.find((ep) => ep.name === e)!)\n .filter(Boolean),\n );\n }}\n allowClear\n onClear={() => {\n setEntryPoints([]);\n }}\n >\n {entryPoints.map((e) => {\n return (\n <Select.Option key={e.name} value={e.name}>\n <Space>\n <Bdg\n label={e.name}\n value={formatSize(e.size)}\n tooltip={e.name}\n />\n </Space>\n </Select.Option>\n );\n })}\n </Select>\n </Col>\n ) : null}\n <Col>\n <KeywordInput\n placeholder=\"search asset by keyword\"\n onChange={onSearch}\n />\n </Col>\n <Col span={6}>\n <InputNumber\n min={0}\n style={{ width: '95%' }}\n addonBefore={\n <Space>\n <Typography.Text\n style={{ fontSize: 14, color: 'inherit' }}\n >\n Asset Size\n </Typography.Text>\n <Tooltip\n title={t(\n 'filter the output assets which size is greater than the input value',\n )}\n style={{ marginLeft: 3 }}\n >\n <InfoCircleOutlined\n style={{ color: 'rgba(0,0,0,.45)' }}\n />\n </Tooltip>\n </Space>\n }\n onChange={(value) => onChangeAsset(Number(value))}\n addonAfter={selectAfter('chunk')}\n />\n </Col>\n <Col span={6}>\n <InputNumber\n min={0}\n style={{ width: '95%' }}\n addonBefore={\n <Space>\n <Typography.Text\n style={{ fontSize: 14, color: 'inherit' }}\n >\n Module Size\n </Typography.Text>\n <Tooltip\n title={t(\n 'filter the modules which size is greater than the input value',\n )}\n style={{ marginLeft: 3 }}\n >\n <InfoCircleOutlined\n style={{ color: 'rgba(0,0,0,.45)' }}\n />\n </Tooltip>\n </Space>\n }\n onChange={(value) => {\n onChangeModule(Number(value));\n }}\n addonAfter={selectAfter('module')}\n />\n </Col>\n </Row>\n <Row>\n <SearchModal />\n </Row>\n <Row align=\"middle\" gutter={[Size.BasePadding, Size.BasePadding]}>\n <Col span={24}>\n {filteredAssets.length ? (\n <Row gutter={Size.BasePadding}>\n <Col span={6}>\n <Card\n title={\n <Space>\n <Typography.Text>\n {t('Output Assets List')}\n </Typography.Text>\n <Divider type=\"vertical\" />\n <Tooltip\n title={`total assets count is ${assets.length}, the filtered assets count is ${filteredAssets.length}`}\n >\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 12, fontWeight: 400 }}\n >\n {filteredAssets.length} / {assets.length}\n </Typography.Text>\n </Tooltip>\n <Divider type=\"vertical\" />\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 12, fontWeight: 400 }}\n >\n {formatSize(sumBy(filteredAssets, (e) => e.size))}\n </Typography.Text>\n </Space>\n }\n size=\"small\"\n bodyStyle={{\n overflow: 'scroll',\n height: cardBodyHeight,\n }}\n >\n <FileTree\n className={styles.assets}\n treeData={assetsStructures}\n autoExpandParent\n defaultExpandAll={\n defaultExpandAll || filteredAssets.length <= 20\n }\n key={`tree_${inputAssetName}_${defaultExpandAll}`}\n />\n </Card>\n </Col>\n <Col span={18}>\n {assetPath ? (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetDetails}\n body={{ assetPath }}\n >\n {(details) => (\n <AssetDetail\n asset={details.asset}\n chunks={details.chunks}\n modules={details.modules}\n height={cardBodyHeight}\n moduleSizeLimit={inputModule}\n root={cwd}\n />\n )}\n </ServerAPIProvider>\n ) : (\n <Card\n bodyStyle={{\n height: cardBodyHeight,\n }}\n >\n <Empty\n description={\n <Typography.Text strong>\n Click the file path on the left to show the\n modules of the asset\n </Typography.Text>\n }\n />\n </Card>\n )}\n </Col>\n </Row>\n ) : (\n <Empty />\n )}\n </Col>\n </Row>\n </Space>\n </Card>\n </div>\n {codeDrawerComponent}\n </>\n );\n};\n\nexport const WebpackModulesOverall = withServerAPI({\n api: SDK.ServerAPI.API.GetProjectInfo,\n responsePropName: 'project',\n Component: (props: {\n project: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetProjectInfo>;\n }) => {\n const { root, errors } = props.project;\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: true }}\n >\n {(summary) => {\n return (\n <ServerAPIProvider api={SDK.ServerAPI.API.GetEntryPoints}>\n {(entryPoints) => (\n <WebpackModulesOverallBase\n cwd={root}\n errors={errors}\n summary={summary}\n entryPoints={entryPoints}\n />\n )}\n </ServerAPIProvider>\n );\n }}\n </ServerAPIProvider>\n );\n },\n});\n"],"names":["Option","Select","cardBodyHeight","tabList","Space","Typography","Tooltip","Row","Col","Tag","InfoCircleOutlined","Button","CodepenCircleOutlined","DeploymentUnitOutlined","WebpackModulesOverallBase","errors","cwd","summary","entryPoints","selectedEntryPoints","setEntryPoints","useState","inputModule","setModuleValue","inputAssetName","setAssetName","inputAssetSize","setAssetSize","defaultExpandAll","setDefaultExpandAll","inputModuleUnit","setModuleUnit","inputChunkUnit","setChunkUnit","assetPath","setAssetPath","graphType","setGraphType","showCode","codeDrawerComponent","useCodeDrawer","t","useI18n","assets","handleChange","useCallback","type","value","selectAfter","onChangeModule","debounce","newValue","count","onChangeAsset","filteredAssets","useMemo","res","e","ep","a","b","_a","_b","useEffect","getFileExtension","filePath","parts","f","ext","assetsStructures","createFileStructures","Boolean","file","basename","target","size","initial","path","content","styles","Keyword","Divider","formatSize","CodeOutlined","onSearch","BundleCards","Card","ServerAPIProvider","SDK","data","isRspack","hasSourceMap","Rspack","isTargetFileType","computedTreeData","item","flattenTreemapData","AssetTreemapWithFilter","Size","name","Bdg","KeywordInput","InputNumber","Number","SearchModal","sumBy","FileTree","details","AssetDetail","Empty","WebpackModulesOverall","withServerAPI","props","root"],"mappings":"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"}
1
+ {"version":3,"file":"pages/BundleSize/components/index.mjs","sources":["../../../../src/pages/BundleSize/components/index.tsx"],"sourcesContent":["import {\n CodeOutlined,\n CodepenCircleOutlined,\n DeploymentUnitOutlined,\n InfoCircleOutlined,\n} from '@ant-design/icons';\nimport { Client, SDK } from '@rsdoctor/types';\nimport {\n Button,\n Card,\n Col,\n Divider,\n Empty,\n InputNumber,\n Row,\n Select,\n Space,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { debounce, sumBy } from 'es-toolkit/compat';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useCodeDrawer } from 'src/components/base/CodeViewer/useCodeDrawer';\nimport { Badge as Bdg } from '../../../components/Badge';\nimport { FileTree } from '../../../components/FileTree';\nimport { KeywordInput } from '../../../components/Form/keyword';\nimport { Keyword } from '../../../components/Keyword';\nimport { ServerAPIProvider, withServerAPI } from '../../../components/Manifest';\nimport { Size } from '../../../constants';\nimport {\n createFileStructures,\n flattenTreemapData,\n formatSize,\n useI18n,\n} from '../../../utils';\nimport { GraphType } from '../constants';\nimport { AssetDetail } from './asset';\nimport { BundleCards } from './cards';\nimport styles from './index.module.scss';\nimport './index.sass';\nimport { SearchModal } from './search-modal';\nimport {\n AssetTreemapWithFilter,\n TreeNode,\n} from 'src/components/Charts/TreeMap';\nimport { Rspack } from '@rsdoctor/utils/common';\n\nconst { Option } = Select;\n\nconst cardBodyHeight = 600;\n\ninterface WebpackModulesOverallProps {\n cwd: string;\n errors: SDK.ErrorsData;\n summary: Client.RsdoctorClientAssetsSummary;\n entryPoints: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetEntryPoints>;\n}\nconst tabList = [\n {\n key: 'tree',\n label: (\n <Space>\n <Typography.Text>{'Tree Graph'}</Typography.Text>\n <Tooltip\n overlayStyle={{ maxWidth: 380 }}\n overlayInnerStyle={{ marginLeft: 16, padding: 10 }}\n color=\"white\"\n title={\n <Space direction=\"vertical\" color=\"white\" size=\"middle\">\n <Row>\n <Col>\n <Tag color=\"cyan\" style={{ margin: 0 }}>\n initial\n </Tag>\n <Typography.Text style={{ marginLeft: 4 }}>\n Identify whether the chunk is an initial chunk.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Tag color=\"green\" style={{ margin: 0 }}>\n concatenated\n </Tag>\n <Typography.Text style={{ marginLeft: 4 }}>\n Identify whether the module is a concatenated module\n </Typography.Text>\n <Tooltip\n overlayStyle={{ maxWidth: 408 }}\n placement=\"bottom\"\n color=\"white\"\n title={\n <Space direction=\"vertical\" color=\"white\">\n <Row>\n <Col>\n <Typography.Text strong>\n Concatenated Module\n </Typography.Text>\n <Typography.Text>\n : A performance optimization where multiple\n modules are merged (or \"hoisted\") into a single\n scope instead of wrapping each module in separate\n function closures. This reduces the bundle size\n and improves runtime performance by minimizing\n function call overhead.\n </Typography.Text>\n </Col>\n </Row>\n </Space>\n }\n >\n <InfoCircleOutlined\n style={{ color: 'rgba(0,0,0,.45)', marginLeft: 4 }}\n />\n </Tooltip>\n <Typography.Text>.</Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Button size=\"small\" icon={<CodepenCircleOutlined />} />\n <Typography.Text style={{ marginLeft: 4 }}>\n Open the code.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Button size=\"small\" icon={<DeploymentUnitOutlined />} />\n <Typography.Text style={{ marginLeft: 4 }}>\n View the module dependency, that is, module reasons in\n stats.json.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Tag color={'purple'}>{'Bundled: 15.77 KB'}</Tag>\n <Typography.Text>\n The final size of the output files after processing,\n bundling, and optimization. This is what is delivered to the\n browser.\n </Typography.Text>\n </Col>\n </Row>\n <Row>\n <Col>\n <Tag color={'orange'}>{'Source: 60.46 KB'}</Tag>\n <Typography.Text>\n The original size of your source code files before any\n processing or transformations. This is the raw size of your\n code as you wrote it.\n </Typography.Text>\n </Col>\n </Row>\n </Space>\n }\n >\n <InfoCircleOutlined style={{ color: 'rgba(0,0,0,.45)' }} />\n </Tooltip>\n </Space>\n ),\n },\n {\n key: 'treemap',\n label: 'Treemap',\n },\n];\n\nexport const WebpackModulesOverallBase: React.FC<\n WebpackModulesOverallProps\n> = ({ errors, cwd, summary, entryPoints }) => {\n const [selectedEntryPoints, setEntryPoints] = useState<SDK.EntryPointData[]>(\n [],\n );\n const [inputModule, setModuleValue] = useState(0);\n const [inputAssetName, setAssetName] = useState('');\n const [inputAssetSize, setAssetSize] = useState(0);\n const [defaultExpandAll, setDefaultExpandAll] = useState(false);\n const [inputModuleUnit, setModuleUnit] = useState('');\n const [inputChunkUnit, setChunkUnit] = useState('');\n const [assetPath, setAssetPath] = useState<string | null>(null);\n const [graphType, setGraphType] = useState('tree' as GraphType);\n const { showCode, codeDrawerComponent } = useCodeDrawer(\n 'Do not have the codes of assets. If you use the lite or brief mode, there will have codes.',\n );\n\n const { t } = useI18n();\n\n const assets = summary.all.total.files;\n\n const handleChange = useCallback(\n (type: string) => (value: string) => {\n if (type === 'module') {\n setModuleUnit(value);\n } else if (type === 'chunk') {\n setChunkUnit(value);\n }\n },\n [],\n );\n\n const selectAfter = (type: string) => (\n <Select defaultValue=\"kb\" onChange={handleChange(type)}>\n <Option value=\"kb\">KB</Option>\n <Option value=\"mb\">MB</Option>\n </Select>\n );\n const onChangeModule = useCallback(\n debounce((newValue: number) => {\n const count =\n inputModuleUnit === 'mb' ? newValue * 1024 * 1024 : newValue * 1024;\n setModuleValue(count);\n }, 300),\n [],\n );\n\n const onChangeAsset = useCallback(\n debounce((newValue: number) => {\n const count =\n inputChunkUnit === 'mb' ? newValue * 1024 * 1024 : newValue * 1024;\n setAssetSize(count);\n }, 300),\n [],\n );\n\n const filteredAssets = useMemo(() => {\n let res = assets.slice();\n\n if (inputAssetName) {\n res = res.filter((e) => e.path.indexOf(inputAssetName) > -1);\n }\n\n if (inputAssetSize > 0) {\n res = res.filter((e) => e.size >= inputAssetSize);\n }\n\n if (selectedEntryPoints.length) {\n res = res.filter((e) => {\n if (selectedEntryPoints.some((ep) => ep.assets.includes(e.path))) {\n return true;\n }\n return false;\n });\n }\n\n return res.sort((a, b) => {\n const _a = a.path.indexOf('/') > -1 ? 1 : 0;\n const _b = b.path.indexOf('/') > -1 ? 1 : 0;\n // return _a - _b;\n return _b - _a;\n });\n }, [assets, selectedEntryPoints, inputAssetName, inputAssetSize]);\n\n useEffect(() => {\n function getFileExtension(filePath: string) {\n const parts = filePath.split('.');\n return parts.length > 1 ? parts.pop() : '';\n }\n\n summary.all.total.files.forEach((f) => {\n const ext = getFileExtension(f.path);\n if (ext === 'js') {\n setAssetPath(f.path);\n }\n });\n }, [summary.all.total.files]);\n\n const assetsStructures = useMemo(() => {\n const res = createFileStructures({\n files: filteredAssets.map((e) => e.path).filter(Boolean),\n fileTitle(file, basename) {\n const target = filteredAssets.find((e) => e.path === file)!;\n const { size, initial, path, content } = target;\n\n return (\n <div\n className={styles.assetBox}\n onClick={() => {\n setAssetPath(path);\n }}\n >\n <Keyword text={basename} keyword={''} className={styles.fileText} />\n <Space size=\"small\" className={styles.assetsTag}>\n <Divider type=\"vertical\" />\n <Typography.Text style={{ color: '#4FD233' }}>\n {formatSize(size)}\n </Typography.Text>\n <Divider type=\"vertical\" />\n {initial ? (\n <Typography.Text style={{ color: '#009A9E' }}>\n initial\n </Typography.Text>\n ) : null}\n <CodeOutlined\n style={{ fontSize: 14, padding: 0 }}\n onClick={() => showCode({ code: content!, filePath: path })}\n />\n </Space>\n </div>\n );\n },\n });\n return res;\n }, [filteredAssets]);\n\n const onSearch = (value: string) => {\n setAssetName(value);\n setDefaultExpandAll(false);\n };\n\n return (\n <>\n <div className=\"bundle-size-card\">\n <BundleCards cwd={cwd} errors={errors} summary={summary} />\n <Card\n className=\"bundle-size=card\"\n tabList={tabList}\n activeTabKey={graphType as 'tree' | 'treemap'}\n onTabChange={(e) => setGraphType(e as 'tree' | 'treemap')}\n hidden={graphType === 'tree'}\n tabProps={{\n size: 'middle',\n }}\n >\n <ServerAPIProvider api={SDK.ServerAPI.API.GetProjectInfo}>\n {(data) => {\n const { isRspack, hasSourceMap } = Rspack.checkSourceMapSupport(\n data.configs,\n );\n return (\n <ServerAPIProvider api={SDK.ServerAPI.API.GetSummaryBundles}>\n {(data) => {\n // Filter assets to only show JS (js, cjs, mjs), CSS, and HTML files\n const isTargetFileType = (filePath: string): boolean => {\n const ext = filePath.toLowerCase().split('.').pop() || '';\n return (\n ext === 'js' ||\n ext === 'cjs' ||\n ext === 'mjs' ||\n ext === 'css' ||\n ext === 'html'\n );\n };\n\n const computedTreeData: TreeNode[] = data\n .filter((item) => isTargetFileType(item.asset.path))\n .map((item) => ({\n name: item.asset.path,\n value: item.asset.size,\n children: flattenTreemapData(item.modules).children,\n }));\n return (\n <AssetTreemapWithFilter\n treeData={computedTreeData}\n bundledSize={hasSourceMap || isRspack}\n />\n );\n }}\n </ServerAPIProvider>\n );\n }}\n </ServerAPIProvider>\n </Card>\n\n <Card\n hidden={graphType === 'treemap'}\n tabList={tabList}\n activeTabKey={graphType as 'tree' | 'treemap'}\n onTabChange={(e) => setGraphType(e as 'tree' | 'treemap')}\n tabProps={{\n size: 'middle',\n }}\n >\n <Space direction=\"vertical\">\n <Row align=\"middle\" gutter={[Size.BasePadding, Size.BasePadding]}>\n {entryPoints && entryPoints.length ? (\n <Col>\n <Select\n mode=\"multiple\"\n value={selectedEntryPoints.map((e) => e.name)}\n style={{ minWidth: 230, width: 'auto', maxWidth: 300 }}\n placeholder={'filter assets by entry point'}\n onChange={(name: string[]) => {\n setEntryPoints(\n name\n .map((e) => entryPoints.find((ep) => ep.name === e)!)\n .filter(Boolean),\n );\n }}\n allowClear\n onClear={() => {\n setEntryPoints([]);\n }}\n >\n {entryPoints.map((e) => {\n return (\n <Select.Option key={e.name} value={e.name}>\n <Space>\n <Bdg\n label={e.name}\n value={formatSize(e.size)}\n tooltip={e.name}\n />\n </Space>\n </Select.Option>\n );\n })}\n </Select>\n </Col>\n ) : null}\n <Col>\n <KeywordInput\n placeholder=\"search asset by keyword\"\n onChange={onSearch}\n />\n </Col>\n <Col span={6}>\n <InputNumber\n min={0}\n style={{ width: '95%' }}\n addonBefore={\n <Space>\n <Typography.Text\n style={{ fontSize: 14, color: 'inherit' }}\n >\n Asset Size\n </Typography.Text>\n <Tooltip\n title={t(\n 'filter the output assets which size is greater than the input value',\n )}\n style={{ marginLeft: 3 }}\n >\n <InfoCircleOutlined\n style={{ color: 'rgba(0,0,0,.45)' }}\n />\n </Tooltip>\n </Space>\n }\n onChange={(value) => onChangeAsset(Number(value))}\n addonAfter={selectAfter('chunk')}\n />\n </Col>\n <Col span={6}>\n <InputNumber\n min={0}\n style={{ width: '95%' }}\n addonBefore={\n <Space>\n <Typography.Text\n style={{ fontSize: 14, color: 'inherit' }}\n >\n Module Size\n </Typography.Text>\n <Tooltip\n title={t(\n 'filter the modules which size is greater than the input value',\n )}\n style={{ marginLeft: 3 }}\n >\n <InfoCircleOutlined\n style={{ color: 'rgba(0,0,0,.45)' }}\n />\n </Tooltip>\n </Space>\n }\n onChange={(value) => {\n onChangeModule(Number(value));\n }}\n addonAfter={selectAfter('module')}\n />\n </Col>\n </Row>\n <Row>\n <SearchModal />\n </Row>\n <Row align=\"middle\" gutter={[Size.BasePadding, Size.BasePadding]}>\n <Col span={24}>\n {filteredAssets.length ? (\n <Row gutter={Size.BasePadding}>\n <Col span={6}>\n <Card\n title={\n <Space>\n <Typography.Text>\n {t('Output Assets List')}\n </Typography.Text>\n <Divider type=\"vertical\" />\n <Tooltip\n title={`total assets count is ${assets.length}, the filtered assets count is ${filteredAssets.length}`}\n >\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 12, fontWeight: 400 }}\n >\n {filteredAssets.length} / {assets.length}\n </Typography.Text>\n </Tooltip>\n <Divider type=\"vertical\" />\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 12, fontWeight: 400 }}\n >\n {formatSize(sumBy(filteredAssets, (e) => e.size))}\n </Typography.Text>\n </Space>\n }\n size=\"small\"\n bodyStyle={{\n overflow: 'scroll',\n height: cardBodyHeight,\n }}\n >\n <FileTree\n className={styles.assets}\n treeData={assetsStructures}\n autoExpandParent\n defaultExpandAll={\n defaultExpandAll || filteredAssets.length <= 20\n }\n key={`tree_${inputAssetName}_${defaultExpandAll}`}\n />\n </Card>\n </Col>\n <Col span={18}>\n {assetPath ? (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetDetails}\n body={{ assetPath }}\n >\n {(details) => (\n <AssetDetail\n asset={details.asset}\n chunks={details.chunks}\n modules={details.modules}\n height={cardBodyHeight}\n moduleSizeLimit={inputModule}\n root={cwd}\n />\n )}\n </ServerAPIProvider>\n ) : (\n <Card\n bodyStyle={{\n height: cardBodyHeight,\n }}\n >\n <Empty\n description={\n <Typography.Text strong>\n Click the file path on the left to show the\n modules of the asset\n </Typography.Text>\n }\n />\n </Card>\n )}\n </Col>\n </Row>\n ) : (\n <Empty />\n )}\n </Col>\n </Row>\n </Space>\n </Card>\n </div>\n {codeDrawerComponent}\n </>\n );\n};\n\nexport const WebpackModulesOverall = withServerAPI({\n api: SDK.ServerAPI.API.GetProjectInfo,\n responsePropName: 'project',\n Component: (props: {\n project: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetProjectInfo>;\n }) => {\n const { root, errors } = props.project;\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAssetsSummary}\n body={{ withFileContent: true }}\n >\n {(summary) => {\n return (\n <ServerAPIProvider api={SDK.ServerAPI.API.GetEntryPoints}>\n {(entryPoints) => (\n <WebpackModulesOverallBase\n cwd={root}\n errors={errors}\n summary={summary}\n entryPoints={entryPoints}\n />\n )}\n </ServerAPIProvider>\n );\n }}\n </ServerAPIProvider>\n );\n },\n});\n"],"names":["Option","Select","cardBodyHeight","tabList","Space","Typography","Tooltip","Row","Col","Tag","InfoCircleOutlined","Button","CodepenCircleOutlined","DeploymentUnitOutlined","WebpackModulesOverallBase","errors","cwd","summary","entryPoints","selectedEntryPoints","setEntryPoints","useState","inputModule","setModuleValue","inputAssetName","setAssetName","inputAssetSize","setAssetSize","defaultExpandAll","setDefaultExpandAll","inputModuleUnit","setModuleUnit","inputChunkUnit","setChunkUnit","assetPath","setAssetPath","graphType","setGraphType","showCode","codeDrawerComponent","useCodeDrawer","t","useI18n","assets","handleChange","useCallback","type","value","selectAfter","onChangeModule","debounce","newValue","count","onChangeAsset","filteredAssets","useMemo","res","e","ep","a","b","_a","_b","useEffect","getFileExtension","filePath","parts","f","ext","assetsStructures","createFileStructures","Boolean","file","basename","target","size","initial","path","content","styles","Keyword","Divider","formatSize","CodeOutlined","onSearch","BundleCards","Card","ServerAPIProvider","SDK","data","isRspack","hasSourceMap","Rspack","isTargetFileType","computedTreeData","item","flattenTreemapData","AssetTreemapWithFilter","Size","name","Bdg","KeywordInput","InputNumber","Number","SearchModal","sumBy","FileTree","details","AssetDetail","Empty","WebpackModulesOverall","withServerAPI","props","root"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgDA,MAAM,EAAEA,MAAM,EAAE,GAAGC;AAEnB,MAAMC,iBAAiB;AAQvB,MAAMC,UAAU;IACd;QACE,KAAK;QACL,OAAO,WAAP,GACE,KAACC,OAAKA;;8BACJ,IAACC,WAAW,IAAI;8BAAE;;8BAClB,IAACC,SAAOA;oBACN,cAAc;wBAAE,UAAU;oBAAI;oBAC9B,mBAAmB;wBAAE,YAAY;wBAAI,SAAS;oBAAG;oBACjD,OAAM;oBACN,qBACE,KAACF,OAAKA;wBAAC,WAAU;wBAAW,OAAM;wBAAQ,MAAK;;0CAC7C,IAACG,KAAGA;0CACF,mBAACC,KAAGA;;sDACF,IAACC,KAAGA;4CAAC,OAAM;4CAAO,OAAO;gDAAE,QAAQ;4CAAE;sDAAG;;sDAGxC,IAACJ,WAAW,IAAI;4CAAC,OAAO;gDAAE,YAAY;4CAAE;sDAAG;;;;;0CAK/C,IAACE,KAAGA;0CACF,mBAACC,KAAGA;;sDACF,IAACC,KAAGA;4CAAC,OAAM;4CAAQ,OAAO;gDAAE,QAAQ;4CAAE;sDAAG;;sDAGzC,IAACJ,WAAW,IAAI;4CAAC,OAAO;gDAAE,YAAY;4CAAE;sDAAG;;sDAG3C,IAACC,SAAOA;4CACN,cAAc;gDAAE,UAAU;4CAAI;4CAC9B,WAAU;4CACV,OAAM;4CACN,qBACE,IAACF,OAAKA;gDAAC,WAAU;gDAAW,OAAM;0DAChC,kBAACG,KAAGA;8DACF,mBAACC,KAAGA;;0EACF,IAACH,WAAW,IAAI;gEAAC,QAAM;0EAAC;;0EAGxB,IAACA,WAAW,IAAI;0EAAC;;;;;;sDAazB,kBAACK,oBAAkBA;gDACjB,OAAO;oDAAE,OAAO;oDAAmB,YAAY;gDAAE;;;sDAGrD,IAACL,WAAW,IAAI;sDAAC;;;;;0CAGrB,IAACE,KAAGA;0CACF,mBAACC,KAAGA;;sDACF,IAACG,QAAMA;4CAAC,MAAK;4CAAQ,oBAAM,IAACC,uBAAqBA,CAAAA;;sDACjD,IAACP,WAAW,IAAI;4CAAC,OAAO;gDAAE,YAAY;4CAAE;sDAAG;;;;;0CAK/C,IAACE,KAAGA;0CACF,mBAACC,KAAGA;;sDACF,IAACG,QAAMA;4CAAC,MAAK;4CAAQ,oBAAM,IAACE,wBAAsBA,CAAAA;;sDAClD,IAACR,WAAW,IAAI;4CAAC,OAAO;gDAAE,YAAY;4CAAE;sDAAG;;;;;0CAM/C,IAACE,KAAGA;0CACF,mBAACC,KAAGA;;sDACF,IAACC,KAAGA;4CAAC,OAAO;sDAAW;;sDACvB,IAACJ,WAAW,IAAI;sDAAC;;;;;0CAOrB,IAACE,KAAGA;0CACF,mBAACC,KAAGA;;sDACF,IAACC,KAAGA;4CAAC,OAAO;sDAAW;;sDACvB,IAACJ,WAAW,IAAI;sDAAC;;;;;;;8BAUzB,kBAACK,oBAAkBA;wBAAC,OAAO;4BAAE,OAAO;wBAAkB;;;;;IAI9D;IACA;QACE,KAAK;QACL,OAAO;IACT;CACD;AAEM,MAAMI,4BAET,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,WAAW,EAAE;IACxC,MAAM,CAACC,qBAAqBC,eAAe,GAAGC,SAC5C,EAAE;IAEJ,MAAM,CAACC,aAAaC,eAAe,GAAGF,SAAS;IAC/C,MAAM,CAACG,gBAAgBC,aAAa,GAAGJ,SAAS;IAChD,MAAM,CAACK,gBAAgBC,aAAa,GAAGN,SAAS;IAChD,MAAM,CAACO,kBAAkBC,oBAAoB,GAAGR,SAAS;IACzD,MAAM,CAACS,iBAAiBC,cAAc,GAAGV,SAAS;IAClD,MAAM,CAACW,gBAAgBC,aAAa,GAAGZ,SAAS;IAChD,MAAM,CAACa,WAAWC,aAAa,GAAGd,SAAwB;IAC1D,MAAM,CAACe,WAAWC,aAAa,GAAGhB,SAAS;IAC3C,MAAM,EAAEiB,QAAQ,EAAEC,mBAAmB,EAAE,GAAGC,cACxC;IAGF,MAAM,EAAEC,CAAC,EAAE,GAAGC;IAEd,MAAMC,SAAS1B,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK;IAEtC,MAAM2B,eAAeC,YACnB,CAACC,OAAiB,CAACC;YACjB,IAAID,AAAS,aAATA,MACFf,cAAcgB;iBACT,IAAID,AAAS,YAATA,MACTb,aAAac;QAEjB,GACA,EAAE;IAGJ,MAAMC,cAAc,CAACF,OAAAA,WAAAA,GACnB,KAAC7C,QAAMA;YAAC,cAAa;YAAK,UAAU2C,aAAaE;;8BAC/C,IAAC9C,QAAAA;oBAAO,OAAM;8BAAK;;8BACnB,IAACA,QAAAA;oBAAO,OAAM;8BAAK;;;;IAGvB,MAAMiD,iBAAiBJ,YACrBK,SAAS,CAACC;QACR,MAAMC,QACJtB,AAAoB,SAApBA,kBAA2BqB,AAAW,OAAXA,WAAkB,OAAOA,AAAW,OAAXA;QACtD5B,eAAe6B;IACjB,GAAG,MACH,EAAE;IAGJ,MAAMC,gBAAgBR,YACpBK,SAAS,CAACC;QACR,MAAMC,QACJpB,AAAmB,SAAnBA,iBAA0BmB,AAAW,OAAXA,WAAkB,OAAOA,AAAW,OAAXA;QACrDxB,aAAayB;IACf,GAAG,MACH,EAAE;IAGJ,MAAME,iBAAiBC,QAAQ;QAC7B,IAAIC,MAAMb,OAAO,KAAK;QAEtB,IAAInB,gBACFgC,MAAMA,IAAI,MAAM,CAAC,CAACC,IAAMA,EAAE,IAAI,CAAC,OAAO,CAACjC,kBAAkB;QAG3D,IAAIE,iBAAiB,GACnB8B,MAAMA,IAAI,MAAM,CAAC,CAACC,IAAMA,EAAE,IAAI,IAAI/B;QAGpC,IAAIP,oBAAoB,MAAM,EAC5BqC,MAAMA,IAAI,MAAM,CAAC,CAACC;YAChB,IAAItC,oBAAoB,IAAI,CAAC,CAACuC,KAAOA,GAAG,MAAM,CAAC,QAAQ,CAACD,EAAE,IAAI,IAC5D,OAAO;YAET,OAAO;QACT;QAGF,OAAOD,IAAI,IAAI,CAAC,CAACG,GAAGC;YAClB,MAAMC,KAAKF,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI;YAC1C,MAAMG,KAAKF,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI;YAE1C,OAAOE,KAAKD;QACd;IACF,GAAG;QAAClB;QAAQxB;QAAqBK;QAAgBE;KAAe;IAEhEqC,UAAU;QACR,SAASC,iBAAiBC,QAAgB;YACxC,MAAMC,QAAQD,SAAS,KAAK,CAAC;YAC7B,OAAOC,MAAM,MAAM,GAAG,IAAIA,MAAM,GAAG,KAAK;QAC1C;QAEAjD,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAACkD;YAC/B,MAAMC,MAAMJ,iBAAiBG,EAAE,IAAI;YACnC,IAAIC,AAAQ,SAARA,KACFjC,aAAagC,EAAE,IAAI;QAEvB;IACF,GAAG;QAAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK;KAAC;IAE5B,MAAMoD,mBAAmBd,QAAQ;QAC/B,MAAMC,MAAMc,qBAAqB;YAC/B,OAAOhB,eAAe,GAAG,CAAC,CAACG,IAAMA,EAAE,IAAI,EAAE,MAAM,CAACc;YAChD,WAAUC,IAAI,EAAEC,QAAQ;gBACtB,MAAMC,SAASpB,eAAe,IAAI,CAAC,CAACG,IAAMA,EAAE,IAAI,KAAKe;gBACrD,MAAM,EAAEG,IAAI,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGJ;gBAEzC,OAAO,WAAP,GACE,KAAC;oBACC,WAAWK,aAAAA,QAAe;oBAC1B,SAAS;wBACP5C,aAAa0C;oBACf;;sCAEA,IAACG,SAAOA;4BAAC,MAAMP;4BAAU,SAAS;4BAAI,WAAWM,aAAAA,QAAe;;sCAChE,KAAC3E,OAAKA;4BAAC,MAAK;4BAAQ,WAAW2E,aAAAA,SAAgB;;8CAC7C,IAACE,SAAOA;oCAAC,MAAK;;8CACd,IAAC5E,WAAW,IAAI;oCAAC,OAAO;wCAAE,OAAO;oCAAU;8CACxC6E,WAAWP;;8CAEd,IAACM,SAAOA;oCAAC,MAAK;;gCACbL,UAAU,WAAVA,GACC,IAACvE,WAAW,IAAI;oCAAC,OAAO;wCAAE,OAAO;oCAAU;8CAAG;qCAG5C;8CACJ,IAAC8E,cAAYA;oCACX,OAAO;wCAAE,UAAU;wCAAI,SAAS;oCAAE;oCAClC,SAAS,IAAM7C,SAAS;4CAAE,MAAMwC;4CAAU,UAAUD;wCAAK;;;;;;YAKnE;QACF;QACA,OAAOrB;IACT,GAAG;QAACF;KAAe;IAEnB,MAAM8B,WAAW,CAACrC;QAChBtB,aAAasB;QACblB,oBAAoB;IACtB;IAEA,OAAO,WAAP,GACE;;0BACE,KAAC;gBAAI,WAAU;;kCACb,IAACwD,aAAWA;wBAAC,KAAKrE;wBAAK,QAAQD;wBAAQ,SAASE;;kCAChD,IAACqE,MAAIA;wBACH,WAAU;wBACV,SAASnF;wBACT,cAAciC;wBACd,aAAa,CAACqB,IAAMpB,aAAaoB;wBACjC,QAAQrB,AAAc,WAAdA;wBACR,UAAU;4BACR,MAAM;wBACR;kCAEA,kBAACmD,mBAAiBA;4BAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;sCACrD,CAACC;gCACA,MAAM,EAAEC,QAAQ,EAAEC,YAAY,EAAE,GAAGC,OAAO,qBAAqB,CAC7DH,KAAK,OAAO;gCAEd,OAAO,WAAP,GACE,IAACF,mBAAiBA;oCAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,iBAAiB;8CACxD,CAACC;wCAEA,MAAMI,mBAAmB,CAAC5B;4CACxB,MAAMG,MAAMH,SAAS,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;4CACvD,OACEG,AAAQ,SAARA,OACAA,AAAQ,UAARA,OACAA,AAAQ,UAARA,OACAA,AAAQ,UAARA,OACAA,AAAQ,WAARA;wCAEJ;wCAEA,MAAM0B,mBAA+BL,KAClC,MAAM,CAAC,CAACM,OAASF,iBAAiBE,KAAK,KAAK,CAAC,IAAI,GACjD,GAAG,CAAC,CAACA,OAAU;gDACd,MAAMA,KAAK,KAAK,CAAC,IAAI;gDACrB,OAAOA,KAAK,KAAK,CAAC,IAAI;gDACtB,UAAUC,mBAAmBD,KAAK,OAAO,EAAE,QAAQ;4CACrD;wCACF,OAAO,WAAP,GACE,IAACE,wBAAsBA;4CACrB,UAAUH;4CACV,aAAaH,gBAAgBD;;oCAGnC;;4BAGN;;;kCAIJ,IAACJ,MAAIA;wBACH,QAAQlD,AAAc,cAAdA;wBACR,SAASjC;wBACT,cAAciC;wBACd,aAAa,CAACqB,IAAMpB,aAAaoB;wBACjC,UAAU;4BACR,MAAM;wBACR;kCAEA,mBAACrD,OAAKA;4BAAC,WAAU;;8CACf,KAACG,KAAGA;oCAAC,OAAM;oCAAS,QAAQ;wCAAC2F,KAAK,WAAW;wCAAEA,KAAK,WAAW;qCAAC;;wCAC7DhF,eAAeA,YAAY,MAAM,GAAG,WAAH,GAChC,IAACV,KAAGA;sDACF,kBAACP,QAAMA;gDACL,MAAK;gDACL,OAAOkB,oBAAoB,GAAG,CAAC,CAACsC,IAAMA,EAAE,IAAI;gDAC5C,OAAO;oDAAE,UAAU;oDAAK,OAAO;oDAAQ,UAAU;gDAAI;gDACrD,aAAa;gDACb,UAAU,CAAC0C;oDACT/E,eACE+E,KACG,GAAG,CAAC,CAAC1C,IAAMvC,YAAY,IAAI,CAAC,CAACwC,KAAOA,GAAG,IAAI,KAAKD,IAChD,MAAM,CAACc;gDAEd;gDACA,YAAU;gDACV,SAAS;oDACPnD,eAAe,EAAE;gDACnB;0DAECF,YAAY,GAAG,CAAC,CAACuC,IACT,WAAP,GACE,IAACxD,OAAO,MAAM;wDAAc,OAAOwD,EAAE,IAAI;kEACvC,kBAACrD,OAAKA;sEACJ,kBAACgG,OAAGA;gEACF,OAAO3C,EAAE,IAAI;gEACb,OAAOyB,WAAWzB,EAAE,IAAI;gEACxB,SAASA,EAAE,IAAI;;;uDALDA,EAAE,IAAI;;6CAahC;sDACJ,IAACjD,KAAGA;sDACF,kBAAC6F,cAAYA;gDACX,aAAY;gDACZ,UAAUjB;;;sDAGd,IAAC5E,KAAGA;4CAAC,MAAM;sDACT,kBAAC8F,aAAWA;gDACV,KAAK;gDACL,OAAO;oDAAE,OAAO;gDAAM;gDACtB,2BACE,KAAClG,OAAKA;;sEACJ,IAACC,WAAW,IAAI;4DACd,OAAO;gEAAE,UAAU;gEAAI,OAAO;4DAAU;sEACzC;;sEAGD,IAACC,SAAOA;4DACN,OAAOmC,EACL;4DAEF,OAAO;gEAAE,YAAY;4DAAE;sEAEvB,kBAAC/B,oBAAkBA;gEACjB,OAAO;oEAAE,OAAO;gEAAkB;;;;;gDAK1C,UAAU,CAACqC,QAAUM,cAAckD,OAAOxD;gDAC1C,YAAYC,YAAY;;;sDAG5B,IAACxC,KAAGA;4CAAC,MAAM;sDACT,kBAAC8F,aAAWA;gDACV,KAAK;gDACL,OAAO;oDAAE,OAAO;gDAAM;gDACtB,2BACE,KAAClG,OAAKA;;sEACJ,IAACC,WAAW,IAAI;4DACd,OAAO;gEAAE,UAAU;gEAAI,OAAO;4DAAU;sEACzC;;sEAGD,IAACC,SAAOA;4DACN,OAAOmC,EACL;4DAEF,OAAO;gEAAE,YAAY;4DAAE;sEAEvB,kBAAC/B,oBAAkBA;gEACjB,OAAO;oEAAE,OAAO;gEAAkB;;;;;gDAK1C,UAAU,CAACqC;oDACTE,eAAesD,OAAOxD;gDACxB;gDACA,YAAYC,YAAY;;;;;8CAI9B,IAACzC,KAAGA;8CACF,kBAACiG,aAAWA,CAAAA;;8CAEd,IAACjG,KAAGA;oCAAC,OAAM;oCAAS,QAAQ;wCAAC2F,KAAK,WAAW;wCAAEA,KAAK,WAAW;qCAAC;8CAC9D,kBAAC1F,KAAGA;wCAAC,MAAM;kDACR8C,eAAe,MAAM,GAAG,WAAH,GACpB,KAAC/C,KAAGA;4CAAC,QAAQ2F,KAAK,WAAW;;8DAC3B,IAAC1F,KAAGA;oDAAC,MAAM;8DACT,kBAAC8E,MAAIA;wDACH,qBACE,KAAClF,OAAKA;;8EACJ,IAACC,WAAW,IAAI;8EACboC,EAAE;;8EAEL,IAACwC,SAAOA;oEAAC,MAAK;;8EACd,IAAC3E,SAAOA;oEACN,OAAO,CAAC,sBAAsB,EAAEqC,OAAO,MAAM,CAAC,+BAA+B,EAAEW,eAAe,MAAM,EAAE;8EAEtG,mBAACjD,WAAW,IAAI;wEACd,MAAK;wEACL,OAAO;4EAAE,UAAU;4EAAI,YAAY;wEAAI;;4EAEtCiD,eAAe,MAAM;4EAAC;4EAAIX,OAAO,MAAM;;;;8EAG5C,IAACsC,SAAOA;oEAAC,MAAK;;8EACd,IAAC5E,WAAW,IAAI;oEACd,MAAK;oEACL,OAAO;wEAAE,UAAU;wEAAI,YAAY;oEAAI;8EAEtC6E,WAAWuB,MAAMnD,gBAAgB,CAACG,IAAMA,EAAE,IAAI;;;;wDAIrD,MAAK;wDACL,WAAW;4DACT,UAAU;4DACV,QAAQvD;wDACV;kEAEA,kBAACwG,UAAQA;4DACP,WAAW3B,aAAAA,MAAa;4DACxB,UAAUV;4DACV,kBAAgB;4DAChB,kBACEzC,oBAAoB0B,eAAe,MAAM,IAAI;2DAE1C,CAAC,KAAK,EAAE9B,eAAe,CAAC,EAAEI,kBAAkB;;;8DAIvD,IAACpB,KAAGA;oDAAC,MAAM;8DACR0B,YAAY,WAAZA,GACC,IAACqD,mBAAiBA;wDAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,eAAe;wDACtC,MAAM;4DAAEtD;wDAAU;kEAEjB,CAACyE,UAAAA,WAAAA,GACA,IAACC,aAAWA;gEACV,OAAOD,QAAQ,KAAK;gEACpB,QAAQA,QAAQ,MAAM;gEACtB,SAASA,QAAQ,OAAO;gEACxB,QAAQzG;gEACR,iBAAiBoB;gEACjB,MAAMN;;uEAKZ,IAACsE,MAAIA;wDACH,WAAW;4DACT,QAAQpF;wDACV;kEAEA,kBAAC2G,OAAKA;4DACJ,2BACE,IAACxG,WAAW,IAAI;gEAAC,QAAM;0EAAC;;;;;;2DAWpC,IAACwG,OAAKA,CAAAA;;;;;;;;YAOjBtE;;;AAGP;AAEO,MAAMuE,wBAAwBC,cAAc;IACjD,KAAKvB,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;IACrC,kBAAkB;IAClB,WAAW,CAACwB;QAGV,MAAM,EAAEC,IAAI,EAAElG,MAAM,EAAE,GAAGiG,MAAM,OAAO;QACtC,OAAO,WAAP,GACE,IAACzB,mBAAiBA;YAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;YACvC,MAAM;gBAAE,iBAAiB;YAAK;sBAE7B,CAACvE,UACO,WAAP,GACE,IAACsE,mBAAiBA;oBAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;8BACrD,CAACtE,cAAAA,WAAAA,GACA,IAACJ,2BAAAA;4BACC,KAAKmG;4BACL,QAAQlG;4BACR,SAASE;4BACT,aAAaC;;;;IAQ7B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/BundleSize/components/index.module.mjs","sources":["webpack://@rsdoctor/components/./src/pages/BundleSize/components/index.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./index_module.css\"\nexport default {\"assets\":\"assets-ll1P_L\",\"assetBox\":\"assetBox-Y8vGse\",\"fileText\":\"fileText-W0quVZ\",\"bundle-tree\":\"bundle-tree-IbtEQg\",\"bundleTree\":\"bundle-tree-IbtEQg\",\"box\":\"box-On1BLb\",\"keyword\":\"keyword-PqQzB1\",\"divider\":\"divider-asnppW\",\"dividerDiv\":\"dividerDiv-s50mAr\",\"assetsTag\":\"assetsTag-eAVvyj\",\"bundle\":\"bundle-cPw2Kc\",\"bundle-size-card\":\"bundle-size-card-N8rW3d\",\"bundleSizeCard\":\"bundle-size-card-N8rW3d\",\"ant-tabs-tab\":\"ant-tabs-tab-SpEjsl\",\"antTabsTab\":\"ant-tabs-tab-SpEjsl\",\"modal\":\"modal-afyzYa\",\"search-btn\":\"search-btn-To902q\",\"searchBtn\":\"search-btn-To902q\",\"search-modal-list\":\"search-modal-list-G_Uxc8\",\"searchModalList\":\"search-modal-list-G_Uxc8\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,QAAS;IAAgB,UAAW;IAAkB,UAAW;IAAkB,eAAc;IAAqB,YAAa;IAAqB,KAAM;IAAa,SAAU;IAAiB,SAAU;IAAiB,YAAa;IAAoB,WAAY;IAAmB,QAAS;IAAgB,oBAAmB;IAA0B,gBAAiB;IAA0B,gBAAe;IAAsB,YAAa;IAAsB,OAAQ;IAAe,cAAa;IAAoB,WAAY;IAAoB,qBAAoB;IAA2B,iBAAkB;AAA0B"}
1
+ {"version":3,"file":"pages/BundleSize/components/index.module.mjs","sources":["../../../../src/pages/BundleSize/components/index.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./index_module.css\"\nexport default {\"assets\":\"assets-ll1P_L\",\"assetBox\":\"assetBox-Y8vGse\",\"fileText\":\"fileText-W0quVZ\",\"bundle-tree\":\"bundle-tree-IbtEQg\",\"bundleTree\":\"bundle-tree-IbtEQg\",\"box\":\"box-On1BLb\",\"keyword\":\"keyword-PqQzB1\",\"divider\":\"divider-asnppW\",\"dividerDiv\":\"dividerDiv-s50mAr\",\"assetsTag\":\"assetsTag-eAVvyj\",\"bundle\":\"bundle-cPw2Kc\",\"bundle-size-card\":\"bundle-size-card-N8rW3d\",\"bundleSizeCard\":\"bundle-size-card-N8rW3d\",\"ant-tabs-tab\":\"ant-tabs-tab-SpEjsl\",\"antTabsTab\":\"ant-tabs-tab-SpEjsl\",\"modal\":\"modal-afyzYa\",\"search-btn\":\"search-btn-To902q\",\"searchBtn\":\"search-btn-To902q\",\"search-modal-list\":\"search-modal-list-G_Uxc8\",\"searchModalList\":\"search-modal-list-G_Uxc8\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,QAAS;IAAgB,UAAW;IAAkB,UAAW;IAAkB,eAAc;IAAqB,YAAa;IAAqB,KAAM;IAAa,SAAU;IAAiB,SAAU;IAAiB,YAAa;IAAoB,WAAY;IAAmB,QAAS;IAAgB,oBAAmB;IAA0B,gBAAiB;IAA0B,gBAAe;IAAsB,YAAa;IAAsB,OAAQ;IAAe,cAAa;IAAoB,WAAY;IAAoB,qBAAoB;IAA2B,iBAAkB;AAA0B"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/BundleSize/components/search-modal.mjs","sources":["webpack://@rsdoctor/components/./src/pages/BundleSize/components/search-modal.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport {\n Button,\n Modal,\n Input,\n Tabs,\n List,\n Skeleton,\n Typography,\n Empty,\n} from 'antd';\nimport { SearchProps } from 'antd/es/input';\nimport { ServerAPIProvider } from 'src/components';\nimport { SDK } from '@rsdoctor/types';\nimport styles from './index.module.scss';\nimport { SearchOutlined } from '@ant-design/icons';\n\nconst { Search } = Input;\n\ntype OnSearchParams = Parameters<NonNullable<SearchProps['onSearch']>>;\n\nexport const SearchModal: React.FC<{\n onModuleClick?: (module: any) => void;\n onClose?: () => void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n isIcon?: boolean;\n}> = ({\n onModuleClick = undefined,\n onClose,\n open,\n setOpen,\n isIcon = false,\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [searchModule, setSearchModule] = useState('');\n const [searchChunk, setSearchChunk] = useState('');\n\n const modalOpen = open !== undefined ? open : isModalOpen;\n const setModalOpen = setOpen || setIsModalOpen;\n\n const onSearch: SearchProps['onSearch'] = useCallback(\n (...args: OnSearchParams) => {\n const [value, _event] = args;\n setSearchModule(value);\n },\n [],\n );\n\n const showModal = () => {\n setModalOpen(true);\n };\n\n const handleOk = () => {\n setModalOpen(false);\n onClose?.();\n };\n\n const handleCancel = () => {\n setModalOpen(false);\n onClose?.();\n };\n\n return (\n <>\n {isIcon ? (\n <SearchOutlined onClick={showModal} />\n ) : (\n <Button\n className={styles['search-btn']}\n color=\"cyan\"\n onClick={showModal}\n >\n Search Module\n </Button>\n )}\n\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetSearchModules}\n body={{ moduleName: String(searchModule) }}\n >\n {(assetsChunksList) => {\n const defaultChunkId = Object.keys(assetsChunksList)[0];\n return (\n <>\n <Modal\n className={styles.modal}\n title=\"Search Modules\"\n onOk={handleOk}\n onCancel={handleCancel}\n open={modalOpen}\n width={'65rem'}\n footer=\"\"\n >\n <Search\n placeholder=\"input search module name\"\n allowClear\n onSearch={onSearch}\n style={{ width: 500 }}\n />\n {defaultChunkId ? (\n <Tabs\n defaultActiveKey={defaultChunkId}\n tabPosition={'top'}\n onChange={(value) => setSearchChunk(value)}\n items={Object.keys(assetsChunksList).map((chunk, _i) => {\n const id = chunk;\n return {\n label: assetsChunksList[chunk],\n key: id,\n children: ModulesModal(\n searchModule,\n searchChunk || defaultChunkId,\n (item) => {\n onModuleClick?.(item);\n setModalOpen(false);\n onClose?.();\n },\n ),\n };\n })}\n />\n ) : (\n <Empty description={'No modules found.'} />\n )}\n </Modal>\n </>\n );\n }}\n </ServerAPIProvider>\n </>\n );\n};\n\nconst ModulesModal = (\n searchModule: string,\n chunk: string,\n onModuleClick?: (module: any) => void | undefined,\n) => {\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetSearchModuleInChunk}\n body={{ moduleName: String(searchModule), chunk }}\n >\n {(modules) => (\n <>\n {modules?.length !== 0 ? (\n <List\n className={styles['search-modal-list']}\n loading={!modules.length}\n itemLayout=\"horizontal\"\n pagination={{ position: 'bottom', align: 'center' }}\n dataSource={modules}\n renderItem={(item) => {\n const itemPathArr = item.relativePath.split(searchModule);\n return (\n <List.Item\n className={\n onModuleClick\n ? 'search-list-item clickable'\n : 'search-list-item'\n }\n key={`${item.path}-${item.relativePath}`}\n onClick={\n onModuleClick ? () => onModuleClick(item) : undefined\n }\n >\n <Skeleton avatar title={false} loading={!item.path} active>\n <List.Item.Meta\n key={`${item.path}-${item.relativePath}-meta`}\n description={\n <>\n <Typography.Text code>{'Module:'}</Typography.Text>\n {itemPathArr.map((cur, index) => {\n if (index < itemPathArr.length - 1) {\n return (\n <Typography.Text\n key={`${cur}-${index}`}\n style={{ fontWeight: 200 }}\n >\n {cur}\n <Typography.Text\n strong\n key={`${cur}-${index}-strong`}\n style={{ fontWeight: 600 }}\n >\n {searchModule}\n </Typography.Text>\n </Typography.Text>\n );\n }\n return (\n <Typography.Text style={{ fontWeight: 200 }}>\n {cur}\n </Typography.Text>\n );\n })}\n </>\n }\n />\n </Skeleton>\n </List.Item>\n );\n }}\n />\n ) : (\n <Empty />\n )}\n </>\n )}\n </ServerAPIProvider>\n );\n};\n"],"names":["Search","Input","SearchModal","onModuleClick","onClose","open","setOpen","isIcon","isModalOpen","setIsModalOpen","useState","searchModule","setSearchModule","searchChunk","setSearchChunk","modalOpen","undefined","setModalOpen","onSearch","useCallback","args","value","_event","showModal","handleOk","handleCancel","SearchOutlined","Button","styles","ServerAPIProvider","SDK","String","assetsChunksList","defaultChunkId","Object","Modal","Tabs","chunk","_i","id","ModulesModal","item","Empty","modules","List","itemPathArr","Skeleton","Typography","cur","index"],"mappings":"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"}
1
+ {"version":3,"file":"pages/BundleSize/components/search-modal.mjs","sources":["../../../../src/pages/BundleSize/components/search-modal.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport {\n Button,\n Modal,\n Input,\n Tabs,\n List,\n Skeleton,\n Typography,\n Empty,\n} from 'antd';\nimport { SearchProps } from 'antd/es/input';\nimport { ServerAPIProvider } from 'src/components';\nimport { SDK } from '@rsdoctor/types';\nimport styles from './index.module.scss';\nimport { SearchOutlined } from '@ant-design/icons';\n\nconst { Search } = Input;\n\ntype OnSearchParams = Parameters<NonNullable<SearchProps['onSearch']>>;\n\nexport const SearchModal: React.FC<{\n onModuleClick?: (module: any) => void;\n onClose?: () => void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n isIcon?: boolean;\n}> = ({\n onModuleClick = undefined,\n onClose,\n open,\n setOpen,\n isIcon = false,\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [searchModule, setSearchModule] = useState('');\n const [searchChunk, setSearchChunk] = useState('');\n\n const modalOpen = open !== undefined ? open : isModalOpen;\n const setModalOpen = setOpen || setIsModalOpen;\n\n const onSearch: SearchProps['onSearch'] = useCallback(\n (...args: OnSearchParams) => {\n const [value, _event] = args;\n setSearchModule(value);\n },\n [],\n );\n\n const showModal = () => {\n setModalOpen(true);\n };\n\n const handleOk = () => {\n setModalOpen(false);\n onClose?.();\n };\n\n const handleCancel = () => {\n setModalOpen(false);\n onClose?.();\n };\n\n return (\n <>\n {isIcon ? (\n <SearchOutlined onClick={showModal} />\n ) : (\n <Button\n className={styles['search-btn']}\n color=\"cyan\"\n onClick={showModal}\n >\n Search Module\n </Button>\n )}\n\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetSearchModules}\n body={{ moduleName: String(searchModule) }}\n >\n {(assetsChunksList) => {\n const defaultChunkId = Object.keys(assetsChunksList)[0];\n return (\n <>\n <Modal\n className={styles.modal}\n title=\"Search Modules\"\n onOk={handleOk}\n onCancel={handleCancel}\n open={modalOpen}\n width={'65rem'}\n footer=\"\"\n >\n <Search\n placeholder=\"input search module name\"\n allowClear\n onSearch={onSearch}\n style={{ width: 500 }}\n />\n {defaultChunkId ? (\n <Tabs\n defaultActiveKey={defaultChunkId}\n tabPosition={'top'}\n onChange={(value) => setSearchChunk(value)}\n items={Object.keys(assetsChunksList).map((chunk, _i) => {\n const id = chunk;\n return {\n label: assetsChunksList[chunk],\n key: id,\n children: ModulesModal(\n searchModule,\n searchChunk || defaultChunkId,\n (item) => {\n onModuleClick?.(item);\n setModalOpen(false);\n onClose?.();\n },\n ),\n };\n })}\n />\n ) : (\n <Empty description={'No modules found.'} />\n )}\n </Modal>\n </>\n );\n }}\n </ServerAPIProvider>\n </>\n );\n};\n\nconst ModulesModal = (\n searchModule: string,\n chunk: string,\n onModuleClick?: (module: any) => void | undefined,\n) => {\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetSearchModuleInChunk}\n body={{ moduleName: String(searchModule), chunk }}\n >\n {(modules) => (\n <>\n {modules?.length !== 0 ? (\n <List\n className={styles['search-modal-list']}\n loading={!modules.length}\n itemLayout=\"horizontal\"\n pagination={{ position: 'bottom', align: 'center' }}\n dataSource={modules}\n renderItem={(item) => {\n const itemPathArr = item.relativePath.split(searchModule);\n return (\n <List.Item\n className={\n onModuleClick\n ? 'search-list-item clickable'\n : 'search-list-item'\n }\n key={`${item.path}-${item.relativePath}`}\n onClick={\n onModuleClick ? () => onModuleClick(item) : undefined\n }\n >\n <Skeleton avatar title={false} loading={!item.path} active>\n <List.Item.Meta\n key={`${item.path}-${item.relativePath}-meta`}\n description={\n <>\n <Typography.Text code>{'Module:'}</Typography.Text>\n {itemPathArr.map((cur, index) => {\n if (index < itemPathArr.length - 1) {\n return (\n <Typography.Text\n key={`${cur}-${index}`}\n style={{ fontWeight: 200 }}\n >\n {cur}\n <Typography.Text\n strong\n key={`${cur}-${index}-strong`}\n style={{ fontWeight: 600 }}\n >\n {searchModule}\n </Typography.Text>\n </Typography.Text>\n );\n }\n return (\n <Typography.Text style={{ fontWeight: 200 }}>\n {cur}\n </Typography.Text>\n );\n })}\n </>\n }\n />\n </Skeleton>\n </List.Item>\n );\n }}\n />\n ) : (\n <Empty />\n )}\n </>\n )}\n </ServerAPIProvider>\n );\n};\n"],"names":["Search","Input","SearchModal","onModuleClick","onClose","open","setOpen","isIcon","isModalOpen","setIsModalOpen","useState","searchModule","setSearchModule","searchChunk","setSearchChunk","modalOpen","undefined","setModalOpen","onSearch","useCallback","args","value","_event","showModal","handleOk","handleCancel","SearchOutlined","Button","styles","ServerAPIProvider","SDK","String","assetsChunksList","defaultChunkId","Object","Modal","Tabs","chunk","_i","id","ModulesModal","item","Empty","modules","List","itemPathArr","Skeleton","Typography","cur","index"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/BundleSize/config.mjs","sources":["webpack://@rsdoctor/components/./src/pages/BundleSize/config.tsx"],"sourcesContent":["import { createContext } from 'react';\n\ninterface config {\n setModuleJumpList(ids: number[]): void;\n moduleJumpList: number[];\n}\n\nexport const ModuleGraphListContext = createContext<config>({\n setModuleJumpList(_ids: number[]): void {},\n moduleJumpList: [] as number[],\n});\n"],"names":["ModuleGraphListContext","createContext","_ids"],"mappings":";AAOO,MAAMA,yBAAyB,WAAzBA,GAAyBC,cAAsB;IAC1D,mBAAkBC,IAAc,GAAS;IACzC,gBAAgB,EAAE;AACpB"}
1
+ {"version":3,"file":"pages/BundleSize/config.mjs","sources":["../../../src/pages/BundleSize/config.tsx"],"sourcesContent":["import { createContext } from 'react';\n\ninterface config {\n setModuleJumpList(ids: number[]): void;\n moduleJumpList: number[];\n}\n\nexport const ModuleGraphListContext = createContext<config>({\n setModuleJumpList(_ids: number[]): void {},\n moduleJumpList: [] as number[],\n});\n"],"names":["ModuleGraphListContext","createContext","_ids"],"mappings":";AAOO,MAAMA,yBAAyB,WAAzBA,GAAyBC,cAAsB;IAC1D,mBAAkBC,IAAc,GAAS;IACzC,gBAAgB,EAAE;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/BundleSize/constants.mjs","sources":["webpack://@rsdoctor/components/./src/pages/BundleSize/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const maxModuleSize = 5000;\n\nexport const name = 'BundleSize';\n\nexport const route = Client.RsdoctorClientRoutes.BundleSize;\n\nexport type GraphType = 'treemap' | 'tree';\n"],"names":["maxModuleSize","name","route","Client"],"mappings":";AAEO,MAAMA,gBAAgB;AAEtB,MAAMC,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,UAAU"}
1
+ {"version":3,"file":"pages/BundleSize/constants.mjs","sources":["../../../src/pages/BundleSize/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const maxModuleSize = 5000;\n\nexport const name = 'BundleSize';\n\nexport const route = Client.RsdoctorClientRoutes.BundleSize;\n\nexport type GraphType = 'treemap' | 'tree';\n"],"names":["maxModuleSize","name","route","Client"],"mappings":";AAEO,MAAMA,gBAAgB;AAEtB,MAAMC,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,UAAU"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  export declare const Page: React.FC;
3
- export * from './constants';
3
+ export * from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"pages/BundleSize/index.mjs","sources":["webpack://@rsdoctor/components/./src/pages/BundleSize/index.tsx"],"sourcesContent":["import { Col, Row } from 'antd';\nimport React from 'react';\n\nimport { Size } from '../../constants';\nimport { WebpackModulesOverall } from './components';\n\nexport const Page: React.FC = () => {\n return (\n <Row>\n <Col span={24} style={{ marginBottom: Size.BasePadding }}>\n <WebpackModulesOverall />\n </Col>\n </Row>\n );\n};\n\nexport * from './constants';\n"],"names":["Page","Row","Col","Size","WebpackModulesOverall"],"mappings":";;;;;;AAMO,MAAMA,OAAiB,IACrB,WAAP,GACE,IAACC,KAAGA;kBACF,kBAACC,KAAGA;YAAC,MAAM;YAAI,OAAO;gBAAE,cAAcC,KAAK,WAAW;YAAC;sBACrD,kBAACC,uBAAqBA,CAAAA"}
1
+ {"version":3,"file":"pages/BundleSize/index.mjs","sources":["../../../src/pages/BundleSize/index.tsx"],"sourcesContent":["import { Col, Row } from 'antd';\nimport React from 'react';\n\nimport { Size } from '../../constants';\nimport { WebpackModulesOverall } from './components';\n\nexport const Page: React.FC = () => {\n return (\n <Row>\n <Col span={24} style={{ marginBottom: Size.BasePadding }}>\n <WebpackModulesOverall />\n </Col>\n </Row>\n );\n};\n\nexport * from './constants';\n"],"names":["Page","Row","Col","Size","WebpackModulesOverall"],"mappings":";;;;;;AAMO,MAAMA,OAAiB,IACrB,WAAP,GACE,IAACC,KAAGA;kBACF,kBAACC,KAAGA;YAAC,MAAM;YAAI,OAAO;gBAAE,cAAcC,KAAK,WAAW;YAAC;sBACrD,kBAACC,uBAAqBA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/chunks.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/chunks.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Empty, Table, Tag } from 'antd';\nimport { orderBy } from 'es-toolkit/compat';\nimport React, { useMemo } from 'react';\nimport { formatSize } from 'src/utils';\nimport './index.sass';\nimport { Lodash } from '@rsdoctor/utils/common';\n\ntype ChunksDataType = {\n key: string | number;\n name: JSX.Element;\n size: JSX.Element;\n entry: JSX.Element;\n assets: JSX.Element[];\n};\n\nconst columns = [\n {\n title: 'Chunk Name',\n dataIndex: 'name',\n key: 'name',\n },\n {\n title: 'size | 大小',\n dataIndex: 'size',\n key: 'size',\n },\n {\n title: 'assets | 资源',\n dataIndex: 'assets',\n key: 'assets',\n },\n {\n title: 'Entry or Not | 是否是入口',\n dataIndex: 'entry',\n key: 'entry',\n },\n];\n\nexport const ChunksTable: React.FC<{\n chunks: SDK.ChunkData[];\n}> = ({ chunks }) => {\n const chunksData = useMemo(() => {\n const _chunksData: (ChunksDataType | undefined)[] = chunks.map((chunk) => {\n if (!chunk) return undefined;\n return {\n key: chunk.id,\n name: <Tag>{chunk.name}</Tag>,\n size: <Tag>{formatSize(chunk.parsedSize)}</Tag>,\n entry: <Tag>{chunk.entry ? '是 | Yes' : '否 | No'}</Tag>,\n assets: chunk.assets.map((asset) => (\n <p key={asset}>\n <Tag key={asset}>{asset}</Tag>\n </p>\n )),\n };\n });\n return orderBy(Lodash.compact(_chunksData), ['size'], ['desc']);\n }, [chunks]);\n\n return (\n <>\n {chunksData?.length ? (\n <Table\n bordered\n pagination={false}\n dataSource={chunksData}\n columns={columns}\n />\n ) : (\n <Empty />\n )}\n </>\n );\n};\n"],"names":["columns","ChunksTable","chunks","chunksData","useMemo","_chunksData","chunk","Tag","formatSize","asset","orderBy","Lodash","Table","Empty"],"mappings":";;;;;;;AAgBA,MAAMA,UAAU;IACd;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;IACA;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;IACA;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;IACA;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;CACD;AAEM,MAAMC,cAER,CAAC,EAAEC,MAAM,EAAE;IACd,MAAMC,aAAaC,QAAQ;QACzB,MAAMC,cAA8CH,OAAO,GAAG,CAAC,CAACI;YAC9D,IAAI,CAACA,OAAO;YACZ,OAAO;gBACL,KAAKA,MAAM,EAAE;gBACb,MAAM,WAAN,GAAM,IAACC,KAAGA;8BAAED,MAAM,IAAI;;gBACtB,MAAM,WAAN,GAAM,IAACC,KAAGA;8BAAEC,WAAWF,MAAM,UAAU;;gBACvC,OAAO,WAAP,GAAO,IAACC,KAAGA;8BAAED,MAAM,KAAK,GAAG,YAAY;;gBACvC,QAAQA,MAAM,MAAM,CAAC,GAAG,CAAC,CAACG,QAAAA,WAAAA,GACxB,IAAC;kCACC,kBAACF,KAAGA;sCAAcE;2BAARA;uBADJA;YAIZ;QACF;QACA,OAAOC,QAAQC,OAAO,OAAO,CAACN,cAAc;YAAC;SAAO,EAAE;YAAC;SAAO;IAChE,GAAG;QAACH;KAAO;IAEX,OAAO,WAAP,GACE;kBACGC,YAAY,SAAS,WAAT,GACX,IAACS,OAAKA;YACJ,UAAQ;YACR,YAAY;YACZ,YAAYT;YACZ,SAASH;2BAGX,IAACa,OAAKA,CAAAA;;AAId"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/chunks.mjs","sources":["../../../src/pages/ModuleAnalyze/chunks.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Empty, Table, Tag } from 'antd';\nimport { orderBy } from 'es-toolkit/compat';\nimport React, { useMemo } from 'react';\nimport { formatSize } from 'src/utils';\nimport './index.sass';\nimport { Lodash } from '@rsdoctor/utils/common';\n\ntype ChunksDataType = {\n key: string | number;\n name: JSX.Element;\n size: JSX.Element;\n entry: JSX.Element;\n assets: JSX.Element[];\n};\n\nconst columns = [\n {\n title: 'Chunk Name',\n dataIndex: 'name',\n key: 'name',\n },\n {\n title: 'size | 大小',\n dataIndex: 'size',\n key: 'size',\n },\n {\n title: 'assets | 资源',\n dataIndex: 'assets',\n key: 'assets',\n },\n {\n title: 'Entry or Not | 是否是入口',\n dataIndex: 'entry',\n key: 'entry',\n },\n];\n\nexport const ChunksTable: React.FC<{\n chunks: SDK.ChunkData[];\n}> = ({ chunks }) => {\n const chunksData = useMemo(() => {\n const _chunksData: (ChunksDataType | undefined)[] = chunks.map((chunk) => {\n if (!chunk) return undefined;\n return {\n key: chunk.id,\n name: <Tag>{chunk.name}</Tag>,\n size: <Tag>{formatSize(chunk.parsedSize)}</Tag>,\n entry: <Tag>{chunk.entry ? '是 | Yes' : '否 | No'}</Tag>,\n assets: chunk.assets.map((asset) => (\n <p key={asset}>\n <Tag key={asset}>{asset}</Tag>\n </p>\n )),\n };\n });\n return orderBy(Lodash.compact(_chunksData), ['size'], ['desc']);\n }, [chunks]);\n\n return (\n <>\n {chunksData?.length ? (\n <Table\n bordered\n pagination={false}\n dataSource={chunksData}\n columns={columns}\n />\n ) : (\n <Empty />\n )}\n </>\n );\n};\n"],"names":["columns","ChunksTable","chunks","chunksData","useMemo","_chunksData","chunk","Tag","formatSize","asset","orderBy","Lodash","Table","Empty"],"mappings":";;;;;;;AAgBA,MAAMA,UAAU;IACd;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;IACA;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;IACA;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;IACA;QACE,OAAO;QACP,WAAW;QACX,KAAK;IACP;CACD;AAEM,MAAMC,cAER,CAAC,EAAEC,MAAM,EAAE;IACd,MAAMC,aAAaC,QAAQ;QACzB,MAAMC,cAA8CH,OAAO,GAAG,CAAC,CAACI;YAC9D,IAAI,CAACA,OAAO;YACZ,OAAO;gBACL,KAAKA,MAAM,EAAE;gBACb,MAAM,WAAN,GAAM,IAACC,KAAGA;8BAAED,MAAM,IAAI;;gBACtB,MAAM,WAAN,GAAM,IAACC,KAAGA;8BAAEC,WAAWF,MAAM,UAAU;;gBACvC,OAAO,WAAP,GAAO,IAACC,KAAGA;8BAAED,MAAM,KAAK,GAAG,YAAY;;gBACvC,QAAQA,MAAM,MAAM,CAAC,GAAG,CAAC,CAACG,QAAAA,WAAAA,GACxB,IAAC;kCACC,kBAACF,KAAGA;sCAAcE;2BAARA;uBADJA;YAIZ;QACF;QACA,OAAOC,QAAQC,OAAO,OAAO,CAACN,cAAc;YAAC;SAAO,EAAE;YAAC;SAAO;IAChE,GAAG;QAACH;KAAO;IAEX,OAAO,WAAP,GACE;kBACGC,YAAY,SAAS,WAAT,GACX,IAACS,OAAKA;YACJ,UAAQ;YACR,YAAY;YACZ,YAAYT;YACZ,SAASH;2BAGX,IAACa,OAAKA,CAAAA;;AAId"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { NewTreeNodeType } from '../utils/hooks';
2
+ import { NewTreeNodeType } from '../utils/hooks.js';
3
3
  import './fileTreeCom.scss';
4
4
  type FileTreeProps = {
5
5
  treeData: NewTreeNodeType[];
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/components/fileTreeCom.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/components/fileTreeCom.tsx"],"sourcesContent":["import {\n MinusCircleOutlined,\n PlusCircleOutlined,\n RightSquareOutlined,\n} from '@ant-design/icons';\nimport { Popover, Space, Typography } from 'antd';\nimport React, { useCallback } from 'react';\nimport Tree, { DefaultNodeProps, useTreeState } from 'react-hyper-tree';\n\nimport { ModuleGraphListContext } from '../../BundleSize/config';\nimport { NewTreeNodeType } from '../utils/hooks';\nimport './fileTreeCom.scss';\nimport { getFileCom } from 'src/components/FileTree';\n\nconst prefix = 'file-tree-com';\n\ntype FileTreeProps = {\n treeData: NewTreeNodeType[];\n needCode?: boolean;\n needShowAllTree?: boolean;\n needJumpto?: boolean;\n defaultOpened?: boolean;\n defaultOpenFather?: number;\n cwd: string;\n selectedChunk?: string;\n};\n\nexport const FileTree: React.FC<FileTreeProps> = (props) => {\n const {\n treeData,\n needJumpto = false,\n defaultOpened = false,\n defaultOpenFather = 0,\n } = props;\n\n const { required, handlers } = useTreeState({\n id: `${prefix}-tree`,\n data: treeData || [],\n defaultOpened,\n multipleSelect: false,\n refreshAsyncNodes: true,\n });\n\n const renderNode = useCallback(({ node, onToggle }: DefaultNodeProps) => {\n defaultOpenFather &&\n node.data.level < defaultOpenFather &&\n node.setOpened(true);\n const Icon = getFileCom(node.data.name);\n\n return (\n <div className={`${prefix}-titles-box`} key={node.data.name}>\n <div className={`${prefix}-titles`}>\n <Space direction=\"vertical\">\n <div className={`${prefix}-node-title`}>\n <Space>\n <div onClick={onToggle}>\n <Space>\n {!node.options.opened && node.data.children?.length ? (\n <PlusCircleOutlined style={{ color: 'lightblue' }} />\n ) : (\n <MinusCircleOutlined style={{ color: 'lightblue' }} />\n )}\n {Icon}\n <Popover\n key={`${node.data.name}popover`}\n content={\n <>\n {node.data.__RESOURCEPATH__ ? (\n <Typography.Text\n key={`${node.data.name}-popover-path`}\n code\n >\n {node.data.__RESOURCEPATH__}\n </Typography.Text>\n ) : (\n <></>\n )}\n </>\n }\n title=\"INFO\"\n trigger=\"hover\"\n >\n <Typography.Text>{node.data.name}</Typography.Text>\n </Popover>\n </Space>\n </div>\n <Space>\n {needJumpto && (\n <ModuleGraphListContext.Consumer>\n {({ moduleJumpList, setModuleJumpList }) => {\n return (\n <RightSquareOutlined\n onClick={() => {\n const _list = [...moduleJumpList];\n _list.push(+node.id);\n setModuleJumpList(_list);\n }}\n />\n );\n }}\n </ModuleGraphListContext.Consumer>\n )}\n </Space>\n </Space>\n </div>\n </Space>\n </div>\n </div>\n );\n }, []);\n\n return (\n <>\n <Tree\n {...required}\n {...handlers}\n horizontalLineStyles={{\n stroke: '#c4c4c4',\n strokeWidth: 2,\n strokeDasharray: '1 1',\n }}\n verticalLineStyles={{\n stroke: '#c4c4c4',\n strokeWidth: 2,\n strokeDasharray: '1 1',\n }}\n draggable={false}\n depthGap={14}\n gapMode={'padding'}\n disableLines={false}\n disableTransitions={true}\n disableHorizontalLines={false}\n disableVerticalLines={false}\n verticalLineTopOffset={0}\n verticalLineOffset={5}\n renderNode={renderNode}\n />\n </>\n );\n};\n"],"names":["prefix","FileTree","props","treeData","needJumpto","defaultOpened","defaultOpenFather","required","handlers","useTreeState","renderNode","useCallback","node","onToggle","Icon","getFileCom","Space","PlusCircleOutlined","MinusCircleOutlined","Popover","Typography","ModuleGraphListContext","moduleJumpList","setModuleJumpList","RightSquareOutlined","_list","Tree"],"mappings":";;;;;;;;AAcA,MAAMA,SAAS;AAaR,MAAMC,WAAoC,CAACC;IAChD,MAAM,EACJC,QAAQ,EACRC,aAAa,KAAK,EAClBC,gBAAgB,KAAK,EACrBC,oBAAoB,CAAC,EACtB,GAAGJ;IAEJ,MAAM,EAAEK,QAAQ,EAAEC,QAAQ,EAAE,GAAGC,aAAa;QAC1C,IAAI,GAAGT,OAAO,KAAK,CAAC;QACpB,MAAMG,YAAY,EAAE;QACpBE;QACA,gBAAgB;QAChB,mBAAmB;IACrB;IAEA,MAAMK,aAAaC,YAAY,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAoB;QAClEP,qBACEM,KAAK,IAAI,CAAC,KAAK,GAAGN,qBAClBM,KAAK,SAAS,CAAC;QACjB,MAAME,OAAOC,WAAWH,KAAK,IAAI,CAAC,IAAI;QAEtC,OAAO,WAAP,GACE,IAAC;YAAI,WAAW,GAAGZ,OAAO,WAAW,CAAC;sBACpC,kBAAC;gBAAI,WAAW,GAAGA,OAAO,OAAO,CAAC;0BAChC,kBAACgB,OAAKA;oBAAC,WAAU;8BACf,kBAAC;wBAAI,WAAW,GAAGhB,OAAO,WAAW,CAAC;kCACpC,mBAACgB,OAAKA;;8CACJ,IAAC;oCAAI,SAASH;8CACZ,mBAACG,OAAKA;;4CACH,CAACJ,KAAK,OAAO,CAAC,MAAM,IAAIA,KAAK,IAAI,CAAC,QAAQ,EAAE,SAAS,WAAT,GAC3C,IAACK,oBAAkBA;gDAAC,OAAO;oDAAE,OAAO;gDAAY;+DAEhD,IAACC,qBAAmBA;gDAAC,OAAO;oDAAE,OAAO;gDAAY;;4CAElDJ;0DACD,IAACK,SAAOA;gDAEN,uBACE;8DACGP,KAAK,IAAI,CAAC,gBAAgB,GAAG,WAAH,GACzB,IAACQ,WAAW,IAAI;wDAEd,MAAI;kEAEHR,KAAK,IAAI,CAAC,gBAAgB;uDAHtB,GAAGA,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAMvC;;gDAIN,OAAM;gDACN,SAAQ;0DAER,kBAACQ,WAAW,IAAI;8DAAER,KAAK,IAAI,CAAC,IAAI;;+CAlB3B,GAAGA,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;;8CAsBrC,IAACI,OAAKA;8CACHZ,cAAc,WAAdA,GACC,IAACiB,uBAAuB,QAAQ;kDAC7B,CAAC,EAAEC,cAAc,EAAEC,iBAAiB,EAAE,GAC9B,WAAP,GACE,IAACC,qBAAmBA;gDAClB,SAAS;oDACP,MAAMC,QAAQ;2DAAIH;qDAAe;oDACjCG,MAAM,IAAI,CAAC,CAACb,KAAK,EAAE;oDACnBW,kBAAkBE;gDACpB;;;;;;;;;WA9CuBb,KAAK,IAAI,CAAC,IAAI;IA2D/D,GAAG,EAAE;IAEL,OAAO,WAAP,GACE;kBACE,kBAACc,kBAAIA;YACF,GAAGnB,QAAQ;YACX,GAAGC,QAAQ;YACZ,sBAAsB;gBACpB,QAAQ;gBACR,aAAa;gBACb,iBAAiB;YACnB;YACA,oBAAoB;gBAClB,QAAQ;gBACR,aAAa;gBACb,iBAAiB;YACnB;YACA,WAAW;YACX,UAAU;YACV,SAAS;YACT,cAAc;YACd,oBAAoB;YACpB,wBAAwB;YACxB,sBAAsB;YACtB,uBAAuB;YACvB,oBAAoB;YACpB,YAAYE;;;AAIpB"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/components/fileTreeCom.mjs","sources":["../../../../src/pages/ModuleAnalyze/components/fileTreeCom.tsx"],"sourcesContent":["import {\n MinusCircleOutlined,\n PlusCircleOutlined,\n RightSquareOutlined,\n} from '@ant-design/icons';\nimport { Popover, Space, Typography } from 'antd';\nimport React, { useCallback } from 'react';\nimport Tree, { DefaultNodeProps, useTreeState } from 'react-hyper-tree';\n\nimport { ModuleGraphListContext } from '../../BundleSize/config';\nimport { NewTreeNodeType } from '../utils/hooks';\nimport './fileTreeCom.scss';\nimport { getFileCom } from 'src/components/FileTree';\n\nconst prefix = 'file-tree-com';\n\ntype FileTreeProps = {\n treeData: NewTreeNodeType[];\n needCode?: boolean;\n needShowAllTree?: boolean;\n needJumpto?: boolean;\n defaultOpened?: boolean;\n defaultOpenFather?: number;\n cwd: string;\n selectedChunk?: string;\n};\n\nexport const FileTree: React.FC<FileTreeProps> = (props) => {\n const {\n treeData,\n needJumpto = false,\n defaultOpened = false,\n defaultOpenFather = 0,\n } = props;\n\n const { required, handlers } = useTreeState({\n id: `${prefix}-tree`,\n data: treeData || [],\n defaultOpened,\n multipleSelect: false,\n refreshAsyncNodes: true,\n });\n\n const renderNode = useCallback(({ node, onToggle }: DefaultNodeProps) => {\n defaultOpenFather &&\n node.data.level < defaultOpenFather &&\n node.setOpened(true);\n const Icon = getFileCom(node.data.name);\n\n return (\n <div className={`${prefix}-titles-box`} key={node.data.name}>\n <div className={`${prefix}-titles`}>\n <Space direction=\"vertical\">\n <div className={`${prefix}-node-title`}>\n <Space>\n <div onClick={onToggle}>\n <Space>\n {!node.options.opened && node.data.children?.length ? (\n <PlusCircleOutlined style={{ color: 'lightblue' }} />\n ) : (\n <MinusCircleOutlined style={{ color: 'lightblue' }} />\n )}\n {Icon}\n <Popover\n key={`${node.data.name}popover`}\n content={\n <>\n {node.data.__RESOURCEPATH__ ? (\n <Typography.Text\n key={`${node.data.name}-popover-path`}\n code\n >\n {node.data.__RESOURCEPATH__}\n </Typography.Text>\n ) : (\n <></>\n )}\n </>\n }\n title=\"INFO\"\n trigger=\"hover\"\n >\n <Typography.Text>{node.data.name}</Typography.Text>\n </Popover>\n </Space>\n </div>\n <Space>\n {needJumpto && (\n <ModuleGraphListContext.Consumer>\n {({ moduleJumpList, setModuleJumpList }) => {\n return (\n <RightSquareOutlined\n onClick={() => {\n const _list = [...moduleJumpList];\n _list.push(+node.id);\n setModuleJumpList(_list);\n }}\n />\n );\n }}\n </ModuleGraphListContext.Consumer>\n )}\n </Space>\n </Space>\n </div>\n </Space>\n </div>\n </div>\n );\n }, []);\n\n return (\n <>\n <Tree\n {...required}\n {...handlers}\n horizontalLineStyles={{\n stroke: '#c4c4c4',\n strokeWidth: 2,\n strokeDasharray: '1 1',\n }}\n verticalLineStyles={{\n stroke: '#c4c4c4',\n strokeWidth: 2,\n strokeDasharray: '1 1',\n }}\n draggable={false}\n depthGap={14}\n gapMode={'padding'}\n disableLines={false}\n disableTransitions={true}\n disableHorizontalLines={false}\n disableVerticalLines={false}\n verticalLineTopOffset={0}\n verticalLineOffset={5}\n renderNode={renderNode}\n />\n </>\n );\n};\n"],"names":["prefix","FileTree","props","treeData","needJumpto","defaultOpened","defaultOpenFather","required","handlers","useTreeState","renderNode","useCallback","node","onToggle","Icon","getFileCom","Space","PlusCircleOutlined","MinusCircleOutlined","Popover","Typography","ModuleGraphListContext","moduleJumpList","setModuleJumpList","RightSquareOutlined","_list","Tree"],"mappings":";;;;;;;;AAcA,MAAMA,SAAS;AAaR,MAAMC,WAAoC,CAACC;IAChD,MAAM,EACJC,QAAQ,EACRC,aAAa,KAAK,EAClBC,gBAAgB,KAAK,EACrBC,oBAAoB,CAAC,EACtB,GAAGJ;IAEJ,MAAM,EAAEK,QAAQ,EAAEC,QAAQ,EAAE,GAAGC,aAAa;QAC1C,IAAI,GAAGT,OAAO,KAAK,CAAC;QACpB,MAAMG,YAAY,EAAE;QACpBE;QACA,gBAAgB;QAChB,mBAAmB;IACrB;IAEA,MAAMK,aAAaC,YAAY,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAoB;QAClEP,qBACEM,KAAK,IAAI,CAAC,KAAK,GAAGN,qBAClBM,KAAK,SAAS,CAAC;QACjB,MAAME,OAAOC,WAAWH,KAAK,IAAI,CAAC,IAAI;QAEtC,OAAO,WAAP,GACE,IAAC;YAAI,WAAW,GAAGZ,OAAO,WAAW,CAAC;sBACpC,kBAAC;gBAAI,WAAW,GAAGA,OAAO,OAAO,CAAC;0BAChC,kBAACgB,OAAKA;oBAAC,WAAU;8BACf,kBAAC;wBAAI,WAAW,GAAGhB,OAAO,WAAW,CAAC;kCACpC,mBAACgB,OAAKA;;8CACJ,IAAC;oCAAI,SAASH;8CACZ,mBAACG,OAAKA;;4CACH,CAACJ,KAAK,OAAO,CAAC,MAAM,IAAIA,KAAK,IAAI,CAAC,QAAQ,EAAE,SAAS,WAAT,GAC3C,IAACK,oBAAkBA;gDAAC,OAAO;oDAAE,OAAO;gDAAY;+DAEhD,IAACC,qBAAmBA;gDAAC,OAAO;oDAAE,OAAO;gDAAY;;4CAElDJ;0DACD,IAACK,SAAOA;gDAEN,uBACE;8DACGP,KAAK,IAAI,CAAC,gBAAgB,GAAG,WAAH,GACzB,IAACQ,WAAW,IAAI;wDAEd,MAAI;kEAEHR,KAAK,IAAI,CAAC,gBAAgB;uDAHtB,GAAGA,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAMvC;;gDAIN,OAAM;gDACN,SAAQ;0DAER,kBAACQ,WAAW,IAAI;8DAAER,KAAK,IAAI,CAAC,IAAI;;+CAlB3B,GAAGA,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;;8CAsBrC,IAACI,OAAKA;8CACHZ,cAAc,WAAdA,GACC,IAACiB,uBAAuB,QAAQ;kDAC7B,CAAC,EAAEC,cAAc,EAAEC,iBAAiB,EAAE,GAC9B,WAAP,GACE,IAACC,qBAAmBA;gDAClB,SAAS;oDACP,MAAMC,QAAQ;2DAAIH;qDAAe;oDACjCG,MAAM,IAAI,CAAC,CAACb,KAAK,EAAE;oDACnBW,kBAAkBE;gDACpB;;;;;;;;;WA9CuBb,KAAK,IAAI,CAAC,IAAI;IA2D/D,GAAG,EAAE;IAEL,OAAO,WAAP,GACE;kBACE,kBAACc,kBAAIA;YACF,GAAGnB,QAAQ;YACX,GAAGC,QAAQ;YACZ,sBAAsB;gBACpB,QAAQ;gBACR,aAAa;gBACb,iBAAiB;YACnB;YACA,oBAAoB;gBAClB,QAAQ;gBACR,aAAa;gBACb,iBAAiB;YACnB;YACA,WAAW;YACX,UAAU;YACV,SAAS;YACT,cAAc;YACd,oBAAoB;YACpB,wBAAwB;YACxB,sBAAsB;YACtB,uBAAuB;YACvB,oBAAoB;YACpB,YAAYE;;;AAIpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/constants.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'Module Analyze';\n\nexport const route = Client.RsdoctorClientRoutes.ModuleAnalyze;\n\nexport enum DevtoolsRuleClientConstant {\n UrlQueryForModuleAnalyze = 'curModuleId',\n}\n\nexport const clsNamePrefix = 'module-analyze';\n"],"names":["name","route","Client","DevtoolsRuleClientConstant","clsNamePrefix"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,aAAa;AAEvD,IAAKC,uCAA0BA,WAAAA,GAAAA,SAA1BA,0BAA0B;;WAA1BA;;AAIL,MAAMC,gBAAgB"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/constants.mjs","sources":["../../../src/pages/ModuleAnalyze/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'Module Analyze';\n\nexport const route = Client.RsdoctorClientRoutes.ModuleAnalyze;\n\nexport enum DevtoolsRuleClientConstant {\n UrlQueryForModuleAnalyze = 'curModuleId',\n}\n\nexport const clsNamePrefix = 'module-analyze';\n"],"names":["name","route","Client","DevtoolsRuleClientConstant","clsNamePrefix"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,aAAa;AAEvD,IAAKC,uCAA0BA,WAAAA,GAAAA,SAA1BA,0BAA0B;;WAA1BA;;AAIL,MAAMC,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/dependency.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/dependency.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Col, Empty, Row } from 'antd';\nimport React, { memo, useMemo } from 'react';\nimport { getShortPath } from '../../utils';\nimport { FileTree } from './components/fileTreeCom';\nimport './index.sass';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nconst DependencyTree: React.FC<{\n module: SDK.ModuleData;\n dependencies: SDK.DependencyData[];\n cwd: string;\n}> = ({ dependencies, cwd, module }) => {\n const treedata = useMemo(() => {\n const dpTreeData = module.dependencies.map((dpId) => {\n const dp = dependencies.find((_dp) => _dp.id === dpId);\n if (!dp) return;\n return {\n __RESOURCEPATH__: dp.resolvedRequest || '',\n id: dp.dependency,\n key: dp.resolvedRequest,\n name: getShortPath(dp.resolvedRequest) || '',\n level: 1,\n kind: dp.kind,\n concatModules: undefined,\n };\n });\n return Lodash.compact(dpTreeData);\n }, [module]);\n\n return (\n <Row justify=\"start\" align=\"middle\">\n <Col span={24}>\n {treedata.length ? (\n <FileTree treeData={treedata} needJumpto cwd={cwd} />\n ) : (\n <Empty />\n )}\n </Col>\n </Row>\n );\n};\n\nexport default memo(DependencyTree);\n"],"names":["DependencyTree","dependencies","cwd","module","treedata","useMemo","dpTreeData","dpId","dp","_dp","getShortPath","undefined","Lodash","Row","Col","FileTree","Empty","memo"],"mappings":";;;;;;;AAQA,MAAMA,iBAID,CAAC,EAAEC,YAAY,EAAEC,GAAG,EAAEC,MAAM,EAAE;IACjC,MAAMC,WAAWC,QAAQ;QACvB,MAAMC,aAAaH,OAAO,YAAY,CAAC,GAAG,CAAC,CAACI;YAC1C,MAAMC,KAAKP,aAAa,IAAI,CAAC,CAACQ,MAAQA,IAAI,EAAE,KAAKF;YACjD,IAAI,CAACC,IAAI;YACT,OAAO;gBACL,kBAAkBA,GAAG,eAAe,IAAI;gBACxC,IAAIA,GAAG,UAAU;gBACjB,KAAKA,GAAG,eAAe;gBACvB,MAAME,aAAaF,GAAG,eAAe,KAAK;gBAC1C,OAAO;gBACP,MAAMA,GAAG,IAAI;gBACb,eAAeG;YACjB;QACF;QACA,OAAOC,OAAO,OAAO,CAACN;IACxB,GAAG;QAACH;KAAO;IAEX,OAAO,WAAP,GACE,IAACU,KAAGA;QAAC,SAAQ;QAAQ,OAAM;kBACzB,kBAACC,KAAGA;YAAC,MAAM;sBACRV,SAAS,MAAM,GAAG,WAAH,GACd,IAACW,UAAQA;gBAAC,UAAUX;gBAAU,YAAU;gBAAC,KAAKF;+BAE9C,IAACc,OAAKA,CAAAA;;;AAKhB;AAEA,iCAAeC,KAAKjB"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/dependency.mjs","sources":["../../../src/pages/ModuleAnalyze/dependency.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Col, Empty, Row } from 'antd';\nimport React, { memo, useMemo } from 'react';\nimport { getShortPath } from '../../utils';\nimport { FileTree } from './components/fileTreeCom';\nimport './index.sass';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nconst DependencyTree: React.FC<{\n module: SDK.ModuleData;\n dependencies: SDK.DependencyData[];\n cwd: string;\n}> = ({ dependencies, cwd, module }) => {\n const treedata = useMemo(() => {\n const dpTreeData = module.dependencies.map((dpId) => {\n const dp = dependencies.find((_dp) => _dp.id === dpId);\n if (!dp) return;\n return {\n __RESOURCEPATH__: dp.resolvedRequest || '',\n id: dp.dependency,\n key: dp.resolvedRequest,\n name: getShortPath(dp.resolvedRequest) || '',\n level: 1,\n kind: dp.kind,\n concatModules: undefined,\n };\n });\n return Lodash.compact(dpTreeData);\n }, [module]);\n\n return (\n <Row justify=\"start\" align=\"middle\">\n <Col span={24}>\n {treedata.length ? (\n <FileTree treeData={treedata} needJumpto cwd={cwd} />\n ) : (\n <Empty />\n )}\n </Col>\n </Row>\n );\n};\n\nexport default memo(DependencyTree);\n"],"names":["DependencyTree","dependencies","cwd","module","treedata","useMemo","dpTreeData","dpId","dp","_dp","getShortPath","undefined","Lodash","Row","Col","FileTree","Empty","memo"],"mappings":";;;;;;;AAQA,MAAMA,iBAID,CAAC,EAAEC,YAAY,EAAEC,GAAG,EAAEC,MAAM,EAAE;IACjC,MAAMC,WAAWC,QAAQ;QACvB,MAAMC,aAAaH,OAAO,YAAY,CAAC,GAAG,CAAC,CAACI;YAC1C,MAAMC,KAAKP,aAAa,IAAI,CAAC,CAACQ,MAAQA,IAAI,EAAE,KAAKF;YACjD,IAAI,CAACC,IAAI;YACT,OAAO;gBACL,kBAAkBA,GAAG,eAAe,IAAI;gBACxC,IAAIA,GAAG,UAAU;gBACjB,KAAKA,GAAG,eAAe;gBACvB,MAAME,aAAaF,GAAG,eAAe,KAAK;gBAC1C,OAAO;gBACP,MAAMA,GAAG,IAAI;gBACb,eAAeG;YACjB;QACF;QACA,OAAOC,OAAO,OAAO,CAACN;IACxB,GAAG;QAACH;KAAO;IAEX,OAAO,WAAP,GACE,IAACU,KAAGA;QAAC,SAAQ;QAAQ,OAAM;kBACzB,kBAACC,KAAGA;YAAC,MAAM;sBACRV,SAAS,MAAM,GAAG,WAAH,GACd,IAACW,UAAQA;gBAAC,UAAUX;gBAAU,YAAU;gBAAC,KAAKF;+BAE9C,IAACc,OAAKA,CAAAA;;;AAKhB;AAEA,iCAAeC,KAAKjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/fileTree.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/fileTree.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Col, Empty, Tag, Popover } from 'antd';\nimport React, { useEffect, useState } from 'react';\nimport { Size } from 'src/constants';\nimport { FileTree } from './components/fileTreeCom';\nimport { clsNamePrefix } from './constants';\nimport DependencyTree from './dependency';\nimport { getImporteds } from './utils';\nimport { useCreateFileTreeData } from './utils/hooks';\nimport { TabList } from './index';\n\nexport const ModuleFilesTree: React.FC<{\n modules: SDK.ModuleData[];\n dependencies: SDK.DependencyData[];\n curModule: SDK.ModuleData;\n cwd: string;\n selectedChunk: string;\n activeTabKey: string;\n}> = (props) => {\n const {\n curModule,\n modules,\n dependencies,\n cwd,\n activeTabKey,\n selectedChunk = '',\n } = props;\n const [importedModules, setImportedModules] = useState(\n [] as SDK.ModuleData[],\n );\n\n const { data: fileStructures } = useCreateFileTreeData(\n modules,\n importedModules,\n curModule,\n );\n\n useEffect(() => {\n const importeds = getImporteds(curModule, modules);\n setImportedModules(importeds);\n }, [curModule, modules]);\n\n return (\n <>\n {activeTabKey === TabList[TabList.Reasons] ? (\n <>\n {importedModules ? (\n <FileTree\n cwd={cwd}\n treeData={fileStructures}\n needCode={true}\n needShowAllTree={true}\n needJumpto={true}\n selectedChunk={selectedChunk}\n />\n ) : (\n <Empty className={`${clsNamePrefix}-empty`} />\n )}\n </>\n ) : activeTabKey === TabList[TabList.Dependencies] ? (\n <div\n className={`${clsNamePrefix}-file-tree`}\n style={{ padding: Size.BasePadding / 2 }}\n >\n <Col span={24} style={{ marginTop: Size.BasePadding / 2 }}>\n {curModule ? (\n <DependencyTree\n module={curModule}\n dependencies={dependencies}\n cwd={cwd}\n />\n ) : (\n <Empty className={`${clsNamePrefix}-empty`} />\n )}\n </Col>\n </div>\n ) : (\n <div>\n {curModule.bailoutReason?.map((reason) => (\n <div style={{ marginBottom: 10 }}>\n <Tag key={reason}>\n <Popover content={reason}>\n <span style={{ display: 'inline-block' }}>\n {reason.length > 120\n ? `${reason.slice(0, 120)}...`\n : reason}\n </span>\n </Popover>\n </Tag>\n </div>\n ))}\n </div>\n )}\n </>\n );\n};\n"],"names":["ModuleFilesTree","props","curModule","modules","dependencies","cwd","activeTabKey","selectedChunk","importedModules","setImportedModules","useState","fileStructures","useCreateFileTreeData","useEffect","importeds","getImporteds","TabList","FileTree","Empty","clsNamePrefix","Size","Col","DependencyTree","reason","Tag","Popover"],"mappings":";;;;;;;;;;AAWO,MAAMA,kBAOR,CAACC;IACJ,MAAM,EACJC,SAAS,EACTC,OAAO,EACPC,YAAY,EACZC,GAAG,EACHC,YAAY,EACZC,gBAAgB,EAAE,EACnB,GAAGN;IACJ,MAAM,CAACO,iBAAiBC,mBAAmB,GAAGC,SAC5C,EAAE;IAGJ,MAAM,EAAE,MAAMC,cAAc,EAAE,GAAGC,sBAC/BT,SACAK,iBACAN;IAGFW,UAAU;QACR,MAAMC,YAAYC,aAAab,WAAWC;QAC1CM,mBAAmBK;IACrB,GAAG;QAACZ;QAAWC;KAAQ;IAEvB,OAAO,WAAP,GACE;kBACGG,iBAAiBU,OAAO,CAACA,QAAQ,OAAO,CAAC,GAAG,WAAH,GACxC;sBACGR,kBAAkB,WAAlBA,GACC,IAACS,UAAQA;gBACP,KAAKZ;gBACL,UAAUM;gBACV,UAAU;gBACV,iBAAiB;gBACjB,YAAY;gBACZ,eAAeJ;+BAGjB,IAACW,OAAKA;gBAAC,WAAW,GAAGC,cAAc,MAAM,CAAC;;aAG5Cb,iBAAiBU,OAAO,CAACA,QAAQ,YAAY,CAAC,GAAG,WAAH,GAChD,IAAC;YACC,WAAW,GAAGG,cAAc,UAAU,CAAC;YACvC,OAAO;gBAAE,SAASC,KAAK,WAAW,GAAG;YAAE;sBAEvC,kBAACC,KAAGA;gBAAC,MAAM;gBAAI,OAAO;oBAAE,WAAWD,KAAK,WAAW,GAAG;gBAAE;0BACrDlB,YAAY,WAAZA,GACC,IAACoB,YAAcA;oBACb,QAAQpB;oBACR,cAAcE;oBACd,KAAKC;mCAGP,IAACa,OAAKA;oBAAC,WAAW,GAAGC,cAAc,MAAM,CAAC;;;2BAKhD,IAAC;sBACEjB,UAAU,aAAa,EAAE,IAAI,CAACqB,SAAAA,WAAAA,GAC7B,IAAC;oBAAI,OAAO;wBAAE,cAAc;oBAAG;8BAC7B,kBAACC,KAAGA;kCACF,kBAACC,SAAOA;4BAAC,SAASF;sCAChB,kBAAC;gCAAK,OAAO;oCAAE,SAAS;gCAAe;0CACpCA,OAAO,MAAM,GAAG,MACb,GAAGA,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,GAC5BA;;;uBALAA;;;;AAexB"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/fileTree.mjs","sources":["../../../src/pages/ModuleAnalyze/fileTree.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Col, Empty, Tag, Popover } from 'antd';\nimport React, { useEffect, useState } from 'react';\nimport { Size } from 'src/constants';\nimport { FileTree } from './components/fileTreeCom';\nimport { clsNamePrefix } from './constants';\nimport DependencyTree from './dependency';\nimport { getImporteds } from './utils';\nimport { useCreateFileTreeData } from './utils/hooks';\nimport { TabList } from './index';\n\nexport const ModuleFilesTree: React.FC<{\n modules: SDK.ModuleData[];\n dependencies: SDK.DependencyData[];\n curModule: SDK.ModuleData;\n cwd: string;\n selectedChunk: string;\n activeTabKey: string;\n}> = (props) => {\n const {\n curModule,\n modules,\n dependencies,\n cwd,\n activeTabKey,\n selectedChunk = '',\n } = props;\n const [importedModules, setImportedModules] = useState(\n [] as SDK.ModuleData[],\n );\n\n const { data: fileStructures } = useCreateFileTreeData(\n modules,\n importedModules,\n curModule,\n );\n\n useEffect(() => {\n const importeds = getImporteds(curModule, modules);\n setImportedModules(importeds);\n }, [curModule, modules]);\n\n return (\n <>\n {activeTabKey === TabList[TabList.Reasons] ? (\n <>\n {importedModules ? (\n <FileTree\n cwd={cwd}\n treeData={fileStructures}\n needCode={true}\n needShowAllTree={true}\n needJumpto={true}\n selectedChunk={selectedChunk}\n />\n ) : (\n <Empty className={`${clsNamePrefix}-empty`} />\n )}\n </>\n ) : activeTabKey === TabList[TabList.Dependencies] ? (\n <div\n className={`${clsNamePrefix}-file-tree`}\n style={{ padding: Size.BasePadding / 2 }}\n >\n <Col span={24} style={{ marginTop: Size.BasePadding / 2 }}>\n {curModule ? (\n <DependencyTree\n module={curModule}\n dependencies={dependencies}\n cwd={cwd}\n />\n ) : (\n <Empty className={`${clsNamePrefix}-empty`} />\n )}\n </Col>\n </div>\n ) : (\n <div>\n {curModule.bailoutReason?.map((reason) => (\n <div style={{ marginBottom: 10 }}>\n <Tag key={reason}>\n <Popover content={reason}>\n <span style={{ display: 'inline-block' }}>\n {reason.length > 120\n ? `${reason.slice(0, 120)}...`\n : reason}\n </span>\n </Popover>\n </Tag>\n </div>\n ))}\n </div>\n )}\n </>\n );\n};\n"],"names":["ModuleFilesTree","props","curModule","modules","dependencies","cwd","activeTabKey","selectedChunk","importedModules","setImportedModules","useState","fileStructures","useCreateFileTreeData","useEffect","importeds","getImporteds","TabList","FileTree","Empty","clsNamePrefix","Size","Col","DependencyTree","reason","Tag","Popover"],"mappings":";;;;;;;;;;AAWO,MAAMA,kBAOR,CAACC;IACJ,MAAM,EACJC,SAAS,EACTC,OAAO,EACPC,YAAY,EACZC,GAAG,EACHC,YAAY,EACZC,gBAAgB,EAAE,EACnB,GAAGN;IACJ,MAAM,CAACO,iBAAiBC,mBAAmB,GAAGC,SAC5C,EAAE;IAGJ,MAAM,EAAE,MAAMC,cAAc,EAAE,GAAGC,sBAC/BT,SACAK,iBACAN;IAGFW,UAAU;QACR,MAAMC,YAAYC,aAAab,WAAWC;QAC1CM,mBAAmBK;IACrB,GAAG;QAACZ;QAAWC;KAAQ;IAEvB,OAAO,WAAP,GACE;kBACGG,iBAAiBU,OAAO,CAACA,QAAQ,OAAO,CAAC,GAAG,WAAH,GACxC;sBACGR,kBAAkB,WAAlBA,GACC,IAACS,UAAQA;gBACP,KAAKZ;gBACL,UAAUM;gBACV,UAAU;gBACV,iBAAiB;gBACjB,YAAY;gBACZ,eAAeJ;+BAGjB,IAACW,OAAKA;gBAAC,WAAW,GAAGC,cAAc,MAAM,CAAC;;aAG5Cb,iBAAiBU,OAAO,CAACA,QAAQ,YAAY,CAAC,GAAG,WAAH,GAChD,IAAC;YACC,WAAW,GAAGG,cAAc,UAAU,CAAC;YACvC,OAAO;gBAAE,SAASC,KAAK,WAAW,GAAG;YAAE;sBAEvC,kBAACC,KAAGA;gBAAC,MAAM;gBAAI,OAAO;oBAAE,WAAWD,KAAK,WAAW,GAAG;gBAAE;0BACrDlB,YAAY,WAAZA,GACC,IAACoB,YAAcA;oBACb,QAAQpB;oBACR,cAAcE;oBACd,KAAKC;mCAGP,IAACa,OAAKA;oBAAC,WAAW,GAAGC,cAAc,MAAM,CAAC;;;2BAKhD,IAAC;sBACEjB,UAAU,aAAa,EAAE,IAAI,CAACqB,SAAAA,WAAAA,GAC7B,IAAC;oBAAI,OAAO;wBAAE,cAAc;oBAAG;8BAC7B,kBAACC,KAAGA;kCACF,kBAACC,SAAOA;4BAAC,SAASF;sCAChB,kBAAC;gCAAK,OAAO;oCAAE,SAAS;gCAAe;0CACpCA,OAAO,MAAM,GAAG,MACb,GAAGA,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,GAC5BA;;;uBALAA;;;;AAexB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/index.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/index.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport {\n Badge,\n Card,\n Col,\n Drawer,\n Popover,\n Row,\n Space,\n Typography,\n} from 'antd';\nimport React, { useState } from 'react';\nimport { ServerAPIProvider } from 'src/components/Manifest';\nimport { getShortPath } from 'src/utils';\nimport { ModuleGraphListContext } from '../BundleSize/config';\nimport { ModuleFilesTree } from './fileTree';\nimport './index.scss';\nimport { drawerWidth } from '../../constants';\nimport {\n LeftSquareOutlined,\n QuestionCircleOutlined,\n RightSquareTwoTone,\n} from '@ant-design/icons';\n\nexport enum TabList {\n Reasons,\n Dependencies,\n BailoutReason,\n}\n\nconst tabslist = [\n {\n key: TabList[TabList.Reasons],\n label: TabList[TabList.Reasons],\n },\n {\n key: TabList[TabList.Dependencies],\n label: TabList[TabList.Dependencies],\n },\n {\n key: TabList[TabList.BailoutReason],\n label: TabList[TabList.BailoutReason],\n },\n] as unknown as { key: string; label: string }[];\n\nexport const ModuleAnalyzeComponent: React.FC<{\n modules: SDK.ModuleData[];\n cwd: string;\n moduleId: string | number;\n show: boolean;\n setShow: (arg: boolean) => void;\n}> = ({ modules, cwd, moduleId, show, setShow }) => {\n const [selectedChunk, _setSelectedChunk] = useState('' as string);\n const [activeTabKey, setActiveTabKey] = useState(TabList[TabList.Reasons]);\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetModuleDetails}\n body={{ moduleId: +moduleId }}\n >\n {({ module, dependencies }) => {\n return (\n <Drawer\n title={\n <div className=\"module-analyze-box\">\n <Typography.Text>{getShortPath(module.path)}</Typography.Text>\n <Typography.Text\n style={{ fontSize: 12, color: 'rgba(0, 0, 0, 0.45)' }}\n >\n {`Current Module: ${module.path}`}\n </Typography.Text>\n </div>\n }\n open={show}\n maskClosable\n width={drawerWidth * 0.8}\n onClose={() => setShow(false)}\n >\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAllChunkGraph}\n body={{}}\n >\n {(_chunks) => {\n return (\n <ModuleGraphListContext.Consumer>\n {({ moduleJumpList, setModuleJumpList }) => {\n return (\n <Card\n style={{ minHeight: 400 }}\n tabList={tabslist}\n activeTabKey={activeTabKey}\n tabProps={{\n size: 'small',\n style: {\n fontSize: 12,\n },\n }}\n onTabChange={(k) => setActiveTabKey(k)}\n styles={{\n title: { paddingTop: 0 },\n }}\n title={\n <Space style={{ padding: '10px 0px' }}>\n <LeftSquareOutlined\n onClick={() => {\n const _list = [\n ...moduleJumpList.slice(0, -1),\n ];\n setModuleJumpList(_list);\n }}\n />\n <Typography.Text>\n Current Module Imported Reasons Tree\n </Typography.Text>\n <Popover\n content={\n <div>\n <div>\n <Badge status=\"success\" text=\" \" />\n <RightSquareTwoTone />\n <Typography.Text>\n {\n ': Jump button, click to jump to the Module dependency analysis page of this module.'\n }\n </Typography.Text>\n </div>\n </div>\n }\n title=\"Usage\"\n >\n <QuestionCircleOutlined />\n </Popover>\n </Space>\n }\n >\n <Row justify=\"start\" align=\"middle\">\n <Col span={24}>\n <ModuleFilesTree\n curModule={module}\n modules={modules}\n dependencies={dependencies}\n cwd={cwd}\n selectedChunk={selectedChunk}\n activeTabKey={activeTabKey}\n />\n </Col>\n </Row>\n </Card>\n );\n }}\n </ModuleGraphListContext.Consumer>\n );\n }}\n </ServerAPIProvider>\n </Drawer>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["TabList","tabslist","ModuleAnalyzeComponent","modules","cwd","moduleId","show","setShow","selectedChunk","_setSelectedChunk","useState","activeTabKey","setActiveTabKey","ServerAPIProvider","SDK","module","dependencies","Drawer","Typography","getShortPath","drawerWidth","_chunks","ModuleGraphListContext","moduleJumpList","setModuleJumpList","Card","k","Space","LeftSquareOutlined","_list","Popover","Badge","RightSquareTwoTone","QuestionCircleOutlined","Row","Col","ModuleFilesTree"],"mappings":";;;;;;;;;;;AAwBO,IAAKA,wBAAOA,WAAAA,GAAAA,SAAPA,OAAO;;;;WAAPA;;AAMZ,MAAMC,WAAW;IACf;QACE,KAAKD,qBAAO,CAAC,EAAgB;QAC7B,OAAOA,qBAAO,CAAC,EAAgB;IACjC;IACA;QACE,KAAKA,qBAAO,CAAC,EAAqB;QAClC,OAAOA,qBAAO,CAAC,EAAqB;IACtC;IACA;QACE,KAAKA,qBAAO,CAAC,EAAsB;QACnC,OAAOA,qBAAO,CAAC,EAAsB;IACvC;CACD;AAEM,MAAME,yBAMR,CAAC,EAAEC,OAAO,EAAEC,GAAG,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,EAAE;IAC7C,MAAM,CAACC,eAAeC,kBAAkB,GAAGC,SAAS;IACpD,MAAM,CAACC,cAAcC,gBAAgB,GAAGF,SAASV,qBAAO,CAAC,EAAgB;IAEzE,OAAO,WAAP,GACE,IAACa,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;QACvC,MAAM;YAAE,UAAU,CAACT;QAAS;kBAE3B,CAAC,EAAEU,MAAM,EAAEC,YAAY,EAAE,GACjB,WAAP,GACE,IAACC,QAAMA;gBACL,qBACE,KAAC;oBAAI,WAAU;;sCACb,IAACC,WAAW,IAAI;sCAAEC,aAAaJ,OAAO,IAAI;;sCAC1C,IAACG,WAAW,IAAI;4BACd,OAAO;gCAAE,UAAU;gCAAI,OAAO;4BAAsB;sCAEnD,CAAC,gBAAgB,EAAEH,OAAO,IAAI,EAAE;;;;gBAIvC,MAAMT;gBACN,cAAY;gBACZ,OAAOc,AAAc,MAAdA;gBACP,SAAS,IAAMb,QAAQ;0BAEvB,kBAACM,mBAAiBA;oBAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;oBACvC,MAAM,CAAC;8BAEN,CAACO,UACO,WAAP,GACE,IAACC,uBAAuB,QAAQ;sCAC7B,CAAC,EAAEC,cAAc,EAAEC,iBAAiB,EAAE,GAC9B,WAAP,GACE,IAACC,MAAIA;oCACH,OAAO;wCAAE,WAAW;oCAAI;oCACxB,SAASxB;oCACT,cAAcU;oCACd,UAAU;wCACR,MAAM;wCACN,OAAO;4CACL,UAAU;wCACZ;oCACF;oCACA,aAAa,CAACe,IAAMd,gBAAgBc;oCACpC,QAAQ;wCACN,OAAO;4CAAE,YAAY;wCAAE;oCACzB;oCACA,qBACE,KAACC,OAAKA;wCAAC,OAAO;4CAAE,SAAS;wCAAW;;0DAClC,IAACC,oBAAkBA;gDACjB,SAAS;oDACP,MAAMC,QAAQ;2DACTN,eAAe,KAAK,CAAC,GAAG;qDAC5B;oDACDC,kBAAkBK;gDACpB;;0DAEF,IAACX,WAAW,IAAI;0DAAC;;0DAGjB,IAACY,SAAOA;gDACN,uBACE,IAAC;8DACC,mBAAC;;0EACC,IAACC,OAAKA;gEAAC,QAAO;gEAAU,MAAK;;0EAC7B,IAACC,oBAAkBA,CAAAA;0EACnB,IAACd,WAAW,IAAI;0EAEZ;;;;;gDAMV,OAAM;0DAEN,kBAACe,wBAAsBA,CAAAA;;;;8CAK7B,kBAACC,KAAGA;wCAAC,SAAQ;wCAAQ,OAAM;kDACzB,kBAACC,KAAGA;4CAAC,MAAM;sDACT,kBAACC,iBAAeA;gDACd,WAAWrB;gDACX,SAASZ;gDACT,cAAca;gDACd,KAAKZ;gDACL,eAAeI;gDACf,cAAcG;;;;;;;;;AAgB9C"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/index.mjs","sources":["../../../src/pages/ModuleAnalyze/index.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport {\n Badge,\n Card,\n Col,\n Drawer,\n Popover,\n Row,\n Space,\n Typography,\n} from 'antd';\nimport React, { useState } from 'react';\nimport { ServerAPIProvider } from 'src/components/Manifest';\nimport { getShortPath } from 'src/utils';\nimport { ModuleGraphListContext } from '../BundleSize/config';\nimport { ModuleFilesTree } from './fileTree';\nimport './index.scss';\nimport { drawerWidth } from '../../constants';\nimport {\n LeftSquareOutlined,\n QuestionCircleOutlined,\n RightSquareTwoTone,\n} from '@ant-design/icons';\n\nexport enum TabList {\n Reasons,\n Dependencies,\n BailoutReason,\n}\n\nconst tabslist = [\n {\n key: TabList[TabList.Reasons],\n label: TabList[TabList.Reasons],\n },\n {\n key: TabList[TabList.Dependencies],\n label: TabList[TabList.Dependencies],\n },\n {\n key: TabList[TabList.BailoutReason],\n label: TabList[TabList.BailoutReason],\n },\n] as unknown as { key: string; label: string }[];\n\nexport const ModuleAnalyzeComponent: React.FC<{\n modules: SDK.ModuleData[];\n cwd: string;\n moduleId: string | number;\n show: boolean;\n setShow: (arg: boolean) => void;\n}> = ({ modules, cwd, moduleId, show, setShow }) => {\n const [selectedChunk, _setSelectedChunk] = useState('' as string);\n const [activeTabKey, setActiveTabKey] = useState(TabList[TabList.Reasons]);\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetModuleDetails}\n body={{ moduleId: +moduleId }}\n >\n {({ module, dependencies }) => {\n return (\n <Drawer\n title={\n <div className=\"module-analyze-box\">\n <Typography.Text>{getShortPath(module.path)}</Typography.Text>\n <Typography.Text\n style={{ fontSize: 12, color: 'rgba(0, 0, 0, 0.45)' }}\n >\n {`Current Module: ${module.path}`}\n </Typography.Text>\n </div>\n }\n open={show}\n maskClosable\n width={drawerWidth * 0.8}\n onClose={() => setShow(false)}\n >\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetAllChunkGraph}\n body={{}}\n >\n {(_chunks) => {\n return (\n <ModuleGraphListContext.Consumer>\n {({ moduleJumpList, setModuleJumpList }) => {\n return (\n <Card\n style={{ minHeight: 400 }}\n tabList={tabslist}\n activeTabKey={activeTabKey}\n tabProps={{\n size: 'small',\n style: {\n fontSize: 12,\n },\n }}\n onTabChange={(k) => setActiveTabKey(k)}\n styles={{\n title: { paddingTop: 0 },\n }}\n title={\n <Space style={{ padding: '10px 0px' }}>\n <LeftSquareOutlined\n onClick={() => {\n const _list = [\n ...moduleJumpList.slice(0, -1),\n ];\n setModuleJumpList(_list);\n }}\n />\n <Typography.Text>\n Current Module Imported Reasons Tree\n </Typography.Text>\n <Popover\n content={\n <div>\n <div>\n <Badge status=\"success\" text=\" \" />\n <RightSquareTwoTone />\n <Typography.Text>\n {\n ': Jump button, click to jump to the Module dependency analysis page of this module.'\n }\n </Typography.Text>\n </div>\n </div>\n }\n title=\"Usage\"\n >\n <QuestionCircleOutlined />\n </Popover>\n </Space>\n }\n >\n <Row justify=\"start\" align=\"middle\">\n <Col span={24}>\n <ModuleFilesTree\n curModule={module}\n modules={modules}\n dependencies={dependencies}\n cwd={cwd}\n selectedChunk={selectedChunk}\n activeTabKey={activeTabKey}\n />\n </Col>\n </Row>\n </Card>\n );\n }}\n </ModuleGraphListContext.Consumer>\n );\n }}\n </ServerAPIProvider>\n </Drawer>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["TabList","tabslist","ModuleAnalyzeComponent","modules","cwd","moduleId","show","setShow","selectedChunk","_setSelectedChunk","useState","activeTabKey","setActiveTabKey","ServerAPIProvider","SDK","module","dependencies","Drawer","Typography","getShortPath","drawerWidth","_chunks","ModuleGraphListContext","moduleJumpList","setModuleJumpList","Card","k","Space","LeftSquareOutlined","_list","Popover","Badge","RightSquareTwoTone","QuestionCircleOutlined","Row","Col","ModuleFilesTree"],"mappings":";;;;;;;;;;;AAwBO,IAAKA,wBAAOA,WAAAA,GAAAA,SAAPA,OAAO;;;;WAAPA;;AAMZ,MAAMC,WAAW;IACf;QACE,KAAKD,qBAAO,CAAC,EAAgB;QAC7B,OAAOA,qBAAO,CAAC,EAAgB;IACjC;IACA;QACE,KAAKA,qBAAO,CAAC,EAAqB;QAClC,OAAOA,qBAAO,CAAC,EAAqB;IACtC;IACA;QACE,KAAKA,qBAAO,CAAC,EAAsB;QACnC,OAAOA,qBAAO,CAAC,EAAsB;IACvC;CACD;AAEM,MAAME,yBAMR,CAAC,EAAEC,OAAO,EAAEC,GAAG,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,EAAE;IAC7C,MAAM,CAACC,eAAeC,kBAAkB,GAAGC,SAAS;IACpD,MAAM,CAACC,cAAcC,gBAAgB,GAAGF,SAASV,qBAAO,CAAC,EAAgB;IAEzE,OAAO,WAAP,GACE,IAACa,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;QACvC,MAAM;YAAE,UAAU,CAACT;QAAS;kBAE3B,CAAC,EAAEU,MAAM,EAAEC,YAAY,EAAE,GACjB,WAAP,GACE,IAACC,QAAMA;gBACL,qBACE,KAAC;oBAAI,WAAU;;sCACb,IAACC,WAAW,IAAI;sCAAEC,aAAaJ,OAAO,IAAI;;sCAC1C,IAACG,WAAW,IAAI;4BACd,OAAO;gCAAE,UAAU;gCAAI,OAAO;4BAAsB;sCAEnD,CAAC,gBAAgB,EAAEH,OAAO,IAAI,EAAE;;;;gBAIvC,MAAMT;gBACN,cAAY;gBACZ,OAAOc,AAAc,MAAdA;gBACP,SAAS,IAAMb,QAAQ;0BAEvB,kBAACM,mBAAiBA;oBAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB;oBACvC,MAAM,CAAC;8BAEN,CAACO,UACO,WAAP,GACE,IAACC,uBAAuB,QAAQ;sCAC7B,CAAC,EAAEC,cAAc,EAAEC,iBAAiB,EAAE,GAC9B,WAAP,GACE,IAACC,MAAIA;oCACH,OAAO;wCAAE,WAAW;oCAAI;oCACxB,SAASxB;oCACT,cAAcU;oCACd,UAAU;wCACR,MAAM;wCACN,OAAO;4CACL,UAAU;wCACZ;oCACF;oCACA,aAAa,CAACe,IAAMd,gBAAgBc;oCACpC,QAAQ;wCACN,OAAO;4CAAE,YAAY;wCAAE;oCACzB;oCACA,qBACE,KAACC,OAAKA;wCAAC,OAAO;4CAAE,SAAS;wCAAW;;0DAClC,IAACC,oBAAkBA;gDACjB,SAAS;oDACP,MAAMC,QAAQ;2DACTN,eAAe,KAAK,CAAC,GAAG;qDAC5B;oDACDC,kBAAkBK;gDACpB;;0DAEF,IAACX,WAAW,IAAI;0DAAC;;0DAGjB,IAACY,SAAOA;gDACN,uBACE,IAAC;8DACC,mBAAC;;0EACC,IAACC,OAAKA;gEAAC,QAAO;gEAAU,MAAK;;0EAC7B,IAACC,oBAAkBA,CAAAA;0EACnB,IAACd,WAAW,IAAI;0EAEZ;;;;;gDAMV,OAAM;0DAEN,kBAACe,wBAAsBA,CAAAA;;;;8CAK7B,kBAACC,KAAGA;wCAAC,SAAQ;wCAAQ,OAAM;kDACzB,kBAACC,KAAGA;4CAAC,MAAM;sDACT,kBAACC,iBAAeA;gDACd,WAAWrB;gDACX,SAASZ;gDACT,cAAca;gDACd,KAAKZ;gDACL,eAAeI;gDACf,cAAcG;;;;;;;;;AAgB9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/utils/hooks.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/utils/hooks.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { useMemo } from 'react';\nimport { formatSize, getShortPath } from 'src/utils';\nimport { getImporteds } from '.';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nexport type NewTreeNodeType = {\n __RESOURCEPATH__: string;\n id: number;\n key: string;\n name: string;\n level: number;\n kind: number;\n size?: string;\n concatModules: number[] | undefined;\n chunks?: string[];\n getChildren?: () => NewTreeNodeType[];\n dependencies?: number[];\n fatherPath?: string;\n children?: number[];\n needExpand?: boolean | string;\n};\n\nexport function useCreateFileTreeData(\n modules: SDK.ModuleData[],\n importedModules: SDK.ModuleData[],\n curModule: SDK.ModuleData,\n): { data: NewTreeNodeType[] } {\n return useMemo(() => {\n if (!importedModules || !importedModules?.length) {\n return { filterData: [], data: [] };\n }\n const root = Lodash.compact(\n importedModules?.map((imported, index) => {\n return {\n key: `0-${index}`,\n name: getShortPath(imported.path),\n __RESOURCEPATH__: imported.path,\n id: imported.id,\n level: 1,\n chunks: imported.chunks,\n size: formatSize(imported.size.parsedSize),\n kind: imported.kind,\n concatModules: imported.concatenationModules,\n fatherPath: getShortPath(curModule.path),\n dependencies: imported.dependencies,\n getChildren: () => getLeafs(imported, modules, curModule),\n children: imported.imported,\n };\n }),\n );\n // getAllTreeData(root, modules, 2, importedModules);\n return {\n data: root,\n };\n }, [importedModules, curModule]);\n}\n\nfunction getLeafs(\n imported: SDK.ModuleData,\n modules: SDK.ModuleData[],\n fatherModule: SDK.ModuleData,\n) {\n const leafModules = getImporteds(imported, modules);\n\n const leafs = leafModules?.map((_imported, index) => {\n return {\n key: `0-${index}`,\n name: getShortPath(_imported.path),\n __RESOURCEPATH__: _imported.path,\n id: _imported.id,\n level: 1,\n size: formatSize(_imported.size.parsedSize),\n kind: _imported.kind,\n chunks: _imported.chunks,\n concatModules: _imported.concatenationModules,\n fatherPath: getShortPath(fatherModule.path),\n dependencies: _imported.dependencies,\n getChildren: () => getLeafs(_imported, modules, imported),\n children: _imported.imported,\n };\n });\n return leafs;\n}\n\nexport function getContactMainModulePath(\n concatModules: number[],\n modules: SDK.ModuleData[],\n): string[] {\n const concatModulesPath = concatModules?.map(\n (cm) => modules.filter((m) => m.id === cm)?.[0],\n );\n return concatModulesPath?.map((m) => m.path);\n}\n"],"names":["useCreateFileTreeData","modules","importedModules","curModule","useMemo","root","Lodash","imported","index","getShortPath","formatSize","getLeafs","fatherModule","leafModules","getImporteds","leafs","_imported","getContactMainModulePath","concatModules","concatModulesPath","cm","m"],"mappings":";;;;AAuBO,SAASA,sBACdC,OAAyB,EACzBC,eAAiC,EACjCC,SAAyB;IAEzB,OAAOC,QAAQ;QACb,IAAI,CAACF,mBAAmB,CAACA,iBAAiB,QACxC,OAAO;YAAE,YAAY,EAAE;YAAE,MAAM,EAAE;QAAC;QAEpC,MAAMG,OAAOC,OAAO,OAAO,CACzBJ,iBAAiB,IAAI,CAACK,UAAUC,QACvB;gBACL,KAAK,CAAC,EAAE,EAAEA,OAAO;gBACjB,MAAMC,aAAaF,SAAS,IAAI;gBAChC,kBAAkBA,SAAS,IAAI;gBAC/B,IAAIA,SAAS,EAAE;gBACf,OAAO;gBACP,QAAQA,SAAS,MAAM;gBACvB,MAAMG,WAAWH,SAAS,IAAI,CAAC,UAAU;gBACzC,MAAMA,SAAS,IAAI;gBACnB,eAAeA,SAAS,oBAAoB;gBAC5C,YAAYE,aAAaN,UAAU,IAAI;gBACvC,cAAcI,SAAS,YAAY;gBACnC,aAAa,IAAMI,SAASJ,UAAUN,SAASE;gBAC/C,UAAUI,SAAS,QAAQ;YAC7B;QAIJ,OAAO;YACL,MAAMF;QACR;IACF,GAAG;QAACH;QAAiBC;KAAU;AACjC;AAEA,SAASQ,SACPJ,QAAwB,EACxBN,OAAyB,EACzBW,YAA4B;IAE5B,MAAMC,cAAcC,aAAaP,UAAUN;IAE3C,MAAMc,QAAQF,aAAa,IAAI,CAACG,WAAWR,QAClC;YACL,KAAK,CAAC,EAAE,EAAEA,OAAO;YACjB,MAAMC,aAAaO,UAAU,IAAI;YACjC,kBAAkBA,UAAU,IAAI;YAChC,IAAIA,UAAU,EAAE;YAChB,OAAO;YACP,MAAMN,WAAWM,UAAU,IAAI,CAAC,UAAU;YAC1C,MAAMA,UAAU,IAAI;YACpB,QAAQA,UAAU,MAAM;YACxB,eAAeA,UAAU,oBAAoB;YAC7C,YAAYP,aAAaG,aAAa,IAAI;YAC1C,cAAcI,UAAU,YAAY;YACpC,aAAa,IAAML,SAASK,WAAWf,SAASM;YAChD,UAAUS,UAAU,QAAQ;QAC9B;IAEF,OAAOD;AACT;AAEO,SAASE,yBACdC,aAAuB,EACvBjB,OAAyB;IAEzB,MAAMkB,oBAAoBD,eAAe,IACvC,CAACE,KAAOnB,QAAQ,MAAM,CAAC,CAACoB,IAAMA,EAAE,EAAE,KAAKD,KAAK,CAAC,EAAE;IAEjD,OAAOD,mBAAmB,IAAI,CAACE,IAAMA,EAAE,IAAI;AAC7C"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/utils/hooks.mjs","sources":["../../../../src/pages/ModuleAnalyze/utils/hooks.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { useMemo } from 'react';\nimport { formatSize, getShortPath } from 'src/utils';\nimport { getImporteds } from '.';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nexport type NewTreeNodeType = {\n __RESOURCEPATH__: string;\n id: number;\n key: string;\n name: string;\n level: number;\n kind: number;\n size?: string;\n concatModules: number[] | undefined;\n chunks?: string[];\n getChildren?: () => NewTreeNodeType[];\n dependencies?: number[];\n fatherPath?: string;\n children?: number[];\n needExpand?: boolean | string;\n};\n\nexport function useCreateFileTreeData(\n modules: SDK.ModuleData[],\n importedModules: SDK.ModuleData[],\n curModule: SDK.ModuleData,\n): { data: NewTreeNodeType[] } {\n return useMemo(() => {\n if (!importedModules || !importedModules?.length) {\n return { filterData: [], data: [] };\n }\n const root = Lodash.compact(\n importedModules?.map((imported, index) => {\n return {\n key: `0-${index}`,\n name: getShortPath(imported.path),\n __RESOURCEPATH__: imported.path,\n id: imported.id,\n level: 1,\n chunks: imported.chunks,\n size: formatSize(imported.size.parsedSize),\n kind: imported.kind,\n concatModules: imported.concatenationModules,\n fatherPath: getShortPath(curModule.path),\n dependencies: imported.dependencies,\n getChildren: () => getLeafs(imported, modules, curModule),\n children: imported.imported,\n };\n }),\n );\n // getAllTreeData(root, modules, 2, importedModules);\n return {\n data: root,\n };\n }, [importedModules, curModule]);\n}\n\nfunction getLeafs(\n imported: SDK.ModuleData,\n modules: SDK.ModuleData[],\n fatherModule: SDK.ModuleData,\n) {\n const leafModules = getImporteds(imported, modules);\n\n const leafs = leafModules?.map((_imported, index) => {\n return {\n key: `0-${index}`,\n name: getShortPath(_imported.path),\n __RESOURCEPATH__: _imported.path,\n id: _imported.id,\n level: 1,\n size: formatSize(_imported.size.parsedSize),\n kind: _imported.kind,\n chunks: _imported.chunks,\n concatModules: _imported.concatenationModules,\n fatherPath: getShortPath(fatherModule.path),\n dependencies: _imported.dependencies,\n getChildren: () => getLeafs(_imported, modules, imported),\n children: _imported.imported,\n };\n });\n return leafs;\n}\n\nexport function getContactMainModulePath(\n concatModules: number[],\n modules: SDK.ModuleData[],\n): string[] {\n const concatModulesPath = concatModules?.map(\n (cm) => modules.filter((m) => m.id === cm)?.[0],\n );\n return concatModulesPath?.map((m) => m.path);\n}\n"],"names":["useCreateFileTreeData","modules","importedModules","curModule","useMemo","root","Lodash","imported","index","getShortPath","formatSize","getLeafs","fatherModule","leafModules","getImporteds","leafs","_imported","getContactMainModulePath","concatModules","concatModulesPath","cm","m"],"mappings":";;;;AAuBO,SAASA,sBACdC,OAAyB,EACzBC,eAAiC,EACjCC,SAAyB;IAEzB,OAAOC,QAAQ;QACb,IAAI,CAACF,mBAAmB,CAACA,iBAAiB,QACxC,OAAO;YAAE,YAAY,EAAE;YAAE,MAAM,EAAE;QAAC;QAEpC,MAAMG,OAAOC,OAAO,OAAO,CACzBJ,iBAAiB,IAAI,CAACK,UAAUC,QACvB;gBACL,KAAK,CAAC,EAAE,EAAEA,OAAO;gBACjB,MAAMC,aAAaF,SAAS,IAAI;gBAChC,kBAAkBA,SAAS,IAAI;gBAC/B,IAAIA,SAAS,EAAE;gBACf,OAAO;gBACP,QAAQA,SAAS,MAAM;gBACvB,MAAMG,WAAWH,SAAS,IAAI,CAAC,UAAU;gBACzC,MAAMA,SAAS,IAAI;gBACnB,eAAeA,SAAS,oBAAoB;gBAC5C,YAAYE,aAAaN,UAAU,IAAI;gBACvC,cAAcI,SAAS,YAAY;gBACnC,aAAa,IAAMI,SAASJ,UAAUN,SAASE;gBAC/C,UAAUI,SAAS,QAAQ;YAC7B;QAIJ,OAAO;YACL,MAAMF;QACR;IACF,GAAG;QAACH;QAAiBC;KAAU;AACjC;AAEA,SAASQ,SACPJ,QAAwB,EACxBN,OAAyB,EACzBW,YAA4B;IAE5B,MAAMC,cAAcC,aAAaP,UAAUN;IAE3C,MAAMc,QAAQF,aAAa,IAAI,CAACG,WAAWR,QAClC;YACL,KAAK,CAAC,EAAE,EAAEA,OAAO;YACjB,MAAMC,aAAaO,UAAU,IAAI;YACjC,kBAAkBA,UAAU,IAAI;YAChC,IAAIA,UAAU,EAAE;YAChB,OAAO;YACP,MAAMN,WAAWM,UAAU,IAAI,CAAC,UAAU;YAC1C,MAAMA,UAAU,IAAI;YACpB,QAAQA,UAAU,MAAM;YACxB,eAAeA,UAAU,oBAAoB;YAC7C,YAAYP,aAAaG,aAAa,IAAI;YAC1C,cAAcI,UAAU,YAAY;YACpC,aAAa,IAAML,SAASK,WAAWf,SAASM;YAChD,UAAUS,UAAU,QAAQ;QAC9B;IAEF,OAAOD;AACT;AAEO,SAASE,yBACdC,aAAuB,EACvBjB,OAAyB;IAEzB,MAAMkB,oBAAoBD,eAAe,IACvC,CAACE,KAAOnB,QAAQ,MAAM,CAAC,CAACoB,IAAMA,EAAE,EAAE,KAAKD,KAAK,CAAC,EAAE;IAEjD,OAAOD,mBAAmB,IAAI,CAACE,IAAMA,EAAE,IAAI;AAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleAnalyze/utils/index.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleAnalyze/utils/index.ts"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nexport const getImporteds = (\n curModule: SDK.ModuleData,\n modules: SDK.ModuleData[],\n) => {\n if (curModule?.imported?.length) {\n const _importeds = curModule.imported.map((_importedModule) =>\n modules.find((m) => m.id === Number(_importedModule)),\n );\n const importeds: SDK.ModuleData[] = Lodash.compact(_importeds);\n return importeds;\n }\n return [];\n};\n\nexport const getModuleReasonsTree = (\n curModule: SDK.ModuleData,\n modules: SDK.ModuleData[],\n reasonsTree: string[],\n visited: Map<number, boolean>,\n) => {\n if (!visited.has(curModule.id)) {\n visited.set(curModule.id, true);\n } else if (visited.get(curModule.id)) {\n return;\n }\n\n const importeds = getImporteds(curModule, modules);\n\n if (!importeds.length) {\n return;\n }\n\n importeds.forEach((_curModule) => {\n _curModule?.chunks?.forEach((_chunk) => {\n if (reasonsTree.indexOf(_chunk) < 0) {\n reasonsTree.push(_chunk);\n }\n });\n\n getModuleReasonsTree(_curModule, modules, reasonsTree, visited);\n });\n};\n"],"names":["getImporteds","curModule","modules","_importeds","_importedModule","m","Number","importeds","Lodash","getModuleReasonsTree","reasonsTree","visited","_curModule","_chunk"],"mappings":";AAGO,MAAMA,eAAe,CAC1BC,WACAC;IAEA,IAAID,WAAW,UAAU,QAAQ;QAC/B,MAAME,aAAaF,UAAU,QAAQ,CAAC,GAAG,CAAC,CAACG,kBACzCF,QAAQ,IAAI,CAAC,CAACG,IAAMA,EAAE,EAAE,KAAKC,OAAOF;QAEtC,MAAMG,YAA8BC,OAAO,OAAO,CAACL;QACnD,OAAOI;IACT;IACA,OAAO,EAAE;AACX;AAEO,MAAME,uBAAuB,CAClCR,WACAC,SACAQ,aACAC;IAEA,IAAKA,QAAQ,GAAG,CAACV,UAAU,EAAE,GAEtB;QAAA,IAAIU,QAAQ,GAAG,CAACV,UAAU,EAAE,GACjC;IACF,OAHEU,QAAQ,GAAG,CAACV,UAAU,EAAE,EAAE;IAK5B,MAAMM,YAAYP,aAAaC,WAAWC;IAE1C,IAAI,CAACK,UAAU,MAAM,EACnB;IAGFA,UAAU,OAAO,CAAC,CAACK;QACjBA,YAAY,QAAQ,QAAQ,CAACC;YAC3B,IAAIH,YAAY,OAAO,CAACG,UAAU,GAChCH,YAAY,IAAI,CAACG;QAErB;QAEAJ,qBAAqBG,YAAYV,SAASQ,aAAaC;IACzD;AACF"}
1
+ {"version":3,"file":"pages/ModuleAnalyze/utils/index.mjs","sources":["../../../../src/pages/ModuleAnalyze/utils/index.ts"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nexport const getImporteds = (\n curModule: SDK.ModuleData,\n modules: SDK.ModuleData[],\n) => {\n if (curModule?.imported?.length) {\n const _importeds = curModule.imported.map((_importedModule) =>\n modules.find((m) => m.id === Number(_importedModule)),\n );\n const importeds: SDK.ModuleData[] = Lodash.compact(_importeds);\n return importeds;\n }\n return [];\n};\n\nexport const getModuleReasonsTree = (\n curModule: SDK.ModuleData,\n modules: SDK.ModuleData[],\n reasonsTree: string[],\n visited: Map<number, boolean>,\n) => {\n if (!visited.has(curModule.id)) {\n visited.set(curModule.id, true);\n } else if (visited.get(curModule.id)) {\n return;\n }\n\n const importeds = getImporteds(curModule, modules);\n\n if (!importeds.length) {\n return;\n }\n\n importeds.forEach((_curModule) => {\n _curModule?.chunks?.forEach((_chunk) => {\n if (reasonsTree.indexOf(_chunk) < 0) {\n reasonsTree.push(_chunk);\n }\n });\n\n getModuleReasonsTree(_curModule, modules, reasonsTree, visited);\n });\n};\n"],"names":["getImporteds","curModule","modules","_importeds","_importedModule","m","Number","importeds","Lodash","getModuleReasonsTree","reasonsTree","visited","_curModule","_chunk"],"mappings":";AAGO,MAAMA,eAAe,CAC1BC,WACAC;IAEA,IAAID,WAAW,UAAU,QAAQ;QAC/B,MAAME,aAAaF,UAAU,QAAQ,CAAC,GAAG,CAAC,CAACG,kBACzCF,QAAQ,IAAI,CAAC,CAACG,IAAMA,EAAE,EAAE,KAAKC,OAAOF;QAEtC,MAAMG,YAA8BC,OAAO,OAAO,CAACL;QACnD,OAAOI;IACT;IACA,OAAO,EAAE;AACX;AAEO,MAAME,uBAAuB,CAClCR,WACAC,SACAQ,aACAC;IAEA,IAAKA,QAAQ,GAAG,CAACV,UAAU,EAAE,GAEtB;QAAA,IAAIU,QAAQ,GAAG,CAACV,UAAU,EAAE,GACjC;IACF,OAHEU,QAAQ,GAAG,CAACV,UAAU,EAAE,EAAE;IAK5B,MAAMM,YAAYP,aAAaC,WAAWC;IAE1C,IAAI,CAACK,UAAU,MAAM,EACnB;IAGFA,UAAU,OAAO,CAAC,CAACK;QACjBA,YAAY,QAAQ,QAAQ,CAACC;YAC3B,IAAIH,YAAY,OAAO,CAACG,UAAU,GAChCH,YAAY,IAAI,CAACG;QAErB;QAEAJ,qBAAqBG,YAAYV,SAASQ,aAAaC;IACzD;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleResolve/constants.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleResolve/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'ModuleResolve';\n\nexport const route = Client.RsdoctorClientRoutes.ModuleResolve;\n"],"names":["name","route","Client"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,aAAa"}
1
+ {"version":3,"file":"pages/ModuleResolve/constants.mjs","sources":["../../../src/pages/ModuleResolve/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'ModuleResolve';\n\nexport const route = Client.RsdoctorClientRoutes.ModuleResolve;\n"],"names":["name","route","Client"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,aAAa"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  export declare const Page: React.FC;
3
- export * from './constants';
3
+ export * from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"pages/ModuleResolve/index.mjs","sources":["webpack://@rsdoctor/components/./src/pages/ModuleResolve/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Card } from 'antd';\nimport { ResolverAnalysis } from '../../components/Resolver/analysis';\nimport { WebpackConfigurationViewer } from '../../components/Configuration';\n\nexport const Page: React.FC = () => {\n return (\n <div>\n <Card\n title=\"Webpack Resolver Analysis\"\n extra={<WebpackConfigurationViewer defaultKeys={['resolve', 'resolveLoader']} />}\n bodyStyle={{ paddingTop: 0 }}\n >\n <ResolverAnalysis />\n </Card>\n </div>\n );\n};\n\nexport * from './constants';\n"],"names":["Page","Card","WebpackConfigurationViewer","ResolverAnalysis"],"mappings":";;;;;;AAKO,MAAMA,OAAiB,IACrB,WAAP,GACE,IAAC;kBACC,kBAACC,MAAIA;YACH,OAAM;YACN,qBAAO,IAACC,4BAA0BA;gBAAC,aAAa;oBAAC;oBAAW;iBAAgB;;YAC5E,WAAW;gBAAE,YAAY;YAAE;sBAE3B,kBAACC,kBAAgBA,CAAAA"}
1
+ {"version":3,"file":"pages/ModuleResolve/index.mjs","sources":["../../../src/pages/ModuleResolve/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Card } from 'antd';\nimport { ResolverAnalysis } from '../../components/Resolver/analysis';\nimport { WebpackConfigurationViewer } from '../../components/Configuration';\n\nexport const Page: React.FC = () => {\n return (\n <div>\n <Card\n title=\"Webpack Resolver Analysis\"\n extra={<WebpackConfigurationViewer defaultKeys={['resolve', 'resolveLoader']} />}\n bodyStyle={{ paddingTop: 0 }}\n >\n <ResolverAnalysis />\n </Card>\n </div>\n );\n};\n\nexport * from './constants';\n"],"names":["Page","Card","WebpackConfigurationViewer","ResolverAnalysis"],"mappings":";;;;;;AAKO,MAAMA,OAAiB,IACrB,WAAP,GACE,IAAC;kBACC,kBAACC,MAAIA;YACH,OAAM;YACN,qBAAO,IAACC,4BAA0BA;gBAAC,aAAa;oBAAC;oBAAW;iBAAgB;;YAC5E,WAAW;gBAAE,YAAY;YAAE;sBAE3B,kBAACC,kBAAgBA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/Overall/constants.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Overall/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'Overall';\n\nexport const route = Client.RsdoctorClientRoutes.Overall;\n"],"names":["name","route","Client"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,OAAO"}
1
+ {"version":3,"file":"pages/Overall/constants.mjs","sources":["../../../src/pages/Overall/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'Overall';\n\nexport const route = Client.RsdoctorClientRoutes.Overall;\n"],"names":["name","route","Client"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,OAAO"}
@@ -6,4 +6,4 @@ interface Props {
6
6
  export declare const Page: React.FC<Omit<Props, "project"> & Partial<{
7
7
  body?: any;
8
8
  }>>;
9
- export * from './constants';
9
+ export * from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"pages/Overall/index.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Overall/index.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport React from 'react';\nimport { Flex } from 'antd';\n\nimport { HelpCenter } from '../../components/Overall/help-center';\nimport { BundleAlerts } from '../../components/Alerts';\nimport { withServerAPI } from '../../components/Manifest';\nimport {\n BundleOverall,\n CompileOverall,\n ProjectOverall,\n} from '../../components/Overall';\nimport { ResponsiveLayout } from './responsiveLayout';\n\nimport style from './index.module.scss';\n\ninterface Props {\n project: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetProjectInfo>;\n}\n\nconst Component: React.FC<Props> = ({ project }) => {\n const { summary, configs, root: cwd, envinfo, errors } = project;\n\n return (\n <div className={style.overall}>\n <Flex style={{ width: '100%' }}>\n <div style={{ flex: 3, marginRight: '16px', maxWidth: '75%' }}>\n <ResponsiveLayout>\n <ProjectOverall\n configs={configs}\n cwd={cwd}\n envinfo={envinfo}\n alerts={errors}\n />\n <BundleAlerts />\n </ResponsiveLayout>\n </div>\n\n <div style={{ flex: 1 }}>\n <ResponsiveLayout>\n <BundleOverall errors={errors} cwd={cwd} />\n <CompileOverall summary={summary} />\n <HelpCenter />\n </ResponsiveLayout>\n </div>\n </Flex>\n </div>\n );\n};\n\nexport const Page = withServerAPI({\n api: SDK.ServerAPI.API.GetProjectInfo,\n responsePropName: 'project',\n Component,\n});\n\nexport * from './constants';\n"],"names":["Component","project","summary","configs","cwd","envinfo","errors","style","Flex","ResponsiveLayout","ProjectOverall","BundleAlerts","BundleOverall","CompileOverall","HelpCenter","Page","withServerAPI","SDK"],"mappings":";;;;;;;;;;;AAoBA,MAAMA,YAA6B,CAAC,EAAEC,OAAO,EAAE;IAC7C,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAE,MAAMC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGL;IAEzD,OAAO,WAAP,GACE,IAAC;QAAI,WAAWM,aAAAA,OAAa;kBAC3B,mBAACC,MAAIA;YAAC,OAAO;gBAAE,OAAO;YAAO;;8BAC3B,IAAC;oBAAI,OAAO;wBAAE,MAAM;wBAAG,aAAa;wBAAQ,UAAU;oBAAM;8BAC1D,mBAACC,kBAAgBA;;0CACf,IAACC,gBAAcA;gCACb,SAASP;gCACT,KAAKC;gCACL,SAASC;gCACT,QAAQC;;0CAEV,IAACK,cAAYA,CAAAA;;;;8BAIjB,IAAC;oBAAI,OAAO;wBAAE,MAAM;oBAAE;8BACpB,mBAACF,kBAAgBA;;0CACf,IAACG,eAAaA;gCAAC,QAAQN;gCAAQ,KAAKF;;0CACpC,IAACS,gBAAcA;gCAAC,SAASX;;0CACzB,IAACY,YAAUA,CAAAA;;;;;;;AAMvB;AAEO,MAAMC,OAAOC,cAAc;IAChC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;IACrC,kBAAkB;IAClBjB;AACF"}
1
+ {"version":3,"file":"pages/Overall/index.mjs","sources":["../../../src/pages/Overall/index.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport React from 'react';\nimport { Flex } from 'antd';\n\nimport { HelpCenter } from '../../components/Overall/help-center';\nimport { BundleAlerts } from '../../components/Alerts';\nimport { withServerAPI } from '../../components/Manifest';\nimport {\n BundleOverall,\n CompileOverall,\n ProjectOverall,\n} from '../../components/Overall';\nimport { ResponsiveLayout } from './responsiveLayout';\n\nimport style from './index.module.scss';\n\ninterface Props {\n project: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetProjectInfo>;\n}\n\nconst Component: React.FC<Props> = ({ project }) => {\n const { summary, configs, root: cwd, envinfo, errors } = project;\n\n return (\n <div className={style.overall}>\n <Flex style={{ width: '100%' }}>\n <div style={{ flex: 3, marginRight: '16px', maxWidth: '75%' }}>\n <ResponsiveLayout>\n <ProjectOverall\n configs={configs}\n cwd={cwd}\n envinfo={envinfo}\n alerts={errors}\n />\n <BundleAlerts />\n </ResponsiveLayout>\n </div>\n\n <div style={{ flex: 1 }}>\n <ResponsiveLayout>\n <BundleOverall errors={errors} cwd={cwd} />\n <CompileOverall summary={summary} />\n <HelpCenter />\n </ResponsiveLayout>\n </div>\n </Flex>\n </div>\n );\n};\n\nexport const Page = withServerAPI({\n api: SDK.ServerAPI.API.GetProjectInfo,\n responsePropName: 'project',\n Component,\n});\n\nexport * from './constants';\n"],"names":["Component","project","summary","configs","cwd","envinfo","errors","style","Flex","ResponsiveLayout","ProjectOverall","BundleAlerts","BundleOverall","CompileOverall","HelpCenter","Page","withServerAPI","SDK"],"mappings":";;;;;;;;;;;AAoBA,MAAMA,YAA6B,CAAC,EAAEC,OAAO,EAAE;IAC7C,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAE,MAAMC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGL;IAEzD,OAAO,WAAP,GACE,IAAC;QAAI,WAAWM,aAAAA,OAAa;kBAC3B,mBAACC,MAAIA;YAAC,OAAO;gBAAE,OAAO;YAAO;;8BAC3B,IAAC;oBAAI,OAAO;wBAAE,MAAM;wBAAG,aAAa;wBAAQ,UAAU;oBAAM;8BAC1D,mBAACC,kBAAgBA;;0CACf,IAACC,gBAAcA;gCACb,SAASP;gCACT,KAAKC;gCACL,SAASC;gCACT,QAAQC;;0CAEV,IAACK,cAAYA,CAAAA;;;;8BAIjB,IAAC;oBAAI,OAAO;wBAAE,MAAM;oBAAE;8BACpB,mBAACF,kBAAgBA;;0CACf,IAACG,eAAaA;gCAAC,QAAQN;gCAAQ,KAAKF;;0CACpC,IAACS,gBAAcA;gCAAC,SAASX;;0CACzB,IAACY,YAAUA,CAAAA;;;;;;;AAMvB;AAEO,MAAMC,OAAOC,cAAc;IAChC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;IACrC,kBAAkB;IAClBjB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/Overall/index.module.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Overall/index.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./index_module.css\"\nexport default {\"overall\":\"overall-MGHzQh\",\"layout\":\"layout-izKUgB\",\"row\":\"row-RDk0Pl\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,SAAU;IAAiB,QAAS;IAAgB,KAAM;AAAY"}
1
+ {"version":3,"file":"pages/Overall/index.module.mjs","sources":["../../../src/pages/Overall/index.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./index_module.css\"\nexport default {\"overall\":\"overall-MGHzQh\",\"layout\":\"layout-izKUgB\",\"row\":\"row-RDk0Pl\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,SAAU;IAAiB,QAAS;IAAgB,KAAM;AAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages/Overall/responsiveLayout.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Overall/responsiveLayout.tsx"],"sourcesContent":["import { Flex } from 'antd';\nimport React from 'react';\n\nimport style from './index.module.scss';\n\ninterface Props {\n children: React.ReactNode[];\n}\n\nexport const ResponsiveLayout = ({ children }: Props) => {\n return (\n <Flex vertical className={style.layout}>\n {children.map((e) => (\n <div className={style.row}>{e}</div>\n ))}\n </Flex>\n );\n};\n"],"names":["ResponsiveLayout","children","Flex","style","e"],"mappings":";;;;AASO,MAAMA,mBAAmB,CAAC,EAAEC,QAAQ,EAAS,GAC3C,WAAP,GACE,IAACC,MAAIA;QAAC,UAAQ;QAAC,WAAWC,aAAAA,MAAY;kBACnCF,SAAS,GAAG,CAAC,CAACG,IAAAA,WAAAA,GACb,IAAC;gBAAI,WAAWD,aAAAA,GAAS;0BAAGC"}
1
+ {"version":3,"file":"pages/Overall/responsiveLayout.mjs","sources":["../../../src/pages/Overall/responsiveLayout.tsx"],"sourcesContent":["import { Flex } from 'antd';\nimport React from 'react';\n\nimport style from './index.module.scss';\n\ninterface Props {\n children: React.ReactNode[];\n}\n\nexport const ResponsiveLayout = ({ children }: Props) => {\n return (\n <Flex vertical className={style.layout}>\n {children.map((e) => (\n <div className={style.row}>{e}</div>\n ))}\n </Flex>\n );\n};\n"],"names":["ResponsiveLayout","children","Flex","style","e"],"mappings":";;;;AASO,MAAMA,mBAAmB,CAAC,EAAEC,QAAQ,EAAS,GAC3C,WAAP,GACE,IAACC,MAAIA;QAAC,UAAQ;QAAC,WAAWC,aAAAA,MAAY;kBACnCF,SAAS,GAAG,CAAC,CAACG,IAAAA,WAAAA,GACb,IAAC;gBAAI,WAAWD,aAAAA,GAAS;0BAAGC"}