@rsdoctor/components 1.3.7 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/imgs/connection-point.mjs.map +1 -1
- package/dist/common/imgs/webpack.mjs.map +1 -1
- package/dist/common/svg/bundle-size.mjs.map +1 -1
- package/dist/common/svg/error.mjs.map +1 -1
- package/dist/common/svg/file-css.mjs.map +1 -1
- package/dist/common/svg/file-html.mjs.map +1 -1
- package/dist/common/svg/file-image.mjs.map +1 -1
- package/dist/common/svg/file-js.mjs.map +1 -1
- package/dist/common/svg/file-unknown.mjs.map +1 -1
- package/dist/common/svg/file.mjs.map +1 -1
- package/dist/common/svg/files/css.mjs.map +1 -1
- package/dist/common/svg/files/html.mjs.map +1 -1
- package/dist/common/svg/files/image.mjs.map +1 -1
- package/dist/common/svg/files/js.mjs.map +1 -1
- package/dist/common/svg/files/unkown-file.mjs.map +1 -1
- package/dist/common/svg/loader/input.mjs.map +1 -1
- package/dist/common/svg/loader/output.mjs.map +1 -1
- package/dist/common/svg/loader/step.mjs.map +1 -1
- package/dist/common/svg/navbar/bundle-size-active.mjs.map +1 -1
- package/dist/common/svg/navbar/bundle-size-inactive.mjs.map +1 -1
- package/dist/common/svg/navbar/compile-analysis-active.mjs.map +1 -1
- package/dist/common/svg/navbar/compile-analysis-inactive.mjs.map +1 -1
- package/dist/common/svg/navbar/overall-active.mjs.map +1 -1
- package/dist/common/svg/navbar/overall-inactive.mjs.map +1 -1
- package/dist/common/svg/output.mjs.map +1 -1
- package/dist/common/svg/source-size.mjs.map +1 -1
- package/dist/common/svg/source.mjs.map +1 -1
- package/dist/common/svg/total-size.mjs.map +1 -1
- package/dist/common/svg/version.mjs.map +1 -1
- package/dist/components/Alert/change.d.ts +1 -1
- package/dist/components/Alert/change.mjs.map +1 -1
- package/dist/components/Alert/ecma-version-check.d.ts +1 -1
- package/dist/components/Alert/ecma-version-check.mjs.map +1 -1
- package/dist/components/Alert/ecma-version-check.module.mjs.map +1 -1
- package/dist/components/Alert/file-relation.d.ts +1 -1
- package/dist/components/Alert/file-relation.mjs.map +1 -1
- package/dist/components/Alert/package-relation.d.ts +1 -1
- package/dist/components/Alert/package-relation.mjs.map +1 -1
- package/dist/components/Alert/package-relation.module.mjs.map +1 -1
- package/dist/components/Alert/view.d.ts +1 -1
- package/dist/components/Alert/view.mjs.map +1 -1
- package/dist/components/Alerts/bundle-alert.d.ts +2 -2
- package/dist/components/Alerts/bundle-alert.mjs.map +1 -1
- package/dist/components/Alerts/bundle-alert.module.mjs.map +1 -1
- package/dist/components/Alerts/bundle.mjs.map +1 -1
- package/dist/components/Alerts/collapse-cross-chunks.d.ts +1 -1
- package/dist/components/Alerts/collapse-cross-chunks.mjs.map +1 -1
- package/dist/components/Alerts/collapse.d.ts +1 -1
- package/dist/components/Alerts/collapse.mjs.map +1 -1
- package/dist/components/Alerts/collapse.module.mjs.map +1 -1
- package/dist/components/Alerts/compile.mjs.map +1 -1
- package/dist/components/Alerts/index.d.ts +3 -3
- package/dist/components/Alerts/list.mjs.map +1 -1
- package/dist/components/Alerts/list.module.mjs.map +1 -1
- package/dist/components/Alerts/overlay.mjs.map +1 -1
- package/dist/components/Alerts/overlay.module.mjs.map +1 -1
- package/dist/components/Badge/index.mjs.map +1 -1
- package/dist/components/Card/diff.d.ts +1 -1
- package/dist/components/Card/diff.mjs.map +1 -1
- package/dist/components/Card/index.d.ts +1 -1
- package/dist/components/Card/index.mjs.map +1 -1
- package/dist/components/Card/size.mjs.map +1 -1
- package/dist/components/Card/size.module.mjs.map +1 -1
- package/dist/components/Card/statistic.mjs.map +1 -1
- package/dist/components/Charts/TimelineCharts/index.d.ts +2 -2
- package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
- package/dist/components/Charts/TreeMap.mjs.map +1 -1
- package/dist/components/Charts/bootstrap.d.ts +1 -1
- package/dist/components/Charts/bootstrap.mjs.map +1 -1
- package/dist/components/Charts/common.d.ts +2 -2
- package/dist/components/Charts/common.mjs.map +1 -1
- package/dist/components/Charts/constants.mjs.map +1 -1
- package/dist/components/Charts/done.d.ts +1 -1
- package/dist/components/Charts/done.mjs.map +1 -1
- package/dist/components/Charts/index.mjs.map +1 -1
- package/dist/components/Charts/loader.d.ts +1 -1
- package/dist/components/Charts/loader.mjs.map +1 -1
- package/dist/components/Charts/minify.d.ts +1 -1
- package/dist/components/Charts/minify.mjs.map +1 -1
- package/dist/components/Charts/treemap.module.mjs.map +1 -1
- package/dist/components/Charts/types.mjs.map +1 -1
- package/dist/components/Charts/utils.d.ts +1 -1
- package/dist/components/Charts/utils.mjs.map +1 -1
- package/dist/components/Configuration/builder.mjs.map +1 -1
- package/dist/components/Configuration/builder.module.mjs.map +1 -1
- package/dist/components/Configuration/index.d.ts +1 -1
- package/dist/components/FileTree/css.mjs.map +1 -1
- package/dist/components/FileTree/html.mjs.map +1 -1
- package/dist/components/FileTree/image.mjs.map +1 -1
- package/dist/components/FileTree/index.mjs.map +1 -1
- package/dist/components/FileTree/js.mjs.map +1 -1
- package/dist/components/FileTree/unkown-file.mjs.map +1 -1
- package/dist/components/Form/keyword.mjs.map +1 -1
- package/dist/components/Keyword/index.mjs.map +1 -1
- package/dist/components/Keyword/style.module.mjs.map +1 -1
- package/dist/components/Layout/builder-select.mjs.map +1 -1
- package/dist/components/Layout/bundle-size-icon.mjs.map +1 -1
- package/dist/components/Layout/compile-icon.mjs.map +1 -1
- package/dist/components/Layout/constants.mjs.map +1 -1
- package/dist/components/Layout/header.mjs.map +1 -1
- package/dist/components/Layout/index.mjs.map +1 -1
- package/dist/components/Layout/menus.mjs.map +1 -1
- package/dist/components/Layout/overall-icon.mjs.map +1 -1
- package/dist/components/Layout/progress.mjs.map +1 -1
- package/dist/components/Loader/Analysis/files.mjs.map +1 -1
- package/dist/components/Loader/Analysis/index.mjs.map +1 -1
- package/dist/components/Loader/Analysis/input.mjs.map +1 -1
- package/dist/components/Loader/Analysis/output.mjs.map +1 -1
- package/dist/components/Loader/Analysis/style.module.mjs.map +1 -1
- package/dist/components/Loader/executions.mjs.map +1 -1
- package/dist/components/Loader/step.mjs.map +1 -1
- package/dist/components/Manifest/api.mjs.map +1 -1
- package/dist/components/Manifest/data.mjs.map +1 -1
- package/dist/components/Manifest/index.d.ts +2 -2
- package/dist/components/Opener/code.mjs.map +1 -1
- package/dist/components/Opener/index.d.ts +2 -2
- package/dist/components/Opener/vscode.mjs.map +1 -1
- package/dist/components/Overall/DataSummary.mjs.map +1 -1
- package/dist/components/Overall/DataSummary.module.mjs.map +1 -1
- package/dist/components/Overall/bundle.mjs.map +1 -1
- package/dist/components/Overall/bundle.module.mjs.map +1 -1
- package/dist/components/Overall/card.module.mjs.map +1 -1
- package/dist/components/Overall/compile.mjs.map +1 -1
- package/dist/components/Overall/compile.module.mjs.map +1 -1
- package/dist/components/Overall/help-center.mjs.map +1 -1
- package/dist/components/Overall/help-center.module.mjs.map +1 -1
- package/dist/components/Overall/index.d.ts +3 -3
- package/dist/components/Overall/list.module.mjs.map +1 -1
- package/dist/components/Overall/overview.mjs.map +1 -1
- package/dist/components/Overall/overview.module.mjs.map +1 -1
- package/dist/components/Overall/project.mjs.map +1 -1
- package/dist/components/Overall/project.module.mjs.map +1 -1
- package/dist/components/Plugins/webpack.mjs.map +1 -1
- package/dist/components/Resolver/analysis.mjs.map +1 -1
- package/dist/components/Select/index.mjs.map +1 -1
- package/dist/components/Status/failed.mjs.map +1 -1
- package/dist/components/Status/index.d.ts +1 -1
- package/dist/components/TextDrawer/duplicate.d.ts +2 -2
- package/dist/components/TextDrawer/duplicate.mjs.map +1 -1
- package/dist/components/TextDrawer/index.d.ts +1 -1
- package/dist/components/TextDrawer/index.mjs.map +1 -1
- package/dist/components/Title/index.mjs.map +1 -1
- package/dist/components/base/CodeViewer/index.d.ts +4 -4
- package/dist/components/base/CodeViewer/index.mjs.map +1 -1
- package/dist/components/base/CodeViewer/index.module.mjs.map +1 -1
- package/dist/components/base/CodeViewer/useCodeDrawer.d.ts +1 -1
- package/dist/components/base/CodeViewer/useCodeDrawer.mjs.map +1 -1
- package/dist/components/base/CodeViewer/utils.mjs.map +1 -1
- package/dist/components/base/DiffViewer/index.d.ts +4 -4
- package/dist/components/base/DiffViewer/index.mjs.map +1 -1
- package/dist/components/base/DiffViewer/index.module.mjs.map +1 -1
- package/dist/components/base/DiffViewer/useDiffDrawer.d.ts +1 -1
- package/dist/components/base/DiffViewer/useDiffDrawer.mjs.map +1 -1
- package/dist/components/base/DiffViewer/utils.mjs.map +1 -1
- package/dist/components/base/index.d.ts +2 -2
- package/dist/components/index.d.ts +10 -10
- package/dist/config.d.ts +1 -1
- package/dist/config.mjs.map +1 -1
- package/dist/constants.mjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/pages/BundleSize/components/asset.d.ts +1 -1
- package/dist/pages/BundleSize/components/asset.mjs.map +1 -1
- package/dist/pages/BundleSize/components/card.module.mjs.map +1 -1
- package/dist/pages/BundleSize/components/cards.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index.module.mjs.map +1 -1
- package/dist/pages/BundleSize/components/search-modal.mjs.map +1 -1
- package/dist/pages/BundleSize/config.mjs.map +1 -1
- package/dist/pages/BundleSize/constants.mjs.map +1 -1
- package/dist/pages/BundleSize/index.d.ts +1 -1
- package/dist/pages/BundleSize/index.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/chunks.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/components/fileTreeCom.d.ts +1 -1
- package/dist/pages/ModuleAnalyze/components/fileTreeCom.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/constants.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/dependency.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/fileTree.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/index.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/utils/hooks.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/utils/index.mjs.map +1 -1
- package/dist/pages/ModuleResolve/constants.mjs.map +1 -1
- package/dist/pages/ModuleResolve/index.d.ts +1 -1
- package/dist/pages/ModuleResolve/index.mjs.map +1 -1
- package/dist/pages/Overall/constants.mjs.map +1 -1
- package/dist/pages/Overall/index.d.ts +1 -1
- package/dist/pages/Overall/index.mjs.map +1 -1
- package/dist/pages/Overall/index.module.mjs.map +1 -1
- package/dist/pages/Overall/responsiveLayout.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/cards.d.ts +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/cards.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/changes.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/constants.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/index.d.ts +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/index.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/modules.d.ts +2 -2
- package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/overview.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/packages.d.ts +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/packages.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/row.d.ts +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/row.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/types.d.ts +2 -2
- package/dist/pages/Resources/BundleDiff/DiffContainer/utils.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.d.ts +1 -1
- package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/constants.mjs.map +1 -1
- package/dist/pages/Resources/BundleDiff/index.d.ts +2 -2
- package/dist/pages/Resources/BundleDiff/index.mjs.map +1 -1
- package/dist/pages/Resources/RuleIndex/constants.mjs.map +1 -1
- package/dist/pages/Resources/RuleIndex/index.d.ts +1 -1
- package/dist/pages/Resources/RuleIndex/index.mjs.map +1 -1
- package/dist/pages/TreeShaking/constants.mjs.map +1 -1
- package/dist/pages/TreeShaking/editor.d.ts +1 -1
- package/dist/pages/TreeShaking/editor.mjs.map +1 -1
- package/dist/pages/TreeShaking/index.d.ts +1 -1
- package/dist/pages/TreeShaking/index.mjs.map +1 -1
- package/dist/pages/TreeShaking/open-tag.mjs.map +1 -1
- package/dist/pages/TreeShaking/range.mjs.map +1 -1
- package/dist/pages/TreeShaking/space.mjs.map +1 -1
- package/dist/pages/TreeShaking/table.d.ts +1 -1
- package/dist/pages/TreeShaking/table.mjs.map +1 -1
- package/dist/pages/TreeShaking/utils.d.ts +1 -1
- package/dist/pages/TreeShaking/utils.mjs.map +1 -1
- package/dist/pages/Uploader/constants.mjs.map +1 -1
- package/dist/pages/Uploader/index.d.ts +1 -1
- package/dist/pages/Uploader/index.mjs.map +1 -1
- package/dist/pages/Uploader/utils.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/Analysis/constants.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/Analysis/index.d.ts +1 -1
- package/dist/pages/WebpackLoaders/Analysis/index.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/Overall/constants.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/Overall/index.d.ts +1 -1
- package/dist/pages/WebpackLoaders/Overall/index.mjs.map +1 -1
- package/dist/pages/WebpackLoaders/constants.mjs.map +1 -1
- package/dist/pages/WebpackPlugins/constants.mjs.map +1 -1
- package/dist/pages/WebpackPlugins/index.d.ts +1 -1
- package/dist/pages/WebpackPlugins/index.mjs.map +1 -1
- package/dist/pages/index.d.ts +11 -11
- package/dist/utils/data/base.mjs.map +1 -1
- package/dist/utils/data/brief.d.ts +1 -1
- package/dist/utils/data/brief.mjs.map +1 -1
- package/dist/utils/data/index.d.ts +1 -1
- package/dist/utils/data/index.mjs.map +1 -1
- package/dist/utils/data/local.d.ts +1 -1
- package/dist/utils/data/local.mjs.map +1 -1
- package/dist/utils/data/remote.d.ts +1 -1
- package/dist/utils/data/remote.mjs.map +1 -1
- package/dist/utils/file.mjs.map +1 -1
- package/dist/utils/hooks.d.ts +1 -1
- package/dist/utils/hooks.mjs +4 -3
- package/dist/utils/hooks.mjs.map +1 -1
- package/dist/utils/i18n/cn.d.ts +1 -1
- package/dist/utils/i18n/cn.mjs.map +1 -1
- package/dist/utils/i18n/en.mjs +3 -3
- package/dist/utils/i18n/en.mjs.map +1 -1
- package/dist/utils/i18n/index.mjs.map +1 -1
- package/dist/utils/index.d.ts +16 -16
- package/dist/utils/loader.mjs.map +1 -1
- package/dist/utils/locale.d.ts +1 -1
- package/dist/utils/locale.mjs.map +1 -1
- package/dist/utils/manifest.d.ts +4 -4
- package/dist/utils/manifest.mjs.map +1 -1
- package/dist/utils/request.mjs.map +1 -1
- package/dist/utils/routes.mjs.map +1 -1
- package/dist/utils/size.mjs.map +1 -1
- package/dist/utils/socket.mjs.map +1 -1
- package/dist/utils/stats.mjs.map +1 -1
- package/dist/utils/storage.d.ts +2 -2
- package/dist/utils/storage.mjs.map +1 -1
- package/dist/utils/string.mjs.map +1 -1
- package/dist/utils/time.mjs.map +1 -1
- package/dist/utils/url.mjs.map +1 -1
- package/dist/utils/worker/index.d.ts +4 -4
- package/dist/utils/worker/master.d.ts +2 -2
- package/dist/utils/worker/master.mjs.map +1 -1
- package/dist/utils/worker/utils.d.ts +1 -1
- package/dist/utils/worker/utils.mjs.map +1 -1
- package/dist/utils/worker/worker.d.ts +1 -1
- package/dist/utils/worker/worker.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/row.mjs","sources":["webpack://@rsdoctor/components/./src/pages/Resources/BundleDiff/DiffContainer/row.tsx"],"sourcesContent":["import { InfoCircleOutlined, SearchOutlined } from '@ant-design/icons';\nimport {\n Button,\n Divider,\n Input,\n InputRef,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport {\n ColumnGroupType,\n ColumnType,\n FilterConfirmProps,\n} from 'antd/es/table/interface';\nimport { upperFirst } from 'es-toolkit/compat';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { Client } from '@rsdoctor/types';\nimport { CompareFn } from 'antd/lib/table/interface';\nimport { Color } from '../../../../constants';\nimport {\n beautifyModulePath,\n formatPercent,\n formatSize,\n} from '../../../../utils';\nimport { ViewChanges } from './changes';\nimport { FileUpdateTypeTag, getUpdateType } from './modules';\nimport {\n BundleDiffComponentCardProps,\n BundleDiffTableAssetsData,\n BundleDiffTableModulesData,\n} from './types';\nimport { UpdateType } from './constants';\nimport { formatDiffSize } from './utils';\nimport { Graph } from '@rsdoctor/utils/common';\n\nexport const ModuleHashPattern = /[a-fA-F0-9]{20,}/;\n\nexport const getSizeColumnPropsForModuleRow = (\n key: 'baseline' | 'current',\n sizeKey: 'parsedSize' | 'sourceSize',\n sortByChanged?: boolean,\n): ColumnType<BundleDiffTableModulesData> => {\n const sortByChangedFn: CompareFn<any> = (a, b) =>\n (a.current?.size[sizeKey] || 0) -\n (a.baseline?.size[sizeKey] || 0) -\n (b.current?.size[sizeKey] || 0) +\n (b.baseline?.size[sizeKey] || 0);\n\n const sorterFn: CompareFn<any> = sortByChanged\n ? (a, b) => sortByChangedFn(a, b)\n : (a, b) => (a[key]?.size[sizeKey] || 0) - (b[key]?.size[sizeKey] || 0);\n\n return {\n width: 200,\n sorter: (a, b) => sorterFn(a, b),\n render: (_v, r) => {\n if (!r[key]) return '-';\n const size = r[key]!.size[sizeKey];\n return (\n <Space>\n <Typography.Text>{formatSize(size)}</Typography.Text>\n {key === 'current'\n ? formatDiffSize(\n r.baseline?.size[sizeKey] || 0,\n size,\n (r.baseline?.size[sizeKey] || 0) > size\n ? Client.RsdoctorClientDiffState.Down\n : Client.RsdoctorClientDiffState.Up,\n )\n : null}\n </Space>\n );\n },\n };\n};\n\nexport const getTargetColumnPropsForModuleRow = (\n key: 'baseline' | 'current',\n bModulesCount: number,\n cModulesCount: number,\n): ColumnGroupType<BundleDiffTableModulesData> => {\n const [sortByChanged, setSortByChanged] = useState(false);\n\n const isB = key === 'baseline';\n return {\n title: () => {\n const count = isB ? bModulesCount : cModulesCount;\n const title = upperFirst(key);\n const diff = Graph.diffSize(bModulesCount, cModulesCount);\n return (\n <div>\n <Typography.Text>{title}</Typography.Text>\n <Divider type=\"vertical\" />\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n {title} modules is {count}\n </Typography.Text>\n {isB ? null : (\n <Typography.Text style={{ color: 'inherit' }}>\n Percent is {formatPercent(diff.percent)}\n </Typography.Text>\n )}\n </Space>\n }\n >\n <Space>\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400 }}\n >\n {count}\n </Typography.Text>\n <InfoCircleOutlined />\n </Space>\n </Tooltip>\n </div>\n );\n },\n children: [\n {\n title: 'Source Size',\n ...getSizeColumnPropsForModuleRow(key, 'sourceSize', sortByChanged),\n },\n {\n title: 'Parsed Size',\n defaultSortOrder: isB ? undefined : 'descend',\n ...getSizeColumnPropsForModuleRow(key, 'parsedSize', sortByChanged),\n },\n ],\n filterSearch: true,\n filters: [\n {\n text: 'Show Changed',\n value: UpdateType.NotChanged,\n },\n {\n text: 'Show All',\n value: 'All',\n },\n ],\n onFilter(v, r) {\n if (v === UpdateType.NotChanged) {\n setSortByChanged(true);\n } else {\n setSortByChanged(false);\n }\n return v === UpdateType.NotChanged ? getUpdateType(r) !== v : true;\n },\n };\n};\n\nexport const ModuleRowForAsset: React.FC<\n { data: BundleDiffTableAssetsData } & Pick<\n BundleDiffComponentCardProps,\n 'baseline' | 'current'\n >\n> = ({ data, baseline, current }) => {\n const { modules: bTotalModules } = baseline.moduleGraph;\n const { modules: cTotalModules } = current.moduleGraph;\n const { chunks: bToTalChunks } = baseline.chunkGraph;\n const { chunks: cToTalChunks } = current.chunkGraph;\n const bRoot = baseline.root;\n const cRoot = current.root;\n\n const [searchText, setSearchText] = useState('');\n const searchInput = useRef<InputRef>(null);\n\n const handleSearch = (\n selectedKeys: string[],\n confirm: (param?: FilterConfirmProps) => void,\n ) => {\n confirm();\n setSearchText(selectedKeys[0]);\n };\n\n const handleReset = (clearFilters: () => void) => {\n clearFilters();\n setSearchText('');\n };\n\n const isBaseline = '__is_baseline__' as const;\n\n const bModules = useMemo(\n () =>\n data.baseline\n ? Graph.getModulesByAsset(data.baseline, bToTalChunks, bTotalModules)\n .map((e) => ({\n ...e,\n [isBaseline]: true,\n }))\n .filter((cModule) => !cModule.concatenationModules?.length)\n : [],\n [data, baseline],\n );\n const cModules = useMemo(\n () =>\n data.current\n ? Graph.getModulesByAsset(data.current, cToTalChunks, cTotalModules)\n .map((e) => ({\n ...e,\n [isBaseline]: false,\n }))\n .filter((cModule) => !cModule.concatenationModules?.length)\n : [],\n [data, current],\n );\n\n const getPathInfo = (r: BundleDiffTableModulesData) =>\n beautifyModulePath(r.path, r.__is_baseline__ ? bRoot : cRoot);\n\n const dataSource: BundleDiffTableModulesData[] = useMemo(() => {\n const mods = [...bModules, ...cModules];\n const map = new Map<string, BundleDiffTableModulesData>();\n\n // group by module.path\n mods.forEach((mod) => {\n const modPath =\n mod.webpackId?.replace(ModuleHashPattern, '') ||\n mod.path?.replace(ModuleHashPattern, '');\n let t: BundleDiffTableModulesData = map.get(modPath)!;\n\n if (!t) {\n t = { path: modPath };\n }\n\n if (mod[isBaseline]) {\n t.baseline = mod;\n } else {\n t.current = mod;\n }\n map.set(modPath, t);\n });\n\n return [...map.values()];\n }, [bModules, cModules, searchText]);\n\n const { bModulesCount, cModulesCount, totalCount } = useMemo(() => {\n const fileNameFilter = (e: BundleDiffTableModulesData) =>\n getPathInfo(e).alias.indexOf(searchText) > -1;\n\n let b = dataSource.filter((e) => e.baseline);\n let c = dataSource.filter((e) => e.current);\n let totalCount = dataSource.length;\n\n if (searchText) {\n b = b.filter(fileNameFilter);\n c = c.filter(fileNameFilter);\n totalCount = dataSource.filter(fileNameFilter).length;\n }\n\n return {\n bModulesCount: b.length,\n cModulesCount: c.length,\n totalCount,\n };\n }, [dataSource, searchText]);\n\n return (\n <Table\n dataSource={dataSource}\n rowKey={(e) => e.path}\n size=\"small\"\n pagination={{\n size: 'small',\n }}\n bordered\n scroll={{ x: 1500 }}\n columns={[\n {\n fixed: 'left',\n title: () => {\n return (\n <div>\n <Typography.Text>\n Modules of {`\"${data.alias}\"`}\n </Typography.Text>\n <Divider type=\"vertical\" />\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n filtered modules: {totalCount}\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit' }}>\n total modules: {dataSource.length}\n </Typography.Text>\n </Space>\n }\n >\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {totalCount}/{dataSource.length}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n </div>\n );\n },\n filterDropdown({\n setSelectedKeys,\n selectedKeys,\n confirm,\n clearFilters,\n }) {\n return (\n <div\n style={{ padding: 8 }}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Input\n ref={searchInput}\n placeholder={`Search by file name`}\n value={selectedKeys[0]}\n onChange={(e) =>\n setSelectedKeys(e.target.value ? [e.target.value] : [])\n }\n onPressEnter={() =>\n handleSearch(selectedKeys as string[], confirm)\n }\n style={{ marginBottom: 8, display: 'block' }}\n />\n <Space>\n <Button\n type=\"primary\"\n onClick={() =>\n handleSearch(selectedKeys as string[], confirm)\n }\n icon={<SearchOutlined />}\n size=\"small\"\n style={{ width: 90 }}\n >\n Search\n </Button>\n <Button\n onClick={() => {\n clearFilters && handleReset(clearFilters);\n setSelectedKeys([]);\n handleSearch([], confirm);\n }}\n size=\"small\"\n style={{ width: 90 }}\n >\n Reset\n </Button>\n </Space>\n </div>\n );\n },\n filterSearch: true,\n filterIcon: (filtered) => (\n <Space>\n <Typography.Text\n type={searchText ? undefined : 'secondary'}\n style={{ fontWeight: 400 }}\n >\n {searchText || 'Search by file name'}\n </Typography.Text>\n <SearchOutlined\n style={{ color: filtered ? Color.Blue : undefined }}\n />\n </Space>\n ),\n onFilterDropdownOpenChange: (visible) => {\n if (visible) {\n setTimeout(() => searchInput.current?.focus(), 100);\n }\n },\n onFilter(v, r) {\n return getPathInfo(r).alias.indexOf(v as string) > -1;\n },\n render: (_v, r) => {\n const { alias, inNodeModules } = getPathInfo(r);\n return (\n <Space>\n <Tooltip title={r.path}>\n <Typography.Text copyable={{ text: r.path }}>\n {alias}\n </Typography.Text>\n </Tooltip>\n {inNodeModules ? <Tag color=\"warning\">node_modules</Tag> : null}\n <FileUpdateTypeTag type={getUpdateType(r)} />\n </Space>\n );\n },\n },\n getTargetColumnPropsForModuleRow(\n 'current',\n bModulesCount,\n cModulesCount,\n ),\n getTargetColumnPropsForModuleRow(\n 'baseline',\n bModulesCount,\n cModulesCount,\n ),\n {\n title: 'Actions',\n width: 200,\n render: (_v, r) => {\n return (\n <Space direction=\"vertical\" style={{ maxWidth: 170 }}>\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]?.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 </Space>\n );\n },\n },\n ]}\n />\n );\n};\n"],"names":["ModuleHashPattern","getSizeColumnPropsForModuleRow","key","sizeKey","sortByChanged","sortByChangedFn","a","b","sorterFn","_v","r","size","Space","Typography","formatSize","formatDiffSize","Client","getTargetColumnPropsForModuleRow","bModulesCount","cModulesCount","setSortByChanged","useState","isB","count","title","upperFirst","diff","Graph","Divider","Tooltip","formatPercent","InfoCircleOutlined","undefined","UpdateType","v","getUpdateType","ModuleRowForAsset","data","baseline","current","bTotalModules","cTotalModules","bToTalChunks","cToTalChunks","bRoot","cRoot","searchText","setSearchText","searchInput","useRef","handleSearch","selectedKeys","confirm","handleReset","clearFilters","isBaseline","bModules","useMemo","e","cModule","cModules","getPathInfo","beautifyModulePath","dataSource","mods","map","Map","mod","modPath","t","totalCount","fileNameFilter","c","Table","setSelectedKeys","Input","Button","SearchOutlined","filtered","Color","visible","setTimeout","alias","inNodeModules","Tag","FileUpdateTypeTag","ViewChanges"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/row.mjs","sources":["../../../../../src/pages/Resources/BundleDiff/DiffContainer/row.tsx"],"sourcesContent":["import { InfoCircleOutlined, SearchOutlined } from '@ant-design/icons';\nimport {\n Button,\n Divider,\n Input,\n InputRef,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport {\n ColumnGroupType,\n ColumnType,\n FilterConfirmProps,\n} from 'antd/es/table/interface';\nimport { upperFirst } from 'es-toolkit/compat';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { Client } from '@rsdoctor/types';\nimport { CompareFn } from 'antd/lib/table/interface';\nimport { Color } from '../../../../constants';\nimport {\n beautifyModulePath,\n formatPercent,\n formatSize,\n} from '../../../../utils';\nimport { ViewChanges } from './changes';\nimport { FileUpdateTypeTag, getUpdateType } from './modules';\nimport {\n BundleDiffComponentCardProps,\n BundleDiffTableAssetsData,\n BundleDiffTableModulesData,\n} from './types';\nimport { UpdateType } from './constants';\nimport { formatDiffSize } from './utils';\nimport { Graph } from '@rsdoctor/utils/common';\n\nexport const ModuleHashPattern = /[a-fA-F0-9]{20,}/;\n\nexport const getSizeColumnPropsForModuleRow = (\n key: 'baseline' | 'current',\n sizeKey: 'parsedSize' | 'sourceSize',\n sortByChanged?: boolean,\n): ColumnType<BundleDiffTableModulesData> => {\n const sortByChangedFn: CompareFn<any> = (a, b) =>\n (a.current?.size[sizeKey] || 0) -\n (a.baseline?.size[sizeKey] || 0) -\n (b.current?.size[sizeKey] || 0) +\n (b.baseline?.size[sizeKey] || 0);\n\n const sorterFn: CompareFn<any> = sortByChanged\n ? (a, b) => sortByChangedFn(a, b)\n : (a, b) => (a[key]?.size[sizeKey] || 0) - (b[key]?.size[sizeKey] || 0);\n\n return {\n width: 200,\n sorter: (a, b) => sorterFn(a, b),\n render: (_v, r) => {\n if (!r[key]) return '-';\n const size = r[key]!.size[sizeKey];\n return (\n <Space>\n <Typography.Text>{formatSize(size)}</Typography.Text>\n {key === 'current'\n ? formatDiffSize(\n r.baseline?.size[sizeKey] || 0,\n size,\n (r.baseline?.size[sizeKey] || 0) > size\n ? Client.RsdoctorClientDiffState.Down\n : Client.RsdoctorClientDiffState.Up,\n )\n : null}\n </Space>\n );\n },\n };\n};\n\nexport const getTargetColumnPropsForModuleRow = (\n key: 'baseline' | 'current',\n bModulesCount: number,\n cModulesCount: number,\n): ColumnGroupType<BundleDiffTableModulesData> => {\n const [sortByChanged, setSortByChanged] = useState(false);\n\n const isB = key === 'baseline';\n return {\n title: () => {\n const count = isB ? bModulesCount : cModulesCount;\n const title = upperFirst(key);\n const diff = Graph.diffSize(bModulesCount, cModulesCount);\n return (\n <div>\n <Typography.Text>{title}</Typography.Text>\n <Divider type=\"vertical\" />\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n {title} modules is {count}\n </Typography.Text>\n {isB ? null : (\n <Typography.Text style={{ color: 'inherit' }}>\n Percent is {formatPercent(diff.percent)}\n </Typography.Text>\n )}\n </Space>\n }\n >\n <Space>\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400 }}\n >\n {count}\n </Typography.Text>\n <InfoCircleOutlined />\n </Space>\n </Tooltip>\n </div>\n );\n },\n children: [\n {\n title: 'Source Size',\n ...getSizeColumnPropsForModuleRow(key, 'sourceSize', sortByChanged),\n },\n {\n title: 'Parsed Size',\n defaultSortOrder: isB ? undefined : 'descend',\n ...getSizeColumnPropsForModuleRow(key, 'parsedSize', sortByChanged),\n },\n ],\n filterSearch: true,\n filters: [\n {\n text: 'Show Changed',\n value: UpdateType.NotChanged,\n },\n {\n text: 'Show All',\n value: 'All',\n },\n ],\n onFilter(v, r) {\n if (v === UpdateType.NotChanged) {\n setSortByChanged(true);\n } else {\n setSortByChanged(false);\n }\n return v === UpdateType.NotChanged ? getUpdateType(r) !== v : true;\n },\n };\n};\n\nexport const ModuleRowForAsset: React.FC<\n { data: BundleDiffTableAssetsData } & Pick<\n BundleDiffComponentCardProps,\n 'baseline' | 'current'\n >\n> = ({ data, baseline, current }) => {\n const { modules: bTotalModules } = baseline.moduleGraph;\n const { modules: cTotalModules } = current.moduleGraph;\n const { chunks: bToTalChunks } = baseline.chunkGraph;\n const { chunks: cToTalChunks } = current.chunkGraph;\n const bRoot = baseline.root;\n const cRoot = current.root;\n\n const [searchText, setSearchText] = useState('');\n const searchInput = useRef<InputRef>(null);\n\n const handleSearch = (\n selectedKeys: string[],\n confirm: (param?: FilterConfirmProps) => void,\n ) => {\n confirm();\n setSearchText(selectedKeys[0]);\n };\n\n const handleReset = (clearFilters: () => void) => {\n clearFilters();\n setSearchText('');\n };\n\n const isBaseline = '__is_baseline__' as const;\n\n const bModules = useMemo(\n () =>\n data.baseline\n ? Graph.getModulesByAsset(data.baseline, bToTalChunks, bTotalModules)\n .map((e) => ({\n ...e,\n [isBaseline]: true,\n }))\n .filter((cModule) => !cModule.concatenationModules?.length)\n : [],\n [data, baseline],\n );\n const cModules = useMemo(\n () =>\n data.current\n ? Graph.getModulesByAsset(data.current, cToTalChunks, cTotalModules)\n .map((e) => ({\n ...e,\n [isBaseline]: false,\n }))\n .filter((cModule) => !cModule.concatenationModules?.length)\n : [],\n [data, current],\n );\n\n const getPathInfo = (r: BundleDiffTableModulesData) =>\n beautifyModulePath(r.path, r.__is_baseline__ ? bRoot : cRoot);\n\n const dataSource: BundleDiffTableModulesData[] = useMemo(() => {\n const mods = [...bModules, ...cModules];\n const map = new Map<string, BundleDiffTableModulesData>();\n\n // group by module.path\n mods.forEach((mod) => {\n const modPath =\n mod.webpackId?.replace(ModuleHashPattern, '') ||\n mod.path?.replace(ModuleHashPattern, '');\n let t: BundleDiffTableModulesData = map.get(modPath)!;\n\n if (!t) {\n t = { path: modPath };\n }\n\n if (mod[isBaseline]) {\n t.baseline = mod;\n } else {\n t.current = mod;\n }\n map.set(modPath, t);\n });\n\n return [...map.values()];\n }, [bModules, cModules, searchText]);\n\n const { bModulesCount, cModulesCount, totalCount } = useMemo(() => {\n const fileNameFilter = (e: BundleDiffTableModulesData) =>\n getPathInfo(e).alias.indexOf(searchText) > -1;\n\n let b = dataSource.filter((e) => e.baseline);\n let c = dataSource.filter((e) => e.current);\n let totalCount = dataSource.length;\n\n if (searchText) {\n b = b.filter(fileNameFilter);\n c = c.filter(fileNameFilter);\n totalCount = dataSource.filter(fileNameFilter).length;\n }\n\n return {\n bModulesCount: b.length,\n cModulesCount: c.length,\n totalCount,\n };\n }, [dataSource, searchText]);\n\n return (\n <Table\n dataSource={dataSource}\n rowKey={(e) => e.path}\n size=\"small\"\n pagination={{\n size: 'small',\n }}\n bordered\n scroll={{ x: 1500 }}\n columns={[\n {\n fixed: 'left',\n title: () => {\n return (\n <div>\n <Typography.Text>\n Modules of {`\"${data.alias}\"`}\n </Typography.Text>\n <Divider type=\"vertical\" />\n <Tooltip\n title={\n <Space direction=\"vertical\">\n <Typography.Text style={{ color: 'inherit' }}>\n filtered modules: {totalCount}\n </Typography.Text>\n <Typography.Text style={{ color: 'inherit' }}>\n total modules: {dataSource.length}\n </Typography.Text>\n </Space>\n }\n >\n <Typography.Text\n type=\"secondary\"\n style={{ fontSize: 10, fontWeight: 400, marginRight: 4 }}\n >\n {totalCount}/{dataSource.length}\n </Typography.Text>\n <InfoCircleOutlined />\n </Tooltip>\n </div>\n );\n },\n filterDropdown({\n setSelectedKeys,\n selectedKeys,\n confirm,\n clearFilters,\n }) {\n return (\n <div\n style={{ padding: 8 }}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Input\n ref={searchInput}\n placeholder={`Search by file name`}\n value={selectedKeys[0]}\n onChange={(e) =>\n setSelectedKeys(e.target.value ? [e.target.value] : [])\n }\n onPressEnter={() =>\n handleSearch(selectedKeys as string[], confirm)\n }\n style={{ marginBottom: 8, display: 'block' }}\n />\n <Space>\n <Button\n type=\"primary\"\n onClick={() =>\n handleSearch(selectedKeys as string[], confirm)\n }\n icon={<SearchOutlined />}\n size=\"small\"\n style={{ width: 90 }}\n >\n Search\n </Button>\n <Button\n onClick={() => {\n clearFilters && handleReset(clearFilters);\n setSelectedKeys([]);\n handleSearch([], confirm);\n }}\n size=\"small\"\n style={{ width: 90 }}\n >\n Reset\n </Button>\n </Space>\n </div>\n );\n },\n filterSearch: true,\n filterIcon: (filtered) => (\n <Space>\n <Typography.Text\n type={searchText ? undefined : 'secondary'}\n style={{ fontWeight: 400 }}\n >\n {searchText || 'Search by file name'}\n </Typography.Text>\n <SearchOutlined\n style={{ color: filtered ? Color.Blue : undefined }}\n />\n </Space>\n ),\n onFilterDropdownOpenChange: (visible) => {\n if (visible) {\n setTimeout(() => searchInput.current?.focus(), 100);\n }\n },\n onFilter(v, r) {\n return getPathInfo(r).alias.indexOf(v as string) > -1;\n },\n render: (_v, r) => {\n const { alias, inNodeModules } = getPathInfo(r);\n return (\n <Space>\n <Tooltip title={r.path}>\n <Typography.Text copyable={{ text: r.path }}>\n {alias}\n </Typography.Text>\n </Tooltip>\n {inNodeModules ? <Tag color=\"warning\">node_modules</Tag> : null}\n <FileUpdateTypeTag type={getUpdateType(r)} />\n </Space>\n );\n },\n },\n getTargetColumnPropsForModuleRow(\n 'current',\n bModulesCount,\n cModulesCount,\n ),\n getTargetColumnPropsForModuleRow(\n 'baseline',\n bModulesCount,\n cModulesCount,\n ),\n {\n title: 'Actions',\n width: 200,\n render: (_v, r) => {\n return (\n <Space direction=\"vertical\" style={{ maxWidth: 170 }}>\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]?.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 </Space>\n );\n },\n },\n ]}\n />\n );\n};\n"],"names":["ModuleHashPattern","getSizeColumnPropsForModuleRow","key","sizeKey","sortByChanged","sortByChangedFn","a","b","sorterFn","_v","r","size","Space","Typography","formatSize","formatDiffSize","Client","getTargetColumnPropsForModuleRow","bModulesCount","cModulesCount","setSortByChanged","useState","isB","count","title","upperFirst","diff","Graph","Divider","Tooltip","formatPercent","InfoCircleOutlined","undefined","UpdateType","v","getUpdateType","ModuleRowForAsset","data","baseline","current","bTotalModules","cTotalModules","bToTalChunks","cToTalChunks","bRoot","cRoot","searchText","setSearchText","searchInput","useRef","handleSearch","selectedKeys","confirm","handleReset","clearFilters","isBaseline","bModules","useMemo","e","cModule","cModules","getPathInfo","beautifyModulePath","dataSource","mods","map","Map","mod","modPath","t","totalCount","fileNameFilter","c","Table","setSelectedKeys","Input","Button","SearchOutlined","filtered","Color","visible","setTimeout","alias","inNodeModules","Tag","FileUpdateTypeTag","ViewChanges"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client, Manifest, SDK } from '@rsdoctor/types';
|
|
2
|
-
import { UpdateType } from './constants';
|
|
3
|
-
import { InferServerAPIBody } from '../../../../components/Manifest/api';
|
|
2
|
+
import { UpdateType } from './constants.js';
|
|
3
|
+
import { InferServerAPIBody } from '../../../../components/Manifest/api.js';
|
|
4
4
|
export type BundleDiffServerAPIProviderComponentCommonProps<T extends SDK.ServerAPI.API | SDK.ServerAPI.APIExtends> = {
|
|
5
5
|
manifests?: Manifest.RsdoctorManifest[];
|
|
6
6
|
api: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/utils.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/DiffContainer/utils.mjs","sources":["../../../../../src/pages/Resources/BundleDiff/DiffContainer/utils.tsx"],"sourcesContent":["import { Client } from '@rsdoctor/types';\nimport { Typography } from 'antd';\nimport { Color } from 'src/constants';\nimport { formatSize } from 'src/utils';\n\nexport const formatDiffSize = (\n bSize: number,\n cSize: number,\n state: Client.RsdoctorClientDiffState,\n propsStyle?: Record<string, string | number>,\n) => {\n return (\n <>\n {cSize - bSize === 0 ? (\n <></>\n ) : (\n <Typography.Text\n strong\n style={{\n color:\n state === Client.RsdoctorClientDiffState.Up\n ? Color.Red\n : Color.Green,\n ...propsStyle,\n }}\n >\n {state === Client.RsdoctorClientDiffState.Up ? '+' : '-'}\n {formatSize(Math.abs(cSize - bSize))}\n </Typography.Text>\n )}\n </>\n );\n};\n"],"names":["formatDiffSize","bSize","cSize","state","propsStyle","Typography","Client","Color","formatSize","Math"],"mappings":";;;;;AAKO,MAAMA,iBAAiB,CAC5BC,OACAC,OACAC,OACAC,aAEO,WAAP,GACE;kBACGF,QAAQD,UAAU,IAAI,WAAJ,GACjB,kCAEA,KAACI,WAAW,IAAI;YACd,QAAM;YACN,OAAO;gBACL,OACEF,UAAUG,OAAO,uBAAuB,CAAC,EAAE,GACvCC,MAAM,GAAG,GACTA,MAAM,KAAK;gBACjB,GAAGH,UAAU;YACf;;gBAECD,UAAUG,OAAO,uBAAuB,CAAC,EAAE,GAAG,MAAM;gBACpDE,WAAWC,KAAK,GAAG,CAACP,QAAQD"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { SDK } from '@rsdoctor/types';
|
|
2
|
-
import { BundleDiffServerAPIProviderComponentCommonProps } from '../DiffContainer/types';
|
|
2
|
+
import { BundleDiffServerAPIProviderComponentCommonProps } from '../DiffContainer/types.js';
|
|
3
3
|
export declare const DiffServerAPIProvider: <T extends SDK.ServerAPI.API | SDK.ServerAPI.APIExtends>(props: BundleDiffServerAPIProviderComponentCommonProps<T>) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs","sources":["../../../../../src/pages/Resources/BundleDiff/DiffServerAPIProvider/index.tsx"],"sourcesContent":["import { Client, SDK, Constants } from '@rsdoctor/types';\nimport { ServerAPIProvider } from 'src/components/Manifest';\nimport { fetchManifest, useUrlQuery } from 'src/utils';\nimport { Algorithm } from '@rsdoctor/utils/common';\nimport { BundleDiffServerAPIProviderComponentCommonProps } from '../DiffContainer/types';\n\nexport const DiffServerAPIProvider = <\n T extends SDK.ServerAPI.API | SDK.ServerAPI.APIExtends,\n>(\n props: BundleDiffServerAPIProviderComponentCommonProps<T>,\n): JSX.Element => {\n const { api, body, children, manifests } = props;\n const query = useUrlQuery();\n\n const windowData = (window as any)[Constants.WINDOW_RSDOCTOR_TAG];\n if (windowData?.baseline && windowData?.current) {\n const baseline = JSON.parse(Algorithm.decompressText(windowData.baseline));\n const current = JSON.parse(Algorithm.decompressText(windowData.current));\n return <>{children(baseline, current)}</>;\n }\n\n if (manifests?.length) {\n return <>{children(manifests[0].data as any, manifests[1].data as any)}</>;\n }\n\n const [baselineFile, currentFile] =\n query[Client.RsdoctorClientUrlQuery.BundleDiffFiles]?.split(',') || [];\n\n return (\n <ServerAPIProvider\n api={api}\n body={body}\n manifestLoader={\n baselineFile ? () => fetchManifest(baselineFile) : undefined\n }\n >\n {(baseline) => {\n return (\n <ServerAPIProvider\n api={api}\n body={body}\n manifestLoader={\n currentFile ? () => fetchManifest(currentFile) : undefined\n }\n >\n {(current) => {\n return children(baseline, current);\n }}\n </ServerAPIProvider>\n );\n }}\n </ServerAPIProvider>\n );\n};\n"],"names":["DiffServerAPIProvider","props","api","body","children","manifests","query","useUrlQuery","windowData","window","Constants","baseline","JSON","Algorithm","current","baselineFile","currentFile","Client","ServerAPIProvider","fetchManifest","undefined"],"mappings":";;;;;AAMO,MAAMA,wBAAwB,CAGnCC;IAEA,MAAM,EAAEC,GAAG,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGJ;IAC3C,MAAMK,QAAQC;IAEd,MAAMC,aAAcC,MAAc,CAACC,UAAU,mBAAmB,CAAC;IACjE,IAAIF,YAAY,YAAYA,YAAY,SAAS;QAC/C,MAAMG,WAAWC,KAAK,KAAK,CAACC,UAAU,cAAc,CAACL,WAAW,QAAQ;QACxE,MAAMM,UAAUF,KAAK,KAAK,CAACC,UAAU,cAAc,CAACL,WAAW,OAAO;QACtE,OAAO,WAAP,GAAO;sBAAGJ,SAASO,UAAUG;;IAC/B;IAEA,IAAIT,WAAW,QACb,OAAO,WAAP,GAAO;kBAAGD,SAASC,SAAS,CAAC,EAAE,CAAC,IAAI,EAASA,SAAS,CAAC,EAAE,CAAC,IAAI;;IAGhE,MAAM,CAACU,cAAcC,YAAY,GAC/BV,KAAK,CAACW,OAAO,sBAAsB,CAAC,eAAe,CAAC,EAAE,MAAM,QAAQ,EAAE;IAExE,OAAO,WAAP,GACE,IAACC,mBAAiBA;QAChB,KAAKhB;QACL,MAAMC;QACN,gBACEY,eAAe,IAAMI,cAAcJ,gBAAgBK;kBAGpD,CAACT,WACO,WAAP,GACE,IAACO,mBAAiBA;gBAChB,KAAKhB;gBACL,MAAMC;gBACN,gBACEa,cAAc,IAAMG,cAAcH,eAAeI;0BAGlD,CAACN,UACOV,SAASO,UAAUG;;;AAOxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/constants.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/constants.mjs","sources":["../../../../src/pages/Resources/BundleDiff/constants.tsx"],"sourcesContent":["import React from 'react';\nimport { Client, Manifest } from '@rsdoctor/types';\n\nexport const name = 'Bundle Diff';\n\nexport const route = Client.RsdoctorClientRoutes.BundleDiff;\n\nexport const BundleDiffContext = React.createContext({\n manifests: [] as Manifest.RsdoctorManifest[],\n setManifests(_manifests: Manifest.RsdoctorManifest[]): void {},\n loading: false,\n setLoading(_loading: boolean): void {},\n async withLoading(\n _func: (...args: unknown[]) => Promise<unknown> | unknown,\n ) {},\n});\n"],"names":["name","route","Client","BundleDiffContext","React","_manifests","_loading","_func"],"mappings":";;AAGO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,UAAU;AAEpD,MAAMC,oBAAoB,WAApBA,GAAoBC,MAAAA,aAAmB,CAAC;IACnD,WAAW,EAAE;IACb,cAAaC,UAAuC,GAAS;IAC7D,SAAS;IACT,YAAWC,QAAiB,GAAS;IACrC,MAAM,aACJC,KAAyD,GACxD;AACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/BundleDiff/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/Resources/BundleDiff/index.mjs","sources":["../../../../src/pages/Resources/BundleDiff/index.tsx"],"sourcesContent":["import React from 'react';\nimport { DiffContainer } from './DiffContainer';\n\nexport * from './constants';\nexport * from './DiffContainer';\n\nexport const Page: React.FC = () => {\n return <DiffContainer manifests={[]} />;\n};\n"],"names":["Page","DiffContainer"],"mappings":";;;;;AAMO,MAAMA,OAAiB,IACrB,WAAP,GAAO,IAACC,eAAaA;QAAC,WAAW,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/RuleIndex/constants.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/Resources/RuleIndex/constants.mjs","sources":["../../../../src/pages/Resources/RuleIndex/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'Rule Index';\n\nexport const route = Client.RsdoctorClientRoutes.RuleIndex;\n"],"names":["name","route","Client"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/Resources/RuleIndex/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/Resources/RuleIndex/index.mjs","sources":["../../../../src/pages/Resources/RuleIndex/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Rule } from '@rsdoctor/types';\nimport { Badge, Card, Space, Typography, Col, Row, Tag } from 'antd';\nimport ReactMarkdown from 'react-markdown';\nimport { Title } from '../../../components/Title';\nimport { Size } from '../../../constants';\nimport { useUrlQuery } from '../../../utils';\n\nexport const Page: React.FC = () => {\n const query = useUrlQuery();\n\n const defaultErrorCode =\n query[Rule.RsdoctorRuleClientConstant.UrlQueryForErrorCode] || '';\n\n const [ruleMessage, setRuleMessage] = useState<Rule.RuleMessage>(\n Rule.RuleErrorMap[defaultErrorCode as keyof typeof Rule.RuleErrorMap],\n );\n\n const dataSource = Object.values(Rule.RuleErrorMap)!;\n\n useEffect(() => {\n window.scrollTo({ top: 0 });\n }, []);\n\n return (\n <Row gutter={Size.BasePadding / 2}>\n <Col span={8}>\n <Card title={<Title text=\"list of the error codes.\" />} bordered>\n <Space direction=\"vertical\">\n {dataSource.map((e, i) => (\n <Space\n style={{\n marginTop: i === 0 ? 0 : Size.BasePadding / 2,\n cursor: 'pointer',\n }}\n onClick={() => setRuleMessage(e)}\n key={e.code}\n align=\"center\"\n >\n <Badge status=\"default\" />\n <Typography.Text code>\n <a>{e.code}</a>\n </Typography.Text>\n <Typography.Text\n style={{\n color:\n ruleMessage && ruleMessage.code === e.code\n ? '#1890ff'\n : undefined,\n }}\n >\n {e.title}\n </Typography.Text>\n </Space>\n ))}\n </Space>\n </Card>\n </Col>\n <Col span={16}>\n {ruleMessage ? (\n <Card\n title={\n <Row justify=\"space-between\">\n <Space>\n <Typography.Text code>{ruleMessage.code}</Typography.Text>\n <Typography.Text>{ruleMessage.title}</Typography.Text>\n </Space>\n <div>\n <Tag>{ruleMessage.category}</Tag>\n </div>\n </Row>\n }\n bodyStyle={{ paddingTop: 0 }}\n bordered\n >\n <Typography.Paragraph>\n {ruleMessage.type === 'markdown' ? (\n // TODO: ReactMarkdown will increase the bundle size by 100 KB. Need to optimize with another component or solution.\n <ReactMarkdown>{ruleMessage.description}</ReactMarkdown>\n ) : (\n <Typography.Text>{ruleMessage.description}</Typography.Text>\n )}\n </Typography.Paragraph>\n </Card>\n ) : (\n <Card\n title={\n 'This page lists all the error codes emitted by the Rsdoctor.'\n }\n bordered\n >\n <Typography.Text>\n click the error code in left bar to show more details.\n </Typography.Text>\n </Card>\n )}\n </Col>\n </Row>\n );\n};\n\nexport * from './constants';\n"],"names":["Page","query","useUrlQuery","defaultErrorCode","Rule","ruleMessage","setRuleMessage","useState","dataSource","Object","useEffect","window","Row","Size","Col","Card","Title","Space","e","i","Badge","Typography","undefined","Tag","ReactMarkdown"],"mappings":";;;;;;;;;AAQO,MAAMA,OAAiB;IAC5B,MAAMC,QAAQC;IAEd,MAAMC,mBACJF,KAAK,CAACG,KAAK,0BAA0B,CAAC,oBAAoB,CAAC,IAAI;IAEjE,MAAM,CAACC,aAAaC,eAAe,GAAGC,SACpCH,KAAK,YAAY,CAACD,iBAAmD;IAGvE,MAAMK,aAAaC,OAAO,MAAM,CAACL,KAAK,YAAY;IAElDM,UAAU;QACRC,OAAO,QAAQ,CAAC;YAAE,KAAK;QAAE;IAC3B,GAAG,EAAE;IAEL,OAAO,WAAP,GACE,KAACC,KAAGA;QAAC,QAAQC,KAAK,WAAW,GAAG;;0BAC9B,IAACC,KAAGA;gBAAC,MAAM;0BACT,kBAACC,MAAIA;oBAAC,qBAAO,IAACC,OAAKA;wBAAC,MAAK;;oBAA+B,UAAQ;8BAC9D,kBAACC,OAAKA;wBAAC,WAAU;kCACdT,WAAW,GAAG,CAAC,CAACU,GAAGC,IAAAA,WAAAA,GAClB,KAACF,OAAKA;gCACJ,OAAO;oCACL,WAAWE,AAAM,MAANA,IAAU,IAAIN,KAAK,WAAW,GAAG;oCAC5C,QAAQ;gCACV;gCACA,SAAS,IAAMP,eAAeY;gCAE9B,OAAM;;kDAEN,IAACE,OAAKA;wCAAC,QAAO;;kDACd,IAACC,WAAW,IAAI;wCAAC,MAAI;kDACnB,kBAAC;sDAAGH,EAAE,IAAI;;;kDAEZ,IAACG,WAAW,IAAI;wCACd,OAAO;4CACL,OACEhB,eAAeA,YAAY,IAAI,KAAKa,EAAE,IAAI,GACtC,YACAI;wCACR;kDAECJ,EAAE,KAAK;;;+BAfLA,EAAE,IAAI;;;;0BAsBrB,IAACJ,KAAGA;gBAAC,MAAM;0BACRT,cAAc,WAAdA,GACC,IAACU,MAAIA;oBACH,qBACE,KAACH,KAAGA;wBAAC,SAAQ;;0CACX,KAACK,OAAKA;;kDACJ,IAACI,WAAW,IAAI;wCAAC,MAAI;kDAAEhB,YAAY,IAAI;;kDACvC,IAACgB,WAAW,IAAI;kDAAEhB,YAAY,KAAK;;;;0CAErC,IAAC;0CACC,kBAACkB,KAAGA;8CAAElB,YAAY,QAAQ;;;;;oBAIhC,WAAW;wBAAE,YAAY;oBAAE;oBAC3B,UAAQ;8BAER,kBAACgB,WAAW,SAAS;kCAClBhB,AAAqB,eAArBA,YAAY,IAAI,G,cAEf,IAACmB,gBAAaA;sCAAEnB,YAAY,WAAW;2CAEvC,IAACgB,WAAW,IAAI;sCAAEhB,YAAY,WAAW;;;mCAK/C,IAACU,MAAIA;oBACH,OACE;oBAEF,UAAQ;8BAER,kBAACM,WAAW,IAAI;kCAAC;;;;;;AAQ7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/TreeShaking/constants.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/TreeShaking/constants.mjs","sources":["../../../src/pages/TreeShaking/constants.ts"],"sourcesContent":["import { Client } from '@rsdoctor/types';\n\nexport const name = 'TreeShaking';\n\nexport const route = Client.RsdoctorClientRoutes.TreeShaking;\n"],"names":["name","route","Client"],"mappings":";AAEO,MAAMA,iBAAO;AAEb,MAAMC,QAAQC,OAAO,oBAAoB,CAAC,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/TreeShaking/editor.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/TreeShaking/editor.mjs","sources":["../../../src/pages/TreeShaking/editor.tsx"],"sourcesContent":["import { InfoCircleOutlined, LoadingOutlined } from '@ant-design/icons';\nimport Editor, { OnMount } from '@monaco-editor/react';\nimport { SDK } from '@rsdoctor/types';\nimport { Card, Space, Tooltip, Typography } from 'antd';\nimport type { editor, Range as RangeClass } from 'monaco-editor';\nimport path from 'path-browserify';\nimport { useEffect, useRef, useState } from 'react';\nimport {\n defineMonacoOptions,\n getFilePathFormat,\n getSelectionRange,\n} from 'src/components/base/CodeViewer/utils';\nimport { parseOpenTag } from './open-tag';\nimport { Range } from './range';\nimport { SetEditorStatus } from './types';\nimport { getHoverMessageInModule } from './utils';\n\nexport interface CodeEditorProps {\n module: SDK.ModuleInstance;\n moduleGraph: SDK.ModuleGraphInstance;\n ranges: SDK.SourceRange[];\n setEditorData: SetEditorStatus;\n source: SDK.ModuleSource;\n toLine?: number;\n}\n\nconst defaultEditOption = defineMonacoOptions();\n\nexport function CodeEditor(props: CodeEditorProps) {\n const { module, moduleGraph, ranges, toLine, setEditorData, source } = props;\n const editorRef = useRef<editor.IStandaloneCodeEditor>();\n const oldRanges = useRef<string[]>([]);\n const oldHovers = useRef<string[]>([]);\n const oldToLine = useRef<number>();\n const changeModule = useRef(false);\n const [content, setContent] = useState('');\n // const [isDynamic, setIsDynamic] = useState(false);\n // const [exports, setExports] = useState<SDK.ExportData[]>([]);\n\n useEffect(() => {\n const { isPreferSource } = module;\n changeModule.current = true;\n setContent(\n source.source || isPreferSource ? source.source : source.transformed,\n );\n setTimeout(() => {\n oldHovers.current =\n editorRef.current\n ?.getModel()\n ?.deltaDecorations(\n oldHovers.current,\n getHoverMessageInModule(module, moduleGraph),\n ) ?? [];\n }, 200);\n }, [module, source]);\n\n useEffect(() => {\n function setRangeAndLine() {\n const model = editorRef.current?.getModel();\n\n if (!model) {\n return;\n }\n\n oldRanges.current = model.deltaDecorations(\n oldRanges.current,\n ranges.map((arr) => {\n return {\n range: getSelectionRange(\n arr,\n Range as unknown as typeof RangeClass,\n ),\n options: {\n stickiness: 1,\n inlineClassName: 'tree-shaking-statement-side-effect',\n isWholeLine: false,\n showIfCollapsed: true,\n },\n } as unknown as editor.IModelDecoration;\n }),\n );\n\n if (\n editorRef.current &&\n typeof toLine === 'number' &&\n oldToLine.current !== toLine\n ) {\n oldToLine.current = toLine;\n editorRef.current.revealLine(toLine, 0);\n }\n }\n\n // 模块变更时,高亮和滚动需要等待 300ms,确保在文本变更之后\n if (changeModule) {\n setTimeout(setRangeAndLine, 300);\n } else {\n setRangeAndLine();\n }\n\n changeModule.current = false;\n }, [ranges, toLine]);\n\n useEffect(() => {\n const openEditor = (event: MouseEvent) => {\n const query = parseOpenTag(event.target as HTMLElement);\n\n if (query) {\n const module = moduleGraph.getModuleById(query.module);\n\n if (module) {\n setEditorData(module, [query.range], query.range.start.line);\n }\n }\n };\n\n document.body.addEventListener('click', openEditor);\n\n return () => {\n document.body.removeEventListener('click', openEditor);\n };\n }, []);\n\n if (!module) {\n return <div>请选择要查看的模块</div>;\n }\n\n const handleEditorDidMount: OnMount = (editor) => {\n editorRef.current = editor;\n };\n\n return (\n <Card\n title={\n <Tooltip title={module.path}>\n <Space>\n <Typography.Text>{path.basename(module.path)}</Typography.Text>\n <InfoCircleOutlined />\n </Space>\n </Tooltip>\n }\n className=\"tree-shaking-editor\"\n >\n {/* TODO: change to CodeViewer */}\n <Editor\n theme=\"vs-dark\"\n language={getFilePathFormat(module.path)}\n value={content}\n loading={<LoadingOutlined style={{ fontSize: 30 }} />}\n options={defaultEditOption}\n onMount={handleEditorDidMount}\n />\n </Card>\n );\n}\n"],"names":["defaultEditOption","defineMonacoOptions","CodeEditor","props","module","moduleGraph","ranges","toLine","setEditorData","source","editorRef","useRef","oldRanges","oldHovers","oldToLine","changeModule","content","setContent","useState","useEffect","isPreferSource","setTimeout","getHoverMessageInModule","setRangeAndLine","model","arr","getSelectionRange","Range","openEditor","event","query","parseOpenTag","document","handleEditorDidMount","editor","Card","Tooltip","Space","Typography","path","InfoCircleOutlined","Editor","getFilePathFormat","LoadingOutlined"],"mappings":";;;;;;;;;;AA0BA,MAAMA,oBAAoBC;AAEnB,SAASC,WAAWC,KAAsB;IAC/C,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,MAAM,EAAEC,MAAM,EAAEC,aAAa,EAAEC,MAAM,EAAE,GAAGN;IACvE,MAAMO,YAAYC;IAClB,MAAMC,YAAYD,OAAiB,EAAE;IACrC,MAAME,YAAYF,OAAiB,EAAE;IACrC,MAAMG,YAAYH;IAClB,MAAMI,eAAeJ,OAAO;IAC5B,MAAM,CAACK,SAASC,WAAW,GAAGC,SAAS;IAIvCC,UAAU;QACR,MAAM,EAAEC,cAAc,EAAE,GAAGhB;QAC3BW,aAAa,OAAO,GAAG;QACvBE,WACER,OAAO,MAAM,IAAIW,iBAAiBX,OAAO,MAAM,GAAGA,OAAO,WAAW;QAEtEY,WAAW;YACTR,UAAU,OAAO,GACfH,UAAU,OAAO,EACb,YACA,iBACAG,UAAU,OAAO,EACjBS,wBAAwBlB,QAAQC,iBAC7B,EAAE;QACb,GAAG;IACL,GAAG;QAACD;QAAQK;KAAO;IAEnBU,UAAU;QACR,SAASI;YACP,MAAMC,QAAQd,UAAU,OAAO,EAAE;YAEjC,IAAI,CAACc,OACH;YAGFZ,UAAU,OAAO,GAAGY,MAAM,gBAAgB,CACxCZ,UAAU,OAAO,EACjBN,OAAO,GAAG,CAAC,CAACmB,MACH;oBACL,OAAOC,kBACLD,KACAE;oBAEF,SAAS;wBACP,YAAY;wBACZ,iBAAiB;wBACjB,aAAa;wBACb,iBAAiB;oBACnB;gBACF;YAIJ,IACEjB,UAAU,OAAO,IACjB,AAAkB,YAAlB,OAAOH,UACPO,UAAU,OAAO,KAAKP,QACtB;gBACAO,UAAU,OAAO,GAAGP;gBACpBG,UAAU,OAAO,CAAC,UAAU,CAACH,QAAQ;YACvC;QACF;QAGA,IAAIQ,cACFM,WAAWE,iBAAiB;aAE5BA;QAGFR,aAAa,OAAO,GAAG;IACzB,GAAG;QAACT;QAAQC;KAAO;IAEnBY,UAAU;QACR,MAAMS,aAAa,CAACC;YAClB,MAAMC,QAAQC,aAAaF,MAAM,MAAM;YAEvC,IAAIC,OAAO;gBACT,MAAM1B,SAASC,YAAY,aAAa,CAACyB,MAAM,MAAM;gBAErD,IAAI1B,QACFI,cAAcJ,QAAQ;oBAAC0B,MAAM,KAAK;iBAAC,EAAEA,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI;YAE/D;QACF;QAEAE,SAAS,IAAI,CAAC,gBAAgB,CAAC,SAASJ;QAExC,OAAO;YACLI,SAAS,IAAI,CAAC,mBAAmB,CAAC,SAASJ;QAC7C;IACF,GAAG,EAAE;IAEL,IAAI,CAACxB,QACH,OAAO,WAAP,GAAO,IAAC;kBAAI;;IAGd,MAAM6B,uBAAgC,CAACC;QACrCxB,UAAU,OAAO,GAAGwB;IACtB;IAEA,OAAO,WAAP,GACE,IAACC,MAAIA;QACH,qBACE,IAACC,SAAOA;YAAC,OAAOhC,OAAO,IAAI;sBACzB,mBAACiC,OAAKA;;kCACJ,IAACC,WAAW,IAAI;kCAAEC,gBAAAA,QAAa,CAACnC,OAAO,IAAI;;kCAC3C,IAACoC,oBAAkBA,CAAAA;;;;QAIzB,WAAU;kBAGV,kBAACC,OAAMA;YACL,OAAM;YACN,UAAUC,kBAAkBtC,OAAO,IAAI;YACvC,OAAOY;YACP,uBAAS,IAAC2B,iBAAeA;gBAAC,OAAO;oBAAE,UAAU;gBAAG;;YAChD,SAAS3C;YACT,SAASiC;;;AAIjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/TreeShaking/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/TreeShaking/index.mjs","sources":["../../../src/pages/TreeShaking/index.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { Card, Col, Row, Radio } from 'antd';\nimport { Lodash } from '@rsdoctor/utils/common';\nimport { FileSearchOutlined } from '@ant-design/icons';\nimport { SDK } from '@rsdoctor/types';\nimport path from 'path-browserify';\nimport {\n ConnectManifestData,\n ServerAPIProvider,\n} from 'src/components/Manifest';\nimport { Size } from '../../constants';\nimport { FileTree } from '../../components/FileTree';\nimport { KeywordInput } from '../../components/Form/keyword';\nimport { getTreeFilesDefaultExpandedKeys, useFileStructures } from './utils';\nimport {\n fetchManifest,\n useModuleGraphInstanceByModuleGraph,\n} from '../../utils';\nimport { CodeEditor } from './editor';\nimport { Space } from './space';\nimport { TreeShakingTable } from './table';\nimport type { TableKind, SetEditorStatus } from './types';\n\nimport './index.sass';\nexport * from './constants';\n\nconst Component: React.FC<{ data: SDK.ModuleGraphData; cwd: string }> = ({\n data,\n cwd,\n}) => {\n const moduleGraph = useModuleGraphInstanceByModuleGraph(data);\n\n if (moduleGraph.size() === 0) {\n return <Space />;\n }\n\n const [searchInput, setSearchInput] = useState('');\n const [toLine, setToLine] = useState(1);\n const [ranges, setRanges] = useState<SDK.SourceRange[]>([]);\n const [tableKind, setTableKind] = useState<TableKind>('side-effect');\n const filteredModules = useMemo(\n () =>\n moduleGraph\n .getModules()\n .filter(\n (item) =>\n item.kind === SDK.ModuleKind.Normal &&\n path.basename(item.path).includes(searchInput),\n ),\n [searchInput],\n );\n\n const entry = useMemo(\n () => filteredModules.find((item) => item.isEntry)!,\n [],\n );\n const [selectedModule, setSelectedModule] = useState(\n entry || (filteredModules?.length && filteredModules?.[0]),\n );\n const files = useFileStructures(\n filteredModules,\n moduleGraph,\n searchInput,\n selectedModule,\n (file) => {\n setEditorData(filteredModules.find((item) => item.path === file)!, []);\n },\n cwd,\n );\n const setEditorData: SetEditorStatus = (module, ranges, line) => {\n setSelectedModule(module);\n setRanges(ranges.slice());\n\n if (Lodash.isNumber(line)) {\n setToLine(line);\n }\n };\n\n return (\n <Card\n title=\"Tree Shaking Analysis\"\n bodyStyle={{ paddingTop: 0 }}\n className=\"tree-shaking-page\"\n >\n <Row\n justify=\"space-between\"\n align=\"middle\"\n style={{ marginBottom: Size.BasePadding, marginTop: Size.BasePadding }}\n >\n <KeywordInput\n icon={<FileSearchOutlined />}\n width={400}\n label=\"FileName\"\n placeholder=\"search filename by keyword\"\n style={{ width: 'auto' }}\n onChange={(e) => setSearchInput(e)}\n />\n <Radio.Group\n value={tableKind}\n onChange={({ target }) => setTableKind(target.value)}\n >\n <Radio.Button value=\"side-effect\">SideEffects</Radio.Button>\n <Radio.Button value=\"export\">Export Variables</Radio.Button>\n </Radio.Group>\n </Row>\n <Row\n justify=\"space-between\"\n align=\"top\"\n wrap={false}\n gutter={[Size.BasePadding, Size.BasePadding]}\n >\n <Col span={7}>\n <Card\n title={`Total Files: ${filteredModules.length}`}\n className=\"tree-shaking-files-box\"\n >\n <FileTree\n style={{ height: '80%' }}\n className=\"tree-shaking-files\"\n selectedKeys={selectedModule ? [selectedModule.path] : []}\n defaultExpandedKeys={getTreeFilesDefaultExpandedKeys(files)}\n treeData={files}\n expandAction=\"click\"\n />\n </Card>\n </Col>\n <Col span={9}>\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetModuleCodeByModuleId}\n body={{ moduleId: selectedModule.id }}\n >\n {(source) => {\n return (\n <CodeEditor\n module={selectedModule}\n moduleGraph={moduleGraph}\n ranges={ranges}\n toLine={toLine}\n setEditorData={setEditorData}\n source={source}\n />\n );\n }}\n </ServerAPIProvider>\n </Col>\n <Col flex={1}>\n <TreeShakingTable\n kind={tableKind}\n setEditorData={setEditorData}\n module={selectedModule}\n moduleGraph={moduleGraph}\n />\n </Col>\n </Row>\n </Card>\n );\n};\n\nexport const TreeShakingPage = ConnectManifestData(\n fetchManifest,\n [\n ['moduleGraph', 'data'],\n ['root', 'cwd'],\n ],\n Component,\n);\n"],"names":["Component","data","cwd","moduleGraph","useModuleGraphInstanceByModuleGraph","Space","searchInput","setSearchInput","useState","toLine","setToLine","ranges","setRanges","tableKind","setTableKind","filteredModules","useMemo","item","SDK","path","entry","selectedModule","setSelectedModule","files","useFileStructures","file","setEditorData","module","line","Lodash","Card","Row","Size","KeywordInput","FileSearchOutlined","e","Radio","target","Col","FileTree","getTreeFilesDefaultExpandedKeys","ServerAPIProvider","source","CodeEditor","TreeShakingTable","TreeShakingPage","ConnectManifestData","fetchManifest"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/TreeShaking/open-tag.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/TreeShaking/open-tag.mjs","sources":["../../../src/pages/TreeShaking/open-tag.ts"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\n\nexport enum AttributeKey {\n Module = 'data-module',\n Range = 'data-range',\n}\n\nexport interface OpenTagData {\n module: number;\n range: SDK.SourceRange;\n}\n\nexport function getOpenTagText(\n module: number,\n range: SDK.SourceRange,\n text: string,\n) {\n return `<a data-href=\"${AttributeKey.Module}=${module}&${\n AttributeKey.Range\n }=${encodeURIComponent(JSON.stringify(range))}\">${text}</a>`;\n}\n\nexport function parseOpenTag(dom: HTMLElement): OpenTagData | undefined {\n if (dom.tagName.toLocaleLowerCase() !== 'a') {\n return;\n }\n\n const hrefString = dom.getAttribute('data-href') ?? '';\n const result: OpenTagData = {\n module: -1,\n range: {\n start: {\n line: 1,\n column: 0,\n },\n end: {\n line: 1,\n column: 0,\n },\n },\n };\n\n for (const item of hrefString.split('&')) {\n const [key, value] = item.split('=');\n\n if (key === AttributeKey.Module) {\n result.module = Number.parseInt(value, 10);\n continue;\n }\n\n if (key === AttributeKey.Range) {\n result.range = JSON.parse(decodeURIComponent(value));\n }\n }\n\n return result;\n}\n"],"names":["AttributeKey","getOpenTagText","module","range","text","encodeURIComponent","JSON","parseOpenTag","dom","hrefString","result","item","key","value","Number","decodeURIComponent"],"mappings":"AAEO,IAAKA,wBAAYA,WAAAA,GAAAA,SAAZA,YAAY;;;WAAZA;;AAUL,SAASC,eACdC,MAAc,EACdC,KAAsB,EACtBC,IAAY;IAEZ,OAAO,6BAAwCF,qBAE3CG,mBAAmBC,KAAK,SAAS,CAACH,YAAYC,UAAU;AAC9D;AAEO,SAASG,aAAaC,GAAgB;IAC3C,IAAIA,AAAoC,QAApCA,IAAI,OAAO,CAAC,iBAAiB,IAC/B;IAGF,MAAMC,aAAaD,IAAI,YAAY,CAAC,gBAAgB;IACpD,MAAME,SAAsB;QAC1B,QAAQ;QACR,OAAO;YACL,OAAO;gBACL,MAAM;gBACN,QAAQ;YACV;YACA,KAAK;gBACH,MAAM;gBACN,QAAQ;YACV;QACF;IACF;IAEA,KAAK,MAAMC,QAAQF,WAAW,KAAK,CAAC,KAAM;QACxC,MAAM,CAACG,KAAKC,MAAM,GAAGF,KAAK,KAAK,CAAC;QAEhC,IAAIC,AAAQ,kBAARA,KAA6B;YAC/BF,OAAO,MAAM,GAAGI,OAAO,QAAQ,CAACD,OAAO;YACvC;QACF;QAEA,IAAID,AAAQ,iBAARA,KACFF,OAAO,KAAK,GAAGJ,KAAK,KAAK,CAACS,mBAAmBF;IAEjD;IAEA,OAAOH;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/TreeShaking/range.mjs","sources":["webpack://@rsdoctor/components/./src/pages/TreeShaking/range.ts"],"sourcesContent":["/**\n * The following is modified based on source found in\n * https://github.com/microsoft/monaco-editor\n *\n * MIT Licensed\n * Copyright (c) 2016 - present Microsoft Corporation\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n */\n\nexport class Range {\n public startLineNumber: number;\n public startColumn: number;\n public endLineNumber: number;\n public endColumn: number;\n\n constructor(\n startLineNumber: number,\n startColumn: number,\n endLineNumber: number,\n endColumn: number,\n ) {\n if (\n startLineNumber > endLineNumber ||\n (startLineNumber === endLineNumber && startColumn > endColumn)\n ) {\n this.startLineNumber = endLineNumber;\n this.startColumn = endColumn;\n this.endLineNumber = startLineNumber;\n this.endColumn = startColumn;\n } else {\n this.startLineNumber = startLineNumber;\n this.startColumn = startColumn;\n this.endLineNumber = endLineNumber;\n this.endColumn = endColumn;\n }\n }\n /**\n * Test if this range is empty.\n */\n isEmpty() {\n return Range.isEmpty(this);\n }\n /**\n * Test if `range` is empty.\n */\n static isEmpty(range: Range) {\n return (\n range.startLineNumber === range.endLineNumber &&\n range.startColumn === range.endColumn\n );\n }\n /**\n * Test if position is in this range. If the position is at the edges, will return true.\n */\n containsPosition(position: any) {\n return Range.containsPosition(this, position);\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return true.\n */\n static containsPosition(\n range: Range,\n position: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (\n position.lineNumber < range.startLineNumber ||\n position.lineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n position.lineNumber === range.startLineNumber &&\n position.column < range.startColumn\n ) {\n return false;\n }\n if (\n position.lineNumber === range.endLineNumber &&\n position.column > range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return false.\n * @internal\n */\n static strictContainsPosition(\n range: Range,\n position: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (\n position.lineNumber < range.startLineNumber ||\n position.lineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n position.lineNumber === range.startLineNumber &&\n position.column <= range.startColumn\n ) {\n return false;\n }\n if (\n position.lineNumber === range.endLineNumber &&\n position.column >= range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * Test if range is in this range. If the range is equal to this range, will return true.\n */\n containsRange(range: Range) {\n return Range.containsRange(this, range);\n }\n /**\n * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n */\n static containsRange(\n range: Range,\n otherRange: {\n startLineNumber: number;\n endLineNumber: number;\n startColumn: number;\n endColumn: number;\n },\n ) {\n if (\n otherRange.startLineNumber < range.startLineNumber ||\n otherRange.endLineNumber < range.startLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber > range.endLineNumber ||\n otherRange.endLineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber === range.startLineNumber &&\n otherRange.startColumn < range.startColumn\n ) {\n return false;\n }\n if (\n otherRange.endLineNumber === range.endLineNumber &&\n otherRange.endColumn > range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n */\n strictContainsRange(range: Range) {\n return Range.strictContainsRange(this, range);\n }\n /**\n * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n */\n static strictContainsRange(\n range: Range,\n otherRange: {\n startLineNumber: number;\n endLineNumber: number;\n startColumn: number;\n endColumn: number;\n },\n ) {\n if (\n otherRange.startLineNumber < range.startLineNumber ||\n otherRange.endLineNumber < range.startLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber > range.endLineNumber ||\n otherRange.endLineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber === range.startLineNumber &&\n otherRange.startColumn <= range.startColumn\n ) {\n return false;\n }\n if (\n otherRange.endLineNumber === range.endLineNumber &&\n otherRange.endColumn >= range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n plusRange(range: Range) {\n return Range.plusRange(this, range);\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n static plusRange(a: Range, b: Range) {\n let startLineNumber;\n let startColumn;\n let endLineNumber;\n let endColumn;\n if (b.startLineNumber < a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = b.startColumn;\n } else if (b.startLineNumber === a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = Math.min(b.startColumn, a.startColumn);\n } else {\n startLineNumber = a.startLineNumber;\n startColumn = a.startColumn;\n }\n if (b.endLineNumber > a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = b.endColumn;\n } else if (b.endLineNumber === a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = Math.max(b.endColumn, a.endColumn);\n } else {\n endLineNumber = a.endLineNumber;\n endColumn = a.endColumn;\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n /**\n * A intersection of the two ranges.\n */\n intersectRanges(range: Range) {\n return Range.intersectRanges(this, range);\n }\n /**\n * A intersection of the two ranges.\n */\n static intersectRanges(a: Range, b: Range) {\n let resultStartLineNumber = a.startLineNumber;\n let resultStartColumn = a.startColumn;\n let resultEndLineNumber = a.endLineNumber;\n let resultEndColumn = a.endColumn;\n const otherStartLineNumber = b.startLineNumber;\n const otherStartColumn = b.startColumn;\n const otherEndLineNumber = b.endLineNumber;\n const otherEndColumn = b.endColumn;\n if (resultStartLineNumber < otherStartLineNumber) {\n resultStartLineNumber = otherStartLineNumber;\n resultStartColumn = otherStartColumn;\n } else if (resultStartLineNumber === otherStartLineNumber) {\n resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\n }\n if (resultEndLineNumber > otherEndLineNumber) {\n resultEndLineNumber = otherEndLineNumber;\n resultEndColumn = otherEndColumn;\n } else if (resultEndLineNumber === otherEndLineNumber) {\n resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\n }\n // Check if selection is now empty\n if (resultStartLineNumber > resultEndLineNumber) {\n return null;\n }\n if (\n resultStartLineNumber === resultEndLineNumber &&\n resultStartColumn > resultEndColumn\n ) {\n return null;\n }\n return new Range(\n resultStartLineNumber,\n resultStartColumn,\n resultEndLineNumber,\n resultEndColumn,\n );\n }\n /**\n * Test if this range equals other.\n */\n equalsRange(other: Range) {\n return Range.equalsRange(this, other);\n }\n /**\n * Test if range `a` equals `b`.\n */\n static equalsRange(a: Range, b: Range) {\n if (!a && !b) {\n return true;\n }\n return (\n !!a &&\n !!b &&\n a.startLineNumber === b.startLineNumber &&\n a.startColumn === b.startColumn &&\n a.endLineNumber === b.endLineNumber &&\n a.endColumn === b.endColumn\n );\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n getEndPosition() {\n return Range.getEndPosition(this);\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n static getEndPosition(range: Range) {\n return new Position(range.endLineNumber, range.endColumn);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n getStartPosition() {\n return Range.getStartPosition(this);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n static getStartPosition(range: Range) {\n return new Position(range.startLineNumber, range.startColumn);\n }\n /**\n * Transform to a user presentable string representation.\n */\n toString() {\n return `[${this.startLineNumber},${this.startColumn} -> ${this.endLineNumber},${this.endColumn}]`;\n }\n /**\n * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n */\n setEndPosition(endLineNumber: number, endColumn: number) {\n return new Range(\n this.startLineNumber,\n this.startColumn,\n endLineNumber,\n endColumn,\n );\n }\n /**\n * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n */\n setStartPosition(startLineNumber: number, startColumn: number) {\n return new Range(\n startLineNumber,\n startColumn,\n this.endLineNumber,\n this.endColumn,\n );\n }\n /**\n * Create a new empty range using this range's start position.\n */\n collapseToStart() {\n return Range.collapseToStart(this);\n }\n /**\n * Create a new empty range using this range's start position.\n */\n static collapseToStart(range: Range) {\n return new Range(\n range.startLineNumber,\n range.startColumn,\n range.startLineNumber,\n range.startColumn,\n );\n }\n /**\n * Create a new empty range using this range's end position.\n */\n collapseToEnd() {\n return Range.collapseToEnd(this);\n }\n /**\n * Create a new empty range using this range's end position.\n */\n static collapseToEnd(range: Range) {\n return new Range(\n range.endLineNumber,\n range.endColumn,\n range.endLineNumber,\n range.endColumn,\n );\n }\n /**\n * Moves the range by the given amount of lines.\n */\n delta(lineCount: number) {\n return new Range(\n this.startLineNumber + lineCount,\n this.startColumn,\n this.endLineNumber + lineCount,\n this.endColumn,\n );\n }\n // ---\n static fromPositions(\n start: {\n lineNumber: number;\n column: number;\n },\n end = start,\n ) {\n return new Range(\n start.lineNumber,\n start.column,\n end.lineNumber,\n end.column,\n );\n }\n static lift(range: Range) {\n if (!range) {\n return null;\n }\n return new Range(\n range.startLineNumber,\n range.startColumn,\n range.endLineNumber,\n range.endColumn,\n );\n }\n /**\n * Test if `obj` is an `IRange`.\n */\n static isIRange(obj: Range) {\n return (\n obj &&\n typeof obj.startLineNumber === 'number' &&\n typeof obj.startColumn === 'number' &&\n typeof obj.endLineNumber === 'number' &&\n typeof obj.endColumn === 'number'\n );\n }\n /**\n * Test if the two ranges are touching in any way.\n */\n static areIntersectingOrTouching(a: Range, b: Range) {\n // Check if `a` is before `b`\n if (\n a.endLineNumber < b.startLineNumber ||\n (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)\n ) {\n return false;\n }\n // Check if `b` is before `a`\n if (\n b.endLineNumber < a.startLineNumber ||\n (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)\n ) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n */\n static areIntersecting(a: Range, b: Range) {\n // Check if `a` is before `b`\n if (\n a.endLineNumber < b.startLineNumber ||\n (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)\n ) {\n return false;\n }\n // Check if `b` is before `a`\n if (\n b.endLineNumber < a.startLineNumber ||\n (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)\n ) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the startPosition and then on the endPosition\n */\n static compareRangesUsingStarts(a: Range, b: Range) {\n if (a && b) {\n const aStartLineNumber = a.startLineNumber | 0;\n const bStartLineNumber = b.startLineNumber | 0;\n if (aStartLineNumber === bStartLineNumber) {\n const aStartColumn = a.startColumn | 0;\n const bStartColumn = b.startColumn | 0;\n if (aStartColumn === bStartColumn) {\n const aEndLineNumber = a.endLineNumber | 0;\n const bEndLineNumber = b.endLineNumber | 0;\n if (aEndLineNumber === bEndLineNumber) {\n const aEndColumn = a.endColumn | 0;\n const bEndColumn = b.endColumn | 0;\n return aEndColumn - bEndColumn;\n }\n return aEndLineNumber - bEndLineNumber;\n }\n return aStartColumn - bStartColumn;\n }\n return aStartLineNumber - bStartLineNumber;\n }\n const aExists = a ? 1 : 0;\n const bExists = b ? 1 : 0;\n return aExists - bExists;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the endPosition and then on the startPosition\n */\n static compareRangesUsingEnds(\n a: {\n endLineNumber: number;\n endColumn: number;\n startLineNumber: number;\n startColumn: number;\n },\n b: {\n endLineNumber: number;\n endColumn: number;\n startLineNumber: number;\n startColumn: number;\n },\n ) {\n if (a.endLineNumber === b.endLineNumber) {\n if (a.endColumn === b.endColumn) {\n if (a.startLineNumber === b.startLineNumber) {\n return a.startColumn - b.startColumn;\n }\n return a.startLineNumber - b.startLineNumber;\n }\n return a.endColumn - b.endColumn;\n }\n return a.endLineNumber - b.endLineNumber;\n }\n /**\n * Test if the range spans multiple lines.\n */\n static spansMultipleLines(range: Range) {\n return range.endLineNumber > range.startLineNumber;\n }\n toJSON() {\n return this;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * A position in the editor.\n */\nexport class Position {\n lineNumber: number;\n column: number;\n\n constructor(lineNumber: number, column: number) {\n this.lineNumber = lineNumber;\n this.column = column;\n }\n /**\n * Create a new position from this position.\n *\n * @param newLineNumber new line number\n * @param newColumn new column\n */\n with(newLineNumber = this.lineNumber, newColumn = this.column) {\n if (newLineNumber === this.lineNumber && newColumn === this.column) {\n return this;\n }\n return new Position(newLineNumber, newColumn);\n }\n /**\n * Derive a new position from this position.\n *\n * @param deltaLineNumber line number delta\n * @param deltaColumn column delta\n */\n delta(deltaLineNumber = 0, deltaColumn = 0) {\n return this.with(\n this.lineNumber + deltaLineNumber,\n this.column + deltaColumn,\n );\n }\n /**\n * Test if this position equals other position\n */\n equals(other: any) {\n return Position.equals(this, other);\n }\n /**\n * Test if position `a` equals position `b`\n */\n static equals(\n a: any,\n b: {\n lineNumber: any;\n column: any;\n },\n ) {\n if (!a && !b) {\n return true;\n }\n return !!a && !!b && a.lineNumber === b.lineNumber && a.column === b.column;\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be false.\n */\n isBefore(other: any) {\n return Position.isBefore(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be false.\n */\n static isBefore(\n a: any,\n b: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column < b.column;\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be true.\n */\n isBeforeOrEqual(other: any) {\n return Position.isBeforeOrEqual(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be true.\n */\n static isBeforeOrEqual(\n a: any,\n b: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column <= b.column;\n }\n /**\n * A function that compares positions, useful for sorting\n */\n static compare(\n a: {\n lineNumber: number;\n column: number;\n },\n b: {\n lineNumber: number;\n column: number;\n },\n ) {\n const aLineNumber = a.lineNumber | 0;\n const bLineNumber = b.lineNumber | 0;\n if (aLineNumber === bLineNumber) {\n const aColumn = a.column | 0;\n const bColumn = b.column | 0;\n return aColumn - bColumn;\n }\n return aLineNumber - bLineNumber;\n }\n /**\n * Clone this position.\n */\n clone() {\n return new Position(this.lineNumber, this.column);\n }\n /**\n * Convert to a human-readable representation.\n */\n toString() {\n return `(${this.lineNumber},${this.column})`;\n }\n // ---\n /**\n * Create a `Position` from an `IPosition`.\n */\n static lift(pos: { lineNumber: any; column: any }) {\n return new Position(pos.lineNumber, pos.column);\n }\n /**\n * Test if `obj` is an `IPosition`.\n */\n static isIPosition(obj: { lineNumber: any; column: any }) {\n return (\n obj &&\n typeof obj.lineNumber === 'number' &&\n typeof obj.column === 'number'\n );\n }\n toJSON() {\n return {\n lineNumber: this.lineNumber,\n column: this.column,\n };\n }\n}\n"],"names":["Range","range","position","otherRange","a","b","startLineNumber","startColumn","endLineNumber","endColumn","Math","resultStartLineNumber","resultStartColumn","resultEndLineNumber","resultEndColumn","otherStartLineNumber","otherStartColumn","otherEndLineNumber","otherEndColumn","other","Position","lineCount","start","end","obj","aStartLineNumber","bStartLineNumber","aStartColumn","bStartColumn","aEndLineNumber","bEndLineNumber","aEndColumn","bEndColumn","aExists","bExists","newLineNumber","newColumn","deltaLineNumber","deltaColumn","aLineNumber","bLineNumber","aColumn","bColumn","pos","lineNumber","column"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages/TreeShaking/range.mjs","sources":["../../../src/pages/TreeShaking/range.ts"],"sourcesContent":["/**\n * The following is modified based on source found in\n * https://github.com/microsoft/monaco-editor\n *\n * MIT Licensed\n * Copyright (c) 2016 - present Microsoft Corporation\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n */\n\nexport class Range {\n public startLineNumber: number;\n public startColumn: number;\n public endLineNumber: number;\n public endColumn: number;\n\n constructor(\n startLineNumber: number,\n startColumn: number,\n endLineNumber: number,\n endColumn: number,\n ) {\n if (\n startLineNumber > endLineNumber ||\n (startLineNumber === endLineNumber && startColumn > endColumn)\n ) {\n this.startLineNumber = endLineNumber;\n this.startColumn = endColumn;\n this.endLineNumber = startLineNumber;\n this.endColumn = startColumn;\n } else {\n this.startLineNumber = startLineNumber;\n this.startColumn = startColumn;\n this.endLineNumber = endLineNumber;\n this.endColumn = endColumn;\n }\n }\n /**\n * Test if this range is empty.\n */\n isEmpty() {\n return Range.isEmpty(this);\n }\n /**\n * Test if `range` is empty.\n */\n static isEmpty(range: Range) {\n return (\n range.startLineNumber === range.endLineNumber &&\n range.startColumn === range.endColumn\n );\n }\n /**\n * Test if position is in this range. If the position is at the edges, will return true.\n */\n containsPosition(position: any) {\n return Range.containsPosition(this, position);\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return true.\n */\n static containsPosition(\n range: Range,\n position: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (\n position.lineNumber < range.startLineNumber ||\n position.lineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n position.lineNumber === range.startLineNumber &&\n position.column < range.startColumn\n ) {\n return false;\n }\n if (\n position.lineNumber === range.endLineNumber &&\n position.column > range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return false.\n * @internal\n */\n static strictContainsPosition(\n range: Range,\n position: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (\n position.lineNumber < range.startLineNumber ||\n position.lineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n position.lineNumber === range.startLineNumber &&\n position.column <= range.startColumn\n ) {\n return false;\n }\n if (\n position.lineNumber === range.endLineNumber &&\n position.column >= range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * Test if range is in this range. If the range is equal to this range, will return true.\n */\n containsRange(range: Range) {\n return Range.containsRange(this, range);\n }\n /**\n * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n */\n static containsRange(\n range: Range,\n otherRange: {\n startLineNumber: number;\n endLineNumber: number;\n startColumn: number;\n endColumn: number;\n },\n ) {\n if (\n otherRange.startLineNumber < range.startLineNumber ||\n otherRange.endLineNumber < range.startLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber > range.endLineNumber ||\n otherRange.endLineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber === range.startLineNumber &&\n otherRange.startColumn < range.startColumn\n ) {\n return false;\n }\n if (\n otherRange.endLineNumber === range.endLineNumber &&\n otherRange.endColumn > range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n */\n strictContainsRange(range: Range) {\n return Range.strictContainsRange(this, range);\n }\n /**\n * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n */\n static strictContainsRange(\n range: Range,\n otherRange: {\n startLineNumber: number;\n endLineNumber: number;\n startColumn: number;\n endColumn: number;\n },\n ) {\n if (\n otherRange.startLineNumber < range.startLineNumber ||\n otherRange.endLineNumber < range.startLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber > range.endLineNumber ||\n otherRange.endLineNumber > range.endLineNumber\n ) {\n return false;\n }\n if (\n otherRange.startLineNumber === range.startLineNumber &&\n otherRange.startColumn <= range.startColumn\n ) {\n return false;\n }\n if (\n otherRange.endLineNumber === range.endLineNumber &&\n otherRange.endColumn >= range.endColumn\n ) {\n return false;\n }\n return true;\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n plusRange(range: Range) {\n return Range.plusRange(this, range);\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n static plusRange(a: Range, b: Range) {\n let startLineNumber;\n let startColumn;\n let endLineNumber;\n let endColumn;\n if (b.startLineNumber < a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = b.startColumn;\n } else if (b.startLineNumber === a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = Math.min(b.startColumn, a.startColumn);\n } else {\n startLineNumber = a.startLineNumber;\n startColumn = a.startColumn;\n }\n if (b.endLineNumber > a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = b.endColumn;\n } else if (b.endLineNumber === a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = Math.max(b.endColumn, a.endColumn);\n } else {\n endLineNumber = a.endLineNumber;\n endColumn = a.endColumn;\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n /**\n * A intersection of the two ranges.\n */\n intersectRanges(range: Range) {\n return Range.intersectRanges(this, range);\n }\n /**\n * A intersection of the two ranges.\n */\n static intersectRanges(a: Range, b: Range) {\n let resultStartLineNumber = a.startLineNumber;\n let resultStartColumn = a.startColumn;\n let resultEndLineNumber = a.endLineNumber;\n let resultEndColumn = a.endColumn;\n const otherStartLineNumber = b.startLineNumber;\n const otherStartColumn = b.startColumn;\n const otherEndLineNumber = b.endLineNumber;\n const otherEndColumn = b.endColumn;\n if (resultStartLineNumber < otherStartLineNumber) {\n resultStartLineNumber = otherStartLineNumber;\n resultStartColumn = otherStartColumn;\n } else if (resultStartLineNumber === otherStartLineNumber) {\n resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\n }\n if (resultEndLineNumber > otherEndLineNumber) {\n resultEndLineNumber = otherEndLineNumber;\n resultEndColumn = otherEndColumn;\n } else if (resultEndLineNumber === otherEndLineNumber) {\n resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\n }\n // Check if selection is now empty\n if (resultStartLineNumber > resultEndLineNumber) {\n return null;\n }\n if (\n resultStartLineNumber === resultEndLineNumber &&\n resultStartColumn > resultEndColumn\n ) {\n return null;\n }\n return new Range(\n resultStartLineNumber,\n resultStartColumn,\n resultEndLineNumber,\n resultEndColumn,\n );\n }\n /**\n * Test if this range equals other.\n */\n equalsRange(other: Range) {\n return Range.equalsRange(this, other);\n }\n /**\n * Test if range `a` equals `b`.\n */\n static equalsRange(a: Range, b: Range) {\n if (!a && !b) {\n return true;\n }\n return (\n !!a &&\n !!b &&\n a.startLineNumber === b.startLineNumber &&\n a.startColumn === b.startColumn &&\n a.endLineNumber === b.endLineNumber &&\n a.endColumn === b.endColumn\n );\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n getEndPosition() {\n return Range.getEndPosition(this);\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n static getEndPosition(range: Range) {\n return new Position(range.endLineNumber, range.endColumn);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n getStartPosition() {\n return Range.getStartPosition(this);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n static getStartPosition(range: Range) {\n return new Position(range.startLineNumber, range.startColumn);\n }\n /**\n * Transform to a user presentable string representation.\n */\n toString() {\n return `[${this.startLineNumber},${this.startColumn} -> ${this.endLineNumber},${this.endColumn}]`;\n }\n /**\n * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n */\n setEndPosition(endLineNumber: number, endColumn: number) {\n return new Range(\n this.startLineNumber,\n this.startColumn,\n endLineNumber,\n endColumn,\n );\n }\n /**\n * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n */\n setStartPosition(startLineNumber: number, startColumn: number) {\n return new Range(\n startLineNumber,\n startColumn,\n this.endLineNumber,\n this.endColumn,\n );\n }\n /**\n * Create a new empty range using this range's start position.\n */\n collapseToStart() {\n return Range.collapseToStart(this);\n }\n /**\n * Create a new empty range using this range's start position.\n */\n static collapseToStart(range: Range) {\n return new Range(\n range.startLineNumber,\n range.startColumn,\n range.startLineNumber,\n range.startColumn,\n );\n }\n /**\n * Create a new empty range using this range's end position.\n */\n collapseToEnd() {\n return Range.collapseToEnd(this);\n }\n /**\n * Create a new empty range using this range's end position.\n */\n static collapseToEnd(range: Range) {\n return new Range(\n range.endLineNumber,\n range.endColumn,\n range.endLineNumber,\n range.endColumn,\n );\n }\n /**\n * Moves the range by the given amount of lines.\n */\n delta(lineCount: number) {\n return new Range(\n this.startLineNumber + lineCount,\n this.startColumn,\n this.endLineNumber + lineCount,\n this.endColumn,\n );\n }\n // ---\n static fromPositions(\n start: {\n lineNumber: number;\n column: number;\n },\n end = start,\n ) {\n return new Range(\n start.lineNumber,\n start.column,\n end.lineNumber,\n end.column,\n );\n }\n static lift(range: Range) {\n if (!range) {\n return null;\n }\n return new Range(\n range.startLineNumber,\n range.startColumn,\n range.endLineNumber,\n range.endColumn,\n );\n }\n /**\n * Test if `obj` is an `IRange`.\n */\n static isIRange(obj: Range) {\n return (\n obj &&\n typeof obj.startLineNumber === 'number' &&\n typeof obj.startColumn === 'number' &&\n typeof obj.endLineNumber === 'number' &&\n typeof obj.endColumn === 'number'\n );\n }\n /**\n * Test if the two ranges are touching in any way.\n */\n static areIntersectingOrTouching(a: Range, b: Range) {\n // Check if `a` is before `b`\n if (\n a.endLineNumber < b.startLineNumber ||\n (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)\n ) {\n return false;\n }\n // Check if `b` is before `a`\n if (\n b.endLineNumber < a.startLineNumber ||\n (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)\n ) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n */\n static areIntersecting(a: Range, b: Range) {\n // Check if `a` is before `b`\n if (\n a.endLineNumber < b.startLineNumber ||\n (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)\n ) {\n return false;\n }\n // Check if `b` is before `a`\n if (\n b.endLineNumber < a.startLineNumber ||\n (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)\n ) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the startPosition and then on the endPosition\n */\n static compareRangesUsingStarts(a: Range, b: Range) {\n if (a && b) {\n const aStartLineNumber = a.startLineNumber | 0;\n const bStartLineNumber = b.startLineNumber | 0;\n if (aStartLineNumber === bStartLineNumber) {\n const aStartColumn = a.startColumn | 0;\n const bStartColumn = b.startColumn | 0;\n if (aStartColumn === bStartColumn) {\n const aEndLineNumber = a.endLineNumber | 0;\n const bEndLineNumber = b.endLineNumber | 0;\n if (aEndLineNumber === bEndLineNumber) {\n const aEndColumn = a.endColumn | 0;\n const bEndColumn = b.endColumn | 0;\n return aEndColumn - bEndColumn;\n }\n return aEndLineNumber - bEndLineNumber;\n }\n return aStartColumn - bStartColumn;\n }\n return aStartLineNumber - bStartLineNumber;\n }\n const aExists = a ? 1 : 0;\n const bExists = b ? 1 : 0;\n return aExists - bExists;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the endPosition and then on the startPosition\n */\n static compareRangesUsingEnds(\n a: {\n endLineNumber: number;\n endColumn: number;\n startLineNumber: number;\n startColumn: number;\n },\n b: {\n endLineNumber: number;\n endColumn: number;\n startLineNumber: number;\n startColumn: number;\n },\n ) {\n if (a.endLineNumber === b.endLineNumber) {\n if (a.endColumn === b.endColumn) {\n if (a.startLineNumber === b.startLineNumber) {\n return a.startColumn - b.startColumn;\n }\n return a.startLineNumber - b.startLineNumber;\n }\n return a.endColumn - b.endColumn;\n }\n return a.endLineNumber - b.endLineNumber;\n }\n /**\n * Test if the range spans multiple lines.\n */\n static spansMultipleLines(range: Range) {\n return range.endLineNumber > range.startLineNumber;\n }\n toJSON() {\n return this;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * A position in the editor.\n */\nexport class Position {\n lineNumber: number;\n column: number;\n\n constructor(lineNumber: number, column: number) {\n this.lineNumber = lineNumber;\n this.column = column;\n }\n /**\n * Create a new position from this position.\n *\n * @param newLineNumber new line number\n * @param newColumn new column\n */\n with(newLineNumber = this.lineNumber, newColumn = this.column) {\n if (newLineNumber === this.lineNumber && newColumn === this.column) {\n return this;\n }\n return new Position(newLineNumber, newColumn);\n }\n /**\n * Derive a new position from this position.\n *\n * @param deltaLineNumber line number delta\n * @param deltaColumn column delta\n */\n delta(deltaLineNumber = 0, deltaColumn = 0) {\n return this.with(\n this.lineNumber + deltaLineNumber,\n this.column + deltaColumn,\n );\n }\n /**\n * Test if this position equals other position\n */\n equals(other: any) {\n return Position.equals(this, other);\n }\n /**\n * Test if position `a` equals position `b`\n */\n static equals(\n a: any,\n b: {\n lineNumber: any;\n column: any;\n },\n ) {\n if (!a && !b) {\n return true;\n }\n return !!a && !!b && a.lineNumber === b.lineNumber && a.column === b.column;\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be false.\n */\n isBefore(other: any) {\n return Position.isBefore(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be false.\n */\n static isBefore(\n a: any,\n b: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column < b.column;\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be true.\n */\n isBeforeOrEqual(other: any) {\n return Position.isBeforeOrEqual(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be true.\n */\n static isBeforeOrEqual(\n a: any,\n b: {\n lineNumber: number;\n column: number;\n },\n ) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column <= b.column;\n }\n /**\n * A function that compares positions, useful for sorting\n */\n static compare(\n a: {\n lineNumber: number;\n column: number;\n },\n b: {\n lineNumber: number;\n column: number;\n },\n ) {\n const aLineNumber = a.lineNumber | 0;\n const bLineNumber = b.lineNumber | 0;\n if (aLineNumber === bLineNumber) {\n const aColumn = a.column | 0;\n const bColumn = b.column | 0;\n return aColumn - bColumn;\n }\n return aLineNumber - bLineNumber;\n }\n /**\n * Clone this position.\n */\n clone() {\n return new Position(this.lineNumber, this.column);\n }\n /**\n * Convert to a human-readable representation.\n */\n toString() {\n return `(${this.lineNumber},${this.column})`;\n }\n // ---\n /**\n * Create a `Position` from an `IPosition`.\n */\n static lift(pos: { lineNumber: any; column: any }) {\n return new Position(pos.lineNumber, pos.column);\n }\n /**\n * Test if `obj` is an `IPosition`.\n */\n static isIPosition(obj: { lineNumber: any; column: any }) {\n return (\n obj &&\n typeof obj.lineNumber === 'number' &&\n typeof obj.column === 'number'\n );\n }\n toJSON() {\n return {\n lineNumber: this.lineNumber,\n column: this.column,\n };\n }\n}\n"],"names":["Range","range","position","otherRange","a","b","startLineNumber","startColumn","endLineNumber","endColumn","Math","resultStartLineNumber","resultStartColumn","resultEndLineNumber","resultEndColumn","otherStartLineNumber","otherStartColumn","otherEndLineNumber","otherEndColumn","other","Position","lineCount","start","end","obj","aStartLineNumber","bStartLineNumber","aStartColumn","bStartColumn","aEndLineNumber","bEndLineNumber","aEndColumn","bEndColumn","aExists","bExists","newLineNumber","newColumn","deltaLineNumber","deltaColumn","aLineNumber","bLineNumber","aColumn","bColumn","pos","lineNumber","column"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages/TreeShaking/space.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"pages/TreeShaking/space.mjs","sources":["../../../src/pages/TreeShaking/space.tsx"],"sourcesContent":["import { Card, Empty } from 'antd';\n\nexport function Space() {\n return (\n <Card\n title=\"Tree Shaking Analysis\"\n bodyStyle={{ paddingTop: 0 }}\n className=\"tree-shaking-page\"\n >\n <Empty style={{ marginTop: 30 }} />\n </Card>\n );\n}\n"],"names":["Space","Card","Empty"],"mappings":";;AAEO,SAASA;IACd,OAAO,WAAP,GACE,IAACC,MAAIA;QACH,OAAM;QACN,WAAW;YAAE,YAAY;QAAE;QAC3B,WAAU;kBAEV,kBAACC,OAAKA;YAAC,OAAO;gBAAE,WAAW;YAAG;;;AAGpC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SDK } from '@rsdoctor/types';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { TableKind, SetEditorStatus } from './types';
|
|
3
|
+
import type { TableKind, SetEditorStatus } from './types.js';
|
|
4
4
|
interface TableProps {
|
|
5
5
|
module: SDK.ModuleInstance;
|
|
6
6
|
moduleGraph: SDK.ModuleGraphInstance;
|