@rsdoctor/components 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Alert/package-relation.mjs +1 -1
- package/dist/components/Alert/package-relation.mjs.map +1 -1
- package/dist/components/Alerts/collapse.mjs +1 -1
- package/dist/components/Alerts/collapse.mjs.map +1 -1
- package/dist/components/Card/size.mjs +1 -1
- package/dist/components/Card/size.mjs.map +1 -1
- package/dist/components/Charts/TimelineCharts/index.mjs +1 -1
- package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
- package/dist/components/Charts/loader.mjs +1 -1
- package/dist/components/Charts/loader.mjs.map +1 -1
- package/dist/components/Charts/utils.mjs +1 -1
- package/dist/components/Charts/utils.mjs.map +1 -1
- package/dist/components/Loader/Analysis/files.mjs +1 -1
- package/dist/components/Loader/Analysis/files.mjs.map +1 -1
- package/dist/components/Manifest/api.mjs +1 -1
- package/dist/components/Manifest/api.mjs.map +1 -1
- package/dist/components/Overall/bundle_module.css +0 -1
- package/dist/components/Overall/bundle_module.css.map +1 -1
- package/dist/components/Overall/help-center_module.css +0 -2
- package/dist/components/Overall/help-center_module.css.map +1 -1
- package/dist/components/Overall/list_module.css +12 -2
- package/dist/components/Overall/list_module.css.map +1 -1
- package/dist/components/Overall/project_module.css +0 -1
- package/dist/components/Overall/project_module.css.map +1 -1
- package/dist/components/Plugins/webpack.mjs +1 -1
- package/dist/components/Plugins/webpack.mjs.map +1 -1
- package/dist/components/Resolver/analysis.mjs +1 -1
- package/dist/components/Resolver/analysis.mjs.map +1 -1
- package/dist/components/Title/index.mjs +2 -2
- package/dist/components/Title/index.mjs.map +1 -1
- package/dist/components/base/CodeViewer/utils.mjs +1 -1
- package/dist/components/base/CodeViewer/utils.mjs.map +1 -1
- package/dist/pages/BundleSize/components/asset.mjs +1 -1
- package/dist/pages/BundleSize/components/asset.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index.mjs +1 -1
- package/dist/pages/BundleSize/components/index.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index_module.css +6 -2
- package/dist/pages/BundleSize/components/index_module.css.map +1 -1
- package/dist/pages/ModuleAnalyze/chunks.mjs +1 -1
- package/dist/pages/ModuleAnalyze/chunks.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/packages.mjs +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/packages.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/row.mjs +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/row.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs +11 -2
- package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs.map +1 -1
- package/dist/pages/TreeShaking/index.css +28 -4
- package/dist/pages/TreeShaking/index.css.map +1 -1
- package/dist/pages/TreeShaking/utils.mjs +2 -2
- package/dist/pages/TreeShaking/utils.mjs.map +1 -1
- package/dist/utils/data/local.mjs +1 -1
- package/dist/utils/data/local.mjs.map +1 -1
- package/dist/utils/data/remote.mjs +1 -1
- package/dist/utils/data/remote.mjs.map +1 -1
- package/dist/utils/file.mjs +1 -1
- package/dist/utils/file.mjs.map +1 -1
- package/dist/utils/hooks.mjs +1 -1
- package/dist/utils/hooks.mjs.map +1 -1
- package/dist/utils/stats.mjs +1 -1
- package/dist/utils/stats.mjs.map +1 -1
- package/package.json +5 -6
|
@@ -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 'lodash-es';\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":["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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"}
|
|
@@ -67,7 +67,8 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
.assetsTag-eAVvyj .ant-divider-vertical {
|
|
70
|
-
margin-inline: 0;
|
|
70
|
+
margin-inline-start: 0;
|
|
71
|
+
margin-inline-end: 0;
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
.bundle-cPw2Kc {
|
|
@@ -122,7 +123,10 @@
|
|
|
122
123
|
background: linear-gradient(135deg, #6253e1, #04befe);
|
|
123
124
|
transition: all .3s;
|
|
124
125
|
position: absolute;
|
|
125
|
-
|
|
126
|
+
top: -1px;
|
|
127
|
+
bottom: -1px;
|
|
128
|
+
left: -1px;
|
|
129
|
+
right: -1px;
|
|
126
130
|
}
|
|
127
131
|
|
|
128
132
|
.search-btn-To902q:hover:before {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://./src/pages/BundleSize/components/index.module.scss"],"names":[],"mappings":"AADA;EAEE,WAAW;AACb;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,cAAc;EACd,iBAAiB;AACnB;;AAEA;EACE,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,oBAAoB;AACtB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,UAAU;EACV,kBAAkB;AACpB;;AAEA;EACE,uBAAuB;EACvB,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,
|
|
1
|
+
{"version":3,"sources":["webpack://./src/pages/BundleSize/components/index.module.scss"],"names":[],"mappings":"AADA;EAEE,WAAW;AACb;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,cAAc;EACd,iBAAiB;AACnB;;AAEA;EACE,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,oBAAoB;AACtB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,UAAU;EACV,kBAAkB;AACpB;;AAEA;EACE,uBAAuB;EACvB,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AACb;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,oBAAoB;AACtB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,gBAAgB;AAClB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,WAAW;EACX,UAAU;EACV,sBAAsB;EACtB,qDAAqD;EACrD,mBAAmB;EACnB,kBAAkB;EAClB,SAAS;EACT,YAAY;EACZ,UAAU;EACV,WAAW;AACb;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,iBAAiB;EACjB,cAAc;AAChB;;AAEA;EACE,eAAe;EACf,sBAAsB;AACxB","sourcesContent":[".assets :global .rc-tree-indent-unit{width:22px}.assets :global .rc-tree-treenode{line-height:30px !important}.assets :global .rc-tree-treenode:not(.rc-tree-treenode-switcher-open):not(.rc-tree-treenode-switcher-close) .rc-tree-switcher{position:relative;bottom:4px}.assets :global .rc-tree-treenode:not(.rc-tree-treenode-switcher-open):not(.rc-tree-treenode-switcher-close) .rc-tree-node-content-wrapper{font-size:14px}.assets :global .rc-tree-treenode:not(.rc-tree-treenode-switcher-open):not(.rc-tree-treenode-switcher-close) .file-icon{padding:10px 0 0 0;margin-left:0}.assets .assetBox{display:flex;align-items:center}.assets .assetBox .fileText{margin-right:4px}.bundle-tree{display:flex}.bundle-tree :global span.ant-tag{margin:none;margin-inline-end:0px}.box{display:flex;height:30px;width:100%}.box .keyword{flex:0 0 auto;padding-right:5}.divider{border-color:rgba(0,0,0,.12);position:relative;bottom:20%}.dividerDiv{flex-grow:1;margin:0 10px;bottom:10%;position:relative}.assetsTag{height:30px}.assetsTag :global .ant-divider-vertical{margin-inline:0}.bundle :global{font-size:14px}.bundle :global .rc-tree-node-content-wrapper{font-size:14px}.bundle :global .file-icon{margin-left:0}.bundle :global .ant-tree-indent-unit{width:10px}.bundle :global .ant-tree-iconEle{margin-right:2px}.bundle :global .ant-tree-node-content-wrapper-open{display:flex}.bundle :global .ant-tree-node-content-wrapper-close{display:flex}.bundle-size-card .ant-tabs-tab{margin-right:20px}.modal :global .ant-input-affix-wrapper{padding:4px 5px;width:490px}.search-btn{color:#fff}.search-btn>span{position:relative}.search-btn::before{content:\"\";background:linear-gradient(135deg, #6253e1, #04befe);position:absolute;inset:-1px;opacity:1;transition:all .3s;border-radius:inherit}.search-btn:hover::before{opacity:0}.search-modal-list :global .ant-spin-container{overflow:auto;max-height:30rem}.search-modal-list :global .search-list-item.clickable:hover{background-color:#eee;cursor:pointer}"],"sourceRoot":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Empty, Table, Tag } from "antd";
|
|
3
|
-
import { orderBy } from "
|
|
3
|
+
import { orderBy } from "es-toolkit/compat";
|
|
4
4
|
import { useMemo } from "react";
|
|
5
5
|
import { formatSize } from "../../utils/index.mjs";
|
|
6
6
|
import "./index.css";
|
|
@@ -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 '
|
|
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,AAAAA,CAAAA,QAAAA,aAAAA,KAAAA,IAAAA,WAAY,MAAM,AAAD,IAAC,cACjB,IAACS,OAAKA;YACJ,UAAQ;YACR,YAAY;YACZ,YAAYT;YACZ,SAASH;2BAGX,IAACa,OAAKA,CAAAA;;AAId"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState } from "react";
|
|
3
3
|
import { Button, Col, Divider, Row, Select, Space, Table, Tag, Tooltip, Typography } from "antd";
|
|
4
|
-
import { sumBy } from "
|
|
4
|
+
import { sumBy } from "es-toolkit/compat";
|
|
5
5
|
import { AppstoreAddOutlined, CheckSquareOutlined, FileSearchOutlined, InfoCircleOutlined, MinusSquareOutlined, PlusSquareOutlined, SortAscendingOutlined } from "@ant-design/icons";
|
|
6
6
|
import { Client, Constants } from "@rsdoctor/types";
|
|
7
7
|
import { formatPercent, formatSize } from "../../../../utils/index.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/assets.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Resources/BundleDiff/DiffContainer/assets.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n Button,\n Col,\n Divider,\n Row,\n Select,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { sumBy } from 'lodash-es';\nimport {\n CheckSquareOutlined,\n InfoCircleOutlined,\n MinusSquareOutlined,\n PlusSquareOutlined,\n SortAscendingOutlined,\n FileSearchOutlined,\n AppstoreAddOutlined,\n} from '@ant-design/icons';\nimport { Constants, SDK, Client } from '@rsdoctor/types';\nimport { BundleDiffTableAssetsData } from './types';\nimport { formatPercent, formatSize } from '../../../../utils';\nimport { Color, Size } from '../../../../constants';\nimport { Percent, SizePercent } from '../../../../components/Card/diff';\nimport { KeywordInput } from '../../../../components/Form/keyword';\nimport { ModuleRowForAsset } from './row';\nimport { ViewChanges } from './changes';\nimport { UpdateType, SortType } from './constants';\nimport { formatDiffSize } from './utils';\nimport { Graph } from '@rsdoctor/utils/common';\n\nconst fileTypes = {\n JS: [Constants.JSExtension],\n CSS: [Constants.CSSExtension],\n HTML: [Constants.HtmlExtension],\n Imgs: Constants.ImgExtensions,\n Fonts: Constants.FontExtensions,\n Media: Constants.MediaExtensions,\n Others: [],\n};\n\nconst definedExtensions = Object.values(fileTypes).flat();\n\nconst Name: React.FC<{ data: BundleDiffTableAssetsData }> = ({ data: r }) => {\n const name = (\n <Space>\n <Typography.Text strong>{r.alias}</Typography.Text>\n <Tooltip\n title={\n <Space style={{ color: 'inherit' }} direction=\"vertical\">\n {r.current ? (\n <Typography.Text style={{ color: 'inherit' }}>\n Current realpath: {r.current.path}\n </Typography.Text>\n ) : null}\n {r.baseline ? (\n <Typography.Text style={{ color: 'inherit' }}>\n Baseline realpath: {r.baseline.path}\n </Typography.Text>\n ) : null}\n </Space>\n }\n >\n <InfoCircleOutlined />\n </Tooltip>\n </Space>\n );\n\n if (r.baseline && !r.current) {\n // deleted\n return (\n <Space>\n <MinusSquareOutlined style={{ color: Color.Red }} />\n {name}\n </Space>\n );\n }\n\n if (!r.baseline && r.current) {\n // new\n return (\n <Space>\n <PlusSquareOutlined style={{ color: Color.Green }} />\n {name}\n </Space>\n );\n }\n\n if (r.baseline && r.current) {\n // update\n return (\n <Space>\n <CheckSquareOutlined style={{ color: Color.Yellow }} />\n {name}\n </Space>\n );\n }\n\n return name;\n};\n\nexport const Assets: React.FC<{\n outputFilename: string;\n baseline: SDK.ServerAPI.ResponseTypes[SDK.ServerAPI.API.GetBundleDiffSummary];\n current: SDK.ServerAPI.ResponseTypes[SDK.ServerAPI.API.GetBundleDiffSummary];\n}> = ({ baseline, current, outputFilename }) => {\n const bOutPutFileName = outputFilename;\n\n const [keyword, setKeyword] = useState<string>();\n const [selectedFileTypes, setSelectedFileTypes] = useState<string[]>([]);\n const [selectedUpdateTypes, setSelectedUpdateTypes] = useState<UpdateType[]>(\n [],\n );\n const [selectedSortType, setSelectedSortType] = useState<SortType>(\n SortType.Size,\n );\n const [selectedBAsset, setSelectedBAsset] = useState(null);\n const [selectedCAsset, setSelectedCAsset] = useState(null);\n\n const { assets: bAssets } = baseline.chunkGraph;\n const { assets: cAssets } = current.chunkGraph;\n\n const dataSource = useMemo(() => {\n const res: Record<string, BundleDiffTableAssetsData> = {};\n if (selectedBAsset && selectedCAsset) {\n res.choose = {\n alias: `${selectedBAsset} \\n ${selectedCAsset}`,\n current: cAssets.find((c: SDK.AssetData) => c.path === selectedCAsset),\n baseline: bAssets.find((b: SDK.AssetData) => b.path === selectedBAsset),\n };\n return Object.values(res);\n }\n\n bAssets.forEach((asset: SDK.AssetData) => {\n const alias = Graph.formatAssetName(asset.path, bOutPutFileName);\n if (!res[alias]) {\n res[alias] = {\n alias,\n baseline: asset,\n };\n } else {\n console.warn('[Baseline Asset Exists]: ', asset, res);\n }\n });\n\n cAssets.forEach((asset: SDK.AssetData) => {\n const alias = Graph.formatAssetName(asset.path, bOutPutFileName);\n if (!res[alias]) {\n res[alias] = { alias };\n }\n res[alias].current = asset;\n });\n\n return Object.values(res);\n }, [bAssets, cAssets, selectedBAsset, selectedCAsset]);\n\n const filteredDataSource = useMemo(() => {\n let list = dataSource.slice();\n\n if (keyword) {\n list = list.filter((e) => e.alias.indexOf(keyword) > -1);\n }\n\n if (selectedFileTypes.length) {\n const exts = selectedFileTypes\n .map((e) => fileTypes[e as keyof typeof fileTypes])\n .flat();\n\n const hasOthers = selectedFileTypes.indexOf('Others') > -1;\n\n list = list.filter((e) => {\n const asset = e.baseline! || e.current!;\n if (Graph.isAssetMatchExtensions(asset, exts)) {\n return true;\n }\n\n if (hasOthers) {\n return !Graph.isAssetMatchExtensions(asset, definedExtensions);\n }\n\n return false;\n });\n }\n\n if (selectedUpdateTypes.length) {\n list = list.filter((e) => {\n if (e.baseline && !e.current) {\n // deleted\n return selectedUpdateTypes.includes(UpdateType.Deleted);\n }\n\n if (!e.baseline && e.current) {\n // new\n return selectedUpdateTypes.includes(UpdateType.New);\n }\n\n if (e.baseline && e.current) {\n if (e.baseline.size === e.current.size) {\n // not changed\n return selectedUpdateTypes.includes(UpdateType.NotChanged);\n }\n // changed\n return selectedUpdateTypes.includes(UpdateType.Changed);\n }\n\n return false;\n });\n }\n\n if (selectedSortType) {\n if (selectedSortType === SortType.Name) {\n list.sort((a, b) => {\n return a.alias.localeCompare(b.alias);\n });\n } else {\n const { prev, others } = list.reduce(\n (t, c) => {\n if (c.current) {\n if (c.baseline) {\n t.prev.unshift(c);\n } else {\n t.prev.push(c);\n }\n } else {\n t.others.push(c);\n }\n return t;\n },\n {\n prev: [] as BundleDiffTableAssetsData[],\n others: [] as BundleDiffTableAssetsData[],\n },\n );\n\n list = [\n ...prev.sort((a, b) => {\n if (b.current && a.current) {\n if (selectedSortType === SortType.Delta) {\n const { percent: percentA } = Graph.diffAssetsByExtensions(\n baseline.chunkGraph,\n current.chunkGraph,\n (asset) =>\n Graph.formatAssetName(asset.path, bOutPutFileName) ===\n a.alias,\n );\n const { percent: percentB } = Graph.diffAssetsByExtensions(\n baseline.chunkGraph,\n current.chunkGraph,\n (asset) =>\n Graph.formatAssetName(asset.path, bOutPutFileName) ===\n b.alias,\n );\n return percentB - percentA;\n }\n return b.current!.size - a.current!.size;\n }\n return -1;\n }),\n ...others,\n ];\n }\n }\n\n return list;\n }, [\n dataSource,\n keyword,\n selectedFileTypes,\n selectedUpdateTypes,\n selectedSortType,\n ]);\n\n const cSize = useMemo(\n () =>\n sumBy(filteredDataSource, (e) => (e.current ? e.current.size : 0)) || 0,\n [filteredDataSource],\n );\n const bSize = useMemo(\n () =>\n sumBy(filteredDataSource, (e) => (e.baseline ? e.baseline.size : 0)) || 0,\n [filteredDataSource],\n );\n\n return (\n <Row gutter={[Size.BasePadding, Size.BasePadding]}>\n <Col span={24}>\n <Space wrap>\n <KeywordInput\n icon={<FileSearchOutlined />}\n label=\"\"\n labelStyle={{ width: 45 }}\n placeholder=\"Search by file name\"\n onChange={(e) => {\n setKeyword(e);\n }}\n />\n <Select\n mode=\"multiple\"\n placeholder=\"Filter by file type\"\n style={{ width: 250 }}\n options={Object.keys(fileTypes).map((e) => ({\n label: e,\n value: e,\n }))}\n allowClear\n onChange={(e) => {\n setSelectedFileTypes(e);\n }}\n />\n <Select\n mode=\"multiple\"\n placeholder=\"Filter by file changed type\"\n style={{ width: 200 }}\n options={Object.values(UpdateType).map((e) => ({\n label: e,\n value: e,\n }))}\n allowClear\n onChange={(e) => {\n setSelectedUpdateTypes(e);\n }}\n />\n <Select\n suffixIcon={<SortAscendingOutlined />}\n // style={{ width: 150 }}\n options={Object.values(SortType).map((e) => ({\n label: e,\n value: e,\n }))}\n value={selectedSortType}\n onChange={(e) => {\n setSelectedSortType(e);\n }}\n />\n </Space>\n <Row style={{ marginTop: 10 }} gutter={[6, 6]}>\n <Col>\n <Button>Select Baseline Asset and Current Asset to Diff </Button>\n </Col>\n <Col>\n <Select\n allowClear\n placeholder=\"select baseline assets\"\n showSearch\n style={{ width: 300 }}\n options={Object.values(baseline.chunkGraph.assets).map((e) => ({\n label: e.path,\n value: e.path,\n }))}\n onChange={(e) => setSelectedBAsset(e)}\n />\n </Col>\n <Col>\n <Select\n allowClear\n placeholder=\"select current assets\"\n showSearch\n style={{ width: 300 }}\n options={Object.values(current.chunkGraph.assets).map((e) => ({\n label: e.path,\n value: e.path,\n }))}\n onChange={(e) => setSelectedCAsset(e)}\n />\n </Col>\n </Row>\n </Col>\n <Col span={24}>\n <Table\n bordered\n sticky={{ offsetHeader: 54 }}\n pagination={{\n pageSize: 20,\n size: 'small',\n }}\n dataSource={filteredDataSource}\n rowKey={(e) => e.alias}\n expandable={{\n expandedRowRender: (r) => {\n return (\n <div style={{ margin: Size.BasePadding / 3 }}>\n <ModuleRowForAsset\n data={r}\n baseline={baseline}\n current={current}\n />\n </div>\n );\n },\n columnTitle: (\n <Tooltip\n title=\"Click to expand row to see the modules which the chunk contains\"\n placement=\"left\"\n >\n <AppstoreAddOutlined style={{ cursor: 'pointer' }} />\n </Tooltip>\n ),\n }}\n columns={[\n {\n title: (\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n filtered assets is {filteredDataSource.length}\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit' }}>\n total assets is {dataSource.length}\n </Typography.Text>\n </Space>\n }\n >\n <Typography.Text strong>Assets</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {filteredDataSource.length}/{dataSource.length}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n ),\n render: (_v, r) => <Name data={r} />,\n },\n {\n title: () => {\n const cs = formatSize(cSize);\n const diff = Graph.diffSize(bSize, cSize);\n return (\n <Tooltip\n title={`Current size is ${cs}, Delta is ${formatPercent(diff.percent)}`}\n >\n <Typography.Text strong>Current</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n <Typography.Text\n style={{ fontSize: 'inherit', marginRight: 8 }}\n >\n {cs}\n </Typography.Text>\n <SizePercent\n fontSize={'inherit'}\n baseline={bSize}\n current={cSize}\n />\n {formatDiffSize(\n bSize,\n cSize,\n bSize > cSize\n ? Client.RsdoctorClientDiffState.Down\n : Client.RsdoctorClientDiffState.Up,\n { fontSize: 10, fontWeight: 400, marginLeft: 4 },\n )}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n );\n },\n render: (_v, r) => {\n if (r.current) {\n const { percent, state } = Graph.diffAssetsByExtensions(\n baseline.chunkGraph,\n current.chunkGraph,\n (asset) =>\n Graph.formatAssetName(asset.path, bOutPutFileName) ===\n r.alias,\n );\n const isInitial = Graph.isInitialAsset(\n r.current,\n current.chunkGraph.chunks,\n );\n return (\n <Space>\n <Typography.Text>\n {formatSize(r.current.size)}\n </Typography.Text>\n <Percent percent={percent} state={state} />\n {isInitial ? <Tag color={Color.Blue}>initial</Tag> : null}\n </Space>\n );\n }\n return '-';\n },\n },\n {\n title: () => {\n const bs = formatSize(bSize);\n return (\n <Tooltip title={`Baseline size is ${bs}`}>\n <Typography.Text strong>Baseline</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {bs}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n );\n },\n render: (_v, r) => {\n if (r.baseline) {\n const isInitial = Graph.isInitialAsset(\n r.baseline,\n baseline.chunkGraph.chunks,\n );\n return (\n <Space>\n <Typography.Text>\n {formatSize(r.baseline.size)}\n </Typography.Text>\n {isInitial ? <Tag color={Color.Blue}>initial</Tag> : null}\n </Space>\n );\n }\n return '-';\n },\n },\n {\n title: 'Actions',\n key: 'actions',\n render: (_v, r) => {\n return (\n <ViewChanges\n file={r.alias}\n data={[\n {\n baseline: r.baseline?.content,\n current: r.current?.content,\n group: 'assets',\n },\n ]}\n />\n );\n },\n },\n ]}\n />\n </Col>\n </Row>\n );\n};\n"],"names":["fileTypes","Constants","definedExtensions","Object","Name","r","name","Space","Typography","Tooltip","InfoCircleOutlined","MinusSquareOutlined","Color","PlusSquareOutlined","CheckSquareOutlined","Assets","baseline","current","outputFilename","bOutPutFileName","keyword","setKeyword","useState","selectedFileTypes","setSelectedFileTypes","selectedUpdateTypes","setSelectedUpdateTypes","selectedSortType","setSelectedSortType","SortType","selectedBAsset","setSelectedBAsset","selectedCAsset","setSelectedCAsset","bAssets","cAssets","dataSource","useMemo","res","c","b","asset","alias","Graph","console","filteredDataSource","list","e","exts","hasOthers","UpdateType","a","prev","others","t","percentA","percentB","cSize","sumBy","bSize","Row","Size","Col","KeywordInput","FileSearchOutlined","Select","SortAscendingOutlined","Button","Table","ModuleRowForAsset","AppstoreAddOutlined","Divider","_v","cs","formatSize","diff","formatPercent","SizePercent","formatDiffSize","Client","percent","state","isInitial","Percent","Tag","bs","_r_baseline","_r_current","ViewChanges"],"mappings":";;;;;;;;;;;;;;;AAmCA,MAAMA,YAAY;IAChB,IAAI;QAACC,UAAU,WAAW;KAAC;IAC3B,KAAK;QAACA,UAAU,YAAY;KAAC;IAC7B,MAAM;QAACA,UAAU,aAAa;KAAC;IAC/B,MAAMA,UAAU,aAAa;IAC7B,OAAOA,UAAU,cAAc;IAC/B,OAAOA,UAAU,eAAe;IAChC,QAAQ,EAAE;AACZ;AAEA,MAAMC,oBAAoBC,OAAO,MAAM,CAACH,WAAW,IAAI;AAEvD,MAAMI,OAAsD,CAAC,EAAE,MAAMC,CAAC,EAAE;IACtE,MAAMC,OAAO,WAAPA,GACJ,KAACC,OAAKA;;0BACJ,IAACC,WAAW,IAAI;gBAAC,QAAM;0BAAEH,EAAE,KAAK;;0BAChC,IAACI,SAAOA;gBACN,qBACE,KAACF,OAAKA;oBAAC,OAAO;wBAAE,OAAO;oBAAU;oBAAG,WAAU;;wBAC3CF,EAAE,OAAO,GAAG,WAAH,GACR,KAACG,WAAW,IAAI;4BAAC,OAAO;gCAAE,OAAO;4BAAU;;gCAAG;gCACzBH,EAAE,OAAO,CAAC,IAAI;;6BAEjC;wBACHA,EAAE,QAAQ,GAAG,WAAH,GACT,KAACG,WAAW,IAAI;4BAAC,OAAO;gCAAE,OAAO;4BAAU;;gCAAG;gCACxBH,EAAE,QAAQ,CAAC,IAAI;;6BAEnC;;;0BAIR,kBAACK,oBAAkBA,CAAAA;;;;IAKzB,IAAIL,EAAE,QAAQ,IAAI,CAACA,EAAE,OAAO,EAE1B,OAAO,WAAP,GACE,KAACE,OAAKA;;0BACJ,IAACI,qBAAmBA;gBAAC,OAAO;oBAAE,OAAOC,MAAM,GAAG;gBAAC;;YAC9CN;;;IAKP,IAAI,CAACD,EAAE,QAAQ,IAAIA,EAAE,OAAO,EAE1B,OAAO,WAAP,GACE,KAACE,OAAKA;;0BACJ,IAACM,oBAAkBA;gBAAC,OAAO;oBAAE,OAAOD,MAAM,KAAK;gBAAC;;YAC/CN;;;IAKP,IAAID,EAAE,QAAQ,IAAIA,EAAE,OAAO,EAEzB,OAAO,WAAP,GACE,KAACE,OAAKA;;0BACJ,IAACO,qBAAmBA;gBAAC,OAAO;oBAAE,OAAOF,MAAM,MAAM;gBAAC;;YACjDN;;;IAKP,OAAOA;AACT;AAEO,MAAMS,SAIR,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,cAAc,EAAE;IACzC,MAAMC,kBAAkBD;IAExB,MAAM,CAACE,SAASC,WAAW,GAAGC;IAC9B,MAAM,CAACC,mBAAmBC,qBAAqB,GAAGF,SAAmB,EAAE;IACvE,MAAM,CAACG,qBAAqBC,uBAAuB,GAAGJ,SACpD,EAAE;IAEJ,MAAM,CAACK,kBAAkBC,oBAAoB,GAAGN,SAC9CO,SAAS,IAAI;IAEf,MAAM,CAACC,gBAAgBC,kBAAkB,GAAGT,SAAS;IACrD,MAAM,CAACU,gBAAgBC,kBAAkB,GAAGX,SAAS;IAErD,MAAM,EAAE,QAAQY,OAAO,EAAE,GAAGlB,SAAS,UAAU;IAC/C,MAAM,EAAE,QAAQmB,OAAO,EAAE,GAAGlB,QAAQ,UAAU;IAE9C,MAAMmB,aAAaC,QAAQ;QACzB,MAAMC,MAAiD,CAAC;QACxD,IAAIR,kBAAkBE,gBAAgB;YACpCM,IAAI,MAAM,GAAG;gBACX,OAAO,GAAGR,eAAe,IAAI,EAAEE,gBAAgB;gBAC/C,SAASG,QAAQ,IAAI,CAAC,CAACI,IAAqBA,EAAE,IAAI,KAAKP;gBACvD,UAAUE,QAAQ,IAAI,CAAC,CAACM,IAAqBA,EAAE,IAAI,KAAKV;YAC1D;YACA,OAAO3B,OAAO,MAAM,CAACmC;QACvB;QAEAJ,QAAQ,OAAO,CAAC,CAACO;YACf,MAAMC,QAAQC,MAAM,eAAe,CAACF,MAAM,IAAI,EAAEtB;YAChD,IAAKmB,GAAG,CAACI,MAAM,EAMbE,QAAQ,IAAI,CAAC,6BAA6BH,OAAOH;iBALjDA,GAAG,CAACI,MAAM,GAAG;gBACXA;gBACA,UAAUD;YACZ;QAIJ;QAEAN,QAAQ,OAAO,CAAC,CAACM;YACf,MAAMC,QAAQC,MAAM,eAAe,CAACF,MAAM,IAAI,EAAEtB;YAChD,IAAI,CAACmB,GAAG,CAACI,MAAM,EACbJ,GAAG,CAACI,MAAM,GAAG;gBAAEA;YAAM;YAEvBJ,GAAG,CAACI,MAAM,CAAC,OAAO,GAAGD;QACvB;QAEA,OAAOtC,OAAO,MAAM,CAACmC;IACvB,GAAG;QAACJ;QAASC;QAASL;QAAgBE;KAAe;IAErD,MAAMa,qBAAqBR,QAAQ;QACjC,IAAIS,OAAOV,WAAW,KAAK;QAE3B,IAAIhB,SACF0B,OAAOA,KAAK,MAAM,CAAC,CAACC,IAAMA,EAAE,KAAK,CAAC,OAAO,CAAC3B,WAAW;QAGvD,IAAIG,kBAAkB,MAAM,EAAE;YAC5B,MAAMyB,OAAOzB,kBACV,GAAG,CAAC,CAACwB,IAAM/C,SAAS,CAAC+C,EAA4B,EACjD,IAAI;YAEP,MAAME,YAAY1B,kBAAkB,OAAO,CAAC,YAAY;YAExDuB,OAAOA,KAAK,MAAM,CAAC,CAACC;gBAClB,MAAMN,QAAQM,EAAE,QAAQ,IAAKA,EAAE,OAAO;gBACtC,IAAIJ,MAAM,sBAAsB,CAACF,OAAOO,OACtC,OAAO;gBAGT,IAAIC,WACF,OAAO,CAACN,MAAM,sBAAsB,CAACF,OAAOvC;gBAG9C,OAAO;YACT;QACF;QAEA,IAAIuB,oBAAoB,MAAM,EAC5BqB,OAAOA,KAAK,MAAM,CAAC,CAACC;YAClB,IAAIA,EAAE,QAAQ,IAAI,CAACA,EAAE,OAAO,EAE1B,OAAOtB,oBAAoB,QAAQ,CAACyB,WAAW,OAAO;YAGxD,IAAI,CAACH,EAAE,QAAQ,IAAIA,EAAE,OAAO,EAE1B,OAAOtB,oBAAoB,QAAQ,CAACyB,WAAW,GAAG;YAGpD,IAAIH,EAAE,QAAQ,IAAIA,EAAE,OAAO,EAAE;gBAC3B,IAAIA,EAAE,QAAQ,CAAC,IAAI,KAAKA,EAAE,OAAO,CAAC,IAAI,EAEpC,OAAOtB,oBAAoB,QAAQ,CAACyB,WAAW,UAAU;gBAG3D,OAAOzB,oBAAoB,QAAQ,CAACyB,WAAW,OAAO;YACxD;YAEA,OAAO;QACT;QAGF,IAAIvB,kBACF,IAAIA,qBAAqBE,SAAS,IAAI,EACpCiB,KAAK,IAAI,CAAC,CAACK,GAAGX,IACLW,EAAE,KAAK,CAAC,aAAa,CAACX,EAAE,KAAK;aAEjC;YACL,MAAM,EAAEY,IAAI,EAAEC,MAAM,EAAE,GAAGP,KAAK,MAAM,CAClC,CAACQ,GAAGf;gBACF,IAAIA,EAAE,OAAO,EACX,IAAIA,EAAE,QAAQ,EACZe,EAAE,IAAI,CAAC,OAAO,CAACf;qBAEfe,EAAE,IAAI,CAAC,IAAI,CAACf;qBAGde,EAAE,MAAM,CAAC,IAAI,CAACf;gBAEhB,OAAOe;YACT,GACA;gBACE,MAAM,EAAE;gBACR,QAAQ,EAAE;YACZ;YAGFR,OAAO;mBACFM,KAAK,IAAI,CAAC,CAACD,GAAGX;oBACf,IAAIA,EAAE,OAAO,IAAIW,EAAE,OAAO,EAAE;wBAC1B,IAAIxB,qBAAqBE,SAAS,KAAK,EAAE;4BACvC,MAAM,EAAE,SAAS0B,QAAQ,EAAE,GAAGZ,MAAM,sBAAsB,CACxD3B,SAAS,UAAU,EACnBC,QAAQ,UAAU,EAClB,CAACwB,QACCE,MAAM,eAAe,CAACF,MAAM,IAAI,EAAEtB,qBAClCgC,EAAE,KAAK;4BAEX,MAAM,EAAE,SAASK,QAAQ,EAAE,GAAGb,MAAM,sBAAsB,CACxD3B,SAAS,UAAU,EACnBC,QAAQ,UAAU,EAClB,CAACwB,QACCE,MAAM,eAAe,CAACF,MAAM,IAAI,EAAEtB,qBAClCqB,EAAE,KAAK;4BAEX,OAAOgB,WAAWD;wBACpB;wBACA,OAAOf,EAAE,OAAO,CAAE,IAAI,GAAGW,EAAE,OAAO,CAAE,IAAI;oBAC1C;oBACA,OAAO;gBACT;mBACGE;aACJ;QACH;QAGF,OAAOP;IACT,GAAG;QACDV;QACAhB;QACAG;QACAE;QACAE;KACD;IAED,MAAM8B,QAAQpB,QACZ,IACEqB,MAAMb,oBAAoB,CAACE,IAAOA,EAAE,OAAO,GAAGA,EAAE,OAAO,CAAC,IAAI,GAAG,MAAO,GACxE;QAACF;KAAmB;IAEtB,MAAMc,QAAQtB,QACZ,IACEqB,MAAMb,oBAAoB,CAACE,IAAOA,EAAE,QAAQ,GAAGA,EAAE,QAAQ,CAAC,IAAI,GAAG,MAAO,GAC1E;QAACF;KAAmB;IAGtB,OAAO,WAAP,GACE,KAACe,KAAGA;QAAC,QAAQ;YAACC,KAAK,WAAW;YAAEA,KAAK,WAAW;SAAC;;0BAC/C,KAACC,KAAGA;gBAAC,MAAM;;kCACT,KAACvD,OAAKA;wBAAC,MAAI;;0CACT,IAACwD,cAAYA;gCACX,oBAAM,IAACC,oBAAkBA,CAAAA;gCACzB,OAAM;gCACN,YAAY;oCAAE,OAAO;gCAAG;gCACxB,aAAY;gCACZ,UAAU,CAACjB;oCACT1B,WAAW0B;gCACb;;0CAEF,IAACkB,QAAMA;gCACL,MAAK;gCACL,aAAY;gCACZ,OAAO;oCAAE,OAAO;gCAAI;gCACpB,SAAS9D,OAAO,IAAI,CAACH,WAAW,GAAG,CAAC,CAAC+C,IAAO;wCAC1C,OAAOA;wCACP,OAAOA;oCACT;gCACA,YAAU;gCACV,UAAU,CAACA;oCACTvB,qBAAqBuB;gCACvB;;0CAEF,IAACkB,QAAMA;gCACL,MAAK;gCACL,aAAY;gCACZ,OAAO;oCAAE,OAAO;gCAAI;gCACpB,SAAS9D,OAAO,MAAM,CAAC+C,YAAY,GAAG,CAAC,CAACH,IAAO;wCAC7C,OAAOA;wCACP,OAAOA;oCACT;gCACA,YAAU;gCACV,UAAU,CAACA;oCACTrB,uBAAuBqB;gCACzB;;0CAEF,IAACkB,QAAMA;gCACL,0BAAY,IAACC,uBAAqBA,CAAAA;gCAElC,SAAS/D,OAAO,MAAM,CAAC0B,UAAU,GAAG,CAAC,CAACkB,IAAO;wCAC3C,OAAOA;wCACP,OAAOA;oCACT;gCACA,OAAOpB;gCACP,UAAU,CAACoB;oCACTnB,oBAAoBmB;gCACtB;;;;kCAGJ,KAACa,KAAGA;wBAAC,OAAO;4BAAE,WAAW;wBAAG;wBAAG,QAAQ;4BAAC;4BAAG;yBAAE;;0CAC3C,IAACE,KAAGA;0CACF,kBAACK,QAAMA;8CAAC;;;0CAEV,IAACL,KAAGA;0CACF,kBAACG,QAAMA;oCACL,YAAU;oCACV,aAAY;oCACZ,YAAU;oCACV,OAAO;wCAAE,OAAO;oCAAI;oCACpB,SAAS9D,OAAO,MAAM,CAACa,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC+B,IAAO;4CAC7D,OAAOA,EAAE,IAAI;4CACb,OAAOA,EAAE,IAAI;wCACf;oCACA,UAAU,CAACA,IAAMhB,kBAAkBgB;;;0CAGvC,IAACe,KAAGA;0CACF,kBAACG,QAAMA;oCACL,YAAU;oCACV,aAAY;oCACZ,YAAU;oCACV,OAAO;wCAAE,OAAO;oCAAI;oCACpB,SAAS9D,OAAO,MAAM,CAACc,QAAQ,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC8B,IAAO;4CAC5D,OAAOA,EAAE,IAAI;4CACb,OAAOA,EAAE,IAAI;wCACf;oCACA,UAAU,CAACA,IAAMd,kBAAkBc;;;;;;;0BAK3C,IAACe,KAAGA;gBAAC,MAAM;0BACT,kBAACM,OAAKA;oBACJ,UAAQ;oBACR,QAAQ;wBAAE,cAAc;oBAAG;oBAC3B,YAAY;wBACV,UAAU;wBACV,MAAM;oBACR;oBACA,YAAYvB;oBACZ,QAAQ,CAACE,IAAMA,EAAE,KAAK;oBACtB,YAAY;wBACV,mBAAmB,CAAC1C,IACX,WAAP,GACE,IAAC;gCAAI,OAAO;oCAAE,QAAQwD,KAAK,WAAW,GAAG;gCAAE;0CACzC,kBAACQ,mBAAiBA;oCAChB,MAAMhE;oCACN,UAAUW;oCACV,SAASC;;;wBAKjB,aAAa,WAAb,GACE,IAACR,SAAOA;4BACN,OAAM;4BACN,WAAU;sCAEV,kBAAC6D,qBAAmBA;gCAAC,OAAO;oCAAE,QAAQ;gCAAU;;;oBAGtD;oBACA,SAAS;wBACP;4BACE,OAAO,WAAP,GACE,KAAC7D,SAAOA;gCACN,qBACE,KAACF,OAAKA;oCAAC,WAAU;;sDACf,KAACC,WAAW,IAAI;4CAAC,OAAO;gDAAE,OAAO;4CAAU;;gDAAG;gDACxBqC,mBAAmB,MAAM;;;sDAE/C,KAACrC,WAAW,IAAI;4CAAC,OAAO;gDAAE,OAAO;4CAAU;;gDAAG;gDAC3B4B,WAAW,MAAM;;;;;;kDAKxC,IAAC5B,WAAW,IAAI;wCAAC,QAAM;kDAAC;;kDACxB,IAAC+D,SAAOA;wCAAC,MAAK;;kDACd,KAAC/D,WAAW,IAAI;wCACd,MAAK;wCACL,OAAO;4CAAE,UAAU;4CAAI,YAAY;4CAAK,aAAa;wCAAE;;4CAEtDqC,mBAAmB,MAAM;4CAAC;4CAAET,WAAW,MAAM;;;kDAEhD,IAAC1B,oBAAkBA,CAAAA;;;4BAGvB,QAAQ,CAAC8D,IAAInE,IAAAA,WAAAA,GAAM,IAACD,MAAAA;oCAAK,MAAMC;;wBACjC;wBACA;4BACE,OAAO;gCACL,MAAMoE,KAAKC,WAAWjB;gCACtB,MAAMkB,OAAOhC,MAAM,QAAQ,CAACgB,OAAOF;gCACnC,OAAO,WAAP,GACE,KAAChD,SAAOA;oCACN,OAAO,CAAC,gBAAgB,EAAEgE,GAAG,WAAW,EAAEG,cAAcD,KAAK,OAAO,GAAG;;sDAEvE,IAACnE,WAAW,IAAI;4CAAC,QAAM;sDAAC;;sDACxB,IAAC+D,SAAOA;4CAAC,MAAK;;sDACd,KAAC/D,WAAW,IAAI;4CACd,OAAO;gDAAE,UAAU;gDAAI,YAAY;gDAAK,aAAa;4CAAE;;8DAEvD,IAACA,WAAW,IAAI;oDACd,OAAO;wDAAE,UAAU;wDAAW,aAAa;oDAAE;8DAE5CiE;;8DAEH,IAACI,aAAWA;oDACV,UAAU;oDACV,UAAUlB;oDACV,SAASF;;gDAEVqB,eACCnB,OACAF,OACAE,QAAQF,QACJsB,OAAO,uBAAuB,CAAC,IAAI,GACnCA,OAAO,uBAAuB,CAAC,EAAE,EACrC;oDAAE,UAAU;oDAAI,YAAY;oDAAK,YAAY;gDAAE;;;sDAGnD,IAACrE,oBAAkBA,CAAAA;;;4BAGzB;4BACA,QAAQ,CAAC8D,IAAInE;gCACX,IAAIA,EAAE,OAAO,EAAE;oCACb,MAAM,EAAE2E,OAAO,EAAEC,KAAK,EAAE,GAAGtC,MAAM,sBAAsB,CACrD3B,SAAS,UAAU,EACnBC,QAAQ,UAAU,EAClB,CAACwB,QACCE,MAAM,eAAe,CAACF,MAAM,IAAI,EAAEtB,qBAClCd,EAAE,KAAK;oCAEX,MAAM6E,YAAYvC,MAAM,cAAc,CACpCtC,EAAE,OAAO,EACTY,QAAQ,UAAU,CAAC,MAAM;oCAE3B,OAAO,WAAP,GACE,KAACV,OAAKA;;0DACJ,IAACC,WAAW,IAAI;0DACbkE,WAAWrE,EAAE,OAAO,CAAC,IAAI;;0DAE5B,IAAC8E,SAAOA;gDAAC,SAASH;gDAAS,OAAOC;;4CACjCC,YAAY,WAAZA,GAAY,IAACE,KAAGA;gDAAC,OAAOxE,MAAM,IAAI;0DAAE;iDAAgB;;;gCAG3D;gCACA,OAAO;4BACT;wBACF;wBACA;4BACE,OAAO;gCACL,MAAMyE,KAAKX,WAAWf;gCACtB,OAAO,WAAP,GACE,KAAClD,SAAOA;oCAAC,OAAO,CAAC,iBAAiB,EAAE4E,IAAI;;sDACtC,IAAC7E,WAAW,IAAI;4CAAC,QAAM;sDAAC;;sDACxB,IAAC+D,SAAOA;4CAAC,MAAK;;sDACd,IAAC/D,WAAW,IAAI;4CACd,OAAO;gDAAE,UAAU;gDAAI,YAAY;gDAAK,aAAa;4CAAE;sDAEtD6E;;sDAEH,IAAC3E,oBAAkBA,CAAAA;;;4BAGzB;4BACA,QAAQ,CAAC8D,IAAInE;gCACX,IAAIA,EAAE,QAAQ,EAAE;oCACd,MAAM6E,YAAYvC,MAAM,cAAc,CACpCtC,EAAE,QAAQ,EACVW,SAAS,UAAU,CAAC,MAAM;oCAE5B,OAAO,WAAP,GACE,KAACT,OAAKA;;0DACJ,IAACC,WAAW,IAAI;0DACbkE,WAAWrE,EAAE,QAAQ,CAAC,IAAI;;4CAE5B6E,YAAY,WAAZA,GAAY,IAACE,KAAGA;gDAAC,OAAOxE,MAAM,IAAI;0DAAE;iDAAgB;;;gCAG3D;gCACA,OAAO;4BACT;wBACF;wBACA;4BACE,OAAO;4BACP,KAAK;4BACL,QAAQ,CAAC4D,IAAInE;oCAMOiF,aACDC;gCANjB,OAAO,WAAP,GACE,IAACC,aAAWA;oCACV,MAAMnF,EAAE,KAAK;oCACb,MAAM;wCACJ;4CACE,UAAU,QAAAiF,CAAAA,cAAAA,EAAE,QAAQ,AAAD,IAATA,KAAAA,IAAAA,YAAY,OAAO;4CAC7B,SAAS,QAAAC,CAAAA,aAAAA,EAAE,OAAO,AAAD,IAARA,KAAAA,IAAAA,WAAW,OAAO;4CAC3B,OAAO;wCACT;qCACD;;4BAGP;wBACF;qBACD;;;;;AAKX"}
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/assets.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Resources/BundleDiff/DiffContainer/assets.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n Button,\n Col,\n Divider,\n Row,\n Select,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { sumBy } from 'es-toolkit/compat';\nimport {\n CheckSquareOutlined,\n InfoCircleOutlined,\n MinusSquareOutlined,\n PlusSquareOutlined,\n SortAscendingOutlined,\n FileSearchOutlined,\n AppstoreAddOutlined,\n} from '@ant-design/icons';\nimport { Constants, SDK, Client } from '@rsdoctor/types';\nimport { BundleDiffTableAssetsData } from './types';\nimport { formatPercent, formatSize } from '../../../../utils';\nimport { Color, Size } from '../../../../constants';\nimport { Percent, SizePercent } from '../../../../components/Card/diff';\nimport { KeywordInput } from '../../../../components/Form/keyword';\nimport { ModuleRowForAsset } from './row';\nimport { ViewChanges } from './changes';\nimport { UpdateType, SortType } from './constants';\nimport { formatDiffSize } from './utils';\nimport { Graph } from '@rsdoctor/utils/common';\n\nconst fileTypes = {\n JS: [Constants.JSExtension],\n CSS: [Constants.CSSExtension],\n HTML: [Constants.HtmlExtension],\n Imgs: Constants.ImgExtensions,\n Fonts: Constants.FontExtensions,\n Media: Constants.MediaExtensions,\n Others: [],\n};\n\nconst definedExtensions = Object.values(fileTypes).flat();\n\nconst Name: React.FC<{ data: BundleDiffTableAssetsData }> = ({ data: r }) => {\n const name = (\n <Space>\n <Typography.Text strong>{r.alias}</Typography.Text>\n <Tooltip\n title={\n <Space style={{ color: 'inherit' }} direction=\"vertical\">\n {r.current ? (\n <Typography.Text style={{ color: 'inherit' }}>\n Current realpath: {r.current.path}\n </Typography.Text>\n ) : null}\n {r.baseline ? (\n <Typography.Text style={{ color: 'inherit' }}>\n Baseline realpath: {r.baseline.path}\n </Typography.Text>\n ) : null}\n </Space>\n }\n >\n <InfoCircleOutlined />\n </Tooltip>\n </Space>\n );\n\n if (r.baseline && !r.current) {\n // deleted\n return (\n <Space>\n <MinusSquareOutlined style={{ color: Color.Red }} />\n {name}\n </Space>\n );\n }\n\n if (!r.baseline && r.current) {\n // new\n return (\n <Space>\n <PlusSquareOutlined style={{ color: Color.Green }} />\n {name}\n </Space>\n );\n }\n\n if (r.baseline && r.current) {\n // update\n return (\n <Space>\n <CheckSquareOutlined style={{ color: Color.Yellow }} />\n {name}\n </Space>\n );\n }\n\n return name;\n};\n\nexport const Assets: React.FC<{\n outputFilename: string;\n baseline: SDK.ServerAPI.ResponseTypes[SDK.ServerAPI.API.GetBundleDiffSummary];\n current: SDK.ServerAPI.ResponseTypes[SDK.ServerAPI.API.GetBundleDiffSummary];\n}> = ({ baseline, current, outputFilename }) => {\n const bOutPutFileName = outputFilename;\n\n const [keyword, setKeyword] = useState<string>();\n const [selectedFileTypes, setSelectedFileTypes] = useState<string[]>([]);\n const [selectedUpdateTypes, setSelectedUpdateTypes] = useState<UpdateType[]>(\n [],\n );\n const [selectedSortType, setSelectedSortType] = useState<SortType>(\n SortType.Size,\n );\n const [selectedBAsset, setSelectedBAsset] = useState(null);\n const [selectedCAsset, setSelectedCAsset] = useState(null);\n\n const { assets: bAssets } = baseline.chunkGraph;\n const { assets: cAssets } = current.chunkGraph;\n\n const dataSource = useMemo(() => {\n const res: Record<string, BundleDiffTableAssetsData> = {};\n if (selectedBAsset && selectedCAsset) {\n res.choose = {\n alias: `${selectedBAsset} \\n ${selectedCAsset}`,\n current: cAssets.find((c: SDK.AssetData) => c.path === selectedCAsset),\n baseline: bAssets.find((b: SDK.AssetData) => b.path === selectedBAsset),\n };\n return Object.values(res);\n }\n\n bAssets.forEach((asset: SDK.AssetData) => {\n const alias = Graph.formatAssetName(asset.path, bOutPutFileName);\n if (!res[alias]) {\n res[alias] = {\n alias,\n baseline: asset,\n };\n } else {\n console.warn('[Baseline Asset Exists]: ', asset, res);\n }\n });\n\n cAssets.forEach((asset: SDK.AssetData) => {\n const alias = Graph.formatAssetName(asset.path, bOutPutFileName);\n if (!res[alias]) {\n res[alias] = { alias };\n }\n res[alias].current = asset;\n });\n\n return Object.values(res);\n }, [bAssets, cAssets, selectedBAsset, selectedCAsset]);\n\n const filteredDataSource = useMemo(() => {\n let list = dataSource.slice();\n\n if (keyword) {\n list = list.filter((e) => e.alias.indexOf(keyword) > -1);\n }\n\n if (selectedFileTypes.length) {\n const exts = selectedFileTypes\n .map((e) => fileTypes[e as keyof typeof fileTypes])\n .flat();\n\n const hasOthers = selectedFileTypes.indexOf('Others') > -1;\n\n list = list.filter((e) => {\n const asset = e.baseline! || e.current!;\n if (Graph.isAssetMatchExtensions(asset, exts)) {\n return true;\n }\n\n if (hasOthers) {\n return !Graph.isAssetMatchExtensions(asset, definedExtensions);\n }\n\n return false;\n });\n }\n\n if (selectedUpdateTypes.length) {\n list = list.filter((e) => {\n if (e.baseline && !e.current) {\n // deleted\n return selectedUpdateTypes.includes(UpdateType.Deleted);\n }\n\n if (!e.baseline && e.current) {\n // new\n return selectedUpdateTypes.includes(UpdateType.New);\n }\n\n if (e.baseline && e.current) {\n if (e.baseline.size === e.current.size) {\n // not changed\n return selectedUpdateTypes.includes(UpdateType.NotChanged);\n }\n // changed\n return selectedUpdateTypes.includes(UpdateType.Changed);\n }\n\n return false;\n });\n }\n\n if (selectedSortType) {\n if (selectedSortType === SortType.Name) {\n list.sort((a, b) => {\n return a.alias.localeCompare(b.alias);\n });\n } else {\n const { prev, others } = list.reduce(\n (t, c) => {\n if (c.current) {\n if (c.baseline) {\n t.prev.unshift(c);\n } else {\n t.prev.push(c);\n }\n } else {\n t.others.push(c);\n }\n return t;\n },\n {\n prev: [] as BundleDiffTableAssetsData[],\n others: [] as BundleDiffTableAssetsData[],\n },\n );\n\n list = [\n ...prev.sort((a, b) => {\n if (b.current && a.current) {\n if (selectedSortType === SortType.Delta) {\n const { percent: percentA } = Graph.diffAssetsByExtensions(\n baseline.chunkGraph,\n current.chunkGraph,\n (asset) =>\n Graph.formatAssetName(asset.path, bOutPutFileName) ===\n a.alias,\n );\n const { percent: percentB } = Graph.diffAssetsByExtensions(\n baseline.chunkGraph,\n current.chunkGraph,\n (asset) =>\n Graph.formatAssetName(asset.path, bOutPutFileName) ===\n b.alias,\n );\n return percentB - percentA;\n }\n return b.current!.size - a.current!.size;\n }\n return -1;\n }),\n ...others,\n ];\n }\n }\n\n return list;\n }, [\n dataSource,\n keyword,\n selectedFileTypes,\n selectedUpdateTypes,\n selectedSortType,\n ]);\n\n const cSize = useMemo(\n () =>\n sumBy(filteredDataSource, (e) => (e.current ? e.current.size : 0)) || 0,\n [filteredDataSource],\n );\n const bSize = useMemo(\n () =>\n sumBy(filteredDataSource, (e) => (e.baseline ? e.baseline.size : 0)) || 0,\n [filteredDataSource],\n );\n\n return (\n <Row gutter={[Size.BasePadding, Size.BasePadding]}>\n <Col span={24}>\n <Space wrap>\n <KeywordInput\n icon={<FileSearchOutlined />}\n label=\"\"\n labelStyle={{ width: 45 }}\n placeholder=\"Search by file name\"\n onChange={(e) => {\n setKeyword(e);\n }}\n />\n <Select\n mode=\"multiple\"\n placeholder=\"Filter by file type\"\n style={{ width: 250 }}\n options={Object.keys(fileTypes).map((e) => ({\n label: e,\n value: e,\n }))}\n allowClear\n onChange={(e) => {\n setSelectedFileTypes(e);\n }}\n />\n <Select\n mode=\"multiple\"\n placeholder=\"Filter by file changed type\"\n style={{ width: 200 }}\n options={Object.values(UpdateType).map((e) => ({\n label: e,\n value: e,\n }))}\n allowClear\n onChange={(e) => {\n setSelectedUpdateTypes(e);\n }}\n />\n <Select\n suffixIcon={<SortAscendingOutlined />}\n // style={{ width: 150 }}\n options={Object.values(SortType).map((e) => ({\n label: e,\n value: e,\n }))}\n value={selectedSortType}\n onChange={(e) => {\n setSelectedSortType(e);\n }}\n />\n </Space>\n <Row style={{ marginTop: 10 }} gutter={[6, 6]}>\n <Col>\n <Button>Select Baseline Asset and Current Asset to Diff </Button>\n </Col>\n <Col>\n <Select\n allowClear\n placeholder=\"select baseline assets\"\n showSearch\n style={{ width: 300 }}\n options={Object.values(baseline.chunkGraph.assets).map((e) => ({\n label: e.path,\n value: e.path,\n }))}\n onChange={(e) => setSelectedBAsset(e)}\n />\n </Col>\n <Col>\n <Select\n allowClear\n placeholder=\"select current assets\"\n showSearch\n style={{ width: 300 }}\n options={Object.values(current.chunkGraph.assets).map((e) => ({\n label: e.path,\n value: e.path,\n }))}\n onChange={(e) => setSelectedCAsset(e)}\n />\n </Col>\n </Row>\n </Col>\n <Col span={24}>\n <Table\n bordered\n sticky={{ offsetHeader: 54 }}\n pagination={{\n pageSize: 20,\n size: 'small',\n }}\n dataSource={filteredDataSource}\n rowKey={(e) => e.alias}\n expandable={{\n expandedRowRender: (r) => {\n return (\n <div style={{ margin: Size.BasePadding / 3 }}>\n <ModuleRowForAsset\n data={r}\n baseline={baseline}\n current={current}\n />\n </div>\n );\n },\n columnTitle: (\n <Tooltip\n title=\"Click to expand row to see the modules which the chunk contains\"\n placement=\"left\"\n >\n <AppstoreAddOutlined style={{ cursor: 'pointer' }} />\n </Tooltip>\n ),\n }}\n columns={[\n {\n title: (\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n filtered assets is {filteredDataSource.length}\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit' }}>\n total assets is {dataSource.length}\n </Typography.Text>\n </Space>\n }\n >\n <Typography.Text strong>Assets</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {filteredDataSource.length}/{dataSource.length}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n ),\n render: (_v, r) => <Name data={r} />,\n },\n {\n title: () => {\n const cs = formatSize(cSize);\n const diff = Graph.diffSize(bSize, cSize);\n return (\n <Tooltip\n title={`Current size is ${cs}, Delta is ${formatPercent(diff.percent)}`}\n >\n <Typography.Text strong>Current</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n <Typography.Text\n style={{ fontSize: 'inherit', marginRight: 8 }}\n >\n {cs}\n </Typography.Text>\n <SizePercent\n fontSize={'inherit'}\n baseline={bSize}\n current={cSize}\n />\n {formatDiffSize(\n bSize,\n cSize,\n bSize > cSize\n ? Client.RsdoctorClientDiffState.Down\n : Client.RsdoctorClientDiffState.Up,\n { fontSize: 10, fontWeight: 400, marginLeft: 4 },\n )}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n );\n },\n render: (_v, r) => {\n if (r.current) {\n const { percent, state } = Graph.diffAssetsByExtensions(\n baseline.chunkGraph,\n current.chunkGraph,\n (asset) =>\n Graph.formatAssetName(asset.path, bOutPutFileName) ===\n r.alias,\n );\n const isInitial = Graph.isInitialAsset(\n r.current,\n current.chunkGraph.chunks,\n );\n return (\n <Space>\n <Typography.Text>\n {formatSize(r.current.size)}\n </Typography.Text>\n <Percent percent={percent} state={state} />\n {isInitial ? <Tag color={Color.Blue}>initial</Tag> : null}\n </Space>\n );\n }\n return '-';\n },\n },\n {\n title: () => {\n const bs = formatSize(bSize);\n return (\n <Tooltip title={`Baseline size is ${bs}`}>\n <Typography.Text strong>Baseline</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {bs}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n );\n },\n render: (_v, r) => {\n if (r.baseline) {\n const isInitial = Graph.isInitialAsset(\n r.baseline,\n baseline.chunkGraph.chunks,\n );\n return (\n <Space>\n <Typography.Text>\n {formatSize(r.baseline.size)}\n </Typography.Text>\n {isInitial ? <Tag color={Color.Blue}>initial</Tag> : null}\n </Space>\n );\n }\n return '-';\n },\n },\n {\n title: 'Actions',\n key: 'actions',\n render: (_v, r) => {\n return (\n <ViewChanges\n file={r.alias}\n data={[\n {\n baseline: r.baseline?.content,\n current: r.current?.content,\n group: 'assets',\n },\n ]}\n />\n );\n },\n },\n ]}\n />\n </Col>\n </Row>\n );\n};\n"],"names":["fileTypes","Constants","definedExtensions","Object","Name","r","name","Space","Typography","Tooltip","InfoCircleOutlined","MinusSquareOutlined","Color","PlusSquareOutlined","CheckSquareOutlined","Assets","baseline","current","outputFilename","bOutPutFileName","keyword","setKeyword","useState","selectedFileTypes","setSelectedFileTypes","selectedUpdateTypes","setSelectedUpdateTypes","selectedSortType","setSelectedSortType","SortType","selectedBAsset","setSelectedBAsset","selectedCAsset","setSelectedCAsset","bAssets","cAssets","dataSource","useMemo","res","c","b","asset","alias","Graph","console","filteredDataSource","list","e","exts","hasOthers","UpdateType","a","prev","others","t","percentA","percentB","cSize","sumBy","bSize","Row","Size","Col","KeywordInput","FileSearchOutlined","Select","SortAscendingOutlined","Button","Table","ModuleRowForAsset","AppstoreAddOutlined","Divider","_v","cs","formatSize","diff","formatPercent","SizePercent","formatDiffSize","Client","percent","state","isInitial","Percent","Tag","bs","_r_baseline","_r_current","ViewChanges"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState } from "react";
|
|
3
3
|
import { Col, Divider, Row, Select, Space, Table, Tag, Tooltip, Typography } from "antd";
|
|
4
|
-
import { uniq } from "
|
|
4
|
+
import { uniq } from "es-toolkit/compat";
|
|
5
5
|
import { FileSearchOutlined, InfoCircleOutlined } from "@ant-design/icons";
|
|
6
6
|
import { beautifyModulePath, useUniqModules } from "../../../../utils/index.mjs";
|
|
7
7
|
import { Size } from "../../../../constants.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/modules.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Resources/BundleDiff/DiffContainer/modules.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n Col,\n Divider,\n Row,\n Select,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { uniq } from 'lodash-es';\nimport { InfoCircleOutlined, FileSearchOutlined } from '@ant-design/icons';\nimport {\n BundleDiffComponentCardProps,\n BundleDiffTableModulesData,\n} from './types';\nimport { beautifyModulePath, useUniqModules } from '../../../../utils';\nimport { Size } from '../../../../constants';\nimport { KeywordInput } from '../../../../components/Form/keyword';\nimport { ViewChanges } from './changes';\nimport { UpdateType } from './constants';\nimport { Badge as Bdg } from '../../../../components/Badge';\nimport { ModuleHashPattern, getTargetColumnPropsForModuleRow } from './row';\nimport { Graph } from '@rsdoctor/utils/common';\n\nexport function getUpdateType(e: BundleDiffTableModulesData): UpdateType {\n if (e.baseline && !e.current) {\n // deleted\n return UpdateType.Deleted;\n }\n\n if (!e.baseline && e.current) {\n // new\n return UpdateType.New;\n }\n\n if (e.baseline && e.current) {\n if (\n e.baseline.size.sourceSize === e.current.size.sourceSize &&\n e.baseline.size.parsedSize === e.current.size.parsedSize\n ) {\n // not changed\n return UpdateType.NotChanged;\n }\n // update\n return UpdateType.Changed;\n }\n\n throw new Error('Update Type not match');\n}\n\nexport const FileUpdateTypeTag: React.FC<{ type: UpdateType }> = ({ type }) => {\n if (type === UpdateType.NotChanged) {\n return (\n <Tooltip title=\"It hasn't changed between Baseline and Current\">\n <Tag color=\"success\">Not Changed</Tag>\n </Tooltip>\n );\n }\n if (type === UpdateType.Changed) {\n return (\n <Tooltip title=\"It has been changed between Baseline and Current\">\n <Tag color=\"warning\">Changed</Tag>\n </Tooltip>\n );\n }\n if (type === UpdateType.New) {\n return (\n <Tooltip title=\"It is created in Current\">\n <Tag color=\"error\">New</Tag>\n </Tooltip>\n );\n }\n if (type === UpdateType.Deleted) {\n return (\n <Tooltip title=\"It has been deleted in Current\">\n <Tag color=\"error\">Deleted</Tag>\n </Tooltip>\n );\n }\n return null;\n};\n\nexport const Modules: React.FC<BundleDiffComponentCardProps> = ({\n baseline,\n current,\n}) => {\n const bModules = useMemo(\n () => useUniqModules(baseline.moduleGraph.modules),\n [baseline],\n );\n const cModules = useMemo(\n () => useUniqModules(current.moduleGraph.modules),\n [current],\n );\n\n const bChunks = baseline.chunkGraph.chunks;\n const cChunks = current.chunkGraph.chunks;\n\n const bRoot = baseline.root;\n const cRoot = current.root;\n\n const [keyword, setKeyword] = useState<string>();\n const [selectedUpdateTypes, setSelectedUpdateTypes] = useState<UpdateType[]>(\n [],\n );\n\n const dataSource = useMemo(() => {\n const res: Record<string, BundleDiffTableModulesData> = {};\n\n bModules.forEach((mod) => {\n const modPath =\n mod.webpackId?.replace(ModuleHashPattern, '') ||\n mod.path?.replace(ModuleHashPattern, '');\n\n if (!res[modPath]) {\n res[modPath] = {\n path: modPath,\n baseline: mod,\n };\n } else {\n console.warn('[Baseline Module Exists]: ', mod, res);\n }\n });\n\n cModules.forEach((mod) => {\n const modPath =\n mod.webpackId?.replace(ModuleHashPattern, '') ||\n mod.path?.replace(ModuleHashPattern, '');\n\n if (!res[modPath]) {\n res[modPath] = {\n path: modPath,\n };\n }\n res[modPath].current = mod;\n });\n\n return Object.values(res);\n }, [bModules, cModules]);\n\n const filteredDataSource = useMemo(() => {\n let list = dataSource.slice();\n\n if (keyword) {\n list = list.filter((e) => e.path.indexOf(keyword) > -1);\n }\n\n if (selectedUpdateTypes.length) {\n list = list.filter((e) => {\n return selectedUpdateTypes.includes(getUpdateType(e));\n });\n }\n\n return list;\n }, [dataSource, keyword, selectedUpdateTypes]);\n\n const { bFilteredModulesLength, cFilteredModulesLength } = useMemo(() => {\n return {\n bFilteredModulesLength: filteredDataSource.filter((e) => e.baseline)\n .length,\n cFilteredModulesLength: filteredDataSource.filter((e) => e.current)\n .length,\n };\n }, [filteredDataSource]);\n\n return (\n <Row gutter={[Size.BasePadding, Size.BasePadding]}>\n <Col span={24}>\n <Space wrap>\n <KeywordInput\n icon={<FileSearchOutlined />}\n label=\"\"\n labelStyle={{ width: 45 }}\n placeholder=\"Search by name\"\n onChange={(e) => {\n setKeyword(e);\n }}\n />\n <Select\n mode=\"multiple\"\n placeholder=\"Filter by changed type\"\n style={{ width: 200 }}\n options={Object.values(UpdateType).map((e) => ({\n label: e,\n value: e,\n }))}\n allowClear\n onChange={(e) => {\n setSelectedUpdateTypes(e);\n }}\n />\n </Space>\n </Col>\n <Col span={24}>\n <Table\n bordered\n sticky={{ offsetHeader: 54 }}\n pagination={{\n pageSize: 20,\n size: 'small',\n }}\n scroll={{ x: 1700 }}\n dataSource={filteredDataSource}\n rowKey={(e) => e.path}\n columns={[\n {\n fixed: 'left',\n title: (\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n filtered modules is {filteredDataSource.length} (Current\n & Baseline)\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit' }}>\n total modules is {dataSource.length} (Current &\n Baseline)\n </Typography.Text>\n </Space>\n }\n >\n <Typography.Text strong>Modules</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {filteredDataSource.length}/{dataSource.length}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n ),\n render: (_v, r) => {\n const { alias, inNodeModules } = beautifyModulePath(\n r.path,\n r.baseline ? bRoot : cRoot,\n );\n return (\n <Space>\n <Tooltip title={r.path}>\n <Typography.Text copyable={{ text: r.path }}>\n {alias}\n </Typography.Text>\n </Tooltip>\n <FileUpdateTypeTag type={getUpdateType(r)} />\n {inNodeModules ? (\n <Tag color=\"warning\">node_modules</Tag>\n ) : null}\n </Space>\n );\n },\n },\n getTargetColumnPropsForModuleRow(\n 'current',\n bFilteredModulesLength,\n cFilteredModulesLength,\n ),\n getTargetColumnPropsForModuleRow(\n 'baseline',\n bFilteredModulesLength,\n cFilteredModulesLength,\n ),\n {\n title: 'in Assets',\n render: (_v, r) => {\n const b: string[] = [];\n const c: string[] = [];\n if (r.current) {\n Graph.getChunksByModule(r.current, cChunks).forEach((e) =>\n e.assets.forEach((asset) => c.push(asset)),\n );\n }\n\n if (r.baseline) {\n Graph.getChunksByModule(r.baseline, bChunks).forEach((e) =>\n e.assets.forEach((asset) => b.push(asset)),\n );\n }\n\n if (!b.length && !c.length) return null;\n\n return (\n <Space direction=\"vertical\">\n {uniq(c)\n .filter(Boolean)\n .map((e) => (\n <Bdg label=\"Current\" value={e} key={`c_${e}`} />\n ))}\n {uniq(b)\n .filter(Boolean)\n .map((e) => (\n <Bdg label=\"Baseline\" value={e} key={`b_${e}`} />\n ))}\n </Space>\n );\n },\n },\n {\n title: 'Actions',\n width: 200,\n render: (_v, r) => {\n const isChanged = getUpdateType(r) === UpdateType.Changed;\n return (\n <Space direction=\"vertical\" style={{ maxWidth: 170 }}>\n {isChanged ? (\n <ViewChanges\n text=\"View Changes\"\n file={r.path}\n data={[\n {\n baseline:\n baseline.moduleCodeMap[r.baseline?.id as number]\n ?.source,\n current:\n current.moduleCodeMap[r.current?.id as number]\n ?.source,\n group: 'Source',\n },\n {\n baseline:\n baseline.moduleCodeMap[r.baseline?.id as number]\n ?.transformed,\n current:\n current.moduleCodeMap[r.current?.id as number]\n ?.transformed,\n group: 'Transformed Source',\n },\n {\n baseline:\n baseline.moduleCodeMap[r.baseline?.id as number]\n ?.parsedSource,\n current:\n current.moduleCodeMap[r.current?.id as number]\n ?.parsedSource,\n group: 'Parsed Source',\n },\n ]}\n />\n ) : null}\n {r?.current ? (\n <ViewChanges\n text=\"Current Result Viewer\"\n file={r.path}\n data={[\n {\n baseline:\n current.moduleCodeMap[r.current!.id]?.source,\n current:\n current.moduleCodeMap[r.current!.id]?.transformed,\n baselineTitle: 'Current Source',\n currentTitle: 'Current Transformed Source',\n group: 'Transformed Source',\n },\n {\n baseline:\n current.moduleCodeMap[r.current!.id]?.source,\n current:\n current.moduleCodeMap[r.current!.id]\n ?.parsedSource,\n baselineTitle: 'Current Source',\n currentTitle: 'Current Parsed Source',\n group: 'Parsed Source',\n },\n ]}\n />\n ) : null}\n </Space>\n );\n },\n },\n ]}\n />\n </Col>\n </Row>\n );\n};\n"],"names":["getUpdateType","e","UpdateType","Error","FileUpdateTypeTag","type","Tooltip","Tag","Modules","baseline","current","bModules","useMemo","useUniqModules","cModules","bChunks","cChunks","bRoot","cRoot","keyword","setKeyword","useState","selectedUpdateTypes","setSelectedUpdateTypes","dataSource","res","mod","_mod_webpackId","_mod_path","modPath","ModuleHashPattern","console","Object","filteredDataSource","list","bFilteredModulesLength","cFilteredModulesLength","Row","Size","Col","Space","KeywordInput","FileSearchOutlined","Select","Table","Typography","Divider","InfoCircleOutlined","_v","r","alias","inNodeModules","beautifyModulePath","getTargetColumnPropsForModuleRow","b","c","Graph","asset","uniq","Boolean","Bdg","_baseline_moduleCodeMap_r_baseline_id","_r_baseline","_current_moduleCodeMap_r_current_id","_r_current","_baseline_moduleCodeMap_r_baseline_id1","_r_baseline1","_current_moduleCodeMap_r_current_id1","_r_current1","_baseline_moduleCodeMap_r_baseline_id2","_r_baseline2","_current_moduleCodeMap_r_current_id2","_r_current2","_current_moduleCodeMap_r_current_id3","_current_moduleCodeMap_r_current_id4","_current_moduleCodeMap_r_current_id5","_current_moduleCodeMap_r_current_id6","isChanged","ViewChanges"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/modules.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Resources/BundleDiff/DiffContainer/modules.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n Col,\n Divider,\n Row,\n Select,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { uniq } from 'es-toolkit/compat';\nimport { InfoCircleOutlined, FileSearchOutlined } from '@ant-design/icons';\nimport {\n BundleDiffComponentCardProps,\n BundleDiffTableModulesData,\n} from './types';\nimport { beautifyModulePath, useUniqModules } from '../../../../utils';\nimport { Size } from '../../../../constants';\nimport { KeywordInput } from '../../../../components/Form/keyword';\nimport { ViewChanges } from './changes';\nimport { UpdateType } from './constants';\nimport { Badge as Bdg } from '../../../../components/Badge';\nimport { ModuleHashPattern, getTargetColumnPropsForModuleRow } from './row';\nimport { Graph } from '@rsdoctor/utils/common';\n\nexport function getUpdateType(e: BundleDiffTableModulesData): UpdateType {\n if (e.baseline && !e.current) {\n // deleted\n return UpdateType.Deleted;\n }\n\n if (!e.baseline && e.current) {\n // new\n return UpdateType.New;\n }\n\n if (e.baseline && e.current) {\n if (\n e.baseline.size.sourceSize === e.current.size.sourceSize &&\n e.baseline.size.parsedSize === e.current.size.parsedSize\n ) {\n // not changed\n return UpdateType.NotChanged;\n }\n // update\n return UpdateType.Changed;\n }\n\n throw new Error('Update Type not match');\n}\n\nexport const FileUpdateTypeTag: React.FC<{ type: UpdateType }> = ({ type }) => {\n if (type === UpdateType.NotChanged) {\n return (\n <Tooltip title=\"It hasn't changed between Baseline and Current\">\n <Tag color=\"success\">Not Changed</Tag>\n </Tooltip>\n );\n }\n if (type === UpdateType.Changed) {\n return (\n <Tooltip title=\"It has been changed between Baseline and Current\">\n <Tag color=\"warning\">Changed</Tag>\n </Tooltip>\n );\n }\n if (type === UpdateType.New) {\n return (\n <Tooltip title=\"It is created in Current\">\n <Tag color=\"error\">New</Tag>\n </Tooltip>\n );\n }\n if (type === UpdateType.Deleted) {\n return (\n <Tooltip title=\"It has been deleted in Current\">\n <Tag color=\"error\">Deleted</Tag>\n </Tooltip>\n );\n }\n return null;\n};\n\nexport const Modules: React.FC<BundleDiffComponentCardProps> = ({\n baseline,\n current,\n}) => {\n const bModules = useMemo(\n () => useUniqModules(baseline.moduleGraph.modules),\n [baseline],\n );\n const cModules = useMemo(\n () => useUniqModules(current.moduleGraph.modules),\n [current],\n );\n\n const bChunks = baseline.chunkGraph.chunks;\n const cChunks = current.chunkGraph.chunks;\n\n const bRoot = baseline.root;\n const cRoot = current.root;\n\n const [keyword, setKeyword] = useState<string>();\n const [selectedUpdateTypes, setSelectedUpdateTypes] = useState<UpdateType[]>(\n [],\n );\n\n const dataSource = useMemo(() => {\n const res: Record<string, BundleDiffTableModulesData> = {};\n\n bModules.forEach((mod) => {\n const modPath =\n mod.webpackId?.replace(ModuleHashPattern, '') ||\n mod.path?.replace(ModuleHashPattern, '');\n\n if (!res[modPath]) {\n res[modPath] = {\n path: modPath,\n baseline: mod,\n };\n } else {\n console.warn('[Baseline Module Exists]: ', mod, res);\n }\n });\n\n cModules.forEach((mod) => {\n const modPath =\n mod.webpackId?.replace(ModuleHashPattern, '') ||\n mod.path?.replace(ModuleHashPattern, '');\n\n if (!res[modPath]) {\n res[modPath] = {\n path: modPath,\n };\n }\n res[modPath].current = mod;\n });\n\n return Object.values(res);\n }, [bModules, cModules]);\n\n const filteredDataSource = useMemo(() => {\n let list = dataSource.slice();\n\n if (keyword) {\n list = list.filter((e) => e.path.indexOf(keyword) > -1);\n }\n\n if (selectedUpdateTypes.length) {\n list = list.filter((e) => {\n return selectedUpdateTypes.includes(getUpdateType(e));\n });\n }\n\n return list;\n }, [dataSource, keyword, selectedUpdateTypes]);\n\n const { bFilteredModulesLength, cFilteredModulesLength } = useMemo(() => {\n return {\n bFilteredModulesLength: filteredDataSource.filter((e) => e.baseline)\n .length,\n cFilteredModulesLength: filteredDataSource.filter((e) => e.current)\n .length,\n };\n }, [filteredDataSource]);\n\n return (\n <Row gutter={[Size.BasePadding, Size.BasePadding]}>\n <Col span={24}>\n <Space wrap>\n <KeywordInput\n icon={<FileSearchOutlined />}\n label=\"\"\n labelStyle={{ width: 45 }}\n placeholder=\"Search by name\"\n onChange={(e) => {\n setKeyword(e);\n }}\n />\n <Select\n mode=\"multiple\"\n placeholder=\"Filter by changed type\"\n style={{ width: 200 }}\n options={Object.values(UpdateType).map((e) => ({\n label: e,\n value: e,\n }))}\n allowClear\n onChange={(e) => {\n setSelectedUpdateTypes(e);\n }}\n />\n </Space>\n </Col>\n <Col span={24}>\n <Table\n bordered\n sticky={{ offsetHeader: 54 }}\n pagination={{\n pageSize: 20,\n size: 'small',\n }}\n scroll={{ x: 1700 }}\n dataSource={filteredDataSource}\n rowKey={(e) => e.path}\n columns={[\n {\n fixed: 'left',\n title: (\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n filtered modules is {filteredDataSource.length} (Current\n & Baseline)\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit' }}>\n total modules is {dataSource.length} (Current &\n Baseline)\n </Typography.Text>\n </Space>\n }\n >\n <Typography.Text strong>Modules</Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {filteredDataSource.length}/{dataSource.length}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n ),\n render: (_v, r) => {\n const { alias, inNodeModules } = beautifyModulePath(\n r.path,\n r.baseline ? bRoot : cRoot,\n );\n return (\n <Space>\n <Tooltip title={r.path}>\n <Typography.Text copyable={{ text: r.path }}>\n {alias}\n </Typography.Text>\n </Tooltip>\n <FileUpdateTypeTag type={getUpdateType(r)} />\n {inNodeModules ? (\n <Tag color=\"warning\">node_modules</Tag>\n ) : null}\n </Space>\n );\n },\n },\n getTargetColumnPropsForModuleRow(\n 'current',\n bFilteredModulesLength,\n cFilteredModulesLength,\n ),\n getTargetColumnPropsForModuleRow(\n 'baseline',\n bFilteredModulesLength,\n cFilteredModulesLength,\n ),\n {\n title: 'in Assets',\n render: (_v, r) => {\n const b: string[] = [];\n const c: string[] = [];\n if (r.current) {\n Graph.getChunksByModule(r.current, cChunks).forEach((e) =>\n e.assets.forEach((asset) => c.push(asset)),\n );\n }\n\n if (r.baseline) {\n Graph.getChunksByModule(r.baseline, bChunks).forEach((e) =>\n e.assets.forEach((asset) => b.push(asset)),\n );\n }\n\n if (!b.length && !c.length) return null;\n\n return (\n <Space direction=\"vertical\">\n {uniq(c)\n .filter(Boolean)\n .map((e) => (\n <Bdg label=\"Current\" value={e} key={`c_${e}`} />\n ))}\n {uniq(b)\n .filter(Boolean)\n .map((e) => (\n <Bdg label=\"Baseline\" value={e} key={`b_${e}`} />\n ))}\n </Space>\n );\n },\n },\n {\n title: 'Actions',\n width: 200,\n render: (_v, r) => {\n const isChanged = getUpdateType(r) === UpdateType.Changed;\n return (\n <Space direction=\"vertical\" style={{ maxWidth: 170 }}>\n {isChanged ? (\n <ViewChanges\n text=\"View Changes\"\n file={r.path}\n data={[\n {\n baseline:\n baseline.moduleCodeMap[r.baseline?.id as number]\n ?.source,\n current:\n current.moduleCodeMap[r.current?.id as number]\n ?.source,\n group: 'Source',\n },\n {\n baseline:\n baseline.moduleCodeMap[r.baseline?.id as number]\n ?.transformed,\n current:\n current.moduleCodeMap[r.current?.id as number]\n ?.transformed,\n group: 'Transformed Source',\n },\n {\n baseline:\n baseline.moduleCodeMap[r.baseline?.id as number]\n ?.parsedSource,\n current:\n current.moduleCodeMap[r.current?.id as number]\n ?.parsedSource,\n group: 'Parsed Source',\n },\n ]}\n />\n ) : null}\n {r?.current ? (\n <ViewChanges\n text=\"Current Result Viewer\"\n file={r.path}\n data={[\n {\n baseline:\n current.moduleCodeMap[r.current!.id]?.source,\n current:\n current.moduleCodeMap[r.current!.id]?.transformed,\n baselineTitle: 'Current Source',\n currentTitle: 'Current Transformed Source',\n group: 'Transformed Source',\n },\n {\n baseline:\n current.moduleCodeMap[r.current!.id]?.source,\n current:\n current.moduleCodeMap[r.current!.id]\n ?.parsedSource,\n baselineTitle: 'Current Source',\n currentTitle: 'Current Parsed Source',\n group: 'Parsed Source',\n },\n ]}\n />\n ) : null}\n </Space>\n );\n },\n },\n ]}\n />\n </Col>\n </Row>\n );\n};\n"],"names":["getUpdateType","e","UpdateType","Error","FileUpdateTypeTag","type","Tooltip","Tag","Modules","baseline","current","bModules","useMemo","useUniqModules","cModules","bChunks","cChunks","bRoot","cRoot","keyword","setKeyword","useState","selectedUpdateTypes","setSelectedUpdateTypes","dataSource","res","mod","_mod_webpackId","_mod_path","modPath","ModuleHashPattern","console","Object","filteredDataSource","list","bFilteredModulesLength","cFilteredModulesLength","Row","Size","Col","Space","KeywordInput","FileSearchOutlined","Select","Table","Typography","Divider","InfoCircleOutlined","_v","r","alias","inNodeModules","beautifyModulePath","getTargetColumnPropsForModuleRow","b","c","Graph","asset","uniq","Boolean","Bdg","_baseline_moduleCodeMap_r_baseline_id","_r_baseline","_current_moduleCodeMap_r_current_id","_r_current","_baseline_moduleCodeMap_r_baseline_id1","_r_baseline1","_current_moduleCodeMap_r_current_id1","_r_current1","_baseline_moduleCodeMap_r_baseline_id2","_r_baseline2","_current_moduleCodeMap_r_current_id2","_r_current2","_current_moduleCodeMap_r_current_id3","_current_moduleCodeMap_r_current_id4","_current_moduleCodeMap_r_current_id5","_current_moduleCodeMap_r_current_id6","isChanged","ViewChanges"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState } from "react";
|
|
3
3
|
import { Col, Divider, Empty, Row, Select, Space, Table, Tooltip, Typography } from "antd";
|
|
4
|
-
import { sumBy, uniq } from "
|
|
4
|
+
import { sumBy, uniq } from "es-toolkit/compat";
|
|
5
5
|
import { formatSize } from "../../../../utils/index.mjs";
|
|
6
6
|
import { Size } from "../../../../constants.mjs";
|
|
7
7
|
import { FileUpdateTypeTag } from "./modules.mjs";
|