{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/modules.mjs","sources":["../../../../../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 { getTargetColumnPropsForModuleRow } from './row';\nimport { Graph } from '@rsdoctor/utils/common';\nimport { getModuleDiffKey } from './moduleDiff';\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 = getModuleDiffKey(mod);\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 = getModuleDiffKey(mod);\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","modPath","getModuleDiffKey","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","isChanged","ViewChanges"],"mappings":"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"}