From 539d48a0f24d876582f46f83aee37e59638909c7 Mon Sep 17 00:00:00 2001 From: da730 Date: Thu, 14 Sep 2023 20:50:50 +0800 Subject: [PATCH 01/19] feat: add vmind demo --- common/config/rush/pnpm-lock.yaml | 409 ++++++++++++++- .../demos/vmind-chart-generation/App.tsx | 11 + .../demos/vmind-chart-generation/Layout.tsx | 15 + .../vmind-chart-generation/constants/index.ts | 487 ++++++++++++++++++ .../demos/vmind-chart-generation/index.html | 14 + .../demos/vmind-chart-generation/index.scss | 3 + .../demos/vmind-chart-generation/index.tsx | 14 + .../vmind-chart-generation/pages/Home.tsx | 39 ++ .../pages/LeftInput.tsx | 132 +++++ .../pages/RightChart.tsx | 153 ++++++ .../vmind-chart-generation/pages/index.scss | 34 ++ docs/menu.json | 6 +- docs/package.json | 3 +- .../runtime/browser/test-page/bar.ts | 385 ++++++++++++-- 14 files changed, 1646 insertions(+), 59 deletions(-) create mode 100644 docs/assets/demos/vmind-chart-generation/App.tsx create mode 100644 docs/assets/demos/vmind-chart-generation/Layout.tsx create mode 100644 docs/assets/demos/vmind-chart-generation/constants/index.ts create mode 100644 docs/assets/demos/vmind-chart-generation/index.html create mode 100644 docs/assets/demos/vmind-chart-generation/index.scss create mode 100644 docs/assets/demos/vmind-chart-generation/index.tsx create mode 100644 docs/assets/demos/vmind-chart-generation/pages/Home.tsx create mode 100644 docs/assets/demos/vmind-chart-generation/pages/LeftInput.tsx create mode 100644 docs/assets/demos/vmind-chart-generation/pages/RightChart.tsx create mode 100644 docs/assets/demos/vmind-chart-generation/pages/index.scss diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index ab4f8388a4..525bbd46af 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -17,6 +17,7 @@ importers: '@types/react-dom': ^18.0.0 '@visactor/vchart': workspace:1.3.1 '@visactor/vgrammar': ~0.6.6 + '@visactor/vmind': 1.0.4 '@visactor/vrender': ~0.14.8 '@visactor/vutils': ~0.15.14 '@vitejs/plugin-react': 3.1.0 @@ -42,6 +43,7 @@ importers: '@arco-design/web-react': 2.46.1_vnxzf5c44dqo4vncfl2mrh2gwm '@visactor/vchart': link:../packages/vchart '@visactor/vgrammar': 0.6.6 + '@visactor/vmind': 1.0.4_zek35pddvdjy2zglnyjcvmb6jq '@visactor/vrender': 0.14.8 '@visactor/vutils': 0.15.14 axios: 1.5.0 @@ -2242,6 +2244,45 @@ packages: transitivePeerDependencies: - supports-color + /@fast-csv/format/4.3.5: + resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==} + dependencies: + '@types/node': 14.18.59 + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + dev: false + + /@fast-csv/parse/4.3.6: + resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} + dependencies: + '@types/node': 14.18.59 + lodash.escaperegexp: 4.1.2 + lodash.groupby: 4.6.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + lodash.isundefined: 3.0.1 + lodash.uniq: 4.5.0 + dev: false + + /@ffmpeg/core/0.11.0: + resolution: {integrity: sha512-9Tt/+2PMpkGPXUK8n6He9G8Y+qR6qmCPSCw9iEKZxHHOvJ9BE/r0Fccj+YgDZTlyu6rXxc9x6EqCaFBIt7qzjA==} + dev: false + + /@ffmpeg/ffmpeg/0.11.6: + resolution: {integrity: sha512-uN8J8KDjADEavPhNva6tYO9Fj0lWs9z82swF3YXnTxWMBoFLGq3LZ6FLlIldRKEzhOBKnkVfA8UnFJuvGvNxcA==} + engines: {node: '>=12.16.1'} + dependencies: + is-url: 1.2.4 + node-fetch: 2.6.7 + regenerator-runtime: 0.13.11 + resolve-url: 0.2.1 + transitivePeerDependencies: + - encoding + dev: false + /@gar/promisify/1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -2869,6 +2910,11 @@ packages: engines: {node: '>=14'} dev: false + /@remix-run/router/1.9.0: + resolution: {integrity: sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==} + engines: {node: '>=14.0.0'} + dev: false + /@rollup/plugin-alias/5.0.0_rollup@3.20.5: resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} @@ -3922,6 +3968,10 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true + /@types/node/14.18.59: + resolution: {integrity: sha512-NWJMpBL2Xs3MY93yrD6YrrTKep8eIA6iMnfG4oIc6LrTRlBZgiSCGiY3V/Owlp6umIBLyKb4F8Q7hxWatjYH5A==} + dev: false + /@types/node/15.14.9: resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} dev: true @@ -4382,6 +4432,26 @@ packages: '@visactor/vutils': 0.15.14 dev: false + /@visactor/vmind/1.0.4_zek35pddvdjy2zglnyjcvmb6jq: + resolution: {integrity: sha512-qkqyZSv5O+tOUviozoCKLCOWuqS+Shx6Wbbrzcdis+0CM7Z4rfGSpchxtWwYKtpHOB90cuV7pd4r6EFg5k+QKA==} + peerDependencies: + '@arco-design/web-react': ^2.48.1 + '@visactor/vchart': 1.2.0 + dependencies: + '@arco-design/web-react': 2.46.1_vnxzf5c44dqo4vncfl2mrh2gwm + '@ffmpeg/core': 0.11.0 + '@ffmpeg/ffmpeg': 0.11.6 + '@visactor/vchart': link:../../packages/vchart + axios: 1.5.0 + exceljs: 4.3.0 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + react-router-dom: 6.16.0_sfoxds7t5ydpegc3knd667wn6m + transitivePeerDependencies: + - debug + - encoding + dev: false + /@visactor/vrender-components/0.14.8: resolution: {integrity: sha512-AsB9XIdULAtr4/7lN0i9MP3k9TZcZtiH/jglA6lTGuVEHzypUHCP5DtqMvKp2+OVoDtcOU72gWReHjBJ0y2CGA==} dependencies: @@ -5081,6 +5151,51 @@ packages: file-type: 4.4.0 dev: true + /archiver-utils/2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + dev: false + + /archiver-utils/3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + + /archiver/5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + async: 3.2.4 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + dev: false + /archy/1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} @@ -5412,7 +5527,6 @@ packages: /async/3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true /asynckit/0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -6140,7 +6254,6 @@ packages: /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true /batch/0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -6171,6 +6284,11 @@ packages: babel-runtime: 6.26.0 dev: true + /big-integer/1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: false + /big.js/3.2.0: resolution: {integrity: sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==} dev: true @@ -6188,6 +6306,13 @@ packages: engines: {node: '>=8'} dev: true + /binary/0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + dev: false + /binaryextensions/2.3.0: resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} engines: {node: '>=0.8'} @@ -6206,6 +6331,18 @@ packages: safe-buffer: 5.2.1 dev: true + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + + /bluebird/3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + dev: false + /bluebird/3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true @@ -6431,7 +6568,6 @@ packages: /buffer-crc32/0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true /buffer-equal/1.0.1: resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} @@ -6444,6 +6580,11 @@ packages: /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + /buffer-indexof-polyfill/1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} + dev: false + /buffer-indexof/1.1.1: resolution: {integrity: sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==} dev: true @@ -6465,7 +6606,11 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true + + /buffers/0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + dev: false /builtin-modules/1.1.1: resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} @@ -6747,6 +6892,12 @@ packages: type-detect: 4.0.8 dev: true + /chainsaw/0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + dependencies: + traverse: 0.3.9 + dev: false + /chalk/1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} engines: {node: '>=0.10.0'} @@ -7237,6 +7388,16 @@ packages: arity-n: 1.0.4 dev: true + /compress-commons/4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + /compressible/2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -7524,6 +7685,20 @@ packages: yaml: 1.10.2 dev: true + /crc-32/1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: false + + /crc32-stream/4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + dev: false + /create-ecdh/4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: @@ -8538,6 +8713,12 @@ packages: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true + /duplexer2/0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + dependencies: + readable-stream: 2.3.8 + dev: false + /duplexer3/0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} dev: true @@ -9651,6 +9832,21 @@ packages: safe-buffer: 5.2.1 dev: true + /exceljs/4.3.0: + resolution: {integrity: sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==} + engines: {node: '>=8.3.0'} + dependencies: + archiver: 5.3.2 + dayjs: 1.11.9 + fast-csv: 4.3.6 + jszip: 3.10.1 + readable-stream: 3.6.2 + saxes: 5.0.1 + tmp: 0.2.1 + unzipper: 0.10.14 + uuid: 8.3.2 + dev: false + /exec-sh/0.3.6: resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} dev: true @@ -9949,6 +10145,14 @@ packages: time-stamp: 1.1.0 dev: false + /fast-csv/4.3.6: + resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==} + engines: {node: '>=10.0.0'} + dependencies: + '@fast-csv/format': 4.3.5 + '@fast-csv/parse': 4.3.6 + dev: false + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -10484,7 +10688,6 @@ packages: /fs-constants/1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true /fs-extra/10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} @@ -10564,6 +10767,16 @@ packages: requiresBuild: true optional: true + /fstream/1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + dev: false + /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} @@ -11728,6 +11941,10 @@ packages: requiresBuild: true optional: true + /immediate/3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: false + /import-fresh/2.0.0: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} engines: {node: '>=4'} @@ -12467,6 +12684,10 @@ packages: engines: {node: '>=10'} dev: true + /is-url/1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + dev: false + /is-utf8/0.2.1: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} @@ -14115,6 +14336,15 @@ packages: object.assign: 4.1.4 object.values: 1.1.7 + /jszip/3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + dev: false + /just-debounce/1.1.0: resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} dev: false @@ -14313,6 +14543,12 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 + /lie/3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + dependencies: + immediate: 3.0.6 + dev: false + /liftoff/3.1.0: resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==} engines: {node: '>= 0.8'} @@ -14365,6 +14601,10 @@ packages: - enquirer dev: true + /listenercount/1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + dev: false + /listr2/4.0.5: resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} engines: {node: '>=12'} @@ -14501,6 +14741,50 @@ packages: /lodash.debounce/4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + /lodash.defaults/4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + dev: false + + /lodash.difference/4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + dev: false + + /lodash.escaperegexp/4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + dev: false + + /lodash.flatten/4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + dev: false + + /lodash.groupby/4.6.0: + resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} + dev: false + + /lodash.isboolean/3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isequal/4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.isfunction/3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: false + + /lodash.isnil/4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + dev: false + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.isundefined/3.0.1: + resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} + dev: false + /lodash.kebabcase/4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} dev: true @@ -14512,6 +14796,14 @@ packages: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true + /lodash.union/4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + dev: false + + /lodash.uniq/4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: false + /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -15205,7 +15497,6 @@ packages: /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true /minipass-collect/1.0.2: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} @@ -15302,7 +15593,6 @@ packages: hasBin: true dependencies: minimist: 1.2.8 - dev: true /mkdirp/1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} @@ -15527,7 +15817,6 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 - dev: true /node-forge/0.10.0: resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} @@ -16195,7 +16484,6 @@ packages: /pako/1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true /parallel-transform/1.2.0: resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} @@ -17339,6 +17627,17 @@ packages: ua-parser-js: 1.0.36 dev: true + /react-dom/17.0.2_react@17.0.2: + resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} + peerDependencies: + react: 17.0.2 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react: 17.0.2 + scheduler: 0.20.2 + dev: false + /react-dom/18.2.0_react@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -17405,6 +17704,19 @@ packages: engines: {node: '>=0.10.0'} dev: true + /react-router-dom/6.16.0_sfoxds7t5ydpegc3knd667wn6m: + resolution: {integrity: sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.9.0 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + react-router: 6.16.0_react@17.0.2 + dev: false + /react-router-dom/6.9.0_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==} engines: {node: '>=14'} @@ -17418,6 +17730,16 @@ packages: react-router: 6.9.0_react@18.2.0 dev: false + /react-router/6.16.0_react@17.0.2: + resolution: {integrity: sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.9.0 + react: 17.0.2 + dev: false + /react-router/6.9.0_react@18.2.0: resolution: {integrity: sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==} engines: {node: '>=14'} @@ -17442,6 +17764,14 @@ packages: react-dom: 18.2.0_react@18.2.0 dev: false + /react/17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: false + /react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -17541,6 +17871,12 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 + /readdir-glob/1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + dependencies: + minimatch: 5.1.6 + dev: false + /readdirp/2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} @@ -18419,14 +18755,12 @@ packages: engines: {node: '>=10'} dependencies: xmlchars: 2.2.0 - dev: true /scheduler/0.20.2: resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - dev: true /scheduler/0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} @@ -18641,7 +18975,6 @@ packages: /setimmediate/1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: true /setprototypeof/1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} @@ -19749,6 +20082,17 @@ packages: xtend: 4.0.2 dev: true + /tar-stream/2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + /tar/6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} @@ -20000,6 +20344,13 @@ packages: os-tmpdir: 1.0.2 dev: true + /tmp/0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: false + /tmpl/1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true @@ -20119,7 +20470,6 @@ packages: /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true /tr46/1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -20134,6 +20484,10 @@ packages: punycode: 2.3.0 dev: true + /traverse/0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + dev: false + /traverse/0.6.6: resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==} dev: true @@ -20728,6 +21082,21 @@ packages: engines: {node: '>=4'} dev: true + /unzipper/0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} + dependencies: + big-integer: 1.6.51 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + dev: false + /upath/1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -20908,8 +21277,6 @@ packages: /uuid/8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - dev: true - optional: true /v8-compile-cache-lib/3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -21342,7 +21709,6 @@ packages: /webidl-conversions/3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true /webidl-conversions/4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -21535,7 +21901,6 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: true /whatwg-url/6.5.0: resolution: {integrity: sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==} @@ -21780,7 +22145,6 @@ packages: /xmlchars/2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} @@ -21967,6 +22331,15 @@ packages: engines: {node: '>=12.20'} dev: true + /zip-stream/4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + dev: false + /zwitch/1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} dev: true diff --git a/docs/assets/demos/vmind-chart-generation/App.tsx b/docs/assets/demos/vmind-chart-generation/App.tsx new file mode 100644 index 0000000000..560ea019e6 --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/App.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; +import { Home } from './pages/Home'; +import { LayoutWrap } from './Layout'; + +export default function App() { + return ( + + + + ); +} diff --git a/docs/assets/demos/vmind-chart-generation/Layout.tsx b/docs/assets/demos/vmind-chart-generation/Layout.tsx new file mode 100644 index 0000000000..b5a1a5393b --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/Layout.tsx @@ -0,0 +1,15 @@ +import * as React from 'react'; +import { PageHeader, Button, Layout } from '@arco-design/web-react'; + +export function LayoutWrap(props: any) { + return ( + + + {props.children} + + ) +} diff --git a/docs/assets/demos/vmind-chart-generation/constants/index.ts b/docs/assets/demos/vmind-chart-generation/constants/index.ts new file mode 100644 index 0000000000..8f3aac1930 --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/constants/index.ts @@ -0,0 +1,487 @@ +/* +**动态条形图 +*/ +export const mockUserInput6 = { + csv: `country,continent,GDP,year +日本,亚洲,239270,1973 +印度,亚洲,22960,1973 +韩国,亚洲,7870,1973 +土耳其,亚洲,17240,1973 +印度尼西亚,亚洲,10980,1973 +沙特阿拉伯,亚洲,23760,1973 +泰国,亚洲,4130,1973 +菲律宾,亚洲,5660,1973 +马来西亚,亚洲,2780,1973 +英国,欧洲,114750,1973 +意大利,欧洲,107570,1973 +西班牙,欧洲,55990,1973 +荷兰,欧洲,36410,1973 +瑞士,欧洲,33920,1973 +芬兰,欧洲,9930,1973 +瑞典,欧洲,23020,1973 +比利时,欧洲,22280,1973 +挪威,欧洲,14540,1973 +日本,亚洲,278390,1978 +印度,亚洲,29220,1978 +韩国,亚洲,13120,1978 +土耳其,亚洲,22620,1978 +印度尼西亚,亚洲,15390,1978 +沙特阿拉伯,亚洲,30080,1978 +泰国,亚洲,6000,1978 +菲律宾,亚洲,7480,1978 +马来西亚,亚洲,3900,1978 +英国,欧洲,121140,1978 +意大利,欧洲,126030,1978 +西班牙,欧洲,64080,1978 +荷兰,欧洲,41420,1978 +瑞士,欧洲,32360,1978 +芬兰,欧洲,10800,1978 +瑞典,欧洲,24650,1978 +比利时,欧洲,24970,1978 +挪威,欧洲,18160,1978 +日本,亚洲,336520,1983 +印度,亚洲,34790,1983 +韩国,亚洲,18480,1983 +土耳其,亚洲,25000,1983 +印度尼西亚,亚洲,20870,1983 +沙特阿拉伯,亚洲,24130,1983 +泰国,亚洲,7840,1983 +菲律宾,亚洲,9070,1983 +马来西亚,亚洲,5510,1983 +英国,欧洲,129860.00000000001,1983 +意大利,欧洲,141500,1983 +西班牙,欧洲,67430,1983 +荷兰,欧洲,42830,1983 +瑞士,欧洲,35000,1983 +芬兰,欧洲,13130,1983 +瑞典,欧洲,26980,1983 +比利时,欧洲,26860,1983 +挪威,欧洲,20980,1983 +日本,亚洲,427650,1988 +印度,亚洲,45400,1988 +韩国,亚洲,30960,1988 +土耳其,亚洲,33340,1988 +印度尼西亚,亚洲,26890,1988 +沙特阿拉伯,亚洲,25640,1988 +泰国,亚洲,11350,1988 +菲律宾,亚洲,8970,1988 +马来西亚,亚洲,6880,1988 +英国,欧洲,158980,1988 +意大利,欧洲,166060,1988 +西班牙,欧洲,80430,1988 +荷兰,欧洲,49070,1988 +瑞士,欧洲,39950,1988 +芬兰,欧洲,15720,1988 +瑞典,欧洲,31270,1988 +比利时,欧洲,30520,1988 +挪威,欧洲,24800,1988 +日本,亚洲,488020,1993 +印度,亚洲,56680,1993 +韩国,亚洲,45790,1993 +土耳其,亚洲,41600,1993 +印度尼西亚,亚洲,37570,1993 +沙特阿拉伯,亚洲,34670,1993 +泰国,亚洲,17990,1993 +菲律宾,亚洲,10000,1993 +马来西亚,亚洲,10720,1993 +英国,欧洲,167180,1993 +意大利,欧洲,177750,1993 +西班牙,欧洲,89630,1993 +荷兰,欧洲,56320,1993 +瑞士,欧洲,42740,1993 +芬兰,欧洲,15040,1993 +瑞典,欧洲,30950,1993 +比利时,欧洲,33350,1993 +挪威,欧洲,28050,1993 +日本,亚洲,521740,1998 +印度,亚洲,77270,1998 +韩国,亚洲,59600,1998 +土耳其,亚洲,50560,1998 +印度尼西亚,亚洲,42880,1998 +沙特阿拉伯,亚洲,37310,1998 +泰国,亚洲,19930,1998 +菲律宾,亚洲,12090,1998 +马来西亚,亚洲,14070,1998 +英国,欧洲,196370,1998 +意大利,欧洲,196130,1998 +西班牙,欧洲,104800,1998 +荷兰,欧洲,67570,1998 +瑞士,欧洲,46090,1998 +芬兰,欧洲,18940,1998 +瑞典,欧洲,36510,1998 +比利时,欧洲,37790,1998 +挪威,欧洲,34830,1998 +日本,亚洲,545920,2003 +印度,亚洲,102500,2003 +韩国,亚洲,84420,2003 +土耳其,亚洲,55060,2003 +印度尼西亚,亚洲,51460,2003 +沙特阿拉伯,亚洲,40500,2003 +泰国,亚洲,25620,2003 +菲律宾,亚洲,14620,2003 +马来西亚,亚洲,18210,2003 +英国,欧洲,228640,2003 +意大利,欧洲,211730,2003 +西班牙,欧洲,126720,2003 +荷兰,欧洲,75950,2003 +瑞士,欧洲,49450,2003 +芬兰,欧洲,22260,2003 +瑞典,欧洲,42290,2003 +比利时,欧洲,42160,2003 +挪威,欧洲,38320,2003 +日本,亚洲,578410,2008 +印度,亚洲,143180,2008 +韩国,亚洲,106280,2008 +土耳其,亚洲,74660,2008 +印度尼西亚,亚洲,67940,2008 +沙特阿拉伯,亚洲,51340,2008 +泰国,亚洲,31950,2008 +菲律宾,亚洲,19140,2008 +马来西亚,亚洲,24100,2008 +英国,欧洲,253560,2008 +意大利,欧洲,221500,2008 +西班牙,欧洲,147390,2008 +荷兰,欧洲,86710,2008 +瑞士,欧洲,57960,2008 +芬兰,欧洲,26270,2008 +瑞典,欧洲,48920,2008 +比利时,欧洲,47720,2008 +挪威,欧洲,43330,2008 +日本,亚洲,589420,2013 +印度,亚洲,197840,2013 +韩国,亚洲,125320,2013 +土耳其,亚洲,97510,2013 +印度尼西亚,亚洲,89730,2013 +沙特阿拉伯,亚洲,62900,2013 +泰国,亚洲,37880,2013 +菲律宾,亚洲,24700,2013 +马来西亚,亚洲,29650,2013 +英国,欧洲,260510,2013 +意大利,欧洲,204670,2013 +西班牙,欧洲,134780,2013 +荷兰,欧洲,84970,2013 +瑞士,欧洲,61070,2013 +芬兰,欧洲,24970,2013 +瑞典,欧洲,51470,2013 +比利时,欧洲,49500,2013 +挪威,欧洲,44930,2013 +日本,亚洲,617030,2018 +印度,亚洲,282220,2018 +韩国,亚洲,144970,2018 +土耳其,亚洲,124050,2018 +印度尼西亚,亚洲,114690,2018 +沙特阿拉伯,亚洲,70160,2018 +泰国,亚洲,44230,2018 +菲律宾,亚洲,34030,2018 +马来西亚,亚洲,38210,2018 +英国,欧洲,287930,2018 +意大利,欧洲,214100,2018 +西班牙,欧洲,153950,2018 +荷兰,欧洲,94810,2018 +瑞士,欧洲,67460,2018 +芬兰,欧洲,26920,2018 +瑞典,欧洲,58930,2018 +比利时,欧洲,53840,2018 +挪威,欧洲,48930,2018 +`, + input: "帮我展示各国GDP排名变化" +} + +/* +**动态条形图-英文 +*/ +export const mockUserInput6Eng = { + csv: `country,continent,GDP,year +Japan,Asia,239270,1973 +India,Asia,22960,1973 +South Korea,Asia,7870,1973 +Turkey,Asia,17240,1973 +Indonesia,Asia,10980,1973 +Saudi Arabia,Asia,23760,1973 +Thailand,Asia,4130,1973 +Philippines,Asia,5660,1973 +Malaysia,Asia,2780,1973 +United Kingdom,Europe,114750,1973 +Italy,Europe,107570,1973 +Spain,Europe,55990,1973 +Netherlands,Europe,36410,1973 +Switzerland,Europe,33920,1973 +Finland,Europe,9930,1973 +Sweden,Europe,23020,1973 +Belgium,Europe,22280,1973 +Norway,Europe,14540,1973 +Japan,Asia,278390,1978 +India,Asia,29220,1978 +South Korea,Asia,13120,1978 +Turkey,Asia,22620,1978 +Indonesia,Asia,15390,1978 +Saudi Arabia,Asia,30080,1978 +Thailand,Asia,6000,1978 +Philippines,Asia,7480,1978 +Malaysia,Asia,3900,1978 +United Kingdom,Europe,121140,1978 +Italy,Europe,126030,1978 +Spain,Europe,64080,1978 +Netherlands,Europe,41420,1978 +Switzerland,Europe,32360,1978 +Finland,Europe,10800,1978 +Sweden,Europe,24650,1978 +Belgium,Europe,24970,1978 +Norway,Europe,18160,1978 +Japan,Asia,336520,1983 +India,Asia,34790,1983 +South Korea,Asia,18480,1983 +Turkey,Asia,25000,1983 +Indonesia,Asia,20870,1983 +Saudi Arabia,Asia,24130,1983 +Thailand,Asia,7840,1983 +Philippines,Asia,9070,1983 +Malaysia,Asia,5510,1983 +United Kingdom,Europe,129860.00000000001,1983 +Italy,Europe,141500,1983 +Spain,Europe,67430,1983 +Netherlands,Europe,42830,1983 +Switzerland,Europe,35000,1983 +Finland,Europe,13130,1983 +Sweden,Europe,26980,1983 +Belgium,Europe,26860,1983 +Norway,Europe,20980,1983 +Japan,Asia,427650,1988 +India,Asia,45400,1988 +South Korea,Asia,30960,1988 +Turkey,Asia,33340,1988 +Indonesia,Asia,26890,1988 +Saudi Arabia,Asia,25640,1988 +Thailand,Asia,11350,1988 +Philippines,Asia,8970,1988 +Malaysia,Asia,6880,1988 +United Kingdom,Europe,158980,1988 +Italy,Europe,166060,1988 +Spain,Europe,80430,1988 +Netherlands,Europe,49070,1988 +Switzerland,Europe,39950,1988 +Finland,Europe,15720,1988 +Sweden,Europe,31270,1988 +Belgium,Europe,30520,1988 +Norway,Europe,24800,1988 +Japan,Asia,488020,1993 +India,Asia,56680,1993 +South Korea,Asia,45790,1993 +Turkey,Asia,41600,1993 +Indonesia,Asia,37570,1993 +Saudi Arabia,Asia,34670,1993 +Thailand,Asia,17990,1993 +Philippines,Asia,10000,1993 +Malaysia,Asia,10720,1993 +United Kingdom,Europe,167180,1993 +Italy,Europe,177750,1993 +Spain,Europe,89630,1993 +Netherlands,Europe,56320,1993 +Switzerland,Europe,42740,1993 +Finland,Europe,15040,1993 +Sweden,Europe,30950,1993 +Belgium,Europe,33350,1993 +Norway,Europe,28050,1993 +Japan,Asia,521740,1998 +India,Asia,77270,1998 +South Korea,Asia,59600,1998 +Turkey,Asia,50560,1998 +Indonesia,Asia,42880,1998 +Saudi Arabia,Asia,37310,1998 +Thailand,Asia,19930,1998 +Philippines,Asia,12090,1998 +Malaysia,Asia,14070,1998 +United Kingdom,Europe,196370,1998 +Italy,Europe,196130,1998 +Spain,Europe,104800,1998 +Netherlands,Europe,67570,1998 +Switzerland,Europe,46090,1998 +Finland,Europe,18940,1998 +Sweden,Europe,36510,1998 +Belgium,Europe,37790,1998 +Norway,Europe,34830,1998 +Japan,Asia,545920,2003 +India,Asia,102500,2003 +South Korea,Asia,84420,2003 +Turkey,Asia,55060,2003 +Indonesia,Asia,51460,2003 +Saudi Arabia,Asia,40500,2003 +Thailand,Asia,25620,2003 +Philippines,Asia,14620,2003 +Malaysia,Asia,18210,2003 +United Kingdom,Europe,228640,2003 +Italy,Europe,211730,2003 +Spain,Europe,126720,2003 +Netherlands,Europe,75950,2003 +Switzerland,Europe,49450,2003 +Finland,Europe,22260,2003 +Sweden,Europe,42290,2003 +Belgium,Europe,42160,2003 +Norway,Europe,38320,2003 +Japan,Asia,578410,2008 +India,Asia,143180,2008 +South Korea,Asia,106280,2008 +Turkey,Asia,74660,2008 +Indonesia,Asia,67940,2008 +Saudi Arabia,Asia,51340,2008 +Thailand,Asia,31950,2008 +Philippines,Asia,19140,2008 +Malaysia,Asia,24100,2008 +United Kingdom,Europe,253560,2008 +Italy,Europe,221500,2008 +Spain,Europe,147390,2008 +Netherlands,Europe,86710,2008 +Switzerland,Europe,57960,2008 +Finland,Europe,26270,2008 +Sweden,Europe,48920,2008 +Belgium,Europe,47720,2008 +Norway,Europe,43330,2008 +Japan,Asia,589420,2013 +India,Asia,197840,2013 +South Korea,Asia,125320,2013 +Turkey,Asia,97510,2013 +Indonesia,Asia,89730,2013 +Saudi Arabia,Asia,62900,2013 +Thailand,Asia,37880,2013 +Philippines,Asia,24700,2013 +Malaysia,Asia,29650,2013 +United Kingdom,Europe,260510,2013 +Italy,Europe,204670,2013 +Spain,Europe,134780,2013 +Netherlands,Europe,84970,2013 +Switzerland,Europe,61070,2013 +Finland,Europe,24970,2013 +Sweden,Europe,51470,2013 +Belgium,Europe,49500,2013 +Norway,Europe,44930,2013 +Japan,Asia,617030,2018 +India,Asia,282220,2018 +South Korea,Asia,144970,2018 +Turkey,Asia,124050,2018 +Indonesia,Asia,114690,2018 +Saudi Arabia,Asia,70160,2018 +Thailand,Asia,44230,2018 +Philippines,Asia,34030,2018 +Malaysia,Asia,38210,2018 +United Kingdom,Europe,287930,2018 +Italy,Europe,214100,2018 +Spain,Europe,153950,2018 +Netherlands,Europe,94810,2018 +Switzerland,Europe,67460,2018 +Finland,Europe,26920,2018 +Sweden,Europe,58930,2018 +Belgium,Europe,53840,2018 +Norway,Europe,48930,2018 +`, + input: "Show me the change of the GDP rankings of each country " +} + +/* +**饼图 +*/ +export const mockUserInput2 = { + csv: `品牌名称,市场份额,平均价格,净利润 +Apple,0.5,7068,314531 +Samsung,0.2,6059,362345 +Vivo,0.05,3406,234512 +Nokia,0.01,1064,-1345 +Xiaomi,0.1,4087,131345`, + input: "展示各品牌市场占有率,森林风格" +} + + +export const mockUserInput8 = { + csv: `date,type,value +2023-01-01,产品 A,52.9 +2023-01-01,产品 B,63.6 +2023-01-01,产品 C,11.2 +2023-01-02,产品 A,45.7 +2023-01-02,产品 B,89.1 +2023-01-02,产品 C,21.4 +2023-01-03,产品 A,67.2 +2023-01-03,产品 B,82.4 +2023-01-03,产品 C,31.7 +2023-01-04,产品 A,80.7 +2023-01-04,产品 B,55.1 +2023-01-04,产品 C,21.1 +2023-01-05,产品 A,65.6 +2023-01-05,产品 B,78 +2023-01-05,产品 C,31.3 +2023-01-06,产品 A,75.6 +2023-01-06,产品 B,89.1 +2023-01-06,产品 C,63.5 +2023-01-07,产品 A,67.3 +2023-01-07,产品 B,77.2 +2023-01-07,产品 C,43.7 +2023-01-08,产品 A,96.1 +2023-01-08,产品 B,97.6 +2023-01-08,产品 C,59.9 +2023-01-09,产品 A,96.1 +2023-01-09,产品 B,100.6 +2023-01-09,产品 C,66.8 +2023-01-10,产品 A,101.6 +2023-01-10,产品 B,108.3 +2023-01-10,产品 C,56.9`, + input: '请帮我展示各产品的销售趋势', +}; + +/* + **柱状图 + */ +export const mockUserInput3 = { + csv: `商品名称,region,销售额 +可乐,south,2350 +可乐,east,1027 +可乐,west,1027 +可乐,north,1027 +雪碧,south,215 +雪碧,east,654 +雪碧,west,159 +雪碧,north,28 +芬达,south,345 +芬达,east,654 +芬达,west,2100 +芬达,north,1679 +醒目,south,1476 +醒目,east,830 +醒目,west,532 +醒目,north,498 +`, + input: '帮我展示不同区域各商品销售额', +}; + + +export const mockUserInput10 = { + csv: `城市,2022年GDP(亿元) +北京,31897 +上海,30956 +广州,30000 +深圳,30395 +苏州,25000`, + input: "请使用[柱状图]展示[2022年GDP排名前五的中国城市及其2022年的GDP]" +} + +/* + **柱状图 + */ +export const mockUserInput3Eng = { + csv: `Product Name,Region,Sales +Coke, South, 2350 +Coke, East, 1027 +Coke, West, 1027 +Coke, North, 1027 +Sprite, South, 215 +Sprite, East, 654 +Sprite, West, 159 +Sprite, North, 28 +Fanta, South, 345 +Fanta, East, 654 +Fanta, West, 2100 +Fanta, North, 1679 +Mirinda, South, 1476 +Mirinda, East, 830 +Mirinda, West, 532 +Mirinda, North, 498 +`, + input: 'display the sales figures of different products in various regions.', +}; \ No newline at end of file diff --git a/docs/assets/demos/vmind-chart-generation/index.html b/docs/assets/demos/vmind-chart-generation/index.html new file mode 100644 index 0000000000..5fa917aa43 --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/index.html @@ -0,0 +1,14 @@ + + + + + + + Document + + + +
+ + + diff --git a/docs/assets/demos/vmind-chart-generation/index.scss b/docs/assets/demos/vmind-chart-generation/index.scss new file mode 100644 index 0000000000..b85745d3bb --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/index.scss @@ -0,0 +1,3 @@ +#root { + height: 100vh; +} diff --git a/docs/assets/demos/vmind-chart-generation/index.tsx b/docs/assets/demos/vmind-chart-generation/index.tsx new file mode 100644 index 0000000000..88d4485182 --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/index.tsx @@ -0,0 +1,14 @@ + + +import ReactDOM from 'react-dom'; +import * as React from 'react'; +import { BrowserRouter } from 'react-router-dom'; +import "@arco-design/web-react/dist/css/arco.css"; +import './index.scss' +import App from './App'; + +ReactDOM.render( + + + +, document.getElementById('root')); diff --git a/docs/assets/demos/vmind-chart-generation/pages/Home.tsx b/docs/assets/demos/vmind-chart-generation/pages/Home.tsx new file mode 100644 index 0000000000..495c971159 --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/pages/Home.tsx @@ -0,0 +1,39 @@ +import React, { useState } from 'react'; +import { Layout } from '@arco-design/web-react'; +import { LeftInput } from './LeftInput'; +import { RightChart } from './RightChart'; +const Sider = Layout.Sider; +const Content = Layout.Content; + +export function Home() { + const [spec, setSpec] = useState(undefined); + const [openAIKey, setOpenAIKey] = useState(undefined); + + const [time, setTime] = useState<{ + totalTime: number; + frameArr: any[]; + }>(); + return ( + + + { + setSpec(spec); + setTime(time); + }} + openAIKey={openAIKey} + setOpenAIKey={setOpenAIKey} + /> + + + + + + ); +} diff --git a/docs/assets/demos/vmind-chart-generation/pages/LeftInput.tsx b/docs/assets/demos/vmind-chart-generation/pages/LeftInput.tsx new file mode 100644 index 0000000000..311981cf5e --- /dev/null +++ b/docs/assets/demos/vmind-chart-generation/pages/LeftInput.tsx @@ -0,0 +1,132 @@ +import React, { useState, useCallback, useEffect } from 'react'; +import './index.scss'; +import { Avatar, Input, Divider, Button, InputNumber, Upload, Message } from '@arco-design/web-react'; +import { + mockUserInput10, + mockUserInput2, + mockUserInput3, + mockUserInput3Eng, + mockUserInput6, + mockUserInput6Eng, + mockUserInput8 +} from '../constants'; +import VMind from '@visactor/vmind'; + +const TextArea = Input.TextArea; +type IPropsType = { + openAIKey: string | undefined; + setOpenAIKey: any; + onSpecGenerate: ( + spec: any, + time: { + totalTime: number; + frameArr: any[]; + } + ) => void; +}; + +export function LeftInput(props: IPropsType) { + const { openAIKey, setOpenAIKey } = props; + const [describe, setDescribe] = useState(mockUserInput6.input); + const [csv, setCsv] = useState(mockUserInput6.csv); + const [loading, setLoading] = useState(false); + + const askGPT = useCallback(async () => { + setLoading(true); + if (!openAIKey) { + Message.warning('Please input your openAI api key!'); + return; + } + const vmind = new VMind(openAIKey!); + + const { spec, time } = await vmind.generateChart(csv, describe); + props.onSpecGenerate(spec, time as any); + setLoading(false); + }, [describe, csv, openAIKey]); + + return ( +
+
+

+ + 1 + + + Input your openAI api key: + +

+ setOpenAIKey(v)} + style={{ width: 250, background: 'transparent', border: '1px solid #eee' }} + /> +
+ +
+

+ + 2 + + What would you like to visualize? +

+ +