From d47a21161de5785bf07abdffe6c4a5ab160262a2 Mon Sep 17 00:00:00 2001 From: Maplor Date: Thu, 4 Mar 2021 19:32:58 +0800 Subject: [PATCH] chore: 1.0.0 --- .npmignore | 75 + .babelrc => .storybook/.babelrc | 2 +- .storybook/webpack.config.js | 10 +- README.md | 2 + abc.json | 4 + build.after.js | 197 + build.before.js | 82 + build.json | 10 + components/Wbar/G2Bar.js | 354 - components/Wbar/G2Bar.scss | 5 - components/Wbar/index.jsx | 1 - components/Wbar/index.scss | 1 - components/Wbox/G2Box.js | 143 - components/Wbox/G2Box.scss | 5 - components/Wbox/index.jsx | 1 - components/Wbox/index.scss | 1 - components/Wcandlestick/G2Candlestick.js | 263 - components/Wcandlestick/G2Candlestick.scss | 5 - components/Wcandlestick/index.jsx | 1 - components/Wcandlestick/index.scss | 1 - components/Wcontainer/views/divider.jsx | 20 - components/Wcount/lib/CountUp.js | 241 - components/Wcount/lib/countUp_1.9.3.js | 244 - components/Wfunnel/G2Funnel.js | 207 - components/Wfunnel/G2Funnel.scss | 8 - components/Wfunnel/index.jsx | 1 - components/Wfunnel/index.scss | 1 - components/Wheatmap/G2Heatmap.js | 146 - components/Wheatmap/G2Heatmap.scss | 9 - components/Wheatmap/index.jsx | 1 - components/Wheatmap/index.scss | 1 - components/Whierarchy/G2Hierarchy.js | 156 - components/Whierarchy/index.jsx | 1 - components/Whierarchy/index.scss | 1 - components/Whistogram/G2Histogram.js | 188 - components/Whistogram/G2Histogram.scss | 5 - components/Whistogram/index.jsx | 1 - components/Whistogram/index.scss | 1 - components/Wline/G2Line.js | 233 - components/Wline/G2Line.scss | 5 - components/Wline/index.jsx | 1 - components/Wline/index.scss | 1 - components/Wlinebar/G2LineBar.js | 456 - components/Wlinebar/G2LineBar.scss | 29 - components/Wlinebar/index.jsx | 1 - components/Wlinebar/index.scss | 1 - components/Wmap/G2Map.js | 656 - components/Wmap/index.jsx | 273 - components/Wmap/index.scss | 1 - components/Wminiline/G2MiniLine.js | 105 - components/Wminiline/index.jsx | 1 - components/Wmultipie/G2MultiPie.js | 273 - components/Wmultipie/G2MultiPie.scss | 38 - components/Wmultipie/index.jsx | 1 - components/Wmultipie/index.scss | 1 - components/Wnightingale/G2Nightingale.js | 103 - components/Wnightingale/G2Nightingale.scss | 18 - components/Wnightingale/index.jsx | 1 - components/Wnightingale/index.scss | 1 - components/Wpie/G2Pie.js | 358 - components/Wpie/G2Pie.scss | 38 - components/Wpie/index.jsx | 1 - components/Wpie/index.scss | 1 - components/Wradar/G2Radar.js | 148 - components/Wradar/G2Radar.scss | 5 - components/Wradar/index.jsx | 1 - components/Wradar/index.scss | 1 - components/Wrectangle/G2Rectangle.js | 139 - components/Wrectangle/G2Rectangle.scss | 5 - components/Wrectangle/index.jsx | 1 - components/Wrectangle/index.scss | 1 - components/Wsankey/G2Sankey.js | 114 - components/Wsankey/G2Sankey.scss | 5 - components/Wsankey/index.jsx | 1 - components/Wsankey/index.scss | 1 - components/Wscatter/G2Scatter.js | 163 - components/Wscatter/gui.schema.json | 338 - components/Wscatter/index.jsx | 1 - components/Wshoot/index.scss | 3 - components/Wshoot/shoot.js_bak | 668 - components/Wtreemap/G2Treemap.js | 226 - components/Wtreemap/index.jsx | 1 - components/Wtreemap/index.scss | 1 - components/common/ResetButton.js | 78 - components/common/dataSet.js | 72 - components/common/errorWrap.js | 74 - components/common/eventBus.js | 3 - components/common/g2Factory.js | 458 - components/common/g2Hacker.js | 88 - components/common/g2Theme.js | 359 - components/common/geomSize.js | 29 - components/common/label.js | 79 - components/common/legendFilter.js | 38 - components/common/merge.js | 2207 -- components/common/rectAutoTickCount.js | 76 - components/common/rectLegend.js | 446 - components/common/rectTooltip.js | 104 - components/common/rectXAxis.js | 67 - components/common/rectYAxis.js | 60 - components/index.jsx | 61 - components/index.scss | 142 - components/plugins.js | 21 - components/themes/base.scss | 303 - components/themes/dark.style.js | 1 - components/themes/normal.style.js | 1 - components/themes/themeTools.js | 119 - gulpfile.js | 240 - index.d.ts | 139 - package-lock.json | 31186 ++++++++++------ package.json | 87 +- components/Util.js => src/Util.ts | 6 +- {components => src}/Wbar/gui.schema.json | 0 {components/Wminiline => src/Wbar}/index.scss | 0 src/Wbar/index.tsx | 282 + {components => src}/Wbox/gui.schema.json | 0 {components/Wscatter => src/Wbox}/index.scss | 0 src/Wbox/index.tsx | 139 + src/Wcandlestick/index.tsx | 221 + {components => src}/Wcircle/index.scss | 0 .../index.jsx => src/Wcircle/index.tsx | 73 +- .../Wcircle/scss/function.scss | 0 {components => src}/Wcircle/scss/mixin.scss | 0 .../Wcircle/scss/variable.scss | 2 +- {components => src}/Wcontainer/index.scss | 0 .../index.jsx => src/Wcontainer/index.tsx | 80 +- .../Wcontainer/scss/function.scss | 0 .../Wcontainer/scss/mixin.scss | 0 .../Wcontainer/scss/variable.scss | 2 +- src/Wcontainer/views/divider.tsx | 20 + src/Wcount/dep/CountUp.ts | 298 + {components => src}/Wcount/index.scss | 0 .../Wcount/index.jsx => src/Wcount/index.tsx | 91 +- {components => src}/Wcount/scss/mixin.scss | 0 .../Wcount}/scss/variable.scss | 2 +- {components => src}/Wdashboard/dashboard.jsx | 2 +- {components => src}/Wdashboard/index.jsx | 6 +- {components => src}/Wdashboard/index.scss | 0 .../Wdashboard/scss/mixin.scss | 0 .../Wdashboard}/scss/variable.scss | 2 +- {components => src}/Wfunnel/gui.schema.json | 0 .../Wfunnel/index.scss | 0 src/Wfunnel/index.tsx | 382 + .../function.scss => src/Wheatmap/index.scss | 0 src/Wheatmap/index.tsx | 284 + .../Whierarchy/index.scss | 0 src/Whierarchy/index.tsx | 169 + src/Whistogram/index.tsx | 322 + src/Wicon/cdn.scss | 3 + src/Wicon/cdn.tsx | 55 + .../Wicon/font_180585_2frjb4evzia.eot | Bin .../Wicon/font_180585_2frjb4evzia.svg | 0 .../Wicon/font_180585_2frjb4evzia.ttf | Bin .../Wicon/font_180585_2frjb4evzia.woff | Bin .../Wicon/font_180585_2frjb4evzia.woff2 | Bin {components => src}/Wicon/index.scss | 0 .../Wicon/index.jsx => src/Wicon/index.tsx | 27 +- .../Wnumber => src/Wicon}/scss/function.scss | 0 {components => src}/Wicon/scss/mixin.scss | 0 {components => src}/Wicon/scss/variable.scss | 4 +- {components => src}/Wline/gui.schema.json | 0 .../scss/mixin.scss => src/Wline/index.scss | 0 src/Wline/index.tsx | 209 + {components => src}/Wlinebar/gui.schema.json | 0 .../function.scss => src/Wlinebar/index.scss | 0 src/Wlinebar/index.tsx | 693 + src/Wmap/child.tsx | 120 + .../Wmap/G2Map.scss => src/Wmap/index.scss | 34 +- src/Wmap/index.tsx | 1014 + .../Wmap/mapData/chinaGeo.json | 0 .../Wmap/mapData/chinaGeoInfo.ts | 0 .../Wmap/mapData/southChinaSea.jsx | 0 {components => src}/Wminicontainer/index.scss | 0 .../index.jsx => src/Wminicontainer/index.tsx | 30 +- .../Wminicontainer/scss/function.scss | 0 .../Wminicontainer/scss/mixin.scss | 0 .../Wminicontainer/scss/variable.scss | 2 +- .../Wminiline/index.scss | 0 src/Wminiline/index.tsx | 34 + src/Wmultipie/index.scss | 45 + src/Wmultipie/index.tsx | 267 + .../Wnightingale/gui.schema.json | 0 src/Wnightingale/index.scss | 24 + src/Wnightingale/index.tsx | 220 + {components => src}/Wnumber/index.scss | 0 .../index.jsx => src/Wnumber/index.tsx | 55 +- .../Wnumber/scss/function.scss | 0 src/Wnumber/scss/mixin.scss | 0 .../Wnumber/scss/variable.scss | 2 +- {components => src}/Wpie/gui.schema.json | 0 src/Wpie/index.scss | 45 + src/Wpie/index.tsx | 339 + {components => src}/Wplaceholder/index.scss | 0 .../index.jsx => src/Wplaceholder/index.tsx | 30 +- .../locale.js => src/Wplaceholder/locale.ts | 6 + src/Wplaceholder/scss/function.scss | 0 src/Wplaceholder/scss/mixin.scss | 0 .../Wplaceholder/scss/variable.scss | 2 +- {components => src}/Wradar/gui.schema.json | 0 src/Wradar/index.scss | 0 src/Wradar/index.tsx | 254 + src/Wrectangle/index.scss | 0 src/Wrectangle/index.tsx | 289 + src/Wsankey/index.scss | 0 src/Wsankey/index.tsx | 146 + src/Wscatter/index.scss | 0 src/Wscatter/index.tsx | 171 + src/Wshoot/index.scss | 5 + .../Wshoot/index.jsx => src/Wshoot/index.tsx | 37 +- .../Wshoot/shoot.js => src/Wshoot/shoot.ts | 262 +- src/Wtreemap/index.scss | 0 src/Wtreemap/index.ts | 366 + src/cdn.scss | 4 + src/cdn.ts | 51 + src/common/Base.tsx | 566 + {components => src}/common/arrow/index.scss | 0 .../index.jsx => src/common/arrow/index.tsx | 11 +- .../common/arrow/scss/variable.scss | 2 +- .../common/autoTimeMask.ts | 9 +- .../common/common.js => src/common/common.ts | 242 +- .../common/dataAdapter.ts | 55 +- .../drawLine.js => src/common/drawLine.ts | 104 +- src/common/errorWrap.tsx | 93 + src/common/eventBus.ts | 3 + .../g2Connect.js => src/common/g2Connect.ts | 88 +- src/common/geomSize.ts | 68 + src/common/geomStyle.ts | 93 + .../common/guide.js => src/common/guide.ts | 183 +- src/common/interaction.ts | 78 + src/common/label.ts | 112 + src/common/legendFilter.ts | 56 + components/common/log.js => src/common/log.ts | 23 +- .../platform.js => src/common/platform.ts | 6 +- src/common/polarLegendLayout.ts | 54 + src/common/rectLegend.ts | 673 + src/common/rectScrollbar.ts | 44 + src/common/rectSlider.ts | 51 + src/common/rectTooltip.ts | 213 + src/common/rectXAxis.ts | 102 + src/common/rectYAxis.ts | 78 + src/common/rectZoom.ts | 141 + .../common/tween.js => src/common/tween.ts | 34 +- src/common/types.ts | 25 + src/common/updateChildrenPosition.ts | 18 + src/constants.ts | 24 + src/index.scss | 80 + src/index.ts | 51 + src/plugins.ts | 28 + .../data/world-without-antarctic.json | 0 .../plugins/worldmap/index.tsx | 11 +- src/themes/base.scss | 108 + {components => src}/themes/dark.scss | 0 src/themes/dark.style.ts | 1 + {components => src}/themes/index.scss | 3 + .../themes/index.js => src/themes/index.ts | 82 +- {components => src}/themes/normal.scss | 1 + src/themes/normal.style.ts | 1 + src/themes/themeTools.ts | 644 + components/track.js => src/track.ts | 0 stories/chart.bar.stories.js | 90 + stories/chart.funnel.stories.js | 75 +- ...ap.stories.js => chart.heatMap.stories.js} | 4 +- stories/chart.histogram.stories.js | 55 +- stories/chart.line.stories.js | 321 +- stories/chart.lineBar.stories.js | 192 + stories/chart.map.stories.js | 8 +- stories/chart.multipie.stories.js | 35 +- stories/chart.pie.stories.js | 49 +- stories/chart.radar.stories.js | 40 + stories/chart.rectangle.stories.js | 915 + stories/chart.sankey.stories.js | 4 +- stories/chart.scatter.stories.js | 116 + stories/feat.autoTickCount.stories.js | 37 +- stories/feat.axis.stories.js | 78 + stories/feat.connect.stories.js | 122 + stories/feat.legend.stories.js | 155 +- stories/feat.theme.stories.js | 13 +- stories/feat.tooltip.stories.js | 67 + stories/plugin.worldmap.stories.js | 2 +- tsconfig.json | 22 + webpack.config.js | 315 - 280 files changed, 32801 insertions(+), 24754 deletions(-) create mode 100644 .npmignore rename .babelrc => .storybook/.babelrc (84%) create mode 100644 abc.json create mode 100644 build.after.js create mode 100644 build.before.js create mode 100644 build.json delete mode 100644 components/Wbar/G2Bar.js delete mode 100644 components/Wbar/G2Bar.scss delete mode 100644 components/Wbar/index.jsx delete mode 100644 components/Wbar/index.scss delete mode 100644 components/Wbox/G2Box.js delete mode 100644 components/Wbox/G2Box.scss delete mode 100644 components/Wbox/index.jsx delete mode 100644 components/Wbox/index.scss delete mode 100644 components/Wcandlestick/G2Candlestick.js delete mode 100644 components/Wcandlestick/G2Candlestick.scss delete mode 100644 components/Wcandlestick/index.jsx delete mode 100644 components/Wcandlestick/index.scss delete mode 100644 components/Wcontainer/views/divider.jsx delete mode 100644 components/Wcount/lib/CountUp.js delete mode 100644 components/Wcount/lib/countUp_1.9.3.js delete mode 100644 components/Wfunnel/G2Funnel.js delete mode 100644 components/Wfunnel/G2Funnel.scss delete mode 100644 components/Wfunnel/index.jsx delete mode 100644 components/Wfunnel/index.scss delete mode 100644 components/Wheatmap/G2Heatmap.js delete mode 100644 components/Wheatmap/G2Heatmap.scss delete mode 100644 components/Wheatmap/index.jsx delete mode 100644 components/Wheatmap/index.scss delete mode 100644 components/Whierarchy/G2Hierarchy.js delete mode 100644 components/Whierarchy/index.jsx delete mode 100644 components/Whierarchy/index.scss delete mode 100644 components/Whistogram/G2Histogram.js delete mode 100644 components/Whistogram/G2Histogram.scss delete mode 100644 components/Whistogram/index.jsx delete mode 100644 components/Whistogram/index.scss delete mode 100644 components/Wline/G2Line.js delete mode 100644 components/Wline/G2Line.scss delete mode 100644 components/Wline/index.jsx delete mode 100644 components/Wline/index.scss delete mode 100644 components/Wlinebar/G2LineBar.js delete mode 100644 components/Wlinebar/G2LineBar.scss delete mode 100644 components/Wlinebar/index.jsx delete mode 100644 components/Wlinebar/index.scss delete mode 100644 components/Wmap/G2Map.js delete mode 100644 components/Wmap/index.jsx delete mode 100644 components/Wmap/index.scss delete mode 100644 components/Wminiline/G2MiniLine.js delete mode 100644 components/Wminiline/index.jsx delete mode 100644 components/Wmultipie/G2MultiPie.js delete mode 100644 components/Wmultipie/G2MultiPie.scss delete mode 100644 components/Wmultipie/index.jsx delete mode 100644 components/Wmultipie/index.scss delete mode 100644 components/Wnightingale/G2Nightingale.js delete mode 100644 components/Wnightingale/G2Nightingale.scss delete mode 100644 components/Wnightingale/index.jsx delete mode 100644 components/Wnightingale/index.scss delete mode 100644 components/Wpie/G2Pie.js delete mode 100644 components/Wpie/G2Pie.scss delete mode 100644 components/Wpie/index.jsx delete mode 100644 components/Wpie/index.scss delete mode 100644 components/Wradar/G2Radar.js delete mode 100644 components/Wradar/G2Radar.scss delete mode 100644 components/Wradar/index.jsx delete mode 100644 components/Wradar/index.scss delete mode 100644 components/Wrectangle/G2Rectangle.js delete mode 100644 components/Wrectangle/G2Rectangle.scss delete mode 100644 components/Wrectangle/index.jsx delete mode 100644 components/Wrectangle/index.scss delete mode 100644 components/Wsankey/G2Sankey.js delete mode 100644 components/Wsankey/G2Sankey.scss delete mode 100644 components/Wsankey/index.jsx delete mode 100644 components/Wsankey/index.scss delete mode 100644 components/Wscatter/G2Scatter.js delete mode 100644 components/Wscatter/gui.schema.json delete mode 100644 components/Wscatter/index.jsx delete mode 100644 components/Wshoot/index.scss delete mode 100644 components/Wshoot/shoot.js_bak delete mode 100644 components/Wtreemap/G2Treemap.js delete mode 100644 components/Wtreemap/index.jsx delete mode 100644 components/Wtreemap/index.scss delete mode 100644 components/common/ResetButton.js delete mode 100644 components/common/dataSet.js delete mode 100644 components/common/errorWrap.js delete mode 100644 components/common/eventBus.js delete mode 100644 components/common/g2Factory.js delete mode 100644 components/common/g2Hacker.js delete mode 100644 components/common/g2Theme.js delete mode 100644 components/common/geomSize.js delete mode 100644 components/common/label.js delete mode 100644 components/common/legendFilter.js delete mode 100644 components/common/merge.js delete mode 100644 components/common/rectAutoTickCount.js delete mode 100644 components/common/rectLegend.js delete mode 100644 components/common/rectTooltip.js delete mode 100644 components/common/rectXAxis.js delete mode 100644 components/common/rectYAxis.js delete mode 100644 components/index.jsx delete mode 100644 components/index.scss delete mode 100644 components/plugins.js delete mode 100644 components/themes/base.scss delete mode 100644 components/themes/dark.style.js delete mode 100644 components/themes/normal.style.js delete mode 100644 components/themes/themeTools.js delete mode 100644 gulpfile.js delete mode 100644 index.d.ts rename components/Util.js => src/Util.ts (88%) rename {components => src}/Wbar/gui.schema.json (100%) rename {components/Wminiline => src/Wbar}/index.scss (100%) create mode 100644 src/Wbar/index.tsx rename {components => src}/Wbox/gui.schema.json (100%) rename {components/Wscatter => src/Wbox}/index.scss (100%) create mode 100644 src/Wbox/index.tsx create mode 100644 src/Wcandlestick/index.tsx rename {components => src}/Wcircle/index.scss (100%) rename components/Wcircle/index.jsx => src/Wcircle/index.tsx (80%) rename {components => src}/Wcircle/scss/function.scss (100%) rename {components => src}/Wcircle/scss/mixin.scss (100%) rename {components => src}/Wcircle/scss/variable.scss (95%) rename {components => src}/Wcontainer/index.scss (100%) rename components/Wcontainer/index.jsx => src/Wcontainer/index.tsx (77%) rename {components => src}/Wcontainer/scss/function.scss (100%) rename {components => src}/Wcontainer/scss/mixin.scss (100%) rename {components => src}/Wcontainer/scss/variable.scss (98%) create mode 100644 src/Wcontainer/views/divider.tsx create mode 100644 src/Wcount/dep/CountUp.ts rename {components => src}/Wcount/index.scss (100%) rename components/Wcount/index.jsx => src/Wcount/index.tsx (65%) rename {components => src}/Wcount/scss/mixin.scss (100%) rename {components/Wdashboard => src/Wcount}/scss/variable.scss (80%) rename {components => src}/Wdashboard/dashboard.jsx (99%) rename {components => src}/Wdashboard/index.jsx (92%) rename {components => src}/Wdashboard/index.scss (100%) rename {components => src}/Wdashboard/scss/mixin.scss (100%) rename {components/Wcount => src/Wdashboard}/scss/variable.scss (79%) rename {components => src}/Wfunnel/gui.schema.json (100%) rename components/Whierarchy/G2Hierarchy.scss => src/Wfunnel/index.scss (100%) create mode 100644 src/Wfunnel/index.tsx rename components/Wicon/scss/function.scss => src/Wheatmap/index.scss (100%) create mode 100644 src/Wheatmap/index.tsx rename components/Wminicontainer/scss/function.scss => src/Whierarchy/index.scss (100%) create mode 100644 src/Whierarchy/index.tsx create mode 100644 src/Whistogram/index.tsx create mode 100644 src/Wicon/cdn.scss create mode 100644 src/Wicon/cdn.tsx rename {components => src}/Wicon/font_180585_2frjb4evzia.eot (100%) rename {components => src}/Wicon/font_180585_2frjb4evzia.svg (100%) rename {components => src}/Wicon/font_180585_2frjb4evzia.ttf (100%) rename {components => src}/Wicon/font_180585_2frjb4evzia.woff (100%) rename {components => src}/Wicon/font_180585_2frjb4evzia.woff2 (100%) rename {components => src}/Wicon/index.scss (100%) rename components/Wicon/index.jsx => src/Wicon/index.tsx (64%) rename {components/Wnumber => src/Wicon}/scss/function.scss (100%) rename {components => src}/Wicon/scss/mixin.scss (100%) rename {components => src}/Wicon/scss/variable.scss (99%) rename {components => src}/Wline/gui.schema.json (100%) rename components/Wnumber/scss/mixin.scss => src/Wline/index.scss (100%) create mode 100644 src/Wline/index.tsx rename {components => src}/Wlinebar/gui.schema.json (100%) rename components/Wplaceholder/scss/function.scss => src/Wlinebar/index.scss (100%) create mode 100644 src/Wlinebar/index.tsx create mode 100644 src/Wmap/child.tsx rename components/Wmap/G2Map.scss => src/Wmap/index.scss (71%) create mode 100644 src/Wmap/index.tsx rename {components => src}/Wmap/mapData/chinaGeo.json (100%) rename components/Wmap/mapData/chinaGeoInfo.js => src/Wmap/mapData/chinaGeoInfo.ts (100%) rename {components => src}/Wmap/mapData/southChinaSea.jsx (100%) rename {components => src}/Wminicontainer/index.scss (100%) rename components/Wminicontainer/index.jsx => src/Wminicontainer/index.tsx (56%) rename components/Wplaceholder/scss/mixin.scss => src/Wminicontainer/scss/function.scss (100%) rename {components => src}/Wminicontainer/scss/mixin.scss (100%) rename {components => src}/Wminicontainer/scss/variable.scss (88%) rename components/Wrectangle/index.en-US.md => src/Wminiline/index.scss (100%) create mode 100644 src/Wminiline/index.tsx create mode 100644 src/Wmultipie/index.scss create mode 100644 src/Wmultipie/index.tsx rename {components => src}/Wnightingale/gui.schema.json (100%) create mode 100644 src/Wnightingale/index.scss create mode 100644 src/Wnightingale/index.tsx rename {components => src}/Wnumber/index.scss (100%) rename components/Wnumber/index.jsx => src/Wnumber/index.tsx (70%) rename components/Wtreemap/G2Treemap.scss => src/Wnumber/scss/function.scss (100%) create mode 100644 src/Wnumber/scss/mixin.scss rename {components => src}/Wnumber/scss/variable.scss (94%) rename {components => src}/Wpie/gui.schema.json (100%) create mode 100644 src/Wpie/index.scss create mode 100644 src/Wpie/index.tsx rename {components => src}/Wplaceholder/index.scss (100%) rename components/Wplaceholder/index.jsx => src/Wplaceholder/index.tsx (86%) rename components/Wplaceholder/locale.js => src/Wplaceholder/locale.ts (74%) create mode 100644 src/Wplaceholder/scss/function.scss create mode 100644 src/Wplaceholder/scss/mixin.scss rename {components => src}/Wplaceholder/scss/variable.scss (85%) rename {components => src}/Wradar/gui.schema.json (100%) create mode 100644 src/Wradar/index.scss create mode 100644 src/Wradar/index.tsx create mode 100644 src/Wrectangle/index.scss create mode 100644 src/Wrectangle/index.tsx create mode 100644 src/Wsankey/index.scss create mode 100644 src/Wsankey/index.tsx create mode 100644 src/Wscatter/index.scss create mode 100644 src/Wscatter/index.tsx create mode 100644 src/Wshoot/index.scss rename components/Wshoot/index.jsx => src/Wshoot/index.tsx (69%) rename components/Wshoot/shoot.js => src/Wshoot/shoot.ts (69%) create mode 100644 src/Wtreemap/index.scss create mode 100644 src/Wtreemap/index.ts create mode 100644 src/cdn.scss create mode 100644 src/cdn.ts create mode 100644 src/common/Base.tsx rename {components => src}/common/arrow/index.scss (100%) rename components/common/arrow/index.jsx => src/common/arrow/index.tsx (55%) rename {components => src}/common/arrow/scss/variable.scss (85%) rename components/common/autoTimeMask.js => src/common/autoTimeMask.ts (91%) rename components/common/common.js => src/common/common.ts (51%) rename components/common/dataAdapter.js => src/common/dataAdapter.ts (65%) rename components/common/drawLine.js => src/common/drawLine.ts (50%) create mode 100644 src/common/errorWrap.tsx create mode 100644 src/common/eventBus.ts rename components/common/g2Connect.js => src/common/g2Connect.ts (58%) create mode 100644 src/common/geomSize.ts create mode 100644 src/common/geomStyle.ts rename components/common/guide.js => src/common/guide.ts (50%) create mode 100644 src/common/interaction.ts create mode 100644 src/common/label.ts create mode 100644 src/common/legendFilter.ts rename components/common/log.js => src/common/log.ts (59%) rename components/common/platform.js => src/common/platform.ts (71%) create mode 100644 src/common/polarLegendLayout.ts create mode 100644 src/common/rectLegend.ts create mode 100644 src/common/rectScrollbar.ts create mode 100644 src/common/rectSlider.ts create mode 100644 src/common/rectTooltip.ts create mode 100644 src/common/rectXAxis.ts create mode 100644 src/common/rectYAxis.ts create mode 100644 src/common/rectZoom.ts rename components/common/tween.js => src/common/tween.ts (75%) create mode 100644 src/common/types.ts create mode 100644 src/common/updateChildrenPosition.ts create mode 100644 src/constants.ts create mode 100644 src/index.scss create mode 100644 src/index.ts create mode 100644 src/plugins.ts rename {components/plugins/WorldMap => src/plugins/worldmap}/data/world-without-antarctic.json (100%) rename components/plugins/WorldMap/index.jsx => src/plugins/worldmap/index.tsx (76%) create mode 100644 src/themes/base.scss rename {components => src}/themes/dark.scss (100%) create mode 100644 src/themes/dark.style.ts rename {components => src}/themes/index.scss (80%) rename components/themes/index.js => src/themes/index.ts (50%) rename {components => src}/themes/normal.scss (99%) create mode 100644 src/themes/normal.style.ts create mode 100644 src/themes/themeTools.ts rename components/track.js => src/track.ts (100%) rename stories/{chart.heatmap.stories.js => chart.heatMap.stories.js} (98%) create mode 100644 stories/chart.radar.stories.js create mode 100644 stories/chart.rectangle.stories.js create mode 100644 stories/chart.scatter.stories.js create mode 100644 stories/feat.axis.stories.js create mode 100644 stories/feat.connect.stories.js create mode 100644 stories/feat.tooltip.stories.js create mode 100644 tsconfig.json delete mode 100644 webpack.config.js diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..b635e023 --- /dev/null +++ b/.npmignore @@ -0,0 +1,75 @@ +############################ +# NPM files +############################ +**/node_modules +**/bower_components +node_modules +bower_components +npm-debug.log + + +############################ +# Temp files +############################ +temp +tmp +.tmp +*.swo +*.swp +*.swn +*.swm +*.diff +*.log +*.patch +*.bak +*.log +*.iml +*.ipr +*.iws +*.out +*.gz +*# +*~ +~* + + +############################ +# Editor & OS files +############################ +.idea +.DS_STORE +.Trashes +.project +.rebooted +.*proj +Thumbs.db +ehthumbs.db +Icon? +nbproject + + +############################ +# Report files +############################ +coverages +coverage +reports +report +lib-cov +html-report +nohup.out +out +logs +log + + +############################ +# Other +############################ +.node_history +.svn +**/tms +.nodejs-cache +.node-diamond-client-cache +node_hsf_config_snapshots +run diff --git a/.babelrc b/.storybook/.babelrc similarity index 84% rename from .babelrc rename to .storybook/.babelrc index a39722c9..12eee396 100644 --- a/.babelrc +++ b/.storybook/.babelrc @@ -1,7 +1,7 @@ { "presets": [ "babel-preset-react", - ["babel-preset-env", { "loose": true }], + "babel-preset-env", "babel-preset-stage-0" ], "plugins": [ diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js index 32a726fb..35c7c0b5 100644 --- a/.storybook/webpack.config.js +++ b/.storybook/webpack.config.js @@ -8,7 +8,7 @@ const path = require('path'); const webpack = require('webpack'); const packageInfo = require('../package'); -const srcPath = path.resolve(__dirname, '../components'); +const srcPath = path.resolve(__dirname, '../src'); module.exports = { plugins: [ @@ -36,14 +36,16 @@ module.exports = { }, }], }, + { + test: /\.(ts|tsx)$/, + use: ['awesome-typescript-loader'], + } ], }, resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'], alias: { '@alicloud/cloud-charts': srcPath, - '@alicloud/cloud-charts/lib': srcPath, - '@antv/data-set$': path.resolve(__dirname, '../components/common/dataSet'), - '@antv/data-set/lib': '@antv/data-set/lib' } }, }; diff --git a/README.md b/README.md index 78ba694b..fbb42634 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # CloudCharts +![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200) + ![CloudCharts](https://img.alicdn.com/tfs/TB1FfqtTGL7gK0jSZFBXXXZZpXa-2764-1488.png) 面向中后台的开箱即用图表库,让前端图表更简单。 diff --git a/abc.json b/abc.json new file mode 100644 index 00000000..70a83f5f --- /dev/null +++ b/abc.json @@ -0,0 +1,4 @@ +{ + "type": "ice-app", + "builder": "@ali/builder-ice-app" +} diff --git a/build.after.js b/build.after.js new file mode 100644 index 00000000..3c175802 --- /dev/null +++ b/build.after.js @@ -0,0 +1,197 @@ +const path = require('path'); +const fs = require('fs'); +const webpack = require('webpack'); +// const Config = require('webpack-chain'); +const { getWebpackConfig } = require('build-scripts-config'); +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; +const packageInfo = require('./package.json'); + +/** 自定义构建脚本 - 后置 */ +module.exports = ({ context, onGetWebpackConfig, registerTask, registerCliOption }) => { + const { command, commandArgs, rootDir, userConfig } = context; + const { library, libraryTarget = 'umd', libraryExport } = userConfig; + + function setBuildConfig(config, theme = 'index') { + // 调整构建目录 + config.output + .path(path.resolve(rootDir, 'build')) + .filename('[name].js') + .publicPath('./build/') + + // 去除默认字体资源配置 + config.module.rules + .delete('woff2') + .delete('ttf') + .delete('eot') + .delete('svg'); + + // 自定义字体资源配置 + config.module + .rule('font').test(/\.(woff|woff2|eot|ttf|otf|svg)((\?|#).*)?$/) + .use('file').loader('file-loader').options({ + name: '[name].[ext]', + publicPath: './', + }); + + // 全局变量 + config + .plugin('DefinePlugin') + .use(webpack.DefinePlugin, [{ + __VERSION__: JSON.stringify(packageInfo.version), + __THEME__: JSON.stringify(theme), + }]); + + // 插件部分,需要 externals @alicloud/cloud-charts 本身 + config.externals({ + react: { + root: 'React', + commonjs: 'react', + commonjs2: 'react', + amd: 'react', + }, + 'react-dom': { + root: 'ReactDOM', + commonjs: 'react-dom', + commonjs2: 'react-dom', + amd: 'react-dom', + }, + '@alicloud/cloud-charts': { + root: userConfig.library, + commonjs2: '@alicloud/cloud-charts', + commonjs: '@alicloud/cloud-charts', + amd: '@alicloud/cloud-charts' + }, + }); + } + + registerCliOption({ + name: 'online', + commands: ['start'], + }); + + registerCliOption({ + name: 'analyzer', + commands: ['build'], + }); + + // 在线代理 + if (commandArgs.online) { + const onlineConfig = getWebpackConfig('development'); + onlineConfig.target('web'); + onlineConfig.context(rootDir); + + setBuildConfig(onlineConfig); + + onlineConfig.output + .library(library) + .libraryExport(libraryExport) + .libraryTarget(libraryTarget); + + onlineConfig + .entry('index') + .add(path.resolve(rootDir, 'src/index.scss')) + .add(path.resolve(rootDir, 'src/index.ts')); + + registerTask('online-web', onlineConfig); + } + + // 插件部分 + if (!commandArgs.analyzer) { + const mode = command === 'start' ? 'development' : 'production'; + const pluginsConfig = getWebpackConfig(mode); + pluginsConfig.target('web'); + pluginsConfig.context(rootDir); + + setBuildConfig(pluginsConfig); + + pluginsConfig.output + .library(`${library}[name]`) + .libraryExport(libraryExport) + .libraryTarget(libraryTarget); + + const pluginPath = path.resolve(rootDir, './src/plugins'); + const plugins = fs.readdirSync(pluginPath); + plugins.forEach(function (plugin) { + var componentStat = fs.lstatSync(pluginPath + '/' + plugin); + if (!componentStat.isDirectory()) { + return; + } + + pluginsConfig + .entry(plugin) + .add('./src/plugins/' + plugin + '/index.tsx'); + }); + + registerTask('plugins', pluginsConfig); + } + + + // 调整 umd 包 webpack 配置 + // config 为 webpack-chain 实例 + onGetWebpackConfig('component-dist', config => { + setBuildConfig(config); + + if (commandArgs.analyzer) { + config + .plugin('analyzer') + .use(BundleAnalyzerPlugin); + } + }); + + // onGetWebpackConfig(config => { + // console.log(Config.toString(config.toConfig())); + // }); + + // 主题包 + if (!commandArgs.online && !commandArgs.analyzer) { + const themeConfig = getWebpackConfig('production'); + themeConfig.target('web'); + themeConfig.context(rootDir); + + setBuildConfig(themeConfig, 'dark'); + + themeConfig.module.rule('scss').use('sass-loader').tap(options => { + return { + ...options, + // additionalData: (content, loaderContext) => { + // // More information about available properties https://webpack.js.org/api/loaders/ + // const { resourcePath, rootContext } = loaderContext; + // const relativePath = path.relative(rootContext, resourcePath); + // console.log('relativePath', relativePath); + // return content; + // // if (relativePath === "styles/foo.scss") { + // // return "$value: 100px;" + content; + // // } + // // + // // return "$value: 200px;" + content; + // }, + // 由于 build-plugin-component -> build-scripts-config -> sass-loader 版本是 8.x,所以使用 prependData。 + // 如果更新了依赖版本,可以用 additionalData + prependData: (loaderContext) => { + // More information about available properties https://webpack.js.org/api/loaders/ + const { resourcePath, rootContext } = loaderContext; + // const relativePath = path.relative(rootContext, resourcePath); + + const themePath = path.relative(resourcePath, path.join(rootContext, './src/themes/dark.scss')); + // console.log('relativePath', relativePath, resourcePath); + // if (relativePath === 'src/index.scss') { + // return '@import "themes/dark";' + // } + return `@import "${themePath.slice(3)}"; `; + }, + } + }) + + themeConfig.output + .library(library) + .libraryExport(libraryExport) + .libraryTarget(libraryTarget); + + themeConfig + .entry('dark') + .add(path.resolve(rootDir, 'src/index.scss')) + .add(path.resolve(rootDir, 'src/index.ts')); + + registerTask('theme-dark', themeConfig); + } +}; diff --git a/build.before.js b/build.before.js new file mode 100644 index 00000000..5f5073ac --- /dev/null +++ b/build.before.js @@ -0,0 +1,82 @@ +const path = require('path'); +const fs = require('fs'); +const glob = require('glob'); +const sass = require('node-sass'); +const sassExtract = require('sass-extract'); +const createSassExtractJsPlugin = require('./sass-extract-js/plugin'); +const sassExtractJsPlugin = createSassExtractJsPlugin({ camelCase: false, hex: true }); +const packageInfo = require('./package.json'); + +/** 自定义构建脚本 - 前置 */ +module.exports = ({ context, log, modifyUserConfig, onHook }) => { + const { command, rootDir } = context; + // 编译 主题包scss变量 到 [theme].style.js + const themePath = path.resolve(rootDir, 'src/themes'); + fs.readdirSync(themePath).forEach((theme) => { + if (/\w+.scss$/.test(theme) && theme !== 'base.scss' && theme !== 'index.scss') { + const rendered = sassExtract.renderSync({ + file: themePath + '/' + theme, + }, { + plugins: [sassExtractJsPlugin] + }); + + fs.writeFileSync(themePath + '/' + theme.replace(/\.scss$/, '.style.ts'), `export default ${JSON.stringify(rendered.vars)};`); + + log.info(`build theme: ${theme}`); + } + }); + + if (command === 'build') { + const tempCssFile = []; + const scssFile = glob.sync( + `${rootDir}/src/**/index.scss` + ); + // 额外增加 cdn.scss + scssFile.push(`${rootDir}/src/cdn.scss`); + scssFile.push(`${rootDir}/src/Wicon/cdn.scss`); + + scssFile.forEach((item, i) => { + if (item.indexOf('themes/index.scss') > -1) { + return; + } + const rendered = sass.renderSync({ + file: item + }); + const cssFileName = item.replace(/\.scss$/, '.css'); + fs.writeFileSync(cssFileName, rendered.css); + tempCssFile.push(cssFileName); + log.info(`scss to css: ${item}`); + }); + + // 构建后清除 css 文件 + onHook('after.build.compile', () => { + tempCssFile.forEach((file) => { + fs.unlinkSync(file); + log.info(`clean css: ${file}`); + }); + + log.info('构建完成'); + }); + } + + const myBabelPlugins = [ + ["babel-plugin-transform-define", { + __VERSION__: packageInfo.version, + __THEME__: 'index', + }], + ]; + + if (command === 'build') { + myBabelPlugins.push( + ["babel-plugin-transform-rename-import", { + replacements: [ + { original: '^(.+?)\\.scss$', replacement: '$1.css' }, + ], + }] + ); + } + + // 自定义babel插件 + modifyUserConfig('babelPlugins', myBabelPlugins); + +}; diff --git a/build.json b/build.json new file mode 100644 index 00000000..84e78bd5 --- /dev/null +++ b/build.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "./build.before.js", + "build-plugin-component", + "./build.after.js" + ], + "filename": "index", + "library": "CloudCharts", + "libraryTarget": "umd" +} diff --git a/components/Wbar/G2Bar.js b/components/Wbar/G2Bar.js deleted file mode 100644 index 60a72d31..00000000 --- a/components/Wbar/G2Bar.js +++ /dev/null @@ -1,354 +0,0 @@ -'use strict'; - -import Brush from '@antv/g2-brush'; -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap, defaultPadding } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import label from '../common/label'; -import ResetButton from '../common/ResetButton'; -import getGeomSizeConfig from '../common/geomSize'; -import './G2Bar.scss'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Bar', { - getDefaultConfig() { - return { - colors: themes.category_12, - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - type: 'cat', - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - column: true, - dodgeStack: false, - stack: false, - stackReverse: true, - marginRatio: 0, - grid: false, - zoom: false, - facet: false, - size: null, - label: false, - polar: false, - innerRadius: 0, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding( - props.padding || config.padding, - newConfig, - ...this.defaultConfig.padding - ), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - // 设置数据度量 - const defs = { - x: propertyAssign( - propertyMap.xAxis, - { - type: 'cat', - }, - config.xAxis - ), - y: propertyAssign( - propertyMap.yAxis, - { - type: 'linear', - tickCount: 5, - }, - config.yAxis - ), - type: { - type: 'cat', - sync: true, - }, - facet: { - sync: true, - }, - }; - - rectAutoTickCount(chart, config, defs, !config.column); - - chart.source(data, defs); - - // 设置单个Y轴 - if (!config.facet) { - rectYAxis.call(this, chart, config); - } - - // 设置X轴 - rectXAxis.call(this, chart, config); - - // 设置图例 - rectLegend.call(this, chart, config, null, false, 'type'); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config, { - crosshairs: config.polar ? undefined : {}, - }); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - // 设置坐标系:极坐标/直角坐标 - const chartCoord = config.polar - ? chart.coord('polar', { - innerRadius: config.innerRadius || 0, - }) - : chart.coord(); - - // 横向柱状图 - if (!config.column) { - chartCoord.transpose(); - } - - // 玉玦图,需要手动添加 数据标记 - if (config.polar && !config.column && config.dataType !== 'g2') { - this.rawData[0].data.forEach((d, i) => { - let x = d.x; - if (Array.isArray(d)) { - x = d[0]; - } else if ( - config.xAxis && - config.xAxis.categories && - config.xAxis.categories[i] - ) { - x = config.xAxis.categories[i]; - // const y = isNaN(d) ? d[0] : d; - } - - chart.guide().text({ - position: [x, 0], - content: `${x} `, - style: { - fill: themes['widgets-axis-label'], - textAlign: 'right', - }, - }); - }); - } - - // chart.point().position('name*0').color('name').shape('circle'); - // chart.interval().position('name*value').color('name').shape('line').size(8); // 线状柱状图 - // chart.point().position('name*value').color('name').shape('circle'); - - if (config.facet) { - const facetConfig = - typeof config.facet === 'object' - ? config.facet - : { - type: 'mirror', - transpose: false, - padding: [20, 0, 20, 0], - }; - const self = this; - chart.facet(facetConfig.type, { - fields: ['facet'], - transpose: facetConfig.transpose, - padding: facetConfig.padding, - rowTitle: { - offsetX: 15, - style: { - fontSize: themes['widgets-font-size-1'], - textAlign: 'center', - rotate: 90, - fill: themes['widgets-axis-label'], - }, - }, - eachView(view, facet) { - let yAxisCustomConfig = null; - - // 为 labelFormatter 的第二个参数添加分面信息 - if (config.yAxis && config.yAxis.visible !== false) { - const { labelFormatter } = config.yAxis || {}; - if (labelFormatter) { - yAxisCustomConfig = { - label: { - formatter: (...args) => { - args[1] = Object.assign( - { - facet: facet.colValue || facet.rowValue, - }, - args[1] - ); - return labelFormatter(...args); - }, - }, - }; - } - } - - rectYAxis.call(self, view, config, 'y', yAxisCustomConfig); - - drawBar(view, config, config.colors, 'type*facet'); - }, - }); - } else { - drawBar(chart, config, config.colors); - } - - // if (config.stack) { - // chart.interval().position('x*y').color('type', config.colors).adjust([{ - // type: 'stack', - // reverseOrder: !config.stackReverse, // 层叠顺序倒序 - // }]); - // } else { - // chart.interval().position('x*y').color('type', config.colors).adjust([{ - // type: 'dodge', - // marginRatio: 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 - // }]); - // } - - chart.render(); - - // 拖拽缩放 - if (config.zoom) { - const button = new ResetButton(chart, this.language); - this.resetButton = button; - - this.brush = new Brush({ - canvas: chart.get('canvas'), - chart, - type: 'X', - onBrushstart(startPoint) { - chart.hideTooltip(); - chart.emit('zoom:start', startPoint); - }, - onBrushmove: () => { - chart.hideTooltip(); - button.show(this.language); - }, - onBrushend: ev => { - this.brush.container.clear(); // clear the brush - const { type } = this.brush; - const { xScale } = this.brush; - const { yScale } = this.brush; - // filter data - if (type === 'X') { - xScale && - chart.filter(xScale.field, val => { - return ev[xScale.field].indexOf(val) > -1; - }); - } else if (type === 'Y') { - yScale && - chart.filter(yScale.field, val => { - return ev[yScale.field].indexOf(val) > -1; - }); - } else { - xScale && - chart.filter(xScale.field, val => { - return ev[xScale.field].indexOf(val) > -1; - }); - yScale && - chart.filter(yScale.field, val => { - return ev[yScale.field].indexOf(val) > -1; - }); - } - chart.repaint(); - - chart.emit('zoom:end', ev); - }, - }); - } - }, - changeData(chart, config, data) { - chart.changeData(data); - - // 更新 brush 的 scale 实例,fix 数据更新后拖动缩放失效的问题。 - if (config.zoom && this.brush) { - this.brush.xScale = chart.getXScale(); - this.brush.yScale = chart.getYScales()[0]; - } - }, - destroy() { - // 销毁时需要额外销毁缩放重置按钮 - if (this.brush) { - this.brush.destroy(); - } - if (this.resetButton) { - this.resetButton.destroy(); - } - }, -})); - -function drawBar(chart, config, colors, field = 'type') { - const { stack, stackReverse, marginRatio, dodgeStack, size } = config; - const geomStyle = config.geomStyle || {}; - let geom = chart.interval().position(['x', 'y']); - - if (dodgeStack) { - geom = geom.color(field, colors).adjust([ - { - type: 'dodge', - marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 - dodgeBy: 'dodge', - }, - { - type: 'stack', - reverseOrder: !stackReverse, // 层叠顺序倒序 - }, - ]); - } else if (stack) { - // 堆叠 - geom = geom.color(field, colors).adjust([ - { - type: 'stack', - reverseOrder: !stackReverse, // 层叠顺序倒序 - }, - ]); - } else { - // 分组 - geom = geom.color(field, colors).adjust([ - { - type: 'dodge', - marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 - }, - ]); - } - - geom.style('x*y*type*extra', { - ...geomStyle, - }); - - if (size) { - const sizeConfig = getGeomSizeConfig(size, 20, 'y', 'x*y*type*facet*extra'); - geom.size(...sizeConfig); - } - - label(geom, config); -} diff --git a/components/Wbar/G2Bar.scss b/components/Wbar/G2Bar.scss deleted file mode 100644 index e67b63e5..00000000 --- a/components/Wbar/G2Bar.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Bar { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wbar/index.jsx b/components/Wbar/index.jsx deleted file mode 100644 index 222f6224..00000000 --- a/components/Wbar/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Bar'; diff --git a/components/Wbar/index.scss b/components/Wbar/index.scss deleted file mode 100644 index c2d8a629..00000000 --- a/components/Wbar/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Bar.scss"; diff --git a/components/Wbox/G2Box.js b/components/Wbox/G2Box.js deleted file mode 100644 index c38de1ee..00000000 --- a/components/Wbox/G2Box.js +++ /dev/null @@ -1,143 +0,0 @@ -'use strict'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap, defaultPadding } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import getGeomSizeConfig from "../common/geomSize"; -// import label from '../common/label'; -import './G2Box.scss'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Box', { - getDefaultConfig() { - return { - colors: themes.category_12, - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - type: 'cat', - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - dodge: true, - marginRatio: 0, - grid: false, - // zoom: false, - size: null, - // label: false, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - // 设置数据度量 - const defs = { - x: propertyAssign(propertyMap.xAxis, { - type: 'cat', - }, config.xAxis), - y: propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, config.yAxis), - type: { - type: 'cat', - }, - }; - - rectAutoTickCount(chart, config, defs, false); - - chart.source(data, defs); - - // 设置单个Y轴 - if (!config.facet) { - rectYAxis.call(this, chart, config); - } - - // 设置X轴 - rectXAxis.call(this, chart, config); - - // 设置图例 - rectLegend.call(this, chart, config, null, false, 'type'); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config, { - crosshairs: { - type: 'rect', - }, - }); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - // // 横向柱状图 - // if (!config.column) { - // chart.coord().transpose(); - // } - - drawBox(chart, config, config.colors); - - chart.render(); - }, -})); - -function drawBox(chart, config, colors, field = 'type') { - const { dodge, marginRatio, size } = config; - let geom = null; - - // 分组 - geom = chart.schema().position(['x', 'y']).shape('box').color(field, colors) - .style(field, { - lineWidth: 2, - // fill: (type) => { - // - // } - }); - - if (dodge !== false) { - geom.adjust([{ - type: 'dodge', - marginRatio: marginRatio || 0.5, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 - }]); - } - - if (size) { - const sizeConfig = getGeomSizeConfig(size, 20, 'y', 'x*y*type*extra'); - geom.size(...sizeConfig); - } - - // label(geom, config); -} diff --git a/components/Wbox/G2Box.scss b/components/Wbox/G2Box.scss deleted file mode 100644 index f0212247..00000000 --- a/components/Wbox/G2Box.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Box { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wbox/index.jsx b/components/Wbox/index.jsx deleted file mode 100644 index a0e5253c..00000000 --- a/components/Wbox/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Box'; diff --git a/components/Wbox/index.scss b/components/Wbox/index.scss deleted file mode 100644 index 72aafea2..00000000 --- a/components/Wbox/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Box.scss"; diff --git a/components/Wcandlestick/G2Candlestick.js b/components/Wcandlestick/G2Candlestick.js deleted file mode 100644 index bcb58b39..00000000 --- a/components/Wcandlestick/G2Candlestick.js +++ /dev/null @@ -1,263 +0,0 @@ -'use strict'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap, defaultPadding } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import getGeomSizeConfig from '../common/geomSize'; -import './G2Candlestick.scss'; - -// function parseCandlestickItem(oneData) { -// const { name: dataName, visible, ...groupExtra } = oneData; -// -// return oneData.data.map(([date, { start, end, max, min, ...extra }]) => ({ -// x: date, -// y: [start, end, max, min], -// start, -// end, -// max, -// min, -// trend: start <= end ? 'up' : 'down', -// extra, -// groupExtra, -// visible, -// type: dataName, -// })); -// } -// -// function computeData(data) { -// if (!data) { -// return []; -// } -// if (!Array.isArray(data)) { -// data = [data]; -// } -// const newData = []; -// -// data.forEach(oneData => { -// if (!oneData || !Array.isArray(oneData.data)) { -// return; -// } -// -// const { name: dataName, visible, ...groupExtra } = oneData; -// -// oneData.data.forEach(([date, { start, end, max, min, ...extra }]) => { -// newData.push({ -// x: date, -// y: [start, end, max, min], -// start, -// end, -// max, -// min, -// trend: start <= end ? 'up' : 'down', -// extra, -// groupExtra, -// visible, -// type: dataName, -// }); -// }); -// }); -// -// return newData; -// } - -function computeDataType(data) { - if (Array.isArray(data)) { - data.forEach((d) => { - if (Array.isArray(d.y)) { - const [start, end, max, min] = d.y; - d.trend = start <= end ? 'up' : 'down'; - } - }) - } - return data; -} - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Candlestick', { - // convertData: false, - getDefaultConfig() { - return { - colors: [themes.widgetsColorRed, themes.widgetsColorGreen], - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - type: 'time', - mask: 'YYYY-MM-DD', - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - legend: { - // align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - showTitle: true, - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - grid: false, - // zoom: false, - size: null, - // label: false, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding( - props.padding || config.padding, - newConfig, - ...this.defaultConfig.padding - ), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - // 设置数据度量 - const defs = { - x: propertyAssign( - propertyMap.xAxis, - { - type: 'time', - }, - config.xAxis - ), - y: propertyAssign( - propertyMap.yAxis, - { - type: 'linear', - tickCount: 5, - }, - config.yAxis - ), - type: { - type: 'cat', - }, - trend: { - type: 'cat', - } - }; - - rectAutoTickCount(chart, config, defs, false); - - chart.source(computeDataType(data), defs); - - // 设置单个Y轴 - rectYAxis.call(this, chart, config); - - // 设置X轴 - rectXAxis.call(this, chart, config); - - chart.legend('x', false); - chart.legend('y', false); - // 设置图例 - rectLegend.call(this, chart, config, { - // useHtml: false, - }, true, 'trend'); - - legendFilter.call(this, chart, config); - - // tooltip - const { showTitle, showColon } = config.tooltip || {}; - rectTooltip.call( - this, - chart, - config, - { - showTitle: true, - crosshairs: { - type: 'rect', - }, - itemTpl: `
- ${ - showTitle - ? '
{group}
' - : '' - } -
{labelStart}${ - showColon ? ':' : '' - }{start}
{labelEnd}${ - showColon ? ':' : '' - }{end}
{labelMax}${ - showColon ? ':' : '' - }{max}
{labelMin}${ - showColon ? ':' : '' - }{min}
-
` - } - ); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - drawCandle(chart, config, config.colors); - - chart.render(); - }, - changeData(chart, data) { - chart.changeData(computeDataType(data)); - } -})); - -function drawCandle(chart, config, colors) { - const { size } = config; - let geom = null; - - // 分组 - geom = chart - .schema() - .position(['x', 'y']) - .shape('candle') - .color('trend', trend => { - const [colorUp, colorDown] = colors; - return trend === 'up' ? colorUp : colorDown; - }) - // .tooltip('type*start*end*max*min', (group, start, end, max, min) => { - .tooltip('y*type', (y, group) => { - const { labelAlias = {} } = config.tooltip || {}; - const { - start: labelStart, - end: labelEnd, - max: labelMax, - min: labelMin, - } = labelAlias; - - const [start, end, max, min] = y; - - return { - group, - start, - end, - max, - min, - labelStart: labelStart || 'start', - labelEnd: labelEnd || 'end', - labelMax: labelMax || 'max', - labelMin: labelMin || 'min', - }; - }); - - if (size) { - const sizeConfig = getGeomSizeConfig(size, 20, 'y', 'x*y*type*extra'); - geom.size(...sizeConfig); - } -} diff --git a/components/Wcandlestick/G2Candlestick.scss b/components/Wcandlestick/G2Candlestick.scss deleted file mode 100644 index 22527e39..00000000 --- a/components/Wcandlestick/G2Candlestick.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Line { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wcandlestick/index.jsx b/components/Wcandlestick/index.jsx deleted file mode 100644 index 42c75988..00000000 --- a/components/Wcandlestick/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Candlestick'; diff --git a/components/Wcandlestick/index.scss b/components/Wcandlestick/index.scss deleted file mode 100644 index 567e35ea..00000000 --- a/components/Wcandlestick/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Candlestick.scss"; diff --git a/components/Wcontainer/views/divider.jsx b/components/Wcontainer/views/divider.jsx deleted file mode 100644 index 693f2fee..00000000 --- a/components/Wcontainer/views/divider.jsx +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -import React from 'react'; -import PropTypes from 'prop-types'; - -const prefix = 'cloud-wcontainer' - -export default class Divider extends React.Component { - constructor(props) { - super(props); - } - - static displayName = 'Divider'; - - render() { - return ( -
- ); - } -} diff --git a/components/Wcount/lib/CountUp.js b/components/Wcount/lib/CountUp.js deleted file mode 100644 index 4f3adcab..00000000 --- a/components/Wcount/lib/CountUp.js +++ /dev/null @@ -1,241 +0,0 @@ -/* - - countUp.js - by @inorganik - - */ - -// target = id of html element or var of previously selected html element where counting occurs -// startVal = the value you want to begin at -// endVal = the value you want to arrive at -// decimals = number of decimal places, default 0 -// duration = duration of animation in seconds, default 2 -// options = optional object of options (see below) - -export default function (target, startVal, endVal, decimals, duration, options) { - - // make sure requestAnimationFrame and cancelAnimationFrame are defined - // polyfill for browsers without native support - // by Opera engineer Erik Möller - var lastTime = 0; - var vendors = ['webkit', 'moz', 'ms', 'o']; - for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { - window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; - window.cancelAnimationFrame = - window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; - } - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = function (callback, element) { - var currTime = new Date().getTime(); - var timeToCall = Math.max(0, 16 - (currTime - lastTime)); - var id = window.setTimeout(function () { - callback(currTime + timeToCall); - }, - timeToCall); - lastTime = currTime + timeToCall; - return id; - }; - } - if (!window.cancelAnimationFrame) { - window.cancelAnimationFrame = function (id) { - clearTimeout(id); - }; - } - - // default options - this.options = { - useEasing: true, // toggle easing - useGrouping: true, // 1,000,000 vs 1000000 - separator: ',', // character to use as a separator - decimal: '.', // character to use as a decimal - placeholder: "-",//非数据时的替换 - }; - // extend default options with passed options object - for (var key in options) { - if (options.hasOwnProperty(key)) { - this.options[key] = options[key]; - } - } - if (this.options.separator === '') this.options.useGrouping = false; - if (!this.options.prefix) this.options.prefix = ''; - if (!this.options.suffix) this.options.suffix = ''; - - this.d = (typeof target === 'string') ? document.getElementById(target.replace('#', '')) : target; - this.startVal = Number(startVal); - if (isNaN(startVal)) this.startVal = Number((startVal.match(/[\d]+/g) || []).join('')); // strip non-numerical characters - this.endVal = Number(endVal); - if (isNaN(endVal)) this.endVal = Number((endVal.match(/[\d]+/g) || []).join('')); // strip non-numerical characters - this.countDown = (this.startVal > this.endVal); - this.frameVal = this.startVal; - this.decimals = Math.max(0, decimals || 0); - this.dec = Math.pow(10, this.decimals); - this.duration = Number(duration) * 1000 || 2000; - var self = this; - - this.version = function () { - return '1.5.3'; - }; - - // Print value to target - this.printValue = function (value) { - const result = (!isNaN(value)) ? self.formatNumber(value) : self.options.placeholder; - if (self.d.tagName === 'INPUT') { - this.d.value = result; - } - else if (self.d.tagName === 'text') { - this.d.textContent = result; - } - else { - let html = ''; - for (let i = 0; i < result.length; i++) { - const s = result.charAt(i); - if (s === self.options.separator) { - html += '' + s + ''; - } else if (s === self.options.decimal) { - html += '' + s + ''; - } else { - html += '' + s + ''; - } - } - this.d.innerHTML = html; - } - }; - - // Robert Penner's easeOutExpo - this.easeOutExpo = function (t, b, c, d) { - return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b; - }; - this.count = function (timestamp) { - - if (!self.startTime) { - self.throttle = 0; - self.startTime = timestamp; - } - - self.timestamp = timestamp; - - var progress = timestamp - self.startTime; - self.remaining = self.duration - progress; - - // 偶数次渲染,或者最后一次才会渲染dom - if (self.throttle % 2 === 0 || progress >= self.duration) { - // to ease or not to ease - if (self.options.useEasing) { - if (self.countDown) { - self.frameVal = self.startVal - self.easeOutExpo(progress, 0, self.startVal - self.endVal, self.duration); - } else { - self.frameVal = self.easeOutExpo(progress, self.startVal, self.endVal - self.startVal, self.duration); - } - } else { - if (self.countDown) { - self.frameVal = self.startVal - ((self.startVal - self.endVal) * (progress / self.duration)); - } else { - self.frameVal = self.startVal + (self.endVal - self.startVal) * (progress / self.duration); - } - } - - // don't go past endVal since progress can exceed duration in the last frame - if (self.countDown) { - self.frameVal = (self.frameVal < self.endVal) ? self.endVal : self.frameVal; - } else { - self.frameVal = (self.frameVal > self.endVal) ? self.endVal : self.frameVal; - } - - // decimal - self.frameVal = Math.round(self.frameVal * self.dec) / self.dec; - - // format and print value - self.printValue(self.frameVal); - } - - self.throttle = self.throttle + 1; - - // whether to continue - if (progress < self.duration) { - self.rAF = requestAnimationFrame(self.count); - } else { - if (self.callback) self.callback(); - } - }; - // start your animation - this.start = function (callback) { - self.callback = callback; - // make sure values are valid - if (!isNaN(self.endVal) && !isNaN(self.startVal) && self.startVal !== self.endVal) { - self.rAF = requestAnimationFrame(self.count); - } else if (self.startVal === self.endVal) { - console.log('countUp error: startVal and endVal is equal'); - self.printValue(endVal); - } else { - console.log('countUp error: startVal or endVal is not a number'); - self.printValue(endVal); - } - return false; - }; - // toggles pause/resume animation - this.pauseResume = function () { - if (!self.paused) { - self.paused = true; - cancelAnimationFrame(self.rAF); - } else { - self.paused = false; - delete self.startTime; - self.duration = self.remaining; - self.startVal = self.frameVal; - requestAnimationFrame(self.count); - } - }; - // reset to startVal so animation can be run again - this.reset = function () { - self.paused = false; - delete self.startTime; - self.startVal = startVal; - cancelAnimationFrame(self.rAF); - self.printValue(self.startVal); - }; - // pass a new endVal and start animation - this.update = function (newEndVal) { - cancelAnimationFrame(self.rAF); - self.paused = false; - delete self.startTime; - self.startVal = self.frameVal; - self.endVal = Number(newEndVal); - self.countDown = (self.startVal > self.endVal); - if (!isNaN(self.startVal) && !isNaN(self.endVal)) { - self.rAF = requestAnimationFrame(self.count); - } else { - self.printValue(self.endVal) - } - - }; - this.formatNumber = function (num) { - var neg = (num < 0), - x, x1, x2, x3, i, len; - let numStr = Math.abs(num).toFixed(self.decimals) + ''; - x = numStr.split('.'); - x1 = x[0]; - x2 = x.length > 1 ? self.options.decimal + x[1] : ''; - if (self.options.useGrouping) { - x3 = ''; - for (i = 0, len = x1.length; i < len; ++i) { - if (i !== 0 && ((i % 3) === 0)) { - x3 = self.options.separator + x3; - } - x3 = x1[len - i - 1] + x3; - } - x1 = x3; - } - return (neg ? '-' : '') + self.options.prefix + x1 + x2 + self.options.suffix; - }; - - // format startVal on initialization - self.printValue(self.startVal); - }; - - -// Example: -// var numAnim = new countUp("SomeElementYouWantToAnimate", 0, 99.99, 2, 2.5); -// numAnim.start(); -// numAnim.update(135); -// with optional callback: -// numAnim.start(someMethodToCallOnComplete); diff --git a/components/Wcount/lib/countUp_1.9.3.js b/components/Wcount/lib/countUp_1.9.3.js deleted file mode 100644 index 190b29a7..00000000 --- a/components/Wcount/lib/countUp_1.9.3.js +++ /dev/null @@ -1,244 +0,0 @@ -/* - countUp.js - by @inorganik -*/ - -// target = id of html element or var of previously selected html element where counting occurs -// startVal = the value you want to begin at -// endVal = the value you want to arrive at -// decimals = number of decimal places, default 0 -// duration = duration of animation in seconds, default 2 -// options = optional object of options (see below) - -export default function(target, startVal, endVal, decimals, duration, options) { - - var self = this; - self.version = function () { return '1.9.3'; }; - - // default options - self.options = { - useEasing: true, // toggle easing - useGrouping: true, // 1,000,000 vs 1000000 - separator: ',', // character to use as a separator - decimal: '.', // character to use as a decimal - easingFn: easeOutExpo, // optional custom easing function, default is Robert Penner's easeOutExpo - formattingFn: formatNumber, // optional custom formatting function, default is formatNumber above - prefix: '', // optional text before the result - suffix: '', // optional text after the result - numerals: [] // optionally pass an array of custom numerals for 0-9 - }; - - // extend default options with passed options object - if (options && typeof options === 'object') { - for (var key in self.options) { - if (options.hasOwnProperty(key) && options[key] !== null) { - self.options[key] = options[key]; - } - } - } - - if (self.options.separator === '') { - self.options.useGrouping = false; - } - else { - // ensure the separator is a string (formatNumber assumes this) - self.options.separator = '' + self.options.separator; - } - - // make sure requestAnimationFrame and cancelAnimationFrame are defined - // polyfill for browsers without native support - // by Opera engineer Erik Möller - var lastTime = 0; - var vendors = ['webkit', 'moz', 'ms', 'o']; - for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { - window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame']; - window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame']; - } - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = function(callback, element) { - var currTime = new Date().getTime(); - var timeToCall = Math.max(0, 16 - (currTime - lastTime)); - var id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall); - lastTime = currTime + timeToCall; - return id; - }; - } - if (!window.cancelAnimationFrame) { - window.cancelAnimationFrame = function(id) { - clearTimeout(id); - }; - } - - function formatNumber(num) { - var neg = (num < 0), - x, x1, x2, x3, i, len; - num = Math.abs(num).toFixed(self.decimals); - num += ''; - x = num.split('.'); - x1 = x[0]; - x2 = x.length > 1 ? self.options.decimal + x[1] : ''; - if (self.options.useGrouping) { - x3 = ''; - for (i = 0, len = x1.length; i < len; ++i) { - if (i !== 0 && ((i % 3) === 0)) { - x3 = self.options.separator + x3; - } - x3 = x1[len - i - 1] + x3; - } - x1 = x3; - } - // optional numeral substitution - if (self.options.numerals.length) { - x1 = x1.replace(/[0-9]/g, function(w) { - return self.options.numerals[+w]; - }) - x2 = x2.replace(/[0-9]/g, function(w) { - return self.options.numerals[+w]; - }) - } - return (neg ? '-' : '') + self.options.prefix + x1 + x2 + self.options.suffix; - } - // Robert Penner's easeOutExpo - function easeOutExpo(t, b, c, d) { - return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b; - } - function ensureNumber(n) { - return (typeof n === 'number' && !isNaN(n)); - } - - self.initialize = function() { - if (self.initialized) return true; - - self.error = ''; - self.d = (typeof target === 'string') ? document.getElementById(target) : target; - if (!self.d) { - self.error = '[CountUp] target is null or undefined' - return false; - } - self.startVal = Number(startVal); - self.endVal = Number(endVal); - // error checks - if (ensureNumber(self.startVal) && ensureNumber(self.endVal)) { - self.decimals = Math.max(0, decimals || 0); - self.dec = Math.pow(10, self.decimals); - self.duration = Number(duration) * 1000 || 2000; - self.countDown = (self.startVal > self.endVal); - self.frameVal = self.startVal; - self.initialized = true; - return true; - } - else { - self.error = '[CountUp] startVal ('+startVal+') or endVal ('+endVal+') is not a number'; - return false; - } - }; - - // Print value to target - self.printValue = function(value) { - var result = self.options.formattingFn(value); - - if (self.d.tagName === 'INPUT') { - this.d.value = result; - } - else if (self.d.tagName === 'text' || self.d.tagName === 'tspan') { - this.d.textContent = result; - } - else { - this.d.innerHTML = result; - } - }; - - self.count = function(timestamp) { - - if (!self.startTime) { self.startTime = timestamp; } - - self.timestamp = timestamp; - var progress = timestamp - self.startTime; - self.remaining = self.duration - progress; - - // to ease or not to ease - if (self.options.useEasing) { - if (self.countDown) { - self.frameVal = self.startVal - self.options.easingFn(progress, 0, self.startVal - self.endVal, self.duration); - } else { - self.frameVal = self.options.easingFn(progress, self.startVal, self.endVal - self.startVal, self.duration); - } - } else { - if (self.countDown) { - self.frameVal = self.startVal - ((self.startVal - self.endVal) * (progress / self.duration)); - } else { - self.frameVal = self.startVal + (self.endVal - self.startVal) * (progress / self.duration); - } - } - - // don't go past endVal since progress can exceed duration in the last frame - if (self.countDown) { - self.frameVal = (self.frameVal < self.endVal) ? self.endVal : self.frameVal; - } else { - self.frameVal = (self.frameVal > self.endVal) ? self.endVal : self.frameVal; - } - - // decimal - self.frameVal = Math.round(self.frameVal*self.dec)/self.dec; - - // format and print value - self.printValue(self.frameVal); - - // whether to continue - if (progress < self.duration) { - self.rAF = requestAnimationFrame(self.count); - } else { - if (self.callback) self.callback(); - } - }; - // start your animation - self.start = function(callback) { - if (!self.initialize()) return; - self.callback = callback; - self.rAF = requestAnimationFrame(self.count); - }; - // toggles pause/resume animation - self.pauseResume = function() { - if (!self.paused) { - self.paused = true; - cancelAnimationFrame(self.rAF); - } else { - self.paused = false; - delete self.startTime; - self.duration = self.remaining; - self.startVal = self.frameVal; - requestAnimationFrame(self.count); - } - }; - // reset to startVal so animation can be run again - self.reset = function() { - self.paused = false; - delete self.startTime; - self.initialized = false; - if (self.initialize()) { - cancelAnimationFrame(self.rAF); - self.printValue(self.startVal); - } - }; - // pass a new endVal and start animation - self.update = function (newEndVal) { - if (!self.initialize()) return; - newEndVal = Number(newEndVal); - if (!ensureNumber(newEndVal)) { - self.error = '[CountUp] update() - new endVal is not a number: '+newEndVal; - return; - } - self.error = ''; - if (newEndVal === self.frameVal) return; - cancelAnimationFrame(self.rAF); - self.paused = false; - delete self.startTime; - self.startVal = self.frameVal; - self.endVal = newEndVal; - self.countDown = (self.startVal > self.endVal); - self.rAF = requestAnimationFrame(self.count); - }; - - // format startVal on initialization - if (self.initialize()) self.printValue(self.startVal); -}; \ No newline at end of file diff --git a/components/Wfunnel/G2Funnel.js b/components/Wfunnel/G2Funnel.js deleted file mode 100644 index 49f083fa..00000000 --- a/components/Wfunnel/G2Funnel.js +++ /dev/null @@ -1,207 +0,0 @@ -'use strict'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import guide from '../common/guide'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import './G2Funnel.scss'; -import { defaultPadding, pxToNumber, numberDecimal } from '../common/common'; -import label from "../common/label"; - -function renderGuide(chart, config, data, percentOffsetX, percentOffsetY) { - chart.guide().clear(true); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - // 中间标签文本 - if (!config.percent || config.percent.visible === false) { - return; - } - const { labelFormatter, offsetX = 0, offsetY = 0, top = true, style = {} } = config.percent; - const positionY = config.align === 'center' ? 'median' : 'start'; - - data.forEach((d, i) => { - let content = `${numberDecimal(100 * d.y / data[0].y)}%`; - if (labelFormatter) { - content = labelFormatter(d.y / data[0].y, d, i); - } - const textConfig = { - top, - offsetX: percentOffsetX + offsetX, - offsetY: percentOffsetY + offsetY, - position: { - x: d.x, - y: positionY, - }, - content, - style: { - fill: themes['widgets-label-text'], - fontSize: pxToNumber(themes['widgets-font-size-1']), - textAlign: 'center', - shadowBlur: 2, - shadowColor: 'rgba(255, 255, 255, .3)', - ...style, - }, - }; - - chart.guide().text(textConfig); - }); -} - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Funnel', { - getDefaultConfig() { - return { - colors: themes.order_10, - padding: ['auto', 0, 'auto', 0], - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - nameFormatter: null, - valueFormatter: null, - }, - // 主方向,从上到下(vertical)、从左到右(horizontal) - direction: 'vertical', - // 排列位置 start,center,end - align: 'center', - // 尖顶漏斗图 - pyramid: false, - label: false, - percent: false, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - // 设置数据度量 - const defs = { - type: { - type: 'cat', - }, - }; - - chart.source(data, defs); - - // 漏斗图目前看没有轴 - chart.axis(false); - - // 设置图例 - rectLegend.call(this, chart, config, null, true); - - // tooltip - rectTooltip.call(this, chart, config, { - showTitle: false, - crosshairs: null, - }); - - // 根据传入的 direction 和 align 设置坐标系,并绘制图形 - const drawType = `${config.direction}-${config.align}`; - let geom = null; - const fontSize1 = pxToNumber(themes['widgets-font-size-1']); - let percentOffsetX = 0; - let percentOffsetY = 0; - - switch (drawType) { - case 'vertical-left': - case 'vertical-start': - chart.coord('rect').transpose().scale(1, -1); - geom = chart.interval(); - percentOffsetX = 3 * fontSize1; - break; - case 'vertical-center': - chart.coord('rect').transpose().scale(1, -1); - geom = chart.intervalSymmetric(); - break; - case 'vertical-right': - case 'vertical-end': - chart.coord('rect').transpose().scale(-1, -1); - geom = chart.interval(); - percentOffsetX = -3 * fontSize1; - break; - case 'horizontal-top': - case 'horizontal-start': - chart.coord('rect').reflect('y'); - geom = chart.interval(); - percentOffsetY = 3 * fontSize1; - break; - case 'horizontal-center': - geom = chart.intervalSymmetric(); - break; - // case 'horizontal-bottom': - // case 'horizontal-end': - // 和 default 时相同 - default: - geom = chart.interval(); - percentOffsetY = -3 * fontSize1; - } - - const funnelShape = (config.align === 'center' && config.pyramid) ? 'pyramid' : 'funnel'; - - geom.position('x*y').shape(funnelShape).color('x', config.colors); - - label(geom, config, 'y', { - offset: pxToNumber(themes['widgets-font-size-1']), - labelLine: { - lineWidth: 1, - stroke: themes['widgets-axis-line'], - }, - }); - - const geomStyle = config.geomStyle || {}; - geom.style('x*y*type*extra', { - ...geomStyle, - }); - - renderGuide(chart, config, data, percentOffsetX, percentOffsetY); - - chart.render(); - }, - changeData(chart, config, data) { - chart.changeData(data); - - const drawType = `${config.direction}-${config.align}`; - const fontSize1 = pxToNumber(themes['widgets-font-size-1']); - let percentOffsetX = 0; - let percentOffsetY = 0; - - switch (drawType) { - case 'vertical-left': - case 'vertical-start': - percentOffsetX = 3 * fontSize1; - break; - case 'vertical-center': - break; - case 'vertical-right': - case 'vertical-end': - percentOffsetX = -3 * fontSize1; - break; - case 'horizontal-top': - case 'horizontal-start': - percentOffsetY = 3 * fontSize1; - break; - case 'horizontal-center': - break; - // case 'horizontal-bottom': - // case 'horizontal-end': - // 和 default 时相同 - default: - percentOffsetY = -3 * fontSize1; - } - renderGuide(chart, config, data, percentOffsetX, percentOffsetY); - }, -})); diff --git a/components/Wfunnel/G2Funnel.scss b/components/Wfunnel/G2Funnel.scss deleted file mode 100644 index a63db7c1..00000000 --- a/components/Wfunnel/G2Funnel.scss +++ /dev/null @@ -1,8 +0,0 @@ -.cloud-charts.G2Funnel { - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wfunnel/index.jsx b/components/Wfunnel/index.jsx deleted file mode 100644 index b0f0dc5f..00000000 --- a/components/Wfunnel/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Funnel'; diff --git a/components/Wfunnel/index.scss b/components/Wfunnel/index.scss deleted file mode 100644 index ff34c57c..00000000 --- a/components/Wfunnel/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Funnel.scss"; diff --git a/components/Wheatmap/G2Heatmap.js b/components/Wheatmap/G2Heatmap.js deleted file mode 100644 index a996ec82..00000000 --- a/components/Wheatmap/G2Heatmap.js +++ /dev/null @@ -1,146 +0,0 @@ -'use strict'; - -// import G2 from '@antv/g2'; -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap, defaultPadding } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import label from '../common/label'; -import './G2Heatmap.scss'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Heatmap', { - getDefaultConfig() { - return { - colors: themes.category_12, - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - type: 'cat', - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - // grid: false, - label: false, - coordinate: null, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - // 设置数据度量 - const defs = { - x: propertyAssign(propertyMap.xAxis, { - type: 'cat', - }, config.xAxis), - y: propertyAssign(propertyMap.yAxis, { - type: 'cat', - }, config.yAxis), - type: { - type: 'cat', - // sync: true, - }, - }; - - chart.source(data, defs); - - if (config.coordinate) { - const { type = 'rect', reflect } = config.coordinate; - const coord = chart.coord(type); - if (reflect) { - coord.reflect(reflect); - } - } - - // 设置单个Y轴 - rectYAxis.call(this, chart, config, undefined, { - grid: null, - }); - - // 设置X轴 - rectXAxis.call(this, chart, config); - - chart.legend('x', false); - chart.legend('y', false); - // 设置图例 - rectLegend.call(this, chart, config); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config, { - showTitle: false, - crosshairs: null, - }); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - const geomStyle = config.geomStyle || {}; - - const geom = chart.polygon() - .position('x*y') - .color('type', config.colors) - .tooltip('x*y*extra', (x, y, extra) => { - return { - name: `${x} - ${y}`, - value: (Array.isArray(extra) ? extra[0] : extra.value) || '-', - }; - }) - .style('x*y*type*extra', { - lineWidth: 1, - stroke: themes['widgets-map-area-border'], - ...geomStyle, - }); - - label(geom, config, 'y', { - offset: 0, - formatter(v, item, i) { - const data = item._origin; - let result = (Array.isArray(data.extra) ? data.extra[0] : data.extra.value) || '-'; - if (config.label && config.label.labelFormatter) { - result = config.label.labelFormatter(result, item, i); - } - return result; - } - }, null, true); - - chart.render(); - }, - // changeData(chart, config, data) { - // chart.changeData(data); - // }, - // destroy() { - // }, -})); - diff --git a/components/Wheatmap/G2Heatmap.scss b/components/Wheatmap/G2Heatmap.scss deleted file mode 100644 index c37764fb..00000000 --- a/components/Wheatmap/G2Heatmap.scss +++ /dev/null @@ -1,9 +0,0 @@ -.cloud-charts.G2Heatmap { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } - - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } -} diff --git a/components/Wheatmap/index.jsx b/components/Wheatmap/index.jsx deleted file mode 100644 index 5401e996..00000000 --- a/components/Wheatmap/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Heatmap'; diff --git a/components/Wheatmap/index.scss b/components/Wheatmap/index.scss deleted file mode 100644 index 1140793c..00000000 --- a/components/Wheatmap/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Heatmap.scss"; diff --git a/components/Whierarchy/G2Hierarchy.js b/components/Whierarchy/G2Hierarchy.js deleted file mode 100644 index 786b4667..00000000 --- a/components/Whierarchy/G2Hierarchy.js +++ /dev/null @@ -1,156 +0,0 @@ -'use strict'; -import { View } from '@antv/data-set'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { defaultPadding } from '../common/common'; -import rectTooltip from '../common/rectTooltip'; -import './G2Hierarchy.scss'; - -export default /*#__PURE__*/ errorWrap( - g2Factory('G2Treemap', { - convertData: false, - getDefaultConfig() { - return { - colors: themes.category_12, - padding: ['auto', 'auto', 'auto', 'auto'], - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - label: { - offset: 0, - textStyle: { - fill: '#fff', - shadowBlur: 2, - shadowColor: 'rgba(0,0,0,0.6)', - }, - }, - // label 文本展示的策略 - labelRender: (depth, name, value, xRange, yRange) => { - // 根据矩形大小判断是否渲染 label - if (xRange[1] - xRange[0] > 0.03 && yRange[1] - yRange[0] > 0.05) { - return name; - } - return; - }, - innerRadius: 0, - polar: false, - // 区块的 border 样式,包含 lineWidth lineDash stroke 等属性 - borderStyle: {}, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding( - props.padding || config.padding, - newConfig, - ...this.defaultConfig.padding, - ), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - this.dataView = processDataView(config, data); - const nodes = parseDataView(this.dataView); - chart.source(nodes); - - // tooltip - rectTooltip.call(this, chart, config, { crosshairs: false }); - - drawHierarchy(chart, config, config.colors); - - chart.render(); - }, - changeData(chart, config, data) { - if (this.dataView) { - this.dataView.source(data); - } - }, - }), -); - -// 数据分箱 -function processDataView(config, data) { - const dv = new View().source(data, { type: 'hierarchy' }); - dv.transform({ - type: 'hierarchy.partition', - }); - - return dv; -} - -// 将 DataSet 处理后的结果转换为 G2 接受的数据 -function parseDataView(dv) { - const nodes = []; - - for (const node of dv.getAllNodes()) { - const eachNode = { - name: node.data.name, - value: node.value, - depth: node.depth, - x: node.x, - y: node.y, - path: getNodePath(node).join('/'), - }; - - nodes.push(eachNode); - } - - return nodes; -} - -// 简单矩形树图 -function drawHierarchy(chart, config, colors, field = 'name') { - // 设置坐标系:极坐标/直角坐标 - if (config.polar) { - chart.coord('polar', { - innerRadius: config.innerRadius || 0, - }); - } else { - chart.coord(); - } - - chart.axis(false); - chart.legend(false); - - chart - .polygon() - .position('x*y') - .color(field, colors) - .tooltip('name*value*path', (name, value, path) => ({ - name, - value, - title: path, - })) - .style(config.borderStyle) - .label( - 'depth*name*value*x*y', - (depth, name, value, xs, ys) => - config.labelRender( - depth, - name, - value, - [Math.min(...xs), Math.max(...xs)], - [Math.min(...ys), Math.max(...ys)], - ), - config.label, - ); -} - -// 获取节点的路径 -function getNodePath(n) { - if (!n.parent) { - return [n.data.name]; - } - return [...getNodePath(n.parent), n.data.name]; -} diff --git a/components/Whierarchy/index.jsx b/components/Whierarchy/index.jsx deleted file mode 100644 index ecb11e35..00000000 --- a/components/Whierarchy/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Hierarchy'; \ No newline at end of file diff --git a/components/Whierarchy/index.scss b/components/Whierarchy/index.scss deleted file mode 100644 index 5d816389..00000000 --- a/components/Whierarchy/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Hierarchy.scss"; diff --git a/components/Whistogram/G2Histogram.js b/components/Whistogram/G2Histogram.js deleted file mode 100644 index af1dfe8a..00000000 --- a/components/Whistogram/G2Histogram.js +++ /dev/null @@ -1,188 +0,0 @@ -'use strict'; -import { View } from '@antv/data-set'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { defaultPadding, propertyAssign, propertyMap } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import label from '../common/label'; -import getGeomSizeConfig from '../common/geomSize'; -import './G2Histogram.scss'; - -function computerData(config, data) { - const { bins, binWidth, offset } = config.bin; - - const dv = new View().source(data); - dv.transform({ - type: 'bin.histogram', - field: 'x', - bins, - binWidth, - offset, - groupBy: ['type', 'visible'], - as: ['x', 'y'], - }); - - if (config.normalize) { - const total = dv.rows.reduce((acc, cur) => acc + cur.y, 0); - dv.transform({ - type: 'map', - callback(row) { - row.y = row.y / total; - return row; - }, - }); - } - - return dv; -} - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Histogram', { - // convertData: false, - getDefaultConfig() { - return { - colors: themes.category_12, - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - // type: "cat", - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - // 坐标轴粒度 - // tickInterval: 1, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null - }, - legend: { - align: "left", - nameFormatter: null // 可以强制覆盖,手动设置label - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null - }, - column: true, - grid: false, - size: null, - label: false, - innerRadius: 0, - // 分箱粒度 - bin: { - // bins: 10, // 分箱个数 - binWidth: 1, // 分箱步长(会覆盖bins的配置) - offset: 0, - }, - // 是否归一化 - normalize: false - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding( - props.padding || config.padding, - newConfig, - ...this.defaultConfig.padding - ), - config: newConfig - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - // 设置数据度量 - const defs = { - x: propertyAssign(propertyMap.xAxis, { - // 折线图X轴的范围默认覆盖全部区域,保证没有空余 - // range: [0, 1], - }, config.xAxis), - y: propertyAssign(propertyMap.yAxis, { - type: 'linear', - // tickCount: 5, - }, config.yAxis), - type: { - type: 'cat', - }, - }; - - const dataView = computerData(config, data); - this.dataView = dataView; - - chart.source(dataView, defs); - - // 设置Y轴 - rectYAxis.call(this, chart, config); - - // 设置X轴 - rectXAxis.call(this, chart, config); - - // 设置图例 - rectLegend.call(this, chart, config, null, false, "type"); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config, { - crosshairs: config.polar ? undefined : {} - }); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - // 设置坐标系:极坐标/直角坐标 - const chartCoord = config.polar - ? chart.coord("polar", { - innerRadius: config.innerRadius || 0 - }) - : chart.coord(); - - // 横向柱状图 - if (!config.column) { - chartCoord.transpose(); - } - - drawHist(chart, config, config.colors); - - chart.render(); - }, - changeData(chart, config, data) { - if (this.dataView) { - this.dataView.source(data); - } - // chart.changeData(data); - }, -})); - -function drawHist(chart, config, colors, field = "type") { - const { size } = config; - const geomStyle = config.geomStyle || {}; - const geom = chart - .intervalStack() - .position('x*y') - .color(field, colors); - - if (size) { - const sizeConfig = getGeomSizeConfig(size, 20, "y", "x*y*type*extra"); - geom.size(...sizeConfig); - } - - geom.style('x*y*type*extra', { - ...geomStyle, - }); - - label(geom, config); -} diff --git a/components/Whistogram/G2Histogram.scss b/components/Whistogram/G2Histogram.scss deleted file mode 100644 index e67b63e5..00000000 --- a/components/Whistogram/G2Histogram.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Bar { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Whistogram/index.jsx b/components/Whistogram/index.jsx deleted file mode 100644 index b0735d0b..00000000 --- a/components/Whistogram/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Histogram'; diff --git a/components/Whistogram/index.scss b/components/Whistogram/index.scss deleted file mode 100644 index c1a9b30c..00000000 --- a/components/Whistogram/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Histogram.scss"; diff --git a/components/Wline/G2Line.js b/components/Wline/G2Line.js deleted file mode 100644 index dc1c4223..00000000 --- a/components/Wline/G2Line.js +++ /dev/null @@ -1,233 +0,0 @@ -'use strict'; - -import Brush from '@antv/g2-brush'; -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, getDataIndexColor, propertyMap, defaultPadding } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import autoTimeMask from '../common/autoTimeMask'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import ResetButton from '../common/ResetButton'; -import drawLine from '../common/drawLine'; -import './G2Line.scss'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Line', { - getDefaultConfig() { - return { - colors: themes.category_12, - areaColors: [], - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - type: 'time', // 默认为线性 - mask: 'auto', // 上述type为time时,此字段生效 - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - max: null, - min: null, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - area: false, - stack: false, // 仅Area有效 - spline: false, - grid: false, - symbol: false, - zoom: false, - label: false, - step: null, - // TODO - // mini: false, - // dataConfig: { - // nameKey: 'name', - // valueKey: 'value', - // // valueKey: ['value1', 'value2'], - // typeKey: 'type' - // } - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // // TODO 处理padding - // let defaultPaddingTop = defaultConfig.padding[0]; - // let defaultPaddingRight = defaultConfig.padding[1]; - // const defaultPaddingBottom = defaultConfig.padding[2]; - // const defaultPaddingLeft = defaultConfig.padding[3]; - // if (defaultPaddingRight !== 'auto' && Array.isArray(newConfig.yAxis)) { - // defaultPaddingRight = 44; - // } - // if (defaultPaddingTop !== 'auto' && !newConfig.legend) { - // defaultPaddingTop = 16; - // } - return Object.assign({}, props, { - // padding: props.padding || config.padding || [defaultPaddingTop, defaultPaddingRight, defaultPaddingBottom, defaultPaddingLeft], - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - if (config.xAxis && config.xAxis.type === 'datetime') { - config.xAxis.type = 'time'; - } - - const defs = { - x: propertyAssign(propertyMap.xAxis, { - type: 'time', - // 折线图X轴的范围默认覆盖全部区域,保证没有空余 - range: [0, 1], - }, config.xAxis), - type: { - type: 'cat', - }, - }; - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - defs[`y${yIndex}`] = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, axis); - }); - } else { - defs.y = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, config.yAxis); - } - - autoTimeMask(defs, this.rawData); - - rectAutoTickCount(chart, config, defs, false); - - chart.source(data, defs); - - // 设置X轴 - rectXAxis.call(this, chart, config); - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - const yAxisConfig = { - line: { - stroke: getDataIndexColor(config.colors, this.rawData, yIndex) || themes['widgets-axis-line'], - }, - }; - if (yIndex !== 0) { - yAxisConfig.grid = null; - } - - rectYAxis.call(this, chart, { ...config, yAxis: axis }, `y${yIndex}`, yAxisConfig); - }); - } else { - // 设置单个Y轴 - rectYAxis.call(this, chart, config); - } - - // 设置图例 - rectLegend.call(this, chart, config, null, false, 'type'); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((asix, yIndex) => { - drawLine(chart, config, `y${yIndex}`); - }); - } else { - drawLine(chart, config); - } - - chart.render(); - - // 拖拽缩放 - if (config.zoom) { - const button = new ResetButton(chart, this.language); - this.resetButton = button; - - this.brush = new Brush({ - canvas: chart.get('canvas'), - chart, - type: 'X', - onBrushstart(startPoint) { - chart.hideTooltip(); - chart.emit('zoom:start', startPoint); - }, - onBrushmove: () => { - chart.hideTooltip(); - button.show(this.language); - }, - onBrushend: (ev) => { - this.brush.container.clear(); // clear the brush - const { type } = this.brush; - const { xScale } = this.brush; - const { yScale } = this.brush; - // filter data - if (type === 'X') { - xScale && chart.filter(xScale.field, val => { - return ev[xScale.field].indexOf(val) > -1; - }); - } else if (type === 'Y') { - yScale && chart.filter(yScale.field, val => { - return ev[yScale.field].indexOf(val) > -1; - }); - } else { - xScale && chart.filter(xScale.field, val => { - return ev[xScale.field].indexOf(val) > -1; - }); - yScale && chart.filter(yScale.field, val => { - return ev[yScale.field].indexOf(val) > -1; - }); - } - chart.repaint(); - - chart.emit('zoom:end', ev); - }, - }); - } - }, - changeData(chart, config, data) { - chart.changeData(data); - - // 更新 brush 的 scale 实例,fix 数据更新后拖动缩放失效的问题。 - if (config.zoom && this.brush) { - this.brush.xScale = chart.getXScale(); - this.brush.yScale = chart.getYScales()[0]; - } - }, - destroy() { - // 销毁时需要额外销毁缩放重置按钮 - if (this.brush) { - this.brush.destroy(); - } - if (this.resetButton) { - this.resetButton.destroy(); - } - }, -})); diff --git a/components/Wline/G2Line.scss b/components/Wline/G2Line.scss deleted file mode 100644 index 22527e39..00000000 --- a/components/Wline/G2Line.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Line { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wline/index.jsx b/components/Wline/index.jsx deleted file mode 100644 index fea03ee7..00000000 --- a/components/Wline/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Line'; diff --git a/components/Wline/index.scss b/components/Wline/index.scss deleted file mode 100644 index 4e030e48..00000000 --- a/components/Wline/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Line.scss"; diff --git a/components/Wlinebar/G2LineBar.js b/components/Wlinebar/G2LineBar.js deleted file mode 100644 index 104c0f90..00000000 --- a/components/Wlinebar/G2LineBar.js +++ /dev/null @@ -1,456 +0,0 @@ -'use strict'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, getDataIndexColor, propertyMap, defaultPadding } from '../common/common'; -import highchartsDataToG2Data from '../common/dataAdapter'; -import { drawGuideArea, drawGuideLine, drawGuideFilter } from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import autoTimeMask from '../common/autoTimeMask'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import label from '../common/label'; -import './G2LineBar.scss'; -import { legendHtmlContainer, legendHtmlListItem } from '../common/g2Theme'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2LineBar', { - convertData: false, - getDefaultConfig() { - return { - lineColors: themes.category_12.slice(1), - barColors: themes.linear_10, - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - type: 'timeCat', // 默认为线性 - mask: 'YYYY-MM-DD HH:mm:ss', // 上述type为time时,此字段生效 - labelFormatter: null, // 可以强制覆盖,手动设置label - categories: null, - autoRotate: false, - max: null, - min: null, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - area: false, - dodgeStack: false, - stack: false, // 仅Area有效 - stackReverse: true, - marginRatio: 0, - spline: false, - grid: false, - symbol: false, - lineLabel: undefined, - barLabel: undefined, - label: false, - // TODO - // zoom: false, - // mini: false, - // dataConfig: { - // nameKey: 'name', - // valueKey: 'value', - // // valueKey: ['value1', 'value2'], - // typeKey: 'type' - // } - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - const rawLineData = []; - this.rawLineData = rawLineData; - const rawBarData = []; - this.rawBarData = rawBarData; - (data || []).forEach((d) => { - if (d.type === 'line') { - rawLineData.push(d); - } else if (d.type === 'bar') { - rawBarData.push(d); - } - }); - - const lineData = highchartsDataToG2Data(rawLineData, config); - const barData = highchartsDataToG2Data(rawBarData, config); - - const defs = { - x: propertyAssign(propertyMap.xAxis, { - type: 'cat', - // fix 更新数据时x轴无法清除数据 - // sync: true, - }, config.xAxis), - type: { - type: 'cat', - }, - }; - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - defs[`y${yIndex}`] = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, axis); - }); - } else { - defs.y = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - // 单轴时,必须同步度量,否则会两个度量叠加在一起 - sync: true, - }, config.yAxis); - } - - autoTimeMask(defs, this.rawData); - - rectAutoTickCount(chart, config, defs, false); - - chart.scale(defs); - - // 设置X轴 - rectXAxis.call(this, chart, config); - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - const axisColor = getDataIndexColor(config.lineColors, rawLineData, yIndex) || getDataIndexColor(config.barColors, rawBarData, yIndex) || themes['widgets-axis-line']; - const yAxisConfig = { - line: { - stroke: axisColor, - }, - }; - if (yIndex !== 0) { - yAxisConfig.grid = null; - // 因为是多个view组成的图表,所以这里需要移动位置 - yAxisConfig.position = 'right'; - } - - rectYAxis.call(this, chart, { ...config, yAxis: axis }, `y${yIndex}`, yAxisConfig); - }); - } else { - // 设置单个Y轴 - rectYAxis.call(this, chart, config); - } - - // 设置图例 - const legendStyle = { - ...legendHtmlContainer, - display: 'inline-block', - position: 'relative', - }; - // const legendItemStyle = { - // ...legendHtmlListItem, - // }; - if (config.legend !== false) { - const { position, align } = config.legend || {}; - - // if (position === 'top') { - // legendStyle.top = themes['widgets-font-size-1']; - // } - - if (align === 'right') { - legendStyle.marginLeft = themes['widgets-font-size-1']; - } else if (align === 'left') { - legendStyle.marginRight = themes['widgets-font-size-1']; - } else if (align === 'center') { - legendStyle.marginRight = themes['widgets-font-size-1']; - } else { - // 默认放到左边 - legendStyle.marginRight = themes['widgets-font-size-1']; - } - - if (position === 'bottom') { - legendStyle.top = '100%'; - legendStyle.transform = 'translate(0, -100%)'; - legendStyle.overflow = 'visible'; - legendStyle.verticalAlign = 'top'; - - // legendItemStyle.marginBottom = 0; - // legendItemStyle.marginTop = themes['widgets-font-size-1']; - } - } - rectLegend.call(this, chart, config, { - 'g2-legend': legendStyle, - // 'g2-legend-list-item': legendItemStyle, - }, false, 'type'); - - // tooltip - rectTooltip.call(this, chart, config); - - // 正式开始绘图,创建两个不同的view - const barView = chart.view(); - barView.source(barData); - this.barView = barView; - - const lineView = chart.view(); - lineView.source(lineData); - this.lineView = lineView; - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((asix, yIndex) => { - if (getDataIndexColor(config.barColors, rawBarData, yIndex)) { - drawBar(barView, config, `y${yIndex}`); - } - if (getDataIndexColor(config.lineColors, rawLineData, yIndex)) { - drawLine(lineView, config, `y${yIndex}`); - } - }); - } else { - drawBar(barView, config); - drawLine(lineView, config); - } - - // 绘制辅助线,辅助背景区域 - viewGuide(config, lineView, rawLineData, barView, rawBarData); - - legendFilter.call(this, barView, config, 'rawBarData'); - legendFilter.call(this, lineView, config, 'rawLineData'); - - chart.render(); - }, - changeData(chart, userConfig, data) { - const rawLineData = []; - this.rawLineData = rawLineData; - const rawBarData = []; - this.rawBarData = rawBarData; - (data || []).forEach((d) => { - if (d.type === 'line') { - rawLineData.push(d); - } else if (d.type === 'bar') { - rawBarData.push(d); - } - }); - - const lineData = highchartsDataToG2Data(rawLineData, userConfig); - const barData = highchartsDataToG2Data(rawBarData, userConfig); - - this.barView && this.barView.source(barData); - this.lineView && this.lineView.source(lineData); - chart.render(); - - // hackLegendPosition.call(this, userConfig); - }, - afterRender(chart, config) { - if (config.legend !== false) { - const { position = 'top', align } = config.legend || {}; - - // hack 图例的位置 - const dom = this.chartDom && this.chartDom.querySelector('.g2-legend'); - if (dom && dom.parentNode) { - dom.parentNode.className = ''; - - dom.parentNode.classList.add(`widgets-legend-align-${align || 'left'}`); - } - } else { - // 清空类名 - const dom = this.chartDom && this.chartDom.querySelector('.g2-legend'); - if (dom && dom.parentNode) { - dom.parentNode.className = ''; - } - } - }, -})); - -function drawBar(chart, config, yAxisKey = 'y') { - const { stack, stackReverse, marginRatio, dodgeStack } = config; - const geomStyle = config.barGeomStyle || {}; - - let intervalGeom = null; - if (dodgeStack) { - intervalGeom = chart.interval() - .position(['x', yAxisKey]) - .color('type', config.barColors) - .adjust([ - { - type: 'dodge', - marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 - dodgeBy: 'dodge', - }, - { - type: 'stack', - reverseOrder: !stackReverse, // 层叠顺序倒序 - }, - ]); - } else if (stack) { - intervalGeom = chart.interval() - .position(['x', yAxisKey]) - .color('type', config.barColors) - .adjust([{ - type: 'stack', - reverseOrder: !stackReverse, // 层叠顺序倒序 - }]); - } else { - intervalGeom = chart.interval() - .position(['x', yAxisKey]) - .color('type', config.barColors) - .adjust([{ - type: 'dodge', - marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 - }]); - } - - intervalGeom.style({ - ...geomStyle, - }); - - label(intervalGeom, config, yAxisKey, null, 'barLabel'); -} - -function drawLine(chart, config, yAxisKey = 'y') { - let lineGeom = null; - const { lineWidth } = config; - const geomStyle = config.lineGeomStyle || {}; - if (lineWidth !== undefined) { - geomStyle.lineWidth = lineWidth; - } - - // 区域、堆叠、平滑曲线 - const lineShape = config.spline ? 'smooth' : 'line'; - const areaShape = config.spline ? 'smooth' : 'area'; - - const stack = config.stack || config.dodgeStack; - - if (config.area && stack) { - chart.areaStack() - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape(areaShape) - .active(false); - lineGeom = chart.lineStack() - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape(lineShape) - .style({ - lineJoin: 'round', - ...geomStyle, - }); - } else if (config.area && !stack) { - chart.area() - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape(areaShape) - .active(false); - lineGeom = chart.line() - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape(lineShape) - .style({ - lineJoin: 'round', - ...geomStyle, - }); - } else { - lineGeom = chart.line() - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape(lineShape) - .style({ - lineJoin: 'round', - ...geomStyle, - }); - } - - label(lineGeom, config, yAxisKey, null, 'lineLabel'); - - // 曲线默认点 - if (config.symbol && config.area && stack) { - chart.point() - .adjust('stack') - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape('circle') - .size(3) - .active(false); - } else if (config.symbol) { - chart.point() - .position(['x', yAxisKey]) - .color('type', config.lineColors) - .shape('circle') - .size(3) - .active(false); - } -} - -function viewGuide(config, lineView, rawLineData, barView, rawBarData) { - const { guide } = config; - if (!guide) { - return; - } - - const { line: guideLine, area: guideArea, filter: guideFilter, ...other } = guide; - - if (guideLine) { - if (Array.isArray(guideLine)) { - guideLine.forEach((line) => { - drawGuideLine(getGuideView(config, line, lineView, rawLineData, barView, rawBarData), line); - }); - } else { - drawGuideLine(getGuideView(config, guideLine, lineView, rawLineData, barView, rawBarData), guideLine); - } - } - - if (guideArea) { - if (Array.isArray(guideArea)) { - guideArea.forEach((area) => { - drawGuideArea(getGuideView(config, area, lineView, rawLineData, barView, rawBarData), area); - }); - } else { - drawGuideArea(getGuideView(config, guideArea, lineView, rawLineData, barView, rawBarData), guideArea); - } - } - - if (guideFilter) { - if (Array.isArray(guideFilter)) { - guideFilter.forEach((filter) => { - drawGuideFilter(getGuideView(config, filter, lineView, rawLineData, barView, rawBarData), filter); - }); - } else { - drawGuideFilter(getGuideView(config, guideFilter, lineView, rawLineData, barView, rawBarData), guideFilter); - } - } - - if (!guideLine && !guideArea && !guideFilter && Object.keys(other).length > 0) { - console.warn('guide 定义异常,请使用 guide.line 或 guide.area'); - } -} - -function getGuideView(config, guide, lineView, rawLineData, barView, rawBarData) { - const { target, axis, value } = guide; - - // 如果用户指定了绘制目标,直接使用 - if (target === 'line') { - return lineView; - } else if (target === 'bar') { - return barView; - } - - if (axis && (value || value === 0) && /y\d/.test(axis)) { - const yIndex = Number(axis.replace(/^y/, '')); - if (getDataIndexColor(config.barColors, rawBarData, yIndex)) { - return barView; - } - } - - return lineView; -} diff --git a/components/Wlinebar/G2LineBar.scss b/components/Wlinebar/G2LineBar.scss deleted file mode 100644 index 2c60f08f..00000000 --- a/components/Wlinebar/G2LineBar.scss +++ /dev/null @@ -1,29 +0,0 @@ -.cloud-charts.G2LineBar { - > div { - height: 100%; - - &.widgets-legend-align-left { - text-align: left; - } - &.widgets-legend-align-center { - text-align: center; - } - &.widgets-legend-align-right { - text-align: right; - } - } - - canvas { - position: absolute; - top: 0; - left: 0; - } - // last-of-type 选择器配合css类会不生效,所以放在js逻辑中处理 - //.g2-legend:last-of-type { - // margin-right: 0 !important; - //} - - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wlinebar/index.jsx b/components/Wlinebar/index.jsx deleted file mode 100644 index 3c0d53c6..00000000 --- a/components/Wlinebar/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2LineBar'; diff --git a/components/Wlinebar/index.scss b/components/Wlinebar/index.scss deleted file mode 100644 index 718afbfc..00000000 --- a/components/Wlinebar/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2LineBar.scss"; diff --git a/components/Wmap/G2Map.js b/components/Wmap/G2Map.js deleted file mode 100644 index 3bf19501..00000000 --- a/components/Wmap/G2Map.js +++ /dev/null @@ -1,656 +0,0 @@ -'use strict'; - -import React from 'react'; -import G2 from '@antv/g2'; -import { DataSet } from '@antv/data-set'; -import chinaGeo from './mapData/chinaGeo.json'; -import { provinceName, positionMap } from './mapData/chinaGeoInfo'; -import themes from '../themes/index'; -import { legendHtmlContainer } from '../common/g2Theme'; -import merge from '../common/merge'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import getGeomSizeConfig from '../common/geomSize'; -import './G2Map.scss'; - -export const AREA_NAME = 'WidgetsMapArea'; -export const POINT_NAME = 'WidgetsMapPoint'; -export const HEAT_MAP_NAME = 'WidgetsMapHeatMap'; -export const SHOOT_NAME = 'WidgetsMapShoot'; -export const CUSTOM_NAME = 'WidgetsMapCustom'; - -// const chinaProjection = () => geoConicEqualArea().center([0, 36.4]).parallels([25, 47]).scale(1000).rotate([-105, 0]).translate([0, 0]); - -// 这几个地点太小,需要特殊处理边框颜色 -const minArea = ['钓鱼岛', '赤尾屿', '香港', '澳门']; -// 这几个地点需要特殊处理标签的文字大小 -const minLabel = ['钓鱼岛', '赤尾屿']; - -// 特殊处理一些地区的label -const fixLngLatMap = { - 甘肃: [104.4948862, 35.0248462], - 河北: [115.5193875, 38.3062153], - 天津: [118.2141694, 38.8206246], - 澳门: [113.2573035, 21.7906005], - 香港: [114.9040905, 21.9265955], - 陕西: [108.5133047, 33.8799429], - 上海: [122.2818331, 31.0480268], -}; - -export default { - getDefaultConfig() { - return { - padding: [20, 20, 20, 20], - background: { - fill: themes['widgets-map-area-bg'], - stroke: themes['widgets-map-area-border'], - }, - areaColors: themes.order_10, - pointColors: themes.category_12, - heatColors: 'rgb(0,0,255)-rgb(0,255,0)-rgb(255,255,0)-rgb(255,0,0)', - type: 'china', - showSouthChinaSea: true, - projection: null, - legend: { - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - nameFormatter: null, - valueFormatter: null, - }, - labels: false, - label: false, - }; - }, - beforeInit(props) { - const { config, geoData } = props; - const newConfig = merge({}, this.defaultConfig, config); - if (geoData) { - this.geoData = geoData; - } - this.config = newConfig; - - return Object.assign({}, props, { - padding: props.padding || newConfig.padding, - config: newConfig, - }); - }, - init(chart, config) { - // 同步度量 - chart.scale({ - longitude: { - sync: true, - }, - latitude: { - sync: true, - }, - x: { - nice: false, - sync: true, - }, - y: { - nice: false, - sync: true, - }, - }); - - // 设置了 geo.projection 变换后,几何体的坐标系和图表的坐标系(从左下角到右上角)上下相反,所以设置镜像使地图的坐标正确。 - chart.coord().reflect(); - - chart.axis(false); - - rectTooltip.call( - this, - chart, - config, - { - showTitle: false, - crosshairs: null, - }, - (ev) => { - ev.items.forEach((item, index) => { - const raw = item.point._origin || {}; - - if (config.tooltip.valueFormatter) { - item.value = config.tooltip.valueFormatter(item.value, raw, index, ev.items); - } - if (config.tooltip.nameFormatter) { - item.name = config.tooltip.nameFormatter(item.name, raw, index, ev.items); - } - }); - } - ); - - // 设置图例 - rectLegend.call(this, chart, config, { - autoCollapse: false, - position: 'left', - paddingIgnore: true, - // 使用container控制图例添加的位置,方便调整样式 - container: `#${this.chartId}-legend`, - 'g2-legend': { - ...legendHtmlContainer, - position: 'static', - overflow: 'visible', - }, - }); - - const ds = new DataSet(); - this.ds = ds; - - drawMapBackground.call(this, chart, ds, config); - - React.Children.forEach(this.props.children, child => { - if (!child) { - return; - } - const layerConfig = Object.assign( - {}, - config, - child.props.config || child.props - ); - // G2 图层需要转化数据格式 - let { data } = child.props; - if (layerConfig.dataType !== 'g2') { - data = convertMapData(data); - } - if (child.type.displayName === AREA_NAME) { - drawMapArea.call(this, chart, ds, layerConfig, data); - } - if (child.type.displayName === POINT_NAME) { - drawMapPoint.call(this, chart, ds, layerConfig, data); - } - if (child.type.displayName === HEAT_MAP_NAME) { - drawHeatMap.call(this, chart, ds, layerConfig, data); - } - }); - - if (config.labels || config.label) { - drawMapLabel.call(this, chart, config); - } - - chart.render(); - }, - changeSize(chart, config, chartWidth, chartHeight) { - const chartRatio = chartWidth / chartHeight; - const ratio = this.bgMapRatio || chartRatio; - - let width = chartWidth; - let height = chartHeight; - if (chartRatio > ratio) { - width = chartHeight * ratio; - } else if (chartRatio < ratio) { - height = chartWidth / ratio; - } - chart.changeSize(width, height); - }, - changeData(chart, newConfig, viewName, newData) { - const config = merge({}, this.defaultConfig, newConfig); - const { ds } = this; - let data = newData; - if (config.dataType !== 'g2') { - data = convertMapData(newData); - } - if (viewName === AREA_NAME) { - drawMapArea.call(this, chart, ds, config, data); - } - if (viewName === POINT_NAME) { - drawMapPoint.call(this, chart, ds, config, data); - } - if (viewName === HEAT_MAP_NAME) { - drawHeatMap.call(this, chart, ds, config, data); - } - }, - destroy() { - this.bgMapDataView = null; - this.areaMapDataView = null; - this.pointMapDataView = null; - this.heatMapDataView = null; - }, -}; - -// 绘制地图背景 -function drawMapBackground(chart, ds, config) { - let geoData = null; - if (this.geoData) { - // 如果用户有传geoData,优先使用 - geoData = this.geoData; - } else if (config.type === 'china') { - // 自带中国地图数据 - geoData = chinaGeo; - } else { - console.warn("map: no geo data, can't draw the map!"); - } - - const bgMapDataView = ds.createView('bgMap').source(geoData, { - type: 'GeoJSON', - }); - - let { projection } = config; - - if (!projection) { - projection = bgMapDataView.getGeoProjection('geoConicEqualArea'); - projection - .center([0, 36.4]) - .parallels([25, 47]) - .scale(1000) - .rotate([-105, 0]) - .translate([0, 0]); - } - - bgMapDataView.transform({ - type: 'geo.projection', - // 因为G2的投影函数不支持设置投影参数,这里使用自定义的投影函数设置参数 - projection() { - return projection; - }, - as: ['x', 'y', 'cX', 'cY'], - }); - - if (config.type === 'china') { - // 过滤掉南海诸岛 - bgMapDataView.transform({ - type: 'filter', - callback(row) { - return row.properties.name !== '南海诸岛'; - }, - }); - } - - // start: 按照投影后尺寸比例调整图表的真实比例 - const longitudeRange = bgMapDataView.range('x'); - const latitudeRange = bgMapDataView.range('y'); - const ratio = - (longitudeRange[1] - longitudeRange[0]) / - (latitudeRange[1] - latitudeRange[0]); - this.bgMapRatio = ratio; - const { width: chartWidth, height: chartHeight } = chart._attrs; - const chartRatio = chartWidth / chartHeight; - - let width = chartWidth; - let height = chartHeight; - if (chartRatio > ratio) { - width = chartHeight * ratio; - } else if (chartRatio < ratio) { - height = chartWidth / ratio; - } - if (width !== chartWidth || height !== chartHeight) { - chart.changeSize(width, height); - } - // end: 按照投影后尺寸比例调整图表的真实比例 - - const { fill: bgFill, stroke: bgStroke, ...otherBgStyle } = - config.background || {}; - - const bgMapView = chart.view(); - bgMapView.source(bgMapDataView); - bgMapView.tooltip(false); - bgMapView - .polygon() - .position('x*y') - .style('name', { - fill: bgFill || themes['widgets-map-area-bg'], - stroke: name => { - // 对一些尺寸非常小的形状特殊处理,以显示出来。 - if (minArea.indexOf(name) > -1) { - return bgFill || themes['widgets-map-area-bg']; - } - return bgStroke || themes['widgets-map-area-border']; - }, - lineWidth: 1, - ...otherBgStyle, - }); - - this.bgMapDataView = bgMapDataView; - this.bgMapView = bgMapView; - - this.projection = projection; -} - -// 绘制分级统计地图 -function drawMapArea(chart, ds, config, data) { - let { areaMapDataView } = this; - if (areaMapDataView) { - areaMapDataView.origin !== data && areaMapDataView.source(data); - } else { - areaMapDataView = ds - .createView() - .source(data) - .transform({ - type: 'map', - callback(obj) { - const { name, type, ...others } = obj; - let newName = name; - // 将省份全称转化为简称,原名先存在别的名字 - if (provinceName[name]) { - newName = provinceName[obj.name]; - } - obj.type = String(obj.type); - return { - name: newName, - type: String(type), - ...others, - }; - }, - }) - .transform({ - geoDataView: this.bgMapDataView, - field: 'name', - type: 'geo.region', - as: ['x', 'y'], - }); - - const areaMapView = chart.view(); - areaMapView.source(areaMapDataView); - const areaGeom = areaMapView - .polygon() - .position('x*y') - // 如果用连续型颜色,需要对数组倒序,否则颜色对应的数值会从小开始 - .color('type', config.areaColors.join('-')) - // .opacity('value') - .tooltip('name*value', (name, value) => ({ - name, - value, - })); - - if (config.geomStyle) { - areaGeom.style('name*value', config.geomStyle); - } - - this.areaMapDataView = areaMapDataView; - this.areaMapView = areaMapView; - } -} - -// 绘制散点图 -function drawMapPoint(chart, ds, config, data) { - let { pointMapDataView } = this; - if (pointMapDataView) { - pointMapDataView.origin !== data && pointMapDataView.source(data); - } else { - pointMapDataView = ds - .createView() - .source(data) - .transform({ - type: 'map', - callback: point => { - const newPoint = Object.assign({}, point); - newPoint.type = String(newPoint.type); - return convertPointPosition.call(this, newPoint); - }, - }); - - const pointMapView = chart.view(); - pointMapView.source(pointMapDataView); - const sizeConfig = getGeomSizeConfig(config.size, 4, 'value', 'name*value'); - const pointGeom = pointMapView - .point() - .position('x*y') - .shape('circle') - .color('type', config.pointColors) - .size(...sizeConfig) - // .opacity('value') - .tooltip('name*value', (name, value) => ({ - name, - value, - })) - .active(false); - - if (config.geomStyle) { - pointGeom.style('name*value', config.geomStyle); - } - - if (config.labels || config.label) { - let labelConfig = {}; - if (typeof config.labels === 'object') { - labelConfig = config.labels; - } else if (typeof config.label === 'object') { - labelConfig = config.label; - } - const { offset = 0, textStyle = {}, formatter } = labelConfig; - pointGeom.label('name', { - offset: `${offset - Number(themes['widgets-font-size-1'].replace('px', ''))}`, - textStyle: { - fill: themes['widgets-map-label'], - // 需要去掉 px 的字符串 - fontSize: themes['widgets-font-size-1'].replace('px', ''), - textBaseline: 'middle', - ...textStyle, - }, - formatter: formatter || null, - }); - } - - this.pointMapDataView = pointMapDataView; - this.pointMapView = pointMapView; - } -} - -// 绘制热力图 -function drawHeatMap(chart, ds, config, data) { - let { heatMapDataView } = this; - if (heatMapDataView) { - heatMapDataView.origin !== data && heatMapDataView.source(data); - } else { - heatMapDataView = ds - .createView() - .source(data) - .transform({ - type: 'map', - callback: point => { - const newPoint = Object.assign({}, point); - newPoint.type = String(newPoint.type); - return convertPointPosition.call(this, newPoint); - }, - }); - - const heatMapView = chart.view(); - heatMapView.source(heatMapDataView); - chart.legend('value', false); - - const sizeConfig = getGeomSizeConfig( - config.size, - 16, - 'value', - 'name*value' - ); - heatMapView - .heatmap() - .position('x*y') - .color('value', config.heatColors) - .size(...sizeConfig) - .tooltip('name*value', (name, value) => ({ - name, - value, - })) - // heatmap 不支持 opacity,似乎不支持 style - .style('name*value', { - // opacity(name, value) { - // return 0.5; - // }, - ...(config.geomStyle || {}), - }) - .active(false); - - this.heatMapDataView = heatMapDataView; - this.heatMapView = heatMapView; - } -} - -// 绘制背景地图标签 -function drawMapLabel(chart, config) { - const labelConfig = config.labels || config.label; - - // 将背景数据集中的中心点坐标(cX, cY)映射为新数据中的x, y。保证scale可以同步这个view的度量。 - const labelData = this.bgMapDataView.rows.map(row => { - const label = { - name: row.name, - x: row.cX, - y: row.cY, - }; - - // fix 某些地区label位置不好,需要重新定位 - const fixLngLat = fixLngLatMap[row.name]; - if (fixLngLat) { - const position = this.bgMapDataView.geoProjectPosition( - fixLngLat, - this.projection, - true - ); - label.x = position[0]; - label.y = position[1]; - } - - return label; - }); - - const { offset = 0, textStyle = {} } = - typeof labelConfig === 'object' ? labelConfig : {}; - - const labelMapView = chart.view(); - labelMapView.source(labelData); - labelMapView - .point() - .position('x*y') - .size(0) - .label('name', { - offset, - textStyle: name => { - let fontSize = themes['widgets-font-size-1'].replace('px', ''); - // 对一些尺寸非常小的形状特殊处理,以显示出来。 - if (minLabel.indexOf(name) > -1) { - fontSize = String(Number(fontSize) * 2 / 3); - } - - return { - fill: themes['widgets-map-label'], - // 需要去掉 px 的字符串 - fontSize: fontSize, - textBaseline: 'middle', - ...textStyle, - }; - }, - formatter: labelConfig.formatter || null, - }) - .tooltip(false) - .active(false); - - this.labelMapView = labelMapView; -} - -// 转换地图数据结构,因为和默认结构不同,需要特殊处理。 -function convertMapData(data) { - if (!Array.isArray(data)) { - return []; - } - const result = []; - data.forEach(item => { - const { name = '', data: itemData } = item; - if (!Array.isArray(itemData)) { - return; - } - itemData.forEach(d => { - result.push({ - ...d, - type: d.type || name, - }); - }); - }); - - return result; -} - -// 计算数据的坐标点 -export function convertPointPosition(point) { - if (point.x && point.y) { - return point; - } - if (!this.bgMapDataView) { - return point; - } - - const { projection } = this; - if (point.lng && point.lat) { - return getProjectionPosition( - point, - this.bgMapDataView, - projection, - Number(point.lng), - Number(point.lat) - ); - } - if (point.name) { - let { name } = point; - if (!/^\w/.test(name)) { - if (/^\u963F\u62C9/.test(name) || /^\u5F20\u5BB6/.test(name)) { - // 阿拉、张家 两个开头的需要截取三个字符 - name = name.slice(0, 3); - } else if (!/\u7701$/.test(name) && !/\u81ea\u6cbb\u533a$/.test(name)) { - // 以"省" / "自治区"结尾的不截断 - name = name.slice(0, 2); - } - } - const position = positionMap[name]; - if (position) { - return getProjectionPosition( - point, - this.bgMapDataView, - projection, - position.lng, - position.lat - ); - } - } - if (!point.x || !point.y) { - console.warn('无法定位地点:', point); - } - return point; -} - -function getProjectionPosition(point, view, projection, lng, lat) { - const projectedCoord = view.geoProjectPosition([lng, lat], projection, true); - point.x = projectedCoord[0]; - point.y = projectedCoord[1]; - return point; -} - -// 地图的tooltip逻辑 -function mapTooltip(chart, config) { - // tooltip - if (config.tooltip !== false) { - const { nameFormatter, valueFormatter, customConfig } = - config.tooltip || {}; - - const tooltipCfg = { - showTitle: false, - crosshairs: null, - itemTpl: - '
  • ' + - '' + - '{name}:{value}
  • ', - }; - - if (customConfig) { - merge(tooltipCfg, customConfig); - } - - chart.tooltip(tooltipCfg); - - if (nameFormatter || valueFormatter) { - chart.on('tooltip:change', ev => { - ev.items.forEach((item, index) => { - const raw = item.point._origin || {}; - - if (valueFormatter) { - item.value = valueFormatter(item.value, raw, index, ev.items); - } - if (nameFormatter) { - item.name = nameFormatter(item.name, raw, index, ev.items); - } - }); - }); - } - } else { - chart.tooltip(false); - } -} diff --git a/components/Wmap/index.jsx b/components/Wmap/index.jsx deleted file mode 100644 index b641cefe..00000000 --- a/components/Wmap/index.jsx +++ /dev/null @@ -1,273 +0,0 @@ -import React from 'react'; -import g2Factory from "../common/g2Factory"; -import errorWrap from '../common/errorWrap'; -import G2Map, { AREA_NAME, POINT_NAME, HEAT_MAP_NAME, SHOOT_NAME, CUSTOM_NAME, convertPointPosition } from "./G2Map"; -import Wshoot from "../Wshoot/index"; -import SouthChinaSea from './mapData/southChinaSea'; -import { provinceName, positionMap } from './mapData/chinaGeoInfo'; -import chinaGeo from './mapData/chinaGeo.json'; -import themes from '../themes/index'; - -const MapBase = g2Factory('G2Map', G2Map, false); -const rootClassName = 'cloud-charts '; - -class Map extends MapBase { - constructor(props, context) { - super(props, context); - - this.state = { - customPointLayer: [], - shootLayer: [], - southChinaSeaKey: 0, - }; - } - - componentDidMount() { - super.componentDidMount(); - - this.convertChildren(this.props.children, this.props.config, true); - } - - componentDidUpdate(prevProps, prevState, snapshot) { - if (!this.isReRendering && this.props.children !== prevProps.children) { - this.convertChildren(this.props.children, this.props.config); - } - - super.componentDidUpdate(prevProps, prevState, snapshot); - } - - shouldComponentUpdate(nextProps, nextState) { - return !(this.isReRendering || !this.chart); - } - - rerender() { - // fix: 动态切换主题后南海诸岛地图没有更新 - if (this.props.config.showSouthChinaSea === undefined || this.props.config.showSouthChinaSea) { - this.setState({ - southChinaSeaKey: this.state.southChinaSeaKey + 1, - }); - } - return super.rerender(); - } - - convertPosition = (d) => { - if (!d) { - return; - } - let point = convertPointPosition.call(this, d); - return this.bgMapView.getXY(point); - }; - - convertChildren(children = this.props.children, config = this.props.config, isInit = false) { - const customPointLayer = []; - const shootLayer = []; - React.Children.forEach(children, (child) => { - if (!child) { - return; - } - if (child.type.displayName === CUSTOM_NAME) { - let newData = child.props.data; - if (Array.isArray(newData)) { - newData = newData.map((d) => { - const position = this.convertPosition(d ? { ...d } : null); - if (!position) { - return null; - } - return { ...d, x: position.x, y: position.y }; - }); - } - customPointLayer.push({ ...child.props, data: newData }); - return; - } - if (child.type.displayName === SHOOT_NAME) { - // let newData = child.props.data; - // if (Array.isArray(newData)) { - // newData = newData.map((d) => { - // let from = { ...d.from }; - // let to = { ...d.to }; - // const fromPosition = this.convertPosition(from); - // const toPosition = this.convertPosition(to); - // if (fromPosition) { - // from.x = fromPosition.x; - // from.y = fromPosition.y; - // } - // if (toPosition) { - // to.x = toPosition.x; - // to.y = toPosition.y; - // } - // return { ...d, from, to }; - // }); - // } - // shootLayer.push({ ...child.props, data: newData }); - shootLayer.push(child.props); - return; - } - - if (!isInit) { - const { data, ...propsConfig } = child.props; - const layerConfig = Object.assign({}, config, propsConfig); - - this.chartProcess.changeData.call(this, this.chart, layerConfig, child.type.displayName, data); - } - }); - this.setState({ - customPointLayer, - shootLayer, - }); - } - - changeSize(config, w, h) { - super.changeSize(config, w, h); - - this.convertChildren(this.props.children, this.props.config, true); - } - - renderCustomPointLayer(layer, layerIndex) { - if (!this.chart) { - return null; - } - const { data, render, ...otherProps } = layer; - const width = this.chart.get('width'); - const height = this.chart.get('height'); - const [ cW, cH ] = this._size; - const layerStyle = { - left: (cW - width) / 2, - top: (cH - height) / 2, - width, - height, - }; - - return ( -
    - { - Array.isArray(data) && data.map((d, i) => { - if (!d) { - return null; - } - - const pointStyle = { - left: d.x, - top: d.y, - }; - return ( -
    - {render && render(d, i, otherProps)} -
    - ); - }) - } -
    - ); - } - - renderShootLayer(shootProps, shootIndex) { - if (!this.chart) { - return null; - } - const { className, style } = shootProps; - const width = this.chart.get('width'); - const height = this.chart.get('height'); - const [ cW, cH ] = this._size; - const layerStyle = { - left: (cW - width) / 2, - top: (cH - height) / 2, - width, - height, - ...(style || {}) - }; - - return ( - - ); - } - - renderSouthChinaSea(config) { - if (config.showSouthChinaSea === undefined || config.showSouthChinaSea) { - const { southChinaSeaKey } = this.state; - const { fill } = config.background || {}; - const mapColor = fill || themes['widgets-map-area-bg']; - - return ; - } else { - return null; - } - } - - render() { - const { className = '', style, children, data, width, height, padding, geoData, config, animate, language, customChart, ...otherProps } = this.props; - const { customPointLayer, shootLayer } = this.state; - return ( -
    this.chartDom = dom} id={this.chartId} className={rootClassName + 'G2Map ' + className} style={style} {...otherProps}> - {this.renderSouthChinaSea(config)} - { - shootLayer.length > 0 && shootLayer.map((shoot, i) => { - return this.renderShootLayer(shoot, i); - }) - } - { - customPointLayer.length > 0 && customPointLayer.map((layer, i) => { - return this.renderCustomPointLayer(layer, i); - }) - } -
    -
    - ); - } -} - -// 地图不需要校验data -delete Map.propTypes.data; - -const MapClass = errorWrap(Map); - -/** - * @return {null} - */ -MapClass.Area = function WidgetsMapArea() { return null; }; -MapClass.Area.displayName = AREA_NAME; - -/** - * @return {null} - */ -MapClass.Point = function WidgetsMapPoint() { return null; }; -MapClass.Point.displayName = POINT_NAME; - -/** - * @return {null} - */ -MapClass.HeatMap = function WidgetsMapHeatMap() { return null; }; -MapClass.HeatMap.displayName = HEAT_MAP_NAME; - -/** - * @return {null} - */ -MapClass.Shoot = function WidgetsMapShoot() { return null; }; -MapClass.Shoot.displayName = SHOOT_NAME; - -/** - * @return {null} - */ -MapClass.Custom = function WidgetsMapCustom() { return null; }; -MapClass.Custom.displayName = CUSTOM_NAME; - -// 南海诸岛组件 -MapClass.SouthChinaSea = SouthChinaSea; - -// 中国地图 Geo 数据 -MapClass.chinaGeoData = chinaGeo; - -// 省份全称转简称数据 -MapClass.provinceName = provinceName; - -// 省市经纬度数据 -MapClass.positionMap = positionMap; - -export default MapClass; diff --git a/components/Wmap/index.scss b/components/Wmap/index.scss deleted file mode 100644 index f665c7e0..00000000 --- a/components/Wmap/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Map.scss"; diff --git a/components/Wminiline/G2MiniLine.js b/components/Wminiline/G2MiniLine.js deleted file mode 100644 index 678c8ceb..00000000 --- a/components/Wminiline/G2MiniLine.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap } from '../common/common'; -import autoTimeMask from '../common/autoTimeMask'; -import legendFilter from '../common/legendFilter'; -import rectTooltip from '../common/rectTooltip'; -import guide from '../common/guide'; -import drawLine from '../common/drawLine'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2MiniLine', { - getDefaultConfig() { - return { - colors: themes.category_12, - padding: [0, 0, 0, 0], - xAxis: { - type: 'time', // 默认为线性 - mask: 'auto', // 上述type为time时,此字段生效 - categories: null, - max: null, - min: null, - }, - yAxis: { - max: null, - min: null, - }, - tooltip: false, - area: false, - spline: false, - symbol: false, - label: false, - // dataConfig: { - // nameKey: 'name', - // valueKey: 'value', - // // valueKey: ['value1', 'value2'], - // typeKey: 'type' - // } - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: props.padding || config.padding || this.defaultConfig.padding, - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - if (config.xAxis && config.xAxis.type === 'datetime') { - config.xAxis.type = 'time'; - } - - const defs = { - x: propertyAssign(propertyMap.xAxis, { - type: 'time', - // 折线图X轴的范围默认覆盖全部区域,保证没有空余 - range: [0, 1], - }, config.xAxis), - type: { - type: 'cat', - }, - }; - - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - defs[`y${yIndex}`] = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, axis); - }); - } else { - defs.y = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, config.yAxis); - } - - autoTimeMask(defs, this.rawData); - - chart.source(data, defs); - - chart.axis(false); - - chart.legend(false); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - drawLine(chart, config); - - chart.render(); - }, -})); diff --git a/components/Wminiline/index.jsx b/components/Wminiline/index.jsx deleted file mode 100644 index d5f706d9..00000000 --- a/components/Wminiline/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2MiniLine'; diff --git a/components/Wmultipie/G2MultiPie.js b/components/Wmultipie/G2MultiPie.js deleted file mode 100644 index 0285d933..00000000 --- a/components/Wmultipie/G2MultiPie.js +++ /dev/null @@ -1,273 +0,0 @@ -'use strict'; - -import { DataView } from '@antv/data-set'; -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { legendHtmlContainer, legendHtmlListItem } from '../common/g2Theme'; -import { pxToNumber, numberDecimal } from '../common/common'; -import rectLegend from '../common/rectLegend'; -import { getDrawPadding, G2PieBase } from '../Wpie/G2Pie'; -import './G2MultiPie.scss'; -import rectTooltip from "../common/rectTooltip"; - -function getParentList(node, target = []) { - const parentNode = node.parent; - // 需要存储根节点,所以一直到 parentNode===null(此时在根节点上) - if (!parentNode) { - return target; - } - - target.unshift({ - name: parentNode.data.name, - value: parentNode.value, - rawValue: parentNode.data.value, - depth: parentNode.depth, - }); - - return getParentList(parentNode, target); -} - -function computeData(data) { - let dv = null; - if (this.dataView) { - dv = this.dataView; - dv.source(data, { - type: 'hierarchy', - }); - } else { - dv = new DataView(); - this.dataView = dv; - - dv.source(data, { - type: 'hierarchy', - }).transform({ - type: 'hierarchy.partition', // 根据树形数据生成相邻层次图 Adjacency Diagram 布局 - }); - } - - const source = []; - - // 记录最大深度 - let maxDepth = 0; - dv.getAllNodes().forEach((node) => { - if (node.depth > maxDepth) { - maxDepth = node.depth; - } - if (node.depth === 0) { - // 父节点不展示 - return; - } - // var obj = {}; - // obj.name = node.data.name; - // obj.rawValue = node.data.value; - // obj.value = node.value; - // obj.x = node.x; - // obj.y = node.y; - source.push({ - name: node.data.name, - value: node.value, - rawValue: node.data.value, - depth: node.depth, - parent: getParentList(node), - x: node.x, - y: node.y, - }); - return node; - }); - - // 挂载转换后的数据 - this.data = source; - - return { - source, - maxDepth, - }; -} - -const radiusMap = { - 2: -0.2, - 3: -0.07, -}; - -function getInnerRadius(maxDepth, innerRadius) { - if (innerRadius) { - return innerRadius; - } - return radiusMap[maxDepth] || 0; -} - -export default /*#__PURE__*/ errorWrap(g2Factory('G2MultiPie', Object.assign({}, G2PieBase, { - convertData: false, - getDefaultConfig() { - return { - colors: themes.category_12, - padding: [20, 20, 20, 20], - legend: { - // position: 'right', - nameFormatter: null, // 可以强制覆盖,手动设置label - valueFormatter: null, - }, - tooltip: { - nameFormatter: null, - valueFormatter: null, - }, - innerRadius: null, // 内环半径大小,仅cycle为true时可用 - outerRadius: 0.8, // 饼图半径大小,初始化时可用 - drawPadding: [10, 10, 10, 10], - }; - }, - init(chart, userConfig, data) { - const config = merge({}, this.defaultConfig, userConfig); - - const { source, maxDepth } = computeData.call(this, data); - - chart.source(source); - - // if (config.cycle) { - // thetaConfig.innerRadius = Math.max(Math.min(config.innerRadius, 1), 0); - // } - - chart.coord('polar', { - innerRadius: getInnerRadius(maxDepth, config.innerRadius), // 用于空心部分的半径设置 - }); - - chart.axis(false); - - const drawPadding = getDrawPadding(config.drawPadding, config.label, this.defaultConfig.drawPadding); - - rectLegend.call(this, chart, config, { - autoCollapse: false, - position: 'right', - itemTpl: (value, itemColor, checked, index) => { - const { nameFormatter, valueFormatter, showData = true } = config.legend || {}; - - const item = (this.data && this.data[index]) || {}; - const rootNode = item.parent[0]; - // 根节点的value就是全量值 - const percent = numberDecimal(item.value / rootNode.value, 4); - - const result = nameFormatter ? nameFormatter(value, { - percent, - itemColor, - checked, - ...item, - }, index) : value; - - if (showData) { - const number = valueFormatter ? valueFormatter(item.value, { - percent, - itemColor, - checked, - ...item, - }, index) : item.value; - return `${'
  • ' + - '' + - ''}${result}` + `${number}
  • `; - } - - return `${'
  • ' + - '' + - ''}${result}
  • `; - }, - 'g2-legend': { - ...legendHtmlContainer, - position: 'static', - overflow: 'auto', - // inline flex items 不能使用百分比的margin/padding,设置为固定大小 - marginLeft: `${Math.max(pxToNumber(themes['widgets-font-size-4']) - drawPadding[1], 0)}px`, - }, - 'g2-legend-list-item': { - ...legendHtmlListItem, - marginRight: 0, - }, - }, true); - - // tooltip - rectTooltip.call( - this, - chart, - config, - { - showTitle: false, - crosshairs: null, - }, - (ev) => { - ev.items.forEach((item, index) => { - const pointData = item.point._origin; - const rootNode = pointData.parent[0]; - const percent = numberDecimal(item.value / rootNode.value, 4); - - if (config.tooltip.valueFormatter) { - item.value = config.tooltip.valueFormatter(item.value, { - percent, - ...pointData, - }, index, ev.items); - } - if (config.tooltip.nameFormatter) { - item.name = config.tooltip.nameFormatter(item.name, { - percent, - ...pointData, - }, index, ev.items); - } - }); - } - ); - - // if (config.tooltip) { - // const tooltipCfg = { - // showTitle: false, - // // crosshairs: {}, - // itemTpl: '
  • ' - // + '' - // + `{name}${config.tooltip.showColon !== false ? ':' : ''}{value}
  • `, - // }; - // chart.tooltip(tooltipCfg); - // if (config.tooltip.nameFormatter || config.tooltip.valueFormatter) { - // chart.on('tooltip:change', (ev) => { - // ev.items.forEach((item, index) => { - // const pointData = item.point._origin; - // const rootNode = pointData.parent[0]; - // const percent = numberDecimal(item.value / rootNode.value, 4); - // - // if (config.tooltip.valueFormatter) { - // item.value = config.tooltip.valueFormatter(item.value, { - // percent, - // ...pointData, - // }, index, ev.items); - // } - // if (config.tooltip.nameFormatter) { - // item.name = config.tooltip.nameFormatter(item.name, { - // percent, - // ...pointData, - // }, index, ev.items); - // } - // }); - // }); - // } - // } else { - // chart.tooltip(false); - // } - - chart.polygon() - .position('x*y') - .color('name', config.colors) - .tooltip('name*value*rawValue*depth', (name, value) => { - return { - name, - value, - }; - }) - .style('name*value*rawValue*depth', { - ...(config.geomStyle || {}), - }); - - chart.render(); - }, - changeData(chart, config, data) { - const { source } = computeData.call(this, data); - - chart.changeData(source); - }, -}))); diff --git a/components/Wmultipie/G2MultiPie.scss b/components/Wmultipie/G2MultiPie.scss deleted file mode 100644 index a4d1ebf1..00000000 --- a/components/Wmultipie/G2MultiPie.scss +++ /dev/null @@ -1,38 +0,0 @@ -.cloud-charts.G2MultiPie { - position: relative; - text-align: center; - box-sizing: border-box; - - .cloud-charts-children { - position: absolute; - text-align: center; - //display: block; - } - - & > div { - height: 100%; - display: inline-flex; - justify-content: center; - align-items: center; - text-align: left; - - & > canvas { - position: static; - flex: none; - } - - // hack掉图例的高度限制,比用legend.maxLength逻辑要简单 - .g2-legend { - max-width: none !important; - max-height: 100% !important; - } - - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } - - .g2-legend-list-item:last-child { - margin-bottom: 2px !important; - } - } -} diff --git a/components/Wmultipie/index.jsx b/components/Wmultipie/index.jsx deleted file mode 100644 index 31d56e7a..00000000 --- a/components/Wmultipie/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2MultiPie'; diff --git a/components/Wmultipie/index.scss b/components/Wmultipie/index.scss deleted file mode 100644 index 71d6d4a9..00000000 --- a/components/Wmultipie/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2MultiPie.scss"; diff --git a/components/Wnightingale/G2Nightingale.js b/components/Wnightingale/G2Nightingale.js deleted file mode 100644 index 9eb894b6..00000000 --- a/components/Wnightingale/G2Nightingale.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict'; - -// 引入所需要的库和样式 -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import './G2Nightingale.scss'; -import rectLegend from '../common/rectLegend'; -import rectTooltip from '../common/rectTooltip'; -import label from '../common/label'; - -// 对外暴露一个对象,除了init方法必选外,其余均为可选项,按组件需要选择性使用。 -// 方法运行时的this指向图表实例,所以可以在this上挂载需要保留的数据。 -export default /*#__PURE__*/ errorWrap(g2Factory('G2Nightingale', { - getDefaultConfig() { - return { - padding: [20, 20, 20, 20], - colors: themes.category_12, - cycle: false, - innerRadius: 0.5, // 内环半径大小,仅cycle为true时可用 - label: { - key: 'x', - }, - legend: { - position: 'bottom', - align: 'center', - nameFormatter: null, - }, - tooltip: { - nameFormatter: null, - valueFormatter: null, - }, - }; - }, - // 初始化前对props的预处理函数 - beforeInit(props) { - const { config } = props; - // TODO 处理padding - return Object.assign({}, props, { - padding: props.padding || config.padding || this.defaultConfig.padding, - }); - }, - // 图表绘制主函数,必选 - init(chart, userConfig, data) { - const config = merge({}, this.defaultConfig, userConfig); - chart.source(data); - chart.coord('polar', { - innerRadius: config.cycle ? Math.max(Math.min(config.innerRadius, 1), 0) : 0, - }); - - // 设置图例 - rectLegend.call(this, chart, config, null, true); - - // tooltip - rectTooltip.call(this, chart, config, { - showTitle: false, - crosshairs: null, - }); - - if (config.axis) { - chart.axis('x', { - grid: { - align: 'center', - hideFirstLine: false, - hideLastLine: false, - }, - label: { - offset: 10, - autoRotate: true, - textStyle: { - textAlign: 'center', - }, - }, - }); - - chart.axis('y', { - tickLine: null, - label: null, - line: null, - }); - } else { - chart.axis(false); - } - - const geomStyle = config.geomStyle || {}; - const geom = chart - .interval() - .position('x*y') - .color('x', config.colors) - .style('x*y*extra', { - lineWidth: 1, - stroke: themes['widgets-color-background'], - ...geomStyle - }); - - label(geom, config, config.label.key || 'x', { - offset: -15, - }); - - chart.render(); - }, -})); diff --git a/components/Wnightingale/G2Nightingale.scss b/components/Wnightingale/G2Nightingale.scss deleted file mode 100644 index 931d728d..00000000 --- a/components/Wnightingale/G2Nightingale.scss +++ /dev/null @@ -1,18 +0,0 @@ -.cloud-charts.G2Nightingale { - position: relative; - box-sizing: border-box; - - .cloud-charts-children { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - text-align: center; - } - - & > div { - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } - } -} diff --git a/components/Wnightingale/index.jsx b/components/Wnightingale/index.jsx deleted file mode 100644 index ce3d665d..00000000 --- a/components/Wnightingale/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Nightingale'; diff --git a/components/Wnightingale/index.scss b/components/Wnightingale/index.scss deleted file mode 100644 index 6436f71e..00000000 --- a/components/Wnightingale/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Nightingale.scss"; diff --git a/components/Wpie/G2Pie.js b/components/Wpie/G2Pie.js deleted file mode 100644 index b9cf8b48..00000000 --- a/components/Wpie/G2Pie.js +++ /dev/null @@ -1,358 +0,0 @@ -'use strict'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { pxToNumber, numberDecimal, isInvalidNumber } from '../common/common'; -import './G2Pie.scss'; -import rectTooltip from '../common/rectTooltip'; -import rectLegend from '../common/rectLegend'; -import label from '../common/label'; -import { legendHtmlContainer, legendHtmlListItem } from '../common/g2Theme'; - -function transformCoord(coord, transform = {}) { - const { type, param } = transform; - if (coord[type] && Array.isArray(param)) { - coord[type](...param); - } -} - -function selectGeom(geom, selectKey) { - // if (!geom || !selectKey || !Array.isArray(this.data)) { - if (!geom) { - return; - } - - // 清除选中效果 - geom.clearSelected(); - - // 如果selectKey为假值,则只清空选中效果。 - if (!selectKey) { - return; - } - - // 使用内部方法直接选中,fix: 数据同时被更新时无法选中的问题 - geom.getShapes().forEach((shape) => { - const origin = shape.get('origin'); - if (origin && origin._origin && origin._origin.x === selectKey) { - geom.setShapeSelected(shape); - } - }); - - // // 找到对应的数据,设置选中 - // this.data.forEach((d) => { - // if (d.x === selectKey) { - // geom.setSelected(d); - // } - // }); -} - -function paddingNumber(value) { - return isInvalidNumber(value) ? 0 : Number(value); -} - -export function getDrawPadding(drawPadding, labelConfig, defaultDrawPadding) { - if (Array.isArray(drawPadding)) { - return drawPadding; - } else if (!isInvalidNumber(drawPadding)) { - return [drawPadding, drawPadding, drawPadding, drawPadding]; - } else if (labelConfig && labelConfig.visible !== false) { - // 饼图使用 label 时,调整 drawPadding - return defaultDrawPadding.map(p => Math.max(p, 48)); - } else { - return defaultDrawPadding; - } -} - -export const G2PieBase = { - getDefaultConfig() { - return { - colors: themes.category_12, - padding: [20, 20, 20, 20], - legend: { - // position: 'right', - nameFormatter: null, // 可以强制覆盖,手动设置label - valueFormatter: null, - }, - tooltip: { - nameFormatter: null, - valueFormatter: null, - }, - coord: null, - autoSort: true, - cycle: false, - select: false, - selectData: null, - innerRadius: 0.8, // 内环半径大小,仅cycle为true时可用 - outerRadius: 0.8, // 饼图半径大小,初始化时可用 - drawPadding: [10, 10, 10, 10], - label: false, - }; - }, - beforeInit(props) { - const { config } = props; - const element = this.chartDom; - const padding = props.padding || config.padding || this.defaultConfig.padding; - const outerRadius = Math.max(Math.min(config.outerRadius || this.defaultConfig.outerRadius, 1), 0.01); - const drawPadding = getDrawPadding(config.drawPadding, config.label, this.defaultConfig.drawPadding); - - // fix: padding 为 auto 时会计算错误 - const boxHeight = element.offsetHeight - paddingNumber(padding[0]) - paddingNumber(padding[2]); - const boxWidth = element.offsetWidth - paddingNumber(padding[1]) - paddingNumber(padding[3]); - // 饼本体大小,向下取整 - const diameter = Math.floor(boxHeight < boxWidth ? boxHeight * outerRadius : boxWidth * outerRadius); - - element.style.paddingTop = `${padding[0]}px`; - element.style.paddingRight = `${padding[1]}px`; - element.style.paddingBottom = `${padding[2]}px`; - element.style.paddingLeft = `${padding[3]}px`; - - this.childrenDom = element.querySelector('.cloud-charts-children'); - if (this.childrenDom) { - this.childrenDom.style.width = `${diameter + drawPadding[1] + drawPadding[3]}px`; - this.childrenDom.style.height = `${boxHeight}px`; - } - - // TODO 处理padding - return Object.assign({}, props, { - width: diameter + drawPadding[1] + drawPadding[3], - height: diameter + drawPadding[0] + drawPadding[2], - // forceFit: true, - padding: drawPadding, - }); - }, - changeSize(chart, config, w, h) { - const padding = config.padding || this.defaultConfig.padding; - const outerRadius = Math.max(Math.min(config.outerRadius || this.defaultConfig.outerRadius, 1), 0.01); - const drawPadding = getDrawPadding(config.drawPadding, config.label, this.defaultConfig.drawPadding); - - const boxHeight = h - paddingNumber(padding[0]) - paddingNumber(padding[2]); - const boxWidth = w - paddingNumber(padding[1]) - paddingNumber(padding[3]); - // 饼本体大小,向下取整 - const diameter = Math.floor(boxHeight < boxWidth ? boxHeight * outerRadius : boxWidth * outerRadius); - - if (this.childrenDom) { - this.childrenDom.style.width = `${diameter + drawPadding[1] + drawPadding[3]}px`; - this.childrenDom.style.height = `${boxHeight}px`; - } - - chart.changeSize(diameter + drawPadding[1] + drawPadding[3], diameter + drawPadding[0] + drawPadding[2]); - }, - changeData(chart, config, data) { - // 更新数据总和值,保证百分比的正常 - let totalData = 0; - data.forEach((d) => { - totalData += d.y; - }); - this.totalData = totalData; - - // 不要忘记排序的状态 - if (config.autoSort) { - data.sort((a, b) => b.y - a.y); - } - // 更新挂载的转换数据 - this.data = data; - - chart.changeData(data); - }, - isChangeEqual(objValue, othValue, key) { - if (key === 'selectData' && objValue !== othValue) { - selectGeom.call(this, this.geom, objValue); - return true; - } - }, - init(chart, userConfig, data) { - const config = merge({}, this.defaultConfig, userConfig); - - const defs = { - type: { - type: 'cat', - }, - }; - - if (config.autoSort) { - data.sort((a, b) => b.y - a.y); - } - // 挂载转换后的数据 - this.data = data; - - chart.source(data, defs); - - // 重要:绘制饼图时,必须声明 theta 坐标系 - const thetaConfig = { - radius: 1, // 设置饼图的为100% 大小,具体大小改变在 beforeInit 中diameter的值,目前为0.8 - }; - if (config.cycle) { - thetaConfig.innerRadius = Math.max(Math.min(config.innerRadius, 1), 0); - } - const coord = chart.coord('theta', thetaConfig); - - if (config.coord) { - const { transform } = config.coord || {}; - - if (Array.isArray(transform)) { - transform.forEach((t) => { - transformCoord(coord, t); - }); - } else if (transform && typeof transform === 'object') { - transformCoord(coord, transform); - } - } - - // 计算得总数据 - let totalData = 0; - data.forEach((d) => { - totalData += d.y; - }); - this.totalData = totalData; - - const drawPadding = getDrawPadding(config.drawPadding, config.label, this.defaultConfig.drawPadding); - - // 设置图例 - rectLegend.call(this, chart, config, { - autoCollapse: false, - position: 'right', - itemTpl: (value, itemColor, checked, index) => { - const { nameFormatter, valueFormatter, showData = true } = config.legend || {}; - - const item = (this.data && this.data[index]) || {}; - const raw = (this.rawData && this.rawData[0]) || {}; - const percent = numberDecimal(item.y / this.totalData, 4); - - const result = nameFormatter ? nameFormatter(value, { - ...raw, - percent, - itemColor, - checked, - }, index) : value; - - if (showData) { - const number = valueFormatter ? valueFormatter(item.y, { - ...raw, - percent, - itemColor, - checked, - }, index) : item.y; - return `${'
  • ' + - '' + - ''}${result}` + `${number}
  • `; - } - - return `${'
  • ' + - '' + - ''}${result}
  • `; - }, - 'g2-legend': { - ...legendHtmlContainer, - position: 'static', - overflow: 'auto', - // inline flex items 不能使用百分比的margin/padding,设置为固定大小 - marginLeft: `${Math.max(pxToNumber(themes['widgets-font-size-4']) - drawPadding[1], 0)}px`, - }, - 'g2-legend-list-item': { - ...legendHtmlListItem, - marginRight: 0, - }, - }, true); - - // tooltip - rectTooltip.call( - this, - chart, - config, - { - showTitle: false, - crosshairs: null, - }, - (ev) => { - const raw = (this.rawData && this.rawData[0]) || {}; - - ev.items.forEach((item, index) => { - const percent = numberDecimal(item.value / this.totalData, 4); - - if (config.tooltip.valueFormatter) { - item.value = config.tooltip.valueFormatter(item.value, { - ...raw, - percent, - }, index, ev.items); - } - if (config.tooltip.nameFormatter) { - item.name = config.tooltip.nameFormatter(item.name, { - ...raw, - percent, - }, index, ev.items); - } - }); - } - ); - - // if (config.tooltip !== false && config.tooltip.visible !== false) { - // const tooltipCfg = { - // showTitle: false, - // // crosshairs: {}, - // itemTpl: '
  • ' - // + '' - // + `{name}${config.tooltip.showColon !== false ? ':' : ''}{value}
  • `, - // }; - // chart.tooltip(tooltipCfg); - // if (config.tooltip.nameFormatter || config.tooltip.valueFormatter) { - // chart.on('tooltip:change', (ev) => { - // const raw = (this.rawData && this.rawData[0]) || {}; - // - // ev.items.forEach((item, index) => { - // const percent = numberDecimal(item.value / this.totalData, 4); - // - // if (config.tooltip.valueFormatter) { - // item.value = config.tooltip.valueFormatter(item.value, { - // ...raw, - // percent, - // }, index, ev.items); - // } - // if (config.tooltip.nameFormatter) { - // item.name = config.tooltip.nameFormatter(item.name, { - // ...raw, - // percent, - // }, index, ev.items); - // } - // }); - // }); - // } - // } else { - // chart.tooltip(false); - // } - - // 下面这一句注释我还没看懂。 - // position若直接使用value导致图例点击某项隐藏,余下展示不为值和不为1 - this.geom = chart.intervalStack().position('y').color('x', config.colors).select(!!config.select); - - label(this.geom, config, 'y', { - offset: 20, - formatter: (v, item, index) => { - if (config.label.labelFormatter) { - const percent = numberDecimal(v / this.totalData, 4); - - return config.label.labelFormatter(v, { - ...item, - percent, - }, index); - } - return v; - }, - }); - - const geomStyle = config.geomStyle || {}; - this.geom.style('x*y*type*extra', { - ...geomStyle, - }); - - chart.render(); - - selectGeom.call(this, this.geom, config.selectData); - }, - destroy() { - this.geom = null; - }, -}; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Pie', G2PieBase)); diff --git a/components/Wpie/G2Pie.scss b/components/Wpie/G2Pie.scss deleted file mode 100644 index ed8f210c..00000000 --- a/components/Wpie/G2Pie.scss +++ /dev/null @@ -1,38 +0,0 @@ -.cloud-charts.G2Pie { - position: relative; - text-align: center; - box-sizing: border-box; - - .cloud-charts-children { - position: absolute; - text-align: center; - //display: block; - } - - & > div { - height: 100%; - display: inline-flex; - justify-content: center; - align-items: center; - text-align: left; - - & > canvas { - position: static; - flex: none; - } - - // hack掉图例的高度限制,比用legend.maxLength逻辑要简单 - .g2-legend { - max-width: none !important; - max-height: 100% !important; - } - - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } - - .g2-legend-list-item:last-child { - margin-bottom: 2px !important; - } - } -} diff --git a/components/Wpie/index.jsx b/components/Wpie/index.jsx deleted file mode 100644 index cf3e864a..00000000 --- a/components/Wpie/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Pie'; diff --git a/components/Wpie/index.scss b/components/Wpie/index.scss deleted file mode 100644 index fae8abc5..00000000 --- a/components/Wpie/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Pie.scss"; diff --git a/components/Wradar/G2Radar.js b/components/Wradar/G2Radar.js deleted file mode 100644 index 9f4a420e..00000000 --- a/components/Wradar/G2Radar.js +++ /dev/null @@ -1,148 +0,0 @@ -'use strict'; - -// 引入所需要的库和样式 -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap } from '../common/common'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import rectTooltip from '../common/rectTooltip'; -import drawLine from '../common/drawLine'; -import './G2Radar.scss'; - -// 对外暴露一个对象,除了init方法必选外,其余均为可选项,按组件需要选择性使用。 -// 方法运行时的this指向图表实例,所以可以在this上挂载需要保留的数据。 -export default /*#__PURE__*/ errorWrap(g2Factory('G2Radar', { - getDefaultConfig() { - return { - padding: [20, 20, 40, 20], - colors: themes.category_12, - xAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - // max: 100, - min: 0, - }, - radius: 0.8, - area: false, - symbol: false, - label: false, - spline: false, - // stack: false, - legend: { - position: 'bottom', - align: 'center', - nameFormatter: null, - }, - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - }; - }, - // 初始化前对props的预处理函数 - beforeInit(props) { - const { config } = props; - // TODO 处理padding - return Object.assign({}, props, { - padding: props.padding || config.padding || this.defaultConfig.padding, - }); - }, - // 图表绘制主函数,必选 - init(chart, userConfig, data) { - const config = merge({}, this.defaultConfig, userConfig); - - const defs = { - x: propertyAssign(propertyMap.xAxis, { - // type: 'cat', - // 折线图X轴的范围默认覆盖全部区域,保证没有空余 - // range: [0, 1], - }, config.xAxis), - type: { - type: 'cat', - }, - }; - - defs.y = propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, config.yAxis); - - chart.source(data, defs); - - chart.coord('polar', { - radius: config.radius, - }); - - // 设置X轴 - rectXAxis.call(this, chart, config, { - line: null, - tickLine: null, - grid: { - lineStyle: { - lineDash: null, - }, - }, - }); - // chart.axis('x', { - // label: { - // formatter: config.xAxis.labelFormatter, - // }, - // line: null, - // tickLine: null, - // grid: { - // lineStyle: { - // lineDash: null, - // }, - // // hideFirstLine: false - // }, - // }); - // 设置Y轴 - rectYAxis.call(this, chart, config, 'y', { - label: { - offset: 8, - textStyle: { - fill: themes['widgets-axis-label'], - textAlign: 'right', // 文本右对齐 - }, - formatter: config.yAxis.labelFormatter, - // 之前使用 htmlTemplate 是为了覆盖在line图形之上,和视觉确认后不需要这么做,直接使用默认 formatter 即可。 - // htmlTemplate(text, item, index) { - // if (config.yAxis.labelFormatter) { - // return config.yAxis.labelFormatter(text, item, index); - // } - // return `${text}`; - // } - }, - line: null, - tickLine: null, - grid: { - type: 'polygon', - lineStyle: { - lineDash: null, - }, - }, - }); - - // 设置图例 - rectLegend.call(this, chart, config); - - legendFilter.call(this, chart, config); - - // tooltip - rectTooltip.call(this, chart, config, { - crosshairs: null, - }); - - drawLine(chart, config); - - chart.render(); - }, -})); diff --git a/components/Wradar/G2Radar.scss b/components/Wradar/G2Radar.scss deleted file mode 100644 index 60475a28..00000000 --- a/components/Wradar/G2Radar.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Radar > div { - .g2-legend-list-item:last-child { - margin-right: 0 !important; - } -} diff --git a/components/Wradar/index.jsx b/components/Wradar/index.jsx deleted file mode 100644 index e732b336..00000000 --- a/components/Wradar/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Radar'; diff --git a/components/Wradar/index.scss b/components/Wradar/index.scss deleted file mode 100644 index da510d68..00000000 --- a/components/Wradar/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Radar.scss"; diff --git a/components/Wrectangle/G2Rectangle.js b/components/Wrectangle/G2Rectangle.js deleted file mode 100644 index b20e300d..00000000 --- a/components/Wrectangle/G2Rectangle.js +++ /dev/null @@ -1,139 +0,0 @@ -'use strict'; - -import { DataSet } from '@antv/data-set'; -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap, defaultPadding } from '../common/common'; -import guide from '../common/guide'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectTooltip from '../common/rectTooltip'; -import label from '../common/label'; -import './G2Rectangle.scss'; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Rectangle', { - convertData: false, - getDefaultConfig() { - return { - // 这里需要倒序排列 - colors: themes.order_10.slice().reverse(), - padding: ['auto', 'auto', 'auto', 'auto'], - xAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - autoRotate: false, - max: null, - min: null, - }, - yAxis: { - labelFormatter: null, // 可以强制覆盖,手动设置label - max: null, - min: null, - }, - tooltip: { - nameFormatter: null, - valueFormatter: null, - }, - bin: { - fields: ['x', 'y'], - bins: [20, 10], // 两个方向上的分箱个数 - // binWidth: [ 10, 1000 ], // 两个方向上的分箱步长(会覆盖bins的配置) - // offset: [ 0, 0 ], - }, - grid: false, - label: false, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - // let defaultPaddingTop = this.defaultConfig.padding[0]; - // let defaultPaddingRight = this.defaultConfig.padding[1]; - // const defaultPaddingBottom = this.defaultConfig.padding[2]; - // const defaultPaddingLeft = this.defaultConfig.padding[3]; - // if (defaultPaddingRight !== 'auto' && Array.isArray(newConfig.yAxis)) { - // defaultPaddingRight = 44; - // } - // if (defaultPaddingTop !== 'auto' && !newConfig.legend) { - // defaultPaddingTop = 16; - // } - return Object.assign({}, props, { - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - const ds = new DataSet(); - const rectangleDataView = ds.createView('diamond') - .source(data) - .transform(propertyAssign(['fields', 'bins', 'binWidth', 'offset', 'sizeByCount'], { - type: 'bin.rectangle', - }, config.bin)); - - this.rectangleDataView = rectangleDataView; - - const defs = { - x: propertyAssign(propertyMap.xAxis, { - // 折线图X轴的范围默认覆盖全部区域,保证没有空余 - range: [0, 1], - }, config.xAxis), - y: propertyAssign(propertyMap.yAxis, { - type: 'linear', - tickCount: 5, - }, config.yAxis), - type: { - type: 'cat', - }, - }; - - rectAutoTickCount(chart, config, defs, false); - - chart.source(rectangleDataView, defs); - - // 设置X轴 - rectXAxis.call(this, chart, config); - - // 设置单个Y轴 - rectYAxis.call(this, chart, config); - - // 设置图例 - chart.legend(false); - - // tooltip - rectTooltip.call(this, chart, config, { - showTitle: false, - crosshairs: null, - }); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - const geom = chart.polygon().position('x*y').color('count', config.colors).tooltip('x*y*count', (x, y, count) => ({ - // title: x, - name: '数量', - value: count, - })); - - const geomStyle = config.geomStyle || {}; - geom.style('x*y*count*extra', { - ...geomStyle, - }); - - label(geom, config, 'count', { - offset: 0, - }); - - chart.render(); - }, - changeData(chart, newConfig, data) { - if (this.rectangleDataView) { - this.rectangleDataView.source(data); - } - }, -})); diff --git a/components/Wrectangle/G2Rectangle.scss b/components/Wrectangle/G2Rectangle.scss deleted file mode 100644 index 85bd72ab..00000000 --- a/components/Wrectangle/G2Rectangle.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Rectangle { - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } -} diff --git a/components/Wrectangle/index.jsx b/components/Wrectangle/index.jsx deleted file mode 100644 index 676715c4..00000000 --- a/components/Wrectangle/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Rectangle'; diff --git a/components/Wrectangle/index.scss b/components/Wrectangle/index.scss deleted file mode 100644 index d4c3d44b..00000000 --- a/components/Wrectangle/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Rectangle.scss"; diff --git a/components/Wsankey/G2Sankey.js b/components/Wsankey/G2Sankey.js deleted file mode 100644 index 12ae663a..00000000 --- a/components/Wsankey/G2Sankey.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict'; - -import { DataSet } from '@antv/data-set'; -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import themes from '../themes/index'; -import merge from '../common/merge'; -import './G2Sankey.scss'; - -function getEdges(d) { - return d.links; -} - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Sankey', { - convertData: false, - getDefaultConfig() { - return { - padding: ['auto', 40, 'auto', 'auto'], - legend: { - align: 'left', - nameFormatter: null, // 可以强制覆盖,手动设置label - }, - tooltip: { - nameFormatter: null, - }, - labels: true, - // textStyle: { - // fill: '#545454', - // textAlign: 'start' - // } - }; - }, - beforeInit(props) { - const { config } = props; - // TODO 处理padding - return Object.assign({}, props, { - padding: props.padding || config.padding || this.defaultConfig.padding, - }); - }, - init(chart, userConfig, rawData) { - const config = merge({}, this.defaultConfig, userConfig); - const data = merge({}, rawData); - const ds = new DataSet(); - const dv = ds.createView().source(data, { - type: 'graph', - edges: getEdges, - }); - dv.transform({ - type: 'diagram.sankey', - }); - - this.sankeyDataView = dv; - - chart.legend(config.legend); - chart.tooltip({ - showTitle: false, - }); - chart.axis(false); - chart.scale({ - x: { sync: true }, - y: { sync: true }, - }); - - // edge view - const edgeView = chart.view(); - this.edgeView = edgeView; - edgeView.source(dv.edges); - edgeView.edge() - .position('x*y') - .shape('arc') - .color(themes['widgets-sankey-edge']) - .opacity(0.5) - .tooltip('target*source*value', config.tooltip.nameFormatter); - - // node view - const nodeView = chart.view(); - this.nodeView = nodeView; - nodeView.source(dv.nodes); - - const nodeGeom = nodeView.polygon() - .position('x*y') // nodes数据的x、y由layout方法计算得出 - .color('name') - .tooltip(false) - .style({ - stroke: 'transparent', - }); - - if (config.labels) { - nodeGeom.label('name', { - textStyle: { - fill: themes['widgets-sankey-node-text'], - textAlign: 'start', - }, - offset: 0, - formatter: v => ` ${v}`, - }); - } - - chart.render(); - }, - changeData(chart, newConfig, rawData) { - if (this.sankeyDataView && this.nodeView && this.edgeView) { - const data = merge({}, rawData); - - this.sankeyDataView.source(data, { - type: 'graph', - edges: getEdges, - }); - this.edgeView.source(this.sankeyDataView.edges); - this.nodeView.source(this.sankeyDataView.nodes); - chart.render(); - } - }, -})); diff --git a/components/Wsankey/G2Sankey.scss b/components/Wsankey/G2Sankey.scss deleted file mode 100644 index 30b981dc..00000000 --- a/components/Wsankey/G2Sankey.scss +++ /dev/null @@ -1,5 +0,0 @@ -.cloud-charts.G2Sankey { - .g2-tooltip-list > li:first-child { - margin-top: 0 !important; - } -} diff --git a/components/Wsankey/index.jsx b/components/Wsankey/index.jsx deleted file mode 100644 index 4435a543..00000000 --- a/components/Wsankey/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Sankey'; diff --git a/components/Wsankey/index.scss b/components/Wsankey/index.scss deleted file mode 100644 index 77f01bcb..00000000 --- a/components/Wsankey/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Sankey.scss"; diff --git a/components/Wscatter/G2Scatter.js b/components/Wscatter/G2Scatter.js deleted file mode 100644 index 342b4872..00000000 --- a/components/Wscatter/G2Scatter.js +++ /dev/null @@ -1,163 +0,0 @@ -'use strict'; - -// 引入所需要的库和样式 -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { propertyAssign, propertyMap, defaultPadding } from '../common/common'; -import rectXAxis from '../common/rectXAxis'; -import rectYAxis from '../common/rectYAxis'; -import autoTimeMask from '../common/autoTimeMask'; -import rectAutoTickCount from '../common/rectAutoTickCount'; -import rectLegend from '../common/rectLegend'; -import legendFilter from '../common/legendFilter'; -import rectTooltip from '../common/rectTooltip'; -import label from '../common/label'; -import guide from '../common/guide'; -import getGeomSizeConfig from '../common/geomSize'; - -const setSource = (chart, config, data) => { - -}; - -export default /*#__PURE__*/ errorWrap(g2Factory('G2Scatter', { - getDefaultConfig() { - return { - padding: ['auto', 'auto', 'auto', 'auto'], - colors: themes.category_12, - xAxis: { - type: 'linear', - mask: 'auto', - autoRotate: false, - }, - yAxis: { - min: 0, - }, - size: 4, - jitter: false, - tooltip: true, - legend: true, - label: false, - }; - }, - beforeInit(props) { - const { config } = props; - const preConfig = {}; - if (config.jitter) { - preConfig.xAxis = { - type: 'cat', - }; - } - const newConfig = merge({}, this.defaultConfig, preConfig, config); - - return Object.assign({}, props, { - padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - const { colors, jitter, size, geomStyle } = config; - - const defs = { - x: propertyAssign( - propertyMap.xAxis, - { - type: config.jitter ? 'cat' : 'linear', - }, - config.xAxis - ), - type: { - type: 'cat', - }, - }; - - defs.y = propertyAssign( - propertyMap.yAxis, - { - type: 'linear', - tickCount: 5, - }, - config.yAxis - ); - - autoTimeMask(defs, this.rawData); - - rectAutoTickCount(chart, config, defs, false); - - chart.source(data, defs); - - // 设置X轴 - const xAxis = {}; - - if (config.jitter) { - xAxis.grid = { - align: 'center', // 网格顶点从两个刻度中间开始 - lineStyle: { - stroke: themes['widgets-axis-grid'], - lineWidth: 1, - // lineDash: [3, 3] - }, - }; - } - - // 扰动点图不能打开垂直网格线 - if (config.grid && !config.jitter) { - xAxis.grid = { - lineStyle: { - stroke: themes['widgets-axis-grid'], - lineWidth: 1, - }, - }; - } - - rectXAxis.call(this, chart, config, xAxis); - - // 设置单个Y轴 - rectYAxis.call(this, chart, config); - - rectTooltip.call(this, chart, config, { - crosshairs: null, - }); - - legendFilter.call(this, chart, config); - - // 绘制辅助线,辅助背景区域 - guide(chart, config); - - const geom = chart - .point() - .color('type', colors) - .position('x*y') - .shape('circle') - .style('x*y*type*extra', geomStyle || {}) - .active(false); - - if (jitter) { - if (typeof jitter === 'object') { - geom.adjust({ - type: 'jitter', - ...jitter, - }); - } else { - geom.adjust('jitter'); - } - } - - label(geom, config); - - if (size) { - const sizeConfig = getGeomSizeConfig(size, 4, 'y', 'x*y*type*extra'); - geom.size(...sizeConfig); - chart.legend('x', false); - chart.legend('y', false); - chart.legend('extra', false); - } - - // fix: 设置 rectLegend 后如果再调用 chart.legend 会生成默认图例 - rectLegend.call(this, chart, config, null, false, 'type'); - - chart.render(); - }, -})); diff --git a/components/Wscatter/gui.schema.json b/components/Wscatter/gui.schema.json deleted file mode 100644 index 3763773b..00000000 --- a/components/Wscatter/gui.schema.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "jitter": { - "name": "扰动点图", - "type": "switch", - "default": false, - "description": "" - }, - "grid": { - "name": "显示网格线", - "type": "switch", - "default": false, - "description": "" - }, - "xAxis": { - "name": "X轴", - "type": "group", - "fold": false, - "children": { - "type": { - "name": "数据度量类型", - "type": "select", - "default": "time", - "description": "", - "filterable": false, - "options": [ - { - "label": "时间", - "value": "time" - }, - { - "label": "时间分类", - "value": "timeCat" - }, - { - "label": "分类", - "value": "cat" - }, - { - "label": "线性", - "value": "linear" - }, - { - "label": "对数", - "value": "log" - }, - { - "label": "指数", - "value": "pow" - } - ] - }, - "mask": { - "name": "时间格式", - "type": "select", - "default": "HH:mm:ss", - "options": [ - { - "label": "年-月-日 时:分:秒", - "value": "YYYY-MM-DD HH:mm:ss" - }, - { - "label": "年-月-日", - "value": "YYYY-MM-DD" - }, - { - "label": "年-月", - "value": "YYYY-MM" - }, - { - "label": "月-日", - "value": "MM-DD" - }, - { - "label": "月-日 时:分", - "value": "MM-DD HH:mm" - }, - { - "label": "时:分:秒", - "value": "HH:mm:ss" - }, - { - "label": "时:分", - "value": "HH:mm" - }, - { - "label": "分:秒", - "value": "mm:ss" - } - ], - "showInPanel": { - "conditions": [ - [ - ".type", - "$eq", - "time" - ], - [ - ".type", - "$eq", - "timeCat" - ] - ], - "logicalType": "$or" - } - }, - "base": { - "name": "对数基数", - "type": "stepper", - "default": 2, - "step": 1, - "min": 0, - "showInPanel": { - "conditions": [ - [ - ".type", - "$eq", - "log" - ] - ], - "logicalType": "$or" - } - }, - "exponent": { - "name": "指数", - "type": "stepper", - "default": 2, - "step": 1, - "min": 0, - "showInPanel": { - "conditions": [ - [ - ".type", - "$eq", - "pow" - ] - ], - "logicalType": "$or" - } - }, - "autoRotate": { - "name": "标签自动旋转", - "type": "switch", - "default": true, - "description": "" - } - } - }, - "yAxis": { - "name": "Y轴", - "type": "group", - "fold": false, - "children": { - "type": { - "name": "数据度量类型", - "type": "select", - "default": "linear", - "description": "", - "filterable": false, - "options": [ - { - "label": "线性", - "value": "linear" - }, - { - "label": "对数", - "value": "log" - }, - { - "label": "指数", - "value": "pow" - } - ] - }, - "base": { - "name": "对数基数", - "type": "stepper", - "default": 2, - "step": 1, - "min": 0, - "showInPanel": { - "conditions": [ - [ - ".type", - "$eq", - "log" - ] - ], - "logicalType": "$or" - } - }, - "exponent": { - "name": "指数", - "type": "stepper", - "default": 2, - "step": 1, - "min": 0, - "showInPanel": { - "conditions": [ - [ - ".type", - "$eq", - "pow" - ] - ], - "logicalType": "$or" - } - }, - "min": { - "name": "最小值", - "type": "select", - "default": null, - "options": [ - { - "label": "自动计算", - "value": null - } - ] - }, - "max": { - "name": "最大值", - "type": "select", - "default": null, - "options": [ - { - "label": "自动计算", - "value": null - } - ] - }, - "minLimit": { - "name": "强制最小值", - "type": "select", - "default": null, - "options": [ - { - "label": "自动计算", - "value": null - } - ] - }, - "maxLimit": { - "name": "强制最大值", - "type": "select", - "default": null, - "options": [ - { - "label": "自动计算", - "value": null - } - ] - }, - "autoRotate": { - "name": "标签自动旋转", - "type": "switch", - "default": false, - "description": "" - } - } - }, - "legend": { - "name": "图例项", - "type": "group", - "fold": false, - "children": { - "visible": { - "name": "显示图例", - "type": "switch", - "default": true, - "description": "" - }, - "position": { - "name": "位置", - "type": "buttonRadio", - "default": "top", - "options": [ - { - "label": "顶部", - "value": "top" - }, - { - "label": "底部", - "value": "bottom" - } - ] - }, - "align": { - "name": "水平对齐", - "type": "buttonRadio", - "default": "left", - "options": [ - { - "label": "左对齐", - "value": "left" - }, - { - "label": "居中", - "value": "center" - }, - { - "label": "右对齐", - "value": "right" - } - ] - }, - "showData": { - "name": "显示数据", - "type": "switch", - "default": false, - "description": "" - } - } - }, - "tooltip": { - "name": "提示信息", - "type": "group", - "fold": false, - "children": { - "visible": { - "name": "显示提示信息", - "type": "switch", - "default": true, - "description": "" - }, - "showTitle": { - "name": "显示标题", - "type": "switch", - "default": true, - "description": "" - }, - "showColon": { - "name": "显示冒号", - "type": "switch", - "default": true, - "description": "" - } - } - } -} diff --git a/components/Wscatter/index.jsx b/components/Wscatter/index.jsx deleted file mode 100644 index 2442567b..00000000 --- a/components/Wscatter/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Scatter'; diff --git a/components/Wshoot/index.scss b/components/Wshoot/index.scss deleted file mode 100644 index c6d59802..00000000 --- a/components/Wshoot/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -.cloud-wshoot { - display: block; -} diff --git a/components/Wshoot/shoot.js_bak b/components/Wshoot/shoot.js_bak deleted file mode 100644 index d2101414..00000000 --- a/components/Wshoot/shoot.js_bak +++ /dev/null @@ -1,668 +0,0 @@ -import merge from '../utils/merge'; -import tween from '../utils/tween'; - -let uniqueId = 0; -function generateUniqueId() { - return `shoot-${uniqueId++}`; -} - -function Shoot(canvas, map, config) { - this.uuid = generateUniqueId(); - this.map = map; - this.config = merge({ - autoUpdate: true, - maxFps: 60, - interval: 10000, // 单次飞线总时间 - dTime: 4000, // 单条飞线预计的时间 - // batch: false, - shootTime: {// 飞行过程中的各个时间 值域[0, 1] - fromTime: 0, // 出发时间(瞬时) - fromStop: 0.4, // 出发点保留时间(持续) - fromFade: 0.1, // 出发点消失所用时间(持续) - toBegin: 0.3, // 到达目标点的时间(瞬时) - toTime: 0.1, // 到达点显示所用时间(持续) - toStop: 0, // 到达点停留持续时间(持续) - toFade: 0.1// 到达点消失所用时间(持续) - }, - fromRadius: 3, // 出发点半径 - toRadius: 3, // 到达点半径 - fromBorder: 1, // 出发点边框宽度 - toBorder: 1, // 到达点边框宽度 - shootPointColor: { - fromPoint: '46, 133, 255', // 出发点颜色 - fromShadow: '46, 133, 255', // 出发点阴影颜色 - toPoint: '46, 133, 255', // 到达点颜色 - toShadow: '46, 133, 255'// 到达点阴影颜色 - }, - lineWidth: 2, // 飞线宽度 - lineColor: { - from: '46, 133, 255', // 线出发颜色 - to: '46, 133, 255' // 线到达颜色 - }, - bullet: { - r: 2.5, // 弹头半径 - length: 20, // 弹头长度 - color: 'rgb(46, 133, 255)', - shadowColor: 'rgb(46, 133, 255)' - }, - keys: { - from: 'from', - to: 'to', - fromValue: 'fromValue', - toValue: 'toValue', - curvature: 'curvature' // 曲率半径,值越大越平坦 - } - }, config); - - canvas.width = this.config.width; - canvas.height = this.config.height; - - // 射击canvas层 - this.canvas = canvas; - - this.sCtx = this.canvas.getContext('2d'); - this.sCtx.lineWidth = this.config.lineWidth; - - // this.init(canvas); -} - -function random() { - return Math.random() * 5 + 2.5; -} - -Shoot.prototype = { - init(canvas) { - const self = this; - - // 射击canvas层 - // self.canvas = canvas; - - // self.sCtx = self.canvas.getContext('2d'); - // self.sCtx.lineWidth = self.config.lineWidth; - - // 如果存在批量出现的key,则必定批量出现 - // if(self.config.batchKey){ - // self.config.batch = true; - // } - - // 计算半径 - // self.calRadius(); - }, - - // 计算半径 - // calRadius: function(){ - // var self = this, - // fr = self.config.fromRadius, - // tr = self.config.toRadius; - // - // if(typeof fr !== 'number'){ - // if(fr.domain && fr.range){ - // self.fromRadiusScale = d3.scale.linear() - // .domain(fr.domain).range(fr.range) - // .clamp(true); - // } - // } - // - // if(typeof tr !== 'number'){ - // if(tr.domain && tr.range){ - // self.toRadiusScale = d3.scale.linear() - // .domain(tr.domain).range(tr.range) - // .clamp(true); - // } - // } - // }, - - // 清除画布 - clear(ctx) { - let self = this, - width = self.config.width, - height = self.config.height; - - ctx.clearRect(0, 0, width, height); - }, - -// getCoord: function(name, map) { -// var self = this, -// width = self.config.width, -// height = self.config.height, -// posList = self.config.posList; -// -// return { -// x: posList[name].x * width, -// y: posList[name].y * height -// } -// }, - draw(data) { - if (!data) { - return; - } - let self = this, - batchKey = self.config.batchKey, - dTime = self.config.dTime, - // 由于要保证interval时间内完成全部动画 - interval = self.config.interval, - autoUpdate = self.config.autoUpdate, - maxFps = self.config.maxFps, - times = (interval / dTime) >> 0, - indexMap = {}, - keys = self.config.keys, - sCtx = self.sCtx, - ceil = Math.ceil, - max = Math.max, - shoots = [], - count = 0, - shootMap = {}, - fCo, - tCo, - s; - - // self.unoverview(); - - // 先清除画布 - self.clear(sCtx); - - const l = data.length; - - const time = self.config.shootTime; - - for (let i = 0; i < l; i++) { - var d = data[i], - fromCityName = d[keys.from], - toCityName = d[keys.to]; - - if (typeof fromCityName === 'object') { - fCo = fromCityName; - } else { - // 获取出发城市在画布上的坐标 - fCo = self.map.getCoord(fromCityName); - } - - if (typeof toCityName === 'object') { - tCo = toCityName; - } else { - // 获取到达城市在画布上的坐标 - tCo = self.map.getCoord(toCityName); - } - - if (fCo && tCo) { - const color = {}; - // 如果数据带有颜色配置 - if (d._color) { - Object.assign(color, d._color); - } - - s = self.emit(fCo, tCo, d, color, time); - - // 批量出现的话要根据特定的数据key,否则随机出现 - // if(batchKey){ - // // FIXED: 有可能为0 - // if(indexMap[d[batchKey]] === undefined){ - // indexMap[d[batchKey]] = count++; - // } - // - // s.index = indexMap[d[batchKey]]; - // }else{ - s.index = (times - 1) * Math.random(); - // } - - // 判断是否是多点同时射击一个点 - if (!shootMap[s.index]) { - shootMap[s.index] = []; - } - - shootMap[s.index].forEach((city) => { - if (city === toCityName) { - // 正在被攻击 - s.shooting = true; - } - }); - - if (!s.shooting) { - shootMap[s.index].push(toCityName); - } - - // 是否批量出现 - // if(self.config.batch){ - // s.index = s.index >> 0; - // } - - shoots.push(s); - } - } - - this.tween = tween(this.uuid, { - duration: interval, - autoUpdate, - maxFps - }, (t) => { - self.clear(sCtx); - shoots.forEach((s, i) => { - s(t * times - s.index); - }); - }); - - // transition().duration(interval).tween(this.uuid, function() { - // return function(t) { - // self.clear(sCtx); - // shoots.forEach(function(s, i) { - // s(t * times - s.index); - // }); - // }; - // }); - }, - emit(fCo, tCo, data, color, time) { - let self = this, - keys = self.config.keys, - sCtx = self.sCtx, - // 发射出现时间段 - fromTime = time.fromTime, - // 发射停留时间段 - fromStop = time.fromStop, - // 发射消失时间段 - fromFade = time.fromFade, - - // 击中开始时间点 - toBegin = time.toBegin, - // 击中出现时间段 - toTime = time.toTime, - // 击中停留时间段 - toStop = time.toStop, - // 击中消失时间段 - toFade = time.toFade, - - // 发射消失时间点 - fromFadeBegin = fromTime + fromStop, - // 命中消失时间点 - toFadeBegin = toBegin + toTime + toStop, - s, - fr, - tr; - - // 发射半径 - // if(self.fromRadiusScale){ - // fr = self.fromRadiusScale(data[keys.fromValue]); - // }else{ - fr = self.config.fromRadius; - // } - - // 到达半径 - // if(self.toRadiusScale){ - // tr = self.toRadiusScale(data[keys.toValue]); - // }else{ - tr = self.config.toRadius; - // } - - const h = data[keys.curvature] || random(); - - s = function (t) { - if (fCo) { - // 出发: - // 1. 出现 - if (t < fromTime) { - self.from(fCo, fr, color)(t / fromTime); - // 2. 停留 - } else if (t > fromTime && t < fromFadeBegin) { - self.from(fCo, fr, color)(1); - // 3. 消失 - } else if (t > fromFadeBegin) { - self.from(fCo, fr, color, true)((t - fromFadeBegin) / fromFade); - } - } - - if (tCo) { - // 轨迹 - if (t >= fromTime && t < toBegin) { - // 出发 - 到达瞬间 - self.track(sCtx, fCo, tCo, false, color, h)((t - fromTime) / (toBegin - fromTime)); - } else if (t > toBegin && t < toFadeBegin) { - // 到达后停留 - // TODO add by kaihong.tkh - const shootDurable = self.config.shootDurable; - if (shootDurable) { - let time = -(t - fromTime) / (toBegin - fromTime); - time -= Math.floor(time); - time = 1 - time; - self.track(sCtx, fCo, tCo, true, color, h)(time); - } else { - self.track(sCtx, fCo, tCo, true, color, h)(0); - } - } else if (t > toFadeBegin && t < toFadeBegin + toFade) { - // 停留后消失时间 - self.track(sCtx, fCo, tCo, true, color, h)((t - toFadeBegin) / toFade); - } - - - // 如果不是正在被射击 - if (!s.shooting) { - // 到达: - // 1. 放大 - if (t >= toBegin && t < (toBegin + toTime)) { - if (!s.to) { - // TODO fire 方法需要改写? -// self.fire('to', {pos: tCo, data: data}); -// $(self).trigger('to', {pos: tCo, data: data}) - s.to = true; - } - self.to(tCo, tr, color)((t - toBegin) / toTime); - // 2. 停留 - } else if (t > (toBegin + toTime) && t < toFadeBegin) { - self.to(tCo, tr, color)(1); - // 3. 消失 - } else if (t >= toFadeBegin) { - self.to(tCo, tr, color, true, 3)((t - toFadeBegin) / toFade); - } - } - } - }; - - return s; - }, - - from(co, r, color, zoom) { - let self = this, - c = `rgba(${color.fColor || this.config.shootPointColor.fromPoint},`, - b = self.config.fromBorder, - sCtx = self.sCtx, - pi = 2 * Math.PI; - - return function (t) { - if (t > 1 || t < 0) { - return; - } - - if (zoom) { - t = 1 - t; - } - - sCtx.save(); - - // 画背景圆 - sCtx.beginPath(); - sCtx.strokeStyle = `${c + t})`; - sCtx.lineWidth = b * t; - sCtx.fillStyle = `${c}0.3)`; - - // shadow - sCtx.shadowColor = `rgba(${color.fColor || self.config.shootPointColor.fromShadow},1)`; - sCtx.shadowBlur = 5; - sCtx.shadowOffsetX = 0; - sCtx.shadowOffsetY = 0; - - sCtx.arc(co.x, co.y, r * t, 0, pi); - - sCtx.fill(); - sCtx.stroke(); - - // 画中心圆 - sCtx.beginPath(); - sCtx.fillStyle = `${c}1)`; - sCtx.arc(co.x, co.y, 2 * t, 0, pi); - sCtx.fill(); - - sCtx.restore(); - }; - }, - to(co, r, color, zoom, n, anticlockwise) { - let self = this, - c = `rgba(${color.tColor || this.config.shootPointColor.toPoint},`, - b = self.config.toBorder, - sCtx = self.sCtx, - pi = 2 * Math.PI, - sin = Math.sin, - cos = Math.cos; - - return function (t) { - let rad = 0; - - if (t > 1 || t < 0) { - return; - } - - sCtx.save(); - - // 每次转的角度 - if (n) { - rad = n * pi * t; - - if (anticlockwise) { - rad = -rad; - } - } - - if (zoom) { - t = 1 - t; - } - - // 画背景圆 - sCtx.beginPath(); - sCtx.fillStyle = `${c}0.3)`; - sCtx.arc(co.x, co.y, r * t, 0, pi); - sCtx.fill(); - - // 画离散弧线 - sCtx.beginPath(); - sCtx.strokeStyle = `${c + t})`; - sCtx.lineWidth = b * t; - // shadow - sCtx.shadowColor = `rgba(${color.tColor || self.config.shootPointColor.toShadow},1)`; - sCtx.shadowBlur = 10; - sCtx.shadowOffsetX = 0; - sCtx.shadowOffsetY = 0; - - sCtx.arc(co.x, co.y, r * t, rad, pi / 6 + rad); - sCtx.moveTo(co.x + r * cos(pi / 3 + rad) * t, co.y + r * sin(pi / 3 + rad) * t); - sCtx.arc(co.x, co.y, r * t, pi / 3 + rad, pi / 2 + rad); - sCtx.moveTo(co.x + r * cos(pi * 2 / 3 + rad) * t, co.y + r * sin(pi * 2 / 3 + rad) * t); - sCtx.arc(co.x, co.y, r * t, pi * 2 / 3 + rad, pi * 5 / 6 + rad); - - sCtx.stroke(); - - // 画中心圆 - sCtx.beginPath(); - sCtx.fillStyle = `${c}1)`; - sCtx.arc(co.x, co.y, 2 * t, 0, pi); - sCtx.fill(); - - sCtx.restore(); - }; - }, - track(ctx, fCo, tCo, fade, color, h, overview) { - let self = this, - abs = Math.abs, - sin = Math.sin, - cos = Math.cos, - atan = Math.atan, - pow2 = function (x) { - return Math.pow(x, 2); - }, - sqrt = Math.sqrt, - pow = function (i) { - return Math.pow(i, 2); - }, - fColor = `rgba(${color.fColor || self.config.lineColor.from},`, - tColor = `rgba(${color.tColor || self.config.lineColor.to},`, - - // (x1, y1) 出发点,(x2, y2) 到达点 - x1 = fCo.x, - y1 = fCo.y, - x2 = tCo.x, - y2 = tCo.y, - - // 求法线方程 - // y = j * x + k - dx = (x1 + x2) / 2, - dy = (y1 + y2) / 2, - j = (x1 - x2) / (y2 - y1), - k = dy - j * dx, - // d用来控制弧线的弧度 - d = sqrt(pow2(x1 - x2) + pow2(y1 - y2)) / h, - rad = atan(j), - cx = d * cos(rad), - // 控制点坐标 - x3 = (x1 + x2) / 2 + cx, - y3 = j * x3 + k, - // 渐变 - gradient = ctx.createLinearGradient(x1, y1, x2, y2), - bulletR = this.config.bullet.r, - bulletLen = this.config.bullet.length; - - if (isNaN(j)) { - // 水平方向 - x3 = dx; - y3 = dy + h; - } else if (j == 0) { - // 竖直方向 - x3 = dx + h; - y3 = dy; - } else if (Math.abs(j) >= 1) { // 之后的两个条件判断请画象限图理解。。。估计明天我也忘记为什么要这么写了 - // k = dy + dx/j; - y3 = dy - cx; - // x3 = (k - y3)*j; - x3 = (y3 - k) / j; - } else if (j > 0) { - x3 = (x1 + x2) / 2 - cx; - y3 = j * x3 + k; - } - - return function (t) { - // 移动点坐标 - let x0, - y0, - pi = 2 * Math.PI, - // 贝塞尔曲线切线斜率 - kx, - ky, - // 蒙板起始坐标 - rx, - ry, - // 蒙板半径 - r, - gradientOpacity = 0.7; - - if (t > 1 || t < 0) { - return; - } - - // TODO:最好加上一个透明度变化的动画 - if (!overview) { - if (fade) { - // 避免出现科学计数法,rgba中的透明值不能设为科学计数法 - gradientOpacity = (1 - t) < 0.01 ? 0.01 : (1 - t); - } else { - gradientOpacity = t < 0.01 ? 0.01 : t; - } - - var shootDurable = self.config.shootDurable; - if (shootDurable) { - gradientOpacity = 1; // add by kaihong.tkh 线不需要渐变 - } - } - - // 贝塞尔曲线方程 - x0 = (1 - t) * (1 - t) * x1 + 2 * t * (1 - t) * x3 + t * t * x2; - y0 = (1 - t) * (1 - t) * y1 + 2 * t * (1 - t) * y3 + t * t * y2; - - // 贝塞尔曲线切线方程 - kx = -2 * x1 * (1 - t) + 2 * x3 * (1 - 2 * t) + 2 * x2 * t; - ky = -2 * y1 * (1 - t) + 2 * y3 * (1 - 2 * t) + 2 * y2 * t; - - rx = (x1 + x0) / 2; - ry = (y1 + y0) / 2; - - r = sqrt(pow2(x1 - x0) + pow2(y1 - y0)) / 2; - - ctx.save(); - - gradient.addColorStop(0, `${fColor + gradientOpacity})`); - gradient.addColorStop(1, `${tColor + gradientOpacity})`); - - if (!fade && !overview) { - // 创建圆形蒙板 - ctx.arc(rx, ry, r, 0, pi); - ctx.clip(); - } - - ctx.beginPath(); - ctx.globalCompositeOperation = 'lighter'; - ctx.strokeStyle = gradient; - - ctx.lineWidth = self.config.lineWidth; - - ctx.moveTo(x1, y1); - ctx.quadraticCurveTo(x3, y3, x2, y2); - - ctx.stroke(); - - ctx.restore(); - - let a = atan(ky / kx); - - // 计算旋转角度 - if (ky > 0 && kx < 0) { - a += pi / 2; - } else if (ky < 0 && kx < 0) { - a -= pi / 2; - } - - // TODO add by kaihong.tkh - var shootDurable = self.config.shootDurable; - if (shootDurable) { - self.drawBullet(x0, y0, a, color.bullet, bulletR, bulletLen); - } else if (!fade && !overview) { - // ky/kx 为切线斜率 - self.drawBullet(x0, y0, a, color.bullet, bulletR, bulletLen); - } - }; - }, - drawBullet(x, y, a, color, r, len) { - let self = this, - pi = 2 * Math.PI, - sCtx = self.sCtx; - - sCtx.save(); - - sCtx.translate(x, y); - sCtx.rotate(a); - sCtx.translate(-x, -y); - - sCtx.beginPath(); - - sCtx.globalCompositeOperation = 'lighter'; - - // shadow - sCtx.shadowColor = this.config.bullet.shadowColor; - sCtx.shadowBlur = 20; - sCtx.shadowOffsetX = 0; - sCtx.shadowOffsetY = 0; - - sCtx.fillStyle = color || this.config.bullet.color; - sCtx.arc(x, y, r, -pi / 4, pi / 4); - - sCtx.lineTo(x - len, y); - - sCtx.closePath(); - - sCtx.fill(); - - sCtx.restore(); - }, - unoverview() { - const self = this; - - // 隐藏overview canvas,显示shoot canvas - // $(self.config.canvas).hide(); - // $(self.canvas).show(); - }, - update(time) { - if (this.tween && this.tween.update) { - this.tween.update(time); - } - }, - destroy() { - this.clear(this.sCtx); - - // this.canvas.parentNode.removeChild(this.canvas); - } -}; - -export default Shoot; diff --git a/components/Wtreemap/G2Treemap.js b/components/Wtreemap/G2Treemap.js deleted file mode 100644 index af1d224b..00000000 --- a/components/Wtreemap/G2Treemap.js +++ /dev/null @@ -1,226 +0,0 @@ -'use strict'; -import { View } from '@antv/data-set'; - -import g2Factory from '../common/g2Factory'; -import errorWrap from '../common/errorWrap'; -import merge from '../common/merge'; -import themes from '../themes/index'; -import { defaultPadding } from '../common/common'; -import rectTooltip from '../common/rectTooltip'; -import label from '../common/label'; -import './G2Treemap.scss'; - -export default /*#__PURE__*/ errorWrap( - g2Factory('G2Treemap', { - convertData: false, - getDefaultConfig() { - return { - colors: themes.category_12, - padding: ['auto', 'auto', 'auto', 'auto'], - tooltip: { - titleFormatter: null, - nameFormatter: null, - valueFormatter: null, - }, - label: { - offset: 0, - textStyle: { - fill: '#fff', - shadowBlur: 2, - shadowColor: 'rgba(0,0,0,0.6)', - }, - }, - // label 文本展现的策略 - labelRender: (depth, brand, name, value, xRange, yRange) => { - // 只有第一级显示文本,矩形面积太小时不显示文本 - if (depth === 1 && xRange[1] - xRange[0] > 0.04 && yRange[1] - yRange[0] > 0.04) { - return brand; - } - return; - }, - innerRadius: 0, - polar: false, - // 区块的 border 样式,包含 lineWidth lineDash stroke 等属性 - geomStyle: { - lineWidth: 1, - stroke: themes['widgets-color-background'], - }, - }; - }, - beforeInit(props) { - const { config } = props; - const newConfig = merge({}, this.defaultConfig, config); - - // TODO 处理padding - return Object.assign({}, props, { - padding: defaultPadding( - props.padding || config.padding, - newConfig, - ...this.defaultConfig.padding, - ), - config: newConfig, - }); - }, - init(chart, userConfig, data) { - const config = userConfig; - - this.dataView = processDataView(config, data); - const nodes = parseDataView(this.dataView); - chart.source(nodes); - - // tooltip - rectTooltip.call(this, chart, config, { crosshairs: false }); - - if (nodes.some((x) => x.brand)) { - drawNestedTreemap(chart, config, config.colors); - } else { - drawTreemap(chart, config, config.colors); - } - - chart.render(); - }, - changeData(chart, config, data) { - if (this.dataView) { - this.dataView.source(data); - } - }, - }), -); - -// 数据分箱 -function processDataView(config, data) { - const dv = new View().source(resetParentValue(data), { type: 'hierarchy' }); - dv.transform({ - field: 'value', - type: 'hierarchy.treemap', - tile: 'treemapResquarify', - as: ['x', 'y'], - }); - - return dv; -} - -// 将 DataSet 处理后的结果转换为 G2 接受的数据 -function parseDataView(dv) { - const nodes = []; - - for (const node of dv.getAllNodes()) { - if (node.data.name === 'root') { - continue; - } - - const eachNode = { - name: node.data.name, - x: node.x, - y: node.y, - value: getNodeValue(node), - depth: node.depth, - }; - - if (!node.data.brand && node.parent) { - eachNode.brand = node.parent.data.brand; - } else { - eachNode.brand = node.data.brand; - } - - nodes.push(eachNode); - } - - return nodes; -} - -// 简单矩形树图 -function drawTreemap(chart, config, colors, field = 'name') { - // 设置坐标系:极坐标/直角坐标 - if (config.polar) { - chart.coord('polar', { - innerRadius: config.innerRadius || 0, - }); - } else { - chart.coord(); - } - - chart.scale({ - x: { nice: true }, - y: { nice: true }, - }); - chart.axis(false); - chart.legend(false); - - const geom = chart - .polygon() - .position('x*y') - .color(field, colors) - .tooltip('name*value', (name, count) => ({ name, value: count, title: name })) - .style(config.geomStyle); - - label(geom, config, 'name', null, null, true); -} - -// 嵌套矩形树图 -function drawNestedTreemap(chart, config, colors, field = 'brand') { - // 设置坐标系:极坐标/直角坐标 - if (config.polar) { - chart - .coord('polar', { - innerRadius: config.innerRadius || 0, - }) - .reflect(); - } else { - // 习惯性最小的在最下面 - chart.coord().scale(1, -1); - } - - chart.scale({ - x: { nice: false }, - y: { nice: false }, - }); - chart.axis(false); - chart.legend(false); - - chart - .polygon() - .position('x*y') - .color(field, colors) - .tooltip('name*value*brand', (name, value, brand) => ({ - name, - value, - title: brand, - })) - .style(config.geomStyle) - .label( - 'depth*brand*name*value*x*y', - (depth, brand, name, value, xs, ys) => - config.labelRender( - depth, - brand, - name, - value, - [Math.min(...xs), Math.max(...xs)], - [Math.min(...ys), Math.max(...ys)], - ), - config.label, - ); -} - -// 此方法对原始数据进行处理,返回新的副本 -function resetParentValue({ brand, name, value, children }) { - const result = { name, value }; - if (brand) { - result.brand = brand; - } - if (children) { - // DataView 会通过子节点累加 value 值,所以先置为 null - result.value = null; - result.children = children.map(resetParentValue); - } - return result; -} - -// 计算当前节点 value -function getNodeValue(n) { - if (n.data.value === null && n.children) { - return n.children.map(getNodeValue).reduce((pre, cur) => pre + cur, 0); - } - return n.data.value; -} diff --git a/components/Wtreemap/index.jsx b/components/Wtreemap/index.jsx deleted file mode 100644 index 5bdb3628..00000000 --- a/components/Wtreemap/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export default from './G2Treemap'; \ No newline at end of file diff --git a/components/Wtreemap/index.scss b/components/Wtreemap/index.scss deleted file mode 100644 index e6697ba3..00000000 --- a/components/Wtreemap/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./G2Treemap.scss"; diff --git a/components/common/ResetButton.js b/components/common/ResetButton.js deleted file mode 100644 index 21522998..00000000 --- a/components/common/ResetButton.js +++ /dev/null @@ -1,78 +0,0 @@ -'use strict'; - -const locale = { - 'zh-cn': { - reset: '重置', - }, - 'en-us': { - reset: 'Reset', - }, -}; - -export default class ResetButton { - constructor(chart, language) { - this.chart = chart; - this.isShow = false; - this.dom = null; - this.language = language; - - this.handleClick = this.handleClick.bind(this); - } - - handleClick(e) { - e.preventDefault(); - this.hide(); - } - - show(language) { - if (this.isShow) { - return; - } - - if (this.dom) { - this.dom.style.display = 'block'; - this.isShow = true; - } else { - const { chart } = this; - const wrapper = chart.get('wrapperEl'); - const range = chart.get('plotRange'); - if (wrapper && range && range.tr) { - this.dom = document.createElement('span'); - this.dom.innerText = (locale[this.language] || locale['zh-cn']).reset; - this.dom.className = 'widgets-reset-button'; - this.dom.style.top = `${range.tr.y}px`; - this.dom.style.right = `${chart.get('width') - range.tr.x}px`; - wrapper.appendChild(this.dom); - - this.isShow = true; - - this.dom.addEventListener('click', this.handleClick); - } - } - - if (language !== this.language) { - this.dom.innerText = (locale[language] || locale['zh-cn']).reset; - - this.language = language; - } - } - - hide() { - if (this.isShow && this.dom) { - this.chart.get('options').filters = {}; - this.chart.repaint(); - this.dom.style.display = 'none'; - this.isShow = false; - this.chart.emit('zoom:reset'); - } - } - - destroy() { - if (this.dom) { - this.dom.removeEventListener('click', this.handleClick); - this.dom.parentNode.removeChild(this.dom); - this.dom = null; - } - this.chart = null; - } -} diff --git a/components/common/dataSet.js b/components/common/dataSet.js deleted file mode 100644 index 6b3ec0f4..00000000 --- a/components/common/dataSet.js +++ /dev/null @@ -1,72 +0,0 @@ -// extra APIs -require('@antv/data-set/lib/api/geo'); -require('@antv/data-set/lib/api/hierarchy'); -require('@antv/data-set/lib/api/partition'); -require('@antv/data-set/lib/api/statistics'); - -// connectors -require('@antv/data-set/lib/connector/default'); -// require('@antv/data-set/lib/connector/dsv'); -require('@antv/data-set/lib/connector/geo-graticule'); -require('@antv/data-set/lib/connector/geojson'); -require('@antv/data-set/lib/connector/graph'); -// require('@antv/data-set/lib/connector/hexjson'); -require('@antv/data-set/lib/connector/hierarchy'); -// require('@antv/data-set/lib/connector/topojson'); - -// transforms -// static -require('@antv/data-set/lib/transform/default'); -require('@antv/data-set/lib/transform/filter'); -require('@antv/data-set/lib/transform/fold'); -require('@antv/data-set/lib/transform/map'); -require('@antv/data-set/lib/transform/partition'); -require('@antv/data-set/lib/transform/percent'); -require('@antv/data-set/lib/transform/pick'); -require('@antv/data-set/lib/transform/proportion'); -require('@antv/data-set/lib/transform/rename'); -require('@antv/data-set/lib/transform/reverse'); -require('@antv/data-set/lib/transform/sort'); -require('@antv/data-set/lib/transform/sort-by'); -require('@antv/data-set/lib/transform/subset'); -// imputation -// require('@antv/data-set/lib/transform/fill-rows'); -// require('@antv/data-set/lib/transform/impute'); -// statistics -// require('@antv/data-set/lib/transform/aggregate'); -// regression -// require('@antv/data-set/lib/transform/regression'); -// KDE -// require('@antv/data-set/lib/transform/kde'); -// binning -// require('@antv/data-set/lib/transform/bin/hexagon'); -require('@antv/data-set/lib/transform/bin/histogram'); -// require('@antv/data-set/lib/transform/bin/quantile'); -require('@antv/data-set/lib/transform/bin/rectangle'); -// geo -require('@antv/data-set/lib/transform/geo/centroid'); -require('@antv/data-set/lib/transform/geo/projection'); -require('@antv/data-set/lib/transform/geo/region'); -// diagram -require('@antv/data-set/lib/transform/diagram/arc'); -// require('@antv/data-set/lib/transform/diagram/dagre'); // 默认不引入 -require('@antv/data-set/lib/transform/diagram/sankey'); -// require('@antv/data-set/lib/transform/diagram/voronoi'); -// hierarchy -// require('@antv/data-set/lib/transform/hierarchy/cluster'); -// require('@antv/data-set/lib/transform/hierarchy/compact-box'); -// require('@antv/data-set/lib/transform/hierarchy/dendrogram'); -// require('@antv/data-set/lib/transform/hierarchy/indented'); -// require('@antv/data-set/lib/transform/hierarchy/pack'); -require('@antv/data-set/lib/transform/hierarchy/partition'); -// require('@antv/data-set/lib/transform/hierarchy/tree'); -require('@antv/data-set/lib/transform/hierarchy/treemap'); -// tag cloud -// require('@antv/data-set/lib/transform/tag-cloud'); -// waffle -// require('@antv/data-set/lib/transform/waffle'); -// kernel smoothing -// require('@antv/data-set/lib/transform/kernel-smooth/density'); -// require('@antv/data-set/lib/transform/kernel-smooth/regression'); - -module.exports = require('@antv/data-set/lib/data-set'); diff --git a/components/common/errorWrap.js b/components/common/errorWrap.js deleted file mode 100644 index c4bfb678..00000000 --- a/components/common/errorWrap.js +++ /dev/null @@ -1,74 +0,0 @@ -import React from 'react'; - -/** - * errorWrap 错误捕获HOC - * - * @param {React.Component} Component 组件 - * - * @return {React.Component} - * */ -export default /*#__PURE__*/ function errorWrap(Component) { - class ErrorBoundary extends React.Component { - constructor(props) { - super(props); - this.state = { error: null }; - } - - shouldComponentUpdate() { - if (this.state.error) { - // 在update前重置error标记 - // 为顾及React16.3之前的用户,因此没有将该逻辑放在getDerivedStateFromProps里 - this.setState({ error: null }); - } - return true; - } - - componentDidCatch(error, info) { - // Display fallback UI - this.setState({ error: error.stack }); - } - - // 低版本React中,复制可能用到的属性。 - oldReactRef = (chartInstance) => { - if (chartInstance) { - // 复制旧版本可能用到的属性 - this.chart = chartInstance.chart; - this.chartId = chartInstance.chartId; - this.chartDom = chartInstance.chartDom; - this._size = chartInstance._size; - } - }; - - render() { - if (this.state.error) { - const { className = '', style } = this.props; - // You can render any custom fallback UI - return
    {this.state.error}
    ; - } - const { forwardedRef = this.oldReactRef, ...rest } = this.props; - - // 将自定义的 prop 属性 “forwardedRef” 定义为 ref - return ; - } - } - - if (React.forwardRef) { - const forwardRefFunc = function (props, ref) { - return ; - }; - const result = React.forwardRef(forwardRefFunc); - result.isG2Chart = true; - result.displayName = Component.displayName; - result.propTypes = Component.propTypes; - result.defaultProps = Component.defaultProps; - - return result; - } - - ErrorBoundary.isG2Chart = true; - ErrorBoundary.displayName = Component.displayName; - ErrorBoundary.propTypes = Component.propTypes; - ErrorBoundary.defaultProps = Component.defaultProps; - - return ErrorBoundary; -} diff --git a/components/common/eventBus.js b/components/common/eventBus.js deleted file mode 100644 index 9e65d95b..00000000 --- a/components/common/eventBus.js +++ /dev/null @@ -1,3 +0,0 @@ -import EventEmitter from 'wolfy87-eventemitter'; - -export default new EventEmitter(); diff --git a/components/common/g2Factory.js b/components/common/g2Factory.js deleted file mode 100644 index b5131309..00000000 --- a/components/common/g2Factory.js +++ /dev/null @@ -1,458 +0,0 @@ -'use strict'; - -import G2 from '@antv/g2'; -import React from 'react'; -import PropTypes from 'prop-types'; -import { - getParentSize, - requestAnimationFrame, - isEqual, - isEqualWith, -} from './common'; -import highchartsDataToG2Data from './dataAdapter'; -import chartLog from './log'; -import eventBus from './eventBus'; -import './g2Hacker'; - -// 图表唯一id -let uniqueId = 0; -function generateUniqueId() { - return `react-g2-${uniqueId++}`; -} - -const rootClassName = 'cloud-charts '; -const rootChildClassName = 'cloud-charts-children'; - -/** - * g2Factory 函数 - * 将非React版的图表类转化为React版 - * - * @param {string} name 组件名称 - * @param {object} Chart 组件原生代码组 - * @param {boolean} convertData 控制是否转化数据 - * */ -/*#__PURE__*/ -function g2Factory(name, Chart, convertData = true) { - class CloudCharts extends React.Component { - constructor(props, context) { - super(props, context); - this.chart = null; - this.chartDom = null; - this.chartId = generateUniqueId(); - this.defaultConfig = {}; - - this.autoResize = this.autoResize.bind(this); - this.rerender = this.rerender.bind(this); - - // 图表初始化时记录日志 - chartLog(name, 'init'); - } - - componentDidMount() { - this.chartProcess = Object.assign( - {}, - Chart, - this.props.customChart || {} - ); - - this.language = this.props.language || 'zh-cn'; - - // 设置初始高宽 - this.initSize(); - - this.initChart(this.props); - - eventBus.on('setTheme', this.rerender); - } - - isReRendering = false; - - reRenderTimer = null; - - rerender() { - // 修复 变化过快时 chart.destroy 方法无法清除dom,导致dom重复的问题。 - if (this.isReRendering) { - window.cancelAnimationFrame(this.reRenderTimer); - } - - this.isReRendering = true; - this.destroy(); - - // this.reRenderTimer = requestAnimationFrame(() => { - if (!this.chartDom) { - return; - } - this.initSize(this.props); - - this.initChart(this.props); - - this.isReRendering = false; - // }); - } - - isEqualCustomizer = (objValue, othValue, key) => { - const { isChangeEqual } = this.chartProcess; - - const res = isChangeEqual ? isChangeEqual.call(this, objValue, othValue, key) : undefined; - if (res !== undefined) { - return res; - } - const enableFunctionUpdate = this.props.enableFunctionUpdate; - // 默认忽略全部function,开启 enableFunctionUpdate 可以接受function更新 - if (!enableFunctionUpdate && typeof objValue === 'function' && typeof othValue === 'function') { - return true; - } - }; - - checkConfigChange(newConfig, oldConfig) { - let hasConfigChange = false; - - if (!isEqualWith(newConfig, oldConfig, this.isEqualCustomizer)) { - hasConfigChange = true; - } - - return hasConfigChange; - } - - componentDidUpdate(prevProps) { - const { - data: newData, - width: newWidth, - height: newHeight, - padding: newPadding, - config: newConfig, - changeConfig = true, - } = this.props; - const { - data: oldData, - width: oldWidth, - height: oldHeight, - padding: oldPadding, - config: oldConfig, - } = prevProps; - - this.language = this.props.language || 'zh-cn'; - - // 配置项有变化,重新生成图表 - if (changeConfig !== false) { - if (this.checkConfigChange(newConfig, oldConfig)) { - this.rerender(); - - return; - } - } - - if (newPadding !== oldPadding) { - console.warn('padding 不支持修改'); - } - - let needAfterRender = false; - - // 数据有变化 - if ( - newData !== oldData || - (Array.isArray(newData) && - Array.isArray(oldData) && - newData.length !== oldData.length) - ) { - const data = - convertData && - this.chartProcess.convertData !== false && - newConfig.dataType !== 'g2' - ? highchartsDataToG2Data(newData, newConfig, name) - : newData; - this.rawData = newData; - if (this.chartProcess.changeData) { - this.chart && - this.chartProcess.changeData.call( - this, - this.chart, - newConfig, - data - ); - } else { - this.chart && this.chart.changeData(data); - } - - needAfterRender = true; - } - // 传入的长宽有变化 - if (newWidth !== oldWidth || newHeight !== oldHeight) { - this.changeSize(newConfig, newWidth, newHeight); - - needAfterRender = true; - } - - if (needAfterRender) { - this.afterRender(newConfig); - } - } - - // 渲染控制,仅 class、style、children 变化会触发渲染 - // shouldComponentUpdate(nextProps) { - // const { className: newClass, style: newStyle, children: newChild } = nextProps; - // const { className: oldClass, style: oldStyle, children: oldChild } = this.props; - // return newClass !== oldClass || newStyle !== oldStyle || newChild !== oldChild; - // } - - // 准备销毁 - unmountCallbacks = []; - - destroy() { - // 清空缩放相关变量和事件 - this.resizeRunning = false; - window.cancelAnimationFrame(this.resizeTimer); - window.removeEventListener('resize', this.autoResize); - // 清除配置变化重新生成图表的定时器 - window.cancelAnimationFrame(this.reRenderTimer); - // 清除afterRender的定时器 - window.cancelAnimationFrame(this.afterRenderTimer); - - if (this.chartProcess.destroy) { - this.chart && this.chartProcess.destroy.call(this, this.chart); - } - if (this.unmountCallbacks.length > 0) { - this.unmountCallbacks.forEach(cb => { - cb && cb.call(this, this.chart); - }); - } - - this.chart && this.chart.off(); - this.chart && this.chart.destroy && this.chart.destroy(); - this.chart = null; - // this.chartDom = null; - // this.chartId = null; - - if (G2.Util.isFunction(this.props.getChartInstance)) { - this.props.getChartInstance(null); - } - - this.afterRenderCallbacks = []; - this.unmountCallbacks = []; - } - - componentWillUnmount() { - this.destroy(); - - eventBus.off('setTheme', this.rerender); - } - - initChart(props) { - if (this.chartProcess.getDefaultConfig) { - this.defaultConfig = this.chartProcess.getDefaultConfig(); - } - let currentProps = props || this.props; - // 开始初始化图表 - currentProps = this.chartProcess.beforeInit - ? this.chartProcess.beforeInit.call(this, currentProps) - : currentProps; - const { - width = this._size[0], - height = this._size[1] || 200, - data: initData, - padding, - forceFit, - config, - event, - ...otherProps - } = currentProps; - // 生成图表实例 - const chart = new G2.Chart({ - container: this.chartDom, - width, - height, - padding, - forceFit: forceFit || false, - // auto-padding 时自带的内边距 - autoPaddingAppend: 3, - ...otherProps, - }); - - // 预处理数据 - const data = - convertData && - this.chartProcess.convertData !== false && - config.dataType !== 'g2' - ? highchartsDataToG2Data(initData, config, name) - : initData; - this.rawData = initData; - - // 生命绘制逻辑 - chart && this.chartProcess.init.call(this, chart, config, data); - - // 绑定事件,这里透传了G2的所有事件,暂时不做额外封装 - if (chart && event) { - Object.keys(event).forEach(eventKey => { - chart.on(eventKey, event[eventKey]); - }); - } - - this.chart = chart; - - if (G2.Util.isFunction(currentProps.getChartInstance)) { - currentProps.getChartInstance(chart); - } - - this.afterRender(config); - } - - // 初始化时适配高宽 - initSize(props) { - const currentProps = props || this.props; - - const element = this.chartDom; - const parentSize = getParentSize( - element, - currentProps.width, - currentProps.height - ); - this.setSize(parentSize); - - window.addEventListener('resize', this.autoResize); - } - - changeSize(config, w = this._size[0], h = this._size[1]) { - this.setSize([w, h]); - - if (this.chartProcess.changeSize) { - this.chart && - this.chartProcess.changeSize.call(this, this.chart, config, w, h); - } else { - this.chart && this.chart.changeSize(w, h); - } - } - - // 动态适配高宽,利用 resizeRunning 做节流 - resizeRunning = false; - - resizeTimer = null; - - autoResize() { - if (this.resizeRunning) { - // this.resizeRunning = false; - // window.cancelAnimationFrame(this.resizeTimer); - return; - } - - const { chartDom: element, props, _size } = this; - this.resizeRunning = true; - - this.resizeTimer = requestAnimationFrame(() => { - this.resizeRunning = false; - - const parentSize = getParentSize(element, props.width, props.height); - // 读取的高宽需要是有效值,0 也不可以 - if ( - !(parentSize[0] === _size[0] && parentSize[1] === _size[1]) && - parentSize[0] && - parentSize[1] - ) { - this.changeSize(props.config, parentSize[0], parentSize[1]); - - this.afterRender(); - } - }); - } - - // 设置高宽 - setSize(newSize) { - const element = this.chartDom; - this._size = newSize; - - if (newSize[0]) { - element.style.width = `${newSize[0]}px`; - } - if (newSize[1]) { - element.style.height = `${newSize[1]}px`; - } - } - - afterRenderCallbacks = []; - - afterRenderTimer = null; - - afterRender(config) { - if ( - this.chartProcess.afterRender || - this.afterRenderCallbacks.length > 0 - ) { - this.afterRenderTimer = requestAnimationFrame(() => { - if (this.chart && this.chartProcess.afterRender) { - this.chartProcess.afterRender.call( - this, - this.chart, - config || this.props.config - ); - } - if (this.afterRenderCallbacks.length > 0) { - this.afterRenderCallbacks.forEach(cb => { - cb && cb.call(this, this.chart, config || this.props.config); - }); - } - }); - } - } - - render() { - const { - className = '', - style, - children, - data, - width, - height, - padding, - config, - event, - animate, - language, - customChart, - getChartInstance, - enableFunctionUpdate, - ...otherProps - } = this.props; - return ( -
    (this.chartDom = dom)} - id={this.chartId} - key={this.chartId} - className={`${rootClassName + name} ${className}`} - style={style} - {...otherProps}> - {children ? ( -
    {children}
    - ) : null} -
    - ); - } - } - - CloudCharts.propTypes = { - width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - config: PropTypes.object, - data: PropTypes.oneOfType([ - PropTypes.arrayOf(PropTypes.object), - PropTypes.object, - ]).isRequired, - event: PropTypes.object, - forceFit: PropTypes.bool, - }; - - CloudCharts.defaultProps = { - config: {}, - }; - - CloudCharts.isG2Chart = true; - - CloudCharts.displayName = `CloudCharts${name}`; - - CloudCharts.baseClassName = rootClassName + name; - - // 暴露原版类 - CloudCharts.Chart = Chart; - - return CloudCharts; -} - -export default g2Factory; diff --git a/components/common/g2Hacker.js b/components/common/g2Hacker.js deleted file mode 100644 index c5d9e51f..00000000 --- a/components/common/g2Hacker.js +++ /dev/null @@ -1,88 +0,0 @@ -import G2 from '@antv/g2'; -import { pxToNumber } from './common'; -import themes from "../themes"; - -/** - * 在G2初始化前,替换 G.Canvas.getPointByClient 函数,适配CSS缩放的场景。 - * */ -const rawGetPointByClient = G2.G.Canvas.prototype.getPointByClient; -// 由于需要运行时this指针,这个函数不可改为箭头函数。 -G2.G.Canvas.prototype.getPointByClient = function (clientX, clientY) { - // 获取原函数返回的坐标值 - const raw = rawGetPointByClient.call(this, clientX, clientY); - // 获取设定高宽和真实高宽。 - // 当设定的高宽不等于getBoundingClientRect获取的高宽时,说明存在缩放。 - const el = this.get('el'); - const bbox = el.getBoundingClientRect(); - const setWidth = Number(this.get('width')); - const setHeight = Number(this.get('height')); - const { width: realWidth, height: realHeight } = bbox; - // 除以缩放比(真实高宽 / 设定高宽)获得真实的坐标。 - return { - x: raw.x / (realWidth / setWidth), - y: raw.y / (realHeight / setHeight), - }; -}; - -/** - * 在G2初始化前,替换 G2.Chart._getAutoPadding 函数,适配html图例自动计算padding的功能。 - * */ -const rawGet = G2.Chart.prototype._getAutoPadding; -G2.Chart.prototype._getAutoPadding = function () { - // console.log('autoPadding'); - const legendController = this.get('legendController'); - if (legendController && legendController.legends) { - const frontPlot = this.get('frontPlot'); - // 建立新的group专门存放图例占位区 - let legendPlot = this.get('legendPlot'); - if (!legendPlot) { - legendPlot = frontPlot.addGroup(); - this.set('legendPlot', legendPlot); - } else { - // changeData 时清空 legendPlot - legendPlot.clear(); - } - // console.log('before', frontPlot.getBBox()); - const { top, right, bottom, left } = this.get('wrapperEl').getBoundingClientRect(); - // console.log('canvas ', 'top:', top, 'left:', left, 'width:', right - left, 'height:', bottom - top); - const chartWidth = Number(this.get('width')); - const chartHeight = Number(this.get('height')); - const widthRadio = (right - left) / chartWidth; - const heightRadio = (bottom - top) / chartHeight; - const baseFontSize = pxToNumber(themes['widgets-font-size-1']); - // console.log('set ', 'width:', chartWidth, 'height:', chartHeight, widthRadio, heightRadio); - Object.keys(legendController.legends).forEach(function (position) { - const legendPosition = position.split('-')[0] || 'top'; - legendController.legends[position].forEach(function (legend) { - // 通过自定义的属性 paddingIgnore 判断是否需要响应自动计算padding - if (legend.get('useHtml') && legend.get('legendWrapper') && !legend.get('paddingIgnore')) { - const legendRect = legend.get('legendWrapper').getBoundingClientRect(); - const autoCollapse = legend.get('autoCollapse'); - const collapseRow = legend.get('collapseRow'); - // 由于默认开启图例自动折叠,图例高度不高于整个图表高度的 三分之一,这里是一个粗略的估算值 - const legendHeight = (autoCollapse && collapseRow !== 'auto') ? baseFontSize * 2 * Number(collapseRow) : Math.round(chartHeight / 3); - const h = Math.min(legendRect.bottom - legendRect.top, legendHeight); - legendPlot.addShape('rect', { - // visible: false, - attrs: { - x: (legendRect.left - left) / widthRadio, - // 由于 axis label 不计算 auto padding,所以需要单独加上 axis label 的 offset - y: (legendRect.top - top + (legendPosition === 'top' ? -h : (h + baseFontSize * 1.5))) / heightRadio, - width: (legendRect.right - legendRect.left) / widthRadio, - height: h / heightRadio, - lineWidth: 0, - // fill: 'rgba(200, 100, 100, 0.3)', - // stroke: 'red', - // radius: 2 - } - }); - // console.log('legend', 'x:', legendRect.left - left, 'y:', legendRect.top - top + (legendPosition === 'top' ? -h : (h + pxToNumber(themes['widgets-font-size-1']) * 1.5)), 'width:', legendRect.right - legendRect.left, 'height:', h); - } - }); - }); - - // console.log('after', frontPlot.getBBox()); - } - - return rawGet.call(this); -}; diff --git a/components/common/g2Theme.js b/components/common/g2Theme.js deleted file mode 100644 index ef867ce9..00000000 --- a/components/common/g2Theme.js +++ /dev/null @@ -1,359 +0,0 @@ -'use strict'; -import G2 from '@antv/g2'; - -import { pxToNumber } from './common'; - -// 这个需要和 components/common/rectLegend.js 里的设置同步 -export const legendHtmlContainer = {}; -function getLegendHtmlContainer(themes) { - return { - overflow: 'hidden', - fontFamily: themes['widgets-font-family-txd-m-number'], - fontSize: themes['widgets-font-size-1'], - lineHeight: 1, - color: themes['widgets-legend-text'], - userSelect: 'none', - }; -} - -export const legendHtmlList = {}; -function getLegendHtmlList(themes) { - return { - textAlign: '', - }; -} - -// 这个需要和 components/common/rectLegend.js 里的设置同步 -export const legendHtmlListItem = {}; -function getLegendHtmlListItem(themes) { - return { - wordBreak: 'break-all', - marginTop: 0, - marginBottom: themes['widgets-font-size-1'], - marginRight: themes['widgets-font-size-1'], - }; -} - -export const legendHtmlMarker = {}; -function getLegendHtmlMarker(themes) { - const fontSize1 = pxToNumber(themes['widgets-font-size-1']); - return { - width: `${fontSize1 / 2}px`, - height: `${fontSize1 / 2}px`, - marginRight: `${fontSize1 / 3}px`, - verticalAlign: '1px', - }; -} - -export const legendTextStyle = {}; -function getLegendTextStyle(themes) { - return { - fill: themes['widgets-legend-text'], - fontSize: themes['widgets-font-size-1'], - }; -} - -function getG2ThemeConfig(themes) { - const fontSize1 = pxToNumber(themes['widgets-font-size-1']); - - return { - // 线图只有一个数据时显示点 - showSinglePoint: true, - - snapArray: [0, 1, 2, 2.5, 4, 5, 10], - // 指定固定 tick 数的逼近值 - snapCountArray: [0, 1, 1.2, 1.5, 1.6, 2, 2.2, 2.4, 2.5, 3, 4, 5, 6, 7.5, 8, 10], - - // 宽度所占的分类的比例 - // widthRatio: { - // // 一般的柱状图占比 1/2 - // column(count, isDodge) { - // console.log('widthRatio', count, isDodge); - // if (isDodge) { - // return Math.max(1 - count * 0.1, 0.5); - // } else if (count > 10) { - // return Math.min(count / 2 * 0.1, 0.8); - // } else { - // return Math.min(count * 0.1, 0.5); - // } - // }, - // // rose: 0.9999999, // 玫瑰图柱状占比 1 - // // multiplePie: 1 / 1.3 // 多层的饼图、环图 - // }, - - // animate: false, - // colors: { - // 'default': COLORS - // }, - shape: { - line: { - lineWidth: 2, - }, - area: { - fillOpacity: themes['widgets-shape-area-opacity'], - }, - interval: { - fillOpacity: themes['widgets-shape-interval-opacity'], - }, - }, - label: { - textStyle: { - fill: themes['widgets-label-text'], - fontSize: fontSize1, - fontFamily: themes['widgets-font-family-txd-r-number'], - }, - }, - innerLabels: { - textStyle: { - fill: themes['widgets-label-text'], - fontSize: fontSize1, - fontFamily: themes['widgets-font-family-txd-r-number'], - }, - }, - axis: { - bottom: { - title: { - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, - }, - label: { - offset: fontSize1 * 1.5, - autoRotate: false, - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, // 底部标签文本的颜色 - }, - line: { - stroke: themes['widgets-axis-line'], - }, - tickLine: null, - }, - left: { - title: { - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, - }, - label: { - offset: fontSize1 * 2 / 3, - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, // 左部标签文本的颜色 - }, - grid: { - // 让grid在轴线的下方 - zIndex: -1, - lineStyle: { - stroke: themes['widgets-axis-grid'], - lineWidth: 1, - lineDash: null, - }, - zeroLineStyle: { - stroke: themes['widgets-axis-line'], - }, - }, - }, - right: { - title: { - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, - }, - label: { - offset: fontSize1 * 2 / 3, - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, // 右部标签文本的颜色 - }, - }, - circle: { - label: { - offset: fontSize1 * 2 / 3, - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, // 底部标签文本的颜色 - }, - line: { - stroke: themes['widgets-axis-line'], - }, - tickLine: null, - grid: { - lineStyle: { - stroke: themes['widgets-axis-line'], - }, - }, - }, - radius: { - label: { - offset: fontSize1 * 2 / 3, - textStyle: { - fontSize: fontSize1, - fill: themes['widgets-axis-label'], - fontFamily: themes['widgets-font-family-txd-r-number'], - }, // 底部标签文本的颜色 - }, - line: { - stroke: themes['widgets-axis-line'], - }, - tickLine: null, - grid: { - lineStyle: { - stroke: themes['widgets-axis-line'], - }, - }, - }, - }, - tooltip: { - offset: 8, - crossLine: { - stroke: themes['widgets-tooltip-cross-line'], - // lineWidth: 1, - }, - 'g2-tooltip': { - backgroundColor: themes['widgets-tooltip-background'], - boxShadow: themes['widgets-tooltip-shadow'], - padding: themes['widgets-tooltip-padding'], - borderRadius: themes['widgets-tooltip-corner-radius'], - fontFamily: themes['widgets-font-family-txd-m-number'], - fontSize: themes['widgets-font-size-1'], - lineHeight: 1, - color: themes['widgets-tooltip-text'], - textAlign: 'left', - }, - 'g2-tooltip-title': { - marginBottom: 0, - color: themes['widgets-tooltip-title'], - }, - 'g2-tooltip-list': {}, - 'g2-tooltip-list-item': { - marginBottom: 0, - marginTop: `${fontSize1 * 2 / 3}px`, - listStyle: 'none', - }, - 'g2-tooltip-marker': { - width: `${fontSize1 / 2}px`, - height: `${fontSize1 / 2}px`, - border: 'none', - marginRight: `${fontSize1 / 3}px`, - }, - // 如果修改了 tooltip.itemTpl 这里的调整会无效 - 'g2-tooltip-value': { - marginLeft: `${fontSize1 * 2 / 3}px`, - }, - }, - tooltipMarker: { - stroke: themes['widgets-tooltip-marker-fill'], - // 如果要让 shadowColor 显示为对应数据颜色,需要 delete G2.Global.tooltipMarker.shadowColor; - radius: 4, - // lineWidth: 2, - }, - tooltipCrosshairsRect: { - style: { - fill: themes['widgets-tooltip-cross-react'], - opacity: themes['widgets-tooltip-cross-react-opacity'], - }, - }, - tooltipCrosshairsLine: { - style: { - stroke: themes['widgets-tooltip-cross-line'], - lineWidth: 1, - }, - }, - legend: { - top: { - textStyle: { - fill: themes['widgets-legend-text'], - }, - unCheckColor: themes['widgets-legend-uncheck'], - }, - right: { - textStyle: { - fill: themes['widgets-legend-text'], - }, - unCheckColor: themes['widgets-legend-uncheck'], - }, - bottom: { - textStyle: { - fill: themes['widgets-legend-text'], - }, - unCheckColor: themes['widgets-legend-uncheck'], - }, - left: { - textStyle: { - fill: themes['widgets-legend-text'], - }, - unCheckColor: themes['widgets-legend-uncheck'], - }, - html: { - // 注意! 这个需要和 wmap 中的 G2Map.scss .cloud-charts-map-legend 的样式一致 - 'g2-legend': legendHtmlContainer, - 'g2-legend-list': legendHtmlList, - 'g2-legend-list-item': legendHtmlListItem, - 'g2-legend-marker': legendHtmlMarker, - }, - }, - guide: { - line: { - lineStyle: { - stroke: themes['widgets-color-blue'], - }, - text: { - autoRotate: false, - style: { - fill: themes['widgets-color-blue'], - fontSize: fontSize1, - fontFamily: themes['widgets-font-family-txd-m-number'], - }, - }, - }, - region: { - style: { - fill: themes['widgets-color-blue'], // 辅助框填充的颜色 - fillOpacity: themes['widgets-guide-region-opacity'], // 辅助框的背景透明度 - }, // 辅助框的图形样式属性 - }, - text: { - style: { - fill: themes['widgets-color-blue'], - fontSize: fontSize1, - fontFamily: themes['widgets-font-family-txd-m-number'], - } - }, - }, - }; -} - -// 设置全局G2主题 -export default function setG2Theme(themes) { - Object.assign(legendHtmlContainer, getLegendHtmlContainer(themes)); - Object.assign(legendHtmlList, getLegendHtmlList(themes)); - Object.assign(legendHtmlListItem, getLegendHtmlListItem(themes)); - Object.assign(legendHtmlMarker, getLegendHtmlMarker(themes)); - Object.assign(legendTextStyle, getLegendTextStyle(themes)); - - const theme = G2.Util.deepMix({}, G2.Global, getG2ThemeConfig(themes)); - - // 设置屏幕dpi缩放(如果有效的话) - if (window && window.devicePixelRatio) { - theme.pixelRatio = window.devicePixelRatio; - } - - // 将主题设置为自定义的主题 - G2.Global.setTheme(theme); -} - diff --git a/components/common/geomSize.js b/components/common/geomSize.js deleted file mode 100644 index 8ed86ee8..00000000 --- a/components/common/geomSize.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -import G2 from '@antv/g2'; - -/** - * getGeomSizeConfig 获取图形元素 size 属性的配置项 - * - * @param sizeConfig 用户设置的 size 配置项 - * @param defaultValue 默认值 - * @param {string} arrayKey 配置项为数组时映射的数据key - * @param {string} functionKey 配置项为函数时映射的数据key - * - * @return {Array} 配置项数组,直接展开到 G2 的 size 函数中即可 - * */ -export default function getGeomSizeConfig(sizeConfig, defaultValue, arrayKey, functionKey) { - // 默认直接传入 sizeConfig 或 defaultValue - let result = [sizeConfig || defaultValue]; - if (Array.isArray(sizeConfig)) { - // 数组,传入key进行大小映射 - result = [arrayKey, sizeConfig]; - } else if (G2.Util.isFunction(sizeConfig)) { - // 函数,传入key映射到函数参数中 - result = [functionKey, sizeConfig]; - } else if (typeof sizeConfig === 'object') { - // 对象,完全自定义 field 和 param - result = [sizeConfig.field, sizeConfig.param]; - } - return result; -} diff --git a/components/common/label.js b/components/common/label.js deleted file mode 100644 index f0b363b9..00000000 --- a/components/common/label.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict'; - -import themes from '../themes/index'; -import { pxToNumber, isInvalidNumber } from './common'; -import merge from './merge'; - -/** - * 图形元素label设置。 - * - * @param {object} geom 图形元素对象 - * @param {object} config 图表配置项 - * @param {string} [field] 映射数据的字段,默认为y - * @param {object} [componentConfig] 图表额外配置项 - * @param {string} [extraConfigKey] 额外配置项的key,会在 config.label 的基础上额外扩展,且配置优先级高于默认的 label - * - * */ - -const defaultConfigKey = 'label'; - -export default function ( - geom, - config, - field = 'y', - componentConfig, - extraConfigKey, - useCustomOffset = false, -) { - let configLabel = config[defaultConfigKey]; - if (extraConfigKey && config[extraConfigKey] !== undefined) { - configLabel = config[extraConfigKey]; - } - // const configKey = extraConfigKey || defaultConfigKey; - if (configLabel === false || (configLabel && configLabel.visible === false)) { - return; - } - - const { - type = 'default', - position = 'top', - offset, - autoRotate = true, - labelFormatter = null, - customConfig, - style, - textStyle, - } = configLabel || {}; - const labelConfig = { - type, - position, - // 默认距离 4,加上文字一半的大小以居中,转换为字号 12/3 + 12/2 = 12 * 5/6 - offset: (pxToNumber(themes['widgets-font-size-1']) * 5) / 6, - autoRotate, - formatter: labelFormatter, - style, - textStyle, - }; - - if (position === 'middle') { - labelConfig.offset = 0; - } - - if (componentConfig) { - Object.assign(labelConfig, componentConfig); - } - - if (!isInvalidNumber(offset)) { - labelConfig.offset += Number(offset); - } - - if (customConfig) { - merge(labelConfig, customConfig); - } - - if (useCustomOffset) { - labelConfig.offset = Number(offset); - } - - geom.label(field, labelConfig); -} diff --git a/components/common/legendFilter.js b/components/common/legendFilter.js deleted file mode 100644 index 086b2835..00000000 --- a/components/common/legendFilter.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -/** - * 图例变灰设置。 - * - * @param {object} chart 图表对象,或者是view对象 - * @param {object} config 图表配置项 - * @param {string} [dataKey] 原始数据挂载的key,用于动态获取原始数据 - * - * */ -export default function (chart, config, dataKey = 'rawData') { - /* - * indexOrData 有两种可能类型,一种是数字,一种是对象。 - * 2019-04-15 在新版本G2中变为: undefined 或者 对象 - * 当传入 undefined 时,与旧版的数字对应,是对图例项显示控制的过滤。 - * 当类型是数字时,是对图例项显示控制的过滤。 - * 当类型是对象时,是对渲染数据的过滤。 - * 只有当两者匹配时,图例过滤功能才完整。 - * 即使关闭图例也有过滤功能,因为可能有外部控制图例开关 - * */ - chart.filter('type', (type, indexOrData) => { - const rawData = this[dataKey] || []; - // 类型数字,是图例项对应的index,且有对应的原始数据项 - if (!isNaN(indexOrData) && rawData[indexOrData] && rawData[indexOrData].visible === false) { - return false; - // 剩余情况是对象,是数据项过滤 - } else if (typeof indexOrData === 'object' && indexOrData.visible === false) { - return false; - // 新版中indexOrData是undefined,只传入了type - } else if (!indexOrData) { - const dataItem = rawData.filter(group => group.name === type); - if (dataItem[0] && dataItem[0].visible === false) { - return false; - } - } - return true; - }); -} diff --git a/components/common/merge.js b/components/common/merge.js deleted file mode 100644 index e7e71057..00000000 --- a/components/common/merge.js +++ /dev/null @@ -1,2207 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; - -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - weakMapTag = '[object WeakMap]'; - -var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - -/** Used to match `RegExp` flags from their coerced string values. */ -var reFlags = /\w*$/; - -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** Used to detect unsigned integer values. */ -var reIsUint = /^(?:0|[1-9]\d*)$/; - -/** Used to identify `toStringTag` values of typed arrays. */ -var typedArrayTags = {}; -typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = -typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = -typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = -typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = -typedArrayTags[uint32Tag] = true; -typedArrayTags[argsTag] = typedArrayTags[arrayTag] = -typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = -typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = -typedArrayTags[errorTag] = typedArrayTags[funcTag] = -typedArrayTags[mapTag] = typedArrayTags[numberTag] = -typedArrayTags[objectTag] = typedArrayTags[regexpTag] = -typedArrayTags[setTag] = typedArrayTags[stringTag] = -typedArrayTags[weakMapTag] = false; - -/** Used to identify `toStringTag` values supported by `_.clone`. */ -var cloneableTags = {}; -cloneableTags[argsTag] = cloneableTags[arrayTag] = -cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = -cloneableTags[boolTag] = cloneableTags[dateTag] = -cloneableTags[float32Tag] = cloneableTags[float64Tag] = -cloneableTags[int8Tag] = cloneableTags[int16Tag] = -cloneableTags[int32Tag] = cloneableTags[mapTag] = -cloneableTags[numberTag] = cloneableTags[objectTag] = -cloneableTags[regexpTag] = cloneableTags[setTag] = -cloneableTags[stringTag] = cloneableTags[symbolTag] = -cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = -cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; -cloneableTags[errorTag] = cloneableTags[funcTag] = -cloneableTags[weakMapTag] = false; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); - -/** Detect free variable `exports`. */ -var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - -/** Detect free variable `module`. */ -var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - -/** Detect the popular CommonJS extension `module.exports`. */ -var moduleExports = freeModule && freeModule.exports === freeExports; - -/** Detect free variable `process` from Node.js. */ -var freeProcess = moduleExports && freeGlobal.process; - -/** Used to access faster Node.js helpers. */ -var nodeUtil = (function() { - try { - return freeProcess && freeProcess.binding('util'); - } catch (e) {} -}()); - -/* Node.js helper references. */ -var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - -/** - * Adds the key-value `pair` to `map`. - * - * @private - * @param {Object} map The map to modify. - * @param {Array} pair The key-value pair to add. - * @returns {Object} Returns `map`. - */ -function addMapEntry(map, pair) { - // Don't return `map.set` because it's not chainable in IE 11. - map.set(pair[0], pair[1]); - return map; -} - -/** - * Adds `value` to `set`. - * - * @private - * @param {Object} set The set to modify. - * @param {*} value The value to add. - * @returns {Object} Returns `set`. - */ -function addSetEntry(set, value) { - // Don't return `set.add` because it's not chainable in IE 11. - set.add(value); - return set; -} - -/** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ -function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); -} - -/** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ -function arrayEach(array, iteratee) { - var index = -1, - length = array ? array.length : 0; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; -} - -/** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ -function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; -} - -/** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ -function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array ? array.length : 0; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; -} - -/** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ -function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; -} - -/** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ -function baseUnary(func) { - return function(value) { - return func(value); - }; -} - -/** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ -function getValue(object, key) { - return object == null ? undefined : object[key]; -} - -/** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ -function isHostObject(value) { - // Many host objects are `Object` objects that can coerce to strings - // despite having improperly defined `toString` methods. - var result = false; - if (value != null && typeof value.toString != 'function') { - try { - result = !!(value + ''); - } catch (e) {} - } - return result; -} - -/** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ -function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; -} - -/** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ -function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; -} - -/** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} - -/** Used for built-in method references. */ -var arrayProto = Array.prototype, - funcProto = Function.prototype, - objectProto = Object.prototype; - -/** Used to detect overreaching core-js shims. */ -var coreJsData = root['__core-js_shared__']; - -/** Used to detect methods masquerading as native. */ -var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; -}()); - -/** Used to resolve the decompiled source of functions. */ -var funcToString = funcProto.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** Used to infer the `Object` constructor. */ -var objectCtorString = funcToString.call(Object); - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** Built-in value references. */ -var Buffer = moduleExports ? root.Buffer : undefined, - Symbol = root.Symbol, - Uint8Array = root.Uint8Array, - getPrototype = overArg(Object.getPrototypeOf, Object), - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeGetSymbols = Object.getOwnPropertySymbols, - nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max; - -/* Built-in method references that are verified to be native. */ -var DataView = getNative(root, 'DataView'), - Map = getNative(root, 'Map'), - Promise = getNative(root, 'Promise'), - Set = getNative(root, 'Set'), - WeakMap = getNative(root, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - -/** Used to detect maps, sets, and weakmaps. */ -var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; - -/** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Hash(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ -function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; -} - -/** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(key) { - return this.has(key) && delete this.__data__[key]; -} - -/** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; -} - -/** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); -} - -/** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ -function hashSet(key, value) { - var data = this.__data__; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; -} - -// Add methods to `Hash`. -Hash.prototype.clear = hashClear; -Hash.prototype['delete'] = hashDelete; -Hash.prototype.get = hashGet; -Hash.prototype.has = hashHas; -Hash.prototype.set = hashSet; - -/** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function ListCache(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; -} - -/** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - return true; -} - -/** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; -} - -/** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; -} - -/** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ -function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; -} - -// Add methods to `ListCache`. -ListCache.prototype.clear = listCacheClear; -ListCache.prototype['delete'] = listCacheDelete; -ListCache.prototype.get = listCacheGet; -ListCache.prototype.has = listCacheHas; -ListCache.prototype.set = listCacheSet; - -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function MapCache(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ -function mapCacheClear() { - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; -} - -/** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapCacheDelete(key) { - return getMapData(this, key)['delete'](key); -} - -/** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapCacheGet(key) { - return getMapData(this, key).get(key); -} - -/** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function mapCacheHas(key) { - return getMapData(this, key).has(key); -} - -/** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ -function mapCacheSet(key, value) { - getMapData(this, key).set(key, value); - return this; -} - -// Add methods to `MapCache`. -MapCache.prototype.clear = mapCacheClear; -MapCache.prototype['delete'] = mapCacheDelete; -MapCache.prototype.get = mapCacheGet; -MapCache.prototype.has = mapCacheHas; -MapCache.prototype.set = mapCacheSet; - -/** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Stack(entries) { - this.__data__ = new ListCache(entries); -} - -/** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ -function stackClear() { - this.__data__ = new ListCache; -} - -/** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function stackDelete(key) { - return this.__data__['delete'](key); -} - -/** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function stackGet(key) { - return this.__data__.get(key); -} - -/** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function stackHas(key) { - return this.__data__.has(key); -} - -/** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ -function stackSet(key, value) { - var cache = this.__data__; - if (cache instanceof ListCache) { - var pairs = cache.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - return this; - } - cache = this.__data__ = new MapCache(pairs); - } - cache.set(key, value); - return this; -} - -// Add methods to `Stack`. -Stack.prototype.clear = stackClear; -Stack.prototype['delete'] = stackDelete; -Stack.prototype.get = stackGet; -Stack.prototype.has = stackHas; -Stack.prototype.set = stackSet; - -/** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ -function arrayLikeKeys(value, inherited) { - // Safari 8.1 makes `arguments.callee` enumerable in strict mode. - // Safari 9 makes `arguments.length` enumerable in strict mode. - var result = (isArray(value) || isArguments(value)) - ? baseTimes(value.length, String) - : []; - - var length = result.length, - skipIndexes = !!length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && (key == 'length' || isIndex(key, length)))) { - result.push(key); - } - } - return result; -} - -/** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ -function assignMergeValue(object, key, value) { - if ((value !== undefined && !eq(object[key], value)) || - (typeof key == 'number' && value === undefined && !(key in object))) { - object[key] = value; - } -} - -/** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ -function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - object[key] = value; - } -} - -/** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; -} - -/** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ -function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); -} - -/** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {boolean} [isFull] Specify a clone including symbols. - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ -function baseClone(value, isDeep, isFull, customizer, key, object, stack) { - var result; - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - if (isHostObject(value)) { - return object ? value : {}; - } - result = initCloneObject(isFunc ? {} : value); - if (!isDeep) { - return copySymbols(value, baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, baseClone, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - - if (!isArr) { - var props = isFull ? getAllKeys(value) : keys(value); - } - arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack)); - }); - return result; -} - -/** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. - */ -function baseCreate(proto) { - return isObject(proto) ? objectCreate(proto) : {}; -} - -/** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); -} - -/** - * The base implementation of `getTag`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function baseGetTag(value) { - return objectToString.call(value); -} - -/** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ -function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); -} - -/** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ -function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[objectToString.call(value)]; -} - -/** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; -} - -/** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; -} - -/** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ -function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - if (!(isArray(source) || isTypedArray(source))) { - var props = baseKeysIn(source); - } - arrayEach(props || source, function(srcValue, key) { - if (props) { - key = srcValue; - srcValue = source[key]; - } - if (isObject(srcValue)) { - stack || (stack = new Stack); - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } - else { - var newValue = customizer - ? customizer(object[key], srcValue, (key + ''), object, source, stack) - : undefined; - - if (newValue === undefined) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }); -} - -/** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ -function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = object[key], - srcValue = source[key], - stacked = stack.get(srcValue); - - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer - ? customizer(objValue, srcValue, (key + ''), object, source, stack) - : undefined; - - var isCommon = newValue === undefined; - - if (isCommon) { - newValue = srcValue; - if (isArray(srcValue) || isTypedArray(srcValue)) { - if (isArray(objValue)) { - newValue = objValue; - } - else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } - else { - isCommon = false; - newValue = baseClone(srcValue, true); - } - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } - else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { - isCommon = false; - newValue = baseClone(srcValue, true); - } - else { - newValue = objValue; - } - } - else { - isCommon = false; - } - } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - assignMergeValue(object, key, newValue); -} - -/** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ -function baseRest(func, start) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = array; - return apply(func, this, otherArgs); - }; -} - -/** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ -function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var result = new buffer.constructor(buffer.length); - buffer.copy(result); - return result; -} - -/** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ -function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; -} - -/** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ -function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); -} - -/** - * Creates a clone of `map`. - * - * @private - * @param {Object} map The map to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned map. - */ -function cloneMap(map, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map); - return arrayReduce(array, addMapEntry, new map.constructor); -} - -/** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ -function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; -} - -/** - * Creates a clone of `set`. - * - * @private - * @param {Object} set The set to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned set. - */ -function cloneSet(set, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set); - return arrayReduce(array, addSetEntry, new set.constructor); -} - -/** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ -function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; -} - -/** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ -function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); -} - -/** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ -function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; -} - -/** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ -function copyObject(source, props, object, customizer) { - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; - - assignValue(object, key, newValue === undefined ? source[key] : newValue); - } - return object; -} - -/** - * Copies own symbol properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ -function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); -} - -/** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ -function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined, - guard = length > 2 ? sources[2] : undefined; - - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); -} - -/** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ -function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); -} - -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ -function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; -} - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; -} - -/** - * Creates an array of the own enumerable symbol properties of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ -var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray; - -/** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -var getTag = baseGetTag; - -// Fallback for data views, maps, sets, and weak maps in IE 11, -// for data views in Edge < 14, and promises in Node.js. -if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = objectToString.call(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : undefined; - - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; -} - -/** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ -function initCloneArray(array) { - var length = array.length, - result = array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; -} - -/** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ -function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototype(object)) - : {}; -} - -/** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ -function initCloneByTag(object, tag, cloneFunc, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case dataViewTag: - return cloneDataView(object, isDeep); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return cloneMap(object, isDeep, cloneFunc); - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return cloneSet(object, isDeep, cloneFunc); - - case symbolTag: - return cloneSymbol(object); - } -} - -/** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ -function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); -} - -/** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ -function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; -} - -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); -} - -/** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ -function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); -} - -/** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ -function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; -} - -/** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; -} - -/** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to process. - * @returns {string} Returns the source code. - */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; -} - -/** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ -function eq(value, other) { - return value === other || (value !== value && other !== other); -} - -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -function isArguments(value) { - // Safari 8.1 makes `arguments.callee` enumerable in strict mode. - return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && - (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); -} - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ -var isArray = Array.isArray; - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); -} - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); -} - -/** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ -var isBuffer = nativeIsBuffer || stubFalse; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8-9 which returns 'object' for typed array and other constructors. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * @static - * @memberOf _ - * @since 0.8.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ -function isPlainObject(value) { - if (!isObjectLike(value) || - objectToString.call(value) != objectTag || isHostObject(value)) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return (typeof Ctor == 'function' && - Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString); -} - -/** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ -var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - -/** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ -function toPlainObject(value) { - return copyObject(value, keysIn(value)); -} - -/** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ -function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); -} - -/** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ -function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); -} - -/** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ -var merge = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); -}); - -/** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] - * - * console.log(arrays[0] === arrays[1]); - * // => false - */ -function stubArray() { - return []; -} - -/** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ -function stubFalse() { - return false; -} - -module.exports = merge; diff --git a/components/common/rectAutoTickCount.js b/components/common/rectAutoTickCount.js deleted file mode 100644 index c60d906a..00000000 --- a/components/common/rectAutoTickCount.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - -import themes from '../themes/index'; -import { pxToNumber, isInvalidNumber } from './common'; - -/** - * 直角坐标系自动计算标签个数 - * @param chart {object} G2图表实例 - * @param config {object} 图表配置项 - * @param defs {object} 数据列定义 - * @param transpose {boolean} 坐标系是否翻转,翻转后使用宽度计算Y轴,高度计算X轴 - * */ -export default function (chart, config, defs, transpose) { - // X轴&Y轴对应的长度 - const xLen = transpose ? chart.get('height') : chart.get('width'); - const yLen = transpose ? chart.get('width') : chart.get('height'); - - // 坐标系不翻转时为横向,翻转时为纵向 - computerAxis(chart, config.xAxis, defs.x, transpose, xLen); - - // 坐标系不翻转时为纵向,翻转时为横向 - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - computerAxis(chart, axis, defs[`y${yIndex}`], !transpose, yLen); - }); - } else { - computerAxis(chart, config.yAxis, defs.y, !transpose, yLen); - } -} - -// 计算口径 horizontal 横向 ? vertical 纵向 -function computerAxis(chart, axisConfig, def, isVertical, len) { - // 轴设定为不显示 或 tickCount 不是 auto 时,跳过 - if (axisConfig === false || (axisConfig && axisConfig.visible === false) || axisConfig.tickCount !== 'auto') { - return; - } - - let labelFontSize = pxToNumber(themes['widgets-font-size-1']); - if ( - axisConfig.customConfig && - axisConfig.customConfig.label && - axisConfig.customConfig.label.textStyle && - axisConfig.customConfig.label.textStyle.fontSize - ) { - labelFontSize = convertFontSize(axisConfig.customConfig.label.textStyle.fontSize); - } - - let tickCount = 0; - - if (isVertical) { - // 纵向,使用高度计算,除数为 一倍的字体大小 + 三分之四倍字号作为间距 - // TODO 需要减去上下padding - tickCount = Math.max(Math.floor((len - 20) / (labelFontSize * 8 / 3)), 2); - } else if (def.type === 'time' || def.type === 'timeCat') { - // 横向,使用宽度计算,仅支持time类型,取mask的字符长度 * 0.5倍字号作为标签宽度,再乘1.5倍作为除数 - const labelWidth = (def.mask || 'YYYY-MM-DD HH:mm:ss').length * labelFontSize / 2; - tickCount = Math.max(Math.floor(len / (labelWidth * 3 / 2)), 2); - } - - if (tickCount) { - // console.log(tickCount); - def.tickCount = tickCount; - } -} - -function convertFontSize(fontSize) { - let size = fontSize; - if (typeof size === 'string') { - size = size.replace('px', ''); - } - if (isInvalidNumber(size)) { - return pxToNumber(themes['widgets-font-size-1']); - } else { - return Number(size); - } -} diff --git a/components/common/rectLegend.js b/components/common/rectLegend.js deleted file mode 100644 index b9e8b512..00000000 --- a/components/common/rectLegend.js +++ /dev/null @@ -1,446 +0,0 @@ -'use strict'; - -import themes from '../themes/index'; -import { pxToNumber, isInvalidNumber } from './common'; -import merge from './merge'; -import { legendHtmlContainer, legendHtmlList, legendHtmlListItem, legendHtmlMarker, legendTextStyle } from './g2Theme'; - -/* -* 提取渐变色中的第一个颜色,具体逻辑来自 G2 内部 -* */ -// const regexTags = /[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/ig; -// const regexDot = /[^\s\,]+/ig; -const regexLG = /^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i; -const regexRG = /^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i; -// const regexPR = /^p\s*\(\s*([axyn])\s*\)\s*(.*)/i; -const regexColorStop = /[\d.]+:(#[^\s]+|[^\)]+\))/ig; - -// 取匹配出来的第一个颜色 -function getFirstStop(steps) { - return steps.match(regexColorStop)[0].split(':')[1]; -} -function getColor(color) { - if (color[1] === '(' || color[2] === '(') { - if (color[0] === 'l') { - // 线性 regexLG.test(color) - return getFirstStop(regexLG.exec(color)[2]); - } else if (color[0] === 'r') { - // 径向 regexRG.test(color) - return getFirstStop(regexRG.exec(color)[4]); - } else if (color[0] === 'p') { - // regexPR.test(color) - // return parsePattern(color, self, context); - } - } - return color; -} - -/** - * rectLegend 直角坐标系legend配置。 - * - * @param {Chart} chart 图表实例 - * @param {Object} config 配置项 - * @param {Object} componentConfig 组件的自定义配置 - * @param {boolean} isOneDataGroup 数据是否为单组形式,类似饼图和漏斗图 - * @param {string} field 数据映射字段 - * */ -export default function (chart, config, componentConfig, isOneDataGroup, field) { - // 设置图例 - if (config.legend === false || (config.legend && config.legend.visible === false)) { - chart.legend(false); - } else { - const { - // 自动折叠图例 - autoCollapse = true, - collapseRow = 'auto', - // 图例位置 - position = 'top', - align, - // 格式化函数 - nameFormatter, - valueFormatter, - showData, - // 交互相关 - allowAllCanceled = false, - hoverable = false, - onHover = null, - clickable = true, - onClick = null, - defaultClickBehavior = true, - // 自定义配置 - customConfig, - style = {}, - } = config.legend || {}; - - // 因为图例项有下边距,所以bottom设置为0即可 - const legendStyle = Object.assign({}, legendHtmlContainer); - const legendItemStyle = Object.assign({}, legendHtmlListItem); - if (position === 'bottom') { - legendStyle.bottom = 0; - legendStyle.overflow = 'visible'; - // 置于下方时设置margin top - legendItemStyle.marginBottom = 0; - legendItemStyle.marginTop = themes['widgets-font-size-1'] - } else { - legendStyle.top = 0; - } - if (align === 'right') { - legendStyle.right = 0; - legendStyle.textAlign = 'right'; - } else if (align === 'left') { - legendStyle.left = 0; - } else if (align === 'center') { - legendStyle.left = 0; - legendStyle.width = '100%'; - legendStyle.textAlign = 'center'; - } else { - // 默认放到左边 - legendStyle.left = 0; - } - - const legendConfig = { - // 这些是widgets特有的属性 - autoCollapse, - collapseRow, - // 以下为g2的属性 - useHtml: true, - title: null, - position: position || 'top', - allowAllCanceled, - // 这个属性文档里没有,设置为false可以让图例不居中,再手动设置定位样式 - autoPosition: false, - hoverable, - onHover, - clickable, - onClick, - // 隐藏属性,设置了 onClick 时依然保留默认点击行为 - defaultClickHandlerEnabled: defaultClickBehavior, - itemTpl: (value, color, checked, index) => { - const item = getRawData(config, this.rawData, value, isOneDataGroup); - - const newName = nameFormatter ? nameFormatter(value, { - ...item, - color, - checked, - }, index) : value; - - if (showData) { - const dataValue = getDataValue(item.data); - const newValue = valueFormatter ? valueFormatter(dataValue, { - ...item, - color, - checked, - }, index) : dataValue; - - return `${'
  • ' + - `` + - ''}${newName}${newValue}
  • `; - } - - return `${'
  • ' + - `` + - ''}${newName}
  • `; - }, - 'g2-legend': legendStyle, - 'g2-legend-list': Object.assign({}, legendHtmlList), - 'g2-legend-list-item': legendItemStyle, - 'g2-legend-marker': Object.assign({}, legendHtmlMarker), - textStyle: Object.assign({}, legendTextStyle), - }; - - if (componentConfig) { - // 内部的componentConfig直接使用assign浅复制,方便覆盖。 - Object.assign(legendConfig, componentConfig); - } - - if (customConfig) { - merge(legendConfig, customConfig); - } - - if (legendConfig['g2-legend'] && typeof legendConfig['g2-legend'] === 'object') { - Object.keys(style).forEach((key) => { - // 确保每一项有值设置了,如果是假值则忽略 - if (style[key]) { - // hack 字号转化为 px - if (key === 'fontSize' && !isInvalidNumber(style[key])) { - legendConfig['g2-legend'][key] = `${style[key]}px`; - } else { - legendConfig['g2-legend'][key] = style[key]; - } - // fix: 新版G2后,图例文字颜色的设置需要注入 textStyle 中才能生效。 - if (key === 'color' && legendConfig.textStyle && typeof legendConfig.textStyle === 'object') { - legendConfig.textStyle.fill = style[key]; - } - } - }); - // Object.assign(legendConfig['g2-legend'], style); - } - - if (field) { - // fix: 修复 legend 设置了 field 后,内部 options 变为 { [field]: options },无法读取 onClick 的问题 - if (onClick) { - chart.legend({ - onClick, - // 隐藏属性,设置了 onClick 时依然保留默认点击行为 - defaultClickHandlerEnabled: defaultClickBehavior, - }); - } - chart.legend(field, legendConfig); - } else { - chart.legend(legendConfig); - } - - if (this.afterRenderCallbacks && legendConfig.autoCollapse) { - const legendCollapseInfo = legendCollapse.call(this, legendConfig); - this.afterRenderCallbacks.push(legendCollapseInfo.render); - - if (this.unmountCallbacks) { - this.unmountCallbacks.push(legendCollapseInfo.unmount); - } - } - } -} - -function getRawData(config, rawData, name, isOneDataGroup) { - if (!rawData) { - return {}; - } - - if (isOneDataGroup) { - const originData = rawData[0] || {}; - let result = {}; - - originData.data.some((r) => { - if ((Array.isArray(r) && r[0] === name) || (typeof r === 'object' && r.x === name)) { - result = r; - return true; - } - return false; - }); - - if (Array.isArray(result)) { - result = { - data: result, - }; - } - - return result; - } - - let originData = {}; - if (config.dataType !== 'g2') { - rawData.some((r) => { - if (r.name === name) { - originData = r; - return true; - } - return false; - }); - } - - return originData; -} - -function getDataValue(data) { - if (!Array.isArray(data)) { - return '-'; - } - - for (let i = 0; i < data.length; i++) { - // 单组数据时,如饼图/漏斗图,data[i] 不是数组/对象 - if (typeof data[i] !== 'object' && i === 1) { - return data[i]; - } - if (i === data.length - 1) { - if (Array.isArray(data[i])) { - return data[i][1]; - } - if (typeof data[i] === 'object') { - return data[i].y; - } - } - } -} - -function legendCollapse(legendConfig) { - let { collapseRow = 2 } = legendConfig; - let collapseInstance = null; - return { - render(chart, config) { - if (config.legend !== false && this.chartDom) { - const legendWrapperDom = this.chartDom.querySelector('.g2-legend'); - const legendListDom = this.chartDom.querySelector('.g2-legend-list'); - const legendListItemDom = this.chartDom.querySelector('.g2-legend-list-item'); - - if (!legendWrapperDom || !legendListDom || !legendListItemDom) { - return; - } - - const itemStyle = window.getComputedStyle(legendListItemDom); - const marginTop = pxToNumber(itemStyle.getPropertyValue('margin-top')); - const marginBottom = pxToNumber(itemStyle.getPropertyValue('margin-bottom')); - const itemHeight = legendListItemDom.offsetHeight + marginTop + marginBottom; - const wrapperHeight = legendWrapperDom.offsetHeight; - - // 自动适配图例折叠高度 - if (collapseRow === 'auto') { - const chartHeight = this._size && this._size[1]; - if (chartHeight) { - // 行数最多占图表高度的三分之一,最小为2。 - collapseRow = Math.max(2, Math.round((chartHeight / itemHeight) / 3)); - } - } else { - collapseRow = Number(collapseRow); - } - - if (wrapperHeight > itemHeight * collapseRow) { - if (!collapseInstance) { - collapseInstance = new Collapse(legendWrapperDom, legendListDom, { - wrapperHeight, - itemHeight, - collapseRow, - collapseTop: marginTop, - collapseBottom: marginBottom, - }); - } else if (collapseInstance.dom !== legendWrapperDom || collapseInstance.listDom !== legendListDom) { - // 重新渲染后,dom节点可能已经改变,销毁重建 - collapseInstance.destroy(); - - collapseInstance = new Collapse(legendWrapperDom, legendListDom, { - wrapperHeight, - itemHeight, - collapseRow, - collapseTop: marginTop, - collapseBottom: marginBottom, - }); - } - - collapseInstance.start({ collapseRow }); - } else if (collapseInstance) { - collapseInstance.end(); - } - } - }, - unmount() { - if (collapseInstance) { - collapseInstance.destroy(); - } - }, - }; -} - -class Collapse { - constructor(dom, listDom, config) { - this.dom = dom; - this.listDom = listDom; - this.moveOffset = 0; - this.config = config; - this.handleClick = this.handleClick.bind(this); - - const { itemHeight, collapseRow, wrapperHeight, collapseTop, collapseBottom } = this.config; - - const collapseDom = document.createElement('div'); - collapseDom.className = 'widgets-legend-collapse'; - collapseDom.style.paddingTop = `${collapseTop}px`; - collapseDom.style.paddingBottom = `${collapseBottom}px`; - this.collapseDom = collapseDom; - - const collapseUpDom = document.createElement('div'); - collapseUpDom.className = 'legend-collapse-btn collapse-up'; - this.collapseUpDom = collapseUpDom; - const collapseDownDom = document.createElement('div'); - collapseDownDom.className = 'legend-collapse-btn collapse-down'; - this.collapseDownDom = collapseDownDom; - collapseDom.appendChild(collapseUpDom); - collapseDom.appendChild(collapseDownDom); - - collapseDom.addEventListener('click', this.handleClick); - collapseDom.addEventListener('mousemove', noopEvent); - collapseDom.addEventListener('mouseout', noopEvent); - - this.minOffset = -(wrapperHeight / itemHeight) + collapseRow; - this.maxOffset = 0; - } - - handleClick(e) { - e.stopPropagation(); - - if (!e.target.classList.contains('legend-collapse-btn') || e.target.classList.contains('disable')) { - return; - } - - let { moveOffset } = this; - - // 上一页 - if (e.target.classList.contains('collapse-up')) { - moveOffset += 1; - } - // 下一页 - if (e.target.classList.contains('collapse-down')) { - moveOffset -= 1; - } - - this.moveOffset = moveOffset; - - this.renderState(); - } - - renderState() { - const { itemHeight } = this.config; - - this.collapseUpDom.classList.remove('disable'); - this.collapseDownDom.classList.remove('disable'); - - // 不能向下 - if (this.moveOffset <= this.minOffset) { - this.moveOffset = this.minOffset; - this.collapseDownDom.classList.add('disable'); - } - - // 不能向上 - if (this.moveOffset >= this.maxOffset) { - this.moveOffset = this.maxOffset; - this.collapseUpDom.classList.add('disable'); - } - - this.listDom.style.transform = `translate(0, ${this.moveOffset * itemHeight}px)`; - } - - start({ collapseRow: newCollapseRow }) { - const { itemHeight, collapseRow: oldCollapseRow } = this.config; - const collapseRow = newCollapseRow || oldCollapseRow; - - this.dom.classList.add('has-collapse'); - - // 展示时重新获取高度 - // 修复因样式变化导致滚动范围改变所引起的问题。 - this.config.wrapperHeight = this.dom.offsetHeight; - this.minOffset = -(this.config.wrapperHeight / itemHeight) + collapseRow; - - this.dom.style.maxHeight = `${itemHeight * collapseRow}px`; - this.dom.appendChild(this.collapseDom); - - this.renderState(); - } - - end() { - this.dom.classList.remove('has-collapse'); - this.dom.style.maxHeight = ''; - // dom被g2重新渲染后已经不在原来的树中,需要额外判断 - if (this.collapseDom.parentNode === this.dom) { - this.dom.removeChild(this.collapseDom); - } - } - - destroy() { - this.end(); - - this.collapseDom.removeEventListener('click', this.handleClick); - this.collapseDom.removeEventListener('mousemove', noopEvent); - this.collapseDom.removeEventListener('mouseout', noopEvent); - } -} - -function noopEvent(e) { - e.stopPropagation(); -} diff --git a/components/common/rectTooltip.js b/components/common/rectTooltip.js deleted file mode 100644 index 98160372..00000000 --- a/components/common/rectTooltip.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -import G2 from '@antv/g2'; -import { getRawData } from './common'; -import merge from './merge'; - -// 排序函数 -const sortFun = { - // 升序 - asce(a, b) { - return a.value - b.value; - }, - // 降序 - desc(a, b) { - return b.value - a.value; - }, -}; - -/** - * rectTooltip 直角坐标系的tooltip配置 - * - * @param {Chart} chart 图表实例 - * @param {Object} config 配置项 - * @param {Object} componentConfig 组件的自定义配置 - * @param {boolean} onTooltipChange 自定义 tooltip:change 事件 - * */ -export default function(chart, config, componentConfig, onTooltipChange) { - if (config.tooltip === false || (config.tooltip && config.tooltip.visible === false)) { - chart.tooltip(false); - } else { - const { - sort, - showTitle = true, - showColon = true, - position = null, - offset, - inPlot = true, - titleFormatter, - nameFormatter, - valueFormatter, - customConfig, - } = config.tooltip || {}; - - const tooltipConfig = { - showTitle, - // crosshairs 空对象不可省略,否则在混合图表中会没有crosshairs line - crosshairs: {}, - position, - inPlot, - itemTpl: `
  • - - {name}${ - showColon ? ':' : '' - }{value} -
  • `, - }; - - if (offset !== undefined) { - tooltipConfig.offset = offset; - } - - if (componentConfig) { - Object.assign(tooltipConfig, componentConfig); - } - - if (customConfig) { - merge(tooltipConfig, customConfig); - } - - chart.tooltip(tooltipConfig); - - if (sort || titleFormatter || nameFormatter || valueFormatter) { - if (onTooltipChange) { - chart.on('tooltip:change', onTooltipChange); - } else { - chart.on('tooltip:change', ev => { - // 如果设置了合法的排序关键字,则开始排序 - if (G2.Util.isFunction(sort)) { - ev.items.sort(sort); - } else if (sortFun[sort]) { - ev.items.sort(sortFun[sort]); - } - - // 格式化标题 - if (titleFormatter) { - ev.items[0].title = titleFormatter(ev.items[0].title, ev.items); - } - - // 对每一项格式化 名字 和 值 - ev.items.forEach((item, index) => { - const raw = getRawData(config, this.rawData, item); - - if (valueFormatter) { - item.value = valueFormatter(item.value, raw, index, ev.items); - } - if (nameFormatter) { - item.name = nameFormatter(item.name, raw, index, ev.items); - } - }); - }); - } - } - } -} diff --git a/components/common/rectXAxis.js b/components/common/rectXAxis.js deleted file mode 100644 index 7183f4c2..00000000 --- a/components/common/rectXAxis.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -import themes from '../themes/index'; -import merge from './merge'; - -/** - * rectXAxis 直角坐标系的X轴配置 - * - * @param {Chart} chart 图表实例 - * @param {Object} config 配置项 - * @param {Object} componentConfig 组件的自定义配置 - * */ -export default function (chart, config, componentConfig) { - if (config.xAxis === false || (config.xAxis && config.xAxis.visible === false)) { - chart.axis('x', false); - } else { - const { alias, autoRotate, rotate, labelFormatter, customConfig } = config.xAxis || {}; - const xAxisConfig = { - title: null, // 不展示坐标轴的标题 - label: { - autoRotate, - formatter: labelFormatter, - }, - }; - - if (rotate) { - xAxisConfig.label.textStyle = { - textAlign: 'start', - rotate, - }; - } - - // 网格线 - if (config.grid) { - xAxisConfig.grid = { - lineStyle: { - stroke: themes['widgets-axis-grid'], - lineWidth: 1, - // lineDash: null - }, - // hideFirstLine: true - }; - } - - // 开启坐标轴标题 - if (alias) { - // xAxisConfig.alias = title; - xAxisConfig.title = { - position: 'center', - offset: 38, - textStyle: { - rotate: 0, - }, - }; - } - - if (componentConfig) { - Object.assign(xAxisConfig, componentConfig); - } - - if (customConfig) { - merge(xAxisConfig, customConfig); - } - - chart.axis('x', xAxisConfig); - } -} diff --git a/components/common/rectYAxis.js b/components/common/rectYAxis.js deleted file mode 100644 index fbf187cd..00000000 --- a/components/common/rectYAxis.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -import merge from './merge'; - -/** - * rectYAxis 直角坐标系的单个Y轴配置 - * - * @param {Chart} chart 图表实例 - * @param {Object} config 配置项 - * @param {string} yField 数据映射字段 - * @param {Object} componentConfig 组件的自定义配置 - * */ -export default function (chart, config, yField = 'y', componentConfig) { - if (config.yAxis === false || (config.yAxis && config.yAxis.visible === false)) { - chart.axis(yField, false); - } else { - const { alias, labelFormatter, customConfig } = config.yAxis || {}; - const yConfig = { - title: null, // 不展示坐标轴的标题 - label: { - formatter: labelFormatter, - }, - }; - - // 关闭了X轴,需要显示第一条grid - if (config.xAxis === false || (config.xAxis && config.xAxis.visible === false)) { - yConfig.grid = { - hideFirstLine: false, - }; - } - - // 开启坐标轴标题 - if (alias) { - // yConfig.alias = title; - yConfig.title = { - position: 'center', - // offset: 30, - textStyle: { - rotate: -90, - }, - }; - if (yField === 'y1') { - yConfig.title.textStyle.rotate = 90; - } - yConfig.label.textStyle = { - rotate: 0, - }; - } - - if (componentConfig) { - Object.assign(yConfig, componentConfig); - } - - if (customConfig) { - merge(yConfig, customConfig); - } - - chart.axis(yField, yConfig); - } -} diff --git a/components/index.jsx b/components/index.jsx deleted file mode 100644 index c3a28676..00000000 --- a/components/index.jsx +++ /dev/null @@ -1,61 +0,0 @@ -// 引入依赖库 -import G2 from '@antv/g2'; -import * as DataSet from '@antv/data-set'; -import themes from './themes/index'; -import './index.scss'; - -export const version = __VERSION__; -export const VERSION = __VERSION__; - -// 主题包和颜色值 -export const COLORS = themes; -export const THEMES = themes; -export { themes }; - -// 打点控制 -export { default as track } from './track'; - -// 插件系统 -export { plugins, pluginManager } from './plugins'; - -// 暴露工具类 -export { default as Util } from './Util'; - -// 业务组件,没有依赖其它图表库 -export { default as Wnumber } from './Wnumber/index'; -export { default as Wcontainer } from './Wcontainer/index'; -export { default as Wicon } from './Wicon/index'; -export { default as Wcircle } from './Wcircle/index'; -export { default as Wminicontainer } from './Wminicontainer/index'; -export { default as Wshoot } from './Wshoot/index'; -export { default as Wplaceholder } from './Wplaceholder/index'; -export { default as Wcount } from './Wcount/index'; -export { default as Wdashboard } from './Wdashboard/index'; - -// 基础图表库依赖 -export { G2, DataSet }; - -export const { DomUtil } = G2; -export const { MatrixUtil } = G2; -export const { PathUtil } = G2; - -// 基础图表组件 -export { default as Wline } from './Wline/G2Line'; -export { default as Wminiline } from './Wminiline/G2MiniLine'; -export { default as Wbar } from './Wbar/G2Bar'; -export { default as Whistogram } from './Whistogram/G2Histogram'; -export { default as Wlinebar } from './Wlinebar/G2LineBar'; -export { default as Wpie } from './Wpie/G2Pie'; -export { default as Wscatter } from './Wscatter/G2Scatter'; -export { default as Wmap } from './Wmap/index'; -export { default as Wsankey } from './Wsankey/G2Sankey'; -export { default as Wnightingale } from './Wnightingale/G2Nightingale'; -export { default as Wradar } from './Wradar/G2Radar'; -export { default as Wrectangle } from './Wrectangle/G2Rectangle'; -export { default as Wfunnel } from './Wfunnel/G2Funnel'; -export { default as WmultiPie } from './Wmultipie/G2MultiPie'; -export { default as Wbox } from './Wbox/G2Box'; -export { default as Wcandlestick } from './Wcandlestick/G2Candlestick'; -export { default as Wheatmap } from './Wheatmap/G2Heatmap'; -export { default as Wtreemap } from './Wtreemap/G2Treemap'; -export { default as Whierarchy } from './Whierarchy/G2Hierarchy'; diff --git a/components/index.scss b/components/index.scss deleted file mode 100644 index 78128f6c..00000000 --- a/components/index.scss +++ /dev/null @@ -1,142 +0,0 @@ -@import "themes/index"; - -$font-path: '../font'; - -/* Widgets 专用字体,仅包含20个字符 */ -@font-face { - font-family: "TXDDINMediumNumber"; - src: url("#{$font-path}/txddinmedium/txddinmedium.eot"); /* IE9 */ - src: url("#{$font-path}/txddinmedium/txddinmedium.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */ - url("#{$font-path}/txddinmedium/txddinmedium.woff") format("woff"), /* chrome、firefox */ - url("#{$font-path}/txddinmedium/txddinmedium.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */ - url("#{$font-path}/txddinmedium/txddinmedium.svg#fonteditor") format("svg"); /* iOS 4.1- */ - font-style: normal; - font-weight: normal; -} - -@font-face { - font-family: "TXDDINRegularNumber"; - src: url("#{$font-path}/txddinregular/txddinregular.eot"); /* IE9 */ - src: url("#{$font-path}/txddinregular/txddinregular.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */ - url("#{$font-path}/txddinregular/txddinregular.woff") format("woff"), /* chrome、firefox */ - url("#{$font-path}/txddinregular/txddinregular.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */ - url("#{$font-path}/txddinregular/txddinregular.svg#fonteditor") format("svg"); /* iOS 4.1- */ - font-style: normal; - font-weight: normal; -} - -/* 全局公用样式 */ -.cloud-charts { - canvas { - position: relative; - display: block; - } - - &.widgets-error-info { - margin: 0; - padding: 0; - overflow: auto; - font-size: 1em; - color: getVar(widgets-color-red, $widgets-color-red); - } - - .widgets-reset-button { - position: absolute; - z-index: 1; - padding: 4px; - - font-size: 12px; - color: getVar(widgets-color-blue, $widgets-color-blue); - background: getVar(widgets-color-background, $widgets-color-background); - - border: 1px solid getVar(widgets-color-gray, $widgets-color-gray); - border-radius: 2px; - - cursor: pointer; - user-select: none; - } - - .g2-tooltip-item-value { - margin-left: getVar(s2, $s2); - } - - .g2-legend-value { - margin-left: getVar(s2, $s2); - } - - $legend-collapse-arrow-width: 10px; - $legend-collapse-arrow-height: 8px; - $legend-collapse-arrow-color: getVar(widgets-color-text-3, $widgets-color-text-3); - $legend-collapse-arrow-disable: getVar(widgets-color-disable, $widgets-color-disable); - .widgets-legend-collapse { - position: absolute; - top: 0; - right: 0; - - width: $legend-collapse-arrow-width + 8px; - height: 100%; - - box-sizing: border-box; - } - - .legend-collapse-btn { - position: relative; - height: 50%; - cursor: pointer; - - &:after { - content: ""; - position: absolute; - right: 0; - top: 50%; - width: 0; - height: 0; - - border-top: $legend-collapse-arrow-height solid $legend-collapse-arrow-color; - border-bottom: $legend-collapse-arrow-height solid $legend-collapse-arrow-color; - border-left: $legend-collapse-arrow-width / 2 solid transparent; - border-right: $legend-collapse-arrow-width / 2 solid transparent; - - transform: translate(0, -$legend-collapse-arrow-height / 2); - } - - &.disable:after { - border-top-color: $legend-collapse-arrow-disable; - border-bottom-color: $legend-collapse-arrow-disable; - } - - &.collapse-up:after { - border-top: none; - } - - &.collapse-down:after { - border-bottom: none; - } - } - - .g2-legend.has-collapse { - overflow: hidden !important; - padding-right: $legend-collapse-arrow-width + 8px; - - .g2-legend-list { - transition: transform 0.2s ease-in-out; - } - } - - ::-webkit-scrollbar { - background: getVar(widgets-scrollbar-bg, $widgets-scrollbar-bg); - width: 8px; - height: 8px; - padding: 0 3px; - // border-radius: 3px; - } - ::-webkit-scrollbar-corner { - background: getVar(widgets-scrollbar-bg, $widgets-scrollbar-bg); - border-radius: 3px; - } - - ::-webkit-scrollbar-thumb { - background: getVar(widgets-scrollbar-thumb, $widgets-scrollbar-thumb); - border-radius: 3px; - } -} diff --git a/components/plugins.js b/components/plugins.js deleted file mode 100644 index d29cd384..00000000 --- a/components/plugins.js +++ /dev/null @@ -1,21 +0,0 @@ -const plugins = {}; -const pluginManager = { - register(name, p) { - if (plugins[name]) { - console.warn(`plugin: ${name} has already registered.`); - return; - } - plugins[name] = p; - }, - get(name) { - if (!name) { - return plugins; - } - if (!plugins[name]) { - console.warn(`plugin: ${name} not find!`); - } - return plugins[name]; - }, -}; - -export { plugins, pluginManager }; diff --git a/components/themes/base.scss b/components/themes/base.scss deleted file mode 100644 index 5ec1e35e..00000000 --- a/components/themes/base.scss +++ /dev/null @@ -1,303 +0,0 @@ -/// Base Size -/// @type Length -$size-base: 4px !default; - -/// S0 -/// @export length -/// @unconfigurable -$s0: 0; - -/// S1 -/// @unconfigurable -/// @export length -$s1: $size-base * 1; - -/// S2 -/// @export length -/// @unconfigurable -$s2: $size-base * 2; - -/// S3 -/// @export length -/// @unconfigurable -$s3: $size-base * 3; - -/// S4 -/// @export length -/// @unconfigurable -$s4: $size-base * 4; - -/// S5 -/// @export length -/// @unconfigurable -$s5: $size-base * 5; - -/// S6 -/// @export length -/// @unconfigurable -$s6: $size-base * 6; - -/// S7 -/// @export length -/// @unconfigurable -$s7: $size-base * 7; - -/// S8 -/// @export length -/// @unconfigurable -$s8: $size-base * 8; - -/// S9 -/// @export length -/// @unconfigurable -$s9: $size-base * 9; - -/// S10 -/// @export length -/// @unconfigurable -$s10: $size-base * 10; - -/// S11 -/// @export length -/// @unconfigurable -$s11: $size-base * 11; - -/// S12 -/// @export length -/// @unconfigurable -$s12: $size-base * 12; - -/// S13 -/// @export length -/// @unconfigurable -$s13: $size-base * 13; - -/// S14 -/// @export length -/// @unconfigurable -$s14: $size-base * 14; - -/// S15 -/// @export length -/// @unconfigurable -$s15: $size-base * 15; - -/// S16 -/// @export length -/// @unconfigurable -$s16: $size-base * 16; - -/// S17 -/// @export length -/// @unconfigurable -$s17: $size-base * 17; - -/// S18 -/// @export length -/// @unconfigurable -$s18: $size-base * 18; - -/// S19 -/// @export length -/// @unconfigurable -$s19: $size-base * 19; - -/// S20 -/// @export length -/// @unconfigurable -$s20: $size-base * 20; - -/// S21 -/// @export length -/// @unconfigurable -$s21: $size-base * 21; - -/// S22 -/// @export length -/// @unconfigurable -$s22: $size-base * 22; - -/// S23 -/// @export length -/// @unconfigurable -$s23: $size-base * 23; - -/// S24 -/// @export length -/// @unconfigurable -$s24: $size-base * 24; - -/// S25 -/// @export length -/// @unconfigurable -$s25: $size-base * 25; - -/// S26 -/// @export length -/// @unconfigurable -$s26: $size-base * 26; - -/// S27 -/// @export length -/// @unconfigurable -$s27: $size-base * 27; - -/// S28 -/// @export length -/// @unconfigurable -$s28: $size-base * 28; - -/// S29 -/// @export length -/// @unconfigurable -$s29: $size-base * 29; - -/// S30 -/// @export length -/// @unconfigurable -$s30: $size-base * 30; - -/// S31 -/// @export length -/// @unconfigurable -$s31: $size-base * 31; - -/// S32 -/// @export length -/// @unconfigurable -$s32: $size-base * 32; - -/// S33 -/// @export length -/// @unconfigurable -$s33: $size-base * 33; - -/// S34 -/// @export length -/// @unconfigurable -$s34: $size-base * 34; - -/// S35 -/// @export length -/// @unconfigurable -$s35: $size-base * 35; - -/// S36 -/// @export length -/// @unconfigurable -$s36: $size-base * 36; - -/// S37 -/// @export length -/// @unconfigurable -$s37: $size-base * 37; - -/// S38 -/// @export length -/// @unconfigurable -$s38: $size-base * 38; - -/// S39 -/// @export length -/// @unconfigurable -$s39: $size-base * 39; - -/// S40 -/// @export length -/// @unconfigurable -$s40: $size-base * 40; - -/// S41 -/// @export length -/// @unconfigurable -$s41: $size-base * 41; - -/// S42 -/// @export length -/// @unconfigurable -$s42: $size-base * 42; - -/// S43 -/// @export length -/// @unconfigurable -$s43: $size-base * 43; - -/// S44 -/// @export length -/// @unconfigurable -$s44: $size-base * 44; - -/// S45 -/// @export length -/// @unconfigurable -$s45: $size-base * 45; - -/// S46 -/// @export length -/// @unconfigurable -$s46: $size-base * 46; - -/// S47 -/// @export length -/// @unconfigurable -$s47: $size-base * 47; - -/// S48 -/// @export length -/// @unconfigurable -$s48: $size-base * 48; - -/// S49 -/// @export length -/// @unconfigurable -$s49: $size-base * 49; - -/// S50 -/// @export length -/// @unconfigurable -$s50: $size-base * 50; - -// =============================================== // - -/// Base Radius -/// @export -/// @type length -$corner-radius-base: 4px !default; - -/// No Radius -/// @export -/// @type Length -$corner-radius-r0: 0px !default; - -/// R1 -/// @export -/// @type Length -$corner-radius-r1: 4px !default; - -/// R2 -/// @export -/// @type Length -$corner-radius-r2: 5px !default; - -/// R3 -/// @export -/// @type Length -$corner-radius-r3: 7px !default; - -/// R4 -/// @export -/// @type Length -$corner-radius-r4: 10px !default; - -/// R5 -/// @export -/// @type Length -$corner-radius-r5: 15px !default; - -/// Circle -/// @export -/// @type Length -$corner-radius-circle: 50% !default; - -// =============================================== // - diff --git a/components/themes/dark.style.js b/components/themes/dark.style.js deleted file mode 100644 index 0b1dd0d2..00000000 --- a/components/themes/dark.style.js +++ /dev/null @@ -1 +0,0 @@ -export default {"size-base":"4px","s0":0,"s1":"4px","s2":"8px","s3":"12px","s4":"16px","s5":"20px","s6":"24px","s7":"28px","s8":"32px","s9":"36px","s10":"40px","s11":"44px","s12":"48px","s13":"52px","s14":"56px","s15":"60px","s16":"64px","s17":"68px","s18":"72px","s19":"76px","s20":"80px","s21":"84px","s22":"88px","s23":"92px","s24":"96px","s25":"100px","s26":"104px","s27":"108px","s28":"112px","s29":"116px","s30":"120px","s31":"124px","s32":"128px","s33":"132px","s34":"136px","s35":"140px","s36":"144px","s37":"148px","s38":"152px","s39":"156px","s40":"160px","s41":"164px","s42":"168px","s43":"172px","s44":"176px","s45":"180px","s46":"184px","s47":"188px","s48":"192px","s49":"196px","s50":"200px","corner-radius-base":"4px","corner-radius-r0":"0px","corner-radius-r1":"4px","corner-radius-r2":"5px","corner-radius-r3":"7px","corner-radius-r4":"10px","corner-radius-r5":"15px","corner-radius-circle":"50%","widgets-color-background":"#232533","widgets-color-layout-background":"#171924","widgets-color-blue":"#3f90ff","widgets-color-orange":"#ff9919","widgets-color-red":"#ff656b","widgets-color-green":"#3fc453","widgets-color-gray":"#393c4d","widgets-color-category-1":"#3f90ff","widgets-color-category-2":"#5ccdbb","widgets-color-category-3":"#facd4f","widgets-color-category-4":"#9979f2","widgets-color-category-5":"#006cd9","widgets-color-category-6":"#4ad051","widgets-color-category-7":"#5c60e6","widgets-color-category-8":"#cd5c97","widgets-color-category-9":"#52d7ff","widgets-color-category-10":"#fab34f","widgets-color-category-11":"#e65c5c","widgets-color-category-12":"#9b5ce6","widgets-color-linear-1":"#3f90ff","widgets-color-linear-2":"#3c85eb","widgets-color-linear-3":"#397ad6","widgets-color-linear-4":"#3670c2","widgets-color-linear-5":"#3464ad","widgets-color-linear-6":"#315a99","widgets-color-linear-7":"#2e5084","widgets-color-linear-8":"#2b4470","widgets-color-linear-9":"#283b5e","widgets-color-linear-10":"#252f47","widgets-color-text-1":"#f7f8f2","widgets-color-text-2":"#c5cace","widgets-color-text-3":"#9ea5b2","widgets-color-disable":"#777d8f","widgets-font-family-txd-m-number":"'TXDDINMediumNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-family-txd-r-number":"'TXDDINRegularNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-size-1":"12px","widgets-font-size-2":"14px","widgets-font-size-3":"16px","widgets-font-size-4":"18px","widgets-font-size-5":"24px","widgets-font-size-6":"28px","widgets-font-size-7":"32px","widgets-legend-uncheck":"#777d8f","widgets-legend-text":"#f7f8f2","widgets-label-text":"#f7f8f2","widgets-tooltip-background":"#323545","widgets-tooltip-padding":"12px","widgets-tooltip-shadow":"0 2px 8px 0 rgba(0, 0, 0, 0.2)","widgets-tooltip-corner-radius":"4px","widgets-tooltip-cross-line":"#51566b","widgets-tooltip-cross-react":"#404354","widgets-tooltip-cross-react-opacity":0.5,"widgets-tooltip-title":"#9ea5b2","widgets-tooltip-text":"#f7f8f2","widgets-tooltip-marker-fill":"#232533","widgets-axis-label":"#9ea5b2","widgets-axis-line":"#393c4d","widgets-axis-grid":"#323545","widgets-guide-region-opacity":0.1,"widgets-shape-area-opacity":0.1,"widgets-shape-interval-opacity":1,"widgets-container-background":"#232533","widgets-container-padding":"20px","widgets-container-mobile-padding":"12px","widgets-container-corner-radius":"4px","widgets-container-shadow":"none","widgets-container-title":"#f7f8f2","widgets-container-split-line":"#393c4d","widgets-map-area-bg":"#393c4d","widgets-map-area-border":"#232533","widgets-map-label":"#c5cace","widgets-circle-stroke-background":"#51566b","widgets-circle-number":"currentColor","widgets-circle-stroke-width":"6px","widgets-sankey-edge":"#393c4d","widgets-sankey-node-text":"#9ea5b2","widgets-scrollbar-bg":"#404354","widgets-scrollbar-thumb":"#51566b"}; \ No newline at end of file diff --git a/components/themes/normal.style.js b/components/themes/normal.style.js deleted file mode 100644 index b1393ea8..00000000 --- a/components/themes/normal.style.js +++ /dev/null @@ -1 +0,0 @@ -export default {"size-base":"4px","s0":0,"s1":"4px","s2":"8px","s3":"12px","s4":"16px","s5":"20px","s6":"24px","s7":"28px","s8":"32px","s9":"36px","s10":"40px","s11":"44px","s12":"48px","s13":"52px","s14":"56px","s15":"60px","s16":"64px","s17":"68px","s18":"72px","s19":"76px","s20":"80px","s21":"84px","s22":"88px","s23":"92px","s24":"96px","s25":"100px","s26":"104px","s27":"108px","s28":"112px","s29":"116px","s30":"120px","s31":"124px","s32":"128px","s33":"132px","s34":"136px","s35":"140px","s36":"144px","s37":"148px","s38":"152px","s39":"156px","s40":"160px","s41":"164px","s42":"168px","s43":"172px","s44":"176px","s45":"180px","s46":"184px","s47":"188px","s48":"192px","s49":"196px","s50":"200px","corner-radius-base":"4px","corner-radius-r0":"0px","corner-radius-r1":"4px","corner-radius-r2":"5px","corner-radius-r3":"7px","corner-radius-r4":"10px","corner-radius-r5":"15px","corner-radius-circle":"50%","widgets-color-background":"#ffffff","widgets-color-layout-background":"#f7f7f7","widgets-color-blue":"#3f90ff","widgets-color-orange":"#fa8c15","widgets-color-red":"#e62412","widgets-color-green":"#15ad31","widgets-color-gray":"#e5e5e5","widgets-color-category-1":"#3f90ff","widgets-color-category-2":"#5ccdbb","widgets-color-category-3":"#facd4f","widgets-color-category-4":"#9979f2","widgets-color-category-5":"#006cd9","widgets-color-category-6":"#4ad051","widgets-color-category-7":"#5c60e6","widgets-color-category-8":"#cd5c97","widgets-color-category-9":"#52d7ff","widgets-color-category-10":"#fab34f","widgets-color-category-11":"#e65c5c","widgets-color-category-12":"#9b5ce6","widgets-color-linear-1":"#3f90ff","widgets-color-linear-2":"#529bff","widgets-color-linear-3":"#65a6ff","widgets-color-linear-4":"#78b1ff","widgets-color-linear-5":"#8cbcff","widgets-color-linear-6":"#9fc7ff","widgets-color-linear-7":"#b2d3ff","widgets-color-linear-8":"#c5ddff","widgets-color-linear-9":"#d6e7ff","widgets-color-linear-10":"#ebf3ff","widgets-color-text-1":"#262626","widgets-color-text-2":"#595959","widgets-color-text-3":"#8c8c8c","widgets-color-disable":"#bfbfbf","widgets-font-family-txd-m-number":"'TXDDINMediumNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-family-txd-r-number":"'TXDDINRegularNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-size-1":"12px","widgets-font-size-2":"14px","widgets-font-size-3":"16px","widgets-font-size-4":"18px","widgets-font-size-5":"24px","widgets-font-size-6":"28px","widgets-font-size-7":"32px","widgets-legend-uncheck":"#bfbfbf","widgets-legend-text":"#262626","widgets-label-text":"#262626","widgets-tooltip-background":"#ffffff","widgets-tooltip-padding":"12px","widgets-tooltip-shadow":"0 1px 5px 0 rgba(0, 0, 0, 0.2)","widgets-tooltip-corner-radius":"4px","widgets-tooltip-cross-line":"#dddddd","widgets-tooltip-cross-react":"#ccd6ec","widgets-tooltip-cross-react-opacity":0.3,"widgets-tooltip-title":"#8c8c8c","widgets-tooltip-text":"#262626","widgets-tooltip-marker-fill":"#ffffff","widgets-axis-label":"#8c8c8c","widgets-axis-line":"#e5e5e5","widgets-axis-grid":"#f7f7f7","widgets-guide-region-opacity":0.1,"widgets-shape-area-opacity":0.1,"widgets-shape-interval-opacity":1,"widgets-container-background":"#ffffff","widgets-container-padding":"20px","widgets-container-mobile-padding":"12px","widgets-container-corner-radius":"4px","widgets-container-shadow":"none","widgets-container-title":"#262626","widgets-container-split-line":"#e5e5e5","widgets-map-area-bg":"#e5e5e5","widgets-map-area-border":"#ffffff","widgets-map-label":"#595959","widgets-circle-stroke-background":"#f7f7f7","widgets-circle-number":"currentColor","widgets-circle-stroke-width":"6px","widgets-sankey-edge":"#e5e5e5","widgets-sankey-node-text":"#8c8c8c","widgets-scrollbar-bg":"#ebecf0","widgets-scrollbar-thumb":"#c4c6cf"}; \ No newline at end of file diff --git a/components/themes/themeTools.js b/components/themes/themeTools.js deleted file mode 100644 index 135bb7d4..00000000 --- a/components/themes/themeTools.js +++ /dev/null @@ -1,119 +0,0 @@ -const widgetsThemeStyleId = 'widgets-theme-var'; - -function getStyleElement() { - let el = document.getElementById(widgetsThemeStyleId); - if (!el) { - el = document.createElement('style'); - el.setAttribute('id', widgetsThemeStyleId); - document.head.appendChild(el); - } - return el; -} - -export function setThemeStyle(css) { - const style = getStyleElement(); - style.innerText = css; -} - -/** - * 将主题包中横杠连接符变量克隆转为小驼峰写法 - * - * @param {Object} themes 主题包 - * - * @return {Object} themes - * */ -export function convertKey(themes) { - Object.keys(themes).forEach((key) => { - if (key.indexOf('-') > -1) { - const newKey = key.replace(/-(\w)/g, (all, letter) => { - return letter.toUpperCase(); - }); - if (!themes[newKey]) { - themes[newKey] = themes[key]; - } - } - }); - return themes; -} - -export function convertCSS(theme) { - const varList = Object.keys(theme).map(key => `--${key}: ${theme[key]}`); - return `.cloud-charts {${varList.join(';')}}`; -} - -export function convertJsStyle(name, theme) { - const result = { - name, - // 分类色阶 - category_12: [ - theme['widgets-color-category-1'], - theme['widgets-color-category-2'], - theme['widgets-color-category-3'], - theme['widgets-color-category-4'], - theme['widgets-color-category-5'], - theme['widgets-color-category-6'], - theme['widgets-color-category-7'], - theme['widgets-color-category-8'], - theme['widgets-color-category-9'], - theme['widgets-color-category-10'], - theme['widgets-color-category-11'], - theme['widgets-color-category-12'], - ], - // 连续色阶,比较接近的颜色会错开 - linear_10: [ - theme['widgets-color-linear-1'], - theme['widgets-color-linear-5'], - theme['widgets-color-linear-9'], - theme['widgets-color-linear-3'], - theme['widgets-color-linear-7'], - theme['widgets-color-linear-10'], - theme['widgets-color-linear-2'], - theme['widgets-color-linear-4'], - theme['widgets-color-linear-6'], - theme['widgets-color-linear-8'], - ], - // 顺序色阶,连续相似的颜色排列 - order_10: [ - theme['widgets-color-linear-1'], - theme['widgets-color-linear-2'], - theme['widgets-color-linear-3'], - theme['widgets-color-linear-4'], - theme['widgets-color-linear-5'], - theme['widgets-color-linear-6'], - theme['widgets-color-linear-7'], - theme['widgets-color-linear-8'], - theme['widgets-color-linear-9'], - theme['widgets-color-linear-10'], - ], - // 青色色阶 - turquoise - // 连续色阶,比较接近的颜色会错开 - linear_turquoise_10: [ - theme['widgets-color-linear-turquoise-1'], - theme['widgets-color-linear-turquoise-5'], - theme['widgets-color-linear-turquoise-9'], - theme['widgets-color-linear-turquoise-3'], - theme['widgets-color-linear-turquoise-7'], - theme['widgets-color-linear-turquoise-10'], - theme['widgets-color-linear-turquoise-2'], - theme['widgets-color-linear-turquoise-4'], - theme['widgets-color-linear-turquoise-6'], - theme['widgets-color-linear-turquoise-8'], - ], - // 顺序色阶,连续相似的颜色排列 - order_turquoise_10: [ - theme['widgets-color-linear-turquoise-1'], - theme['widgets-color-linear-turquoise-2'], - theme['widgets-color-linear-turquoise-3'], - theme['widgets-color-linear-turquoise-4'], - theme['widgets-color-linear-turquoise-5'], - theme['widgets-color-linear-turquoise-6'], - theme['widgets-color-linear-turquoise-7'], - theme['widgets-color-linear-turquoise-8'], - theme['widgets-color-linear-turquoise-9'], - theme['widgets-color-linear-turquoise-10'], - ], - }; - Object.assign(result, theme); - - return result; -} diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index c9bff318..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,240 +0,0 @@ -'use strict'; - -const path = require('path'); -const fs = require('fs'); -const glob = require('glob'); -const gulp = require('gulp'); -const gutil = require('gulp-util'); -const webpack = require('webpack'); -const babel = require('gulp-babel'); -const rename = require("gulp-rename"); -const replace = require("gulp-replace"); -const sass = require('gulp-sass'); -const del = require('del'); -const WebpackDevServer = require('webpack-dev-server'); -const sassExtract = require('sass-extract'); -const createSassExtractJsPlugin = require('./sass-extract-js/plugin'); -const sassExtractJsPlugin = createSassExtractJsPlugin({ camelCase: false, hex: true }); -const packageInfo = require('./package'); -const config = require('./webpack.config'); -const srcPath = 'components'; -const outputPath = 'build'; - -gulp.task('clean', (cb) => { - del(['build', 'lib']).then(() => { - cb(); - }); -}); - -gulp.task('start', (cb) => { - let buildFirstTime = true; - const webpackConfig = config.dev(); - const port = webpackConfig.port; - delete webpackConfig.port; - const compiler = webpack(webpackConfig); - - new WebpackDevServer(compiler, { - hot: true, - inline: true, - // stats: { colors: true }, - quiet: true, - publicPath: webpackConfig.output.publicPath, - headers: {'Access-Control-Allow-Origin': '*'}, - contentBase: path.resolve(__dirname, './') - }).listen(port, '0.0.0.0', (err) => { - if (err) { - throw new gutil.PluginError('webpack-dev-server', err); - } - - // 只有第一次启动start的时候才执行 - if (buildFirstTime) { - buildFirstTime = false; - cb && cb(); - // listening - gutil.log('[webpack-dev-server]', gutil.colors.magenta(`http://localhost:${port}`)); - gutil.log('[webpack-dev-server]', 'To stop service, press [Ctrl + C] ..'); - } else { - gutil.log('building success!'); - } - }); -}); - -gulp.task('build:theme-sass', (cb) => { - const nodeModulesPath = path.resolve(__dirname, 'node_modules'); - glob.sync(`${srcPath}/themes/*.scss`).forEach((item) => { - if (item.indexOf('index.scss') > -1 || item.indexOf('base.scss') > -1) { - return; - } - gutil.log(item); - const rendered = sassExtract.renderSync({ - file: item - }, { - plugins: [sassExtractJsPlugin] - }); - - fs.writeFileSync('./' + item.replace(/\.scss$/, '.style.js'), `export default ${JSON.stringify(rendered.vars)};`); - }); - - cb && cb() -}); - -gulp.task('build:dist', ['build:plugins', 'build:theme-sass'], (cb) => { - const webpackConfig = config.prod(); - delete webpackConfig.port; - webpack(webpackConfig, (err, stats) => { - if (err || stats.hasErrors()) { - gutil.log(err); - } - - gutil.log(stats.toString({ - colors: true, - chunks: true, - modulesSort: 'size' - })); - - cb && cb(); - }); -}); - -gulp.task('css', ['clean'], () => { - return gulp.src([`${srcPath}/**/*.scss`, `!${srcPath}/themes/*.scss`, '!**/variable.scss', '!**/mixin.scss', '!**/function.scss']) - .pipe(sass().on('error', sass.logError)) - .pipe(gulp.dest('lib')); -}); - -gulp.task('build:lib', ['clean', 'css'], () => { - gulp.src([ - // srcPath + '/**/*.less', - srcPath + '/**/*.scss', - srcPath + '/**/*.json', - srcPath + '/**/*.woff', - srcPath + '/**/*.woff2', - srcPath + '/**/*.eot', - srcPath + '/**/*.ttf', - srcPath + '/**/*.otf', - srcPath + '/**/*.svg', - ]) - // .pipe(sass().on('error', sass.logError)) - .pipe(gulp.dest('lib')); - - return gulp.src(srcPath + '/**/*.js?(x)') - .pipe(replace('__VERSION__', JSON.stringify(packageInfo.version))) - .pipe(replace('__THEME__', JSON.stringify('index'))) - .pipe(replace(/import '(.+?)\.scss';/, 'import \'$1.css\'')) - .pipe(babel({ - babelrc: false, - "presets": [ - "babel-preset-react", - ["babel-preset-env", { "loose": true }], - "babel-preset-stage-0" - ], - "plugins": [ - "babel-plugin-transform-react-es6-displayname", - "babel-plugin-transform-object-assign", - "babel-plugin-transform-proto-to-assign" - ] - } - )) - .pipe(gulp.dest('lib')); -}); - -// const themeList = ['dark']; -// -// // 生成主题对应任务 -// themeList.forEach((theme, index) => { -// const preTask = ['build:plugins', 'build:theme-sass']; -// for (let i = 0; i < themeList.length; i++) { -// if (i < index) { -// preTask.push(`build:theme:${themeList[i]}`); -// } -// } -// -// gulp.task(`build:theme:${theme}`, preTask, (cb) => { -// // 编译主题 -// const webpackConfig = config.prod(theme); -// delete webpackConfig.port; -// webpack(webpackConfig, (err, stats) => { -// if (err || stats.hasErrors()) { -// gutil.log(err); -// } -// gutil.log(`编译主题: ${theme}`); -// cb && cb(); -// }); -// }); -// }); -// -// gulp.task('build:theme', themeList.map(theme => `build:theme:${theme}`), (cb) => { -// cb && cb(); -// }); - -gulp.task('build:plugins', ['clean'], (cb) => { - const webpackConfig = config.prod(undefined, true); - delete webpackConfig.port; - webpack(webpackConfig, (err, stats) => { - if (err || stats.hasErrors()) { - gutil.log(err); - } - - gutil.log(stats.toString({ - colors: true, - chunks: true, - modulesSort: 'size' - })); - - // 不会直接重命名,只能用笨方法 - gulp.src([outputPath + `/*.js`, srcPath + `/*.css`]) - .pipe(rename(function (path) { - path.basename = path.basename.toLowerCase(); - })) - .pipe(gulp.dest('__plugins/')) - .on('end', () => { - del([outputPath + `/*.js`, srcPath + `/*.css`]).then(() => { - gulp.src('__plugins/*') - .pipe(gulp.dest(outputPath + '/')) - .on('end', () => { - // 清空备份 - del('__plugins').then(() => { - cb && cb(); - }); - }); - }); - }); - }); -}); - -gulp.task('default', ['start']); -// gulp.task('build', ['build:dist', 'build:lib', 'build:demo']); -gulp.task('build', ['build:plugins', 'build:theme-sass', 'build:dist', 'build:lib']); - -gulp.task('online', (cb) => { - let buildFirstTime = true; - const webpackConfig = config.online(undefined, false); - const port = webpackConfig.port; - delete webpackConfig.port; - const compiler = webpack(webpackConfig); - - new WebpackDevServer(compiler, { - hot: true, - inline: true, - // stats: { colors: true }, - quiet: true, - publicPath: webpackConfig.output.publicPath, - headers: {'Access-Control-Allow-Origin': '*'}, - contentBase: path.resolve(__dirname, './') - }).listen(port, '0.0.0.0', (err) => { - if (err) { - throw new gutil.PluginError('webpack-dev-server', err); - } - - // 只有第一次启动start的时候才执行 - if (buildFirstTime) { - buildFirstTime = false; - cb && cb(); - // listening - gutil.log('[webpack-dev-server]', gutil.colors.magenta(`http://localhost:${port}`)); - gutil.log('[webpack-dev-server]', 'To stop service, press [Ctrl + C] ..'); - } else { - gutil.log('building success!'); - } - }); -}); diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index 31701660..00000000 --- a/index.d.ts +++ /dev/null @@ -1,139 +0,0 @@ -import * as React from "react"; - -export as namespace CloudCharts; - -declare namespace CloudCharts { - export const version: string; - export const VERSION: string; - - // 主题包和颜色值 - export namespace themes { - function setTheme(theme: string): void; - } - - // 打点控制 - export function track(enable: boolean): void; - - // 插件系统 - export const plugins: object; - export const pluginManager: object; - - // 暴露工具类 - export namespace Util { - const propertyMap: object; - function propertyAssign(...args: any[]): any; - function getParentSize(...args: any[]): any; - function getStatusColor(...args: any[]): any; - function isInvalidNumber(...args: any[]): any; - function numberDecimal(...args: any[]): any; - function beautifyNumber(...args: any[]): any; - function getRawData(...args: any[]): any; - function filterKey(...args: any[]): any; - function isEqual(...args: any[]): any; - function isEqualWith(...args: any[]): any; - function merge(...args: any[]): any; - } - - export class Wnumber extends React.Component {} - export class Wcontainer extends React.Component {} - export class Wicon extends React.Component {} - export class Wcircle extends React.Component {} - export class Wminicontainer extends React.Component {} - export class Wshoot extends React.Component {} - export class Wplaceholder extends React.Component {} - export class Wperline extends React.Component {} - export class Wcount extends React.Component {} - export class Wdashboard extends React.Component {} - - export class Wline extends React.Component {} - export class Wminiline extends React.Component {} - export class Wbar extends React.Component {} - export class Whistogram extends React.Component {} - export class Wlinebar extends React.Component {} - export class Wpie extends React.Component {} - export class Wscatter extends React.Component {} - export class Wmap extends React.Component { - static Area: React.FunctionComponent; - static Point: React.FunctionComponent; - static Shoot: React.FunctionComponent; - } - export class Wcustom extends React.Component {} - export class Wsankey extends React.Component {} - export class Wnightingale extends React.Component {} - export class Wradar extends React.Component {} - export class Wrectangle extends React.Component {} - export class Wfunnel extends React.Component {} - export class WmultiPie extends React.Component {} - export class Wbox extends React.Component {} - export class Wcandlestick extends React.Component {} - export class Wheatmap extends React.Component {} - export class Wtreemap extends React.Component {} - export class Whierarchy extends React.Component {} -} - -export const version: string; -export const VERSION: string; - -// 主题包和颜色值 -export namespace themes { - function setTheme(theme: string): void; -} - -// 打点控制 -export function track(enable: boolean): void; - -// 插件系统 -export const plugins: object; -export const pluginManager: object; - -// 暴露工具类 -export namespace Util { - const propertyMap: object; - function propertyAssign(...args: any[]): any; - function getParentSize(...args: any[]): any; - function getStatusColor(...args: any[]): any; - function isInvalidNumber(...args: any[]): any; - function numberDecimal(...args: any[]): any; - function beautifyNumber(...args: any[]): any; - function getRawData(...args: any[]): any; - function filterKey(...args: any[]): any; - function isEqual(...args: any[]): any; - function isEqualWith(...args: any[]): any; - function merge(...args: any[]): any; -} - -export class Wnumber extends React.Component {} -export class Wcontainer extends React.Component {} -export class Wicon extends React.Component {} -export class Wcircle extends React.Component {} -export class Wminicontainer extends React.Component {} -export class Wshoot extends React.Component {} -export class Wplaceholder extends React.Component {} -export class Wperline extends React.Component {} -export class Wcount extends React.Component {} -export class Wdashboard extends React.Component {} - -export class Wline extends React.Component {} -export class Wminiline extends React.Component {} -export class Wbar extends React.Component {} -export class Whistogram extends React.Component {} -export class Wlinebar extends React.Component {} -export class Wpie extends React.Component {} -export class Wscatter extends React.Component {} -export class Wmap extends React.Component { - static Area: React.FunctionComponent; - static Point: React.FunctionComponent; - static Shoot: React.FunctionComponent; -} -export class Wcustom extends React.Component {} -export class Wsankey extends React.Component {} -export class Wnightingale extends React.Component {} -export class Wradar extends React.Component {} -export class Wrectangle extends React.Component {} -export class Wfunnel extends React.Component {} -export class WmultiPie extends React.Component {} -export class Wbox extends React.Component {} -export class Wcandlestick extends React.Component {} -export class Wheatmap extends React.Component {} -export class Wtreemap extends React.Component {} -export class Whierarchy extends React.Component {} diff --git a/package-lock.json b/package-lock.json index f93dd380..9178cd00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,840 +1,987 @@ { "name": "@alicloud/cloud-charts", - "version": "0.1.10", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "@alib/build-scripts": { + "version": "0.1.31", + "resolved": "https://registry.npm.taobao.org/@alib/build-scripts/download/@alib/build-scripts-0.1.31.tgz?cache=0&sync_timestamp=1614061977389&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40alib%2Fbuild-scripts%2Fdownload%2F%40alib%2Fbuild-scripts-0.1.31.tgz", + "integrity": "sha1-8Nh52KuYkUDvhwn98MUUiRJJzyM=", + "dev": true, + "requires": { + "address": "^1.1.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.1", + "chokidar": "^3.3.1", + "commander": "^2.19.0", + "deepmerge": "^4.0.0", + "detect-port": "^1.3.0", + "fs-extra": "^8.1.0", + "jest": "^26.4.2", + "json5": "^2.1.3", + "lodash": "^4.17.15", + "npmlog": "^4.1.2", + "react-dev-utils": "^9.0.4", + "semver": "^7.3.2", + "webpack": "^4.27.1", + "webpack-dev-server": "^3.7.2", + "yargs-parser": "^14.0.0" + } + }, "@antv/adjust": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@antv/adjust/-/adjust-0.1.1.tgz", - "integrity": "sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q==", + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.2.3.tgz", + "integrity": "sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=", "requires": { - "@antv/util": "~1.3.1" + "@antv/util": "~2.0.0", + "tslib": "^1.10.0" }, "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" } } }, "@antv/attr": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@antv/attr/-/attr-0.1.2.tgz", - "integrity": "sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew==", + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.3.2.tgz", + "integrity": "sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=", "requires": { - "@antv/util": "~1.3.1" + "@antv/color-util": "^2.0.1", + "@antv/util": "~2.0.0", + "tslib": "^1.10.0" }, "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" } } }, + "@antv/color-util": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/@antv/color-util/download/@antv/color-util-2.0.6.tgz", + "integrity": "sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=", + "requires": { + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, "@antv/component": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@antv/component/-/component-0.3.9.tgz", - "integrity": "sha512-Knh/Nq0S8UkTfZj4SL7XizagTfXYqjFAYIqFtOmUaKpRMgccUi7p1oA7fJdNPGktkndljy6fUmCWocEeBXRS2g==", + "version": "0.8.9", + "resolved": "https://registry.npm.taobao.org/@antv/component/download/@antv/component-0.8.9.tgz?cache=0&sync_timestamp=1613699922493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fcomponent%2Fdownload%2F%40antv%2Fcomponent-0.8.9.tgz", + "integrity": "sha1-e971tRWtSBpcIbc2VNHYsbkdaAI=", "requires": { - "@antv/attr": "~0.1.2", - "@antv/g": "~3.3.5", - "@antv/util": "~1.3.1", - "wolfy87-eventemitter": "~5.1.0" - }, - "dependencies": { - "@antv/g": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@antv/g/-/g-3.3.6.tgz", - "integrity": "sha512-2GtyTz++s0BbN6s0ZL2/nrqGYCkd52pVoNH92YkrTdTOvpO6Z4DNoo6jGVgZdPX6Nzwli6yduC8MinVAhE8X6g==", - "requires": { - "@antv/gl-matrix": "~2.7.1", - "@antv/util": "~1.3.1", - "d3-ease": "~1.0.3", - "d3-interpolate": "~1.1.5", - "d3-timer": "~1.0.6", - "wolfy87-eventemitter": "~5.1.0" - } - }, - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - }, - "wolfy87-eventemitter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz", - "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" - } + "@antv/dom-util": "~2.0.1", + "@antv/g-base": "~0.5.0", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.7", + "@antv/scale": "~0.3.1", + "@antv/util": "~2.0.0", + "fecha": "~4.2.0", + "tslib": "^2.0.3" } }, "@antv/coord": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@antv/coord/-/coord-0.1.0.tgz", - "integrity": "sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg==", + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/@antv/coord/download/@antv/coord-0.3.0.tgz", + "integrity": "sha1-RyOc/TVF+Ht6Z6m+2S0SpSnVqZY=", "requires": { - "@antv/util": "~1.3.1" + "@antv/matrix-util": "^3.1.0-beta.2", + "@antv/util": "~2.0.3", + "tslib": "^1.10.0" }, "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" } } }, "@antv/data-set": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@antv/data-set/-/data-set-0.9.6.tgz", - "integrity": "sha512-SA2jt59YYdJEV0R94DtaUKa0NZr8/x2cCd37CiNATM65rrgSZsn4Zis/KQeSyALSZp4PaJaEhvqDBpiG7+XU1w==", - "requires": { - "@antv/hierarchy": "~0.3.15", - "@antv/util": "~1.2.4", - "d3-array": "~1.2.0", - "d3-composite-projections": "~1.2.0", - "d3-dsv": "~1.0.5", + "version": "0.11.8", + "resolved": "https://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.11.8.tgz?cache=0&sync_timestamp=1612145615723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fdata-set%2Fdownload%2F%40antv%2Fdata-set-0.11.8.tgz", + "integrity": "sha1-dBPpAGJIY9Wl87RoQf0An8TypP8=", + "requires": { + "@antv/hierarchy": "^0.6.0", + "@antv/util": "^2.0.0", + "d3-composite-projections": "^1.2.0", + "d3-dsv": "^1.0.5", "d3-geo": "~1.6.4", "d3-geo-projection": "~2.1.2", - "d3-hexjson": "~1.0.1", - "d3-hierarchy": "~1.1.5", - "d3-sankey": "~0.7.1", - "d3-voronoi": "~1.1.2", - "dagre": "~0.8.2", - "point-at-length": "~1.0.2", - "regression": "~2.0.0", - "simple-statistics": "~6.1.0", - "topojson-client": "~3.0.0", - "wolfy87-eventemitter": "~5.1.0" - }, - "dependencies": { - "wolfy87-eventemitter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz", - "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" - } + "d3-hexjson": "^1.0.1", + "d3-hierarchy": "^1.1.5", + "d3-sankey": "^0.9.1", + "d3-voronoi": "^1.1.2", + "dagre": "^0.8.2", + "point-at-length": "^1.0.2", + "regression": "^2.0.0", + "simple-statistics": "^6.1.0", + "topojson-client": "^3.0.0", + "wolfy87-eventemitter": "^5.1.0" + } + }, + "@antv/dom-util": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz", + "integrity": "sha1-y9FYsciODopNhlhxpZabEZBVT/U=", + "requires": { + "tslib": "^2.0.3" } }, - "@antv/g": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@antv/g/-/g-3.4.10.tgz", - "integrity": "sha512-pKy/L1SyRBsXuujdkggqrdBA0/ciAgHiArYBdIJsxHRxCneUP01wGwHdGfDayh2+S0gcSBHynjhoEahsaZaLkw==", + "@antv/event-emitter": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz", + "integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw=" + }, + "@antv/g-base": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/@antv/g-base/download/@antv/g-base-0.5.5.tgz", + "integrity": "sha1-+ztJ9wSsiMdZeXFa73lFJrjp6yw=", + "requires": { + "@antv/event-emitter": "^0.1.1", + "@antv/g-math": "^0.1.6", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.0", + "@types/d3-timer": "^1.0.9", + "d3-ease": "^1.0.5", + "d3-interpolate": "^1.3.2", + "d3-timer": "^1.0.9", + "detect-browser": "^5.1.0", + "tslib": "^2.0.3" + } + }, + "@antv/g-canvas": { + "version": "0.5.6", + "resolved": "https://registry.npm.taobao.org/@antv/g-canvas/download/@antv/g-canvas-0.5.6.tgz", + "integrity": "sha1-cmbdnreIqHgh7nQAWSAuhaOTwkw=", + "requires": { + "@antv/g-base": "^0.5.3", + "@antv/g-math": "^0.1.6", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0", + "tslib": "^2.0.3" + } + }, + "@antv/g-math": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/@antv/g-math/download/@antv/g-math-0.1.7.tgz", + "integrity": "sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=", "requires": { - "@antv/gl-matrix": "~2.7.1", - "@antv/util": "~1.3.1", - "d3-ease": "~1.0.3", - "d3-interpolate": "~1.1.5", - "d3-timer": "~1.0.6", - "detect-browser": "^5.1.0" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - } + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0" } }, - "@antv/g2": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-3.5.17.tgz", - "integrity": "sha512-gOjfA6pwXYEC5mrLbvg1kA3jZI5J5T2kQeGse+iBBsNc1Vje7zs9G+BleUaI4MLXSnqwhsj/ohfkP7d+h4ArNg==", + "@antv/g-svg": { + "version": "0.5.6", + "resolved": "https://registry.npm.taobao.org/@antv/g-svg/download/@antv/g-svg-0.5.6.tgz", + "integrity": "sha1-cLL6mAxDGzmtPFtLU+NqHWCVfWU=", "requires": { - "@antv/adjust": "~0.1.0", - "@antv/attr": "~0.1.2", - "@antv/component": "~0.3.3", - "@antv/coord": "~0.1.0", - "@antv/g": "~3.4.10", - "@antv/scale": "~0.1.1", - "@antv/util": "~1.3.1", - "venn.js": "~0.2.20", - "wolfy87-eventemitter": "~5.1.0" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - }, - "wolfy87-eventemitter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz", - "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" - } + "@antv/g-base": "^0.5.3", + "@antv/g-math": "^0.1.6", + "@antv/util": "~2.0.0", + "detect-browser": "^5.0.0", + "tslib": "^2.0.3" } }, - "@antv/g2-brush": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@antv/g2-brush/-/g2-brush-0.0.2.tgz", - "integrity": "sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA==" - }, - "@antv/gl-matrix": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz", - "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==" + "@antv/g2": { + "version": "4.1.12", + "resolved": "https://registry.npm.taobao.org/@antv/g2/download/@antv/g2-4.1.12.tgz?cache=0&sync_timestamp=1613808838606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg2%2Fdownload%2F%40antv%2Fg2-4.1.12.tgz", + "integrity": "sha1-AEi5FJgw8czWrcItLmTXLo3SgYs=", + "requires": { + "@antv/adjust": "^0.2.1", + "@antv/attr": "^0.3.1", + "@antv/color-util": "^2.0.2", + "@antv/component": "^0.8.7", + "@antv/coord": "^0.3.0", + "@antv/dom-util": "^2.0.2", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "^0.5.0", + "@antv/g-canvas": "^0.5.0", + "@antv/g-svg": "^0.5.0", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "^2.0.3", + "@antv/scale": "^0.3.7", + "@antv/util": "~2.0.5", + "tslib": "^2.0.0" + } }, "@antv/hierarchy": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.3.15.tgz", - "integrity": "sha512-TxgrQrNayVLgimfbWti+QIMVEEt+Pc8dodMC4ypMSAsJ6Yj8JXmcibgego7j7dFRqnlzyUdaiNCQUMBgl2cQvQ==", + "version": "0.6.6", + "resolved": "https://registry.npm.taobao.org/@antv/hierarchy/download/@antv/hierarchy-0.6.6.tgz", + "integrity": "sha1-WEWbCO8ZuzTY3wqW1SlUWAeDrr4=", "requires": { - "@antv/util": "^1.2.4" + "@antv/util": "^2.0.7" } }, - "@antv/scale": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.1.5.tgz", - "integrity": "sha512-7RAu4iH5+Hk21h6+aBMiDTfmLf4IibK2SWjx/+E4f4AXRpqucO+8u7IbZdFkakAWxvqhJtN3oePJuTKqOMcmlg==", + "@antv/matrix-util": { + "version": "3.1.0-beta.2", + "resolved": "https://registry.npm.taobao.org/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.2.tgz", + "integrity": "sha1-tK+vtw299Sr/yjCNNUbIoJD9I8o=", "requires": { - "@antv/util": "~1.3.1", - "fecha": "~2.3.3" + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^1.10.0" }, "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" } } }, + "@antv/path-util": { + "version": "2.0.9", + "resolved": "https://registry.npm.taobao.org/@antv/path-util/download/@antv/path-util-2.0.9.tgz", + "integrity": "sha1-l25KPPtiGXZ6YC0peyBciNZteyw=", + "requires": { + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, + "@antv/scale": { + "version": "0.3.9", + "resolved": "https://registry.npm.taobao.org/@antv/scale/download/@antv/scale-0.3.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fscale%2Fdownload%2F%40antv%2Fscale-0.3.9.tgz", + "integrity": "sha1-xXzH/V6eArlghVgwGreTSxj4E30=", + "requires": { + "@antv/util": "~2.0.3", + "fecha": "~4.2.0", + "tslib": "^2.0.0" + } + }, "@antv/util": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.2.5.tgz", - "integrity": "sha512-yz1AjXSEjNu9O5kK9pqKq69f/Iliu/IA3XXljUcfrlbUtmUJ0CH1tB5I60vPqfaKaUPhz+/35K+56yqaCsGmqA==", + "version": "2.0.13", + "resolved": "https://registry.npm.taobao.org/@antv/util/download/@antv/util-2.0.13.tgz?cache=0&sync_timestamp=1614258238134&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Futil%2Fdownload%2F%40antv%2Futil-2.0.13.tgz", + "integrity": "sha1-fC5wHYlScRbsF89aQAQTxcavy00=", "requires": { - "@antv/gl-matrix": "^2.7.1" + "tslib": "^2.0.3" } }, "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/compat-data": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.13.8.tgz?cache=0&sync_timestamp=1614382893545&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.13.8.tgz", + "integrity": "sha1-W3g7mAjxXO9xVH8baR80+P9gA6Y=", + "dev": true }, "@babel/core": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.0.tgz", - "integrity": "sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.0", - "@babel/types": "^7.11.0", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.13.8.tgz?cache=0&sync_timestamp=1614382898224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.13.8.tgz", + "integrity": "sha1-wZHZxYcXiKWR1p6h3APlhDo2gPs=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.0", + "@babel/parser": "^7.13.4", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", + "semver": "^6.3.0", "source-map": "^0.5.0" }, "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/generator": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", - "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "version": "7.13.9", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.9.tgz", + "integrity": "sha1-Onqpb577jivkLTjYDizrTGTY3jk=", "dev": true, "requires": { - "@babel/types": "^7.11.0", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha1-D1jobfxLs7H819uAZXDhd9Q5tqs=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", - "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz?cache=0&sync_timestamp=1612314760016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha1-a8IDYciLCnTQUTemXKyNPL9vYfw=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.10.5" + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.13.8.tgz?cache=0&sync_timestamp=1614382839963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.13.8.tgz", + "integrity": "sha1-Ar2yJ4NDmvsRsvAJgUvdiDhL1Gg=", "dev": true, "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.13.8.tgz?cache=0&sync_timestamp=1614382918698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.13.8.tgz", + "integrity": "sha1-A2e9CnUFFWzgGMpGT3rJG6WMGgQ=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.17.tgz?cache=0&sync_timestamp=1613661220666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha1-oqyH6eMZJprGVbjUQV6U041mPLc=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.1.5.tgz?cache=0&sync_timestamp=1614675039383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-polyfill-provider%2Fdownload%2F%40babel%2Fhelper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha1-PC+Rt5cbn8Ef53nJRcAUBl3qNA4=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", - "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.13.0.tgz?cache=0&sync_timestamp=1614034839085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha1-F7XFn/Rz2flW9A71cM86dsoSZX8=", "dev": true, "requires": { - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.13.0" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha1-XViC6FW1xe2pHgytwmxueiyFk9g=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.13.0.tgz?cache=0&sync_timestamp=1614034556365&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha1-aqS7Z44PjCL1jNt5RR0wSURhsJE=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.13.0" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.13.tgz?cache=0&sync_timestamp=1612314636371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.13.tgz", + "integrity": "sha1-7GfkQE9BdQRj5FXMMgP2oy6T/LA=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.13.0.tgz", + "integrity": "sha1-QutL2O6mi6tGdRISw1e/7YtA9vE=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha1-XALRcbTIYVsecWP4iMHIHDCiquo=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, "@babel/helper-remap-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", - "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.13.0.tgz?cache=0&sync_timestamp=1614034833096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha1-N2p2DZ97SyB3qd0Fqpw5J8rbIgk=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.13.0.tgz?cache=0&sync_timestamp=1614034503111&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.13.0.tgz", + "integrity": "sha1-YDS3tRlDCUy0FieEjLIZywK+HSQ=", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.13.tgz", + "integrity": "sha1-hHi8xcrPaqFnKyUcHS3eXM1hpsQ=", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314636310&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.17.tgz?cache=0&sync_timestamp=1613661224272&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.17.tgz", + "integrity": "sha1-0fvwEuGnm37rv9xtJwuq+NnrmDE=", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.13.0.tgz?cache=0&sync_timestamp=1614034839729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.13.0.tgz", + "integrity": "sha1-vbXGb9qFJuwjWriUrVOhI1x5/MQ=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.13.0.tgz?cache=0&sync_timestamp=1614034503349&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.13.0.tgz", + "integrity": "sha1-dkeuVzd7TwQIv0+KevAcQuQbrcA=", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.13.8.tgz?cache=0&sync_timestamp=1614382839003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.13.8.tgz", + "integrity": "sha1-ELLax4UmQk38H0dlDQ5BXf2dxIE=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.0.tgz", - "integrity": "sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw==", + "version": "7.13.9", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.9.tgz", + "integrity": "sha1-yjTLleHC3RJoY6hEZa6O9mEUvpk=", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.13.8.tgz?cache=0&sync_timestamp=1614382893742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha1-h6rLV0s7xLVgP2/kFFjXKlouxLE=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034504606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha1-FGN2AAuU79AB5XpAqIpSWvqrnzc=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.13.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.13.5.tgz", + "integrity": "sha1-0oBxRXpbqO4TlLI+ONXc8y6iDvc=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-decorators": "^7.12.13" + } + }, + "@babel/plugin-proposal-do-expressions": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-do-expressions/download/@babel/plugin-proposal-do-expressions-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-do-expressions%2Fdownload%2F%40babel%2Fplugin-proposal-do-expressions-7.12.13.tgz", + "integrity": "sha1-1I8vluo1IXO4htS1JXux7VrExS4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-do-expressions": "^7.12.13" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.13.8.tgz?cache=0&sync_timestamp=1614382919309&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha1-h2ofaWbh3sMy6MlFGv2jvrzfLh0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-default-from/download/@babel/plugin-proposal-export-default-from-7.12.13.tgz", + "integrity": "sha1-8RAoQQipsrlvAbFbO+nlTCYQqYk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-default-from": "^7.12.13" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", - "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.13.tgz?cache=0&sync_timestamp=1612314774011&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha1-OTvkekrNA/oq9uPN6bBuM94bRG0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, + "@babel/plugin-proposal-function-bind": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-function-bind/download/@babel/plugin-proposal-function-bind-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-function-bind%2Fdownload%2F%40babel%2Fplugin-proposal-function-bind-7.12.13.tgz", + "integrity": "sha1-7FQNWa+Kc3Q+z0vo6p7O74atY4Q=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-function-bind": "^7.12.13" + } + }, + "@babel/plugin-proposal-function-sent": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-function-sent/download/@babel/plugin-proposal-function-sent-7.12.13.tgz?cache=0&sync_timestamp=1612315245360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-function-sent%2Fdownload%2F%40babel%2Fplugin-proposal-function-sent-7.12.13.tgz", + "integrity": "sha1-VT9H5Lf36b7La1AT7VxN1ytyQA4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-wrap-function": "^7.12.13", + "@babel/plugin-syntax-function-sent": "^7.12.13" + } + }, "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.13.8.tgz?cache=0&sync_timestamp=1614382894206&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha1-vx+zYlRwda/aNjTtMVccWQGv73s=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", - "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.13.8.tgz?cache=0&sync_timestamp=1614383099367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha1-k/p41jhXxAzjyMMxUiD9AL+7Tho=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz?cache=0&sync_timestamp=1614382839100&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha1-NzCjHa/TwQ2MzRBkjtgKKsVHLvM=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha1-vZ2jGI54e1EgtPnUZagmHOZ+0ds=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.13.8.tgz?cache=0&sync_timestamp=1614382897959&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha1-XSEKTXJ9bOOxj53oLMmaOWTu1go=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.13.8.tgz?cache=0&sync_timestamp=1614383097188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha1-Ota9WQFQbqmW/DG9zzzPor7XEQc=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.13.8.tgz?cache=0&sync_timestamp=1614383102450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.13.8.tgz", + "integrity": "sha1-4535Pv5+fmIYQbq8GXmC4UDpB1Y=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-pipeline-operator": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-pipeline-operator/download/@babel/plugin-proposal-pipeline-operator-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-pipeline-operator%2Fdownload%2F%40babel%2Fplugin-proposal-pipeline-operator-7.12.13.tgz", + "integrity": "sha1-c5pJDSU1E/T76tAWr8+7jtmA650=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-pipeline-operator": "^7.12.13" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.13.0.tgz?cache=0&sync_timestamp=1614034842648&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha1-BL1MbUD25rv6L1fi2AlLrZAO94c=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-throw-expressions": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-throw-expressions/download/@babel/plugin-proposal-throw-expressions-7.12.13.tgz?cache=0&sync_timestamp=1612315243208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-throw-expressions%2Fdownload%2F%40babel%2Fplugin-proposal-throw-expressions-7.12.13.tgz", + "integrity": "sha1-SKbkpZiAQdFrCi8VaKO1GPi2wdQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-throw-expressions": "^7.12.13" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.13.tgz?cache=0&sync_timestamp=1612315369895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha1-vr3lEzm+gpwXqqrO0YZB3rYrObo=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-bigint/download/@babel/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha1-TJpvZp9dDN8bkKFnHpoUa+UwDOo=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz?cache=0&sync_timestamp=1612314770269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "@babel/plugin-syntax-decorators": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.13.tgz", + "integrity": "sha1-+sgpvzx+9KG8kWJXtAPljGva9kg=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-syntax-flow": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", - "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "@babel/plugin-syntax-do-expressions": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-do-expressions/download/@babel/plugin-syntax-do-expressions-7.12.13.tgz", + "integrity": "sha1-zMVte63s8hpMR6n2PvDuuVgvAwY=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-syntax-json-strings": { + "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz?cache=0&sync_timestamp=1599827954750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "@babel/plugin-syntax-export-default-from": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-default-from/download/@babel/plugin-syntax-export-default-from-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-default-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-default-from-7.12.13.tgz", + "integrity": "sha1-PIB9N++vCoBvHetVbMs7L1Yq6cI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.12.13.tgz?cache=0&sync_timestamp=1612314776039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-flow%2Fdownload%2F%40babel%2Fplugin-syntax-flow-7.12.13.tgz", + "integrity": "sha1-XfmWJQPAqckYOBySnVHU1pSefoY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-function-bind": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-function-bind/download/@babel/plugin-syntax-function-bind-7.12.13.tgz?cache=0&sync_timestamp=1612314826130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-function-bind%2Fdownload%2F%40babel%2Fplugin-syntax-function-bind-7.12.13.tgz", + "integrity": "sha1-IeMuIzwQJYsEN6uPkYjqnYvdwOU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-function-sent": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-function-sent/download/@babel/plugin-syntax-function-sent-7.12.13.tgz?cache=0&sync_timestamp=1612315244369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-function-sent%2Fdownload%2F%40babel%2Fplugin-syntax-function-sent-7.12.13.tgz", + "integrity": "sha1-YMs09zlbAyX/u1sHlM1biOI+GSg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-import-meta/download/@babel/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha1-7mATSMNw+jNNIge+FYd3SWUh/VE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha1-BE+4HrrWaY/mLEeIdVdby7m3DxU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -842,8 +989,8 @@ }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -851,8 +998,8 @@ }, "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -860,8 +1007,8 @@ }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -869,8 +1016,8 @@ }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -878,327 +1025,350 @@ }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-pipeline-operator": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-pipeline-operator/download/@babel/plugin-syntax-pipeline-operator-7.12.13.tgz", + "integrity": "sha1-pqAbm9G2lZRXg+2Ka2Zpb/F5mBw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-throw-expressions": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-throw-expressions/download/@babel/plugin-syntax-throw-expressions-7.12.13.tgz?cache=0&sync_timestamp=1612315243328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-throw-expressions%2Fdownload%2F%40babel%2Fplugin-syntax-throw-expressions-7.12.13.tgz", + "integrity": "sha1-uwK/uvV9catpKA6/alOqRa1MPxo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha1-xfD6biSfW3OXJ/kjVAz3qAYTAXg=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.12.13.tgz?cache=0&sync_timestamp=1612314817650&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-typescript%2Fdownload%2F%40babel%2Fplugin-syntax-typescript-7.12.13.tgz", + "integrity": "sha1-nf8RHKZBVM7w9NxSz4Q9nxLORHQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.13.0.tgz?cache=0&sync_timestamp=1614034822229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha1-EKWb661S1jegJ6+mkujVzv9ePa4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.13.0.tgz?cache=0&sync_timestamp=1614034507617&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha1-jhEr9ncbgr8el05eJoBsXJmqUW8=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.13.tgz?cache=0&sync_timestamp=1612314818063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha1-qb8YNvKjm062zwmWdzneKepL9MQ=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", - "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha1-825VB20G9B39eFV+oDnBtYFkLmE=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.13.0.tgz?cache=0&sync_timestamp=1614034503988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.13.0.tgz", + "integrity": "sha1-AmUVUHXEKRi/TTpAUxNBdq2bUzs=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034823289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha1-hFxui5u1U3ax+guS7wvcjqBmRO0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.13.0.tgz?cache=0&sync_timestamp=1614034500254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha1-xdzicAFNTh67HYBhFmlMErcCiWM=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.13.tgz?cache=0&sync_timestamp=1612315581050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha1-PxYBzCmQW/y2f1ORDxl66v67Ja0=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.13.tgz?cache=0&sync_timestamp=1612314817333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha1-bwa4eouAP9ko5UuBwljwoAM5BN4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.13.tgz?cache=0&sync_timestamp=1612314730682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha1-TVI5C5onPmUeSrpq7knvQOgM0KE=", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", - "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.13.0.tgz?cache=0&sync_timestamp=1614038137274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-flow-strip-types%2Fdownload%2F%40babel%2Fplugin-transform-flow-strip-types-7.13.0.tgz", + "integrity": "sha1-WBd6SMIJlx6CNOmZBstr0RIq3dM=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-flow": "^7.12.13" } }, "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.13.0.tgz?cache=0&sync_timestamp=1614034500476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.13.0.tgz", + "integrity": "sha1-x5n4gagJGsJrVIZ6hFw+l9JpYGI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.13.tgz?cache=0&sync_timestamp=1612314730751&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.13.tgz", + "integrity": "sha1-uwJEUvmq7YYdN0yOeiQlLOOlAFE=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.13.tgz?cache=0&sync_timestamp=1612314767825&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.13.tgz", + "integrity": "sha1-LKRbr+SoIBl88xV5Sk0mVg/kvbk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha1-X/pmzVm54ZExTJ8fgDuTjowIHkA=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha1-GfUR1g49h1PMWm1Od106UYSGbMM=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.13.8.tgz?cache=0&sync_timestamp=1614382840057&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha1-ewGtfC3PInWwb6F4HgDRPUILPhs=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "version": "7.13.8", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.13.8.tgz?cache=0&sync_timestamp=1614383098157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha1-bQZu4r/zx7PWC/KN7Baa2ZODGuM=", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha1-ij2WqX0ZlwW5/QIVgAgq+BwG5ws=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314730683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha1-IhNyWl9bu+NktQw7pZmMlZnFydk=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13" } }, "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha1-4i2MOvJLFQ3VKMvW5oXnmb8cNRw=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.13.tgz?cache=0&sync_timestamp=1612315374931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.13.tgz", + "integrity": "sha1-tEFqLWO4974xTz00m9VanBtRcfc=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" } }, "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha1-j6dgPjCX+cC3yhpIIbwvtS6eUAc=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.13.tgz?cache=0&sync_timestamp=1612314768626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha1-TmqeN4ZNjxs7wOLc57+IV9uLGoE=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", - "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-constant-elements/download/@babel/plugin-transform-react-constant-elements-7.12.13.tgz", + "integrity": "sha1-+O5WiIVF1T2A92azzBVjqywkH5I=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", - "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha1-wo7/13GydvRkdBHJcz27LS2pVL0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.12.17.tgz", + "integrity": "sha1-3SwSmfXibeWEk5iS3jz8GAejjyQ=", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.12.17" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", - "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-development/download/@babel/plugin-transform-react-jsx-development-7.12.17.tgz", + "integrity": "sha1-9RDA+nzXI0FTU5+aNiztQaXKFEc=", "dev": true, "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/plugin-transform-react-jsx": "^7.12.17" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", - "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-self/download/@babel/plugin-transform-react-jsx-self-7.12.13.tgz?cache=0&sync_timestamp=1612314828431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-react-jsx-self%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-self-7.12.13.tgz", + "integrity": "sha1-Qi2Z0SLVkqyrnDXqIqbP2b8Yn2A=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", - "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.12.13.tgz", + "integrity": "sha1-BR12EmvuXJpqo7o3vi9sFpiFa8s=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", - "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-react-pure-annotations/download/@babel/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha1-BdRvCrTRM5rFmt8goUYskbN6GkI=", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -1206,188 +1376,219 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.13.tgz?cache=0&sync_timestamp=1612314644517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha1-tii8ychSYKwa6wW0W94lIQGUovU=", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha1-fZmI1PBuD+aX6h2YAxiKoYtHJpU=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.13.9", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.13.9.tgz", + "integrity": "sha1-dE0xAzOKDWyQ3uBJdVgVC0kM7gc=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha1-23VXMrcMU51QTGOQ2c6Q/mSv960=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.13.0.tgz?cache=0&sync_timestamp=1614034823666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.13.0.tgz", + "integrity": "sha1-hIh3EOJzwYFaznrkWfb0Kl0x1f0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.13.tgz?cache=0&sync_timestamp=1612315370472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha1-dg/9k2+s5z+GCuZG+4bugvPQbR8=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha1-o2BJEnl3rZRDje50Q1mNHO/fQJ0=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.13.tgz?cache=0&sync_timestamp=1612315369316&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha1-eF3Weh8upXnZwr5yLejITLhfWn8=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.13.0.tgz", + "integrity": "sha1-SkmOHzYANC0qnmH2ATEBj1V3SFM=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-typescript": "^7.12.13" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha1-hAztO4FtO1En3R0S3O3F3q0aXnQ=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314730902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha1-tSUhaFgE4VWxIC6D/BiNNLtw9aw=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/preset-env": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", - "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "version": "7.13.9", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.13.9.tgz", + "integrity": "sha1-PuXyMzFrENBm1/N5xtHhOpaFNlQ=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.8", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.0", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } }, "@babel/preset-flow": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz", - "integrity": "sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/preset-flow/download/@babel/preset-flow-7.12.13.tgz?cache=0&sync_timestamp=1612314789819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-flow%2Fdownload%2F%40babel%2Fpreset-flow-7.12.13.tgz", + "integrity": "sha1-ce5/5lqVtQesErytZaTO0n2N/D4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-flow-strip-types": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-transform-flow-strip-types": "^7.12.13" } }, "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz", + "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1398,72 +1599,148 @@ } }, "@babel/preset-react": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", - "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/preset-react/download/@babel/preset-react-7.12.13.tgz", + "integrity": "sha1-X5EbLrJCd/poaCDVvYHK2aBgKgo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-transform-react-display-name": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.12.13", + "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + } + }, + "@babel/preset-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-typescript/download/@babel/preset-typescript-7.13.0.tgz?cache=0&sync_timestamp=1614036093688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-typescript%2Fdownload%2F%40babel%2Fpreset-typescript-7.13.0.tgz", + "integrity": "sha1-qxB+XwUGCdgG+7A5vsVTszRixgo=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.10.4", - "@babel/plugin-transform-react-jsx": "^7.10.4", - "@babel/plugin-transform-react-jsx-development": "^7.10.4", - "@babel/plugin-transform-react-jsx-self": "^7.10.4", - "@babel/plugin-transform-react-jsx-source": "^7.10.4", - "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-transform-typescript": "^7.13.0" } }, "@babel/runtime": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", - "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", + "version": "7.13.9", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.13.9.tgz", + "integrity": "sha1-l9viEW4mMMSJ8i4GVt7NYKqh/O4=", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz?cache=0&sync_timestamp=1612314730561&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } } }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz", + "integrity": "sha1-daLotRy3WKdVPWgEpZMteqznXDk=", + "dev": true + }, + "@builder/babel-preset-ice": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/@builder/babel-preset-ice/download/@builder/babel-preset-ice-1.0.1.tgz?cache=0&sync_timestamp=1614157057126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40builder%2Fbabel-preset-ice%2Fdownload%2F%40builder%2Fbabel-preset-ice-1.0.1.tgz", + "integrity": "sha1-4+yGGViKTpK4Jw8x3lkICW/mFBw=", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/plugin-proposal-decorators": "^7.1.2", + "@babel/plugin-proposal-do-expressions": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-export-namespace-from": "^7.0.0", + "@babel/plugin-proposal-function-bind": "^7.0.0", + "@babel/plugin-proposal-function-sent": "^7.1.0", + "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-proposal-pipeline-operator": "^7.0.0", + "@babel/plugin-proposal-throw-expressions": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-import-meta": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.1.0", + "@babel/preset-env": "^7.4.0", + "@babel/preset-react": "^7.0.0", + "@babel/preset-typescript": "^7.3.3" + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz", + "integrity": "sha1-+GSuhQBND8q29QvpFBxNo2jRZWo=", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz", + "integrity": "sha1-rUldxBsS511YjG24uYNPCPoTHrc=", + "dev": true + }, "@emotion/cache": { "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", + "resolved": "https://registry.npm.taobao.org/@emotion/cache/download/@emotion/cache-10.0.29.tgz", + "integrity": "sha1-h+fmT0EsBgEC1Yn+fG3AQub50eA=", "dev": true, "requires": { "@emotion/sheet": "0.9.4", @@ -1473,9 +1750,9 @@ } }, "@emotion/core": { - "version": "10.0.28", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz", - "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==", + "version": "10.1.1", + "resolved": "https://registry.npm.taobao.org/@emotion/core/download/@emotion/core-10.1.1.tgz", + "integrity": "sha1-yVbBNl8vJIGWAGS8uMRzLl+2EsM=", "dev": true, "requires": { "@babel/runtime": "^7.5.5", @@ -1488,8 +1765,8 @@ }, "@emotion/css": { "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", - "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", + "resolved": "https://registry.npm.taobao.org/@emotion/css/download/@emotion/css-10.0.27.tgz", + "integrity": "sha1-OnRYGY+767U7AbK4f2Tl4hJB4Uw=", "dev": true, "requires": { "@emotion/serialize": "^0.11.15", @@ -1499,14 +1776,14 @@ }, "@emotion/hash": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "resolved": "https://registry.npm.taobao.org/@emotion/hash/download/@emotion/hash-0.8.0.tgz", + "integrity": "sha1-u7/2iXj+/b5ozLUzvIy+HRr7VBM=", "dev": true }, "@emotion/is-prop-valid": { "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "resolved": "https://registry.npm.taobao.org/@emotion/is-prop-valid/download/@emotion/is-prop-valid-0.8.8.tgz?cache=0&sync_timestamp=1612610437261&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40emotion%2Fis-prop-valid%2Fdownload%2F%40emotion%2Fis-prop-valid-0.8.8.tgz", + "integrity": "sha1-2yixxDaKJZtgqXMR1qlS1P0BrBo=", "dev": true, "requires": { "@emotion/memoize": "0.7.4" @@ -1514,14 +1791,14 @@ }, "@emotion/memoize": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "resolved": "https://registry.npm.taobao.org/@emotion/memoize/download/@emotion/memoize-0.7.4.tgz", + "integrity": "sha1-Gb8PWvGRSREcQNmLsM+CEZ9dnus=", "dev": true }, "@emotion/serialize": { "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", + "resolved": "https://registry.npm.taobao.org/@emotion/serialize/download/@emotion/serialize-0.11.16.tgz", + "integrity": "sha1-3uBfnpatL7JaUga211my0e0zea0=", "dev": true, "requires": { "@emotion/hash": "0.8.0", @@ -1532,23 +1809,23 @@ }, "dependencies": { "csstype": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz", - "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==", + "version": "2.6.16", + "resolved": "https://registry.npm.taobao.org/csstype/download/csstype-2.6.16.tgz?cache=0&sync_timestamp=1614159662633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.16.tgz", + "integrity": "sha1-VE1p9UcBO4WkDRW/912zjzT+nDk=", "dev": true } } }, "@emotion/sheet": { "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", + "resolved": "https://registry.npm.taobao.org/@emotion/sheet/download/@emotion/sheet-0.9.4.tgz", + "integrity": "sha1-iUN0vqOeww9Im7/DQ4GSuXdNMuU=", "dev": true }, "@emotion/styled": { "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", - "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", + "resolved": "https://registry.npm.taobao.org/@emotion/styled/download/@emotion/styled-10.0.27.tgz", + "integrity": "sha1-Estn6R9610MeGHWx2DqUuBQTPq8=", "dev": true, "requires": { "@emotion/styled-base": "^10.0.27", @@ -1557,8 +1834,8 @@ }, "@emotion/styled-base": { "version": "10.0.31", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz", - "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==", + "resolved": "https://registry.npm.taobao.org/@emotion/styled-base/download/@emotion/styled-base-10.0.31.tgz", + "integrity": "sha1-lAlX7gqhXGl0rcfUlP8ZdlovdCo=", "dev": true, "requires": { "@babel/runtime": "^7.5.5", @@ -1569,351 +1846,195 @@ }, "@emotion/stylis": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", + "resolved": "https://registry.npm.taobao.org/@emotion/stylis/download/@emotion/stylis-0.8.5.tgz", + "integrity": "sha1-3qyzib1u530ef8rMzp4WxcfnjgQ=", "dev": true }, "@emotion/unitless": { "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "resolved": "https://registry.npm.taobao.org/@emotion/unitless/download/@emotion/unitless-0.7.5.tgz", + "integrity": "sha1-dyESkcGQCnALinjPr9oxYNdpSe0=", "dev": true }, "@emotion/utils": { "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", + "resolved": "https://registry.npm.taobao.org/@emotion/utils/download/@emotion/utils-0.11.3.tgz", + "integrity": "sha1-p1mGOGe++n5YNADTImUqP0SCCSQ=", "dev": true }, "@emotion/weak-memoize": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", + "resolved": "https://registry.npm.taobao.org/@emotion/weak-memoize/download/@emotion/weak-memoize-0.2.5.tgz", + "integrity": "sha1-ju2YLi7m9/TkTCU+EpYpgHke/UY=", "dev": true }, - "@icons/material": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", - "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==", - "dev": true + "@hypnosphi/create-react-context": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/@hypnosphi/create-react-context/download/@hypnosphi/create-react-context-0.3.1.tgz", + "integrity": "sha1-+L/r3HZl9dQmy6N1Pg6cfTFU18Y=", + "dev": true, + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "@iceworks/constant": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/@iceworks/constant/download/@iceworks/constant-0.1.5.tgz", + "integrity": "sha1-i64gQbGDM0EbSpYJdvANCWLlmnM=", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "js-base64": "^3.2.4", + "typescript": "^3.8.3" + }, + "dependencies": { + "js-base64": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-3.6.0.tgz", + "integrity": "sha1-dz4d5ij08pjWWn6YQsUCRHUfV1Y=", + "dev": true + } } }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "@icons/material": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/@icons/material/download/@icons/material-0.2.4.tgz", + "integrity": "sha1-6QyfcXaLNzbnbX3WeD/Gwq+oi8g=", "dev": true }, - "@reach/router": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", - "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz", + "integrity": "sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=", "dev": true, "requires": { - "create-react-context": "0.3.0", - "invariant": "^2.2.3", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" } }, - "@storybook/addon-actions": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-5.3.19.tgz", - "integrity": "sha512-gXF29FFUgYlUoFf1DcVCmH1chg2ElaHWMmCi5h7aZe+g6fXBQw0UtEdJnYLMOqZCIiWoZyuf1ETD0RbNHPhRIw==", + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/@istanbuljs/schema/download/@istanbuljs/schema-0.1.3.tgz?cache=0&sync_timestamp=1613227144228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40istanbuljs%2Fschema%2Fdownload%2F%40istanbuljs%2Fschema-0.1.3.tgz", + "integrity": "sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=", + "dev": true + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/console/download/@jest/console-26.6.2.tgz", + "integrity": "sha1-TgS8RkAUNYsDq0k3gF7jagrrmPI=", "dev": true, "requires": { - "@storybook/addons": "5.3.19", - "@storybook/api": "5.3.19", - "@storybook/client-api": "5.3.19", - "@storybook/components": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/theming": "5.3.19", - "core-js": "^3.0.1", - "fast-deep-equal": "^2.0.1", - "global": "^4.3.2", - "polished": "^3.3.1", - "prop-types": "^15.7.2", - "react": "^16.8.3", - "react-inspector": "^4.0.0", - "uuid": "^3.3.2" + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "@storybook/addon-knobs": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-5.3.19.tgz", - "integrity": "sha512-e7z6KhvVOUGjygK4VL5Un1U3t0XG0jkb/BOHVWQMtH5dWNn3zofD3LrZZy24eAsyre/ej/LGo/BzwDSXkKLTog==", + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/@jest/core/download/@jest/core-26.6.3.tgz", + "integrity": "sha1-djn8s4M9dIpGVq2lS94ZMFHkX60=", "dev": true, "requires": { - "@storybook/addons": "5.3.19", - "@storybook/api": "5.3.19", - "@storybook/client-api": "5.3.19", - "@storybook/components": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/theming": "5.3.19", - "@types/react-color": "^3.0.1", - "copy-to-clipboard": "^3.0.8", - "core-js": "^3.0.1", - "escape-html": "^1.0.3", - "fast-deep-equal": "^2.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "prop-types": "^15.7.2", - "qs": "^6.6.0", - "react-color": "^2.17.0", - "react-lifecycles-compat": "^3.0.4", - "react-select": "^3.0.8" - } - }, - "@storybook/addon-links": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-5.3.19.tgz", - "integrity": "sha512-gn9u8lebREfRsyzxoDPG0O+kOf5aJ0BhzcCJGZZdqha0F6OWHhh8vJYZZvjJ/Qwze+Qt2zjrgWm+Q6+JLD8ugQ==", - "dev": true, - "requires": { - "@storybook/addons": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/csf": "0.0.1", - "@storybook/router": "5.3.19", - "core-js": "^3.0.1", - "global": "^4.3.2", - "prop-types": "^15.7.2", - "qs": "^6.6.0", - "ts-dedent": "^1.1.0" - } - }, - "@storybook/addons": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.19.tgz", - "integrity": "sha512-Ky/k22p6i6FVNvs1VhuFyGvYJdcp+FgXqFgnPyY/OXJW/vPDapdElpTpHJZLFI9I2FQBDcygBPU5RXkumQ+KUQ==", - "dev": true, - "requires": { - "@storybook/api": "5.3.19", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", - "core-js": "^3.0.1", - "global": "^4.3.2", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/api": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.19.tgz", - "integrity": "sha512-U/VzDvhNCPmw2igvJYNNM+uwJCL+3teiL6JmuoL4/cmcqhI6IqqG9dZmMP1egoCd19wXEP7rnAfB/VcYVg41dQ==", - "dev": true, - "requires": { - "@reach/router": "^1.2.1", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/csf": "0.0.1", - "@storybook/router": "5.3.19", - "@storybook/theming": "5.3.19", - "@types/reach__router": "^1.2.3", - "core-js": "^3.0.1", - "fast-deep-equal": "^2.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "prop-types": "^15.6.2", - "react": "^16.8.3", - "semver": "^6.0.0", - "shallow-equal": "^1.1.0", - "store2": "^2.7.1", - "telejson": "^3.2.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.19.tgz", - "integrity": "sha512-Iq0f4NPHR0UVVFCWt0cI7Myadk4/SATXYJPT6sv95KhnLjKEeYw571WBlThfp8a9FM80887xG+eIRe93c8dleA==", - "dev": true, - "requires": { - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "core-js": "^3.0.1", - "global": "^4.3.2", - "telejson": "^3.2.0" - } - }, - "@storybook/channels": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.19.tgz", - "integrity": "sha512-38seaeyshRGotTEZJppyYMg/Vx2zRKgFv1L6uGqkJT0LYoNSYtJhsiNFCJ2/KUJu2chAJ/j8h80bpVBVLQ/+WA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/client-api": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.19.tgz", - "integrity": "sha512-Dh8ZLrLH91j9Fa28Gmp0KFUvvgK348aNMrDNAUdj4m4witz/BWQ2pxz6qq9/xFVErk/GanVC05kazGElqgYCRQ==", - "dev": true, - "requires": { - "@storybook/addons": "5.3.19", - "@storybook/channel-postmessage": "5.3.19", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/csf": "0.0.1", - "@types/webpack-env": "^1.15.0", - "core-js": "^3.0.1", - "eventemitter3": "^4.0.0", - "global": "^4.3.2", - "is-plain-object": "^3.0.0", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "ts-dedent": "^1.1.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.19.tgz", - "integrity": "sha512-nHftT9Ow71YgAd2/tsu79kwKk30mPuE0sGRRUHZVyCRciGFQweKNOS/6xi2Aq+WwBNNjPKNlbgxwRt1yKe1Vkg==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/components": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.19.tgz", - "integrity": "sha512-3g23/+ktlocaHLJKISu9Neu3XKa6aYP2ctDYkRtGchSB0Q55hQsUVGO+BEVuT7Pk2D59mVCxboBjxcRoPUY4pw==", - "dev": true, - "requires": { - "@storybook/client-logger": "5.3.19", - "@storybook/theming": "5.3.19", - "@types/react-syntax-highlighter": "11.0.4", - "@types/react-textarea-autosize": "^4.3.3", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "polished": "^3.3.1", - "popper.js": "^1.14.7", - "prop-types": "^15.7.2", - "react": "^16.8.3", - "react-dom": "^16.8.3", - "react-focus-lock": "^2.1.0", - "react-helmet-async": "^1.0.2", - "react-popper-tooltip": "^2.8.3", - "react-syntax-highlighter": "^11.0.2", - "react-textarea-autosize": "^7.1.0", - "simplebar-react": "^1.0.0-alpha.6", - "ts-dedent": "^1.1.0" - } - }, - "@storybook/core": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.19.tgz", - "integrity": "sha512-4EYzglqb1iD6x9gxtAYpRGwGP6qJGiU2UW4GiYrErEmeu6y6tkyaqW5AwGlIo9+6jAfwD0HjaK8afvjKTtmmMQ==", - "dev": true, - "requires": { - "@babel/plugin-proposal-class-properties": "^7.7.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-transform-react-constant-elements": "^7.2.0", - "@babel/preset-env": "^7.4.5", - "@storybook/addons": "5.3.19", - "@storybook/channel-postmessage": "5.3.19", - "@storybook/client-api": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/csf": "0.0.1", - "@storybook/node-logger": "5.3.19", - "@storybook/router": "5.3.19", - "@storybook/theming": "5.3.19", - "@storybook/ui": "5.3.19", - "airbnb-js-shims": "^2.2.1", - "ansi-to-html": "^0.6.11", - "autoprefixer": "^9.7.2", - "babel-plugin-add-react-displayname": "^0.0.5", - "babel-plugin-emotion": "^10.0.20", - "babel-plugin-macros": "^2.7.0", - "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5", - "boxen": "^4.1.0", - "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^3.0.0", - "cli-table3": "0.5.1", - "commander": "^4.0.1", - "core-js": "^3.0.1", - "corejs-upgrade-webpack-plugin": "^2.2.0", - "css-loader": "^3.0.0", - "detect-port": "^1.3.0", - "dotenv-webpack": "^1.7.0", - "ejs": "^2.7.4", - "express": "^4.17.0", - "file-loader": "^4.2.0", - "file-system-cache": "^1.0.5", - "find-cache-dir": "^3.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.0.1", - "glob-base": "^0.3.0", - "global": "^4.3.2", - "html-webpack-plugin": "^4.0.0-beta.2", - "inquirer": "^7.0.0", - "interpret": "^2.0.0", - "ip": "^1.1.5", - "json5": "^2.1.1", - "lazy-universal-dotenv": "^3.0.1", + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", "micromatch": "^4.0.2", - "node-fetch": "^2.6.0", - "open": "^7.0.0", - "pnp-webpack-plugin": "1.5.0", - "postcss-flexbugs-fixes": "^4.1.0", - "postcss-loader": "^3.0.0", - "pretty-hrtime": "^1.0.3", - "qs": "^6.6.0", - "raw-loader": "^3.1.0", - "react-dev-utils": "^9.0.0", - "regenerator-runtime": "^0.13.3", - "resolve": "^1.11.0", - "resolve-from": "^5.0.0", - "semver": "^6.0.0", - "serve-favicon": "^2.5.0", - "shelljs": "^0.8.3", - "style-loader": "^1.0.0", - "terser-webpack-plugin": "^2.1.2", - "ts-dedent": "^1.1.0", - "unfetch": "^4.1.0", - "url-loader": "^2.0.1", - "util-deprecate": "^1.0.2", - "webpack": "^4.33.0", - "webpack-dev-middleware": "^3.7.0", - "webpack-hot-middleware": "^2.25.0", - "webpack-virtual-modules": "^0.2.0" + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -1922,8 +2043,8 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { "color-name": "~1.1.4" @@ -1931,70 +2052,20 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, - "file-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", - "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - } - }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "style-loader": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", - "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.6" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -2002,52 +2073,89 @@ } } }, - "@storybook/core-events": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.19.tgz", - "integrity": "sha512-lh78ySqMS7pDdMJAQAe35d1I/I4yPTqp09Cq0YIYOxx9BQZhah4DZTV1QIZt22H5p2lPb5MWLkWSxBaexZnz8A==", + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/environment/download/@jest/environment-26.6.2.tgz", + "integrity": "sha1-ujZMxy4iHnnMjwqZVVv111d8+Sw=", "dev": true, "requires": { - "core-js": "^3.0.1" + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" } }, - "@storybook/csf": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", - "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-26.6.2.tgz", + "integrity": "sha1-RZwym89wzuSvTX4/PmeEgSNTWq0=", "dev": true, "requires": { - "lodash": "^4.17.15" + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" } }, - "@storybook/node-logger": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.19.tgz", - "integrity": "sha512-hKshig/u5Nj9fWy0OsyU04yqCxr0A9pydOHIassr4fpLAaePIN2YvqCqE2V+TxQHjZUnowSSIhbXrGt0DI5q2A==", + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/globals/download/@jest/globals-26.6.2.tgz", + "integrity": "sha1-W2E7eKGqJlWukI66Y4zJaiDfcgo=", "dev": true, "requires": { - "@types/npmlog": "^4.1.2", - "chalk": "^3.0.0", - "core-js": "^3.0.1", - "npmlog": "^4.1.2", - "pretty-hrtime": "^1.0.3", - "regenerator-runtime": "^0.13.3" + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/reporters/download/@jest/reporters-26.6.2.tgz", + "integrity": "sha1-H1GLmWN6Xxgwe9Ps+SdfaIKmZ/Y=", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" }, "dependencies": { "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -2056,8 +2164,8 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { "color-name": "~1.1.4" @@ -2065,20 +2173,20 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -2086,8411 +2194,12994 @@ } } }, - "@storybook/react": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.19.tgz", - "integrity": "sha512-OBRUqol3YLQi/qE55x2pWkv4YpaAmmfj6/Km+7agx+og+oNQl0nnlXy7r27X/4j3ERczzURa5pJHtSjwiNaJNw==", + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-26.6.2.tgz", + "integrity": "sha1-Ka9eHi4yTK/MyTbyGDCfVKtp1TU=", "dev": true, "requires": { - "@babel/plugin-transform-react-constant-elements": "^7.6.3", - "@babel/preset-flow": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@storybook/addons": "5.3.19", - "@storybook/core": "5.3.19", - "@storybook/node-logger": "5.3.19", - "@svgr/webpack": "^4.0.3", - "@types/webpack-env": "^1.15.0", - "babel-plugin-add-react-displayname": "^0.0.5", - "babel-plugin-named-asset-import": "^0.3.1", - "babel-plugin-react-docgen": "^4.0.0", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "mini-css-extract-plugin": "^0.7.0", - "prop-types": "^15.7.2", - "react-dev-utils": "^9.0.0", - "regenerator-runtime": "^0.13.3", - "semver": "^6.0.0", - "ts-dedent": "^1.1.0", - "webpack": "^4.33.0" - } - }, - "@storybook/router": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.19.tgz", - "integrity": "sha512-yNClpuP7BXQlBTRf6Ggle3/R349/k6kvI5Aim4jf6X/2cFVg2pzBXDAF41imNm9PcvdxwabQLm6I48p7OvKr/w==", - "dev": true, - "requires": { - "@reach/router": "^1.2.1", - "@storybook/csf": "0.0.1", - "@types/reach__router": "^1.2.3", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/theming": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.19.tgz", - "integrity": "sha512-ecG+Rq3hc1GOzKHamYnD4wZ0PEP9nNg0mXbC3RhbxfHj+pMMCWWmx9B2Uu75SL1PTT8WcfkFO0hU/0IO84Pzlg==", - "dev": true, - "requires": { - "@emotion/core": "^10.0.20", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "5.3.19", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.3.1", - "prop-types": "^15.7.2", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.0" + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" } }, - "@storybook/ui": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.19.tgz", - "integrity": "sha512-r0VxdWab49nm5tzwvveVDnsHIZHMR76veYOu/NHKDUZ5hnQl1LMG1YyMCFFa7KiwD/OrZxRWr6/Ma7ep9kR4Gw==", + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-26.6.2.tgz", + "integrity": "sha1-VdpYti3xNFdsyVR276X3lJ4/Xxg=", "dev": true, "requires": { - "@emotion/core": "^10.0.20", - "@storybook/addons": "5.3.19", - "@storybook/api": "5.3.19", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/components": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/router": "5.3.19", - "@storybook/theming": "5.3.19", - "copy-to-clipboard": "^3.0.8", - "core-js": "^3.0.1", - "core-js-pure": "^3.0.1", - "emotion-theming": "^10.0.19", - "fast-deep-equal": "^2.0.1", - "fuse.js": "^3.4.6", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "polished": "^3.3.1", - "prop-types": "^15.7.2", - "qs": "^6.6.0", - "react": "^16.8.3", - "react-dom": "^16.8.3", - "react-draggable": "^4.0.3", - "react-helmet-async": "^1.0.2", - "react-hotkeys": "2.0.0", - "react-sizeme": "^2.6.7", - "regenerator-runtime": "^0.13.2", - "resolve-from": "^5.0.0", - "semver": "^6.0.0", - "store2": "^2.7.1", - "telejson": "^3.2.0", - "util-deprecate": "^1.0.2" + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", - "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==", - "dev": true - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", - "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==", - "dev": true - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", - "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==", - "dev": true - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", - "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==", - "dev": true - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", - "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==", - "dev": true - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", - "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==", - "dev": true - }, - "@svgr/babel-preset": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", - "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/@jest/test-sequencer/download/@jest/test-sequencer-26.6.3.tgz", + "integrity": "sha1-mOikUQCGOIbQdCBej/3Fp+tYKxc=", "dev": true, "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", - "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", - "@svgr/babel-plugin-transform-svg-component": "^4.2.0" + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" } }, - "@svgr/core": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", - "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-26.6.2.tgz", + "integrity": "sha1-WsV8X6GtF7Kq6D5z5FgTiU3PLks=", "dev": true, "requires": { - "@svgr/plugin-jsx": "^4.3.3", - "camelcase": "^5.3.1", - "cosmiconfig": "^5.2.1" + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" + "color-convert": "^2.0.1" } }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "color-name": "~1.1.4" } }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "@svgr/hast-util-to-babel-ast": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", - "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@svgr/plugin-jsx": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", - "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", - "dev": true, - "requires": { - "@babel/core": "^7.4.5", - "@svgr/babel-preset": "^4.3.3", - "@svgr/hast-util-to-babel-ast": "^4.3.2", - "svg-parser": "^2.0.0" - } - }, - "@svgr/plugin-svgo": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", - "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/@jest/types/download/@jest/types-26.6.2.tgz", + "integrity": "sha1-vvWlMgMOHYii9abZM/hOlyJu1I4=", "dev": true, "requires": { - "cosmiconfig": "^5.2.1", - "merge-deep": "^3.0.2", - "svgo": "^1.2.2" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" }, "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" + "color-convert": "^2.0.1" } }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "color-name": "~1.1.4" } }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "@svgr/webpack": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", - "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", "dev": true, "requires": { - "@babel/core": "^7.4.5", - "@babel/plugin-transform-react-constant-elements": "^7.0.0", - "@babel/preset-env": "^7.4.5", - "@babel/preset-react": "^7.0.0", - "@svgr/core": "^4.3.3", - "@svgr/plugin-jsx": "^4.3.3", - "@svgr/plugin-svgo": "^4.3.1", - "loader-utils": "^1.2.3" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, - "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", - "dev": true + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.4.tgz?cache=0&sync_timestamp=1609074524347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.4.tgz", + "integrity": "sha1-1LNUml213iaD4MEHGrTxQJBLv2k=", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.4.tgz?cache=0&sync_timestamp=1609074523193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.4.tgz", + "integrity": "sha1-o/LdYbq0O424+hCKEhz//kxnZlU=", + "dev": true + } + } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz?cache=0&sync_timestamp=1609074523193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", "dev": true }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.6.tgz", + "integrity": "sha1-zOk5azCqWv6eN1Zgj1gxrctT0GM=", "dev": true, "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" } }, - "@types/history": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.7.tgz", - "integrity": "sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg==", - "dev": true - }, - "@types/html-minifier-terser": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz", - "integrity": "sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==", - "dev": true - }, - "@types/is-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.0.tgz", - "integrity": "sha512-iTs9HReBu7evG77Q4EC8hZnqRt57irBDkK9nvmHroiOIVwYMQc4IvYvdRgwKfYepunIY7Oh/dBuuld+Gj9uo6w==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "14.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", - "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", - "dev": true - }, - "@types/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-4QQmOF5KlwfxJ5IGXFIudkeLCdMABz03RcUXu+LCb24zmln8QW6aDjuGl4d4XPVLf2j+FnjelHTP7dvceAFbhA==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", - "dev": true - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "@types/reach__router": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz", - "integrity": "sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ==", - "dev": true, - "requires": { - "@types/history": "*", - "@types/react": "*" - } - }, - "@types/react": { - "version": "16.9.44", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.44.tgz", - "integrity": "sha512-BtLoJrXdW8DVZauKP+bY4Kmiq7ubcJq+H/aCpRfvPF7RAT3RwR73Sg8szdc2YasbAlWBDrQ6Q+AFM0KwtQY+WQ==", + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.1.2.tgz", + "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", "dev": true, "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "dev": true + } } }, - "@types/react-color": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/react-color/-/react-color-3.0.4.tgz", - "integrity": "sha512-EswbYJDF1kkrx93/YU+BbBtb46CCtDMvTiGmcOa/c5PETnwTiSWoseJ1oSWeRl/4rUXkhME9bVURvvPg0W5YQw==", - "dev": true, - "requires": { - "@types/react": "*", - "@types/reactcss": "*" - } + "@polka/url": { + "version": "1.0.0-next.11", + "resolved": "https://registry.npm.taobao.org/@polka/url/download/@polka/url-1.0.0-next.11.tgz", + "integrity": "sha1-rrFvUGSaka952+NldLZtD55Nn3E=", + "dev": true }, - "@types/react-syntax-highlighter": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz", - "integrity": "sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg==", + "@reach/router": { + "version": "1.3.4", + "resolved": "https://registry.npm.taobao.org/@reach/router/download/@reach/router-1.3.4.tgz", + "integrity": "sha1-0ldLGTcKcMgEgO2R89qEATbRD4w=", "dev": true, "requires": { - "@types/react": "*" + "create-react-context": "0.3.0", + "invariant": "^2.2.3", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4" } }, - "@types/react-textarea-autosize": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.5.tgz", - "integrity": "sha512-PiDL83kPMTolyZAWW3lyzO6ktooTb9tFTntVy7CA83/qFLWKLJ5bLeRboy6J6j3b1e8h2Eec6gBTEOOJRjV14A==", + "@sinonjs/commons": { + "version": "1.8.2", + "resolved": "https://registry.npm.taobao.org/@sinonjs/commons/download/@sinonjs/commons-1.8.2.tgz?cache=0&sync_timestamp=1610537339534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sinonjs%2Fcommons%2Fdownload%2F%40sinonjs%2Fcommons-1.8.2.tgz", + "integrity": "sha1-hY9cS0jYB3j95LnVQfJ+3A1WSIs=", "dev": true, "requires": { - "@types/react": "*" + "type-detect": "4.0.8" } }, - "@types/reactcss": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/reactcss/-/reactcss-1.2.3.tgz", - "integrity": "sha512-d2gQQ0IL6hXLnoRfVYZukQNWHuVsE75DzFTLPUuyyEhJS8G2VvlE+qfQQ91SJjaMqlURRCNIsX7Jcsw6cEuJlA==", + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/@sinonjs/fake-timers/download/@sinonjs/fake-timers-6.0.1.tgz?cache=0&sync_timestamp=1610984495885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sinonjs%2Ffake-timers%2Fdownload%2F%40sinonjs%2Ffake-timers-6.0.1.tgz", + "integrity": "sha1-KTZ0/MsyYqx4LHqt/eyoaxDHXEA=", "dev": true, "requires": { - "@types/react": "*" + "@sinonjs/commons": "^1.7.0" } }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", - "dev": true - }, - "@types/uglify-js": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz", - "integrity": "sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==", + "@storybook/addon-actions": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/addon-actions/download/@storybook/addon-actions-5.3.21.tgz", + "integrity": "sha1-Fu7T6ySZat/L9wvUdqJhMk1t5ZM=", "dev": true, "requires": { - "source-map": "^0.6.1" + "@storybook/addons": "5.3.21", + "@storybook/api": "5.3.21", + "@storybook/client-api": "5.3.21", + "@storybook/components": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/theming": "5.3.21", + "core-js": "^3.0.1", + "fast-deep-equal": "^2.0.1", + "global": "^4.3.2", + "polished": "^3.3.1", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-inspector": "^4.0.0", + "uuid": "^3.3.2" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", "dev": true } } }, - "@types/webpack": { - "version": "4.41.21", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz", - "integrity": "sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==", + "@storybook/addon-knobs": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/addon-knobs/download/@storybook/addon-knobs-5.3.21.tgz", + "integrity": "sha1-3XIXAOXqspabOFTcc8hVoD+3q6g=", "dev": true, "requires": { - "@types/anymatch": "*", - "@types/node": "*", - "@types/tapable": "*", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "source-map": "^0.6.0" + "@storybook/addons": "5.3.21", + "@storybook/api": "5.3.21", + "@storybook/client-api": "5.3.21", + "@storybook/components": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/theming": "5.3.21", + "@types/react-color": "^3.0.1", + "copy-to-clipboard": "^3.0.8", + "core-js": "^3.0.1", + "escape-html": "^1.0.3", + "fast-deep-equal": "^2.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "prop-types": "^15.7.2", + "qs": "^6.6.0", + "react-color": "^2.17.0", + "react-lifecycles-compat": "^3.0.4", + "react-select": "^3.0.8" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.6.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.6.tgz", + "integrity": "sha1-Ju08gkOkMbKSSsqEzJBHHzXVoO4=", "dev": true } } }, - "@types/webpack-env": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz", - "integrity": "sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ==", - "dev": true - }, - "@types/webpack-sources": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz", - "integrity": "sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==", + "@storybook/addon-links": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/addon-links/download/@storybook/addon-links-5.3.21.tgz", + "integrity": "sha1-S64Rxd53/M4fVCm+NFQ3aHBRLbI=", "dev": true, "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" + "@storybook/addons": "5.3.21", + "@storybook/client-logger": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "5.3.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "prop-types": "^15.7.2", + "qs": "^6.6.0", + "ts-dedent": "^1.1.0" }, "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.6.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.6.tgz", + "integrity": "sha1-Ju08gkOkMbKSSsqEzJBHHzXVoO4=", "dev": true } } }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "@storybook/addons": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/addons/download/@storybook/addons-5.3.21.tgz", + "integrity": "sha1-7jEsc4wz6MNNwRd375NSLDw25Wo=", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@storybook/api": "5.3.21", + "@storybook/channels": "5.3.21", + "@storybook/client-logger": "5.3.21", + "@storybook/core-events": "5.3.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "util-deprecate": "^1.0.2" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "@storybook/api": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/api/download/@storybook/api-5.3.21.tgz", + "integrity": "sha1-jxdy3lO2Xhpl0vAldGPWIahhfFg=", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.9.0" + "@reach/router": "^1.2.1", + "@storybook/channels": "5.3.21", + "@storybook/client-logger": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "5.3.21", + "@storybook/theming": "5.3.21", + "@types/reach__router": "^1.2.3", + "core-js": "^3.0.1", + "fast-deep-equal": "^2.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "prop-types": "^15.6.2", + "react": "^16.8.3", + "semver": "^6.0.0", + "shallow-equal": "^1.1.0", + "store2": "^2.7.1", + "telejson": "^3.2.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "@storybook/channel-postmessage": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/channel-postmessage/download/@storybook/channel-postmessage-5.3.21.tgz", + "integrity": "sha1-nAi/HBCP+XPbyhjlgmgNJReNsdQ=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0" + "@storybook/channels": "5.3.21", + "@storybook/client-logger": "5.3.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "telejson": "^3.2.0" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "@storybook/channels": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/channels/download/@storybook/channels-5.3.21.tgz", + "integrity": "sha1-U7piKxcdaLOxApg6YqoFFJpJSXs=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "core-js": "^3.0.1" } }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "@storybook/client-api": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/client-api/download/@storybook/client-api-5.3.21.tgz?cache=0&sync_timestamp=1614819058551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40storybook%2Fclient-api%2Fdownload%2F%40storybook%2Fclient-api-5.3.21.tgz", + "integrity": "sha1-WyGKKPJCGcMqtLkqavKj5FL7gIk=", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "@storybook/addons": "5.3.21", + "@storybook/channel-postmessage": "5.3.21", + "@storybook/channels": "5.3.21", + "@storybook/client-logger": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/csf": "0.0.1", + "@types/webpack-env": "^1.15.0", + "core-js": "^3.0.1", + "eventemitter3": "^4.0.0", + "global": "^4.3.2", + "is-plain-object": "^3.0.0", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "ts-dedent": "^1.1.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-3.0.1.tgz", + "integrity": "sha1-Zi2S0kwKpDAkB7DUXSHyJRyF+Fs=", + "dev": true + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.6.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.6.tgz", + "integrity": "sha1-Ju08gkOkMbKSSsqEzJBHHzXVoO4=", + "dev": true + } } }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "@storybook/client-logger": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/client-logger/download/@storybook/client-logger-5.3.21.tgz", + "integrity": "sha1-kSyDsNNY5wrK0a1Kvhmd5MOLEJ8=", "dev": true, "requires": { - "@xtuc/long": "4.2.2" + "core-js": "^3.0.1" } }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "@storybook/components": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/components/download/@storybook/components-5.3.21.tgz", + "integrity": "sha1-F+43GiRVxugHw9MTWpJm5jrXZRo=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "dev": true - }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "airbnb-js-shims": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", - "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "array.prototype.flatmap": "^1.2.1", - "es5-shim": "^4.5.13", - "es6-shim": "^0.35.5", - "function.prototype.name": "^1.1.0", - "globalthis": "^1.0.0", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0 || ^1.0.0", - "object.getownpropertydescriptors": "^2.0.3", - "object.values": "^1.1.0", - "promise.allsettled": "^1.0.0", - "promise.prototype.finally": "^3.1.0", - "string.prototype.matchall": "^4.0.0 || ^3.0.1", - "string.prototype.padend": "^3.0.0", - "string.prototype.padstart": "^3.0.0", - "symbol.prototype.description": "^1.0.0" - } - }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "dependencies": { - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "@storybook/client-logger": "5.3.21", + "@storybook/theming": "5.3.21", + "@types/react-syntax-highlighter": "11.0.4", + "@types/react-textarea-autosize": "^4.3.3", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "polished": "^3.3.1", + "popper.js": "^1.14.7", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "react-focus-lock": "^2.1.0", + "react-helmet-async": "^1.0.2", + "react-popper-tooltip": "^2.8.3", + "react-syntax-highlighter": "^11.0.2", + "react-textarea-autosize": "^7.1.0", + "simplebar-react": "^1.0.0-alpha.6", + "ts-dedent": "^1.1.0" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "@storybook/core": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/core/download/@storybook/core-5.3.21.tgz?cache=0&sync_timestamp=1614819159728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40storybook%2Fcore%2Fdownload%2F%40storybook%2Fcore-5.3.21.tgz", + "integrity": "sha1-2pYxZuokYB8xgmajqmu8BvyPsXU=", "dev": true, "requires": { - "string-width": "^3.0.0" + "@babel/plugin-proposal-class-properties": "^7.7.0", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-react-constant-elements": "^7.2.0", + "@babel/preset-env": "^7.4.5", + "@storybook/addons": "5.3.21", + "@storybook/channel-postmessage": "5.3.21", + "@storybook/client-api": "5.3.21", + "@storybook/client-logger": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/csf": "0.0.1", + "@storybook/node-logger": "5.3.21", + "@storybook/router": "5.3.21", + "@storybook/theming": "5.3.21", + "@storybook/ui": "5.3.21", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "autoprefixer": "^9.7.2", + "babel-plugin-add-react-displayname": "^0.0.5", + "babel-plugin-emotion": "^10.0.20", + "babel-plugin-macros": "^2.7.0", + "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5", + "boxen": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^3.0.0", + "cli-table3": "0.5.1", + "commander": "^4.0.1", + "core-js": "^3.0.1", + "corejs-upgrade-webpack-plugin": "^2.2.0", + "css-loader": "^3.0.0", + "detect-port": "^1.3.0", + "dotenv-webpack": "^1.7.0", + "ejs": "^2.7.4", + "express": "^4.17.0", + "file-loader": "^4.2.0", + "file-system-cache": "^1.0.5", + "find-cache-dir": "^3.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.0.1", + "glob-base": "^0.3.0", + "global": "^4.3.2", + "html-webpack-plugin": "^4.0.0-beta.2", + "inquirer": "^7.0.0", + "interpret": "^2.0.0", + "ip": "^1.1.5", + "json5": "^2.1.1", + "lazy-universal-dotenv": "^3.0.1", + "micromatch": "^4.0.2", + "node-fetch": "^2.6.0", + "open": "^7.0.0", + "pnp-webpack-plugin": "1.5.0", + "postcss-flexbugs-fixes": "^4.1.0", + "postcss-loader": "^3.0.0", + "pretty-hrtime": "^1.0.3", + "qs": "^6.6.0", + "raw-loader": "^3.1.0", + "react-dev-utils": "^9.0.0", + "regenerator-runtime": "^0.13.3", + "resolve": "^1.11.0", + "resolve-from": "^5.0.0", + "semver": "^6.0.0", + "serve-favicon": "^2.5.0", + "shelljs": "^0.8.3", + "style-loader": "^1.0.0", + "terser-webpack-plugin": "^2.1.2", + "ts-dedent": "^1.1.0", + "unfetch": "^4.1.0", + "url-loader": "^2.0.1", + "util-deprecate": "^1.0.2", + "webpack": "^4.33.0", + "webpack-dev-middleware": "^3.7.0", + "webpack-hot-middleware": "^2.25.0", + "webpack-virtual-modules": "^0.2.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, - "string-width": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-4.1.1.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz", + "integrity": "sha1-n9YCvZNilOnp70aj9NaWQESxgGg=", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1613686238253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz", + "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npm.taobao.org/open/download/open-7.4.2.tgz?cache=0&sync_timestamp=1614759218873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.4.2.tgz", + "integrity": "sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.6.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.6.tgz", + "integrity": "sha1-Ju08gkOkMbKSSsqEzJBHHzXVoO4=", + "dev": true + }, + "restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz", + "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true } } }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "@storybook/core-events": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/core-events/download/@storybook/core-events-5.3.21.tgz", + "integrity": "sha1-QdgcPxBzAqAyVF/Ib/NEIwwEuek=", "dev": true, "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "core-js": "^3.0.1" } }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "@storybook/csf": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/@storybook/csf/download/@storybook/csf-0.0.1.tgz", + "integrity": "sha1-lZAVB9wC8LxvmsjuGYPi/Fu5jOY=", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "lodash": "^4.17.15" } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "ansi-to-html": { - "version": "0.6.14", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", - "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", + "@storybook/node-logger": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/node-logger/download/@storybook/node-logger-5.3.21.tgz", + "integrity": "sha1-8R1FBCvVfcaekDfY83TZ/QqtgHE=", "dev": true, "requires": { - "entities": "^1.1.2" + "@types/npmlog": "^4.1.2", + "chalk": "^3.0.0", + "core-js": "^3.0.1", + "npmlog": "^4.1.2", + "pretty-hrtime": "^1.0.3", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "@storybook/react": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/react/download/@storybook/react-5.3.21.tgz", + "integrity": "sha1-9/Nk09OtxwdGoSz4tmFJUvQdS9A=", "dev": true, - "optional": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-dir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true + "@babel/plugin-transform-react-constant-elements": "^7.6.3", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "@storybook/addons": "5.3.21", + "@storybook/core": "5.3.21", + "@storybook/node-logger": "5.3.21", + "@svgr/webpack": "^4.0.3", + "@types/webpack-env": "^1.15.0", + "babel-plugin-add-react-displayname": "^0.0.5", + "babel-plugin-named-asset-import": "^0.3.1", + "babel-plugin-react-docgen": "^4.0.0", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "mini-css-extract-plugin": "^0.7.0", + "prop-types": "^15.7.2", + "react-dev-utils": "^9.0.0", + "regenerator-runtime": "^0.13.3", + "semver": "^6.0.0", + "ts-dedent": "^1.1.0", + "webpack": "^4.33.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "@storybook/router": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/router/download/@storybook/router-5.3.21.tgz", + "integrity": "sha1-MrCOXaqQpv+gJLtnC4dFJacSqQE=", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "@reach/router": "^1.2.1", + "@storybook/csf": "0.0.1", + "@types/reach__router": "^1.2.3", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.6.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.6.tgz", + "integrity": "sha1-Ju08gkOkMbKSSsqEzJBHHzXVoO4=", + "dev": true + } } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@storybook/theming": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/theming/download/@storybook/theming-5.3.21.tgz", + "integrity": "sha1-ri3BAapXw75N8XJK5ynhG60Rjgs=", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "@emotion/core": "^10.0.20", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "5.3.21", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.3.1", + "prop-types": "^15.7.2", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.0" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "@storybook/ui": { + "version": "5.3.21", + "resolved": "https://registry.npm.taobao.org/@storybook/ui/download/@storybook/ui-5.3.21.tgz?cache=0&sync_timestamp=1614819072848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40storybook%2Fui%2Fdownload%2F%40storybook%2Fui-5.3.21.tgz", + "integrity": "sha1-tCVo4DNTtHqqsbZEkxHziFhYX4E=", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@storybook/addons": "5.3.21", + "@storybook/api": "5.3.21", + "@storybook/channels": "5.3.21", + "@storybook/client-logger": "5.3.21", + "@storybook/components": "5.3.21", + "@storybook/core-events": "5.3.21", + "@storybook/router": "5.3.21", + "@storybook/theming": "5.3.21", + "copy-to-clipboard": "^3.0.8", + "core-js": "^3.0.1", + "core-js-pure": "^3.0.1", + "emotion-theming": "^10.0.19", + "fast-deep-equal": "^2.0.1", + "fuse.js": "^3.4.6", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "polished": "^3.3.1", + "prop-types": "^15.7.2", + "qs": "^6.6.0", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "react-draggable": "^4.0.3", + "react-helmet-async": "^1.0.2", + "react-hotkeys": "2.0.0", + "react-sizeme": "^2.6.7", + "regenerator-runtime": "^0.13.2", + "resolve-from": "^5.0.0", + "semver": "^6.0.0", + "store2": "^2.7.1", + "telejson": "^3.2.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.6.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.6.tgz", + "integrity": "sha1-Ju08gkOkMbKSSsqEzJBHHzXVoO4=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-add-jsx-attribute/download/@svgr/babel-plugin-add-jsx-attribute-4.2.0.tgz", + "integrity": "sha1-2ty2IYUDUy1ohLIQ5/PFAsqqRLE=", "dev": true }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-remove-jsx-attribute/download/@svgr/babel-plugin-remove-jsx-attribute-4.2.0.tgz", + "integrity": "sha1-KXVQuajAxzN76hK9/IqAu2b4Wrw=", "dev": true }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-remove-jsx-empty-expression/download/@svgr/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", + "integrity": "sha1-wZYwLz5o6ragXpivnKhXC8ExMcc=", "dev": true }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-replace-jsx-attribute-value/download/@svgr/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", + "integrity": "sha1-MQ7Ad13oCKai5P1CaMJF/XNMEWU=", "dev": true }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "4.3.3", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-svg-dynamic-title/download/@svgr/babel-plugin-svg-dynamic-title-4.3.3.tgz", + "integrity": "sha1-LN7ddH5bGyntTCQeRiVqrIEQ3ZM=", "dev": true }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-svg-em-dimensions/download/@svgr/babel-plugin-svg-em-dimensions-4.2.0.tgz", + "integrity": "sha1-mpR5HJoogQjSCp0sxkysgg8UE5E=", "dev": true }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-transform-react-native-svg/download/@svgr/babel-plugin-transform-react-native-svg-4.2.0.tgz", + "integrity": "sha1-FRSHMihDNZocqGsho4Ff0hqItxc=", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "@svgr/babel-plugin-transform-svg-component": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-plugin-transform-svg-component/download/@svgr/babel-plugin-transform-svg-component-4.2.0.tgz", + "integrity": "sha1-Xx4viGsshcZ+dtpC8Pa+Gxdntpc=", "dev": true }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "@svgr/babel-preset": { + "version": "4.3.3", + "resolved": "https://registry.npm.taobao.org/@svgr/babel-preset/download/@svgr/babel-preset-4.3.3.tgz", + "integrity": "sha1-p12MLyAqwOV3Tmv8Fl0CizmhMWw=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", + "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", + "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", + "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", + "@svgr/babel-plugin-transform-svg-component": "^4.2.0" } }, - "array.prototype.flatmap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", - "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", + "@svgr/core": { + "version": "4.3.3", + "resolved": "https://registry.npm.taobao.org/@svgr/core/download/@svgr/core-4.3.3.tgz", + "integrity": "sha1-s3uJ1bdX3Gbox0FW0Aw2gzjSQpM=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" + "@svgr/plugin-jsx": "^4.3.3", + "camelcase": "^5.3.1", + "cosmiconfig": "^5.2.1" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } } }, - "array.prototype.map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", - "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", + "@svgr/hast-util-to-babel-ast": { + "version": "4.3.2", + "resolved": "https://registry.npm.taobao.org/@svgr/hast-util-to-babel-ast/download/@svgr/hast-util-to-babel-ast-4.3.2.tgz", + "integrity": "sha1-HVoIL3uSnvjx9XiVAjj2MOFFMrg=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.4" + "@babel/types": "^7.4.4" } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@svgr/plugin-jsx": { + "version": "4.3.3", + "resolved": "https://registry.npm.taobao.org/@svgr/plugin-jsx/download/@svgr/plugin-jsx-4.3.3.tgz", + "integrity": "sha1-4rqRPb376FJSo02xAavH69UJkvo=", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "@babel/core": "^7.4.5", + "@svgr/babel-preset": "^4.3.3", + "@svgr/hast-util-to-babel-ast": "^4.3.2", + "svg-parser": "^2.0.0" } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "@svgr/plugin-svgo": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/@svgr/plugin-svgo/download/@svgr/plugin-svgo-4.3.1.tgz", + "integrity": "sha1-2qwKPYcuP1WTXGWI3TcDNoZenjI=", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "cosmiconfig": "^5.2.1", + "merge-deep": "^3.0.2", + "svgo": "^1.2.2" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true } } }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "@svgr/webpack": { + "version": "4.3.3", + "resolved": "https://registry.npm.taobao.org/@svgr/webpack/download/@svgr/webpack-4.3.3.tgz?cache=0&sync_timestamp=1605436229963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40svgr%2Fwebpack%2Fdownload%2F%40svgr%2Fwebpack-4.3.3.tgz", + "integrity": "sha1-E8wkI789/y1JTxaxfrfqy4aJUBc=", "dev": true, "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "@babel/core": "^7.4.5", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.4.5", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^4.3.3", + "@svgr/plugin-jsx": "^4.3.3", + "@svgr/plugin-svgo": "^4.3.1", + "loader-utils": "^1.2.3" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz?cache=0&sync_timestamp=1613378060592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz", + "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "@types/babel__core": { + "version": "7.1.12", + "resolved": "https://registry.npm.taobao.org/@types/babel__core/download/@types/babel__core-7.1.12.tgz", + "integrity": "sha1-TY6eUesmVVKn5PH/IhmrYTO9+y0=", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } }, - "ast-types": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", - "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npm.taobao.org/@types/babel__generator/download/@types/babel__generator-7.6.2.tgz", + "integrity": "sha1-89cReOGHhY98ReMDgPjxt0FaEtg=", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npm.taobao.org/@types/babel__template/download/@types/babel__template-7.4.0.tgz", + "integrity": "sha1-DIiN1ws+6e67bk8gDoCdoAdiYr4=", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.11.0", + "resolved": "https://registry.npm.taobao.org/@types/babel__traverse/download/@types/babel__traverse-7.11.0.tgz", + "integrity": "sha1-uaHvpjUgG6m8hQMjqHk+4tNsBKA=", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/classnames": { + "version": "2.2.11", + "resolved": "https://registry.npm.taobao.org/@types/classnames/download/@types/classnames-2.2.11.tgz?cache=0&sync_timestamp=1613378322977&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.11.tgz", + "integrity": "sha1-JSHMhvadFcW5BmTkgp2EVmBSwc8=" + }, + "@types/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/@types/d3-timer/download/@types/d3-timer-1.0.10.tgz", + "integrity": "sha1-MpxRwskx9E7QrP94uMhFcazw7SE=" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/@types/graceful-fs/download/@types/graceful-fs-4.1.5.tgz", + "integrity": "sha1-If+6DZjaQ1DbZIkfkqnl2zzbThU=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/@types/html-minifier-terser/download/@types/html-minifier-terser-5.1.1.tgz?cache=0&sync_timestamp=1613379042823&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.1.tgz", + "integrity": "sha1-PJ7pgPGhDWAhrmYyyj55yi7E+1A=", "dev": true }, - "astral-regex": { + "@types/is-function": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "resolved": "https://registry.npm.taobao.org/@types/is-function/download/@types/is-function-1.0.0.tgz", + "integrity": "sha1-GwuBmxY2x7rw1nhdAw0S7fcMPoM=", "dev": true }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.3.tgz?cache=0&sync_timestamp=1613379043492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-lib-coverage%2Fdownload%2F%40types%2Fistanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha1-S6jdtyAiH0MuRDvV+RF/0iz9R2I=", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz?cache=0&sync_timestamp=1613379043586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-lib-report%2Fdownload%2F%40types%2Fistanbul-lib-report-3.0.0.tgz", + "integrity": "sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY=", "dev": true, "requires": { - "lodash": "^4.17.14" + "@types/istanbul-lib-coverage": "*" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-3.0.0.tgz?cache=0&sync_timestamp=1613379043554&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-3.0.0.tgz", + "integrity": "sha1-UIsTqjRPpJdiNOdd3cw0klc32CE=", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.7.tgz?cache=0&sync_timestamp=1613378919536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.7.tgz", + "integrity": "sha1-mKmTUWyFnrDVxMjwmDF6nqaNua0=", "dev": true }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "@types/lodash": { + "version": "4.14.168", + "resolved": "https://registry.npm.taobao.org/@types/lodash/download/@types/lodash-4.14.168.tgz?cache=0&sync_timestamp=1613379246862&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Flodash%2Fdownload%2F%40types%2Flodash-4.14.168.tgz", + "integrity": "sha1-/iRjLnm3rePxMoka//hsql5c4Ag=" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1613379360551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", "dev": true }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "@types/node": { + "version": "14.14.31", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.31.tgz?cache=0&sync_timestamp=1613758409994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.31.tgz", + "integrity": "sha1-cihr0z0TeqDRUtR+x8F2JWPTQFU=", "dev": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1613379350842&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", "dev": true }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "@types/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/@types/npmlog/download/@types/npmlog-4.1.2.tgz?cache=0&sync_timestamp=1613379516552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnpmlog%2Fdownload%2F%40types%2Fnpmlog-4.1.2.tgz", + "integrity": "sha1-0HD+amt4dV0QkqPcSS00w9j4ccQ=", "dev": true }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz", + "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=", + "dev": true + }, + "@types/prettier": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/@types/prettier/download/@types/prettier-2.2.2.tgz?cache=0&sync_timestamp=1614698824023&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprettier%2Fdownload%2F%40types%2Fprettier-2.2.2.tgz", + "integrity": "sha1-4igMid3L7vNACZ1paNjIa6FV/fY=", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npm.taobao.org/@types/prop-types/download/@types/prop-types-15.7.3.tgz", + "integrity": "sha1-KrDV2i5YFflLC51LldHl8kOrLKc=" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", + "dev": true + }, + "@types/reach__router": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/@types/reach__router/download/@types/reach__router-1.3.7.tgz", + "integrity": "sha1-3oqzdCWa5/dJn8E3O5aXpfPNZCg=", "dev": true, "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" + "@types/react": "*" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "@types/react": { + "version": "16.14.4", + "resolved": "https://registry.npm.taobao.org/@types/react/download/@types/react-16.14.4.tgz?cache=0&sync_timestamp=1613153049743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.14.4.tgz", + "integrity": "sha1-Nl9qHhF9HuyWC6eSx+HpHsrTjm8=", + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-color": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/@types/react-color/download/@types/react-color-3.0.4.tgz", + "integrity": "sha1-xj2vASrQZ6wBJ73YZyXwedAggr0=", + "dev": true, + "requires": { + "@types/react": "*", + "@types/reactcss": "*" + } + }, + "@types/react-dom": { + "version": "16.9.11", + "resolved": "https://registry.npm.taobao.org/@types/react-dom/download/@types/react-dom-16.9.11.tgz?cache=0&sync_timestamp=1613153480532&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.11.tgz", + "integrity": "sha1-dS4iOhWSosEPJmiyFaDgZn9PqrE=", + "requires": { + "@types/react": "^16" + } + }, + "@types/react-syntax-highlighter": { + "version": "11.0.4", + "resolved": "https://registry.npm.taobao.org/@types/react-syntax-highlighter/download/@types/react-syntax-highlighter-11.0.4.tgz?cache=0&sync_timestamp=1613384596760&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-syntax-highlighter%2Fdownload%2F%40types%2Freact-syntax-highlighter-11.0.4.tgz", + "integrity": "sha1-2G0XaX22L5gEaHT2L9s+U6C7xM0=", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-textarea-autosize": { + "version": "4.3.5", + "resolved": "https://registry.npm.taobao.org/@types/react-textarea-autosize/download/@types/react-textarea-autosize-4.3.5.tgz?cache=0&sync_timestamp=1613384596944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-textarea-autosize%2Fdownload%2F%40types%2Freact-textarea-autosize-4.3.5.tgz", + "integrity": "sha1-bE0nU/oYZMmMCytRf2e7H25MRt4=", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@types/reactcss/download/@types/reactcss-1.2.3.tgz?cache=0&sync_timestamp=1613384597200&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freactcss%2Fdownload%2F%40types%2Freactcss-1.2.3.tgz", + "integrity": "sha1-ryiuEbuyd5eLmdBNHu39BoynGDQ=", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", + "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", "dev": true }, - "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-2.0.0.tgz", + "integrity": "sha1-cDZkC04hzC8lmugmzoQ9J32tjP8=", "dev": true }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz", + "integrity": "sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=", + "dev": true + }, + "@types/uglify-js": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.12.0.tgz", + "integrity": "sha1-K7BhwmlEFiDUa5RjUMjxbVLvN8U=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - }, - "dependencies": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.26", + "resolved": "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.26.tgz?cache=0&sync_timestamp=1613384726350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.26.tgz", + "integrity": "sha1-J6MNfVMeFkifnHYHx0e+a8GkWe8=", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + } + }, + "@types/webpack-env": { + "version": "1.16.0", + "resolved": "https://registry.npm.taobao.org/@types/webpack-env/download/@types/webpack-env-1.16.0.tgz", + "integrity": "sha1-jAqUNd+ns7G+dlYvMHDvs/kmN7Q=", + "dev": true + }, + "@types/webpack-sources": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.1.0.tgz?cache=0&sync_timestamp=1613384741414&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-2.1.0.tgz", + "integrity": "sha1-iIKwvWLR4M5i8YPQ0Bty5ugujBA=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-15.0.13.tgz?cache=0&sync_timestamp=1613384866333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-15.0.13.tgz", + "integrity": "sha1-NPf+yLOJ1/PB/QgCaldj4HLTxtw=", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npm.taobao.org/@types/yargs-parser/download/@types/yargs-parser-20.2.0.tgz", + "integrity": "sha1-3T5mmboyN/A0jNCF5GmHgCBIQvk=", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1610041305745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&sync_timestamp=1610041307537&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&sync_timestamp=1610041309019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1610041308491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&sync_timestamp=1610041306677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1610041308754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz?cache=0&sync_timestamp=1610041308619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1610041306931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&sync_timestamp=1610045498486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1610041308922&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&sync_timestamp=1610041309288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&sync_timestamp=1610041307235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1610041306557&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&sync_timestamp=1610041306793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1610041306194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&sync_timestamp=1610041307079&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", + "dev": true + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.5.tgz", + "integrity": "sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "dev": true + }, + "abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/abs-svg-path/download/abs-svg-path-0.1.1.tgz", + "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1611561113015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-6.0.0.tgz", + "integrity": "sha1-Rs3Tnw+P8IqHZhm1X1rIptx3C0U=", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz", + "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "airbnb-js-shims": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/airbnb-js-shims/download/airbnb-js-shims-2.2.1.tgz", + "integrity": "sha1-20gRAtaCuY7R2qTFuqaXoFzlwEA=", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "es5-shim": "^4.5.13", + "es6-shim": "^0.35.5", + "function.prototype.name": "^1.1.0", + "globalthis": "^1.0.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0 || ^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.1.0", + "promise.allsettled": "^1.0.0", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^4.0.0 || ^3.0.1", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz?cache=0&sync_timestamp=1608064310528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1608059810829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-align/download/ansi-align-3.0.0.tgz", + "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz", + "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz", + "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", + "dev": true + } + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-to-html": { + "version": "0.6.14", + "resolved": "https://registry.npm.taobao.org/ansi-to-html/download/ansi-to-html-0.6.14.tgz", + "integrity": "sha1-Zf5tCLul3Z2zP0SiCuwzHgAQ2tg=", + "dev": true, + "requires": { + "entities": "^1.1.2" + } + }, + "any": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/any/download/any-1.0.0.tgz", + "integrity": "sha1-Cns0jFifr2unCNSiJBBp6lFii14=", + "dev": true, + "requires": { + "for-own": "^0.1.2", + "make-iterator": "^0.1.0" + }, + "dependencies": { + "make-iterator": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/make-iterator/download/make-iterator-0.1.1.tgz", + "integrity": "sha1-hz0nuBmKRlqBSDtvXRbaToY+z1s=", + "dev": true, + "requires": { + "for-own": "^0.1.1" + } + } + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-dir": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/app-root-dir/download/app-root-dir-1.0.2.tgz", + "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", + "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "dev": true + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/arr-map/download/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + }, + "dependencies": { + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/make-iterator/download/make-iterator-1.0.1.tgz", + "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + } + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-each": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/array-each/download/array-each-0.1.1.tgz", + "integrity": "sha1-xdUrqCJfNtcoF4unrsQTrPrd0Pk=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "dev": true + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.3.tgz?cache=0&sync_timestamp=1613858037848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.3.tgz", + "integrity": "sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz?cache=0&sync_timestamp=1614624302839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.4.tgz?cache=0&sync_timestamp=1605688971975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.4.tgz", + "integrity": "sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/array.prototype.flatmap/download/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha1-lM/UfMFVbsB0fZf3x3OMWBIgBMk=", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "array.prototype.map": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array.prototype.map/download/array.prototype.map-1.0.3.tgz", + "integrity": "sha1-FgliNhjT2EE0o31KIgAwwr0YQgs=", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.5" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", + "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npm.taobao.org/ast-types/download/ast-types-0.14.2.tgz", + "integrity": "sha1-YAuILfhYPjzU8t9fog+oN1nUvf0=", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz", + "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", + "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz", + "integrity": "sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz", + "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "awesome-typescript-loader": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/awesome-typescript-loader/download/awesome-typescript-loader-5.2.1.tgz", + "integrity": "sha1-pB2veEdRX0klzbqjB11h8onpE/w=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.1.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3", + "webpack-log": "^1.2.0" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + }, + "webpack-log": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-1.2.0.tgz", + "integrity": "sha1-pLNM2msitRjbsKsy5WeWLVxypD0=", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" + } + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101311814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", + "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", + "dev": true + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-cli/download/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz", + "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true, - "optional": true + "optional": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "optional": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "optional": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "optional": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "optional": true + } + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "dev": true, + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "dev": true, + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, - "optional": true + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", + "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-eslint": { + "version": "7.2.3", + "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-7.2.3.tgz?cache=0&sync_timestamp=1611945896690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-7.2.3.tgz", + "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", + "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-evaluate-path": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.5.0.tgz", + "integrity": "sha1-pi+pxOZP9+pc6pNTF07wI6kApnw=", + "dev": true + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-flip-expressions": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.4.3.tgz", + "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=", + "dev": true + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true + }, + "babel-helper-is-void-0": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-helper-is-void-0/download/babel-helper-is-void-0-0.4.3.tgz", + "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=", + "dev": true + }, + "babel-helper-mark-eval-scopes": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.4.3.tgz", + "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=", + "dev": true + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-remove-or-void": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.4.3.tgz", + "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=", + "dev": true + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz", + "integrity": "sha1-o/kk41YYgtQvz0iQeqmPeXmkWI0=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/babel-jest/download/babel-jest-26.6.3.tgz", + "integrity": "sha1-2H0lywA3V3oMifguV1XF0pPAEFY=", + "dev": true, + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, - "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "color-convert": "^2.0.1" } }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, - "optional": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, - "optional": true, "requires": { - "ms": "2.0.0" + "color-name": "~1.1.4" } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, - "optional": true, "requires": { - "is-extglob": "^1.0.0" + "has-flag": "^4.0.0" } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + } + } + }, + "babel-loader": { + "version": "7.1.5", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.5.tgz", + "integrity": "sha1-4+4M1zlKpVfgE7AtPkkr/QeqbWg=", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, - "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "optional": true, "requires": { - "is-glob": "^2.0.0" + "locate-path": "^2.0.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "optional": true, "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", "dev": true, - "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "pify": "^3.0.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288549008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", "dev": true, - "optional": true, "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } + "p-try": "^1.0.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } + "p-limit": "^1.1.0" } }, - "is-extglob": { + "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, - "optional": true, "requires": { - "is-extglob": "^1.0.0" + "find-up": "^2.1.0" } + } + } + }, + "babel-merge": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/babel-merge/download/babel-merge-3.0.0.tgz", + "integrity": "sha1-m9No1IEW2rGLjz6AIoNUedgPO1A=", + "dev": true, + "requires": { + "deepmerge": "^2.2.1", + "object.omit": "^3.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-2.2.1.tgz", + "integrity": "sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA=", + "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, - "optional": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "is-plain-object": "^2.0.4" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "object.omit": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/object.omit/download/object.omit-3.0.0.tgz", + "integrity": "sha1-Dj7cL84rpU31V3/1KfbZe9ilIq8=", "dev": true, - "optional": true + "requires": { + "is-extendable": "^1.0.0" + } + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-add-react-displayname": { + "version": "0.0.5", + "resolved": "https://registry.npm.taobao.org/babel-plugin-add-react-displayname/download/babel-plugin-add-react-displayname-0.0.5.tgz", + "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", + "dev": true + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-danger-remove-unused-import": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-danger-remove-unused-import/download/babel-plugin-danger-remove-unused-import-2.0.0.tgz", + "integrity": "sha1-bii/8/t4RA8fAlr0Pjp7ldZKnnU=", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-emotion": { + "version": "10.2.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-emotion/download/babel-plugin-emotion-10.2.2.tgz", + "integrity": "sha1-of41A8/4Cr/QvdoUq9Lo5Xp50X0=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/serialize": "^0.11.16", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-plugin-import": { + "version": "1.13.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-import/download/babel-plugin-import-1.13.3.tgz", + "integrity": "sha1-nbu6fRrHK9QSkXqDDUReAJQdJtc=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/runtime": "^7.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha1-4VnM3Jr5XgtXDHW0Vzt8NNZx12U=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha1-gYW9AwNI0lTG192XQ1Xmoosh5i0=", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha1-D5WKfMZVax5lNERl2ZERoeXhATg=", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "babel-plugin-minify-builtins": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.5.0.tgz", + "integrity": "sha1-MeuC7RoNDv3DExL5O25HQc6Cw2s=", + "dev": true + }, + "babel-plugin-minify-constant-folding": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.5.0.tgz", + "integrity": "sha1-+EvI2/alYeXjUP+VriFrCtVRW24=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0" + } + }, + "babel-plugin-minify-dead-code-elimination": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.5.1.tgz", + "integrity": "sha1-Ggxo5EvjDeSXbKaf/FNeCL4TaD8=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-mark-eval-scopes": "^0.4.3", + "babel-helper-remove-or-void": "^0.4.3", + "lodash": "^4.17.11" + } + }, + "babel-plugin-minify-dead-code-elimination-while-loop-fixed": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-dead-code-elimination-while-loop-fixed/download/babel-plugin-minify-dead-code-elimination-while-loop-fixed-0.3.0.tgz", + "integrity": "sha1-MkCV7j8ckyt8q4rJKWffIxCr5xY=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.3.0", + "babel-helper-mark-eval-scopes": "^0.3.0", + "babel-helper-remove-or-void": "^0.3.0", + "lodash.some": "^4.6.0" + }, + "dependencies": { + "babel-helper-evaluate-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.3.0.tgz", + "integrity": "sha1-JDlUXgturlt/SbeQrL69a5pz3yA=", + "dev": true }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } + "babel-helper-mark-eval-scopes": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.3.0.tgz", + "integrity": "sha1-tHMTFP3XqJCRJxpSE7ThLSNuKeg=", + "dev": true }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "optional": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } + "babel-helper-remove-or-void": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.3.0.tgz", + "integrity": "sha1-9DyGFHyPzDlalSjLsx5/9J1+FuM=", + "dev": true + } + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.4.3.tgz", + "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.4.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.4.4.tgz", + "integrity": "sha1-gYlg9kzAiu6dbHW+xtqXTE1iETU=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-flip-expressions": "^0.4.3" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.4.3.tgz", + "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=", + "dev": true + }, + "babel-plugin-minify-mangle-names": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.5.0.tgz", + "integrity": "sha1-vN21B8kdLJnhOL1rF6GcPCceP9M=", + "dev": true, + "requires": { + "babel-helper-mark-eval-scopes": "^0.4.3" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.4.3.tgz", + "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=", + "dev": true + }, + "babel-plugin-minify-replace": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.5.0.tgz", + "integrity": "sha1-0+LJlGyQlsBw78lnYc4ojsXD9xw=", + "dev": true + }, + "babel-plugin-minify-simplify": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.5.1.tgz", + "integrity": "sha1-8hYTyLla80UKLKcVAv29kXk8jWo=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-flip-expressions": "^0.4.3", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.5.0" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.4.3.tgz", + "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-module-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-4.1.0.tgz?cache=0&sync_timestamp=1608044011972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-module-resolver%2Fdownload%2Fbabel-plugin-module-resolver-4.1.0.tgz", + "integrity": "sha1-IqTzL3RBcn7B+/SWe4Y+Hj6fM+I=", + "dev": true, + "requires": { + "find-babel-config": "^1.2.0", + "glob": "^7.1.6", + "pkg-up": "^3.1.0", + "reselect": "^4.0.0", + "resolve": "^1.13.1" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-3.1.0.tgz", + "integrity": "sha1-EA7CNcwVDk/UJRlBJZaihRKg3vU=", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.7", + "resolved": "https://registry.npm.taobao.org/babel-plugin-named-asset-import/download/babel-plugin-named-asset-import-0.3.7.tgz?cache=0&sync_timestamp=1603462431324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-named-asset-import%2Fdownload%2Fbabel-plugin-named-asset-import-0.3.7.tgz", + "integrity": "sha1-FWzVXT8SKKV2V3Q0CTevyDmAZ90=", + "dev": true + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.1.10", + "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.1.10.tgz", + "integrity": "sha1-osXCRfVsDKw9vdvwcmpGsk8PgdE=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.5", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.1.7.tgz?cache=0&sync_timestamp=1614674681632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha1-gESdnW8idJEuBdnhgrVIFpBL79A=", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.1.6.tgz?cache=0&sync_timestamp=1614675032754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.1.6.tgz", + "integrity": "sha1-D+BqAm/g+qYozMi6MwLaCmzgLz8=", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5" + } + }, + "babel-plugin-react-docgen": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-react-docgen/download/babel-plugin-react-docgen-4.2.1.tgz", + "integrity": "sha1-fMji+U6NwFegbpUxYvCBDk5yJXs=", + "dev": true, + "requires": { + "ast-types": "^0.14.2", + "lodash": "^4.17.15", + "react-docgen": "^5.0.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-class-constructor-call/download/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-do-expressions": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-do-expressions/download/babel-plugin-syntax-do-expressions-6.13.0.tgz", + "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-export-extensions/download/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-flow/download/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-function-bind": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-function-bind/download/babel-plugin-syntax-function-bind-6.13.0.tgz", + "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-class-constructor-call/download/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-define": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-define/download/babel-plugin-transform-define-2.0.0.tgz", + "integrity": "sha1-ecNTZjX4maq6+DCxlLJVGUZWdaQ=", + "dev": true, + "requires": { + "lodash": "^4.17.11", + "traverse": "0.6.6" + } + }, + "babel-plugin-transform-do-expressions": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-do-expressions/download/babel-plugin-transform-do-expressions-6.22.0.tgz", + "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", + "dev": true, + "requires": { + "babel-plugin-syntax-do-expressions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - } + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "babel-types": "^6.26.0" } }, - "babel-eslint": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", - "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "babel-traverse": "^6.23.1", - "babel-types": "^6.23.0", - "babylon": "^6.17.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "babel-helper-bindify-decorators": { + "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, - "babel-helper-builder-binary-assignment-operator-visitor": { + "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz?cache=0&sync_timestamp=1600413501417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz?cache=0&sync_timestamp=1612023268678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } } }, - "babel-helper-call-delegate": { + "babel-plugin-transform-exponentiation-operator": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-export-extensions/download/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, - "babel-helper-evaluate-path": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", - "integrity": "sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA==", - "dev": true - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-flow-strip-types/download/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, - "babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "babel-plugin-transform-function-bind": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-function-bind/download/babel-plugin-transform-function-bind-6.22.0.tgz", + "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", "dev": true, "requires": { - "babel-helper-bindify-decorators": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-plugin-syntax-function-bind": "^6.8.0", + "babel-runtime": "^6.22.0" } }, - "babel-helper-flip-expressions": { + "babel-plugin-transform-inline-consecutive-adds": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz", - "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", + "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=", "dev": true }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "babel-plugin-transform-jsx-class": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-class/download/babel-plugin-transform-jsx-class-0.1.3.tgz", + "integrity": "sha1-tZ5QGJYoAHimj7gpiylosGC4am8=", + "dev": true + }, + "babel-plugin-transform-jsx-condition": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-condition/download/babel-plugin-transform-jsx-condition-0.1.2.tgz", + "integrity": "sha1-r+pX/TGbQoUwKbV4GPX10rGuREk=", + "dev": true + }, + "babel-plugin-transform-jsx-fragment": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-fragment/download/babel-plugin-transform-jsx-fragment-0.1.4.tgz", + "integrity": "sha1-E+B1qMbUd3cTrmp4CRfwpdWE/5w=", + "dev": true + }, + "babel-plugin-transform-jsx-list": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-list/download/babel-plugin-transform-jsx-list-0.1.2.tgz", + "integrity": "sha1-JHIsdrClx2CZauBY7dJf+Rc99c0=", + "dev": true + }, + "babel-plugin-transform-jsx-memo": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-memo/download/babel-plugin-transform-jsx-memo-0.1.3.tgz", + "integrity": "sha1-nv9IkyTy2gwbYEu9fmpDhTk/OP0=", + "dev": true + }, + "babel-plugin-transform-jsx-slot": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-slot/download/babel-plugin-transform-jsx-slot-0.1.2.tgz", + "integrity": "sha1-mz/GnRZ0fXAToCAY4jPBrl8v0JI=", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/types": "^7.5.0" } }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "babel-plugin-transform-jsx-stylesheet": { + "version": "0.6.11", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-stylesheet/download/babel-plugin-transform-jsx-stylesheet-0.6.11.tgz", + "integrity": "sha1-NhwYa30/WNm3Pb21ja7AEKUOT2g=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } } }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "babel-plugin-transform-jsx-to-html": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-jsx-to-html/download/babel-plugin-transform-jsx-to-html-0.1.0.tgz", + "integrity": "sha1-OE+7mitxBHIKHsNsuLXqq/KGmQU=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/types": "^7.5.5", + "esutils": "^2.0.3" } }, - "babel-helper-is-nodes-equiv": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", - "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", "dev": true }, - "babel-helper-is-void-0": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz", - "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=", + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", + "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=", "dev": true }, - "babel-helper-mark-eval-scopes": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz", - "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=", + "babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", "dev": true }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "babel-plugin-transform-object-assign": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-object-assign/download/babel-plugin-transform-object-assign-6.22.0.tgz", + "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "^6.22.0" } }, - "babel-helper-regex": { + "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "esutils": "^2.0.2" } }, - "babel-helper-remove-or-void": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz", - "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=", - "dev": true + "babel-plugin-transform-proto-to-assign": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-proto-to-assign/download/babel-plugin-transform-proto-to-assign-6.26.0.tgz", + "integrity": "sha1-xJPiSmJ0mkT37ellBsDLOhiR9ns=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "lodash": "^4.17.4" + } }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-display-name/download/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "^6.22.0" } }, - "babel-helper-to-multiple-sequence-expressions": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz", - "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==", + "babel-plugin-transform-react-es6-displayname": { + "version": "1.0.0-beta1.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-es6-displayname/download/babel-plugin-transform-react-es6-displayname-1.0.0-beta1.4.tgz", + "integrity": "sha1-6x/mnTfmC5Hw0EJ4hy/IX8oj0Cc=", "dev": true }, - "babel-helpers": { + "babel-plugin-transform-react-jsx": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } - }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", - "dev": true, - "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-jsx-self/download/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-jsx-source/download/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz", + "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", "dev": true, "requires": { - "find-up": "^2.1.0" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } } } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "babel-plugin-transform-regexp-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.4.3.tgz", + "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=", + "dev": true + }, + "babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.5.0.tgz", + "integrity": "sha1-gCCLMSJXZsYwyX+i0oiVIFbqIt0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-helper-evaluate-path": "^0.5.0" } }, - "babel-plugin-add-react-displayname": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", - "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", + "babel-plugin-transform-rename-import": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-rename-import/download/babel-plugin-transform-rename-import-2.3.0.tgz", + "integrity": "sha1-XZ1kX5N7DKXCaiSyUQoGJ3tv/Zs=", "dev": true }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "object.assign": "^4.1.0" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1614537347747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } } }, - "babel-plugin-emotion": { - "version": "10.0.33", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz", - "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==", + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha1-tDmSObibKgEfndvj5PQB/EDP9zs=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.7.0.tgz", + "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-3.2.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-3.2.8.tgz", + "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npm.taobao.org/babel-preset-flow/download/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "dev": true, "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, - "babel-plugin-minify-builtins": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz", - "integrity": "sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag==", - "dev": true - }, - "babel-plugin-minify-constant-folding": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz", - "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==", + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-26.6.2.tgz", + "integrity": "sha1-dHhysRcd8DIlJCZYaIHWLTF5j+4=", "dev": true, "requires": { - "babel-helper-evaluate-path": "^0.5.0" + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" } }, - "babel-plugin-minify-dead-code-elimination": { + "babel-preset-minify": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz", - "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==", + "resolved": "https://registry.npm.taobao.org/babel-preset-minify/download/babel-preset-minify-0.5.1.tgz", + "integrity": "sha1-JfXQvONuyBi+gDONDllBBuIeqp8=", "dev": true, "requires": { - "babel-helper-evaluate-path": "^0.5.0", - "babel-helper-mark-eval-scopes": "^0.4.3", - "babel-helper-remove-or-void": "^0.4.3", + "babel-plugin-minify-builtins": "^0.5.0", + "babel-plugin-minify-constant-folding": "^0.5.0", + "babel-plugin-minify-dead-code-elimination": "^0.5.1", + "babel-plugin-minify-flip-comparisons": "^0.4.3", + "babel-plugin-minify-guarded-expressions": "^0.4.4", + "babel-plugin-minify-infinity": "^0.4.3", + "babel-plugin-minify-mangle-names": "^0.5.0", + "babel-plugin-minify-numeric-literals": "^0.4.3", + "babel-plugin-minify-replace": "^0.5.0", + "babel-plugin-minify-simplify": "^0.5.1", + "babel-plugin-minify-type-constructors": "^0.4.3", + "babel-plugin-transform-inline-consecutive-adds": "^0.4.3", + "babel-plugin-transform-member-expression-literals": "^6.9.4", + "babel-plugin-transform-merge-sibling-variables": "^6.9.4", + "babel-plugin-transform-minify-booleans": "^6.9.4", + "babel-plugin-transform-property-literals": "^6.9.4", + "babel-plugin-transform-regexp-constructors": "^0.4.3", + "babel-plugin-transform-remove-console": "^6.9.4", + "babel-plugin-transform-remove-debugger": "^6.9.4", + "babel-plugin-transform-remove-undefined": "^0.5.0", + "babel-plugin-transform-simplify-comparison-operators": "^6.9.4", + "babel-plugin-transform-undefined-to-void": "^6.9.4", "lodash": "^4.17.11" } }, - "babel-plugin-minify-flip-comparisons": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz", - "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=", + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "dev": true, "requires": { - "babel-helper-is-void-0": "^0.4.3" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, - "babel-plugin-minify-guarded-expressions": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz", - "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==", + "babel-preset-stage-0": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-stage-0/download/babel-preset-stage-0-6.24.1.tgz", + "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", "dev": true, "requires": { - "babel-helper-evaluate-path": "^0.5.0", - "babel-helper-flip-expressions": "^0.4.3" + "babel-plugin-transform-do-expressions": "^6.22.0", + "babel-plugin-transform-function-bind": "^6.22.0", + "babel-preset-stage-1": "^6.24.1" } }, - "babel-plugin-minify-infinity": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz", - "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=", - "dev": true - }, - "babel-plugin-minify-mangle-names": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz", - "integrity": "sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw==", + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-stage-1/download/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", "dev": true, "requires": { - "babel-helper-mark-eval-scopes": "^0.4.3" + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" } }, - "babel-plugin-minify-numeric-literals": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz", - "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=", - "dev": true - }, - "babel-plugin-minify-replace": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz", - "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==", - "dev": true + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } }, - "babel-plugin-minify-simplify": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz", - "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==", + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", "dev": true, "requires": { - "babel-helper-evaluate-path": "^0.5.0", - "babel-helper-flip-expressions": "^0.4.3", - "babel-helper-is-nodes-equiv": "^0.0.1", - "babel-helper-to-multiple-sequence-expressions": "^0.5.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, - "babel-plugin-minify-type-constructors": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz", - "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=", + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-helper-is-void-0": "^0.4.3" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1614537347747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz", + "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } } }, - "babel-plugin-named-asset-import": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz", - "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==", - "dev": true - }, - "babel-plugin-react-docgen": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz", - "integrity": "sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA==", + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "lodash": "^4.17.15", - "react-docgen": "^5.0.0", - "recast": "^0.14.7" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1614537347747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", + "dev": true + } } }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true - }, - "babel-plugin-syntax-class-constructor-call": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", - "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", - "dev": true - }, - "babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true - }, - "babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", - "dev": true - }, - "babel-plugin-syntax-do-expressions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", - "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", - "dev": true - }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-export-extensions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", - "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", - "dev": true - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, - "babel-plugin-syntax-function-bind": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", - "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", - "dev": true - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "babel-runtime-jsx-plus": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/babel-runtime-jsx-plus/download/babel-runtime-jsx-plus-0.1.5.tgz", + "integrity": "sha1-V/x+1J8JQXWEuLYd8sQ/RjxzjzI=", "dev": true }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-generators": "^6.5.0", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + } } }, - "babel-plugin-transform-class-constructor-call": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", - "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-plugin-syntax-class-constructor-call": "^6.18.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } } }, - "babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true }, - "babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "dev": true, "requires": { - "babel-helper-explode-class": "^6.24.1", - "babel-plugin-syntax-decorators": "^6.13.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-types": "^6.24.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "babel-plugin-transform-do-expressions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", - "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", - "dev": true, - "requires": { - "babel-plugin-syntax-do-expressions": "^6.8.0", - "babel-runtime": "^6.22.0" - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz", + "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", + "dev": true }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz", + "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "dev": true }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "tweetnacl": "^0.14.3" } }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "dev": true }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "dev": true }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", "dev": true, + "optional": true, "requires": { - "babel-runtime": "^6.22.0" + "file-uri-to-path": "1.0.0" } }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "inherits": "~2.0.0" } }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "dev": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", + "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } } }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/boxen/download/boxen-4.2.0.tgz", + "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "fill-range": "^7.0.1" } }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", "dev": true, "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz", + "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", "dev": true, "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" } }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz", + "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } } }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "pako": "~1.0.5" } }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.3.tgz", + "integrity": "sha1-NAqkaUDX24eHSFZ8XeokpI3fNxc=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" } }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz", + "integrity": "sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "node-int64": "^0.4.0" } }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz", + "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "build-plugin-component": { + "version": "1.3.4", + "resolved": "https://registry.npm.taobao.org/build-plugin-component/download/build-plugin-component-1.3.4.tgz", + "integrity": "sha1-JZKEy1+lp9aVwfQyXzTBPM8ivDU=", + "dev": true, + "requires": { + "@babel/core": "^7.1.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.3", + "@babel/plugin-transform-runtime": "^7.6.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.7.2", + "babel-plugin-import": "^1.12.2", + "babel-plugin-module-resolver": "^4.0.0", + "build-scripts-config": "^0.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "chalk": "^4.1.0", + "chokidar": "^3.3.1", + "console-clear": "^1.1.1", + "core-js": "^3.6.4", + "error-stack-tracey": "^0.1.3", + "fs-extra": "^8.1.0", + "glob": "^7.1.4", + "handlebars": "^4.5.3", + "handlebars-loader": "^1.7.1", + "html-webpack-plugin": "^4.5.0", + "ice-npm-utils": "^1.3.1", + "image-source-loader": "^0.6.5", + "ip": "^1.1.5", + "js-yaml": "^4.0.0", + "json-loader": "^0.5.7", + "jsx2mp-runtime": "^0.4.15", + "loader-utils": "^1.2.3", + "marked": "^0.7.0", + "miniapp-builder-shared": "^0.1.4", + "miniapp-compile-config": "^0.1.1", + "optimize-css-assets-webpack-plugin": "^5.0.4", + "postcss-plugin-rpx2vw": "^0.0.2", + "postcss-preset-env": "^6.7.0", + "prismjs": "^1.17.1", + "qrcode-terminal": "^0.12.0", + "rax-babel-config": "^0.1.2", + "rax-compile-config": "^0.2.15", + "rax-jest-config": "^0.0.4", + "rax-server-renderer": "^1.2.0", + "react-dev-utils": "^10.0.0", + "sass-loader": "^10.0.5", + "style-loader": "^1.2.1", + "template-component-demo": "^2.0.0", + "terser-webpack-plugin": "^4.1.0", + "time-fix-plugin": "^2.0.7", + "typescript": "^3.7.3", + "url-join": "^4.0.1", + "user-home": "^2.0.0", + "utils": "^0.3.1", + "webpack-chain": "^6.5.1", + "webpack-node-externals": "^2.5.2", + "webpackbar": "^5.0.0-3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz", + "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.10.0.tgz", + "integrity": "sha1-8XlzeRPq8NK5jkkmrBymoVy8xqk=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + } + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-15.0.5.tgz", + "integrity": "sha1-aRYoM9opFw1nMjNGQ8YOAF9fF9A=", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.1.tgz", + "integrity": "sha1-CrVihuD3wk4VPQTMKqAn5DqaXRQ=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/detect-port-alt/download/detect-port-alt-1.1.6.tgz", + "integrity": "sha1-JHB96r6TLUo89iEwICfCsmZWgnU=", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz", + "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } + } + }, + "filesize": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-6.0.1.tgz", + "integrity": "sha1-+FC1CZCcfIb35FDqGQBsMcLtPS8=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-3.1.1.tgz?cache=0&sync_timestamp=1610240663140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffork-ts-checker-webpack-plugin%2Fdownload%2Ffork-ts-checker-webpack-plugin-3.1.1.tgz", + "integrity": "sha1-oWQsDT5l9QwswXQunAqA9EH4axk=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^3.3.0", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "inquirer": { + "version": "7.0.4", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.0.4.tgz", + "integrity": "sha1-ma9b3kcVOryiP1x/ww2yR/OdpwM=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-4.0.0.tgz", + "integrity": "sha1-9Ca8D/S0BRkmzViMcRExg0CaEh8=", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npm.taobao.org/open/download/open-7.4.2.tgz?cache=0&sync_timestamp=1614759218873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.4.2.tgz", + "integrity": "sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-3.1.0.tgz", + "integrity": "sha1-EA7CNcwVDk/UJRlBJZaihRKg3vU=", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "react-dev-utils": { + "version": "10.2.1", + "resolved": "https://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-10.2.1.tgz?cache=0&sync_timestamp=1614018638750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-10.2.1.tgz", + "integrity": "sha1-9t4yWuJfpNVG0J30uxvv3G3RnBk=", + "dev": true, + "requires": { + "@babel/code-frame": "7.8.3", + "address": "1.1.2", + "browserslist": "4.10.0", + "chalk": "2.4.2", + "cross-spawn": "7.0.1", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "2.0.0", + "filesize": "6.0.1", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "3.1.1", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "7.0.4", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "react-error-overlay": "^6.0.7", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "strip-ansi": "6.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-5.0.1.tgz", + "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.1.0.tgz", + "integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "terser": { + "version": "5.6.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-5.6.0.tgz?cache=0&sync_timestamp=1613134655236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-5.6.0.tgz", + "integrity": "sha1-E4zfIcXjEAsbPd/d9yCWL4i63NI=", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha1-KNrvSoO9F8HbApcHCtwH/Iz8apo=", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1606288549008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/user-home/download/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "build-scripts-config": { + "version": "0.1.10", + "resolved": "https://registry.npm.taobao.org/build-scripts-config/download/build-scripts-config-0.1.10.tgz?cache=0&sync_timestamp=1614155955568&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuild-scripts-config%2Fdownload%2Fbuild-scripts-config-0.1.10.tgz", + "integrity": "sha1-uWLvJFdQ4KFTsX0eXhpLbnq7IHE=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "@builder/babel-preset-ice": "^1.0.0", + "babel-jest": "^24.9.0", + "babel-loader": "^8.0.6", + "camelcase": "^5.3.1", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "core-js": "^3.3.1", + "css-hot-loader": "^1.4.4", + "css-loader": "^3.2.0", + "file-loader": "^5.0.2", + "identity-obj-proxy": "^3.0.0", + "less": "^3.10.3", + "less-loader": "^5.0.0", + "loader-utils": "^1.2.3", + "lodash.clonedeep": "^4.5.0", + "mini-css-extract-plugin": "^0.8.0", + "node-sass": "^4.12.0", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "postcss-loader": "^3.0.0", + "postcss-preset-env": "^6.7.0", + "postcss-safe-parser": "^4.0.1", + "regenerator-runtime": "^0.13.3", + "sass-loader": "^8.0.0", + "terser-webpack-plugin": "^2.3.1", + "time-fix-plugin": "^2.0.6", + "ts-loader": "^6.1.2", + "typescript": "^3.6.3", + "url-loader": "^2.1.0", + "webpack-chain": "^6.0.0", + "webpack-filter-warnings-plugin": "^1.2.1", + "webpack-simple-progress-plugin": "0.0.4" }, "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/@jest/console/download/@jest/console-24.9.0.tgz", + "integrity": "sha1-ebG8Bvt0qM+wHL3t+UVYSxuXB/A=", + "dev": true, + "requires": { + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" + } + }, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-24.9.0.tgz", + "integrity": "sha1-uj5r8O7NCaY2BJiWQ00wZjZUDJM=", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-24.9.0.tgz", + "integrity": "sha1-DiY6lEML5LQdpoPMwea//ioZFxQ=", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-24.9.0.tgz", + "integrity": "sha1-EXluiqnb+I6gJXV7MVJZWtBroMo=", + "dev": true, + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + } + }, + "@jest/transform": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-24.9.0.tgz", + "integrity": "sha1-SuJ2iyllU/rasJ6ewRlUPJCxbFY=", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^24.9.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.15", + "jest-haste-map": "^24.9.0", + "jest-regex-util": "^24.9.0", + "jest-util": "^24.9.0", + "micromatch": "^3.1.10", + "pirates": "^4.0.1", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "2.4.1" + } + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/@jest/types/download/@jest/types-24.9.0.tgz", + "integrity": "sha1-Y8smy3UA0Gnlo4lEGnxqtekJ/Fk=", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-1.1.2.tgz?cache=0&sync_timestamp=1613379043554&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-1.1.2.tgz", + "integrity": "sha1-6HXMaJ5HvOVJ7IHz315vbxHPrrI=", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz", + "integrity": "sha1-CoUdO9lkmPolwzq3J47TvWXwbD4=", + "dev": true + }, + "@types/yargs": { + "version": "13.0.11", + "resolved": "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-13.0.11.tgz?cache=0&sync_timestamp=1613384866333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-13.0.11.tgz", + "integrity": "sha1-3vLwyT5L3yxh1+NImbF+NL4o07E=", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "babel-jest": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/babel-jest/download/babel-jest-24.9.0.tgz", + "integrity": "sha1-P8Mny4RnuJ0U17xw4xUQSng8zVQ=", + "dev": true, + "requires": { + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.9.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz", + "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-5.2.0.tgz", + "integrity": "sha1-30reg9iXqS3wacTZolzyZxKTyFQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.3.0", + "test-exclude": "^5.2.3" + } + }, + "babel-plugin-jest-hoist": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-24.9.0.tgz", + "integrity": "sha1-T4NwketAfgFEfIhDy+xUbQAC11Y=", + "dev": true, + "requires": { + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-jest": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-24.9.0.tgz", + "integrity": "sha1-GStSHiIX+x0fZ89z9wwzZlCtPNw=", + "dev": true, + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz", + "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz", + "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=", + "dev": true + }, + "file-loader": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-5.1.0.tgz?cache=0&sync_timestamp=1603816990383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-5.1.0.tgz", + "integrity": "sha1-y1bAcO/A5AZmQkMJvQ2eRaxvK7g=", + "dev": true, + "requires": { + "loader-utils": "^1.4.0", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha1-pfY9kfC7wMPkee9MXeAnM17G1jA=", + "dev": true, + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + } + }, + "jest-haste-map": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz", + "integrity": "sha1-s4pdZCdJNOIfpBeump++t3zqrH0=", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-24.9.0.tgz", + "integrity": "sha1-Un9UoeOA9eICqNEUmw7IcvQxGeM=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-mock/download/jest-mock-24.9.0.tgz", + "integrity": "sha1-wig1VB7jebkIZzrVEIeiGFwT8cY=", + "dev": true, + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-regex-util": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-24.9.0.tgz?cache=0&sync_timestamp=1607352728942&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-regex-util%2Fdownload%2Fjest-regex-util-24.9.0.tgz", + "integrity": "sha1-wT+zOAveIr9ldUMsST6o/jeWVjY=", + "dev": true + }, + "jest-serializer": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz", + "integrity": "sha1-5tfX75bTHouQeacUdUxdXFgojnM=", + "dev": true + }, + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-util/download/jest-util-24.9.0.tgz", + "integrity": "sha1-c5aBTkhTbS6Fo33j5MQx18sUAWI=", + "dev": true, + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + } + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1613686238253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz", + "integrity": "sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha1-qHXhab6yfIivd92WJ3HJ7tw9oWE=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-4.0.0.tgz?cache=0&sync_timestamp=1609905367026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-4.0.0.tgz", + "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz", + "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz", + "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", "dev": true, "requires": { - "jsesc": "~0.5.0" + "kind-of": "^6.0.2" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "stack-utils": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.4.tgz?cache=0&sync_timestamp=1606350209059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstack-utils%2Fdownload%2Fstack-utils-1.0.4.tgz", + "integrity": "sha1-S2AJcdz8au0MvfKoJoF3zJFsh8g=", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz", + "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1613686238253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz", + "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npm.taobao.org/test-exclude/download/test-exclude-5.2.3.tgz", + "integrity": "sha1-w9Ph4xHrfuQF4JLawQrv0JCR6sA=", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "write-file-atomic": { + "version": "2.4.1", + "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.1.tgz", + "integrity": "sha1-0LBUY8GIroBDlv1asqNwBir4dSk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true } } }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-export-extensions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", - "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", - "dev": true, - "requires": { - "babel-plugin-syntax-export-extensions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-function-bind": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", - "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", - "dev": true, - "requires": { - "babel-plugin-syntax-function-bind": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-inline-consecutive-adds": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", - "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=", - "dev": true - }, - "babel-plugin-transform-member-expression-literals": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", - "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", - "dev": true - }, - "babel-plugin-transform-merge-sibling-variables": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", - "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=", - "dev": true - }, - "babel-plugin-transform-minify-booleans": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", - "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", - "dev": true - }, - "babel-plugin-transform-object-assign": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz", - "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true }, - "babel-plugin-transform-property-literals": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", - "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", "dev": true, "requires": { - "esutils": "^2.0.2" + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + } } }, - "babel-plugin-transform-proto-to-assign": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-proto-to-assign/-/babel-plugin-transform-proto-to-assign-6.26.0.tgz", - "integrity": "sha1-xJPiSmJ0mkT37ellBsDLOhiR9ns=", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "lodash": "^4.17.4" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610403007655&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz", + "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "babel-plugin-transform-react-es6-displayname": { - "version": "1.0.0-beta1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-es6-displayname/-/babel-plugin-transform-react-es6-displayname-1.0.0-beta1.4.tgz", - "integrity": "sha1-6x/mnTfmC5Hw0EJ4hy/IX8oj0Cc=", + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } } }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "caller-callsite": "^2.0.0" } }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-4.1.2.tgz?cache=0&sync_timestamp=1606867359182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.2.tgz", + "integrity": "sha1-lygHKpVPgFIoIlpt7qazhGHhvVo=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" } }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "regenerator-transform": "^0.10.0" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true } } }, - "babel-plugin-transform-regexp-constructors": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", - "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=", - "dev": true - }, - "babel-plugin-transform-remove-console": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", - "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", - "dev": true - }, - "babel-plugin-transform-remove-debugger": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", - "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "can-use-dom": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/can-use-dom/download/can-use-dom-0.1.0.tgz", + "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=", "dev": true }, - "babel-plugin-transform-remove-undefined": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz", - "integrity": "sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ==", + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", "dev": true, "requires": { - "babel-helper-evaluate-path": "^0.5.0" + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" } }, - "babel-plugin-transform-simplify-comparison-operators": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", - "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "caniuse-lite": { + "version": "1.0.30001196", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001196.tgz?cache=0&sync_timestamp=1614847492807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001196.tgz", + "integrity": "sha1-AFGKIESxq/Pg3zH62+XtkLY/TmQ=", "dev": true }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz", + "integrity": "sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "rsvp": "^4.8.4" } }, - "babel-plugin-transform-undefined-to-void": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", - "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.4.0.tgz?cache=0&sync_timestamp=1614018085802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha1-22QGbGQi7tLgjMFLmGykN5bbxtQ=", "dev": true }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/char-regex/download/char-regex-1.0.2.tgz", + "integrity": "sha1-10Q1giYhf5ge1Y9Hmx1rzClUXc8=", + "dev": true + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/character-entities/download/character-entities-1.2.4.tgz", + "integrity": "sha1-4Sw5Obfq9OWxXnrUxeKOHUjFsWs=", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/character-entities-legacy/download/character-entities-legacy-1.1.4.tgz", + "integrity": "sha1-lLwYRdznClu50uzHSHJWYSk9j8E=", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/character-reference-invalid/download/character-reference-invalid-1.1.4.tgz", + "integrity": "sha1-CDMpzaDq4nKrPbvzfpo4LBOvFWA=", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", + "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" }, "dependencies": { - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", "dev": true } } }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz", + "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", "dev": true, "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "babel-preset-minify": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz", - "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==", + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/cjs-module-lexer/download/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha1-QYb8yg6uF1lwruhwuf4tbPjVZV8=", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "dev": true, "requires": { - "babel-plugin-minify-builtins": "^0.5.0", - "babel-plugin-minify-constant-folding": "^0.5.0", - "babel-plugin-minify-dead-code-elimination": "^0.5.1", - "babel-plugin-minify-flip-comparisons": "^0.4.3", - "babel-plugin-minify-guarded-expressions": "^0.4.4", - "babel-plugin-minify-infinity": "^0.4.3", - "babel-plugin-minify-mangle-names": "^0.5.0", - "babel-plugin-minify-numeric-literals": "^0.4.3", - "babel-plugin-minify-replace": "^0.5.0", - "babel-plugin-minify-simplify": "^0.5.1", - "babel-plugin-minify-type-constructors": "^0.4.3", - "babel-plugin-transform-inline-consecutive-adds": "^0.4.3", - "babel-plugin-transform-member-expression-literals": "^6.9.4", - "babel-plugin-transform-merge-sibling-variables": "^6.9.4", - "babel-plugin-transform-minify-booleans": "^6.9.4", - "babel-plugin-transform-property-literals": "^6.9.4", - "babel-plugin-transform-regexp-constructors": "^0.4.3", - "babel-plugin-transform-remove-console": "^6.9.4", - "babel-plugin-transform-remove-debugger": "^6.9.4", - "babel-plugin-transform-remove-undefined": "^0.5.0", - "babel-plugin-transform-simplify-comparison-operators": "^6.9.4", - "babel-plugin-transform-undefined-to-void": "^6.9.4", - "lodash": "^4.17.11" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz", + "integrity": "sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4=" + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz?cache=0&sync_timestamp=1614795261768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz", + "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "source-map": "~0.6.0" } }, - "babel-preset-stage-0": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", - "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/cli-boxes/download/cli-boxes-2.2.1.tgz", + "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "babel-plugin-transform-do-expressions": "^6.22.0", - "babel-plugin-transform-function-bind": "^6.22.0", - "babel-preset-stage-1": "^6.24.1" + "restore-cursor": "^2.0.0" } }, - "babel-preset-stage-1": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", - "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/cli-table3/download/cli-table3-0.5.1.tgz", + "integrity": "sha1-AlI3LZTfxA29jfBgBfSPMfZW8gI=", "dev": true, "requires": { - "babel-plugin-transform-class-constructor-call": "^6.24.1", - "babel-plugin-transform-export-extensions": "^6.22.0", - "babel-preset-stage-2": "^6.24.1" + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz", + "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=", + "dev": true + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz", + "integrity": "sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=", "dev": true, + "optional": true, "requires": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators": "^6.24.1", - "babel-preset-stage-3": "^6.24.1" + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", "dev": true, "requires": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-generator-functions": "^6.24.1", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-exponentiation-operator": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.22.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" }, "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "source-map": "^0.5.6" + "is-buffer": "^1.1.5" } } } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "co": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/collect-v8-coverage/download/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha1-zCyOlPwYu9/+ZNZTRXDIpnOyf1k=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "color": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz", + "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "color-convert": "^1.9.1", + "color-string": "^1.5.4" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "color-name": "1.1.3" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz", + "integrity": "sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259647923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz", + "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=", "dev": true }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/colors/download/colors-1.4.0.tgz", + "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=", + "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } + "delayed-stream": "~1.0.0" } }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/comma-separated-tokens/download/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha1-YyuAthF4Z6FY8QgK1Jiy++fj9eo=", "dev": true }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/common-tags/download/common-tags-1.8.0.tgz", + "integrity": "sha1-jjFT5ULUo56bEFVENK+q+YlWqTc=", "dev": true }, - "batch-processor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz", + "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "mime-db": ">= 1.43.0 < 2" } }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", "dev": true, - "optional": true + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } }, - "binaryextensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", - "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npm.taobao.org/consola/download/consola-2.15.3.tgz", + "integrity": "sha1-LhH5jWpL5x/3LgvfB70j4Sy2FVA=", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "dev": true + }, + "console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/console-clear/download/console-clear-1.1.1.tgz", + "integrity": "sha1-mV4gy/vxTdeStnLN44e9Eo1nS/c=", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", "dev": true, - "optional": true, "requires": { - "file-uri-to-path": "1.0.0" + "safe-buffer": "5.1.2" } }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", "dev": true, "requires": { - "inherits": "~2.0.0" + "safe-buffer": "~5.1.1" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", "dev": true }, - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/copy-anything/download/copy-anything-2.0.3.tgz", + "integrity": "sha1-hCQHugJGaw34RIGbvjuuu+XUXYc=", "dev": true, "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "is-what": "^3.12.0" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", "dev": true, "requires": { - "ms": "2.0.0" + "glob": "^7.1.3" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/copy-to-clipboard/download/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha1-EVqhqZmP+rYZb5MHatbaO5E2Yq4=", "dev": true, "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - } + "toggle-selection": "^1.0.6" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-6.4.1.tgz?cache=0&sync_timestamp=1608124845739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-6.4.1.tgz", + "integrity": "sha1-E4zZtDbbygptBxcg1UFISJkuxH4=", "dev": true, "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.4.tgz?cache=0&sync_timestamp=1609074523193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.4.tgz", + "integrity": "sha1-o/LdYbq0O424+hCKEhz//kxnZlU=", "dev": true }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-2.1.0.tgz?cache=0&sync_timestamp=1614624302839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-15.0.5.tgz", + "integrity": "sha1-aRYoM9opFw1nMjNGQ8YOAF9fF9A=", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", "dev": true }, - "chalk": { + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz", + "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "emojis-list": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-3.2.5.tgz?cache=0&sync_timestamp=1610876505711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.5.tgz", + "integrity": "sha1-eTmvKmVt55pPGQGQPuityqfLlmE=", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", "dev": true, "requires": { - "color-name": "~1.1.4" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-11.0.2.tgz", + "integrity": "sha1-GvU4t2ajtUDr+1ijKy4tWJcyHYM=", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-5.1.8.tgz", + "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1606288549008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "yocto-queue": "^0.1.0" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "aggregate-error": "^3.0.0" } }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", + "dev": true + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-5.0.1.tgz", + "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "randombytes": "^2.1.0" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "minipass": "^3.1.1" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.1.0.tgz", + "integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + } } }, - "browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - } + "core-js": { + "version": "3.9.1", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.9.1.tgz?cache=0&sync_timestamp=1614537347747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.9.1.tgz", + "integrity": "sha1-zsjeWT246yqF/7Db3rMSy25UYK4=", + "dev": true }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "core-js-compat": { + "version": "3.9.1", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.9.1.tgz", + "integrity": "sha1-Tlcqz+kK/2nXbYw3dZ0hpcWbtFU=", "dev": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "browserslist": "^4.16.3", + "semver": "7.0.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", "dev": true } } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "core-js-pure": { + "version": "3.9.1", + "resolved": "https://registry.npm.taobao.org/core-js-pure/download/core-js-pure-3.9.1.tgz?cache=0&sync_timestamp=1614537348035&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.9.1.tgz", + "integrity": "sha1-Z3syImcXK9SQ5EZGlveQy8NVvsU=", "dev": true }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "corejs-upgrade-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/corejs-upgrade-webpack-plugin/download/corejs-upgrade-webpack-plugin-2.2.0.tgz", + "integrity": "sha1-UDKTvx/csQSRjrQNApTkd2rWkjo=", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "resolve-from": "^5.0.0", + "webpack": "^4.38.0" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-6.0.0.tgz", + "integrity": "sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI=", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", "dev": true } } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", + "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", "dev": true, "requires": { - "callsites": "^2.0.0" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" }, "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", "dev": true } } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", "dev": true, "requires": { - "caller-callsite": "^2.0.0" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", - "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", "dev": true, "requires": { - "pascal-case": "^3.1.1", - "tslib": "^1.10.0" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + "create-react-context": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/create-react-context/download/create-react-context-0.3.0.tgz", + "integrity": "sha1-VG3t6dxCLe8NP8L+A6/gvA9PfYw=", + "dev": true, + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, - "can-use-dom": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", - "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=", + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", "dev": true }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", "dev": true, "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, - "caniuse-lite": { - "version": "1.0.30001110", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001110.tgz", - "integrity": "sha512-KqJWeat4rhSHF0ito4yz9q/JuZHkvn71SsBnxge4azjPDbowIjOUnS8i1xpKGxZxU6BFiPqO2hSV2eiCpFQVRw==", - "dev": true + "css": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz", + "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", - "dev": true + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha1-3979MlS/ioICeZNnTM81SDv8s8U=", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1604519271783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "postcss": "^7.0.1", + "timsort": "^0.3.0" } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz", + "integrity": "sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4=", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", + "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", + "dev": true + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", + "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "css-hot-loader": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/css-hot-loader/download/css-hot-loader-1.4.4.tgz", + "integrity": "sha1-rnhJMs2LfQkvfxVwKvCLPslDYFI=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "lodash": "^4.17.5", + "normalize-url": "^1.9.1" + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz", + "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=", + "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", - "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "css-modules-loader-core": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/css-modules-loader-core/download/css-modules-loader-core-1.1.0.tgz", + "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", "dev": true, - "optional": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.1", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, - "optional": true, "requires": { - "fill-range": "^7.0.1" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", "dev": true, - "optional": true, "requires": { - "to-regex-range": "^5.0.1" + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", "dev": true, - "optional": true + "requires": { + "postcss": "^6.0.1" + } }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&sync_timestamp=1602587682123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "optional": true, "requires": { - "is-number": "^7.0.0" + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" } } } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", "dev": true, "requires": { - "tslib": "^1.9.0" + "css": "^2.0.0" } }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/css-prefers-color-scheme/download/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha1-b4MKJxQZnU8NDQu4onkW7WXP8fQ=", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "postcss": "^7.0.5" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1608486347088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", + "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "dev": true }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha1-c18mGG5nx0mq8nV4NAXPBmH66PE=", "dev": true, "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602570970779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", + "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", "dev": true }, - "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz", + "integrity": "sha1-O/LypowQ9cagir2SN4Mx7oA83bA=", "dev": true }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true }, - "cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano%2Fdownload%2Fcssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", "dev": true, "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } }, - "is-fullwidth-code-point": { + "import-fresh": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, - "strip-ansi": { + "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true } } }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", "dev": true }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "dev": true, - "optional": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" + "postcss": "^7.0.0" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", "dev": true }, - "clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408790645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz", + "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", "dev": true, "requires": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" + "css-tree": "^1.1.2" }, "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.2.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.1.2.tgz", + "integrity": "sha1-muOTtdr9fa6KYiR1yux409j717U=", "dev": true, "requires": { - "isobject": "^3.0.1" + "mdn-data": "2.0.14", + "source-map": "^0.6.1" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.14.tgz?cache=0&sync_timestamp=1614722039269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.14.tgz", + "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", "dev": true } } }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npm.taobao.org/cssom/download/cssom-0.4.4.tgz", + "integrity": "sha1-WmbPk9LQtmHYC/akT7ZfXC5OChA=", "dev": true }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-2.3.0.tgz", + "integrity": "sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI=", "dev": true, "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" + "cssom": "~0.3.6" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz", + "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", + "dev": true } } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "csstype": { + "version": "3.0.7", + "resolved": "https://registry.npm.taobao.org/csstype/download/csstype-3.0.7.tgz?cache=0&sync_timestamp=1614159662633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.7.tgz", + "integrity": "sha1-Kl+3XhAV6E3RVpL3HomhRQKQlQs=" }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "array-find-index": "^1.0.1" } }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "d": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz", + "integrity": "sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o=", "dev": true, "requires": { - "color-name": "1.1.3" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, + "d3-array": { + "version": "2.11.0", + "resolved": "https://registry.npm.taobao.org/d3-array/download/d3-array-2.11.0.tgz?cache=0&sync_timestamp=1611535404824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-array%2Fdownload%2Fd3-array-2.11.0.tgz", + "integrity": "sha1-XtaihpvH1HGuyN+f9u2f73mPrMQ=", "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "internmap": "^1.0.0" } }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.7.tgz", + "integrity": "sha1-NJvSqpl32wcQkcExRNXk8WtbMQ4=" }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/d3-color/download/d3-color-1.4.1.tgz", + "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=" }, - "colors": { + "d3-composite-projections": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, + "resolved": "https://registry.npm.taobao.org/d3-composite-projections/download/d3-composite-projections-1.4.0.tgz?cache=0&sync_timestamp=1602058990297&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-composite-projections%2Fdownload%2Fd3-composite-projections-1.4.0.tgz", + "integrity": "sha1-J7GC+mNaWGk0n+kRzgGAuXTRfxI=", "requires": { - "delayed-stream": "~1.0.0" + "d3-geo": "^2.0.1", + "d3-path": "^2.0.0" + }, + "dependencies": { + "d3-geo": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/d3-geo/download/d3-geo-2.0.1.tgz", + "integrity": "sha1-JDf9/tP+OrooEr2PMGCcrIOn7jk=", + "requires": { + "d3-array": ">=2.5" + } + } } }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/d3-dsv/download/d3-dsv-1.2.0.tgz", + "integrity": "sha1-nV91w6X4q9YR900/WEew1DOLiFw=", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.7.tgz", + "integrity": "sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI=" }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "d3-geo": { + "version": "1.6.4", + "resolved": "https://registry.npm.taobao.org/d3-geo/download/d3-geo-1.6.4.tgz", + "integrity": "sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk=", + "requires": { + "d3-array": "1" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz?cache=0&sync_timestamp=1611535404824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-array%2Fdownload%2Fd3-array-1.2.4.tgz", + "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" + } + } }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, + "d3-geo-projection": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/d3-geo-projection/download/d3-geo-projection-2.1.2.tgz", + "integrity": "sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM=", "requires": { - "mime-db": ">= 1.43.0 < 2" + "commander": "2", + "d3-array": "1", + "d3-geo": "^1.1.0" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz?cache=0&sync_timestamp=1611535404824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-array%2Fdownload%2Fd3-array-1.2.4.tgz", + "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" + } } }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, + "d3-hexjson": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/d3-hexjson/download/d3-hexjson-1.1.1.tgz", + "integrity": "sha1-oeJk/5A7sJuPj0vFnHJEepH0YP4=", "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "d3-array": "1" }, "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz?cache=0&sync_timestamp=1611535404824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-array%2Fdownload%2Fd3-array-1.2.4.tgz", + "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" } } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.9.tgz", + "integrity": "sha1-L2vuJMqupD+Nw3VF+gFihVlkeoM=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.4.0.tgz", + "integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "d3-color": "1" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true + "d3-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/d3-path/download/d3-path-2.0.0.tgz", + "integrity": "sha1-VdhqwTGgVIra4kHuv7VrRYLdCdg=" }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true + "d3-sankey": { + "version": "0.9.1", + "resolved": "https://registry.npm.taobao.org/d3-sankey/download/d3-sankey-0.9.1.tgz", + "integrity": "sha1-uFAUWjKEERY23eyQ39qMZJGb7k4=", + "requires": { + "d3-array": "1", + "d3-collection": "1", + "d3-shape": "^1.2.0" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz?cache=0&sync_timestamp=1611535404824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-array%2Fdownload%2Fd3-array-1.2.4.tgz", + "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" + } + } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/d3-shape/download/d3-shape-1.3.7.tgz", + "integrity": "sha1-32OAG+B7yYa8VPY3ibT+UCmStdc=", + "requires": { + "d3-path": "1" + }, + "dependencies": { + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/d3-path/download/d3-path-1.0.9.tgz", + "integrity": "sha1-SMBQux/owmJJOoyvVSTj6VkXAc8=" + } + } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.10.tgz", + "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=" + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/d3-voronoi/download/d3-voronoi-1.1.4.tgz", + "integrity": "sha1-3Tx412U9K7NZKErkeGRdlZRMgpc=" }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true + "dagre": { + "version": "0.8.5", + "resolved": "https://registry.npm.taobao.org/dagre/download/dagre-0.8.5.tgz", + "integrity": "sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4=", + "requires": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073333186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "assert-plus": "^1.0.0" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "contour_plot": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/contour_plot/-/contour_plot-0.0.1.tgz", - "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/data-urls/download/data-urls-2.0.0.tgz", + "integrity": "sha1-FWSFpyljqXD11YIar2Qr7yvy25s=", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" } }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "ms": "2.0.0" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1610348706789&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "dev": true, - "requires": { - "toggle-selection": "^1.0.6" - } + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npm.taobao.org/decimal.js/download/decimal.js-10.2.1.tgz", + "integrity": "sha1-I4rnsPDHk9PjzqQQEIs1osAUJqM=", + "dev": true }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606859943631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", + "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", "dev": true, "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" } }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "deep-object-diff": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/deep-object-diff/download/deep-object-diff-1.1.0.tgz", + "integrity": "sha1-1vq/R2wu0XUfyU1cppPS7YwYvFo=", "dev": true }, - "corejs-upgrade-webpack-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz", - "integrity": "sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ==", + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz", + "integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1610365825693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", "dev": true, "requires": { - "resolve-from": "^5.0.0", - "webpack": "^4.38.0" + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" + "object-keys": "^1.0.12" } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "dev": true, "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076741536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, - "create-react-context": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", - "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=", "dev": true, - "requires": { - "gud": "^1.0.0", - "warning": "^4.0.3" - } + "optional": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-browser": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-5.2.0.tgz?cache=0&sync_timestamp=1602161491117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.2.0.tgz", + "integrity": "sha1-yc1a+pamoZ/aC76em+SKa24enJc=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "repeating": "^2.0.0" } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/detect-newline/download/detect-newline-3.1.0.tgz", + "integrity": "sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", "dev": true }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "detect-node-es": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/detect-node-es/download/detect-node-es-1.0.0.tgz", + "integrity": "sha1-wDGLnlOaUlbKeA3ZV1yTRa8FuO0=", + "dev": true + }, + "detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/detect-port/download/detect-port-1.3.0.tgz", + "integrity": "sha1-2cQOmsyt1N9crGp4Ku/QFNVz0fE=", "dev": true, "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" + "address": "^1.0.1", + "debug": "^2.6.0" } }, - "css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/diff-sequences/download/diff-sequences-26.6.2.tgz", + "integrity": "sha1-SLqZFX3hkjQS7tQdtrbUqpynwLE=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", "dev": true, "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", "dev": true - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } } } }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz", + "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", "dev": true, "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", "dev": true }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", "dev": true, "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } }, - "cssesc": { + "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "esutils": "^2.0.2" } }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", "dev": true, "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" + "utila": "~0.4" } }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/dom-helpers/download/dom-helpers-5.2.0.tgz", + "integrity": "sha1-V/0FTF+PNMUqPu/9t+fpPNNX2Vs=", "dev": true, "requires": { - "postcss": "^7.0.0" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1607193111136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.39" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" }, "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "dev": true, - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.1.0.tgz?cache=0&sync_timestamp=1606865969598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.1.0.tgz", + "integrity": "sha1-qFHAgKbRw9lDRK7RUdmfZp7fWF4=", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1611535711703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.2.0.tgz", + "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", "dev": true } } }, - "csstype": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.2.tgz", - "integrity": "sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==", + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.2.tgz", + "integrity": "sha1-DFSL7wSPTR8qlySQAiNgYNqj/YQ=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", "dev": true }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1606865969598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true }, - "d3-composite-projections": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/d3-composite-projections/-/d3-composite-projections-1.2.3.tgz", - "integrity": "sha512-RxNBoRGf3epTnQBUKeEpaXpD8BA/Ud0xRuLwWxyI7dWfuuYgJZMKw6ZsZOwfDNC0ZbMWaU0eBFlL05A2jlcsWg==", + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/domexception/download/domexception-2.0.1.tgz", + "integrity": "sha1-+0Su+6eT4VdLCvau0oAdBXUp8wQ=", + "dev": true, "requires": { - "d3-geo": "^1.11.6", - "d3-path": "^1.0.7" + "webidl-conversions": "^5.0.0" }, "dependencies": { - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-5.0.0.tgz", + "integrity": "sha1-rlnIoAsSFUOirMZcBDT1ew/BGv8=", + "dev": true } } }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-dsv": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.10.tgz", - "integrity": "sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g==", + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz?cache=0&sync_timestamp=1606872277715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, "requires": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - } - }, - "d3-ease": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz", - "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==" - }, - "d3-geo": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.6.4.tgz", - "integrity": "sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk=", + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, "requires": { - "d3-array": "1" + "dom-serializer": "0", + "domelementtype": "1" } }, - "d3-geo-projection": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz", - "integrity": "sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM=", + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/dot-case/download/dot-case-3.0.4.tgz", + "integrity": "sha1-mytnDQCkMWZ6inW6Kc0bmICc51E=", + "dev": true, "requires": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.1.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "d3-hexjson": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d3-hexjson/-/d3-hexjson-1.0.1.tgz", - "integrity": "sha512-TeH4T0PSbDazMm3gHgc4ulO0PfrZpz0Uk3y5tCGz+NgC7HnX7KBdem7uAN+j9x3ZshTh7raN3V/bFhaLB2C8DA==", + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz", + "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", + "dev": true, "requires": { - "d3-array": "1" + "is-obj": "^2.0.0" } }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-6.2.0.tgz", + "integrity": "sha1-lBwEEFNdlCyL7PKNPzV9vZ1HYGQ=", + "dev": true }, - "d3-interpolate": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz", - "integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==", + "dotenv-defaults": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/dotenv-defaults/download/dotenv-defaults-1.1.1.tgz", + "integrity": "sha1-AywCT0tZBtmZDrBtci3HTMYOwb0=", + "dev": true, "requires": { - "d3-color": "1" + "dotenv": "^6.2.0" } }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", + "dev": true }, - "d3-sankey": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.7.1.tgz", - "integrity": "sha1-0imDImj8aaf+yEgD6WwiVqYUxSE=", + "dotenv-webpack": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/dotenv-webpack/download/dotenv-webpack-1.8.0.tgz?cache=0&sync_timestamp=1614832443834&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdotenv-webpack%2Fdownload%2Fdotenv-webpack-1.8.0.tgz", + "integrity": "sha1-fKec7ySX3UB51D6B4HlrydD2il4=", + "dev": true, "requires": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" + "dotenv-defaults": "^1.0.2" } }, - "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "dev": true }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "dev": true, "requires": { - "d3-path": "1" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true }, - "dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1612643435705&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.680", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.680.tgz?cache=0&sync_timestamp=1614827041581&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.680.tgz", + "integrity": "sha1-iMxEvSqFtGz3Uh9xTbV9100M1Ig=", + "dev": true + }, + "element-resize-detector": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/element-resize-detector/download/element-resize-detector-1.2.2.tgz?cache=0&sync_timestamp=1614322885158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-resize-detector%2Fdownload%2Felement-resize-detector-1.2.2.tgz", + "integrity": "sha1-v3w/+RWVfk5i6GJB7S+chrB4iSs=", + "dev": true, "requires": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" + "batch-processor": "1.0.0" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz?cache=0&sync_timestamp=1612290637117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.4.tgz", + "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true + } } }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npm.taobao.org/emittery/download/emittery-0.7.2.tgz", + "integrity": "sha1-JVlZCOE68PVnSrQZOW4vs5TN+oI=", "dev": true }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "emotion-theming": { + "version": "10.0.27", + "resolved": "https://registry.npm.taobao.org/emotion-theming/download/emotion-theming-10.0.27.tgz", + "integrity": "sha1-GIe6rsFRmYYsibG5hLeYBvK5qxA=", "dev": true, "requires": { - "ms": "^2.1.1" + "@babel/runtime": "^7.5.5", + "@emotion/weak-memoize": "0.2.5", + "hoist-non-react-statics": "^3.3.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dev": true, "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "once": "^1.4.0" } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz", + "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } }, - "deep-object-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz", - "integrity": "sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==", + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1611535711703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", "dev": true }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz", + "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", "dev": true, "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "prr": "~1.0.1" } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", "dev": true, "requires": { - "clone": "^1.0.2" + "is-arrayish": "^0.2.1" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz", + "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "dev": true, "requires": { - "object-keys": "^1.0.12" + "stackframe": "^1.1.1" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "error-stack-tracey": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/error-stack-tracey/download/error-stack-tracey-0.1.5.tgz", + "integrity": "sha1-JduYwO25RgWONO8O+HJD6Tji4iQ=", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "error-stack-parser": "^2.0.6", + "source-map": "^0.7.3" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", "dev": true } } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0.tgz", + "integrity": "sha1-q4CzWe7Lft5MKYAAOQvFrD7HtaQ=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/es-array-method-boxes-properly/download/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha1-hz8+hEGN5O4Zxb51KZCy5EcY0J4=", + "dev": true + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/es-get-iterator/download/es-get-iterator-1.1.2.tgz", + "integrity": "sha1-kjTFSrpxNIbX694CIIZK9eKyg/c=", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.5.tgz", + "integrity": "sha1-ivHkwSISRMxiRZ+vOJQNTmRKVyM=", "dev": true } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz", + "integrity": "sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE=", "dev": true, - "optional": true + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "es5-shim": { + "version": "4.5.15", + "resolved": "https://registry.npm.taobao.org/es5-shim/download/es5-shim-4.5.15.tgz", + "integrity": "sha1-aiaGmyYYVKOwRSc/VYPFLTkCF/4=", "dev": true }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "es6-shim": { + "version": "0.35.6", + "resolved": "https://registry.npm.taobao.org/es6-shim/download/es6-shim-0.35.6.tgz", + "integrity": "sha1-0QV4MBqDry3li56tt8LJlF9ziKA=", "dev": true }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz", + "integrity": "sha1-utXTwbzawoJp9MszHkMceKxwXRg=", "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "d": "^1.0.1", + "ext": "^1.1.2" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567230854&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", "dev": true }, - "detect-browser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.1.1.tgz", - "integrity": "sha512-5n2aWI57qC3kZaK4j2zYsG6L1LrxgLptGCNhMQgdKhVn6cSdcq43pp6xHPfTHG3TYM6myF4tIPWiZtfdVDgb9w==" + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", "dev": true, "requires": { - "repeating": "^2.0.0" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "detect-node-es": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.0.0.tgz", - "integrity": "sha512-S4AHriUkTX9FoFvL4G8hXDcx6t3gp2HpfCza3Q0v6S78gul2hKWifLQbeW+ZF89+hSm2ZIc/uF3J97ZgytgTRg==", - "dev": true - }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", "dev": true, "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true - } - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", "dev": true - } - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", "dev": true, "requires": { - "pify": "^3.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", "dev": true, "requires": { - "buffer-indexof": "^1.0.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz", + "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", "dev": true, "requires": { - "esutils": "^2.0.2" + "eslint-visitor-keys": "^1.1.0" } }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1599829544231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1607144055171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", "dev": true, "requires": { - "utila": "~0.4" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" } }, - "dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz?cache=0&sync_timestamp=1612565616129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.4.0.tgz", + "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", "dev": true, "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } } }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" + "estraverse": "^5.2.0" }, "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", - "dev": true - }, - "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", "dev": true } } }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", "dev": true }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", "dev": true }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz", + "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz?cache=0&sync_timestamp=1614444817773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.3.0.tgz", + "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", "dev": true, "requires": { - "domelementtype": "1" + "original": "^1.0.0" } }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "dot-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", - "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz", + "integrity": "sha1-OgGM61JsxvbfK7UEsr/o46STTsU=", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", "dev": true, "requires": { - "no-case": "^3.0.3", - "tslib": "^1.10.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "is-obj": "^2.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz", + "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "optional": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/expect/download/expect-26.6.2.tgz", + "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + } + } + }, + "export-dirs": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/export-dirs/download/export-dirs-0.2.4.tgz", + "integrity": "sha1-Lha5tG68LAestlfM3744RTk/50I=", "dev": true }, - "dotenv-defaults": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-1.1.1.tgz", - "integrity": "sha512-6fPRo9o/3MxKvmRZBD3oNFdxODdhJtIy1zcJeUSCs6HCy4tarUpd+G67UTU9tF6OWXeSPqsm4fPAB+2eY9Rt9Q==", + "export-files": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/export-files/download/export-files-2.1.1.tgz", + "integrity": "sha1-u/ZFdAU6CeTrmOX0NQHVcrLDzn8=", "dev": true, "requires": { - "dotenv": "^6.2.0" + "lazy-cache": "^1.0.3" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } } }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "dotenv-webpack": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.8.0.tgz", - "integrity": "sha512-o8pq6NLBehtrqA8Jv8jFQNtG9nhRtVqmoD4yWbgUyoU3+9WBlPe+c2EAiaJok9RB28QvrWvdWLZGeTT5aATDMg==", + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz", + "integrity": "sha1-ia56BxWPedNVF4gpBDJAd+Q3kkQ=", "dev": true, "requires": { - "dotenv-defaults": "^1.0.2" - } - }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "requires": { - "minimatch": "^3.0.4" + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/type/download/type-2.3.0.tgz?cache=0&sync_timestamp=1613480890146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-2.3.0.tgz", + "integrity": "sha1-rafARfB+rQir+eLt0pvhoMBmETI=", + "dev": true + } } }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", "dev": true }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "readable-stream": "~1.1.9" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "is-plain-object": "^2.0.4" } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true } } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", "dev": true, "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "editions": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.518", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.518.tgz", - "integrity": "sha512-IspiwXYDKZMxo+qc3Vof4WtwbG9BMDbJfati8PYj7uS4DJmJ67pwjCKZxlTBSAuCZSMcbRnj2Xz2H14uiKT7bQ==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", "dev": true }, - "element-resize-detector": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz", - "integrity": "sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw==", - "dev": true, - "requires": { - "batch-processor": "1.0.0" - } - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1610876505711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", "dev": true }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "emotion-theming": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz", - "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==", + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", + "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/fastq/download/fastq-1.11.0.tgz?cache=0&sync_timestamp=1614183592501&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.11.0.tgz", + "integrity": "sha1-u5+5VaBxMKkY62PB9RYcwypdCFg=", "dev": true, "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/weak-memoize": "0.2.5", - "hoist-non-react-statics": "^3.3.0" + "reusify": "^1.0.4" } }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "fault": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/fault/download/fault-1.0.4.tgz", + "integrity": "sha1-6vz8Cm0hT8lGAeFw3ymVSk+ELxM=", "dev": true, "requires": { - "once": "^1.4.0" + "format": "^0.2.0" } }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } + "websocket-driver": ">=0.5.1" } }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.1.tgz", + "integrity": "sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU=", "dev": true, "requires": { - "prr": "~1.0.1" + "bser": "2.1.1" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "fecha": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-4.2.0.tgz", + "integrity": "sha1-P/tjlUU+Pz7/+FBATwpZtnR/X0E=" + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "escape-string-regexp": "^1.0.5" } }, - "error-stack-parser": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz", - "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=", + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz?cache=0&sync_timestamp=1613794357372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", "dev": true, "requires": { - "stackframe": "^0.3.1" + "flat-cache": "^2.0.1" } }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816990383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz", + "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", + "dev": true, "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" }, "dependencies": { - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, "requires": { - "has-symbols": "^1.0.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } } } }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", - "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", + "file-system-cache": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/file-system-cache/download/file-system-cache-1.0.5.tgz", + "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", "dev": true, "requires": { - "es-abstract": "^1.17.4", - "has-symbols": "^1.0.1", - "is-arguments": "^1.0.4", - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "bluebird": "^3.3.5", + "fs-extra": "^0.30.0", + "ramda": "^0.21.0" }, "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-0.30.0.tgz?cache=0&sync_timestamp=1611075413359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz?cache=0&sync_timestamp=1604161917513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } } } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", + "dev": true, + "optional": true + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/filelist/download/filelist-1.0.2.tgz?cache=0&sync_timestamp=1612641447730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilelist%2Fdownload%2Ffilelist-1.0.2.tgz", + "integrity": "sha1-gCAvIUYtTRwuIUEZsYB8G8A4Dls=", + "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "minimatch": "^3.0.4" } }, - "es5-shim": { - "version": "4.5.14", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.14.tgz", - "integrity": "sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg==", - "dev": true + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true, + "optional": true }, - "es6-shim": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz", - "integrity": "sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==", + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz", + "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", "dev": true }, - "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", - "dev": true + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/filter-obj/download/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", "dev": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz", + "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" + "json5": "^0.5.1", + "path-exists": "^3.0.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "ansi-regex": { + "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "locate-path": "^3.0.0" } }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "p-limit": "^2.0.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "find-up": "^3.0.0" } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true } } }, - "eslint-config-ali": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-ali/-/eslint-config-ali-5.0.1.tgz", - "integrity": "sha512-VYdL169Po2p2DK2Dg6Sutjm+aoqOaK8/m8agd9sROCbWHkE2DvgFsQIH56tvgBZTx56pEMbpJ0Ootvi0lGkvBg==", + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/find-root/download/find-root-1.1.0.tgz", + "integrity": "sha1-q8/Iunb3CMQql7PWhbfpRQv7nOQ=", "dev": true }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "dev": true, "requires": { - "ms": "2.0.0" + "glob": "^7.1.3" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&sync_timestamp=1611061316677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz", + "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", + "dev": true + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/flatten/download/flatten-1.0.3.tgz", + "integrity": "sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs=", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "focus-lock": { + "version": "0.8.1", + "resolved": "https://registry.npm.taobao.org/focus-lock/download/focus-lock-0.8.1.tgz?cache=0&sync_timestamp=1605511486302&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffocus-lock%2Fdownload%2Ffocus-lock-0.8.1.tgz", + "integrity": "sha1-uzaWir93ogY/oXPLbEexKshZnTM=", + "dev": true, + "requires": { + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", "dev": true } } }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.3.tgz", + "integrity": "sha1-5VmK1QF0wbxOhyMB6CrCzZf5Amc=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-1.5.0.tgz?cache=0&sync_timestamp=1610240663140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffork-ts-checker-webpack-plugin%2Fdownload%2Ffork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha1-zh13GQtE2Bp2GxC2KEo3N5XkHww=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", "dev": true, "requires": { - "ms": "2.0.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", "dev": true, + "optional": true, "requires": { - "p-try": "^1.0.0" + "bindings": "^1.5.0", + "nan": "^2.12.1" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "find-up": "^2.1.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } - } - } - }, - "eslint-plugin-import": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", - "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.3", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "requires": { - "ms": "2.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-react": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.5.tgz", - "integrity": "sha512-ajbJfHuFnpVNJjhyrfq+pH1C0gLc2y94OiCbAXT5O0J0YCKaFEHDV8+3+mDOr+w8WguRX+vSs1bM2BDG0VLvCw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.17.0", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "esutils": "^2.0.2" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "format": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/format/download/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", "dev": true }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "estraverse": "^4.1.0" + "map-cache": "^0.2.2" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "original": "^1.0.0" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz?cache=0&sync_timestamp=1611075413359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz", + "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=", "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "minipass": "^3.0.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/fs-readdir-recursive/download/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha1-4y/AMKLM7kSmtTcTCNpUvgs5fSc=", + "dev": true }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, - "optional": true, "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "optional": true, - "requires": { - "isarray": "1.0.0" - } - } + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } + "optional": true }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz", + "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=", "dev": true, "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", "dev": true, "requires": { - "ms": "2.0.0" + "glob": "^7.1.3" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "function.prototype.name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/function.prototype.name/download/function.prototype.name-1.1.4.tgz", + "integrity": "sha1-5OqDm502cq6Z0O/Z842RkcXqrIM=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "functions-have-names": "^1.2.2" } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "functions-have-names": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/functions-have-names/download/functions-have-names-1.2.2.tgz?cache=0&sync_timestamp=1610025695474&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctions-have-names%2Fdownload%2Ffunctions-have-names-1.2.2.tgz", + "integrity": "sha1-mNk5kcOdqTYfjlCzN8T25B8SDiE=", + "dev": true + }, + "fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/fuse.js/download/fuse.js-3.6.1.tgz", + "integrity": "sha1-fehf3W4bM3fCPOAQiSZWOF/ZsQw=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, - "is-data-descriptor": { + "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "number-is-nan": "^1.0.0" } }, - "is-descriptor": { + "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fallback-port": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/fallback-port/-/fallback-port-0.1.7.tgz", - "integrity": "sha1-SuD1bJVfVmYc2qOFgMMJonTzvjU=", - "dev": true, - "requires": { - "os": "^0.1.1", - "shelljs": "^0.7.3" - }, - "dependencies": { - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "ansi-regex": "^2.0.0" } } } }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz", + "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", "dev": true, "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" + "globule": "^1.0.0" } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "generic-names": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/generic-names/download/generic-names-1.0.3.tgz?cache=0&sync_timestamp=1603542537830&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgeneric-names%2Fdownload%2Fgeneric-names-1.0.3.tgz", + "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "loader-utils": "^0.2.16" }, "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } } } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true - }, - "fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "dev": true, - "requires": { - "format": "^0.2.0" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz", + "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", "dev": true, "requires": { - "websocket-driver": ">=0.5.1" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "fecha": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", - "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/get-package-type/download/get-package-type-0.1.0.tgz", + "integrity": "sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=", + "dev": true }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "pump": "^3.0.0" } }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "assert-plus": "^1.0.0" } }, - "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "gl-matrix": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/gl-matrix/download/gl-matrix-3.3.0.tgz", + "integrity": "sha1-Iy7vYLHIswooy751ssr2xI/WNYs=" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "file-system-cache": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", - "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "bluebird": "^3.3.5", - "fs-extra": "^0.30.0", - "ramda": "^0.21.0" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" }, "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" } } } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", "dev": true, - "optional": true + "requires": { + "is-glob": "^4.0.1" + } }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz?cache=0&sync_timestamp=1603203165288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-to-regexp%2Fdownload%2Fglob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "global": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/global/download/global-4.4.0.tgz", + "integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "min-document": "^2.19.0", + "process": "^0.11.10" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz", + "integrity": "sha1-mXYFrSNF8n9RU5vqJldEISFcd4A=", "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "global-prefix": "^3.0.0" } }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/global-prefix/download/global-prefix-3.0.0.tgz", + "integrity": "sha1-/IX3MGTfafUEIfR/iD/luRO6m5c=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", "dev": true }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.2.tgz", + "integrity": "sha1-KiNdNPTYA2IZ9+NJKbXenhgWa4s=", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-8.0.2.tgz", + "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" }, "dependencies": { - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true } } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591641769816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz", + "integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=", "dev": true, "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/gonzales-pe/download/gonzales-pe-4.3.0.tgz", + "integrity": "sha1-/p3sXzxVfurQn/hoxlgmvlTQZ7M=", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz", + "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=", + "dev": true + }, + "graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/graphlib/download/graphlib-2.1.8.tgz", + "integrity": "sha1-V2HUFHN4cAhMkux7XbywWSydNdo=", + "requires": { + "lodash": "^4.17.15" } }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/gud/download/gud-1.0.0.tgz", + "integrity": "sha1-pIlYGxfmpwvsqavjrlfeekmYUsA=", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz?cache=0&sync_timestamp=1605523115814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "duplexer": "^0.1.1", + "pify": "^4.0.1" }, "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", "dev": true } } }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", "dev": true }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npm.taobao.org/handlebars/download/handlebars-4.7.7.tgz?cache=0&sync_timestamp=1613385246961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandlebars%2Fdownload%2Fhandlebars-4.7.7.tgz", + "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "handlebars-loader": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/handlebars-loader/download/handlebars-loader-1.7.1.tgz", + "integrity": "sha1-BwiPCdilWTRJCPfIjGjA/9rMVV0=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "async": "~0.2.10", + "fastparse": "^1.0.0", + "loader-utils": "1.0.x", + "object-assign": "^4.1.0" }, "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "async": { + "version": "0.2.10", + "resolved": "https://registry.npm.taobao.org/async/download/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.0.4.tgz", + "integrity": "sha1-E/Vhl/FSOjBYkSSLTHJEVAhIQmw=", "dev": true, "requires": { - "glob": "^7.1.3" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } } } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", "dev": true, "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" } }, - "fmin": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/fmin/-/fmin-0.0.2.tgz", - "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npm.taobao.org/harmony-reflect/download/harmony-reflect-1.6.1.tgz", + "integrity": "sha1-wQjU8rtFHv73o3hh/b2ucsm976k=", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, "requires": { - "contour_plot": "^0.0.1", - "json2module": "^0.0.3", - "rollup": "^0.25.8", - "tape": "^4.5.1", - "uglify-js": "^2.6.2" + "function-bind": "^1.1.1" } }, - "focus-lock": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.7.0.tgz", - "integrity": "sha512-LI7v2mH02R55SekHYdv9pRHR9RajVNyIJ2N5IEkWbg7FT5ZmJ9Hw4mWxHeEUcd+dJo0QmzztHvDvWcc7prVFsw==", - "dev": true + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz?cache=0&sync_timestamp=1614331239241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } }, - "follow-redirects": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", - "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==", + "has-bigints": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.0.tgz", + "integrity": "sha1-2bIQCCQZXjmgw0PBJ/OJ1mpeJ9w=", "dev": true }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "for-in": { + "has-symbols": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443577352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz", + "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", "dev": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "for-in": "^1.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "fork-ts-checker-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^2.0.4", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-buffer": "^1.1.5" } } } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } } }, - "format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", - "dev": true + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npm.taobao.org/hast-util-parse-selector/download/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha1-1Xwj9NoWrjxjs7bKRhZoMxNJnDo=", "dev": true }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "hastscript": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/hastscript/download/hastscript-5.1.2.tgz", + "integrity": "sha1-veLC5W0Exi3SToxd8ojQUKNV+4o=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, + "highlight.js": { + "version": "9.13.1", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.13.1.tgz", + "integrity": "sha1-BUWG1TpoYzERaEiKD1jWxQXOZB4=", + "dev": true + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npm.taobao.org/history/download/history-4.10.1.tgz", + "integrity": "sha1-MzcaZeOoOyZ0NOKz87G0xYqtTPM=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha1-7OCsr3HWLClpwuxZ/v9CpLGoW0U=", "dev": true, "requires": { - "minipass": "^3.0.0" + "react-is": "^16.7.0" } }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1611858061469&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true }, - "function.prototype.name": { + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz", - "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha1-QqbcT9M/ACgRduiyN1nKTk+hhfM=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "functions-have-names": "^1.2.0" + "whatwg-encoding": "^1.0.5" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "functions-have-names": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz", - "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==", + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1611788384364&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz", + "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=", "dev": true }, - "fuse.js": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", - "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.2.tgz?cache=0&sync_timestamp=1613643585723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-escaper%2Fdownload%2Fhtml-escaper-2.0.2.tgz", + "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/html-minifier-terser/download/html-minifier-terser-5.1.1.tgz", + "integrity": "sha1-ki6W8fO7YIMsJjS3mIQJY4mx8FQ=", "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-4.1.1.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz", + "integrity": "sha1-n9YCvZNilOnp70aj9NaWQESxgGg=", + "dev": true + } } }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-4.5.2.tgz?cache=0&sync_timestamp=1613744691795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-4.5.2.tgz", + "integrity": "sha1-dvyD+hoPEt1ffaBASlTiaZZmvBI=", "dev": true, "requires": { - "globule": "~0.1.0" + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" } }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1607394302039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "dev": true, "requires": { - "pump": "^3.0.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&sync_timestamp=1609539829589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz", + "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", "dev": true, "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" }, "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868613104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, - "optional": true, "requires": { - "is-glob": "^4.0.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true + }, + "ice-npm-utils": { + "version": "1.4.5", + "resolved": "https://registry.npm.taobao.org/ice-npm-utils/download/ice-npm-utils-1.4.5.tgz", + "integrity": "sha1-3WBh7vthrV0T+6Yh73MY7SpkBDs=", "dev": true, "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" + "@types/npmlog": "^4.1.2", + "fs-extra": "^8.1.0", + "mkdirp": "^0.5.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "request-progress": "^3.0.0", + "request-promise": "^4.2.4", + "semver": "^6.0.0", + "tar": "^4.4.8", + "url-join": "^4.0.1" }, "dependencies": { - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz", + "integrity": "sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=", "dev": true, "requires": { - "brace-expansion": "^1.0.0" + "minipass": "^2.6.0" } }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz", + "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz", + "integrity": "sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=", "dev": true, "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true } } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", "dev": true }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1605801267950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", + "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", "dev": true, "requires": { - "gaze": "^0.5.1" + "postcss": "^7.0.14" } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/identity-obj-proxy/download/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", "dev": true, "requires": { - "find-index": "^0.1.1" + "harmony-reflect": "^1.4.6" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838209136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1614174039150&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true + }, + "image-source-loader": { + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/image-source-loader/download/image-source-loader-0.6.5.tgz", + "integrity": "sha1-XI+APT81TZR+hgiTIA9FYbi76ag=", "dev": true, "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "image-size": "^0.5.1" } }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/immer/download/immer-1.10.0.tgz?cache=0&sync_timestamp=1611143383267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmer%2Fdownload%2Fimmer-1.10.0.tgz", + "integrity": "sha1-utZ2BbqcgQJ12R4cKkfUWC6YKG0=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "global-prefix": "^3.0.0" + "import-from": "^2.1.0" } }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", "dev": true, "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true } } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz?cache=0&sync_timestamp=1600349104815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-from%2Fdownload%2Fimport-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-3.0.2.tgz", + "integrity": "sha1-qM/QQx0d5KIZlwPQA+PmI2T6bbY=", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz", + "integrity": "sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", "dev": true }, - "globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", - "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "define-properties": "^1.1.3" + "once": "^1.3.0", + "wrappy": "1" } }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.8.tgz?cache=0&sync_timestamp=1607907842483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fini%2Fdownload%2Fini-1.3.8.tgz", + "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=", + "dev": true + }, + "inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.0.tgz", + "integrity": "sha1-IwMxfvyaTqfsLi32+GVptzSsz0I=", "dev": true, "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", "dev": true }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + } } } } }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "gonzales-pe": { + "internal-ip": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", "dev": true, "requires": { - "minimist": "^1.2.5" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" } }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/internal-slot/download/internal-slot-1.0.3.tgz", + "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", "dev": true, - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "requires": { - "lodash": "^4.17.15" + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } }, - "gud": { + "internmap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==", + "resolved": "https://registry.npm.taobao.org/internmap/download/internmap-1.0.0.tgz", + "integrity": "sha1-PGvwlEsOrkV2mAAEEhCHUrv921Y=" + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-2.2.0.tgz", + "integrity": "sha1-GnigtZZcQKVBbQB61vUK0nxBffk=", "dev": true }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz", + "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", "dev": true, "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - }, - "dependencies": { - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - } + "loose-envify": "^1.0.0" } }, - "gulp-babel": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-6.1.3.tgz", - "integrity": "sha512-tm15R3rt4gO59WXCuqrwf4QXJM9VIJC+0J2NPYSC6xZn+cZRD5y5RPGAiHaDxCJq7Rz5BDljlrk3cEjWADF+wQ==", - "dev": true, - "requires": { - "babel-core": "^6.23.1", - "object-assign": "^4.0.1", - "plugin-error": "^1.0.1", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true }, - "gulp-rename": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", - "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1611327032630&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, - "gulp-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", - "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", - "dev": true, - "requires": { - "istextorbinary": "2.2.1", - "readable-stream": "^2.0.1", - "replacestream": "^4.0.0" - } + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true }, - "gulp-sass": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", - "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", - "dev": true, - "requires": { - "gulp-util": "^3.0", - "lodash.clonedeep": "^4.3.2", - "node-sass": "^4.8.3", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", + "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "dev": true }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" + "kind-of": "^3.0.2" }, "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-alphabetical/download/is-alphabetical-1.0.4.tgz", + "integrity": "sha1-nn1rlJFr4iFTdF0YTCmMv5hqaG0=", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-alphanumerical/download/is-alphanumerical-1.0.4.tgz", + "integrity": "sha1-frmiQx+FX2se8aeOMm31FWlsTb8=", "dev": true, "requires": { - "glogg": "^1.0.0" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" } }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117383813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz", + "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=", "dev": true, "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "call-bind": "^1.0.0" } }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-bigint/download/is-bigint-1.0.1.tgz", + "integrity": "sha1-aSMFHfy8dkJ4VAuc4OazITql68I=", "dev": true }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "binary-extensions": "^2.0.0" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-boolean-object/download/is-boolean-object-1.1.0.tgz", + "integrity": "sha1-4qqtOjqPyjTCj27uE1sVbtJYf/A=", + "dev": true, "requires": { - "function-bind": "^1.1.1" + "call-bind": "^1.0.0" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz", + "integrity": "sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=", "dev": true }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz", + "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", "dev": true, "requires": { - "sparkles": "^1.0.0" + "ci-info": "^2.0.0" } }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz", + "integrity": "sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "has": "^1.0.3" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -10498,518 +15189,693 @@ } } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "dev": true + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-decimal/download/is-decimal-1.0.4.tgz", + "integrity": "sha1-ZaOllYocW2OnBuGzM9fNn2MNP6U=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "dev": true, "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true } } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz", + "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=", + "dev": true + }, + "is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-dom/download/is-dom-1.1.0.tgz", + "integrity": "sha1-rx/O0pJ0JEO7Wco/dqtegJB7Too=", "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "is-object": "^1.0.1", + "is-window": "^1.0.2" } }, - "hast-util-parse-selector": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", - "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==", - "dev": true + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true, + "optional": true }, - "hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, + "optional": true, "requires": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" + "is-primitive": "^2.0.0" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, - "hex-color-regex": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz", + "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", "dev": true }, - "highlight.js": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", - "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-function/download/is-function-1.0.2.tgz", + "integrity": "sha1-Twl/MKv2762smDOxfKXcA/gUTgg=", + "dev": true }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "requires": { - "react-is": "^16.7.0" - } + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-2.1.0.tgz", + "integrity": "sha1-fRQK3DiarzARqPKipM+m+q3/sRg=", + "dev": true }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "is-extglob": "^2.1.1" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-hexadecimal/download/is-hexadecimal-1.0.4.tgz", + "integrity": "sha1-zDXJdYjaS9Saju3WvECC1E3LI6c=", + "dev": true }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/is-map/download/is-map-2.0.2.tgz", + "integrity": "sha1-AJItuMm/c+gbejNYJ7wqQ/K5ESc=", "dev": true }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607125693555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", + "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", + "dev": true }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", "dev": true }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-number-object/download/is-number-object-1.0.4.tgz", + "integrity": "sha1-NqyV50HPGLKD/B3fXoPaeY4+wZc=", "dev": true }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", "dev": true }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-object/download/is-object-1.0.2.tgz?cache=0&sync_timestamp=1606927705512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-object%2Fdownload%2Fis-object-1.0.2.tgz", + "integrity": "sha1-pWVS4cZlyelQtKAlRh2ofnL4b88=", "dev": true }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", "dev": true, "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } + "is-path-inside": "^2.1.0" } }, - "html-webpack-plugin": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz", - "integrity": "sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==", + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", "dev": true, "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" + "path-is-inside": "^1.0.2" } }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "isobject": "^3.0.1" } }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true, + "optional": true + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-potential-custom-element-name/download/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", "dev": true }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true, + "optional": true + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.2.tgz?cache=0&sync_timestamp=1612217453411&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.2.tgz", + "integrity": "sha1-gcjr3k2xQvLPHFP8htakV4gmYlE=", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" } }, - "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-root/download/is-root-2.1.0.tgz", + "integrity": "sha1-gJ4YEpzxEpZEMCpPhUQDXVGYSpw=", + "dev": true + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/is-set/download/is-set-2.0.2.tgz", + "integrity": "sha1-kHVfpMJWLcHF1AJHYNYRm5TKGOw=", "dev": true }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz", + "integrity": "sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", "dev": true, "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } + "html-comment-regex": "^1.1.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "has-symbols": "^1.0.1" } }, - "https-browserify": { + "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npm.taobao.org/is-what/download/is-what-3.14.1.tgz?cache=0&sync_timestamp=1613953240048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-what%2Fdownload%2Fis-what-3.14.1.tgz", + "integrity": "sha1-4SIvRt3ahd6tD9HJ3xMXYOd3VcE=", + "dev": true + }, + "is-window": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-window/download/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", "dev": true, "requires": { - "postcss": "^7.0.14" + "is-docker": "^2.0.0" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==", + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha1-9ZRKN8cLVQsCp4pcOyBVsoDOyOw=", "dev": true }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=", "dev": true, "requires": { - "import-from": "^2.1.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha1-dRj+UupE3jcvRgp2tezan/tz2KY=", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "dependencies": { - "resolve-from": { + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha1-dXQ85tlruG3H7kNSz2Nmoj8LGtk=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-3.0.2.tgz", + "integrity": "sha1-1ZMhDlAAaDdQywn8BkTktuJ/1Ts=", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "indexes-of": { + "iterate-iterator": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "resolved": "https://registry.npm.taobao.org/iterate-iterator/download/iterate-iterator-1.0.1.tgz", + "integrity": "sha1-FpOnaMHd15yWkFFFlFPwgv6C6fY=", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/iterate-value/download/iterate-value-1.0.2.tgz", + "integrity": "sha1-k1EVvTfQBqUgRlNevI0H6ckzf1c=", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npm.taobao.org/jake/download/jake-10.8.2.tgz", + "integrity": "sha1-68nehVgWCmbYLQ6txqLlj7xQCns=", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npm.taobao.org/async/download/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "javascript-stringify": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz", + "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", "dev": true }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "jest": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest/download/jest-26.6.3.tgz", + "integrity": "sha1-QOj9vkjwDfofDOgSHKdLiKyRSO8=", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest-cli/download/jest-cli-26.6.3.tgz", + "integrity": "sha1-QxF8/vJLxM1pGhdKh5alMuE16So=", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-26.6.2.tgz", + "integrity": "sha1-9hmEeeHMZvIvmuHiKsqgtCnAQtA=", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-4.1.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", "dev": true }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest-config/download/jest-config-26.6.3.tgz", + "integrity": "sha1-ZPQURO756wPcUdXFO3XIxx9kU0k=", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -11018,8 +15884,8 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { "color-name": "~1.1.4" @@ -11027,52 +15893,83 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-diff/download/jest-diff-26.6.2.tgz", + "integrity": "sha1-GqdGi1LDpo19XF/c381eSb0WQ5Q=", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -11080,522 +15977,988 @@ } } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "dev": true, - "requires": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-26.0.0.tgz?cache=0&sync_timestamp=1607352761462&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-docblock%2Fdownload%2Fjest-docblock-26.0.0.tgz", + "integrity": "sha1-Pi+iCJn8koyxO9D/aL03EaNoibU=", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "detect-newline": "^3.0.0" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-each/download/jest-each-26.6.2.tgz", + "integrity": "sha1-AlJkOKd6Z0AcimOC3+WZmVLBZ8s=", "dev": true, "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha1-eNCf6c8BmjVwCbm34fEB0jvR2j4=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" } }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-26.6.2.tgz", + "integrity": "sha1-gk5Mf7SURkY1bxGsdbIpsANfKww=", "dev": true, "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" } }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-26.3.0.tgz", + "integrity": "sha1-6X3Dw/U8K0Bsp6+u1Ek7HQmRmeA=", "dev": true }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-26.6.2.tgz", + "integrity": "sha1-3X5g/n3A6fkRoj15xf9/tcLK/qo=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-26.6.3.tgz", + "integrity": "sha1-rcPPkV3qy1ISyTufNUfNEpWPLt0=", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, - "is-dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", - "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-26.6.2.tgz", + "integrity": "sha1-dxfPEYuSI48uumUFTIoMnGU6ka8=", "dev": true, "requires": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true, - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha1-jm/W6GPIstMaxkcu6yN7xZXlPno=", "dev": true, - "optional": true, "requires": { - "is-primitive": "^2.0.0" + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-26.6.2.tgz", + "integrity": "sha1-WBc3RK1vwFBrXSEVC5vlbvABygc=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-mock/download/jest-mock-26.6.2.tgz", + "integrity": "sha1-1stxKwQe1H/g2bb8NHS8ZUP+swI=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "@jest/types": "^26.6.2", + "@types/node": "*" } }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/jest-pnp-resolver/download/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha1-twSsCuAoqJEIpNBAs/kZ393I4zw=", "dev": true }, - "is-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", - "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-26.0.0.tgz?cache=0&sync_timestamp=1607352728942&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-regex-util%2Fdownload%2Fjest-regex-util-26.0.0.tgz", + "integrity": "sha1-0l5xhLNuOf1GbDvEG+CXHoIf7ig=", "dev": true }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-26.6.2.tgz", + "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha1-ZoCFnuXSLuXc2WH+SHH1n0x4T7Y=", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" } }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest-runner/download/jest-runner-26.6.3.tgz", + "integrity": "sha1-LR/tPUbhDyM/0dvTv6o/6JJL4Vk=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true, - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true, - "optional": true + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "requires": { - "has": "^1.0.3" + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-26.6.3.tgz", + "integrity": "sha1-T2TvvPrDmDMbdLSzyC0n1AG4+is=", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-26.6.2.tgz", + "integrity": "sha1-0Tmq/UaVfTpEjzps2r4pGboHQtE=", "dev": true, "requires": { - "is-unc-path": "^1.0.0" + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-26.6.2.tgz", + "integrity": "sha1-87CvGssiMxaFC9FOG+6pg3+znIQ=", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-root": { + "jest-transform-css": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "dev": true - }, - "is-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", - "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "resolved": "https://registry.npm.taobao.org/jest-transform-css/download/jest-transform-css-2.1.0.tgz", + "integrity": "sha1-kmi+DGZz74sEd4ZkAwPfQFs9q/0=", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" + "common-tags": "1.8.0", + "cosmiconfig": "5.0.6", + "cross-spawn": "6.0.5", + "postcss-load-config": "2.0.0", + "postcss-modules": "1.3.2", + "style-inject": "0.3.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.0.6", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.0.6.tgz", + "integrity": "sha1-3KbPaAoL0DWJr/aEcAhYyBq+6zk=", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.0.0.tgz?cache=0&sync_timestamp=1612742943575&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.0.0.tgz", + "integrity": "sha1-8TEt2/WRLNdHF3CDxe96GdYu5IQ=", + "dev": true, + "requires": { + "cosmiconfig": "^4.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz", + "integrity": "sha1-dgORVJWAu9LfHlYrwXexPCkJctw=", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" + } + } + } + } } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-util/download/jest-util-26.6.2.tgz", + "integrity": "sha1-kHU12+TVpstMR6ybkm9q8pV2y8E=", "dev": true, "requires": { - "unc-path-regex": "^0.1.2" + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-window": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istextorbinary": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", - "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-validate/download/jest-validate-26.6.2.tgz", + "integrity": "sha1-I9OAlxWHFQRnNCkRw9e0rFerIOw=", "dev": true, "requires": { - "binaryextensions": "2", - "editions": "^1.3.3", - "textextensions": "2" + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "iterate-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", - "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", - "dev": true - }, - "iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-26.6.2.tgz", + "integrity": "sha1-pbaDuPnWjbyx19rjIXLSzKBZKXU=", "dev": true, "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1613686238253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", + "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", "dev": true, "requires": { + "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, "dependencies": { "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -11605,19 +16968,25 @@ }, "js-base64": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.4.tgz", + "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", + "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", "dev": true }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { "argparse": "^1.0.7", @@ -11626,73 +16995,111 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npm.taobao.org/jsdom/download/jsdom-16.4.0.tgz", + "integrity": "sha1-NgBb3i0Tb3Pu4agwxtReVUCO3ds=", + "dev": true, + "requires": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + } + }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/json-loader/download/json-loader-0.5.7.tgz", + "integrity": "sha1-3KFKcCNf+C8KyaOr62DTN6NlGF0=", "dev": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", "dev": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1609553708276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "json2module": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/json2module/-/json2module-0.0.3.tgz", - "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", - "requires": { - "rw": "^1.3.2" - } - }, "json3": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", "dev": true }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz", + "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", "dev": true, "requires": { "minimist": "^1.2.5" } }, "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161917513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "^4.1.6" @@ -11700,7 +17107,7 @@ }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { @@ -11710,49 +17117,159 @@ "verror": "1.10.0" } }, - "jsx-ast-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", - "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "jsx-compiler": { + "version": "0.4.28", + "resolved": "https://registry.npm.taobao.org/jsx-compiler/download/jsx-compiler-0.4.28.tgz?cache=0&sync_timestamp=1614222205331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsx-compiler%2Fdownload%2Fjsx-compiler-0.4.28.tgz", + "integrity": "sha1-ompsWDsw5UW6eO5SX9YJoHZjThE=", "dev": true, "requires": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.0" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/parser": "^7.3.4", + "@babel/traverse": "^7.3.4", + "@babel/types": "^7.3.4", + "chalk": "^2.4.2", + "css": "^2.2.4", + "fs-extra": "^7.0.1", + "kebab-case": "^1.0.0", + "md5": "^2.2.1", + "resolve": "^1.12.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz?cache=0&sync_timestamp=1611075413359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "jsx2mp-loader": { + "version": "0.4.22", + "resolved": "https://registry.npm.taobao.org/jsx2mp-loader/download/jsx2mp-loader-0.4.22.tgz", + "integrity": "sha1-VKnDiyM41UeS8+OGzaJxd5Xiu5s=", + "dev": true, + "requires": { + "@babel/core": "^7.5.5", + "@babel/plugin-proposal-class-properties": "^7.5.5", + "@babel/plugin-proposal-export-default-from": "^7.5.2", + "@babel/plugin-transform-typescript": "^7.7.4", + "@babel/preset-env": "^7.5.5", + "babel-plugin-danger-remove-unused-import": "^2.0.0", + "babel-plugin-minify-dead-code-elimination-while-loop-fixed": "^0.3.0", + "babel-plugin-transform-define": "^1.3.1", + "chalk": "^2.4.2", + "convert-source-map": "^1.6.0", + "csso": "^3.5.1", + "enhanced-resolve": "^4.1.1", + "fs-extra": "^8.1.0", + "jsx-compiler": "^0.4.27", + "less": "^3.10.3", + "loader-utils": "^1.2.3", + "pretty-data": "^0.40.0", + "sass": "^1.23.2", + "stylesheet-loader": "^0.8.0", + "stylus": "^0.54.7", + "terser": "^4.3.8" + }, + "dependencies": { + "babel-plugin-transform-define": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-define/download/babel-plugin-transform-define-1.3.2.tgz", + "integrity": "sha1-S9v+Nag5/CBuD2Cnqa47gtXhGAg=", + "dev": true, + "requires": { + "lodash": "^4.17.11", + "traverse": "0.6.6" + } + }, + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.29.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.29.tgz", + "integrity": "sha1-P6nU7zFCy9HDAedmTB81K9gvWjk=", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-3.5.1.tgz?cache=0&sync_timestamp=1606408790645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-3.5.1.tgz", + "integrity": "sha1-e564vmFiiXPBsmHhadLwJACOdYs=", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-1.1.4.tgz?cache=0&sync_timestamp=1614722039269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-1.1.4.tgz", + "integrity": "sha1-ULXU/8RXUnZXPE7tuHgIEqhBnwE=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, + "jsx2mp-runtime": { + "version": "0.4.20", + "resolved": "https://registry.npm.taobao.org/jsx2mp-runtime/download/jsx2mp-runtime-0.4.20.tgz?cache=0&sync_timestamp=1611217144555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsx2mp-runtime%2Fdownload%2Fjsx2mp-runtime-0.4.20.tgz", + "integrity": "sha1-WfBdlgYtE4UgCjjxyUOAFoLL0YI=", + "dev": true + }, + "kebab-case": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/kebab-case/download/kebab-case-1.0.0.tgz", + "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=", + "dev": true + }, "killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", "dev": true }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true }, "klaw": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { "graceful-fs": "^4.1.9" } }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/kleur/download/kleur-3.0.3.tgz?cache=0&sync_timestamp=1611346710846&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkleur%2Fdownload%2Fkleur-3.0.3.tgz", + "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=", + "dev": true + }, "klona": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/klona/-/klona-1.1.2.tgz", - "integrity": "sha512-xf88rTeHiXk+XE2Vhi6yj8Wm3gMZrygGdKjJqN8HkV+PwF/t50/LdAKHoHpPcxFAlmQszTZ1CugrK25S7qDRLA==", + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/klona/download/klona-2.0.4.tgz", + "integrity": "sha1-e7Hjr/sMuGJFR+9+j2cI6i4538A=", "dev": true }, "last-call-webpack-plugin": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "resolved": "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha1-l0LfDhDjz0blwDgcLekNOnotdVU=", "dev": true, "requires": { "lodash": "^4.17.5", @@ -11761,13 +17278,14 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true }, "lazy-universal-dotenv": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", - "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "resolved": "https://registry.npm.taobao.org/lazy-universal-dotenv/download/lazy-universal-dotenv-3.0.1.tgz", + "integrity": "sha1-psiThBS8pCarjJRjlA2kUakR2zg=", "dev": true, "requires": { "@babel/runtime": "^7.5.0", @@ -11779,30 +17297,90 @@ "dependencies": { "dotenv": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", "dev": true } } }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true + "less": { + "version": "3.13.1", + "resolved": "https://registry.npm.taobao.org/less/download/less-3.13.1.tgz", + "integrity": "sha1-DryR0qDpwMZzW4PUlrCrBYMHeQk=", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "dev": true + } + } }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "less-loader": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-5.0.0.tgz", + "integrity": "sha1-SY3eOmxsT4h0WO6e0/CGoSrRtGY=", "dev": true, "requires": { - "leven": "^3.1.0" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + } } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz", + "integrity": "sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=", + "dev": true + }, "levn": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { @@ -11810,95 +17388,63 @@ "type-check": "~0.3.2" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "lines-and-columns": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "dependencies": { "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true } } }, "loader-runner": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610027938815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", "dev": true }, "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz", + "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^3.0.0", + "emojis-list": "^2.0.0", "json5": "^1.0.1" }, "dependencies": { "json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", "dev": true, "requires": { "minimist": "^1.2.0" @@ -11907,191 +17453,146 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true + "version": "4.17.21", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835860585&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.21.tgz", + "integrity": "sha1-Q+YmxG5lkbd1C+srUBFzkMYJ4+4=", "dev": true }, "lodash._reinterpolate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true }, "lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.some/download/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz", + "integrity": "sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks=", "dev": true, "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" + "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM=", "dev": true, "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" + "lodash._reinterpolate": "^3.0.0" } }, "lodash.throttle": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, "loglevel": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", - "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==", + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606312223003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz", + "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", "dev": true }, + "loglevelnext": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/loglevelnext/download/loglevelnext-1.0.5.tgz", + "integrity": "sha1-NvxPWZbWZA9Tn/IDuoGWQWgNdaI=", + "dev": true, + "requires": { + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" + } + }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true }, "loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", + "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { @@ -12100,18 +17601,18 @@ } }, "lower-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", - "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-2.0.2.tgz?cache=0&sync_timestamp=1606867304538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.2.tgz", + "integrity": "sha1-b6I3xj29xKgsoP2ILkci3F5jTig=", "dev": true, "requires": { - "tslib": "^1.10.0" + "tslib": "^2.0.3" } }, "lowlight": { "version": "1.11.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz", - "integrity": "sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A==", + "resolved": "https://registry.npm.taobao.org/lowlight/download/lowlight-1.11.0.tgz?cache=0&sync_timestamp=1612793609239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flowlight%2Fdownload%2Flowlight-1.11.0.tgz", + "integrity": "sha1-EwTYMAUSbU6LHcDweYHptonsLvw=", "dev": true, "requires": { "fault": "^1.0.2", @@ -12119,70 +17620,81 @@ } }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "dev": true, "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } }, "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/make-iterator/download/make-iterator-0.2.1.tgz", + "integrity": "sha1-oZxmATK1SubWT4gewUBWx0bb6XI=", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "^3.0.3" }, "dependencies": { "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, "map-or-similar": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/map-or-similar/download/map-or-similar-1.5.0.tgz", "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { @@ -12191,31 +17703,48 @@ }, "markdown-to-jsx": { "version": "6.11.4", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz", - "integrity": "sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==", + "resolved": "https://registry.npm.taobao.org/markdown-to-jsx/download/markdown-to-jsx-6.11.4.tgz", + "integrity": "sha1-tFKLGrZorvf+YcFTXCfoN4GTksU=", "dev": true, "requires": { "prop-types": "^15.6.2", "unquote": "^1.1.0" } }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/marked/download/marked-0.7.0.tgz?cache=0&sync_timestamp=1614405261058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-0.7.0.tgz", + "integrity": "sha1-tkIB8FHScbHtwQoE0a6bdLuOXA4=", + "dev": true + }, "material-colors": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", - "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", + "resolved": "https://registry.npm.taobao.org/material-colors/download/material-colors-1.2.6.tgz", + "integrity": "sha1-bRlYhxEmmSzuzHL0vMTY8BCGX0Y=", "dev": true }, "math-random": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "resolved": "https://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz", + "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=", "dev": true, "optional": true }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/md5/download/md5-2.3.0.tgz?cache=0&sync_timestamp=1596362680344&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmd5%2Fdownload%2Fmd5-2.3.0.tgz", + "integrity": "sha1-w9qaaq46MLRreww0m4exENw72k8=", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, "md5.js": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", "dev": true, "requires": { "hash-base": "^3.0.0", @@ -12225,25 +17754,25 @@ }, "mdn-data": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1614722039269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", "dev": true }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "memoize-one": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", - "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==", + "resolved": "https://registry.npm.taobao.org/memoize-one/download/memoize-one-5.1.1.tgz", + "integrity": "sha1-BHtuMZm1COrsA1BN5xIpuOsddcA=", "dev": true }, "memoizerific": { "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "resolved": "https://registry.npm.taobao.org/memoizerific/download/memoizerific-1.11.3.tgz", "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", "dev": true, "requires": { @@ -12252,7 +17781,7 @@ }, "memory-fs": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { @@ -12262,7 +17791,7 @@ }, "meow": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "resolved": "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1610076659129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { @@ -12280,7 +17809,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { @@ -12290,7 +17819,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { @@ -12303,7 +17832,7 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { @@ -12312,7 +17841,7 @@ }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { @@ -12321,7 +17850,7 @@ }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { @@ -12332,13 +17861,13 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { @@ -12349,7 +17878,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1609905367026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { @@ -12359,7 +17888,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { @@ -12369,95 +17898,71 @@ } }, "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/merge-deep/download/merge-deep-3.0.3.tgz?cache=0&sync_timestamp=1610379237472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-deep%2Fdownload%2Fmerge-deep-3.0.3.tgz", + "integrity": "sha1-Gisq6SbaiyrpOgrBXZDNGSJ2YAM=", "dev": true, "requires": { "arr-union": "^3.1.0", "clone-deep": "^0.2.4", "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", "dev": true }, "merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", "dev": true }, "methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, "microevent.ts": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "resolved": "https://registry.npm.taobao.org/microevent.ts/download/microevent.ts-0.1.1.tgz", + "integrity": "sha1-cLCbg/Q99RctAgWmMCW84Pc1f6A=", "dev": true }, "micromatch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.2.tgz", + "integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } } }, "miller-rabin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", "dev": true, "requires": { "bn.js": "^4.0.0", @@ -12465,43 +17970,43 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", "dev": true } } }, "mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1613584754851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", "dev": true }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "version": "1.46.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.46.0.tgz?cache=0&sync_timestamp=1613194744108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.46.0.tgz", + "integrity": "sha1-Ymd0in95lZTePLyM3pHe80lmHO4=", "dev": true }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.29", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.29.tgz?cache=0&sync_timestamp=1613608491741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.29.tgz", + "integrity": "sha1-HUq3faZLkfX3JInfKSNlY3VLsbI=", "dev": true, "requires": { - "mime-db": "1.44.0" + "mime-db": "1.46.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", "dev": true }, "min-document": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "resolved": "https://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "dev": true, "requires": { @@ -12510,14 +18015,24 @@ }, "min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "resolved": "https://registry.npm.taobao.org/min-indent/download/min-indent-1.0.1.tgz", + "integrity": "sha1-pj9oFnOzBXH76LwlaGrnRu76mGk=", "dev": true }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/mini-create-react-context/download/mini-create-react-context-0.4.1.tgz?cache=0&sync_timestamp=1603392178687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.1.tgz", + "integrity": "sha1-ByFxVhv9ySLaCKYMIZekl8wtHV4=", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, "mini-css-extract-plugin": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz", - "integrity": "sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.7.0.tgz", + "integrity": "sha1-W6gpD7tBeaQ90nzKREuhUL7nQ6A=", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -12526,52 +18041,170 @@ "webpack-sources": "^1.1.0" } }, + "miniapp-builder-shared": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/miniapp-builder-shared/download/miniapp-builder-shared-0.1.8.tgz", + "integrity": "sha1-YD1Ut15qc8lFgrin3gQeltNdgig=", + "dev": true, + "requires": { + "enhanced-resolve": "^4.3.0", + "fs-extra": "^8.0.1" + } + }, + "miniapp-compile-config": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/miniapp-compile-config/download/miniapp-compile-config-0.1.6.tgz?cache=0&sync_timestamp=1611217143862&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminiapp-compile-config%2Fdownload%2Fminiapp-compile-config-0.1.6.tgz", + "integrity": "sha1-AZI8nDUu8hArdhV6YpzEDR1JQuQ=", + "dev": true, + "requires": { + "chokidar": "^3.4.2", + "copy-webpack-plugin": "^6.0.3", + "fs-extra": "^8.0.1", + "json-loader": "^0.5.7", + "jsx2mp-loader": "^0.4.13", + "jsx2mp-runtime": "^0.4.16", + "memory-fs": "^0.5.0", + "miniapp-builder-shared": "^0.1.0", + "rax-compile-config": "^0.2.15", + "rax-miniapp-babel-plugins": "^0.1.3", + "rax-miniapp-config-webpack-plugin": "^1.2.3", + "rax-miniapp-runtime-webpack-plugin": "^1.1.0", + "terser": "^4.8.0", + "ts-loader": "^8.0.3", + "webpack": "^4.44.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "ts-loader": { + "version": "8.0.17", + "resolved": "https://registry.npm.taobao.org/ts-loader/download/ts-loader-8.0.17.tgz?cache=0&sync_timestamp=1612978100071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fts-loader%2Fdownload%2Fts-loader-8.0.17.tgz", + "integrity": "sha1-mPLM/5EwB09Aef2JuUa0xjex8vw=", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^2.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + } + } + } + }, "minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", "dev": true }, "minimalistic-crypto-utils": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", + "dev": true }, "minipass": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", "dev": true, "requires": { "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", "dev": true, "requires": { "minipass": "^3.0.0" @@ -12579,8 +18212,8 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", "dev": true, "requires": { "minipass": "^3.0.0" @@ -12588,17 +18221,44 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", "dev": true, "requires": { "minipass": "^3.0.0" } }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz", + "integrity": "sha1-IpDeloGKNMKVUcio0wEha9Zahh0=", + "dev": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz", + "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + } + } + }, "mississippi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -12615,8 +18275,8 @@ }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", "dev": true, "requires": { "for-in": "^1.0.2", @@ -12625,33 +18285,18 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { "is-plain-object": "^2.0.4" } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, "mixin-object": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/mixin-object/download/mixin-object-2.0.1.tgz", "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "dev": true, "requires": { @@ -12661,7 +18306,7 @@ "dependencies": { "for-in": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz", "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", "dev": true } @@ -12669,8 +18314,8 @@ }, "mkdirp": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "dev": true, "requires": { "minimist": "^1.2.5" @@ -12678,7 +18323,7 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { @@ -12688,18 +18333,29 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "multicast-dns": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", "dev": true, "requires": { "dns-packet": "^1.3.1", @@ -12708,35 +18364,26 @@ }, "multicast-dns-service-types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - } - }, "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "version": "2.14.2", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz", + "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", "dev": true }, "nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -12750,59 +18397,58 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } } }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", - "dev": true + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/native-request/download/native-request-1.0.8.tgz", + "integrity": "sha1-j2a/YG4PfqJ8DlmV6y9dA+M65vs=", + "dev": true, + "optional": true }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "negotiator": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", "dev": true }, "neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, "nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", "dev": true }, "no-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", - "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-3.0.4.tgz", + "integrity": "sha1-02H9XJgA9VhVGoNp/A3NRmK2Ek0=", "dev": true, "requires": { - "lower-case": "^2.0.1", - "tslib": "^1.10.0" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, "node-dir": { "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "resolved": "https://registry.npm.taobao.org/node-dir/download/node-dir-0.1.17.tgz", "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", "dev": true, "requires": { @@ -12810,21 +18456,21 @@ } }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "version": "2.6.1", + "resolved": "https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.1.tgz", + "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=", "dev": true }, "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz", + "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", "dev": true }, "node-gyp": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "resolved": "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz?cache=0&sync_timestamp=1602898478735&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-3.8.0.tgz", + "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=", "dev": true, "requires": { "fstream": "^1.0.0", @@ -12841,18 +18487,33 @@ "which": "1" }, "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true } } }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, "node-libs-browser": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", "dev": true, "requires": { "assert": "^1.1.1", @@ -12882,22 +18543,55 @@ "dependencies": { "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true } } }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/node-notifier/download/node-notifier-8.0.1.tgz?cache=0&sync_timestamp=1608193051587&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-notifier%2Fdownload%2Fnode-notifier-8.0.1.tgz", + "integrity": "sha1-+G6Ju8kl8rBoeEsx84Kv3Gyla+E=", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "node-releases": { - "version": "1.1.60", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", - "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", + "version": "1.1.71", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.71.tgz", + "integrity": "sha1-yxM0sXmJaxyJ7P3UtyX7e738fbs=", "dev": true }, "node-sass": { "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "resolved": "https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz?cache=0&sync_timestamp=1604150630345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-sass%2Fdownload%2Fnode-sass-4.14.1.tgz", + "integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -12919,49 +18613,69 @@ "true-case-path": "^1.0.2" }, "dependencies": { - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, - "gaze": { + "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "globule": "^1.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "lru-cache": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true } @@ -12969,7 +18683,7 @@ }, "nopt": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { @@ -12978,8 +18692,8 @@ }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -12990,27 +18704,27 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, "normalize-range": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "normalize-url": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { @@ -13022,7 +18736,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { @@ -13031,8 +18745,8 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "dev": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -13043,8 +18757,8 @@ }, "nth-check": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860944410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", "dev": true, "requires": { "boolbase": "~1.0.0" @@ -13052,30 +18766,36 @@ }, "num2fraction": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", + "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=", + "dev": true + }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { @@ -13086,151 +18806,148 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804280990&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz", + "integrity": "sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=", + "dev": true }, "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613857698573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz", + "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", + "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115092726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", + "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/object.defaults/download/object.defaults-0.3.0.tgz", + "integrity": "sha1-seucvHjEx71WysbK496tWnETiCo=", "dev": true, "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" + "array-each": "^0.1.0", + "array-slice": "^0.2.3", + "for-own": "^0.1.3", + "isobject": "^1.0.0" }, "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-1.0.2.tgz", + "integrity": "sha1-8Pm4zpLdVA+gdAiC44NaLgIux4o=", "dev": true } } }, "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/object.entries/download/object.entries-1.1.3.tgz?cache=0&sync_timestamp=1606431063191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.3.tgz", + "integrity": "sha1-xgHH8Wi2I3RUGgfdvT4tXk93EaY=", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", + "es-abstract": "^1.18.0-next.1", "has": "^1.0.3" } }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "object.filter": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/object.filter/download/object.filter-0.3.0.tgz", + "integrity": "sha1-EJHGk5S0T5bZ1jVt0IeFAorWv/k=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "for-own": "^0.1.2", + "make-iterator": "^0.1.0" + }, + "dependencies": { + "make-iterator": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/make-iterator/download/make-iterator-0.1.1.tgz", + "integrity": "sha1-hz0nuBmKRlqBSDtvXRbaToY+z1s=", + "dev": true, + "requires": { + "for-own": "^0.1.1" + } + } } }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/object.fromentries/download/object.fromentries-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.4.tgz", + "integrity": "sha1-JuG6XEVxxcbwiQzvRHMGZFahILg=", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613860145677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c=", "dev": true, "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" } }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, - "optional": true, "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" @@ -13238,42 +18955,43 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + } + }, + "object.reduce": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/object.reduce/download/object.reduce-0.1.7.tgz", + "integrity": "sha1-0YDoT3LSGDSK9FNStVFlJGuVBG0=", + "dev": true, + "requires": { + "for-own": "^0.1.3" } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.3.tgz?cache=0&sync_timestamp=1614057880937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.3.tgz", + "integrity": "sha1-6qix4XWJ8C9pjbCT98Yu4WmXQu4=", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, "obuf": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", "dev": true }, "on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "requires": { @@ -13282,61 +19000,72 @@ }, "on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", "dev": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1" } }, "onetime": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", - "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "open": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz", - "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==", + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1614759218873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", "dev": true, "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "is-wsl": "^1.1.0" }, "dependencies": { "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true } } }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz", + "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", + "dev": true + }, "opn": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", "dev": true, "requires": { "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } } }, "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", + "version": "5.0.4", + "resolved": "https://registry.npm.taobao.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.4.tgz", + "integrity": "sha1-hYg8ZSiqoC4wu62ZCMkpJrtS3JA=", "dev": true, "requires": { "cssnano": "^4.1.10", @@ -13345,8 +19074,8 @@ }, "optionator": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", "dev": true, "requires": { "deep-is": "~0.1.3", @@ -13357,80 +19086,37 @@ "word-wrap": "~1.2.3" } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "dev": true, - "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" - }, - "dependencies": { - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "dev": true, - "requires": { - "once": "~1.3.0" - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "requires": { - "wrappy": "1" - } - } - } - }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, "original": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", "dev": true, "requires": { "url-parse": "^1.4.3" } }, - "os": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/os/-/os-0.1.1.tgz", - "integrity": "sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M=", - "dev": true - }, "os-browserify": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", "dev": true, "requires": { "os-homedir": "^1.0.0", @@ -13439,7 +19125,7 @@ }, "output-file-sync": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/output-file-sync/download/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "requires": { @@ -13448,43 +19134,46 @@ "object-assign": "^4.1.0" } }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-each-series/download/p-each-series-2.2.0.tgz", + "integrity": "sha1-EFqwNXznKyAqiouUkzZyZXteKpo=", + "dev": true + }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288549008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "dev": true }, "p-retry": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1613394671621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", "dev": true, "requires": { "retry": "^0.12.0" @@ -13492,20 +19181,20 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true }, "pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1610208910632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", "dev": true }, "parallel-transform": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", "dev": true, "requires": { "cyclist": "^1.0.1", @@ -13514,33 +19203,32 @@ } }, "param-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", - "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-3.0.4.tgz?cache=0&sync_timestamp=1606867508847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.4.tgz", + "integrity": "sha1-fRf+SqEr3jTUp32RrPtiGcqtAcU=", "dev": true, "requires": { - "dot-case": "^3.0.3", - "tslib": "^1.10.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "requires": { "callsites": "^3.0.0" } }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "version": "5.1.6", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz", + "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", "dev": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" @@ -13548,7 +19236,7 @@ }, "parse-color": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/parse-color/download/parse-color-1.0.0.tgz", "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=", "dev": true, "requires": { @@ -13557,7 +19245,7 @@ "dependencies": { "color-convert": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-0.5.3.tgz", "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", "dev": true } @@ -13565,8 +19253,8 @@ }, "parse-entities": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", - "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "resolved": "https://registry.npm.taobao.org/parse-entities/download/parse-entities-1.2.2.tgz", + "integrity": "sha1-wxvw9lO2ZhNU+Jc1WcuG3R1e31A=", "dev": true, "requires": { "character-entities": "^1.0.0", @@ -13577,20 +19265,9 @@ "is-hexadecimal": "^1.0.0" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "optional": true, @@ -13603,14 +19280,14 @@ "dependencies": { "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true, "optional": true }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "optional": true, @@ -13621,127 +19298,111 @@ } }, "parse-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", - "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz", + "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", + "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, "parse-svg-path": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/parse-svg-path/download/parse-svg-path-0.1.2.tgz", "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, "parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", "dev": true }, "pascal-case": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", - "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/pascal-case/download/pascal-case-3.1.2.tgz", + "integrity": "sha1-tI4O8rmOIF58Ha50fQsVCCN2YOs=", "dev": true, "requires": { - "no-case": "^3.0.3", - "tslib": "^1.10.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-browserify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", "dev": true }, "path-dirname": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", "dev": true }, "path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz?cache=0&sync_timestamp=1601400247487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "requires": { + "pify": "^3.0.0" + } }, "pbkdf2": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -13753,60 +19414,58 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, "picomatch": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", "dev": true }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "^2.0.0" } }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz", + "integrity": "sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c=", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - } + "find-up": "^4.0.0" } }, "pkg-up": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { @@ -13815,7 +19474,7 @@ "dependencies": { "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -13824,7 +19483,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -13834,66 +19493,49 @@ }, "p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288549008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", "dev": true, "requires": { "p-try": "^1.0.0" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "ansi-wrap": "^0.1.0" + "p-limit": "^1.1.0" } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "pnp-webpack-plugin": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg==", + "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.5.0.tgz", + "integrity": "sha1-YqHNMGj0bVZLszxW6yUOTVhmdus=", "dev": true, "requires": { "ts-pnp": "^1.1.2" } }, "point-at-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/point-at-length/-/point-at-length-1.0.2.tgz", - "integrity": "sha1-kXbY1tfIFi8Stkb3B9ufDqcoEl4=", + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/point-at-length/download/point-at-length-1.1.0.tgz", + "integrity": "sha1-CtcuvQmA1/WhqxIpbAVfnrazDlc=", "requires": { "abs-svg-path": "~0.1.1", "isarray": "~0.0.1", @@ -13901,24 +19543,24 @@ } }, "polished": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz", - "integrity": "sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==", + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/polished/download/polished-3.7.1.tgz", + "integrity": "sha1-0a3ch+4W61tBPGFl7aN2AMzLnBE=", "dev": true, "requires": { - "@babel/runtime": "^7.9.2" + "@babel/runtime": "^7.12.5" } }, "popper.js": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "resolved": "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.1.tgz", + "integrity": "sha1-KiI8s9x7YhPXQOQDcr5A3kPmWxs=", "dev": true }, "portfinder": { "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz", + "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", "dev": true, "requires": { "async": "^2.6.2", @@ -13927,26 +19569,32 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "version": "7.0.35", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", "dev": true, "requires": { "chalk": "^2.4.2", @@ -13954,47 +19602,10 @@ "supports-color": "^6.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -14002,10 +19613,20 @@ } } }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha1-2T5GtQRYnpSscnewRjImxoBBqIA=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689294247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", + "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", "dev": true, "requires": { "postcss": "^7.0.27", @@ -14013,10 +19634,62 @@ "postcss-value-parser": "^4.0.2" } }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-color-functional-notation/download/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha1-Xv03qI+6vrAKKWbR5T2Yztk/dOA=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-color-gray/download/postcss-color-gray-5.0.0.tgz", + "integrity": "sha1-Uyox65CfjaiYzv/ilv3B+GS+hUc=", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-color-hex-alpha/download/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha1-qNnKTDnUl8lmHjdLnFGJnvD4c4g=", + "dev": true, + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-color-mod-function/download/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha1-gWuhRawRzDy2uqkFp1pJ+QPk0x0=", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, "postcss-colormin": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1613756060579&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -14028,16 +19701,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-convert-values": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1613756061167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", "dev": true, "requires": { "postcss": "^7.0.0", @@ -14046,16 +19719,93 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npm.taobao.org/postcss-custom-media/download/postcss-custom-media-7.0.8.tgz", + "integrity": "sha1-//0T/+/61zYhvl84cHaiiwApTgw=", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npm.taobao.org/postcss-custom-properties/download/postcss-custom-properties-8.0.11.tgz?cache=0&sync_timestamp=1610468037600&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz", + "integrity": "sha1-LWF3LW6S8i9eDVJgLfj65G+jDZc=", + "dev": true, + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-custom-selectors/download/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha1-ZIWMbrLs/y+0HQsoyd17PbTef7o=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", + "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", + "dev": true + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", + "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-dir-pseudo-class/download/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha1-bjpBd9Dts6vMhf22+7HCbauuq6I=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", + "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", "dev": true + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", + "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } } } }, "postcss-discard-comments": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1613756060984&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", "dev": true, "requires": { "postcss": "^7.0.0" @@ -14063,8 +19813,8 @@ }, "postcss-discard-duplicates": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1613756061362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", "dev": true, "requires": { "postcss": "^7.0.0" @@ -14072,8 +19822,8 @@ }, "postcss-discard-empty": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1613756061581&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-empty%2Fdownload%2Fpostcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", "dev": true, "requires": { "postcss": "^7.0.0" @@ -14081,26 +19831,113 @@ }, "postcss-discard-overridden": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1613756061762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-overridden%2Fdownload%2Fpostcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", "dev": true, "requires": { "postcss": "^7.0.0" } }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-double-position-gradients/download/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha1-/JJ9Uv3ciWyzooEuvF3xR+EQUi4=", + "dev": true, + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-env-function/download/postcss-env-function-2.0.2.tgz", + "integrity": "sha1-Dz49PFfwlKksK69LYkHwsNpTZdc=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, "postcss-flexbugs-fixes": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", - "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "resolved": "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha1-khimUknzCJfeqxAzrO2FeFYqZpA=", "dev": true, "requires": { "postcss": "^7.0.26" } }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-focus-visible/download/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha1-R30QcROt5gJLFBKDF63ivR4XBG4=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-focus-within/download/postcss-focus-within-3.0.0.tgz", + "integrity": "sha1-djuHiFls7puHTJmSAc3egGWe9oA=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-font-variant/download/postcss-font-variant-4.0.1.tgz", + "integrity": "sha1-QtTAqzCJT2D5ixdWHrXAMh9QJkE=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-gap-properties/download/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha1-QxwZKrPtlqPD0J8v9hWWD5AsFxU=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-image-set-function/download/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha1-KJIKLymUW+1MMZjX32SW1BDT8og=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.2.tgz?cache=0&sync_timestamp=1601414425002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz", + "integrity": "sha1-8BhWNpSzwWro6qvjxYWsYxljey0=", + "dev": true, + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-lab-function/download/postcss-lab-function-2.0.1.tgz", + "integrity": "sha1-u1GmhWzRIomrSuINseOCHvE9fS4=", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1612742943575&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", + "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", "dev": true, "requires": { "cosmiconfig": "^5.0.0", @@ -14109,8 +19946,8 @@ "dependencies": { "cosmiconfig": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", "dev": true, "requires": { "import-fresh": "^2.0.0", @@ -14121,7 +19958,7 @@ }, "import-fresh": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { @@ -14131,7 +19968,7 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { @@ -14141,7 +19978,7 @@ }, "resolve-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true } @@ -14149,8 +19986,8 @@ }, "postcss-loader": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz?cache=0&sync_timestamp=1612277661855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-3.0.0.tgz", + "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -14159,10 +19996,28 @@ "schema-utils": "^1.0.0" } }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-logical/download/postcss-logical-3.0.0.tgz", + "integrity": "sha1-JJXQ+LgunyYnJfdflAGzTntF1bU=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-media-minmax/download/postcss-media-minmax-4.0.0.tgz?cache=0&sync_timestamp=1610466143301&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz", + "integrity": "sha1-t1u2y8IXyKxJQz4S8iBIgUpPXtU=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, "postcss-merge-longhand": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", "dev": true, "requires": { "css-color-names": "0.0.4", @@ -14173,16 +20028,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-merge-rules": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -14195,8 +20050,8 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { "dot-prop": "^5.2.0", @@ -14208,8 +20063,8 @@ }, "postcss-minify-font-values": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", "dev": true, "requires": { "postcss": "^7.0.0", @@ -14218,16 +20073,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-minify-gradients": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -14238,16 +20093,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-minify-params": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-params%2Fdownload%2Fpostcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", "dev": true, "requires": { "alphanum-sort": "^1.0.0", @@ -14260,16 +20115,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-minify-selectors": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1613756062544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", "dev": true, "requires": { "alphanum-sort": "^1.0.0", @@ -14280,8 +20135,8 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { "dot-prop": "^5.2.0", @@ -14291,10 +20146,23 @@ } } }, + "postcss-modules": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/postcss-modules/download/postcss-modules-1.3.2.tgz", + "integrity": "sha1-CmFrhDh/H2DdKKAfWXaH6Ft7hIE=", + "dev": true, + "requires": { + "css-modules-loader-core": "^1.1.0", + "generic-names": "^1.0.3", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.1", + "string-hash": "^1.1.1" + } + }, "postcss-modules-extract-imports": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", "dev": true, "requires": { "postcss": "^7.0.5" @@ -14302,8 +20170,8 @@ }, "postcss-modules-local-by-default": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587682123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", "dev": true, "requires": { "icss-utils": "^4.1.1", @@ -14314,8 +20182,8 @@ }, "postcss-modules-scope": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", "dev": true, "requires": { "postcss": "^7.0.6", @@ -14324,18 +20192,27 @@ }, "postcss-modules-values": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz", + "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", "dev": true, "requires": { "icss-utils": "^4.0.0", "postcss": "^7.0.6" } }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-nesting/download/postcss-nesting-7.0.1.tgz", + "integrity": "sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, "postcss-normalize-charset": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", "dev": true, "requires": { "postcss": "^7.0.0" @@ -14343,8 +20220,8 @@ }, "postcss-normalize-display-values": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", "dev": true, "requires": { "cssnano-util-get-match": "^4.0.0", @@ -14354,16 +20231,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-positions": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -14374,16 +20251,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-repeat-style": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -14394,16 +20271,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-string": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1613756062174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", "dev": true, "requires": { "has": "^1.0.0", @@ -14413,16 +20290,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-timing-functions": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-timing-functions%2Fdownload%2Fpostcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", "dev": true, "requires": { "cssnano-util-get-match": "^4.0.0", @@ -14432,16 +20309,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-unicode": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1613756062355&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-unicode%2Fdownload%2Fpostcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -14451,16 +20328,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-url": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", "dev": true, "requires": { "is-absolute-url": "^2.0.0", @@ -14469,24 +20346,30 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, "normalize-url": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", "dev": true }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-normalize-whitespace": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", "dev": true, "requires": { "postcss": "^7.0.0", @@ -14495,16 +20378,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-ordered-values": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -14514,16 +20397,127 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-overflow-shorthand/download/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha1-MezzUOnG9t3CUKePDD4RHzLdTDA=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-page-break/download/postcss-page-break-2.0.0.tgz?cache=0&sync_timestamp=1601209042791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz", + "integrity": "sha1-rdUtDgpSjKvmr+6LRuKrsnffRr8=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-place/download/postcss-place-4.0.1.tgz", + "integrity": "sha1-6fOdM9LcWE5G7h20Wtt3yp0dzGI=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-plugin-rpx2vw": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-plugin-rpx2vw/download/postcss-plugin-rpx2vw-0.0.2.tgz", + "integrity": "sha1-pw4x+6jq5O5x38FGJ+L+Sz4KOg8=", + "dev": true, + "requires": { + "postcss": "^7.0.17" + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz", + "integrity": "sha1-w03az4+QI4OzWtHgMPF49M3xGKU=", + "dev": true, + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-pseudo-class-any-link/download/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha1-LtPu05OzcCh53sSocDKyENrrBNE=", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", + "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", "dev": true + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", + "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } } } }, "postcss-reduce-initial": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -14534,8 +20528,8 @@ }, "postcss-reduce-transforms": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", "dev": true, "requires": { "cssnano-util-get-match": "^4.0.0", @@ -14546,27 +20540,66 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-replace-overflow-wrap/download/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha1-YbNg/9rtyoTHyRjSsPDQ6lWasBw=", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-safe-parser": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-safe-parser/download/postcss-safe-parser-4.0.2.tgz?cache=0&sync_timestamp=1601168630120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-safe-parser%2Fdownload%2Fpostcss-safe-parser-4.0.2.tgz", + "integrity": "sha1-ptTkjw832ffBGypYG/APi6SHC5Y=", + "dev": true, + "requires": { + "postcss": "^7.0.26" + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-selector-matches/download/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha1-ccgkj5F7osyTA3yWN+4JxkQ2/P8=", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-selector-not/download/postcss-selector-not-4.0.1.tgz?cache=0&sync_timestamp=1612096241864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.1.tgz", + "integrity": "sha1-JjAW7vHPIZ4K3pqRN4D8H0ggTL8=", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "version": "6.0.4", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz", + "integrity": "sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM=", "dev": true, "requires": { "cssesc": "^3.0.0", "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" } }, "postcss-svgo": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", "dev": true, "requires": { "is-svg": "^3.0.0", @@ -14577,16 +20610,16 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-unique-selectors": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", "dev": true, "requires": { "alphanum-sort": "^1.0.0", @@ -14594,51 +20627,118 @@ "uniqs": "^2.0.0" } }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz", + "integrity": "sha1-2otHLZAdoeIFtHvcmGN7np5VDl8=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true, "optional": true }, + "pretty-data": { + "version": "0.40.0", + "resolved": "https://registry.npm.taobao.org/pretty-data/download/pretty-data-0.40.0.tgz", + "integrity": "sha1-Vyqo6iNGdGerlLa1Jmpv2cj93XI=", + "dev": true + }, "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1609589359007&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", + "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", "dev": true, "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npm.taobao.org/pretty-format/download/pretty-format-26.6.2.tgz", + "integrity": "sha1-41wnBfFMt/4v6U+geDRbREEg/JM=", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npm.taobao.org/react-is/download/react-is-17.0.1.tgz", + "integrity": "sha1-WzUxvXamRaTJ+25pPtNkGeMwEzk=", + "dev": true + } } }, "pretty-hrtime": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/pretty-hrtime/download/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, + "pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/pretty-time/download/pretty-time-1.1.0.tgz", + "integrity": "sha1-/7dCmvq7hTXDRqNOQYc63z103Q4=", + "dev": true + }, "prismjs": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz", - "integrity": "sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==", + "version": "1.23.0", + "resolved": "https://registry.npm.taobao.org/prismjs/download/prismjs-1.23.0.tgz?cache=0&sync_timestamp=1609438547304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprismjs%2Fdownload%2Fprismjs-1.23.0.tgz", + "integrity": "sha1-07OWf31yRAaQSXZSqdQP8EYGfzM=", "dev": true, "requires": { "clipboard": "^2.0.0" @@ -14646,51 +20746,52 @@ }, "private": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", "dev": true }, "process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", "dev": true }, "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "version": "1.1.8", + "resolved": "https://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "promise.allsettled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", - "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/promise.allsettled/download/promise.allsettled-1.0.4.tgz", + "integrity": "sha1-ZecfKmBAgu1pxUi2hgMpQJDuaAM=", "dev": true, "requires": { - "array.prototype.map": "^1.0.1", + "array.prototype.map": "^1.0.3", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "iterate-value": "^1.0.0" + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.0.2", + "iterate-value": "^1.0.2" } }, "promise.prototype.finally": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz", - "integrity": "sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==", + "resolved": "https://registry.npm.taobao.org/promise.prototype.finally/download/promise.prototype.finally-3.1.2.tgz", + "integrity": "sha1-uK+JFgycZzzv47TEQ1tTz9AocGc=", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -14698,10 +20799,20 @@ "function-bind": "^1.1.1" } }, + "prompts": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/prompts/download/prompts-2.4.0.tgz?cache=0&sync_timestamp=1603716773317&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprompts%2Fdownload%2Fprompts-2.4.0.tgz", + "integrity": "sha1-SqXeByOiMdHukSHED99mPfc/Ydc=", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, "prop-types": { "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "resolved": "https://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz", + "integrity": "sha1-UsQedbjIfnK52TYOAga5ncv/psU=", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -14709,9 +20820,9 @@ } }, "property-information": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.5.0.tgz", - "integrity": "sha512-RgEbCx2HLa1chNgvChcx+rrCWD0ctBmGSE0M7lVm1yyv4UbvbrWoXp/BkVLZefzjrRBGW8/Js6uh/BnlHXFyjA==", + "version": "5.6.0", + "resolved": "https://registry.npm.taobao.org/property-information/download/property-information-5.6.0.tgz", + "integrity": "sha1-YWdVRfsjAC8kXGVA7EYHfU2j7Wk=", "dev": true, "requires": { "xtend": "^4.0.0" @@ -14719,8 +20830,8 @@ }, "proxy-addr": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", + "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", "dev": true, "requires": { "forwarded": "~0.1.2", @@ -14729,26 +20840,26 @@ }, "prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "psl": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", "dev": true }, "public-encrypt": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", "dev": true, "requires": { "bn.js": "^4.1.0", @@ -14760,17 +20871,17 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", "dev": true } } }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14779,8 +20890,8 @@ }, "pumpify": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", "dev": true, "requires": { "duplexify": "^3.6.0", @@ -14790,8 +20901,8 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14802,26 +20913,32 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", "dev": true }, "q": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/qrcode-terminal/download/qrcode-terminal-0.12.0.tgz", + "integrity": "sha1-u1tpnvf58FBQkqN0i+RGT+cbWBk=", + "dev": true + }, "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1610598122721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", "dev": true }, "query-ast": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/query-ast/-/query-ast-1.0.3.tgz", - "integrity": "sha512-k7z4jilpZCujhiJ+QeKSwYXHc9HxqiVKlVE7/em0zBfPpcqnXKUP8F7ld7XaAkO6oXeAD7yonqcNJWqOF2pSGA==", + "resolved": "https://registry.npm.taobao.org/query-ast/download/query-ast-1.0.3.tgz", + "integrity": "sha1-Shg3SVD6gMv5sD17lFu6yLtCUL8=", "dev": true, "requires": { "invariant": "2.2.2", @@ -14830,7 +20947,7 @@ "dependencies": { "invariant": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { @@ -14841,7 +20958,7 @@ }, "query-string": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1614341935144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { @@ -14851,32 +20968,38 @@ }, "querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", + "dev": true + }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.2.tgz", + "integrity": "sha1-q/ZEkebs8POKZQJAPUzaBPNy39M=", "dev": true }, "ramda": { "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "resolved": "https://registry.npm.taobao.org/ramda/download/ramda-0.21.0.tgz", "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", "dev": true }, "randomatic": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "resolved": "https://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz", + "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=", "dev": true, "optional": true, "requires": { @@ -14887,15 +21010,8 @@ "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "optional": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz", + "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", "dev": true, "optional": true } @@ -14903,8 +21019,8 @@ }, "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -14912,8 +21028,8 @@ }, "randomfill": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", "dev": true, "requires": { "randombytes": "^2.0.5", @@ -14922,26 +21038,34 @@ }, "range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", "dev": true }, "raw-body": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", "dev": true, "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + } } }, "raw-loader": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", - "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-3.1.0.tgz?cache=0&sync_timestamp=1602255313867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-loader%2Fdownload%2Fraw-loader-3.1.0.tgz", + "integrity": "sha1-Xp05mloiLMDeGPQsO8XklndTKz8=", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -14949,22 +21073,652 @@ }, "dependencies": { "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "rax-babel-config": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/rax-babel-config/download/rax-babel-config-0.1.2.tgz?cache=0&sync_timestamp=1610008405030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frax-babel-config%2Fdownload%2Frax-babel-config-0.1.2.tgz", + "integrity": "sha1-szGjKN6AUCpaU4PeIYDv++QtIsk=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/core": "^7.9.6", + "@babel/generator": "^7.6.4", + "@babel/parser": "^7.6.4", + "@babel/plugin-proposal-class-properties": "7.2.0", + "@babel/plugin-proposal-decorators": "7.2.0", + "@babel/plugin-proposal-export-default-from": "7.2.0", + "@babel/plugin-proposal-export-namespace-from": "^7.0.0", + "@babel/plugin-proposal-function-bind": "^7.2.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.2.0", + "@babel/preset-env": "7.2.0", + "@babel/preset-flow": "7.0.0", + "@babel/preset-react": "7.0.0", + "@babel/runtime": "^7.2.0", + "@babel/traverse": "^7.6.3", + "@babel/types": "^7.6.3", + "babel-merge": "^3.0.0", + "babel-plugin-minify-dead-code-elimination-while-loop-fixed": "^0.3.0", + "babel-plugin-transform-jsx-class": "^0.1.2", + "babel-plugin-transform-jsx-condition": "^0.1.0", + "babel-plugin-transform-jsx-fragment": "^0.1.1", + "babel-plugin-transform-jsx-list": "^0.1.0", + "babel-plugin-transform-jsx-memo": "^0.1.2", + "babel-plugin-transform-jsx-slot": "^0.1.1", + "babel-plugin-transform-jsx-stylesheet": "^0.6.8", + "babel-plugin-transform-jsx-to-html": "^0.1.0", + "chalk": "^2.4.2" + }, + "dependencies": { + "@babel/plugin-proposal-class-properties": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.2.0.tgz?cache=0&sync_timestamp=1614034504606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.2.0.tgz", + "integrity": "sha1-Eq3m3HuS6k+kyEtNe4fp0PRGtPg=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.2.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.2.0.tgz", + "integrity": "sha1-a0J4KCpvXdCLXYm5TyGqFnH+oHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.2.0" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-default-from/download/@babel/plugin-proposal-export-default-from-7.2.0.tgz", + "integrity": "sha1-c3sNpEuSVLYVL+KbuZxk5Wkfb2g=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.2.0" + } + }, + "@babel/preset-env": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.2.0.tgz", + "integrity": "sha1-pQMOfkMGr1opXdXXx43FRkrz/uI=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/preset-flow": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-flow/download/@babel/preset-flow-7.0.0.tgz?cache=0&sync_timestamp=1612314789819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-flow%2Fdownload%2F%40babel%2Fpreset-flow-7.0.0.tgz", + "integrity": "sha1-r9dkg12VNexj2MfUyvHAZFcmPaI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0" + } + }, + "@babel/preset-react": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-react/download/@babel/preset-react-7.0.0.tgz", + "integrity": "sha1-6GtLPZlDPHs+npF0fiZTlYvGs8A=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + } + } + }, + "rax-compile-config": { + "version": "0.2.16", + "resolved": "https://registry.npm.taobao.org/rax-compile-config/download/rax-compile-config-0.2.16.tgz", + "integrity": "sha1-siw3n3A3dDfc6m88HGqF0Lw9z5A=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.4", + "@babel/parser": "^7.6.4", + "@babel/plugin-proposal-class-properties": "7.2.0", + "@babel/plugin-proposal-decorators": "7.2.0", + "@babel/plugin-proposal-export-default-from": "7.2.0", + "@babel/plugin-proposal-export-namespace-from": "^7.0.0", + "@babel/plugin-proposal-function-bind": "^7.2.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.2.0", + "@babel/preset-env": "7.2.0", + "@babel/preset-flow": "7.0.0", + "@babel/preset-react": "7.0.0", + "@babel/runtime": "^7.2.0", + "@babel/traverse": "^7.6.3", + "@babel/types": "^7.6.3", + "babel-merge": "^3.0.0", + "babel-plugin-minify-dead-code-elimination-while-loop-fixed": "^0.3.0", + "babel-plugin-transform-jsx-class": "^0.1.2", + "babel-plugin-transform-jsx-condition": "^0.1.0", + "babel-plugin-transform-jsx-fragment": "^0.1.1", + "babel-plugin-transform-jsx-list": "^0.1.0", + "babel-plugin-transform-jsx-memo": "^0.1.2", + "babel-plugin-transform-jsx-slot": "^0.1.1", + "babel-plugin-transform-jsx-stylesheet": "^0.6.8", + "babel-plugin-transform-jsx-to-html": "^0.1.0", + "babel-runtime-jsx-plus": "^0.1.3", + "chalk": "^2.4.2", + "fs-extra": "^8.1.0", + "loader-utils": "^1.1.0", + "source-map": "^0.7.3", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "@babel/plugin-proposal-class-properties": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.2.0.tgz?cache=0&sync_timestamp=1614034504606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.2.0.tgz", + "integrity": "sha1-Eq3m3HuS6k+kyEtNe4fp0PRGtPg=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.2.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.2.0.tgz", + "integrity": "sha1-a0J4KCpvXdCLXYm5TyGqFnH+oHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.2.0" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-default-from/download/@babel/plugin-proposal-export-default-from-7.2.0.tgz", + "integrity": "sha1-c3sNpEuSVLYVL+KbuZxk5Wkfb2g=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.2.0" + } + }, + "@babel/preset-env": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.2.0.tgz", + "integrity": "sha1-pQMOfkMGr1opXdXXx43FRkrz/uI=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/preset-flow": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-flow/download/@babel/preset-flow-7.0.0.tgz?cache=0&sync_timestamp=1612314789819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-flow%2Fdownload%2F%40babel%2Fpreset-flow-7.0.0.tgz", + "integrity": "sha1-r9dkg12VNexj2MfUyvHAZFcmPaI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0" + } + }, + "@babel/preset-react": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-react/download/@babel/preset-react-7.0.0.tgz", + "integrity": "sha1-6GtLPZlDPHs+npF0fiZTlYvGs8A=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "rax-jest-config": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/rax-jest-config/download/rax-jest-config-0.0.4.tgz", + "integrity": "sha1-5mfpbzLy0A1NrByxb0Rzw7tMgNE=", + "dev": true, + "requires": { + "babel-jest": "^26.1.0", + "jest-transform-css": "^2.0.0", + "rax-babel-config": "^0.1.2" + } + }, + "rax-miniapp-babel-plugins": { + "version": "0.1.12", + "resolved": "https://registry.npm.taobao.org/rax-miniapp-babel-plugins/download/rax-miniapp-babel-plugins-0.1.12.tgz", + "integrity": "sha1-CwWv3KD6/p2vW3ecXMrKRoAoU34=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "fs-extra": "^9.0.1", + "md5": "^2.2.1", + "miniapp-builder-shared": "^0.1.7" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-9.1.0.tgz?cache=0&sync_timestamp=1611075413359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-9.1.0.tgz", + "integrity": "sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161917513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz", + "integrity": "sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz", + "integrity": "sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=", + "dev": true + } + } + }, + "rax-miniapp-config-webpack-plugin": { + "version": "1.2.6", + "resolved": "https://registry.npm.taobao.org/rax-miniapp-config-webpack-plugin/download/rax-miniapp-config-webpack-plugin-1.2.6.tgz?cache=0&sync_timestamp=1614238064417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frax-miniapp-config-webpack-plugin%2Fdownload%2Frax-miniapp-config-webpack-plugin-1.2.6.tgz", + "integrity": "sha1-Iyc5BmVNdJGRODwbpOI/ZCckKpk=", + "dev": true, + "requires": { + "fs-extra": "^8.1.0" + } + }, + "rax-miniapp-runtime-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/rax-miniapp-runtime-webpack-plugin/download/rax-miniapp-runtime-webpack-plugin-1.3.3.tgz?cache=0&sync_timestamp=1614850939276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frax-miniapp-runtime-webpack-plugin%2Fdownload%2Frax-miniapp-runtime-webpack-plugin-1.3.3.tgz", + "integrity": "sha1-Msih1UtIvrb8zijoLCBpCJigWGc=", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "colors": "^1.4.0", + "csso": "^4.0.3", + "ejs": "^3.1.2", + "execa": "^4.1.0", + "fs-extra": "^8.1.0", + "ice-npm-utils": "^2.0.1", + "lodash.isequal": "^4.5.0", + "miniapp-builder-shared": "^0.1.7", + "path-to-regexp": "^3.0.0", + "postcss": "^7.0.17", + "pretty-data": "^0.40.0", + "terser": "^4.6.10", + "webpack": "^4.35.3", + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-3.1.6.tgz?cache=0&sync_timestamp=1612643435705&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-3.1.6.tgz", + "integrity": "sha1-W/0KBol0O7UmizVQzO7rvBcCgio=", + "dev": true, + "requires": { + "jake": "^10.6.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-4.1.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz", + "integrity": "sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "ice-npm-utils": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ice-npm-utils/download/ice-npm-utils-2.1.0.tgz", + "integrity": "sha1-AbNTw9zYjaFCWZIHhT3BZeW+Jwk=", + "dev": true, + "requires": { + "@iceworks/constant": "^0.1.0", + "fs-extra": "^8.1.0", + "mkdirp": "^0.5.1", + "request": "^2.88.0", + "request-progress": "^3.0.0", + "request-promise": "^4.2.4", + "semver": "^6.0.0", + "tar": "^4.4.8", + "url-join": "^4.0.1" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz", + "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-3.2.0.tgz?cache=0&sync_timestamp=1601400247487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-3.2.0.tgz", + "integrity": "sha1-+nh37LxJXGAZB1YiIkU8Q8wgSl8=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz", + "integrity": "sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "isexe": "^2.0.0" } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true } } }, + "rax-server-renderer": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/rax-server-renderer/download/rax-server-renderer-1.4.1.tgz", + "integrity": "sha1-iS2uNx73B+kvaUBpaVUVz77GbKE=", + "dev": true, + "requires": { + "style-unit": "^3.0.0" + } + }, "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "version": "16.14.0", + "resolved": "https://registry.npm.taobao.org/react/download/react-16.14.0.tgz", + "integrity": "sha1-lNd23dCqo32j7aj8W2sYpMmjEU0=", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -14972,38 +21726,33 @@ } }, "react-clientside-effect": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz", - "integrity": "sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A==", + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/react-clientside-effect/download/react-clientside-effect-1.2.5.tgz", + "integrity": "sha1-4sTcPJ7hCfZC+sT1tum/W80iGaM=", "dev": true, "requires": { - "@babel/runtime": "^7.0.0" + "@babel/runtime": "^7.12.13" } }, "react-color": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.1.tgz", - "integrity": "sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ==", + "version": "2.19.3", + "resolved": "https://registry.npm.taobao.org/react-color/download/react-color-2.19.3.tgz?cache=0&sync_timestamp=1603861902861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-color%2Fdownload%2Freact-color-2.19.3.tgz", + "integrity": "sha1-7GxrRWgxKjxqGEIKsEcuFGqlaD0=", "dev": true, "requires": { "@icons/material": "^0.2.4", - "lodash": "^4.17.11", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", "material-colors": "^1.2.1", "prop-types": "^15.5.10", "reactcss": "^1.2.0", "tinycolor2": "^1.4.1" } }, - "react-deep-force-update": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.3.tgz", - "integrity": "sha512-lqD4eHKVuB65RyO/hGbEST53E2/GPbcIPcFYyeW/p4vNngtH4G7jnKGlU6u1OqrFo0uNfIvwuBOg98IbLHlNEA==", - "dev": true - }, "react-dev-utils": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", - "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "resolved": "https://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-9.1.0.tgz?cache=0&sync_timestamp=1614018638750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-9.1.0.tgz", + "integrity": "sha1-OtK7iEijIxnXYNCoTFbBS9quXoE=", "dev": true, "requires": { "@babel/code-frame": "7.5.5", @@ -15035,38 +21784,23 @@ "dependencies": { "@babel/code-frame": { "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.5.5.tgz", + "integrity": "sha1-vAeC9tafe31JUxIZaZuYj2aaj50=", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "browserslist": { "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.7.0.tgz", + "integrity": "sha1-nuiSJf/AfbA0CfL+5STcgidFihc=", "dev": true, "requires": { "caniuse-lite": "^1.0.30000989", @@ -15074,226 +21808,70 @@ "node-releases": "^1.1.29" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "detect-port-alt": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "resolved": "https://registry.npm.taobao.org/detect-port-alt/download/detect-port-alt-1.1.6.tgz", + "integrity": "sha1-JHB96r6TLUo89iEwICfCsmZWgnU=", "dev": true, "requires": { "address": "^1.0.1", "debug": "^2.6.0" } }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { "locate-path": "^3.0.0" } }, - "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "minimist": "^1.2.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "p-limit": "^2.0.0" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" } } } }, "react-docgen": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz", - "integrity": "sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg==", + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/react-docgen/download/react-docgen-5.3.1.tgz", + "integrity": "sha1-lAtRlkamwoXClQuWUSrtWej5CTQ=", "dev": true, "requires": { "@babel/core": "^7.7.5", "@babel/runtime": "^7.7.6", - "ast-types": "^0.13.2", + "ast-types": "^0.14.2", "commander": "^2.19.0", "doctrine": "^3.0.0", "neo-async": "^2.6.1", @@ -15302,9 +21880,9 @@ } }, "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "version": "16.14.0", + "resolved": "https://registry.npm.taobao.org/react-dom/download/react-dom-16.14.0.tgz?cache=0&sync_timestamp=1614788440210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dom%2Fdownload%2Freact-dom-16.14.0.tgz", + "integrity": "sha1-etg47Cmnd/s8dcOhkPZhz5Kri4k=", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -15314,8 +21892,8 @@ }, "react-draggable": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.3.tgz", - "integrity": "sha512-jV4TE59MBuWm7gb6Ns3Q1mxX8Azffb7oTtDtBgFkxRvhDp38YAARmRplrj0+XGkhOJB5XziArX+4HUUABtyZ0w==", + "resolved": "https://registry.npm.taobao.org/react-draggable/download/react-draggable-4.4.3.tgz", + "integrity": "sha1-ByfyyuWBPjaw5JYr8RsvnvK0BvM=", "dev": true, "requires": { "classnames": "^2.2.5", @@ -15323,25 +21901,25 @@ } }, "react-error-overlay": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", - "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==", + "version": "6.0.9", + "resolved": "https://registry.npm.taobao.org/react-error-overlay/download/react-error-overlay-6.0.9.tgz", + "integrity": "sha1-PHQwEMk1lgjDdezWvHbzXZOZWwo=", "dev": true }, "react-fast-compare": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "resolved": "https://registry.npm.taobao.org/react-fast-compare/download/react-fast-compare-3.2.0.tgz", + "integrity": "sha1-ZBqdqBtqYyDycOiXJPtFoLOeQ7s=", "dev": true }, "react-focus-lock": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.4.1.tgz", - "integrity": "sha512-c5ZP56KSpj9EAxzScTqQO7bQQNPltf/W1ZEBDqNDOV1XOIwvAyHX0O7db9ekiAtxyKgnqZjQlLppVg94fUeL9w==", + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/react-focus-lock/download/react-focus-lock-2.5.0.tgz", + "integrity": "sha1-EuOjlA6JfCbiwqBAjNJeo8mbNwk=", "dev": true, "requires": { "@babel/runtime": "^7.0.0", - "focus-lock": "^0.7.0", + "focus-lock": "^0.8.1", "prop-types": "^15.6.2", "react-clientside-effect": "^1.2.2", "use-callback-ref": "^1.2.1", @@ -15349,52 +21927,31 @@ } }, "react-helmet-async": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.6.tgz", - "integrity": "sha512-t+bhAI4NgxfEv8ez4r77cLfR4O4Z55E/FH2DT+uiE4U7yfWgAk7OAOi7IxHxuYEVLI26bqjZvlVCkpC5/5AoNA==", + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/react-helmet-async/download/react-helmet-async-1.0.9.tgz", + "integrity": "sha1-W57SBZ3mtKq0f3aVMvn7y84Wxco=", "dev": true, "requires": { - "@babel/runtime": "^7.9.2", + "@babel/runtime": "^7.12.5", "invariant": "^2.2.4", "prop-types": "^15.7.2", - "react-fast-compare": "^3.0.1", + "react-fast-compare": "^3.2.0", "shallowequal": "^1.1.0" } }, - "react-hot-loader": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.1.3.tgz", - "integrity": "sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ==", - "dev": true, - "requires": { - "global": "^4.3.0", - "react-deep-force-update": "^2.1.1", - "react-proxy": "^3.0.0-alpha.0", - "redbox-react": "^1.3.6", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "react-hotkeys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-hotkeys/-/react-hotkeys-2.0.0.tgz", - "integrity": "sha512-3n3OU8vLX/pfcJrR3xJ1zlww6KS1kEJt0Whxc4FiGV+MJrQ1mYSYI3qS/11d2MJDFm8IhOXMTFQirfu6AVOF6Q==", + "resolved": "https://registry.npm.taobao.org/react-hotkeys/download/react-hotkeys-2.0.0.tgz", + "integrity": "sha1-p3Gcc0DLuoiLDpGE+Aap7ArCxT8=", "dev": true, "requires": { "prop-types": "^15.6.1" } }, "react-input-autosize": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", - "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/react-input-autosize/download/react-input-autosize-3.0.0.tgz", + "integrity": "sha1-a1iYx5DUR41pQgtVRB/MMdXFCoU=", "dev": true, "requires": { "prop-types": "^15.5.8" @@ -15402,8 +21959,8 @@ }, "react-inspector": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-4.0.1.tgz", - "integrity": "sha512-xSiM6CE79JBqSj8Fzd9dWBHv57tLTH7OM57GP3VrE5crzVF3D5Khce9w1Xcw75OAbvrA0Mi2vBneR1OajKmXFg==", + "resolved": "https://registry.npm.taobao.org/react-inspector/download/react-inspector-4.0.1.tgz", + "integrity": "sha1-D4iPeP99rMvHvl1FKyDJbcbV+7g=", "dev": true, "requires": { "@babel/runtime": "^7.6.3", @@ -15413,24 +21970,23 @@ }, "react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved": "https://registry.npm.taobao.org/react-is/download/react-is-16.13.1.tgz", + "integrity": "sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ=" }, "react-lifecycles-compat": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "resolved": "https://registry.npm.taobao.org/react-lifecycles-compat/download/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha1-TxonOv38jzSIqMUWv9p4+HI1I2I=", "dev": true }, "react-popper": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", - "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", + "version": "1.3.10", + "resolved": "https://registry.npm.taobao.org/react-popper/download/react-popper-1.3.10.tgz", + "integrity": "sha1-lv2IzBv0WVflUcUFOv6nrcCx1Ng=", "dev": true, "requires": { "@babel/runtime": "^7.1.2", - "create-react-context": "^0.3.0", - "deep-equal": "^1.1.1", + "@hypnosphi/create-react-context": "^0.3.1", "popper.js": "^1.14.4", "prop-types": "^15.6.1", "typed-styles": "^0.0.7", @@ -15439,27 +21995,62 @@ }, "react-popper-tooltip": { "version": "2.11.1", - "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz", - "integrity": "sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ==", + "resolved": "https://registry.npm.taobao.org/react-popper-tooltip/download/react-popper-tooltip-2.11.1.tgz", + "integrity": "sha1-PEvf2LwQ0cK5oWLoWbq4lY9bJkQ=", "dev": true, "requires": { "@babel/runtime": "^7.9.2", "react-popper": "^1.3.7" } }, - "react-proxy": { - "version": "3.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz", - "integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=", + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/react-router/download/react-router-5.2.0.tgz", + "integrity": "sha1-Qk51ZByodH+/duXsyml4GqN+opM=", + "dev": true, + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.8.0.tgz?cache=0&sync_timestamp=1601400247487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz", + "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/react-router-dom/download/react-router-dom-5.2.0.tgz?cache=0&sync_timestamp=1592608787345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz", + "integrity": "sha1-nmWk0MReEyieZsexfH4XXQ6hVmI=", "dev": true, "requires": { - "lodash": "^4.6.1" + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" } }, "react-select": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.1.0.tgz", - "integrity": "sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/react-select/download/react-select-3.2.0.tgz?cache=0&sync_timestamp=1612659350059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-select%2Fdownload%2Freact-select-3.2.0.tgz", + "integrity": "sha1-3pKEcAGW9fm1J3xdhQqc6F9ccv4=", "dev": true, "requires": { "@babel/runtime": "^7.4.4", @@ -15468,14 +22059,14 @@ "@emotion/css": "^10.0.9", "memoize-one": "^5.0.0", "prop-types": "^15.6.0", - "react-input-autosize": "^2.2.2", + "react-input-autosize": "^3.0.0", "react-transition-group": "^4.3.0" } }, "react-sizeme": { "version": "2.6.12", - "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", - "integrity": "sha512-tL4sCgfmvapYRZ1FO2VmBmjPVzzqgHA7kI8lSJ6JS6L78jXFNRdOZFpXyK6P1NBZvKPPCZxReNgzZNUajAerZw==", + "resolved": "https://registry.npm.taobao.org/react-sizeme/download/react-sizeme-2.6.12.tgz", + "integrity": "sha1-7SB75UdvSoW/Nk6SBCUgSZRVRT4=", "dev": true, "requires": { "element-resize-detector": "^1.2.1", @@ -15486,8 +22077,8 @@ }, "react-syntax-highlighter": { "version": "11.0.2", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz", - "integrity": "sha512-kqmpM2OH5OodInbEADKARwccwSQWBfZi0970l5Jhp4h39q9Q65C4frNcnd6uHE5pR00W8pOWj9HDRntj2G4Rww==", + "resolved": "https://registry.npm.taobao.org/react-syntax-highlighter/download/react-syntax-highlighter-11.0.2.tgz", + "integrity": "sha1-Tj83bnUrINL1TkxVZS/WYxSeQCk=", "dev": true, "requires": { "@babel/runtime": "^7.3.1", @@ -15499,8 +22090,8 @@ }, "react-textarea-autosize": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz", - "integrity": "sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==", + "resolved": "https://registry.npm.taobao.org/react-textarea-autosize/download/react-textarea-autosize-7.1.2.tgz", + "integrity": "sha1-cP2zM++GvMpycX4l5iPpDDNuLNo=", "dev": true, "requires": { "@babel/runtime": "^7.1.2", @@ -15509,8 +22100,8 @@ }, "react-transition-group": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "resolved": "https://registry.npm.taobao.org/react-transition-group/download/react-transition-group-4.4.1.tgz", + "integrity": "sha1-Y4aPkyWjjqXulTXYKDJ/hXczRck=", "dev": true, "requires": { "@babel/runtime": "^7.5.5", @@ -15521,100 +22112,48 @@ }, "reactcss": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", - "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "resolved": "https://registry.npm.taobao.org/reactcss/download/reactcss-1.2.3.tgz", + "integrity": "sha1-wAATh15Vexzw39mjaKHD2rO1SN0=", "dev": true, "requires": { "lodash": "^4.0.1" } }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", "dev": true } } }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-7.0.1.tgz?cache=0&sync_timestamp=1609905367026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-7.0.1.tgz", + "integrity": "sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, "readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -15628,51 +22167,33 @@ "dependencies": { "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true } } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz", + "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", "dev": true, - "optional": true, "requires": { "picomatch": "^2.2.1" } }, - "recast": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", - "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/realpath-native/download/realpath-native-1.1.0.tgz", + "integrity": "sha1-IAMpT+oj+wZy8kduviL89Jii1lw=", "dev": true, "requires": { - "ast-types": "0.11.3", - "esprima": "~4.0.0", - "private": "~0.1.5", - "source-map": "~0.6.1" - }, - "dependencies": { - "ast-types": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", - "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "util.promisify": "^1.0.0" } }, "rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { @@ -15681,28 +22202,16 @@ }, "recursive-readdir": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "resolved": "https://registry.npm.taobao.org/recursive-readdir/download/recursive-readdir-2.2.2.tgz", + "integrity": "sha1-mUb7MnThYo3m42svZxSVO0hFCU8=", "dev": true, "requires": { "minimatch": "3.0.4" } }, - "redbox-react": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.6.0.tgz", - "integrity": "sha512-mLjM5eYR41yOp5YKHpd3syFeGq6B4Wj5vZr64nbLvTZW5ZLff4LYk7VE4ITpVxkZpCY6OZuqh0HiP3A3uEaCpg==", - "dev": true, - "requires": { - "error-stack-parser": "^1.3.6", - "object-assign": "^4.0.1", - "prop-types": "^15.5.4", - "sourcemapped-stacktrace": "^1.1.6" - } - }, "redent": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { @@ -15712,7 +22221,7 @@ "dependencies": { "indent-string": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { @@ -15721,7 +22230,7 @@ }, "strip-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { @@ -15732,8 +22241,8 @@ }, "refractor": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz", - "integrity": "sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==", + "resolved": "https://registry.npm.taobao.org/refractor/download/refractor-2.10.1.tgz?cache=0&sync_timestamp=1611305989694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frefractor%2Fdownload%2Frefractor-2.10.1.tgz", + "integrity": "sha1-Fmwy8RTtFv2WGQrSHVGT06/H004=", "dev": true, "requires": { "hastscript": "^5.0.0", @@ -15743,8 +22252,8 @@ "dependencies": { "prismjs": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", - "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==", + "resolved": "https://registry.npm.taobao.org/prismjs/download/prismjs-1.17.1.tgz?cache=0&sync_timestamp=1609438547304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprismjs%2Fdownload%2Fprismjs-1.17.1.tgz", + "integrity": "sha1-5mn8vUzdhzw1ECiBwzsU0NaFGb4=", "dev": true, "requires": { "clipboard": "^2.0.0" @@ -15753,15 +22262,15 @@ } }, "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", + "version": "1.4.2", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218439731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", "dev": true }, "regenerate-unicode-properties": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", "dev": true, "requires": { "regenerate": "^1.4.0" @@ -15769,14 +22278,14 @@ }, "regenerator-runtime": { "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz", + "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=", "dev": true }, "regenerator-transform": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -15784,8 +22293,8 @@ }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "resolved": "https://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz", + "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", "dev": true, "optional": true, "requires": { @@ -15794,8 +22303,8 @@ }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "dev": true, "requires": { "extend-shallow": "^3.0.2", @@ -15803,24 +22312,25 @@ } }, "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610725679574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz", + "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", + "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "regexpp": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", "dev": true }, "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413501417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz", + "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", "dev": true, "requires": { "regenerate": "^1.4.0", @@ -15833,14 +22343,14 @@ }, "regjsgen": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", "dev": true }, "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "version": "0.6.7", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.7.tgz?cache=0&sync_timestamp=1612023268678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.7.tgz", + "integrity": "sha1-wAFk4eZxPC4+5kHxcBxLeqCn+Gw=", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -15848,7 +22358,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -15856,75 +22366,76 @@ }, "regression": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/regression/download/regression-2.0.1.tgz", "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc=" }, "relateurl": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.5.tgz?cache=0&sync_timestamp=1609588610014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.5.tgz", + "integrity": "sha1-SDsaxZxmAaswp6WWpZZcq8z90KU=", "dev": true, "requires": { - "css-select": "^1.1.0", + "css-select": "^2.0.2", "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" + "htmlparser2": "^3.10.1", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, "repeat-element": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { "is-finite": "^1.0.0" } }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" - } - }, "request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -15949,165 +22460,232 @@ "uuid": "^3.3.2" }, "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", "dev": true } } }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/request-progress/download/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "request-promise": { + "version": "4.2.6", + "resolved": "https://registry.npm.taobao.org/request-promise/download/request-promise-4.2.6.tgz", + "integrity": "sha1-fn5blXhjDm9ZjjgTwPjrNCon8KI=", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.4.tgz", + "integrity": "sha1-Pu3UIjII1BmGe3jOgVFn0QWToi8=", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.9.tgz", + "integrity": "sha1-5AcSBSal79yaObKKVnm/R7nZ3Cg=", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "dev": true + }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, + "reselect": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-4.0.0.tgz", + "integrity": "sha1-8lKYMOXT0OAhQIskaiBu9OpEN/c=", + "dev": true + }, "resize-observer-polyfill": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=", "dev": true }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.20.0", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", + "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", + "dev": true, "requires": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-3.0.0.tgz", + "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", "dev": true, "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } + "resolve-from": "^5.0.0" } }, "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz", + "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", + "dev": true + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-pathname/download/resolve-pathname-3.0.0.tgz", + "integrity": "sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0=", "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^5.1.0", + "onetime": "^2.0.0", "signal-exit": "^3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } } }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz?cache=0&sync_timestamp=1613002712228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", "dev": true }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz", + "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", + "dev": true + }, "rgb-regex": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", "dev": true }, "rgba-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, "requires": { "align-text": "^0.1.1" } }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", "dev": true, "requires": { "glob": "^7.1.3" @@ -16115,33 +22693,38 @@ }, "ripemd160": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "rollup": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.25.8.tgz", - "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", - "requires": { - "chalk": "^1.1.1", - "minimist": "^1.2.0", - "source-map-support": "^0.3.2" - } + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz", + "integrity": "sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ=", + "dev": true }, "run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", "dev": true }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz", + "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "run-queue": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { @@ -16150,41 +22733,199 @@ }, "rw": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "resolved": "https://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz", "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" }, "rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "version": "6.6.6", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.6.6.tgz?cache=0&sync_timestamp=1614458661496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.6.6.tgz", + "integrity": "sha1-FNhBeqWgfF5jOZW1JeHjwN7AO3A=", "dev": true, "requires": { "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/sane/download/sane-4.1.0.tgz", + "integrity": "sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "sass": { + "version": "1.32.8", + "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.32.8.tgz", + "integrity": "sha1-8WqavY3FMK3Yg05QaHiigIwDe9w=", "dev": true, "requires": { - "ret": "~0.1.10" + "chokidar": ">=2.0.0 <4.0.0" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "sass-extract": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sass-extract/-/sass-extract-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/sass-extract/download/sass-extract-2.1.0.tgz", "integrity": "sha1-xl5soxA8vPL8oNzYGwfk5JpsxYM=", "dev": true, "requires": { @@ -16196,8 +22937,8 @@ }, "sass-extract-js": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/sass-extract-js/-/sass-extract-js-0.4.0.tgz", - "integrity": "sha512-iCeT4yARgI1EE+KkjKQEuGbNiN7UPm9ObD6dlFFFUgoRQzDHfP2faK+8aKn4fvzznSa1B+R2EFJw1YzCYUavSw==", + "resolved": "https://registry.npm.taobao.org/sass-extract-js/download/sass-extract-js-0.4.0.tgz", + "integrity": "sha1-BXjchFm5hEk2eU2brPqD1MjX2/g=", "dev": true, "requires": { "camel-case": "^3.0.0" @@ -16205,7 +22946,7 @@ "dependencies": { "camel-case": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606867359182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { @@ -16215,14 +22956,14 @@ }, "lower-case": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867304538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, "no-case": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", "dev": true, "requires": { "lower-case": "^1.1.1" @@ -16232,7 +22973,7 @@ }, "sass-extract-loader": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/sass-extract-loader/-/sass-extract-loader-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/sass-extract-loader/download/sass-extract-loader-1.1.0.tgz", "integrity": "sha1-rU5xI7glM/jLvegU40L0SryyEFQ=", "dev": true, "requires": { @@ -16241,8 +22982,8 @@ }, "sass-graph": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz", + "integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=", "dev": true, "requires": { "glob": "^7.0.0", @@ -16253,14 +22994,14 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -16268,10 +23009,16 @@ "wrap-ansi": "^5.1.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -16279,14 +23026,39 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -16296,17 +23068,28 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" } }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1613959922086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -16320,26 +23103,42 @@ "y18n": "^4.0.0", "yargs-parser": "^13.1.2" } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1613962113841&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, "sass-loader": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-9.0.2.tgz", - "integrity": "sha512-nphcum3jNI442njnrZ5wJgSNX5lfEOHOKHCLf+PrTIaleploKqAMUuT9CVKjf+lyi6c2MCGPHh1vb9nGsjnZJA==", + "version": "10.1.1", + "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-10.1.1.tgz", + "integrity": "sha1-Td1aPXY455SQZd1unHwEA39+Zj0=", "dev": true, "requires": { - "klona": "^1.1.1", + "klona": "^2.0.4", "loader-utils": "^2.0.0", - "neo-async": "^2.6.1", - "schema-utils": "^2.7.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", "semver": "^7.3.2" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, "loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", "dev": true, "requires": { "big.js": "^5.2.2", @@ -16348,34 +23147,37 @@ } }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true } } }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", "dev": true }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/saxes/download/saxes-5.0.1.tgz", + "integrity": "sha1-7rq5U/o7dgjb6U5drbFciI+maW0=", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, "scheduler": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "resolved": "https://registry.npm.taobao.org/scheduler/download/scheduler-0.19.1.tgz", + "integrity": "sha1-Tz4u0sGn1laB9MhU+oxaHMtA8ZY=", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -16383,8 +23185,8 @@ }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { "ajv": "^6.1.0", @@ -16394,7 +23196,7 @@ }, "scss-tokenizer": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { @@ -16404,7 +23206,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { @@ -16415,36 +23217,39 @@ }, "select": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", "dev": true, "optional": true }, "select-hose": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "version": "1.10.8", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz?cache=0&sync_timestamp=1600186088899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.8.tgz", + "integrity": "sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA=", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^0.10.0" } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz", + "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "send": { "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", "dev": true, "requires": { "debug": "2.6.9", @@ -16462,41 +23267,18 @@ "statuses": "~1.5.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true } } }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz", + "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -16504,7 +23286,7 @@ }, "serve-favicon": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/serve-favicon/download/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", "dev": true, "requires": { @@ -16517,21 +23299,21 @@ "dependencies": { "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz", + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", "dev": true } } }, "serve-index": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { @@ -16544,18 +23326,9 @@ "parseurl": "~1.3.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { @@ -16567,28 +23340,22 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", "dev": true } } }, "serve-static": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", "dev": true, "requires": { "encodeurl": "~1.0.2", @@ -16599,14 +23366,14 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -16617,46 +23384,31 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, "setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "setprototypeof": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", "dev": true }, "sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", + "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", "dev": true, "requires": { "inherits": "^2.0.1", @@ -16665,7 +23417,7 @@ }, "shallow-clone": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-0.1.2.tgz", "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", "dev": true, "requires": { @@ -16677,7 +23429,7 @@ "dependencies": { "kind-of": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-2.0.1.tgz", "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", "dev": true, "requires": { @@ -16686,7 +23438,7 @@ }, "lazy-cache": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-0.2.7.tgz", "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", "dev": true } @@ -16694,19 +23446,19 @@ }, "shallow-equal": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", + "resolved": "https://registry.npm.taobao.org/shallow-equal/download/shallow-equal-1.2.1.tgz", + "integrity": "sha1-TBar+lYEOqINBQMk76aJQLDaedo=", "dev": true }, "shallowequal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "resolved": "https://registry.npm.taobao.org/shallowequal/download/shallowequal-1.1.0.tgz", + "integrity": "sha1-GI1SHelbkIdAT9TctosT3wrk5/g=", "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { @@ -16715,20 +23467,20 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shell-quote": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", + "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", "dev": true }, "shelljs": { "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "resolved": "https://registry.npm.taobao.org/shelljs/download/shelljs-0.8.4.tgz", + "integrity": "sha1-3naE/ut2f4cWsyYHiooAh1iQ48I=", "dev": true, "requires": { "glob": "^7.0.0", @@ -16738,42 +23490,44 @@ "dependencies": { "interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz", + "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", "dev": true } } }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", + "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", + "dev": true, + "optional": true + }, "side-channel": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", - "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz", + "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", "dev": true, "requires": { - "es-abstract": "^1.17.0-next.1", - "object-inspect": "^1.7.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", "dev": true }, "simple-statistics": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-6.1.1.tgz", - "integrity": "sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA==" + "resolved": "https://registry.npm.taobao.org/simple-statistics/download/simple-statistics-6.1.1.tgz?cache=0&sync_timestamp=1614648551186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsimple-statistics%2Fdownload%2Fsimple-statistics-6.1.1.tgz", + "integrity": "sha1-46B5n/xJkU1vQhxaSsWF9qE+K60=" }, "simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "requires": { @@ -16782,16 +23536,16 @@ "dependencies": { "is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", "dev": true } } }, "simplebar": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz", - "integrity": "sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g==", + "resolved": "https://registry.npm.taobao.org/simplebar/download/simplebar-4.2.3.tgz", + "integrity": "sha1-2sQKztKZwXkoMp6rPV5ueV+vwQw=", "dev": true, "requires": { "can-use-dom": "^0.1.0", @@ -16804,24 +23558,49 @@ }, "simplebar-react": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz", - "integrity": "sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg==", + "resolved": "https://registry.npm.taobao.org/simplebar-react/download/simplebar-react-1.2.3.tgz", + "integrity": "sha1-vYH6mCdihHDpRw0Gyu9uzhXhyII=", "dev": true, "requires": { "prop-types": "^15.6.1", "simplebar": "^4.2.3" } }, + "sirv": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/sirv/download/sirv-1.0.11.tgz", + "integrity": "sha1-gcGaKSAgSFB9bsDYuokQ/aUutaQ=", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "dependencies": { + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz?cache=0&sync_timestamp=1613584754851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.5.2.tgz", + "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/sisteransi/download/sisteransi-1.0.5.tgz", + "integrity": "sha1-E01oEpd1ZDfMBcoBNw06elcQde0=", + "dev": true + }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", "dev": true }, "slice-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -16829,18 +23608,9 @@ "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true } @@ -16848,8 +23618,8 @@ }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "dev": true, "requires": { "base": "^0.11.1", @@ -16862,18 +23632,9 @@ "use": "^3.1.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { @@ -16882,22 +23643,16 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } @@ -16905,8 +23660,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "dev": true, "requires": { "define-property": "^1.0.0", @@ -16916,7 +23671,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { @@ -16925,8 +23680,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -16934,8 +23689,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -16943,73 +23698,60 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "dev": true, "requires": { "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "version": "0.3.21", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz", + "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=", "dev": true, "requires": { - "faye-websocket": "^0.10.0", + "faye-websocket": "^0.11.3", "uuid": "^3.4.0", - "websocket-driver": "0.6.5" + "websocket-driver": "^0.7.4" }, "dependencies": { - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "requires": { - "websocket-extensions": ">=0.1.1" - } + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true } } }, "sockjs-client": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", + "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", "dev": true, "requires": { "debug": "^3.2.5", @@ -17021,19 +23763,25 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, "sort-keys": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1609311085248&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { @@ -17042,22 +23790,20 @@ }, "source-list-map": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", "dev": true }, "source-map": { - "version": "0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", - "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", - "requires": { - "amdefine": ">=0.0.4" - } + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", "dev": true, "requires": { "atob": "^2.1.2", @@ -17068,52 +23814,31 @@ } }, "source-map-support": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", - "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dev": true, "requires": { - "source-map": "0.1.32" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz?cache=0&sync_timestamp=1612211015749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.1.tgz", + "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=", "dev": true }, - "sourcemapped-stacktrace": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.11.tgz", - "integrity": "sha512-O0pcWjJqzQFVsisPlPXuNawJHHg9N9UgpJ/aDmvi9+vnS3x1C0NhwkVFzzZ1VN0Xo+bekyweoqYvBw5ZBKiNnQ==", - "dev": true, - "requires": { - "source-map": "0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, "space-separated-tokens": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "resolved": "https://registry.npm.taobao.org/space-separated-tokens/download/space-separated-tokens-1.1.5.tgz", + "integrity": "sha1-hfMsPRDZaCAH6RdBTdxcJtGqaJk=", "dev": true }, "spdx-correct": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -17122,14 +23847,14 @@ }, "spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -17137,15 +23862,15 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "version": "3.0.7", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.7.tgz", + "integrity": "sha1-6cGKQQ5e1+EkQqVJ+9ivp2cDjWU=", "dev": true }, "spdy": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", "dev": true, "requires": { "debug": "^4.1.0", @@ -17153,12 +23878,29 @@ "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } } }, "spdy-transport": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", "dev": true, "requires": { "debug": "^4.1.0", @@ -17169,10 +23911,25 @@ "wbuf": "^1.7.3" }, "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "dev": true, "requires": { "inherits": "^2.0.3", @@ -17182,10 +23939,16 @@ } } }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/split-on-first/download/split-on-first-1.1.0.tgz", + "integrity": "sha1-9hCv7uOxK84dDDBCXnY5i3gkml8=", + "dev": true + }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "dev": true, "requires": { "extend-shallow": "^3.0.0" @@ -17193,14 +23956,14 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "dev": true, "requires": { "asn1": "~0.2.3", @@ -17216,8 +23979,8 @@ }, "ssri": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", "dev": true, "requires": { "figgy-pudding": "^3.5.1" @@ -17225,19 +23988,36 @@ }, "stable": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", "dev": true }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/stack-utils/download/stack-utils-2.0.3.tgz?cache=0&sync_timestamp=1606350209059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstack-utils%2Fdownload%2Fstack-utils-2.0.3.tgz", + "integrity": "sha1-zV8DASb/EWt4zLPAJ/4wJxO2Enc=", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz", + "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=", + "dev": true + } + } + }, "stackframe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz", - "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", "dev": true }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { @@ -17247,7 +24027,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { @@ -17258,45 +24038,62 @@ }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609653993999&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, + "std-env": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/std-env/download/std-env-2.3.0.tgz?cache=0&sync_timestamp=1613584490175&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstd-env%2Fdownload%2Fstd-env-2.3.0.tgz", + "integrity": "sha1-ZtSkpNUiQkLtjkP11lz6kJUhbu4=", + "dev": true, + "requires": { + "ci-info": "^3.0.0" + }, + "dependencies": { + "ci-info": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-3.1.1.tgz", + "integrity": "sha1-mjL87997zbbwp+HA+AmOxXiXuAo=", + "dev": true + } + } + }, "stdout-stream": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz", + "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", "dev": true, "requires": { "readable-stream": "^2.0.1" } }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, "store2": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.11.2.tgz", - "integrity": "sha512-TQMKs+C6n9idtzLpxluikmDCYiDJrTbbIGn9LFxMg0BVTu+8JZKSlXTWYRpOFKlfKD5HlDWLVpJJyNGZ2e9l1A==", + "version": "2.12.0", + "resolved": "https://registry.npm.taobao.org/store2/download/store2-2.12.0.tgz", + "integrity": "sha1-4fG34aWbYIOyWWqNBn9u6I/U088=", "dev": true }, "stream-browserify": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", + "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" } }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", - "dev": true - }, "stream-each": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -17305,8 +24102,8 @@ }, "stream-http": { "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", + "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", "dev": true, "requires": { "builtin-status-codes": "^3.0.0", @@ -17318,147 +24115,216 @@ }, "stream-shift": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", "dev": true }, "strict-uri-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/string-hash/download/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "string-length": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/string-length/download/string-length-4.0.1.tgz", + "integrity": "sha1-Spc78x73fE7bzq3WryYRmWmF+KE=", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.2.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.2.tgz", + "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/string.prototype.matchall/download/string.prototype.matchall-4.0.4.tgz?cache=0&sync_timestamp=1613943879876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.4.tgz", + "integrity": "sha1-YI8lXpPgchB/XeBm+Bot+3jPayk=", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", + "es-abstract": "^1.18.0-next.2", "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" } }, "string.prototype.padend": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz", - "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==", + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.1.2.tgz", + "integrity": "sha1-aFjKTzXFJo69XoYV4TJ9VfWe4xE=", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.2" } }, "string.prototype.padstart": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz", - "integrity": "sha512-envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw==", + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.2.tgz", + "integrity": "sha1-+bnOZr7dfAastA7ObjTGBG4aAZ0=", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "string.prototype.trim": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", - "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.18.0-next.2" } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", + "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", + "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.0" } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-4.0.0.tgz", + "integrity": "sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=", "dev": true }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true + }, "strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-3.0.0.tgz", + "integrity": "sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=", "dev": true, "requires": { "min-indent": "^1.0.0" } }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz?cache=0&sync_timestamp=1606706346538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", + "dev": true + }, + "striptags": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/striptags/download/striptags-2.2.1.tgz", + "integrity": "sha1-TEULcI1BuL85zyTEn/I0/Gqr/TI=", + "dev": true + }, + "style-inject": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/style-inject/download/style-inject-0.3.0.tgz", + "integrity": "sha1-0hxHev/skYEcyCNVgypwDSK/jdM=", "dev": true }, "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/style-loader/download/style-loader-1.3.0.tgz", + "integrity": "sha1-gotKOzt+eqWEfOe66eh0USEUJJ4=", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "style-unit": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/style-unit/download/style-unit-3.0.2.tgz", + "integrity": "sha1-YaENPfHQLj1+MXS1vN7z3tYxqSk=", + "dev": true, + "requires": { + "universal-env": "^3.0.0" } }, "stylehacks": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -17468,8 +24334,8 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { "dot-prop": "^5.2.0", @@ -17479,111 +24345,196 @@ } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "dev": true - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "stylesheet-loader": { + "version": "0.8.5", + "resolved": "https://registry.npm.taobao.org/stylesheet-loader/download/stylesheet-loader-0.8.5.tgz", + "integrity": "sha1-ruuTV7I4tRwkZ3uTY6hqMk7SK/Q=", "dev": true, "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" + "camelcase": "^3.0.0", + "chalk": "^1.1.3", + "css": "^2.2.1", + "loader-utils": "^1.2.3" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "ansi-regex": "^2.0.0" } }, - "css-what": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", - "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==", + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + } + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npm.taobao.org/stylus/download/stylus-0.54.8.tgz", + "integrity": "sha1-PaPmWWa8Vnp7BEv+DuzmU+CZ0Uc=", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "ms": "2.0.0" } }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/supports-hyperlinks/download/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha1-9mPfJSr183xdSbvX7u+p4Lnlnkc=", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/svg-parser/download/svg-parser-2.0.4.tgz", + "integrity": "sha1-/cLinhOVFzYUC3bLEiyO5mMOtrU=", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", + "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", + "dev": true + }, "symbol.prototype.description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.2.tgz", - "integrity": "sha512-2CW5SU4/Ki1cYOOHcL2cXK4rxSg5hCU1TwZ7X4euKhV9VnfqKslh7T6/UyKkubA8cq2tOmsOv7m3ZUmQslBRuw==", + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/symbol.prototype.description/download/symbol.prototype.description-1.0.4.tgz", + "integrity": "sha1-ww7dP+jAQNlBz33BWEK+Fa32aFU=", "dev": true, "requires": { - "es-abstract": "^1.17.0-next.1", - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.2" } }, "table": { "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", "dev": true, "requires": { "ajv": "^6.10.2", @@ -17594,20 +24545,26 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -17617,8 +24574,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -17628,36 +24585,14 @@ }, "tapable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tape": { - "version": "4.13.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", - "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", - "requires": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.5", - "object-inspect": "~1.7.0", - "resolve": "~1.17.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - } + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088855476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "dev": true }, "tar": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-2.2.2.tgz", + "integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=", "dev": true, "requires": { "block-stream": "*", @@ -17667,8 +24602,8 @@ }, "telejson": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz", - "integrity": "sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w==", + "resolved": "https://registry.npm.taobao.org/telejson/download/telejson-3.3.0.tgz", + "integrity": "sha1-bYFPPA0lTVxHcAharQY+JmtWrQM=", "dev": true, "requires": { "@types/is-function": "^1.0.0", @@ -17679,142 +24614,143 @@ "isobject": "^4.0.0", "lodash": "^4.17.15", "memoizerific": "^1.11.3" - } - }, - "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-4.0.0.tgz", + "integrity": "sha1-PxyRVec7GSAiqAgZus0DQ3EWl7A=", "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } } } }, - "terser-webpack-plugin": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz", - "integrity": "sha512-xzYyaHUNhzgaAdBsXxk2Yvo/x1NJdslUaussK3fdpBbvttm1iIwU+c26dj9UxJcwk2c5UWt5F55MUTIA8BE7Dg==", + "template-component-demo": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/template-component-demo/download/template-component-demo-2.0.1.tgz", + "integrity": "sha1-OHtHzYpvCsYulBo0Jcv6WFSL8Tw=", "dev": true, "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.6.12", - "webpack-sources": "^1.4.3" + "query-string": "^6.13.5", + "react-router-dom": "^5.1.2" }, "dependencies": { - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "query-string": { + "version": "6.14.1", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-6.14.1.tgz?cache=0&sync_timestamp=1614341935144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-6.14.1.tgz", + "integrity": "sha1-esLcpG2n8wlEm6D4ax/SglWwyGo=", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "dev": true + } + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/term-size/download/term-size-2.2.1.tgz", + "integrity": "sha1-KmpUhAQywvtjIP6g9BVTHpAYn1Q=", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/terminal-link/download/terminal-link-2.1.1.tgz", + "integrity": "sha1-FKZKJ6s8Dfkz6lRvulXy0HjtyZQ=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1613134655236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } } } }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/test-exclude/download/test-exclude-6.0.0.tgz", + "integrity": "sha1-BKhphmHYBepvopO2y55jrARO8V4=", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/throat/download/throat-5.0.0.tgz", + "integrity": "sha1-xRmSNYA6rRh1SmZ9ZZtecs4Wdks=", "dev": true }, "throttle-debounce": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.2.1.tgz", - "integrity": "sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA==", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-2.3.0.tgz?cache=0&sync_timestamp=1604313913894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-2.3.0.tgz", + "integrity": "sha1-/TGGXmZQIHHkEYF+JBRls+nDcuI=", + "dev": true + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/throttleit/download/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478643560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "dev": true, "requires": { "readable-stream": "~2.3.6", @@ -17823,29 +24759,20 @@ }, "thunky": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", + "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", "dev": true }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "time-fix-plugin": { + "version": "2.0.7", + "resolved": "https://registry.npm.taobao.org/time-fix-plugin/download/time-fix-plugin-2.0.7.tgz", + "integrity": "sha1-S6cK4uQM7fNNq+UF7ae3GxskT1A=", "dev": true }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793688024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", + "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -17853,57 +24780,86 @@ }, "timsort": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, "tiny-emitter": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=", "dev": true, "optional": true }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/tiny-invariant/download/tiny-invariant-1.1.0.tgz", + "integrity": "sha1-Y0xfjv3CdxS384bDXmdgmR0jCHU=", + "dev": true + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/tiny-warning/download/tiny-warning-1.0.3.tgz", + "integrity": "sha1-lKMNtFPfTGQ9D9VmBg1gqHXYR1Q=", + "dev": true + }, "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "version": "1.4.2", + "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.2.tgz", + "integrity": "sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM=", "dev": true }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, "to-arraybuffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "dev": true, "requires": { "define-property": "^2.0.2", @@ -17913,116 +24869,134 @@ } }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "toggle-selection": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/toggle-selection/download/toggle-selection-1.0.6.tgz", "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", "dev": true }, "toidentifier": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", "dev": true }, "topojson-client": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.1.tgz", - "integrity": "sha512-rfGGzyqefpxOaxvV9OTF9t+1g+WhjGEbAIuCcmKYrQkxr0nttjMMyzZsK+NhLW4cTl2g1bz2jQczPUtEshpbVQ==", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/topojson-client/download/topojson-client-3.1.0.tgz", + "integrity": "sha1-Iuix7QiiuSL+60r29Ttu8JpGe5k=", "requires": { "commander": "2" } }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/totalist/download/totalist-1.1.0.tgz", + "integrity": "sha1-pNZaPlRlF3AePlw3pHpwrJf+Vt8=", + "dev": true + }, "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.1.tgz", + "integrity": "sha1-nfT1fnOcJpMKAYGEiH9K233Kc7I=", "dev": true, "requires": { + "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/tr46/download/tr46-2.0.2.tgz", + "integrity": "sha1-Ayc1ht7xWVrgj+2zjXczzukdJHk=", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, "trim-newlines": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "true-case-path": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz", + "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", "dev": true, "requires": { "glob": "^7.1.2" } }, "ts-dedent": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz", - "integrity": "sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg==", - "dev": true - }, - "ts-pnp": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", - "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "resolved": "https://registry.npm.taobao.org/ts-dedent/download/ts-dedent-1.2.0.tgz", + "integrity": "sha1-aqIinYNxWbttY1trIzACQjuR4LA=", "dev": true }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "ts-loader": { + "version": "6.2.2", + "resolved": "https://registry.npm.taobao.org/ts-loader/download/ts-loader-6.2.2.tgz?cache=0&sync_timestamp=1612978100071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fts-loader%2Fdownload%2Fts-loader-6.2.2.tgz", + "integrity": "sha1-3/o4ebAaGh4KS4XiuEIdwN//HFg=", "dev": true, "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^4.0.0", + "semver": "^6.0.0" }, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true } } }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz", + "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", "dev": true }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.1.0.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.1.0.tgz", + "integrity": "sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=" + }, "tty-browserify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { @@ -18031,29 +25005,41 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz?cache=0&sync_timestamp=1613480890146&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-1.2.0.tgz", + "integrity": "sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A=", + "dev": true + }, "type-check": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/type-detect/download/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "dev": true + }, "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", "dev": true }, "type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", "dev": true, "requires": { "media-typer": "0.3.0", @@ -18062,109 +25048,66 @@ }, "typed-styles": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", - "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==", + "resolved": "https://registry.npm.taobao.org/typed-styles/download/typed-styles-0.0.7.tgz", + "integrity": "sha1-kzkqAIeUxFlRGf9i3eaAnbxAo9k=", "dev": true }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz?cache=0&sync_timestamp=1606167099511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypedarray-to-buffer%2Fdownload%2Ftypedarray-to-buffer-3.1.5.tgz", + "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", + "dev": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } + "is-typedarray": "^1.0.0" } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "typescript": { + "version": "3.9.9", + "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.9.9.tgz?cache=0&sync_timestamp=1614843088058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-3.9.9.tgz", + "integrity": "sha1-5pkFxUvAaB0FGL1NWHzG8tCxpnQ=", + "dev": true + }, + "uglify-js": { + "version": "3.13.0", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.13.0.tgz", + "integrity": "sha1-Zu1p9yQfM/E1MdPVHVvOvwDff2k=", + "dev": true, "optional": true }, - "uglifyjs-webpack-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz", - "integrity": "sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg==", + "unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.0.tgz?cache=0&sync_timestamp=1614658548770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.0.tgz", + "integrity": "sha1-7qy8Sv+ijps9NrXq7MxQsyUbHT8=", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "source-map": "^0.6.1", - "uglify-js": "^3.6.0", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-js": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz", - "integrity": "sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==", - "dev": true - } + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, "unfetch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz", - "integrity": "sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg==", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/unfetch/download/unfetch-4.2.0.tgz", + "integrity": "sha1-fiGw7302PY2a8PuSmlVV9u+Xo74=", "dev": true }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", "dev": true }, "unicode-match-property-ecmascript": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", "dev": true, "requires": { "unicode-canonical-property-names-ecmascript": "^1.0.4", @@ -18173,20 +25116,20 @@ }, "unicode-match-property-value-ecmascript": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", "dev": true }, "unicode-property-aliases-ecmascript": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", "dev": true }, "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", "dev": true, "requires": { "arr-union": "^3.1.0", @@ -18197,20 +25140,20 @@ }, "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "uniqs": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "dev": true, "requires": { "unique-slug": "^2.0.0" @@ -18218,40 +25161,40 @@ }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", "dev": true, "requires": { "imurmurhash": "^0.1.4" } }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "universal-env": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/universal-env/download/universal-env-3.2.2.tgz", + "integrity": "sha1-inc/opy8PsCtAHM/NQPPWmp0Dyg=", "dev": true }, "universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", "dev": true }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unquote": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", "dev": true }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { @@ -18261,7 +25204,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { @@ -18272,7 +25215,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { @@ -18283,40 +25226,34 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, "upath": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1604768637331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", + "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", "dev": true }, "upper-case": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&sync_timestamp=1606859943902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237586670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", "dev": true, "requires": { "punycode": "^2.1.0" @@ -18324,13 +25261,13 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { @@ -18340,16 +25277,22 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/url-join/download/url-join-4.0.1.tgz", + "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=", + "dev": true + }, "url-loader": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252594253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", + "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", "dev": true, "requires": { "loader-utils": "^1.2.3", @@ -18358,28 +25301,28 @@ }, "dependencies": { "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz?cache=0&sync_timestamp=1613584754851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.5.2.tgz", + "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", "dev": true }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } } } }, "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.5.1.tgz?cache=0&sync_timestamp=1613659698159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.5.1.tgz", + "integrity": "sha1-1fqYkK+KXh8nSiyYN2UQ9kJfbjs=", "dev": true, "requires": { "querystringify": "^2.1.1", @@ -18388,36 +25331,44 @@ }, "use": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", "dev": true }, "use-callback-ref": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.4.tgz", - "integrity": "sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==", + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/use-callback-ref/download/use-callback-ref-1.2.5.tgz?cache=0&sync_timestamp=1610846067534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse-callback-ref%2Fdownload%2Fuse-callback-ref-1.2.5.tgz", + "integrity": "sha1-YRXtJCz7rtWRVJnAqYQsopEvOKU=", "dev": true }, "use-sidecar": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.3.tgz", - "integrity": "sha512-ygJwGUBeQfWgDls7uTrlEDzJUUR67L8Rm14v/KfFtYCdHhtjHZx1Krb3DIQl3/Q5dJGfXLEQ02RY8BdNBv87SQ==", + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/use-sidecar/download/use-sidecar-1.0.4.tgz", + "integrity": "sha1-ODmMNyNyf5+SS+0jQ9+j22qq7kY=", "dev": true, "requires": { "detect-node-es": "^1.0.0", "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887438976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "dev": true + } } }, "user-home": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/user-home/download/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", "dev": true }, "util": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz", + "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", "dev": true, "requires": { "inherits": "2.0.3" @@ -18425,55 +25376,168 @@ "dependencies": { "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true } } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159858516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/utils/download/utils-0.3.1.tgz", + "integrity": "sha1-BO+utCkKZwN6TN39L/VhRMw6RYE=", + "dev": true, + "requires": { + "any": "^1.0.0", + "arr-diff": "^1.1.0", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "arr-union": "^3.0.0", + "array-each": "^0.1.1", + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "center-align": "^0.1.1", + "export-dirs": "^0.2.4", + "export-files": "^2.1.0", + "for-in": "^0.1.4", + "for-own": "^0.1.3", + "has-values": "^0.1.3", + "is-number": "^2.0.2", + "is-plain-object": "^2.0.1", + "kind-of": "^2.0.1", + "make-iterator": "^0.2.0", + "object.defaults": "^0.3.0", + "object.filter": "^0.3.0", + "object.omit": "^2.0.0", + "object.pick": "^1.1.1", + "object.reduce": "^0.1.7", + "right-align": "^0.1.3", + "striptags": "^2.0.3", + "word-wrap": "^1.1.0" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "dev": true, + "requires": { + "is-buffer": "^1.0.2" + } + } + } + }, "utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "version": "8.3.2", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-8.3.2.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-8.3.2.tgz", + "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", + "dev": true, + "optional": true }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.2.0.tgz?cache=0&sync_timestamp=1603909372873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.2.0.tgz", + "integrity": "sha1-lHHvo++RKNL3xqfKOcTda1BVsTI=", "dev": true }, + "v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/v8-to-istanbul/download/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha1-W5XO9FwPgyF+x5+Px+4ci0hq7gc=", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, "v8flags": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/v8flags/download/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { @@ -18482,39 +25546,35 @@ }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/value-equal/download/value-equal-1.0.1.tgz", + "integrity": "sha1-Hgt5THNMXAyt4XnEN9NW2TGjTWw=", + "dev": true + }, "vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "vendors": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz", + "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", "dev": true }, - "venn.js": { - "version": "0.2.20", - "resolved": "https://registry.npmjs.org/venn.js/-/venn.js-0.2.20.tgz", - "integrity": "sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w==", - "requires": { - "d3-selection": "^1.0.2", - "d3-transition": "^1.0.1", - "fmin": "0.0.2" - } - }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { @@ -18523,146 +25583,64 @@ "extsprintf": "^1.2.0" } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz", + "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", "dev": true, "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" + "browser-process-hrtime": "^1.0.0" } }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/w3c-xmlserializer/download/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha1-PnEEoFt1FGzGD1ZDgLf2g6zxAgo=", "dev": true, "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "graceful-fs": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", - "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", - "dev": true, - "requires": { - "natives": "^1.1.3" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - } - } + "xml-name-validator": "^3.0.0" } }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { - "source-map": "^0.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "makeerror": "1.0.x" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "warning": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "version": "1.7.5", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz", + "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", "dev": true, "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" + "watchpack-chokidar2": "^2.0.1" } }, "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", "dev": true, "optional": true, "requires": { @@ -18671,8 +25649,8 @@ "dependencies": { "anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", "dev": true, "optional": true, "requires": { @@ -18682,7 +25660,7 @@ "dependencies": { "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "optional": true, @@ -18694,15 +25672,46 @@ }, "binary-extensions": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", "dev": true, "optional": true }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "chokidar": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", "dev": true, "optional": true, "requires": { @@ -18720,10 +25729,35 @@ "upath": "^1.1.1" } }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "fsevents": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", "dev": true, "optional": true, "requires": { @@ -18733,7 +25767,7 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "optional": true, @@ -18744,7 +25778,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "optional": true, @@ -18756,7 +25790,7 @@ }, "is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "optional": true, @@ -18764,17 +25798,32 @@ "binary-extensions": "^1.0.0" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "optional": true + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "optional": true, "requires": { @@ -18795,8 +25844,8 @@ }, "readdirp": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "optional": true, "requires": { @@ -18804,22 +25853,39 @@ "micromatch": "^3.1.10", "readable-stream": "^2.0.2" } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, "wbuf": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", "dev": true, "requires": { "minimalistic-assert": "^1.0.0" } }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-6.1.0.tgz", + "integrity": "sha1-kRG01+qArNQPUnDWZmIa+ni2lRQ=", + "dev": true + }, "webpack": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", - "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "version": "4.46.0", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1614798501683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz", + "integrity": "sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI=", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", @@ -18830,7 +25896,7 @@ "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", + "enhanced-resolve": "^4.5.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", @@ -18847,179 +25913,88 @@ "webpack-sources": "^1.4.1" }, "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1611561113015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.2.tgz", + "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", "dev": true }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { - "arr-diff": "^4.0.0", + "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "terser-webpack-plugin": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", - "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - } - } - }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-extendable": "^0.1.0" } } } }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "locate-path": "^3.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "findup-sync": { + "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -19037,59 +26012,135 @@ "to-regex": "^3.0.2" } }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-4.4.0.tgz", + "integrity": "sha1-dAExBufisHy9ZPOlroR/foFIAsc=", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.0.5", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-8.0.5.tgz?cache=0&sync_timestamp=1611561113015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-8.0.5.tgz", + "integrity": "sha1-o7+4cqdKan9mG8gbmEnZysEmAbc=", + "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "acorn-walk": { + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-8.0.2.tgz", + "integrity": "sha1-1GMr/GP9k9DxX9BeoOmE/9P1qMM=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "color-convert": "^2.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-6.2.1.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-6.2.1.tgz", + "integrity": "sha1-B5LraC37wyWZm7K4T93duhEKxzw=", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-6.0.0.tgz?cache=0&sync_timestamp=1605523115814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-6.0.0.tgz", + "integrity": "sha1-BlNn/VDCOcBnHLy61b4+LusQ5GI=", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz", + "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "dependencies": { + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "dev": true + } + } + }, "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz?cache=0&sync_timestamp=1610718861115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.3.tgz", + "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", "dev": true, "requires": { "memory-fs": "^0.4.1", @@ -19100,17 +26151,17 @@ }, "dependencies": { "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz?cache=0&sync_timestamp=1613584754851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.5.2.tgz", + "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", "dev": true } } }, "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "version": "3.11.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz?cache=0&sync_timestamp=1610553035203&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.2.tgz", + "integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -19133,11 +26184,11 @@ "p-retry": "^3.0.1", "portfinder": "^1.0.26", "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", + "selfsigned": "^1.10.8", "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", @@ -19149,15 +26200,15 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", "dev": true, "requires": { "micromatch": "^3.1.4", @@ -19166,7 +26217,7 @@ "dependencies": { "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { @@ -19177,14 +26228,43 @@ }, "binary-extensions": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", "dev": true }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "chokidar": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -19203,8 +26283,8 @@ }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -19212,10 +26292,16 @@ "wrap-ansi": "^5.1.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -19223,25 +26309,48 @@ } } }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "ms": "2.1.2" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -19249,8 +26358,8 @@ }, "fsevents": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1612537044236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", "dev": true, "optional": true, "requires": { @@ -19260,7 +26369,7 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { @@ -19270,7 +26379,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { @@ -19279,36 +26388,19 @@ } } }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, "is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { @@ -19317,44 +26409,44 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "is-path-inside": "^2.1.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "path-is-inside": "^1.0.2" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -19372,16 +26464,40 @@ "to-regex": "^3.0.2" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, "readdirp": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -19389,21 +26505,129 @@ "readable-stream": "^2.0.2" } }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "sockjs-client": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.5.0.tgz", + "integrity": "sha1-L4/11LZZ4NCS96ugt8OGvSqiCt0=", + "dev": true, + "requires": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.4.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -19411,19 +26635,19 @@ } } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "async-limiter": "~1.0.0" } }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1613959922086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -19437,73 +26661,258 @@ "y18n": "^4.0.0", "yargs-parser": "^13.1.2" } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1613962113841&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, + "webpack-filter-warnings-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/webpack-filter-warnings-plugin/download/webpack-filter-warnings-plugin-1.2.1.tgz", + "integrity": "sha1-3GFSHPT5tKM2+8iRCKda4dqVHNs=", + "dev": true + }, "webpack-hot-middleware": { "version": "2.25.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", - "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==", + "resolved": "https://registry.npm.taobao.org/webpack-hot-middleware/download/webpack-hot-middleware-2.25.0.tgz", + "integrity": "sha1-RSigpj7Df4+O9WXPnlNNV9Cf5wY=", "dev": true, "requires": { "ansi-html": "0.0.7", "html-entities": "^1.2.0", "querystring": "^0.2.0", "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, "webpack-log": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", "dev": true, "requires": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + } } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "webpack-node-externals": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/webpack-node-externals/download/webpack-node-externals-2.5.2.tgz", + "integrity": "sha1-F44BeiT+xgFbyeZyx3lYpq+shh0=", + "dev": true + }, + "webpack-simple-progress-plugin": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/webpack-simple-progress-plugin/download/webpack-simple-progress-plugin-0.0.4.tgz", + "integrity": "sha1-xIKRN0KctnPfxqYaJiuVXDXMe6I=", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "chalk": "^1.1.3", + "object-assign": "^4.1.0", + "progress": "^1.1.8" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } } }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965333971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, "webpack-virtual-modules": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", - "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "resolved": "https://registry.npm.taobao.org/webpack-virtual-modules/download/webpack-virtual-modules-0.2.2.tgz", + "integrity": "sha1-IIY9w8trshBHKf/5UfvhSxi9Apk=", "dev": true, "requires": { "debug": "^3.0.0" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true + } + } + }, + "webpackbar": { + "version": "5.0.0-3", + "resolved": "https://registry.npm.taobao.org/webpackbar/download/webpackbar-5.0.0-3.tgz?cache=0&sync_timestamp=1604357282892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpackbar%2Fdownload%2Fwebpackbar-5.0.0-3.tgz", + "integrity": "sha1-9Plsj7EwAbK7E0glLbTJgKuTqqw=", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.1.0", + "consola": "^2.15.0", + "figures": "^3.2.0", + "pretty-time": "^1.1.0", + "std-env": "^2.2.1", + "text-table": "^0.2.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, "websocket-driver": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz", + "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=", "dev": true, "requires": { "http-parser-js": ">=0.5.1", @@ -19513,108 +26922,136 @@ }, "websocket-extensions": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz", + "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=", "dev": true }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-8.4.0.tgz", + "integrity": "sha1-UPuWFbBUaVkdKyvW367SlC7XKDc=", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "dev": true, "requires": { "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.1.tgz", + "integrity": "sha1-y+j4OOvpG6JHG7aentvaZ6taXsE=", + "dev": true, + "requires": { + "is-bigint": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.2" + } + }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "dev": true, "requires": { "string-width": "^1.0.2 || 2" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1614522217971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^3.0.0" } } } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/widest-line/download/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } }, "wolfy87-eventemitter": { "version": "5.2.9", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz", - "integrity": "sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==" + "resolved": "https://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.2.9.tgz", + "integrity": "sha1-6Hn3cLMPu2USqK+7Mww4hZEJnCo=" }, "word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true }, "worker-farm": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", "dev": true, "requires": { "errno": "~0.1.7" @@ -19622,142 +27059,165 @@ }, "worker-rpc": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "resolved": "https://registry.npm.taobao.org/worker-rpc/download/worker-rpc-0.1.1.tgz", + "integrity": "sha1-y1Zb1tcHGo8WZgaGBR6WmtMvVNU=", "dev": true, "requires": { "microevent.ts": "~0.1.1" } }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1611327117754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "write": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", + "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, + "ws": { + "version": "7.4.3", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-7.4.3.tgz", + "integrity": "sha1-H5ZD3jSlQ7jtsSS9y8RXrlWm5c0=", + "dev": true + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz", + "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz", + "integrity": "sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=", + "dev": true + }, "xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.1.tgz?cache=0&sync_timestamp=1609798736426&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.1.tgz", + "integrity": "sha1-jbK4PDHF11CZu4kLI/MJSJHiR9Q=", "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", "dev": true }, "yaml": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "resolved": "https://registry.npm.taobao.org/yaml/download/yaml-1.10.0.tgz", + "integrity": "sha1-O1k63ZRIdgd9TWg/7gEIG9n/8x4=", "dev": true }, "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1613959922086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1613962113841&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "version": "14.0.0", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-14.0.0.tgz?cache=0&sync_timestamp=1613962113841&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-14.0.0.tgz", + "integrity": "sha1-QuJXd7BnGOyZ6sLDqYrT3nO2gY8=", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/yocto-queue/download/yocto-queue-0.1.0.tgz?cache=0&sync_timestamp=1606290469373&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyocto-queue%2Fdownload%2Fyocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true } } } diff --git a/package.json b/package.json index 5960552b..0989a72f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,14 @@ { "name": "@alicloud/cloud-charts", - "version": "0.1.10", + "version": "1.0.0", + "main": "lib/index.js", + "module": "es/index.js", + "types": "lib/index.d.ts", + "sideEffects": [ + "build/*", + "*.scss", + "*.css" + ], "keywords": [ "charts", "g2", @@ -11,86 +19,65 @@ "url": "https://github.com/alibaba/cloud-charts" }, "license": "MIT", - "main": "./build/index.js", - "module": "./lib/index.js", - "sideEffects": [ - "build/*", - "*.scss", - "*.css" - ], "scripts": { - "start": "./node_modules/.bin/gulp start", - "build": "./node_modules/.bin/gulp build", - "online": "./node_modules/.bin/gulp online", - "lint": "./node_modules/.bin/eslint --fix ./", + "start": "npm run storybook", + "online": "build-scripts start --skip-demo --online", + "build": "build-scripts build --skip-demo", + "analyzer": "build-scripts build --skip-demo --analyzer", + "prepublishOnly": "npm run build", + "lint": "eslint --cache --ext .js,.jsx ./", "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook", - "prepublishOnly": "npx -p gulp@3.9.1 gulp build" + "build-storybook": "build-storybook" }, "files": [ "package.json", "README.md", "CHANGELOG.md", - "index.d.ts", - "lib", - "components", "font", - "build" + "lib", + "es/", + "build/" ], "dependencies": { - "@antv/data-set": "^0.9.4", - "@antv/g2": "3.5.17", - "@antv/g2-brush": "^0.0.2", + "@antv/data-set": "^0.11.5", + "@antv/g2": "^4.1.1", + "@types/classnames": "^2.2.10", + "@types/lodash": "^4.14.161", + "@types/prop-types": "^15.7.3", + "@types/react": "15.6 || 16", + "@types/react-dom": "15.6 || 16", "classnames": "^2.2.5", + "lodash": "^4.17.0", "prop-types": "^15.5.10", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "wolfy87-eventemitter": "^5.2.8" + "react": "15.6 || 16", + "react-dom": "15.6 || 16" }, "devDependencies": { + "@alib/build-scripts": "^0.1.3", "@storybook/addon-actions": "^5.2.6", "@storybook/addon-knobs": "^5.2.6", "@storybook/addon-links": "^5.2.6", "@storybook/addons": "^5.2.6", "@storybook/react": "^5.2.6", + "awesome-typescript-loader": "^5.2.1", "babel-cli": "^6.24.1", "babel-core": "^6.25.0", "babel-eslint": "^7.2.3", "babel-loader": "^7.1.1", + "babel-plugin-transform-define": "^2.0.0", "babel-plugin-transform-object-assign": "^6.22.0", "babel-plugin-transform-proto-to-assign": "^6.26.0", "babel-plugin-transform-react-es6-displayname": "^1.0.0-beta1.4", + "babel-plugin-transform-rename-import": "^2.3.0", "babel-preset-env": "^1.7.0", "babel-preset-react": "^6.24.1", "babel-preset-stage-0": "^6.24.1", - "css-loader": "^3.0.0", - "del": "^2.2.0", - "eslint": "^5.9.0", - "eslint-config-ali": "^5.0.1", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-react": "^7.4.0", - "fallback-port": "^0.1.7", - "file-loader": "^3.0.1", - "glob": "^7.0.3", - "gulp": "~3.9.1", - "gulp-babel": "~6.1.2", - "gulp-rename": "^1.2.2", - "gulp-replace": "^1.0.0", - "gulp-sass": "^3.2.1", - "gulp-util": "~3.0.7", - "lodash": "^4.17.11", - "mini-css-extract-plugin": "^0.7.0", - "optimize-css-assets-webpack-plugin": "^5.0.1", - "react-hot-loader": "^3.0.0-beta.7", + "build-plugin-component": "^1.0.3", + "eslint": "^6.0.1", "sass-extract": "^2.1.0", "sass-extract-js": "^0.4.0", "sass-extract-loader": "^1.1.0", - "sass-loader": "^9.0.2", - "style-loader": "^0.23.1", - "uglifyjs-webpack-plugin": "^2.1.3", - "webpack": "^4.34.0", - "webpack-cli": "^3.3.4", - "webpack-dev-server": "^3.7.1" + "webpack-bundle-analyzer": "^4.4.0" }, - "author": "maplor" + "author": "maplor@163.com" } diff --git a/components/Util.js b/src/Util.ts similarity index 88% rename from components/Util.js rename to src/Util.ts index 0cc9ae40..c13af5b4 100644 --- a/components/Util.js +++ b/src/Util.ts @@ -1,8 +1,8 @@ -import G2 from '@antv/g2'; +// import { Util } from '@antv/g2'; import g2Connect from './common/g2Connect'; import * as common from './common/common'; -export default Object.assign({}, G2.Util, { +export default { Connect: g2Connect, // 图表联动组件 propertyMap: common.propertyMap, propertyAssign: common.propertyAssign, @@ -16,4 +16,4 @@ export default Object.assign({}, G2.Util, { isEqual: common.isEqual, isEqualWith: common.isEqualWith, merge: common.merge, -}); +}; diff --git a/components/Wbar/gui.schema.json b/src/Wbar/gui.schema.json similarity index 100% rename from components/Wbar/gui.schema.json rename to src/Wbar/gui.schema.json diff --git a/components/Wminiline/index.scss b/src/Wbar/index.scss similarity index 100% rename from components/Wminiline/index.scss rename to src/Wbar/index.scss diff --git a/src/Wbar/index.tsx b/src/Wbar/index.tsx new file mode 100644 index 00000000..74aafae7 --- /dev/null +++ b/src/Wbar/index.tsx @@ -0,0 +1,282 @@ +'use strict'; + +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from "../common/Base"; +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import legendFilter from '../common/legendFilter'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; +import label, { LabelConfig } from "../common/label"; +import geomSize, { GeomSizeConfig } from '../common/geomSize'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import rectZoom, { ZoomConfig } from "../common/rectZoom"; +import rectScrollbar, { ScrollbarConfig } from '../common/rectScrollbar'; +import './index.scss'; + +interface WbarConfig extends BaseChartConfig, ZoomConfig, ScrollbarConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false; + yAxis?: Types.ScaleOption & YAxisConfig | false; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + label?: LabelConfig | boolean; + column?: boolean; + dodgeStack?: boolean; + stack?: boolean; + stackReverse?: boolean; + marginRatio?: number; + grid?: boolean; + facet?: boolean; + size?: GeomSizeConfig; + polar?: boolean; + innerRadius?: number; + geomStyle?: GeomStyleConfig; + minSize?: number; + maxSize?: number; +} + +export class Bar extends Base { + chartName = 'G2Bar'; + getDefaultConfig(): WbarConfig { + return { + colors: themes.category_12, + // padding: ['auto', 'auto', 'auto', 'auto'], + xAxis: { + type: 'cat', + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + autoRotate: false, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + legend: { + align: 'left', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + column: true, + dodgeStack: false, + stack: false, + stackReverse: true, + marginRatio: 0, + grid: false, + zoom: false, + facet: false, + size: null, + label: false, + polar: false, + innerRadius: 0, + }; + } + init(chart: Chart, config: WbarConfig, data: any) { + // 设置数据度量 + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + // type: 'cat', + }, config.xAxis), + y: propertyAssign(propertyMap.axis, { + nice: true, + type: 'linear', + tickCount: 5, + }, config.yAxis), + type: { + type: 'cat', + sync: true, + }, + facet: { + sync: true, + }, + }; + + chart.scale(defs); + chart.data(data); + + // 设置单个Y轴 + if (!config.facet) { + rectYAxis(this, chart, config); + } + + // 设置X轴 + rectXAxis(this, chart, config); + + // 设置图例 + rectLegend(this, chart, config, null, false, 'type'); + + legendFilter(this, chart); + + // tooltip + rectTooltip(this, chart, config, {}, null, { + showCrosshairs: false, + showMarkers: false + }); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + // 设置坐标系:极坐标/直角坐标 + const chartCoord = config.polar + ? chart.coordinate('polar', { + innerRadius: config.innerRadius || 0, + }) + : chart.coordinate(); + + // 横向柱状图 + if (!config.column) { + chartCoord.transpose(); + } + + // // 玉玦图,需要手动添加 数据标记 + // if (config.polar && !config.column && config.dataType !== 'g2') { + // this.rawData[0].data.forEach((d: any, i: number) => { + // let x = d.x; + // if (Array.isArray(d)) { + // x = d[0]; + // } else if ( + // config.xAxis && + // config.xAxis.categories && + // config.xAxis.categories[i] + // ) { + // x = config.xAxis.categories[i]; + // // const y = isNaN(d) ? d[0] : d; + // } + // + // chart.annotation().text({ + // position: [x, 0], + // // content: `${x}`, + // style: { + // fill: themes['widgets-axis-label'], + // textAlign: 'start', + // }, + // }); + // }); + // } + + if (config.facet) { + const facetConfig: { type: "mirror" | "rect" | "list" | "matrix" | "circle" | "tree", transpose: boolean, padding: number[] } = + typeof config.facet === 'object' + ? config.facet + : { + type: 'mirror', + transpose: false, + padding: [20, 0, 20, 0], + }; + const self = this; + chart.facet(facetConfig.type, { + fields: ['facet'], + transpose: facetConfig.transpose, + padding: facetConfig.padding, + rowTitle: { + offsetX: 15, + style: { + fontSize: themes['widgets-font-size-1'], + textAlign: 'center', + rotate: 90, + fill: themes['widgets-axis-label'], + }, + }, + eachView: function (view: any, facet: any) { + let yAxisCustomConfig = null; + + // 为 labelFormatter 的第二个参数添加分面信息 + if (config.yAxis && config.yAxis.visible !== false) { + const { labelFormatter } = config.yAxis || {}; + if (labelFormatter) { + yAxisCustomConfig = { + label: { + formatter: (...args: any[]) => { + args[1] = Object.assign( + { + facet: facet.colValue || facet.rowValue, + }, + args[1] + ); + return labelFormatter(); + }, + }, + }; + } + } + + rectYAxis(self, view, config, 'y', yAxisCustomConfig); + + // Tooltip 背景区域 + view.interaction('active-region'); + + drawBar(view, config, config.colors); + }, + }); + } else { + // Tooltip 背景区域 + chart.interaction('active-region'); + + drawBar(chart, config, config.colors); + } + + rectZoom(chart, config, this.language); + + rectScrollbar(chart, config); + } +} + +const Wbar: typeof Bar = errorWrap(Bar); + +export default Wbar; + +// export default errorWrap(Wbar); + +function drawBar(chart: Chart, config: WbarConfig, colors: Colors, field = 'type') { + const { stack, stackReverse, marginRatio, dodgeStack, size, minSize, maxSize } = config; + const geomConfig = { + minColumnWidth: minSize || null, + maxColumnWidth: maxSize || null, + }; + let geom = chart.interval(geomConfig).position(['x', 'y']); + if (dodgeStack) { + geom = geom.color(field, colors).adjust([ + { + type: 'dodge', + marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 + dodgeBy: 'dodge', + }, + { + type: 'stack', + reverseOrder: !stackReverse, // 层叠顺序倒序 + }, + ]); + } else if (stack) { + // 堆叠 + geom = geom.color(field, colors).adjust([ + { + type: 'stack', + reverseOrder: !stackReverse, // 层叠顺序倒序 + }, + ]); + } else { + // 分组 + geom = geom.color(field, colors).adjust([ + { + type: 'dodge', + marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 + }, + ]); + } + + geomSize(geom, size, null, 'y', 'x*y*type*facet*extra'); + + geomStyle(geom, config.geomStyle, {}, 'x*y*type*facet*extra'); + + label(geom, config); +} diff --git a/components/Wbox/gui.schema.json b/src/Wbox/gui.schema.json similarity index 100% rename from components/Wbox/gui.schema.json rename to src/Wbox/gui.schema.json diff --git a/components/Wscatter/index.scss b/src/Wbox/index.scss similarity index 100% rename from components/Wscatter/index.scss rename to src/Wbox/index.scss diff --git a/src/Wbox/index.tsx b/src/Wbox/index.tsx new file mode 100644 index 00000000..20e831f7 --- /dev/null +++ b/src/Wbox/index.tsx @@ -0,0 +1,139 @@ +'use strict'; + +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from "../common/Base"; +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import legendFilter from '../common/legendFilter'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; +// import { LabelConfig } from "../common/label"; +import geomSize, { GeomSizeConfig } from '../common/geomSize'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import './index.scss'; + +interface WboxConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false; + yAxis?: Types.ScaleOption & YAxisConfig | false; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + // label?: LabelConfig | boolean; + dodge?: boolean; + marginRatio?: number; + grid?: boolean; + size?: GeomSizeConfig; + geomStyle?: GeomStyleConfig; +} + +export class Box extends Base { + + chartName = 'G2Box'; + + getDefaultConfig():WboxConfig { + return { + colors: themes.category_12, + // padding: ['auto', 'auto', 'auto', 'auto'], + xAxis: { + type: 'cat', + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + autoRotate: false, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + legend: { + align: 'left', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + dodge: true, + marginRatio: 0, + grid: false, + // zoom: false, + size: null, + // label: false, + }; + } + + init(chart: Chart, config: WboxConfig, data: any) { + + // 设置数据度量 + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + type: 'cat', + }, config.xAxis), + y: propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + nice: true, + }, config.yAxis), + type: { + type: 'cat', + }, + }; + + chart.scale(defs); + chart.data(data); + + // 设置单个Y轴 + rectYAxis(this, chart, config); + + // 设置X轴 + rectXAxis(this, chart, config); + + // 设置图例 + rectLegend(this, chart, config, null, false, 'type'); + + legendFilter(this, chart); + + // tooltip + rectTooltip(this, chart, config, {}, null, { + showCrosshairs: false, + showMarkers: false, + }); + chart.interaction('active-region'); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + drawBox(chart, config, config.colors); + + } +} + +const Wbox: typeof Box = errorWrap(Box); +export default Wbox; + +function drawBox(chart: Chart, config: WboxConfig, colors: Colors, field = 'type') { + const { dodge, marginRatio, size } = config; + + const geom = chart.schema().position(['x', 'y']).shape('box').color(field, colors); + + if (dodge !== false) { + geom.adjust([{ + type: 'dodge', + marginRatio: marginRatio || 0.5, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 + }]); + } + + geomSize(geom, size, null, 'y', 'x*y*type*extra'); + + geomStyle(geom, config.geomStyle, { + lineWidth: 2 + }, 'x*y*type*extra'); + + // label(geom, config); +} diff --git a/src/Wcandlestick/index.tsx b/src/Wcandlestick/index.tsx new file mode 100644 index 00000000..4bbd0ea9 --- /dev/null +++ b/src/Wcandlestick/index.tsx @@ -0,0 +1,221 @@ +'use strict'; + +import { Chart, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base from "../common/Base"; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; +import { LabelConfig } from "../common/label"; +import geomSize, { GeomSizeConfig } from '../common/geomSize'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import errorWrap from "../common/errorWrap"; + +function computeDataType(data: any) { + if (Array.isArray(data)) { + data.forEach((d) => { + if (Array.isArray(d.y)) { + const [start, end] = d.y; + d.trend = start <= end ? 'up' : 'down'; + } + }) + } + return data; +} + +interface labelAlias { + start?: string; + end?: string; + min?: string; + max?: string; +} + +interface WcandlestickConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false; + yAxis?: Types.ScaleOption & YAxisConfig | false; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig & { labelAlias?: labelAlias } | false; + guide?: GuideConfig; + label?: LabelConfig | boolean; + grid?: boolean; + size: GeomSizeConfig; + geomStyle?: GeomStyleConfig; +} + +export class Candlestick extends Base { + // 原 g2Factory 的第一个参数,改为类的属性。 + chartName = 'G2Wcandlestick'; + // convertData: false, + getDefaultConfig(): WcandlestickConfig { + return { + colors: [themes['widgets-color-red'], themes['widgets-color-green']], + // padding: ['auto', 'auto', 'auto', 'auto'], + xAxis: { + type: 'time', + mask: 'YYYY-MM-DD', + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + autoRotate: false, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + legend: { + // align: 'left', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + showTitle: true, + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + grid: false, + // zoom: false, + size: null, + // label: false, + }; + } + init(chart: Chart, config: WcandlestickConfig, data: any) { + + // 设置数据度量 + const defs: Record = { + x: propertyAssign( + propertyMap.axis, + { + type: 'time', + }, + config.xAxis + ), + y: propertyAssign( + propertyMap.axis, + { + type: 'linear', + tickCount: 5, + nice: true, + }, + config.yAxis + ), + type: { + type: 'cat', + }, + trend: { + type: 'cat', + } + }; + + + chart.scale(defs); + chart.data(computeDataType(data)); + + // 设置单个Y轴 + rectYAxis(this, chart, config); + + // 设置X轴 + rectXAxis(this, chart, config); + + chart.legend('x', false); + chart.legend('y', false); + // 设置图例 + rectLegend(this, chart, config, { + // useHtml: false, + }, true, 'trend'); + + // tooltip + const { showTitle, showColon } = config.tooltip || {}; + rectTooltip( + this, + chart, + config, + {}, + null, + { + showTitle: true, + showCrosshairs: false, + showMarkers: false, + itemTpl: `
    + ${ + showTitle + ? '
    {group}
    ' + : '' + } +
    {labelStart}${ + showColon ? ':' : '' + }{start}
    {labelEnd}${ + showColon ? ':' : '' + }{end}
    {labelMax}${ + showColon ? ':' : '' + }{max}
    {labelMin}${ + showColon ? ':' : '' + }{min}
    +
    ` + } + ); + chart.interaction('active-region'); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + drawCandle(chart, config, config.colors); + + } + changeData(chart: Chart, config: WcandlestickConfig, data: ChartData) { + chart.changeData(computeDataType(data)); + } +} + +const Wcandlestick: typeof Candlestick = errorWrap(Candlestick); + +export default Wcandlestick; + +function drawCandle(chart: Chart, config: WcandlestickConfig, colors: Colors) { + // 分组 + const geom = chart + .schema() + .position(['x', 'y']) + .shape('candle') + .color('trend', trend => { + if (Array.isArray(colors)) { + const [colorUp, colorDown] = colors; + return trend === 'up' ? colorUp : colorDown; + } + if (typeof colors === 'function') { + return colors(trend); + } + return colors; + }) + // .tooltip('type*start*end*max*min', (group, start, end, max, min) => { + .tooltip('y*type', (y, group) => { + const { labelAlias = {} } = config.tooltip || {}; + const { + start: labelStart, + end: labelEnd, + max: labelMax, + min: labelMin, + } = labelAlias; + + const [start, end, max, min] = y; + + return { + group, + start, + end, + max, + min, + labelStart: labelStart || 'start', + labelEnd: labelEnd || 'end', + labelMax: labelMax || 'max', + labelMin: labelMin || 'min', + }; + }); + + geomSize(geom, config.size, null, 'y', 'x*y*trend*extra'); + + geomStyle(geom, config.geomStyle); +} diff --git a/components/Wcircle/index.scss b/src/Wcircle/index.scss similarity index 100% rename from components/Wcircle/index.scss rename to src/Wcircle/index.scss diff --git a/components/Wcircle/index.jsx b/src/Wcircle/index.tsx similarity index 80% rename from components/Wcircle/index.jsx rename to src/Wcircle/index.tsx index d8081777..e1c989a7 100644 --- a/components/Wcircle/index.jsx +++ b/src/Wcircle/index.tsx @@ -1,16 +1,37 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; import Warrow from '../common/arrow'; import { getStatusColorName } from '../common/common'; import chartLog from "../common/log"; +import { Status, Trend } from '../common/types'; +import { FullCrossName, PrefixName } from '../constants'; import './index.scss'; -const prefix = 'cloud-wcircle'; +const prefix = `${PrefixName}-wcircle`; + +interface WcircleProps { + className?: string; + style?: React.CSSProperties; + type?: 'circle' | 'gauge'; + title?: React.ReactNode; + unit?: React.ReactNode; + trend?: Trend; + percent?: number; + status?: Status | string; + radius?: number; + strokeWidth?: number; + color?: string; + backgroundColor?: string; + linecap?: 'round' | 'butt'; + bottomTitle?: React.ReactNode; + bottomUnit?: React.ReactNode; + bottomNumber?: React.ReactNode; + bottomTrend?: Trend; +} -export default class Wcircle extends React.Component { +export default class Wcircle extends React.Component { static displayName = 'Wcircle'; static defaultProps = { @@ -24,14 +45,14 @@ export default class Wcircle extends React.Component { linecap: 'round', }; - constructor(props) { + constructor(props: WcircleProps) { super(props); // 图表初始化时记录日志 chartLog('Wcircle', 'init'); } - renderBottom(bottomTitle, bottomUnit, bottomNumber, bottomTrend) { + renderBottom(bottomTitle: React.ReactNode, bottomUnit: React.ReactNode, bottomNumber: React.ReactNode, bottomTrend: string) { let numberTrendIcon; let numberClasses = `${prefix}-bottom-number`; if (bottomTrend === 'raise') { @@ -58,13 +79,15 @@ export default class Wcircle extends React.Component {
    ) } + + return null; } - renderMain({title, unit, children, trend, type, percent, radius, strokeWidth, status, color: customColor, backgroundColor, bottomTitle, bottomUnit, bottomNumber, bottomTrend, linecap}) { + renderMain({title, unit, children, trend, type, percent, radius, strokeWidth, status, color: customColor, backgroundColor, bottomTitle, bottomUnit, bottomNumber, bottomTrend, linecap}: WcircleProps & {children?: React.ReactNode}) { let numberTrendIcon; let numberClasses = `${prefix}-number`; - const style = {}; + const style: React.CSSProperties = {}; if (customColor) { style.color = customColor; } @@ -102,7 +125,7 @@ export default class Wcircle extends React.Component { }; } - const pathStyle = { + const pathStyle: React.CSSProperties = { strokeDasharray: `${circleLengh-openWidth}px ${circleLengh}px`, strokeDashoffset: pathDashoffset }; @@ -167,7 +190,7 @@ export default class Wcircle extends React.Component { } = this.props; const mainClasses = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, [prefix]: true, [className]: !!className }); @@ -198,33 +221,3 @@ export default class Wcircle extends React.Component { ); } } - -Wcircle.propTypes = { - type: PropTypes.oneOf(['gauge', 'circle']), - title: PropTypes.node, - percent: function(props, propName){ - if(!(props[propName] >= 0 && props[propName] <= 1)){ - return new Error('percent Validation failed!'); - } - }, - unit: PropTypes.node, - status: PropTypes.oneOf(['normal', 'warning', 'error', 'success', 'none', 'blue', 'orange', 'red', 'green', 'gray']), - // 半径 - radius: function(props, propName){ - if(!(props[propName] >= 10 && props[propName] <= 100)){ - return new Error('radius Validation failed!'); - } - }, - // 粗细 - strokeWidth: function(props, propName){ - if(!(props[propName] >= 2 && props[propName] <= 10)){ - return new Error('strokeWidth Validation failed!'); - } - }, - // 趋势 - trend: PropTypes.oneOf(['raise', 'drop']), - bottomTitle: PropTypes.node, - bottomUnit: PropTypes.node, - bottomNumber: PropTypes.node, - bottomTrend: PropTypes.oneOf(['raise', 'drop']) -}; diff --git a/components/Wcircle/scss/function.scss b/src/Wcircle/scss/function.scss similarity index 100% rename from components/Wcircle/scss/function.scss rename to src/Wcircle/scss/function.scss diff --git a/components/Wcircle/scss/mixin.scss b/src/Wcircle/scss/mixin.scss similarity index 100% rename from components/Wcircle/scss/mixin.scss rename to src/Wcircle/scss/mixin.scss diff --git a/components/Wcircle/scss/variable.scss b/src/Wcircle/scss/variable.scss similarity index 95% rename from components/Wcircle/scss/variable.scss rename to src/Wcircle/scss/variable.scss index 1f7fb85e..94bd4429 100644 --- a/components/Wcircle/scss/variable.scss +++ b/src/Wcircle/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wcircle-prefix: '.cloud-wcircle'; +$wcircle-prefix: '.#{$base-prefix}-wcircle'; $text-family: getVar(widgets-font-family-txd-m-number, $widgets-font-family-txd-m-number); $text-size-l: getVar(widgets-font-size-7, $widgets-font-size-7); diff --git a/components/Wcontainer/index.scss b/src/Wcontainer/index.scss similarity index 100% rename from components/Wcontainer/index.scss rename to src/Wcontainer/index.scss diff --git a/components/Wcontainer/index.jsx b/src/Wcontainer/index.tsx similarity index 77% rename from components/Wcontainer/index.jsx rename to src/Wcontainer/index.tsx index 3e9052a7..f4dc40f7 100644 --- a/components/Wcontainer/index.jsx +++ b/src/Wcontainer/index.tsx @@ -1,16 +1,37 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; import Divider from './views/divider'; import chartLog from "../common/log"; -import { isMobileWithProps } from '../common/platform'; +import { isMobileWithProps, MobileProps } from '../common/platform'; +import { FullCrossName, PrefixName } from '../constants'; import './index.scss'; -const prefix = 'cloud-wcontainer'; +const prefix = `${PrefixName}-wcontainer`; -export default class Wcontainer extends React.Component { +interface WcontainerProps extends MobileProps { + className?: string; + style?: React.CSSProperties; + width?: string | number; + height?: string | number; + arrange?: 'normal' | 'cross'; + title?: React.ReactNode; + titleBorder?: boolean; + operation?: React.ReactNode; + titleStyle?: React.CSSProperties; + contentStyle?: React.CSSProperties; + fullContent?: boolean; + + catchError?: boolean; + onError?(error: Error, info: React.ErrorInfo): boolean | void; +} + +interface WcontainerState { + criticalError?: Error; +} + +export default class Wcontainer extends React.Component { static displayName = 'Wcontainer'; static defaultProps = { @@ -21,7 +42,11 @@ export default class Wcontainer extends React.Component { catchError: true, }; - constructor(props) { + static divider = Divider; + + static combiner = 'combiner'; + + constructor(props: WcontainerProps) { super(props); this.state = { criticalError: null }; @@ -42,9 +67,7 @@ export default class Wcontainer extends React.Component { } } - // componentDidCatch - - renderTitle(title, titleBorder, operation, titleStyle) { + renderTitle(title: React.ReactNode, titleBorder: boolean, operation: React.ReactNode, titleStyle: React.CSSProperties) { const titleBorderCls = titleBorder ? `${prefix}-title-border` : ''; return (
    @@ -59,10 +82,11 @@ export default class Wcontainer extends React.Component { ); } - renderMainNormal(contentStyle, fullContent) { + renderMainNormal(contentStyle: React.CSSProperties, fullContent: boolean) { const { children: propsChildren, title } = this.props; const oneChild = React.Children.count(propsChildren) === 1; + // @ts-ignore if ((oneChild && propsChildren && propsChildren.type && propsChildren.type.isG2Chart) || fullContent) { return (
    @@ -85,6 +109,7 @@ export default class Wcontainer extends React.Component {
    ); } + // @ts-ignore if (child.type.displayName === 'Wicon' || child.type.displayName === 'Wcircle') { return (
    @@ -92,13 +117,15 @@ export default class Wcontainer extends React.Component {
    ); } - if (child.type.displayName === 'CloudChartsG2MiniLine') { + // @ts-ignore + if (child.type.displayName === 'Wminiline') { return (
    {child}
    ); } + // @ts-ignore if (child.type.displayName === 'Divider') { return (
    @@ -113,13 +140,15 @@ export default class Wcontainer extends React.Component { ); } - renderMainCross(contentStyle) { + renderMainCross(contentStyle: React.CSSProperties) { let maxColPerRow = 0; let currentColPerRow = 0; // 计算栅格的ColSpan React.Children.forEach(this.props.children, (child) => { + // @ts-ignore if (child.type.displayName !== 'Divider') { currentColPerRow += 1; + // @ts-ignore } else if (child.type && child.type !== 'combiner') { if (currentColPerRow > maxColPerRow) { maxColPerRow = currentColPerRow; @@ -150,12 +179,14 @@ export default class Wcontainer extends React.Component { ); } + container: HTMLDivElement; + render() { - const { width, height, arrange, title, titleBorder, operation, className, style, titleStyle, contentStyle, fullContent, isMobile, catchError, ...otherProps } = this.props; + const { width, height, arrange, title, titleBorder, operation, className, style, titleStyle, contentStyle, fullContent, isMobile, catchError, onError, ...otherProps } = this.props; const mainClasses = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, [`${prefix}`]: true, - [`${prefix}-mobile`]: isMobileWithProps(this.props, isMobile), + [`${prefix}-mobile`]: isMobileWithProps(this.props), [className]: !!className }); @@ -184,15 +215,12 @@ export default class Wcontainer extends React.Component { } } -Wcontainer.propTypes = { - title: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) -}; - -function chunks(arr, maxSpan) { - const rs = []; - let oneRow = []; +function chunks(arr: React.ReactNode, maxSpan: number) { + const rs: React.ReactElement[] = []; + let oneRow: React.ReactElement[] = []; + const len = React.Children.count(arr); React.Children.forEach(arr, (child, i) => { + // @ts-ignore if (child.type && child.type.displayName === 'Divider') { rs.push(
    @@ -200,6 +228,7 @@ function chunks(arr, maxSpan) {
    ); oneRow = []; + // @ts-ignore } else if (child.type === 'combiner' && oneRow.length) { const lastChild = oneRow[oneRow.length - 1].props.children; const lastSpan = oneRow[oneRow.length - 1].props.span; @@ -208,7 +237,7 @@ function chunks(arr, maxSpan) { {lastChild}
    ); - } else if (i === arr.length - 1) { + } else if (i === len - 1) { oneRow.push(
    {child} @@ -229,6 +258,3 @@ function chunks(arr, maxSpan) { }); return rs; } - -Wcontainer.divider = Divider; -Wcontainer.combiner = 'combiner'; diff --git a/components/Wcontainer/scss/function.scss b/src/Wcontainer/scss/function.scss similarity index 100% rename from components/Wcontainer/scss/function.scss rename to src/Wcontainer/scss/function.scss diff --git a/components/Wcontainer/scss/mixin.scss b/src/Wcontainer/scss/mixin.scss similarity index 100% rename from components/Wcontainer/scss/mixin.scss rename to src/Wcontainer/scss/mixin.scss diff --git a/components/Wcontainer/scss/variable.scss b/src/Wcontainer/scss/variable.scss similarity index 98% rename from components/Wcontainer/scss/variable.scss rename to src/Wcontainer/scss/variable.scss index 701e4648..1a6d1e15 100644 --- a/components/Wcontainer/scss/variable.scss +++ b/src/Wcontainer/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wcontainer-prefix: '.cloud-wcontainer'; +$wcontainer-prefix: '.#{$base-prefix}-wcontainer'; $wcontainer-bg-color: getVar(widgets-container-background, $widgets-container-background); diff --git a/src/Wcontainer/views/divider.tsx b/src/Wcontainer/views/divider.tsx new file mode 100644 index 00000000..2ee096e0 --- /dev/null +++ b/src/Wcontainer/views/divider.tsx @@ -0,0 +1,20 @@ +'use strict'; + +import * as React from 'react'; +import { PrefixName } from '../../constants'; + +const prefix = `${PrefixName}-wcontainer`; + +export default class Divider extends React.PureComponent { + static displayName = 'Divider'; + + shouldComponentUpdate() { + return false; + } + + render() { + return ( +
    + ); + } +} diff --git a/src/Wcount/dep/CountUp.ts b/src/Wcount/dep/CountUp.ts new file mode 100644 index 00000000..c857d589 --- /dev/null +++ b/src/Wcount/dep/CountUp.ts @@ -0,0 +1,298 @@ +export interface CountUpOptions { // (default) + startVal?: number; // number to start at (0) + decimalPlaces?: number; // number of decimal places (0) + duration?: number; // animation duration in seconds (2) + useGrouping?: boolean; // example: 1,000 vs 1000 (true) + useEasing?: boolean; // ease animation (true) + smartEasingThreshold?: number; // smooth easing for large numbers above this if useEasing (999) + smartEasingAmount?: number; // amount to be eased for numbers above threshold (333) + separator?: string; // grouping separator (,) + decimal?: string; // decimal (.) + // easingFn: easing function for animation (easeOutExpo) + easingFn?: (t: number, b: number, c: number, d: number) => number; + formattingFn?: (n: number) => string; // this function formats result + prefix?: string; // text prepended to result + suffix?: string; // text appended to result + numerals?: string[]; // numeral glyph substitution + placeholder?: string,//非数据时的替换 +} + +// playground: stackblitz.com/edit/countup-typescript +export class CountUp { + + version = '2.0.7'; + private defaults: CountUpOptions = { + startVal: 0, + decimalPlaces: 0, + duration: 2, + useEasing: true, + useGrouping: true, + smartEasingThreshold: 999, + smartEasingAmount: 333, + separator: ',', + decimal: '.', + prefix: '', + suffix: '' + }; + private el: HTMLElement | HTMLInputElement; + private rAF: any; + private startTime: number; + private remaining: number; + private finalEndVal: number = null; // for smart easing + private useEasing = true; + private countDown = false; + private throttle: number; + formattingFn: (num: number) => string; + easingFn?: (t: number, b: number, c: number, d: number) => number; + callback: (args?: any) => any; + error = ''; + startVal = 0; + duration: number; + paused = true; + frameVal: number; + + constructor( + target: string | HTMLElement | HTMLInputElement, + public endVal: number, + public options?: CountUpOptions + ) { + this.options = { + ...this.defaults, + ...options + }; + this.formattingFn = (this.options.formattingFn) ? + this.options.formattingFn : this.formatNumber; + this.easingFn = (this.options.easingFn) ? + this.options.easingFn : this.easeOutExpo; + + this.startVal = this.validateValue(this.options.startVal); + this.frameVal = this.startVal; + this.endVal = this.validateValue(endVal); + this.options.decimalPlaces = Math.max(0 || this.options.decimalPlaces); + this.resetDuration(); + this.options.separator = String(this.options.separator); + this.useEasing = this.options.useEasing; + if (this.options.separator === '') { + this.options.useGrouping = false; + } + this.el = (typeof target === 'string') ? document.getElementById(target) : target; + if (this.el) { + this.printValue(this.startVal); + } else { + this.error = '[CountUp] target is null or undefined'; + } + } + + // determines where easing starts and whether to count down or up + private determineDirectionAndSmartEasing() { + const end = (this.finalEndVal) ? this.finalEndVal : this.endVal; + this.countDown = (this.startVal > end); + const animateAmount = end - this.startVal; + if (Math.abs(animateAmount) > this.options.smartEasingThreshold) { + this.finalEndVal = end; + const up = (this.countDown) ? 1 : -1; + this.endVal = end + (up * this.options.smartEasingAmount); + this.duration = this.duration / 2; + } else { + this.endVal = end; + this.finalEndVal = null; + } + if (this.finalEndVal) { + this.useEasing = false; + } else { + this.useEasing = this.options.useEasing; + } + } + + // start animation + start(callback?: (args?: any) => any) { + if (this.error) { + return; + } + this.callback = callback; + if (this.duration > 0) { + this.determineDirectionAndSmartEasing(); + this.paused = false; + this.rAF = requestAnimationFrame(this.count); + } else { + this.printValue(this.endVal); + } + } + + // pause/resume animation + pauseResume() { + if (!this.paused) { + cancelAnimationFrame(this.rAF); + } else { + this.startTime = null; + this.duration = this.remaining; + this.startVal = this.frameVal; + this.determineDirectionAndSmartEasing(); + this.rAF = requestAnimationFrame(this.count); + } + this.paused = !this.paused; + } + + // reset to startVal so animation can be run again + reset() { + cancelAnimationFrame(this.rAF); + this.paused = true; + this.resetDuration(); + this.startVal = this.validateValue(this.options.startVal); + this.frameVal = this.startVal; + this.printValue(this.startVal); + } + + // pass a new endVal and start animation + update(newEndVal: string | number) { + cancelAnimationFrame(this.rAF); + this.startTime = null; + this.endVal = this.validateValue(newEndVal); + if (this.endVal === this.frameVal) { + return; + } + this.startVal = this.frameVal; + if (!this.finalEndVal) { + this.resetDuration(); + } + this.finalEndVal = null; + this.determineDirectionAndSmartEasing(); + this.rAF = requestAnimationFrame(this.count); + } + + count = (timestamp: number) => { + if (!this.startTime) { + this.throttle = 0; + this.startTime = timestamp; + } + + const progress = timestamp - this.startTime; + this.remaining = this.duration - progress; + + // 性能优化,偶数次渲染,或者最后一次才会渲染dom + if (this.throttle % 2 === 0 || progress >= this.duration) { + // to ease or not to ease + if (this.useEasing) { + if (this.countDown) { + this.frameVal = this.startVal - this.easingFn(progress, 0, this.startVal - this.endVal, this.duration); + } else { + this.frameVal = this.easingFn(progress, this.startVal, this.endVal - this.startVal, this.duration); + } + } else { + if (this.countDown) { + this.frameVal = this.startVal - ((this.startVal - this.endVal) * (progress / this.duration)); + } else { + this.frameVal = this.startVal + (this.endVal - this.startVal) * (progress / this.duration); + } + } + + // don't go past endVal since progress can exceed duration in the last frame + if (this.countDown) { + this.frameVal = (this.frameVal < this.endVal) ? this.endVal : this.frameVal; + } else { + this.frameVal = (this.frameVal > this.endVal) ? this.endVal : this.frameVal; + } + + // decimal + this.frameVal = Number(this.frameVal.toFixed(this.options.decimalPlaces)); + + // format and print value + this.printValue(this.frameVal); + } + + this.throttle = this.throttle + 1; + + // whether to continue + if (progress < this.duration) { + this.rAF = requestAnimationFrame(this.count); + } else if (this.finalEndVal !== null) { + // smart easing + this.update(this.finalEndVal); + } else { + if (this.callback) { + this.callback(); + } + } + } + + printValue(val: number) { + const result = this.ensureNumber(val) ? this.formattingFn(val) : this.options.placeholder; + + if (this.el.tagName === 'INPUT') { + const input = this.el as HTMLInputElement; + input.value = result; + } else if (this.el.tagName === 'text' || this.el.tagName === 'tspan') { + this.el.textContent = result; + } else { + // 自定义渲染标签 + let html = ''; + for (let i = 0; i < result.length; i++) { + const s = result.charAt(i); + if (s === this.options.separator) { + html += '' + s + ''; + } else if (s === this.options.decimal) { + html += '' + s + ''; + } else { + html += '' + s + ''; + } + } + this.el.innerHTML = html; + } + } + + ensureNumber(n: any) { + return (typeof n === 'number' && !isNaN(n)); + } + + validateValue(value: string | number): number { + const newValue = Number(value); + if (!this.ensureNumber(newValue)) { + this.error = `[CountUp] invalid start or end value: ${value}`; + return null; + } else { + return newValue; + } + } + + private resetDuration() { + this.startTime = null; + this.duration = Number(this.options.duration) * 1000; + this.remaining = this.duration; + } + + // default format and easing functions + + formatNumber = (num: number): string => { + const neg = (num < 0) ? '-' : ''; + let result: string, + x: string[], + x1: string, + x2: string, + x3: string; + result = Math.abs(num).toFixed(this.options.decimalPlaces); + result += ''; + x = result.split('.'); + x1 = x[0]; + x2 = x.length > 1 ? this.options.decimal + x[1] : ''; + if (this.options.useGrouping) { + x3 = ''; + for (let i = 0, len = x1.length; i < len; ++i) { + if (i !== 0 && (i % 3) === 0) { + x3 = this.options.separator + x3; + } + x3 = x1[len - i - 1] + x3; + } + x1 = x3; + } + // optional numeral substitution + if (this.options.numerals && this.options.numerals.length) { + x1 = x1.replace(/[0-9]/g, (w) => this.options.numerals[+w]); + x2 = x2.replace(/[0-9]/g, (w) => this.options.numerals[+w]); + } + return neg + this.options.prefix + x1 + x2 + this.options.suffix; + } + + easeOutExpo = (t: number, b: number, c: number, d: number): number => + c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b + +} diff --git a/components/Wcount/index.scss b/src/Wcount/index.scss similarity index 100% rename from components/Wcount/index.scss rename to src/Wcount/index.scss diff --git a/components/Wcount/index.jsx b/src/Wcount/index.tsx similarity index 65% rename from components/Wcount/index.jsx rename to src/Wcount/index.tsx index dfd35496..3cabe60b 100644 --- a/components/Wcount/index.jsx +++ b/src/Wcount/index.tsx @@ -1,18 +1,19 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; -import CountUp from './lib/CountUp'; +import { CountUp } from './dep/CountUp'; import { filterKey } from "../common/common"; +import { Types } from '../common/types'; import './index.scss'; import chartLog from "../common/log"; +import { FullCrossName, PrefixName } from '../constants'; -const prefix = 'cloud-wcount'; +const prefix = `${PrefixName}-wcount`; const checkKey = ['start', 'decimals', 'duration', 'useEasing', 'useGrouping', 'separator', 'decimal', 'placeholder']; // 检查 a, b 两个对象中某些key是否有变化 -function configChange(a, b) { +function configChange(a: Types.LooseObject, b: Types.LooseObject) { return checkKey.some((key) => { return a[key] !== b[key]; }); @@ -26,10 +27,10 @@ function configChange(a, b) { * @param {number} clipNum 切片数 * @param {number} slipScale 幅度数组 * - * @return {array} 切片后的数值数组 + * @return {number[]} 切片后的数值数组 * */ -function clipValue(start, end, clipNum, slipScale) { - const result = []; +function clipValue(start: number, end: number, clipNum: number, slipScale: number[]) { + const result: number[] = []; const delta = end - start; const step = delta / clipNum; @@ -49,10 +50,42 @@ function clipValue(start, end, clipNum, slipScale) { return result; } -export default class Wcount extends React.Component { +interface WcountProps { + className?: string; + style?: React.CSSProperties; + // 切片配置 + /** 切片更新数量,大于1时生效 */ + clipNum?: number; + /** 切片更新周期,默认 5 秒 */ + clipPeriod?: number; + /** 切片幅度数组,默认平均切片 */ + slipScale?: number[]; + // 数据配置 + /** 开始翻牌数值 */ + start?: number; + /** 结束翻牌数值 */ + end?: number; + /** 小数位数,默认 0 */ + decimals?: number; + /** 翻牌持续时间,默认 1.5 秒 */ + duration?: number; + // 额外配置 + /** 是否缓动函数翻牌 */ + useEasing?: boolean; // toggle easing + /** 是否显示千分位 */ + useGrouping?: boolean; // 1,000,000 vs 1000000 + /** 千分位字符 */ + separator?: string; // character to use as a separator + /** 小数点字符 */ + decimal?: string; // character to use as a decimal + /** 无数据时字符 */ + placeholder?: string; // 非数据时的替换 +} + +export default class Wcount extends React.Component { static displayName = 'Wcount'; - static defaultProps = { + static defaultProps: WcountProps = { // 切片配置 clipNum: 1, clipPeriod: 5, @@ -71,15 +104,15 @@ export default class Wcount extends React.Component { placeholder: "-", // 非数据时的替换 }; - constructor(props) { + constructor(props: WcountProps) { super(props); // 图表初始化时记录日志 chartLog('Wcount', 'init'); } - dom = null; - countUp = null; + dom: HTMLSpanElement = null; + countUp: CountUp = null; componentDidMount() { if (!this.dom) { @@ -89,7 +122,7 @@ export default class Wcount extends React.Component { this.createCountUp(this.props); } - componentDidUpdate(prevProps) { + componentDidUpdate(prevProps: WcountProps) { const { /*start: newStart,*/ end: newEnd, /*decimals: newDecimals, duration: newDuration,*/ ...newOptions } = this.props; const { /*start: oldStart,*/ end: oldEnd, /*decimals: oldDecimals, duration: oldDuration,*/ ...oldOptions } = prevProps; @@ -112,8 +145,8 @@ export default class Wcount extends React.Component { } } - clipTimer = null; - clipNumber(props, newEnd) { + clipTimer: any = null; + clipNumber(props: WcountProps, newEnd: number) { const { clipNum, clipPeriod, slipScale } = props; // 清空定时器 @@ -140,9 +173,14 @@ export default class Wcount extends React.Component { } } - createCountUp(props) { + createCountUp(props: WcountProps) { const { start, end, decimals, duration, ...options } = props; - const countUp = new CountUp(this.dom, start, end, decimals, duration, options); + const countUp = new CountUp(this.dom, end, { + startVal: start, + decimalPlaces: decimals, + duration, + ...options, + }); if (!countUp.error) { countUp.start(); } else { @@ -156,7 +194,7 @@ export default class Wcount extends React.Component { const { className, ...otherProps } = this.props; const mainClasses = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, [prefix]: true, [className]: !!className }); @@ -166,18 +204,3 @@ export default class Wcount extends React.Component { ); } } - -Wcount.propTypes = { - clipNum: PropTypes.number, - clipPeriod: PropTypes.number, - slipScale: PropTypes.arrayOf(PropTypes.number), - start: PropTypes.number, - end: PropTypes.number, - decimals: PropTypes.number, - duration: PropTypes.number, - useEasing: PropTypes.bool, - useGrouping: PropTypes.bool, - separator: PropTypes.string, - decimal: PropTypes.string, - placeholder: PropTypes.string, -}; diff --git a/components/Wcount/scss/mixin.scss b/src/Wcount/scss/mixin.scss similarity index 100% rename from components/Wcount/scss/mixin.scss rename to src/Wcount/scss/mixin.scss diff --git a/components/Wdashboard/scss/variable.scss b/src/Wcount/scss/variable.scss similarity index 80% rename from components/Wdashboard/scss/variable.scss rename to src/Wcount/scss/variable.scss index d7f40b6c..eeed6ca8 100644 --- a/components/Wdashboard/scss/variable.scss +++ b/src/Wcount/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wcount-prefix: '.cloud-wdashboard'; +$wcount-prefix: '.#{$base-prefix}-wcount'; $font-family: getVar(widgets-font-family-txd-m-number, $widgets-font-family-txd-m-number); $color: getVar(widgets-color-text-1, $widgets-color-text-1); diff --git a/components/Wdashboard/dashboard.jsx b/src/Wdashboard/dashboard.jsx similarity index 99% rename from components/Wdashboard/dashboard.jsx rename to src/Wdashboard/dashboard.jsx index 7f9acf28..d6750c1a 100755 --- a/components/Wdashboard/dashboard.jsx +++ b/src/Wdashboard/dashboard.jsx @@ -349,4 +349,4 @@ class DashBoard { } -module.exports = DashBoard; +export default DashBoard; diff --git a/components/Wdashboard/index.jsx b/src/Wdashboard/index.jsx similarity index 92% rename from components/Wdashboard/index.jsx rename to src/Wdashboard/index.jsx index 85d07fd8..10568504 100644 --- a/components/Wdashboard/index.jsx +++ b/src/Wdashboard/index.jsx @@ -1,13 +1,13 @@ 'use strict'; import React from 'react'; -import PropTypes from 'prop-types'; import classNames from 'classnames'; import Dashboard from './dashboard'; import './index.scss'; import chartLog from "../common/log"; +import { FullCrossName, PrefixName } from '../constants'; -const prefix = 'cloud-wdashboard'; +const prefix = `${PrefixName}-wdashboard`; export default class Wdashboard extends React.Component { static displayName = 'Wdashboard'; @@ -50,7 +50,7 @@ export default class Wdashboard extends React.Component { const { className, ...otherProps } = this.props; const mainClasses = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, [prefix]: true, [className]: !!className }); diff --git a/components/Wdashboard/index.scss b/src/Wdashboard/index.scss similarity index 100% rename from components/Wdashboard/index.scss rename to src/Wdashboard/index.scss diff --git a/components/Wdashboard/scss/mixin.scss b/src/Wdashboard/scss/mixin.scss similarity index 100% rename from components/Wdashboard/scss/mixin.scss rename to src/Wdashboard/scss/mixin.scss diff --git a/components/Wcount/scss/variable.scss b/src/Wdashboard/scss/variable.scss similarity index 79% rename from components/Wcount/scss/variable.scss rename to src/Wdashboard/scss/variable.scss index 4dfe019d..85b6bd01 100644 --- a/components/Wcount/scss/variable.scss +++ b/src/Wdashboard/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wcount-prefix: '.cloud-wcount'; +$wcount-prefix: '.#{$base-prefix}-wdashboard'; $font-family: getVar(widgets-font-family-txd-m-number, $widgets-font-family-txd-m-number); $color: getVar(widgets-color-text-1, $widgets-color-text-1); diff --git a/components/Wfunnel/gui.schema.json b/src/Wfunnel/gui.schema.json similarity index 100% rename from components/Wfunnel/gui.schema.json rename to src/Wfunnel/gui.schema.json diff --git a/components/Whierarchy/G2Hierarchy.scss b/src/Wfunnel/index.scss similarity index 100% rename from components/Whierarchy/G2Hierarchy.scss rename to src/Wfunnel/index.scss diff --git a/src/Wfunnel/index.tsx b/src/Wfunnel/index.tsx new file mode 100644 index 00000000..2d7c3660 --- /dev/null +++ b/src/Wfunnel/index.tsx @@ -0,0 +1,382 @@ +'use strict'; + +import { Chart, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base from '../common/Base'; +import errorWrap from '../common/errorWrap'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import { GuideConfig } from '../common/guide'; +import { LabelConfig } from '../common/label'; +import themes from '../themes/index'; +import { pxToNumber, numberDecimal } from '../common/common'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import './index.scss'; + +// 3.x代码 +export interface WfunnelConfig extends BaseChartConfig { + colors?: Colors; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + pyramid?: boolean; + label?: LabelConfig | boolean; + direction?: string; + align?: string; + percent?: Types.LooseObject | boolean; + geomStyle?: GeomStyleConfig; +} + +export class Funnel extends Base { + chartName = 'G2Funnel'; + + getDefaultConfig(): WfunnelConfig { + return { + colors: themes.order_10, + legend: { + position: 'top', + align: '', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + label: false, + pyramid: false, + // 主方向,从上到下(vertical)、从左到右(horizontal) + direction: 'vertical', + // 排列位置 start,center,end + align: 'center', + // 尖顶漏斗图 + percent: true, + }; + } + init(chart: Chart, config: WfunnelConfig, data: any) { + const defs: Record = { + type: { + type: 'cat', + }, + }; + + chart.scale(defs); + chart.interaction('element-active'); + chart.axis(false); + chart.data(data); + + // 设置图例 + rectLegend(this, chart, config, null, true); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + null, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + ); + + // 根据传入的 direction 和 align 设置坐标系,并绘制图形 + const drawType = `${config.direction}-${config.align}`; + let geom = null; + const fontSize1 = pxToNumber(themes['widgets-font-size-1']); + let percentOffsetX = 0; + let percentOffsetY = 0; + const funnelShape = config.align === 'center' && config.pyramid ? 'pyramid' : 'funnel'; + + switch (drawType) { + case 'vertical-left': + case 'vertical-start': + chart.coordinate('rect').transpose().scale(1, -1); + geom = chart.interval() + .position('x*y') + .shape(funnelShape) + .color('x', config.colors); + percentOffsetX = 3 * fontSize1; + break; + case 'vertical-center': + chart.coordinate('rect').transpose().scale(1, -1); + geom = chart.interval() + .adjust([{ + type: 'symmetric', + }]) + .position('x*y') + .shape(funnelShape) + .color('x', config.colors); + break; + case 'vertical-right': + case 'vertical-end': + chart.coordinate('rect').transpose().scale(-1, -1); + geom = chart.interval() + .position('x*y') + .shape(funnelShape) + .color('x', config.colors); + percentOffsetX = -3 * fontSize1; + break; + case 'horizontal-top': + case 'horizontal-start': + chart.coordinate('rect').reflect('y'); + geom = chart.interval() + .position('x*y') + .shape(funnelShape) + .color('x', config.colors); + percentOffsetY = 3 * fontSize1; + break; + case 'horizontal-center': + geom = chart.interval() + .position('x*y') + .shape(funnelShape) + .color('x', config.colors) + .adjust([{ + type: 'symmetric', + }]); + break; + // case 'horizontal-bottom': + // case 'horizontal-end': + // 和 default 时相同 + default: + geom = chart.interval() + .position('x*y') + .shape(funnelShape) + .color('x', config.colors); + percentOffsetY = -3 * fontSize1; + } + + geomStyle(geom, config.geomStyle); + + // TODO 自定义label + if(config.label) { + let temp = {}; + temp = config.label || {}; + geom.label('y', + { + offset: pxToNumber(themes['widgets-font-size-1']), + labelLine: { + style: { + lineWidth: 1, + stroke: themes['widgets-axis-line'], + }, + }, + ...temp, + }); + } + + // 绘制辅助线,辅助背景区域 + renderGuide(chart, config, data, percentOffsetX, percentOffsetY); + } +} + +function renderGuide(chart: Chart, config: WfunnelConfig, data: ChartData, percentOffsetX: number, percentOffsetY: number) { + // 中间标签文本 + chart.annotation().clear(true); + let configPercent = config.percent; + + if (!configPercent) { + return; + } + + if (configPercent === true) { + configPercent = {}; + } + + const { + labelFormatter, + offsetX = 0, + offsetY = 0, + top = true, + style = {} + } = configPercent; + const positionY = config.align === 'center' ? 'median' : 'start'; + + data.forEach((d: { y: any; x: any; }, i: any) => { + let content = `${numberDecimal(100 * d.y / data[0].y)}%`; + if (labelFormatter) { + content = labelFormatter(d.y / data[0].y, d, i); + } + chart.annotation().text({ + top, + position: [ + d.x, + positionY, + ], + offsetX: percentOffsetX + offsetX, + offsetY: percentOffsetY + offsetY, + content: content, // 显示的文本内容 + style: { + fill: themes['widgets-label-text'], + fontSize: pxToNumber(themes['widgets-font-size-1']), + textAlign: 'center', + shadowBlur: 2, + shadowColor: 'rgba(255, 255, 255, .3)', + ...style, + }, + }); + }); +} + +const Wfunnel: typeof Funnel = errorWrap(Funnel); + +export default Wfunnel; + +// export default /*#__PURE__*/ errorWrap(g2Factory('G2Funnel', { +// getDefaultConfig() { +// return { +// colors: themes.order_10, +// padding: ['auto', 0, 'auto', 0], +// legend: { +// align: 'left', +// nameFormatter: null, // 可以强制覆盖,手动设置label +// }, +// tooltip: { +// nameFormatter: null, +// valueFormatter: null, +// }, +// // 主方向,从上到下(vertical)、从左到右(horizontal) +// direction: 'vertical', +// // 排列位置 start,center,end +// align: 'center', +// // 尖顶漏斗图 +// pyramid: false, +// label: false, +// percent: false, +// }; +// }, +// beforeInit(props) { +// const { config } = props; +// const newConfig = merge({}, this.defaultConfig, config); + +// // TODO 处理padding +// return Object.assign({}, props, { +// padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), +// config: newConfig, +// }); +// }, +// init(chart, userConfig, data) { +// const config = userConfig; + +// // 设置数据度量 +// const defs = { +// type: { +// type: 'cat', +// }, +// }; + +// chart.source(data, defs); + +// // 漏斗图目前看没有轴 +// chart.axis(false); + +// // 设置图例 +// rectLegend(this, chart, config, null, true); + +// // tooltip +// rectTooltip(this, chart, config, { +// showTitle: false, +// crosshairs: null, +// }); + +// // 根据传入的 direction 和 align 设置坐标系,并绘制图形 +// const drawType = `${config.direction}-${config.align}`; +// let geom = null; +// const fontSize1 = pxToNumber(themes['widgets-font-size-1']); +// let percentOffsetX = 0; +// let percentOffsetY = 0; + +// switch (drawType) { +// case 'vertical-left': +// case 'vertical-start': +// chart.coord('rect').transpose().scale(1, -1); +// geom = chart.interval(); +// percentOffsetX = 3 * fontSize1; +// break; +// case 'vertical-center': +// chart.coord('rect').transpose().scale(1, -1); +// geom = chart.intervalSymmetric(); +// break; +// case 'vertical-right': +// case 'vertical-end': +// chart.coord('rect').transpose().scale(-1, -1); +// geom = chart.interval(); +// percentOffsetX = -3 * fontSize1; +// break; +// case 'horizontal-top': +// case 'horizontal-start': +// chart.coord('rect').reflect('y'); +// geom = chart.interval(); +// percentOffsetY = 3 * fontSize1; +// break; +// case 'horizontal-center': +// geom = chart.intervalSymmetric(); +// break; +// // case 'horizontal-bottom': +// // case 'horizontal-end': +// // 和 default 时相同 +// default: +// geom = chart.interval(); +// percentOffsetY = -3 * fontSize1; +// } + +// const funnelShape = (config.align === 'center' && config.pyramid) ? 'pyramid' : 'funnel'; + +// geom.position('x*y').shape(funnelShape).color('x', config.colors); + +// label(geom, config, 'y', { +// offset: pxToNumber(themes['widgets-font-size-1']), +// labelLine: { +// lineWidth: 1, +// stroke: themes['widgets-axis-line'], +// }, +// }); + +// const geomStyle = config.geomStyle || {}; +// geom.style('x*y*type*extra', { +// ...geomStyle, +// }); + +// renderGuide(chart, config, data, percentOffsetX, percentOffsetY); + +// chart.render(); +// }, +// changeData(chart, config, data) { +// chart.changeData(data); + +// const drawType = `${config.direction}-${config.align}`; +// const fontSize1 = pxToNumber(themes['widgets-font-size-1']); +// let percentOffsetX = 0; +// let percentOffsetY = 0; + +// switch (drawType) { +// case 'vertical-left': +// case 'vertical-start': +// percentOffsetX = 3 * fontSize1; +// break; +// case 'vertical-center': +// break; +// case 'vertical-right': +// case 'vertical-end': +// percentOffsetX = -3 * fontSize1; +// break; +// case 'horizontal-top': +// case 'horizontal-start': +// percentOffsetY = 3 * fontSize1; +// break; +// case 'horizontal-center': +// break; +// // case 'horizontal-bottom': +// // case 'horizontal-end': +// // 和 default 时相同 +// default: +// percentOffsetY = -3 * fontSize1; +// } +// renderGuide(chart, config, data, percentOffsetX, percentOffsetY); +// }, +// })); diff --git a/components/Wicon/scss/function.scss b/src/Wheatmap/index.scss similarity index 100% rename from components/Wicon/scss/function.scss rename to src/Wheatmap/index.scss diff --git a/src/Wheatmap/index.tsx b/src/Wheatmap/index.tsx new file mode 100644 index 00000000..bf80f2db --- /dev/null +++ b/src/Wheatmap/index.tsx @@ -0,0 +1,284 @@ +'use strict'; +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from '../common/Base'; +import errorWrap from '../common/errorWrap'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; +import label, { LabelConfig } from '../common/label'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import legendFilter from '../common/legendFilter'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import './index.scss'; + +// 3.x代码 +export interface WheatmapConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false, + yAxis?: Types.ScaleOption & YAxisConfig | false, + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + label?: LabelConfig | boolean; + geomStyle?: GeomStyleConfig; + coordinate?: Types.LooseObject; +} + +export class Heatmap extends Base { + chartName = 'G2Heatmap'; + + getDefaultConfig(): WheatmapConfig { + return { + colors: themes.category_12, + // padding: ['auto', 'auto', 'auto', 'auto'], + xAxis: { + type: 'cat', + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + autoRotate: false, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + legend: { + align: 'left', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + // grid: false, + label: false, + coordinate: null, + }; + } + init(chart: Chart, config: WheatmapConfig, data: any) { + const defs: Record = { + x: propertyAssign( + propertyMap.axis, + { + type: 'cat', + }, + config.xAxis, + ), + y: propertyAssign( + propertyMap.axis, + { + type: 'cat', + }, + config.yAxis, + ), + type: { + type: 'cat', + }, + }; + + chart.scale(defs); + + chart.data(data); + + if (config.coordinate) { + const { type = 'rect', reflect } = config.coordinate; + const coord = chart.coordinate(type); + if (reflect) { + coord.reflect(reflect); + } + } + + // 设置单个Y轴 + rectYAxis(this, chart, config, undefined, { + grid: null, + }); + + // 设置X轴 + rectXAxis(this, chart, config); + + chart.legend('x', false); + chart.legend('y', false); + // 设置图例 + rectLegend(this, chart, config, {}, false, 'type'); + + legendFilter(this, chart); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showMarkers: false, + showCrosshairs: false, + }, + null, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + ); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + const geom = chart + .polygon() + .position('x*y') + .color('type', config.colors) + .tooltip('x*y*extra', (x, y, extra) => { + return { + name: `${x} - ${y}`, + value: (Array.isArray(extra) ? extra[0] : extra.value) || '-', + }; + }); + + geomStyle(geom, config.geomStyle, { + lineWidth: 1, + stroke: themes['widgets-map-area-border'], + }); + + label(geom, config, 'y', {}, null, true, { + position: 'middle', + offset: 0, + content(data, item, i) { + if (!config.label) { + return; + } + let result = (Array.isArray(data.extra) ? data.extra[0] : data.extra.value) || '-'; + if (typeof config.label === 'object' && config.label.labelFormatter) { + result = config.label.labelFormatter(result, item, i); + } + return result; + } + }); + } +} +const Wheatmap: typeof Heatmap = errorWrap(Heatmap); + +export default Wheatmap; + +// export default /*#__PURE__*/ errorWrap(g2Factory('G2Heatmap', { +// getDefaultConfig() { +// return { +// colors: themes.category_12, +// padding: ['auto', 'auto', 'auto', 'auto'], +// xAxis: { +// type: 'cat', +// labelFormatter: null, // 可以强制覆盖,手动设置label +// categories: null, +// autoRotate: false, +// }, +// yAxis: { +// labelFormatter: null, // 可以强制覆盖,手动设置label +// max: null, +// min: null, +// }, +// legend: { +// align: 'left', +// nameFormatter: null, // 可以强制覆盖,手动设置label +// }, +// tooltip: { +// titleFormatter: null, +// nameFormatter: null, +// valueFormatter: null, +// }, +// // grid: false, +// // label: false, +// coordinate: null, +// }; +// }, +// beforeInit(props) { +// const { config } = props; +// const newConfig = merge({}, this.defaultConfig, config); + +// // TODO 处理padding +// return Object.assign({}, props, { +// padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), +// config: newConfig, +// }); +// }, +// init(chart, userConfig, data) { +// const config = userConfig; + +// // 设置数据度量 +// const defs = { +// x: propertyAssign(propertyMap.axis, { +// type: 'cat', +// }, config.xAxis), +// y: propertyAssign(propertyMap.axis, { +// type: 'cat', +// }, config.yAxis), +// type: { +// type: 'cat', +// // sync: true, +// }, +// }; + +// chart.source(data, defs); + +// if (config.coordinate) { +// const { type = 'rect', reflect } = config.coordinate; +// const coord = chart.coord(type); +// if (reflect) { +// coord.reflect(reflect); +// } +// } + +// // 设置单个Y轴 +// rectYAxis(this, chart, config, undefined, { +// grid: null, +// }); + +// // 设置X轴 +// rectXAxis(this, chart, config); + +// chart.legend('x', false); +// chart.legend('y', false); +// // 设置图例 +// rectLegend(this, chart, config); + +// legendFilter(this, chart, config); + +// // tooltip +// rectTooltip(this, chart, config, { +// showTitle: false, +// crosshairs: null, +// }); + +// // 绘制辅助线,辅助背景区域 +// guide(chart, config); + +// const geomStyle = config.geomStyle || {}; + +// chart.polygon() +// .position('x*y') +// .color('type', config.colors) +// .tooltip('x*y*extra', (x, y, extra) => { +// return { +// name: `${x} - ${y}`, +// value: (Array.isArray(extra) ? extra[0] : extra.value) || '-', +// }; +// }) +// .style('x*y*type*extra', { +// lineWidth: 1, +// stroke: themes['widgets-map-area-border'], +// ...geomStyle, +// }); + +// // label(geom, config, 'extra'); + +// chart.render(); +// }, +// // changeData(chart, config, data) { +// // chart.changeData(data); +// // }, +// // destroy() { +// // }, +// })); + diff --git a/components/Wminicontainer/scss/function.scss b/src/Whierarchy/index.scss similarity index 100% rename from components/Wminicontainer/scss/function.scss rename to src/Whierarchy/index.scss diff --git a/src/Whierarchy/index.tsx b/src/Whierarchy/index.tsx new file mode 100644 index 00000000..6047f3b2 --- /dev/null +++ b/src/Whierarchy/index.tsx @@ -0,0 +1,169 @@ +'use strict'; +import { View } from '@antv/data-set/lib/view'; +import '@antv/data-set/lib/transform/hierarchy/treemap'; +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from "../common/Base"; +import { XAxisConfig } from '../common/rectXAxis'; +import { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import { LegendConfig } from '../common/rectLegend'; +import { GuideConfig } from '../common/guide'; +import { LabelConfig } from "../common/label"; + +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import './index.scss'; + +interface WhierarchyConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | boolean, + yAxis?: Types.ScaleOption & YAxisConfig | boolean, + legend?: LegendConfig | boolean, + tooltip?: TooltipConfig | boolean, + guide?: GuideConfig, + label?: LabelConfig | boolean, + polar: boolean, + innerRadius?: number; + borderStyle: any; + labelRender: any; +} + + +export class Hierarchy extends Base { + // 原 g2Factory 的第一个参数,改为类的属性。 + chartName = 'G2Hierarchy'; + convertData= false; + + getDefaultConfig(): WhierarchyConfig { + return { + colors: themes.category_12, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + label: { + offset: 0, + // textStyle: { + // fill: '#fff', + // shadowBlur: 2, + // shadowColor: 'rgba(0,0,0,0.6)', + // }, + }, + // label 文本展示的策略 + labelRender: (depth: any, name: any, value: any, xRange: number[], yRange: number[]) => { + // 根据矩形大小判断是否渲染 label + if (xRange[1] - xRange[0] > 0.03 && yRange[1] - yRange[0] > 0.05) { + return name; + } + return; + }, + innerRadius: 0, + polar: false, + // 区块的 border 样式,包含 lineWidth lineDash stroke 等属性 + borderStyle: {}, + }; + } + init(chart: Chart, config: WhierarchyConfig, data: any) { + + const dataView = processDataView(data); + const nodes = parseDataView(dataView); + chart.data(nodes); + + // tooltip + rectTooltip(this, chart, config, {}, null, { + showMarkers: false, + showCrosshairs: false, + shared: false, + }); + + drawHierarchy(chart, config, config.colors); + + // chart.render(); + } + changeData(chart: Chart, config: WhierarchyConfig, data: any) { + const dataView = processDataView(data); + const nodes = parseDataView(dataView); + chart && chart.changeData(nodes); + } + // Chart 内容,方法名称与入参和原来一致 +} + +const Whierarchy: typeof Hierarchy = errorWrap(Hierarchy); + +export default Whierarchy; + + +// 将 DataSet 处理后的结果转换为 G2 接受的数据 +function parseDataView(dv: any) { + const nodes = []; + + for (const node of dv.getAllNodes()) { + const eachNode = { + name: node.data.name, + value: node.value, + depth: node.depth, + x: node.x, + y: node.y, + path: getNodePath(node).join('/'), + }; + + nodes.push(eachNode); + } + + return nodes; +} + +// 简单矩形树图 +function drawHierarchy(chart: Chart, config: WhierarchyConfig, colors: Colors, field = 'name') { + // 设置坐标系:极坐标/直角坐标 + if (config.polar) { + chart.coordinate('polar', { + innerRadius: config.innerRadius || 0, + }); + } else { + chart.coordinate(); + } + + chart.axis(false); + chart.legend(false); + + chart + .polygon() + .position('x*y') + .color(field, colors) + .tooltip('name*value*path', (name, value, path) => ({ + name, + value, + title: path, + })) + .style(config.borderStyle) + .label( + 'depth*name*value*x*y', + (depth, name, value, xs, ys) => + config.labelRender( + depth, + name, + value, + [Math.min(...xs), Math.max(...xs)], + [Math.min(...ys), Math.max(...ys)], + ), + // config.label, + ); +} + +// 数据分箱 +function processDataView( data: any) { + return new View().source(data, { type: 'hierarchy' }).transform({ + type: 'hierarchy.partition', + as: ['x', 'y'], + }); +} + +// 获取节点的路径 +function getNodePath(n: any): any { + if (!n.parent) { + return [n.data.name]; + } + return [...getNodePath(n.parent), n.data.name]; +} diff --git a/src/Whistogram/index.tsx b/src/Whistogram/index.tsx new file mode 100644 index 00000000..7db0138a --- /dev/null +++ b/src/Whistogram/index.tsx @@ -0,0 +1,322 @@ +'use strict'; +import { View } from '@antv/data-set/lib/view'; +import '@antv/data-set/lib/transform/bin/histogram'; + +import { Chart, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base from '../common/Base'; +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; + +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import guide, { GuideConfig } from '../common/guide'; +import label, { LabelConfig } from '../common/label'; +import legendFilter from '../common/legendFilter'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; + +// 3.x代码 +export interface WhistogramConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false, + yAxis?: Types.ScaleOption & YAxisConfig | false, + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + label?: LabelConfig | boolean; + bin?: any; + grid?: boolean; + geomStyle?: GeomStyleConfig; + normalize?: boolean; + polar?: boolean; + innerRadius?: number; + column?: boolean; +} + +export class Histogram extends Base { + chartName = 'G2Histogram'; + + getDefaultConfig(): WhistogramConfig { + return { + colors: themes.category_12, + xAxis: { + // type: "cat", + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + autoRotate: false, + // 坐标轴粒度 + // tickInterval: 1, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null + }, + legend: { + align: "left", + nameFormatter: null // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null + }, + grid: false, + label: false, + // 分箱粒度 + bin: { + // bins: 10, // 分箱个数 + binWidth: 1, // 分箱步长(会覆盖bins的配置) + offset: 0, + }, + column: true, + // 是否归一化 + normalize: false + }; + } + init(chart: Chart, config: WhistogramConfig, data: any) { + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + range: [0, 1], + }, config.xAxis), + y: propertyAssign(propertyMap.axis, { + type: 'linear', + nice: true, + // tickCount: 5, + }, config.yAxis), + type: { + type: 'cat', + }, + }; + + const dataView = computerData(config, data); + + chart.scale(defs); + + chart.data(dataView.rows); + + + // 设置X轴 + rectXAxis(this, chart, config); + + // 设置单个Y轴 + rectYAxis(this, chart, config); + + // 设置图例 + rectLegend(this, chart, config, null, false, "type"); + + legendFilter(this, chart); + + // tooltip + rectTooltip( + this, + chart, + config, + { + position: 'top', + shared: true, + showMarkers: false, + }, + null, + { + position: 'top', + shared: true, + showMarkers: false, + }, + ); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + // 设置坐标系:极坐标/直角坐标 + const chartCoord = config.polar + ? chart.coordinate("polar", { + innerRadius: config.innerRadius || 0 + }) + : chart.coordinate(); + + // 横向柱状图 + if (!config.column) { + chartCoord.transpose(); + } + + chart.interaction('active-region'); + + drawHist(chart, config); + } + changeData(chart: Chart, config: WhistogramConfig, data: any) { + const dataView = computerData(config, data); + chart && chart.changeData(dataView.rows); + } +} + +function drawHist(chart: Chart, config: WhistogramConfig, field = "type") { + const { colors } = config; + const geom = chart + .interval() + .position('x*y') + .color(field, colors) + .adjust('stack'); + + geomStyle(geom, config.geomStyle); + + label(geom, config); +} + +function computerData(config: WhistogramConfig, data: ChartData) { + const { bins, binWidth, offset } = config.bin; + + const dv = new View().source(data); + dv.transform({ + type: 'bin.histogram', + field: 'x', + bins, + binWidth, + offset, + groupBy: ['type', 'visible'], + as: ['x', 'y'], + }); + + if (config.normalize) { + const total = dv.rows.reduce((acc, cur) => acc + cur.y, 0); + dv.transform({ + type: 'map', + callback(row) { + row.y = row.y / total; + return row; + }, + }); + } + + return dv; +} + +const Whistogram: typeof Histogram = errorWrap(Histogram); + +export default Whistogram; + +// export default /*#__PURE__*/ errorWrap(g2Factory('G2Histogram', { +// // convertData: false, +// getDefaultConfig() { +// return { +// colors: themes.category_12, +// padding: ['auto', 'auto', 'auto', 'auto'], +// xAxis: { +// // type: "cat", +// labelFormatter: null, // 可以强制覆盖,手动设置label +// categories: null, +// autoRotate: false, +// // 坐标轴粒度 +// // tickInterval: 1, +// }, +// yAxis: { +// labelFormatter: null, // 可以强制覆盖,手动设置label +// max: null, +// min: null +// }, +// legend: { +// align: "left", +// nameFormatter: null // 可以强制覆盖,手动设置label +// }, +// tooltip: { +// titleFormatter: null, +// nameFormatter: null, +// valueFormatter: null +// }, +// column: true, +// grid: false, +// size: null, +// label: false, +// innerRadius: 0, +// // 分箱粒度 +// bin: { +// // bins: 10, // 分箱个数 +// binWidth: 1, // 分箱步长(会覆盖bins的配置) +// offset: 0, +// }, +// // 是否归一化 +// normalize: false +// }; +// }, +// beforeInit(props) { +// const { config } = props; +// const newConfig = merge({}, this.defaultConfig, config); + +// // TODO 处理padding +// return Object.assign({}, props, { +// padding: defaultPadding( +// props.padding || config.padding, +// newConfig, +// ...this.defaultConfig.padding +// ), +// config: newConfig +// }); +// }, +// init(chart, userConfig, data) { +// const config = userConfig; + +// // 设置数据度量 +// const defs = { +// x: propertyAssign(propertyMap.axis, { +// // 折线图X轴的范围默认覆盖全部区域,保证没有空余 +// // range: [0, 1], +// }, config.xAxis), +// y: propertyAssign(propertyMap.axis, { +// type: 'linear', +// // tickCount: 5, +// }, config.yAxis), +// type: { +// type: 'cat', +// }, +// }; + +// const dataView = computerData(config, data); +// this.dataView = dataView; + +// chart.source(dataView, defs); + +// // 设置Y轴 +// rectYAxis(this, chart, config); + +// // 设置X轴 +// rectXAxis(this, chart, config); + +// // 设置图例 +// rectLegend(this, chart, config, null, false, "type"); + +// legendFilter(this, chart, config); + +// // tooltip +// rectTooltip(this, chart, config, { +// crosshairs: config.polar ? undefined : {} +// }); + +// // 绘制辅助线,辅助背景区域 +// guide(chart, config); + +// // 设置坐标系:极坐标/直角坐标 +// const chartCoord = config.polar +// ? chart.coord("polar", { +// innerRadius: config.innerRadius || 0 +// }) +// : chart.coord(); + +// // 横向柱状图 +// if (!config.column) { +// chartCoord.transpose(); +// } + +// drawHist(chart, config, config.colors); + +// chart.render(); +// }, +// changeData(chart, config, data) { +// if (this.dataView) { +// this.dataView.source(data); +// } +// // chart.changeData(data); +// }, +// })); + diff --git a/src/Wicon/cdn.scss b/src/Wicon/cdn.scss new file mode 100644 index 00000000..6ea553a1 --- /dev/null +++ b/src/Wicon/cdn.scss @@ -0,0 +1,3 @@ +$icon-font-path: '//cdn.jsdelivr.net/npm/@alicloud/cloud-charts@1.0.0/build/font_180585_2frjb4evzia'; + +@import "./index.scss"; diff --git a/src/Wicon/cdn.tsx b/src/Wicon/cdn.tsx new file mode 100644 index 00000000..6c74613d --- /dev/null +++ b/src/Wicon/cdn.tsx @@ -0,0 +1,55 @@ +'use strict'; + +import * as React from 'react'; +import classNames from 'classnames'; +import { getStatusColorName } from '../common/common'; +import chartLog from "../common/log"; +import { FullCrossName, PrefixName } from '../constants'; +import './cdn.scss'; +import { Status } from '../common/types'; + +const prefix = `${PrefixName}-wicon`; + +interface WiconProps { + className?: string; + style?: React.CSSProperties; + type?: string; + size?: string; + status?: Status | string; + reverse?: boolean; +} + +export default class Wicon extends React.Component { + static displayName = 'Wicon'; + + static defaultProps = { + size: 'big', + type: 'monitor', + status: 'none' + }; + + constructor(props: WiconProps) { + super(props); + + // 图表初始化时记录日志 + chartLog('Wicon', 'init'); + } + + render() { + const { type, size, className, status, reverse, ...other } = this.props; + const classes = classNames({ + [FullCrossName]: true, + // [`next-icon`]: true, + [`${prefix}-${type}`]: !!type, + [`${prefix}`]: true, + [`${prefix}-${size}`]: !!size, + [`${prefix}-${getStatusColorName(status)}`]: !!status, + [`${prefix}-reverse`]: !!reverse, + [className]: !!className + }); + + return ( + + ); + } +} diff --git a/components/Wicon/font_180585_2frjb4evzia.eot b/src/Wicon/font_180585_2frjb4evzia.eot similarity index 100% rename from components/Wicon/font_180585_2frjb4evzia.eot rename to src/Wicon/font_180585_2frjb4evzia.eot diff --git a/components/Wicon/font_180585_2frjb4evzia.svg b/src/Wicon/font_180585_2frjb4evzia.svg similarity index 100% rename from components/Wicon/font_180585_2frjb4evzia.svg rename to src/Wicon/font_180585_2frjb4evzia.svg diff --git a/components/Wicon/font_180585_2frjb4evzia.ttf b/src/Wicon/font_180585_2frjb4evzia.ttf similarity index 100% rename from components/Wicon/font_180585_2frjb4evzia.ttf rename to src/Wicon/font_180585_2frjb4evzia.ttf diff --git a/components/Wicon/font_180585_2frjb4evzia.woff b/src/Wicon/font_180585_2frjb4evzia.woff similarity index 100% rename from components/Wicon/font_180585_2frjb4evzia.woff rename to src/Wicon/font_180585_2frjb4evzia.woff diff --git a/components/Wicon/font_180585_2frjb4evzia.woff2 b/src/Wicon/font_180585_2frjb4evzia.woff2 similarity index 100% rename from components/Wicon/font_180585_2frjb4evzia.woff2 rename to src/Wicon/font_180585_2frjb4evzia.woff2 diff --git a/components/Wicon/index.scss b/src/Wicon/index.scss similarity index 100% rename from components/Wicon/index.scss rename to src/Wicon/index.scss diff --git a/components/Wicon/index.jsx b/src/Wicon/index.tsx similarity index 64% rename from components/Wicon/index.jsx rename to src/Wicon/index.tsx index c8561543..f09b7cb1 100644 --- a/components/Wicon/index.jsx +++ b/src/Wicon/index.tsx @@ -1,15 +1,25 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; import { getStatusColorName } from '../common/common'; import chartLog from "../common/log"; +import { FullCrossName, PrefixName } from '../constants'; import './index.scss'; +import { Status } from '../common/types'; -const prefix = 'cloud-wicon'; +const prefix = `${PrefixName}-wicon`; -export default class Wicon extends React.Component { +interface WiconProps { + className?: string; + style?: React.CSSProperties; + type?: string; + size?: string; + status?: Status | string; + reverse?: boolean; +} + +export default class Wicon extends React.Component { static displayName = 'Wicon'; static defaultProps = { @@ -18,7 +28,7 @@ export default class Wicon extends React.Component { status: 'none' }; - constructor(props) { + constructor(props: WiconProps) { super(props); // 图表初始化时记录日志 @@ -28,7 +38,7 @@ export default class Wicon extends React.Component { render() { const { type, size, className, status, reverse, ...other } = this.props; const classes = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, // [`next-icon`]: true, [`${prefix}-${type}`]: !!type, [`${prefix}`]: true, @@ -43,8 +53,3 @@ export default class Wicon extends React.Component { ); } } - -Wicon.propTypes = { - type: PropTypes.string, -}; - diff --git a/components/Wnumber/scss/function.scss b/src/Wicon/scss/function.scss similarity index 100% rename from components/Wnumber/scss/function.scss rename to src/Wicon/scss/function.scss diff --git a/components/Wicon/scss/mixin.scss b/src/Wicon/scss/mixin.scss similarity index 100% rename from components/Wicon/scss/mixin.scss rename to src/Wicon/scss/mixin.scss diff --git a/components/Wicon/scss/variable.scss b/src/Wicon/scss/variable.scss similarity index 99% rename from components/Wicon/scss/variable.scss rename to src/Wicon/scss/variable.scss index 5b363c5b..19973498 100644 --- a/components/Wicon/scss/variable.scss +++ b/src/Wicon/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wicon-prefix: '.cloud-wicon'; +$wicon-prefix: '.#{$base-prefix}-wicon'; $white: getVar(widgets-color-background, $widgets-color-background); $blue: getVar(widgets-color-blue, $widgets-color-blue); @@ -14,7 +14,7 @@ $icon-font-path: "./font_180585_2frjb4evzia" !default; $icon-font-name: "icon" !default; $icon-font-family: WidgetsIcon !default; -$icon-prefix: 'cloud-wicon' !default; +$icon-prefix: '#{$base-prefix}-wicon' !default; $icon-size-1: getVar(s1, $s1); diff --git a/components/Wline/gui.schema.json b/src/Wline/gui.schema.json similarity index 100% rename from components/Wline/gui.schema.json rename to src/Wline/gui.schema.json diff --git a/components/Wnumber/scss/mixin.scss b/src/Wline/index.scss similarity index 100% rename from components/Wnumber/scss/mixin.scss rename to src/Wline/index.scss diff --git a/src/Wline/index.tsx b/src/Wline/index.tsx new file mode 100644 index 00000000..e8fee00a --- /dev/null +++ b/src/Wline/index.tsx @@ -0,0 +1,209 @@ +'use strict'; + +import { Chart, Types, BaseChartConfig } from '../common/types'; +import Base from "../common/Base"; +import errorWrap from '../common/errorWrap'; +import themes from '../themes'; +import { getDataIndexColor, propertyAssign, propertyMap } from '../common/common'; +import guide, { GuideConfig } from '../common/guide'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import autoTimeMask from '../common/autoTimeMask'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import legendFilter from '../common/legendFilter'; +import rectZoom, { ZoomConfig } from "../common/rectZoom"; +import rectSlider, { SliderConfig } from '../common/rectSlider'; +import drawLine, { DrawLineConfig } from '../common/drawLine'; +import './index.scss'; + +export interface WlineConfig extends BaseChartConfig, DrawLineConfig, ZoomConfig, SliderConfig { + /** X轴配置项 */ + xAxis?: Types.ScaleOption & XAxisConfig | false; + /** Y轴配置项 */ + yAxis?: Types.ScaleOption & YAxisConfig | false; + /** 图例配置项 */ + legend?: LegendConfig | boolean; + /** 提示信息配置项 */ + tooltip?: TooltipConfig | boolean; + /** 辅助标记配置项 */ + guide?: GuideConfig; + /** 显示网格线 */ + grid?: boolean; +} + +export class Line extends Base { + chartName = 'G2Line'; + + getDefaultConfig(): WlineConfig { + return { + colors: themes.category_12, + areaColors: [], + xAxis: { + type: 'time', // 默认为线性 + mask: 'auto', // 上述type为time时,此字段生效 + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + legend: { + align: 'left', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + area: false, + stack: false, // 仅Area有效 + spline: false, + grid: false, + symbol: false, + zoom: false, + label: false, + step: null, + // TODO + // mini: false, + // dataConfig: { + // nameKey: 'name', + // valueKey: 'value', + // // valueKey: ['value1', 'value2'], + // typeKey: 'type' + // } + }; + } + init(chart: Chart, config: WlineConfig, data: any) { + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + type: 'time', + // 折线图X轴的范围默认覆盖全部区域,保证没有空余 + range: [0, 1], + }, config.xAxis), + type: { + type: 'cat', + }, + }; + + if (Array.isArray(config.yAxis)) { + config.yAxis.forEach((axis, yIndex) => { + defs[`y${yIndex}`] = propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + nice: true, + }, axis); + }); + } else { + defs.y = propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + nice: true, + }, config.yAxis); + } + + autoTimeMask(defs, this.rawData); + + // rectAutoTickCount(chart, config, defs, false); + + chart.scale(defs); + + chart.data(data); + + // 设置X轴 + rectXAxis(this, chart, config); + + if (Array.isArray(config.yAxis)) { + config.yAxis.forEach((axis, yIndex) => { + const yAxisConfig: Types.AxisCfg = { + line: { + style: { + stroke: getDataIndexColor(config.colors, this.rawData, yIndex) || themes['widgets-axis-line'], + }, + }, + }; + if (yIndex !== 0) { + yAxisConfig.grid = null; + } + + rectYAxis(this, chart, { ...config, yAxis: axis }, `y${yIndex}`, yAxisConfig); + }); + } else { + // 设置单个Y轴 + rectYAxis(this, chart, config); + } + + // 设置图例 + rectLegend(this, chart, config, null, false, 'type'); + + legendFilter(this, chart); + + // tooltip + rectTooltip(this, chart, config); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + if (Array.isArray(config.yAxis)) { + config.yAxis.forEach((asix, yIndex) => { + drawLine(chart, config, `y${yIndex}`); + }); + } else { + drawLine(chart, config); + } + + // 拖拽缩放 + rectZoom(chart, config, this.language); + + // 缩略轴 + rectSlider(chart, config); + } +} + +/** Wline 折线图 */ +const Wline: typeof Line = errorWrap(Line); + +export default Wline; + +// /*#__PURE__*/errorWrap(g2Factory('G2Line', { +// beforeInit(props) { +// const { config } = props; +// const newConfig = merge({}, this.defaultConfig, config); +// +// // // TODO 处理padding +// // let defaultPaddingTop = defaultConfig.padding[0]; +// // let defaultPaddingRight = defaultConfig.padding[1]; +// // const defaultPaddingBottom = defaultConfig.padding[2]; +// // const defaultPaddingLeft = defaultConfig.padding[3]; +// // if (defaultPaddingRight !== 'auto' && Array.isArray(newConfig.yAxis)) { +// // defaultPaddingRight = 44; +// // } +// // if (defaultPaddingTop !== 'auto' && !newConfig.legend) { +// // defaultPaddingTop = 16; +// // } +// return Object.assign({}, props, { +// // padding: props.padding || config.padding || [defaultPaddingTop, defaultPaddingRight, defaultPaddingBottom, defaultPaddingLeft], +// padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), +// config: newConfig, +// }); +// }, +// changeData(chart, config, data) { +// chart.changeData(data); +// +// // 更新 brush 的 scale 实例,fix 数据更新后拖动缩放失效的问题。 +// if (config.zoom && this.brush) { +// this.brush.xScale = chart.getXScale(); +// this.brush.yScale = chart.getYScales()[0]; +// } +// }, +// destroy() { +// // 销毁时需要额外销毁缩放重置按钮 +// if (this.brush) { +// this.brush.destroy(); +// } +// if (this.resetButton) { +// this.resetButton.destroy(); +// } +// }, +// })); diff --git a/components/Wlinebar/gui.schema.json b/src/Wlinebar/gui.schema.json similarity index 100% rename from components/Wlinebar/gui.schema.json rename to src/Wlinebar/gui.schema.json diff --git a/components/Wplaceholder/scss/function.scss b/src/Wlinebar/index.scss similarity index 100% rename from components/Wplaceholder/scss/function.scss rename to src/Wlinebar/index.scss diff --git a/src/Wlinebar/index.tsx b/src/Wlinebar/index.tsx new file mode 100644 index 00000000..1fb8f368 --- /dev/null +++ b/src/Wlinebar/index.tsx @@ -0,0 +1,693 @@ +'use strict'; + +import { Chart, View, Geometry, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base, { ChartProps } from "../common/Base"; +import { MarkerSymbols } from "@antv/g2/esm/util/marker"; +import { getShapeFactory } from "@antv/g2/esm/core"; +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import { propertyAssign, getDataIndexColor, propertyMap } from '../common/common'; +import highchartsDataToG2Data, { DataAdapterConfig, DataAdapterData } from '../common/dataAdapter'; +import { drawGuideArea, drawGuideLine, drawGuideFilter, GuideConfig, GuideLineConfig, GuideAreaConfig, GuideFilterConfig } from '../common/guide'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import autoTimeMask from '../common/autoTimeMask'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import legendFilter from '../common/legendFilter'; +import label, { LabelConfig } from '../common/label'; +import geomSize, { GeomSizeConfig } from '../common/geomSize'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import './index.scss'; +import { warn } from '../common/log'; + +interface WlinebarConfig extends BaseChartConfig, BarConfig, LineConfig { + xAxis?: Types.ScaleOption & XAxisConfig | false, + yAxis?: Types.ScaleOption & YAxisConfig | false, + legend?: LegendConfig | boolean, + tooltip?: TooltipConfig | boolean, + guide?: GuideConfig, + grid?: boolean, +} + +function getLegendItems( + lineData: DataAdapterData[], + barData: DataAdapterData[], + lineGeom: Geometry, + barGeom: Geometry, + config: WlinebarConfig +) { + const result: any[] = []; + const reMap: { [key: string]: boolean } = {}; + const { lineColors, barColors } = config; + function getItems( + data: DataAdapterData[], + geom: Geometry, + shapeType: string, + colors: Colors, + style?: Types.LooseObject, + ) { + data.forEach((d, i) => { + const { name, visible, data } = d; + if (reMap[name] || !data || data.length === 0) { + return; + } else { + reMap[name] = true; + } + let marker; + const shapeFactory = getShapeFactory(geom.shapeType); + if (shapeFactory) { + marker = shapeFactory.getMarker(shapeType, { + color: typeof colors === 'string' ? colors : (Array.isArray(colors) ? colors[i % colors.length] : colors(name)), + isInPolar: false, + }); + + const symbol = marker.symbol; + // @ts-ignore + if (typeof symbol === 'string' && MarkerSymbols[symbol]) { + // @ts-ignore + marker.symbol = MarkerSymbols[symbol]; + } + } + if (style) { + Object.assign(marker.style, style); + } + result.push({ + id: name, + name, + value: name, + marker, + unchecked: visible === false, + }); + }); + } + getItems(barData, barGeom, 'point', barColors); + const { area, spline } = config; + let lineShapeType = 'line'; + const lineStyle: Types.LooseObject = {}; + if (area) { + lineShapeType = 'area'; + } + if (spline) { + lineShapeType = 'smooth'; + } + if (!area && spline) { + lineStyle.fill = null; + } + getItems(lineData, lineGeom, lineShapeType, lineColors, lineStyle); + // lineData.forEach((d, i) => { + // const { name, visible } = d; + // if (reMap[name]) { + // return; + // } + // let marker; + // const shapeFactory = getShapeFactory(lineGeom.shapeType); + // if (shapeFactory) { + // marker = shapeFactory.getMarker('point', { + // color: lineColors[i % lineColors.length], + // isInPolar: false, + // }); + // // lineGeom.getShapeMarker + // + // const symbol = marker.symbol; + // // @ts-ignore + // if (typeof symbol === 'string' && MarkerSymbols[symbol]) { + // // @ts-ignore + // marker.symbol = MarkerSymbols[symbol]; + // } + // } + // + // result.push({ + // id: name, + // name, + // value: name, + // marker, + // unchecked: visible === false, + // }); + // reMap[name] = true; + // }); + // barData.forEach((d, i) => { + // const { name, visible } = d; + // if (reMap[name]) { + // return; + // } + // let marker; + // const shapeFactory = getShapeFactory(barGeom.shapeType); + // if (shapeFactory) { + // marker = shapeFactory.getMarker('point', { + // color: barColors[i % barColors.length], + // isInPolar: false, + // }); + // + // const symbol = marker.symbol; + // // @ts-ignore + // if (typeof symbol === 'string' && MarkerSymbols[symbol]) { + // // @ts-ignore + // marker.symbol = MarkerSymbols[symbol]; + // } + // } + // + // result.push({ + // id: name, + // name, + // value: name, + // marker, + // unchecked: visible === false, + // }); + // reMap[name] = true; + // }); + return result; +} + +export class Linebar extends Base { + chartName = 'G2LineBar'; + + convertData = false; + + getDefaultConfig(): WlinebarConfig { + return { + lineColors: themes.category_12.slice(1), + barColors: themes.linear_10, + padding: 'auto', + xAxis: { + type: 'timeCat', // 默认为线性 + mask: 'YYYY-MM-DD HH:mm:ss', // 上述type为time时,此字段生效 + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + // autoRotate: false, + max: null, + min: null, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + legend: { + align: 'left', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + area: false, + dodgeStack: false, + stack: false, // 仅Area有效 + stackReverse: true, + marginRatio: 0, + spline: false, + grid: false, + symbol: false, + // lineLabel: undefined, + // barLabel: undefined, + // TODO + // zoom: false, + // mini: false, + // dataConfig: { + // nameKey: 'name', + // valueKey: 'value', + // // valueKey: ['value1', 'value2'], + // typeKey: 'type' + // } + } + } + + beforeInit(props: ChartProps): ChartProps { + return { + syncViewPadding: true, + ...props, + } + } + + rawLineData: DataAdapterData[] = []; + lineView: View; + + rawBarData: DataAdapterData[] = []; + barView: View; + + init(chart: Chart, config: WlinebarConfig, data: ChartData) { + const rawLineData: DataAdapterData[] = []; + this.rawLineData = rawLineData; + const rawBarData: DataAdapterData[] = []; + this.rawBarData = rawBarData; + (data || []).forEach((d: DataAdapterData) => { + if (d.type === 'line') { + rawLineData.push(d); + } else if (d.type === 'bar') { + rawBarData.push(d); + } + }); + + const lineData = highchartsDataToG2Data(rawLineData, config as DataAdapterConfig, { + // type: 'lineType', + }); + const barData = highchartsDataToG2Data(rawBarData, config as DataAdapterConfig, { + // type: 'barType', + }); + + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + type: 'cat', + // fix 更新数据时x轴无法清除数据 + // sync: 'x', + }, config.xAxis), + type: { + type: 'cat', + }, + }; + + if (Array.isArray(config.yAxis)) { + config.yAxis.forEach((axis, yIndex) => { + defs[`y${yIndex}`] = propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + nice: true, + }, axis); + }); + } else { + defs.y = propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + // 单轴时,必须同步度量,否则会两个度量叠加在一起 + sync: true, + nice: true, + }, config.yAxis); + } + + autoTimeMask(defs, this.rawData); + + chart.scale(defs); + + // 设置X轴 + rectXAxis(this, chart, config); + + if (Array.isArray(config.yAxis)) { + config.yAxis.forEach((axis, yIndex) => { + const axisColor = getDataIndexColor(config.lineColors, rawLineData, yIndex) || getDataIndexColor(config.barColors, rawBarData, yIndex) || themes['widgets-axis-line']; + const yAxisConfig: Types.AxisCfg = { + line: { + style: { + stroke: axisColor, + } + }, + }; + if (yIndex !== 0) { + yAxisConfig.grid = null; + // 因为是多个view组成的图表,所以这里需要移动位置 + yAxisConfig.position = 'right'; + } + + rectYAxis(this, chart, { ...config, yAxis: axis }, `y${yIndex}`, yAxisConfig); + }); + } else { + // 设置单个Y轴 + rectYAxis(this, chart, config); + } + + // 设置图例 + // const legendStyle = { + // ...legendHtmlContainer, + // display: 'inline-block', + // position: 'relative', + // }; + // // const legendItemStyle = { + // // ...legendHtmlListItem, + // // }; + // if (config.legend !== false) { + // const { position, align } = config.legend || {}; + // + // // if (position === 'top') { + // // legendStyle.top = themes['widgets-font-size-1']; + // // } + // + // if (align === 'right') { + // legendStyle.marginLeft = themes['widgets-font-size-1']; + // } else if (align === 'left') { + // legendStyle.marginRight = themes['widgets-font-size-1']; + // } else if (align === 'center') { + // legendStyle.marginRight = themes['widgets-font-size-1']; + // } else { + // // 默认放到左边 + // legendStyle.marginRight = themes['widgets-font-size-1']; + // } + // + // if (position === 'bottom') { + // legendStyle.top = '100%'; + // legendStyle.transform = 'translate(0, -100%)'; + // legendStyle.overflow = 'visible'; + // legendStyle.verticalAlign = 'top'; + // + // // legendItemStyle.marginBottom = 0; + // // legendItemStyle.marginTop = themes['widgets-font-size-1']; + // } + // } + + + // tooltip + rectTooltip(this, chart, config, {}, null, { + showCrosshairs: false, + showMarkers: false + }); + + // 正式开始绘图,创建两个不同的view + const barView = chart.createView({ + padding: config.padding === 'auto' ? 'auto' : 0, + }); + barView.data(barData); + this.barView = barView; + + // Tooltip 背景区域 + barView.interaction('active-region'); + + const lineView = chart.createView({ + padding: config.padding === 'auto' ? 'auto' : 0, + }); + lineView.data(lineData); + this.lineView = lineView; + // 关闭一个View的X轴,避免重叠字体变粗 + lineView.axis('x', false); + + if (Array.isArray(config.yAxis)) { + config.yAxis.forEach((asix, yIndex) => { + if (getDataIndexColor(config.barColors, rawBarData, yIndex)) { + drawBar(barView, config, `y${yIndex}`, 'type'); + } + if (getDataIndexColor(config.lineColors, rawLineData, yIndex)) { + drawLine(lineView, config, `y${yIndex}`, 'type'); + } + }); + } else { + // 单Y轴时同时关闭一个View的Y轴,避免重叠字体变粗 + lineView.axis('y', false); + + drawBar(barView, config, 'y', 'type'); + drawLine(lineView, config, 'y', 'type'); + } + + // 绘制辅助线,辅助背景区域 + viewGuide(config, lineView, rawLineData, barView, rawBarData); + + legendFilter(this, barView, 'rawBarData'); + legendFilter(this, lineView, 'rawLineData'); + + rectLegend(this, chart, config, { + items: getLegendItems(rawLineData, rawBarData, lineView.geometries[0], barView.geometries[0], config), + }, false); + + // chart.on('afterrender', () => { + // // chart.getLegendAttributes() + // // console.log('getLegendAttributes', barView.geometries[0].getAttribute('shape')); + // // console.log('getLegendAttributes', lineView.geometries[0].getAttribute('shape')); + // lineView.geometries.forEach((geom) => { + // const shapeAttr = geom.getAttribute('shape'); + // + // const shape = getMappingValue(shapeAttr, '机房3', 'point'); + // let marker = geom.getShapeMarker(shape, { + // color: 'red', + // isInPolar: false, + // }); + // + // console.log(marker); + // }) + // // console.log(getLegendItems(rawLineData, rawBarData, lineView.geometries[0], barView.geometries[0], config)); + // + // // console.log(chart.getController('legend')); + // }) + } + + changeData(chart: Chart, config: WlinebarConfig, data: ChartData) { + const rawLineData: DataAdapterData[] = []; + this.rawLineData = rawLineData; + const rawBarData: DataAdapterData[] = []; + this.rawBarData = rawBarData; + (data || []).forEach((d: DataAdapterData) => { + if (d.type === 'line') { + rawLineData.push(d); + } else if (d.type === 'bar') { + rawBarData.push(d); + } + }); + + const lineData = highchartsDataToG2Data(rawLineData, config as DataAdapterConfig, { + // type: 'lineType', + }); + const barData = highchartsDataToG2Data(rawBarData, config as DataAdapterConfig, { + // type: 'barType', + }); + + this.barView && this.barView.data(barData); + this.lineView && this.lineView.data(lineData); + + if (this.barView && this.lineView) { + const chartOptions = chart.getOptions(); + const legend = chart.getController('legend'); + const legendCos = legend.getComponents(); + // 图例项可见,更新图例项 + if (legend.visible && legendCos.length > 0 && typeof chartOptions.legends === 'object') { + chartOptions.legends.items = getLegendItems( + rawLineData, + rawBarData, + this.lineView.geometries[0], + this.barView.geometries[0], + config + ); + // chart.legend({ + // items: newItems + // }); + } + } + + // 更新数据后再次render,保证 padding 能正确计算。 + chart.render(true); + } +} + +const Wlinebar: typeof Linebar = errorWrap(Linebar); + +export default Wlinebar; + +interface BarConfig { + barColors?: Colors; + stack?: boolean; + stackReverse?: boolean; + marginRatio?: number; + dodgeStack?: boolean; + lineLabel?: LabelConfig | boolean, + barGeomStyle?: GeomStyleConfig; +} +function drawBar(chart: View, config: WlinebarConfig, yAxisKey = 'y', legendKey = 'type') { + const { stack, stackReverse, marginRatio, dodgeStack } = config; + + let intervalGeom = null; + if (dodgeStack) { + intervalGeom = chart.interval() + .position(['x', yAxisKey]) + .color(legendKey, config.barColors) + .adjust([ + { + type: 'dodge', + marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 + dodgeBy: 'dodge', + }, + { + type: 'stack', + reverseOrder: !stackReverse, // 层叠顺序倒序 + }, + ]); + } else if (stack) { + intervalGeom = chart.interval() + .position(['x', yAxisKey]) + .color(legendKey, config.barColors) + .adjust([{ + type: 'stack', + reverseOrder: !stackReverse, // 层叠顺序倒序 + }]); + } else { + intervalGeom = chart.interval() + .position(['x', yAxisKey]) + .color(legendKey, config.barColors) + .adjust([{ + type: 'dodge', + marginRatio: marginRatio || 0, // 数值范围为 0 至 1,用于调整分组中各个柱子的间距 + }]); + } + + geomStyle(intervalGeom, config.barGeomStyle, {}, `x*${yAxisKey}*${legendKey}*extra`); + + label(intervalGeom, config, yAxisKey, null, 'barLabel'); + + return intervalGeom; +} + +interface LineConfig { + // colors?: string[]; + // areaColors?: string[]; + lineColors?: Colors; + area?: boolean, + stack?: boolean, // 仅Area有效 + spline?: boolean, + step?: string | boolean, + symbol?: { + size?: GeomSizeConfig; + geomStyle?: GeomStyleConfig; + } | boolean, + lineLabel?: LabelConfig | boolean, + lineWidth?: number; + lineGeomStyle?: GeomStyleConfig; +} +function drawLine(chart: View, config: WlinebarConfig, yAxisKey = 'y', legendKey = 'type') { + let lineGeom = null; + const { lineWidth } = config; + // const geomStyle = config.lineGeomStyle || {}; + // if (lineWidth !== undefined) { + // geomStyle.lineWidth = lineWidth; + // } + + // 区域、堆叠、平滑曲线 + const lineShape = config.spline ? 'smooth' : 'line'; + const areaShape = config.spline ? 'smooth' : 'area'; + + const stack = config.stack || config.dodgeStack; + + if (config.area && stack) { + chart.area() + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape(areaShape) + .adjust('stack'); + lineGeom = chart.line() + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape(lineShape) + .adjust('stack'); + // .style({ + // lineJoin: 'round', + // ...geomStyle, + // }); + } else if (config.area && !stack) { + chart.area() + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape(areaShape) + lineGeom = chart.line() + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape(lineShape); + // .style({ + // lineJoin: 'round', + // ...geomStyle, + // }); + } else { + lineGeom = chart.line() + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape(lineShape); + // .style({ + // lineJoin: 'round', + // ...geomStyle, + // }); + } + + geomStyle(lineGeom, config.lineGeomStyle, { + lineWidth, + lineJoin: 'round', + }, `x*${yAxisKey}*${legendKey}*extra`); + + label(lineGeom, config, yAxisKey, null, 'lineLabel'); + + // 曲线默认点 + if (config.symbol) { + let pointGeom = null; + + if (config.area && stack) { + pointGeom = chart.point() + .adjust('stack') + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape('circle') + .size(3) + } else { + pointGeom = chart.point() + .position(['x', yAxisKey]) + .color(legendKey, config.lineColors) + .shape('circle') + .size(3) + } + + if (typeof config.symbol === 'object') { + geomSize(pointGeom, config.symbol.size, 3, yAxisKey, legendKey); + + if (config.symbol.geomStyle) { + geomStyle(pointGeom, config.symbol.geomStyle, {}, `x*${yAxisKey}*${legendKey}*extra`); + } + } + } + + return lineGeom; +} + +function viewGuide(config: WlinebarConfig, lineView: View, rawLineData: DataAdapterData[], barView: View, rawBarData: DataAdapterData[]) { + const { guide } = config; + if (!guide) { + return; + } + + const { line: guideLine, area: guideArea, filter: guideFilter, ...other } = guide; + + if (guideLine) { + if (Array.isArray(guideLine)) { + guideLine.forEach((line) => { + drawGuideLine(getGuideView(config, line, lineView, rawLineData, barView, rawBarData), line); + }); + } else { + drawGuideLine(getGuideView(config, guideLine, lineView, rawLineData, barView, rawBarData), guideLine); + } + } + + if (guideArea) { + if (Array.isArray(guideArea)) { + guideArea.forEach((area) => { + drawGuideArea(getGuideView(config, area, lineView, rawLineData, barView, rawBarData), area); + }); + } else { + drawGuideArea(getGuideView(config, guideArea, lineView, rawLineData, barView, rawBarData), guideArea); + } + } + + if (guideFilter) { + if (Array.isArray(guideFilter)) { + guideFilter.forEach((filter) => { + drawGuideFilter(getGuideView(config, filter, lineView, rawLineData, barView, rawBarData), filter); + }); + } else { + drawGuideFilter(getGuideView(config, guideFilter, lineView, rawLineData, barView, rawBarData), guideFilter); + } + } + + if (!guideLine && !guideArea && !guideFilter && Object.keys(other).length > 0) { + warn('config.guide', '配置异常,请使用 guide.line、guide.area、guide.filter'); + } +} + +type SimpleGuideConfig = { target?: string; } & ( GuideLineConfig | GuideAreaConfig | GuideFilterConfig ); +function getGuideView(config: WlinebarConfig, guide: SimpleGuideConfig, lineView: View, rawLineData: DataAdapterData[], barView: View, rawBarData: DataAdapterData[]) { + const { target, axis, value } = guide; + + // 如果用户指定了绘制目标,直接使用 + if (target === 'line') { + return lineView; + } else if (target === 'bar') { + return barView; + } + + if (axis && (value || value === 0) && /y\d/.test(axis)) { + const yIndex = Number(axis.replace(/^y/, '')); + if (getDataIndexColor(config.barColors, rawBarData, yIndex)) { + return barView; + } + } + + return lineView; +} diff --git a/src/Wmap/child.tsx b/src/Wmap/child.tsx new file mode 100644 index 00000000..bde7c025 --- /dev/null +++ b/src/Wmap/child.tsx @@ -0,0 +1,120 @@ +import { VoidFunctionComponent, ReactNode } from 'react'; +import { Types, ChartData } from '../common/types'; +// import Wmap, { WmapConfig } from "./index"; +// import { provinceName } from "./mapData/chinaGeoInfo"; +// import * as React from "react"; + +export interface MapChildProps { + data?: ChartData; + config?: Types.LooseObject; +} + +// class ChildBase { +// parent: Wmap = null; +// +// init (ctx: Wmap, config: WmapConfig, data: ChartData) { +// this.parent = ctx; +// } +// +// changeData(data: ChartData) {} +// } + +export const AREA_NAME = 'MapArea'; +export const MapArea: VoidFunctionComponent = () => { return null; }; +MapArea.displayName = AREA_NAME; + +// class Area extends ChildBase { +// init (ctx: Wmap, config: WmapConfig, data: ChartData) { +// super.init(ctx, config, data); +// +// const { chart, ds } = ctx; +// +// const areaMapDataView = ds +// .createView() +// .source(data) +// .transform({ +// type: 'map', +// callback(obj) { +// const { name, type, ...others } = obj; +// return { +// // @ts-ignore 将省份全称转化为简称 +// name: provinceName[name] ? provinceName[name] : name, +// type: String(type), +// ...others, +// }; +// }, +// }) +// .transform({ +// geoDataView: ctx.bgMapDataView, +// field: 'name', +// type: 'geo.region', +// as: ['x', 'y'], +// }); +// +// const areaMapView = chart.createView({ +// padding: 0, +// }); +// areaMapView.data(areaMapDataView.rows); +// /*const areaGeom = */areaMapView +// .polygon() +// .position('x*y') +// // 如果用连续型颜色,需要对数组倒序,否则颜色对应的数值会从小开始 +// .color('type', config.areaColors.join('-')) +// // .opacity('value') +// .tooltip('name*value', (name, value) => ({ +// name, +// value, +// })); +// +// if (config.geomStyle) { +// // areaGeom.style('name*value', config.geomStyle); +// } +// +// ctx.areaMapDataView = areaMapDataView; +// ctx.areaMapView = areaMapView; +// } +// +// // changeConfig(config) { +// // +// // } +// +// changeData(data: ChartData) { +// const { areaMapDataView } = this.parent; +// if (areaMapDataView.origin !== data) { +// areaMapDataView.source(data); +// } +// } +// } + +export const POINT_NAME = 'MapPoint'; +export const MapPoint: VoidFunctionComponent = () => { return null; }; +MapPoint.displayName = POINT_NAME; + +export const HEAT_MAP_NAME = 'MapHeatMap'; +export const MapHeatMap: VoidFunctionComponent = () => { return null; }; +MapHeatMap.displayName = HEAT_MAP_NAME; + +export const SHOOT_NAME = 'MapShoot'; +export const MapShoot: VoidFunctionComponent = () => { return null; }; +MapShoot.displayName = SHOOT_NAME; + +interface CustomMapChildProps extends MapChildProps { + render?(data: any, index: number): ReactNode; +} +export const CUSTOM_NAME = 'MapCustom'; +export const MapCustom: VoidFunctionComponent = () => { return null; }; +MapCustom.displayName = CUSTOM_NAME; + +export type MapChild = typeof MapArea | typeof MapPoint | typeof MapHeatMap | typeof MapShoot | typeof MapCustom; + +// function reactMapChild(child: Area) { +// return class ReactMapChild extends React.Component { +// static displayName = ''; +// +// +// +// render(): null { +// return null; +// } +// } +// } diff --git a/components/Wmap/G2Map.scss b/src/Wmap/index.scss similarity index 71% rename from components/Wmap/G2Map.scss rename to src/Wmap/index.scss index f32fcaaa..028400f1 100644 --- a/components/Wmap/G2Map.scss +++ b/src/Wmap/index.scss @@ -1,11 +1,13 @@ -.cloud-charts.G2Map { +@import "../themes/index"; + +.#{$base-name}.G2Map { position: relative; // 使缩放后的地图居中 display: flex; justify-content: center; align-items: center; - .cloud-charts-map-south-china-sea { + .#{$base-name}-map-south-china-sea { position: absolute; right: 0; bottom: 0; @@ -15,19 +17,19 @@ min-height: 88px; } - .cloud-charts-map-legend { - position: absolute; - left: 0; - bottom: 0; - - z-index: 1; - - .g2-legend:last-child .g2-legend-list-item:last-child { - margin-bottom: 0 !important; - } - } + //.#{$base-name}-map-legend { + // position: absolute; + // left: 0; + // bottom: 0; + // + // z-index: 1; + // + // .g2-legend:last-child .g2-legend-list-item:last-child { + // margin-bottom: 0 !important; + // } + //} - .cloud-charts-map-custom-container { + .#{$base-name}-map-custom-container { position: absolute; top: 0; left: 0; @@ -36,14 +38,14 @@ z-index: 1; pointer-events: none; } - .cloud-charts-map-custom-point { + .#{$base-name}-map-custom-point { position: absolute; // 将元素中心位置对齐到坐标点 transform: translate(-50%, -50%); pointer-events: auto; } - .cloud-charts-map-shoot { + .#{$base-name}-map-shoot { position: absolute; top: 0; left: 0; diff --git a/src/Wmap/index.tsx b/src/Wmap/index.tsx new file mode 100644 index 00000000..02a044d9 --- /dev/null +++ b/src/Wmap/index.tsx @@ -0,0 +1,1014 @@ +'use strict'; + +import * as React from 'react'; +// DataSet +import { DataSet } from '@antv/data-set/lib/data-set'; +import { View as DataView } from '@antv/data-set/lib/view'; +import '@antv/data-set/lib/api/statistics'; +import '@antv/data-set/lib/api/geo'; +import '@antv/data-set/lib/connector/geojson'; +import '@antv/data-set/lib/transform/map'; +import '@antv/data-set/lib/transform/filter'; +import '@antv/data-set/lib/transform/geo/projection'; +import '@antv/data-set/lib/transform/geo/region'; +import { Chart, View, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base, { ChartProps, rootClassName } from "../common/Base"; +import errorWrap from '../common/errorWrap'; +// @ts-ignore +import chinaGeo from './mapData/chinaGeo.json'; +import SouthChinaSea from './mapData/southChinaSea'; +import { provinceName, positionMap } from './mapData/chinaGeoInfo'; +import themes from '../themes/index'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import label, { LabelConfig } from "../common/label"; +import geomSize, { GeomSizeConfig } from '../common/geomSize'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import { + MapChild, + MapArea, + MapPoint, + MapHeatMap, + MapShoot, + MapCustom +} from './child'; +import './index.scss'; +import Wshoot, { ShootProps } from "../Wshoot"; +import { FullCrossName } from '../constants'; +import { warn } from '../common/log'; +import { merge } from '../common/common'; + +// 这几个地点太小,需要特殊处理边框颜色 +const minArea = ['钓鱼岛', '赤尾屿', '香港', '澳门']; +// 这几个地点需要特殊处理标签的文字大小 +const minLabel = ['钓鱼岛', '赤尾屿']; + +// 特殊处理一些地区的label +const fixLngLatMap = { + 甘肃: [104.4948862, 35.0248462], + 河北: [115.5193875, 38.3062153], + 天津: [118.2141694, 38.8206246], + 澳门: [113.2573035, 21.7906005], + 香港: [114.9040905, 21.9265955], + 陕西: [108.5133047, 33.8799429], + 上海: [122.2818331, 31.0480268], +}; + + + +interface WmapConfig extends BaseChartConfig { + background?: { + fill?: string; + stroke?: string; + }; + areaColors?: Colors; + pointColors?: Colors; + heatColors?: Colors; + showSouthChinaSea?: boolean; + type?: string; + projection?: Function; + + legend?: LegendConfig | boolean, + tooltip?: TooltipConfig | boolean, + /** @deprecated labels 已废弃,请使用 label */ + labels?: LabelConfig | boolean; + label?: LabelConfig | boolean; + size?: GeomSizeConfig; + geomStyle?: GeomStyleConfig; +} + +export interface MapProps extends ChartProps { + geoData?: any; + children?: MapChild; +} + +interface MapState { + customPointLayer: CustomProps[]; + shootLayer: ShootProps[]; + southChinaSeaKey: number; +} + +interface CustomProps { + data: MapData; + render(data: Types.LooseObject, index: number, otherProps: any): React.ReactNode; +} + +export class Map extends Base { + public static Area = MapArea; + public static Point = MapPoint; + public static HeatMap = MapHeatMap; + public static Shoot = MapShoot; + public static Custom = MapCustom; + + // 元数据 + public static chinaGeoData = chinaGeo; + public static provinceName = provinceName; + public static positionMap = positionMap; + + public static getGeoProjection = DataSet.View.prototype.getGeoProjection; + + state: MapState = { + customPointLayer: [], + shootLayer: [], + southChinaSeaKey: 0, + }; + + componentDidMount() { + super.componentDidMount(); + + this.convertChildren(this.props.children, this.props.config, true); + } + + componentDidUpdate(prevProps: MapProps) { + if (!this.isReRendering && this.props.children !== prevProps.children) { + this.convertChildren(this.props.children, this.props.config); + } + + super.componentDidUpdate(prevProps); + } + + shouldComponentUpdate() { + return !(this.isReRendering || !this.chart); + } + + rerender() { + super.rerender(); + + const config = this.props.config || {}; + // fix: 动态切换主题后南海诸岛地图没有更新 + if (config.showSouthChinaSea === undefined || config.showSouthChinaSea) { + this.setState({ + southChinaSeaKey: this.state.southChinaSeaKey + 1, + }); + } + } + + convertPosition = (d: Types.LooseObject) => { + if (!d) { + return undefined; + } + let point = convertPointPosition(this, d); + return this.bgMapView.getXY(point); + }; + + convertChildren(children = this.props.children, config = this.props.config, isInit = false) { + const customPointLayer: CustomProps[] = []; + const shootLayer: ShootProps[] = []; + React.Children.forEach(children, (child) => { + if (!child) { + return; + } + // @ts-ignore + const { props, type } = child; + + if (type.displayName === MapCustom.displayName) { + let newData = props.data; + if (Array.isArray(newData)) { + newData = newData.map((d) => { + const position = this.convertPosition(d ? { ...d } : null); + if (!position) { + return null; + } + return { ...d, x: position.x, y: position.y }; + }); + } + customPointLayer.push({ ...props, data: newData }); + return; + } + if (type.displayName === MapShoot.displayName) { + // 数据转换在 Shoot 内部完成 + shootLayer.push(props); + return; + } + + if (!isInit) { + const { data, ...propsConfig } = props; + const layerConfig = Object.assign({}, config, propsConfig); + + this.changeChildData(this.chart, layerConfig, type.displayName, data); + } + }); + if (!isInit) { + this.chart.render(true); + } + this.setState({ + customPointLayer, + shootLayer, + }); + } + + renderCustomPointLayer(layer: CustomProps, layerIndex: number) { + if (!this.chart) { + return null; + } + const { data, render, ...otherProps } = layer; + + return ( +
    + { + Array.isArray(data) && data.map((d, i) => { + if (!d) { + return null; + } + + const pointStyle = { + left: d.x, + top: d.y, + }; + return ( +
    + {render && render(d, i, otherProps)} +
    + ); + }) + } +
    + ); + } + + renderShootLayer(shootProps: ShootProps, shootIndex: number) { + if (!this.chart) { + return null; + } + const { className, style, ...otherShootProps } = shootProps; + const { width: chartWidth, height: chartHeight } = this.chart; + // const [width, height] = this.bgMapSize; + // const layerStyle = { + // left: (chartWidth - width) / 2, + // top: (chartHeight - height) / 2, + // width, + // height, + // ...(style || {}) + // }; + + return ( + + ); + } + + renderSouthChinaSea(rootConfig: WmapConfig) { + const config = merge({}, this.defaultConfig, rootConfig || {}); + if (config.showSouthChinaSea === undefined || config.showSouthChinaSea) { + const { southChinaSeaKey } = this.state; + const { fill } = config.background || {}; + const mapColor = fill || themes['widgets-map-area-bg']; + + return ; + } else { + return null; + } + } + + render() { + const { className = '', style, children, data, width, height, padding, geoData, config, language, event, getChartInstance, enableFunctionUpdate, renderer, animate, ...otherProps } = this.props; + const { customPointLayer, shootLayer } = this.state; + return ( +
    this.chartDom = dom} id={this.chartId} className={rootClassName + 'G2Map ' + className} style={style} {...otherProps}> + {this.renderSouthChinaSea(config)} + { + shootLayer.length > 0 && shootLayer.map((shoot, i) => { + return this.renderShootLayer(shoot, i); + }) + } + { + customPointLayer.length > 0 && customPointLayer.map((layer, i) => { + return this.renderCustomPointLayer(layer, i); + }) + } +
    + ); + } + + chartName = 'G2Map'; + + convertData = false; + + getDefaultConfig(): WmapConfig { + return { + padding: [20, 20, 20, 20], + background: { + fill: themes['widgets-map-area-bg'], + stroke: themes['widgets-map-area-border'], + }, + areaColors: themes.order_10, + pointColors: themes.category_12, + heatColors: 'rgb(0,0,255)-rgb(0,255,0)-rgb(255,255,0)-rgb(255,0,0)', + type: 'china', + showSouthChinaSea: true, + projection: null, + legend: { + position: 'left', + align: 'bottom', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + nameFormatter: null, + valueFormatter: null, + }, + labels: false, + label: false, + }; + } + + beforeInit(props: MapProps) { + const { geoData } = props; + if (geoData) { + this.geoData = geoData; + } + + return props; + } + + geoData: any = null; + + ds: DataSet = null; + + projection: Function = null; + + bgMapDataView: DataView = null; + bgMapView: View = null; + + areaMapDataView: DataView = null; + areaMapView: View = null; + + pointMapDataView: DataView = null; + pointMapView: View = null; + + heatMapDataView: DataView = null; + heatMapView: View = null; + + labelMapView: View = null; + + init(chart: Chart, config: WmapConfig) { + // 同步度量 + chart.scale({ + longitude: { + sync: true, + }, + latitude: { + sync: true, + }, + x: { + nice: false, + sync: true, + }, + y: { + nice: false, + sync: true, + }, + }); + + // 设置了 geo.projection 变换后,几何体的坐标系和图表的坐标系(从左下角到右上角)上下相反,所以设置镜像使地图的坐标正确。 + chart.coordinate().reflect('y'); + + chart.axis(false); + + rectTooltip( + this, + chart, + config, + { + showTitle: false, + }, + (ev: any) => { + if (typeof config.tooltip === 'boolean') { + return; + } + const { nameFormatter, valueFormatter } = config.tooltip; + const { items } = ev.data; + items.forEach((item: any, index: number) => { + const raw = item.data || {}; + + if (valueFormatter) { + item.value = valueFormatter(item.value, raw, index, items); + } + if (nameFormatter) { + item.name = nameFormatter(item.name, raw, index, items); + } + }); + }, + { + showTitle: false, + showCrosshairs: false, + // crosshairs: null, + showMarkers: false, + } + ); + + // 设置图例 + rectLegend(this, chart, config, {}, false); + + const ds = new DataSet(); + this.ds = ds; + + drawMapBackground(this, chart, ds, config); + + React.Children.forEach(this.props.children, (child: MapChild) => { + if (!child) { + return; + } + // @ts-ignore + const { props, type } = child; + const layerConfig = Object.assign({}, config, props.config); + // G2 图层需要转化数据格式 + let { data } = props; + if (layerConfig.dataType !== 'g2') { + data = convertMapData(data, type.displayName); + } + if (type.displayName === MapArea.displayName) { + drawMapArea(this, chart, ds, layerConfig, data); + } + if (type.displayName === MapPoint.displayName) { + drawMapPoint(this, chart, ds, layerConfig, data); + } + if (type.displayName === MapHeatMap.displayName) { + drawHeatMap(this, chart, ds, layerConfig, data); + } + }); + + if (config.labels || config.label) { + drawMapLabel(this, chart, config); + } + + // chart.render(); + } + + // addLayer(child: MapChild) { + // if (child && child.addParent) { + // child.addParent(this); + // } + // } + + /** 地图正确的长宽比 */ + bgMapRatio: number = 1; + + /** 地图正确的尺寸 */ + bgMapSize: [number, number] = [0, 0]; + + changeSize(chart: Chart, config: WmapConfig, chartWidth: number, chartHeight: number) { + const chartRatio = chartWidth / chartHeight; + const ratio = this.bgMapRatio || chartRatio; + + let width = chartWidth; + let height = chartHeight; + if (chartRatio > ratio) { + width = chartHeight * ratio; + } else if (chartRatio < ratio) { + height = chartWidth / ratio; + } + if (width !== chartWidth || height !== chartHeight) { + const p1 = (chartWidth - width) / 2; + const p2 = (chartHeight - height) / 2; + chart.appendPadding = [p2, p1, p2, p1]; + } + + this.bgMapSize = [width, height]; + + chart.changeSize(chartWidth, chartHeight); + + // React 版方法 + this.convertChildren(this.props.children, this.props.config, true); + } + + changeChildData(chart: Chart, config: WmapConfig, viewName: string, newData: ChartData) { + const { ds } = this; + let data = newData; + if (config.dataType !== 'g2') { + data = convertMapData(newData, viewName); + } + if (viewName === MapArea.displayName) { + drawMapArea(this, chart, ds, config, data); + } + if (viewName === MapPoint.displayName) { + drawMapPoint(this, chart, ds, config, data); + } + if (viewName === MapHeatMap.displayName) { + drawHeatMap(this, chart, ds, config, data); + } + } + + /** @override Map 使用自定义 changeData 方法,覆盖原方法逻辑 */ + changeData() {} + + // 销毁时需要清空 dataView,否则切换主题时,更新会进入到旧的图表实例中 + destroy() { + this.bgMapDataView = null; + this.areaMapDataView = null; + this.pointMapDataView = null; + this.heatMapDataView = null; + } +} + +// 绘制地图背景 +function drawMapBackground(ctx: Map, chart: Chart, ds: DataSet, config: WmapConfig) { + let geoData = null; + if (ctx.geoData) { + // 如果用户有传geoData,优先使用 + geoData = ctx.geoData; + } else if (config.type === 'china') { + // 自带中国地图数据 + geoData = chinaGeo; + } else { + warn('Wmap', 'no geo data, can\'t draw the map!'); + } + + const bgMapDataView = ds.createView('bgMap').source(geoData, { + type: 'GeoJSON', + }); + + let { projection } = config; + + if (!projection) { + projection = bgMapDataView.getGeoProjection('geoConicEqualArea'); + projection + // @ts-ignore + .center([0, 36.4]) + .parallels([25, 47]) + .scale(1000) + .rotate([-105, 0]) + .translate([0, 0]); + } + + bgMapDataView.transform({ + type: 'geo.projection', + // 因为G2的投影函数不支持设置投影参数,这里使用自定义的投影函数设置参数 + // @ts-ignore + projection() { + return projection; + }, + as: ['x', 'y', 'cX', 'cY'], + }); + + if (config.type === 'china') { + // 过滤掉南海诸岛 + bgMapDataView.transform({ + type: 'filter', + callback(row) { + return row.properties.name !== '南海诸岛'; + }, + }); + } + + // start: 按照投影后尺寸比例调整图表的真实比例 + const longitudeRange = bgMapDataView.range('x'); + const latitudeRange = bgMapDataView.range('y'); + const ratio = + (longitudeRange[1] - longitudeRange[0]) / + (latitudeRange[1] - latitudeRange[0]); + ctx.bgMapRatio = ratio; + const { width: chartWidth, height: chartHeight } = chart; + const chartRatio = chartWidth / chartHeight; + + let width = chartWidth; + let height = chartHeight; + if (chartRatio > ratio) { + width = chartHeight * ratio; + } else if (chartRatio < ratio) { + height = chartWidth / ratio; + } + if (width !== chartWidth || height !== chartHeight) { + const p1 = (chartWidth - width) / 2; + const p2 = (chartHeight - height) / 2; + // 不设置尺寸,通过padding控制地图形状 + chart.appendPadding = [p2, p1, p2, p1]; + } + ctx.bgMapSize = [width, height]; + // end: 按照投影后尺寸比例调整图表的真实比例 + + const { fill: bgFill, stroke: bgStroke, ...otherBgStyle } = + config.background || {}; + + const bgMapView = chart.createView({ + padding: 0, + }); + bgMapView.data(bgMapDataView.rows); + bgMapView.tooltip(false); + bgMapView + .polygon() + .position('x*y') + .style('name', function(name) { + const result = { + fill: bgFill || themes['widgets-map-area-bg'], + stroke: bgStroke || themes['widgets-map-area-border'], + lineWidth: 1, + ...otherBgStyle, + }; + // 对一些尺寸非常小的形状特殊处理,以显示出来。 + if (minArea.indexOf(name) > -1) { + result.stroke = bgFill || themes['widgets-map-area-bg']; + } + return result; + }); + + ctx.bgMapDataView = bgMapDataView; + ctx.bgMapView = bgMapView; + + ctx.projection = projection; +} + +// 绘制分级统计地图 +function drawMapArea(ctx: Map, chart: Chart, ds: DataSet, config: WmapConfig, data: MapData) { + let { areaMapDataView, areaMapView } = ctx; + if (areaMapDataView) { + if (areaMapDataView.origin !== data) { + areaMapDataView.source(data); + areaMapView.data(areaMapDataView.rows); + } + } else { + areaMapDataView = ds + .createView() + .source(data) + .transform({ + type: 'map', + callback(obj) { + const { name, type, ...others } = obj; + return { + // @ts-ignore 将省份全称转化为简称 + name: provinceName[name] ? provinceName[name] : name, + type: String(type), + ...others, + }; + }, + }) + .transform({ + geoDataView: ctx.bgMapDataView, + field: 'name', + type: 'geo.region', + as: ['x', 'y'], + }); + + const areaMapView = chart.createView({ + padding: 0, + }); + areaMapView.data(areaMapDataView.rows); + const areaGeom = areaMapView + .polygon() + .position('x*y') + // 如果用连续型颜色,需要对数组倒序,否则颜色对应的数值会从小开始 + .color('areaType', getMapContinuousColor(config.areaColors)) + // .opacity('value') + .tooltip('name*value', (name, value) => ({ + name, + value, + })); + + geomStyle(areaGeom, config.geomStyle); + + ctx.areaMapDataView = areaMapDataView; + ctx.areaMapView = areaMapView; + } +} + +// 绘制散点图 +function drawMapPoint(ctx: Map, chart: Chart, ds: DataSet, config: WmapConfig, data: MapData) { + let { pointMapDataView, pointMapView } = ctx; + if (pointMapDataView) { + if (pointMapDataView.origin !== data) { + pointMapDataView.source(data); + pointMapView.data(pointMapDataView.rows); + } + } else { + pointMapDataView = ds + .createView() + .source(data) + .transform({ + type: 'map', + callback: point => { + const newPoint = Object.assign({}, point); + newPoint.type = String(newPoint.type); + return convertPointPosition(ctx, newPoint); + }, + }); + + const pointMapView = chart.createView({ + padding: 0, + }); + pointMapView.data(pointMapDataView.rows); + const pointGeom = pointMapView + .point() + .position('x*y') + .shape('circle') + .color('pointType', config.pointColors) + .tooltip('name*value', (name, value) => ({ + name, + value, + })) + // .active(false); + + geomSize(pointGeom, config.size, 4, 'value', 'name*value'); + + geomStyle(pointGeom, config.geomStyle); + + if (config.labels) { + warn('config.labels', '属性已废弃,请使用 config.label'); + } + + label(pointGeom, config, 'name', { + // FIXME 默认的动画会导致部分label不显示,暂时关闭动画 + animate: false, + }); + if (config.labels || config.label) { + // let labelConfig = {}; + // if (typeof config.labels === 'object') { + // labelConfig = config.labels; + // } else if (typeof config.label === 'object') { + // labelConfig = config.label; + // } + // + // const { offset = 0, textStyle = {}, formatter } = labelConfig; + // pointGeom.label('name', { + // FIXME 默认的动画会导致部分label不显示,暂时关闭动画 + // animate: false, + // offset: `${offset - Number(themes['widgets-font-size-1'].replace('px', ''))}`, + // textStyle: { + // fill: themes['widgets-map-label'], + // // 需要去掉 px 的字符串 + // fontSize: themes['widgets-font-size-1'].replace('px', ''), + // textBaseline: 'middle', + // ...textStyle, + // }, + // formatter: formatter || null, + // }); + } + + ctx.pointMapDataView = pointMapDataView; + ctx.pointMapView = pointMapView; + } +} + +// 绘制热力图 +function drawHeatMap(ctx: Map, chart: Chart, ds: DataSet, config: WmapConfig, data: MapData) { + let { heatMapDataView, heatMapView } = ctx; + if (heatMapDataView) { + if (heatMapDataView.origin !== data) { + heatMapDataView.source(data); + heatMapView.data(heatMapDataView.rows); + } + } else { + heatMapDataView = ds + .createView() + .source(data) + .transform({ + type: 'map', + callback: point => { + const newPoint = Object.assign({}, point); + newPoint.type = String(newPoint.type); + return convertPointPosition(ctx, newPoint); + }, + }); + + const heatMapView = chart.createView({ + padding: 0, + }); + heatMapView.data(heatMapDataView.rows); + chart.legend('value', false); + + const heatGeom = heatMapView + .heatmap() + .position('x*y') + .color('value', config.heatColors) + .tooltip('name*value', (name, value) => ({ + name, + value, + })) + + geomSize(heatGeom, config.size, 16, 'value', 'name*value'); + + ctx.heatMapDataView = heatMapDataView; + ctx.heatMapView = heatMapView; + } +} + +// 绘制背景地图标签 +function drawMapLabel(ctx: Map, chart: Chart, config: WmapConfig) { + const labelConfig = config.labels || config.label; + + // 将背景数据集中的中心点坐标(cX, cY)映射为新数据中的x, y。保证scale可以同步这个view的度量。 + const labelData = ctx.bgMapDataView.rows.map(row => { + const label = { + name: row.name, + x: row.cX, + y: row.cY, + }; + + // @ts-ignore fix 某些地区label位置不好,需要重新定位 + const fixLngLat = fixLngLatMap[row.name]; + if (fixLngLat) { + // @ts-ignore 第二个参数支持函数 + const position = ctx.bgMapDataView.geoProjectPosition(fixLngLat, ctx.projection, true); + label.x = position[0]; + label.y = position[1]; + } + + return label; + }); + + // @ts-ignore label 需要函数处理,无法放到 label 工具函数中 + const { offset = 0, textStyle = {}, labelFormatter } = + typeof labelConfig === 'object' ? labelConfig : {}; + + const labelMapView = chart.createView({ + padding: 0, + }); + labelMapView.data(labelData); + labelMapView + .point() + .position('x*y') + .size(0) + .label('name', function (name) { + let fontSize = themes['widgets-font-size-1'].replace('px', ''); + // 对一些尺寸非常小的形状特殊处理,以显示出来。 + if (minLabel.indexOf(name) > -1) { + fontSize = String(Number(fontSize) * 2 / 3); + } + const labelStyle = { + fill: themes['widgets-map-label'], + // 需要去掉 px 的字符串 + fontSize: fontSize, + textBaseline: 'middle', + ...textStyle, + } + const result: Types.GeometryLabelCfg = { + offset, + style: labelStyle, + // FIXME 默认的动画会导致部分label不显示,暂时关闭动画 + animate: false, + }; + if (labelFormatter) { + result.content = (v, item, index) => { + return labelFormatter(v['name'], item, index); + } + } + return result; + }) + .tooltip(false) + // .active(false); + + ctx.labelMapView = labelMapView; +} + + +type MapData = Types.LooseObject[]; +interface RawMapData { + name: string; + data: MapData; +} + +// 转换地图数据结构,因为和默认结构不同,需要特殊处理。 +function convertMapData(data: RawMapData[], viewName: string) { + if (!Array.isArray(data)) { + return []; + } + let typeName = 'type'; + if (viewName === MapArea.displayName) { + typeName = 'areaType'; + } + if (viewName === MapPoint.displayName) { + typeName = 'pointType'; + } + // if (viewName === MapHeatMap.displayName) { + // typeName = 'heatmapType'; + // } + const result: MapData = []; + data.forEach(item => { + const { name = '', data: itemData } = item; + if (!Array.isArray(itemData)) { + return; + } + itemData.forEach(d => { + result.push({ + ...d, + [typeName]: d.type || name, + }); + }); + }); + + return result; +} + +// 计算数据的坐标点 +export function convertPointPosition(ctx: Map, point: Types.LooseObject) { + if (point.x && point.y) { + return point; + } + if (!ctx.bgMapDataView) { + return point; + } + + const { projection } = ctx; + if (point.lng && point.lat) { + return getProjectionPosition( + point, + ctx.bgMapDataView, + projection, + Number(point.lng), + Number(point.lat) + ); + } + if (point.name) { + let { name } = point; + if (!/^\w/.test(name)) { + if (/^\u963F\u62C9/.test(name) || /^\u5F20\u5BB6/.test(name)) { + // 阿拉、张家 两个开头的需要截取三个字符 + name = name.slice(0, 3); + } else if (!/\u7701$/.test(name) && !/\u81ea\u6cbb\u533a$/.test(name)) { + // 以"省" / "自治区"结尾的不截断 + name = name.slice(0, 2); + } + } + // @ts-ignore + const position = positionMap[name]; + if (position) { + return getProjectionPosition( + point, + ctx.bgMapDataView, + projection, + position.lng, + position.lat + ); + } + } + if (!point.x || !point.y) { + warn('Wmap', '无法定位地点', point); + } + return point; +} + +function getProjectionPosition(point: Types.LooseObject, view: DataView, projection: Function, lng: number, lat: number) { + // @ts-ignore + const projectedCoord = view.geoProjectPosition([lng, lat], projection, true); + point.x = projectedCoord[0]; + point.y = projectedCoord[1]; + return point; +} + +// // 地图的tooltip逻辑 +// function mapTooltip(chart, config) { +// // tooltip +// if (config.tooltip !== false) { +// const { nameFormatter, valueFormatter, customConfig } = +// config.tooltip || {}; +// +// const tooltipCfg = { +// showTitle: false, +// crosshairs: null, +// itemTpl: +// '
  • ' + +// '' + +// '{name}:{value}
  • ', +// }; +// +// if (customConfig) { +// merge(tooltipCfg, customConfig); +// } +// +// chart.tooltip(tooltipCfg); +// +// if (nameFormatter || valueFormatter) { +// chart.on('tooltip:change', ev => { +// ev.items.forEach((item, index) => { +// const raw = item.point._origin || {}; +// +// if (valueFormatter) { +// item.value = valueFormatter(item.value, raw, index, ev.items); +// } +// if (nameFormatter) { +// item.name = nameFormatter(item.name, raw, index, ev.items); +// } +// }); +// }); +// } +// } else { +// chart.tooltip(false); +// } +// } + +function getMapContinuousColor(color: Colors) { + if (Array.isArray(color)) { + return color.join('-'); + } else { + return color; + } +} + +const Wmap: typeof Map = errorWrap(Map); + +Wmap.Area = Map.Area; +Wmap.Point = Map.Point; +Wmap.HeatMap = Map.HeatMap; +Wmap.Shoot = Map.Shoot; +Wmap.Custom = Map.Custom; +Wmap.chinaGeoData = Map.chinaGeoData; +Wmap.provinceName = Map.provinceName; +Wmap.positionMap = Map.positionMap; +Wmap.getGeoProjection = Map.getGeoProjection; + +export default Wmap; diff --git a/components/Wmap/mapData/chinaGeo.json b/src/Wmap/mapData/chinaGeo.json similarity index 100% rename from components/Wmap/mapData/chinaGeo.json rename to src/Wmap/mapData/chinaGeo.json diff --git a/components/Wmap/mapData/chinaGeoInfo.js b/src/Wmap/mapData/chinaGeoInfo.ts similarity index 100% rename from components/Wmap/mapData/chinaGeoInfo.js rename to src/Wmap/mapData/chinaGeoInfo.ts diff --git a/components/Wmap/mapData/southChinaSea.jsx b/src/Wmap/mapData/southChinaSea.jsx similarity index 100% rename from components/Wmap/mapData/southChinaSea.jsx rename to src/Wmap/mapData/southChinaSea.jsx diff --git a/components/Wminicontainer/index.scss b/src/Wminicontainer/index.scss similarity index 100% rename from components/Wminicontainer/index.scss rename to src/Wminicontainer/index.scss diff --git a/components/Wminicontainer/index.jsx b/src/Wminicontainer/index.tsx similarity index 56% rename from components/Wminicontainer/index.jsx rename to src/Wminicontainer/index.tsx index 199c526f..ca3db638 100644 --- a/components/Wminicontainer/index.jsx +++ b/src/Wminicontainer/index.tsx @@ -1,23 +1,32 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; import { getStatusColorName } from '../common/common'; import chartLog from "../common/log"; -import { isMobileWithProps } from "../common/platform"; +import { isMobileWithProps, MobileProps } from "../common/platform"; +import { Status } from '../common/types'; +import { FullCrossName, PrefixName } from '../constants'; import './index.scss'; -const prefix = 'cloud-wminicontainer'; +const prefix = `${PrefixName}-wminicontainer`; -export default class Wminicontainer extends React.Component { +interface WminicontainerProps extends MobileProps { + className?: string; + style?: React.CSSProperties; + width?: string | number; + height?: string | number; + status?: Status | string; +} + +export default class Wminicontainer extends React.Component { static displayName = 'Wminicontainer'; static defaultProps = { status: '' }; - constructor(props) { + constructor(props: WminicontainerProps) { super(props); // 图表初始化时记录日志 @@ -27,9 +36,9 @@ export default class Wminicontainer extends React.Component { render() { const { height = 80, className, status, style, isMobile, ...otherProps } = this.props; const mainClasses = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, [`${prefix}`]: true, - [`${prefix}-mobile`]: isMobileWithProps(otherProps, isMobile), + [`${prefix}-mobile`]: isMobileWithProps(this.props), [`${prefix}-${getStatusColorName(status)}`]: !!status, [className]: !!className }); @@ -47,8 +56,3 @@ export default class Wminicontainer extends React.Component { ); } } - -Wminicontainer.propTypes = { - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) -}; - diff --git a/components/Wplaceholder/scss/mixin.scss b/src/Wminicontainer/scss/function.scss similarity index 100% rename from components/Wplaceholder/scss/mixin.scss rename to src/Wminicontainer/scss/function.scss diff --git a/components/Wminicontainer/scss/mixin.scss b/src/Wminicontainer/scss/mixin.scss similarity index 100% rename from components/Wminicontainer/scss/mixin.scss rename to src/Wminicontainer/scss/mixin.scss diff --git a/components/Wminicontainer/scss/variable.scss b/src/Wminicontainer/scss/variable.scss similarity index 88% rename from components/Wminicontainer/scss/variable.scss rename to src/Wminicontainer/scss/variable.scss index 75827819..c43088a3 100644 --- a/components/Wminicontainer/scss/variable.scss +++ b/src/Wminicontainer/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wminicontainer-prefix: '.cloud-wminicontainer'; +$wminicontainer-prefix: '.#{$base-prefix}-wminicontainer'; $wminicontainer-bg-color: getVar(widgets-container-background, $widgets-container-background); diff --git a/components/Wrectangle/index.en-US.md b/src/Wminiline/index.scss similarity index 100% rename from components/Wrectangle/index.en-US.md rename to src/Wminiline/index.scss diff --git a/src/Wminiline/index.tsx b/src/Wminiline/index.tsx new file mode 100644 index 00000000..54357120 --- /dev/null +++ b/src/Wminiline/index.tsx @@ -0,0 +1,34 @@ +'use strict'; + +import { Line, WlineConfig } from '../Wline'; +import errorWrap from '../common/errorWrap'; + +export class Miniline extends Line { + chartName = 'G2MiniLine'; + + getDefaultConfig(): WlineConfig { + return { + padding: [0, 0, 0, 0], + xAxis: { + visible: false, + type: 'time', // 默认为线性 + mask: 'auto', // 上述type为time时,此字段生效 + }, + yAxis: { + visible: false, + max: null, + min: null, + }, + legend: false, + tooltip: false, + area: false, + spline: false, + symbol: false, + label: false, + }; + } +} + +const Wminiline: typeof Miniline = errorWrap(Miniline) + +export default Wminiline; diff --git a/src/Wmultipie/index.scss b/src/Wmultipie/index.scss new file mode 100644 index 00000000..2d997995 --- /dev/null +++ b/src/Wmultipie/index.scss @@ -0,0 +1,45 @@ +@import "../themes/index"; + +.#{$base-name}.G2MultiPie { + position: relative; + text-align: center; + box-sizing: border-box; + + .#{$base-name}-children { + position: absolute; + top: 50%; + left: 50%; + text-align: center; + max-width: 100%; + max-height: 100%; + transform: translate(-50%, -50%); + //overflow: auto; + } + + //& > div { + // height: 100%; + // display: inline-flex; + // justify-content: center; + // align-items: center; + // text-align: left; + // + // & > canvas { + // position: static; + // flex: none; + // } + // + // // hack掉图例的高度限制,比用legend.maxLength逻辑要简单 + // .g2-legend { + // max-width: none !important; + // max-height: 100% !important; + // } + // + // .g2-tooltip-list > li:first-child { + // margin-top: 0 !important; + // } + // + // .g2-legend-list-item:last-child { + // margin-bottom: 1px !important; + // } + //} +} diff --git a/src/Wmultipie/index.tsx b/src/Wmultipie/index.tsx new file mode 100644 index 00000000..533de14a --- /dev/null +++ b/src/Wmultipie/index.tsx @@ -0,0 +1,267 @@ +'use strict'; + +import { View as DataView } from '@antv/data-set/lib/view'; +import '@antv/data-set/lib/api/hierarchy'; +import '@antv/data-set/lib/connector/hierarchy'; +import '@antv/data-set/lib/transform/hierarchy/partition' +import { Chart, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base from "../common/Base"; +import themes from '../themes/index'; +import { numberDecimal } from '../common/common'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import polarLegendLayout from '../common/polarLegendLayout'; +import updateChildrenPosition from '../common/updateChildrenPosition'; +import errorWrap from '../common/errorWrap'; +import './index.scss'; + +interface WmultipieConfig extends BaseChartConfig { + colors?: Colors; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + autoSort?: boolean; + cycle?: boolean; + innerRadius?: number; + outerRadius?: number; + geomStyle?: GeomStyleConfig; +} + +function getParentList(node: Types.LooseObject, target: Types.LooseObject[] = []): Types.LooseObject[] { + const parentNode = node.parent; + // 需要存储根节点,所以一直到 parentNode===null(此时在根节点上) + if (!parentNode) { + return target; + } + + target.unshift({ + name: parentNode.data.name, + value: parentNode.value, + rawValue: parentNode.data.value, + depth: parentNode.depth, + }); + + return getParentList(parentNode, target); +} + +function computeData(ctx: MultiPie, data: ChartData) { + let dv = null; + if (ctx.dataView) { + dv = ctx.dataView; + dv.source(data, { + type: 'hierarchy', + }); + } else { + dv = new DataView(); + ctx.dataView = dv; + + dv.source(data, { + type: 'hierarchy', + }).transform({ + type: 'hierarchy.partition', // 根据树形数据生成相邻层次图 Adjacency Diagram 布局 + as: ['x', 'y'], + }); + } + + const source: Types.Data = []; + + dv.getAllNodes().forEach((node) => { + if (node.depth === 0) { + // 父节点不展示 + return; + } + // var obj = {}; + // obj.name = node.data.name; + // obj.rawValue = node.data.value; + // obj.value = node.value; + // obj.x = node.x; + // obj.y = node.y; + source.push({ + name: node.data.name, + value: node.value, + rawValue: node.data.value, + depth: node.depth, + parent: getParentList(node), + x: node.x, + y: node.y, + }); + return node; + }); + + // 挂载转换后的数据 + ctx.data = source; + + return source; +} + +export class MultiPie extends Base { + chartName = 'G2MultiPie'; + + convertData = false; + + getDefaultConfig(): WmultipieConfig { + return { + colors: themes.category_12, + // padding: [20, 20, 20, 20], + legend: { + position: 'right', + align: '', + nameFormatter: null, // 可以强制覆盖,手动设置label + valueFormatter: null, + }, + tooltip: { + nameFormatter: null, + valueFormatter: null, + }, + cycle: false, + innerRadius: 0.6, // 内环半径大小,仅cycle为true时可用 + outerRadius: 0.8, // 饼图半径大小,初始化时可用 + // drawPadding: [10, 10, 10, 10], + }; + } + + dataView: DataView = null; + + data: Types.Data = []; + + init(chart: Chart, config: WmultipieConfig, data: ChartData) { + const source = computeData(this, data); + + chart.data(source); + + const thetaConfig: Types.CoordinateCfg = { + radius: Math.max(Math.min(config.outerRadius, 1), 0.01), + }; + if (config.cycle) { + thetaConfig.innerRadius = Math.max(Math.min(config.innerRadius, 1), 0); + } + + chart.coordinate('polar', thetaConfig); + + chart.axis(false); + + rectLegend(this, chart, config, {}, true, null, true); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + shared: false, + }, + (ev: any) => { + const { items } = ev.data; + items.forEach((item: any, index: number) => { + if (typeof config.tooltip === 'boolean') { + return; + } + + const pointData = item.data; + const rootNode = pointData.parent[0]; + const percent = numberDecimal(item.value / rootNode.value, 4); + + if (config.tooltip.valueFormatter) { + item.value = config.tooltip.valueFormatter(item.value, { + percent, + ...pointData, + }, index, items); + } + if (config.tooltip.nameFormatter) { + item.name = config.tooltip.nameFormatter(item.name, { + percent, + ...pointData, + }, index, items); + } + }); + }, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + shared: false, + } + ); + + const geom = chart.polygon() + .position('x*y') + .color('name', config.colors) + .tooltip('name*value*rawValue*depth', (name, value) => { + return { + name, + value, + }; + }); + + geomStyle(geom, config.geomStyle, undefined, 'name*value*rawValue*depth'); + + polarLegendLayout(chart); + + chart.on('afterrender', () => { + updateChildrenPosition(chart, this.chartDom); + }); + } + + changeData(chart: Chart, config: WmultipieConfig, data: ChartData) { + const source = computeData(this, data); + + chart.changeData(source); + } +} + +const WmultiPie: typeof MultiPie = errorWrap(MultiPie); + +export default WmultiPie; + +// export default /*#__PURE__*/ errorWrap(g2Factory('G2MultiPie', Object.assign({}, G2PieBase, { +// convertData: false, +// getDefaultConfig() { +// return { +// colors: themes.category_12, +// padding: [20, 20, 20, 20], +// legend: { +// // position: 'right', +// nameFormatter: null, // 可以强制覆盖,手动设置label +// valueFormatter: null, +// }, +// tooltip: { +// nameFormatter: null, +// valueFormatter: null, +// }, +// innerRadius: null, // 内环半径大小,仅cycle为true时可用 +// outerRadius: 0.8, // 饼图半径大小,初始化时可用 +// drawPadding: [10, 10, 10, 10], +// }; +// }, +// init(chart, userConfig, data) { +// const config = merge({}, this.defaultConfig, userConfig); +// +// const { source, maxDepth } = computeData.call(this, data); +// +// chart.source(source); +// +// // if (config.cycle) { +// // thetaConfig.innerRadius = Math.max(Math.min(config.innerRadius, 1), 0); +// // } +// +// chart.coord('polar', { +// innerRadius: getInnerRadius(maxDepth, config.innerRadius), // 用于空心部分的半径设置 +// }); +// +// chart.axis(false); +// +// const drawPadding = getDrawPadding(config.drawPadding, config.label, this.defaultConfig.drawPadding); +// +// +// +// chart.render(); +// }, +// changeData(chart, config, data) { +// const { source } = computeData.call(this, data); +// +// chart.changeData(source); +// }, +// }))); diff --git a/components/Wnightingale/gui.schema.json b/src/Wnightingale/gui.schema.json similarity index 100% rename from components/Wnightingale/gui.schema.json rename to src/Wnightingale/gui.schema.json diff --git a/src/Wnightingale/index.scss b/src/Wnightingale/index.scss new file mode 100644 index 00000000..6c411ca9 --- /dev/null +++ b/src/Wnightingale/index.scss @@ -0,0 +1,24 @@ +@import "../themes/index"; + +.#{$base-name}.G2Nightingale { + position: relative; + box-sizing: border-box; + + .#{$base-name}-children { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + } + + //& > div { + // .g2-tooltip-list > li:first-child { + // margin-top: 0 !important; + // } + // + // .g2-legend-list-item:last-child { + // margin-bottom: 1px !important; + // } + //} +} diff --git a/src/Wnightingale/index.tsx b/src/Wnightingale/index.tsx new file mode 100644 index 00000000..51b5ea8d --- /dev/null +++ b/src/Wnightingale/index.tsx @@ -0,0 +1,220 @@ +'use strict'; + +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from '../common/Base'; +import errorWrap from '../common/errorWrap'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import { GuideConfig } from '../common/guide'; +import label, { LabelConfig } from '../common/label'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import polarLegendLayout from '../common/polarLegendLayout'; +import updateChildrenPosition from '../common/updateChildrenPosition'; +import themes from '../themes/index'; +import './index.scss'; +import { warn } from '../common/log'; + +// 3.x代码 +export interface WnightingaleConfig extends BaseChartConfig { + /** X轴配置项 */ + xAxis?: Types.ScaleOption & XAxisConfig | false, + /** Y轴配置项 */ + yAxis?: Types.ScaleOption & YAxisConfig | false, + /** @deprecated axis 属性已废弃,请使用 xAxis 属性 */ + axis?: boolean; + colors?: Colors; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + label?: LabelConfig | boolean; + cycle?: boolean; + innerRadius?: number; + outerRadius?: number; + geomStyle?: GeomStyleConfig; +} + +export class Nightingale extends Base { + chartName = 'G2Nightingale'; + + getDefaultConfig(): WnightingaleConfig { + return { + // padding: [20, 20, 20, 20], + colors: themes.category_12, + xAxis: false, + yAxis: false, + cycle: false, + innerRadius: 0.5, // 内环半径大小,仅cycle为true时可用 + outerRadius: 1, + label: { + offset: -15 + }, + legend: { + position: 'bottom', + align: 'center', + nameFormatter: null, + }, + tooltip: { + nameFormatter: null, + valueFormatter: null, + }, + }; + } + init(chart: Chart, config: WnightingaleConfig, data: any) { + const defs: Record = { + type: { + type: 'cat', + }, + }; + + chart.scale(defs); + + chart.data(data); + chart.coordinate('polar', { + innerRadius: config.cycle ? Math.max(Math.min(config.innerRadius, 1), 0) : 0, + radius: Math.max(Math.min(config.outerRadius, 1), 0.01), + }); + + // 设置图例 + rectLegend(this, chart, config, null, true); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showMarkers: false, + showCrosshairs: false, + }, + null, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + ); + + if (config.axis) { + warn('config.axis', '属性已废弃,请使用 config.xAxis 属性'); + } + + rectXAxis(this, chart, config); + + rectYAxis(this, chart, config); + + const geom = chart + .interval() + .position('x*y') + .color('x', config.colors); + + geomStyle(geom, config.geomStyle, { + lineWidth: 1, + stroke: themes['widgets-color-background'], + }); + + label(geom, config, 'x', {}); + + polarLegendLayout(chart); + + chart.on('afterrender', () => { + updateChildrenPosition(chart, this.chartDom); + }); + } +} +const Wnightingale: typeof Nightingale = errorWrap(Nightingale); + +export default Wnightingale; + +// 对外暴露一个对象,除了init方法必选外,其余均为可选项,按组件需要选择性使用。 +// 方法运行时的this指向图表实例,所以可以在this上挂载需要保留的数据。 +// export default /*#__PURE__*/ errorWrap(g2Factory('G2Nightingale', { +// getDefaultConfig() { +// return { +// padding: [20, 20, 20, 20], +// colors: themes.category_12, +// cycle: false, +// innerRadius: 0.5, // 内环半径大小,仅cycle为true时可用 +// label: { +// key: 'x', +// }, +// legend: { +// position: 'bottom', +// align: 'center', +// nameFormatter: null, +// }, +// tooltip: { +// nameFormatter: null, +// valueFormatter: null, +// }, +// }; +// }, +// // 初始化前对props的预处理函数 +// beforeInit(props) { +// const { config } = props; +// // TODO 处理padding +// return Object.assign({}, props, { +// padding: props.padding || config.padding || this.defaultConfig.padding, +// }); +// }, +// // 图表绘制主函数,必选 +// init(chart, userConfig, data) { +// const config = merge({}, this.defaultConfig, userConfig); +// chart.source(data); +// chart.coord('polar', { +// innerRadius: config.cycle ? Math.max(Math.min(config.innerRadius, 1), 0) : 0, +// }); + +// // 设置图例 +// rectLegend(this, chart, config, null, true); + +// // tooltip +// rectTooltip(this, chart, config, { +// showTitle: false, +// crosshairs: null, +// }); + +// if (config.axis) { +// chart.axis('x', { +// grid: { +// align: 'center', +// hideFirstLine: false, +// hideLastLine: false, +// }, +// label: { +// offset: 10, +// autoRotate: true, +// textStyle: { +// textAlign: 'center', +// }, +// }, +// }); + +// chart.axis('y', { +// tickLine: null, +// label: null, +// line: null, +// }); +// } else { +// chart.axis(false); +// } + +// const geomStyle = config.geomStyle || {}; +// const geom = chart +// .interval() +// .position('x*y') +// .color('x', config.colors) +// .style('x*y*extra', { +// lineWidth: 1, +// stroke: themes['widgets-color-background'], +// ...geomStyle +// }); + +// label(geom, config, config.label.key || 'x', { +// offset: -15, +// }); + +// chart.render(); +// }, +// })); diff --git a/components/Wnumber/index.scss b/src/Wnumber/index.scss similarity index 100% rename from components/Wnumber/index.scss rename to src/Wnumber/index.scss diff --git a/components/Wnumber/index.jsx b/src/Wnumber/index.tsx similarity index 70% rename from components/Wnumber/index.jsx rename to src/Wnumber/index.tsx index efb07519..35df940b 100644 --- a/components/Wnumber/index.jsx +++ b/src/Wnumber/index.tsx @@ -1,24 +1,41 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; import { getStatusColorName } from '../common/common'; import Warrow from '../common/arrow'; import chartLog from "../common/log"; +import { Status, Trend } from '../common/types'; +import { FullCrossName, PrefixName } from '../constants'; import './index.scss'; -const prefix = 'cloud-wnumber'; +const prefix = `${PrefixName}-wnumber`; -function getTrendIcon(trend) { +function getTrendIcon(trend: Trend) { if(trend === 'raise'){ return - }else if( trend === 'drop'){ + } else if( trend === 'drop'){ return + } else { + return null; } } -export default class Wnumber extends React.Component { +interface WnumberProps { + className?: string; + style?: React.CSSProperties; + status?: Status | string; + unit?: React.ReactNode; + numberTrend?: Trend; + rightRatioTrend?: Trend; + rightTitle?: React.ReactNode; + rightRatio?: React.ReactNode; + rightRatioStatus?: Status | string; + trend?: () => React.ReactNode; + bottomTitle?: React.ReactNode; +} + +export default class Wnumber extends React.Component { static displayName = 'Wnumber'; static defaultProps = { @@ -27,22 +44,34 @@ export default class Wnumber extends React.Component { status: '' }; - constructor(props) { + constructor(props: WnumberProps) { super(props); // 图表初始化时记录日志 chartLog('Wnumber', 'init'); } - renderBottom(bottomTitle) { + renderBottom(bottomTitle: React.ReactNode) { if (!!bottomTitle) { return(
    {bottomTitle}
    ); + } else { + return null; } } - renderMain(status, unit, numberTrend, rightRatioTrend, rightTitle, rightRatio, rightRatioStatus, trend, children) { + renderMain( + status: string, + unit: React.ReactNode, + numberTrend: Trend, + rightRatioTrend: Trend, + rightTitle: React.ReactNode, + rightRatio: React.ReactNode, + rightRatioStatus: string, + trend: () => React.ReactNode, + children: React.ReactNode, + ) { const numberTrendIcon = getTrendIcon(numberTrend); const numberClasses = `${prefix}-number`; @@ -104,7 +133,7 @@ export default class Wnumber extends React.Component { } = this.props; const mainClasses = classNames({ - 'cloud-charts': true, + [FullCrossName]: true, [`${prefix}`]: true, [className]: !!className }); @@ -117,9 +146,3 @@ export default class Wnumber extends React.Component { ); } } - -Wnumber.propTypes = { - bottomTitle: PropTypes.node, - unit: PropTypes.node, - trend: PropTypes.func -}; diff --git a/components/Wtreemap/G2Treemap.scss b/src/Wnumber/scss/function.scss similarity index 100% rename from components/Wtreemap/G2Treemap.scss rename to src/Wnumber/scss/function.scss diff --git a/src/Wnumber/scss/mixin.scss b/src/Wnumber/scss/mixin.scss new file mode 100644 index 00000000..e69de29b diff --git a/components/Wnumber/scss/variable.scss b/src/Wnumber/scss/variable.scss similarity index 94% rename from components/Wnumber/scss/variable.scss rename to src/Wnumber/scss/variable.scss index 7c76c5f0..b2a3ea2b 100644 --- a/components/Wnumber/scss/variable.scss +++ b/src/Wnumber/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wnumber-prefix: '.cloud-wnumber'; +$wnumber-prefix: '.#{$base-prefix}-wnumber'; $font-family: getVar(widgets-font-family-txd-m-number, $widgets-font-family-txd-m-number); $font-size-l: getVar(widgets-font-size-6, $widgets-font-size-6); diff --git a/components/Wpie/gui.schema.json b/src/Wpie/gui.schema.json similarity index 100% rename from components/Wpie/gui.schema.json rename to src/Wpie/gui.schema.json diff --git a/src/Wpie/index.scss b/src/Wpie/index.scss new file mode 100644 index 00000000..e1b30633 --- /dev/null +++ b/src/Wpie/index.scss @@ -0,0 +1,45 @@ +@import "../themes/index"; + +.#{$base-name}.G2Pie { + position: relative; + text-align: center; + box-sizing: border-box; + + .#{$base-name}-children { + position: absolute; + top: 50%; + left: 50%; + text-align: center; + max-width: 100%; + max-height: 100%; + transform: translate(-50%, -50%); + //overflow: auto; + } + + //& > div { + // height: 100%; + // display: inline-flex; + // justify-content: center; + // align-items: center; + // text-align: left; + // + // & > canvas { + // position: static; + // flex: none; + // } + // + // // hack掉图例的高度限制,比用legend.maxLength逻辑要简单 + // .g2-legend { + // max-width: none !important; + // max-height: 100% !important; + // } + // + // .g2-tooltip-list > li:first-child { + // margin-top: 0 !important; + // } + // + // .g2-legend-list-item:last-child { + // margin-bottom: 1px !important; + // } + //} +} diff --git a/src/Wpie/index.tsx b/src/Wpie/index.tsx new file mode 100644 index 00000000..796ae1f9 --- /dev/null +++ b/src/Wpie/index.tsx @@ -0,0 +1,339 @@ +'use strict'; + +import { Chart, Geometry, Types, BaseChartConfig, ChartData, G2Dependents, Colors } from '../common/types'; +import Base from "../common/Base"; +import themes from '../themes/index'; +import { /*pxToNumber,*/ numberDecimal, /*isInvalidNumber*/ } from '../common/common'; +import './index.scss'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import label, { LabelConfig } from '../common/label'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import polarLegendLayout from '../common/polarLegendLayout'; +import errorWrap from '../common/errorWrap'; +import updateChildrenPosition from '../common/updateChildrenPosition'; + +// function transformCoord(coord, transform = {}) { +// const { type, param } = transform; +// if (coord[type] && Array.isArray(param)) { +// coord[type](...param); +// } +// } +// +function selectGeom(geom: Geometry, selectKey?: string) { + // if (!geom || !selectKey || !Array.isArray(this.data)) { + if (!geom) { + return; + } + + geom.elements.forEach((element) => { + // 清除选中效果 + if (element.hasState('selected')) { + element.setState('selected', false); + } + + // 如果selectKey为假值,则只清空选中效果。 + if (!selectKey) { + return; + } + + const d = element.getData(); + + if (d.x === selectKey) { + element.setState('selected', true); + } + }); +} +// +// function paddingNumber(value) { +// return isInvalidNumber(value) ? 0 : Number(value); +// } +// +// export function getDrawPadding(drawPadding, labelConfig, defaultDrawPadding) { +// if (Array.isArray(drawPadding)) { +// return drawPadding; +// } else if (!isInvalidNumber(drawPadding)) { +// return [drawPadding, drawPadding, drawPadding, drawPadding]; +// } else if (labelConfig && labelConfig.visible !== false) { +// // 饼图使用 label 时,调整 drawPadding +// return defaultDrawPadding.map(p => Math.max(p, 48)); +// } else { +// return defaultDrawPadding; +// } +// } + +interface WpieConfig extends BaseChartConfig { + colors?: Colors; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + autoSort?: boolean; + cycle?: boolean; + select?: boolean; + innerRadius?: number; + outerRadius?: number; + label?: LabelConfig | boolean, + selectData?: string; + geomStyle?: GeomStyleConfig; +} + +export class Pie extends Base { + chartName = 'G2Pie'; + + getDefaultConfig(): WpieConfig { + return { + colors: themes.category_12, + // padding: [20, 20, 20, 20], + legend: { + position: 'right', + align: '', + showData: true, + nameFormatter: null, // 可以强制覆盖,手动设置label + valueFormatter: null, + }, + tooltip: { + nameFormatter: null, + valueFormatter: null, + }, + // coord: null, + autoSort: true, + cycle: false, + select: false, + innerRadius: 0.8, // 内环半径大小,仅cycle为true时可用 + outerRadius: 0.8, // 饼图半径大小,初始化时可用 + // drawPadding: [10, 10, 10, 10], + label: false, + }; + } + + totalData = 0; + + changeData(chart: Chart, config: WpieConfig, data: ChartData) { + // 更新数据总和值,保证百分比的正常 + let totalData = 0; + data.forEach((d: { y: number; }) => { + totalData += d.y; + }); + this.totalData = totalData; + + // 不要忘记排序的状态 + if (config.autoSort) { + data.sort((a: Types.LooseObject, b: Types.LooseObject) => b.y - a.y); + } + // 更新挂载的转换数据 + // this.data = data; + + chart.changeData(data); + } + + protected geom: Geometry = null; + + isChangeEqual(objValue: any, othValue: any, key: string) { + if (key === 'selectData' && objValue !== othValue) { + selectGeom(this.geom, objValue); + return true; + } + return undefined; + } + + init(chart: Chart, config: WpieConfig, data: any[]) { + const defs: Record = { + type: { + type: 'cat', + }, + }; + + if (config.autoSort) { + data.sort((a, b) => b.y - a.y); + } + // 挂载转换后的数据 + // this.data = data; + + chart.scale(defs); + chart.data(data); + + // 重要:绘制饼图时,必须声明 theta 坐标系 + const thetaConfig: Types.CoordinateCfg = { + // radius: 1, // 设置饼图的为100% 大小,具体大小改变在 beforeInit 中diameter的值,目前为0.8 + radius: Math.max(Math.min(config.outerRadius, 1), 0.01), + }; + if (config.cycle) { + thetaConfig.innerRadius = Math.max(Math.min(config.innerRadius, 1), 0); + } + // coordinate translate 操作会导致饼图变形,暂时换一种方式实现 + /*const coord = */chart.coordinate('theta', thetaConfig); + + // if (config.coord) { + // const { transform } = config.coord || {}; + // + // if (Array.isArray(transform)) { + // transform.forEach((t) => { + // transformCoord(coord, t); + // }); + // } else if (transform && typeof transform === 'object') { + // transformCoord(coord, transform); + // } + // } + + // 计算得总数据 + let totalData = 0; + data.forEach((d) => { + totalData += d.y; + }); + this.totalData = totalData; + + // const drawPadding = getDrawPadding(config.drawPadding, config.label, this.defaultConfig.drawPadding); + + // 设置图例 + rectLegend(this, chart, config, { + // autoCollapse: false, + // position: 'right', + // itemTpl: (value, itemColor, checked, index) => { + // const { nameFormatter, valueFormatter, showData = true } = config.legend || {}; + // + // const item = (this.data && this.data[index]) || {}; + // const raw = (this.rawData && this.rawData[0]) || {}; + // const percent = numberDecimal(item.y / this.totalData, 4); + // + // const result = nameFormatter ? nameFormatter(value, { + // ...raw, + // percent, + // itemColor, + // checked, + // }, index) : value; + // + // if (showData) { + // const number = valueFormatter ? valueFormatter(item.y, { + // ...raw, + // percent, + // itemColor, + // checked, + // }, index) : item.y; + // return `${'
  • ' + + // '' + + // ''}${result}` + `${number}
  • `; + // } + // + // return `${'
  • ' + + // '' + + // ''}${result}
  • `; + // }, + // 'g2-legend': { + // ...legendHtmlContainer, + // position: 'static', + // overflow: 'auto', + // // inline flex items 不能使用百分比的margin/padding,设置为固定大小 + // marginLeft: `${Math.max(pxToNumber(themes['widgets-font-size-4']) - drawPadding[1], 0)}px`, + // }, + // 'g2-legend-list-item': { + // ...legendHtmlListItem, + // marginRight: 0, + // }, + }, true, null, true, (item: G2Dependents.ListItem, index: number) => { + const { name } = item; + const raw = (this.rawData && this.rawData[0]) || {}; + let value = 0; + raw.data.forEach((r: any) => { + if (Array.isArray(r) && r[0] === name) { + value = r[1]; + } else if (typeof r === 'object' && r.x === name) { + value = r.y + } + }); + const percent = numberDecimal(value / this.totalData, 4); + + return { + ...raw, + percent, + ...item, + } + }); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + shared: false, + }, + (ev: any) => { + const raw = (this.rawData && this.rawData[0]) || {}; + const { items } = ev.data; + + items.forEach((item: any, index: number) => { + const percent = numberDecimal(item.value / this.totalData, 4); + + if (typeof config.tooltip === 'boolean') { + return; + } + + if (config.tooltip.valueFormatter) { + item.value = config.tooltip.valueFormatter(item.value, { + ...raw, + percent, + }, index, items); + } + if (config.tooltip.nameFormatter) { + item.name = config.tooltip.nameFormatter(item.name, { + ...raw, + percent, + }, index, items); + } + }); + }, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + shared: false, + } + ); + + this.geom = chart.interval() + .position('y') + .color('x', config.colors) + .adjust('stack'); + + if (config.select) { + chart.interaction('element-single-selected'); + } + + geomStyle(this.geom, config.geomStyle); + + const labelField = 'y'; + label(this.geom, config, labelField, null, undefined, false, { + offset: 20, + content: ((v, item, index) => { + if (typeof config.label === 'boolean') { + return v[labelField]; + } + if (config.label.labelFormatter) { + const percent = numberDecimal(v[labelField] / this.totalData, 4); + + return config.label.labelFormatter(v[labelField], { + ...item, + percent, + } as Types.MappingDatum, index); + } + return v[labelField]; + }) as Types.GeometryLabelContentCallback, + }); + + polarLegendLayout(chart); + + chart.on('afterrender', () => { + // 默认选中效果 + selectGeom(this.geom, config.selectData); + + updateChildrenPosition(chart, this.chartDom); + }); + + } +} + +const Wpie: typeof Pie = errorWrap(Pie); + +export default Wpie; diff --git a/components/Wplaceholder/index.scss b/src/Wplaceholder/index.scss similarity index 100% rename from components/Wplaceholder/index.scss rename to src/Wplaceholder/index.scss diff --git a/components/Wplaceholder/index.jsx b/src/Wplaceholder/index.tsx similarity index 86% rename from components/Wplaceholder/index.jsx rename to src/Wplaceholder/index.tsx index 463efd79..06093089 100644 --- a/components/Wplaceholder/index.jsx +++ b/src/Wplaceholder/index.tsx @@ -1,12 +1,13 @@ 'use strict'; -import React from 'react'; +import * as React from 'react'; import classNames from 'classnames'; import chartLog from "../common/log"; -import Locale from './locale'; +import Locale, { LocaleItem } from './locale'; import './index.scss'; +import { FullCrossName, PrefixName } from '../constants'; -const prefix = 'cloud-wplaceholder'; +const prefix = `${PrefixName}-wplaceholder`; // 默认显示的图标 const svgWidth = 36, svgHeight = 32, itemHeight1 = 20, itemHeight2 = 26, itemHeight3 = 32; @@ -41,7 +42,7 @@ const noDataSvg = ; // 获取显示文案 -function getLocaleText (locale = {}, loading, error, noData) { +function getLocaleText (locale: LocaleItem, loading: boolean, error: boolean, noData: boolean) { // 优先取error状态 if (error) { return locale.error; @@ -54,19 +55,32 @@ function getLocaleText (locale = {}, loading, error, noData) { if (noData) { return locale.noData; } + return null; } -export default class Wplaceholder extends React.Component { +interface WplaceholderProps { + className?: string; + style?: React.CSSProperties; + width?: string | number; + height?: string | number; + loading?: boolean; + error?: boolean; + noData?: boolean; + locale?: LocaleItem; + language?: keyof (typeof Locale); +} + +export default class Wplaceholder extends React.Component { static displayName = 'Wplaceholder'; - constructor(props) { + constructor(props: WplaceholderProps) { super(props); // 图表初始化时记录日志 chartLog('Wplaceholder', 'init'); } - renderText(loading, error, noData) { + renderText(loading: boolean, error: boolean, noData: boolean) { const { locale, language, children } = this.props; // text 优先判断传入的locale,其次判断传入的language,最后取中文locale const text = getLocaleText(locale || Locale[language] || Locale['zh-cn'], loading, error, noData) || ''; @@ -84,7 +98,7 @@ export default class Wplaceholder extends React.Component { const { className, width, height = '100%', style, loading, error, noData, ...otherProps } = this.props; const mainClasses = classNames(prefix, { - 'cloud-charts': true, + [FullCrossName]: true, [prefix + '-loading']: !error && loading, [prefix + '-no-data']: !error && !loading && noData, [prefix + '-error']: !!error, diff --git a/components/Wplaceholder/locale.js b/src/Wplaceholder/locale.ts similarity index 74% rename from components/Wplaceholder/locale.js rename to src/Wplaceholder/locale.ts index 191b003c..e4faa654 100644 --- a/components/Wplaceholder/locale.js +++ b/src/Wplaceholder/locale.ts @@ -2,6 +2,12 @@ * Created by Maplor on 2018/3/22. */ +export interface LocaleItem { + loading: string; + error: string; + noData: string; +} + export default { 'zh-cn': { loading: '加载中...', diff --git a/src/Wplaceholder/scss/function.scss b/src/Wplaceholder/scss/function.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/Wplaceholder/scss/mixin.scss b/src/Wplaceholder/scss/mixin.scss new file mode 100644 index 00000000..e69de29b diff --git a/components/Wplaceholder/scss/variable.scss b/src/Wplaceholder/scss/variable.scss similarity index 85% rename from components/Wplaceholder/scss/variable.scss rename to src/Wplaceholder/scss/variable.scss index 9d87e6bc..b3e1c42f 100644 --- a/components/Wplaceholder/scss/variable.scss +++ b/src/Wplaceholder/scss/variable.scss @@ -1,5 +1,5 @@ @import "../../themes/index"; -$wplaceholder-prefix: '.cloud-wplaceholder'; +$wplaceholder-prefix: '.#{$base-prefix}-wplaceholder'; $height: 32px; diff --git a/components/Wradar/gui.schema.json b/src/Wradar/gui.schema.json similarity index 100% rename from components/Wradar/gui.schema.json rename to src/Wradar/gui.schema.json diff --git a/src/Wradar/index.scss b/src/Wradar/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/Wradar/index.tsx b/src/Wradar/index.tsx new file mode 100644 index 00000000..d4a15094 --- /dev/null +++ b/src/Wradar/index.tsx @@ -0,0 +1,254 @@ +'use strict'; +// 依赖更新部分 +import { Chart, Types, BaseChartConfig } from '../common/types'; +import Base from "../common/Base"; +import errorWrap from '../common/errorWrap'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; + +// 2.x版本依赖 +import { propertyAssign, propertyMap } from '../common/common'; +import legendFilter from '../common/legendFilter'; +import drawLine, { DrawLineConfig } from '../common/drawLine'; + +import './index.scss'; +import polarLegendLayout from '../common/polarLegendLayout'; + +// 3.x代码 +export interface WradarConfig extends BaseChartConfig, DrawLineConfig { + xAxis?: Types.ScaleOption & XAxisConfig | false, + yAxis?: Types.ScaleOption & YAxisConfig | false, + legend?: LegendConfig | boolean, + tooltip?: TooltipConfig | boolean, + guide?: GuideConfig, + radius?: number; +} + +export class Radar extends Base { + chartName = 'G2Radar'; + + getDefaultConfig(): WradarConfig { + return { + // colors: themes.category_12, + xAxis: { + labelFormatter: null, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + min: 0, + }, + legend: { + position: 'bottom', + align: 'center', + nameFormatter: null, + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + area: false, + symbol: false, + label: false, + spline: false, + radius: 1, + } + } + init(chart: Chart, config: WradarConfig, data: any) { + + const defs: Record = { + type: { + type: 'cat', + }, + }; + + // 轴设置 + defs.y = propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + nice: true, + }, config.yAxis); + + chart.scale(defs); + chart.data(data); + + // 极坐标配置 + chart.coordinate('polar', { + radius: config.radius, + }); + + // 设置X轴 + rectXAxis(this, chart, config); + + // 设置单个Y轴 + rectYAxis(this, chart, config); + + // 设置图例 + rectLegend(this, chart, config, null, false, 'type', true); + + legendFilter(this, chart); + + // tooltip + rectTooltip(this, chart, config, {}, null, { + showCrosshairs: true, + crosshairs: { + type: 'xy', + // line: { + // style: { + // stroke: '#565656', + // lineDash: [4], + // }, + // }, + // follow: true + } + }); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + drawLine(chart, config); + + polarLegendLayout(chart); + } +} + +const Wradar: typeof Radar = errorWrap(Radar); + +export default Wradar; + +// 2.x版本 +// 对外暴露一个对象,除了init方法必选外,其余均为可选项,按组件需要选择性使用。 +// 方法运行时的this指向图表实例,所以可以在this上挂载需要保留的数据。 +// export default /*#__PURE__*/ errorWrap(g2Factory('G2Radar', { +// getDefaultConfig() { +// return { +// padding: [20, 20, 40, 20], +// colors: themes.category_12, +// xAxis: { +// labelFormatter: null, // 可以强制覆盖,手动设置label +// }, +// yAxis: { +// labelFormatter: null, // 可以强制覆盖,手动设置label +// // max: 100, +// min: 0, +// }, +// radius: 0.8, +// area: false, +// symbol: false, +// label: false, +// spline: false, +// // stack: false, +// legend: { +// position: 'bottom', +// align: 'center', +// nameFormatter: null, +// }, +// tooltip: { +// titleFormatter: null, +// nameFormatter: null, +// valueFormatter: null, +// }, +// }; +// }, +// // 初始化前对props的预处理函数 +// beforeInit(props) { +// const { config } = props; +// // TODO 处理padding +// return Object.assign({}, props, { +// padding: props.padding || config.padding || this.defaultConfig.padding, +// }); +// }, +// // 图表绘制主函数,必选 +// init(chart, userConfig, data) { +// const config = merge({}, this.defaultConfig, userConfig); + +// const defs = { +// x: propertyAssign(propertyMap.axis, { +// // type: 'cat', +// // 折线图X轴的范围默认覆盖全部区域,保证没有空余 +// // range: [0, 1], +// }, config.xAxis), +// type: { +// type: 'cat', +// }, +// }; + +// defs.y = propertyAssign(propertyMap.axis, { +// type: 'linear', +// tickCount: 5, +// }, config.yAxis); + +// chart.source(data, defs); +// // 极坐标配置 +// chart.coord('polar', { +// radius: config.radius, +// }); + +// // 设置X轴 +// rectXAxis(this, chart, config, { +// line: null, +// tickLine: null, +// grid: { +// lineStyle: { +// lineDash: null, +// }, +// }, +// }); +// // chart.axis('x', { +// // label: { +// // formatter: config.xAxis.labelFormatter, +// // }, +// // line: null, +// // tickLine: null, +// // grid: { +// // lineStyle: { +// // lineDash: null, +// // }, +// // // hideFirstLine: false +// // }, +// // }); +// // 设置Y轴 +// rectYAxis(this, chart, config, 'y', { +// label: { +// offset: 8, +// textStyle: { +// fill: themes['widgets-axis-label'], +// textAlign: 'right', // 文本右对齐 +// }, +// formatter: config.yAxis.labelFormatter, +// // 之前使用 htmlTemplate 是为了覆盖在line图形之上,和视觉确认后不需要这么做,直接使用默认 formatter 即可。 +// // htmlTemplate(text, item, index) { +// // if (config.yAxis.labelFormatter) { +// // return config.yAxis.labelFormatter(text, item, index); +// // } +// // return `${text}`; +// // } +// }, +// line: null, +// tickLine: null, +// grid: { +// type: 'polygon', +// lineStyle: { +// lineDash: null, +// }, +// }, +// }); + +// // 设置图例 +// rectLegend(this, chart, config); + +// legendFilter(this, chart, config); + +// // tooltip +// rectTooltip(this, chart, config, { +// crosshairs: null, +// }); + +// drawLine(chart, config); + +// chart.render(); +// }, +// })); diff --git a/src/Wrectangle/index.scss b/src/Wrectangle/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/Wrectangle/index.tsx b/src/Wrectangle/index.tsx new file mode 100644 index 00000000..b4a1c6e8 --- /dev/null +++ b/src/Wrectangle/index.tsx @@ -0,0 +1,289 @@ +'use strict'; +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from '../common/Base'; +import errorWrap from '../common/errorWrap'; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; +import label, { LabelConfig } from '../common/label'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import { DataSet } from '@antv/data-set/lib/data-set'; +import '@antv/data-set/lib/transform/bin/rectangle'; + +import './index.scss'; + +// 3.x代码 +export interface WrectangleConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false, + yAxis?: Types.ScaleOption & YAxisConfig | false, + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + label?: LabelConfig | boolean; + bin?: any; + grid?: boolean; + geomStyle?: GeomStyleConfig; +} + +export class Rectangle extends Base { + chartName = 'G2Rectangle'; + + convertData = false; + getDefaultConfig(): WrectangleConfig { + return { + colors: themes.order_10.slice().reverse(), + xAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + autoRotate: false, + max: null, + min: null, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null, + }, + tooltip: { + nameFormatter: null, + valueFormatter: null, + }, + bin: { + fields: ['x', 'y'], + bins: [20, 10], // 两个方向上的分箱个数 + // binWidth: [ 10, 1000 ], // 两个方向上的分箱步长(会覆盖bins的配置) + // offset: [ 0, 0 ], + }, + grid: false, + label: false, + }; + } + init(chart: Chart, config: WrectangleConfig, data: any) { + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + // 折线图X轴的范围默认覆盖全部区域,保证没有空余 + range: [0, 1], + }, config.xAxis), + y: propertyAssign(propertyMap.axis, { + type: 'linear', + tickCount: 5, + nice: true, + }, config.yAxis), + type: { + type: 'cat', + }, + }; + const ds = new DataSet(); + + const rectangleDataView = ds + .createView('diamond') + .source(data) + .transform({ + type: 'bin.rectangle', + fields: ['x', 'y'], // 对应坐标轴上的一个点 + bins: [20, 10], // 两个方向上的分箱个数 + // binWidth: [10, 10], // 两个方向上的分箱步长(会覆盖bins配置) + // offset: [0, 0], // 两个方向上的分箱偏移量 + // sizeByCount: false, // 是否根据分箱个数调整分箱大小 + // as: ['x', 'y', 'count'], // 这个点落在的六边形的顶点坐标集 + }); + chart.scale(defs); + + chart.data(rectangleDataView.rows); + + // 设置X轴 + rectXAxis(this, chart, config); + + // 设置单个Y轴 + rectYAxis(this, chart, config); + + // 设置图例 + chart.legend(false); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + null, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + ); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + const geom = chart.polygon().position('x*y').color('count', config.colors).tooltip('x*y*count', (x, y, count) => ({ + // title: x, + name: '数量', + value: count, + })); + + geomStyle(geom, config.geomStyle, undefined, 'x*y*count'); + + label(geom, config, 'count', { + offset: 0, + }); + + // chart.render(); + } + changeData(chart: Chart, config: WrectangleConfig, data: any) { + + const ds = new DataSet(); + + const rectangleDataView = ds + .createView('diamond') + .source(data) + .transform({ + type: 'bin.rectangle', + fields: ['x', 'y'], // 对应坐标轴上的一个点 + bins: [20, 10], // 两个方向上的分箱个数 + // binWidth: [10, 10], // 两个方向上的分箱步长(会覆盖bins配置) + // offset: [0, 0], // 两个方向上的分箱偏移量 + // sizeByCount: false, // 是否根据分箱个数调整分箱大小 + // as: ['x', 'y', 'count'], // 这个点落在的六边形的顶点坐标集 + }); + + chart && chart.changeData(rectangleDataView.rows); + } +} + +const Wrectangle: typeof Rectangle = errorWrap(Rectangle); + +export default Wrectangle; + +// export default /*#__PURE__*/ errorWrap(g2Factory('G2Rectangle', { +// convertData: false, +// getDefaultConfig() { +// return { +// // 这里需要倒序排列 +// colors: themes.order_10.slice().reverse(), +// padding: ['auto', 'auto', 'auto', 'auto'], +// xAxis: { +// labelFormatter: null, // 可以强制覆盖,手动设置label +// autoRotate: false, +// max: null, +// min: null, +// }, +// yAxis: { +// labelFormatter: null, // 可以强制覆盖,手动设置label +// max: null, +// min: null, +// }, +// tooltip: { +// nameFormatter: null, +// valueFormatter: null, +// }, +// bin: { +// fields: ['x', 'y'], +// bins: [20, 10], // 两个方向上的分箱个数 +// // binWidth: [ 10, 1000 ], // 两个方向上的分箱步长(会覆盖bins的配置) +// // offset: [ 0, 0 ], +// }, +// grid: false, +// label: false, +// }; +// }, +// beforeInit(props) { +// const { config } = props; +// const newConfig = merge({}, this.defaultConfig, config); + +// // TODO 处理padding +// // let defaultPaddingTop = this.defaultConfig.padding[0]; +// // let defaultPaddingRight = this.defaultConfig.padding[1]; +// // const defaultPaddingBottom = this.defaultConfig.padding[2]; +// // const defaultPaddingLeft = this.defaultConfig.padding[3]; +// // if (defaultPaddingRight !== 'auto' && Array.isArray(newConfig.yAxis)) { +// // defaultPaddingRight = 44; +// // } +// // if (defaultPaddingTop !== 'auto' && !newConfig.legend) { +// // defaultPaddingTop = 16; +// // } +// return Object.assign({}, props, { +// padding: defaultPadding(props.padding || config.padding, newConfig, ...this.defaultConfig.padding), +// config: newConfig, +// }); +// }, +// init(chart, userConfig, data) { +// const config = userConfig; + +// const ds = new DataSet(); +// const rectangleDataView = ds.createView('diamond') +// .source(data) +// .transform(propertyAssign(['fields', 'bins', 'binWidth', 'offset', 'sizeByCount'], { +// type: 'bin.rectangle', +// }, config.bin)); + +// this.rectangleDataView = rectangleDataView; + +// const defs = { +// x: propertyAssign(propertyMap.axis, { +// // 折线图X轴的范围默认覆盖全部区域,保证没有空余 +// range: [0, 1], +// }, config.xAxis), +// y: propertyAssign(propertyMap.axis, { +// type: 'linear', +// tickCount: 5, +// }, config.yAxis), +// type: { +// type: 'cat', +// }, +// }; + +// rectAutoTickCount(chart, config, defs, false); + +// chart.source(rectangleDataView, defs); + +// // 设置X轴 +// rectXAxis(this, chart, config); + +// // 设置单个Y轴 +// rectYAxis(this, chart, config); + +// // 设置图例 +// chart.legend(false); + +// // tooltip +// rectTooltip(this, chart, config, { +// showTitle: false, +// crosshairs: null, +// }); + +// // 绘制辅助线,辅助背景区域 +// guide(chart, config); + +// const geom = chart.polygon().position('x*y').color('count', config.colors).tooltip('x*y*count', (x, y, count) => ({ +// // title: x, +// name: '数量', +// value: count, +// })); + +// const geomStyle = config.geomStyle || {}; +// geom.style('x*y*count*extra', { +// ...geomStyle, +// }); + +// label(geom, config, 'count', { +// offset: 0, +// }); + +// chart.render(); +// }, +// changeData(chart, newConfig, data) { +// if (this.rectangleDataView) { +// this.rectangleDataView.source(data); +// } +// }, +// })); diff --git a/src/Wsankey/index.scss b/src/Wsankey/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/Wsankey/index.tsx b/src/Wsankey/index.tsx new file mode 100644 index 00000000..7ad4d5f3 --- /dev/null +++ b/src/Wsankey/index.tsx @@ -0,0 +1,146 @@ +'use strict'; +import { Chart, BaseChartConfig, View, Colors } from '../common/types'; +import Base from "../common/Base"; +import { DataSet } from '@antv/data-set/lib/data-set'; +import { View as DataView } from '@antv/data-set/lib/view'; +import '@antv/data-set/lib/transform/diagram/sankey'; +import '@antv/data-set/lib/connector/graph'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import { LabelConfig } from "../common/label"; +import themes from '../themes/index'; +import errorWrap from '../common/errorWrap'; +import './index.scss'; + +function getEdges(d: { links: any; }) { + return d.links; +} + +interface WsankeyConfig extends BaseChartConfig { + colors?: Colors; + legend?: LegendConfig | false, + tooltip?: TooltipConfig | false, + // TODO 完善label逻辑 + labels?: LabelConfig | boolean, +} + +export class Sankey extends Base { + // 原 g2Factory 的第一个参数,改为类的属性。 + chartName = 'G2Sankey'; + + convertData= false; + private sankeyDataView: DataView; + private edgeView: View; + private nodeView: View; + + getDefaultConfig(): WsankeyConfig { + return { + // padding: ['auto', 40, 'auto', 'auto'], + legend: { + align: 'center', + position: 'bottom', + nameFormatter: null, // 可以强制覆盖,手动设置label + }, + tooltip: { + nameFormatter: null + }, + labels: true, + // textStyle: { + // fill: '#545454', + // textAlign: 'start' + // } + }; + } + init(chart: Chart, config: WsankeyConfig, data: any) { + const ds = new DataSet(); + const dv = ds.createView().source(data, { + type: 'graph', + edges: getEdges, + }); + dv.transform({ + type: 'diagram.sankey', + }); + + this.sankeyDataView = dv; + + // chart.legend(config.legend); + // chart.tooltip({ + // showTitle: false, + // }); + rectTooltip(this, chart, config, {}, null, { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + shared: false, + }); + + rectLegend(this, chart, config, {}, false); + + chart.axis(false); + chart.scale({ + x: { sync: true }, + y: { sync: true }, + }); + + // edge view + const edgeView = chart.createView(); + this.edgeView = edgeView; + edgeView.data(dv.edges); + edgeView.edge() + .position('x*y') + .shape('arc') + .color(themes['widgets-sankey-edge']) + // .opacity(0.5) + .tooltip('target*source*value', (target, source, value) => { + if (typeof config.tooltip === "boolean") { + return null + } else { + return config.tooltip?.nameFormatter?.(target, source, value) || { + name: source.name + ' to ' + target.name + '', + value, + } + } + }); + + // node view + const nodeView = chart.createView(); + this.nodeView = nodeView; + nodeView.data(dv.nodes); + + const nodeGeom = nodeView.polygon() + .position('x*y') // nodes数据的x、y由layout方法计算得出 + .color('name', config.colors) + .tooltip(false) + .style({ + stroke: 'transparent', + }); + + if (config.labels) { + nodeGeom.label('name', ()=> ({ + textStyle: { + fill: themes['widgets-sankey-node-text'], + textAlign: 'start', + }, + offset: 0, + formatter: (v: any) => ` ${v}`, + })); + } + + } + + changeData(chart: Chart, newConfig: WsankeyConfig, data: any) { + if (this.sankeyDataView && this.nodeView && this.edgeView) { + + this.sankeyDataView.source(data, { + type: 'graph', + edges: getEdges, + }); + this.edgeView.data(this.sankeyDataView.edges); + this.nodeView.data(this.sankeyDataView.nodes); + chart.render(); + } + } +} + +const Wsankey: typeof Sankey = errorWrap(Sankey); +export default Wsankey; diff --git a/src/Wscatter/index.scss b/src/Wscatter/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/Wscatter/index.tsx b/src/Wscatter/index.tsx new file mode 100644 index 00000000..9e40162b --- /dev/null +++ b/src/Wscatter/index.tsx @@ -0,0 +1,171 @@ +'use strict'; + +// 引入所需要的库和样式 +import { Chart, Types, BaseChartConfig, Colors } from '../common/types'; +import Base from "../common/Base"; +import rectXAxis, { XAxisConfig } from '../common/rectXAxis'; +import rectYAxis, { YAxisConfig } from '../common/rectYAxis'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import guide, { GuideConfig } from '../common/guide'; +import label, { LabelConfig } from "../common/label"; +import geomSize, { GeomSizeConfig } from '../common/geomSize'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import autoTimeMask from '../common/autoTimeMask'; +import legendFilter from '../common/legendFilter'; + +interface jitterConfig { + adjustNames?: string[]; +} + +interface WscatterConfig extends BaseChartConfig { + xAxis?: Types.ScaleOption & XAxisConfig | false; + yAxis?: Types.ScaleOption & YAxisConfig | false; + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + grid?: boolean; + colors?: Colors; + size?: GeomSizeConfig; + jitter?: jitterConfig | boolean; + label?: LabelConfig | boolean; + geomStyle?: GeomStyleConfig; +} + + +export class Scatter extends Base { + chartName = 'G2Scatter'; + + getDefaultConfig(): WscatterConfig { + return { + // padding: ['auto', 'auto', 'auto', 'auto'], + colors: themes.category_12, + xAxis: { + mask: 'auto', + autoRotate: false, + }, + yAxis: { + min: 0, + }, + size: 4, + jitter: false, + tooltip: true, + legend: true, + label: false, + }; + } + + init(chart: Chart, config: WscatterConfig, data: any) { + // const config = userConfig; + const { colors, jitter } = config; + + const defs: Record = { + x: propertyAssign( + propertyMap.axis, + { + type: config.jitter ? 'cat' : 'linear', + }, + config.xAxis + ), + type: { + type: 'cat', + }, + }; + + defs.y = propertyAssign( + propertyMap.axis, + { + type: 'linear', + tickCount: 5, + nice: true, + }, + config.yAxis + ); + + autoTimeMask(defs, this.rawData); + + // rectAutoTickCount(chart, config, defs, false); + + // chart.source(data, defs); + chart.scale(defs); + chart.data(data); + + // 设置X轴 + const xAxis: any = {}; + + if (config.jitter) { + xAxis.grid = { + align: 'center', // 网格顶点从两个刻度中间开始 + line:{ + style: { + stroke: themes['widgets-axis-grid'], + lineWidth: 1, + // lineDash: [3, 3] + }, + } + }; + } + + // 扰动点图不能打开垂直网格线 + if (config.grid && !config.jitter) { + xAxis.grid = { + line: { + style: { + stroke: themes['widgets-axis-grid'], + lineWidth: 1, + } + }, + }; + } + + rectXAxis(this, chart, config, xAxis); + + // 设置单个Y轴 + rectYAxis(this, chart, config); + + rectTooltip(this, chart, config, { + crosshairs: null, + }, null, {crosshairs: {type: 'xy'}}); + + legendFilter(this, chart); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + const geom = chart + .point() + .color('type', colors) + .position('x*y') + .shape('circle'); + + if (jitter) { + if (typeof jitter === 'object') { + geom.adjust({ + type: 'jitter', + ...jitter, + }); + } else { + geom.adjust('jitter'); + } + } + + geomStyle(geom, config.geomStyle) + + label(geom, config); + + geomSize(geom, config.size, 4, 'y', 'x*y*type*extra'); + chart.legend('x', false); + chart.legend('y', false); + chart.legend('extra', false); + + // fix: 设置 rectLegend 后如果再调用 chart.legend 会生成默认图例 + rectLegend(this, chart, config, null, false, 'type'); + } +} + +const Wscatter: typeof Scatter = errorWrap(Scatter); +export default Wscatter; + diff --git a/src/Wshoot/index.scss b/src/Wshoot/index.scss new file mode 100644 index 00000000..bd186df9 --- /dev/null +++ b/src/Wshoot/index.scss @@ -0,0 +1,5 @@ +@import "../themes/index"; + +.#{$base-prefix}-wshoot { + display: block; +} diff --git a/components/Wshoot/index.jsx b/src/Wshoot/index.tsx similarity index 69% rename from components/Wshoot/index.jsx rename to src/Wshoot/index.tsx index bfb4e2b3..b45c0e05 100644 --- a/components/Wshoot/index.jsx +++ b/src/Wshoot/index.tsx @@ -1,39 +1,42 @@ 'use strict'; -import React from 'react'; -import PropTypes from 'prop-types'; +import * as React from 'react'; import classNames from 'classnames'; -import './index.scss'; - +import { ChartData } from '../common/types'; import chartLog from "../common/log"; -import Shoot from './shoot'; +import Shoot, { getPositionFun } from './shoot'; +import { PrefixName } from '../constants'; +import './index.scss'; -const prefix = 'cloud-wshoot'; +const prefix = `${PrefixName}-wshoot`; -export default class Wshoot extends React.Component { - static displayName = 'Wshoot'; +export interface ShootProps { + className?: string; + style?: React.CSSProperties; + width: number; + height: number; + config: {}, + data: ChartData; + getPosition?: getPositionFun; +} - static propTypes = { - config: PropTypes.object, - data: PropTypes.array - }; +export default class Wshoot extends React.Component { static defaultProps = { width: 800, height: 600, config: {}, - data: [] }; - constructor(props) { + constructor(props: ShootProps) { super(props); // 图表初始化时记录日志 chartLog('Wshoot', 'init'); } - canvas = null; - shoot = null; + canvas: HTMLCanvasElement = null; + shoot: any = null; componentDidMount() { const { width, height, config, getPosition, data } = this.props; @@ -45,7 +48,7 @@ export default class Wshoot extends React.Component { this.shoot.draw(data); } - componentDidUpdate(prevProps) { + componentDidUpdate(prevProps: ShootProps) { const { data: newData, width: newWidth, height: newHeight, getPosition } = this.props; const { data: oldData, width: oldWidth, height: oldHeight } = prevProps; // 更新 getPosition 函数 diff --git a/components/Wshoot/shoot.js b/src/Wshoot/shoot.ts similarity index 69% rename from components/Wshoot/shoot.js rename to src/Wshoot/shoot.ts index ef4f2b5a..2258dc41 100644 --- a/components/Wshoot/shoot.js +++ b/src/Wshoot/shoot.ts @@ -1,5 +1,6 @@ -import merge from '../common/merge'; -import tween from '../common/tween'; +import { merge } from '../common/common'; +import tween, { Tween } from '../common/tween'; +import { ChartData, Types } from '../common/types'; let uniqueId = 0; function generateUniqueId() { @@ -8,77 +9,141 @@ function generateUniqueId() { const PI = 2 * Math.PI; -function Shoot(canvas, getPosition, config) { - // this.uuid = generateUniqueId(); - this.getPosition = getPosition; - this.config = merge({ - autoUpdate: true, - maxFps: 60, - interval: 10000, // 单次飞线总时间 - dTime: 4000, // 单条飞线预计的时间 - // batch: false, - shootTime: {// 飞行过程中的各个时间 值域[0, 1] - fromTime: 0, // 出发时间(瞬时) - fromStop: 0.4, // 出发点保留时间(持续) - fromFade: 0.1, // 出发点消失所用时间(持续) - toBegin: 0.3, // 到达目标点的时间(瞬时) - toTime: 0.1, // 到达点显示所用时间(持续) - toStop: 0, // 到达点停留持续时间(持续) - toFade: 0.1, // 到达点消失所用时间(持续) - }, - fromRadius: 3, // 出发点半径 - toRadius: 3, // 到达点半径 - fromBorder: 1, // 出发点边框宽度 - toBorder: 1, // 到达点边框宽度 - shootPointColor: { - fromPoint: '46, 133, 255', // 出发点颜色 - fromShadow: '46, 133, 255', // 出发点阴影颜色 - toPoint: '46, 133, 255', // 到达点颜色 - toShadow: '46, 133, 255', // 到达点阴影颜色 - }, - lineWidth: 2, // 飞线宽度 - lineColor: { - from: '46, 133, 255', // 线出发颜色 - to: '46, 133, 255', // 线到达颜色 - }, - bullet: { - r: 2.5, // 弹头半径 - length: 20, // 弹头长度 - color: 'rgb(46, 133, 255)', - shadowColor: 'rgb(46, 133, 255)', - }, - keys: { - from: 'from', - to: 'to', - fromValue: 'fromValue', - toValue: 'toValue', - curvature: 'curvature', // 曲率半径,值越大越平坦 - }, - }, config); - - canvas.width = this.config.width; - canvas.height = this.config.height; - - // 射击canvas层 - this.canvas = canvas; - - this.sCtx = this.canvas.getContext('2d'); - this.sCtx.lineWidth = this.config.lineWidth; -} +const { sin, cos, atan, sqrt } = Math; + +const pow2 = function (x: number) { + return Math.pow(x, 2); +}; function random() { return Math.random() * 5 + 2.5; } -Shoot.prototype = { +interface PositionPoint { + x: number; + y: number; +} + +export type getPositionFun = (d: Types.LooseObject) => PositionPoint; + +interface ShootConfig { + width: number; + height: number; + autoUpdate?: boolean; + maxFps?: number; + interval?: number; // 单次飞线总时间 + dTime?: number; // 单条飞线预计的时间 + shootDurable?: boolean; + // batch: false; + shootTime?: {// 飞行过程中的各个时间 值域[0, 1] + fromTime?: number; // 出发时间(瞬时) + fromStop?: number; // 出发点保留时间(持续) + fromFade?: number; // 出发点消失所用时间(持续) + toBegin?: number; // 到达目标点的时间(瞬时) + toTime?: number; // 到达点显示所用时间(持续) + toStop?: number; // 到达点停留持续时间(持续) + toFade?: number; // 到达点消失所用时间(持续) + }; + fromRadius?: number; // 出发点半径 + toRadius?: number; // 到达点半径 + fromBorder?: number; // 出发点边框宽度 + toBorder?: number; // 到达点边框宽度 + shootPointColor?: { + fromPoint?: string; // 出发点颜色 + fromShadow?: string; // 出发点阴影颜色 + toPoint?: string; // 到达点颜色 + toShadow?: string; // 到达点阴影颜色 + }; + lineWidth?: number; // 飞线宽度 + lineColor?: { + from?: string; // 线出发颜色 + to?: string; // 线到达颜色 + }; + bullet?: { + r?: number; // 弹头半径 + length?: number; // 弹头长度 + color?: string; + shadowColor?: string; + }; + keys?: { + from?: string; + to?: string; + fromValue?: string; + toValue?: string; + curvature?: string; // 曲率半径,值越大越平坦 + }; +} + +class Shoot { + sCtx: CanvasRenderingContext2D; + tween: Tween; + + constructor(private canvas: HTMLCanvasElement, private getPosition: getPositionFun, protected config: ShootConfig) { + // this.uuid = generateUniqueId(); + this.getPosition = getPosition; + this.config = merge({ + autoUpdate: true, + maxFps: 60, + interval: 10000, // 单次飞线总时间 + dTime: 4000, // 单条飞线预计的时间 + // batch: false, + shootTime: {// 飞行过程中的各个时间 值域[0, 1] + fromTime: 0, // 出发时间(瞬时) + fromStop: 0.4, // 出发点保留时间(持续) + fromFade: 0.1, // 出发点消失所用时间(持续) + toBegin: 0.3, // 到达目标点的时间(瞬时) + toTime: 0.1, // 到达点显示所用时间(持续) + toStop: 0, // 到达点停留持续时间(持续) + toFade: 0.1, // 到达点消失所用时间(持续) + }, + fromRadius: 3, // 出发点半径 + toRadius: 3, // 到达点半径 + fromBorder: 1, // 出发点边框宽度 + toBorder: 1, // 到达点边框宽度 + shootPointColor: { + fromPoint: '46, 133, 255', // 出发点颜色 + fromShadow: '46, 133, 255', // 出发点阴影颜色 + toPoint: '46, 133, 255', // 到达点颜色 + toShadow: '46, 133, 255', // 到达点阴影颜色 + }, + lineWidth: 2, // 飞线宽度 + lineColor: { + from: '46, 133, 255', // 线出发颜色 + to: '46, 133, 255', // 线到达颜色 + }, + bullet: { + r: 2.5, // 弹头半径 + length: 20, // 弹头长度 + color: 'rgb(46, 133, 255)', + shadowColor: 'rgb(46, 133, 255)', + }, + keys: { + from: 'from', + to: 'to', + fromValue: 'fromValue', + toValue: 'toValue', + curvature: 'curvature', // 曲率半径,值越大越平坦 + }, + }, config); + + canvas.width = this.config.width; + canvas.height = this.config.height; + + // 射击canvas层 + this.canvas = canvas; + + this.sCtx = this.canvas.getContext('2d'); + this.sCtx.lineWidth = this.config.lineWidth; + } + // 清除画布 - clear(ctx) { + clear(ctx: CanvasRenderingContext2D) { const { width, height } = this.config; ctx.clearRect(0, 0, width, height); - }, + } - changeSize(w, h) { + changeSize(w: number, h: number) { this.config.width = w; this.config.height = h; @@ -87,9 +152,9 @@ Shoot.prototype = { // 更新uuid让动画更新 // this.uuid = generateUniqueId(); - }, + } - draw(data) { + draw(data: ChartData) { if (!data || data.length === 0) { return; } @@ -102,14 +167,14 @@ Shoot.prototype = { const times = (interval / dTime) >> 0; const { keys } = self.config; const { sCtx } = self; - const shoots = []; - const shootMap = {}; + const shoots: any[] = []; + const shootMap: { [key: string]: PositionPoint[] } = {}; const time = self.config.shootTime; const l = data.length; const getPosition = self.getPosition; - let fCo; - let tCo; - let s; + let fCo: PositionPoint; + let tCo: PositionPoint; + let s: any; // 先清除画布 self.clear(sCtx); @@ -188,8 +253,9 @@ Shoot.prototype = { shootFunction(t * times - shootFunction.index); }); }); - }, - emit(fCo, tCo, data, color, time) { + } + + emit(fCo: PositionPoint, tCo: PositionPoint, data: { [x: string]: number; }, color: {}, time: { fromTime?: number; fromStop?: number; fromFade?: number; toBegin?: number; toTime?: number; toStop?: number; toFade?: number; }) { const self = this; const { keys } = self.config; // 发射出现时间段 @@ -217,9 +283,9 @@ Shoot.prototype = { const tr = self.config.toRadius; const h = data[keys.curvature] || random(); const { shootDurable } = self.config; - let s; + let s: any; - s = function (t) { + s = function (t: number) { if (fCo) { // 出发: // 1. 出现 @@ -277,15 +343,16 @@ Shoot.prototype = { }; return s; - }, + } - from(co, r, color, zoom) { + // CHECK zoom 没有传入 + from(co: PositionPoint, r: number, color: { fColor?: any; }, zoom?: boolean) { const self = this; const c = `rgba(${color.fColor || this.config.shootPointColor.fromPoint},`; const b = self.config.fromBorder; const { sCtx } = self; - return function (t) { + return function (t: number) { if (t > 1 || t < 0) { return; } @@ -321,16 +388,16 @@ Shoot.prototype = { sCtx.restore(); }; - }, - to(co, r, color, zoom, n, anticlockwise) { + } + + // CHECK anticlockwise 没有传入 + to(co: PositionPoint, r: number, color: { tColor?: any; }, zoom?: boolean, n?: number, anticlockwise?: undefined) { const self = this; const c = `rgba(${color.tColor || this.config.shootPointColor.toPoint},`; const b = self.config.toBorder; const { sCtx } = self; - const { sin } = Math; - const { cos } = Math; - return function (t) { + return function (t: number) { let rad = 0; if (t > 1 || t < 0) { @@ -384,16 +451,12 @@ Shoot.prototype = { sCtx.restore(); }; - }, - track(fCo, tCo, fade, color, h, overview) { + } + + // CHECK overview 没有传入 + track(fCo: PositionPoint, tCo: PositionPoint, fade: boolean, color: { fColor?: any; tColor?: any; bullet?: any; }, h: number, overview?: boolean) { const self = this; const { sCtx: ctx } = self; - const { cos } = Math; - const { atan } = Math; - const pow2 = function (x) { - return Math.pow(x, 2); - }; - const { sqrt } = Math; const fColor = `rgba(${color.fColor || self.config.lineColor.from},`; const tColor = `rgba(${color.tColor || self.config.lineColor.to},`; @@ -439,7 +502,7 @@ Shoot.prototype = { y3 = j * x3 + k; } - return function (t) { + return function (t: number) { // 移动点坐标 let x0; let y0; @@ -525,8 +588,9 @@ Shoot.prototype = { self.drawBullet(x0, y0, a, color.bullet, bulletR, bulletLen); } }; - }, - drawBullet(x, y, a, color, r, len) { + } + + drawBullet(x: number, y: number, a: number, color: string, r: number, len: number) { const self = this; const { sCtx } = self; @@ -556,16 +620,18 @@ Shoot.prototype = { sCtx.fill(); sCtx.restore(); - }, - update(time) { + } + + update(time: number) { if (this.tween && this.tween.update) { this.tween.update(time); } - }, + } + destroy() { this.clear(this.sCtx); this.tween && this.tween.destroy(); - }, -}; + } +} export default Shoot; diff --git a/src/Wtreemap/index.scss b/src/Wtreemap/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/Wtreemap/index.ts b/src/Wtreemap/index.ts new file mode 100644 index 00000000..1a17ea05 --- /dev/null +++ b/src/Wtreemap/index.ts @@ -0,0 +1,366 @@ +'use strict'; +import { View } from '@antv/data-set/lib/view'; +import '@antv/data-set/lib/transform/hierarchy/treemap'; + +import { Chart, Types, BaseChartConfig, ChartData, Colors } from '../common/types'; +import Base from '../common/Base'; +import errorWrap from '../common/errorWrap'; +import themes from '../themes/index'; +import { propertyAssign, propertyMap } from '../common/common'; +import { XAxisConfig } from '../common/rectXAxis'; +import { YAxisConfig } from '../common/rectYAxis'; +import rectLegend, { LegendConfig } from '../common/rectLegend'; +import rectTooltip, { TooltipConfig } from '../common/rectTooltip'; +import guide, { GuideConfig } from '../common/guide'; +import { LabelConfig } from '../common/label'; +import geomStyle, { GeomStyleConfig } from '../common/geomStyle'; + +import './index.scss'; + +// 3.x代码 +export interface WtreemapConfig extends BaseChartConfig { + colors?: Colors; + xAxis?: Types.ScaleOption & XAxisConfig | false, + yAxis?: Types.ScaleOption & YAxisConfig | false, + legend?: LegendConfig | boolean; + tooltip?: TooltipConfig | boolean; + guide?: GuideConfig; + label?: LabelConfig | boolean; + geomStyle?: GeomStyleConfig; + polar?: boolean; + innerRadius?: number; +} + +export class Treemap extends Base { + chartName = 'G2Treemap'; + convertData = false; + + getDefaultConfig(): WtreemapConfig { + return { + colors: themes.category_12, + xAxis: { + // type: "cat", + labelFormatter: null, // 可以强制覆盖,手动设置label + categories: null, + autoRotate: false, + // 坐标轴粒度 + // tickInterval: 1, + }, + yAxis: { + labelFormatter: null, // 可以强制覆盖,手动设置label + max: null, + min: null + }, + legend: { + align: "left", + nameFormatter: null // 可以强制覆盖,手动设置label + }, + tooltip: { + titleFormatter: null, + nameFormatter: null, + valueFormatter: null, + }, + label: true, + innerRadius: 0, + polar: false, + // 区块的 border 样式,包含 lineWidth lineDash stroke 等属性 + geomStyle: { + lineWidth: 1, + stroke: themes['widgets-color-background'], + }, + }; + } + init(chart: Chart, config: WtreemapConfig, data: any) { + const defs: Record = { + x: propertyAssign(propertyMap.axis, { + nice: true, + }, config.xAxis), + y: propertyAssign(propertyMap.axis, { + nice: true, + }, config.yAxis) + }; + + const dataView = processDataView(data); + const nodes = parseDataView(dataView); + + chart.scale(defs); + + chart.data(nodes); + + // 设置图例 + rectLegend(this, chart, config, null, false, "type"); + + // tooltip + rectTooltip( + this, + chart, + config, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + null, + { + showTitle: false, + showMarkers: false, + showCrosshairs: false, + }, + ); + + chart.axis(false); + chart.legend(false); + + // 绘制辅助线,辅助背景区域 + guide(chart, config); + + if (nodes.some((x) => x.brand)) { + drawNestedTreemap(chart, config); + } else { + drawTreemap(chart, config); + } + } + changeData(chart: Chart, config: WtreemapConfig, data: any) { + const dataView = processDataView(data); + const nodes = parseDataView(dataView); + + chart && chart.changeData(nodes); + } +} + +// 数据分箱 +function processDataView(data: ChartData) { + const dv = new View().source(resetParentValue(data), { type: 'hierarchy' }); + dv.transform({ + field: 'value', + type: 'hierarchy.treemap', + tile: 'treemapResquarify', + as: ['x', 'y'], + }); + + return dv; +} + +// 将 DataSet 处理后的结果转换为 G2 接受的数据 +function parseDataView(dv: any) { + const nodes = []; + + for (const node of dv.getAllNodes()) { + if (node.data.name === 'root') { + continue; + } + + const eachNode = { + name: node.data.name, + x: node.x, + y: node.y, + value: getNodeValue(node), + depth: node.depth, + brand: node.data.brand + }; + + if (!node.data.brand && node.parent) { + eachNode.brand = node.parent.data.brand; + } else { + eachNode.brand = node.data.brand; + } + + nodes.push(eachNode); + } + + return nodes; +} + +// 简单矩形树图 +function drawTreemap(chart: Chart, config: WtreemapConfig, field = 'name') { + const { colors } = config; + // 设置坐标系:极坐标/直角坐标 + if (config.polar) { + chart.coordinate('polar', { + innerRadius: config.innerRadius || 0, + }); + } else { + chart.coordinate(); + } + + chart.scale({ + x: { nice: true }, + y: { nice: true }, + }); + + // label 自定义配置项待传入,TODO + const geom = chart + .polygon() + .position('x*y') + .color(field, colors) + .tooltip('name*value', (name, count) => ({ name, value: count, title: name })) + .label( + 'name', { + offset: 0, + style: { + textBaseline: 'middle', + }, + } + ); + + geomStyle(geom, config.geomStyle); + + chart.interaction('element-active'); +} + +// 嵌套矩形树图 +function drawNestedTreemap(chart: Chart, config: WtreemapConfig, field = 'brand') { + const { colors } = config; + // 设置坐标系:极坐标/直角坐标 + if (config.polar) { + chart + .coordinate('polar', { + innerRadius: config.innerRadius || 0, + }) + .reflect('y'); + } else { + // 习惯性最小的在最下面 + chart.coordinate().scale(1, -1); + } + + chart.scale({ + x: { nice: false }, + y: { nice: false }, + }); + + const geom = chart + .polygon() + .position('x*y') + .color(field, colors) + .tooltip('name*value*brand', (name, value, brand) => ({ + name, + value, + title: brand, + })) + .label( + 'depth*brand*name*value*x*y', + (depth, brand, value) => { + if (depth === 1 && value) { + // 只有第一级显示文本,数值太小时不显示文本 + return { + content: brand, + }; + } + return { content: null }; + }, + { + offset: 0, + style: { + textBaseline: 'middle', + fill: '#000', + shadowBlur: 10, + shadowColor: '#fff', + }, + } + ); + + geomStyle(geom, config.geomStyle); +} + +// 此方法对原始数据进行处理,返回新的副本 +function resetParentValue(data: any) { + const { brand, name, value, children } = data; + const result = { name, value, brand, children }; + if (brand) { + result.brand = brand; + } + if (children) { + // DataView 会通过子节点累加 value 值,所以先置为 null + result.value = null; + result.children = children.map(resetParentValue); + } + return result; +} + +// 计算当前节点 value +function getNodeValue(n: any) { + if (n.data.value === null && n.children) { + return n.children.map(getNodeValue).reduce((pre: any, cur: any) => pre + cur, 0); + } + return n.data.value; +} + +const Wtreemap: typeof Treemap = errorWrap(Treemap); + +export default Wtreemap; +// export default /*#__PURE__*/ errorWrap( +// g2Factory('G2Treemap', { +// convertData: false, +// getDefaultConfig() { +// return { +// colors: themes.category_12, +// padding: ['auto', 'auto', 'auto', 'auto'], +// tooltip: { +// titleFormatter: null, +// nameFormatter: null, +// valueFormatter: null, +// }, +// label: { +// offset: 0, +// textStyle: { +// fill: '#fff', +// shadowBlur: 2, +// shadowColor: 'rgba(0,0,0,0.6)', +// }, +// }, +// // label 文本展现的策略 +// labelRender: (depth, brand, name, value, xRange, yRange) => { +// // 只有第一级显示文本,矩形面积太小时不显示文本 +// if (depth === 1 && xRange[1] - xRange[0] > 0.04 && yRange[1] - yRange[0] > 0.04) { +// return brand; +// } +// return; +// }, +// innerRadius: 0, +// polar: false, +// // 区块的 border 样式,包含 lineWidth lineDash stroke 等属性 +// geomStyle: { +// lineWidth: 1, +// stroke: themes['widgets-color-background'], +// }, +// }; +// }, +// beforeInit(props) { +// const { config } = props; +// const newConfig = merge({}, this.defaultConfig, config); + +// // TODO 处理padding +// return Object.assign({}, props, { +// padding: defaultPadding( +// props.padding || config.padding, +// newConfig, +// ...this.defaultConfig.padding, +// ), +// config: newConfig, +// }); +// }, +// init(chart, userConfig, data) { +// const config = userConfig; + +// this.dataView = processDataView(config, data); +// const nodes = parseDataView(this.dataView); +// chart.source(nodes); + +// // tooltip +// rectTooltip(this, chart, config, { crosshairs: false }); + +// if (nodes.some((x) => x.brand)) { +// drawNestedTreemap(chart, config, config.colors); +// } else { +// drawTreemap(chart, config, config.colors); +// } + +// chart.render(); +// }, +// changeData(chart, config, data) { +// if (this.dataView) { +// this.dataView.source(data); +// } +// }, +// }), +// ); diff --git a/src/cdn.scss b/src/cdn.scss new file mode 100644 index 00000000..6a580467 --- /dev/null +++ b/src/cdn.scss @@ -0,0 +1,4 @@ +$font-path-m: '//cdn.jsdelivr.net/npm/@alicloud/cloud-charts@1.0.0/build'; +$font-path-r: '//cdn.jsdelivr.net/npm/@alicloud/cloud-charts@1.0.0/build'; + +@import "./index.scss"; diff --git a/src/cdn.ts b/src/cdn.ts new file mode 100644 index 00000000..45fed036 --- /dev/null +++ b/src/cdn.ts @@ -0,0 +1,51 @@ +import { VERSION } from './constants'; +import themes, { Themes } from './themes/index'; +import './cdn.scss'; + +export const version = VERSION; +export { VERSION } ; + +// 主题包和颜色值 +export const COLORS: Themes = themes; +export const THEMES: Themes = themes; +export { themes }; + +// 打点控制 +export { default as track } from './track'; + +// 插件系统 +export { plugins, pluginManager } from './plugins'; + +// 暴露工具类 +export { default as Util } from './Util'; + +export { default as Wline, Line as RawWline } from './Wline'; +export { default as Wlinebar, Linebar as RawLinebar } from './Wlinebar'; +export { default as Wpie, Pie as RawPie } from './Wpie'; +export { default as Wradar, Radar as RawRadar } from './Wradar'; +export { default as Wbar, Bar as RawBar } from './Wbar'; +export { default as Wfunnel, Funnel as RawFunnel } from './Wfunnel'; +export { default as Wnightingale, Nightingale as RawNightingale } from './Wnightingale'; +export { default as Wheatmap, Heatmap as RawHeatmap } from './Wheatmap'; +export { default as Wmap, Map as RawMap } from './Wmap' +export { default as Wrectangle, Rectangle as RawRectangle } from './Wrectangle'; +export { default as Wminiline, Miniline as RawMiniline } from './Wminiline'; +export { default as WmultiPie, MultiPie as RawMultiPie } from './Wmultipie'; +export { default as Wbox, Box as RawBox } from './Wbox'; +export { default as Wsankey, Sankey as RawSankey } from './Wsankey'; +export { default as Wscatter, Scatter as RawScatter } from './Wscatter'; +export { default as Whistogram, Histogram as RawHistogram } from './Whistogram'; +export { default as Wtreemap, Treemap as RawTreemap } from './Wtreemap'; +export { default as Wcandlestick, Candlestick as RawCandlestick } from './Wcandlestick'; +export { default as Whierarchy } from './Whierarchy'; + +// 业务组件,没有依赖其它图表库 +export { default as Wnumber } from './Wnumber/index'; +export { default as Wcontainer } from './Wcontainer/index'; +export { default as Wicon } from './Wicon/cdn'; // Icon 组件也改为 cdn 引入字体 +export { default as Wcircle } from './Wcircle/index'; +export { default as Wminicontainer } from './Wminicontainer/index'; +export { default as Wshoot } from './Wshoot/index'; +export { default as Wplaceholder } from './Wplaceholder/index'; +export { default as Wcount } from './Wcount/index'; +// export { default as Wdashboard } from './Wdashboard/index'; diff --git a/src/common/Base.tsx b/src/common/Base.tsx new file mode 100644 index 00000000..6e8ff419 --- /dev/null +++ b/src/common/Base.tsx @@ -0,0 +1,566 @@ +'use strict'; + +import { Chart, registerAction } from '@antv/g2/esm'; +import * as React from 'react'; +import { BaseChartConfig, ChartData, Size, Language, Types } from "./types"; +import { getParentSize, requestAnimationFrame, isEqualWith, merge } from './common'; +import highchartsDataToG2Data from './dataAdapter'; +import chartLog, { warn } from './log'; +import eventBus from './eventBus'; +import { FullCrossName } from '../constants'; +import { ListChecked } from './interaction'; + +registerAction('list-checked', ListChecked); + +// 图表唯一id +let uniqueId = 0; +function generateUniqueId(): string { + return `react-g2-${uniqueId++}`; +} + +export const rootClassName = `${FullCrossName} `; +export const rootChildClassName = `${FullCrossName}-children`; + +/** 修复旧版 padding 部分 auto 的设置导致图表白屏的问题 */ +function fixPadding(padding: Types.ViewPadding | (number | string)[]) { + if (Array.isArray(padding)) { + for (let i = 0; i < padding.length; i++) { + if (padding[i] === 'auto') { + warn('config.padding', '不再支持 auto 和 数值 混用,请使用 config.padding = \'auto\''); + return 'auto'; + } + } + } + return padding as Types.ViewPadding; +} + +const needFixEventName = { + 'plotenter': 'plot:enter', + 'plotmove': 'plot:move', + 'plotleave': 'plot:leave', + 'plotclick': 'plot:click', + 'plotdblclick': 'plot:dblclick', +} +/** 修复部分事件名称改变导致在新版不生效的问题 */ +function fixEventName(eventName: string): string { + // @ts-ignore + if (needFixEventName[eventName]) { + // @ts-ignore + warn('event', `事件 ${eventName} 名称更改为:${needFixEventName[eventName]}`); + // @ts-ignore + return needFixEventName[eventName]; + } + return eventName +} + +export interface ChartProps { + className?: string; + style?: React.CSSProperties; + width?: Size; + height?: Size; + config?: ChartConfig; + data?: ChartData; + event?: { + [eventKey: string]: () => void; + }; + language?: Language; + getChartInstance?: (chart: Chart) => void; + enableFunctionUpdate?: boolean; + // G2 顶层属性 + padding?: Types.ViewPadding; + localRefresh?: boolean; + renderer?: 'canvas' | 'svg'; + syncViewPadding?: boolean; + /** @deprecated 该属性移至 config.animate */ + animate?: boolean; + /** @deprecated 自定义图表请使用类继承 */ + customChart?: any; +} + +/** + * React 图表基类 + * + * @template ChartConfig 泛型 - 配置项 + * @template Props 泛型 - Props参数 + * */ +class Base = ChartProps> extends React.Component { + static defaultProps? = {}; + + static isG2Chart = true; + + public chartName = 'Base'; + + public chart: Chart; + + public chartDom: HTMLDivElement; + + readonly chartId: string; + + public defaultConfig: ChartConfig; + + protected language: Language; + + protected rawData: ChartData; + + constructor(props: Props) { + super(props); + this.chart = null; + this.chartDom = null; + this.chartId = generateUniqueId(); + this.defaultConfig = ({} as ChartConfig); + + this.autoResize = this.autoResize.bind(this); + this.rerender = this.rerender.bind(this); + + // 图表初始化时记录日志 + chartLog(this.chartName, 'init'); + } + + // 图表生命周期 + + /** 是否自动转换数据格式 */ + public convertData: boolean = true; + + /** 获取图表默认配置项 */ + public getDefaultConfig(): ChartConfig { + return ({} as ChartConfig); + } + + /** 初始化前对props额外处理 */ + public beforeInit?(props: Props): Props; + + /** 初始化函数 */ + public init(chart: Chart, config: ChartConfig, data: ChartData): void { }; + + /** 自定义判断配置项是否更改 */ + public isChangeEqual?(objValue: any, othValue: any, key: number | string): undefined | boolean; + + /** 更新数据 */ + public changeData(chart: Chart, config: ChartConfig, data: ChartData): void { + chart && chart.changeData(data); + }; + + /** 更新尺寸 */ + public changeSize(chart: Chart, config: ChartConfig, width: number, height: number): void { + chart && chart.changeSize(width, height); + }; + + /** @deprecated 图表渲染后回调 */ + public afterRender?(config: ChartConfig): void; + + /** 销毁图表 */ + public destroy?(): void; + + + // 基类自己的生命周期 + + componentDidMount() { + this.language = this.props.language || 'zh-cn'; + + // 设置初始高宽 + this.initSize(); + + this.initChart(); + + eventBus.on('setTheme', this.rerender); + } + + protected isReRendering = false; + + // private reRenderTimer: any = null; + + rerender() { + // 修复 变化过快时 chart.destroy 方法无法清除dom,导致dom重复的问题。 + if (this.isReRendering) { + // window.cancelAnimationFrame(this.reRenderTimer); + } + + this.isReRendering = true; + this.handleDestroy(); + + // this.reRenderTimer = requestAnimationFrame(() => { + if (!this.chartDom) { + return; + } + this.initSize(); + + this.initChart(); + + this.isReRendering = false; + // }); + } + + isEqualCustomizer = (objValue: any, othValue: any, key: number | string): undefined | boolean => { + const res = this.isChangeEqual ? this.isChangeEqual(objValue, othValue, key) : undefined; + if (res !== undefined) { + return res; + } + const enableFunctionUpdate = this.props.enableFunctionUpdate; + // 默认忽略全部function,开启 enableFunctionUpdate 可以接受function更新 + if (!enableFunctionUpdate && typeof objValue === 'function' && typeof othValue === 'function') { + return true; + } + // 其余情况使用lodash的默认判断 + return undefined; + }; + + checkConfigChange(newConfig: ChartConfig, oldConfig: ChartConfig): boolean { + let hasConfigChange = false; + + if (!isEqualWith(newConfig, oldConfig, this.isEqualCustomizer)) { + hasConfigChange = true; + } + + return hasConfigChange; + } + + componentDidUpdate(prevProps: Props) { + const { + data: newData, + width: newWidth, + height: newHeight, + config: newConfig, + event: newEvent, + // changeConfig = true, + } = this.props; + const { + data: oldData, + width: oldWidth, + height: oldHeight, + config: oldConfig, + event: oldEvent, + } = prevProps; + + this.language = this.props.language || 'zh-cn'; + + // 配置项有变化,重新生成图表 + // if (changeConfig !== false) { + if (this.checkConfigChange(newConfig, oldConfig)) { + this.rerender(); + + return; + } + // } + + // 更新事件 + if (newEvent !== oldEvent) { + // 清除旧事件 + Object.keys(oldEvent).forEach(eventKey => { + this.chart.off(fixEventName(eventKey), oldEvent[eventKey]); + }); + // 绑定新事件 + Object.keys(newEvent).forEach(eventKey => { + this.chart.on(fixEventName(eventKey), newEvent[eventKey]); + }); + } + + let needAfterRender = false; + + // 数据有变化 + if ( + newData !== oldData || + (Array.isArray(newData) && + Array.isArray(oldData) && + newData.length !== oldData.length) + ) { + const data = + this.convertData && + newConfig.dataType !== 'g2' + ? highchartsDataToG2Data(newData, newConfig) + : newData; + this.rawData = newData; + this.changeData( + this.chart, + merge({}, this.defaultConfig, newConfig), + data + ); + // if (this.chartProcess.changeData) { + // this.chart && + // this.chartProcess.changeData.call( + // this, + // this.chart, + // newConfig, + // data + // ); + // } else { + // this.chart && this.chart.changeData(data); + // } + + needAfterRender = true; + } + // 传入的长宽有变化 + if (newWidth !== oldWidth || newHeight !== oldHeight) { + this.handleChangeSize(newConfig, newWidth, newHeight); + + needAfterRender = true; + } + + if (needAfterRender) { + this.handleAfterRender(newConfig); + } + } + + // 渲染控制,仅 class、style、children 变化会触发渲染 + // shouldComponentUpdate(nextProps) { + // const { className: newClass, style: newStyle, children: newChild } = nextProps; + // const { className: oldClass, style: oldStyle, children: oldChild } = this.props; + // return newClass !== oldClass || newStyle !== oldStyle || newChild !== oldChild; + // } + + // 准备销毁 + unmountCallbacks: ((chart: Chart) => void)[] = []; + + handleDestroy() { + // 清空缩放相关变量和事件 + this.resizeRunning = false; + window.cancelAnimationFrame(this.resizeTimer); + window.removeEventListener('resize', this.autoResize); + // 清除配置变化重新生成图表的定时器 + // window.cancelAnimationFrame(this.reRenderTimer); + // 清除afterRender的定时器 + clearTimeout(this.afterRenderTimer); + + if (this.destroy) { + this.chart && this.destroy(); + } + if (this.unmountCallbacks.length > 0) { + this.unmountCallbacks.forEach(cb => { + cb && cb.call(this, this.chart); + }); + } + + this.chart && this.chart.destroy && this.chart.destroy(); + this.chart = null; + // this.chartDom = null; + // this.chartId = null; + + if (typeof this.props.getChartInstance === 'function') { + this.props.getChartInstance(null); + } + + this.afterRenderCallbacks = []; + this.unmountCallbacks = []; + } + + componentWillUnmount() { + this.handleDestroy(); + + eventBus.off('setTheme', this.rerender); + } + + initChart() { + this.defaultConfig = this.getDefaultConfig(); + // 合并默认配置项 + let currentProps: Props = { + ...this.props, + config: merge({}, this.defaultConfig, this.props.config), + }; + // 开始初始化图表 + if (this.beforeInit) { + currentProps = this.beforeInit(currentProps); + } + currentProps.config.padding = fixPadding(currentProps.padding || currentProps.config.padding); + const { + width, + height, + data: initData, + padding, + // forceFit, + config, + event, + animate, + ...otherProps + } = currentProps; + // 生成图表实例 + const chart = new Chart({ + container: this.chartDom, + width: this.size[0], + height: this.size[1] || 200, + padding: config.padding, + // forceFit: forceFit || false, + // auto-padding 时自带的内边距 + // autoPaddingAppend: 3, + ...otherProps, + }); + + // 预处理数据 + const data = + this.convertData && + config.dataType !== 'g2' + ? highchartsDataToG2Data(initData, config) + : initData; + this.rawData = initData; + + if (animate !== undefined) { + warn('animate', '请使用 config.animate 设置动画开关。'); + // 将 props.animate 传入 config.animate + if (config.animate === undefined) { + config.animate = animate; + } + } + + // 绘制逻辑 + chart && this.init(chart, config, data); + + // 全局动画设置 + if (typeof config.animate === 'boolean') { + chart.animate(config.animate); + } + + // 开始渲染 + chart.render(); + + // 绑定事件,这里透传了G2的所有事件,暂时不做额外封装 + if (chart && event) { + Object.keys(event).forEach(eventKey => { + chart.on(fixEventName(eventKey), event[eventKey]); + }); + } + + this.chart = chart; + + if (typeof currentProps.getChartInstance === 'function') { + currentProps.getChartInstance(chart); + } + + this.handleAfterRender(config); + } + + public size: number[] = [0, 0]; + + // 初始化时适配高宽 + initSize() { + const { width, height } = this.props; + + const parentSize = getParentSize(this.chartDom, width, height); + + this.setSize(parentSize); + + window.addEventListener('resize', this.autoResize); + } + + handleChangeSize(config: ChartConfig, w: Size = this.size[0], h: Size = this.size[1]) { + this.setSize([w, h]); + + // 强制转换为数字 + this.changeSize(this.chart, config, Number(w), Number(h)); + + // if (this.chartProcess.changeSize) { + // this.chart && + // this.chartProcess.changeSize.call(this, this.chart, config, w, h); + // } else { + // this.chart && this.chart.changeSize(w, h); + // } + } + + // 动态适配高宽,利用 resizeRunning 做节流 + private resizeRunning = false; + + private resizeTimer: any = null; + + autoResize() { + if (this.resizeRunning) { + // this.resizeRunning = false; + // window.cancelAnimationFrame(this.resizeTimer); + return; + } + + const { chartDom: element, props, size } = this; + this.resizeRunning = true; + + this.resizeTimer = requestAnimationFrame(() => { + this.resizeRunning = false; + + const parentSize = getParentSize(element, props.width, props.height); + // 读取的高宽需要是有效值,0 也不可以 + if ( + !(parentSize[0] === size[0] && parentSize[1] === size[1]) && + parentSize[0] && + parentSize[1] + ) { + this.handleChangeSize(props.config, parentSize[0], parentSize[1]); + + this.handleAfterRender(); + } + }); + } + + // 设置高宽 + setSize([w, h]: Size[]) { + const element = this.chartDom; + this.size = [Number(w), Number(h)]; + + if (w) { + element.style.width = `${w}px`; + } + if (h) { + element.style.height = `${h}px`; + } + } + + protected afterRenderCallbacks: ((chart: Chart, config: ChartConfig) => void)[] = []; + + protected afterRenderTimer: any = null; + + handleAfterRender(config?: ChartConfig) { + if (this.afterRender || this.afterRenderCallbacks.length > 0) { + this.afterRenderTimer = setTimeout(() => { + if (this.chart && this.afterRender) { + this.afterRender(config || this.props.config); + } + if (this.afterRenderCallbacks.length > 0) { + this.afterRenderCallbacks.forEach(cb => { + cb && cb.call(this, this.chart, config || this.props.config); + }); + } + }, 50); + } + } + + render() { + const { + className = '', + style, + children, + data, + width, + height, + padding, + config, + event, + animate, + language, + localRefresh, + renderer, + syncViewPadding, + customChart, + getChartInstance, + enableFunctionUpdate, + ...otherProps + } = this.props; + return ( +
    (this.chartDom = dom)} + id={this.chartId} + key={this.chartId} + className={`${rootClassName + this.chartName} ${className}`} + style={style} + {...otherProps}> + {children ? ( +
    {children}
    + ) : null} +
    + ); + } +} + +// Base.baseClassName = rootClassName + name; + +export default Base; + +export interface BaseClass { + new (props: Props): Base; + isG2Chart: boolean; + displayName?: string; + defaultProps?: Partial; +} diff --git a/components/common/arrow/index.scss b/src/common/arrow/index.scss similarity index 100% rename from components/common/arrow/index.scss rename to src/common/arrow/index.scss diff --git a/components/common/arrow/index.jsx b/src/common/arrow/index.tsx similarity index 55% rename from components/common/arrow/index.jsx rename to src/common/arrow/index.tsx index ebc78193..183fa163 100644 --- a/components/common/arrow/index.jsx +++ b/src/common/arrow/index.tsx @@ -1,11 +1,16 @@ 'use strict'; -import React from 'react'; +import * as React from 'react'; import classNames from 'classnames'; +import { PrefixName } from '../../constants'; import './index.scss'; -const prefix = 'cloud-warrow'; +const prefix = `${PrefixName}-warrow`; -export default class Wcircle extends React.Component { +interface ArrowProps { + type: 'up' | 'down'; +} + +export default class Wcircle extends React.Component { static defaultProps = { type: 'up', }; diff --git a/components/common/arrow/scss/variable.scss b/src/common/arrow/scss/variable.scss similarity index 85% rename from components/common/arrow/scss/variable.scss rename to src/common/arrow/scss/variable.scss index 2df71d29..856a419e 100644 --- a/components/common/arrow/scss/variable.scss +++ b/src/common/arrow/scss/variable.scss @@ -1,6 +1,6 @@ @import "../../../themes/index"; -$warrow-prefix: '.cloud-warrow'; +$warrow-prefix: '.#{$base-prefix}-warrow'; $warrow-width: 10px; $warrow-height: 8px; diff --git a/components/common/autoTimeMask.js b/src/common/autoTimeMask.ts similarity index 91% rename from components/common/autoTimeMask.js rename to src/common/autoTimeMask.ts index f4ed8b9c..5ba207a1 100644 --- a/components/common/autoTimeMask.js +++ b/src/common/autoTimeMask.ts @@ -1,5 +1,7 @@ 'use strict'; +import { Types, ChartData } from "./types"; + const defaultMask = 'YYYY-MM-DD HH:mm:ss'; const MINUTE_MS = 60 * 1000; const HOUR_MS = 3600 * 1000; @@ -24,7 +26,8 @@ const maskMap = [ ['YYYY-MM-DD HH:mm', 'MM-DD HH:mm', 'MM-DD HH:mm', 'HH:mm', 'HH:mm'], ['YYYY-MM-DD HH:mm:ss', 'MM-DD HH:mm:ss', 'MM-DD HH:mm:ss', 'HH:mm:ss', 'mm:ss', 'mm:ss'], ]; -function getTimeIndex(t) { + +function getTimeIndex(t: number): number { for (let i = 0; i < timeList.length; i++) { if (t >= timeList[i]) { return i; @@ -38,7 +41,7 @@ function getTimeIndex(t) { * @param defs {object} 数据列定义 * @param data {array} G2图表实例 * */ -export default function (defs, data) { +export default function (defs: Record, data: ChartData): void { const def = defs.x; if ( (def.type === 'time' || def.type === 'timeCat') && @@ -52,7 +55,7 @@ export default function (defs, data) { } // 取数据的跨度和间距两种值,跨度决定上限,间距决定下限。 -function getAutoMask(def, data) { +function getAutoMask(def: Types.ScaleOption, data: any): string { if (data.length < 2) { return defaultMask; } diff --git a/components/common/common.js b/src/common/common.ts similarity index 51% rename from components/common/common.js rename to src/common/common.ts index 432c8098..1a3711af 100644 --- a/components/common/common.js +++ b/src/common/common.ts @@ -1,19 +1,23 @@ -import G2 from '@antv/g2'; -import themes from '../themes/index'; +import { Colors, Types } from "./types"; +import themes from '../themes'; +import { warn } from './log'; -// 引入 lodash 的 isEqual 代替 -export isEqual from 'lodash/isEqual'; -export isEqualWith from 'lodash/isEqualWith'; -export merge from './merge'; +import isEqual from 'lodash/isEqual'; +import isEqualWith from 'lodash/isEqualWith'; +import merge from 'lodash/merge'; +export { isEqual, isEqualWith, merge }; -export const requestAnimationFrame = (window && window.requestAnimationFrame) || G2.DomUtil.requestAnimationFrame; +export const requestAnimationFrame = window && window.requestAnimationFrame; export const propertyMap = { - xAxis: ['type', 'alias', 'range', 'ticks', 'tickCount', 'tickInterval', 'formatter', 'min', 'max', 'minLimit', 'maxLimit', 'nice', 'values', 'mask', 'base', 'exponent', 'sync'], - yAxis: ['type', 'alias', 'range', 'ticks', 'tickCount', 'tickInterval', 'formatter', 'min', 'max', 'minLimit', 'maxLimit', 'nice', 'values', 'mask', 'base', 'exponent', 'sync'], + axis: [ + 'type', 'showLast', 'alias', 'sync', 'mask', 'base', 'exponent', 'values', + 'range', 'min', 'max', 'minLimit', 'maxLimit', 'nice', + 'ticks', 'tickMethod', 'tickCount', 'maxTickCount', 'tickInterval', 'minTickInterval', 'formatter', + ], }; -const keyType = { +const keyType: Types.LooseObject = { min: 'number', max: 'number', minLimit: 'number', @@ -29,31 +33,37 @@ const keyType = { * * @return {Object} 目标对象 * */ -export function propertyAssign(keys, target, source) { +export function propertyAssign(keys: string[], target: Types.LooseObject, source: Types.LooseObject | false) { if (!source) { return target; } keys.forEach((key) => { // 仅判断undefined的情况 - if (source[key] !== undefined) { - // 将部分限制了类型的key属性转换为需要的类型 - if (keyType[key] !== 'number') { - target[key] = source[key]; - } else if (source[key] === null) { - // 设置null则直接赋值 - target[key] = null; - } else if (!isInvalidNumber(source[key])) { - // 是数字时才赋值,否则直接跳过 - target[key] = Number(source[key]); - } - // if (keyType[key] === 'number') { - // if (!isInvalidNumber(source[key])) { - // target[key] = Number(source[key]); - // } - // } else { - // target[key] = source[key]; - // } + if (source[key] === undefined) { + return; + } + // 忽略 tickCount: 'auto' + if (key === 'tickCount' && source[key] === 'auto') { + warn('config.axis', `tickCount: 'auto' 被替换为 Axis.autoHide: true`); + return; + } + // 将部分限制了类型的key属性转换为需要的类型 + if (keyType[key] !== 'number') { + target[key] = source[key]; + } else if (source[key] === null) { + // 设置null则直接赋值 + target[key] = null; + } else if (!isInvalidNumber(source[key])) { + // 是数字时才赋值,否则直接跳过 + target[key] = Number(source[key]); } + // if (keyType[key] === 'number') { + // if (!isInvalidNumber(source[key])) { + // target[key] = Number(source[key]); + // } + // } else { + // target[key] = source[key]; + // } }); return target; @@ -63,12 +73,12 @@ export function propertyAssign(keys, target, source) { * 找到对应元素的父元素的大小 * * @param {element} element Html元素 - * @param {number} width props中传递的width属性 - * @param {number} height props中传递的height属性 + * @param {number | string} width props中传递的width属性 + * @param {number | string} height props中传递的height属性 * - * @return {array} 宽和高的数组 + * @return {number[]} 宽和高的数组 * */ -export function getParentSize(element, width, height) { +export function getParentSize(element: HTMLElement, width: number | string, height: number | string) { let w = width || ''; let h = height || ''; @@ -88,7 +98,7 @@ export function getParentSize(element, width, height) { h = parent.clientHeight - paddingTop - paddingBottom; } } - return [w, h]; + return [Number(w), Number(h)]; } /** @@ -98,7 +108,7 @@ export function getParentSize(element, width, height) { * * @return {number} 数值 * */ -export function pxToNumber(px) { +export function pxToNumber(px: string) { return Number(px.replace('px', '')); } @@ -109,7 +119,10 @@ export function pxToNumber(px) { * @param {array} rawData Highcharts 格式的数据 * @param {number} dataIndex y轴对应的index * */ -export function getDataIndexColor(colors, rawData, dataIndex) { +export function getDataIndexColor(colors: Colors, rawData: any[], dataIndex: number): string | void { + if (typeof colors === 'string') { + return colors; + } let colorIndex = null; // 找到第一个顺序值和数据中yAxis值匹配的index rawData.some((d, i) => { @@ -121,8 +134,14 @@ export function getDataIndexColor(colors, rawData, dataIndex) { return false; }); - if (colorIndex !== null) { - return colors[colorIndex]; + if (typeof colorIndex === 'number') { + if (Array.isArray(colors)) { + return colors[colorIndex]; + } + + if (typeof colors === 'function') { + return colors(rawData[colorIndex].name); + } } } @@ -133,9 +152,9 @@ export function getDataIndexColor(colors, rawData, dataIndex) { * * @return {string} 颜色值 * */ -export function getStatusColor(status) { +export function getStatusColor(status: string) { // map 放入函数内,以响应 theme 的动态变化 - const statusMap = { + const statusMap: Types.LooseObject = { error: themes['widgets-color-red'], red: themes['widgets-color-red'], @@ -155,7 +174,7 @@ export function getStatusColor(status) { return statusMap[status] || status || statusMap.normal; } -const statusColorMap = { +const statusColorMap: { [key: string]: string } = { error: 'red', warning: 'orange', normal: 'blue', @@ -169,7 +188,7 @@ const statusColorMap = { * * @return {string} 颜色名称 * */ -export function getStatusColorName(status) { +export function getStatusColorName(status: string) { return statusColorMap[status] || status || statusColorMap.normal; } @@ -180,7 +199,7 @@ export function getStatusColorName(status) { * * @return {boolean} 是否有效数字 * */ -export function isInvalidNumber(v) { +export function isInvalidNumber(v: any) { return isNaN(v) || !isFinite(v) || v === '' || typeof v === 'object'; } @@ -192,12 +211,14 @@ export function isInvalidNumber(v) { * * @return {string|number} 如果不是数字,返回横杠字符串。如果是数字,返回设定小数位的字符串。 * */ -export function numberDecimal(num, decimal = 2) { +export function numberDecimal(num: any, decimal = 2) { if (isInvalidNumber(num) || isInvalidNumber(decimal)) { - return '-'; + return num; } - return Math.round(Number(num) * Math.pow(10, decimal)) / Math.pow(10, decimal); + // 小数位被转换为整数且不小于0 + let d = Math.max(0, Math.round(decimal)); + return Math.round(Number(num) * Math.pow(10, d)) / Math.pow(10, d); } /** @@ -208,9 +229,9 @@ export function numberDecimal(num, decimal = 2) { * * @return {string|number} 如果不是数字,返回横杠字符串。如果是数字,返回千分位的字符串。 * */ -export function beautifyNumber(num, char = ',') { +export function beautifyNumber(num: any, char = ',') { if (isInvalidNumber(num)) { - return '-'; + return num; } const isNegative = num < 0; const numberArr = num.toString().split('.'); @@ -248,12 +269,11 @@ export function noop() {} * * @return {object} 寻找得到的原始数据,没有找到则返回空对象。 * */ -export function getRawData(config, rawData, item) { +export function getRawData(config: { dataType?: string }, rawData: any[], item: any) { if (!rawData) { return {}; } - - let originData = (item.point && item.point._origin) || {}; + let originData = item.data || {}; if (config.dataType !== 'g2' && Array.isArray(rawData)) { rawData.some((r) => { if (r.name === originData.type) { @@ -279,8 +299,8 @@ export function getRawData(config, rawData, item) { * * @return {object} 过滤后的结果 * */ -export function filterKey(obj, keys) { - const result = {}; +export function filterKey(obj: Types.LooseObject, keys: string[]) { + const result: Types.LooseObject = {}; Object.keys(obj).forEach((key) => { if (keys.indexOf(key) === -1) { result[key] = obj[key]; @@ -302,52 +322,86 @@ export function filterKey(obj, keys) { * * @return * */ -export function defaultPadding(padding, config, defaultTop, defaultRight, defaultBottom, defaultLeft) { - if (padding) { - return padding; - } - - // 取默认配置中的padding - let top = defaultTop; - let right = defaultRight; - let bottom = defaultBottom; - let left = defaultLeft; +// export function defaultPadding(padding, config, defaultTop, defaultRight, defaultBottom, defaultLeft) { +// if (padding) { +// return padding; +// } +// +// // 取默认配置中的padding +// let top = defaultTop; +// let right = defaultRight; +// let bottom = defaultBottom; +// let left = defaultLeft; +// +// if (right !== 'auto' && Array.isArray(config.yAxis)) { +// right = 45; +// } +// +// if (top !== 'auto' && (config.legend === false || (config.legend && config.legend.visible === false))) { +// top = 16; +// } +// if (config.legend !== false && !(config.legend && config.legend.visible === false)) { +// const { position = 'top' } = config.legend || {}; +// if (top !== 'auto' && position === 'bottom') { +// top = 10; +// } +// if (position === 'bottom') { +// bottom = 48; +// } +// } +// +// // X轴标题 +// if (config.xAxis && config.xAxis.visible !== false && config.xAxis.alias && bottom !== 'auto') { +// bottom += 14; +// } +// +// // Y轴标题 +// if (Array.isArray(config.yAxis)) { +// config.yAxis.forEach((axis, yIndex) => { +// if (yIndex === 0 && axis && axis.visible !== false && axis.alias && left !== 'auto') { +// left += 20; +// } +// if (yIndex !== 0 && axis && axis.visible !== false && axis.alias && right !== 'auto') { +// right += 20; +// } +// }); +// } else if (config.yAxis && config.yAxis.visible !== false && config.yAxis.alias && left !== 'auto') { +// left += 20; +// } +// +// return [top, right, bottom, left]; +// } + +export interface customFormatterConfig { + unit?: string; + decimal?: number; + grouping?: boolean | string; +} - if (right !== 'auto' && Array.isArray(config.yAxis)) { - right = 45; - } +/** + * 自定义格式化函数,支持 单位、小数位、千分位 处理 + * */ +export function customFormatter(config: customFormatterConfig) { + const { unit, decimal = 6, grouping } = config; - if (top !== 'auto' && (config.legend === false || (config.legend && config.legend.visible === false))) { - top = 16; + if (!unit && (decimal === undefined || decimal === null) && !grouping) { + return null; } - if (config.legend !== false && !(config.legend && config.legend.visible === false)) { - const { position = 'top' } = config.legend || {}; - if (top !== 'auto' && position === 'bottom') { - top = 10; - } - if (position === 'bottom') { - bottom = 48; + return function (v: any) { + let result = v; + let newUnit = unit || ''; + if (isInvalidNumber(v)) { + return `${v}${newUnit}`; } - } - // X轴标题 - if (config.xAxis && config.xAxis.visible !== false && config.xAxis.alias && bottom !== 'auto') { - bottom += 14; - } + // 小数位 + result = numberDecimal(result, decimal); - // Y轴标题 - if (Array.isArray(config.yAxis)) { - config.yAxis.forEach((axis, yIndex) => { - if (yIndex === 0 && axis && axis.visible !== false && axis.alias && left !== 'auto') { - left += 20; - } - if (yIndex !== 0 && axis && axis.visible !== false && axis.alias && right !== 'auto') { - right += 20; - } - }); - } else if (config.yAxis && config.yAxis.visible !== false && config.yAxis.alias && left !== 'auto') { - left += 20; - } + // 千分位 + if (grouping) { + result = beautifyNumber(result, typeof grouping === 'boolean' ? ',' : grouping); + } - return [top, right, bottom, left]; + return `${result}${newUnit}`; + } } diff --git a/components/common/dataAdapter.js b/src/common/dataAdapter.ts similarity index 65% rename from components/common/dataAdapter.js rename to src/common/dataAdapter.ts index 91ae32f2..4486e2ea 100644 --- a/components/common/dataAdapter.js +++ b/src/common/dataAdapter.ts @@ -1,21 +1,48 @@ 'use strict'; +import { Types, BaseChartConfig } from "./types"; + +export interface DataAdapterConfig extends BaseChartConfig{ + xAxis?: { + categories?: number[] | string[]; + }; + yAxis?: Types.LooseObject | any[]; +} + +type RawDataItem = (number | string)[] | Types.LooseObject; +export interface DataAdapterData { + name: string; + data?: RawDataItem[]; + yAxis?: number; + dodge?: string; + facet?: string; + visible?: boolean; + type?: string; +} + +interface dataFields { + x?: string; + y?: string; + type?: string; +} /** * drawLine 绘制线图逻辑 * - * @param {Object|Array} data 原始数据 - * @param {Object} config 配置项 + * @param {DataAdapterData|DataAdapterData[]} data 原始数据 + * @param {DataAdapterConfig} config 配置项 + * @param {dataFields} dataFields 数据字段映射规则 * * @return {Array} json-array 型数据 * */ -export default function highchartsDataToG2Data(data, config) { +export default function highchartsDataToG2Data(data: DataAdapterData | DataAdapterData[], config: DataAdapterConfig, dataFields?: dataFields) { if (!data) { return []; } if (!Array.isArray(data)) { data = [data]; } - const newData = []; + const { /*x: xField = 'x', y: yField = 'y',*/ type: typeField = 'type' } = dataFields || {}; + const newData: Types.LooseObject[] = []; if (Array.isArray(config.yAxis)) { data.forEach(oneData => { if (!oneData || !Array.isArray(oneData.data)) { @@ -40,7 +67,7 @@ export default function highchartsDataToG2Data(data, config) { groupExtra, dodge, visible, - type: dataName, + [typeField]: dataName, }); } else if ( config.xAxis && @@ -48,7 +75,7 @@ export default function highchartsDataToG2Data(data, config) { config.xAxis.categories[i] ) { const x = config.xAxis.categories[i]; - const y = isNaN(d) ? d[0] : d; + const y = typeof d === 'number' ? d : d[0]; newData.push({ x, [`y${yIndex}`]: y, @@ -56,7 +83,7 @@ export default function highchartsDataToG2Data(data, config) { groupExtra, dodge, visible, - type: dataName, + [typeField]: dataName, }); } else { const { x, y, ...extra } = d; @@ -67,7 +94,7 @@ export default function highchartsDataToG2Data(data, config) { groupExtra, dodge, visible, - type: dataName, + [typeField]: dataName, }); } }); @@ -91,7 +118,7 @@ export default function highchartsDataToG2Data(data, config) { facet, dodge, visible, - type: dataName, + [typeField]: dataName, }); } else if ( config.xAxis && @@ -99,7 +126,7 @@ export default function highchartsDataToG2Data(data, config) { config.xAxis.categories[i] ) { const x = config.xAxis.categories[i]; - const y = isNaN(d) ? d[0] : d; + const y = typeof d === 'number' ? d : d[0]; newData.push({ x, y, @@ -108,15 +135,15 @@ export default function highchartsDataToG2Data(data, config) { facet, dodge, visible, - type: dataName, + [typeField]: dataName, }); - } else if (!isNaN(d)) { + } else if (typeof d === 'number') { newData.push({ x: d, y: d, groupExtra, visible, - type: dataName, + [typeField]: dataName, }) } else { const { x, y, ...extra } = d; @@ -128,7 +155,7 @@ export default function highchartsDataToG2Data(data, config) { facet, dodge, visible, - type: dataName, + [typeField]: dataName, }); } }); diff --git a/components/common/drawLine.js b/src/common/drawLine.ts similarity index 50% rename from components/common/drawLine.js rename to src/common/drawLine.ts index c9b7677c..5e4a38e1 100644 --- a/components/common/drawLine.js +++ b/src/common/drawLine.ts @@ -1,10 +1,39 @@ 'use strict'; - -import label from './label'; -import getGeomSizeConfig from './geomSize'; +import { Chart, Colors } from "./types"; +import label, { LabelConfig } from './label'; +import geomSize, { GeomSizeConfig } from './geomSize'; +import geomStyle, { GeomStyleConfig } from './geomStyle'; const stepNames = ['hv', 'vh', 'hvh', 'vhv']; +export interface DrawLineConfig { + /** 线条颜色 */ + colors?: Colors; + /** 面积颜色 */ + areaColors?: Colors; + /** 是否为面积图 */ + area?: boolean; + /** 是否为堆叠图,仅在 area: true 时生效 */ + stack?: boolean; + /** 是否线条平滑 */ + spline?: boolean; + /** 是否阶梯折线 */ + step?: string | boolean; + /** 是否展示线上点 */ + symbol?: { + size?: GeomSizeConfig; + geomStyle?: GeomStyleConfig; + } | boolean; + /** 数据label */ + label?: LabelConfig | boolean; + /** 线条宽度 */ + lineWidth?: number; + /** 元素样式 */ + geomStyle?: GeomStyleConfig; + /** 是否数据排序 */ + sortable?: boolean; +} + /** * drawLine 绘制线图逻辑 * @@ -12,13 +41,7 @@ const stepNames = ['hv', 'vh', 'hvh', 'vhv']; * @param {Object} config 配置项 * @param {string} yAxisKey 数据映射字段 * */ -export default function drawLine(chart, config, yAxisKey = 'y') { - const { lineWidth } = config; - const geomStyle = config.geomStyle || {}; - if (lineWidth && geomStyle.lineWidth === undefined) { - geomStyle.lineWidth = lineWidth; - } - +export default function drawLine(chart: Chart, config: DrawLineConfig, yAxisKey = 'y') { let areaColors = config.areaColors || config.colors; if (Array.isArray(config.colors) && Array.isArray(config.areaColors)) { areaColors = mergeArray([], config.colors, config.areaColors); @@ -30,85 +53,78 @@ export default function drawLine(chart, config, yAxisKey = 'y') { // 阶梯折线,目前区域图不支持阶梯,需特殊说明 if (config.step && !config.area) { - lineShape = stepNames.indexOf(config.step) > -1 ? config.step : 'hv'; + lineShape = stepNames.indexOf(String(config.step)) > -1 ? (config.step as string) : 'hv'; } let lineGeom = null; + const geomConfig = { + sortable: config.sortable, + }; + if (config.area && config.stack) { - chart.areaStack() + chart.area(geomConfig) .position(['x', yAxisKey]) .color('type', areaColors) .tooltip(false) .shape(areaShape) - .active(false); - lineGeom = chart.lineStack() + .adjust('stack'); + lineGeom = chart.line(geomConfig) .position(['x', yAxisKey]) .color('type', config.colors) .shape(lineShape) - .active(false) - .style('x*y*type*extra', { - lineJoin: 'round', - ...geomStyle, - }); + .adjust('stack'); } else if (config.area && !config.stack) { - chart.area() + chart.area(geomConfig) .position(['x', yAxisKey]) .color('type', areaColors) .tooltip(false) .shape(areaShape) - .active(false); - lineGeom = chart.line() + lineGeom = chart.line(geomConfig) .position(['x', yAxisKey]) .color('type', config.colors) .shape(lineShape) - .active(false) - .style('x*y*type*extra', { - lineJoin: 'round', - ...geomStyle, - }); } else { - lineGeom = chart.line() + lineGeom = chart.line(geomConfig) .position(['x', yAxisKey]) .color('type', config.colors) .shape(lineShape) - .active(false) - .style('x*y*type*extra', { - lineJoin: 'round', - ...geomStyle, - }); } + geomStyle(lineGeom, config.geomStyle, { + lineWidth: config.lineWidth || 2, + lineJoin: 'round', + }, `x*${yAxisKey}*type*extra`); + label(lineGeom, config, yAxisKey); - // 曲线默认点 - let pointGeom = null; + // 曲线上圆点 if (config.symbol) { + let pointGeom = null; if (config.area && config.stack) { - pointGeom = chart.point() + pointGeom = chart.point(geomConfig) .adjust('stack') .position(['x', yAxisKey]) .color('type', config.colors) .shape('circle') - .active(false); } else { - pointGeom = chart.point() + pointGeom = chart.point(geomConfig) .position(['x', yAxisKey]) .color('type', config.colors) .shape('circle') - .active(false); } - const sizeConfig = getGeomSizeConfig(config.symbol.size, 3, yAxisKey, 'type'); - pointGeom.size(...sizeConfig); + if (typeof config.symbol === 'object') { + geomSize(pointGeom, config.symbol.size, 3, yAxisKey, 'type'); - if (config.symbol.geomStyle) { - pointGeom.style('x*y*type*extra', config.symbol.geomStyle); + if (config.symbol.geomStyle) { + geomStyle(pointGeom, config.symbol.geomStyle, {}, `x*${yAxisKey}*type*extra`); + } } } } -function mergeArray(target, ...source) { +function mergeArray(target: string[], ...source: string[][]) { source.forEach((s) => { if (!s || s.length === 0) { return; diff --git a/src/common/errorWrap.tsx b/src/common/errorWrap.tsx new file mode 100644 index 00000000..d1017698 --- /dev/null +++ b/src/common/errorWrap.tsx @@ -0,0 +1,93 @@ +import * as React from 'react'; +import { BaseChartConfig, Chart } from './types'; +import { BaseClass, ChartProps } from './Base'; +import { FullCrossName } from '../constants'; + +interface ErrorProps { + forwardedRef?: React.Ref; +} + +interface ErrorState { + errorStack?: string | null; +} + +/** + * errorWrap 错误捕获HOC + * + * */ +/*#__PURE__*/function errorWrap, ChartConfig extends BaseChartConfig, Props extends ChartProps = ChartProps>(Component: T): T { + class ErrorBoundary extends React.Component { + static isG2Chart = true; + static displayName = Component.displayName; + // static propTypes = Component.propTypes; + static defaultProps = Component.defaultProps; + static RawChart = Component; + + state: ErrorState = { errorStack: null }; + + public chart: Chart; + + public chartDom: HTMLDivElement; + + public chartId: string; + + public size: number[]; + + shouldComponentUpdate() { + if (this.state.errorStack) { + // 在update前重置error标记 + // 为顾及React16.3之前的用户,因此没有将该逻辑放在getDerivedStateFromProps里 + this.setState({ errorStack: null }); + } + return true; + } + + componentDidCatch(error: Error/*, info*/) { + // Display fallback UI + this.setState({ errorStack: error.stack }); + } + + // 低版本React中,复制可能用到的属性。 + oldReactRef: React.RefCallback = (chartInstance) => { + if (chartInstance) { + // 复制旧版本可能用到的属性 + this.chart = chartInstance.chart; + this.chartId = chartInstance.chartId; + this.chartDom = chartInstance.chartDom; + this.size = chartInstance.size; + } + }; + + render() { + if (this.state.errorStack) { + const { className = '', style } = this.props; + // You can render any custom fallback UI + return
    {this.state.errorStack}
    ; + } + const { forwardedRef = this.oldReactRef, ...rest } = this.props; + + // @ts-ignore 将自定义的 prop 属性 “forwardedRef” 定义为 ref + return (); + } + } + + if (React.forwardRef) { + const forwardRefFunc = function (props: any, ref: React.Ref) { + return ; + }; + const result = React.forwardRef(forwardRefFunc); + // @ts-ignore + result.isG2Chart = true; + // @ts-ignore + result.RawChart = Component; + result.displayName = Component.displayName; + // result.propTypes = Component.propTypes; + result.defaultProps = Component.defaultProps; + + return result as unknown as T; + } + + return ErrorBoundary as unknown as T; +} + +export default errorWrap; diff --git a/src/common/eventBus.ts b/src/common/eventBus.ts new file mode 100644 index 00000000..f94e1f31 --- /dev/null +++ b/src/common/eventBus.ts @@ -0,0 +1,3 @@ +import EE from '@antv/event-emitter'; + +export default new EE(); diff --git a/components/common/g2Connect.js b/src/common/g2Connect.ts similarity index 58% rename from components/common/g2Connect.js rename to src/common/g2Connect.ts index e6792d4d..8267aafd 100644 --- a/components/common/g2Connect.js +++ b/src/common/g2Connect.ts @@ -1,9 +1,23 @@ 'use strict'; -import G2 from '@antv/g2'; +import { Chart, Event } from '@antv/g2/esm/core'; +import { Types } from './types'; -export default class G2Connect { - constructor(charts = [], config = {}) { +type Coordinate = 'x' | 'y' | 'xy'; + +interface ConnectConfig { + type?: 'position' | 'data'; + coordinate?: Coordinate; + custom?(e: Event, target: Chart, source: Chart): void, +} + +class G2Connect { + + charts: Chart[]; + + config: ConnectConfig; + + constructor(charts: Chart[] = [], config: ConnectConfig = {}) { this.charts = []; // 配置项,后续添加数据联动等配置项 @@ -17,7 +31,7 @@ export default class G2Connect { this.add.apply(this, charts); } - add(...charts) { + add(...charts: Chart[]) { charts.forEach((chart) => { if (!isValidChart(chart)) { return; @@ -27,15 +41,14 @@ export default class G2Connect { // 存储实例的引用 this.charts.push(chart); - // 绑定事件 - // G2 底层的事件系统 wolfy87-eventemitter 中已经有有去重逻辑,所以直接绑定事件即可。 - chart.on('plotmove', this.handlePlotmove); - chart.on('plotleave', this.handlePlotleave); + // 绑定事件 新版G2底层事件系统没有去重,需要手动去重 + chart.on('plot:mousemove', this.handlePlotmove); + chart.on('plot:mouseleave', this.handlePlotleave); } }); } - remove(...charts) { + remove(...charts: Chart[]) { if (charts.length === 0) { // 清空所有绑定 this.charts.forEach((chart) => { @@ -43,8 +56,8 @@ export default class G2Connect { return; } - chart.off('plotmove', this.handlePlotmove); - chart.off('plotleave', this.handlePlotleave); + chart.off('plot:mousemove', this.handlePlotmove); + chart.off('plot:mouseleave', this.handlePlotleave); }); this.charts = []; @@ -60,9 +73,8 @@ export default class G2Connect { this.charts.splice(index, 1); // 绑定事件 - // G2 底层的事件系统 wolfy87-eventemitter 中已经有有去重逻辑,所以直接绑定事件即可。 - chart.off('plotmove', this.handlePlotmove); - chart.off('plotleave', this.handlePlotleave); + chart.off('plot:mousemove', this.handlePlotmove); + chart.off('plot:mouseleave', this.handlePlotleave); } }); } @@ -79,9 +91,9 @@ export default class G2Connect { handlePlotmove = (() => { const self = this; - return function (e) { + return function (e: Event) { const { type, coordinate, custom } = self.config; - // 显式声明this,指向触发事件的图表实例 + // @ts-ignore 显式声明this,指向触发事件的图表实例 const chartInstance = this; const record = type === 'data' ? getRecord(chartInstance, e) : null; self.charts.forEach((chart) => { @@ -98,16 +110,18 @@ export default class G2Connect { if (type === 'data' && record) { // 根据数据找到对应点,如果传入的数据不在画布空间内,point 为 null const point = chart.getXY(record); - // 如果数据中包含null, point中的坐标会变为 NaN,所以下面添加额外判断 - if (point && !isNaN(point.x) && !isNaN(point.y)) { + // 额外判断 + // 1、如果数据中包含null, point中的坐标会变为 NaN + // 2、类型不一致坐标会出现负数 + if (point && !isNaN(point.x) && !isNaN(point.y) && point.x > 0 && point.y > 0) { // 找到对应的点,显示并return chart.showTooltip(getPoint(point, e, coordinate)); return; } } - // 兜底方案,根据e直接显示tooltip - chart.showTooltip(e); + // 根据e直接显示tooltip,x、y属性是 getter,会在tooltip内部处理时被忽略,这里另外读取出来传入 + chart.showTooltip({ x: e.x, y: e.y }); }); } })(); @@ -115,7 +129,7 @@ export default class G2Connect { handlePlotleave = (() => { const self = this; return function () { - // 显式声明this,指向触发事件的图表实例 + // @ts-ignore 显式声明this,指向触发事件的图表实例 const chartInstance = this; self.charts.forEach((chart) => { // 过滤自身和已销毁的实例 @@ -135,29 +149,31 @@ export default class G2Connect { * * @return {boolean} 是否有效图例 * */ -function isValidChart(chart) { - return chart && !chart.destroyed && chart.constructor === G2.Chart; +function isValidChart(chart: Chart) { + return chart && !chart.destroyed && chart.constructor === Chart; } /** * 获取原始数据 * * @param {object} chart G2图表实例 - * @param {object} e G2 plotmove 事件传入的参数 + * @param {object} e G2 plot:mousemove 事件传入的参数 * * @return {object|null} 获取的原始数据,没有找到时为 null * */ -function getRecord(chart, e) { - let record = e.data && e.data._origin; - if (!record) { +function getRecord(chart: Chart, e: Event) { + let record = e.data; + // 在折线图中选中的record.data为数组,改为用最贴近数据读取 + if (!record || Array.isArray(record.data)) { record = chart.getSnapRecords(e); if (Array.isArray(record) && record[0]) { record = record[0]._origin; } else { record = null; } + } else if (record.data) { + record = record.data; } - return record; } @@ -165,17 +181,17 @@ function getRecord(chart, e) { * 按照coordinate设置获取正确的坐标 * * @param {object} point 原始获得的坐标 - * @param {object} e G2 plotmove 事件传入的参数 + * @param {object} e G2 plot:mousemove 事件传入的参数 * @param {string} coordinate 坐标设置 * * @return {object} 正确的坐标 * */ -function getPoint(point, e, coordinate) { - if (coordinate === 'x') { - point.y = e.y; +function getPoint(point: Types.Point, e: Event, coordinate: Coordinate) { + return { + ...point, + x: coordinate === 'y' ? e.x : point.x, + y: coordinate === 'x' ? e.y : point.y, } - if (coordinate === 'y') { - point.x = e.x; - } - return point } + +export default G2Connect; diff --git a/src/common/geomSize.ts b/src/common/geomSize.ts new file mode 100644 index 00000000..e8316e4a --- /dev/null +++ b/src/common/geomSize.ts @@ -0,0 +1,68 @@ +'use strict'; + +import { Geometry, Types } from "./types"; + +export type GeomSizeConfig = number | string | [number, number] | Types.SizeAttrCallback | Types.AttributeOption; + +/** + * 设置图形元素 size 属性 + * + * @param {Geometry} geom 图形元素 + * @param {GeomSizeConfig} sizeConfig 用户设置的 size 配置项 + * @param {GeomSizeConfig} defaultValue 默认值 + * @param {string} arrayKey 配置项为数组时映射的数据key + * @param {string} functionKey 配置项为函数时映射的数据key + * */ +export default function geomSize( + geom: Geometry, + sizeConfig: GeomSizeConfig, + defaultValue: GeomSizeConfig, + arrayKey: string, + functionKey: string +) { + const size = sizeConfig || defaultValue; + if (!size) { + return; + } + if (typeof size === 'number' || typeof size === 'string') { + geom.size(size); + } else if (Array.isArray(size)) { + geom.size(arrayKey, size); + } else if (typeof size === 'function') { + geom.size(functionKey, size); + } else if (typeof size === 'object') { + geom.size(size); + } +} + +// /** +// * getGeomSizeConfig 获取图形元素 size 属性的配置项 +// * +// * @param sizeConfig 用户设置的 size 配置项 +// * @param defaultValue 默认值 +// * @param {string} arrayKey 配置项为数组时映射的数据key +// * @param {string} functionKey 配置项为函数时映射的数据key +// * +// * @return {Array} 配置项数组,直接展开到 G2 的 size 函数中即可 +// * */ +// export default function getGeomSizeConfig( +// sizeConfig: GeomSizeConfig, +// defaultValue: GeomSizeConfig, +// arrayKey: string, +// functionKey: string +// ) { +// // 默认直接传入 sizeConfig 或 defaultValue +// let result = [sizeConfig || defaultValue]; +// if (Array.isArray(sizeConfig)) { +// // 数组,传入key进行大小映射 +// result = [arrayKey, sizeConfig]; +// } else if (G2.Util.isFunction(sizeConfig)) { +// // 函数,传入key映射到函数参数中 +// result = [functionKey, sizeConfig]; +// } else if (typeof sizeConfig === 'object') { +// // 对象,完全自定义 field 和 param +// result = [sizeConfig.field, sizeConfig.param]; +// } +// +// // return result; +// } diff --git a/src/common/geomStyle.ts b/src/common/geomStyle.ts new file mode 100644 index 00000000..2db82d37 --- /dev/null +++ b/src/common/geomStyle.ts @@ -0,0 +1,93 @@ +'use strict'; + +import { Geometry, Types } from "./types"; +import { parseFields } from '@antv/g2/esm/geometry/util/parse-fields'; + +export type GeomStyleConfig = Types.LooseObject | Types.StyleOption | Types.StyleCallback; + +/** + * 设置图形元素 style + * + * @param {Geometry} geom 图形元素 + * @param {GeomStyleConfig} styleConfig 样式配置项 + * @param {Object} defaultStyle 默认样式 + * @param {string} defaultFields 函数调用key + * */ +export default function geomStyle( + geom: Geometry, + styleConfig: GeomStyleConfig, + defaultStyle: Types.LooseObject = {}, + defaultFields: string = 'x*y*type*extra', +) { + if (!styleConfig && Object.keys(defaultStyle).length > 0) { + geom.style(defaultStyle); + return; + } + if (!styleConfig) { + return; + } + if (typeof styleConfig === 'function') { + geom.style({ + fields: parseFields(defaultFields), + callback(...args) { + const s = styleConfig(...args) || {}; + return { + ...defaultStyle, + ...s, + }; + }, + }); + } else if (styleConfig.callback || styleConfig.cfg) { + const { fields, callback, cfg } = styleConfig as Types.StyleOption; + if (cfg) { + geom.style({ + cfg: { + ...defaultStyle, + ...cfg, + }, + }); + } else { + geom.style({ + fields: parseFields(fields || defaultFields), + callback(...args) { + const s = callback(...args) || {}; + return { + ...defaultStyle, + ...s, + }; + }, + }); + } + } else if (typeof styleConfig === 'object') { + const s = { + ...defaultStyle, + }; + // 找到style设置中的所有函数 + const funcList: { key: string, value: Types.StyleCallback }[] = []; + Object.keys(styleConfig).forEach((key) => { + const value = (styleConfig as Types.LooseObject)[key]; + if (typeof value === 'function') { + // 如果是函数,则存入 funcList 中 + funcList.push({ key, value }); + } else { + // 剩余是普通样式,直接设置到 s 中 + s[key] = value; + } + }); + if (funcList.length > 0) { + // style 设置存在函数 + geom.style({ + fields: parseFields(defaultFields), + callback(...args) { + funcList.forEach(({ key, value }) => { + s[key] = value(...args); + }); + return s; + }, + }); + } else { + // 不存在函数,直接存入 + geom.style(s); + } + } +} diff --git a/components/common/guide.js b/src/common/guide.ts similarity index 50% rename from components/common/guide.js rename to src/common/guide.ts index d3191ea9..7305fa34 100644 --- a/components/common/guide.js +++ b/src/common/guide.ts @@ -1,15 +1,25 @@ 'use strict'; -import { getStatusColor } from './common'; +import { Chart, View, Types, G2Dependents, Status } from "./types"; +import { getStatusColor, pxToNumber } from './common'; +import themes from "../themes"; +import { warn } from './log'; + +export interface GuideConfig { + visible?: boolean; + line?: GuideLineConfig | GuideLineConfig[]; + area?: GuideAreaConfig | GuideAreaConfig[]; + filter?: GuideFilterConfig | GuideFilterConfig[]; +} /** * 绘制辅助标记通用函数 * - * @param {object} chart 图表实例 + * @param {Chart} chart 图表实例 * @param {object} config 图表配置项 * * */ -export default function (chart, config) { +export default function (chart: Chart, config: { guide?: GuideConfig }) { const { guide } = config; if (!guide || guide.visible === false) { return; @@ -48,35 +58,56 @@ export default function (chart, config) { } if (!guideLine && !guideArea && !guideFilter && Object.keys(other).length > 0) { - console.warn('guide 定义异常,请使用 guide.line 或 guide.area'); + warn('config.guide', '配置异常,请使用 guide.line、guide.area、guide.filter'); } } -export function drawGuideLine(chart, guideLine) { - const { top = true, text = {}, status, axis, value, start, end, style = {} } = guideLine; +interface GuideLineTextConfig extends G2Dependents.LineAnnotationTextCfg { + title: string, + align?: 'start' | 'center' | 'end' | 'left' | 'right', +} + +export interface GuideLineConfig { + top?: boolean; + status?: Status; + axis?: 'x' | 'y' | 'y0' | 'y1'; + value?: number | string; + start?: Types.AnnotationPosition; + end?: Types.AnnotationPosition; + style?: G2Dependents.ShapeAttrs; + text?: string | GuideLineTextConfig; +} +export function drawGuideLine(chart: Chart | View, guideLine: GuideLineConfig) { + const { top = true, text, status, axis, value, start, end, style = {} } = guideLine; const { - title, position: titlePosition, align: titleAlign, rotate: titleRotate, offsetX, offsetY, style: textStyle = {}, - } = typeof text === 'object' ? text : { title: text }; + title, position: titlePosition, align: titleAlign, style: textStyle = {}, offsetY, ...textConfig + } = (typeof text === 'string' ? { title: text } : text) as GuideLineTextConfig; const color = getStatusColor(status); + const defaultOffsetY = offsetY === undefined ? pxToNumber(themes['widgets-font-size-1'])/2 : offsetY; const guideConfig = { top, - lineStyle: { + style: { stroke: color, ...style, }, text: { content: title || '', position: titlePosition || 'start', - autoRotate: titleRotate || false, style: { fill: color, textAlign: titleAlign || ((titlePosition || 'start') !== 'start' ? 'start' : 'end'), ...textStyle, }, - offsetX, - offsetY, + // X 轴时关闭自动旋转 + autoRotate: axis !== 'x', + offsetY: defaultOffsetY, + ...textConfig, }, + // @ts-ignore + start: undefined, + // @ts-ignore + end: undefined, }; // 判断value时需要注意数字0是假值,但是是一个合理的guide value @@ -88,25 +119,31 @@ export function drawGuideLine(chart, guideLine) { // x 轴辅助线,修改position和textAlign默认值 guideConfig.text.position = titlePosition || 'end'; guideConfig.text.style.textAlign = titleAlign || 'center'; + guideConfig.text.offsetY = offsetY || 0; } else if (axis === 'y' || /y\d/.test(axis)) { // 形似 y0, y1 ...的axis,说明是多Y轴,多轴的情况下,start/end 必须返回原始数据格式才能正确匹配y轴度量 // 函数接受两个参数 xScales 和 yScales - guideConfig.start = function (xScales) { - if (xScales.x && xScales.x.isCategory) { + guideConfig.start = function (xScales: G2Dependents.Scale[] | Record) { + if (!Array.isArray(xScales) && ( xScales.isCategory || (xScales.x && xScales.x.isCategory))) { // 如果x轴是分类型数据,使用[-0.5, length - 0.5]的索引值来让辅助线铺满绘图区域 return { x: -0.5, [axis]: value }; } return { x: 'min', [axis]: value }; }; // 函数接受两个参数 xScales 和 yScales - guideConfig.end = function (xScales) { - if (xScales.x && xScales.x.isCategory) { + guideConfig.end = function (xScales: G2Dependents.Scale[] | Record) { + if (!Array.isArray(xScales)) { // 如果x轴是分类型数据,使用[-0.5, length - 0.5]的索引值来让辅助线铺满绘图区域 - return { x: xScales.x.values.length - 0.5, [axis]: value }; + if (xScales.x && xScales.x.isCategory) { + return { x: xScales.x.values.length - 0.5, [axis]: value }; + } + if (xScales.isCategory) { + // @ts-ignore G2 的类型声明和实际传入不同,暂时忽略报错 + return { x: xScales.values.length - 0.5, [axis]: value }; + } } return { x: 'max', [axis]: value }; }; - guideConfig.text.offsetY = offsetY === 0 ? offsetY : (offsetY || 6); } } if (start) { @@ -117,13 +154,22 @@ export function drawGuideLine(chart, guideLine) { } if (guideConfig.start && guideConfig.end) { - chart.guide().line(guideConfig); + chart.annotation().line(guideConfig); } else { - console.warn('guide line 定义不全'); + warn('config.guide', 'line 定义不全'); } } -export function drawGuideArea(chart, guideArea) { +export interface GuideAreaConfig { + top?: boolean; + status?: Status; + axis?: 'x' | 'y' | 'y0' | 'y1'; + value?: [number | string, number | string]; + start?: Types.AnnotationPosition; + end?: Types.AnnotationPosition; + style?: G2Dependents.ShapeAttrs; +} +export function drawGuideArea(chart: Chart | View, guideArea: GuideAreaConfig) { const { top = true, status, axis, value, start, end, style = {} } = guideArea; const color = getStatusColor(status); @@ -133,6 +179,10 @@ export function drawGuideArea(chart, guideArea) { fill: color, ...style, }, + // @ts-ignore + start: undefined, + // @ts-ignore + end: undefined, }; if (axis && Array.isArray(value) && value.length > 1) { @@ -143,18 +193,24 @@ export function drawGuideArea(chart, guideArea) { } else if (axis === 'y' || /y\d/.test(axis)) { // 形似 y0, y1 ...的axis,说明是多Y轴,多轴的情况下,start/end 必须返回原始数据格式才能正确匹配y轴度量 // 函数接受两个参数 xScales 和 yScales - guideConfig.start = function (xScales) { - if (xScales.x && xScales.x.isCategory) { + guideConfig.start = function (xScales: G2Dependents.Scale[] | Record) { + if (!Array.isArray(xScales) && ( xScales.isCategory || (xScales.x && xScales.x.isCategory))) { // 如果x轴是分类型数据,使用[-0.5, length - 0.5]的索引值来让辅助线铺满绘图区域 return { x: -0.5, [axis]: value[0] }; } return { x: 'min', [axis]: value[0] }; }; // 函数接受两个参数 xScales 和 yScales - guideConfig.end = function (xScales) { - if (xScales.x && xScales.x.isCategory) { + guideConfig.end = function (xScales: G2Dependents.Scale[] | Record) { + if (!Array.isArray(xScales)) { // 如果x轴是分类型数据,使用[-0.5, length - 0.5]的索引值来让辅助线铺满绘图区域 - return { x: xScales.x.values.length - 0.5, [axis]: value[1] }; + if (xScales.x && xScales.x.isCategory) { + return { x: xScales.x.values.length - 0.5, [axis]: value[1] }; + } + if (xScales.isCategory) { + // @ts-ignore G2 的类型声明和实际传入不同,暂时忽略报错 + return { x: xScales.values.length - 0.5, [axis]: value[1] }; + } } return { x: 'max', [axis]: value[1] }; }; @@ -168,70 +224,63 @@ export function drawGuideArea(chart, guideArea) { } if (guideConfig.start && guideConfig.end) { - chart.guide().region(guideConfig); + chart.annotation().region(guideConfig); } else { - console.warn('guide area 定义不全'); + warn('config.guide', 'area 定义不全'); } } -export function drawGuideFilter(chart, guideFilter) { - const { top = true, status, axis, value, start, end, apply } = guideFilter; +export interface GuideFilterConfig { + top?: boolean; + status?: Status; + axis?: 'x' | 'y' | 'y0' | 'y1'; + value?: [number | string, number | string]; + start?: Types.AnnotationPosition; + end?: Types.AnnotationPosition; + apply?: string[]; + style?: G2Dependents.ShapeAttrs; +} +export function drawGuideFilter(chart: Chart | View, guideFilter: GuideFilterConfig) { + const { top = true, status, axis, value, start, end, apply, style } = guideFilter; const color = getStatusColor(status); const guideConfig = { top, color, apply, + style, + // @ts-ignore + start: undefined, + // @ts-ignore + end: undefined, }; if (axis && Array.isArray(value) && value.length > 1) { if (axis === 'x') { // y 轴是分类型数据的情况比较少,暂时不处理 - // guideConfig.start = [value[0], 'min']; - guideConfig.start = function (xScales, yScales) { - let x = value[0]; - let y = 'min'; - if (xScales.x && xScales.x.min === null) { - x = 0; - } - if (yScales.y && yScales.y.min === null) { - y = 0; - } - return [x, y]; - }; - // guideConfig.end = [value[1], 'max']; - guideConfig.end = function (xScales, yScales) { - let x = value[1]; - let y = 'max'; - if (xScales.x && xScales.x.min === null) { - x = 0; - } - if (yScales.y && yScales.y.max === null) { - y = 0; - } - return [x, y]; - }; + guideConfig.start = [value[0], 'min']; + guideConfig.end = [value[1], 'max']; } else if (axis === 'y' || /y\d/.test(axis)) { // 形似 y0, y1 ...的axis,说明是多Y轴,多轴的情况下,start/end 必须返回原始数据格式才能正确匹配y轴度量 // 函数接受两个参数 xScales 和 yScales - guideConfig.start = function (xScales) { - if (xScales.x && xScales.x.isCategory) { + guideConfig.start = function (xScales: G2Dependents.Scale[] | Record) { + if (!Array.isArray(xScales) && ( xScales.isCategory || (xScales.x && xScales.x.isCategory))) { // 如果x轴是分类型数据,使用[-0.5, length - 0.5]的索引值来让辅助线铺满绘图区域 return { x: -0.5, [axis]: value[0] }; } - if (xScales.x && xScales.x.min === null) { - return { x: 0, [axis]: value[0] }; - } return { x: 'min', [axis]: value[0] }; }; // 函数接受两个参数 xScales 和 yScales - guideConfig.end = function (xScales) { - if (xScales.x && xScales.x.isCategory) { + guideConfig.end = function (xScales: G2Dependents.Scale[] | Record) { + if (!Array.isArray(xScales)) { // 如果x轴是分类型数据,使用[-0.5, length - 0.5]的索引值来让辅助线铺满绘图区域 - return { x: xScales.x.values.length - 0.5, [axis]: value[1] }; - } - if (xScales.x && xScales.x.max === null) { - return { x: 0, [axis]: value[0] }; + if (xScales.x && xScales.x.isCategory) { + return { x: xScales.x.values.length - 0.5, [axis]: value[1] }; + } + if (xScales.isCategory) { + // @ts-ignore G2 的类型声明和实际传入不同,暂时忽略报错 + return { x: xScales.values.length - 0.5, [axis]: value[1] }; + } } return { x: 'max', [axis]: value[1] }; }; @@ -245,8 +294,8 @@ export function drawGuideFilter(chart, guideFilter) { } if (guideConfig.start && guideConfig.end) { - chart.guide().regionFilter(guideConfig); + chart.annotation().regionFilter(guideConfig); } else { - console.warn('guide area 定义不全'); + warn('config.guide', 'filter 定义不全'); } } diff --git a/src/common/interaction.ts b/src/common/interaction.ts new file mode 100644 index 00000000..73a2e36b --- /dev/null +++ b/src/common/interaction.ts @@ -0,0 +1,78 @@ +import { registerInteraction } from '@antv/g2/esm/core'; +import { G2Dependents, Types } from './types'; +import ListUnchecked from '@antv/g2/esm/interaction/action/component/list-unchecked'; + +// 图例单选 Action +export class ListChecked extends ListUnchecked { + toggle() { + // 获取原始事件 + const originEvent = this.context.event.event; + const { item, list } = this.getTriggerListInfo() || {}; + if (!item) { + return; + } + // 是否按Control + const hasControl = originEvent.ctrlKey || originEvent.metaKey; + // 当前选中状态 false-选中,true-未选 + const currentEnable = this.hasState(list, item); + if (hasControl) { + // Control进入单选默认 + const listItems = list.getItems(); + const isOneChecked = + listItems.reduce((pre: number, cur: G2Dependents.ListItem) => { + return pre + (this.hasState(list, cur) ? 0 : 1); + }, 0) === 1; + listItems.forEach((listItem: G2Dependents.ListItem) => { + const enable = this.hasState(list, listItem); + const otherEnable = !currentEnable && isOneChecked ? !enable : true; + if (listItem !== item) { + this.setItemState(list, listItem, otherEnable); + } else { + this.setItemState(list, listItem, false); + } + }); + } else { + // 非Control时保持默认反选 + this.setItemState(list, item, !currentEnable); + } + } +} + +// 图例单选模式封装交互 +registerInteraction('legend-custom-filter', { + showEnable: [ + { trigger: 'legend-item:mouseenter', action: 'cursor:pointer' }, + { trigger: 'legend-item:mouseleave', action: 'cursor:default' }, + ], + start: [ + { trigger: 'legend-item:click', action: ['list-checked:toggle', 'data-filter:filter'] } + ], +}); + +function notLastLegend(context: Types.IInteractionContext) { + // @ts-ignore + const { item, list } = context.getAction('list-checked').getTriggerListInfo() || {}; + if (!item) { + return true; + } + const items = list.getItems(); + const stateItems = list.getItemsByState('unchecked'); + // 当前选中项状态 + const currentEnable = list.hasState(item, 'unchecked'); + // 获取原始事件 + const originEvent = context.event.event; + // 是否按Control + const hasControl = originEvent.ctrlKey || originEvent.metaKey; + // 按Control进入单选模式则一直可用,或者:当前是要 unchecked,且只剩下一个 非unchecked 的 item,则返回 false + return hasControl || !(!currentEnable && stateItems.length === items.length - 1); +} + +registerInteraction('legend-custom-filter-last', { + showEnable: [ + { trigger: 'legend-item:mouseenter', action: 'cursor:pointer', isEnable: notLastLegend }, + { trigger: 'legend-item:mouseleave', action: 'cursor:default' }, + ], + start: [ + { trigger: 'legend-item:click', action: ['list-checked:toggle', 'data-filter:filter'], isEnable: notLastLegend } + ], +}); diff --git a/src/common/label.ts b/src/common/label.ts new file mode 100644 index 00000000..f3673930 --- /dev/null +++ b/src/common/label.ts @@ -0,0 +1,112 @@ +'use strict'; + +import { Geometry, Types } from "./types"; +import themes from '../themes'; +import { merge, pxToNumber } from './common'; +import { IGroup, IShape } from "@antv/g2/esm/dependents"; +import { warn } from './log'; + +export interface LabelConfig extends Types.GeometryLabelCfg { + visible?: boolean; + labelFormatter?: (value: string, mappingData: Types.MappingDatum, index: number) => string | IShape | IGroup; + customConfig?: Types.GeometryLabelCfg; + field?: string; + /** @deprecated key 属性已废弃,请使用 field 属性 */ + key?: string; +} + +/** + * 图形元素label设置。 + * + * @param {object} geom 图形元素对象 + * @param {object} config 图表配置项 + * @param {string} [field] 映射数据的字段,默认为y + * @param {object} [defaultConfig] 图表额外配置项 + * @param {string} [extraConfigKey] 额外配置项的key,会在 config.label 的基础上额外扩展,且配置优先级高于默认的 label + * + * */ + +const defaultConfigKey = 'label'; + +export default function ( + geom: Geometry, + config: { label?: LabelConfig | boolean, [key: string]: any }, + field = 'y', + defaultConfig?: Types.GeometryLabelCfg, + extraConfigKey?: string, + useCustomOffset?: boolean, + componentConfig?: Types.GeometryLabelCfg, +) { + let configLabel = config[defaultConfigKey]; + if (extraConfigKey && config[extraConfigKey] !== undefined) { + configLabel = config[extraConfigKey]; + } + // const configKey = extraConfigKey || defaultConfigKey; + if (!configLabel || (typeof configLabel === 'object' && configLabel.visible === false)) { + return; + } + if (configLabel === true) { + configLabel = {}; + } + + const { + // type = 'default', + position = 'top', + offset, + // autoRotate = true, + labelFormatter = null, + customConfig, + field: userField, + key, + // style, + // textStyle, + ...otherConfigs + } = configLabel; + + const labelConfig: Types.GeometryLabelCfg = { + ...defaultConfig, + // type, + position, + // 默认距离 4,加上文字一半的大小以居中,转换为字号 12/3 + 12/2 = 12 * 5/6 + offset: (pxToNumber(themes['widgets-font-size-1']) * 5) / 6, + // autoRotate, + // style, + // textStyle, + }; + + if (key) { + warn('config.label', 'key 属性已废弃,请使用 field 属性'); + } + + const newField = key || userField || field; + + if (labelFormatter) { + labelConfig.content = (v, item, index) => { + return labelFormatter(v[newField], item, index); + } + } + + Object.assign(labelConfig, otherConfigs); + + if (position === 'middle') { + labelConfig.offset = 0; + } + + if (componentConfig) { + Object.assign(labelConfig, componentConfig); + } + + if (offset !== undefined) { + labelConfig.offset = offset; + } + + if (customConfig) { + merge(labelConfig, customConfig); + } + + if (useCustomOffset) { + labelConfig.offset = Number(offset); + } + + geom.label(newField, labelConfig); +} diff --git a/src/common/legendFilter.ts b/src/common/legendFilter.ts new file mode 100644 index 00000000..340ce677 --- /dev/null +++ b/src/common/legendFilter.ts @@ -0,0 +1,56 @@ +'use strict'; + +import { View, Types } from "./types"; + +/** + * 图例变灰设置。 + * + * @param {this} ctx 组件实例 this 指针 + * @param {View} chart 图表对象,或者是view对象 + * @param {string} [dataKey] 原始数据挂载的key,用于动态获取原始数据 + * + * */ +export default function(ctx: T, chart: View, dataKey = 'rawData') { + chart.filter('type', (value, record) => { + if (record && typeof record === 'object') { + if (record.visible === false) { + return false + } else if (record.visible === undefined) { + // @ts-ignore + const rawData = ctx[dataKey] || []; + const dataItem = rawData.filter((group:Types.LooseObject) => group.name === value); + if (dataItem[0] && dataItem[0].visible === false) { + return false; + } + } + } + return true; + }); + + /* + * indexOrData 有两种可能类型,一种是数字,一种是对象。 + * 2019-04-15 在新版本G2中变为: undefined 或者 对象 + * 当传入 undefined 时,与旧版的数字对应,是对图例项显示控制的过滤。 + * 当类型是数字时,是对图例项显示控制的过滤。 + * 当类型是对象时,是对渲染数据的过滤。 + * 只有当两者匹配时,图例过滤功能才完整。 + * 即使关闭图例也有过滤功能,因为可能有外部控制图例开关 + * */ + // chart.filter('type', (type, indexOrData) => { + // const rawData = this[dataKey] || []; + // // 类型数字,是图例项对应的index,且有对应的原始数据项 + // if (!isNaN(indexOrData) && rawData[indexOrData] && rawData[indexOrData].visible === false) { + // return false; + // // 剩余情况是对象,是数据项过滤 + // } else if (typeof indexOrData === 'object' && indexOrData.visible === false) { + // return false; + // // 新版中indexOrData是undefined,只传入了type + // } else if (!indexOrData) { + // const dataItem = rawData.filter(group => group.name === type); + // if (dataItem[0] && dataItem[0].visible === false) { + // return false; + // } + // } + // return true; + // }); +} diff --git a/components/common/log.js b/src/common/log.ts similarity index 59% rename from components/common/log.js rename to src/common/log.ts index ee42ac06..8bbe2d84 100644 --- a/components/common/log.js +++ b/src/common/log.ts @@ -1,11 +1,16 @@ import { isMobile } from './platform'; +import { VERSION, THEME, FullTrackName, TrackName, FullCamelName } from '../constants'; /** * 日志记录 * * 包含 chartLog getLog 方法 * */ -const logMap = {}; +const logMap: { + [chartName: string]: { + init: number; + }; +} = {}; /** * chartLog 图表日志 @@ -13,7 +18,7 @@ const logMap = {}; * @param {string} name 图表名称 * @param {string} logType 单次日志类型 * */ -export default function chartLog(name, logType) { +export default function chartLog(name: string, logType: string) { if (!logMap[name]) { logMap[name] = { init: 0, @@ -30,17 +35,17 @@ export function getLog() { } let currentTheme = ''; -export function themeLog(name) { +export function themeLog(name: string) { currentTheme = name; } -let trackable = window.CloudChartsTrackEnable !== false; +let trackable = window[FullTrackName] !== false; /** * 打点控制函数 * * @param {bool} enable 是否开启打点 * */ -export function track(enable) { +export function track(enable: boolean): void { // 新版本中 G2 不再打点,所以关闭该指令 // G2.track(enable); // F2.track(enable); @@ -48,7 +53,7 @@ export function track(enable) { } // 打点逻辑,使用黄金令箭 -const logUrl = '//gm.mmstat.com/cloud-chart.use.init'; +const logUrl = `//gm.mmstat.com/${TrackName}`; setTimeout(() => { if (trackable && process.env.NODE_ENV === 'production') { const chartInit = Object.keys(logMap).map((name) => { @@ -59,6 +64,10 @@ setTimeout(() => { const image = new Image(); // 统计 版本、主题、当前域名、图表初始化次数 - image.src = `${logUrl}?version=${__VERSION__}&theme=${currentTheme || __THEME__}&t=${Date.now()}&host=${location && location.host}&chartinit=${chartInit}&uamobile=${isMobile}`; + image.src = `${logUrl}?version=${VERSION}&theme=${currentTheme || THEME}&t=${Date.now()}&host=${location && location.host}&chartinit=${chartInit}&uamobile=${isMobile}`; } }, 3000); + +export function warn(component: string, info: string, ...other: any[]) { + console.warn(`[${FullCamelName}] ${component}:`, info, ...other); +} diff --git a/components/common/platform.js b/src/common/platform.ts similarity index 71% rename from components/common/platform.js rename to src/common/platform.ts index c7a47f87..dd0e9f59 100644 --- a/components/common/platform.js +++ b/src/common/platform.ts @@ -5,6 +5,10 @@ */ export const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); -export function isMobileWithProps(props) { +export interface MobileProps { + isMobile?: boolean; +} + +export function isMobileWithProps(props: MobileProps) { return !!(props.isMobile || (props.isMobile !== false && isMobile)); } diff --git a/src/common/polarLegendLayout.ts b/src/common/polarLegendLayout.ts new file mode 100644 index 00000000..b50edefe --- /dev/null +++ b/src/common/polarLegendLayout.ts @@ -0,0 +1,54 @@ +import defaultLayout from '@antv/g2/esm/chart/layout'; +import { Chart } from '../common/types'; + +/** + * polarLegendLayout 极坐标系图例布局函数 + * + * @param {Chart} chart 图表实例 + * */ +export default function polarLegendLayout(chart: Chart) { + chart.setLayout(() => { + // 先运行默认 layout + defaultLayout(chart); + /* + const axis = chart.getController('axis'); + const legend = chart.getController('legend'); + const annotation = chart.getController('annotation'); + const slider = chart.getController('slider'); + const scrollbar = chart.getController('scrollbar'); + + // 根据最新的 coordinate 重新布局组件 + [axis, slider, scrollbar, legend, annotation].forEach((controller: Controller) => { + if (controller) { + controller.layout(); + } + }); + */ + + const legendComponents = chart.getController('legend').getComponents(); + if (legendComponents.length === 0) { + return; + } + const radius = chart.getCoordinate().radius + const legend = legendComponents[0].component; + const legendPadding = legend.cfg.padding; + const [legendPosition] = legend.cfg.position.split('-'); + if (legendPosition === 'top' || legendPosition === 'bottom') { + return; + } + // 计算一个合适的 legend 位置 + // 1. legend 的宽高 + const legendBBox = legend.getLayoutBBox(); + // 2. 饼的宽高 + const pieSize = Math.min(chart.coordinateBBox.width, chart.coordinateBBox.height) * radius; // coordinate radius + // 图表左右剩余空间的一半宽度 + const emptyAreaHalfWidth = (chart.width - pieSize - (legendBBox.width + legendPadding[1] + legendPadding[3])) / 2; + // console.log(pieSize, legend, legendBBox); + // 下面的 x y 就是数学题了,可视化中所有定位的参考点是自己的左上角。 + legend.update({ + x: legendPosition === 'left' ? emptyAreaHalfWidth : emptyAreaHalfWidth + pieSize + legendPadding[3], + // x: chart.width - (chart.width / 2 - pieSize / 2 ) / 2 - legendBBox.width / 2, + // y: chart.height / 2 - legendBBox.height / 2, + }); + }); +} diff --git a/src/common/rectLegend.ts b/src/common/rectLegend.ts new file mode 100644 index 00000000..cf534066 --- /dev/null +++ b/src/common/rectLegend.ts @@ -0,0 +1,673 @@ +'use strict'; + +import { Chart, ChartData, Types, G2Dependents } from "./types"; +import { customFormatter, customFormatterConfig, merge } from './common'; +import themes from '../themes'; +import { pxToNumber } from './common'; +import { warn } from './log'; +// import { legendHtmlContainer, legendHtmlList, legendHtmlListItem, legendHtmlMarker, legendTextStyle } from './g2Theme'; + +/* +* 提取渐变色中的第一个颜色,具体逻辑来自 G2 内部 +* */ +// // const regexTags = /[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/ig; +// // const regexDot = /[^\s\,]+/ig; +// const regexLG = /^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i; +// const regexRG = /^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i; +// // const regexPR = /^p\s*\(\s*([axyn])\s*\)\s*(.*)/i; +// const regexColorStop = /[\d.]+:(#[^\s]+|[^\)]+\))/ig; +// +// // 取匹配出来的第一个颜色 +// function getFirstStop(steps) { +// return steps.match(regexColorStop)[0].split(':')[1]; +// } +// function getColor(color) { +// if (color[1] === '(' || color[2] === '(') { +// if (color[0] === 'l') { +// // 线性 regexLG.test(color) +// return getFirstStop(regexLG.exec(color)[2]); +// } else if (color[0] === 'r') { +// // 径向 regexRG.test(color) +// return getFirstStop(regexRG.exec(color)[4]); +// } else if (color[0] === 'p') { +// // regexPR.test(color) +// // return parsePattern(color, self, context); +// } +// } +// return color; +// } + +type Position = 'top' | 'top-left' | 'top-right' | 'right' | 'right-top' | 'right-bottom' | 'left' | 'left-top' | 'left-bottom' | 'bottom' | 'bottom-left' | 'bottom-right'; + +export interface LegendConfig extends customFormatterConfig { + visible?: boolean; + autoCollapse?: boolean; + /** @deprecated 暂时无法修改分页尺寸 */ + collapseRow?: 'auto' | number; + position?: Position; + align?: string; + padding?: [number, number, number, number]; + nameFormatter?(text: string, item: G2Dependents.ListItem, index: number): string; + valueFormatter?(value: string | number, item: G2Dependents.ListItem, index: number): string; + showData?: boolean; + marker?: Types.MarkerCfg; + allowAllCanceled?: boolean; + hoverable?: boolean; + /** @deprecated config.legend.onHover 已废弃,请使用 chart.on('legend-item:mouseenter', onHover) */ + onHover?: Types.EventCallback; + clickable?: boolean; + /** @deprecated config.legend.onClick 已废弃,请使用 chart.on('legend-item:click', onClick) */ + onClick?: Types.EventCallback; + /** @deprecated config.legend.defaultClickBehavior 已废弃,请使用 chart.on('legend-item:click', onClick) 绑定自定义点击事件 */ + defaultClickBehavior?: boolean; + customConfig?: Types.LegendCfg; +} + +function getPosition(position?: string, align?: string): Position { + const [p, a] = position.split('-'); + if (!a && align) { + if (align === 'center') { + return p as Position; + } + return `${p}-${align}` as Position; + } + return position as Position; +} + +function getPadding(position: string, base: number, userPadding?: number[], isPolar?: boolean) { + if (userPadding) { + return userPadding; + } + const len = base * 2 / 3; + const [p] = position.split('-'); + switch (p) { + case 'bottom': + return [len, 0, 0, 0]; + case 'left': + if (isPolar === true) { + return [0, base, 0, 0]; + } + return [0, len, 0, 0]; + case 'top': + return [0, 0, len, 0]; + case 'right': + if (isPolar === true) { + return [0, 0, 0, base]; + } + return [0, 0, 0, len]; + } + return [len, len, len, len]; +} + + + +/** + * rectLegend 直角坐标系legend配置。 + * + * @param {this} ctx 组件实例 this 指针 + * @param {Chart} chart 图表实例 + * @param {Object} config 配置项 + * @param {Object} defaultConfig 组件的自定义配置 + * @param {boolean} isOneDataGroup 数据是否为单组形式,类似饼图和漏斗图 + * @param {string} field 数据映射字段 + * @param {boolean} isPolar 是否极坐标系 + * @param {function} itemFormatter 组件自定义的 item 格式函数 + * */ +export default function ( + ctx: T, + chart: Chart, + config: { legend?: LegendConfig | boolean; }, + defaultConfig: Types.LegendCfg, + isOneDataGroup: boolean, + field?: string, + isPolar?: boolean, + itemFormatter?: (item: G2Dependents.ListItem, i: number) => G2Dependents.ListItem +) { + // 设置图例 + if (config.legend === false || (config.legend && typeof config.legend !== 'boolean' && config.legend.visible === false)) { + chart.legend(false); + } else { + const { + // 自动折叠图例 + autoCollapse = true, + collapseRow, + // 图例位置 + position = 'top', + align = 'left', + padding, + // 格式化函数 + nameFormatter, + valueFormatter, + showData, + marker, + // 交互相关 + allowAllCanceled = false, + hoverable = true, + onHover, + clickable = true, + onClick, + defaultClickBehavior, + // 自定义配置 + customConfig, + // style = {}, + } = (config.legend === true ? {} : (config.legend || {})) as LegendConfig; + + if (collapseRow) { + warn('config.legend', `collapseRow 已废弃,暂时无法修改分页尺寸`); + } + + const baseFontSizeNum = pxToNumber(themes['widgets-font-size-1']); + + const legendConfig: Types.LegendCfg = { + ...defaultConfig, + position: getPosition(position, align), + flipPage: autoCollapse, + itemName: { + // formatter: nameFormatter, + formatter: (text, item, index) => { + if (nameFormatter) { + return nameFormatter(text, itemFormatter ? itemFormatter(item, index) : item, index); + } + return text; + } + }, + // background: { + // padding: 0, + // }, + padding: getPadding(position, baseFontSizeNum, padding, isPolar), + marker: marker || { + // symbol: 'circle', + style: { + r: baseFontSizeNum / 3, + // fill: styleSheet.legendMarkerColor, + // lineCap: 'butt', + lineAppendWidth: 0, + fillOpacity: 1, + }, + } + }; + + // legend hover 相关事件 + if (!hoverable) { + chart.removeInteraction('legend-active'); + } + if (onHover) { + warn('config.legend', `onHover 属性已废弃,请使用通用事件方法 props.event = { 'legend-item:mouseenter': onHover }`); + chart.on('legend-item:mouseenter', onHover); + } + + // legend click 相关事件 + // 去除默认图例行为 + chart.removeInteraction('legend-filter'); + if (clickable) { + if (allowAllCanceled) { + chart.interaction('legend-custom-filter'); + } else { + chart.interaction('legend-custom-filter-last'); + } + } + if (onClick) { + warn('config.legend', `onClick 属性已废弃,请使用通用事件方法 props.event = { 'legend-item:click': onClick }`); + chart.on('legend-item:click', onClick); + } + if (defaultClickBehavior !== undefined) { + warn('config.legend', `defaultClickBehavior 属性已废弃,取消默认点击效果只需要关闭 legend.clickable 即可`); + } + + if (showData) { + const customValueFormatter = customFormatter(config.legend === true ? {} : (config.legend || {})); + + legendConfig.itemValue = { + style: { + fill: themes['widgets-legend-text'], + fontSize: baseFontSizeNum, + lineHeight: baseFontSizeNum, + fontFamily: themes['widgets-font-family-txd-m-number'], + }, + formatter: (text, item, index) => { + // @ts-ignore + const value = getLastValue(item.name, ctx.rawData, isOneDataGroup); + if (valueFormatter) { + return valueFormatter(value, itemFormatter ? itemFormatter(item, index) : item, index); + } else if (customValueFormatter) { + return customValueFormatter(value) + } + return value; + }, + }; + } + + // // 因为图例项有下边距,所以bottom设置为0即可 + // const legendStyle = Object.assign({}, legendHtmlContainer); + // const legendItemStyle = Object.assign({}, legendHtmlListItem); + // if (position === 'bottom') { + // legendStyle.bottom = 0; + // legendStyle.overflow = 'visible'; + // // 置于下方时设置margin top + // legendItemStyle.marginBottom = 0; + // legendItemStyle.marginTop = themes['widgets-font-size-1'] + // } else { + // legendStyle.top = 0; + // } + // if (align === 'right') { + // legendStyle.right = 0; + // legendStyle.textAlign = 'right'; + // } else if (align === 'left') { + // legendStyle.left = 0; + // } else if (align === 'center') { + // legendStyle.left = 0; + // legendStyle.width = '100%'; + // legendStyle.textAlign = 'center'; + // } else { + // // 默认放到左边 + // legendStyle.left = 0; + // } + // + // const legendConfig = { + // // 这些是widgets特有的属性 + // autoCollapse, + // collapseRow, + // // 以下为g2的属性 + // useHtml: true, + // title: null, + // position: position || 'top', + // allowAllCanceled, + // // 这个属性文档里没有,设置为false可以让图例不居中,再手动设置定位样式 + // autoPosition: false, + // hoverable, + // onHover, + // clickable, + // onClick, + // // 隐藏属性,设置了 onClick 时依然保留默认点击行为 + // defaultClickHandlerEnabled: defaultClickBehavior, + // itemTpl: (value, color, checked, index) => { + // const item = getRawData(config, this.rawData, value, isOneDataGroup); + // + // const newName = nameFormatter ? nameFormatter(value, { + // ...item, + // color, + // checked, + // }, index) : value; + // + // if (showData) { + // const dataValue = getDataValue(item.data); + // const newValue = valueFormatter ? valueFormatter(dataValue, { + // ...item, + // color, + // checked, + // }, index) : dataValue; + // + // return `${'
  • ' + + // `` + + // ''}${newName}${newValue}
  • `; + // } + // + // return `${'
  • ' + + // `` + + // ''}${newName}
  • `; + // }, + // 'g2-legend': legendStyle, + // 'g2-legend-list': Object.assign({}, legendHtmlList), + // 'g2-legend-list-item': legendItemStyle, + // 'g2-legend-marker': Object.assign({}, legendHtmlMarker), + // textStyle: Object.assign({}, legendTextStyle), + // }; + + // if (componentConfig) { + // // 内部的componentConfig直接使用assign浅复制,方便覆盖。 + // Object.assign(legendConfig, componentConfig); + // } + + if (customConfig) { + merge(legendConfig, customConfig); + } + + // if (legendConfig['g2-legend'] && typeof legendConfig['g2-legend'] === 'object') { + // Object.keys(style).forEach((key) => { + // // 确保每一项有值设置了,如果是假值则忽略 + // if (style[key]) { + // // hack 字号转化为 px + // if (key === 'fontSize' && !isInvalidNumber(style[key])) { + // legendConfig['g2-legend'][key] = `${style[key]}px`; + // } else { + // legendConfig['g2-legend'][key] = style[key]; + // } + // // fix: 新版G2后,图例文字颜色的设置需要注入 textStyle 中才能生效。 + // if (key === 'color' && legendConfig.textStyle && typeof legendConfig.textStyle === 'object') { + // legendConfig.textStyle.fill = style[key]; + // } + // } + // }); + // // Object.assign(legendConfig['g2-legend'], style); + // } + + if (field) { + // fix: 修复 legend 设置了 field 后,内部 options 变为 { [field]: options },无法读取 onClick 的问题 + // if (onClick) { + // chart.legend({ + // onClick, + // // 隐藏属性,设置了 onClick 时依然保留默认点击行为 + // defaultClickHandlerEnabled: defaultClickBehavior, + // }); + // } + chart.legend(field, legendConfig); + } else { + chart.legend(legendConfig); + } + + // if (this.afterRenderCallbacks && legendConfig.autoCollapse) { + // const legendCollapseInfo = legendCollapse.call(this, legendConfig); + // this.afterRenderCallbacks.push(legendCollapseInfo.render); + // + // if (this.unmountCallbacks) { + // this.unmountCallbacks.push(legendCollapseInfo.unmount); + // } + // } + } +} +function getLastValue(name: string, rawData: ChartData, isOneDataGroup: boolean) { + const dataGroup = getItemData(name, rawData, isOneDataGroup); + if (!dataGroup) { + return name; + } + if (isOneDataGroup) { + if (Array.isArray(dataGroup)) { + return dataGroup[1]; + } + if (typeof dataGroup === 'object') { + return dataGroup.y; + } + } else if (!Array.isArray(dataGroup) && Array.isArray(dataGroup.data)) { + const len = dataGroup.data.length; + const lastItem = dataGroup.data[len - 1]; + + if (Array.isArray(lastItem)) { + return lastItem[1]; + } + if (typeof lastItem === 'object') { + return lastItem.y; + } + } + return name; +} +function getItemData(name: string, rawData: ChartData, isOneDataGroup: boolean): undefined | Types.LooseObject | (number | string)[] { + if (!rawData) { + return undefined; + } + + if (isOneDataGroup) { + const originData = rawData[0] || {}; + let result = undefined; + + originData.data.some((r: any) => { + if ((Array.isArray(r) && r[0] === name) || (typeof r === 'object' && r.x === name)) { + result = r; + return true; + } + return false; + }); + + // if (Array.isArray(result)) { + // result = { + // data: result, + // }; + // } + + return result; + } + + let originData = undefined; + rawData.some((r: Types.LooseObject) => { + if (r.data && r.name === name) { + originData = r; + return true; + } + return false; + }); + + return originData; +} + +// function getRawData(config, rawData, name, isOneDataGroup) { +// if (!rawData) { +// return {}; +// } +// +// if (isOneDataGroup) { +// const originData = rawData[0] || {}; +// let result = {}; +// +// originData.data.some((r) => { +// if ((Array.isArray(r) && r[0] === name) || (typeof r === 'object' && r.x === name)) { +// result = r; +// return true; +// } +// return false; +// }); +// +// if (Array.isArray(result)) { +// result = { +// data: result, +// }; +// } +// +// return result; +// } +// +// let originData = {}; +// if (config.dataType !== 'g2') { +// rawData.some((r) => { +// if (r.name === name) { +// originData = r; +// return true; +// } +// return false; +// }); +// } +// +// return originData; +// } +// +// function getDataValue(data) { +// if (!Array.isArray(data)) { +// return '-'; +// } +// +// for (let i = 0; i < data.length; i++) { +// // 单组数据时,如饼图/漏斗图,data[i] 不是数组/对象 +// if (typeof data[i] !== 'object' && i === 1) { +// return data[i]; +// } +// if (i === data.length - 1) { +// if (Array.isArray(data[i])) { +// return data[i][1]; +// } +// if (typeof data[i] === 'object') { +// return data[i].y; +// } +// } +// } +// } +// +// function legendCollapse(legendConfig) { +// let { collapseRow = 2 } = legendConfig; +// let collapseInstance = null; +// return { +// render(chart, config) { +// if (config.legend !== false && this.chartDom) { +// const legendWrapperDom = this.chartDom.querySelector('.g2-legend'); +// const legendListDom = this.chartDom.querySelector('.g2-legend-list'); +// const legendListItemDom = this.chartDom.querySelector('.g2-legend-list-item'); +// +// if (!legendWrapperDom || !legendListDom || !legendListItemDom) { +// return; +// } +// +// const itemStyle = window.getComputedStyle(legendListItemDom); +// const marginTop = pxToNumber(itemStyle.getPropertyValue('margin-top')); +// const marginBottom = pxToNumber(itemStyle.getPropertyValue('margin-bottom')); +// const itemHeight = legendListItemDom.offsetHeight + marginTop + marginBottom; +// const wrapperHeight = legendWrapperDom.offsetHeight; +// +// // 自动适配图例折叠高度 +// if (collapseRow === 'auto') { +// const chartHeight = this._size && this._size[1]; +// if (chartHeight) { +// // 行数最多占图表高度的三分之一,最小为2。 +// collapseRow = Math.max(2, Math.round((chartHeight / itemHeight) / 3)); +// } +// } else { +// collapseRow = Number(collapseRow); +// } +// +// if (wrapperHeight > itemHeight * collapseRow) { +// if (!collapseInstance) { +// collapseInstance = new Collapse(legendWrapperDom, legendListDom, { +// wrapperHeight, +// itemHeight, +// collapseRow, +// collapseTop: marginTop, +// collapseBottom: marginBottom, +// }); +// } else if (collapseInstance.dom !== legendWrapperDom || collapseInstance.listDom !== legendListDom) { +// // 重新渲染后,dom节点可能已经改变,销毁重建 +// collapseInstance.destroy(); +// +// collapseInstance = new Collapse(legendWrapperDom, legendListDom, { +// wrapperHeight, +// itemHeight, +// collapseRow, +// collapseTop: marginTop, +// collapseBottom: marginBottom, +// }); +// } +// +// collapseInstance.start({ collapseRow }); +// } else if (collapseInstance) { +// collapseInstance.end(); +// } +// } +// }, +// unmount() { +// if (collapseInstance) { +// collapseInstance.destroy(); +// } +// }, +// }; +// } +// +// class Collapse { +// constructor(dom, listDom, config) { +// this.dom = dom; +// this.listDom = listDom; +// this.moveOffset = 0; +// this.config = config; +// this.handleClick = this.handleClick.bind(this); +// +// const { itemHeight, collapseRow, wrapperHeight, collapseTop, collapseBottom } = this.config; +// +// const collapseDom = document.createElement('div'); +// collapseDom.className = 'widgets-legend-collapse'; +// collapseDom.style.paddingTop = `${collapseTop}px`; +// collapseDom.style.paddingBottom = `${collapseBottom}px`; +// this.collapseDom = collapseDom; +// +// const collapseUpDom = document.createElement('div'); +// collapseUpDom.className = 'legend-collapse-btn collapse-up'; +// this.collapseUpDom = collapseUpDom; +// const collapseDownDom = document.createElement('div'); +// collapseDownDom.className = 'legend-collapse-btn collapse-down'; +// this.collapseDownDom = collapseDownDom; +// collapseDom.appendChild(collapseUpDom); +// collapseDom.appendChild(collapseDownDom); +// +// collapseDom.addEventListener('click', this.handleClick); +// collapseDom.addEventListener('mousemove', noopEvent); +// collapseDom.addEventListener('mouseout', noopEvent); +// +// this.minOffset = -(wrapperHeight / itemHeight) + collapseRow; +// this.maxOffset = 0; +// } +// +// handleClick(e) { +// e.stopPropagation(); +// +// if (!e.target.classList.contains('legend-collapse-btn') || e.target.classList.contains('disable')) { +// return; +// } +// +// let { moveOffset } = this; +// +// // 上一页 +// if (e.target.classList.contains('collapse-up')) { +// moveOffset += 1; +// } +// // 下一页 +// if (e.target.classList.contains('collapse-down')) { +// moveOffset -= 1; +// } +// +// this.moveOffset = moveOffset; +// +// this.renderState(); +// } +// +// renderState() { +// const { itemHeight } = this.config; +// +// this.collapseUpDom.classList.remove('disable'); +// this.collapseDownDom.classList.remove('disable'); +// +// // 不能向下 +// if (this.moveOffset <= this.minOffset) { +// this.moveOffset = this.minOffset; +// this.collapseDownDom.classList.add('disable'); +// } +// +// // 不能向上 +// if (this.moveOffset >= this.maxOffset) { +// this.moveOffset = this.maxOffset; +// this.collapseUpDom.classList.add('disable'); +// } +// +// this.listDom.style.transform = `translate(0, ${this.moveOffset * itemHeight}px)`; +// } +// +// start({ collapseRow: newCollapseRow }) { +// const { itemHeight, collapseRow: oldCollapseRow } = this.config; +// const collapseRow = newCollapseRow || oldCollapseRow; +// +// this.dom.classList.add('has-collapse'); +// +// // 展示时重新获取高度 +// // 修复因样式变化导致滚动范围改变所引起的问题。 +// this.config.wrapperHeight = this.dom.offsetHeight; +// this.minOffset = -(this.config.wrapperHeight / itemHeight) + collapseRow; +// +// this.dom.style.maxHeight = `${itemHeight * collapseRow}px`; +// this.dom.appendChild(this.collapseDom); +// +// this.renderState(); +// } +// +// end() { +// this.dom.classList.remove('has-collapse'); +// this.dom.style.maxHeight = ''; +// // dom被g2重新渲染后已经不在原来的树中,需要额外判断 +// if (this.collapseDom.parentNode === this.dom) { +// this.dom.removeChild(this.collapseDom); +// } +// } +// +// destroy() { +// this.end(); +// +// this.collapseDom.removeEventListener('click', this.handleClick); +// this.collapseDom.removeEventListener('mousemove', noopEvent); +// this.collapseDom.removeEventListener('mouseout', noopEvent); +// } +// } +// +// function noopEvent(e) { +// e.stopPropagation(); +// } diff --git a/src/common/rectScrollbar.ts b/src/common/rectScrollbar.ts new file mode 100644 index 00000000..a8063ac8 --- /dev/null +++ b/src/common/rectScrollbar.ts @@ -0,0 +1,44 @@ +'use strict'; + +import { Chart, Types } from "./types"; +import themes from '../themes'; +import { merge, pxToNumber } from './common'; + +export interface ScrollbarConfig { + scrollbar?: Types.ScrollbarCfg | boolean; +} + +/** + * 直角坐标系的缩略轴设置 + * + * @param {Chart} chart 图表实例 + * @param {ScrollbarConfig} config 配置项 + * */ +export default function(chart: Chart, config: ScrollbarConfig) { + if (!config.scrollbar) { + return; + } + + const scrollbarConfig: Types.ScrollbarCfg = { + // 由于 scrollbar controller 内部对主题变量取值路径不对,暂时在这里传入参数设置 + categorySize: pxToNumber(themes['widgets-font-size-1']) * 3, + }; + + if (typeof config.scrollbar === 'object') { + merge(scrollbarConfig, config.scrollbar); + } + + // const { showText = false, labelFormatter = undefined, ...other } = typeof config.slider === 'object' ? config.slider : {}; + // + // if (showText) { + // defaultConfig.textStyle.opacity = 0.8; + // } + // + // if (labelFormatter) { + // defaultConfig.formatter = labelFormatter; + // } + + // const sliderConfig = merge(defaultConfig, other); + + chart.option('scrollbar', scrollbarConfig); +} diff --git a/src/common/rectSlider.ts b/src/common/rectSlider.ts new file mode 100644 index 00000000..0c98bc5e --- /dev/null +++ b/src/common/rectSlider.ts @@ -0,0 +1,51 @@ +'use strict'; + +import { Chart, Types, G2Dependents } from "./types"; +import themes from '../themes'; +import { merge } from './common'; + +interface Slider extends Types.SliderCfg { + /** 显示边界值,默认 false */ + showText?: boolean; + labelFormatter?(val: any, datum: Types.Datum, idx: number): any; +} + +export interface SliderConfig { + slider?: Slider | boolean; +} + +/** + * 直角坐标系的缩略轴设置 + * + * @param {Chart} chart 图表实例 + * @param {SliderConfig} config 配置项 + * */ +export default function(chart: Chart, config: SliderConfig) { + if (!config.slider) { + return; + } + + const defaultConfig: Slider = { + // 由于内部对 trendCfg 使用浅层合并,在主题包中配置会被覆盖,只能在这一层设置。 + trendCfg: { + lineStyle: { + stroke: themes['widgets-color-category-1'], + } + } as G2Dependents.TrendCfg, + textStyle: {}, + }; + + const { showText = false, labelFormatter = undefined, ...other } = typeof config.slider === 'object' ? config.slider : {}; + + if (showText) { + defaultConfig.textStyle.opacity = 0.8; + } + + if (labelFormatter) { + defaultConfig.formatter = labelFormatter; + } + + const sliderConfig = merge(defaultConfig, other); + + chart.option('slider', sliderConfig); +} diff --git a/src/common/rectTooltip.ts b/src/common/rectTooltip.ts new file mode 100644 index 00000000..765a1a80 --- /dev/null +++ b/src/common/rectTooltip.ts @@ -0,0 +1,213 @@ +'use strict'; + +import { Chart, Types } from "./types"; +import { customFormatter, customFormatterConfig, getRawData, merge } from './common'; +import { ReactElement } from 'react'; +import { render } from 'react-dom'; + +// import TooltipController from '@antv/g2/esm/chart/controller/tooltip'; +// import { registerComponentController } from '@antv/g2/esm/chart/controller'; +// // 自定义 TooltipController 来处理 titleFormatter 的问题 +// class WidgetsTooltipController extends TooltipController { +// getTooltipItems(point: Types.Point) { +// const rawItems = super.getTooltipItems(point); +// const view = this.view; +// const option = view.getOptions().tooltip; +// // @ts-ignore +// if (rawItems.length > 0 && typeof option !== 'boolean' && option.customTitle) { +// // @ts-ignore +// rawItems[0].title = option.customTitle(rawItems[0].title || rawItems[0].name, rawItems); +// } +// return rawItems; +// } +// } +// registerComponentController('tooltip', WidgetsTooltipController); + +// 排序函数 +const sortFun = { + // 升序 + asce(a: any, b: any) { + return a.value - b.value; + }, + // 降序 + desc(a: any, b: any) { + return b.value - a.value; + }, +}; + +export interface TooltipConfig extends customFormatterConfig { + visible?: boolean; + sort?: 'asce' | 'desc' | Function; + showTitle?: boolean; + showColon?: boolean; + position?: 'top' | 'bottom' | 'left' | 'right'; + offset?: number; + customConfig?: Types.TooltipCfg; + titleFormatter?: Function; + nameFormatter?: Function; + valueFormatter?: Function; + /** Html 自定义内容块 */ + customContent?: (title: string, data: any[]) => string | HTMLElement; + reactContent?: (title: string, data: any[]) => ReactElement; +} + +/** + * rectTooltip 直角坐标系的tooltip配置 + * + * @param {this} ctx 组件实例 this 指针 + * @param {Chart} chart 图表实例 + * @param {Object} config 配置项 + * @param {Object} defaultConfig 组件的自定义配置 + * @param {Function} onTooltipChange 自定义 tooltip:change 事件 + * @param {Object} componentConfig + * */ +export default function( + ctx: T, + chart: Chart, + config: { tooltip?: TooltipConfig | boolean; }, + defaultConfig?: Types.TooltipCfg, + onTooltipChange?: Function, + componentConfig?: Types.TooltipCfg +) { + if (config.tooltip === false || (config.tooltip && typeof config.tooltip !== 'boolean' && config.tooltip.visible === false)) { + chart.tooltip(false); + } else { + const { + sort, + showTitle = true, + showColon = true, + position, + offset, + // inPlot = true, + titleFormatter, + nameFormatter, + valueFormatter, + customContent, + reactContent, + customConfig, + unit, + decimal, + grouping, + } = (config.tooltip === true ? {} : (config.tooltip || {})) as TooltipConfig; + + const tooltipConfig: Types.TooltipCfg = { + ...defaultConfig, + showTitle, + // title: '_customTitle_', + showCrosshairs: true, + // crosshairs 空对象不可省略,否则在混合图表中会没有crosshairs line + crosshairs: { + type: 'x', + }, + position, + offset, + shared: true, + // inPlot, + itemTpl: `
  • {name}${showColon ? ': ' : ' '}{value}
  • `, + // 尝试自定义title,可以达到效果,但是重绘次数过多,性能差 + // customContent(title, data) { + // console.log(title, data); + // return `
    ${title}
    + //
      + // ${ + // data.map((d, i) => { + // return `
    • + // + // ${d.name}:${d.value} + //
    • `; + // }).join('') + // } + //
    + // `; + // }, + customContent, + }; + + if (titleFormatter) { + // 下面这段是 TooltipCfg.title 不为 function 的逻辑 + // tooltipConfig.title = '_customTitle_'; + + // 下面这段是 TooltipCfg.title 为 function 的逻辑 + tooltipConfig.title = function (title, item) { + return titleFormatter(title, item); + }; + + // 下面这行是配合自定义 TooltipController + // // @ts-ignore + // tooltipConfig.customTitle = titleFormatter; + } + + // react tooltip 渲染模式 + if (reactContent) { + const reactContentDom = document.createElement('div'); + reactContentDom.classList.add('g2-tooltip'); + reactContentDom.style.width = 'auto'; + reactContentDom.style.height = 'auto'; + + tooltipConfig.customContent = function (title, data) { + render(reactContent(title, data), reactContentDom); + return reactContentDom; + } + } + + if (componentConfig) { + Object.assign(tooltipConfig, componentConfig); + } + + if (customConfig) { + merge(tooltipConfig, customConfig); + } + + chart.tooltip(tooltipConfig); + + if ( + sort || titleFormatter || nameFormatter || valueFormatter || + unit || (decimal !== undefined && decimal !== null) || grouping + ) { + if (onTooltipChange) { + chart.on('tooltip:change', onTooltipChange); + } else { + const customValueFormatter = customFormatter(config.tooltip === true ? {} : (config.tooltip || {})); + + chart.on('tooltip:change', (ev: any) => { + // x: 当前鼠标的 x 坐标, + // y: 当前鼠标的 y 坐标, + // items: 数组对象,当前 tooltip 显示的每条内容 + // title: tooltip 标题 + const { items } = ev.data; + // console.log(ev); + // 如果设置了合法的排序关键字,则开始排序 + if (typeof sort === 'function') { + items.sort(sort); + } else if (sortFun[sort]) { + items.sort(sortFun[sort]); + } + + // 格式化标题,下面这段是 TooltipCfg.title 不为 function 的逻辑 + // if (titleFormatter && !items[0].data.hasCustomTitle) { + // // ev.title = titleFormatter(ev.title, ev.items); + // // items[0].title = titleFormatter(items[0].title, items); + // items[0].data._customTitle_ = titleFormatter(items[0].data.x, items); + // items[0].data.hasCustomTitle = true; + // } + // console.log(ev); + + // 对每一项格式化 名字 和 值 + items.forEach((item: any, index: number) => { + // @ts-ignore + const raw = getRawData(config, ctx.rawData, item); + + if (valueFormatter) { + item.value = valueFormatter(item.value, raw, index, items); + } else if (customValueFormatter) { + item.value = customValueFormatter(item.value); + } + if (nameFormatter) { + item.name = nameFormatter(item.name, raw, index, items); + } + }); + }); + } + } + } +} diff --git a/src/common/rectXAxis.ts b/src/common/rectXAxis.ts new file mode 100644 index 00000000..7ca57e7f --- /dev/null +++ b/src/common/rectXAxis.ts @@ -0,0 +1,102 @@ +'use strict'; + +import { Chart, Types, G2Dependents } from "./types"; +import themes from '../themes'; +import { merge, customFormatter, customFormatterConfig } from './common'; + +export interface XAxisConfig extends customFormatterConfig { + visible?: boolean; + alias?: boolean; + autoRotate?: boolean; + rotate?: number; + autoHide?: boolean; + autoEllipsis?: boolean; + labelFormatter?(): string; + tickLine?: boolean | G2Dependents.AxisTickLineCfg; + customConfig?: Types.AxisCfg; + // 数据项中使用 + categories?: number[] | string[]; +} + +/** + * rectXAxis 直角坐标系的X轴配置 + * + * @param {this} ctx 组件实例 this 指针 + * @param {Chart} chart 图表实例 + * @param {Object} config 配置项 + * @param {Object} defaultConfig 组件的自定义配置 + * */ +export default function ( + ctx: T, + chart: Chart, + config: { grid?: boolean; xAxis?: Types.ScaleOption & XAxisConfig | false }, + defaultConfig?: Types.AxisCfg +) { + if (config.xAxis === false || (config.xAxis && config.xAxis.visible === false)) { + chart.axis('x', false); + } else { + const { alias, autoRotate = false, rotate, autoHide, autoEllipsis, labelFormatter, tickLine, customConfig } = config.xAxis || {}; + let myTickLine = null; + if (typeof tickLine === 'boolean' && tickLine) { + myTickLine = {}; + } + const xAxisConfig: Types.AxisCfg = { + ...defaultConfig, + title: null, // 默认不展示坐标轴的标题 + tickLine: myTickLine, + label: { + autoRotate, + rotate, + autoHide, + autoEllipsis, + formatter: labelFormatter || customFormatter(config.xAxis || {}), + }, + }; + + // if (rotate) { + // xAxisConfig.label.style = { + // textAlign: 'start', + // rotate, + // }; + // } + + // 网格线 + if (config.grid) { + xAxisConfig.grid = { + line: { + style: { + stroke: themes['widgets-axis-grid'], + lineWidth: 1, + }, + }, + // lineStyle: { + // stroke: themes['widgets-axis-grid'], + // lineWidth: 1, + // // lineDash: null + // }, + // // hideFirstLine: true + }; + } + + // 开启坐标轴标题 + if (alias) { + xAxisConfig.title = { + // position: 'center', + // offset: 38, + // textStyle: { + // rotate: 0, + // }, + }; + } + + // if (componentConfig) { + // Object.assign(xAxisConfig, componentConfig); + // } + + if (customConfig) { + merge(xAxisConfig, customConfig); + } + + chart.axis('x', xAxisConfig); + } +} diff --git a/src/common/rectYAxis.ts b/src/common/rectYAxis.ts new file mode 100644 index 00000000..4351623c --- /dev/null +++ b/src/common/rectYAxis.ts @@ -0,0 +1,78 @@ +'use strict'; + +import { Chart, Types } from "./types"; +import { merge, customFormatter, customFormatterConfig } from './common'; + +export interface YAxisConfig extends customFormatterConfig { + visible?: boolean; + alias?: boolean; + autoRotate?: boolean; + rotate?: number; + autoHide?: boolean; + autoEllipsis?: boolean; + labelFormatter?(): string; + customConfig?: Types.AxisCfg; +} + +/** + * rectYAxis 直角坐标系的单个Y轴配置 + * + * @param {this} ctx 组件实例 this 指针 + * @param {Chart} chart 图表实例 + * @param {Object} config 配置项 + * @param {string} yField 数据映射字段 + * @param {Object} defaultConfig 组件的自定义配置 + * */ +export default function ( + ctx: T, + chart: Chart, + config: { yAxis?: Types.ScaleOption & YAxisConfig | false; }, + yField: string = 'y', + defaultConfig?: Types.AxisCfg +) { + if (config.yAxis === false || (config.yAxis && config.yAxis.visible === false)) { + chart.axis(yField, false); + } else { + const { alias, autoRotate = false, rotate, autoHide, autoEllipsis, labelFormatter, customConfig } = config.yAxis || {}; + const yConfig: Types.AxisCfg = { + ...defaultConfig, + title: null, // 不展示坐标轴的标题 + label: { + autoRotate, + rotate, + autoHide, + autoEllipsis, + formatter: labelFormatter || customFormatter(config.yAxis || {}), + }, + }; + + // // 关闭了X轴,需要显示第一条grid + // if (config.xAxis === false || (config.xAxis && config.xAxis.visible === false)) { + // yConfig.grid = { + // hideFirstLine: false, + // }; + // } + + // 开启坐标轴标题 + if (alias) { + yConfig.title = {}; + if (yField === 'y1') { + // @ts-ignore G2 文档中没有出现的属性,传入角度值,手动设置转动角度 + yConfig.title.rotate = Math.PI / 2; + } + // yConfig.label.textStyle = { + // rotate: 0, + // }; + } + + // if (componentConfig) { + // Object.assign(yConfig, componentConfig); + // } + + if (customConfig) { + merge(yConfig, customConfig); + } + + chart.axis(yField, yConfig); + } +} diff --git a/src/common/rectZoom.ts b/src/common/rectZoom.ts new file mode 100644 index 00000000..ccc5a8e6 --- /dev/null +++ b/src/common/rectZoom.ts @@ -0,0 +1,141 @@ +'use strict'; + +// import { registerAction } from "@antv/g2"; +// import ResetButton from '@antv/g2/esm/interaction/action/view/button'; +import { Chart, Types, Language } from "./types"; +import themes from '../themes'; + +export interface ZoomConfig { + zoom?: boolean; +} + +const locale = { + 'zh-cn': { + reset: '重置', + }, + 'en-us': { + reset: 'Reset', + }, +}; + +function isNotInResetButton(context: Types.IInteractionContext) { + return !(context.isInShape('button-rect') || context.isInShape('button-text')); +} + +function isPointInViewNotInResetButton(context: Types.IInteractionContext) { + return context.isInPlot() && !(context.isInShape('button-rect') || context.isInShape('button-text')); +} + +// registerAction('custom-reset-button', ResetButton, { +// name: 'reset-button', +// text: 'reset', +// }); + +/** + * 直角坐标系的拖拽缩放设置 + * + * @param {Chart} chart 图表实例 + * @param {ZoomConfig} config 配置项 + * @param {Language} language 当前语言 + * */ +export default function(chart: Chart, config: ZoomConfig, language?: Language) { + if (!config.zoom) { + return; + } + + // 修改 tooltip 默认行为,进入 reset button 不展示 + chart.interaction('tooltip', { + start: [ + { + trigger: 'plot:mousemove', + action: 'tooltip:show', + throttle: {wait: 50, leading: true, trailing: false}, + isEnable: isNotInResetButton, + }, + { + trigger: 'plot:touchmove', + action: 'tooltip:show', + throttle: {wait: 50, leading: true, trailing: false}, + isEnable: isNotInResetButton, + }, + ], + end: [ + { trigger: 'plot:mouseleave', action: 'tooltip:hide' }, + { trigger: 'plot:leave', action: 'tooltip:hide' }, + { trigger: 'plot:touchend', action: 'tooltip:hide' }, + { trigger: 'reset-button:mouseenter', action: 'tooltip:hide' }, + // { trigger: 'reset-button:mousemove', action: 'tooltip:hide' }, + ], + }); + + chart.interaction('brush-x', { + start: [ + { + trigger: 'mousedown', + isEnable: isPointInViewNotInResetButton, + action: ['brush-x:start', 'x-rect-mask:start', 'x-rect-mask:show'], + callback(context: Types.IInteractionContext) { + // console.log('start', context, ); + chart.emit('zoom:start', { + ...(context.getCurrentPoint()) + }, context); + } + } + ], + end: [ + { + trigger: 'mouseup', + isEnable(context: Types.IInteractionContext) { + const enable = isPointInViewNotInResetButton(context); + // 自定义设置重置按钮的文案 + if (enable) { + const resetAction = context.getAction('reset-button'); + // @ts-ignore + if (resetAction.cfg) { + // @ts-ignore + Object.assign(resetAction.cfg, { + text: (locale[language] || locale['zh-cn']).reset, + textStyle: { + fill: themes['widgets-color-blue'], + }, + style: { + fill: themes['widgets-color-background'], + stroke: themes['widgets-color-gray'], + lineWidth: 0.5, + // strokeWidth: 1, + }, + activeStyle: { + fill: themes['widgets-color-background'], + stroke: themes['widgets-color-blue'], + } + }); + } + } + return enable; + }, + action: ['brush-x:filter', 'brush-x:end', 'x-rect-mask:end', 'x-rect-mask:hide', 'reset-button:show'], + callback(context: Types.IInteractionContext) { + const rangeFilterAction = context.getAction('brush-x'); + + chart.emit('zoom:end', { + // @ts-ignore + startPoint: rangeFilterAction.startPoint, + endPoint: context.getCurrentPoint(), + // @ts-ignore + data: context.view.filteredData, + }, context); + } + }, + ], + rollback: [ + // { trigger: 'dblclick', action: ['brush-x:reset'] }, + { + trigger: 'reset-button:click', + action: ['brush-x:reset', 'reset-button:hide', 'cursor:crosshair'], + callback(context: Types.IInteractionContext) { + chart.emit('zoom:reset', context); + } + } + ], + }); +} diff --git a/components/common/tween.js b/src/common/tween.ts similarity index 75% rename from components/common/tween.js rename to src/common/tween.ts index 796c8b45..26ffd72b 100644 --- a/components/common/tween.js +++ b/src/common/tween.ts @@ -1,8 +1,22 @@ -class Tween { - constructor(config, callback) { +interface TweenConfig { + autoUpdate?: boolean; + maxFps?: number; + duration?: number; +} + +export type TweenCallback = (v: number) => void; + +export class Tween { + interval: number; + timer: any; + _startTime: number; + lastUpdate: number; + _isPlay: boolean; + + constructor(private config: TweenConfig, private callback: TweenCallback) { const { maxFps } = config; this.config = config; - this._callback = callback; + this.callback = callback; this.refresh = this.refresh.bind(this); this.lastUpdate = null; this.interval = 1000 / maxFps; @@ -45,17 +59,17 @@ class Tween { } } - update(time) { + update(time: number) { const now = time || Date.now(); if (now < this._startTime) { - return true; + return; } let elapsed = (now - this._startTime) / this.config.duration; elapsed = elapsed > 1 ? 1 : elapsed; - this._callback(elapsed); + this.callback(elapsed); if (elapsed === 1) { this.stop(); @@ -75,9 +89,13 @@ class Tween { } } -const nameMap = {}; +interface TweenMap { + [name: string]: Tween; +} + +const nameMap: TweenMap = {}; -export default function (name, config, callback) { +export default function (name: string | number, config: TweenConfig, callback: TweenCallback) { if (nameMap[name]) { // restart nameMap[name].start(); diff --git a/src/common/types.ts b/src/common/types.ts new file mode 100644 index 00000000..0ec4e125 --- /dev/null +++ b/src/common/types.ts @@ -0,0 +1,25 @@ +import { ColorAttrCallback, ViewPadding } from "@antv/g2/esm/interface"; + +export * from '@antv/g2/esm/core'; + +export * as G2Dependents from "@antv/g2/esm/dependents"; + +export interface BaseChartConfig { + padding?: ViewPadding; + dataType?: string; + animate?: boolean; +} + +export type ChartData = any; + +export type Size = number | string; + +export type Status = 'error' | 'warning' | 'normal' | 'success' | 'none'; + +export type StatusColor = 'red' | 'orange' | 'blue' | 'green' | 'gray'; + +export type Language = 'zh-cn' | 'en-us'; + +export type Trend = 'raise' | 'drop'; + +export type Colors = string | string[] | ColorAttrCallback; diff --git a/src/common/updateChildrenPosition.ts b/src/common/updateChildrenPosition.ts new file mode 100644 index 00000000..578c2817 --- /dev/null +++ b/src/common/updateChildrenPosition.ts @@ -0,0 +1,18 @@ +import { Chart } from '../common/types'; +import { FullCrossName } from '../constants'; + +/** + * updateChildrenPosition,需要在 chart afterRender 中调用 + * + * @param {Chart} chart 图表实例 + * @param {HTMLElement} dom 元素节点 + * */ +export default function (chart: Chart, dom: HTMLElement) { + // 更新子元素位置 + const childDom = dom && (dom.querySelector(`.${FullCrossName}-children`) as HTMLElement); + if (childDom) { + const centerPoint = chart.getCoordinate().getCenter(); + childDom.style.left = `${centerPoint.x}px`; + childDom.style.top = `${centerPoint.y}px`; + } +} diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 00000000..65a6102c --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,24 @@ +// 定义全局变量 +declare const __VERSION__: string; +declare const __THEME__: string; + +const VERSION = __VERSION__; +const THEME = __THEME__; + +export { VERSION }; +export { THEME }; + +export const FullCamelName = 'CloudCharts'; +export const FullCrossName = 'cloud-charts'; +export const FullTrackName = 'CloudChartsTrackEnable'; +export const TrackName = 'cloud-chart.use.init'; +export const PrefixName = 'cloud'; + +declare global { + interface Window { + /** + * 通过全局变量控制是否开启用户跟踪系统 + * */ + CloudChartsTrackEnable?: boolean; + } +} diff --git a/src/index.scss b/src/index.scss new file mode 100644 index 00000000..47c358ad --- /dev/null +++ b/src/index.scss @@ -0,0 +1,80 @@ +@import "themes/index"; + +$font-path-m: '../font/txddinmedium' !default; +$font-path-r: '../font/txddinregular' !default; + +/* Widgets 专用字体,仅包含20个字符 */ +@font-face { + font-family: "TXDDINMediumNumber"; + src: url("#{$font-path-m}/txddinmedium.eot"); /* IE9 */ + src: url("#{$font-path-m}/txddinmedium.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */ + url("#{$font-path-m}/txddinmedium.woff") format("woff"), /* chrome、firefox */ + url("#{$font-path-m}/txddinmedium.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */ + url("#{$font-path-m}/txddinmedium.svg#fonteditor") format("svg"); /* iOS 4.1- */ + font-style: normal; + font-weight: normal; +} + +@font-face { + font-family: "TXDDINRegularNumber"; + src: url("#{$font-path-r}/txddinregular.eot"); /* IE9 */ + src: url("#{$font-path-r}/txddinregular.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */ + url("#{$font-path-r}/txddinregular.woff") format("woff"), /* chrome、firefox */ + url("#{$font-path-r}/txddinregular.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */ + url("#{$font-path-r}/txddinregular.svg#fonteditor") format("svg"); /* iOS 4.1- */ + font-style: normal; + font-weight: normal; +} + +/* 全局公用样式 */ +.#{$base-name} { + canvas { + position: relative; + display: block; + } + + &.widgets-error-info { + margin: 0; + padding: 0; + overflow: auto; + font-size: 1em; + color: getVar(widgets-color-red, $widgets-color-red); + } + + //.widgets-reset-button { + // position: absolute; + // z-index: 1; + // padding: 4px; + // + // font-size: 12px; + // color: getVar(widgets-color-blue, $widgets-color-blue); + // background: getVar(widgets-color-background, $widgets-color-background); + // + // border: 1px solid getVar(widgets-color-gray, $widgets-color-gray); + // border-radius: 2px; + // + // cursor: pointer; + // user-select: none; + //} + + .g2-tooltip-item-value { + margin-left: getVar(s2, $s2); + } + + ::-webkit-scrollbar { + background: getVar(widgets-scrollbar-bg, $widgets-scrollbar-bg); + width: 8px; + height: 8px; + padding: 0 3px; + // border-radius: 3px; + } + ::-webkit-scrollbar-corner { + background: getVar(widgets-scrollbar-bg, $widgets-scrollbar-bg); + border-radius: 3px; + } + + ::-webkit-scrollbar-thumb { + background: getVar(widgets-scrollbar-thumb, $widgets-scrollbar-thumb); + border-radius: 3px; + } +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..519e2e3a --- /dev/null +++ b/src/index.ts @@ -0,0 +1,51 @@ +import { VERSION } from './constants'; +import themes, { Themes } from './themes/index'; +import './index.scss'; + +export const version = VERSION; +export { VERSION } ; + +// 主题包和颜色值 +export const COLORS: Themes = themes; +export const THEMES: Themes = themes; +export { themes }; + +// 打点控制 +export { default as track } from './track'; + +// 插件系统 +export { plugins, pluginManager } from './plugins'; + +// 暴露工具类 +export { default as Util } from './Util'; + +export { default as Wline, Line as RawLine } from './Wline'; +export { default as Wlinebar, Linebar as RawLinebar } from './Wlinebar'; +export { default as Wpie, Pie as RawPie } from './Wpie'; +export { default as Wradar, Radar as RawRadar } from './Wradar'; +export { default as Wbar, Bar as RawBar } from './Wbar'; +export { default as Wfunnel, Funnel as RawFunnel } from './Wfunnel'; +export { default as Wnightingale, Nightingale as RawNightingale } from './Wnightingale'; +export { default as Wheatmap, Heatmap as RawHeatmap } from './Wheatmap'; +export { default as Wmap, Map as RawMap } from './Wmap' +export { default as Wrectangle, Rectangle as RawRectangle } from './Wrectangle'; +export { default as Wminiline, Miniline as RawMiniline } from './Wminiline'; +export { default as WmultiPie, MultiPie as RawMultiPie } from './Wmultipie'; +export { default as Wbox, Box as RawBox } from './Wbox'; +export { default as Wsankey, Sankey as RawSankey } from './Wsankey'; +export { default as Wscatter, Scatter as RawScatter } from './Wscatter'; +export { default as Whistogram, Histogram as RawHistogram } from './Whistogram'; +export { default as Wtreemap, Treemap as RawTreemap } from './Wtreemap'; +export { default as Wcandlestick, Candlestick as RawCandlestick } from './Wcandlestick'; +export { default as Whierarchy, Hierarchy as RawHierarchy } from './Whierarchy'; + +// 业务组件,没有依赖其它图表库 +export { default as Wnumber } from './Wnumber/index'; +export { default as Wcontainer } from './Wcontainer/index'; +export { default as Wicon } from './Wicon/index'; +export { default as Wcircle } from './Wcircle/index'; +export { default as Wminicontainer } from './Wminicontainer/index'; +export { default as Wshoot } from './Wshoot/index'; +export { default as Wplaceholder } from './Wplaceholder/index'; +export { default as Wcount } from './Wcount/index'; +// export { default as Wdashboard } from './Wdashboard/index'; diff --git a/src/plugins.ts b/src/plugins.ts new file mode 100644 index 00000000..a887828a --- /dev/null +++ b/src/plugins.ts @@ -0,0 +1,28 @@ +import { ReactElement } from 'react'; +import { warn } from './common/log'; + +interface PluginsMap { + [name: string]: ReactElement +} + +const plugins: PluginsMap = {}; +const pluginManager = { + register(name: string, p: ReactElement) { + if (plugins[name]) { + warn('plugin', `${name} has already registered.`); + return; + } + plugins[name] = p; + }, + get(name: string) { + if (!name) { + return plugins; + } + if (!plugins[name]) { + warn('plugin', `${name} not find!`); + } + return plugins[name]; + }, +}; + +export { plugins, pluginManager }; diff --git a/components/plugins/WorldMap/data/world-without-antarctic.json b/src/plugins/worldmap/data/world-without-antarctic.json similarity index 100% rename from components/plugins/WorldMap/data/world-without-antarctic.json rename to src/plugins/worldmap/data/world-without-antarctic.json diff --git a/components/plugins/WorldMap/index.jsx b/src/plugins/worldmap/index.tsx similarity index 76% rename from components/plugins/WorldMap/index.jsx rename to src/plugins/worldmap/index.tsx index 1e48512c..85bf899c 100644 --- a/components/plugins/WorldMap/index.jsx +++ b/src/plugins/worldmap/index.tsx @@ -1,10 +1,13 @@ -import React from 'react'; -import { Wmap, DataSet, pluginManager } from '@alicloud/cloud-charts'; +import * as React from 'react'; +// @ts-ignore +import { Wmap, pluginManager } from '@alicloud/cloud-charts'; +// @ts-ignore import worldGeo from './data/world-without-antarctic.json'; +import { MapProps } from '../../Wmap'; -const defaultWorldProjection = DataSet.View.prototype.getGeoProjection('geoEquirectangular'); +const defaultWorldProjection = Wmap.getGeoProjection('geoEquirectangular'); -function WorldMap (props) { +function WorldMap (props: MapProps) { const { geoData, children, config, ...other } = props; const newConfig = Object.assign({}, config || {}); if (newConfig.showSouthChinaSea === undefined || newConfig.showSouthChinaSea) { diff --git a/src/themes/base.scss b/src/themes/base.scss new file mode 100644 index 00000000..cb4938e1 --- /dev/null +++ b/src/themes/base.scss @@ -0,0 +1,108 @@ +/// Base Size +/// @type Length +$size-base: 4px !default; + +/// S0 +/// @export length +/// @unconfigurable +$s0: 0; + +/// S1 +/// @unconfigurable +/// @export length +$s1: $size-base * 1; + +/// S2 +/// @export length +/// @unconfigurable +$s2: $size-base * 2; + +/// S3 +/// @export length +/// @unconfigurable +$s3: $size-base * 3; + +/// S4 +/// @export length +/// @unconfigurable +$s4: $size-base * 4; + +/// S5 +/// @export length +/// @unconfigurable +$s5: $size-base * 5; + +/// S6 +/// @export length +/// @unconfigurable +$s6: $size-base * 6; + +/// S7 +/// @export length +/// @unconfigurable +$s7: $size-base * 7; + +/// S8 +/// @export length +/// @unconfigurable +$s8: $size-base * 8; + +/// S9 +/// @export length +/// @unconfigurable +$s9: $size-base * 9; + +/// S10 +/// @export length +/// @unconfigurable +$s10: $size-base * 10; + +/// S11 +/// @export length +/// @unconfigurable +$s11: $size-base * 11; + +/// S12 +/// @export length +/// @unconfigurable +$s12: $size-base * 12; + +/// S13 +/// @export length +/// @unconfigurable +$s13: $size-base * 13; + +/// S14 +/// @export length +/// @unconfigurable +$s14: $size-base * 14; + +/// S15 +/// @export length +/// @unconfigurable +$s15: $size-base * 15; + +/// S16 +/// @export length +/// @unconfigurable +$s16: $size-base * 16; + +// =============================================== // + +/// Base Radius +/// @export +/// @type length +$corner-radius-base: 4px !default; + +/// No Radius +/// @export +/// @type Length +$corner-radius-r0: 0px !default; + +/// R1 +/// @export +/// @type Length +$corner-radius-r1: 4px !default; + +// =============================================== // + diff --git a/components/themes/dark.scss b/src/themes/dark.scss similarity index 100% rename from components/themes/dark.scss rename to src/themes/dark.scss diff --git a/src/themes/dark.style.ts b/src/themes/dark.style.ts new file mode 100644 index 00000000..198e3113 --- /dev/null +++ b/src/themes/dark.style.ts @@ -0,0 +1 @@ +export default {"size-base":"4px","s0":0,"s1":"4px","s2":"8px","s3":"12px","s4":"16px","s5":"20px","s6":"24px","s7":"28px","s8":"32px","s9":"36px","s10":"40px","s11":"44px","s12":"48px","s13":"52px","s14":"56px","s15":"60px","s16":"64px","corner-radius-base":"4px","corner-radius-r0":"0px","corner-radius-r1":"4px","widgets-color-background":"#232533","widgets-color-layout-background":"#171924","widgets-color-blue":"#3f90ff","widgets-color-orange":"#ff9919","widgets-color-red":"#ff656b","widgets-color-green":"#3fc453","widgets-color-gray":"#393c4d","widgets-color-category-1":"#3f90ff","widgets-color-category-2":"#5ccdbb","widgets-color-category-3":"#facd4f","widgets-color-category-4":"#9979f2","widgets-color-category-5":"#006cd9","widgets-color-category-6":"#4ad051","widgets-color-category-7":"#5c60e6","widgets-color-category-8":"#cd5c97","widgets-color-category-9":"#52d7ff","widgets-color-category-10":"#fab34f","widgets-color-category-11":"#e65c5c","widgets-color-category-12":"#9b5ce6","widgets-color-linear-1":"#3f90ff","widgets-color-linear-2":"#3c85eb","widgets-color-linear-3":"#397ad6","widgets-color-linear-4":"#3670c2","widgets-color-linear-5":"#3464ad","widgets-color-linear-6":"#315a99","widgets-color-linear-7":"#2e5084","widgets-color-linear-8":"#2b4470","widgets-color-linear-9":"#283b5e","widgets-color-linear-10":"#252f47","widgets-color-text-1":"#f7f8f2","widgets-color-text-2":"#c5cace","widgets-color-text-3":"#9ea5b2","widgets-color-disable":"#777d8f","widgets-font-family-txd-m-number":"'TXDDINMediumNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-family-txd-r-number":"'TXDDINRegularNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-size-1":"12px","widgets-font-size-2":"14px","widgets-font-size-3":"16px","widgets-font-size-4":"18px","widgets-font-size-5":"24px","widgets-font-size-6":"28px","widgets-font-size-7":"32px","widgets-legend-uncheck":"#777d8f","widgets-legend-text":"#f7f8f2","widgets-label-text":"#f7f8f2","widgets-tooltip-background":"#323545","widgets-tooltip-padding":"12px","widgets-tooltip-shadow":"0 2px 8px 0 rgba(0, 0, 0, 0.2)","widgets-tooltip-corner-radius":"4px","widgets-tooltip-cross-line":"#51566b","widgets-tooltip-cross-react":"#404354","widgets-tooltip-cross-react-opacity":0.5,"widgets-tooltip-title":"#9ea5b2","widgets-tooltip-text":"#f7f8f2","widgets-tooltip-marker-fill":"#232533","widgets-axis-label":"#9ea5b2","widgets-axis-line":"#393c4d","widgets-axis-grid":"#323545","widgets-guide-region-opacity":0.1,"widgets-shape-area-opacity":0.1,"widgets-shape-interval-opacity":1,"widgets-container-background":"#232533","widgets-container-padding":"20px","widgets-container-mobile-padding":"12px","widgets-container-corner-radius":"4px","widgets-container-shadow":"none","widgets-container-title":"#f7f8f2","widgets-container-split-line":"#393c4d","widgets-map-area-bg":"#393c4d","widgets-map-area-border":"#232533","widgets-map-label":"#c5cace","widgets-circle-stroke-background":"#51566b","widgets-circle-number":"currentColor","widgets-circle-stroke-width":"6px","widgets-sankey-edge":"#393c4d","widgets-sankey-node-text":"#9ea5b2","widgets-scrollbar-bg":"#404354","widgets-scrollbar-thumb":"#51566b"}; \ No newline at end of file diff --git a/components/themes/index.scss b/src/themes/index.scss similarity index 80% rename from components/themes/index.scss rename to src/themes/index.scss index ba157595..a42ea5f3 100644 --- a/components/themes/index.scss +++ b/src/themes/index.scss @@ -1,5 +1,8 @@ @import "./normal"; +$base-name: 'cloud-charts'; +$base-prefix: 'cloud'; + @function getVar($name, $value) { @return var(--#{$name}, #{$value}); } diff --git a/components/themes/index.js b/src/themes/index.ts similarity index 50% rename from components/themes/index.js rename to src/themes/index.ts index c3c71f3b..5c3ebc9b 100644 --- a/components/themes/index.js +++ b/src/themes/index.ts @@ -1,14 +1,29 @@ -import G2 from '@antv/g2'; import eventBus from "../common/eventBus"; +import { THEME } from '../constants'; import { themeLog } from "../common/log"; -import setG2Theme from "../common/g2Theme"; -import { setThemeStyle, convertKey, convertCSS, convertJsStyle } from './themeTools'; +import { + setThemeStyle, + convertKey, + convertCSS, + convertJsStyle, + setG2Theme, + Theme, +} from './themeTools'; // [theme].style 文件根据 [theme].scss 自动生成,请勿直接修改 import normalStyle from './normal.style'; import darkStyle from './dark.style'; -const themeMap = { +interface ThemesMap { + [themeName: string]: { + js: Theme; + css: string; + rawCSS: Theme; + }; +} + +// 记录所有主题 +const themeMap: ThemesMap = { normal: { js: convertKey(convertJsStyle('normal', normalStyle)), css: convertCSS(normalStyle), @@ -23,30 +38,45 @@ const themeMap = { // alias index as normal themeMap.index = themeMap.normal; +const normalMap = { index: true, normal: true }; + // 默认主题包 -if (process.env.NODE_ENV === 'production') { - themeMap.default = themeMap[__THEME__]; -} else { - themeMap.default = themeMap.normal; +const defaultThemeName = process.env.NODE_ENV === 'production' ? THEME : 'normal'; + +export interface Themes extends Theme { + getTheme: typeof getTheme; + setTheme: typeof setTheme; } -const themes = {}; +/** 当前图表库主题包 */ +const themes: Themes = { + getTheme, + setTheme, +}; let currentThemeName = ''; -export function getTheme(name) { +export function getTheme(name?: string) { if (!name) { return themes; } else if (themeMap[name]) { return themeMap[name].js; } + return undefined; } -export function setTheme(theme = 'default', refreshChart = true) { - if (typeof theme === 'string' && themeMap[theme] && theme === currentThemeName) { +export function setTheme(theme: string | {} = defaultThemeName, refreshChart: boolean = true) { + if (typeof theme === 'string' && themeMap[theme] && (theme === currentThemeName || (theme in normalMap && currentThemeName in normalMap))) { return; } - let newTheme = {}; - if (G2.Util.isObject(theme)) { + let newTheme: Theme = {}; + if (typeof theme === 'string' && themeMap[theme]) { + // 传入字符串名字,设置对应主题包 + newTheme = themeMap[theme].js; + currentThemeName = theme; + setThemeStyle(themeMap[theme].css); + // 打点 + themeLog(theme); + } else if (typeof theme === 'object') { // 传入对象,直接覆盖对应的key和css newTheme = convertKey(theme); @@ -54,30 +84,24 @@ export function setTheme(theme = 'default', refreshChart = true) { const newCSS = Object.assign({}, themeMap[currentThemeName].rawCSS, theme); setThemeStyle(convertCSS(newCSS)); // 打点 - themeLog('customTheme'); - } else if (themeMap[theme]) { - // 传入字符串名字,设置对应主题包 - newTheme = themeMap[theme].js; - currentThemeName = theme; - - setThemeStyle(themeMap[theme].css); - // 打点 - themeLog(theme === 'default' ? 'index' : theme); + themeLog(newTheme.name || 'customTheme'); } else { return; } - G2.Util.deepMix(themes, newTheme); - setG2Theme(themes); + Object.assign(themes, newTheme) + + setG2Theme(themes as Theme); if (refreshChart) { - eventBus.emitEvent('setTheme'); + // TODO 优化重新渲染逻辑 + eventBus.emit('setTheme'); } } -setTheme('default', false); +setTheme(defaultThemeName, false); -themes.getTheme = getTheme; -themes.setTheme = setTheme; +// themes.getTheme = getTheme; +// themes.setTheme = setTheme; export default themes; diff --git a/components/themes/normal.scss b/src/themes/normal.scss similarity index 99% rename from components/themes/normal.scss rename to src/themes/normal.scss index 8ecfbff3..6877e83e 100644 --- a/components/themes/normal.scss +++ b/src/themes/normal.scss @@ -78,6 +78,7 @@ $widgets-tooltip-marker-fill: $widgets-color-background !default; $widgets-axis-label: #8C8C8C !default; $widgets-axis-line: #E5E5E5 !default; $widgets-axis-grid: #F7F7F7 !default; +// CHECK 线粗细 默认 1 // 辅助标记 guide $widgets-guide-region-opacity: 0.1 !default; diff --git a/src/themes/normal.style.ts b/src/themes/normal.style.ts new file mode 100644 index 00000000..e893f5d0 --- /dev/null +++ b/src/themes/normal.style.ts @@ -0,0 +1 @@ +export default {"size-base":"4px","s0":0,"s1":"4px","s2":"8px","s3":"12px","s4":"16px","s5":"20px","s6":"24px","s7":"28px","s8":"32px","s9":"36px","s10":"40px","s11":"44px","s12":"48px","s13":"52px","s14":"56px","s15":"60px","s16":"64px","corner-radius-base":"4px","corner-radius-r0":"0px","corner-radius-r1":"4px","widgets-color-background":"#ffffff","widgets-color-layout-background":"#f7f7f7","widgets-color-blue":"#3f90ff","widgets-color-orange":"#fa8c15","widgets-color-red":"#e62412","widgets-color-green":"#15ad31","widgets-color-gray":"#e5e5e5","widgets-color-category-1":"#3f90ff","widgets-color-category-2":"#5ccdbb","widgets-color-category-3":"#facd4f","widgets-color-category-4":"#9979f2","widgets-color-category-5":"#006cd9","widgets-color-category-6":"#4ad051","widgets-color-category-7":"#5c60e6","widgets-color-category-8":"#cd5c97","widgets-color-category-9":"#52d7ff","widgets-color-category-10":"#fab34f","widgets-color-category-11":"#e65c5c","widgets-color-category-12":"#9b5ce6","widgets-color-linear-1":"#3f90ff","widgets-color-linear-2":"#529bff","widgets-color-linear-3":"#65a6ff","widgets-color-linear-4":"#78b1ff","widgets-color-linear-5":"#8cbcff","widgets-color-linear-6":"#9fc7ff","widgets-color-linear-7":"#b2d3ff","widgets-color-linear-8":"#c5ddff","widgets-color-linear-9":"#d6e7ff","widgets-color-linear-10":"#ebf3ff","widgets-color-text-1":"#262626","widgets-color-text-2":"#595959","widgets-color-text-3":"#8c8c8c","widgets-color-disable":"#bfbfbf","widgets-font-family-txd-m-number":"'TXDDINMediumNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-family-txd-r-number":"'TXDDINRegularNumber', 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif","widgets-font-size-1":"12px","widgets-font-size-2":"14px","widgets-font-size-3":"16px","widgets-font-size-4":"18px","widgets-font-size-5":"24px","widgets-font-size-6":"28px","widgets-font-size-7":"32px","widgets-legend-uncheck":"#bfbfbf","widgets-legend-text":"#262626","widgets-label-text":"#262626","widgets-tooltip-background":"#ffffff","widgets-tooltip-padding":"12px","widgets-tooltip-shadow":"0 1px 5px 0 rgba(0, 0, 0, 0.2)","widgets-tooltip-corner-radius":"4px","widgets-tooltip-cross-line":"#dddddd","widgets-tooltip-cross-react":"#ccd6ec","widgets-tooltip-cross-react-opacity":0.3,"widgets-tooltip-title":"#8c8c8c","widgets-tooltip-text":"#262626","widgets-tooltip-marker-fill":"#ffffff","widgets-axis-label":"#8c8c8c","widgets-axis-line":"#e5e5e5","widgets-axis-grid":"#f7f7f7","widgets-guide-region-opacity":0.1,"widgets-shape-area-opacity":0.1,"widgets-shape-interval-opacity":1,"widgets-container-background":"#ffffff","widgets-container-padding":"20px","widgets-container-mobile-padding":"12px","widgets-container-corner-radius":"4px","widgets-container-shadow":"none","widgets-container-title":"#262626","widgets-container-split-line":"#e5e5e5","widgets-map-area-bg":"#e5e5e5","widgets-map-area-border":"#ffffff","widgets-map-label":"#595959","widgets-circle-stroke-background":"#f7f7f7","widgets-circle-number":"currentColor","widgets-circle-stroke-width":"6px","widgets-sankey-edge":"#e5e5e5","widgets-sankey-node-text":"#8c8c8c","widgets-scrollbar-bg":"#ebecf0","widgets-scrollbar-thumb":"#c4c6cf"}; \ No newline at end of file diff --git a/src/themes/themeTools.ts b/src/themes/themeTools.ts new file mode 100644 index 00000000..58a88095 --- /dev/null +++ b/src/themes/themeTools.ts @@ -0,0 +1,644 @@ +import { registerTheme } from "@antv/g2/esm/core"; +import { isContrastColorWhite } from '@antv/g2/esm/util/color'; +import { createThemeByStyleSheet } from '@antv/g2/esm/theme/util/create-by-style-sheet'; +import { Types } from '../common/types'; +import normalStyle from './normal.style'; +import { merge, pxToNumber } from "../common/common"; +import { FullCrossName } from '../constants'; + +export interface Theme extends Partial { + name?: string; + category_12?: string[]; + linear_10?: string[]; + order_10?: string[]; + // [key: string]: number | string | string[]; +} + +// ---------------------- CSS ---------------------- +const widgetsThemeStyleId = 'widgets-theme-var'; + +function getStyleElement() { + let el = document.getElementById(widgetsThemeStyleId); + if (!el) { + el = document.createElement('style'); + el.setAttribute('id', widgetsThemeStyleId); + document.head.appendChild(el); + } + return el; +} + +export function setThemeStyle(css: string) { + const style = getStyleElement(); + style.innerText = css; +} + +export function convertCSS(theme: Theme) { + const varList = Object.keys(theme).map((key: keyof Theme) => `--${key}: ${theme[key]}`); + return `.${FullCrossName} {${varList.join(';')}}`; +} + +// ---------------------- JS ---------------------- + +/** + * 将主题包中横杠连接符变量克隆转为小驼峰写法 + * + * @param {Theme} themes 主题包 + * + * @return {Theme} themes + * */ +export function convertKey(themes: Theme) { + Object.keys(themes).forEach((key) => { + if (key.indexOf('-') > -1) { + const newKey = key.replace(/-(\w)/g, (all, letter) => { + return letter.toUpperCase(); + }); + // @ts-ignore + if (!themes[newKey]) { + // @ts-ignore + themes[newKey] = themes[key]; + } + } + }); + return themes; +} + +export function convertJsStyle(name: string, theme: Theme): Theme { + const result = { + name, + // 分类色阶 + category_12: [ + theme['widgets-color-category-1'], + theme['widgets-color-category-2'], + theme['widgets-color-category-3'], + theme['widgets-color-category-4'], + theme['widgets-color-category-5'], + theme['widgets-color-category-6'], + theme['widgets-color-category-7'], + theme['widgets-color-category-8'], + theme['widgets-color-category-9'], + theme['widgets-color-category-10'], + theme['widgets-color-category-11'], + theme['widgets-color-category-12'], + ], + // 连续色阶,比较接近的颜色会错开 + linear_10: [ + theme['widgets-color-linear-1'], + theme['widgets-color-linear-5'], + theme['widgets-color-linear-9'], + theme['widgets-color-linear-3'], + theme['widgets-color-linear-7'], + theme['widgets-color-linear-10'], + theme['widgets-color-linear-2'], + theme['widgets-color-linear-4'], + theme['widgets-color-linear-6'], + theme['widgets-color-linear-8'], + ], + // 顺序色阶,连续相似的颜色排列 + order_10: [ + theme['widgets-color-linear-1'], + theme['widgets-color-linear-2'], + theme['widgets-color-linear-3'], + theme['widgets-color-linear-4'], + theme['widgets-color-linear-5'], + theme['widgets-color-linear-6'], + theme['widgets-color-linear-7'], + theme['widgets-color-linear-8'], + theme['widgets-color-linear-9'], + theme['widgets-color-linear-10'], + ], + }; + Object.assign(result, theme); + + return result; +} + +const BLACK_COLORS_MAP = { + 100: '#000', + 95: '#0D0D0D', + 85: '#262626', + 65: '#595959', + 45: '#8C8C8C', + 25: '#BFBFBF', + 15: '#D9D9D9', + 6: '#F0F0F0', +}; + +const WHITE_COLORS_MAP = { + 100: '#FFFFFF', + 95: '#F2F2F2', + 85: '#D9D9D9', + 65: '#A6A6A6', + 45: '#737373', + 25: '#404040', + 15: '#262626', + 6: '#0F0F0F', +}; + +function getG2StyleSheet(theme: Theme): Types.StyleSheet { + const fontSize1 = pxToNumber(theme['widgets-font-size-1']); + const isDark = isContrastColorWhite(theme['widgets-color-background']); + + let BLACK_COLORS = BLACK_COLORS_MAP; + let WHITE_COLORS = WHITE_COLORS_MAP; + // 暗色模式下互换颜色表 + if (isDark) { + BLACK_COLORS = WHITE_COLORS_MAP; + WHITE_COLORS = BLACK_COLORS_MAP; + } + + const QUALITATIVE_10 = [ + theme['widgets-color-category-1'], + theme['widgets-color-category-2'], + theme['widgets-color-category-3'], + theme['widgets-color-category-4'], + theme['widgets-color-category-5'], + theme['widgets-color-category-6'], + theme['widgets-color-category-7'], + theme['widgets-color-category-8'], + theme['widgets-color-category-9'], + theme['widgets-color-category-10'], + ]; + + const QUALITATIVE_20 = [ + theme['widgets-color-category-1'], + theme['widgets-color-category-2'], + theme['widgets-color-category-3'], + theme['widgets-color-category-4'], + theme['widgets-color-category-5'], + theme['widgets-color-category-6'], + theme['widgets-color-category-7'], + theme['widgets-color-category-8'], + theme['widgets-color-category-9'], + theme['widgets-color-category-10'], + theme['widgets-color-category-11'], + theme['widgets-color-category-12'], + '#945FB9', + '#DECFEA', + '#FF9845', + '#FFE0C7', + '#1E9493', + '#BBDEDE', + '#FF99C3', + '#FFE0ED', + ]; + + return { + /** 图表背景色 */ + backgroundColor: 'transparent', + /** 主题色 */ + brandColor: QUALITATIVE_10[0], + /** 分类色板 1,在数据量小于等于 10 时使用 */ + paletteQualitative10: QUALITATIVE_10, + /** 分类色板 2,在数据量大于 10 时使用 */ + paletteQualitative20: QUALITATIVE_20, + /** 语义色 */ + paletteSemanticRed: theme['widgets-color-red'], + /** 语义色 */ + paletteSemanticGreen: theme['widgets-color-green'], + /** 语义色 */ + paletteSemanticYellow: theme['widgets-color-orange'], + /** 字体 */ + fontFamily: theme['widgets-font-family-txd-m-number'], + + // -------------------- 坐标轴 -------------------- + /** 坐标轴线颜色 */ + axisLineBorderColor: theme['widgets-axis-line'], + /** 坐标轴线粗细 */ + axisLineBorder: 1, + /** 坐标轴线 lineDash 设置 */ + axisLineDash: null, + + /** 坐标轴标题颜色 */ + axisTitleTextFillColor: theme['widgets-axis-label'], + /** 坐标轴标题文本字体大小 */ + axisTitleTextFontSize: fontSize1, + /** 坐标轴标题文本行高 */ + axisTitleTextLineHeight: fontSize1, + /** 坐标轴标题文本字体粗细 */ + axisTitleTextFontWeight: 'normal', + /** 坐标轴标题距离坐标轴文本的间距 */ + axisTitleSpacing: fontSize1, + + /** 坐标轴刻度线颜色 */ + axisTickLineBorderColor: theme['widgets-axis-line'], + /** 坐标轴刻度线长度 */ + axisTickLineLength: 4, + /** 坐标轴刻度线粗细 */ + axisTickLineBorder: 1, + + /** 坐标轴次刻度线颜色 */ + axisSubTickLineBorderColor: theme['widgets-axis-line'], + /** 坐标轴次刻度线长度 */ + axisSubTickLineLength: 2, + /** 坐标轴次刻度线粗细 */ + axisSubTickLineBorder: 1, + + /** 坐标轴刻度文本颜色 */ + axisLabelFillColor: theme['widgets-axis-label'], // BLACK_COLORS[45], + /** 坐标轴刻度文本字体大小 */ + axisLabelFontSize: fontSize1, + /** 坐标轴刻度文本行高 */ + axisLabelLineHeight: fontSize1, + /** 坐标轴刻度文本字体粗细 */ + axisLabelFontWeight: 'normal', + /** 坐标轴刻度文本距离坐标轴线的间距 */ + axisLabelOffset: fontSize1, // CHECK 8px 还是 12px + + /** 坐标轴网格线颜色 */ + axisGridBorderColor: theme['widgets-axis-grid'], + /** 坐标轴网格线粗细 */ + axisGridBorder: 1, + /** 坐标轴网格线虚线设置 */ + axisGridLineDash: null, + + // -------------------- 图例 -------------------- + /** 图例标题颜色 */ + legendTitleTextFillColor: theme['widgets-legend-text'], + /** 图例标题文本字体大小 */ + legendTitleTextFontSize: fontSize1, + /** 图例标题文本行高 */ + legendTitleTextLineHeight: fontSize1 * 1.5, + /** 图例标题文本字体粗细 */ + legendTitleTextFontWeight: 'normal', + + /** 图例 marker 颜色 */ + legendMarkerColor: QUALITATIVE_10[0], + /** 图例 marker 距离图例文本的间距 */ + legendMarkerSpacing: fontSize1 / 3, + /** 图例 marker 默认半径大小 */ + legendMarkerSize: fontSize1 / 3, + /** 图例 'circle' marker 半径 */ + legendCircleMarkerSize: fontSize1 / 3, + /** 图例 'square' marker 半径 */ + legendSquareMarkerSize: fontSize1 / 3, + /** 图例 'line' marker 半径 */ + legendLineMarkerSize: fontSize1 / 3, // CHECK 图例项标记样式 + + /** 图例项文本颜色 */ + legendItemNameFillColor: theme['widgets-legend-text'], + /** 图例项文本字体大小 */ + legendItemNameFontSize: fontSize1, + /** 图例项文本行高 */ + legendItemNameLineHeight: fontSize1, + /** 图例项粗细 */ + legendItemNameFontWeight: 'normal', + /** 图例项之间的水平间距 */ + legendItemSpacing: fontSize1, + /** 图例项垂直方向的间隔 */ + legendItemMarginBottom: fontSize1, + /** 图例与图表绘图区域的偏移距离 */ + legendPadding: [8, 8, 8, 8], + + /** 连续图例滑块填充色 */ + sliderRailFillColor: BLACK_COLORS[15], + /** 连续图例滑块边框粗细 */ + sliderRailBorder: 0, + /** 连续图例滑块边框颜色 */ + sliderRailBorderColor: null, + /** 连续图例滑块宽度 */ + sliderRailWidth: 100, + /** 连续图例滑块高度 */ + sliderRailHeight: 12, + + /** 连续图例文本颜色 */ + sliderLabelTextFillColor: theme['widgets-legend-text'], + /** 连续图例文本字体大小 */ + sliderLabelTextFontSize: fontSize1, + /** 连续图例文本行高 */ + sliderLabelTextLineHeight: fontSize1, + /** 连续图例文本字体粗细 */ + sliderLabelTextFontWeight: 'normal', + + /** 连续图例滑块颜色 */ + sliderHandlerFillColor: BLACK_COLORS[6], + /** 连续图例滑块宽度 */ + sliderHandlerWidth: 10, + /** 连续图例滑块高度 */ + sliderHandlerHeight: 14, + /** 连续图例滑块边框粗细 */ + sliderHandlerBorder: 1, + /** 连续图例滑块边框颜色 */ + sliderHandlerBorderColor: BLACK_COLORS[25], + + // -------------------- Annotation,图形标注 -------------------- + /** arc 图形标注描边颜色 */ + annotationArcBorderColor: BLACK_COLORS[15], + /** arc 图形标注粗细 */ + annotationArcBorder: 1, + + /** line 图形标注颜色 */ + annotationLineBorderColor: BLACK_COLORS[25], + /** line 图形标注粗细 */ + annotationLineBorder: 1, + /** lube 图形标注的虚线间隔 */ + annotationLineDash: null, + + /** text 图形标注文本颜色 */ + annotationTextFillColor: BLACK_COLORS[65], + /** text 图形标注文本字体大小 */ + annotationTextFontSize: 12, + /** text 图形标注文本行高 */ + annotationTextLineHeight: 12, + /** text 图形标注文本字体粗细 */ + annotationTextFontWeight: 'normal', + /** text 图形标注文本边框颜色 */ + annotationTextBorderColor: null, + /** text 图形标注文本边框粗细 */ + annotationTextBorder: 0, + + /** region 图形标注填充颜色 */ + annotationRegionFillColor: BLACK_COLORS[100], + /** region 图形标注填充颜色透明色 */ + annotationRegionFillOpacity: theme['widgets-guide-region-opacity'], + /** region 图形标注描边粗细 */ + annotationRegionBorder: 0, + /** region 图形标注描边颜色 */ + annotationRegionBorderColor: null, + + /** dataMarker 图形标注线的长度 */ + annotationDataMarkerLineLength: 16, + + // -------------------- Tooltip -------------------- + /** tooltip crosshairs 辅助线颜色 */ + tooltipCrosshairsBorderColor: theme['widgets-tooltip-cross-line'], + /** tooltip crosshairs 辅助线粗细 */ + tooltipCrosshairsBorder: 1, + /** tooltip crosshairs 辅助线虚线间隔 */ + tooltipCrosshairsLineDash: null, + + /** tooltip 内容框背景色 */ + tooltipContainerFillColor: theme['widgets-tooltip-background'], + tooltipContainerFillOpacity: 1, + /** tooltip 内容框阴影 */ + tooltipContainerShadow: theme['widgets-tooltip-shadow'], + /** tooltip 内容框圆角 */ + tooltipContainerBorderRadius: pxToNumber(theme['widgets-tooltip-corner-radius']), + + /** tooltip 文本颜色 */ + tooltipTextFillColor: theme['widgets-tooltip-text'], + /** tooltip 文本字体大小 */ + tooltipTextFontSize: fontSize1, + /** tooltip 文本行高 */ + tooltipTextLineHeight: fontSize1, + /** tooltip 文本字体粗细 */ + tooltipTextFontWeight: 'normal', + + // -------------------- Geometry labels -------------------- + /** Geometry label 文本颜色 */ + labelFillColor: theme['widgets-label-text'], + labelFillColorDark: theme['widgets-label-text'], + labelFillColorLight: '#ffffff', + /** Geometry label 文本字体大小 */ + labelFontSize: fontSize1, + /** Geometry label 文本行高 */ + labelLineHeight: fontSize1, + /** Geometry label 文本字体粗细 */ + labelFontWeight: 'normal', + /** Geometry label 文本描边颜色 */ + labelBorderColor: null, + /** Geometry label 文本描边粗细 */ + labelBorder: 0, + + /** Geometry innerLabel 文本颜色 */ + innerLabelFillColor: WHITE_COLORS[100], // CHECK + /** Geometry innerLabel 文本字体大小 */ + innerLabelFontSize: fontSize1, + /** Geometry innerLabel 文本行高 */ + innerLabelLineHeight: fontSize1, + /** Geometry innerLabel 文本字体粗细 */ + innerLabelFontWeight: 'normal', + /** Geometry innerLabel 文本描边颜色 */ + innerLabelBorderColor: null, + /** Geometry innerLabel 文本描边粗细 */ + innerLabelBorder: 0, + + /** Geometry label 文本连接线粗细 */ + labelLineBorder: 1, + /** Geometry label 文本连接线颜色 */ + labelLineBorderColor: theme['widgets-label-text'], // CHECK + + // -------------------- Geometry 图形样式-------------------- + /** 点图填充颜色 */ + pointFillColor: QUALITATIVE_10[0], + /** 点图填充颜色透明度 */ + pointFillOpacity: 0.95, + /** 点图大小 */ + pointSize: 4, + /** 点图描边粗细 */ + pointBorder: 1, + /** 点图描边颜色 */ + pointBorderColor: WHITE_COLORS[100], + /** 点图描边透明度 */ + pointBorderOpacity: 1, + + /** 点图 active 状态下描边颜色 */ + pointActiveBorderColor: BLACK_COLORS[100], + + /** 点图 selected 状态下描边粗细 */ + pointSelectedBorder: 2, + /** 点图 selected 状态下描边颜色 */ + pointSelectedBorderColor: BLACK_COLORS[100], + + /** 点图 inactive 状态下填充颜色透明度 */ + pointInactiveFillOpacity: 0.3, + /** 点图 inactive 状态下描边透明度 */ + pointInactiveBorderOpacity: 0.3, + + /** 空心点图大小 */ + hollowPointSize: 4, + /** 空心点图描边粗细 */ + hollowPointBorder: 1, + /** 空心点图描边颜色 */ + hollowPointBorderColor: QUALITATIVE_10[0], + /** 空心点图描边透明度 */ + hollowPointBorderOpacity: 0.95, + hollowPointFillColor: WHITE_COLORS[100], + + /** 空心点图 active 状态下描边粗细 */ + hollowPointActiveBorder: 1, + /** 空心点图 active 状态下描边颜色 */ + hollowPointActiveBorderColor: BLACK_COLORS[100], + /** 空心点图 active 状态下描边透明度 */ + hollowPointActiveBorderOpacity: 1, + + /** 空心点图 selected 状态下描边粗细 */ + hollowPointSelectedBorder: 2, + /** 空心点图 selected 状态下描边颜色 */ + hollowPointSelectedBorderColor: BLACK_COLORS[100], + /** 空心点图 selected 状态下描边透明度 */ + hollowPointSelectedBorderOpacity: 1, + + /** 空心点图 inactive 状态下描边透明度 */ + hollowPointInactiveBorderOpacity: 0.3, + + /** 线图粗细 */ + lineBorder: 2, + /** 线图颜色 */ + lineBorderColor: QUALITATIVE_10[0], + /** 线图透明度 */ + lineBorderOpacity: 1, + + /** 线图 Active 状态下粗细 */ + lineActiveBorder: 3, + + /** 线图 selected 状态下粗细 */ + lineSelectedBorder: 3, + + /** 线图 inactive 状态下透明度 */ + lineInactiveBorderOpacity: 0.3, + + /** area 填充颜色 */ + areaFillColor: QUALITATIVE_10[0], + /** area 填充透明度 */ + areaFillOpacity: theme['widgets-shape-area-opacity'], + + /** area 在 active 状态下的填充透明度 */ + areaActiveFillColor: QUALITATIVE_10[0], + areaActiveFillOpacity: 0.5, + + /** area 在 selected 状态下的填充透明度 */ + areaSelectedFillColor: QUALITATIVE_10[0], + areaSelectedFillOpacity: 0.5, + + /** area inactive 状态下填充透明度 */ + areaInactiveFillOpacity: 0.3, + + /** hollowArea 颜色 */ + hollowAreaBorderColor: QUALITATIVE_10[0], + /** hollowArea 边框粗细 */ + hollowAreaBorder: 2, + /** hollowArea 边框透明度 */ + hollowAreaBorderOpacity: 1, + + /** hollowArea active 状态下的边框粗细 */ + hollowAreaActiveBorder: 3, + hollowAreaActiveBorderColor: BLACK_COLORS[100], + + /** hollowArea selected 状态下的边框粗细 */ + hollowAreaSelectedBorder: 3, + hollowAreaSelectedBorderColor: BLACK_COLORS[100], + + /** hollowArea inactive 状态下的边框透明度 */ + hollowAreaInactiveBorderOpacity: 0.3, + + /** interval 填充颜色 */ + intervalFillColor: QUALITATIVE_10[0], + /** interval 填充透明度 */ + intervalFillOpacity: theme['widgets-shape-interval-opacity'], + + /** interval active 状态下边框粗细 */ + intervalActiveBorder: 1, + /** interval active 状态下边框颜色 */ + intervalActiveBorderColor: BLACK_COLORS[100], + intervalActiveBorderOpacity: 1, + + /** interval selected 状态下边框粗细 */ + intervalSelectedBorder: 2, + /** interval selected 状态下边框颜色 */ + intervalSelectedBorderColor: BLACK_COLORS[100], + /** interval selected 状态下边框透明度 */ + intervalSelectedBorderOpacity: 1, + + /** interval inactive 状态下边框透明度 */ + intervalInactiveBorderOpacity: 0.3, + /** interval inactive 状态下填充透明度 */ + intervalInactiveFillOpacity: 0.3, + + /** interval 边框粗细 */ + hollowIntervalBorder: 2, + /** hollowInterval 边框颜色 */ + hollowIntervalBorderColor: QUALITATIVE_10[0], + /** hollowInterval 边框透明度 */ + hollowIntervalBorderOpacity: 1, + hollowIntervalFillColor: theme['widgets-color-background'], // WHITE_COLORS[100], + + /** hollowInterval active 状态下边框粗细 */ + hollowIntervalActiveBorder: 2, + /** hollowInterval active 状态下边框颜色 */ + hollowIntervalActiveBorderColor: BLACK_COLORS[100], + + /** hollowInterval selected 状态下边框粗细 */ + hollowIntervalSelectedBorder: 3, + /** hollowInterval selected 状态下边框颜色 */ + hollowIntervalSelectedBorderColor: BLACK_COLORS[100], + /** hollowInterval selected 状态下边框透明度 */ + hollowIntervalSelectedBorderOpacity: 1, + + /** hollowInterval inactive 状态下边框透明度 */ + hollowIntervalInactiveBorderOpacity: 0.3, + }; +} + +const legendKeys = ['common', 'top', 'right', 'bottom', 'left']; + +export function setG2Theme(theme: Theme) { + const g2StyleSheet = getG2StyleSheet(theme); + + const g2Theme = createThemeByStyleSheet(g2StyleSheet); + + // g2Theme.maxColumnWidth = 36; + const baseFontSize = theme['widgets-font-size-1']; + const baseFontSizeNum = pxToNumber(theme['widgets-font-size-1']); + + // legend 样式 + const legendStyle = g2Theme.components.legend; + legendKeys.forEach((key) => { + const style = legendStyle[key]; + merge(style, { + // 关闭默认主题中的最大宽度限制 + maxItemWidth: null, + // 这里设置 itemValue 会导致一直显示 value,所以放到 legend 中配置 + itemStates: { + active: { + nameStyle: { + opacity: 0.8, + }, + valueStyle: { + opacity: 0.8, + }, + }, + unchecked: { + nameStyle: { + fill: theme['widgets-legend-uncheck'], + }, + valueStyle: { + fill: theme['widgets-legend-uncheck'], + }, + }, + }, + }) + }); + + // tooltip 样式 + const tooltipStyle = g2Theme.components.tooltip.domStyles; + Object.assign(tooltipStyle['g2-tooltip'], { + padding: `0 ${baseFontSize} 0 ${baseFontSize}`, + }); + Object.assign(tooltipStyle['g2-tooltip-title'], { + marginBottom: baseFontSize, + marginTop: baseFontSize, + }); + Object.assign(tooltipStyle['g2-tooltip-list-item'], { + marginBottom: baseFontSize, + marginTop: baseFontSize, + }); + Object.assign(tooltipStyle['g2-tooltip-marker'], { + width: `${baseFontSizeNum / 2}px`, + height: `${baseFontSizeNum / 2}px`, + marginRight: `${baseFontSizeNum / 3}px`, + }); + Object.assign(tooltipStyle['g2-tooltip-value'], { + marginLeft: `${2 * baseFontSizeNum / 3}px`, + }); + + // slider 样式 + const sliderStyle = g2Theme.components.slider.common; + const p = baseFontSizeNum * 2 / 3; + sliderStyle.padding = [baseFontSizeNum, p, 0, 0]; + sliderStyle.height = 3 * baseFontSizeNum; + sliderStyle.textStyle = { + opacity: 0, + }; + + registerTheme('default', g2Theme); +} diff --git a/components/track.js b/src/track.ts similarity index 100% rename from components/track.js rename to src/track.ts diff --git a/stories/chart.bar.stories.js b/stories/chart.bar.stories.js index 09c173ca..63b44b02 100644 --- a/stories/chart.bar.stories.js +++ b/stories/chart.bar.stories.js @@ -73,6 +73,7 @@ const yuData = data.slice(0, 1); yuData[0].data = yuData[0].data.slice(0, 5).sort((a, b) => { return a[1] - b[1]; }); +// console.log(yuData) stories.add('玉玦图', () => ( ( /> )); + + +let data2 = [ + { + "name":"柱1", + "facet": '分面1', + "data":[] + }, + { + "name":"柱2", + "facet": '分面2', + "data":[] + }, + { + "name":"柱3", + "facet": '分面1', + "data":[] + }, + { + "name":"柱4", + "facet": '分面2', + "data":[] + } +]; +for (let i = 0; i < 10; i++) { + const name = i + '-' + i; + data2[0].data.push([name, Math.random() * 100 + 100]); + data2[1].data.push([name, Math.random() * 100 + 100]); + data2[2].data.push([name, Math.random() * 100 + 100]); + data2[3].data.push([name, Math.random() * 100 + 100]); +} +let options1 = { + padding: [40, 24, 20, 44], + // colors: [COLORS.widgetsColorCategory1, COLORS.widgetsColorCategory1, COLORS.widgetsColorCategory3, COLORS.widgetsColorCategory3], + marginRatio: 0.05, + facet: true +}; +stories.add('镜面柱图', () => ( + + + +)); + + +let data3 = [ + { + "name":"柱1", + "dodge": '分组1', + "data":[] + }, + { + "name":"柱2", + "dodge": '分组2', + "data":[] + }, + { + "name":"柱3", + "dodge": '分组2', + "data":[] + }, + { + "name":"柱4", + "dodge": '分组2', + "data":[] + }, +]; +for (let i = 0; i < 10; i++) { + const name = i + '-' + i; + data3[0].data.push([name, Math.random() * 100 + 100]); + data3[1].data.push([name, Math.random() * 100 + 100]); + data3[2].data.push([name, Math.random() * 100 + 100]); + data3[3].data.push([name, Math.random() * 100 + 100]); +} +let options2 = { + dodgeStack: true +}; +stories.add('分组堆叠图', () => ( + + + +)); diff --git a/stories/chart.funnel.stories.js b/stories/chart.funnel.stories.js index 334d8048..6f47833f 100644 --- a/stories/chart.funnel.stories.js +++ b/stories/chart.funnel.stories.js @@ -3,18 +3,61 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; +import { withKnobs, select } from "@storybook/addon-knobs"; -import { Wfunnel, Wcontainer } from '@alicloud/cloud-charts'; +import { Wcontainer, Wfunnel } from '@alicloud/cloud-charts'; const data = [ { - "name":"柱1", - "data":[["一", 100], ["二", 94], ["三", 86], ["四", 71], ["五", 67], ["六", 54]] + "name":"流量转化", + "data":[["浏览网站",50000],["放入购物车",35000],["生成订单",25000],["支付订单",15000],["完成交易",8000]] } ]; const stories = storiesOf('Wfunnel', module); +stories.addDecorator(withKnobs); + +stories.add('漏斗图', () => ( + +)); + +const directionData = [ + { + "name":"柱1", + "data":[["一", 100], ["二", 75], ["三", 50], ["四", 20], ["五", 10]] + } +]; + +const directionData_2 = [ + { + "name":"柱1", + "data":[["一", 100], ["二", 40], ["三", 20], ["四", 15], ["五", 10]] + } +]; + +class NewData extends React.Component { + state = { + data: directionData + } + componentDidMount() { + setInterval(() => { + let t = Date.now(); + + this.setState({ + data: directionData_2, + }) + }, 2000); + } + + render(){ + return ( + + + + ); + } +} stories.add('纵向-左侧', () => ( ( config={{ direction: 'vertical', align: 'left', + label: true, }} - data={data} + data={directionData} /> )); stories.add('纵向-中间', () => ( )); @@ -51,8 +94,9 @@ stories.add('纵向-右侧', () => ( config={{ direction: 'vertical', align: 'right', + label: true, }} - data={data} + data={directionData} /> )); @@ -65,8 +109,9 @@ stories.add('横向-顶部', () => ( config={{ direction: 'horizontal', align: 'top', + label: true, }} - data={data} + data={directionData} /> )); @@ -79,8 +124,9 @@ stories.add('横向-中间', () => ( padding: [20, 20, 20, 20], direction: 'horizontal', align: 'center', + label: true, }} - data={data} + data={directionData} /> )); @@ -92,8 +138,13 @@ stories.add('横向-底部', () => ( config={{ direction: 'horizontal', align: 'bottom', + label: true, }} - data={data} + data={directionData} /> )); + +stories.add('动态数据', () => ( + +)); diff --git a/stories/chart.heatmap.stories.js b/stories/chart.heatMap.stories.js similarity index 98% rename from stories/chart.heatmap.stories.js rename to stories/chart.heatMap.stories.js index c3fa5de4..12247dba 100644 --- a/stories/chart.heatmap.stories.js +++ b/stories/chart.heatMap.stories.js @@ -213,7 +213,7 @@ const timeStatusConfig = { tooltip: { // tooltip 开头内容,这里展示完整的时间戳 nameFormatter(name, raw, i, arr) { - const data = arr[i].point._origin; + const data = arr[i].data; return data.extra.time; }, valueFormatter(v) { @@ -223,7 +223,7 @@ const timeStatusConfig = { return `${item.time}: ${item.status}`; }).join('
    '); - return `
    详情:
    ${list}`; + return `详情:
    ${list}`; } return v; } diff --git a/stories/chart.histogram.stories.js b/stories/chart.histogram.stories.js index 20f001a1..e97958aa 100644 --- a/stories/chart.histogram.stories.js +++ b/stories/chart.histogram.stories.js @@ -1,22 +1,67 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; +import { withKnobs, select } from "@storybook/addon-knobs"; import { Whistogram, Wcontainer } from '@alicloud/cloud-charts'; -const data = [{"name":"Ideal", visible: false, "data":[61.4,59.2,60.9,62.4,61.3,62.4,61.2,62.2,61.8,61.7,61.8,61.4,61.7,61.6,61.1,62.6,62.3,62.4,61,62.5,62.1,63.8,62.7,62,62,60.6,61.5,62.3,63,62.6,62.9,61.4,61.3,62.2,60.1,62.3,64,61.8,62.1,61.7,61.5,61.8,62.4,61.3,61.2,61.6,62.8,61.7,62.4,61.7,62.1,61.1,61.7,62.3,62.6,61.6,61.4,61.2,61,61.7,58.6,61.1,60.7,61.5,61.9,63.3,61.6,61.1,61.4,62.4,61.4,62.3,61.5,62.1,62.4,60.7,61.3,62,61.5,61.3,61.2,61,62,61.9,62.1,62.3,62.4,61.4,60.5,61.6,61.4,62,61.4,62.4,62.5,62.9,60.8,62.6,61.9,62.3,62.6,62.1,61.9,60.9,60.9,62.4,62.6,61.5,60.9,61.2,61.5,61.5,62.2,61,62.3,62.2,61.9,61.9,62.5,61.8,61.9,62.8,60.7,61.6,60.7,62.6,61.8,62.7,61.3,62.2,60.2,61.5,62.4,61.9,61.5,61.7,62.7,62.7,60.7,62.2,59.5,62.5,61.5,61.7,61.3,61.6,60.8,62,61.8,61.1,62.1,60.1,60.7,62,60.8,61.2,62.9,62.7,62.5,62.3,61,62.6,61.4,61.8,62.3,63,61.9,61.1,61.9,62.6,62.6,61,61.9,62.6,60.3,62.1,62,61.8,62.1,60.4,61.4,61.7,62.3,62.1,60.4,62.3,61.8,62.4,61.3,62.3,62.7,61.2,62.5,60.9,62.1,61.4,62.1,61.8,62.4,60,62.3,62,61.4,61,61.2,61.6,61.6,62,62.2,61.7,61.7,61.7,61.4,61,61.6,62.5,63,61.4,62,62.3,61.8,60.9,60.6,60.9,61.5,62.3,62.5,60.9,62.6,62.3,61.4,62,61.7,62.7,61.3,61.3,61.2,62.3,62.6,61.8,62.1,62.8,62,62,62.8,61.9,62.2,62.2,61.3,61.6,61.8,61.1,61.7,60.8,61.2,62.2,61.2,61.1,61.1,62.6,62.3,62.5,63,62.7,61.8,61.8,61.6,61.9,61.4,61.3,61.3,60.8,62.6,61.6,62.4,61.6,61.8,61.9,62.1,62.6,61.6,62.3,62.7,62.2,62.3,61.9,59.9,62,61.4,61.2,61.1,62,62.4,61.3,62.3,62,61.5,61.7,62.4,61.3,61.3,61.4,60.8,61.1,61.5,61.7,62,61.8,62.3,61.6,61.3,61.6,62,61.4,62.1,60,60.8,61.3,62.3,62.2,61.8,61.2,62.7,61.8,61.5,60.7,62,62,61.1,60.7,59.8,60.8,61.1,61.2,61.8,61.7,62.3,62,60.5,61.2,62.1,62,61.7,62,61.8,62.6,61.6,61,62.1,62.2,61.9,62.1,61.6,62.2,61.6,61.7,60.5,62.4,62.2,60.9,62.3,61.8,60.9,61.4,61.8,61.9,61.3,62,60.1,61.6,62.7,61.1,61.6,61.1,61.9,61.7,61.3,61.6,60.8,61.6,61.6,63.3,62.6,61.9,62.2,61.8,62,61.5,61.9,61.5,62.2,62.3,61.5,62.1,61.1,61.9,62.2,61.6,60.7,61.2,63,62,61.6,62.3,62,61.6,62.3,61,61.7,62.1,62.4,61.1,62.6,62.3,61.9,61.7,62.5,62,62.2,62.1,62.5,60.2,61.8,62.4,61.7,62.5,61.5,60.6,60.6,62,59,61.8,62.3,62.1,62.5,62.5,61.2,61.5,62.2,60.9,61.7,61.5,62.1,63,61.8,61.5,61.3,62.2,62.2,62.4,62.3,61.9,61.6,61.4,61.9,61.7,62.6,61.7,61.3,62,61.4,61.1,60.2,61.9,61.3,62.3,62.3,62.7,62,61.3,62.5,62.9,62,61.2,62.4,61.3,61.9,61.7,62.3,61.4,61.8,62.6,61.8,62.4,61.7,61.9,59.8,62,62.2,61.6,61.6,62.7,63.2,60.9,61.1,61.9,62.4,60.8,61.8,62.1,61.9,62,61,61.2,62.2,60.7,61.7,62.2,61.9,61.4,62.3,62.9,61.1,62,62.7,62.6,61.8,60.2,61.2,62.8,60.5,62.3,63,61.8,62.1,61.7,60.4,62.5,62.2,62.2,61.7,60.8,61.3,61.2,60.9,62,62.1,62.3,61.4,61.7,62,62.3,60.9,62.6,62,62,61.7,60.8,62,61.9,61.4,61.2,61.8,61.1,61.3,61.6,61.7,62.4,61.8,62.4,60.2,61.2,60.8,62.7,61.6,61,62,61.6,61.8,61.5,61.3,61.2,60.2,62,61.7,61.7,62.6,62.2,62.4,62.4,62.6,61.3,61.7,62.9,61,62,61.7,61.9,62.5,61.3,62.2,61.1,61.9,62.1,62.5,61,61.1,61.4,62.4,61.8,60.3,61.9,61.4,62.1,61.9,61.3,62,61.3,61.8,62,61.8,62,62,61.8,62.7,60.9,61.4,60.1,61.9,61,61.7,61.1,61.8,61.4,61.2,62,62.8,61.3,61.7,62,62.6,60.8,62,61.8,61.8,62,60.3,61.2,60.7,62.3,62.1,62,61.9,60.5,61.2,61.8,61.9,62.1,62.2,61.8,60.8,62,61.9,61.9,61.1,60.8,62.2,61.5,60.5,62.6,62.2,61.1,62.1,61.3,61.5,62.4,62.2,62.4,62,61.9,62.1,62.3,62.3,61.9,62.6,61.7,62.2,61.3,61.5,60.3,62.5,62.4,60.2,62.5,62.2,61.2,62.9,62.8,61.6,62.2,61.5,62.7,61.7,62.5,61.5,61.9,62.8,61.1,62,61.4,61.5,61.6,62.7,62.1,60.9,60.9,61,62.1,60.3,62.6,62.1,61.9,61.9,61.1,61.4,61.3,62,61.8,61.5,61.6,61.7,61,62.4,60.5,62,61.7,61.5,61.9,61.8,58.8,62.1,61.7,62.4,61.7,62.2,61.6,61.2,61.9,62.7,60.9,61.1,63,62.2,62.7,62.6,60.7,62,62.8,61.4,61.2,61.3,61.4,61.7,61.9,60.5,61,60.7,63,62,62,61,62.2,62.1,62.2,62.7,61.6,62.6,62.2,61.1,62.1,62.2,61.2,62.2,62,60.3,63]},{"name":"Good","data":[64,63.6,63.5,56.9,63.8,58,63.8,64.3,60,57.8,63.8,60.3,63.8,63.9,63.5,64.1,63.9,63,63.4,63.6,63.1,65,58.7,62.8,63.3,65.5,63.5,64.3,63.8,58.2,63.2,58.9,64.1,63.2,63.7,61.8,57.8,63.3,63.5,58.2,63.6,64.3,62.3,63.9,63.1,58.7,63.4,63.3,60.4,63.2,63.1,57.9,59.2,59.2,63.1,63.5,63.8,63.7,63.7,60.5,63.7,58.2,63.8,64.2,63.6,63.2,64.2,57.6,63.7,63.5,56.7,64.8,64.2,58.4,64.3,61.2,63.8,63.9,63.1,63.3,59.2,62.6,57.2,57.4,63.6,63.7,57.6,58.8,63.9,63.5,59.4,58.9,58.9,56.9,59.8,63.5,60.1,60.1,64,62.7,63.6,63.6,64.2,63.2,61.3,63.8,58.5,59,64.2,63.6,63.6,61.8,63,64.2,63.2,61.1,63.7,63.8,63.8,63.4,63.8,56.3,63.7,57.9,63.2,64.1,63.3,63.7,64.6,60.2,62.7,63.9,64.3,63.3,63.8,64.4,62.6,63.7,58.6,65.8,59.2,57.9,63.8,64.2,59.4,63.7,64.2,63.7,62.5,60.6,63.3,63.5,63.8,62.3,59.6,63.9,61.8,63.5,63.6,63.2,63.9,62.4,57.8,58.5,57.8,63.3,60.8,60.2,63.3,63.7,57.9,60.9,57.3,57.8,63.6,62.9,57.8,63.1,61.3,63.3,61.4,63.4,63.7]},{"name":"Premium","data":[61.4,62.5,62.5,61.1,60.2,61.2,62,61.5,61.4,59.1,59.3,61.2,61.9,62.2,62.9,61.2,62.2,60.8,60.9,62.9,59.5,61.9,59.2,58.8,61,61.1,61.1,61.4,61.5,61.7,59.3,61.7,63,61.7,62.5,62,61.5,62.7,62.4,61.3,60.3,61.3,61.4,60.1,59.1,59.5,59.8,61.1,61.5,61,62.8,62,58.8,62,61.2,62.4,61.2,59.9,59.8,62.7,59.6,62.6,62.9,62.6,60.6,60.8,59.1,62.4,62.5,60.7,62.4,59.9,62.1,61.6,62.6,58.6,59.7,61.2,62.6,61.6,60.1,60.5,61.8,62.4,62.3,60.6,62.3,58,62.1,60.2,62.8,62.5,61,60.7,60.5,62.3,58.8,61.9,61.8,61,62.7,63,62.5,61.7,61.4,60.5,62.5,61.6,62.3,62.6,61.5,62.4,61.1,61.9,59.3,61.1,62.2,61.9,61.9,62.6,63,61.6,59.7,61.2,62.1,62.4,61.3,62.2,62.5,62.8,60.7,62.7,61.5,62.8,62.5,58.2,62.3,62.7,61.8,62.5,61.9,61.1,62.3,60.3,62.6,62.7,61.8,61.2,62.7,61.2,61.9,59.6,62.4,62.2,59.3,62.6,62.1,62.3,61.3,62.2,62,61.5,60.1,60.1,61.5,58.4,60.1,62.3,62.7,60.8,60.5,60.6,63,62,61.5,58.4,61.6,61.8,62.8,59.9,58.8,59.9,62.1,62.6,62.6,60.8,62.5,61.4,62.6,60.4,61.8,59.3,61,60.6,61.2,62.6,61.9,60.9,59,62.1,61.9,61.5,61.6,58.4,61,61,60.5,59.9,61.6,59.5,62.4,61.8,62.2,62.9,58.8,62.3,62,60.5,62.4,60.3,61.2,59.6,60.6,59.5,60.5,62.4,62,62.8,62.3,59.4,61.1,61.6,59.8,60.5,61.3,62,62.5,61.2,60.2,59.9,59.8,62.5,61.3,60.3,62.6,61.8,60.9,61.1,61.1,61.6,61.8,59.5,61.5,59.4,61.3,61.7,61,60.1,60.8,60.4,61.2,61.5,61.2,62.5,62.1,60.4,61.5,61.3,62.4,58.8,62.1,60.1,62,60.3,61.4,61.9,59.8,62.8,59.3,61.9,61.1,60.2,62.5,60.2,60.1,61,61.8,60.5,59.6,62.1,60.9,61.7,60.9,61,62,62.4,62.6,60.5,61.3,61.5,61.9,61.2,62.5,61.1,62.2,62.8,62.2,62.4,61.3,60.8,60.9,61.3,62.9,62,61.8,62.4,60.1,59.3,58.4,60.7,61.4,60.5,62,59.2,61.7,62.6,63,61.1,62.4,62.2,62.4,59.1,60.4,60.9,59.6,58.8,62.1,61,59.5,61.7,62.2,60.3,62.6,62.1,60.1,60.5,61,62,60.6,61.4,62.6,61.3,60.2,62.2,58,61.2,60.3,62.3,60.7,61.5,63,61.3,59.5,61.7,61.2,61.5,61.5,60.6,58.3,61.5,59.2,61.4,62,63,62,61.6,60.9,61.1,59.5,62.8,60.7,62.6,61,62,62.1,61.3,61.9,62.7,61.3,61.3,62.2,61.8,61.1,62.1,61.9,62.7,62,61.4,61.3,60.5,61.1,62.9,62.4,61.3,60.5,59.7,60.3,61.9,60.7,59.6,60.1,62.2,62.9,60.5,61.8,60.5,63,61.2,59.1,62.1,61.2,62.7,62.2,60.7,61.8,62.2,62.3,62.3,61.3,63,62.3,59.3,62.2,62.9,60.2,61.2,61.5,59.6,59.9,62.6,62.8,59.7,62.3,61,63,58.9,61.8,62.6,61.1,62.1,61.3,60.9,61.3,58.6,62.4,59.6,61.3,59.7,60.8,60,61.9,62.6,61.1,62.3,59,60.3,62.1,61,60.2,61.9,61.2,60.8,62,61.7,61.9,62.1,58.2,62,62.6,62.2,60,62.9,61.7,62.8,62.3,62.6,62.7,62.5,62.7,62,60.1,61.4,59.6,60.1,62.6,63,61.4,59.4,62.8,61.3,61,62.7,61.9,63,61.2,61.3,62.4,60.2,61.9,62.7,60.2,61.9,62.8,62.3,62.2,60.6,62.1,60.7,59.8,60.9,59.2,62.3,61.4,60.9,63,61.5,60.3]},{"name":"Very-Good","data":[62.9,62.3,63.4,62.1,60.7,61.7,58.1,62.2,60.5,61.5,63,63,60.4,59.6,59.4,63.1,63.4,63.1,61.4,62.9,59.6,62.7,61.9,59.3,61.5,62.4,61.2,58.6,62.3,63.3,63.2,62.6,61.2,60.2,63,63.7,60.8,63.4,62.7,62.8,60.9,61.5,58.8,62.8,62.7,62.9,62.4,60.9,62.9,63.5,63.2,62.8,62.1,63.4,60.3,62.8,62.9,58.2,61.8,61.1,63.2,62.7,59.8,62.4,61.4,61.9,61.1,61.4,63.6,62.9,62.6,61.9,60,62.7,60.9,62.4,62.1,60.7,61.6,63.4,62.9,61.9,62,62.2,62.2,63.2,63,61,62.2,62.9,62.5,63.6,59.9,61.1,62.2,62.5,60.3,60.2,60.2,61.7,63.3,62.9,62.3,63.1,61.8,62.5,62.7,63,61.8,62.9,60.5,62.6,61.2,63.3,61.1,62.8,62.6,61.6,62.3,60.4,62.9,62,60.4,61,62.1,61.9,60.9,62.2,64.2,62.4,60.4,61.2,63.2,62.8,62.1,59.2,62.4,60.7,62.5,64,63.3,60.7,62.7,60.6,60.1,61.9,62.4,61.7,63.5,59.1,61.6,60.7,62.8,61.2,60.8,61.2,59.2,62.2,63.1,61.9,60,61.1,60.5,62.3,62.8,63.1,61.8,60.9,63.3,61.4,61.6,62.4,63.1,59.6,63,62.5,62.7,62.3,60.1,60.7,58.4,63.3,63.4,63.4,62.6,61.2,61.9,63.8,59.3,60.6,62.6,62.4,62.9,62.6,63.7,62,63.3,62.1,61.7,61.5,63.5,62,61.2,62.9,59.5,58.5,61.8,62.5,62.7,63.1,63.5,61.4,64,63.2,62.8,64.2,62.4,63.6,60.7,62.9,62.2,59.3,62.8,61.1,62.9,63.3,62.4,63.7,63.4,63.5,62.9,62.1,63.1,61.8,61.9,61.8,62.1,62.2,61.7,62.5,60.6,60.6,63.7,63.2,60.5,63.1,61.3,60.2,62.6,63.5,61.4,63.2,58.6,63,61,63.2,61.4,60.9,63.5,62.7,62.6,62.9,62,62.6,59.1,59.1,61.3,61.8,62.1,63.2,62.1,60,59.8,59.2,63.8,59.5,62.2,59.5,60.4,62.1,63.7,63.2,60.1,63,63.2,63.5,60.1,62.9,59.7,62.8,62.1,61,61,58,62.1,61,60.2,62.2,62.9,59.4,58.9,63.1,63.7,62.5,61.4,62.6,62.8,62,61,63.4,61.3,62.6,63.5,63.3,58.8,61.7,61.1,60.3,62.3,60.7,62.8,61.5,61.3,63.3,59.6,62.5,60.7,61,62.9,63.3,62,63,61.6,61.4,61.2,62,59.6,62.4,64.4,62.6,63.1,63.1,58.7,62.8,63.1,60.5,63.3,62.6,62.2,59.6,62.1,62.2,63.4,62.8,63.5,63.1,62.8,63.2,61.8,61.3,60.9,63.5,62.8,63.1,62,60.9,59.6,62.1,61.3,62.5,59.8,60.5,63.2,62.2,62.9,60.2,62.2,62.5,63.1,63,58.6,61.4,58.7,61.9,62.8,60.4,61.5,60,61,63.1,62.5,61.8,62.9,63.2,61.5,62.2,58.6,63.1,59.8,59.2,62.3,61.6,63.1,62.8,59.6,63.2,61.3,63.4,63.6,59.3,62,61.9,63.4,62.8,63.1,61.9,60.1,60.6,58.2,62.3,60.4,63.3,57.1,62.6,62.1,60.7,61.3,63.2,61.8,62.2,60.5,57.1,62.5,63.1,63.3,60.2,61.9,63.1,61.7,62.9,60.9,62.1,63,61.6,62.6,60.4,59.6,63.1,61.4,63.4,64.2,62]},{"name":"Fair","data":[66,64.7,64.8,64.5,67.4,65,67.6,55.1,61.7,64.6,65,67.1,67.8,65,54.7,68.7,68.2,59.4,65.9,64.5,65.5,69.8,65.7,61.2,58.9,66,66.4,64.9,58.9,65.5,64.4,66.9,65.4,65.1,66.3,64.3,65.7,65.4,55.2,64.5,64.4,55.9,66,56.9,59.5,60,64,64.7,69.5,60.1,65,65,66.2,61.1,65,64.7,66.1,55.3,65.7,65.2,65.2,55.9]}]; +const data = [ + { name: 'Ideal', data: [61.4, 59.2, 60.9, 62.4, 61.3, 62.4, 61.2, 62.2, 61.8, 61.7, 61.8, 61.4, 61.7, 61.6, 61.1, 62.6, 62.3, 62.4, 61, 62.5, 62.1, 63.8, 62.7, 62, 62, 60.6, 61.5, 62.3, 63, 62.6, 62.9, 61.4, 61.3, 62.2, 60.1, 62.3, 64, 61.8, 62.1, 61.7, 61.5, 61.8, 62.4, 61.3, 61.2, 61.6, 62.8, 61.7, 62.4, 61.7, 62.1, 61.1, 61.7, 62.3, 62.6, 61.6, 61.4, 61.2, 61, 61.7, 58.6, 61.1, 60.7, 61.5, 61.9, 63.3, 61.6, 61.1, 61.4, 62.4, 61.4, 62.3, 61.5, 62.1, 62.4, 60.7, 61.3, 62, 61.5, 61.3, 61.2, 61, 62, 61.9, 62.1, 62.3, 62.4, 61.4, 60.5, 61.6, 61.4, 62, 61.4, 62.4, 62.5, 62.9, 60.8, 62.6, 61.9, 62.3, 62.6, 62.1, 61.9, 60.9, 60.9, 62.4, 62.6, 61.5, 60.9, 61.2, 61.5, 61.5, 62.2, 61, 62.3, 62.2, 61.9, 61.9, 62.5, 61.8, 61.9, 62.8, 60.7, 61.6, 60.7, 62.6, 61.8, 62.7, 61.3, 62.2, 60.2, 61.5, 62.4, 61.9, 61.5, 61.7, 62.7, 62.7, 60.7, 62.2, 59.5, 62.5, 61.5, 61.7, 61.3, 61.6, 60.8, 62, 61.8, 61.1, 62.1, 60.1, 60.7, 62, 60.8, 61.2, 62.9, 62.7, 62.5, 62.3, 61, 62.6, 61.4, 61.8, 62.3, 63, 61.9, 61.1, 61.9, 62.6, 62.6, 61, 61.9, 62.6, 60.3, 62.1, 62, 61.8, 62.1, 60.4, 61.4, 61.7, 62.3, 62.1, 60.4, 62.3, 61.8, 62.4, 61.3, 62.3, 62.7, 61.2, 62.5, 60.9, 62.1, 61.4, 62.1, 61.8, 62.4, 60, 62.3, 62, 61.4, 61, 61.2, 61.6, 61.6, 62, 62.2, 61.7, 61.7, 61.7, 61.4, 61, 61.6, 62.5, 63, 61.4, 62, 62.3, 61.8, 60.9, 60.6, 60.9, 61.5, 62.3, 62.5, 60.9, 62.6, 62.3, 61.4, 62, 61.7, 62.7, 61.3, 61.3, 61.2, 62.3, 62.6, 61.8, 62.1, 62.8, 62, 62, 62.8, 61.9, 62.2, 62.2, 61.3, 61.6, 61.8, 61.1, 61.7, 60.8, 61.2, 62.2, 61.2, 61.1, 61.1, 62.6, 62.3, 62.5, 63, 62.7, 61.8, 61.8, 61.6, 61.9, 61.4, 61.3, 61.3, 60.8, 62.6, 61.6, 62.4, 61.6, 61.8, 61.9, 62.1, 62.6, 61.6, 62.3, 62.7, 62.2, 62.3, 61.9, 59.9, 62, 61.4, 61.2, 61.1, 62, 62.4, 61.3, 62.3, 62, 61.5, 61.7, 62.4, 61.3, 61.3, 61.4, 60.8, 61.1, 61.5, 61.7, 62, 61.8, 62.3, 61.6, 61.3, 61.6, 62, 61.4, 62.1, 60, 60.8, 61.3, 62.3, 62.2, 61.8, 61.2, 62.7, 61.8, 61.5, 60.7, 62, 62, 61.1, 60.7, 59.8, 60.8, 61.1, 61.2, 61.8, 61.7, 62.3, 62, 60.5, 61.2, 62.1, 62, 61.7, 62, 61.8, 62.6, 61.6, 61, 62.1, 62.2, 61.9, 62.1, 61.6, 62.2, 61.6, 61.7, 60.5, 62.4, 62.2, 60.9, 62.3, 61.8, 60.9, 61.4, 61.8, 61.9, 61.3, 62, 60.1, 61.6, 62.7, 61.1, 61.6, 61.1, 61.9, 61.7, 61.3, 61.6, 60.8, 61.6, 61.6, 63.3, 62.6, 61.9, 62.2, 61.8, 62, 61.5, 61.9, 61.5, 62.2, 62.3, 61.5, 62.1, 61.1, 61.9, 62.2, 61.6, 60.7, 61.2, 63, 62, 61.6, 62.3, 62, 61.6, 62.3, 61, 61.7, 62.1, 62.4, 61.1, 62.6, 62.3, 61.9, 61.7, 62.5, 62, 62.2, 62.1, 62.5, 60.2, 61.8, 62.4, 61.7, 62.5, 61.5, 60.6, 60.6, 62, 59, 61.8, 62.3, 62.1, 62.5, 62.5, 61.2, 61.5, 62.2, 60.9, 61.7, 61.5, 62.1, 63, 61.8, 61.5, 61.3, 62.2, 62.2, 62.4, 62.3, 61.9, 61.6, 61.4, 61.9, 61.7, 62.6, 61.7, 61.3, 62, 61.4, 61.1, 60.2, 61.9, 61.3, 62.3, 62.3, 62.7, 62, 61.3, 62.5, 62.9, 62, 61.2, 62.4, 61.3, 61.9, 61.7, 62.3, 61.4, 61.8, 62.6, 61.8, 62.4, 61.7, 61.9, 59.8, 62, 62.2, 61.6, 61.6, 62.7, 63.2, 60.9, 61.1, 61.9, 62.4, 60.8, 61.8, 62.1, 61.9, 62, 61, 61.2, 62.2, 60.7, 61.7, 62.2, 61.9, 61.4, 62.3, 62.9, 61.1, 62, 62.7, 62.6, 61.8, 60.2, 61.2, 62.8, 60.5, 62.3, 63, 61.8, 62.1, 61.7, 60.4, 62.5, 62.2, 62.2, 61.7, 60.8, 61.3, 61.2, 60.9, 62, 62.1, 62.3, 61.4, 61.7, 62, 62.3, 60.9, 62.6, 62, 62, 61.7, 60.8, 62, 61.9, 61.4, 61.2, 61.8, 61.1, 61.3, 61.6, 61.7, 62.4, 61.8, 62.4, 60.2, 61.2, 60.8, 62.7, 61.6, 61, 62, 61.6, 61.8, 61.5, 61.3, 61.2, 60.2, 62, 61.7, 61.7, 62.6, 62.2, 62.4, 62.4, 62.6, 61.3, 61.7, 62.9, 61, 62, 61.7, 61.9, 62.5, 61.3, 62.2, 61.1, 61.9, 62.1, 62.5, 61, 61.1, 61.4, 62.4, 61.8, 60.3, 61.9, 61.4, 62.1, 61.9, 61.3, 62, 61.3, 61.8, 62, 61.8, 62, 62, 61.8, 62.7, 60.9, 61.4, 60.1, 61.9, 61, 61.7, 61.1, 61.8, 61.4, 61.2, 62, 62.8, 61.3, 61.7, 62, 62.6, 60.8, 62, 61.8, 61.8, 62, 60.3, 61.2, 60.7, 62.3, 62.1, 62, 61.9, 60.5, 61.2, 61.8, 61.9, 62.1, 62.2, 61.8, 60.8, 62, 61.9, 61.9, 61.1, 60.8, 62.2, 61.5, 60.5, 62.6, 62.2, 61.1, 62.1, 61.3, 61.5, 62.4, 62.2, 62.4, 62, 61.9, 62.1, 62.3, 62.3, 61.9, 62.6, 61.7, 62.2, 61.3, 61.5, 60.3, 62.5, 62.4, 60.2, 62.5, 62.2, 61.2, 62.9, 62.8, 61.6, 62.2, 61.5, 62.7, 61.7, 62.5, 61.5, 61.9, 62.8, 61.1, 62, 61.4, 61.5, 61.6, 62.7, 62.1, 60.9, 60.9, 61, 62.1, 60.3, 62.6, 62.1, 61.9, 61.9, 61.1, 61.4, 61.3, 62, 61.8, 61.5, 61.6, 61.7, 61, 62.4, 60.5, 62, 61.7, 61.5, 61.9, 61.8, 58.8, 62.1, 61.7, 62.4, 61.7, 62.2, 61.6, 61.2, 61.9, 62.7, 60.9, 61.1, 63, 62.2, 62.7, 62.6, 60.7, 62, 62.8, 61.4, 61.2, 61.3, 61.4, 61.7, 61.9, 60.5, 61, 60.7, 63, 62, 62, 61, 62.2, 62.1, 62.2, 62.7, 61.6, 62.6, 62.2, 61.1, 62.1, 62.2, 61.2, 62.2, 62, 60.3, 63] }, + { name: 'Good', data: [64, 63.6, 63.5, 56.9, 63.8, 58, 63.8, 64.3, 60, 57.8, 63.8, 60.3, 63.8, 63.9, 63.5, 64.1, 63.9, 63, 63.4, 63.6, 63.1, 65, 58.7, 62.8, 63.3, 65.5, 63.5, 64.3, 63.8, 58.2, 63.2, 58.9, 64.1, 63.2, 63.7, 61.8, 57.8, 63.3, 63.5, 58.2, 63.6, 64.3, 62.3, 63.9, 63.1, 58.7, 63.4, 63.3, 60.4, 63.2, 63.1, 57.9, 59.2, 59.2, 63.1, 63.5, 63.8, 63.7, 63.7, 60.5, 63.7, 58.2, 63.8, 64.2, 63.6, 63.2, 64.2, 57.6, 63.7, 63.5, 56.7, 64.8, 64.2, 58.4, 64.3, 61.2, 63.8, 63.9, 63.1, 63.3, 59.2, 62.6, 57.2, 57.4, 63.6, 63.7, 57.6, 58.8, 63.9, 63.5, 59.4, 58.9, 58.9, 56.9, 59.8, 63.5, 60.1, 60.1, 64, 62.7, 63.6, 63.6, 64.2, 63.2, 61.3, 63.8, 58.5, 59, 64.2, 63.6, 63.6, 61.8, 63, 64.2, 63.2, 61.1, 63.7, 63.8, 63.8, 63.4, 63.8, 56.3, 63.7, 57.9, 63.2, 64.1, 63.3, 63.7, 64.6, 60.2, 62.7, 63.9, 64.3, 63.3, 63.8, 64.4, 62.6, 63.7, 58.6, 65.8, 59.2, 57.9, 63.8, 64.2, 59.4, 63.7, 64.2, 63.7, 62.5, 60.6, 63.3, 63.5, 63.8, 62.3, 59.6, 63.9, 61.8, 63.5, 63.6, 63.2, 63.9, 62.4, 57.8, 58.5, 57.8, 63.3, 60.8, 60.2, 63.3, 63.7, 57.9, 60.9, 57.3, 57.8, 63.6, 62.9, 57.8, 63.1, 61.3, 63.3, 61.4, 63.4, 63.7] }, + { name: 'Premium', data: [61.4, 62.5, 62.5, 61.1, 60.2, 61.2, 62, 61.5, 61.4, 59.1, 59.3, 61.2, 61.9, 62.2, 62.9, 61.2, 62.2, 60.8, 60.9, 62.9, 59.5, 61.9, 59.2, 58.8, 61, 61.1, 61.1, 61.4, 61.5, 61.7, 59.3, 61.7, 63, 61.7, 62.5, 62, 61.5, 62.7, 62.4, 61.3, 60.3, 61.3, 61.4, 60.1, 59.1, 59.5, 59.8, 61.1, 61.5, 61, 62.8, 62, 58.8, 62, 61.2, 62.4, 61.2, 59.9, 59.8, 62.7, 59.6, 62.6, 62.9, 62.6, 60.6, 60.8, 59.1, 62.4, 62.5, 60.7, 62.4, 59.9, 62.1, 61.6, 62.6, 58.6, 59.7, 61.2, 62.6, 61.6, 60.1, 60.5, 61.8, 62.4, 62.3, 60.6, 62.3, 58, 62.1, 60.2, 62.8, 62.5, 61, 60.7, 60.5, 62.3, 58.8, 61.9, 61.8, 61, 62.7, 63, 62.5, 61.7, 61.4, 60.5, 62.5, 61.6, 62.3, 62.6, 61.5, 62.4, 61.1, 61.9, 59.3, 61.1, 62.2, 61.9, 61.9, 62.6, 63, 61.6, 59.7, 61.2, 62.1, 62.4, 61.3, 62.2, 62.5, 62.8, 60.7, 62.7, 61.5, 62.8, 62.5, 58.2, 62.3, 62.7, 61.8, 62.5, 61.9, 61.1, 62.3, 60.3, 62.6, 62.7, 61.8, 61.2, 62.7, 61.2, 61.9, 59.6, 62.4, 62.2, 59.3, 62.6, 62.1, 62.3, 61.3, 62.2, 62, 61.5, 60.1, 60.1, 61.5, 58.4, 60.1, 62.3, 62.7, 60.8, 60.5, 60.6, 63, 62, 61.5, 58.4, 61.6, 61.8, 62.8, 59.9, 58.8, 59.9, 62.1, 62.6, 62.6, 60.8, 62.5, 61.4, 62.6, 60.4, 61.8, 59.3, 61, 60.6, 61.2, 62.6, 61.9, 60.9, 59, 62.1, 61.9, 61.5, 61.6, 58.4, 61, 61, 60.5, 59.9, 61.6, 59.5, 62.4, 61.8, 62.2, 62.9, 58.8, 62.3, 62, 60.5, 62.4, 60.3, 61.2, 59.6, 60.6, 59.5, 60.5, 62.4, 62, 62.8, 62.3, 59.4, 61.1, 61.6, 59.8, 60.5, 61.3, 62, 62.5, 61.2, 60.2, 59.9, 59.8, 62.5, 61.3, 60.3, 62.6, 61.8, 60.9, 61.1, 61.1, 61.6, 61.8, 59.5, 61.5, 59.4, 61.3, 61.7, 61, 60.1, 60.8, 60.4, 61.2, 61.5, 61.2, 62.5, 62.1, 60.4, 61.5, 61.3, 62.4, 58.8, 62.1, 60.1, 62, 60.3, 61.4, 61.9, 59.8, 62.8, 59.3, 61.9, 61.1, 60.2, 62.5, 60.2, 60.1, 61, 61.8, 60.5, 59.6, 62.1, 60.9, 61.7, 60.9, 61, 62, 62.4, 62.6, 60.5, 61.3, 61.5, 61.9, 61.2, 62.5, 61.1, 62.2, 62.8, 62.2, 62.4, 61.3, 60.8, 60.9, 61.3, 62.9, 62, 61.8, 62.4, 60.1, 59.3, 58.4, 60.7, 61.4, 60.5, 62, 59.2, 61.7, 62.6, 63, 61.1, 62.4, 62.2, 62.4, 59.1, 60.4, 60.9, 59.6, 58.8, 62.1, 61, 59.5, 61.7, 62.2, 60.3, 62.6, 62.1, 60.1, 60.5, 61, 62, 60.6, 61.4, 62.6, 61.3, 60.2, 62.2, 58, 61.2, 60.3, 62.3, 60.7, 61.5, 63, 61.3, 59.5, 61.7, 61.2, 61.5, 61.5, 60.6, 58.3, 61.5, 59.2, 61.4, 62, 63, 62, 61.6, 60.9, 61.1, 59.5, 62.8, 60.7, 62.6, 61, 62, 62.1, 61.3, 61.9, 62.7, 61.3, 61.3, 62.2, 61.8, 61.1, 62.1, 61.9, 62.7, 62, 61.4, 61.3, 60.5, 61.1, 62.9, 62.4, 61.3, 60.5, 59.7, 60.3, 61.9, 60.7, 59.6, 60.1, 62.2, 62.9, 60.5, 61.8, 60.5, 63, 61.2, 59.1, 62.1, 61.2, 62.7, 62.2, 60.7, 61.8, 62.2, 62.3, 62.3, 61.3, 63, 62.3, 59.3, 62.2, 62.9, 60.2, 61.2, 61.5, 59.6, 59.9, 62.6, 62.8, 59.7, 62.3, 61, 63, 58.9, 61.8, 62.6, 61.1, 62.1, 61.3, 60.9, 61.3, 58.6, 62.4, 59.6, 61.3, 59.7, 60.8, 60, 61.9, 62.6, 61.1, 62.3, 59, 60.3, 62.1, 61, 60.2, 61.9, 61.2, 60.8, 62, 61.7, 61.9, 62.1, 58.2, 62, 62.6, 62.2, 60, 62.9, 61.7, 62.8, 62.3, 62.6, 62.7, 62.5, 62.7, 62, 60.1, 61.4, 59.6, 60.1, 62.6, 63, 61.4, 59.4, 62.8, 61.3, 61, 62.7, 61.9, 63, 61.2, 61.3, 62.4, 60.2, 61.9, 62.7, 60.2, 61.9, 62.8, 62.3, 62.2, 60.6, 62.1, 60.7, 59.8, 60.9, 59.2, 62.3, 61.4, 60.9, 63, 61.5, 60.3] }, + { name: 'Very-Good', data: [62.9, 62.3, 63.4, 62.1, 60.7, 61.7, 58.1, 62.2, 60.5, 61.5, 63, 63, 60.4, 59.6, 59.4, 63.1, 63.4, 63.1, 61.4, 62.9, 59.6, 62.7, 61.9, 59.3, 61.5, 62.4, 61.2, 58.6, 62.3, 63.3, 63.2, 62.6, 61.2, 60.2, 63, 63.7, 60.8, 63.4, 62.7, 62.8, 60.9, 61.5, 58.8, 62.8, 62.7, 62.9, 62.4, 60.9, 62.9, 63.5, 63.2, 62.8, 62.1, 63.4, 60.3, 62.8, 62.9, 58.2, 61.8, 61.1, 63.2, 62.7, 59.8, 62.4, 61.4, 61.9, 61.1, 61.4, 63.6, 62.9, 62.6, 61.9, 60, 62.7, 60.9, 62.4, 62.1, 60.7, 61.6, 63.4, 62.9, 61.9, 62, 62.2, 62.2, 63.2, 63, 61, 62.2, 62.9, 62.5, 63.6, 59.9, 61.1, 62.2, 62.5, 60.3, 60.2, 60.2, 61.7, 63.3, 62.9, 62.3, 63.1, 61.8, 62.5, 62.7, 63, 61.8, 62.9, 60.5, 62.6, 61.2, 63.3, 61.1, 62.8, 62.6, 61.6, 62.3, 60.4, 62.9, 62, 60.4, 61, 62.1, 61.9, 60.9, 62.2, 64.2, 62.4, 60.4, 61.2, 63.2, 62.8, 62.1, 59.2, 62.4, 60.7, 62.5, 64, 63.3, 60.7, 62.7, 60.6, 60.1, 61.9, 62.4, 61.7, 63.5, 59.1, 61.6, 60.7, 62.8, 61.2, 60.8, 61.2, 59.2, 62.2, 63.1, 61.9, 60, 61.1, 60.5, 62.3, 62.8, 63.1, 61.8, 60.9, 63.3, 61.4, 61.6, 62.4, 63.1, 59.6, 63, 62.5, 62.7, 62.3, 60.1, 60.7, 58.4, 63.3, 63.4, 63.4, 62.6, 61.2, 61.9, 63.8, 59.3, 60.6, 62.6, 62.4, 62.9, 62.6, 63.7, 62, 63.3, 62.1, 61.7, 61.5, 63.5, 62, 61.2, 62.9, 59.5, 58.5, 61.8, 62.5, 62.7, 63.1, 63.5, 61.4, 64, 63.2, 62.8, 64.2, 62.4, 63.6, 60.7, 62.9, 62.2, 59.3, 62.8, 61.1, 62.9, 63.3, 62.4, 63.7, 63.4, 63.5, 62.9, 62.1, 63.1, 61.8, 61.9, 61.8, 62.1, 62.2, 61.7, 62.5, 60.6, 60.6, 63.7, 63.2, 60.5, 63.1, 61.3, 60.2, 62.6, 63.5, 61.4, 63.2, 58.6, 63, 61, 63.2, 61.4, 60.9, 63.5, 62.7, 62.6, 62.9, 62, 62.6, 59.1, 59.1, 61.3, 61.8, 62.1, 63.2, 62.1, 60, 59.8, 59.2, 63.8, 59.5, 62.2, 59.5, 60.4, 62.1, 63.7, 63.2, 60.1, 63, 63.2, 63.5, 60.1, 62.9, 59.7, 62.8, 62.1, 61, 61, 58, 62.1, 61, 60.2, 62.2, 62.9, 59.4, 58.9, 63.1, 63.7, 62.5, 61.4, 62.6, 62.8, 62, 61, 63.4, 61.3, 62.6, 63.5, 63.3, 58.8, 61.7, 61.1, 60.3, 62.3, 60.7, 62.8, 61.5, 61.3, 63.3, 59.6, 62.5, 60.7, 61, 62.9, 63.3, 62, 63, 61.6, 61.4, 61.2, 62, 59.6, 62.4, 64.4, 62.6, 63.1, 63.1, 58.7, 62.8, 63.1, 60.5, 63.3, 62.6, 62.2, 59.6, 62.1, 62.2, 63.4, 62.8, 63.5, 63.1, 62.8, 63.2, 61.8, 61.3, 60.9, 63.5, 62.8, 63.1, 62, 60.9, 59.6, 62.1, 61.3, 62.5, 59.8, 60.5, 63.2, 62.2, 62.9, 60.2, 62.2, 62.5, 63.1, 63, 58.6, 61.4, 58.7, 61.9, 62.8, 60.4, 61.5, 60, 61, 63.1, 62.5, 61.8, 62.9, 63.2, 61.5, 62.2, 58.6, 63.1, 59.8, 59.2, 62.3, 61.6, 63.1, 62.8, 59.6, 63.2, 61.3, 63.4, 63.6, 59.3, 62, 61.9, 63.4, 62.8, 63.1, 61.9, 60.1, 60.6, 58.2, 62.3, 60.4, 63.3, 57.1, 62.6, 62.1, 60.7, 61.3, 63.2, 61.8, 62.2, 60.5, 57.1, 62.5, 63.1, 63.3, 60.2, 61.9, 63.1, 61.7, 62.9, 60.9, 62.1, 63, 61.6, 62.6, 60.4, 59.6, 63.1, 61.4, 63.4, 64.2, 62] }, { name: 'Fair', data: [66, 64.7, 64.8, 64.5, 67.4, 65, 67.6, 55.1, 61.7, 64.6, 65, 67.1, 67.8, 65, 54.7, 68.7, 68.2, 59.4, 65.9, 64.5, 65.5, 69.8, 65.7, 61.2, 58.9, 66, 66.4, 64.9, 58.9, 65.5, 64.4, 66.9, 65.4, 65.1, 66.3, 64.3, 65.7, 65.4, 55.2, 64.5, 64.4, 55.9, 66, 56.9, 59.5, 60, 64, 64.7, 69.5, 60.1, 65, 65, 66.2, 61.1, 65, 64.7, 66.1, 55.3, 65.7, 65.2, 65.2, 55.9] } +]; +const data_2 = [{"name":"数学成绩分布","data":[34,10,32,82,50,41,13,96,18,69,17,21,80,21,57,97,81,31,24,91,71,33,9,22,34,58,65,56,36,67,13,51,96,43,37,71,77,74,27,14,48,38,1,98,1,40,52,65,73,2,98,46,71,51]}]; const options = { - // column: false, bin: { - // binWidth: 5, // default: 1 }, - // tickInterval: 5, // default: 1 - normalize: true, // default: false + legend: { + nameFormatter: value => + `${value}: ${data.find(x => x.name === value).data.length}`, + }, }; +const options_2 = { + tooltip: { + titleFormatter: value => { + const [start, stop] = value.split(',').map(Number); + return `${start}-${stop - 1}分`; + }, + nameFormatter: () => '人数', + }, + legend: { + nameFormatter: name => `${name}(总人数:${data[0].data.length})`, + }, + guide: { + line: { + top: false, + status: 'warning', + text: { + title: '及格线', + position: 'end', + align: 'center', + }, + axis: 'x', + value: 60, + }, + }, +}; const stories = storiesOf('Whistogram', module); +stories.addDecorator(withKnobs); stories.add('直方图', () => ( )); + +stories.add('添加辅助线', () => ( + + + +)); + +stories.add('极坐标', () => ( + + + +)); diff --git a/stories/chart.line.stories.js b/stories/chart.line.stories.js index 0d8fe20d..8cf1686c 100644 --- a/stories/chart.line.stories.js +++ b/stories/chart.line.stories.js @@ -5,7 +5,7 @@ import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; import { withKnobs, select } from "@storybook/addon-knobs"; -import { Wline, Wcontainer, Util } from '@alicloud/cloud-charts'; +import { Wcontainer, Wline } from '@alicloud/cloud-charts'; const data = [ { @@ -14,6 +14,7 @@ const data = [ }, { "name":"机房B", "yAxis": 1, + visible: false, "data":[[1483372800000,6051],[1483459200000,3278],[1483545600000,5175],[1483632000000,6548],[1483718400000,9048],[1483804800000,11394],[1483891200000,8597],[1483977600000,6588]] } ]; @@ -22,9 +23,7 @@ const stories = storiesOf('Wline', module); stories.addDecorator(withKnobs); stories.add('折线图', () => ( - - - + )); stories.add('平滑曲线图', () => ( @@ -74,6 +73,7 @@ stories.add('双轴折线图', () => ( )); @@ -123,136 +123,84 @@ const singleData = [ ]; stories.add('单个点折线图', () => ( - + )); - -// 齐全度展示图 -const attendData = [ - { - x: 1483372800000, - y: 1, - type: 'normal', - }, - { - x: 1483459200000, - y: 1, - type: 'normal', - }, - { - x: 1483545600000, - y: 1, - type: 'normal', - }, - { - x: 1483632000000, - y: 1, - type: 'error', - }, - { - x: 1483718400000, - y: 1, - type: 'normal', - }, - { - x: 1483804800000, - y: 1, - type: 'normal', - }, - { - x: 1483891200000, - y: 1, - type: 'normal', - }, - { - x: 1483977600000, - y: 1, - type: 'error' - } -].map(d => { - return { - ...d, - detail: [ - { name: 'all', value: 100 }, - { name: '111', value: 80 }, - { name: '222', value: 20 }, - ], - }; -}); - -const attendCustomChart = { - // 不转换格式 - convertData: false, - init(chart, config, data) { - chart.source(data, { - x: { - type: 'timeCat', - mask: 'YYYY-MM-DD HH:mm:ss', - }, - // 柱高度为 0~1,设置 Y 轴跨度为 -1~2,保证柱高度占中心三分之一 - y: { - min: -1, - max: 2, +stories.add('Tooltip 设置', () => ( + + + +)); - // 关闭坐标轴 - chart.axis(false); - // 关闭图例 - chart.legend(false); +const data1 = []; +const data2 = []; - chart.tooltip({ - crosshairs: { - type: 'y' - }, - inPlot: false, - }); +let now = Date.now(); +for(var i = 0; i < 30; i++) { + let t = now - (30 - i) * 1000; + data1.push([t, Math.round(Math.random() * 60) + 300]); + data2.push([t, Math.round(Math.random() * 60) + 300]); +} +class NewData extends React.Component { + state = { + data: [ + { + "name":"机房A", + "data": data1 + },{ + "name":"机房B", + "data": data2 + } + ] + } + + componentDidMount() { + setInterval(() => { + let t = Date.now(); - // 自定义 tooltip 展示 - chart.on('tooltip:change', function(ev) { - const items = ev.items; // tooltip显示的项 - const origin = items[0]; // 将一条数据改成多条数据 - const detail = origin.point._origin.detail; - items.splice(0); // 清空 - detail.forEach((d) => { - const color = d.value < 100 ? Util.getStatusColor('error') : Util.getStatusColor('success'); - items.push(Object.assign({}, origin, { - name: d.name, - value: d.value, - color: color, - marker: { - ...origin.marker, - fill: color, - }, - })); - }); - }); + data1.push([t, Math.round(Math.random() * 60) + 300]); + data2.push([t, Math.round(Math.random() * 60) + 300]); - // 柱图模拟多色直线 - chart.interval() - .position('x*y') - .shape('funnel') - .color('type', (type) => { - if (type === 'error') { - return Util.getStatusColor('error'); - } - return Util.getStatusColor('success'); - }); + data1.shift(); + data2.shift(); - chart.render(); + this.setState({ + data: [ + { + "name":"机房A", + "data": data1 + },{ + "name":"机房B", + "data": data2 + } + ] + }) + }, 1000); } -}; -function Attend() { - return ( - - - - ); + render(){ + return ( + + + + ); + } } -stories.add('齐全度展示图', () => ( - +stories.add('动态数据', () => ( + )); stories.add('带辅助标记', () => ( @@ -276,3 +224,132 @@ stories.add('带辅助标记', () => ( }} data={[]} /> )); + + +// // 齐全度展示图 +// const attendData = [ +// { +// x: 1483372800000, +// y: 1, +// type: 'normal', +// }, +// { +// x: 1483459200000, +// y: 1, +// type: 'normal', +// }, +// { +// x: 1483545600000, +// y: 1, +// type: 'normal', +// }, +// { +// x: 1483632000000, +// y: 1, +// type: 'error', +// }, +// { +// x: 1483718400000, +// y: 1, +// type: 'normal', +// }, +// { +// x: 1483804800000, +// y: 1, +// type: 'normal', +// }, +// { +// x: 1483891200000, +// y: 1, +// type: 'normal', +// }, +// { +// x: 1483977600000, +// y: 1, +// type: 'error' +// } +// ].map(d => { +// return { +// ...d, +// detail: [ +// { name: 'all', value: 100 }, +// { name: '111', value: 80 }, +// { name: '222', value: 20 }, +// ], +// }; +// }); +// +// const attendCustomChart = { +// // 不转换格式 +// convertData: false, +// init(chart, config, data) { +// chart.source(data, { +// x: { +// type: 'timeCat', +// mask: 'YYYY-MM-DD HH:mm:ss', +// }, +// // 柱高度为 0~1,设置 Y 轴跨度为 -1~2,保证柱高度占中心三分之一 +// y: { +// min: -1, +// max: 2, +// } +// }); +// +// // 关闭坐标轴 +// chart.axis(false); +// +// // 关闭图例 +// chart.legend(false); +// +// chart.tooltip({ +// crosshairs: { +// type: 'y' +// }, +// inPlot: false, +// }); +// +// // 自定义 tooltip 展示 +// chart.on('tooltip:change', function(ev) { +// const items = ev.items; // tooltip显示的项 +// const origin = items[0]; // 将一条数据改成多条数据 +// const detail = origin.point._origin.detail; +// items.splice(0); // 清空 +// detail.forEach((d) => { +// const color = d.value < 100 ? Util.getStatusColor('error') : Util.getStatusColor('success'); +// items.push(Object.assign({}, origin, { +// name: d.name, +// value: d.value, +// color: color, +// marker: { +// ...origin.marker, +// fill: color, +// }, +// })); +// }); +// }); +// +// // 柱图模拟多色直线 +// chart.interval() +// .position('x*y') +// .shape('funnel') +// .color('type', (type) => { +// if (type === 'error') { +// return Util.getStatusColor('error'); +// } +// return Util.getStatusColor('success'); +// }); +// +// chart.render(); +// } +// }; +// +// function Attend() { +// return ( +// +// +// +// ); +// } +// stories.add('齐全度展示图', () => ( +// +// )); diff --git a/stories/chart.lineBar.stories.js b/stories/chart.lineBar.stories.js index 52644948..878e9f50 100644 --- a/stories/chart.lineBar.stories.js +++ b/stories/chart.lineBar.stories.js @@ -247,3 +247,195 @@ stories.add('图例位置测试', () => ( }} data={data} /> )); + +class NewLegendData extends React.Component { + state = { + data: [{ + 'name': '推送量', + 'type': 'bar', + 'data': [], + }, { + 'name': '工单数', + 'type': 'bar', + 'data': [], + }, { + 'name': '准确率', + 'type': 'line', + 'yAxis': 1, + 'data': [], + }, { + 'name': '召回率', + 'type': 'line', + 'yAxis': 1, + 'data': [], + }], + // [{ + // 'name': '推送量', + // 'type': 'bar', + // 'data': [['2019-01-19', 1319], ['2019-01-20', 1312], ['2019-01-21', 1285], ['2019-01-22', 1274], ['2019-01-23', 1244], ['2019-01-24', 1221], ['2019-01-25', 1196], ['2019-01-26', 1150], ['2019-01-27', 1126], ['2019-01-28', 1022], ['2019-01-29', 1005], ['2019-01-30', 1016], ['2019-01-31', 1003], ['2019-02-01', 988]], + // }, { + // 'name': '工单数', + // 'type': 'bar', + // 'data': [['2019-01-19', 1411], ['2019-01-20', 1375], ['2019-01-21', 1362], ['2019-01-22', 1374], ['2019-01-23', 1388], ['2019-01-24', 1389], ['2019-01-25', 1420], ['2019-01-26', 1415], ['2019-01-27', 1417], ['2019-01-28', 1410], ['2019-01-29', 1415], ['2019-01-30', 1424], ['2019-01-31', 1410], ['2019-02-01', 1400]], + // }, { + // 'name': '准确率', + // 'type': 'line', + // 'yAxis': 1, + // 'data': [['2019-01-19', 28.3548142532221], ['2019-01-20', 28.125], ['2019-01-21', 28.0155642023346], ['2019-01-22', 28.3359497645212], ['2019-01-23', 28.4565916398714], ['2019-01-24', 28.4193284193284], ['2019-01-25', 28.5117056856187], ['2019-01-26', 28.3478260869565], ['2019-01-27', 29.0408525754885], ['2019-01-28', 30.5283757338552], ['2019-01-29', 30.0497512437811], ['2019-01-30', 29.9212598425197], ['2019-01-31', 29.6111665004985], ['2019-02-01', 29.0485829959514]], + // }, { + // 'name': '召回率', + // 'type': 'line', + // 'yAxis': 1, + // 'data': [['2019-01-19', 22.7498228206945], ['2019-01-20', 22.6909090909091], ['2019-01-21', 22.6138032305433], ['2019-01-22', 22.3435225618632], ['2019-01-23', 22.2622478386167], ['2019-01-24', 21.8142548596112], ['2019-01-25', 21.5492957746479], ['2019-01-26', 20.8480565371025], ['2019-01-27', 21.030345800988], ['2019-01-28', 21.063829787234], ['2019-01-29', 20.7773851590106], ['2019-01-30', 20.3651685393258], ['2019-01-31', 20.354609929078], ['2019-02-01', 19.7857142857143]], + // }] + }; + + componentDidMount() { + setTimeout(() => { + this.setState({ + data: [ + { + "name":"机房1", + type: 'bar', + "data":[[1483372800000,1892],[1483459200000,7292],[1483545600000,5714],[1483632000000,5354],[1483718400000,2014],[1483804800000,22],[1483891200000,11023],[1483977600000,5218],[1484064000000,8759],[1484150400000,9981],[1484236800000,4533],[1484323200000,11398],[1484409600000,1064],[1484496000000,6494]] + }, + { + "name":"机房2", + type: 'bar', + "data":[[1483372800000,182],[1483459200000,792],[1483545600000,514],[1483632000000,554],[1483718400000,204],[1483804800000,22],[1483891200000,1023],[1483977600000,528],[1484064000000,879],[1484150400000,981],[1484236800000,453],[1484323200000,1198],[1484409600000,1064],[1484496000000,694]] + }, + { + "name":"机房3", + type: 'line', + yAxis: 1, + "data":[[1483372800000,11751],[1483459200000,4078],[1483545600000,2175],[1483632000000,12048],[1483718400000,1748],[1483804800000,10494],[1483891200000,9597],[1483977600000,4788],[1484064000000,2085],[1484150400000,492],[1484236800000,2965],[1484323200000,4246],[1484409600000,2160],[1484496000000,11877]] + }, + { + "name":"机房4", + type: 'line', + yAxis: 1, + "data":[[1483372800000,1151],[1483459200000,4778],[1483545600000,21175],[1483632000000,19048],[1483718400000,14748],[1483804800000,18494],[1483891200000,10597],[1483977600000,8788],[1484064000000,12985],[1484150400000,2492],[1484236800000,5965],[1484323200000,10246],[1484409600000,12160],[1484496000000,6877]] + } + ], + }) + }, 2000); + } + + render() { + return ( + + + + ); + } +} +stories.add('数据项更新', () => ( + +)); + +const sameNameData = [ + { + "name":"机房1", + type: 'bar', + "data":[[1483372800000,1892],[1483459200000,7292],[1483545600000,5714],[1483632000000,5354],[1483718400000,2014],[1483804800000,22],[1483891200000,11023],[1483977600000,5218],[1484064000000,8759],[1484150400000,9981],[1484236800000,4533],[1484323200000,11398],[1484409600000,1064],[1484496000000,6494]] + }, + { + "name":"机房2", + type: 'bar', + "data":[[1483372800000,182],[1483459200000,792],[1483545600000,514],[1483632000000,554],[1483718400000,204],[1483804800000,22],[1483891200000,1023],[1483977600000,528],[1484064000000,879],[1484150400000,981],[1484236800000,453],[1484323200000,1198],[1484409600000,1064],[1484496000000,694]] + }, + { + "name":"机房1", + type: 'line', + yAxis: 1, + "data":[[1483372800000,11751],[1483459200000,4078],[1483545600000,2175],[1483632000000,12048],[1483718400000,1748],[1483804800000,10494],[1483891200000,9597],[1483977600000,4788],[1484064000000,2085],[1484150400000,492],[1484236800000,2965],[1484323200000,4246],[1484409600000,2160],[1484496000000,11877]] + }, + { + "name":"机房2", + type: 'line', + yAxis: 1, + "data":[[1483372800000,1151],[1483459200000,4778],[1483545600000,21175],[1483632000000,19048],[1483718400000,14748],[1483804800000,18494],[1483891200000,10597],[1483977600000,8788],[1484064000000,12985],[1484150400000,2492],[1484236800000,5965],[1484323200000,10246],[1484409600000,12160],[1484496000000,6877]] + } +]; +stories.add('同名数据项', () => ( + + + +)); + +class ChangeData extends React.Component { + state = { + data: [{ + 'name': '推送量', + 'type': 'bar', + 'data': [['2019-01-19', 1319], ['2019-01-20', 1312], ['2019-01-21', 1285], ['2019-01-22', 1274], ['2019-01-23', 1244]], + }, { + 'name': '工单数', + 'type': 'bar', + 'data': [['2019-01-19', 1411], ['2019-01-20', 1375], ['2019-01-21', 1362], ['2019-01-22', 1374], ['2019-01-23', 1388]], + }, { + 'name': '准确率', + 'type': 'line', + 'yAxis': 1, + 'data': [['2019-01-19', 28.3548142532221], ['2019-01-20', 28.125], ['2019-01-21', 28.0155642023346], ['2019-01-22', 28.3359497645212], ['2019-01-23', 28.4565916398714]], + }, { + 'name': '召回率', + 'type': 'line', + 'yAxis': 1, + 'data': [['2019-01-19', 22.7498228206945], ['2019-01-20', 22.6909090909091], ['2019-01-21', 22.6138032305433], ['2019-01-22', 22.3435225618632], ['2019-01-23', 22.2622478386167]], + }], + }; + + componentDidMount() { + setTimeout(() => { + this.setState({ + data: [{ + 'name': '推送量', + 'type': 'bar', + 'data': [['2019-01-19', 1319], ['2019-01-20', 1312], ['2019-01-21', 1285], ['2019-01-22', 1274], ['2019-01-23', 1244], ['2019-01-24', 1221], ['2019-01-25', 1196], ['2019-01-26', 1150], ['2019-01-27', 1126], ['2019-01-28', 1022], ['2019-01-29', 1005], ['2019-01-30', 1016], ['2019-01-31', 1003], ['2019-02-01', 988]], + }, { + 'name': '工单数', + 'type': 'bar', + 'data': [['2019-01-19', 1411], ['2019-01-20', 1375], ['2019-01-21', 1362], ['2019-01-22', 1374], ['2019-01-23', 1388], ['2019-01-24', 1389], ['2019-01-25', 1420], ['2019-01-26', 1415], ['2019-01-27', 1417], ['2019-01-28', 1410], ['2019-01-29', 1415], ['2019-01-30', 1424], ['2019-01-31', 1410], ['2019-02-01', 1400]], + }, { + 'name': '准确率', + 'type': 'line', + 'yAxis': 1, + 'data': [['2019-01-19', 28.3548142532221], ['2019-01-20', 28.125], ['2019-01-21', 28.0155642023346], ['2019-01-22', 28.3359497645212], ['2019-01-23', 28.4565916398714], ['2019-01-24', 28.4193284193284], ['2019-01-25', 28.5117056856187], ['2019-01-26', 28.3478260869565], ['2019-01-27', 29.0408525754885], ['2019-01-28', 30.5283757338552], ['2019-01-29', 30.0497512437811], ['2019-01-30', 29.9212598425197], ['2019-01-31', 29.6111665004985], ['2019-02-01', 29.0485829959514]], + }, { + 'name': '召回率', + 'type': 'line', + 'yAxis': 1, + 'data': [['2019-01-19', 22.7498228206945], ['2019-01-20', 22.6909090909091], ['2019-01-21', 22.6138032305433], ['2019-01-22', 22.3435225618632], ['2019-01-23', 22.2622478386167], ['2019-01-24', 21.8142548596112], ['2019-01-25', 21.5492957746479], ['2019-01-26', 20.8480565371025], ['2019-01-27', 21.030345800988], ['2019-01-28', 21.063829787234], ['2019-01-29', 20.7773851590106], ['2019-01-30', 20.3651685393258], ['2019-01-31', 20.354609929078], ['2019-02-01', 19.7857142857143]], + }], + }) + }, 2000); + } + + render() { + return ( + + + + ); + } +} +stories.add('更新数据', () => ( + +)); diff --git a/stories/chart.map.stories.js b/stories/chart.map.stories.js index fe6f6a8c..8112d1c9 100644 --- a/stories/chart.map.stories.js +++ b/stories/chart.map.stories.js @@ -211,13 +211,17 @@ stories.add('基础地图', () => ( )); stories.add('带标签基础地图', () => ( - + )); stories.add('区块地图', () => ( (
    )); - -stories.addDecorator(withKnobs); +stories.add('多重环图', () => ( +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    +)); diff --git a/stories/chart.pie.stories.js b/stories/chart.pie.stories.js index cf17ab22..96ded0d9 100644 --- a/stories/chart.pie.stories.js +++ b/stories/chart.pie.stories.js @@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; import { withKnobs, number, array } from "@storybook/addon-knobs"; -import { Wpie, Wnumber, Wcontainer, Wdashboard } from '@alicloud/cloud-charts'; +import { Wpie, Wnumber, Wcontainer } from '@alicloud/cloud-charts'; const data = [ { @@ -20,25 +20,38 @@ const data = [ } ]; -function WdashboardDemo() { - const data = number('仪表盘数字', 20); - const arr = array('值域范围', [0, 100],); - const [count, setCount] = useState(data); - const [range, setRange] = useState(arr); - useMemo(() => { - setRange(arr.map(Number)); - setCount(data); - }, [data, arr]); - return ; -} +// function WdashboardDemo() { +// const data = number('仪表盘数字', 20); +// const arr = array('值域范围', [0, 100],); +// const [count, setCount] = useState(data); +// const [range, setRange] = useState(arr); +// useMemo(() => { +// setRange(arr.map(Number)); +// setCount(data); +// }, [data, arr]); +// return ; +// } const stories = storiesOf('Wpie', module); +stories.addDecorator(withKnobs); + stories.add('饼图', () => ( - ( }} data={data} /> )); -stories.add('仪表盘', () => ( - -)); - -stories.addDecorator(withKnobs); +// stories.add('仪表盘', () => ( +// +// )); diff --git a/stories/chart.radar.stories.js b/stories/chart.radar.stories.js new file mode 100644 index 00000000..a2134c05 --- /dev/null +++ b/stories/chart.radar.stories.js @@ -0,0 +1,40 @@ +import React from 'react'; + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { linkTo } from '@storybook/addon-links'; +import { withKnobs, select } from "@storybook/addon-knobs"; + +import { Wcontainer, Wradar } from '@alicloud/cloud-charts'; + +const data = [ + { + name: '平均水准', + data: [ + ['2001', 41], + ['2002', 38], + ['2003', 33], + ['2004', 30], + ['2005', 25], + ['2006', 42], + ] + }, + { + name: '个人水准', + data: [ + ['2001', 25], + ['2002', 72], + ['2003', 35], + ['2004', 27], + ['2005', 54], + ['2006', 52], + ] + } +]; + +const stories = storiesOf('Wradar', module); +stories.addDecorator(withKnobs); + +stories.add('雷达图', () => ( + +)); diff --git a/stories/chart.rectangle.stories.js b/stories/chart.rectangle.stories.js new file mode 100644 index 00000000..efef821a --- /dev/null +++ b/stories/chart.rectangle.stories.js @@ -0,0 +1,915 @@ +import React from 'react'; + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { linkTo } from '@storybook/addon-links'; +import { withKnobs, select } from '@storybook/addon-knobs'; + +import { Wcontainer, Wrectangle } from '@alicloud/cloud-charts'; + +const defaultData = [ + { x: 211.30367873206103, y: 374.011454046156 }, + { x: 500.29867653719464, y: 364.0710814670023 }, + { x: 373.72304385883353, y: 446.39571451770905 }, + { x: 654.4950570479579, y: 636.749822123514 }, + { x: 555.5799779483943, y: 595.4051363416937 }, + { x: 745.2854049080454, y: 435.55263692303254 }, + { x: 504.506365811858, y: 518.0112206116842 }, + { x: 420.39650800042966, y: 333.86248701420817 }, + { x: 439.2463956135431, y: 405.9698416928732 }, + { x: 316.3492255703077, y: 575.4210776358901 }, + { x: 546.2106696472646, y: 296.3304890710614 }, + { x: 554.5398059654111, y: 613.1355624560277 }, + { x: 566.8465200771166, y: 550.4512730468393 }, + { x: 569.9861918249525, y: 584.6532046541478 }, + { x: 535.4635805897575, y: 429.5654002924505 }, + { x: 512.7313104093327, y: 617.8319758604068 }, + { x: 562.4878208962938, y: 630.8185707970533 }, + { x: 508.8841407993702, y: 434.66344300662377 }, + { x: 437.0783792914773, y: 691.444807998203 }, + { x: 482.2170197598377, y: 399.88600246434675 }, + { x: 472.70124566591085, y: 467.52483144644725 }, + { x: 513.4709032516229, y: 434.1370832831939 }, + { x: 493.45265071748344, y: 551.7101380662735 }, + { x: 426.9178798652837, y: 537.9716235674538 }, + { x: 548.483329803987, y: 448.02606355101284 }, + { x: 585.8671979481455, y: 455.93379157594563 }, + { x: 633.2791718676401, y: 512.2580771864191 }, + { x: 514.8691821607385, y: 592.8873617136005 }, + { x: 470.22115836425576, y: 540.6048691723632 }, + { x: 469.428452733005, y: 379.50853698478835 }, + { x: 571.7799919499706, y: 520.6826469984533 }, + { x: 571.2114599249581, y: 454.7714560473075 }, + { x: 374.68475036451997, y: 528.4581346664601 }, + { x: 490.69640934601483, y: 582.7292738819974 }, + { x: 542.2157565653764, y: 461.06250272819767 }, + { x: 394.3020616474276, y: 498.3466715017804 }, + { x: 463.3864785083781, y: 466.25352047416357 }, + { x: 377.61661315452227, y: 440.24869222380835 }, + { x: 464.64664344082075, y: 383.36165428770784 }, + { x: 462.2464750109209, y: 485.3618345117429 }, + { x: 477.2944337465219, y: 491.82547859512 }, + { x: 386.3370673072265, y: 641.3719956594801 }, + { x: 530.7463765829508, y: 461.5559833714867 }, + { x: 609.3295573498502, y: 648.4078541061333 }, + { x: 393.9172142903677, y: 468.4755942206742 }, + { x: 542.3975530179257, y: 520.1441217765748 }, + { x: 675.244022342516, y: 587.0680397366147 }, + { x: 477.220351815843, y: 430.5092169311354 }, + { x: 442.1733471211702, y: 535.3233388387861 }, + { x: 530.2185153476594, y: 497.09116235164777 }, + { x: 513.0142472779673, y: 517.4273346237032 }, + { x: 412.54801219134106, y: 502.8553704162518 }, + { x: 351.7561155562086, y: 560.8132757721108 }, + { x: 606.9595573037417, y: 451.81637518515305 }, + { x: 476.6311707815392, y: 494.25167338006327 }, + { x: 412.31797006274917, y: 456.16038810487913 }, + { x: 518.3300684204777, y: 641.0037952790567 }, + { x: 317.16830567167653, y: 652.4039389493006 }, + { x: 511.88858422905724, y: 384.7451280380339 }, + { x: 479.39047780046235, y: 526.5308384289244 }, + { x: 632.01983549944, y: 484.7587252864994 }, + { x: 498.04244261363624, y: 559.8170262948211 }, + { x: 625.4038119218783, y: 420.6295128158771 }, + { x: 432.3176947324843, y: 596.7102173808642 }, + { x: 433.53480307930545, y: 390.91611033166043 }, + { x: 511.41585291608345, y: 437.99524250993096 }, + { x: 583.8822163450964, y: 367.89029954642353 }, + { x: 436.79056011010937, y: 432.8082356569331 }, + { x: 596.284804346587, y: 423.01770028741 }, + { x: 567.9869431045063, y: 534.126264244781 }, + { x: 388.916352313167, y: 502.25269262667405 }, + { x: 406.1809723219993, y: 527.3664956093596 }, + { x: 521.9807083119829, y: 314.3609329604307 }, + { x: 692.3941197054453, y: 506.9636789956612 }, + { x: 441.1874304054962, y: 508.76667068513575 }, + { x: 554.1548631777279, y: 416.55218065901505 }, + { x: 331.12967191887844, y: 576.6122314975863 }, + { x: 410.68618391624346, y: 528.8140320649774 }, + { x: 425.681122888056, y: 408.25389668728263 }, + { x: 413.13759893446075, y: 600.2017378542101 }, + { x: 530.7475806343792, y: 559.6422923479466 }, + { x: 501.53134237509835, y: 312.6718509895751 }, + { x: 585.3827340808548, y: 394.71281208515177 }, + { x: 556.028104390894, y: 518.170318279938 }, + { x: 459.8184937914118, y: 503.1410377550364 }, + { x: 532.7646071896394, y: 534.5720270762408 }, + { x: 408.31151688833324, y: 389.8784269552757 }, + { x: 601.8246299904816, y: 496.91317182653034 }, + { x: 515.2944302515352, y: 618.6890159233226 }, + { x: 537.993922060343, y: 478.15416415813945 }, + { x: 463.74583559938793, y: 474.1275164583354 }, + { x: 551.0596654714897, y: 473.4997888982033 }, + { x: 525.3329874293378, y: 494.77748039575437 }, + { x: 427.16861046157396, y: 533.3520080409141 }, + { x: 492.72419694689967, y: 569.0509336975551 }, + { x: 518.8240739599764, y: 472.4958542849112 }, + { x: 612.2345217870545, y: 484.99735008149196 }, + { x: 546.6735597177873, y: 624.3221146861104 }, + { x: 499.34685699208393, y: 465.8994351180164 }, + { x: 411.3766847508682, y: 505.7058940390503 }, + { x: 425.51002915227116, y: 686.2467855331919 }, + { x: 560.2926329527725, y: 453.1944966578446 }, + { x: 505.4552648282487, y: 473.4580316069642 }, + { x: 402.1697700458742, y: 594.8296479989378 }, + { x: 526.1321775684746, y: 559.511445003541 }, + { x: 410.4277465532173, y: 497.90626919683797 }, + { x: 463.1289430928774, y: 455.80533456802516 }, + { x: 477.29551951605396, y: 421.12605752790034 }, + { x: 503.20664741281684, y: 475.4074667047237 }, + { x: 465.3992514276489, y: 603.1765203184895 }, + { x: 517.2150952421541, y: 482.1322195304222 }, + { x: 503.43307316036953, y: 486.24305017325537 }, + { x: 537.400502048418, y: 388.4458360690039 }, + { x: 626.4234440930162, y: 462.1929518464152 }, + { x: 609.2552357324187, y: 504.1179854375893 }, + { x: 508.2420322352633, y: 572.104152289136 }, + { x: 496.5615405674497, y: 592.6280969072569 }, + { x: 573.4766996714388, y: 401.05158460078553 }, + { x: 536.2617476651686, y: 516.8042963935208 }, + { x: 596.6878290615232, y: 502.48824686343653 }, + { x: 680.8181487925553, y: 460.9730479096322 }, + { x: 400.32219295560134, y: 437.6297869041185 }, + { x: 392.0243797368176, y: 695.8802365292498 }, + { x: 424.81199499129195, y: 527.9745024545143 }, + { x: 550.760529935613, y: 550.235445561628 }, + { x: 441.12269462320324, y: 561.5919924367658 }, + { x: 673.7210347678013, y: 477.69221579432894 }, + { x: 614.7562504156865, y: 369.34061251344764 }, + { x: 530.4147550276533, y: 419.54287037253533 }, + { x: 570.2404623187833, y: 378.99087944442294 }, + { x: 439.46646710306385, y: 595.7424590490539 }, + { x: 507.0421586817127, y: 437.4907986912324 }, + { x: 283.08186742492387, y: 515.190154263508 }, + { x: 564.883304852088, y: 721.8230155215433 }, + { x: 362.90355892093237, y: 550.9074566244059 }, + { x: 595.4901526579828, y: 620.8228754184787 }, + { x: 450.488502055551, y: 349.2791062014405 }, + { x: 502.22454188127296, y: 500.3261128860716 }, + { x: 520.5790835059427, y: 484.9431589172062 }, + { x: 605.192386539603, y: 546.9185553545011 }, + { x: 515.8976120506509, y: 407.04021041537294 }, + { x: 579.8483746888679, y: 429.2044676664708 }, + { x: 328.97425997101504, y: 521.217576775235 }, + { x: 561.1550829328887, y: 292.65193047486855 }, + { x: 478.3978513440598, y: 449.01377573167423 }, + { x: 446.0527467634318, y: 463.99682118743704 }, + { x: 536.9472553923533, y: 501.91476621938887 }, + { x: 578.8739934210504, y: 460.9092513689609 }, + { x: 546.1260688258686, y: 636.3500400129453 }, + { x: 435.65762875382774, y: 697.1370429406127 }, + { x: 737.9141503410409, y: 424.91036256002155 }, + { x: 459.44321259340836, y: 471.4262443345213 }, + { x: 558.6631746265376, y: 420.74823670795627 }, + { x: 505.92348772426175, y: 363.46305239009814 }, + { x: 475.22050105937336, y: 510.35295287299016 }, + { x: 506.0616085481746, y: 341.6919385445468 }, + { x: 550.7139135848942, y: 368.15211969540155 }, + { x: 326.3158707074888, y: 425.80066731555 }, + { x: 368.3820360708652, y: 571.2959425834009 }, + { x: 502.42259510286664, y: 471.25416134181086 }, + { x: 540.9386679766254, y: 458.729190752289 }, + { x: 595.5088272010596, y: 560.1465327534808 }, + { x: 524.8847789763561, y: 503.9231528776832 }, + { x: 358.33319191523896, y: 411.1262559546793 }, + { x: 461.83277576987587, y: 429.6943159767158 }, + { x: 593.154299821099, y: 546.9021751049703 }, + { x: 530.8246093493783, y: 575.4965550814504 }, + { x: 480.33770582253857, y: 509.2794045197598 }, + { x: 461.7377506415799, y: 566.8859540587977 }, + { x: 458.7845073132695, y: 356.76406466094534 }, + { x: 590.9535767174609, y: 464.315421357811 }, + { x: 397.4373787815846, y: 464.5129241492026 }, + { x: 346.08304346073453, y: 403.3630637105585 }, + { x: 604.5858444261162, y: 447.41083495956997 }, + { x: 499.66453659673783, y: 368.3274314295995 }, + { x: 507.6439099801658, y: 393.5480764029857 }, + { x: 519.5906440462248, y: 402.8720326305429 }, + { x: 421.78456876413327, y: 550.0244521976226 }, + { x: 448.64345849841663, y: 540.2604230148237 }, + { x: 479.95272248771613, y: 604.7301958995699 }, + { x: 525.2029328859737, y: 453.8211583379145 }, + { x: 548.5803825535006, y: 469.36661460928485 }, + { x: 444.79803843393347, y: 592.3846817993119 }, + { x: 508.80108459019857, y: 517.9240700240804 }, + { x: 576.8337598077305, y: 419.33083438409795 }, + { x: 476.1085899469971, y: 416.39317171497663 }, + { x: 339.02239109684905, y: 548.1512161472713 }, + { x: 514.7043674647291, y: 483.0052950194065 }, + { x: 566.9908780183205, y: 293.4791084449525 }, + { x: 578.292903412172, y: 623.887130702628 }, + { x: 493.7716782792751, y: 453.68310895344985 }, + { x: 654.2811473498864, y: 576.0530543110245 }, + { x: 585.5613331767776, y: 436.75997163020577 }, + { x: 508.81834933307266, y: 476.6276496533708 }, + { x: 509.7791074319298, y: 423.2532697903749 }, + { x: 442.8573214743326, y: 365.72937157489923 }, + { x: 405.03746312623815, y: 426.59001032817565 }, + { x: 536.3568566582842, y: 591.6454872380062 }, + { x: 572.704643719756, y: 499.67885290660394 }, + { x: 545.8225055750725, y: 504.745470433033 }, + { x: 470.9729295659042, y: 684.038304134605 }, + { x: 525.9839037047224, y: 505.2992850468933 }, + { x: 555.9695250132587, y: 463.17576082032605 }, + { x: 444.0643537580134, y: 671.7004555737004 }, + { x: 561.0464866179215, y: 511.0028050500381 }, + { x: 376.12894652296046, y: 527.7797230546386 }, + { x: 464.0413356103739, y: 524.6452339816625 }, + { x: 389.09989347145864, y: 536.2920691111153 }, + { x: 493.2448626500672, y: 521.613502447107 }, + { x: 483.8672315043852, y: 540.6057147139167 }, + { x: 512.5430101371742, y: 448.47399700657184 }, + { x: 564.5480642044279, y: 499.552710928433 }, + { x: 544.9974529114636, y: 492.46923284339147 }, + { x: 540.2747162497832, y: 539.1410969387849 }, + { x: 470.71968112425543, y: 375.53721369335744 }, + { x: 545.59472750607, y: 531.5214587662657 }, + { x: 286.6239600825156, y: 369.70408560825234 }, + { x: 529.9170977640206, y: 460.54883579819983 }, + { x: 543.878047433643, y: 454.07265489368035 }, + { x: 365.91394778050494, y: 446.36151936144796 }, + { x: 505.06608506264536, y: 374.9359198112955 }, + { x: 501.67371584676033, y: 474.9506076248796 }, + { x: 490.7503066392119, y: 642.8242101000307 }, + { x: 681.8251900740715, y: 562.8974978041324 }, + { x: 449.97841290387635, y: 470.5692865639247 }, + { x: 532.8165137661872, y: 532.6130779292821 }, + { x: 538.6081789064931, y: 484.8850131011816 }, + { x: 485.16062903399217, y: 273.8954171845073 }, + { x: 571.0255019611808, y: 588.218639062889 }, + { x: 471.5959110025587, y: 474.22675268613744 }, + { x: 495.1079734379342, y: 511.9422792741271 }, + { x: 408.5738243947712, y: 567.3940239441349 }, + { x: 408.53641458759864, y: 421.6950987925324 }, + { x: 537.1467553837775, y: 443.4412248598147 }, + { x: 500.99187683175387, y: 458.6578299966922 }, + { x: 480.6852858595781, y: 489.79237373523205 }, + { x: 546.5091533357473, y: 441.5317806822812 }, + { x: 612.388664264704, y: 578.027636982181 }, + { x: 535.1600085738139, y: 415.0983406539739 }, + { x: 456.25061052846445, y: 465.0865739264813 }, + { x: 475.2180325500778, y: 434.834446182423 }, + { x: 546.6815302527459, y: 519.0352882367044 }, + { x: 546.7682198729765, y: 560.7275764360419 }, + { x: 436.6957107888223, y: 503.71803159632265 }, + { x: 481.09112411537626, y: 508.76546113740517 }, + { x: 522.1817611061487, y: 415.2596662107072 }, + { x: 520.5951943184549, y: 378.2975350570529 }, + { x: 402.5988575917302, y: 471.6301399361883 }, + { x: 493.25126510039723, y: 495.1047693433169 }, + { x: 519.9657466395144, y: 622.8323333175266 }, + { x: 524.9256670273479, y: 393.9646345357259 }, + { x: 432.75182521316924, y: 505.4696944373758 }, + { x: 345.1381209164351, y: 373.1334912815224 }, + { x: 435.15884846039955, y: 577.891584722025 }, + { x: 477.5865879816974, y: 421.07774242150504 }, + { x: 479.35762278310364, y: 547.1242481097886 }, + { x: 342.1928954705578, y: 419.4399709460257 }, + { x: 415.1455238816245, y: 357.9835909941887 }, + { x: 565.2642582695297, y: 426.6176952625286 }, + { x: 422.7174744049873, y: 456.5446000019993 }, + { x: 636.1226120276992, y: 426.65700673063276 }, + { x: 501.30652398809167, y: 663.0998877526969 }, + { x: 520.6510455350486, y: 511.8099392812548 }, + { x: 569.3712843401952, y: 533.2972771418749 }, + { x: 387.5485769901922, y: 544.2745121855029 }, + { x: 473.1655057293149, y: 584.693915458304 }, + { x: 678.7589757855557, y: 426.49765711540545 }, + { x: 479.9564994803489, y: 489.72759915558254 }, + { x: 573.7022113182504, y: 447.8406810656314 }, + { x: 446.77011226287993, y: 405.75057278310356 }, + { x: 393.55656543093653, y: 236.03945575850327 }, + { x: 400.58828018763415, y: 461.59298488127587 }, + { x: 567.7823493824532, y: 301.6833427498223 }, + { x: 473.8526816721188, y: 535.6271569230368 }, + { x: 527.9121097240597, y: 480.08221918644347 }, + { x: 655.412903565764, y: 480.43833115150454 }, + { x: 441.27131003316316, y: 449.2099304953095 }, + { x: 438.9995085118995, y: 502.93635934374475 }, + { x: 490.93886765796566, y: 530.9517953486413 }, + { x: 401.6049826209749, y: 452.2178223511916 }, + { x: 528.4664337158049, y: 576.7710037155299 }, + { x: 522.7590895878384, y: 548.1029703985565 }, + { x: 499.4783291875969, y: 538.4143295133285 }, + { x: 334.092924617675, y: 470.94265652618066 }, + { x: 657.6879979539913, y: 631.2502535510722 }, + { x: 536.2609515009, y: 449.1213349820443 }, + { x: 449.2994630780923, y: 387.08457538320374 }, + { x: 419.0166391821219, y: 413.4304001456575 }, + { x: 580.564796466822, y: 461.6681054511002 }, + { x: 682.3728941677911, y: 538.2204505421125 }, + { x: 429.9294231675126, y: 481.4451054451689 }, + { x: 498.48327422900786, y: 375.5281416827156 }, + { x: 401.05981926196716, y: 505.1020806785186 }, + { x: 645.4382111443048, y: 519.220787956155 }, + { x: 583.3692635848748, y: 552.9374574383362 }, + { x: 234.24461478649857, y: 452.5022837870909 }, + { x: 653.7793314669857, y: 456.0733632770932 }, + { x: 438.12527889716864, y: 469.28492618575564 }, + { x: 426.7336631805953, y: 505.5856181238134 }, + { x: 583.2680208384265, y: 492.921222713445 }, + { x: 493.6156718895478, y: 371.3204470597624 }, + { x: 631.2413540855888, y: 500.41090787262016 }, + { x: 592.425717816195, y: 414.9873095185982 }, + { x: 471.0533167156141, y: 530.3116005209109 }, + { x: 620.9769708967148, y: 479.1158955636709 }, + { x: 420.3588733589064, y: 413.30313086332535 }, + { x: 464.53237142409165, y: 588.0191092821726 }, + { x: 533.9005910231865, y: 590.7297254744752 }, + { x: 336.783466401133, y: 568.6209159459714 }, + { x: 534.3848073547013, y: 456.6506112714792 }, + { x: 586.2578785199065, y: 550.521463945985 }, + { x: 499.66901152888323, y: 559.7529733966986 }, + { x: 532.5626584492597, y: 733.6552348030797 }, + { x: 497.02147156929846, y: 492.6493600270171 }, + { x: 606.580397970732, y: 617.7814851115146 }, + { x: 371.80388601566665, y: 537.7538408498999 }, + { x: 462.9379981615447, y: 531.3548011476507 }, + { x: 338.29316854630315, y: 547.0411054807645 }, + { x: 582.8713179380296, y: 466.94360839414503 }, + { x: 461.33461071196456, y: 501.1535871621273 }, + { x: 581.7973386467154, y: 531.4709280550672 }, + { x: 536.8803231304043, y: 479.73216745463947 }, + { x: 421.3847128429275, y: 487.57859601234304 }, + { x: 539.7449324710689, y: 489.2473764445596 }, + { x: 448.86160702202307, y: 472.68810744279574 }, + { x: 499.5956196044608, y: 350.8106506192257 }, + { x: 518.0098139987305, y: 506.415904761604 }, + { x: 446.1348303668796, y: 510.45684902815384 }, + { x: 541.7193240961723, y: 496.7760728575743 }, + { x: 408.7232418534397, y: 436.1613009299706 }, + { x: 482.082654656081, y: 628.6905102567139 }, + { x: 425.84377464511965, y: 531.9712841442458 }, + { x: 449.72310346000125, y: 287.59922334276564 }, + { x: 419.688906991027, y: 547.7306357827842 }, + { x: 464.92434548381436, y: 449.7870685729045 }, + { x: 480.47407555082543, y: 391.7719270180422 }, + { x: 492.00208740598646, y: 447.2149382705922 }, + { x: 425.53609501921926, y: 469.73368919129575 }, + { x: 491.1213008850134, y: 494.3662534758912 }, + { x: 449.40279123058576, y: 555.807871719544 }, + { x: 565.0523154322525, y: 542.6957536427637 }, + { x: 664.1763263894068, y: 621.3514440584214 }, + { x: 475.81980893512815, y: 516.9940039650221 }, + { x: 508.4481771743433, y: 444.91592916044755 }, + { x: 463.74470490265816, y: 401.649298678607 }, + { x: 457.17802961436774, y: 518.5923443244697 }, + { x: 505.4886348789913, y: 465.45072901221596 }, + { x: 465.143291768593, y: 382.5313369530992 }, + { x: 544.2433201650409, y: 509.26660854096286 }, + { x: 554.2268549164515, y: 452.2276213131056 }, + { x: 550.7910288285524, y: 587.1283232502503 }, + { x: 390.79945849972785, y: 537.8573402618811 }, + { x: 508.17377168500565, y: 506.0345586383995 }, + { x: 458.3305045850797, y: 523.9724859834696 }, + { x: 211.89856480675047, y: 574.7304325217884 }, + { x: 604.5403960926834, y: 463.8961920635836 }, + { x: 474.65213533502936, y: 489.4379672085883 }, + { x: 463.726164798927, y: 505.69719640335586 }, + { x: 480.0989073286347, y: 432.20636611362954 }, + { x: 629.4526262984357, y: 454.49378656644075 }, + { x: 550.5097053855411, y: 499.57915897569984 }, + { x: 484.2394635228406, y: 401.1082383413729 }, + { x: 458.03102602949076, y: 557.2990588536151 }, + { x: 374.7444937942013, y: 506.2569641282212 }, + { x: 518.8239813230514, y: 545.1990821890384 }, + { x: 410.5062950587104, y: 475.11014470265116 }, + { x: 536.5450664232412, y: 463.2823697525272 }, + { x: 332.3852271435554, y: 550.9907003371311 }, + { x: 483.6989169357201, y: 607.4255515927225 }, + { x: 588.8149056627042, y: 539.6299193365127 }, + { x: 623.6087269720704, y: 479.8412965175789 }, + { x: 452.88881385197624, y: 433.9407218658284 }, + { x: 466.1688736306886, y: 593.257266912061 }, + { x: 432.4037216704751, y: 382.70895063054036 }, + { x: 582.0203315292996, y: 495.20992395642946 }, + { x: 652.4064989319403, y: 474.2152623871251 }, + { x: 474.25398009710483, y: 722.4165887132413 }, + { x: 406.0992872295093, y: 512.2050871748296 }, + { x: 542.5155827501541, y: 346.041159999362 }, + { x: 643.6339126251648, y: 593.8355006087984 }, + { x: 517.6742550974732, y: 390.0495417886605 }, + { x: 697.2062968594304, y: 533.5319067511434 }, + { x: 494.798843395511, y: 434.4546631552825 }, + { x: 406.82551678968815, y: 439.01803207460244 }, + { x: 544.6095819102176, y: 537.2833611476824 }, + { x: 514.9556465055338, y: 527.7397162599354 }, + { x: 477.74125476826293, y: 409.5941630286829 }, + { x: 405.4063584745187, y: 444.821522108557 }, + { x: 321.6884874794605, y: 361.94942319200743 }, + { x: 521.6612945604838, y: 509.27474955785095 }, + { x: 361.3020201968256, y: 462.74949982383475 }, + { x: 515.4722643387136, y: 582.1661072610259 }, + { x: 531.8452978329603, y: 528.8698402028336 }, + { x: 469.2317318344659, y: 457.3900889866413 }, + { x: 383.8641352789634, y: 487.51457025873685 }, + { x: 405.65299379290025, y: 373.6486573169417 }, + { x: 557.4553999527853, y: 481.7588066538681 }, + { x: 558.3563208756472, y: 492.1089628616265 }, + { x: 519.697263885083, y: 507.51214224844836 }, + { x: 477.6245789913337, y: 437.33226389618113 }, + { x: 386.6806999905625, y: 516.8999021096269 }, + { x: 498.21447183175786, y: 539.6720778354381 }, + { x: 500.4568743618031, y: 509.839377681147 }, + { x: 396.6043280391872, y: 508.5841838024428 }, + { x: 560.3097882390896, y: 470.4959533668516 }, + { x: 505.8589397555764, y: 438.5331420840928 }, + { x: 404.652426392179, y: 463.57551340532524 }, + { x: 538.4624001397573, y: 584.4946466252921 }, + { x: 528.961124900628, y: 593.3479262435405 }, + { x: 510.3789470850636, y: 611.1438106898162 }, + { x: 485.4072028087265, y: 527.2526329719045 }, + { x: 527.6874638963251, y: 594.176158713484 }, + { x: 551.2679026532729, y: 296.2955837922125 }, + { x: 507.7008876340021, y: 588.4780624006426 }, + { x: 517.6959222782743, y: 538.6391471540084 }, + { x: 602.6096304371599, y: 498.30949021725723 }, + { x: 413.0230721172735, y: 517.9734276203731 }, + { x: 581.7993416070958, y: 389.77258222920926 }, + { x: 457.8413719442926, y: 504.1555450001367 }, + { x: 680.1688117266062, y: 580.2061039363467 }, + { x: 529.1612084478692, y: 478.9814622596839 }, + { x: 423.9305207496414, y: 482.5729112923247 }, + { x: 547.2306586256943, y: 484.663041464371 }, + { x: 571.0489407975447, y: 377.6121832800262 }, + { x: 394.62369250834473, y: 700.0094717372975 }, + { x: 429.03835846089385, y: 453.4181340183653 }, + { x: 446.90223955966377, y: 456.86963482595627 }, + { x: 500.15540240744855, y: 546.7216410183082 }, + { x: 520.3052332461197, y: 467.5695079241376 }, + { x: 432.70006316378596, y: 492.9405222292091 }, + { x: 479.40985320017063, y: 310.71658613216437 }, + { x: 317.6336673492284, y: 440.2277027835321 }, + { x: 378.2868046135941, y: 485.4328576540941 }, + { x: 596.059921842645, y: 670.2072255500588 }, + { x: 426.63225177320834, y: 440.67450899526693 }, + { x: 696.3824560788895, y: 536.2970308694265 }, + { x: 548.9554004099568, y: 374.8675335764875 }, + { x: 459.5356721441832, y: 531.3960310016533 }, + { x: 474.76674155526155, y: 514.6899489869693 }, + { x: 627.739952617811, y: 569.3648847223316 }, + { x: 664.42231988802, y: 353.9613339431025 }, + { x: 500.27353730413455, y: 462.7002805194931 }, + { x: 594.6761581751309, y: 549.4804427523618 }, + { x: 473.1200490864201, y: 637.3312546841138 }, + { x: 604.0644769424558, y: 646.3100599742934 }, + { x: 490.66790120775767, y: 625.7919637534566 }, + { x: 390.49822565312934, y: 310.908468663234 }, + { x: 566.1380025560975, y: 342.4257437965115 }, + { x: 498.72403162570356, y: 567.8094628660455 }, + { x: 389.2600351743589, y: 515.3763792624061 }, + { x: 395.04512631256154, y: 566.3125526633387 }, + { x: 453.1486017797189, y: 520.3725631692998 }, + { x: 526.0300848562354, y: 333.1652763866988 }, + { x: 489.3964841150009, y: 608.0114809002282 }, + { x: 492.99705290334975, y: 440.38360401403355 }, + { x: 508.1963544980637, y: 580.7430954565203 }, + { x: 482.4034224893432, y: 355.06239713423156 }, + { x: 556.3767365273534, y: 530.4636877245691 }, + { x: 419.7644177428187, y: 495.8887038880258 }, + { x: 626.5567326290472, y: 749.5257374778339 }, + { x: 418.7486864666422, y: 357.662141376404 }, + { x: 569.2789739479091, y: 496.12243817622715 }, + { x: 387.7696228414706, y: 438.3011539284843 }, + { x: 396.61578494623956, y: 417.6729132609761 }, + { x: 533.0578456033197, y: 478.06745555320447 }, + { x: 548.6819482467496, y: 461.695585816924 }, + { x: 365.96206924856426, y: 630.9339981103036 }, + { x: 451.83117451774604, y: 526.7430517262002 }, + { x: 582.9047987575588, y: 441.7270782296887 }, + { x: 490.1154498735479, y: 470.3281517148312 }, + { x: 568.5804831067309, y: 387.047772708126 }, + { x: 527.8016213850061, y: 562.1950823947911 }, + { x: 594.1015443098378, y: 337.93072606735956 }, + { x: 555.5989560907806, y: 537.4437215015128 }, + { x: 580.9987804144716, y: 463.2444991669335 }, + { x: 477.27812500864, y: 330.1821728794277 }, + { x: 455.19945269488227, y: 466.0972226219533 }, + { x: 386.3417341088935, y: 546.3536179523271 }, + { x: 584.8508647220001, y: 392.5069023856318 }, + { x: 535.8972955474309, y: 696.3119700836784 }, + { x: 512.9478392541178, y: 482.09725884941054 }, + { x: 571.0613169345261, y: 464.34405150243276 }, + { x: 470.6582205422228, y: 519.5389288284686 }, + { x: 449.7694170242311, y: 505.24775677432825 }, + { x: 683.9417472319734, y: 484.3055678544799 }, + { x: 399.9690260081697, y: 462.7083437169307 }, + { x: 422.23721102436, y: 420.06321731733163 }, + { x: 581.345766056873, y: 487.92889191966316 }, + { x: 554.100245870134, y: 565.8172078613276 }, + { x: 505.13988899871686, y: 422.13783709435006 }, + { x: 444.44564391627125, y: 614.4513946455538 }, + { x: 555.4208682592542, y: 514.9642299490376 }, + { x: 525.3575027671648, y: 638.7096468709976 }, + { x: 642.4821701257605, y: 373.74653262524174 }, + { x: 549.9310129270682, y: 561.5262407400992 }, + { x: 447.47329403586537, y: 531.1244276186567 }, + { x: 476.8324194381892, y: 410.33393506104676 }, + { x: 575.7235073554772, y: 587.7757570293226 }, + { x: 471.11638968979366, y: 462.0653350713422 }, + { x: 328.4426511281772, y: 382.8001294365678 }, + { x: 557.4322151802324, y: 443.66976714351756 }, + { x: 496.1747133116625, y: 522.8794856209539 }, + { x: 617.9400379064762, y: 410.0130373860505 }, + { x: 579.9678359562813, y: 511.78927778940346 }, + { x: 580.4222256110895, y: 613.7007095833778 }, + { x: 436.9971117313209, y: 549.8372182683136 }, + { x: 460.0700469187102, y: 582.8430247311647 }, + { x: 480.52549453979293, y: 550.594907124837 }, + { x: 515.341309859586, y: 567.6904514175418 }, + { x: 538.6951183924688, y: 407.1147758938117 }, + { x: 544.6472783176636, y: 491.5738875685816 }, + { x: 474.00451946290184, y: 626.1721256734905 }, + { x: 653.1140314069249, y: 400.2304072268236 }, + { x: 511.73184324070036, y: 424.28323696534335 }, + { x: 456.44354384934513, y: 477.8974107043491 }, + { x: 423.45562970783953, y: 638.0722701840896 }, + { x: 538.6722409588642, y: 577.8492543631795 }, + { x: 552.285508281345, y: 639.7372772829785 }, + { x: 431.2719669756501, y: 453.1243606007722 }, + { x: 523.9425957012721, y: 372.2471731027439 }, + { x: 392.3939587773916, y: 420.07727210254455 }, + { x: 352.1114149859869, y: 469.21118635606257 }, + { x: 635.7528185124794, y: 620.1989579096139 }, + { x: 593.6125931108892, y: 459.9032036799006 }, + { x: 503.5400803792138, y: 352.49031571814436 }, + { x: 483.48001318735584, y: 479.62460053432426 }, + { x: 601.9800728341045, y: 307.1425177552605 }, + { x: 578.5677625802014, y: 502.1555703035992 }, + { x: 602.5469886960171, y: 516.333334149335 }, + { x: 460.3465936399615, y: 567.5426824020806 }, + { x: 393.3737638765459, y: 480.7465586106084 }, + { x: 438.0492489114101, y: 362.2558547966672 }, + { x: 490.6796053702311, y: 478.768186414496 }, + { x: 455.8689956517157, y: 621.5002627201064 }, + { x: 334.08514798711894, y: 438.93957781858506 }, + { x: 617.8142646217834, y: 425.81364059915313 }, + { x: 517.6228411262042, y: 595.7137334519729 }, + { x: 485.0211805787605, y: 493.7670485854333 }, + { x: 632.1068907973962, y: 340.12637634726786 }, + { x: 373.08536359019575, y: 436.84967620421435 }, + { x: 571.7972870271606, y: 416.1407836546993 }, + { x: 455.2439418589584, y: 527.8137064425014 }, + { x: 568.2591586640109, y: 468.89290450025425 }, + { x: 646.0951604100743, y: 619.0023202878414 }, + { x: 525.7933364638385, y: 484.9304070162185 }, + { x: 551.798208313961, y: 506.7644521623696 }, + { x: 450.2687336586831, y: 432.86783128016134 }, + { x: 615.387878171927, y: 385.30066721027083 }, + { x: 685.3415524104987, y: 483.4261028710347 }, + { x: 449.4380469787378, y: 453.9673974793254 }, + { x: 459.35595625269224, y: 402.4088030590528 }, + { x: 432.6683081970933, y: 532.714904941048 }, + { x: 440.198809949004, y: 529.3972675961419 }, + { x: 524.455332680169, y: 446.8012248573339 }, + { x: 526.7779076436276, y: 545.9378574755532 }, + { x: 487.6965590409482, y: 438.33168175944235 }, + { x: 491.7632854808359, y: 482.8846291486513 }, + { x: 425.1777518325213, y: 582.9981238510991 }, + { x: 463.83546978762797, y: 524.8442485549573 }, + { x: 446.1166326000618, y: 375.5129553875806 }, + { x: 462.05985483222184, y: 425.7411657585834 }, + { x: 509.38855607395084, y: 492.5197179261496 }, + { x: 430.3716067606543, y: 489.8533495682002 }, + { x: 567.1856573423005, y: 591.0413109040437 }, + { x: 334.82429044210573, y: 588.5349104568045 }, + { x: 485.81202023070676, y: 574.1336636730789 }, + { x: 473.0625078729557, y: 404.59284529710044 }, + { x: 397.56420056369313, y: 362.22593941843274 }, + { x: 512.4764092378841, y: 505.58088704757864 }, + { x: 525.7379615435485, y: 528.6587672008093 }, + { x: 572.5849585805538, y: 571.5219640354177 }, + { x: 540.5339138507446, y: 563.7998022109335 }, + { x: 409.2640666613289, y: 585.3775671701603 }, + { x: 650.4025093038628, y: 444.03216972840227 }, + { x: 473.80902730536263, y: 566.7155838133515 }, + { x: 513.8689311941118, y: 641.2430867672864 }, + { x: 480.4402194180348, y: 563.569450018222 }, + { x: 465.7598266968873, y: 600.2194339533771 }, + { x: 571.6678089928896, y: 507.5762669806091 }, + { x: 496.13676037737116, y: 606.3637787758283 }, + { x: 521.2509165821102, y: 356.6429291913573 }, + { x: 477.1709109812602, y: 388.2170309481666 }, + { x: 527.2901276344268, y: 545.5119540355945 }, + { x: 530.7808677563178, y: 498.0853931712235 }, + { x: 362.85297775758477, y: 376.4726957570216 }, + { x: 604.8869090289303, y: 425.0279095021462 }, + { x: 427.33328030577565, y: 602.2201737873148 }, + { x: 490.45102513393533, y: 566.2346149157177 }, + { x: 541.8127264575502, y: 564.4266795531707 }, + { x: 422.325293295152, y: 599.8949607446589 }, + { x: 471.6439623937621, y: 598.7909059873555 }, + { x: 422.4982126609701, y: 536.9324749345669 }, + { x: 540.0620003657338, y: 268.23722383346774 }, + { x: 606.9306507865085, y: 440.36818129349916 }, + { x: 535.9334606305631, y: 451.5978560682063 }, + { x: 440.8281660355861, y: 497.3755369447025 }, + { x: 364.5246826344751, y: 515.0694961266424 }, + { x: 521.1908508917573, y: 479.6191000481474 }, + { x: 442.3971251211775, y: 523.4672048121915 }, + { x: 378.67831985241435, y: 600.5969420408649 }, + { x: 516.5444197083655, y: 382.086617834092 }, + { x: 611.1506512203224, y: 511.84686968837303 }, + { x: 572.1600605873382, y: 559.0911496727878 }, + { x: 355.7854975427032, y: 621.5310191309977 }, + { x: 392.8909084134274, y: 429.44168910888624 }, + { x: 566.1184394847702, y: 450.9517793776791 }, + { x: 563.7852413572524, y: 398.0539864806101 }, + { x: 571.5396768746826, y: 479.5347921109074 }, + { x: 512.2249461606531, y: 535.6499899191176 }, + { x: 563.4956579912108, y: 376.96931869615565 }, + { x: 446.7971370342799, y: 469.79534247840456 }, + { x: 395.230246518984, y: 324.8683329129203 }, + { x: 500.27216494252224, y: 670.0041679383955 }, + { x: 502.8298481412807, y: 381.9185623470128 }, + { x: 438.2257985269379, y: 489.68260789180533 }, + { x: 645.3300024449725, y: 479.75618737749863 }, + { x: 415.91417101310475, y: 524.468344625876 }, + { x: 478.7204998403519, y: 404.1512985659799 }, + { x: 528.1510525044142, y: 574.4391188361618 }, + { x: 417.2504976065919, y: 399.61027551582197 }, + { x: 729.3227346599622, y: 459.7219096608828 }, + { x: 508.04825319504647, y: 435.96885131963074 }, + { x: 535.3871385799482, y: 438.1204565219904 }, + { x: 620.2278888140053, y: 472.0920707987642 }, + { x: 579.0737526156757, y: 512.6691282439778 }, + { x: 563.6624155645421, y: 419.49058104290947 }, + { x: 546.4058085812471, y: 484.973113905057 }, + { x: 476.102132127935, y: 590.4734644345191 }, + { x: 420.3951944583191, y: 422.96613357737476 }, + { x: 395.5834671794034, y: 451.1057461648372 }, + { x: 605.2924224272138, y: 632.7862602693494 }, + { x: 320.5792318004338, y: 476.14475476682173 }, + { x: 555.8842990108643, y: 467.0922505172094 }, + { x: 511.752823321972, y: 497.1301987728249 }, + { x: 627.4985443664052, y: 517.403661641187 }, + { x: 460.467208488182, y: 442.9907522160578 }, + { x: 325.1143775978037, y: 548.0102903590863 }, + { x: 595.9132884053315, y: 536.4710325712115 }, + { x: 333.9634887245654, y: 565.7690181076008 }, + { x: 460.8070944510852, y: 542.5193469631959 }, + { x: 569.3099243101011, y: 596.7679504034089 }, + { x: 599.7622962192024, y: 587.7817140731728 }, + { x: 605.2333628956932, y: 555.3397707369844 }, + { x: 525.8541534950963, y: 591.9753384309636 }, + { x: 562.2873883086985, y: 564.652245971429 }, + { x: 593.125622789125, y: 646.5095121577685 }, + { x: 528.3785696014553, y: 561.4319954581767 }, + { x: 562.0235111049607, y: 540.0388583697173 }, + { x: 479.98352971788245, y: 635.2537373804788 }, + { x: 683.8163873885301, y: 540.7453259112881 }, + { x: 341.3216916961063, y: 595.4480897965195 }, + { x: 629.774897110141, y: 457.30992723206396 }, + { x: 588.4621952936112, y: 463.3201846926253 }, + { x: 539.2519782005975, y: 556.9254479421566 }, + { x: 558.9462354769668, y: 377.9598567889521 }, + { x: 475.25962872517897, y: 530.6505314391079 }, + { x: 471.0898586517417, y: 607.8657439408781 }, + { x: 405.442863418894, y: 426.63192933023663 }, + { x: 392.277064629337, y: 508.8293609444394 }, + { x: 563.2801972811317, y: 485.0617688947425 }, + { x: 514.6740362301042, y: 585.456678967984 }, + { x: 626.1445241914307, y: 434.871906309453 }, + { x: 582.0767593537491, y: 540.7074363276917 }, + { x: 497.66009983657636, y: 610.1909037598729 }, + { x: 564.2139016856188, y: 573.279828843626 }, + { x: 492.7070636593087, y: 473.3696763176616 }, + { x: 412.1042520726131, y: 414.1932802334767 }, + { x: 397.81463173567744, y: 608.3857394528636 }, + { x: 529.3125325134371, y: 479.05279623435155 }, + { x: 454.8440542817299, y: 570.8848201200701 }, + { x: 481.99948008383234, y: 537.8984252824558 }, + { x: 466.8233381140212, y: 614.6915748364435 }, + { x: 529.1781259757561, y: 334.91840002589186 }, + { x: 543.2267950376435, y: 527.2277199561922 }, + { x: 681.0809685850758, y: 537.8042119742028 }, + { x: 538.1749829502172, y: 390.39152308688665 }, + { x: 486.6511639358574, y: 416.9544506386641 }, + { x: 443.83948781249495, y: 641.4184344680891 }, + { x: 562.9226042462709, y: 519.5118875679203 }, + { x: 506.46394119892096, y: 422.88205256983366 }, + { x: 585.7224010988533, y: 533.9082046729562 }, + { x: 502.5521934638452, y: 607.6406346361509 }, + { x: 388.7608548379816, y: 538.6793511958092 }, + { x: 482.20369081623204, y: 506.6072228769318 }, + { x: 531.5382726990536, y: 540.7390134393922 }, + { x: 530.4605595177179, y: 594.337437433271 }, + { x: 404.5134426298756, y: 429.75753802189973 }, + { x: 492.2817855909661, y: 641.7841340715981 }, + { x: 492.92254183696446, y: 563.6496221559248 }, + { x: 442.6597057370762, y: 611.5223059556535 }, + { x: 586.2417798862663, y: 418.6846916743144 }, + { x: 493.70099652719534, y: 481.72199336724117 }, + { x: 493.85710451631473, y: 595.8640897481832 }, + { x: 501.1561516589185, y: 682.6908577462624 }, + { x: 503.21578694316713, y: 519.0042987301437 }, + { x: 507.73638975422, y: 626.510954750474 }, + { x: 561.257261808792, y: 372.01845192963395 }, + { x: 397.10268820590676, y: 515.7095266083511 }, + { x: 395.1118909987129, y: 604.7286849328888 }, + { x: 520.594740801459, y: 612.0673519411307 }, + { x: 528.7289951158066, y: 397.9974262738962 }, + { x: 536.6540363477791, y: 675.8725538797256 }, + { x: 460.67581059101013, y: 578.7585018112575 }, + { x: 613.9773683350654, y: 593.2583222013895 }, + { x: 576.1191477958195, y: 516.5062965966378 }, + { x: 585.9270905859661, y: 461.1538384040178 }, + { x: 507.27837302060124, y: 529.8271375050829 }, + { x: 408.1380593516653, y: 531.7133203675004 }, + { x: 509.6012918287131, y: 371.3856594428655 }, + { x: 409.35168667225224, y: 652.1061274713718 }, + { x: 650.3279443256315, y: 521.0288033630213 }, + { x: 407.1543118176588, y: 476.3879001917622 }, + { x: 448.04147797243064, y: 568.792572513917 }, + { x: 482.1862287056724, y: 672.2401592844891 }, + { x: 332.02192200168486, y: 527.7703858055057 }, + { x: 445.14386811395195, y: 482.37902220353334 }, + { x: 440.83958774212545, y: 566.3770123545485 }, + { x: 441.0182157184419, y: 523.7864876933295 }, + { x: 505.1306979178894, y: 448.27874697316435 }, + { x: 635.2031822731875, y: 478.9591453315155 }, + { x: 532.5647240362346, y: 480.9144298512188 }, + { x: 564.78132689951, y: 459.50075171562634 }, + { x: 510.5135065996153, y: 520.1460158111068 }, + { x: 483.87169516795325, y: 502.55005940468936 }, + { x: 489.71411208699914, y: 520.8043235308375 }, + { x: 440.79310406732407, y: 632.6819215982563 }, + { x: 575.613422290649, y: 527.1345152282136 }, + { x: 371.65949856961674, y: 557.9193680352147 }, + { x: 448.9901943773482, y: 435.83599599218064 }, + { x: 468.4040031546869, y: 458.8117296694587 }, + { x: 424.1970242776248, y: 510.32903634995967 }, + { x: 484.34423672681424, y: 329.3501756062952 }, + { x: 396.12098238521725, y: 454.7867268028899 }, + { x: 482.15966373561196, y: 495.7719744924583 }, + { x: 503.1013867575087, y: 465.17657265982143 }, + { x: 579.3035167692143, y: 363.46890350087807 }, + { x: 539.3866713816002, y: 572.4550076678007 }, + { x: 431.8489752404569, y: 557.7551024181017 }, + { x: 728.4311010185129, y: 550.7901847222113 }, + { x: 446.9185583739578, y: 404.6990098189804 }, + { x: 556.3918962349734, y: 532.2925839339954 }, + { x: 455.6004334910393, y: 555.073396463379 }, + { x: 581.9122319577673, y: 555.9284731777594 }, + { x: 429.1288672401044, y: 272.374518122646 }, + { x: 542.5017712518866, y: 426.23077220743687 }, + { x: 512.905253520108, y: 432.54817615160937 }, + { x: 512.9172843348791, y: 506.01867425344483 }, + { x: 454.91866293404667, y: 409.89812111287847 }, + { x: 468.3343580810703, y: 473.084169194802 }, + { x: 450.4819775082967, y: 503.08977783251584 }, + { x: 450.739854845646, y: 524.824030718596 }, + { x: 390.60042716092374, y: 487.99373226125834 }, + { x: 392.6812000840405, y: 509.10463662250027 }, + { x: 560.011654158543, y: 495.0924827676309 }, + { x: 559.044572540643, y: 507.9525128241118 }, + { x: 495.46702543672103, y: 503.0671526647668 }, + { x: 513.1155355859919, y: 519.9889037862815 }, + { x: 676.0539182941292, y: 424.86003336682506 }, + { x: 491.72974264632586, y: 418.53343303963567 }, + { x: 475.0936001100203, y: 446.41446990645437 }, + { x: 589.9217358966552, y: 599.9006125154442 }, + { x: 274.2196156246059, y: 626.589821531672 }, + { x: 510.57488768480965, y: 430.7175620295051 }, + { x: 407.6368010440314, y: 566.7226098608865 }, + { x: 540.0608765923658, y: 402.8387189155337 }, + { x: 476.49582172946845, y: 471.60797138053886 }, + { x: 515.4826979645305, y: 366.3775120267172 }, + { x: 420.90946350957563, y: 419.6217163626932 }, + { x: 497.59193206509207, y: 449.4790202845697 }, + { x: 413.96569929054135, y: 461.20456866211146 }, + { x: 565.1460622770901, y: 510.21213053948804 }, + { x: 496.7722587685551, y: 505.62896979322153 }, + { x: 353.00812977813416, y: 567.3486673635567 }, + { x: 637.2774513599962, y: 501.68414228689255 }, + { x: 482.12984548936913, y: 454.3857295184553 }, + { x: 563.889911381031, y: 440.1785558353954 }, + { x: 545.0890188911553, y: 440.5289165562692 }, + { x: 436.8073122426593, y: 619.2078751568192 }, + { x: 605.5423387306544, y: 580.0784922449934 }, + { x: 469.532669128929, y: 560.3442589934073 }, + { x: 447.15116336620224, y: 478.03341754496876 }, + { x: 515.5808008719257, y: 474.29372966281954 }, + { x: 537.2366271808814, y: 537.9233316948031 }, + { x: 315.9081540623598, y: 513.9677921359835 }, + { x: 443.94087269470737, y: 253.68633480784766 }, + { x: 525.0082453645023, y: 480.17496256937545 }, + { x: 669.0631209450423, y: 541.4800047046759 }, + { x: 424.9052661293348, y: 502.3414033711398 }, + { x: 552.1617004849156, y: 487.5064843356538 }, + { x: 512.9457421710656, y: 469.50808704275704 }, + { x: 426.0515832085964, y: 572.9729217614308 }, + { x: 478.12849609656286, y: 511.7360377798443 }, + { x: 450.66402500188485, y: 331.27206240599696 }, + { x: 414.6608994844545, y: 499.30032678644767 }, + { x: 575.0072111226609, y: 581.9201899181702 }, + { x: 461.1966182161947, y: 404.4640019083771 }, + { x: 609.571694657682, y: 323.578409113701 }, + { x: 434.07767841386516, y: 421.10137540535686 }, + { x: 450.9535739111606, y: 525.3654064812511 }, + { x: 525.6474862235029, y: 568.9368700640288 }, + { x: 553.1379037972506, y: 612.587588659274 }, + { x: 359.17679723870344, y: 478.7682358393113 }, + { x: 463.5822016824479, y: 623.0900498251482 }, + { x: 465.3323639241772, y: 456.367519217294 }, + { x: 494.5755802914467, y: 551.5978034376832 }, + { x: 624.7123300555137, y: 461.284442188934 }, + { x: 550.2962679721757, y: 499.42672874803145 }, + { x: 438.12895348590257, y: 593.3772231688772 }, + { x: 493.7608422309046, y: 330.30961695869695 }, + { x: 531.8208873228848, y: 557.5440696035282 }, + { x: 514.1709464364438, y: 507.80868309761416 }, + { x: 572.1098849132386, y: 506.6787891425146 }, + { x: 534.0219889823662, y: 622.0169784812482 }, + { x: 495.89140537808925, y: 517.0277491339862 }, + { x: 550.4324691320285, y: 447.79648292442346 }, + { x: 485.2682752550611, y: 343.5658914789321 }, + { x: 443.24152110168825, y: 571.3359051310853 }, + { x: 579.8773770712485, y: 456.3990989591147 }, + { x: 518.0496258697879, y: 542.9899596474276 }, + { x: 451.3719054594958, y: 513.6369281635617 }, + { x: 509.1998923664028, y: 561.5556571742668 }, + { x: 573.6037166985305, y: 483.6698252156604 }, + { x: 490.9309965170419, y: 526.3404257937894 }, + { x: 433.25360875802414, y: 464.4060911149918 }, + { x: 420.4438713331765, y: 670.7340190547727 }, + { x: 500.5869744603166, y: 505.02722084133694 }, + { x: 581.4556003253261, y: 359.19624918002245 }, + { x: 531.9339179738793, y: 639.5378342741336 }, + { x: 451.2828535475956, y: 506.96641652703215 }, + { x: 493.1648265346956, y: 484.304860601236 }, + { x: 264.6167885698519, y: 618.5760529915333 }, + { x: 444.4004898238353, y: 540.7566233371936 }, + { x: 480.0192560494728, y: 577.562460628525 }, + { x: 509.3496583929782, y: 642.0933343662082 }, + { x: 534.2052141706351, y: 608.9685984048267 }, + { x: 546.4385711619324, y: 493.491794946789 }, + { x: 455.0166830608425, y: 376.4039902841645 }, + { x: 428.26873852661663, y: 526.1917688075115 }, + { x: 522.31442872344, y: 510.29854398094125 }, + { x: 382.869569099349, y: 516.7275853977133 }, + { x: 449.47629384380804, y: 412.5598074646182 }, + { x: 466.3272305981255, y: 437.77647898413704 }, + { x: 494.33730410416115, y: 569.2466741795388 }, + { x: 570.850678721421, y: 406.8634359301221 }, + { x: 435.86283340726897, y: 558.2099552577272 }, + { x: 572.8617731777421, y: 523.2505269638182 }, + { x: 764.1526383538614, y: 300.7431778693811 }, + { x: 469.74351310035433, y: 496.6583454640491 }, + { x: 686.4382908323215, y: 439.5344033900257 }, + { x: 392.61085580273783, y: 520.599429489737 }, + { x: 486.41559809454736, y: 457.95394654283683 }, + { x: 683.483802887262, y: 525.9324975560189 }, + { x: 604.2691827769518, y: 610.6899986402096 }, + { x: 439.31494789718226, y: 608.0045489176407 }, + { x: 463.914110162254, y: 435.25614989350134 }, + { x: 477.2516239569152, y: 540.1401392177487 }, + { x: 637.343604281198, y: 477.70219847495895 }, + { x: 553.2977253182025, y: 524.002780960052 }, + { x: 405.84549279887545, y: 427.5863025761163 }, + { x: 584.2180781886257, y: 565.7475859789315 }, + { x: 537.4779996510825, y: 483.4938547437982 }, + { x: 410.37004037611405, y: 404.9227164465485 }, + { x: 387.211403529204, y: 482.4726749975946 }, + { x: 372.92765669888036, y: 607.2207729060416 }, + { x: 388.3214843041369, y: 557.9819729419087 }, + { x: 473.5828176772773, y: 646.0346174053482 }, + { x: 455.8395825873313, y: 560.3714801149157 }, + { x: 650.2344980015788, y: 509.49597270176884 }, + { x: 560.0399104379837, y: 521.6781418624263 }, + { x: 687.1787226172372, y: 435.6658338749941 }, + { x: 567.1127544956692, y: 531.1822196480132 }, + { x: 452.9559992774003, y: 583.8380290107248 }, +]; + +const stories = storiesOf('Wrectangle', module); +stories.addDecorator(withKnobs); +stories.add('分箱图', () => ); + +const data1 = []; +class NewData extends React.Component { + state = { + data: defaultData.slice(0,200) + } + + componentDidMount() { + setInterval(() => { + let t = Date.now(); + + this.setState({ + data: defaultData.slice(0, Math.round(Math.random() * 500)), + }) + }, 2000); + } + + render(){ + return ( + + + + ); + } +} +stories.add('动态数据', () => ( + +)); diff --git a/stories/chart.sankey.stories.js b/stories/chart.sankey.stories.js index 8ec0a360..a51a8836 100644 --- a/stories/chart.sankey.stories.js +++ b/stories/chart.sankey.stories.js @@ -9,7 +9,9 @@ import { Wsankey, Wcontainer } from '@alicloud/cloud-charts'; const stories = storiesOf('Wsankey', module); stories.add('基础桑基图', () => ( - ( + + + +)); + +const data2 = [ + { + name: '团队1', + data: [ + ['A', 35], + ['A', 10], + ['B', 32], + ['A', 7], + ['C', 32], + ['B', 23], + ['A', 80], + ['C', 33], + ['A', 11], + ['A', 32], + ['B', 24], + ['B', 72], + ['C', 14], + ['A', 42] + ] + }, + { + name: '团队2', + data: [ + ['A', 54], + ['A', 10], + ['B', 24], + ['B', 72], + ['C', 14], + ['A', 42], + ['B', 32], + ['A', 7], + ['C', 32], + ['B', 23], + ['A', 24], + ['C', 33], + ['A', 11], + ['A', 32] + ] + }, + { + name: '团队3', + data: [ + ['A', 31], + ['A', 10], + ['A', 11], + ['A', 32], + ['B', 24], + ['B', 32], + ['A', 7], + ['C', 32], + ['B', 23], + ['A', 43], + ['C', 33], + ['B', 72], + ['C', 14], + ['A', 42] + ] + } +]; + +stories.add('扰动点图', () => ( + + + +)); + diff --git a/stories/feat.autoTickCount.stories.js b/stories/feat.autoTickCount.stories.js index 2de9ceef..33df203a 100644 --- a/stories/feat.autoTickCount.stories.js +++ b/stories/feat.autoTickCount.stories.js @@ -8,23 +8,46 @@ import { Wcontainer, Wline } from '@alicloud/cloud-charts'; const data = [ { - "name":"机房A", - "data":[[1483372800000,4092],[1483459200000,1592],[1483545600000,3714],[1483632000000,4854],[1483718400000,6514],[1483804800000,9022],[1483891200000,6023],[1483977600000,4018]] - }, { - "name":"机房B", - "yAxis": 1, - "data":[[1483372800000,6051],[1483459200000,3278],[1483545600000,5175],[1483632000000,6548],[1483718400000,9048],[1483804800000,11394],[1483891200000,8597],[1483977600000,6588]] - } + "name":"曲线1", + "data":[] + }, + { + "name":"曲线2", + "data":[] + }, + { + "name":"曲线3", + yAxis: 1, + "data":[] + }, + { + "name":"曲线4", + yAxis: 1, + "data":[] + }, ]; +for (let i = 0; i < 24; i++) { + const time = `2020-01-01 ${i}:00:00`; + data[0].data.push([time, Math.round(Math.random() * 100 + 800)]); + data[1].data.push([time, Math.round(Math.random() * 100 + 600)]); + data[2].data.push([time, Math.round(Math.random() * 100 + 400)]); + data[3].data.push([time, Math.round(Math.random() * 100 + 200)]); +} + const stories = storiesOf('autoTickCount', module); stories.add('折线图', () => ( diff --git a/stories/feat.axis.stories.js b/stories/feat.axis.stories.js new file mode 100644 index 00000000..3b5fe8e1 --- /dev/null +++ b/stories/feat.axis.stories.js @@ -0,0 +1,78 @@ +import React, { useEffect, useRef } from 'react'; + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { linkTo } from '@storybook/addon-links'; +import { withKnobs, select, radios } from "@storybook/addon-knobs"; + +import { Wcontainer, Wline, Wlinebar } from '@alicloud/cloud-charts'; + +const data = [ + { + "name":"机房A", + "data":[[1483372800000,4092],[1483459200000,1592],[1483545600000,3714],[1483632000000,4854],[1483718400000,6514],[1483804800000,9022],[1483891200000,6023],[1483977600000,4018]] + }, { + "name":"机房B", + "yAxis": 1, + "data":[[1483372800000,6051],[1483459200000,3278],[1483545600000,5175],[1483632000000,6548],[1483718400000,9048],[1483804800000,11394],[1483891200000,8597],[1483977600000,6588]] + } +]; + +// const lineBarData = [ +// { +// "name":"机房1", +// type: 'bar', +// "data":[[1483372800000,1892],[1483459200000,7292],[1483545600000,5714],[1483632000000,5354],[1483718400000,2014],[1483804800000,22],[1483891200000,11023],[1483977600000,5218],[1484064000000,8759],[1484150400000,9981],[1484236800000,4533],[1484323200000,11398],[1484409600000,1064],[1484496000000,6494]] +// }, +// { +// "name":"机房2", +// type: 'bar', +// "data":[[1483372800000,182],[1483459200000,792],[1483545600000,514],[1483632000000,554],[1483718400000,204],[1483804800000,22],[1483891200000,1023],[1483977600000,528],[1484064000000,879],[1484150400000,981],[1484236800000,453],[1484323200000,1198],[1484409600000,1064],[1484496000000,694]] +// }, +// { +// "name":"机房3", +// type: 'line', +// yAxis: 1, +// "data":[[1483372800000,11751],[1483459200000,4078],[1483545600000,2175],[1483632000000,12048],[1483718400000,1748],[1483804800000,10494],[1483891200000,9597],[1483977600000,4788],[1484064000000,2085],[1484150400000,492],[1484236800000,2965],[1484323200000,4246],[1484409600000,2160],[1484496000000,11877]] +// }, +// { +// "name":"机房4", +// type: 'line', +// yAxis: 1, +// "data":[[1483372800000,1151],[1483459200000,4778],[1483545600000,21175],[1483632000000,19048],[1483718400000,14748],[1483804800000,18494],[1483891200000,10597],[1483977600000,8788],[1484064000000,12985],[1484150400000,2492],[1484236800000,5965],[1484323200000,10246],[1484409600000,12160],[1484496000000,6877]] +// } +// ]; + + +const stories = storiesOf('axis', module); +stories.addDecorator(withKnobs); +stories.add('轴标题', () => ( + + + +)); + +stories.add('tickLine', () => ( + + + +)); + +// stories.add('图例位置测试-linebar', () => ( +// +// +// +// )); diff --git a/stories/feat.connect.stories.js b/stories/feat.connect.stories.js new file mode 100644 index 00000000..59b43538 --- /dev/null +++ b/stories/feat.connect.stories.js @@ -0,0 +1,122 @@ +import React from 'react'; + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { linkTo } from '@storybook/addon-links'; + +import { Wcontainer, Wline, Wbar, Util, Wscatter } from '@alicloud/cloud-charts'; + +const lineData = [ + { + name: '机房A', + data: [ + [1483372800000, 1592], + [1483459200000, 4092], + [1483545600000, 3714], + [1483632000000, 3984], + [1483718400000, 6514], + [1483804800000, 6666], + [1483891200000, 6023], + [1483977600000, 4018] + ] + }, + { + name: '机房B', + data: [ + [1483372800000, 3592], + [1483459200000, 6092], + [1483545600000, 5714], + [1483632000000, 5984], + [1483718400000, 8514], + [1483804800000, 8666], + [1483891200000, 8023], + [1483977600000, 6018] + ] + } +]; + +const barData = [ + { + name: '柱1', + data: [ + ['一', 59], + ['二', 23], + ['三', 19], + ['四', 27], + ['五', 77], + ['六', 100], + ['七', 70], + ['八', 61], + ['九', 15], + ], + }, + { + name: '柱2', + data: [ + ['一', 92], + ['二', 15], + ['三', 4], + ['四', 49], + ['五', 64], + ['六', 76], + ['七', 21], + ['八', 100], + ['九', 71], + ], + }, +]; + +const stories = storiesOf('connect', module); + +class ConnectDemo extends React.Component{ + chart1 = null; + chart2 = null; + chart3 = null; + componentDidMount() { + new Util.Connect([this.chart1, this.chart2], { + custom(e, target, source) { + console.log(e, target) + target.showTooltip({ x: e.x, y: e.y }); + } + }); + } + render(){ + return ( +
    + (this.chart1 = c)} config={{}} data={lineData}/> + (this.chart2 = c)} config={{}} data={barData}/> + (this.chart3 = c)} config={{}} data={lineData}/> +
    + ); + } +} +stories.add('线柱联动', () => ( + +)); + +class ConnectDataDemo extends React.Component{ + chart1 = null; + chart2 = null; + chart3 = null; + componentDidMount() { + new Util.Connect([this.chart1, this.chart2, this.chart3], { + type: 'data', + }); + } + render(){ + return ( +
    + (this.chart1 = c)} config={{ + padding: [40, 400, 24, 40], + }} data={lineData}/> + (this.chart2 = c)} config={{}} data={barData}/> + (this.chart3 = c)} config={{ + padding: [40, 10, 24, 400], + }} data={lineData}/> +
    + ); + } +} +stories.add('按数据联动', () => ( + +)); diff --git a/stories/feat.legend.stories.js b/stories/feat.legend.stories.js index 4e084f42..ccec9d11 100644 --- a/stories/feat.legend.stories.js +++ b/stories/feat.legend.stories.js @@ -3,8 +3,9 @@ import React, { useEffect, useRef } from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; +import { withKnobs, select, radios } from "@storybook/addon-knobs"; -import { Wcontainer, Wline, Wlinebar } from '@alicloud/cloud-charts'; +import { Wcontainer, Wline, Wlinebar, Wpie } from '@alicloud/cloud-charts'; const data = [ { @@ -42,53 +43,129 @@ const lineBarData = [ } ]; + const stories = storiesOf('legend', module); -const handleClick = action('onClick'); -stories.add('config.legend.onClick', () => ( +stories.addDecorator(withKnobs); +// const handleClick = action('onClick'); +// stories.add('config.legend.onClick', () => ( +// +// { +// // handleClick('config.legend.onClick', e); +// // }, +// } +// }} data={data} /> +// +// )); +// +// function LineLegendClick() { +// const chart = useRef(); +// useEffect(() => { +// if (chart.current) { +// const legend = chart.current.get('legendController').legends['top-center'][0]; +// legend && legend.on('itemclick', handleClick); +// } +// }, []); +// return ( +// +// (chart.current = c)} height="300" data={data} /> +// +// ); +// } +// stories.add('线图图例点击', () => ( +// +// )); +// +// function LineBarLegendClick() { +// const chart = useRef(); +// useEffect(() => { +// if (chart.current) { +// const legends = chart.current.get('legendController').legends['top-center']; +// legends[0] && legends[0].on('itemclick', handleClick); +// legends[1] && legends[1].on('itemclick', handleClick); +// } +// }, []); +// return ( +// +// (chart.current = c)} height="300" data={lineBarData} /> +// +// ); +// } +// stories.add('线柱图图例点击', () => ( +// +// )); + + +const positionOptions = { + '顶部': 'top', + '底部': 'bottom', +}; +const alignOptions = { + '左': 'left', + '中': 'center', + '右': 'right', +}; +const radioOptions = { + '上左': 'top-left', + '上中': 'top', + '上右': 'top-right', + '下左': 'bottom-left', + '下中': 'bottom', + '下右': 'bottom-right', + '左上': 'left-top', + '左中': 'left', + '左下': 'left-bottom', + '右上': 'right-top', + '右中': 'right', + '右下': 'right-bottom', +}; +stories.add('图例位置测试-line', () => ( { - handleClick('config.legend.onClick', e); - }, + // position: select('上下位置', positionOptions, 'top'), + // align: select('左右分布', alignOptions, 'left'), + position: radios('位置', radioOptions, 'top'), + align: '', } }} data={data} /> )); -function LineLegendClick() { - const chart = useRef(); - useEffect(() => { - if (chart.current) { - const legend = chart.current.get('legendController').legends['top-center'][0]; - legend && legend.on('itemclick', handleClick); - } - }, []); - return ( - - (chart.current = c)} height="300" data={data} /> - - ); -} -stories.add('线图图例点击', () => ( - +stories.add('图例位置测试-linebar', () => ( + + + )); -function LineBarLegendClick() { - const chart = useRef(); - useEffect(() => { - if (chart.current) { - const legends = chart.current.get('legendController').legends['top-center']; - legends[0] && legends[0].on('itemclick', handleClick); - legends[1] && legends[1].on('itemclick', handleClick); - } - }, []); - return ( - - (chart.current = c)} height="300" data={lineBarData} /> - - ); -} -stories.add('线柱图图例点击', () => ( - +const pieData = [ + { + "name": "浏览器占比", + "data": [ + ['Firefox', 45.0], + ['IE', 26.8], + ['Chrome', 12.8], + ['Safari', 8.5], + ['Opera', 6.2], + ['Others', 0.7] + ] + } +]; +stories.add('图例位置测试-pie', () => ( + + + )); diff --git a/stories/feat.theme.stories.js b/stories/feat.theme.stories.js index 0ba3c168..3391770f 100644 --- a/stories/feat.theme.stories.js +++ b/stories/feat.theme.stories.js @@ -2,9 +2,10 @@ import React, { useMemo, useRef } from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; -import { withKnobs, select } from "@storybook/addon-knobs"; +import { withKnobs, select, color } from "@storybook/addon-knobs"; import { themes, Wcontainer, Wline, Wbar, Wlinebar } from '@alicloud/cloud-charts'; +import { isContrastColorWhite } from '@antv/g2/esm/util/color'; const data = [ @@ -89,3 +90,13 @@ function ThemeDemo() { stories.add('主题动态切换', () => ( )); + +stories.add('亮暗颜色判断测试', () => { + const bg = color('背景色', '#fff') + const isDark = isContrastColorWhite(bg); + return ( +
    + isDark: {String(isDark)} +
    + ); +}); diff --git a/stories/feat.tooltip.stories.js b/stories/feat.tooltip.stories.js new file mode 100644 index 00000000..b027d9e6 --- /dev/null +++ b/stories/feat.tooltip.stories.js @@ -0,0 +1,67 @@ +import React, { useEffect, useRef } from 'react'; + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { linkTo } from '@storybook/addon-links'; +import { withKnobs, select, radios } from "@storybook/addon-knobs"; + +import { Wcontainer, Wline, Wlinebar } from '@alicloud/cloud-charts'; + +const data = [ + { + "name":"数据项长名称", + "data":[[1483372800000,92],[1483459200000,92],[1483545600000,714]] + }, + { + "name":"短名", + // "yAxis": 1, + "data":[[1483372800000,651],[1483459200000,278],[1483545600000,175]] + }, + { + "name":"长数据值", + "yAxis": 1, + "data":[[1483372800000,206051],[1483459200000,193278],[1483545600000,305175]] + } +]; + +// const lineBarData = [ +// { +// "name":"机房1", +// type: 'bar', +// "data":[[1483372800000,1892],[1483459200000,7292],[1483545600000,5714],[1483632000000,5354],[1483718400000,2014],[1483804800000,22],[1483891200000,11023],[1483977600000,5218],[1484064000000,8759],[1484150400000,9981],[1484236800000,4533],[1484323200000,11398],[1484409600000,1064],[1484496000000,6494]] +// }, +// { +// "name":"机房2", +// type: 'bar', +// "data":[[1483372800000,182],[1483459200000,792],[1483545600000,514],[1483632000000,554],[1483718400000,204],[1483804800000,22],[1483891200000,1023],[1483977600000,528],[1484064000000,879],[1484150400000,981],[1484236800000,453],[1484323200000,1198],[1484409600000,1064],[1484496000000,694]] +// }, +// { +// "name":"机房3", +// type: 'line', +// yAxis: 1, +// "data":[[1483372800000,11751],[1483459200000,4078],[1483545600000,2175],[1483632000000,12048],[1483718400000,1748],[1483804800000,10494],[1483891200000,9597],[1483977600000,4788],[1484064000000,2085],[1484150400000,492],[1484236800000,2965],[1484323200000,4246],[1484409600000,2160],[1484496000000,11877]] +// }, +// { +// "name":"机房4", +// type: 'line', +// yAxis: 1, +// "data":[[1483372800000,1151],[1483459200000,4778],[1483545600000,21175],[1483632000000,19048],[1483718400000,14748],[1483804800000,18494],[1483891200000,10597],[1483977600000,8788],[1484064000000,12985],[1484150400000,2492],[1484236800000,5965],[1484323200000,10246],[1484409600000,12160],[1484496000000,6877]] +// } +// ]; + + +const stories = storiesOf('tooltip', module); +stories.addDecorator(withKnobs); +stories.add('样式测试', () => ( + + + +)); + +// stories.add('图例位置测试-linebar', () => ( +// +// +// +// )); diff --git a/stories/plugin.worldmap.stories.js b/stories/plugin.worldmap.stories.js index f731a5ac..4ffc5957 100644 --- a/stories/plugin.worldmap.stories.js +++ b/stories/plugin.worldmap.stories.js @@ -5,7 +5,7 @@ import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; import { Wcontainer, plugins } from '@alicloud/cloud-charts'; -import '@alicloud/cloud-charts/plugins/WorldMap/index'; +import '@alicloud/cloud-charts/plugins/worldmap/index'; const { WorldMap } = plugins; const areaData = [ diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..0eb69e9b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compileOnSave": false, + "buildOnSave": false, + "compilerOptions": { + "outDir": "build", + "module": "esnext", + "target": "es6", + "jsx": "react", + "moduleResolution": "node", + "lib": ["es6", "dom"], + "sourceMap": true, + "allowJs": true, + "noUnusedLocals": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noImplicitAny": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true + }, + "include": ["src/*.ts", "src/*.tsx"], + "exclude": ["node_modules", "build", "public"] +} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index e7fe449f..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,315 +0,0 @@ -'use strict'; - -/** - * 说明: webpack的配置请在该文件进行修改 - * webpack配置文档请查看:https://webpack.github.io/docs/configuration.html - */ -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); -const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); -const path = require('path'); -const fs = require('fs'); -const _ = require('lodash'); -const webpack = require('webpack'); -const glob = require('glob'); -const FallbackPort = require('fallback-port'); -const packageInfo = require('./package'); - -// 默认开启3000端口,若被占用,则开启其他端口 -const fallbackPort = new FallbackPort(9009); - -const componentName = 'CloudCharts'; -const srcPath = path.resolve(__dirname, './components'); -const demoPath = path.resolve(__dirname, './demo'); -const outputPath = path.resolve(__dirname, './build'); -const pluginPath = path.resolve(__dirname, './components/plugins'); - -const config = { - // 服务器开启的端口号 - port: fallbackPort.getPort(), - - context: srcPath, - - mode: 'development', - - // webpack 编译的入口文件 - entry: { - index: ['./index.scss', './index.jsx'], - }, - - // 输出的文件配置 - output: { - path: outputPath, - filename: '[name].js', - publicPath: '/build/', - // 设置library 则可以直接通过 window.xxx 访问到 - library: componentName, - libraryTarget: 'umd' - }, - - resolve: { - modules: [srcPath, 'node_modules'], - extensions: ['.js', '.jsx'], - alias: { - '@alicloud/cloud-charts': srcPath, - '@alicloud/cloud-charts/lib': srcPath, - '@antv/data-set$': path.resolve(__dirname, './components/common/dataSet'), - '@antv/data-set/lib': '@antv/data-set/lib' - } - }, - - externals: [ - { - 'react': { - root: 'React', - commonjs2: 'react', - commonjs: 'react', - amd: 'react' - }, - 'react-dom': { - root: 'ReactDOM', - commonjs2: 'react-dom', - commonjs: 'react-dom', - amd: 'react-dom' - }, - }, - ], - - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: ['babel-loader'], - }, - { - test: /\.scss$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - // you can specify a publicPath here - // by default it uses publicPath in webpackOptions.output - // publicPath: '../', - hmr: process.env.NODE_ENV === 'development', - }, - }, - 'css-loader', - 'sass-loader' - ], - }, - { - test: /\.(woff|woff2|eot|ttf|otf|svg)((\?|#).*)?$/, - use: [{ - loader: 'file-loader', - options: { - name: '[name].[ext]', - publicPath: './', - }, - }], - }, - ] - }, - - plugins: [ - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // both options are optional - filename: '[name].css', - // chunkFilename: '[id].css', - }), - ], - -}; - - -/** - * 获取demo文件夹中的入口文件 - * @param cwd - * @returns {{}} - */ -function getDevEntry(cwd) { - const entry = {}; - glob.sync('*.jsx', {cwd}).forEach((item) => { - const file = item.replace('.jsx', ''); - entry[file] = [ - // activate HMR for React - 'react-hot-loader/patch', - `webpack-dev-server/client?http://0.0.0.0:${config.port}/`, - 'webpack/hot/only-dev-server', - `${file}.scss`, - item - ]; - }); - return entry; -} - -function getPlugins() { - const entry = {}; - const plugins = fs.readdirSync(pluginPath); - plugins.forEach(function (plugin) { - var componentStat = fs.lstatSync(pluginPath + '/' + plugin); - if (!componentStat.isDirectory()) { - return; - } - - entry[plugin] = './plugins/' + plugin + '/index.jsx'; - }); - return entry; -} - -/** - * 开发环境及demo编译时的配置 - * @returns {*} - */ -function dev() { - const _config = _.cloneDeep(config); - - _config.context = demoPath; - _config.resolve.modules = [demoPath, 'node_modules']; - _config.output = { - path: demoPath, - filename: '[name].js', - publicPath: '/demo/' - }; - _config.externals[0].react = 'var React'; - _config.externals[0]['react-dom'] = 'var ReactDOM'; - - _config.plugins.push( - // 进度插件 - new webpack.ProgressPlugin((percentage, msg) => { - const stream = process.stderr; - if (stream.isTTY && percentage < 0.71) { - stream.cursorTo(0); - stream.write(`📦 ${msg}`); - stream.clearLine(1); - } - }), - - new webpack.DefinePlugin({ - __VERSION__: JSON.stringify(packageInfo.version), - __THEME__: JSON.stringify('index') - }), - - // 代码热替换 - // new webpack.HotModuleReplacementPlugin(), - ); - - // 添加soure-map - _config.devtool = 'source-map'; - // 入口文件添加server 和 hrm - _config.entry = Object.assign(getDevEntry(demoPath), getDevEntry(srcPath)); - - return _config; -} - -/** - * 发布到cdn及tnpm时的配置 - * @returns {*} - */ -function prod(themeName, isPlugin) { - const _config = _.cloneDeep(config); - - _config.mode = 'production'; - - _config.optimization = { - minimizer: [ - new UglifyJsPlugin({ - uglifyOptions: { - output: { - comments: false, - }, - }, - }), - new OptimizeCSSAssetsPlugin({}), - ], - }; - - // build环境 - if (themeName) { - _config.entry = { - [themeName]: _config.entry.index, - }; - } - - if (isPlugin) { - _config.entry = getPlugins(); - _config.output.library = componentName + '[name]'; - _config.externals[0]['@alicloud/cloud-charts'] = { - root: componentName, - commonjs2: '@alicloud/cloud-charts', - commonjs: '@alicloud/cloud-charts', - amd: '@alicloud/cloud-charts' - }; - } - - _config.plugins.push( - new webpack.DefinePlugin({ - __VERSION__: JSON.stringify(packageInfo.version), - __THEME__: JSON.stringify(themeName || 'index') - }) - ); - - return _config; -} - -/** - * online 环境 - * @returns {*} - */ -function online(themeName, isPlugin) { - const _config = _.cloneDeep(config); - - if (themeName) { - _config.entry = { - [themeName]: _config.entry.index, - }; - } - - if (isPlugin) { - _config.entry = getPlugins(); - _config.output.library = componentName + '[name]'; - _config.externals[0]['@alicloud/cloud-charts'] = { - root: componentName, - commonjs2: '@alicloud/cloud-charts', - commonjs: '@alicloud/cloud-charts', - amd: '@alicloud/cloud-charts' - }; - } - - _config.plugins.push( - // 进度插件 - new webpack.ProgressPlugin((percentage, msg) => { - const stream = process.stderr; - if (stream.isTTY && percentage < 0.71) { - stream.cursorTo(0); - stream.write(`📦 ${msg}`); - stream.clearLine(1); - } - }), - - new webpack.DefinePlugin({ - __VERSION__: JSON.stringify(packageInfo.version), - __THEME__: JSON.stringify('index') - }) - ); - - // 添加soure-map - _config.devtool = 'source-map'; - - return _config; -} - -module.exports = { - - dev, - - // demo, - - prod, - - online, - - srcPath - -};