This is an automated email from the ASF dual-hosted git repository. ovilia pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/echarts-wordcloud-generator.git
commit 2da57450f98588a16b6e26b78117ca5ae017aa76 Author: Ovilia <zwl.s...@gmail.com> AuthorDate: Mon Dec 20 15:26:47 2021 +0800 feat: basic workflow --- .prettierignore | 1 + .prettierrc | 7 + package-lock.json | 952 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- src/App.vue | 4 +- src/components/WChart.vue | 59 ++- src/components/WConfig.vue | 384 +++++++++++++----- src/components/WData.vue | 263 ++++++------- src/data/defaultData.ts | 365 ++++++++++++++++- tsconfig.json | 30 +- vite.config.ts | 28 +- 11 files changed, 1776 insertions(+), 319 deletions(-) diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +node_modules diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..3410e80 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 80 +} diff --git a/package-lock.json b/package-lock.json index 5c1f012..af8bb1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1248,9 +1248,955 @@ } }, "echarts-wordcloud": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/echarts-wordcloud/-/echarts-wordcloud-2.0.0.tgz", - "integrity": "sha512-K7l6pTklqdW7ZWzT/1CS0KhBSINr/cd7c5N1fVMzZMwLQHEwT7x+nivK7g5hkVh7WNcAv4Dn6/ZS5zMKRozC1g==" + "version": "file:../echarts-wordcloud", + "dependencies": { + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==" + }, + "@types/eslint": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz", + "integrity": "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.45", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", + "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==" + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" + }, + "@types/node": { + "version": "14.14.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", + "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==" + }, + "@webassemblyjs/ast": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.1.tgz", + "integrity": "sha512-uMu1nCWn2Wxyy126LlGqRVlhdTOsO/bsBRI4dNq3+6SiSuRKRQX6ejjKgh82LoGAPSq72lDUiQ4FWVaf0PecYw==", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/wast-parser": "1.9.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.1.tgz", + "integrity": "sha512-5VEKu024RySmLKTTBl9q1eO/2K5jk9ZS+2HXDBLA9s9p5IjkaXxWiDb/+b7wSQp6FRdLaH1IVGIfOex58Na2pg==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.1.tgz", + "integrity": "sha512-y1lGmfm38djrScwpeL37rRR9f1D6sM8RhMpvM7CYLzOlHVboouZokXK/G88BpzW0NQBSvCCOnW5BFhten4FPfA==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz", + "integrity": "sha512-uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.1.tgz", + "integrity": "sha512-ZQ2ZT6Evk4DPIfD+92AraGYaFIqGm4U20e7FpXwl7WUo2Pn1mZ1v8VGH8i+Y++IQpxPbQo/UyG0Khs7eInskzA==", + "requires": { + "@webassemblyjs/wast-printer": "1.9.1" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.1.tgz", + "integrity": "sha512-J32HGpveEqqcKFS0YbgicB0zAlpfIxJa5MjxDxhu3i5ltPcVfY5EPvKQ1suRguFPehxiUs+/hfkwPEXom/l0lw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.1.tgz", + "integrity": "sha512-IEH2cMmEQKt7fqelLWB5e/cMdZXf2rST1JIrzWmf4XBt3QTxGdnnLvV4DYoN8pJjOx0VYXsWg+yF16MmJtolZg==", + "requires": { + "@webassemblyjs/ast": "1.9.1" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.1.tgz", + "integrity": "sha512-i2rGTBqFUcSXxyjt2K4vm/3kkHwyzG6o427iCjcIKjOqpWH8SEem+xe82jUk1iydJO250/CvE5o7hzNAMZf0dQ==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz", + "integrity": "sha512-FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-buffer": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/wasm-gen": "1.9.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.1.tgz", + "integrity": "sha512-EvTG9M78zP1MmkBpUjGQHZc26DzPGZSLIPxYHCjQsBMo60Qy2W34qf8z0exRDtxBbRIoiKa5dFyWer/7r1aaSQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.1.tgz", + "integrity": "sha512-Oc04ub0vFfLnF+2/+ki3AE+anmW4sv9uNBqb+79fgTaPv6xJsOT0dhphNfL3FrME84CbX/D1T9XT8tjFo0IIiw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.1.tgz", + "integrity": "sha512-llkYtppagjCodFjo0alWOUhAkfOiQPQDIc5oA6C9sFAXz7vC9QhZf/f8ijQIX+A9ToM3c9Pq85X0EX7nx9gVhg==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz", + "integrity": "sha512-S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-buffer": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/helper-wasm-section": "1.9.1", + "@webassemblyjs/wasm-gen": "1.9.1", + "@webassemblyjs/wasm-opt": "1.9.1", + "@webassemblyjs/wasm-parser": "1.9.1", + "@webassemblyjs/wast-printer": "1.9.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz", + "integrity": "sha512-bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/ieee754": "1.9.1", + "@webassemblyjs/leb128": "1.9.1", + "@webassemblyjs/utf8": "1.9.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz", + "integrity": "sha512-gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-buffer": "1.9.1", + "@webassemblyjs/wasm-gen": "1.9.1", + "@webassemblyjs/wasm-parser": "1.9.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.1.tgz", + "integrity": "sha512-ImM4N2T1MEIond0MyE3rXvStVxEmivQrDKf/ggfh5pP6EHu3lL/YTAoSrR7shrbKNPpeKpGesW1LIK/L4kqduw==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-api-error": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/ieee754": "1.9.1", + "@webassemblyjs/leb128": "1.9.1", + "@webassemblyjs/utf8": "1.9.1" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.1.tgz", + "integrity": "sha512-2xVxejXSvj3ls/o2TR/zI6p28qsGupjHhnHL6URULQRcXmryn3w7G83jQMcT7PHqUfyle65fZtWLukfdLdE7qw==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/floating-point-hex-parser": "1.9.1", + "@webassemblyjs/helper-api-error": "1.9.1", + "@webassemblyjs/helper-code-frame": "1.9.1", + "@webassemblyjs/helper-fsm": "1.9.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.1.tgz", + "integrity": "sha512-tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w==", + "requires": { + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/wast-parser": "1.9.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/info": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.1.tgz", + "integrity": "sha512-fLnDML5HZ5AEKzHul8xLAksoKN2cibu6MgonkUj8R9V7bbeVRkd1XbGEGWrAUNYHbX1jcqCsDEpBviE5StPMzQ==", + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.2.1.tgz", + "integrity": "sha512-Zj1z6AyS+vqV6Hfi7ngCjFGdHV5EwZNIHo6QfFTNe9PyW+zBU1zJ9BiOW1pmUEq950RC4+Dym6flyA/61/vhyw==" + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@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==" + }, + "acorn": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", + "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "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==" + }, + "caniuse-lite": { + "version": "1.0.30001173", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz", + "integrity": "sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw==" + }, + "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==", + "requires": { + "tslib": "^1.9.0" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, + "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==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "echarts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.0.1.tgz", + "integrity": "sha512-JYn22Dolt2esY2jEzUsw1OxbobuW67oGjIoTjZO3rW89SWkfJ4kbrmC2OW9JjsBrD1rdkmaWBuZZ2HgmThyxJw==", + "requires": { + "tslib": "2.0.3", + "zrender": "5.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "electron-to-chromium": { + "version": "1.3.634", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.634.tgz", + "integrity": "sha512-QPrWNYeE/A0xRvl/QP3E0nkaEvYUvH3gM04ZWYtIa6QlSpEetRlRI1xvQ7hiMIySHHEV+mwDSX8Kj4YZY6ZQAw==" + }, + "enhanced-resolve": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.4.1.tgz", + "integrity": "sha512-4GbyIMzYktTFoRSmkbgZ1LU+RXwf4AQ8Z+rSuuh1dC8plp0PPeaWvx6+G4hh4KnUJ48VoxKbNyA1QQQIUpXjYA==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "envinfo": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", + "integrity": "sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" + }, + "execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "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==" + }, + "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==" + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==" + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "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==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.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==", + "requires": { + "p-limit": "^2.2.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==", + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "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==" + }, + "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==" + }, + "loader-runner": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz", + "integrity": "sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "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==" + }, + "mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" + }, + "mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "requires": { + "mime-db": "1.45.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "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==" + }, + "node-releases": { + "version": "1.1.69", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz", + "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "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==" + }, + "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==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "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==" + }, + "pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "requires": { + "find-up": "^5.0.0" + } + }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "requires": { + "resolve": "^1.9.0" + } + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "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==" + }, + "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==" + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "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==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==" + }, + "terser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", + "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "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.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==", + "requires": { + "jest-worker": "^26.6.1", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.8" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==" + }, + "watchpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.0.tgz", + "integrity": "sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.11.1.tgz", + "integrity": "sha512-tNUIdAmYJv+nupRs/U/gqmADm6fgrf5xE+rSlSsf2PgsGO7j2WG7ccU6AWNlOJlHFl+HnmXlBmHIkiLf+XA9mQ==", + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.45", + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-module-context": "1.9.1", + "@webassemblyjs/wasm-edit": "1.9.1", + "@webassemblyjs/wasm-parser": "1.9.1", + "acorn": "^8.0.4", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.3.1", + "eslint-scope": "^5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "pkg-dir": "^5.0.0", + "schema-utils": "^3.0.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.0.3", + "watchpack": "^2.0.0", + "webpack-sources": "^2.1.1" + } + }, + "webpack-cli": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.3.1.tgz", + "integrity": "sha512-/F4+9QNZM/qKzzL9/06Am8NXIkGV+/NqQ62Dx7DSqudxxpAgBqYn6V7+zp+0Y7JuWksKUbczRY3wMTd+7Uj6OA==", + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/info": "^1.2.1", + "@webpack-cli/serve": "^1.2.1", + "colorette": "^1.2.1", + "commander": "^6.2.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + } + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zrender": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.0.3.tgz", + "integrity": "sha512-TVcN2IMdo7je3GEq/E4CER4AGBe/n50/izILdupppyHf/hVHuiXCRliqdu8+32Z1OmGg6RfKt5qQlkX+bOtU0g==", + "requires": { + "tslib": "2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + } + } }, "element-plus": { "version": "1.0.2-beta.71", diff --git a/package.json b/package.json index 172408f..1ba51f0 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "echarts": "^5.2.2", - "echarts-wordcloud": "^2.0.0", + "echarts-wordcloud": "file:../echarts-wordcloud", "element-plus": "^1.0.2-beta.44", "lodash": "^4.17.19", "vue": "^3.0.11", diff --git a/src/App.vue b/src/App.vue index 75e8f66..bd3ffef 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,7 +6,7 @@ </h3> <el-tabs type="card" v-model="activeName"> <el-tab-pane label="样式" name="config"> - <WConfig ref="wconfig"></WConfig> + <WConfig ref="wconfig" @change="onChange"></WConfig> </el-tab-pane> <el-tab-pane label="数据" name="data"> <WData ref="wdata" @change="onChange"></WData> @@ -36,7 +36,7 @@ const {t} = useI18n({ useScope: 'global' }); const activeName = 'config'; function onChange() { - wchart.value?.run(wdata.value?.data); + wchart.value?.run(wdata.value?.data, wconfig.value?.getConfig()); } setTimeout(() => { diff --git a/src/components/WChart.vue b/src/components/WChart.vue index 183452b..f351378 100644 --- a/src/components/WChart.vue +++ b/src/components/WChart.vue @@ -1,10 +1,9 @@ <template> - <div> - <div class="chart" ref="chartRef">aaa</div> - </div> + <div> + <div class="chart" ref="chartRef">aaa</div> + </div> </template> - <script setup lang="ts"> import { onMounted, shallowRef, ref } from 'vue'; import * as echarts from 'echarts'; @@ -17,28 +16,54 @@ const chart = shallowRef<echarts.ECharts | null>(null); const chartRef = ref<HTMLElement | null>(null); defineExpose({ - run + run }); -function run(data?: []) { - chart.value!.setOption({ - series: [{ - type: 'wordCloud', - data: data || [] - }] - }); +type Config = { + hue: number[]; + saturation: number[]; + lightness: number[]; + alpha: number[]; + fontFamily: string; + fontSize: number[]; + rotate: number[]; + width: number; + height: number; + shape: string; }; +function run(data?: [], config?: Config) { + config && console.log(config.width, config.height); + chart.value!.setOption({ + series: [ + { + type: 'wordCloud', + data: data || [], + // gridSize: 0, + sizeRange: config?.fontSize, + rotationRange: config?.rotate, + shape: config?.shape, + width: config?.width + '%', + height: config?.height + '%', + layoutAnimation: true, + keepAspect: true + } + ], + textStyle: { + fontFamily: config?.fontFamily + } + }); +} + onMounted(() => { - chart.value = echarts.init(chartRef.value!); + chart.value = echarts.init(chartRef.value!); }); </script> - <style scoped lang="scss"> .chart { - border: 1px solid #f2eef2; - width: 800px; - height: 600px; + border: 1px solid #f2eef2; + width: 800px; + height: 600px; } </style> diff --git a/src/components/WConfig.vue b/src/components/WConfig.vue index cbd37c5..1085151 100644 --- a/src/components/WConfig.vue +++ b/src/components/WConfig.vue @@ -1,7 +1,7 @@ <template> - <el-collapse> - <el-collapse-item title="颜色" name="color"> - <!-- <h4>基础色</h4> + <el-collapse> + <el-collapse-item title="颜色" name="color"> + <!-- <h5>基础色</h5> <div> <el-color-picker v-for="(color, index) in themeColors" @@ -18,129 +18,313 @@ </div> </div> --> - <h4>色相范围</h4> - <el-row> - <el-col :span="22" :offset="1"> - <el-slider - v-model="hue" - range - show-tooltip - :max="1" - :step="0.05" - input-size="medium" - > - </el-slider> - </el-col> - </el-row> - - <h4>饱和度范围</h4> - <el-row> - <el-col :span="22" :offset="1"> - <el-slider - v-model="saturation" - range - show-tooltip - :max="1" - :step="0.05" - input-size="medium" - > - </el-slider> - </el-col> - </el-row> - - <h4>亮度范围</h4> - <el-row> - <el-col :span="22" :offset="1"> - <el-slider - v-model="lightness" - range - show-tooltip - :max="1" - :step="0.05" - input-size="medium" - > - </el-slider> - </el-col> - </el-row> - - <h4>透明度范围</h4> - <el-row> - <el-col :span="22" :offset="1"> - <el-slider - v-model="alpha" - range - show-tooltip - :max="1" - :step="0.05" - input-size="medium" - > - </el-slider> - </el-col> - </el-row> - </el-collapse-item> - - <el-collapse-item title="文字" name="font"> - <!-- <h4>字体</h4> --> - <el-row> - <el-col :span="12"> - <el-label>字体</el-label> - </el-col> - <el-col :span="12"> - </el-col> - </el-row> - - </el-collapse-item> - </el-collapse> -</template> + <h5>色相范围</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="hue" + range + show-tooltip + :max="1" + :step="0.05" + input-size="medium" + > + </el-slider> + </el-col> + </el-row> + + <h5>饱和度范围</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="saturation" + range + show-tooltip + :max="1" + :step="0.05" + input-size="medium" + > + </el-slider> + </el-col> + </el-row> + + <h5>亮度范围</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="lightness" + range + show-tooltip + :max="1" + :step="0.05" + input-size="medium" + > + </el-slider> + </el-col> + </el-row> + + <h5>透明度范围</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="alpha" + range + show-tooltip + :max="1" + :step="0.05" + input-size="medium" + > + </el-slider> + </el-col> + </el-row> + </el-collapse-item> + + <el-collapse-item title="文字" name="font"> + <el-row> + <el-col :span="12"> + <h5>字体</h5> + </el-col> + <el-col :span="12"> + <el-select + v-model="selectedFontFamily" + placeholder="请选择字体" + @change="changeFontFamily" + > + <el-option + v-for="item in fontFamilies" + :key="item" + :label="item" + :value="item" + > + </el-option> + </el-select> + </el-col> + </el-row> + + <h5>字号范围</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="fontSize" + range + show-tooltip + :max="100" + :step="1" + input-size="medium" + @change="change" + > + </el-slider> + </el-col> + </el-row> + + <h5>旋转范围</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="rotate" + range + show-tooltip + :min="-180" + :max="180" + :step="45" + input-size="medium" + @change="change" + > + </el-slider> + </el-col> + </el-row> + </el-collapse-item> + <el-collapse-item title="形状" name="mask"> + <h5>宽度(百分比)</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="width" + show-tooltip + :max="100" + :step="5" + input-size="medium" + @change="change" + > + </el-slider> + </el-col> + </el-row> + + <h5>高度(百分比)</h5> + <el-row> + <el-col :span="22" :offset="1"> + <el-slider + v-model="height" + show-tooltip + :max="100" + :step="5" + input-size="medium" + @change="change" + > + </el-slider> + </el-col> + </el-row> + + <el-row> + <el-col :span="12"> + <h5>遮罩形状</h5> + </el-col> + <el-col :span="12"> + <el-select + v-model="selectedMask" + placeholder="请选择遮罩图形" + @change="changeMask" + > + <el-option + v-for="item in masks" + :key="item.value" + :label="item.name" + :value="item.value" + > + </el-option> + </el-select> + </el-col> + </el-row> + </el-collapse-item> + </el-collapse> +</template> <script setup lang="ts"> -import { ref } from 'vue' -const themeColors = ref(['#720FEB', '#EB1AA9', '#B6DA02']); +import { ref } from "vue"; +// const themeColors = ref(['#720FEB', '#EB1AA9', '#B6DA02']); const hue = ref([0, 255]); const saturation = ref([0.5, 0.8]); const lightness = ref([0.5, 0.8]); const alpha = ref([0.5, 0.8]); +const selectedFontFamily = ref("Arial"); +const fontSize = ref([4, 100]); +const rotate = ref([-90, 90]); +const width = ref(90); +const height = ref(90); +const selectedMask = ref("circle"); + +const fontFamilies = [ + "Arial", + "Lato", + "Times New Roman", + "Courier New", + "Georgia", + "Helvetica", + "Lucida Sans", + "Tahoma", + "Verdana" +]; +const masks = [ + { + name: "椭圆", + value: "circle" + }, + { + name: "方形", + value: "square" + }, + { + name: "菱形", + value: "diamond" + }, + { + name: "三角形", + value: "triangle" + }, + { + name: "五边形", + value: "pentagon" + }, + { + name: "五角星", + value: "star" + }, + { + name: "爱心", + value: "cardioid" + // }, { + // name: '自定义图片', + // value: 'image' + } +]; + +const emit = defineEmits(["change"]); + +defineExpose({ getConfig }); + +function changeFontFamily() { + change(); +} + +function changeMask() { + change(); +} + +function change() { + emit("change"); +} + +function getConfig() { + return { + hue: hue.value, + saturation: saturation.value, + lightness: lightness.value, + alpha: alpha.value, + fontFamily: selectedFontFamily.value, + fontSize: fontSize.value, + rotate: rotate.value, + width: width.value, + height: height.value, + shape: selectedMask.value === "image" ? null : selectedMask.value + }; +} </script> <style lang="scss"> .title-right { - position: absolute; - top: 10px; - right: 0; + position: absolute; + top: 10px; + right: 0; - a { - display: inline-block; - } + a { + display: inline-block; + } } .el-color-picker { - margin-right: 5px; + margin-right: 5px; } .color-picker-btn { - display: inline-block; - width: 30px; - height: 30px; - margin-right: 5px; - padding: 3px 6px; - box-sizing: border-box; - vertical-align: top; - border: 1px solid #e6e6e6; - border-radius: 4px; - color: #409EFF; + display: inline-block; + width: 30px; + height: 30px; + margin-right: 5px; + padding: 3px 6px; + box-sizing: border-box; + vertical-align: top; + border: 1px solid #e6e6e6; + border-radius: 4px; + color: #409eff; } .text-pad { - padding: 8px 0; + padding: 8px 0; } .el-dropdown-link { - cursor: pointer; - color: #409EFF; + cursor: pointer; + color: #409eff; } .el-icon-arrow-down { - font-size: 12px; + font-size: 12px; +} + +h5 { + margin: 8px 0; + font-size: 13px; + color: #666; } </style> diff --git a/src/components/WData.vue b/src/components/WData.vue index 087c007..a7bfc47 100644 --- a/src/components/WData.vue +++ b/src/components/WData.vue @@ -1,196 +1,151 @@ <template> - <div> - <el-table class="word-table" - :data="tableData" - empty-text="无数据" - > - <el-table-column - fixed - prop="name" - label="文本" - > - <template v-slot="scope"> - <el-input - v-if="scope && scope.row.editAttr === 'name'" - size="small" - v-model="scope.row.name" - @blur="doneEditing(scope.row)" - > - </el-input> - <span - v-if="scope && scope.row.editAttr !== 'name'" - @click="edit(scope.row, 'name')" - > - {{ scope.row.name }} - </span> - </template> - </el-table-column> - <el-table-column - prop="value" - label="相对大小" - > - <template v-slot="scope"> - <el-input - v-if="scope && scope.row.editAttr === 'value'" - size="small" - v-model="scope.row.value" - @blur="doneEditing(scope.row)" - > - </el-input> - <span - v-if="scope && scope.row.editAttr !== 'value'" - @click="edit(scope.row, 'value')" - > - {{ scope.row.value }} - </span> - </template> - </el-table-column> - <el-table-column - label="操作" - width="50" - > - <template v-slot="scope"> - <el-button - type="text" - size="small" - @click="removeData(scope.row)" - > - 删除 - </el-button> - </template> - </el-table-column> - </el-table> + <div> + <el-table class="word-table" :data="tableData" empty-text="无数据"> + <el-table-column prop="name" label="文本"> + <template v-slot="scope"> + <el-input + v-if="!scope || scope.row.editAttr === 'name'" + size="small" + v-model="scope.row.name" + @blur="doneEditing(scope.row)" + > + </el-input> + <span + v-if="!scope || scope.row.editAttr !== 'name'" + @click="edit(scope.row, 'name')" + > + {{ scope.row.name }} + </span> + </template> + </el-table-column> + <el-table-column prop="value" label="相对大小"> + <template v-slot="scope"> + <el-input + v-if="scope && scope.row.editAttr === 'value'" + size="small" + v-model="scope.row.value" + @blur="doneEditing(scope.row)" + > + </el-input> + <span + v-if="scope && scope.row.editAttr !== 'value'" + @click="edit(scope.row, 'value')" + > + {{ scope.row.value }} + </span> + </template> + </el-table-column> + <el-table-column label="操作" width="50"> + <template v-slot="scope"> + <el-button type="text" size="small" @click="removeData(scope.row)"> + 删除 + </el-button> + </template> + </el-table-column> + </el-table> - <el-table class="word-table" - :show-header="false" - :data="pendingData" - > - <el-table-column - fixed - prop="name" - label="文本" - > - <template v-slot="scope"> - <el-input - size="small" - v-model="scope.row.name" - > - </el-input> - </template> - </el-table-column> - <el-table-column - prop="value" - label="大小" - > - <template v-slot="scope"> - <el-input - size="small" - v-model="scope.row.value" - placeholder="留空则随机大小" - > - </el-input> - </template> - </el-table-column> - <el-table-column - label="操作" - width="50" - > - <template v-slot="scope"> - <el-button - type="text" - size="small" - @click="addRow()" - > - 添加 - </el-button> - </template> - </el-table-column> - </el-table> - <div class="padding"> - <el-button - type="primary" - size="medium" - @click="removeAll()" - > - 导入 .cvs - </el-button> - <el-button - type="danger" - size="medium" - @click="removeAll()" - > - 清空 - </el-button> - </div> + <el-table class="word-table" :show-header="false" :data="pendingData"> + <el-table-column fixed prop="name" label="文本"> + <template v-slot="scope"> + <el-input size="small" v-model="scope.row.name"> </el-input> + </template> + </el-table-column> + <el-table-column prop="value" label="大小"> + <template v-slot="scope"> + <el-input + size="small" + v-model="scope.row.value" + placeholder="留空则随机大小" + > + </el-input> + </template> + </el-table-column> + <el-table-column label="操作" width="50"> + <template v-slot="scope"> + <el-button type="text" size="small" @click="addRow()"> + 添加 + </el-button> + </template> + </el-table-column> + </el-table> + <div class="padding"> + <el-button type="primary" size="medium" @click="removeAll()"> + 导入 .cvs + </el-button> + <el-button type="danger" size="medium" @click="removeAll()"> + 清空 + </el-button> </div> + </div> </template> <script setup lang="ts"> -import { ref, defineEmits } from 'vue'; +import { ref, defineEmits } from "vue"; type WordData = { - name?: string; - value?: number; - editAttr?: string; + name?: string; + value?: number; + editAttr?: string; }; const tableData = ref([] as WordData[]); const pendingData = ref([{}] as WordData[]); -const emit = defineEmits(['change']); +const emit = defineEmits(["change"]); defineExpose({ data: tableData, setData }); function setData(data: WordData[]) { - tableData.value = data; - emit('change'); + tableData.value = data; + emit("change"); } function removeData(row: WordData) { - tableData.value = tableData.value.filter(item => item !== row); - emit('change'); + tableData.value = tableData.value.filter(item => item !== row); + emit("change"); } -function edit(row: WordData, attr: 'name' | 'value') { - row.editAttr = attr; +function edit(row: WordData, attr: "name" | "value") { + row.editAttr = attr; } function doneEditing(row: WordData) { - row.editAttr = undefined; - emit('change'); + row.editAttr = undefined; + emit("change"); } function addRow() { - if (pendingData.value[0].name) { - const rawValue = pendingData.value[0].value as unknown as string; - const value = parseFloat(rawValue); - if (rawValue != null && rawValue !== '' && isNaN(value)) { - alert('请输入数字'); - return; - } - else { - tableData.value.push({ - name: pendingData.value[0].name, - value - }); - pendingData.value = [{}]; - emit('change'); - } + if (pendingData.value[0].name) { + const rawValue = (pendingData.value[0].value as unknown) as string; + const value = parseFloat(rawValue); + if (rawValue != null && rawValue !== "" && isNaN(value)) { + alert("请输入数字"); + return; + } else { + tableData.value.push({ + name: pendingData.value[0].name, + value + }); + pendingData.value = [{}]; + emit("change"); } + } } function removeAll() { - tableData.value = []; - emit('change'); + tableData.value = []; + emit("change"); } </script> <style lang="scss"> .word-table { - width: 100%; + width: 100%; + max-height: 400px; + overflow: auto; } .padding { - padding: 10px; + padding: 10px; } </style> diff --git a/src/data/defaultData.ts b/src/data/defaultData.ts index 7efce3e..7d803a5 100644 --- a/src/data/defaultData.ts +++ b/src/data/defaultData.ts @@ -1,16 +1,349 @@ -export default [{ - name: 'Apache', - value: 300 -}, { - name: 'ECharts', - value: 300 -}, { - name: 'WordCloud', - value: 300 -}, { - name: 'Generator', - value: 200 -}, { - name: 'Tool', - value: 80 -}]; +const keywords = { + 'visualMap': 22199, + 'continuous': 10288, + 'contoller': 620, + 'series': 274470, + 'gauge': 12311, + 'detail': 1206, + 'piecewise': 4885, + 'textStyle': 32294, + 'markPoint': 18574, + 'pie': 38929, + 'roseType': 969, + 'label': 37517, + 'emphasis': 12053, + 'yAxis': 57299, + 'name': 15418, + 'type': 22905, + 'gridIndex': 5146, + 'normal': 49487, + 'itemStyle': 33837, + 'min': 4500, + 'silent': 5744, + 'animation': 4840, + 'offsetCenter': 232, + 'inverse': 3706, + 'borderColor': 4812, + 'markLine': 16578, + 'line': 76970, + 'radiusAxis': 6704, + 'radar': 15964, + 'data': 60679, + 'dataZoom': 24347, + 'tooltip': 43420, + 'toolbox': 25222, + 'geo': 16904, + 'parallelAxis': 4029, + 'parallel': 5319, + 'max': 3393, + 'bar': 43066, + 'heatmap': 3110, + 'map': 20285, + 'animationDuration': 3425, + 'animationDelay': 2431, + 'splitNumber': 5175, + 'axisLine': 12738, + 'lineStyle': 19601, + 'splitLine': 7133, + 'axisTick': 8831, + 'axisLabel': 17516, + 'pointer': 590, + 'color': 23426, + 'title': 38497, + 'formatter': 15214, + 'slider': 7236, + 'legend': 66514, + 'grid': 28516, + 'smooth': 1295, + 'smoothMonotone': 696, + 'sampling': 757, + 'feature': 12815, + 'saveAsImage': 2616, + 'polar': 6279, + 'calculable': 879, + 'backgroundColor': 9419, + 'excludeComponents': 130, + 'show': 20620, + 'text': 2592, + 'icon': 2782, + 'dimension': 478, + 'inRange': 1060, + 'animationEasing': 2983, + 'animationDurationUpdate': 2259, + 'animationDelayUpdate': 2236, + 'animationEasingUpdate': 2213, + 'xAxis': 89459, + 'angleAxis': 5469, + 'showTitle': 484, + 'dataView': 2754, + 'restore': 932, + 'timeline': 10104, + 'range': 477, + 'value': 5732, + 'precision': 878, + 'target': 1433, + 'zlevel': 5361, + 'symbol': 8718, + 'interval': 7964, + 'symbolSize': 5300, + 'showSymbol': 1247, + 'inside': 8913, + 'xAxisIndex': 3843, + 'orient': 4205, + 'boundaryGap': 5073, + 'nameGap': 4896, + 'zoomLock': 571, + 'hoverAnimation': 2307, + 'legendHoverLink': 3553, + 'stack': 2907, + 'throttle': 466, + 'connectNulls': 897, + 'clipOverflow': 826, + 'startValue': 551, + 'minInterval': 3292, + 'opacity': 3097, + 'splitArea': 4775, + 'filterMode': 635, + 'end': 409, + 'left': 6475, + 'funnel': 2238, + 'lines': 6403, + 'baseline': 431, + 'align': 2608, + 'coord': 897, + 'nameTextStyle': 7477, + 'width': 4338, + 'shadowBlur': 4493, + 'effect': 929, + 'period': 225, + 'areaColor': 631, + 'borderWidth': 3654, + 'nameLocation': 4418, + 'position': 11723, + 'containLabel': 1701, + 'scatter': 10718, + 'areaStyle': 5310, + 'scale': 3859, + 'pieces': 414, + 'categories': 1000, + 'selectedMode': 3825, + 'itemSymbol': 273, + 'effectScatter': 7147, + 'fontStyle': 3376, + 'fontSize': 3386, + 'margin': 1034, + 'iconStyle': 2257, + 'link': 1366, + 'axisPointer': 5245, + 'showDelay': 896, + 'graph': 22194, + 'subtext': 1442, + 'selected': 2881, + 'barCategoryGap': 827, + 'barGap': 1094, + 'barWidth': 1521, + 'coordinateSystem': 3622, + 'barBorderRadius': 284, + 'z': 4014, + 'polarIndex': 1456, + 'shadowOffsetX': 3046, + 'shadowColor': 3771, + 'shadowOffsetY': 2475, + 'height': 1988, + 'barMinHeight': 575, + 'lang': 131, + 'symbolRotate': 2752, + 'symbolOffset': 2549, + 'showAllSymbol': 942, + 'transitionDuration': 993, + 'bottom': 3724, + 'fillerColor': 229, + 'nameMap': 1249, + 'barMaxWidth': 747, + 'radius': 2103, + 'center': 2425, + 'magicType': 3276, + 'labelPrecision': 248, + 'option': 654, + 'seriesIndex': 935, + 'controlPosition': 121, + 'itemGap': 3188, + 'padding': 3481, + 'shadowStyle': 347, + 'boxplot': 1394, + 'labelFormatter': 264, + 'realtime': 631, + 'dataBackgroundColor': 239, + 'showDetail': 247, + 'showDataShadow': 217, + 'x': 684, + 'valueDim': 499, + 'onZero': 931, + 'right': 3255, + 'clockwise': 1035, + 'itemWidth': 1732, + 'trigger': 3840, + 'axis': 379, + 'selectedOffset': 670, + 'startAngle': 1293, + 'minAngle': 590, + 'top': 4637, + 'avoidLabelOverlap': 870, + 'labelLine': 3785, + 'sankey': 2933, + 'endAngle': 213, + 'start': 779, + 'roam': 1738, + 'fontWeight': 2828, + 'fontFamily': 2490, + 'subtextStyle': 2066, + 'indicator': 853, + 'sublink': 708, + 'zoom': 1038, + 'subtarget': 659, + 'length': 1060, + 'itemSize': 505, + 'controlStyle': 452, + 'yAxisIndex': 2529, + 'edgeLabel': 1188, + 'radiusAxisIndex': 354, + 'scaleLimit': 1313, + 'geoIndex': 535, + 'regions': 1892, + 'itemHeight': 1290, + 'nodes': 644, + 'candlestick': 3166, + 'crossStyle': 466, + 'edges': 369, + 'links': 3277, + 'layout': 846, + 'barBorderColor': 721, + 'barBorderWidth': 498, + 'treemap': 3865, + 'y': 367, + 'valueIndex': 704, + 'showLegendSymbol': 482, + 'mapValueCalculation': 492, + 'optionToContent': 264, + 'handleColor': 187, + 'handleSize': 271, + 'showContent': 1853, + 'angleAxisIndex': 406, + 'endValue': 327, + 'triggerOn': 1720, + 'contentToOption': 169, + 'buttonColor': 71, + 'rotate': 1144, + 'hoverLink': 335, + 'outOfRange': 491, + 'textareaColor': 58, + 'textareaBorderColor': 58, + 'textColor': 60, + 'buttonTextColor': 66, + 'category': 336, + 'hideDelay': 786, + 'alwaysShowContent': 1267, + 'extraCssText': 901, + 'effectType': 277, + 'force': 1820, + 'rippleEffect': 723, + 'edgeSymbolSize': 329, + 'showEffectOn': 271, + 'gravity': 199, + 'edgeLength': 193, + 'layoutAnimation': 152, + 'length2': 169, + 'enterable': 957, + 'dim': 83, + 'readOnly': 143, + 'levels': 444, + 'textGap': 256, + 'pixelRatio': 84, + 'nodeScaleRatio': 232, + 'draggable': 249, + 'brushType': 158, + 'radarIndex': 152, + 'large': 182, + 'edgeSymbol': 675, + 'largeThreshold': 132, + 'leafDepth': 73, + 'childrenVisibleMin': 73, + 'minSize': 35, + 'maxSize': 35, + 'sort': 90, + 'funnelAlign': 61, + 'source': 336, + 'nodeClick': 200, + 'curveness': 350, + 'areaSelectStyle': 104, + 'parallelIndex': 52, + 'initLayout': 359, + 'trailLength': 116, + 'boxWidth': 20, + 'back': 53, + 'rewind': 110, + 'zoomToNodeRatio': 80, + 'squareRatio': 60, + 'parallelAxisDefault': 358, + 'checkpointStyle': 440, + 'nodeWidth': 49, + 'color0': 62, + 'layoutIterations': 56, + 'nodeGap': 54, + 'color(Array': 76, + '<string>)': 76, + 'repulsion': 276, + 'tiled': 105, + 'currentIndex': 145, + 'axisType': 227, + 'loop': 97, + 'playInterval': 112, + 'borderColor0': 23, + 'gap': 43, + 'autoPlay': 123, + 'showPlayBtn': 25, + 'breadcrumb': 119, + 'colorMappingBy': 85, + 'id': 18, + 'blurSize': 85, + 'minOpacity': 50, + 'maxOpacity': 54, + 'prevIcon': 12, + 'children': 21, + 'shape': 98, + 'nextIcon': 12, + 'showNextBtn': 17, + 'stopIcon': 21, + 'visibleMin': 83, + 'visualDimension': 97, + 'colorSaturation': 56, + 'colorAlpha': 66, + 'emptyItemWidth': 10, + 'inactiveOpacity': 4, + 'activeOpacity': 4, + 'showPrevBtn': 19, + 'playIcon': 26, + 'ellipsis': 19, + 'gapWidth': 19, + 'borderColorSaturation': 10, + 'handleIcon': 2, + 'handleStyle': 6, + 'borderType': 1, + 'constantSpeed': 1, + 'polyline': 2, + 'blendMode': 1, + 'dataBackground': 1, + 'textAlign': 1, + 'textBaseline': 1, + 'brush': 3 + }; + + const data: {name: string, value: number}[] = []; + for (var name in keywords) { + data.push({ + name: name, + value: Math.floor(Math.sqrt(keywords[name as keyof typeof keywords])) + }); + } + +export default data; diff --git a/tsconfig.json b/tsconfig.json index 582c895..fd7f559 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,18 +1,18 @@ { - "compilerOptions": { - "outDir": "./dist/", - "sourceMap": true, - "strict": true, - "noImplicitReturns": true, - "noImplicitAny": true, - "module": "es6", - "moduleResolution": "node", - "target": "es6", - "allowJs": true, - "allowSyntheticDefaultImports": true - }, - "include": ["src/**/*"], - "exclude": ["node_modules"], - "esModuleInterop": true, + "compilerOptions": { + "outDir": "./dist/", + "sourceMap": true, + "strict": true, + "noImplicitReturns": true, + "noImplicitAny": true, + "module": "es6", + "moduleResolution": "node", + "target": "es6", + "allowJs": true, "allowSyntheticDefaultImports": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules"], + "esModuleInterop": true, + "allowSyntheticDefaultImports": true } diff --git a/vite.config.ts b/vite.config.ts index 60d1d88..0519993 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,14 +4,20 @@ const { resolve } = require('path'); // https://vitejs.dev/config/ export default defineConfig({ - base: './', - build: { - rollupOptions: { - input: { - // Use body.html when deploying - main: resolve(__dirname, '_body.html') - } - } - }, - plugins: [vue()] -}); \ No newline at end of file + base: './', + build: { + rollupOptions: { + input: { + // Use body.html when deploying + main: resolve(__dirname, '_body.html') + } + } + }, + plugins: [vue()], + resolve: { + alias: { + 'echarts-wordcloud': '/Library/WebServer/Documents/echarts-wordcloud', + echarts: '/Library/WebServer/Documents/echarts' + } + } +}); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org For additional commands, e-mail: commits-h...@echarts.apache.org