@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":"components/FileTree/js.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/FileTree/js.mjs","sources":["../../../src/components/FileTree/js.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgJs = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={12} height={14} fill=\"none\" viewBox=\"0 0 12 14\" {...props}><path fill=\"#E6F7FF\" fillRule=\"evenodd\" d=\"M6.177 1.125V4.5a.656.656 0 0 0 .656.656h3.375v7.719h-8.75V1.125zm1.806 8.7q.03.081.03.183a.411.411 0 0 1-.26.388.8.8 0 0 1-.333.057q-.166 0-.307-.034a.7.7 0 0 1-.24-.11.5.5 0 0 1-.153-.197.7.7 0 0 1-.055-.3H5.88q0 .321.133.555.132.234.354.386.225.15.497.226.275.073.555.073.313 0 .565-.07.254-.07.435-.206.183-.135.279-.33a1 1 0 0 0 .096-.443q0-.235-.08-.42a1 1 0 0 0-.24-.33 1.7 1.7 0 0 0-.396-.263 3.5 3.5 0 0 0-.544-.211 3 3 0 0 1-.326-.118 1.3 1.3 0 0 1-.237-.127.5.5 0 0 1-.146-.146.33.33 0 0 1-.047-.174q0-.129.068-.23a.45.45 0 0 1 .203-.164.8.8 0 0 1 .339-.062q.21 0 .349.073a.48.48 0 0 1 .208.2q.07.125.07.292h.777q0-.339-.175-.602a1.17 1.17 0 0 0-.484-.414 1.7 1.7 0 0 0-.732-.15q-.307 0-.565.075-.255.075-.443.216a1 1 0 0 0-.292.333.9.9 0 0 0-.104.43q0 .244.1.43.1.184.275.325.178.138.406.242.232.104.49.188.232.072.378.14a1 1 0 0 1 .226.138q.08.068.11.152M4.595 7.209v2.628q0 .195-.063.33a.46.46 0 0 1-.17.206.47.47 0 0 1-.257.07.6.6 0 0 1-.263-.051.36.36 0 0 1-.17-.175.8.8 0 0 1-.057-.33h-.783q0 .398.164.658.164.258.45.383t.659.125q.36 0 .646-.146.289-.146.456-.416.166-.274.166-.654V7.208z\" clipRule=\"evenodd\" /><path fill=\"#1890FF\" d=\"M8.014 10.008a.5.5 0 0 0-.031-.182.34.34 0 0 0-.11-.152 1 1 0 0 0-.226-.138 3 3 0 0 0-.378-.14 5 5 0 0 1-.49-.188 2 2 0 0 1-.406-.242 1.1 1.1 0 0 1-.276-.325.9.9 0 0 1-.099-.43q0-.237.104-.43a1 1 0 0 1 .292-.333q.188-.141.443-.216.258-.075.565-.076.42 0 .732.151.312.152.484.414.175.264.175.602h-.776a.6.6 0 0 0-.07-.292.48.48 0 0 0-.21-.2.74.74 0 0 0-.348-.073.8.8 0 0 0-.339.062.45.45 0 0 0-.203.164.4.4 0 0 0-.067.23q0 .096.046.174.05.078.146.146t.237.127q.14.06.326.118.31.093.544.21.237.118.396.264a1 1 0 0 1 .24.33q.08.185.08.42a1 1 0 0 1-.096.442.9.9 0 0 1-.279.331q-.181.135-.435.206a2.1 2.1 0 0 1-.565.07q-.28 0-.555-.073a1.7 1.7 0 0 1-.497-.226q-.222-.152-.354-.386a1.1 1.1 0 0 1-.133-.555h.784q0 .178.055.3a.5.5 0 0 0 .153.198q.102.075.24.11.14.033.307.033.204 0 .333-.057a.41.41 0 0 0 .26-.388M4.595 9.836V7.208h.778v2.628q0 .38-.166.654-.167.27-.456.416a1.4 1.4 0 0 1-.646.146q-.372 0-.659-.125a1 1 0 0 1-.45-.383q-.164-.26-.164-.659h.783q0 .21.058.331a.36.36 0 0 0 .169.175q.109.052.263.052a.47.47 0 0 0 .258-.07.46.46 0 0 0 .17-.206q.061-.135.062-.331\" /><path fill=\"#1890FF\" d=\"M11.186 3.51 7.824.146A.5.5 0 0 0 7.47 0H.833a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h10a.5.5 0 0 0 .5-.5V3.864a.5.5 0 0 0-.147-.355M7.24 1.152l2.94 2.94H7.24zm2.968 11.722h-8.75V1.125h4.72V4.5a.656.656 0 0 0 .655.656h3.375z\" /></svg>;\nexport default SvgJs;"],"names":["SvgJs","props"],"mappings":";;AACA,MAAMA,QAAQC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,MAAK;gBAAU,UAAS;gBAAU,GAAE;gBAAolC,UAAS;;0BAAY,IAAC;gBAAK,MAAK;gBAAU,GAAE;;0BAA+iC,IAAC;gBAAK,MAAK;gBAAU,GAAE;;;;AACj3E,WAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/FileTree/unkown-file.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/FileTree/unkown-file.mjs","sources":["../../../src/components/FileTree/unkown-file.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgUnkownFile = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={12} height={14} fill=\"none\" viewBox=\"0 0 12 14\" {...props}><path fill=\"#F0F0F0\" d=\"M6.288 4.5V1.125H1.57v11.75h8.75V5.156H6.944a.656.656 0 0 1-.656-.656m-.344 6.625a.5.5 0 1 1 0-.999.5.5 0 0 1 0 .999m1.72-3.569c.01.702-.465 1.32-1.162 1.546a.22.22 0 0 0-.151.207V9.5c0 .086-.07.156-.157.156h-.5a.157.157 0 0 1-.156-.156V9a.65.65 0 0 1 .542-.627c.443-.057.77-.4.77-.795 0-.439-.402-.805-.906-.805-.503 0-.906.366-.906.807a.15.15 0 0 1-.153.147H4.38a.15.15 0 0 1-.153-.149c0-.897.783-1.62 1.742-1.61.926.013 1.683.721 1.695 1.588\" /><path fill=\"#8C8C8C\" d=\"M11.298 3.51 7.935.148A.5.5 0 0 0 7.58 0H.944a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h10a.5.5 0 0 0 .5-.5V3.864a.5.5 0 0 0-.146-.353M7.35 1.154l2.94 2.94h-2.94zm2.968 11.722H1.57V1.125h4.72V4.5a.656.656 0 0 0 .655.656h3.375z\" /><path fill=\"#8C8C8C\" d=\"M5.444 10.625a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0M4.226 7.578a.15.15 0 0 0 .153.149h.506a.15.15 0 0 0 .153-.147c0-.44.403-.807.906-.807.504 0 .907.366.907.805 0 .395-.328.738-.77.795A.65.65 0 0 0 5.537 9v.5c0 .086.07.156.156.156h.5c.086 0 .157-.07.157-.156v-.19a.22.22 0 0 1 .151-.208c.697-.225 1.172-.844 1.161-1.546-.012-.867-.769-1.575-1.695-1.587-.96-.011-1.742.712-1.742 1.61\" /></svg>;\nexport default SvgUnkownFile;"],"names":["SvgUnkownFile","props"],"mappings":";;AACA,MAAMA,gBAAgBC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,MAAK;gBAAU,GAAE;;0BAAic,IAAC;gBAAK,MAAK;gBAAU,GAAE;;0BAAgO,IAAC;gBAAK,MAAK;gBAAU,GAAE;;;;AAC/2B,oBAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Form/keyword.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Form/keyword.mjs","sources":["../../../src/components/Form/keyword.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Button, Input, InputRef, Typography } from 'antd';\n\ninterface KeywordProps {\n style?: React.CSSProperties;\n labelStyle?: React.CSSProperties;\n icon?: React.ReactNode;\n label?: string;\n placeholder?: string;\n delay?: number;\n className?: string;\n width?: number;\n onChange: (keyword: string) => void;\n}\n\nexport const KeywordInput: React.FC<KeywordProps> = ({\n icon: Icon,\n label,\n labelStyle: ls = {},\n placeholder,\n onChange,\n style,\n className,\n width,\n delay = 300,\n}) => {\n const labelWidth = 120;\n const [filename, setFilename] = useState('');\n const labelStyle: React.CSSProperties = { width: labelWidth, ...ls };\n\n const ref = useRef<InputRef>(null);\n\n let timer: NodeJS.Timeout;\n\n useEffect(() => {\n onChange(filename);\n }, [filename]);\n\n return (\n <Input.Group compact style={style} className={className}>\n {label || Icon ? (\n <Button\n style={labelStyle}\n onClick={() => {\n if (ref && ref.current) {\n ref.current.focus();\n }\n }}\n >\n {Icon || null}\n <Typography.Text>{label}</Typography.Text>\n </Button>\n ) : null}\n <Input\n ref={ref}\n allowClear\n defaultValue={filename}\n style={{ width: width ? width - labelWidth : 250 }}\n placeholder={placeholder}\n onChange={(e) => {\n if (timer) clearTimeout(timer);\n const v = e.target.value.trim();\n timer = setTimeout(() => {\n setFilename(v);\n }, delay);\n }}\n />\n </Input.Group>\n );\n};\n"],"names":["KeywordInput","Icon","label","ls","placeholder","onChange","style","className","width","delay","labelWidth","filename","setFilename","useState","labelStyle","ref","useRef","timer","useEffect","Input","Button","Typography","e","clearTimeout","v","setTimeout"],"mappings":";;;AAeO,MAAMA,eAAuC,CAAC,EACnD,MAAMC,IAAI,EACVC,KAAK,EACL,YAAYC,KAAK,CAAC,CAAC,EACnBC,WAAW,EACXC,QAAQ,EACRC,KAAK,EACLC,SAAS,EACTC,KAAK,EACLC,QAAQ,GAAG,EACZ;IACC,MAAMC,aAAa;IACnB,MAAM,CAACC,UAAUC,YAAY,GAAGC,SAAS;IACzC,MAAMC,aAAkC;QAAE,OAAOJ;QAAY,GAAGP,EAAE;IAAC;IAEnE,MAAMY,MAAMC,OAAiB;IAE7B,IAAIC;IAEJC,UAAU;QACRb,SAASM;IACX,GAAG;QAACA;KAAS;IAEb,OAAO,WAAP,GACE,KAACQ,MAAM,KAAK;QAAC,SAAO;QAAC,OAAOb;QAAO,WAAWC;;YAC3CL,SAASD,OAAO,WAAPA,GACR,KAACmB,QAAMA;gBACL,OAAON;gBACP,SAAS;oBACP,IAAIC,OAAOA,IAAI,OAAO,EACpBA,IAAI,OAAO,CAAC,KAAK;gBAErB;;oBAECd,QAAQ;kCACT,IAACoB,WAAW,IAAI;kCAAEnB;;;iBAElB;0BACJ,IAACiB,OAAKA;gBACJ,KAAKJ;gBACL,YAAU;gBACV,cAAcJ;gBACd,OAAO;oBAAE,OAAOH,QAAQA,QAAQE,aAAa;gBAAI;gBACjD,aAAaN;gBACb,UAAU,CAACkB;oBACT,IAAIL,OAAOM,aAAaN;oBACxB,MAAMO,IAAIF,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;oBAC7BL,QAAQQ,WAAW;wBACjBb,YAAYY;oBACd,GAAGf;gBACL;;;;AAIR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Keyword/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Keyword/index.mjs","sources":["../../../src/components/Keyword/index.tsx"],"sourcesContent":["import React, { type ReactNode } from 'react';\nimport { Popover, Typography } from 'antd';\nimport { TextProps } from 'antd/es/typography/Text';\nimport styles from './style.module.scss';\n\nconst MAX_LENGTH = 40;\n\nexport const Keyword: React.FC<\n TextProps & { text: string; keyword: string }\n> = ({ text, keyword, ...rest }) => {\n if (!keyword) {\n return EllipsisText({ text, rest });\n }\n\n const idx = text.indexOf(keyword);\n\n if (idx === -1) {\n return EllipsisText({ text, rest });\n }\n\n const els: (string | React.ReactNode)[] = [];\n\n let str = text;\n\n while (str.length > 0) {\n const idx = str.indexOf(keyword);\n if (idx > -1) {\n if (idx !== 0) {\n els.push(EllipsisText({ text: str, els }));\n }\n els.push(EllipsisText({ text: str, els, marked: true }));\n str = str.slice(idx + keyword.length);\n } else {\n els.push(EllipsisText({ text: str, els, marked: true }));\n break;\n }\n }\n\n return (\n <Typography.Text className={styles.text} {...rest}>\n {els}\n </Typography.Text>\n );\n};\n\nconst EllipsisText = ({\n text,\n els,\n marked = false,\n rest,\n}: {\n text: string;\n els?: ReactNode[];\n marked?: boolean;\n rest?: Record<string, unknown>;\n}) => {\n if (!text) return null;\n\n const textLength = text.length;\n\n if (textLength > MAX_LENGTH) {\n const start = Math.floor((MAX_LENGTH - 3) / 2);\n const end = Math.ceil((MAX_LENGTH - 3) / 2);\n\n return (\n <Popover content={text} placement=\"left\">\n <div>\n <Typography.Text className={styles.text} mark={!!marked} {...rest}>\n {text.slice(0, start)}...{text.slice(textLength - end)}\n </Typography.Text>\n </div>\n </Popover>\n );\n }\n\n return (\n <Popover content={text}>\n <div>\n <Typography.Text\n className={styles.text}\n key={els ? els.length : 0}\n {...rest}\n >\n {text}\n </Typography.Text>\n </div>\n </Popover>\n );\n};\n"],"names":["MAX_LENGTH","Keyword","text","keyword","rest","EllipsisText","idx","els","str","Typography","styles","marked","textLength","start","Math","end","Popover"],"mappings":";;;;AAKA,MAAMA,aAAa;AAEZ,MAAMC,UAET,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGC,MAAM;IAC7B,IAAI,CAACD,SACH,OAAOE,aAAa;QAAEH;QAAME;IAAK;IAGnC,MAAME,MAAMJ,KAAK,OAAO,CAACC;IAEzB,IAAIG,AAAQ,OAARA,KACF,OAAOD,aAAa;QAAEH;QAAME;IAAK;IAGnC,MAAMG,MAAoC,EAAE;IAE5C,IAAIC,MAAMN;IAEV,MAAOM,IAAI,MAAM,GAAG,EAAG;QACrB,MAAMF,MAAME,IAAI,OAAO,CAACL;QACxB,IAAIG,MAAM,IAAI;YACZ,IAAIA,AAAQ,MAARA,KACFC,IAAI,IAAI,CAACF,aAAa;gBAAE,MAAMG;gBAAKD;YAAI;YAEzCA,IAAI,IAAI,CAACF,aAAa;gBAAE,MAAMG;gBAAKD;gBAAK,QAAQ;YAAK;YACrDC,MAAMA,IAAI,KAAK,CAACF,MAAMH,QAAQ,MAAM;QACtC,OAAO;YACLI,IAAI,IAAI,CAACF,aAAa;gBAAE,MAAMG;gBAAKD;gBAAK,QAAQ;YAAK;YACrD;QACF;IACF;IAEA,OAAO,WAAP,GACE,IAACE,WAAW,IAAI;QAAC,WAAWC,aAAAA,IAAW;QAAG,GAAGN,IAAI;kBAC9CG;;AAGP;AAEA,MAAMF,eAAe,CAAC,EACpBH,IAAI,EACJK,GAAG,EACHI,SAAS,KAAK,EACdP,IAAI,EAML;IACC,IAAI,CAACF,MAAM,OAAO;IAElB,MAAMU,aAAaV,KAAK,MAAM;IAE9B,IAAIU,aAAaZ,YAAY;QAC3B,MAAMa,QAAQC,KAAK,KAAK,CAAEd,AAAAA,CAAAA,aAAa,KAAK;QAC5C,MAAMe,MAAMD,KAAK,IAAI,CAAEd,AAAAA,CAAAA,aAAa,KAAK;QAEzC,OAAO,WAAP,GACE,IAACgB,SAAOA;YAAC,SAASd;YAAM,WAAU;sBAChC,kBAAC;0BACC,mBAACO,WAAW,IAAI;oBAAC,WAAWC,aAAAA,IAAW;oBAAE,MAAM,CAAC,CAACC;oBAAS,GAAGP,IAAI;;wBAC9DF,KAAK,KAAK,CAAC,GAAGW;wBAAO;wBAAIX,KAAK,KAAK,CAACU,aAAaG;;;;;IAK5D;IAEA,OAAO,WAAP,GACE,IAACC,SAAOA;QAAC,SAASd;kBAChB,kBAAC;sBACC,kBAACO,WAAW,IAAI;gBACd,WAAWC,aAAAA,IAAW;gBAErB,GAAGN,IAAI;0BAEPF;eAHIK,MAAMA,IAAI,MAAM,GAAG;;;AAQlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Keyword/style.module.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Keyword/style.module.mjs","sources":["../../../src/components/Keyword/style.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./style_module.css\"\nexport default {\"text\":\"text-QI6k9S\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,MAAO;AAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/builder-select.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/builder-select.mjs","sources":["../../../src/components/Layout/builder-select.tsx"],"sourcesContent":["import { Select, Divider, Typography, Space } from 'antd';\nimport React, { useState, useEffect } from 'react';\nimport { Manifest } from '@rsdoctor/types';\nimport TotalSizeSvg from '../../common/svg/total-size.svg';\nimport { fetchManifest, changeOrigin } from '../../utils';\nimport Icon from '@ant-design/icons';\n\nexport const BuilderSelect: React.FC = () => {\n const [buildName, setBuildName] = useState('');\n const [series, setSeries] = useState<Manifest.RsdoctorManifestSeriesData[]>(\n [],\n );\n\n useEffect(() => {\n fetchManifest().then(({ name, series }) => {\n if (name) {\n setBuildName(name);\n }\n\n if (series && series.length > 0) {\n setSeries(series);\n }\n });\n }, []);\n\n if (buildName.length <= 0 || series.length <= 0) {\n return <></>;\n }\n\n return (\n <>\n <Divider type=\"vertical\" style={{ margin: '0 24px' }} />\n <Space>\n <Icon style={{ fontSize: '18px' }} component={TotalSizeSvg} />\n <Typography>Compiler</Typography>\n <Select\n className=\"builder-selector\"\n defaultValue={buildName}\n bordered={false}\n style={{ minWidth: 100 }}\n onChange={(val) => {\n const item = series.find((item) => item.name === val);\n\n if (item) {\n if (item.origin) {\n location.href = changeOrigin(item.origin);\n } else {\n console.error('No RsdoctorManifestSeriesData.origin');\n }\n }\n }}\n >\n {series.map((item, i) => (\n <Select.Option\n key={i}\n value={item.name}\n className=\"builder-selector-option-item\"\n >\n {item.name}\n </Select.Option>\n ))}\n </Select>\n </Space>\n </>\n );\n};\n"],"names":["BuilderSelect","buildName","setBuildName","useState","series","setSeries","useEffect","fetchManifest","name","Divider","Space","Icon","TotalSizeSvg","Typography","Select","val","item","location","changeOrigin","console","i"],"mappings":";;;;;;AAOO,MAAMA,gBAA0B;IACrC,MAAM,CAACC,WAAWC,aAAa,GAAGC,SAAS;IAC3C,MAAM,CAACC,QAAQC,UAAU,GAAGF,SAC1B,EAAE;IAGJG,UAAU;QACRC,gBAAgB,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAEJ,MAAM,EAAE;YACpC,IAAII,MACFN,aAAaM;YAGf,IAAIJ,UAAUA,OAAO,MAAM,GAAG,GAC5BC,UAAUD;QAEd;IACF,GAAG,EAAE;IAEL,IAAIH,UAAU,MAAM,IAAI,KAAKG,OAAO,MAAM,IAAI,GAC5C,OAAO,WAAP,GAAO;IAGT,OAAO,WAAP,GACE;;0BACE,IAACK,SAAOA;gBAAC,MAAK;gBAAW,OAAO;oBAAE,QAAQ;gBAAS;;0BACnD,KAACC,OAAKA;;kCACJ,IAACC,OAAIA;wBAAC,OAAO;4BAAE,UAAU;wBAAO;wBAAG,WAAWC;;kCAC9C,IAACC,YAAUA;kCAAC;;kCACZ,IAACC,QAAMA;wBACL,WAAU;wBACV,cAAcb;wBACd,UAAU;wBACV,OAAO;4BAAE,UAAU;wBAAI;wBACvB,UAAU,CAACc;4BACT,MAAMC,OAAOZ,OAAO,IAAI,CAAC,CAACY,OAASA,KAAK,IAAI,KAAKD;4BAEjD,IAAIC,MACF,IAAIA,KAAK,MAAM,EACbC,SAAS,IAAI,GAAGC,aAAaF,KAAK,MAAM;iCAExCG,QAAQ,KAAK,CAAC;wBAGpB;kCAECf,OAAO,GAAG,CAAC,CAACY,MAAMI,IAAAA,WAAAA,GACjB,IAACN,OAAO,MAAM;gCAEZ,OAAOE,KAAK,IAAI;gCAChB,WAAU;0CAETA,KAAK,IAAI;+BAJLI;;;;;;AAWnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/bundle-size-icon.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/bundle-size-icon.mjs","sources":["../../../src/components/Layout/bundle-size-icon.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgBundleSizeIcon = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={12} height={14} fill=\"none\" viewBox=\"0 0 12 14\" {...props}><path fill=\"#5E6673\" fillRule=\"evenodd\" d=\"M6.389.672a1 1 0 0 0-.977.013L.526 3.505l5.361 2.83 5.326-3.044zm-.992 12.777V7.206L.123 4.423v5.404a1 1 0 0 0 .5.866z\" clipRule=\"evenodd\" /><path fill=\"#5E6673\" fillOpacity={0.5} fillRule=\"evenodd\" d=\"M5.414.684h-.002L.606 3.46l.017-.01L5.397.693zm-.017 12.765V7.206L.123 4.423l5.274 2.783zm1-6.254 5.265-3.009q.008.064.008.13v5.511a1 1 0 0 1-.5.866L6.397 13.45z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBundleSizeIcon;"],"names":["SvgBundleSizeIcon","props"],"mappings":";;AACA,MAAMA,oBAAoBC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,MAAK;gBAAU,UAAS;gBAAU,GAAE;gBAAyH,UAAS;;0BAAY,IAAC;gBAAK,MAAK;gBAAU,aAAa;gBAAK,UAAS;gBAAU,GAAE;gBAAoK,UAAS;;;;AAC9iB,yBAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/compile-icon.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/compile-icon.mjs","sources":["../../../src/components/Layout/compile-icon.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgCompileIcon = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={13} height={13} fill=\"none\" viewBox=\"0 0 13 13\" {...props}><rect width={12} height={9.333} x={0.104} y={0.499} fill=\"#0079FF\" rx={1} /><path stroke=\"#fff\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.73 6.545 2.385 5.346 3.73 4.147M8.46 6.545l1.347-1.199L8.46 4.147M5.45 7.346l1.362-4\" /><rect width={6} height={1.333} x={3.104} y={10.832} fill=\"#0079FF\" fillOpacity={0.5} rx={0.667} /></svg>;\nexport default SvgCompileIcon;"],"names":["SvgCompileIcon","props"],"mappings":";;AACA,MAAMA,iBAAiBC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,OAAO;gBAAI,QAAQ;gBAAO,GAAG;gBAAO,GAAG;gBAAO,MAAK;gBAAU,IAAI;;0BAAK,IAAC;gBAAK,QAAO;gBAAO,eAAc;gBAAQ,gBAAe;gBAAQ,GAAE;;0BAA4F,IAAC;gBAAK,OAAO;gBAAG,QAAQ;gBAAO,GAAG;gBAAO,GAAG;gBAAQ,MAAK;gBAAU,aAAa;gBAAK,IAAI;;;;AAC9c,qBAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/constants.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/constants.mjs","sources":["../../../src/components/Layout/constants.ts"],"sourcesContent":["export const CompileName = 'Compile Analysis';\n"],"names":["CompileName"],"mappings":"AAAO,MAAMA,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/header.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/header.mjs","sources":["../../../src/components/Layout/header.tsx"],"sourcesContent":["import { TranslationOutlined } from '@ant-design/icons';\nimport { Col, Dropdown, Layout, Row } from 'antd';\nimport React from 'react';\nimport { Language, Size } from '../../constants';\nimport { useI18n, useTheme } from '../../utils';\nimport { OverlayAlertsWithButton } from '../Alerts';\nimport { BuilderSelect } from './builder-select';\nimport { Menus } from './menus';\nimport './header.sass';\nimport { Client } from '@rsdoctor/types';\nimport { useNavigate } from 'react-router-dom';\n\nexport interface HeaderProps {\n enableRoutes?: string[];\n}\n\nexport const Header: React.FC<HeaderProps> = ({ enableRoutes }) => {\n const { i18n } = useI18n();\n\n const navigate = useNavigate();\n const { isLight } = useTheme();\n const iconStyle: React.CSSProperties = {\n display: 'inline-block',\n fontSize: 20,\n textAlign: 'center',\n verticalAlign: 'middle',\n cursor: 'pointer',\n width: 30,\n transition: 'all 0.3s ease',\n };\n const languages = [\n { value: Language.Cn, label: '中文' },\n { value: Language.En, label: 'English' },\n ];\n\n return (\n <Layout.Header\n style={{\n height: Size.NavBarHeight,\n padding: 0,\n paddingLeft: Size.BasePadding,\n paddingRight: Size.BasePadding,\n position: 'fixed',\n zIndex: 999,\n width: '100%',\n backgroundColor: isLight ? '#fff' : '#141414',\n transition: 'none',\n }}\n >\n <Row\n justify=\"space-between\"\n align=\"middle\"\n style={{ height: Size.NavBarHeight }}\n wrap={false}\n >\n <Col\n style={{\n height: Size.NavBarHeight,\n lineHeight: `${Size.NavBarHeight + 2}px`,\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <img\n src=\"https://assets.rspack.rs/rsdoctor/rsdoctor-title-logo.png\"\n className=\"rsdoctor-logo\"\n alt=\"logo\"\n onClick={() => {\n location.hash.includes(Client.RsdoctorClientRoutes.Uploader) &&\n location.pathname.includes('/preview')\n ? (location.href = 'http://rsdoctor.rs')\n : navigate(Client.RsdoctorClientRoutes.Home);\n }}\n />\n <BuilderSelect />\n </div>\n </Col>\n <Menus\n key={enableRoutes ? JSON.stringify(enableRoutes) : 'default'}\n style={{ transition: 'none' }}\n />\n\n <Col flex={1}>\n <Row\n align=\"middle\"\n justify=\"end\"\n style={{ height: Size.NavBarHeight }}\n wrap={false}\n gutter={[Size.BasePadding / 3, 0]}\n >\n <Col>\n <OverlayAlertsWithButton />\n </Col>\n\n {/* <Col> TODO: dark mode has some error need fix.\n <Switch\n className=\"header-switch\"\n checkedChildren=\"🌛\"\n unCheckedChildren=\"🌞\"\n checked={isDark}\n onChange={(checked) => {\n setTheme(checked ? Theme.Dark : Theme.Light);\n }}\n style={{ border: `1px solid ${isLight ? '#ddd' : '#fff'}`, background: isLight ? '#eee' : '#141414' }}\n />\n </Col> */}\n <Col>\n <Dropdown\n overlayStyle={{ zIndex: 1000 }}\n menu={{\n items: languages.map((e) => ({\n label: e.label,\n key: e.value,\n onClick() {\n i18n.changeLanguage(e.value);\n },\n })),\n selectedKeys: [i18n.language],\n }}\n >\n <TranslationOutlined\n className=\"header-icon\"\n style={iconStyle}\n />\n </Dropdown>\n </Col>\n </Row>\n </Col>\n </Row>\n </Layout.Header>\n );\n};\n"],"names":["Header","enableRoutes","i18n","useI18n","navigate","useNavigate","isLight","useTheme","iconStyle","languages","Language","Layout","Size","Row","Col","location","Client","BuilderSelect","Menus","JSON","OverlayAlertsWithButton","Dropdown","e","TranslationOutlined"],"mappings":";;;;;;;;;;;;AAgBO,MAAMA,SAAgC,CAAC,EAAEC,YAAY,EAAE;IAC5D,MAAM,EAAEC,IAAI,EAAE,GAAGC;IAEjB,MAAMC,WAAWC;IACjB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IACpB,MAAMC,YAAiC;QACrC,SAAS;QACT,UAAU;QACV,WAAW;QACX,eAAe;QACf,QAAQ;QACR,OAAO;QACP,YAAY;IACd;IACA,MAAMC,YAAY;QAChB;YAAE,OAAOC,SAAS,EAAE;YAAE,OAAO;QAAK;QAClC;YAAE,OAAOA,SAAS,EAAE;YAAE,OAAO;QAAU;KACxC;IAED,OAAO,WAAP,GACE,IAACC,OAAO,MAAM;QACZ,OAAO;YACL,QAAQC,KAAK,YAAY;YACzB,SAAS;YACT,aAAaA,KAAK,WAAW;YAC7B,cAAcA,KAAK,WAAW;YAC9B,UAAU;YACV,QAAQ;YACR,OAAO;YACP,iBAAiBN,UAAU,SAAS;YACpC,YAAY;QACd;kBAEA,mBAACO,KAAGA;YACF,SAAQ;YACR,OAAM;YACN,OAAO;gBAAE,QAAQD,KAAK,YAAY;YAAC;YACnC,MAAM;;8BAEN,IAACE,KAAGA;oBACF,OAAO;wBACL,QAAQF,KAAK,YAAY;wBACzB,YAAY,GAAGA,KAAK,YAAY,GAAG,EAAE,EAAE,CAAC;oBAC1C;8BAEA,mBAAC;wBACC,OAAO;4BACL,SAAS;4BACT,gBAAgB;4BAChB,YAAY;4BACZ,QAAQ;wBACV;;0CAEA,IAAC;gCACC,KAAI;gCACJ,WAAU;gCACV,KAAI;gCACJ,SAAS;oCACPG,SAAS,IAAI,CAAC,QAAQ,CAACC,OAAO,oBAAoB,CAAC,QAAQ,KAC3DD,SAAS,QAAQ,CAAC,QAAQ,CAAC,cACtBA,SAAS,IAAI,GAAG,uBACjBX,SAASY,OAAO,oBAAoB,CAAC,IAAI;gCAC/C;;0CAEF,IAACC,eAAaA,CAAAA;;;;8BAGlB,IAACC,OAAKA;oBAEJ,OAAO;wBAAE,YAAY;oBAAO;mBADvBjB,eAAekB,KAAK,SAAS,CAAClB,gBAAgB;8BAIrD,IAACa,KAAGA;oBAAC,MAAM;8BACT,mBAACD,KAAGA;wBACF,OAAM;wBACN,SAAQ;wBACR,OAAO;4BAAE,QAAQD,KAAK,YAAY;wBAAC;wBACnC,MAAM;wBACN,QAAQ;4BAACA,KAAK,WAAW,GAAG;4BAAG;yBAAE;;0CAEjC,IAACE,KAAGA;0CACF,kBAACM,yBAAuBA,CAAAA;;0CAe1B,IAACN,KAAGA;0CACF,kBAACO,UAAQA;oCACP,cAAc;wCAAE,QAAQ;oCAAK;oCAC7B,MAAM;wCACJ,OAAOZ,UAAU,GAAG,CAAC,CAACa,IAAO;gDAC3B,OAAOA,EAAE,KAAK;gDACd,KAAKA,EAAE,KAAK;gDACZ;oDACEpB,KAAK,cAAc,CAACoB,EAAE,KAAK;gDAC7B;4CACF;wCACA,cAAc;4CAACpB,KAAK,QAAQ;yCAAC;oCAC/B;8CAEA,kBAACqB,qBAAmBA;wCAClB,WAAU;wCACV,OAAOf;;;;;;;;;;AASzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/index.mjs","sources":["../../../src/components/Layout/index.tsx"],"sourcesContent":["import { PropsWithChildren, useContext, useEffect, useState } from 'react';\nimport { FloatButton, Layout as L } from 'antd';\nimport { Language, MAIN_BG, Size } from '../../constants';\nimport { Header } from './header';\nimport {\n useLocale,\n useI18n,\n getFirstVisitFromStorage,\n setFirstVisitToStorage,\n getLanguage,\n useUrlQuery,\n getEnableRoutesFromUrlQuery,\n} from '../../utils';\nimport { Progress } from './progress';\nimport { ConfigContext } from '../../config';\n\nexport interface LayoutProps {\n children: JSX.Element;\n}\n\nexport const Layout = (props: PropsWithChildren<LayoutProps>): JSX.Element => {\n const locale = useLocale();\n const { i18n } = useI18n();\n const { children } = props;\n const query = useUrlQuery();\n const [enableRoutes, setEnableRoutes] = useState<string[] | undefined>(\n () => getEnableRoutesFromUrlQuery() || undefined,\n );\n\n useEffect(() => {\n let currentLocale = locale;\n // Check if the user is visiting the site for the first time\n const visited = getFirstVisitFromStorage();\n if (!visited) {\n setFirstVisitToStorage('1');\n const targetLang = window.navigator.language.split('-')[0];\n const userLang = getLanguage(targetLang);\n\n if (Object.values(Language).includes(userLang)) {\n currentLocale = userLang;\n }\n }\n\n if (i18n.language !== currentLocale) {\n i18n.changeLanguage(currentLocale);\n }\n }, [locale]);\n\n // Listen for enableRoutes changes in URL query parameters\n useEffect(() => {\n const newEnableRoutes = getEnableRoutesFromUrlQuery();\n setEnableRoutes(newEnableRoutes || undefined);\n }, [query]);\n\n const ctx = useContext(ConfigContext);\n return (\n <L>\n {!ctx.embedded ? <Header enableRoutes={enableRoutes} /> : null}\n <Progress />\n <L.Content\n style={{\n height: '100%',\n minHeight: '100vh',\n padding: Size.BasePadding,\n marginTop: !ctx.embedded ? Size.NavBarHeight : 0,\n background: MAIN_BG,\n }}\n >\n {children}\n <FloatButton.BackTop />\n </L.Content>\n </L>\n );\n};\n"],"names":["Layout","props","locale","useLocale","i18n","useI18n","children","query","useUrlQuery","enableRoutes","setEnableRoutes","useState","getEnableRoutesFromUrlQuery","undefined","useEffect","currentLocale","visited","getFirstVisitFromStorage","setFirstVisitToStorage","targetLang","window","userLang","getLanguage","Object","Language","newEnableRoutes","ctx","useContext","ConfigContext","L","Header","Progress","Size","MAIN_BG","FloatButton"],"mappings":";;;;;;;;AAoBO,MAAMA,gBAAS,CAACC;IACrB,MAAMC,SAASC;IACf,MAAM,EAAEC,IAAI,EAAE,GAAGC;IACjB,MAAM,EAAEC,QAAQ,EAAE,GAAGL;IACrB,MAAMM,QAAQC;IACd,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SACtC,IAAMC,iCAAiCC;IAGzCC,UAAU;QACR,IAAIC,gBAAgBb;QAEpB,MAAMc,UAAUC;QAChB,IAAI,CAACD,SAAS;YACZE,uBAAuB;YACvB,MAAMC,aAAaC,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1D,MAAMC,WAAWC,YAAYH;YAE7B,IAAII,OAAO,MAAM,CAACC,UAAU,QAAQ,CAACH,WACnCN,gBAAgBM;QAEpB;QAEA,IAAIjB,KAAK,QAAQ,KAAKW,eACpBX,KAAK,cAAc,CAACW;IAExB,GAAG;QAACb;KAAO;IAGXY,UAAU;QACR,MAAMW,kBAAkBb;QACxBF,gBAAgBe,mBAAmBZ;IACrC,GAAG;QAACN;KAAM;IAEV,MAAMmB,MAAMC,WAAWC;IACvB,OAAO,WAAP,GACE,KAACC,QAACA;;YACEH,IAAI,QAAQ,GAA4C,OAAzC,WAAH,GAAG,IAACI,QAAMA;gBAAC,cAAcrB;;0BACvC,IAACsB,UAAQA,CAAAA;0BACT,KAACF,OAAAA,OAAS;gBACR,OAAO;oBACL,QAAQ;oBACR,WAAW;oBACX,SAASG,KAAK,WAAW;oBACzB,WAAW,AAACN,IAAI,QAAQ,GAAuB,IAApBM,KAAK,YAAY;oBAC5C,YAAYC;gBACd;;oBAEC3B;kCACD,IAAC4B,YAAY,OAAO;;;;;AAI5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/menus.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/menus.mjs","sources":["../../../src/components/Layout/menus.tsx"],"sourcesContent":["import {\n BoxPlotFilled,\n MenuOutlined,\n FundFilled,\n ApiFilled,\n NodeIndexOutlined,\n} from '@ant-design/icons';\nimport { Manifest, SDK } from '@rsdoctor/types';\nimport { Menu, MenuProps } from 'antd';\nimport React, { useEffect, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { Size } from '../../constants';\nimport * as OverallConstants from '../../pages/Overall/constants';\nimport {\n useI18n,\n hasBundle,\n hasCompile,\n getEnableRoutesFromUrlQuery,\n} from '../../utils';\nimport { withServerAPI } from '../Manifest';\nimport OverallActive from 'src/common/svg/navbar/overall-active.svg';\nimport OverallInActive from 'src/common/svg/navbar/overall-inactive.svg';\nimport CompileAnalysisActive from 'src/common/svg/navbar/compile-analysis-active.svg';\nimport CompileAnalysisInActive from 'src/common/svg/navbar/compile-analysis-inactive.svg';\nimport BundleSizeActive from 'src/common/svg/navbar/bundle-size-active.svg';\nimport BundleSizeInActive from 'src/common/svg/navbar/bundle-size-inactive.svg';\nimport {\n BundleSize,\n LoaderFiles,\n PluginsAnalyze,\n ModuleResolve,\n LoaderTimeline,\n} from 'src/pages';\nimport { CompileName } from './constants';\n\nconst BuilderSwitchName = 'builder-switcher';\n\nconst defaultInActive = {\n overall: <OverallInActive />,\n webpack: <CompileAnalysisInActive />,\n bundle: <BundleSizeInActive />,\n};\nconst MenusBase: React.FC<{\n style?: React.CSSProperties;\n routes: Manifest.RsdoctorManifestClientRoutes[];\n}> = (props) => {\n const { t } = useI18n();\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const [navIcon, setNavIcon] = useState(defaultInActive);\n const { routes: apiRoutes } = props;\n\n // Get enableRoutes from URL query as fallback\n const urlEnableRoutes = getEnableRoutesFromUrlQuery();\n const enableRoutes =\n apiRoutes && apiRoutes.length > 0\n ? apiRoutes\n : (urlEnableRoutes as Manifest.RsdoctorManifestClientRoutes[]) || [];\n\n useEffect(() => {\n if (pathname.includes('webpack')) {\n setNavIcon({\n ...defaultInActive,\n webpack: <CompileAnalysisActive />,\n });\n } else if (pathname.includes('overall') || pathname === '/') {\n setNavIcon({\n ...defaultInActive,\n overall: <OverallActive />,\n });\n } else if (pathname.includes('bundle')) {\n setNavIcon({\n ...defaultInActive,\n bundle: <BundleSizeActive />,\n });\n }\n }, [pathname]);\n\n const iconStyle: React.CSSProperties = {\n color: 'rgba(96, 102, 114)',\n };\n const items: MenuProps['items'] = [];\n\n if (enableRoutes.includes(Manifest.RsdoctorManifestClientRoutes.Overall)) {\n items.push({\n label: t(OverallConstants.name),\n key: OverallConstants.route,\n icon: navIcon.overall,\n children: [],\n onTitleClick(e) {\n navigate(e.key);\n },\n });\n }\n\n if (hasCompile(enableRoutes)) {\n items.push({\n label: t(CompileName),\n key: CompileName,\n icon: navIcon.webpack,\n children: [\n enableRoutes.includes(\n Manifest.RsdoctorManifestClientRoutes.WebpackLoaders,\n ) && {\n label: t(LoaderTimeline.name),\n key: LoaderTimeline.route,\n icon: <BoxPlotFilled style={iconStyle} />,\n },\n enableRoutes.includes(\n Manifest.RsdoctorManifestClientRoutes.WebpackLoaders,\n ) && {\n label: t(LoaderFiles.name),\n key: LoaderFiles.route,\n icon: <FundFilled style={iconStyle} />,\n },\n enableRoutes.includes(\n Manifest.RsdoctorManifestClientRoutes.ModuleResolve,\n ) && {\n label: t(ModuleResolve.name),\n key: ModuleResolve.route,\n icon: <NodeIndexOutlined style={iconStyle} />,\n },\n enableRoutes.includes(\n Manifest.RsdoctorManifestClientRoutes.WebpackPlugins,\n ) && {\n label: t(PluginsAnalyze.name),\n key: PluginsAnalyze.route,\n icon: <ApiFilled style={iconStyle} />,\n },\n ].filter((e) => Boolean(e)) as MenuProps['items'],\n });\n }\n\n if (hasBundle(enableRoutes)) {\n items.push({\n label: t(BundleSize.name),\n key: BundleSize.name,\n icon: navIcon.bundle,\n children: [],\n onTitleClick() {\n navigate(BundleSize.route);\n },\n });\n }\n\n const MenuComponent = (\n <Menu\n items={items}\n mode=\"horizontal\"\n key={enableRoutes.join('')}\n onClick={(e) => {\n if (!e.keyPath.includes(BuilderSwitchName)) {\n navigate(e.key);\n }\n }}\n overflowedIndicator={<MenuOutlined />}\n style={{\n height: Size.NavBarHeight,\n lineHeight: `${Size.NavBarHeight}px`,\n minWidth: 0,\n justifyContent: 'flex-end',\n ...props.style,\n }}\n selectedKeys={[pathname === '/' ? OverallConstants.route : pathname]}\n />\n );\n\n return <div style={{ marginLeft: '30px' }}>{MenuComponent}</div>;\n};\n\nexport const Menus = withServerAPI({\n api: SDK.ServerAPI.API.GetClientRoutes,\n responsePropName: 'routes',\n Component: MenusBase,\n fallbackComponent: () => null,\n showSkeleton: false,\n});\n"],"names":["BuilderSwitchName","defaultInActive","OverallInActive","CompileAnalysisInActive","BundleSizeInActive","MenusBase","props","t","useI18n","pathname","useLocation","navigate","useNavigate","navIcon","setNavIcon","useState","apiRoutes","urlEnableRoutes","getEnableRoutesFromUrlQuery","enableRoutes","useEffect","CompileAnalysisActive","OverallActive","BundleSizeActive","iconStyle","items","Manifest","OverallConstants","e","hasCompile","CompileName","LoaderTimeline","BoxPlotFilled","LoaderFiles","FundFilled","ModuleResolve","NodeIndexOutlined","PluginsAnalyze","ApiFilled","Boolean","hasBundle","BundleSize","MenuComponent","Menu","MenuOutlined","Size","Menus","withServerAPI","SDK"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/overall-icon.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/overall-icon.mjs","sources":["../../../src/components/Layout/overall-icon.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgOverallIcon = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={12} height={14} fill=\"none\" viewBox=\"0 0 12 14\" {...props}><path fill=\"#5E6673\" fillRule=\"evenodd\" d=\"M6.389.672a1 1 0 0 0-.977.013L.526 3.505l5.361 2.83 5.326-3.044zm-.992 12.777V7.206L.123 4.423v5.404a1 1 0 0 0 .5.866z\" clipRule=\"evenodd\" /><path fill=\"#5E6673\" fillOpacity={0.5} fillRule=\"evenodd\" d=\"M5.414.684h-.002L.606 3.46l.017-.01L5.397.693zm-.017 12.765V7.206L.123 4.423l5.274 2.783zm1-6.254 5.265-3.009q.008.064.008.13v5.511a1 1 0 0 1-.5.866L6.397 13.45z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgOverallIcon;"],"names":["SvgOverallIcon","props"],"mappings":";;AACA,MAAMA,iBAAiBC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,MAAK;gBAAU,UAAS;gBAAU,GAAE;gBAAyH,UAAS;;0BAAY,IAAC;gBAAK,MAAK;gBAAU,aAAa;gBAAK,UAAS;gBAAU,GAAE;gBAAoK,UAAS;;;;AAC3iB,qBAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/progress.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Layout/progress.mjs","sources":["../../../src/components/Layout/progress.tsx"],"sourcesContent":["import React from 'react';\nimport { Col, Progress as P, Row, Typography } from 'antd';\nimport { SDK } from '@rsdoctor/types';\nimport { Size } from 'src/constants';\nimport { withServerAPI } from '../Manifest';\n\nexport interface ProgressProps {\n progress: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.APIExtends.GetCompileProgress>;\n}\n\nconst ProgressBase: React.FC<ProgressProps> = ({ progress }) => {\n if (!progress) return null;\n\n const { percentage = 1, message } = progress;\n\n if (percentage >= 1) return null;\n\n const per = +(percentage * 100).toFixed(1);\n\n return (\n <Row\n wrap\n style={{\n width: '100%',\n position: 'fixed',\n top: Size.NavBarHeight,\n left: 1,\n zIndex: 99,\n }}\n >\n <Col span={Math.min(Math.floor(percentage * 24), 24)}>\n <P\n percent={100}\n status=\"active\"\n size=\"small\"\n format={() => (\n <Typography.Text\n style={{ fontSize: 12 }}\n type=\"secondary\"\n >{`${per}% ${message}`}</Typography.Text>\n )}\n />\n </Col>\n </Row>\n );\n};\n\nexport const Progress = withServerAPI({\n api: SDK.ServerAPI.APIExtends.GetCompileProgress,\n responsePropName: 'progress',\n Component: ProgressBase,\n fallbackComponent: () => null,\n showSkeleton: false,\n});\n"],"names":["ProgressBase","progress","percentage","message","per","Row","Size","Col","Math","P","Typography","Progress","withServerAPI","SDK"],"mappings":";;;;;;AAUA,MAAMA,eAAwC,CAAC,EAAEC,QAAQ,EAAE;IACzD,IAAI,CAACA,UAAU,OAAO;IAEtB,MAAM,EAAEC,aAAa,CAAC,EAAEC,OAAO,EAAE,GAAGF;IAEpC,IAAIC,cAAc,GAAG,OAAO;IAE5B,MAAME,MAAM,CAAEF,AAAAA,CAAAA,AAAa,MAAbA,UAAe,EAAG,OAAO,CAAC;IAExC,OAAO,WAAP,GACE,IAACG,KAAGA;QACF,MAAI;QACJ,OAAO;YACL,OAAO;YACP,UAAU;YACV,KAAKC,KAAK,YAAY;YACtB,MAAM;YACN,QAAQ;QACV;kBAEA,kBAACC,KAAGA;YAAC,MAAMC,KAAK,GAAG,CAACA,KAAK,KAAK,CAACN,AAAa,KAAbA,aAAkB;sBAC/C,kBAACO,UAACA;gBACA,SAAS;gBACT,QAAO;gBACP,MAAK;gBACL,QAAQ,kBACN,IAACC,WAAW,IAAI;wBACd,OAAO;4BAAE,UAAU;wBAAG;wBACtB,MAAK;kCACL,GAAGN,IAAI,EAAE,EAAED,SAAS;;;;;AAMlC;AAEO,MAAMQ,oBAAWC,cAAc;IACpC,KAAKC,IAAI,SAAS,CAAC,UAAU,CAAC,kBAAkB;IAChD,kBAAkB;IAClB,WAAWb;IACX,mBAAmB,IAAM;IACzB,cAAc;AAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/Analysis/files.mjs","sources":["webpack://@rsdoctor/components/./src/components/Loader/Analysis/files.tsx"],"sourcesContent":["import { CloseCircleOutlined } from '@ant-design/icons';\nimport { SDK } from '@rsdoctor/types';\nimport {\n Card,\n Col,\n Divider,\n Drawer,\n List,\n Popover,\n Row,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { get } from 'es-toolkit/compat';\nimport React, { useMemo, useState } from 'react';\nimport { drawerWidth, Size } from '../../../constants';\nimport {\n createFileStructures,\n DataNode,\n filterLoader,\n formatCosts,\n mapFileKey,\n} from '../../../utils';\nimport { FileTree } from '../../FileTree';\nimport { Keyword } from '../../Keyword';\nimport { ServerAPIProvider } from '../../Manifest';\nimport { LoaderExecutions } from '../executions';\nimport styles from './style.module.scss';\n\nconst ADDITION_LOADER_NUMBER = 3;\n\nexport const LoaderFiles: React.FC<{\n filetree: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetLoaderFileTree>;\n cwd: string;\n loaders: string[];\n filename: string;\n layer?: string;\n}> = (props) => {\n const { cwd, filetree } = props;\n const [drawerVisible, setDrawerVisible] = useState(false);\n const [resourcePath, setResourcePath] = useState('');\n const [loaderIndex, setLoaderIndex] = useState(0);\n const [selectedNode, setSelectedNode] = useState<DataNode | null>(null);\n\n const maxHeight = 800;\n\n const filteredFiles = useMemo(\n () =>\n filetree.filter((e) =>\n e.loaders.some((l) =>\n filterLoader(\n e.path,\n l.loader,\n props.filename,\n props.loaders,\n e.layer,\n props?.layer,\n ),\n ),\n ),\n [props.filename, props.loaders, props.layer],\n );\n\n const inlinedResourcePathKey = '__RESOURCEPATH__';\n\n const files = useMemo(() => {\n return createFileStructures({\n files: filteredFiles.map((e) => e.path),\n cwd,\n fileTitle(file, basename) {\n const { loaders, layer } = filetree.find((e) => e.path === file)!;\n\n const additionalLoaders: (Pick<\n SDK.LoaderTransformData,\n 'path' | 'loader' | 'errors'\n > & { costs: number })[] = [];\n\n loaders.forEach(\n (l, i) => i > ADDITION_LOADER_NUMBER && additionalLoaders.push(l),\n );\n\n return (\n <div\n style={{\n wordBreak: 'break-all',\n display: 'flex',\n cursor: 'pointer',\n }}\n onClick={() => {\n setLoaderIndex(0);\n setResourcePath(file);\n setDrawerVisible(true);\n }}\n >\n <div className={styles.box}>\n <div className={styles.keywords}>\n <Keyword text={basename.replace(/\\[.*?\\]/g, '')} keyword={''} />\n </div>\n </div>\n <div className={styles.dividerDiv} style={{ flex: 1 }}>\n <Divider className={styles.divider} dashed />\n </div>\n\n {layer && (\n <Tag color=\"cyan\" bordered={false}>\n {layer}\n </Tag>\n )}\n <Space>\n {loaders.slice(0, ADDITION_LOADER_NUMBER).map((e, i) => {\n const isError = e.errors && e.errors.length;\n const key = `${file}_${e.loader}_${i}`;\n if (i <= ADDITION_LOADER_NUMBER) {\n return (\n <Tooltip title={e.path} key={key}>\n <Typography.Text\n className={styles.textBox}\n style={{ color: isError ? '#f50' : 'inherit' }}\n onClick={(ev) => {\n ev.stopPropagation();\n setResourcePath(file);\n setLoaderIndex(i);\n setDrawerVisible(true);\n }}\n >\n <Typography.Text className={styles.text} ellipsis>\n {e.loader.match(/([^/]+-loader)/g)?.[0] || e.loader}\n </Typography.Text>\n <Divider type=\"vertical\" />\n {isError ? (\n <CloseCircleOutlined />\n ) : (\n <Typography.Text className={styles.text}>\n {formatCosts(e.costs)}\n </Typography.Text>\n )}\n </Typography.Text>\n </Tooltip>\n );\n }\n })}\n {additionalLoaders?.length ? (\n <Popover\n content={\n <List\n dataSource={additionalLoaders}\n renderItem={(e, i) => {\n const isError = e.errors && e.errors.length;\n const key = `${file}_${e.loader}_${i + ADDITION_LOADER_NUMBER}`;\n\n return (\n <List.Item>\n <Tooltip title={e.path} key={key}>\n <div style={{ paddingBottom: 5 }}>\n <Typography.Text\n className={styles.textBox}\n style={{\n color: isError ? '#f50' : 'inherit',\n }}\n onClick={(ev) => {\n ev.stopPropagation();\n setResourcePath(file);\n setLoaderIndex(i);\n setDrawerVisible(true);\n }}\n >\n <Typography.Text\n className={styles.text}\n ellipsis\n >\n {e.loader.match(/([^/]+-loader)/g)?.[0] ||\n e.loader}\n </Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text className={styles.text}>\n {formatCosts(e.costs)}\n </Typography.Text>\n </Typography.Text>\n </div>\n </Tooltip>\n </List.Item>\n );\n }}\n />\n }\n >\n <div className={styles.textBox}>\n <Typography.Text>···</Typography.Text>\n </div>\n </Popover>\n ) : (\n <></>\n )}\n </Space>\n </div>\n );\n },\n dirTitle(_dir, defaultTitle) {\n return (\n <div style={{ display: 'flex', cursor: 'pointer' }}>\n <Keyword text={defaultTitle} keyword={''} />\n </div>\n );\n },\n });\n }, [filteredFiles]);\n\n return (\n <Row style={{ width: '100%', marginLeft: 0 }} gutter={Size.BasePadding}>\n <Col span={24}>\n <Card\n title={\n <Space>\n <Typography.Text strong>Files</Typography.Text>\n <Typography.Text\n style={{\n fontSize: 12,\n fontWeight: 400,\n color: '#1C1F2399',\n opacity: 0.6,\n }}\n >\n Total Files: {filteredFiles.length}\n </Typography.Text>\n </Space>\n }\n bodyStyle={{\n overflow: 'auto',\n maxHeight,\n minHeight: '40rem',\n padding: 14,\n }}\n >\n <FileTree\n defaultExpandedKeys={mapFileKey(\n files,\n filteredFiles.length >= 100 ? 3 : 4,\n (node) => {\n const resourcePath: string = get(node, inlinedResourcePathKey)!;\n const isNodeModules =\n resourcePath.indexOf('/node_modules/') > -1;\n\n return !isNodeModules;\n },\n )}\n treeData={files}\n key={`${props.loaders.join('|')}_${props.filename}`}\n onSelect={(_e, info) => {\n if (!info.node.isLeaf) {\n setSelectedNode(info.node);\n }\n }}\n selectedKeys={selectedNode ? [selectedNode.key] : undefined}\n expandAction=\"click\"\n />\n <Drawer\n open={drawerVisible}\n onClose={() => setDrawerVisible(false)}\n maskClosable\n width={drawerWidth}\n zIndex={999}\n bodyStyle={{ padding: 0 }}\n >\n {drawerVisible ? (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetLoaderFileDetails}\n body={{ path: resourcePath }}\n >\n {(data) => (\n <LoaderExecutions data={data} cwd={cwd} index={loaderIndex} />\n )}\n </ServerAPIProvider>\n ) : null}\n </Drawer>\n </Card>\n </Col>\n\n <Drawer\n open={!!selectedNode}\n onClose={() => setSelectedNode(null)}\n maskClosable\n width={drawerWidth}\n zIndex={999}\n bodyStyle={{ padding: 0 }}\n >\n {selectedNode && (\n <Row>\n <Col span={24}>\n <Card\n title={\n <Tooltip\n title={React.cloneElement(\n selectedNode.title as React.ReactElement,\n { style: { color: '#fff' } },\n )}\n >\n <Typography.Text>\n {`Statistics of`}\n {selectedNode.title as React.ReactNode}\n </Typography.Text>\n </Tooltip>\n }\n >\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetLoaderFolderStatistics}\n body={{ folder: selectedNode[inlinedResourcePathKey] }}\n >\n {(tableData) => (\n <Table\n style={{\n width: '100%',\n maxHeight,\n height: '40rem',\n overflowY: 'scroll',\n wordBreak: 'break-all',\n }}\n pagination={false}\n bordered\n rowKey={(e) => e.loader}\n columns={[\n {\n title: 'Loader Name',\n dataIndex: 'loader',\n },\n {\n title: 'Files',\n dataIndex: 'files',\n },\n {\n title: 'Total Duration',\n dataIndex: 'costs',\n render: (v) => (\n <Typography.Text strong>\n {formatCosts(v)}\n </Typography.Text>\n ),\n sorter: (a, b) => a.costs - b.costs,\n defaultSortOrder: 'descend',\n sortDirections: ['descend', 'ascend'],\n },\n ]}\n dataSource={tableData!}\n />\n )}\n </ServerAPIProvider>\n </Card>\n </Col>\n </Row>\n )}\n </Drawer>\n </Row>\n );\n};\n"],"names":["ADDITION_LOADER_NUMBER","LoaderFiles","props","cwd","filetree","drawerVisible","setDrawerVisible","useState","resourcePath","setResourcePath","loaderIndex","setLoaderIndex","selectedNode","setSelectedNode","maxHeight","filteredFiles","useMemo","e","l","filterLoader","inlinedResourcePathKey","files","createFileStructures","file","basename","loaders","layer","additionalLoaders","i","styles","Keyword","Divider","Tag","Space","isError","key","Tooltip","Typography","ev","CloseCircleOutlined","formatCosts","Popover","List","_dir","defaultTitle","Row","Size","Col","Card","FileTree","mapFileKey","node","get","isNodeModules","_e","info","undefined","Drawer","drawerWidth","ServerAPIProvider","SDK","data","LoaderExecutions","React","tableData","Table","v","a","b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/Loader/Analysis/files.mjs","sources":["../../../../src/components/Loader/Analysis/files.tsx"],"sourcesContent":["import { CloseCircleOutlined } from '@ant-design/icons';\nimport { SDK } from '@rsdoctor/types';\nimport {\n Card,\n Col,\n Divider,\n Drawer,\n List,\n Popover,\n Row,\n Space,\n Table,\n Tag,\n Tooltip,\n Typography,\n} from 'antd';\nimport { get } from 'es-toolkit/compat';\nimport React, { useMemo, useState } from 'react';\nimport { drawerWidth, Size } from '../../../constants';\nimport {\n createFileStructures,\n DataNode,\n filterLoader,\n formatCosts,\n mapFileKey,\n} from '../../../utils';\nimport { FileTree } from '../../FileTree';\nimport { Keyword } from '../../Keyword';\nimport { ServerAPIProvider } from '../../Manifest';\nimport { LoaderExecutions } from '../executions';\nimport styles from './style.module.scss';\n\nconst ADDITION_LOADER_NUMBER = 3;\n\nexport const LoaderFiles: React.FC<{\n filetree: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetLoaderFileTree>;\n cwd: string;\n loaders: string[];\n filename: string;\n layer?: string;\n}> = (props) => {\n const { cwd, filetree } = props;\n const [drawerVisible, setDrawerVisible] = useState(false);\n const [resourcePath, setResourcePath] = useState('');\n const [loaderIndex, setLoaderIndex] = useState(0);\n const [selectedNode, setSelectedNode] = useState<DataNode | null>(null);\n\n const maxHeight = 800;\n\n const filteredFiles = useMemo(\n () =>\n filetree.filter((e) =>\n e.loaders.some((l) =>\n filterLoader(\n e.path,\n l.loader,\n props.filename,\n props.loaders,\n e.layer,\n props?.layer,\n ),\n ),\n ),\n [props.filename, props.loaders, props.layer],\n );\n\n const inlinedResourcePathKey = '__RESOURCEPATH__';\n\n const files = useMemo(() => {\n return createFileStructures({\n files: filteredFiles.map((e) => e.path),\n cwd,\n fileTitle(file, basename) {\n const { loaders, layer } = filetree.find((e) => e.path === file)!;\n\n const additionalLoaders: (Pick<\n SDK.LoaderTransformData,\n 'path' | 'loader' | 'errors'\n > & { costs: number })[] = [];\n\n loaders.forEach(\n (l, i) => i > ADDITION_LOADER_NUMBER && additionalLoaders.push(l),\n );\n\n return (\n <div\n style={{\n wordBreak: 'break-all',\n display: 'flex',\n cursor: 'pointer',\n }}\n onClick={() => {\n setLoaderIndex(0);\n setResourcePath(file);\n setDrawerVisible(true);\n }}\n >\n <div className={styles.box}>\n <div className={styles.keywords}>\n <Keyword text={basename.replace(/\\[.*?\\]/g, '')} keyword={''} />\n </div>\n </div>\n <div className={styles.dividerDiv} style={{ flex: 1 }}>\n <Divider className={styles.divider} dashed />\n </div>\n\n {layer && (\n <Tag color=\"cyan\" bordered={false}>\n {layer}\n </Tag>\n )}\n <Space>\n {loaders.slice(0, ADDITION_LOADER_NUMBER).map((e, i) => {\n const isError = e.errors && e.errors.length;\n const key = `${file}_${e.loader}_${i}`;\n if (i <= ADDITION_LOADER_NUMBER) {\n return (\n <Tooltip title={e.path} key={key}>\n <Typography.Text\n className={styles.textBox}\n style={{ color: isError ? '#f50' : 'inherit' }}\n onClick={(ev) => {\n ev.stopPropagation();\n setResourcePath(file);\n setLoaderIndex(i);\n setDrawerVisible(true);\n }}\n >\n <Typography.Text className={styles.text} ellipsis>\n {e.loader.match(/([^/]+-loader)/g)?.[0] || e.loader}\n </Typography.Text>\n <Divider type=\"vertical\" />\n {isError ? (\n <CloseCircleOutlined />\n ) : (\n <Typography.Text className={styles.text}>\n {formatCosts(e.costs)}\n </Typography.Text>\n )}\n </Typography.Text>\n </Tooltip>\n );\n }\n })}\n {additionalLoaders?.length ? (\n <Popover\n content={\n <List\n dataSource={additionalLoaders}\n renderItem={(e, i) => {\n const isError = e.errors && e.errors.length;\n const key = `${file}_${e.loader}_${i + ADDITION_LOADER_NUMBER}`;\n\n return (\n <List.Item>\n <Tooltip title={e.path} key={key}>\n <div style={{ paddingBottom: 5 }}>\n <Typography.Text\n className={styles.textBox}\n style={{\n color: isError ? '#f50' : 'inherit',\n }}\n onClick={(ev) => {\n ev.stopPropagation();\n setResourcePath(file);\n setLoaderIndex(i);\n setDrawerVisible(true);\n }}\n >\n <Typography.Text\n className={styles.text}\n ellipsis\n >\n {e.loader.match(/([^/]+-loader)/g)?.[0] ||\n e.loader}\n </Typography.Text>\n <Divider type=\"vertical\" />\n <Typography.Text className={styles.text}>\n {formatCosts(e.costs)}\n </Typography.Text>\n </Typography.Text>\n </div>\n </Tooltip>\n </List.Item>\n );\n }}\n />\n }\n >\n <div className={styles.textBox}>\n <Typography.Text>···</Typography.Text>\n </div>\n </Popover>\n ) : (\n <></>\n )}\n </Space>\n </div>\n );\n },\n dirTitle(_dir, defaultTitle) {\n return (\n <div style={{ display: 'flex', cursor: 'pointer' }}>\n <Keyword text={defaultTitle} keyword={''} />\n </div>\n );\n },\n });\n }, [filteredFiles]);\n\n return (\n <Row style={{ width: '100%', marginLeft: 0 }} gutter={Size.BasePadding}>\n <Col span={24}>\n <Card\n title={\n <Space>\n <Typography.Text strong>Files</Typography.Text>\n <Typography.Text\n style={{\n fontSize: 12,\n fontWeight: 400,\n color: '#1C1F2399',\n opacity: 0.6,\n }}\n >\n Total Files: {filteredFiles.length}\n </Typography.Text>\n </Space>\n }\n bodyStyle={{\n overflow: 'auto',\n maxHeight,\n minHeight: '40rem',\n padding: 14,\n }}\n >\n <FileTree\n defaultExpandedKeys={mapFileKey(\n files,\n filteredFiles.length >= 100 ? 3 : 4,\n (node) => {\n const resourcePath: string = get(node, inlinedResourcePathKey)!;\n const isNodeModules =\n resourcePath.indexOf('/node_modules/') > -1;\n\n return !isNodeModules;\n },\n )}\n treeData={files}\n key={`${props.loaders.join('|')}_${props.filename}`}\n onSelect={(_e, info) => {\n if (!info.node.isLeaf) {\n setSelectedNode(info.node);\n }\n }}\n selectedKeys={selectedNode ? [selectedNode.key] : undefined}\n expandAction=\"click\"\n />\n <Drawer\n open={drawerVisible}\n onClose={() => setDrawerVisible(false)}\n maskClosable\n width={drawerWidth}\n zIndex={999}\n bodyStyle={{ padding: 0 }}\n >\n {drawerVisible ? (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetLoaderFileDetails}\n body={{ path: resourcePath }}\n >\n {(data) => (\n <LoaderExecutions data={data} cwd={cwd} index={loaderIndex} />\n )}\n </ServerAPIProvider>\n ) : null}\n </Drawer>\n </Card>\n </Col>\n\n <Drawer\n open={!!selectedNode}\n onClose={() => setSelectedNode(null)}\n maskClosable\n width={drawerWidth}\n zIndex={999}\n bodyStyle={{ padding: 0 }}\n >\n {selectedNode && (\n <Row>\n <Col span={24}>\n <Card\n title={\n <Tooltip\n title={React.cloneElement(\n selectedNode.title as React.ReactElement,\n { style: { color: '#fff' } },\n )}\n >\n <Typography.Text>\n {`Statistics of`}\n {selectedNode.title as React.ReactNode}\n </Typography.Text>\n </Tooltip>\n }\n >\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetLoaderFolderStatistics}\n body={{ folder: selectedNode[inlinedResourcePathKey] }}\n >\n {(tableData) => (\n <Table\n style={{\n width: '100%',\n maxHeight,\n height: '40rem',\n overflowY: 'scroll',\n wordBreak: 'break-all',\n }}\n pagination={false}\n bordered\n rowKey={(e) => e.loader}\n columns={[\n {\n title: 'Loader Name',\n dataIndex: 'loader',\n },\n {\n title: 'Files',\n dataIndex: 'files',\n },\n {\n title: 'Total Duration',\n dataIndex: 'costs',\n render: (v) => (\n <Typography.Text strong>\n {formatCosts(v)}\n </Typography.Text>\n ),\n sorter: (a, b) => a.costs - b.costs,\n defaultSortOrder: 'descend',\n sortDirections: ['descend', 'ascend'],\n },\n ]}\n dataSource={tableData!}\n />\n )}\n </ServerAPIProvider>\n </Card>\n </Col>\n </Row>\n )}\n </Drawer>\n </Row>\n );\n};\n"],"names":["ADDITION_LOADER_NUMBER","LoaderFiles","props","cwd","filetree","drawerVisible","setDrawerVisible","useState","resourcePath","setResourcePath","loaderIndex","setLoaderIndex","selectedNode","setSelectedNode","maxHeight","filteredFiles","useMemo","e","l","filterLoader","inlinedResourcePathKey","files","createFileStructures","file","basename","loaders","layer","additionalLoaders","i","styles","Keyword","Divider","Tag","Space","isError","key","Tooltip","Typography","ev","CloseCircleOutlined","formatCosts","Popover","List","_dir","defaultTitle","Row","Size","Col","Card","FileTree","mapFileKey","node","get","isNodeModules","_e","info","undefined","Drawer","drawerWidth","ServerAPIProvider","SDK","data","LoaderExecutions","React","tableData","Table","v","a","b"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/Analysis/index.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Loader/Analysis/index.mjs","sources":["../../../../src/components/Loader/Analysis/index.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { ConfigProvider } from 'antd';\nimport React, { useState } from 'react';\nimport { ConfigContext } from 'src/config';\nimport { getLocale } from 'src/utils';\nimport { ServerAPIProvider, withServerAPI } from '../../Manifest';\nimport { ISelectLoaderProps, LoaderCommonSelect } from '../../Select';\nimport { LoaderFiles } from './files';\nimport styles from './style.module.scss';\n\nexport const LoaderAnalysisBase: React.FC<{\n cwd: string;\n}> = ({ cwd }) => {\n const [store, setStore] = useState({\n filename: '',\n loaders: [] as string[],\n layer: '',\n } as ISelectLoaderProps);\n\n return (\n <ConfigContext.Consumer>\n {(v) => {\n return (\n <ConfigProvider\n locale={getLocale(v.locale)}\n theme={{\n token: {\n padding: 16,\n fontSize: 14,\n },\n }}\n >\n <div className={styles.loaderAnalysis}>\n <ServerAPIProvider api={SDK.ServerAPI.API.GetLoaderNames}>\n {(loaderNames) => (\n <LoaderCommonSelect\n onChange={(e) => setStore(e)}\n loaderNames={loaderNames}\n />\n )}\n </ServerAPIProvider>\n <ServerAPIProvider api={SDK.ServerAPI.API.GetLoaderFileTree}>\n {(filetree) => (\n <LoaderFiles\n filename={store.filename}\n filetree={filetree}\n loaders={store.loaders}\n layer={store.layer}\n cwd={cwd}\n />\n )}\n </ServerAPIProvider>\n </div>\n </ConfigProvider>\n );\n }}\n </ConfigContext.Consumer>\n );\n};\n\nexport const LoaderAnalysis = withServerAPI({\n api: SDK.ServerAPI.API.LoadDataByKey,\n body: { key: 'root' },\n responsePropName: 'cwd',\n Component: LoaderAnalysisBase,\n});\n"],"names":["LoaderAnalysisBase","cwd","store","setStore","useState","ConfigContext","v","ConfigProvider","getLocale","styles","ServerAPIProvider","SDK","loaderNames","LoaderCommonSelect","e","filetree","LoaderFiles","LoaderAnalysis","withServerAPI"],"mappings":";;;;;;;;;;AAUO,MAAMA,qBAER,CAAC,EAAEC,GAAG,EAAE;IACX,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAAS;QACjC,UAAU;QACV,SAAS,EAAE;QACX,OAAO;IACT;IAEA,OAAO,WAAP,GACE,IAACC,cAAc,QAAQ;kBACpB,CAACC,IACO,WAAP,GACE,IAACC,gBAAcA;gBACb,QAAQC,UAAUF,EAAE,MAAM;gBAC1B,OAAO;oBACL,OAAO;wBACL,SAAS;wBACT,UAAU;oBACZ;gBACF;0BAEA,mBAAC;oBAAI,WAAWG,aAAAA,cAAqB;;sCACnC,IAACC,mBAAiBA;4BAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;sCACrD,CAACC,cAAAA,WAAAA,GACA,IAACC,oBAAkBA;oCACjB,UAAU,CAACC,IAAMX,SAASW;oCAC1B,aAAaF;;;sCAInB,IAACF,mBAAiBA;4BAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,iBAAiB;sCACxD,CAACI,WAAAA,WAAAA,GACA,IAACC,aAAWA;oCACV,UAAUd,MAAM,QAAQ;oCACxB,UAAUa;oCACV,SAASb,MAAM,OAAO;oCACtB,OAAOA,MAAM,KAAK;oCAClB,KAAKD;;;;;;;AAUzB;AAEO,MAAMgB,iBAAiBC,cAAc;IAC1C,KAAKP,IAAI,SAAS,CAAC,GAAG,CAAC,aAAa;IACpC,MAAM;QAAE,KAAK;IAAO;IACpB,kBAAkB;IAClB,WAAWX;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/Analysis/input.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Loader/Analysis/input.mjs","sources":["../../../../src/components/Loader/Analysis/input.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgInput = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={10} height={12} fill=\"none\" viewBox=\"0 0 10 12\" {...props}><path fill=\"#FAAD14\" fillRule=\"evenodd\" d=\"M3.151 7.98h-1.85a.925.925 0 0 1-.924-.925V1.508c0-.511.414-.925.925-.925h7.396c.511 0 .925.414.925.925v5.547c0 .51-.414.924-.925.924H6.85V6.13a1.85 1.85 0 0 0-3.698 0z\" clipRule=\"evenodd\" /><path fill=\"#FAAD14\" d=\"M4.076 9.829a.925.925 0 0 0 1.849 0V6.13a.925.925 0 0 0-1.85 0z\" /><path fill=\"#FAAD14\" d=\"M5 11.416 7.402 8.92H2.598z\" /></svg>;\nexport default SvgInput;"],"names":["SvgInput","props"],"mappings":";;AACA,MAAMA,WAAWC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,MAAK;gBAAU,UAAS;gBAAU,GAAE;gBAA2K,UAAS;;0BAAY,IAAC;gBAAK,MAAK;gBAAU,GAAE;;0BAAoE,IAAC;gBAAK,MAAK;gBAAU,GAAE;;;;AAChe,cAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/Analysis/output.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Loader/Analysis/output.mjs","sources":["../../../../src/components/Loader/Analysis/output.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgOutput = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" viewBox=\"0 0 16 16\" {...props}><rect width={16} height={16} fill=\"#F6FFED\" rx={2} /><path fill=\"#52C41A\" fillRule=\"evenodd\" d=\"M4.302 6.02a.925.925 0 0 0-.925.925v5.547c0 .51.414.925.925.925h7.396c.511 0 .925-.414.925-.925V6.945a.925.925 0 0 0-.925-.925zm5.547 0H6.151v1.85a1.85 1.85 0 0 0 3.698 0z\" clipRule=\"evenodd\" /><path fill=\"#52C41A\" d=\"M7.076 4.171a.925.925 0 0 1 1.849 0V7.87a.925.925 0 0 1-1.85 0z\" /><path fill=\"#52C41A\" d=\"m8 2.584 2.402 2.496H5.598z\" /></svg>;\nexport default SvgOutput;"],"names":["SvgOutput","props"],"mappings":";;AACA,MAAMA,YAAYC,CAAAA,QAAAA,WAAAA,GAAS,KAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;;0BAAE,IAAC;gBAAK,OAAO;gBAAI,QAAQ;gBAAI,MAAK;gBAAU,IAAI;;0BAAK,IAAC;gBAAK,MAAK;gBAAU,UAAS;gBAAU,GAAE;gBAA8K,UAAS;;0BAAY,IAAC;gBAAK,MAAK;gBAAU,GAAE;;0BAAoE,IAAC;gBAAK,MAAK;gBAAU,GAAE;;;;AACzhB,eAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/Analysis/style.module.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Loader/Analysis/style.module.mjs","sources":["../../../../src/components/Loader/Analysis/style.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./style_module.css\"\nexport default {\"loaderAnalysis\":\"loaderAnalysis-h6mG3n\",\"dividerDiv\":\"dividerDiv-hrfVKQ\",\"divider\":\"divider-hnPRxv\",\"box\":\"box-lFdvrG\",\"keyword\":\"keyword-UO64w1\",\"textBox\":\"textBox-sVZZ_A\",\"text\":\"text-omPvlh\",\"space\":\"space-qT5CaN\",\"executions\":\"executions-uZxmQC\",\"timeline\":\"timeline-wMFXyU\",\"loader\":\"loader-PHR4ca\",\"selected\":\"selected-wUMOH3\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,gBAAiB;IAAwB,YAAa;IAAoB,SAAU;IAAiB,KAAM;IAAa,SAAU;IAAiB,SAAU;IAAiB,MAAO;IAAc,OAAQ;IAAe,YAAa;IAAoB,UAAW;IAAkB,QAAS;IAAgB,UAAW;AAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/executions.mjs","sources":["webpack://@rsdoctor/components/./src/components/Loader/executions.tsx"],"sourcesContent":["import { ClockCircleTwoTone } from '@ant-design/icons';\nimport { SDK } from '@rsdoctor/types';\nimport {\n Col,\n Divider,\n Empty,\n List,\n Row,\n Space,\n Tabs,\n Tag,\n Timeline,\n Tooltip,\n Typography,\n} from 'antd';\nimport dayjs from 'dayjs';\nimport { PropsWithChildren, useCallback, useState } from 'react';\nimport InputIcon from 'src/common/svg/loader/input.svg';\nimport OutputIcon from 'src/common/svg/loader/output.svg';\nimport StepIcon from 'src/common/svg/loader/step.svg';\nimport { Size } from '../../constants';\nimport { beautifyPath, formatCosts, useTheme } from '../../utils';\nimport { CodeViewer, DiffViewer } from '../base';\nimport { Card } from '../Card';\nimport { CodeOpener } from '../Opener';\nimport { Title } from '../Title';\nimport styles from './Analysis/style.module.scss';\n\ninterface LoaderExecutionsProps {\n cwd: string;\n data: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetLoaderFileDetails>;\n index?: number;\n}\n\nconst LoaderPropsItem = ({\n loader,\n resource,\n cwd,\n}: {\n loader: SDK.LoaderTransformData & {\n costs: number;\n };\n resource: SDK.ResourceData;\n cwd: string;\n}): JSX.Element => {\n return (\n <Card\n title={'Loader Details'}\n style={{ border: 'none' }}\n extra={\n <Tag icon={<ClockCircleTwoTone />} color=\"default\">\n {dayjs(loader.startAt).format('YYYY-MM-DD HH:mm:ss')}\n </Tag>\n }\n >\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n {loader.isPitch ? <Typography.Text code>pitch</Typography.Text> : null}\n <List size=\"large\" bordered>\n <List.Item>\n <Typography.Text strong>{'File Path'}</Typography.Text>\n <div>{beautifyPath(resource.path, cwd)}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Resource Path'}</Typography.Text>\n <CodeOpener cwd={cwd} url={resource.path} loc=\"\" disabled />\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Resource Query'}</Typography.Text>\n <div>{resource.queryRaw || '-'}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Duration'}</Typography.Text>\n <div>{formatCosts(loader.costs)}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Loader'}</Typography.Text>\n <div>\n <Typography.Text code>{loader.loader}</Typography.Text>\n </div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Loader Index'}</Typography.Text>\n <div>{`${loader.loaderIndex}`}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Loader Path'}</Typography.Text>\n <CodeOpener cwd={cwd} url={loader.path} loc=\"\" disabled />\n </List.Item>\n <List.Item>\n <div style={{ width: 180 }}>\n <Typography.Text strong>{'Options'}</Typography.Text>\n </div>\n <Divider type=\"vertical\" />\n <Typography.Paragraph\n ellipsis={{\n rows: 2,\n expandable: true,\n symbol: 'more',\n }}\n copyable\n >\n {JSON.stringify(loader.options || '-')}\n </Typography.Paragraph>\n </List.Item>\n </List>\n </Space>\n </Card>\n );\n};\n\nexport const LoaderExecutions = ({\n data,\n cwd,\n index,\n}: PropsWithChildren<LoaderExecutionsProps>): JSX.Element => {\n const { loaders, resource } = data;\n const [currentIndex, setCurrentIndex] = useState(index || 0);\n const { theme } = useTheme();\n const isLight = theme === 'light';\n const loader = loaders[currentIndex];\n const before = loader.input || '';\n const leftSpan = 5;\n const hasError = loader.errors && loader.errors.length;\n const [activeKey, setActiveKey] = useState('loaderDetails');\n const onChange = useCallback((key: string) => {\n setActiveKey(key);\n }, []);\n\n return (\n <Row className={styles.executions} style={{ height: '100%' }}>\n <Col\n span={leftSpan}\n style={{\n borderRight: isLight ? `1px solid #f0f0f0` : undefined,\n padding: Size.BasePadding,\n }}\n >\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n <Title text=\"Executions\" />\n <Timeline mode=\"left\" style={{ marginTop: Size.BasePadding }}>\n {loaders.map((e, i, arr) => {\n const { loader, isPitch } = e;\n const costs = formatCosts(e.costs);\n return (\n <Timeline.Item\n dot={\n isPitch ? (\n <Tag style={{ marginLeft: 1, fontWeight: 500 }}>\n pitch\n </Tag>\n ) : (\n <ClockCircleTwoTone />\n )\n }\n style={{ paddingBottom: 10, textAlign: 'center' }}\n key={i}\n >\n <Row align=\"middle\" justify=\"space-between\" gutter={[0, 10]}>\n <Col span={24} className={styles.timeline}>\n <Tooltip title={loader} trigger=\"hover\">\n <div\n className={`${styles.box} ${currentIndex === i ? styles.selected : ''}`}\n onClick={() => {\n setCurrentIndex(i);\n }}\n style={{ textAlign: 'left' }}\n >\n <div>\n <Typography.Text style={{ color: '#000' }}>\n {costs.match(/[0-9]*\\.?[0-9]+/g)?.[0]}\n </Typography.Text>\n {` `}\n <Typography.Text\n style={{ color: 'rgba(0,0,0,0.45)' }}\n >\n {costs.match(/[a-zA-Z]+/g)}\n </Typography.Text>\n </div>\n <Typography.Text\n style={{ color: 'rgba(0,0,0,0.65)' }}\n className={styles.loader}\n >\n {loader}\n </Typography.Text>\n </div>\n </Tooltip>\n </Col>\n </Row>\n {i === arr.length - 1 ? null : (\n <div style={{ paddingTop: 10 }}>\n <StepIcon />\n </div>\n )}\n </Timeline.Item>\n );\n })}\n </Timeline>\n </Space>\n </Col>\n <Col span={24 - leftSpan} style={{ height: '100%' }}>\n <Tabs\n type=\"card\"\n defaultActiveKey=\"loaderDetails\"\n activeKey={activeKey}\n items={[\n {\n label: 'Loader Props',\n key: 'loaderProps',\n children: (\n <LoaderPropsItem\n loader={loader}\n resource={resource}\n cwd={cwd}\n />\n ),\n },\n {\n label: 'Loader Details',\n key: 'loaderDetails',\n children: (\n <div style={{ height: '100%' }}>\n {hasError ? (\n <Col span={24} style={{ height: '53%', minHeight: 400 }}>\n <div\n style={{\n padding: Size.BasePadding,\n borderTop: `1px solid ${isLight ? '#f0f0f0' : 'rgba(253, 253, 253, 0.12)'}`,\n borderBottom: `1px solid ${isLight ? '#f0f0f0' : 'rgba(253, 253, 253, 0.12)'}`,\n }}\n >\n <Title\n text={`the error stack of [${loader.loader}] ${loader.isPitch ? 'pitch' : ''}`}\n />\n </div>\n <div style={{ height: '90%' }}>\n <CodeViewer\n code={loader.errors[0].message}\n lang=\"javascript\"\n />\n </div>\n </Col>\n ) : (\n <Col span={24} style={{ height: '53%', minHeight: 400 }}>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n padding: Size.BasePadding,\n borderBottom: `1px solid ${isLight ? '#f0f0f0' : 'rgba(253, 253, 253, 0.12)'}`,\n }}\n >\n <Title\n text={\n <>\n {`the result of [${loader.loader}] ${loader.isPitch ? 'pitch' : ''}`}\n {!loader.isPitch && (\n <span style={{ fontWeight: 400 }}>\n (\n <InputIcon\n style={{\n verticalAlign: 'middle',\n margin: '0 2px',\n }}\n />\n Input ⟷\n <OutputIcon\n style={{\n verticalAlign: 'middle',\n position: 'relative',\n top: -2,\n }}\n />\n Output)\n </span>\n )}\n </>\n }\n />\n <div style={{ flex: 1 }} />\n </div>\n {loader.isPitch ? (\n loader.result ? (\n <div style={{ height: '90%' }}>\n <CodeViewer\n isEmbed\n code={loader.result}\n filePath={resource.path}\n />\n </div>\n ) : (\n <Empty\n description={\n 'No loader result. If you use the Brief Mode, there will not have loader results.'\n }\n />\n )\n ) : (\n <div style={{ minHeight: '700px' }}>\n <div style={{ height: '40rem', overflow: 'hidden' }}>\n {!loader.result && !before ? (\n <Empty\n description={\n 'No loader result. If you use the Brief Mode, there will not have loader results.'\n }\n />\n ) : (\n <DiffViewer\n isEmbed\n original={before}\n modified={loader.result || ''}\n originalFilePath={resource.path}\n modifiedFilePath={resource.path}\n />\n )}\n </div>\n </div>\n )}\n </Col>\n )}\n </div>\n ),\n },\n ]}\n onChange={onChange}\n />\n </Col>\n </Row>\n );\n};\n"],"names":["LoaderPropsItem","loader","resource","cwd","Card","Tag","ClockCircleTwoTone","dayjs","Space","Typography","List","beautifyPath","CodeOpener","formatCosts","Divider","JSON","LoaderExecutions","data","index","loaders","currentIndex","setCurrentIndex","useState","theme","useTheme","isLight","before","leftSpan","hasError","activeKey","setActiveKey","onChange","useCallback","key","Row","styles","Col","undefined","Size","Title","Timeline","e","i","arr","isPitch","costs","Tooltip","StepIcon","Tabs","CodeViewer","InputIcon","OutputIcon","Empty","DiffViewer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/Loader/executions.mjs","sources":["../../../src/components/Loader/executions.tsx"],"sourcesContent":["import { ClockCircleTwoTone } from '@ant-design/icons';\nimport { SDK } from '@rsdoctor/types';\nimport {\n Col,\n Divider,\n Empty,\n List,\n Row,\n Space,\n Tabs,\n Tag,\n Timeline,\n Tooltip,\n Typography,\n} from 'antd';\nimport dayjs from 'dayjs';\nimport { PropsWithChildren, useCallback, useState } from 'react';\nimport InputIcon from 'src/common/svg/loader/input.svg';\nimport OutputIcon from 'src/common/svg/loader/output.svg';\nimport StepIcon from 'src/common/svg/loader/step.svg';\nimport { Size } from '../../constants';\nimport { beautifyPath, formatCosts, useTheme } from '../../utils';\nimport { CodeViewer, DiffViewer } from '../base';\nimport { Card } from '../Card';\nimport { CodeOpener } from '../Opener';\nimport { Title } from '../Title';\nimport styles from './Analysis/style.module.scss';\n\ninterface LoaderExecutionsProps {\n cwd: string;\n data: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetLoaderFileDetails>;\n index?: number;\n}\n\nconst LoaderPropsItem = ({\n loader,\n resource,\n cwd,\n}: {\n loader: SDK.LoaderTransformData & {\n costs: number;\n };\n resource: SDK.ResourceData;\n cwd: string;\n}): JSX.Element => {\n return (\n <Card\n title={'Loader Details'}\n style={{ border: 'none' }}\n extra={\n <Tag icon={<ClockCircleTwoTone />} color=\"default\">\n {dayjs(loader.startAt).format('YYYY-MM-DD HH:mm:ss')}\n </Tag>\n }\n >\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n {loader.isPitch ? <Typography.Text code>pitch</Typography.Text> : null}\n <List size=\"large\" bordered>\n <List.Item>\n <Typography.Text strong>{'File Path'}</Typography.Text>\n <div>{beautifyPath(resource.path, cwd)}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Resource Path'}</Typography.Text>\n <CodeOpener cwd={cwd} url={resource.path} loc=\"\" disabled />\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Resource Query'}</Typography.Text>\n <div>{resource.queryRaw || '-'}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Duration'}</Typography.Text>\n <div>{formatCosts(loader.costs)}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Loader'}</Typography.Text>\n <div>\n <Typography.Text code>{loader.loader}</Typography.Text>\n </div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Loader Index'}</Typography.Text>\n <div>{`${loader.loaderIndex}`}</div>\n </List.Item>\n <List.Item>\n <Typography.Text strong>{'Loader Path'}</Typography.Text>\n <CodeOpener cwd={cwd} url={loader.path} loc=\"\" disabled />\n </List.Item>\n <List.Item>\n <div style={{ width: 180 }}>\n <Typography.Text strong>{'Options'}</Typography.Text>\n </div>\n <Divider type=\"vertical\" />\n <Typography.Paragraph\n ellipsis={{\n rows: 2,\n expandable: true,\n symbol: 'more',\n }}\n copyable\n >\n {JSON.stringify(loader.options || '-')}\n </Typography.Paragraph>\n </List.Item>\n </List>\n </Space>\n </Card>\n );\n};\n\nexport const LoaderExecutions = ({\n data,\n cwd,\n index,\n}: PropsWithChildren<LoaderExecutionsProps>): JSX.Element => {\n const { loaders, resource } = data;\n const [currentIndex, setCurrentIndex] = useState(index || 0);\n const { theme } = useTheme();\n const isLight = theme === 'light';\n const loader = loaders[currentIndex];\n const before = loader.input || '';\n const leftSpan = 5;\n const hasError = loader.errors && loader.errors.length;\n const [activeKey, setActiveKey] = useState('loaderDetails');\n const onChange = useCallback((key: string) => {\n setActiveKey(key);\n }, []);\n\n return (\n <Row className={styles.executions} style={{ height: '100%' }}>\n <Col\n span={leftSpan}\n style={{\n borderRight: isLight ? `1px solid #f0f0f0` : undefined,\n padding: Size.BasePadding,\n }}\n >\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n <Title text=\"Executions\" />\n <Timeline mode=\"left\" style={{ marginTop: Size.BasePadding }}>\n {loaders.map((e, i, arr) => {\n const { loader, isPitch } = e;\n const costs = formatCosts(e.costs);\n return (\n <Timeline.Item\n dot={\n isPitch ? (\n <Tag style={{ marginLeft: 1, fontWeight: 500 }}>\n pitch\n </Tag>\n ) : (\n <ClockCircleTwoTone />\n )\n }\n style={{ paddingBottom: 10, textAlign: 'center' }}\n key={i}\n >\n <Row align=\"middle\" justify=\"space-between\" gutter={[0, 10]}>\n <Col span={24} className={styles.timeline}>\n <Tooltip title={loader} trigger=\"hover\">\n <div\n className={`${styles.box} ${currentIndex === i ? styles.selected : ''}`}\n onClick={() => {\n setCurrentIndex(i);\n }}\n style={{ textAlign: 'left' }}\n >\n <div>\n <Typography.Text style={{ color: '#000' }}>\n {costs.match(/[0-9]*\\.?[0-9]+/g)?.[0]}\n </Typography.Text>\n {` `}\n <Typography.Text\n style={{ color: 'rgba(0,0,0,0.45)' }}\n >\n {costs.match(/[a-zA-Z]+/g)}\n </Typography.Text>\n </div>\n <Typography.Text\n style={{ color: 'rgba(0,0,0,0.65)' }}\n className={styles.loader}\n >\n {loader}\n </Typography.Text>\n </div>\n </Tooltip>\n </Col>\n </Row>\n {i === arr.length - 1 ? null : (\n <div style={{ paddingTop: 10 }}>\n <StepIcon />\n </div>\n )}\n </Timeline.Item>\n );\n })}\n </Timeline>\n </Space>\n </Col>\n <Col span={24 - leftSpan} style={{ height: '100%' }}>\n <Tabs\n type=\"card\"\n defaultActiveKey=\"loaderDetails\"\n activeKey={activeKey}\n items={[\n {\n label: 'Loader Props',\n key: 'loaderProps',\n children: (\n <LoaderPropsItem\n loader={loader}\n resource={resource}\n cwd={cwd}\n />\n ),\n },\n {\n label: 'Loader Details',\n key: 'loaderDetails',\n children: (\n <div style={{ height: '100%' }}>\n {hasError ? (\n <Col span={24} style={{ height: '53%', minHeight: 400 }}>\n <div\n style={{\n padding: Size.BasePadding,\n borderTop: `1px solid ${isLight ? '#f0f0f0' : 'rgba(253, 253, 253, 0.12)'}`,\n borderBottom: `1px solid ${isLight ? '#f0f0f0' : 'rgba(253, 253, 253, 0.12)'}`,\n }}\n >\n <Title\n text={`the error stack of [${loader.loader}] ${loader.isPitch ? 'pitch' : ''}`}\n />\n </div>\n <div style={{ height: '90%' }}>\n <CodeViewer\n code={loader.errors[0].message}\n lang=\"javascript\"\n />\n </div>\n </Col>\n ) : (\n <Col span={24} style={{ height: '53%', minHeight: 400 }}>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n padding: Size.BasePadding,\n borderBottom: `1px solid ${isLight ? '#f0f0f0' : 'rgba(253, 253, 253, 0.12)'}`,\n }}\n >\n <Title\n text={\n <>\n {`the result of [${loader.loader}] ${loader.isPitch ? 'pitch' : ''}`}\n {!loader.isPitch && (\n <span style={{ fontWeight: 400 }}>\n (\n <InputIcon\n style={{\n verticalAlign: 'middle',\n margin: '0 2px',\n }}\n />\n Input ⟷\n <OutputIcon\n style={{\n verticalAlign: 'middle',\n position: 'relative',\n top: -2,\n }}\n />\n Output)\n </span>\n )}\n </>\n }\n />\n <div style={{ flex: 1 }} />\n </div>\n {loader.isPitch ? (\n loader.result ? (\n <div style={{ height: '90%' }}>\n <CodeViewer\n isEmbed\n code={loader.result}\n filePath={resource.path}\n />\n </div>\n ) : (\n <Empty\n description={\n 'No loader result. If you use the Brief Mode, there will not have loader results.'\n }\n />\n )\n ) : (\n <div style={{ minHeight: '700px' }}>\n <div style={{ height: '40rem', overflow: 'hidden' }}>\n {!loader.result && !before ? (\n <Empty\n description={\n 'No loader result. If you use the Brief Mode, there will not have loader results.'\n }\n />\n ) : (\n <DiffViewer\n isEmbed\n original={before}\n modified={loader.result || ''}\n originalFilePath={resource.path}\n modifiedFilePath={resource.path}\n />\n )}\n </div>\n </div>\n )}\n </Col>\n )}\n </div>\n ),\n },\n ]}\n onChange={onChange}\n />\n </Col>\n </Row>\n );\n};\n"],"names":["LoaderPropsItem","loader","resource","cwd","Card","Tag","ClockCircleTwoTone","dayjs","Space","Typography","List","beautifyPath","CodeOpener","formatCosts","Divider","JSON","LoaderExecutions","data","index","loaders","currentIndex","setCurrentIndex","useState","theme","useTheme","isLight","before","leftSpan","hasError","activeKey","setActiveKey","onChange","useCallback","key","Row","styles","Col","undefined","Size","Title","Timeline","e","i","arr","isPitch","costs","Tooltip","StepIcon","Tabs","CodeViewer","InputIcon","OutputIcon","Empty","DiffViewer"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Loader/step.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Loader/step.mjs","sources":["../../../src/components/Loader/step.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgStep = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={14} height={14} fill=\"none\" viewBox=\"0 0 14 14\" {...props}><path fill=\"#2994FF\" d=\"M7 10.736 1.7 6.589a.125.125 0 0 0-.201.098v1.208c0 .077.036.15.095.197l5.097 3.989a.5.5 0 0 0 .617 0l5.095-3.99a.25.25 0 0 0 .096-.196V6.687a.125.125 0 0 0-.202-.098zm0-4.75L1.7 1.839a.125.125 0 0 0-.201.098v1.208c0 .077.036.15.095.197L6.692 7.33a.5.5 0 0 0 .617 0l5.095-3.99a.25.25 0 0 0 .096-.196V1.937a.125.125 0 0 0-.202-.098z\" /></svg>;\nexport default SvgStep;"],"names":["SvgStep","props"],"mappings":";;AACA,MAAMA,UAAUC,CAAAA,QAAAA,WAAAA,GAAS,IAAC;QAAI,OAAM;QAA6B,OAAO;QAAI,QAAQ;QAAI,MAAK;QAAO,SAAQ;QAAa,GAAGA,KAAK;kBAAE,kBAAC;YAAK,MAAK;YAAU,GAAE;;;AAC1J,aAAeD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Manifest/api.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"components/Manifest/api.mjs","sources":["../../../src/components/Manifest/api.tsx"],"sourcesContent":["import { Constants, Manifest, SDK } from '@rsdoctor/types';\nimport { Skeleton, Spin } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { isEqual } from 'es-toolkit/compat';\nimport { fetchManifest, useDataLoader } from '../../utils';\nimport { ComponentState } from '../../constants';\nimport { FailedStatus } from '../Status';\nimport { BaseDataLoader } from '../../utils/data/base';\nimport { Lodash } from '@rsdoctor/utils/common';\n\nexport type InferServerAPIBody<T> =\n SDK.ServerAPI.InferRequestBodyType<T> extends void\n ? {\n // use `any` to avoid ts check when need not to define the body in this component.\n body?: any;\n }\n : {\n body: SDK.ServerAPI.InferRequestBodyType<T>;\n };\n\ntype ServerAPIProviderProps<\n T extends SDK.ServerAPI.API | SDK.ServerAPI.APIExtends,\n> = {\n manifestLoader?: () => Promise<Manifest.RsdoctorManifestWithShardingFiles>;\n api: T;\n children: (response: SDK.ServerAPI.InferResponseType<T>) => JSX.Element;\n fallbackComponent?: React.FC;\n showSkeleton?: boolean;\n} & InferServerAPIBody<T>;\n\n/**\n * this component will request server api to the sdk of Rsdoctor in local development.\n * otherwise it will fallback to load full manifest for the data.\n *\n * @example usage\n * <ServerAPIProvider {...props}>\n * {(response) => {\n * <Component {...}></Component>\n * }}\n * </ServerAPIProvider>\n */\nexport const ServerAPIProvider = <\n T extends SDK.ServerAPI.API | SDK.ServerAPI.APIExtends,\n>(\n props: ServerAPIProviderProps<T>,\n): JSX.Element | null => {\n const {\n manifestLoader = fetchManifest,\n api,\n children,\n // default value of \"body\" must be \"null\" to avoid the response type not match when the socket received message.\n body = null,\n showSkeleton = true,\n fallbackComponent,\n } = props;\n let promise: Promise<Manifest.RsdoctorManifestWithShardingFiles>;\n\n const [manifest, setManifest] =\n useState<Manifest.RsdoctorManifestWithShardingFiles>();\n const [state, setState] = useState(ComponentState.Pending);\n const [res, setRes] = useState({} as SDK.ServerAPI.InferResponseType<T>);\n\n const { loader } = useDataLoader(manifest);\n\n function init(loader: BaseDataLoader | void) {\n if (window[Constants.WINDOW_RSDOCTOR_TAG]) {\n executeLoader(loader);\n } else {\n promise = manifestLoader();\n ensureManifest(promise).then(() => {\n executeLoader(loader);\n });\n }\n }\n\n const update = useCallback(\n ({ req, res: response }: SDK.ServerAPI.SocketResponseType<T>) => {\n if (req.api === api) {\n // body is equal.\n // both two body are null or undefined.\n if (\n isEqual(req.body, body) ||\n (Lodash.isNil(req.body) && Lodash.isNil(body))\n ) {\n if (!isEqual(res, response)) {\n setRes(response);\n }\n }\n }\n // make sure update successful.\n setState(ComponentState.Success);\n },\n [res, api, body],\n );\n\n useEffect(() => {\n init(loader);\n }, [loader, api, body]);\n\n useEffect(() => {\n if (!loader) return;\n // add update event listener\n loader.onDataUpdate(api, update);\n return () => {\n // remove update event when the component unmount.\n loader.removeOnDataUpdate(api, update);\n };\n }, [loader, api, body]);\n\n function ensureManifest(\n pro: Promise<Manifest.RsdoctorManifestWithShardingFiles>,\n ) {\n return pro\n .then((manifest) => {\n setManifest(manifest);\n })\n .catch((err) => {\n setState(ComponentState.Fail);\n throw err;\n });\n }\n\n function executeLoader(loader: BaseDataLoader | void) {\n if (!loader) return;\n\n const exts = Object.values(SDK.ServerAPI.APIExtends);\n\n // extends api will wait for update only.\n if (exts.includes(api as SDK.ServerAPI.APIExtends)) {\n // extends api need to handle \"undefined\" response inside component.\n setState(ComponentState.Success);\n return;\n }\n\n loader\n .loadAPI(api as SDK.ServerAPI.API, body)\n .then((e) => {\n // if (process.env.NODE_ENV === 'development') {\n // console.log('[ServerAPIProvider] props: ', e, api, loader);\n // }\n // maybe the data not prepared.\n if (Lodash.isNil(e)) {\n return;\n }\n setRes(e as SDK.ServerAPI.InferResponseType<T>);\n setState(ComponentState.Success);\n })\n .catch((err) => {\n console.error(err);\n setState(ComponentState.Fail);\n });\n }\n\n if (state === ComponentState.Pending) {\n return showSkeleton ? <Skeleton active /> : null;\n }\n\n if (state === ComponentState.Fail) {\n if (fallbackComponent)\n return fallbackComponent as unknown as React.ReactElement;\n\n return (\n <FailedStatus\n retry={() => {\n setState(ComponentState.Pending);\n promise = manifestLoader();\n init();\n }}\n />\n );\n }\n\n if (state === ComponentState.Updating) {\n return <Spin spinning>{children(res)}</Spin>;\n }\n\n return children(res);\n};\n\nexport function withServerAPI<\n T,\n P extends keyof T,\n A extends SDK.ServerAPI.API | SDK.ServerAPI.APIExtends,\n>({\n Component,\n api,\n responsePropName,\n body: bodyInRoot,\n fallbackComponent,\n showSkeleton,\n}: {\n Component: React.FC<T>;\n api: A;\n responsePropName: P;\n fallbackComponent?: React.FC;\n showSkeleton?: boolean;\n} & Partial<Partial<InferServerAPIBody<A>>>): React.FC<\n Omit<T, P> & Partial<InferServerAPIBody<A>>\n> {\n return function _(props) {\n const { body = bodyInRoot, ...rest } = props;\n\n return (\n // @ts-ignore\n <ServerAPIProvider\n api={api}\n body={body}\n showSkeleton={showSkeleton}\n fallbackComponent={fallbackComponent}\n >\n {(res) => {\n const _props = {\n ...rest,\n [responsePropName]: res,\n } as T & JSX.IntrinsicAttributes;\n\n return <Component {..._props} />;\n }}\n </ServerAPIProvider>\n );\n };\n}\n"],"names":["ServerAPIProvider","props","manifestLoader","fetchManifest","api","children","body","showSkeleton","fallbackComponent","promise","manifest","setManifest","useState","state","setState","ComponentState","res","setRes","loader","useDataLoader","init","window","Constants","executeLoader","ensureManifest","update","useCallback","req","response","isEqual","Lodash","useEffect","pro","err","exts","Object","SDK","e","console","Skeleton","FailedStatus","Spin","withServerAPI","Component","responsePropName","bodyInRoot","rest","_props"],"mappings":"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"}
|