From fc86397362ec8a42e54650f9d34bf6fbe68c4fb5 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Thu, 8 Jun 2023 10:20:01 +0800 Subject: [PATCH 1/7] chore: update vrender version --- common/config/rush/pnpm-config.json | 2 +- common/config/rush/pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index 5e024cd19..78f727d07 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -83,7 +83,7 @@ * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides */ "globalOverrides": { - "@visactor/vrender": "0.9.0-alpha.0" + "@visactor/vrender": "0.9.0-alpha.1" }, /** * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 84f152c7d..683521e58 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: 5.4 overrides: - '@visactor/vrender': 0.9.0-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 importers: @@ -23,7 +23,7 @@ importers: '@types/offscreencanvas': 2019.6.4 '@types/react': 16.9.49 '@types/react-dom': 16.9.8 - '@visactor/vrender': 0.9.0-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 '@visactor/vrender-components': 0.9.0-alpha.1 '@visactor/vscale': 0.9.0-alpha.2 '@visactor/vutils': 0.9.0-alpha.2 @@ -54,8 +54,8 @@ importers: vite: 3.2.6 vite-plugin-markdown: ^2.1.0 dependencies: - '@visactor/vrender': 0.9.0-alpha.0 - '@visactor/vrender-components': 0.9.0-alpha.1_ic7pqlcwobarhfzsp5vbpw5ctq + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vrender-components': 0.9.0-alpha.1_t54dw3v433tpqhr37nftctsmvm '@visactor/vscale': 0.9.0-alpha.2 '@visactor/vutils': 0.9.0-alpha.2 cssfontparser: 1.2.1 @@ -2658,20 +2658,20 @@ packages: resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} dev: true - /@visactor/vrender-components/0.9.0-alpha.1_ic7pqlcwobarhfzsp5vbpw5ctq: + /@visactor/vrender-components/0.9.0-alpha.1_t54dw3v433tpqhr37nftctsmvm: resolution: {integrity: sha512-Z/D2fk61awTAGhZY9Cmq1CXFH4sgrx2EUCCKbVr1Mw/9Orq5nITQ2xHbPWwrProg+VZS9dRoMDP5vvJsAO2RUA==} peerDependencies: '@visactor/vrender': 0.9.0-alpha.1 '@visactor/vscale': 0.9.0-alpha.2 dependencies: - '@visactor/vrender': 0.9.0-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 '@visactor/vscale': 0.9.0-alpha.2 '@visactor/vutils': 0.9.0-alpha.2 gl-matrix: 3.4.3 dev: false - /@visactor/vrender/0.9.0-alpha.0: - resolution: {integrity: sha512-sLI8F12Si5+gWBGBvPGlJgLgyUNC/rRPhaedDTJoJL/+19B3p1gEVaMeNkE4WijZNMQ83/vJbAo0aoBoPWKN6A==} + /@visactor/vrender/0.9.0-alpha.1: + resolution: {integrity: sha512-yd0F5nya1DATzDNIAko4BmZQlsHIOEsdSU+qFTWwBtCzC6b2lnZoYqvZT8YDt6ZqRoH6YGKv28sstRHwPSkqwA==} dependencies: '@visactor/vutils': 0.9.0-alpha.2 color-convert: 2.0.1 From 851499a7651e682fcc697f0a2a672b48d495ee78 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Thu, 8 Jun 2023 13:58:34 +0800 Subject: [PATCH 2/7] chore: add pre-commit to generate rush log --- common/git-hooks/pre-commit | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/common/git-hooks/pre-commit b/common/git-hooks/pre-commit index 5686c1c8a..9b7f86791 100644 --- a/common/git-hooks/pre-commit +++ b/common/git-hooks/pre-commit @@ -1,5 +1,36 @@ #!/bin/sh + +# log rush change to stdout +STAGE_FILES=$(git diff --cached --name-only) + +if [[ $STAGE_FILES != "" ]] ; then + changedFiles='' + # 红色文本的 ANSI 转义序列 + RED='\033[0;31m' + # 大字体的 ANSI 转义序列 + BIG_FONT='\033[1m' + + # 重置颜色的 ANSI 转义序列 + RESET='\033[0m' + + for fileName in $STAGE_FILES;do + if [[ $fileName =~ ^packages/.*\/src/.* ]]; then + changedFiles="${changedFiles} + ${RED}${fileName}${RESET}" + fi + done; + + if [[ $changedFiles != "" ]] ; then + + echo " + [Notice]: please check, do you need to run ${RED}${BIG_FONT}rush change${RESET} to generate changelog, + you has modified some src files, include: + ${changedFiles} + " + fi +fi + node common/scripts/install-run-rush.js lint-staged || exit $? #++ if [ -f "common/scripts/pre-commit" ]; then From fe8ca9f55f090fb6107acffcf5544ab641609525 Mon Sep 17 00:00:00 2001 From: Rui-Sun Date: Thu, 8 Jun 2023 20:11:53 +0800 Subject: [PATCH 3/7] chore: add bugserver ci * chore: add bugserver ci * chore: update unit-test.yml --- .github/workflows/bug-server.yml | 39 ++++++ .github/workflows/unit-test.yml | 12 +- common/config/rush/pnpm-lock.yaml | 40 ++++++ packages/vtable/github-ci.js | 218 ++++++++++++++++++++++++++++++ packages/vtable/jest.config.js | 31 +++-- packages/vtable/package.json | 9 +- packages/vtable/setup-mock.js | 2 + 7 files changed, 332 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/bug-server.yml create mode 100644 packages/vtable/github-ci.js create mode 100644 packages/vtable/setup-mock.js diff --git a/.github/workflows/bug-server.yml b/.github/workflows/bug-server.yml new file mode 100644 index 000000000..63206b71e --- /dev/null +++ b/.github/workflows/bug-server.yml @@ -0,0 +1,39 @@ +name: Bug Server CI + +# 这里业务方根据需求设置 +on: + pull_request: + branches: ['main'] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + cache-dependency-path: './common/config/rush/pnpm-lock.yaml' + + - name: Print All Github Environment Variables + run: env + + - name: Install rush + run: node common/scripts/install-run-rush.js install --bypass-policy + + - name: Build + run: node common/scripts/install-run-rush.js build -t @visactor/vtable + + - name: Run CI + working-directory: ./packages/vtable + env: + BUG_SERVER_TOKEN: ${{ secrets.BUG_SERVER_TOKEN }} + run: node ../../common/scripts/install-run-rushx.js ci diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 063600d3a..11e803355 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -11,11 +11,11 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: macOS-latest strategy: matrix: - node-version: [14.x, 16.x, 18.x] + node-version: [18.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: @@ -27,8 +27,10 @@ jobs: cache: 'npm' cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - # Install rush + # Install rush - name: Install rush run: node common/scripts/install-run-rush.js install --bypass-policy - - run: node common/scripts/install-run-rush.js build --only tag:package - - run: node common/scripts/install-run-rush.js test --only tag:package + - name: Build + run: node common/scripts/install-run-rush.js build --only tag:package + - name: Test + run: node common/scripts/install-run-rush.js test --only tag:package diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 683521e58..c34aa52a6 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -31,6 +31,7 @@ importers: chai: 4.3.4 cssfontparser: ^1.2.1 eslint: ~8.18.0 + form-data: ~4.0.0 inversify: 6.0.1 jest: ^26.0.0 jest-electron: ^0.1.12 @@ -39,6 +40,7 @@ importers: magic-string: ^0.25.7 markdown-it: 13.0.1 mocha: 9.1.3 + node-fetch: 2.6.7 postcss: 8.4.21 react: 16.13.0 react-dom: 16.13.0 @@ -76,6 +78,7 @@ importers: '@vitejs/plugin-react': 3.1.0_vite@3.2.6 chai: 4.3.4 eslint: 8.18.0 + form-data: 4.0.0 inversify: 6.0.1 jest: 26.6.3_ts-node@10.9.0 jest-electron: 0.1.12_jest@26.6.3 @@ -84,6 +87,7 @@ importers: magic-string: 0.25.9 markdown-it: 13.0.1 mocha: 9.1.3 + node-fetch: 2.6.7 postcss: 8.4.21 react: 16.13.0 react-dom: 16.13.0_react@16.13.0 @@ -5339,6 +5343,15 @@ packages: mime-types: 2.1.35 dev: true + /form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /fraction.js/4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: false @@ -8071,6 +8084,18 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true + /node-fetch/2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + /node-int64/0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true @@ -10467,6 +10492,10 @@ packages: url-parse: 1.5.10 dev: true + /tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + /tr46/1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: @@ -11118,6 +11147,10 @@ packages: makeerror: 1.0.12 dev: true + /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==} dev: true @@ -11147,6 +11180,13 @@ packages: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} dev: true + /whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + /whatwg-url/6.5.0: resolution: {integrity: sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==} dependencies: diff --git a/packages/vtable/github-ci.js b/packages/vtable/github-ci.js new file mode 100644 index 000000000..cf9882c17 --- /dev/null +++ b/packages/vtable/github-ci.js @@ -0,0 +1,218 @@ +const nodeFetch = require('node-fetch'); +const FormData = require('form-data'); +const fs = require('fs'); +const path = require('path'); + +const host = `https://bug-server.zijieapi.com`; +const commonHeader = {}; +const PRODUCT = 'VisActor/VTable'; +const CHECK_SCM_BUILD_INTERVAL_MS = 10 * 1000; +const CHECK_SCM_BUILD_MAX_COUNT = 30; +const CHECK_PHOTO_TEST_INTERVAL_MS = 10 * 1000; +const CHECK_PHOTO_TEST_MAX_COUNT = 30; + +const fetch = async (url, options) => { + const newOptions = { + ...options, + headers: { + ...options.headers, + ...commonHeader + } + }; + const result = await nodeFetch(url, newOptions); + const json = await result.json(); + if (json.code === -1) { + console.log(`request url: ${url}`); + throw new Error(`Request Fail, msg: ${json.msg}`); + } + return json; +}; + +const getFormData = data => { + const formData = new FormData({ readable: true }); + formData.append('product', PRODUCT); + formData.append('token', process.env.BUG_SERVER_TOKEN); + Object.entries(data).forEach(([key, value]) => { + if (key) { + formData.append(key, value ?? ''); + } + }); + return formData; +}; + +async function uploadFile() { + console.log(`file path: ${path.resolve(process.cwd(), `dist/vtable.js`)}`); + const formData = getFormData({ + bundleFile: fs.createReadStream(path.resolve(process.cwd(), `dist/vtable.js`)), + triggerType: 'upload-file' + }); + const res = await fetch(`${host}/api/ci/trigger`, { + method: 'POST', + headers: { + ...formData.getHeaders() + }, + body: formData + }); + return res; +} + +async function triggerScmBuild({ fileUrl }) { + const formData = getFormData({ + triggerType: 'scm-build', + fileUrl: fileUrl, + createUser: process.env.GITHUB_ACTOR ?? '' + }); + + const res = await fetch(`${host}/api/ci/trigger`, { + method: 'POST', + headers: { + ...formData.getHeaders() + }, + body: formData + }); + return res; +} + +async function getScmVersionInfo({ scmVersion }) { + const formData = getFormData({ + triggerType: 'scm-version-info', + scmVersion + }); + + const res = await fetch(`${host}/api/ci/trigger`, { + method: 'POST', + headers: { + ...formData.getHeaders() + }, + body: formData + }); + + console.log(`getScmVersionInfo result: ${JSON.stringify(res)}`); + return res; +} + +async function waitUntilScmBuildOK({ scmVersion }) { + let count = 0; + + return await new Promise(resolve => { + const interval = setInterval(async () => { + count++; + const { + data: { status } + } = await getScmVersionInfo({ scmVersion }); + // build_ok/build_failed/building/prepare + if (['build_ok', 'build_failed'].includes(status) || count > CHECK_SCM_BUILD_MAX_COUNT) { + resolve({ status }); + clearInterval(interval); + } + }, CHECK_SCM_BUILD_INTERVAL_MS); + }); +} + +async function triggerPhotoTest({ scmVersion, scmVersionStatus }) { + const formData = getFormData({ + triggerType: 'photo-test', + scmVersion: scmVersion, + scmVersionStatus: scmVersionStatus, + commitId: process.env.GITHUB_SHA ?? '', + commitUrl: process.env.GITHUB_REF ?? '', + commitBranchName: process.env.GITHUB_HEAD_REF ?? '', + commitCreateUser: process.env.GITHUB_ACTOR ?? '', + commitDescription: '' + }); + + const res = await fetch(`${host}/api/ci/trigger`, { + method: 'POST', + headers: { + ...formData.getHeaders() + }, + body: formData + }); + return res; +} + +async function getPhotoResult({ scmVersion, bundleId }) { + const formData = getFormData({ + triggerType: 'photo-result', + scmVersion, + bundleId + }); + + const res = await fetch(`${host}/api/ci/trigger`, { + method: 'POST', + headers: { + ...formData.getHeaders() + }, + body: formData + }); + + console.log(`getPhotoResult, result: ${JSON.stringify(res)} `); + return res; +} + +async function waitUntilPhotoTestOK({ bundleId, scmVersion }) { + let count = 0; + + return await new Promise(resolve => { + const interval = setInterval(async () => { + count++; + const { data } = await getPhotoResult({ scmVersion, bundleId }); + // pending / ok + if (['ok'].includes(data.status) || count > CHECK_PHOTO_TEST_MAX_COUNT) { + resolve(data); + clearInterval(interval); + } + }, CHECK_PHOTO_TEST_INTERVAL_MS); + }); +} + +async function trigger() { + console.log('====start===='); + const { + data: { fileUrl } + } = await uploadFile(); + if (!fileUrl) { + throw new Error('uploadFile fail'); + } + console.log('uploadFile success'); + + const { + data: { scmVersion } + } = await triggerScmBuild({ fileUrl }); + console.log(`triggerScmBuild scmVersion: ${scmVersion}`); + + const { status: scmVersionStatus } = await waitUntilScmBuildOK({ + scmVersion + }); + console.log(`waitUntilScmBuildOK scmVersionStatus: ${scmVersionStatus}`); + + if (scmVersionStatus !== 'build_ok') { + throw new Error(`scm build status: ${scmVersionStatus}`); + } + + const { + data: { bundleId } + } = await triggerPhotoTest({ scmVersion, scmVersionStatus }); + console.log(`triggerPhotoTest bundleId:${bundleId}`); + + const { + status: photoTestStatus, + successCount, + totalCount + } = await waitUntilPhotoTestOK({ + bundleId, + scmVersion + }); + console.log( + `waitUntilPhotoTestOK, status: ${photoTestStatus}, totalCount: ${totalCount}, successCount: ${successCount}` + ); + + if (photoTestStatus !== 'ok') { + throw new Error(`photo test status: ${photoTestStatus}`); + } + + if (successCount !== totalCount) { + throw new Error(`totalCount: ${totalCount}, successCount: ${successCount}`); + } +} +trigger(); diff --git a/packages/vtable/jest.config.js b/packages/vtable/jest.config.js index 900f0141b..748154fb1 100644 --- a/packages/vtable/jest.config.js +++ b/packages/vtable/jest.config.js @@ -1,18 +1,27 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require('path'); + module.exports = { + preset: 'ts-jest', runner: 'jest-electron/runner', - // testRunner: "jest-circus/runner", - testRegex: '/__tests__/.*\\.test\\.(js|ts|mjs)$', testEnvironment: 'jest-electron/environment', - transform: { - '^.+\\.(tsx|ts)?$': 'ts-jest', - '^.+\\.css$': 'jest-transform-stub' - }, - moduleFileExtensions: ['ts', 'tsx', 'js', 'json', 'jsx'], + testRegex: '/__tests__/.*\\.test\\.(js|ts)$', + silent: true, globals: { 'ts-jest': { - isolatedModules: false + diagnostics: { + exclude: ['**'] + }, + tsconfig: { + resolveJsonModule: true, + esModuleInterop: true + } }, - __DEV__: true, - __VERSION__: '1.0.0' //未生效 目前是在各个test.ts文件中分别定义了global.__VERSION__ = 'none'; - } + __DEV__: true + }, + verbose: true, + collectCoverage: true, + coverageReporters: ['json-summary', 'lcov'], + coveragePathIgnorePatterns: ['node_modules', '__tests__', 'interface.ts', '.d.ts', 'typings'], + setupFiles: ['./setup-mock.js'] }; diff --git a/packages/vtable/package.json b/packages/vtable/package.json index 3bec68fb3..b77f5a556 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -37,7 +37,8 @@ "dev": "bundle --clean -f es -w", "start": "vite ./vite", "prepublishOnly": "npm run build", - "test": "jest" + "test": "jest", + "ci": "node github-ci.js" }, "dependencies": { "@visactor/vrender": "0.9.0-alpha.1", @@ -84,7 +85,9 @@ "json-formatter-js": "^2.3.4", "inversify": "6.0.1", "vite-plugin-markdown": "^2.1.0", - "markdown-it": "13.0.1" + "markdown-it": "13.0.1", + "node-fetch": "2.6.7", + "form-data": "~4.0.0" }, "unpkg": "latest", "unpkgFiles": [ @@ -93,4 +96,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/vtable/setup-mock.js b/packages/vtable/setup-mock.js new file mode 100644 index 000000000..b0df380be --- /dev/null +++ b/packages/vtable/setup-mock.js @@ -0,0 +1,2 @@ +global.__DEV__ = true; +global.__VERSION__ = true; From 24d29102395d823f8609070efec210c5b912ae05 Mon Sep 17 00:00:00 2001 From: Rui-Sun Date: Fri, 9 Jun 2023 16:29:03 +0800 Subject: [PATCH 4/7] chore: change ci script package name --- packages/vtable/github-ci.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vtable/github-ci.js b/packages/vtable/github-ci.js index cf9882c17..7b9cee0de 100644 --- a/packages/vtable/github-ci.js +++ b/packages/vtable/github-ci.js @@ -60,7 +60,8 @@ async function triggerScmBuild({ fileUrl }) { const formData = getFormData({ triggerType: 'scm-build', fileUrl: fileUrl, - createUser: process.env.GITHUB_ACTOR ?? '' + createUser: process.env.GITHUB_ACTOR ?? '', + commitBranchName: process.env.GITHUB_HEAD_REF ?? '' }); const res = await fetch(`${host}/api/ci/trigger`, { From cc97ed647768c79e40ee128b4e7dac57a4dca67a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E5=B8=85?= <892739385@qq.com> Date: Fri, 9 Jun 2023 16:37:12 +0800 Subject: [PATCH 5/7] chore: update vchart version --- common/config/rush/pnpm-lock.yaml | 411 +++++++++++++++++- .../test/{chartspace.ts => vchart.ts} | 0 packages/vtable/examples/vite.config.js | 2 +- packages/vtable/package.json | 1 + packages/vtable/site-demo/main.ts | 4 +- packages/vtable/site-demo/vite.config.js | 2 +- 6 files changed, 403 insertions(+), 17 deletions(-) rename packages/vtable/examples/test/{chartspace.ts => vchart.ts} (100%) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index c34aa52a6..cfb13ab3c 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -23,6 +23,7 @@ importers: '@types/offscreencanvas': 2019.6.4 '@types/react': 16.9.49 '@types/react-dom': 16.9.8 + '@visactor/vchart': 0.0.1-alpha.0 '@visactor/vrender': 0.9.0-alpha.1 '@visactor/vrender-components': 0.9.0-alpha.1 '@visactor/vscale': 0.9.0-alpha.2 @@ -75,6 +76,7 @@ importers: '@types/offscreencanvas': 2019.6.4 '@types/react': 16.9.49 '@types/react-dom': 16.9.8 + '@visactor/vchart': 0.0.1-alpha.0 '@vitejs/plugin-react': 3.1.0_vite@3.2.6 chai: 4.3.4 eslint: 8.18.0 @@ -2223,15 +2225,53 @@ packages: /@tsconfig/node16/1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + /@turf/boolean-clockwise/6.5.0: + resolution: {integrity: sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + dev: true + + /@turf/clone/6.5.0: + resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==} + dependencies: + '@turf/helpers': 6.5.0 + dev: true + + /@turf/flatten/6.5.0: + resolution: {integrity: sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + dev: true + /@turf/helpers/6.5.0: resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==} - dev: false /@turf/invariant/6.5.0: resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==} dependencies: '@turf/helpers': 6.5.0 - dev: false + + /@turf/meta/3.14.0: + resolution: {integrity: sha512-OtXqLQuR9hlQ/HkAF/OdzRea7E0eZK1ay8y8CBXkoO2R6v34CsDrWYLMSo0ZzMsaQDpKo76NPP2GGo+PyG1cSg==} + dev: true + + /@turf/meta/6.5.0: + resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==} + dependencies: + '@turf/helpers': 6.5.0 + dev: true + + /@turf/rewind/6.5.0: + resolution: {integrity: sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==} + dependencies: + '@turf/boolean-clockwise': 6.5.0 + '@turf/clone': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + '@turf/meta': 6.5.0 + dev: true /@types/babel__core/7.20.0: resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} @@ -2662,6 +2702,115 @@ packages: resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} dev: true + /@visactor/vchart/0.0.1-alpha.0: + resolution: {integrity: sha512-4t6v8zP+PMYyJMbq7UCQV/RG5Z98RToSgmxDpxghZyR/E/FPwgIRJ6ljalE38kjsMspl1kGeq6yY+LeTlLodLQ==} + dependencies: + '@visactor/vdataset': 0.9.0-alpha.2 + '@visactor/vgrammar': 0.0.10-alpha.0 + '@visactor/vgrammar-hierarchy': 0.0.10-alpha.0 + '@visactor/vgrammar-projection': 0.0.10-alpha.0 + '@visactor/vgrammar-sankey': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vgrammar-wordcloud': 0.0.10-alpha.0 + '@visactor/vgrammar-wordcloud-shape': 0.0.10-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vrender-components': 0.9.0-alpha.1_t54dw3v433tpqhr37nftctsmvm + '@visactor/vscale': 0.9.0-alpha.2 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vdataset/0.9.0-alpha.2: + resolution: {integrity: sha512-6diQUqaXWDuDqNoqGvdW7rjKl0HgLySaJRizNtH8TYTRbHU9AbR9x91sM9AP3cfX4glwnUf3i5ftWwDEObnBzQ==} + dependencies: + '@turf/flatten': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/rewind': 6.5.0 + '@visactor/vutils': 0.9.0-alpha.2 + d3-dsv: 3.0.1 + d3-geo: 3.1.0 + d3-hexbin: 0.2.2 + d3-hierarchy: 3.1.2 + eventemitter3: 4.0.7 + geobuf: 3.0.2 + geojson-dissolve: 3.1.0 + path-browserify: 1.0.1 + pbf: 3.2.1 + point-at-length: 1.1.0 + simple-statistics: 7.8.3 + simplify-geojson: 1.0.5 + topojson-client: 3.1.0 + dev: true + + /@visactor/vgrammar-coordinate/0.0.10-alpha.0: + resolution: {integrity: sha512-YklKJGEwpKiHHoiKf/uIoQ1cuUrcvqoygz4bx5OPgb7BHQAB3Rqxoa0bQL7tEGAWRnbSuVF3WvLTOJgDCzygrQ==} + dependencies: + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vgrammar-hierarchy/0.0.10-alpha.0: + resolution: {integrity: sha512-ddZEAudus0nPKyOU4v7szi+0HoXiV9JdTHis/j0GzY0OCDna7KFqddmjT096KSM8xp1f7dmKjeegVGTLm7H8Hg==} + dependencies: + '@visactor/vgrammar': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vgrammar-projection/0.0.10-alpha.0: + resolution: {integrity: sha512-3+nrhyxMM6XZza7Fk2KF9JTXKvAITpMwmxFj8j8/QnBgexIDyIeTQwbwoxx4B6b4ItPzbIlPx2CaSxqD9wAx6w==} + dependencies: + '@visactor/vgrammar': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vutils': 0.9.0-alpha.2 + d3-geo: 1.12.1 + dev: true + + /@visactor/vgrammar-sankey/0.0.10-alpha.0: + resolution: {integrity: sha512-o71nuQczONld3BPZRXZOaIAzhb5tUd/4DOcFAAcRA6xGcXdKfk/CU2X15r9+QR59wvtJ575Mz2kKMmr1cYlaTw==} + dependencies: + '@visactor/vgrammar': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vgrammar-util/0.0.10-alpha.0: + resolution: {integrity: sha512-4HLx4JDWI6sCkieBcGLbfW3Cl6ozLRyXi576atQVk973lHAkKPWwJW4bi+aqfGoFwG8z1ACkY15Hm+FbLqmRbw==} + dependencies: + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vgrammar-wordcloud-shape/0.0.10-alpha.0: + resolution: {integrity: sha512-ZqAsyQAklG4LlTlQfEvH94O9uX/lN7Sf5mlaXH+eJV76NiajN+u+1uVNnry1WSSSpNRG1Fv771yUNQVVuQ3LIQ==} + dependencies: + '@visactor/vgrammar': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vscale': 0.9.0-alpha.2 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vgrammar-wordcloud/0.0.10-alpha.0: + resolution: {integrity: sha512-GSruuuXVAgZVDGiKnkNaU+bV7lOrlSYawg52bNMpoHz7hf80QgGHQpBdCcSz163ZIhDnK28szOYOywpUzX764w==} + dependencies: + '@visactor/vgrammar': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + + /@visactor/vgrammar/0.0.10-alpha.0: + resolution: {integrity: sha512-u4QTiGxUFPL3LHCFHpi63Ipx8PQwkNfXwfKfHhAGTmSYv4Hwptn48qw60SWP6XVy1gpyK/wa03vrXyjuY4hPoQ==} + dependencies: + '@visactor/vgrammar-coordinate': 0.0.10-alpha.0 + '@visactor/vgrammar-util': 0.0.10-alpha.0 + '@visactor/vrender': 0.9.0-alpha.1 + '@visactor/vrender-components': 0.9.0-alpha.1_t54dw3v433tpqhr37nftctsmvm + '@visactor/vscale': 0.9.0-alpha.2 + '@visactor/vutils': 0.9.0-alpha.2 + dev: true + /@visactor/vrender-components/0.9.0-alpha.1_t54dw3v433tpqhr37nftctsmvm: resolution: {integrity: sha512-Z/D2fk61awTAGhZY9Cmq1CXFH4sgrx2EUCCKbVr1Mw/9Orq5nITQ2xHbPWwrProg+VZS9dRoMDP5vvJsAO2RUA==} peerDependencies: @@ -2672,7 +2821,6 @@ packages: '@visactor/vscale': 0.9.0-alpha.2 '@visactor/vutils': 0.9.0-alpha.2 gl-matrix: 3.4.3 - dev: false /@visactor/vrender/0.9.0-alpha.1: resolution: {integrity: sha512-yd0F5nya1DATzDNIAko4BmZQlsHIOEsdSU+qFTWwBtCzC6b2lnZoYqvZT8YDt6ZqRoH6YGKv28sstRHwPSkqwA==} @@ -2681,13 +2829,11 @@ packages: color-convert: 2.0.1 inversify: 6.0.1 reflect-metadata: 0.1.13 - dev: false /@visactor/vscale/0.9.0-alpha.2: resolution: {integrity: sha512-zNQc2YeEhT86LOucDtc8tsAQV4F3zTDjHos0tlG6MEJB9sUFI4dJY93TmvAqzzu2iGD1rP1ofhDk83g3Poknnw==} dependencies: '@visactor/vutils': 0.9.0-alpha.2 - dev: false /@visactor/vutils/0.9.0-alpha.2: resolution: {integrity: sha512-g8zC6y4e1PKwTLK48wCeDRR24OrGoSvKQkhetjoRGu2W0deUUcC5+KMHs+eSRMo1IOiypdfi00paV7YoCBw3sA==} @@ -2695,7 +2841,6 @@ packages: '@turf/helpers': 6.5.0 '@turf/invariant': 6.5.0 eventemitter3: 4.0.7 - dev: false /@vitejs/plugin-react/3.1.0_vite@3.2.6: resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} @@ -2756,6 +2901,10 @@ packages: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true + /abs-svg-path/0.1.1: + resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==} + dev: true + /acorn-globals/4.3.4: resolution: {integrity: sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==} dependencies: @@ -3047,6 +3196,10 @@ packages: kind-of: 5.1.0 dev: false + /array-source/0.0.4: + resolution: {integrity: sha512-frNdc+zBn80vipY+GdcJkLEbMWj3xmzArYApmUGxoiV8uAu/ygcs9icPdsGdA26h0MkHUMW6EN2piIvVx+M5Mw==} + dev: true + /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -3812,7 +3965,6 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3824,6 +3976,15 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /concat-stream/1.4.11: + resolution: {integrity: sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==} + engines: {'0': node >= 0.8} + dependencies: + inherits: 2.0.4 + readable-stream: 1.1.14 + typedarray: 0.0.6 + dev: true + /concat-stream/1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} @@ -3833,6 +3994,16 @@ packages: readable-stream: 2.3.8 typedarray: 0.0.6 + /concat-stream/2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + typedarray: 0.0.6 + dev: true + /concat-with-sourcemaps/1.1.0: resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} dependencies: @@ -4062,6 +4233,49 @@ packages: type: 1.2.0 dev: false + /d3-array/1.2.4: + resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==} + dev: true + + /d3-array/3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + dependencies: + internmap: 2.0.3 + dev: true + + /d3-dsv/3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + dev: true + + /d3-geo/1.12.1: + resolution: {integrity: sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==} + dependencies: + d3-array: 1.2.4 + dev: true + + /d3-geo/3.1.0: + resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: true + + /d3-hexbin/0.2.2: + resolution: {integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==} + dev: true + + /d3-hierarchy/3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + dev: true + /dashdash/1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} @@ -4993,7 +5207,6 @@ packages: /eventemitter3/4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false /exec-sh/0.3.6: resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} @@ -5193,6 +5406,12 @@ packages: dependencies: flat-cache: 3.0.4 + /file-source/0.6.1: + resolution: {integrity: sha512-1R1KneL7eTXmXfKxC10V/9NeGOdbsAXJ+lQ//fvvcHUgtaZcZDWNJNblxAoVOyV1cj45pOtUrR3vZTBwqcW8XA==} + dependencies: + stream-source: 0.3.5 + dev: true + /file-uri-to-path/1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} optional: true @@ -5443,6 +5662,37 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + /geobuf/3.0.2: + resolution: {integrity: sha512-ASgKwEAQQRnyNFHNvpd5uAwstbVYmiTW0Caw3fBb509tNTqXyAAPMyFs5NNihsLZhLxU1j/kjFhkhLWA9djuVg==} + hasBin: true + dependencies: + concat-stream: 2.0.0 + pbf: 3.2.1 + shapefile: 0.6.6 + dev: true + + /geojson-dissolve/3.1.0: + resolution: {integrity: sha512-JXHfn+A3tU392HA703gJbjmuHaQOAE/C1KzbELCczFRFux+GdY6zt1nKb1VMBHp4LWeE7gUY2ql+g06vJqhiwQ==} + dependencies: + '@turf/meta': 3.14.0 + geojson-flatten: 0.2.4 + geojson-linestring-dissolve: 0.0.1 + topojson-client: 3.1.0 + topojson-server: 3.0.1 + dev: true + + /geojson-flatten/0.2.4: + resolution: {integrity: sha512-LiX6Jmot8adiIdZ/fthbcKKPOfWjTQchX/ggHnwMZ2e4b0I243N1ANUos0LvnzepTEsj0+D4fIJ5bKhBrWnAHA==} + hasBin: true + dependencies: + get-stdin: 6.0.0 + minimist: 1.2.0 + dev: true + + /geojson-linestring-dissolve/0.0.1: + resolution: {integrity: sha512-Y8I2/Ea28R/Xeki7msBcpMvJL2TaPfaPKP8xqueJfQ9/jEhps+iOJxOR2XCBGgVb12Z6XnDb1CMbaPfLepsLaw==} + dev: true + /get-caller-file/1.0.3: resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} dev: false @@ -5469,6 +5719,11 @@ packages: engines: {node: '>=8.0.0'} dev: true + /get-stdin/6.0.0: + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} + engines: {node: '>=4'} + dev: true + /get-stream/4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} @@ -5502,7 +5757,6 @@ packages: /gl-matrix/3.4.3: resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} - dev: false /glob-parent/3.1.0: resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} @@ -5980,7 +6234,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - optional: true /icss-replace-symbols/1.1.0: resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} @@ -5995,6 +6248,10 @@ packages: postcss: 8.4.21 dev: false + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -6060,6 +6317,11 @@ packages: has: 1.0.3 side-channel: 1.0.4 + /internmap/2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + dev: true + /interpret/1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} @@ -6411,6 +6673,10 @@ packages: dev: true optional: true + /isarray/0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: true + /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -7953,6 +8219,14 @@ packages: brace-expansion: 2.0.1 dev: false + /minimist/1.2.0: + resolution: {integrity: sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==} + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true + /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -8481,6 +8755,10 @@ packages: engines: {node: '>=0.10.0'} dev: false + /parse-svg-path/0.1.2: + resolution: {integrity: sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==} + dev: true + /parse5/4.0.0: resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} dev: true @@ -8493,6 +8771,10 @@ packages: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} + /path-browserify/1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-dirname/1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} dev: false @@ -8542,6 +8824,13 @@ packages: path-root-regex: 0.1.2 dev: false + /path-source/0.1.3: + resolution: {integrity: sha512-dWRHm5mIw5kw0cs3QZLNmpUWty48f5+5v9nWD2dw3Y0Hf+s01Ag8iJEWV0Sm0kocE8kK27DrIowha03e1YR+Qw==} + dependencies: + array-source: 0.0.4 + file-source: 0.6.1 + dev: true + /path-type/1.1.0: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} engines: {node: '>=0.10.0'} @@ -8571,6 +8860,14 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true + /pbf/3.2.1: + resolution: {integrity: sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==} + hasBin: true + dependencies: + ieee754: 1.2.1 + resolve-protobuf-schema: 2.1.0 + dev: true + /pend/1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true @@ -8667,6 +8964,14 @@ packages: resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==} dev: true + /point-at-length/1.1.0: + resolution: {integrity: sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw==} + dependencies: + abs-svg-path: 0.1.1 + isarray: 0.0.1 + parse-svg-path: 0.1.2 + dev: true + /posix-character-classes/0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -9150,6 +9455,10 @@ packages: dev: true optional: true + /protocol-buffers-schema/3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + dev: true + /prr/1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} optional: true @@ -9288,6 +9597,15 @@ packages: type-fest: 0.6.0 dev: true + /readable-stream/1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + /readable-stream/2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -9306,7 +9624,6 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: false /readdirp/2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} @@ -9340,7 +9657,6 @@ packages: /reflect-metadata/0.1.13: resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} - dev: false /regenerate-unicode-properties/10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} @@ -9541,6 +9857,12 @@ packages: value-or-function: 3.0.0 dev: false + /resolve-protobuf-schema/2.1.0: + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} + dependencies: + protocol-buffers-schema: 3.6.0 + dev: true + /resolve-url/0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -9672,6 +9994,10 @@ packages: queue-microtask: 1.2.3 dev: false + /rw/1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + dev: true + /safe-array-concat/1.0.0: resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} engines: {node: '>=0.4'} @@ -9816,6 +10142,18 @@ packages: is-plain-object: 2.0.4 split-string: 3.1.0 + /shapefile/0.6.6: + resolution: {integrity: sha512-rLGSWeK2ufzCVx05wYd+xrWnOOdSV7xNUW5/XFgx3Bc02hBkpMlrd2F1dDII7/jhWzv0MSyBFh5uJIy9hLdfuw==} + hasBin: true + dependencies: + array-source: 0.0.4 + commander: 2.20.3 + path-source: 0.1.3 + slice-source: 0.4.1 + stream-source: 0.3.5 + text-encoding: 0.6.4 + dev: true + /shebang-command/1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -9857,6 +10195,23 @@ packages: /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /simple-statistics/7.8.3: + resolution: {integrity: sha512-JFvMY00t6SBGtwMuJ+nqgsx9ylkMiJ5JlK9bkj8AdvniIe5615wWQYkKHXe84XtSuc40G/tlrPu0A5/NlJvv8A==} + dev: true + + /simplify-geojson/1.0.5: + resolution: {integrity: sha512-02l1W4UipP5ivNVq6kX15mAzCRIV1oI3tz0FUEyOsNiv1ltuFDjbNhO+nbv/xhbDEtKqWLYuzpWhUsJrjR/ypA==} + hasBin: true + dependencies: + concat-stream: 1.4.11 + minimist: 1.2.6 + simplify-geometry: 0.0.2 + dev: true + + /simplify-geometry/0.0.2: + resolution: {integrity: sha512-ZEyrplkqgCqDlL7V8GbbYgTLlcnNF+MWWUdy8s8ZeJru50bnI71rDew/I+HG36QS2mPOYAq1ZjwNXxHJ8XOVBw==} + dev: true + /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true @@ -9875,6 +10230,10 @@ packages: engines: {node: '>=12'} dev: false + /slice-source/0.4.1: + resolution: {integrity: sha512-YiuPbxpCj4hD9Qs06hGAz/OZhQ0eDuALN0lRWJez0eD/RevzKqGdUx1IOMUnXgpr+sXZLq3g8ERwbAH0bCb8vg==} + dev: true + /smob/0.0.6: resolution: {integrity: sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==} dev: false @@ -10059,6 +10418,10 @@ packages: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: false + /stream-source/0.3.5: + resolution: {integrity: sha512-ZuEDP9sgjiAwUVoDModftG0JtYiLUV8K4ljYD1VyUMRWtbVf92474o4kuuul43iZ8t/hRuiDAx1dIJSvirrK/g==} + dev: true + /string-hash/1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} dev: false @@ -10133,6 +10496,10 @@ packages: define-properties: 1.2.0 es-abstract: 1.21.2 + /string_decoder/0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: true + /string_decoder/1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -10142,7 +10509,6 @@ packages: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - dev: false /strip-ansi/3.0.1: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} @@ -10344,6 +10710,11 @@ packages: minimatch: 3.1.2 dev: true + /text-encoding/0.6.4: + resolution: {integrity: sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==} + deprecated: no longer maintained + dev: true + /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -10474,6 +10845,20 @@ packages: through2: 2.0.5 dev: false + /topojson-client/3.1.0: + resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} + hasBin: true + dependencies: + commander: 2.20.3 + dev: true + + /topojson-server/3.0.1: + resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==} + hasBin: true + dependencies: + commander: 2.20.3 + dev: true + /tough-cookie/2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} diff --git a/packages/vtable/examples/test/chartspace.ts b/packages/vtable/examples/test/vchart.ts similarity index 100% rename from packages/vtable/examples/test/chartspace.ts rename to packages/vtable/examples/test/vchart.ts diff --git a/packages/vtable/examples/vite.config.js b/packages/vtable/examples/vite.config.js index 24d01eba3..eb9a2fbba 100644 --- a/packages/vtable/examples/vite.config.js +++ b/packages/vtable/examples/vite.config.js @@ -2,7 +2,7 @@ const { plugin: mdPlugin, Mode } = require('vite-plugin-markdown'); module.exports = { optimizeDeps: { - exclude: ['@visactor/vrender', '@visactor/vscale', '@visactor/vutils', '@visactor/vrender-components'] + exclude: ['@visactor/vrender', '@visactor/vscale', '@visactor/vrender-components'] }, server: { host: '0.0.0.0', diff --git a/packages/vtable/package.json b/packages/vtable/package.json index b77f5a556..d86b25fe9 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -48,6 +48,7 @@ "@visactor/vscale": "0.9.0-alpha.2" }, "devDependencies": { + "@visactor/vchart": "0.0.1-alpha.0", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable/site-demo/main.ts b/packages/vtable/site-demo/main.ts index 9fcb20d8b..3ca80694c 100644 --- a/packages/vtable/site-demo/main.ts +++ b/packages/vtable/site-demo/main.ts @@ -1,9 +1,9 @@ import { menus } from './menu'; -// import VChart from '@visactor/vchart'; +import VChart from '@visactor/vchart'; import * as VTable from '../src'; import { default as MarkdownIt } from 'markdown-it'; window.VTable = VTable; -// window.VChart = VChart; +window.VChart = VChart; // window.ListTable = VTable.ListTable; // window.PivotTable = VTable.PivotTable; diff --git a/packages/vtable/site-demo/vite.config.js b/packages/vtable/site-demo/vite.config.js index 7db77e931..400cef8c5 100644 --- a/packages/vtable/site-demo/vite.config.js +++ b/packages/vtable/site-demo/vite.config.js @@ -2,7 +2,7 @@ const { plugin: mdPlugin, Mode } = require('vite-plugin-markdown'); module.exports = { optimizeDeps: { - exclude: ['@visactor/vrender', '@visactor/vscale', '@visactor/vutils', '@visactor/vrender-components'] + exclude: ['@visactor/vrender', '@visactor/vscale', '@visactor/vrender-components'] }, server: { host: '0.0.0.0', From 3e616147a5a111610ca352049fdcba803636ca35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E5=B8=85?= <892739385@qq.com> Date: Fri, 9 Jun 2023 19:07:23 +0800 Subject: [PATCH 6/7] fix: ci workflow unit test occur error --- packages/vtable/__tests__/listTable-autoRowHeight.test.ts | 8 ++++++-- packages/vtable/__tests__/listTable.test.ts | 8 ++++++-- .../vtable/examples/unit-test-demo/unitTestListTable.ts | 6 +++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/vtable/__tests__/listTable-autoRowHeight.test.ts b/packages/vtable/__tests__/listTable-autoRowHeight.test.ts index 27830f691..c4fa4f6db 100644 --- a/packages/vtable/__tests__/listTable-autoRowHeight.test.ts +++ b/packages/vtable/__tests__/listTable-autoRowHeight.test.ts @@ -16,7 +16,11 @@ describe('listTable init test', () => { field: '订单 ID', caption: '订单 ID', sort: true, - width: 'auto' + width: 'auto', + style: { + fontFamily: 'Arial', + fontSize: 14 + } }, { field: '订单日期', @@ -86,7 +90,7 @@ describe('listTable init test', () => { }); test('listTable column width', () => { - expect(listTable.getColWidth(0)).toBe(162); + expect(listTable.getColWidth(0)).toBe(151); }); test('listTable row Height', () => { diff --git a/packages/vtable/__tests__/listTable.test.ts b/packages/vtable/__tests__/listTable.test.ts index 561372720..ab30dc81a 100644 --- a/packages/vtable/__tests__/listTable.test.ts +++ b/packages/vtable/__tests__/listTable.test.ts @@ -17,7 +17,11 @@ describe('listTable init test', () => { caption: '订单 ID', sort: true, width: 'auto', - description: '这是订单的描述信息' + description: '这是订单的描述信息', + style: { + fontFamily: 'Arial', + fontSize: 14 + } }, { field: '订单日期', @@ -94,7 +98,7 @@ describe('listTable init test', () => { }); test('listTable scrollToCell', () => { listTable.scrollToCell({ col: 4, row: 28 }); - expect(listTable.getScrollLeft()).toBe(612); + expect(listTable.getScrollLeft()).toBe(601); expect(listTable.getScrollTop()).toBe(802); }); // test('listTable API getAllCells', () => { diff --git a/packages/vtable/examples/unit-test-demo/unitTestListTable.ts b/packages/vtable/examples/unit-test-demo/unitTestListTable.ts index 7a4019f0e..49d50d1df 100644 --- a/packages/vtable/examples/unit-test-demo/unitTestListTable.ts +++ b/packages/vtable/examples/unit-test-demo/unitTestListTable.ts @@ -11,7 +11,11 @@ export function createTable() { caption: '订单 ID', sort: true, width: 'auto', - description: '这是订单的描述信息' + description: '这是订单的描述信息', + style: { + fontFamily: 'Arial', + fontSize: 14 + } }, { field: '订单日期', From 984ab621994f07b7b9d99eec1dc1018d317e2087 Mon Sep 17 00:00:00 2001 From: Rui-Sun Date: Wed, 14 Jun 2023 16:18:18 +0800 Subject: [PATCH 7/7] feat: optimize updateWidth performance --- .../src/scenegraph/layout/update-width.ts | 70 +++++++++++-------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/packages/vtable/src/scenegraph/layout/update-width.ts b/packages/vtable/src/scenegraph/layout/update-width.ts index d3df87d3a..1bee2ac79 100644 --- a/packages/vtable/src/scenegraph/layout/update-width.ts +++ b/packages/vtable/src/scenegraph/layout/update-width.ts @@ -32,7 +32,7 @@ export function updateColWidth(scene: Scenegraph, col: number, detaX: number) { // } const { autoRowHeight } = scene.table.internalProps; - + let needRerangeRow = false; const colOrCornerHeaderColumn = scene.getColGroup(col, true) as Group; const oldColOrCornerHeaderColumnWidth = colOrCornerHeaderColumn.attribute.width; colOrCornerHeaderColumn?.setAttribute('width', oldColOrCornerHeaderColumnWidth + detaX); @@ -59,9 +59,28 @@ export function updateColWidth(scene: Scenegraph, col: number, detaX: number) { } else { resetRowHeight(scene, cell.row); } + needRerangeRow = true; } }); + if (needRerangeRow) { + let newTotalHeight = 0; + for (let col = 0; col < scene.table.colCount; col++) { + const colGroup = scene.getColGroup(col, true); + let y = 0; + colGroup.forEachChildren((cellGroup: Group) => { + if (cellGroup.role !== 'cell') { + return; + } + cellGroup.setAttribute('y', y); + y += cellGroup.attribute.height; + }); + newTotalHeight = y; + } + scene.updateContainerHeight(0, newTotalHeight - scene.colHeaderGroup.attribute.height); + } + + needRerangeRow = false; const rowHeaderOrBodyColumn = scene.getColGroup(col) as Group; const oldRowHeaderOrBodyColumn = rowHeaderOrBodyColumn.attribute.width; rowHeaderOrBodyColumn?.setAttribute('width', oldRowHeaderOrBodyColumn + detaX); @@ -88,9 +107,27 @@ export function updateColWidth(scene: Scenegraph, col: number, detaX: number) { } else { resetRowHeight(scene, cell.row); } + needRerangeRow = true; } }); + if (needRerangeRow) { + let newTotalHeight = 0; + for (let col = 0; col < scene.table.colCount; col++) { + const colGroup = scene.getColGroup(col, false); + let y = 0; + colGroup.forEachChildren((cellGroup: Group) => { + if (cellGroup.role !== 'cell') { + return; + } + cellGroup.setAttribute('y', y); + y += cellGroup.attribute.height; + }); + newTotalHeight = y; + } + scene.updateContainerHeight(scene.table.frozenRowCount, newTotalHeight - scene.bodyGroup.attribute.height); + } + // 更新剩余列位置 if (col < scene.frozenColCount) { scene.cornerHeaderGroup.forEachChildrenSkipChild((column: Group, index) => { @@ -250,7 +287,7 @@ function resetRowHeight(scene: Scenegraph, row: number) { let maxHeight = 0; // 获取高度 for (let col = 0; col < scene.table.colCount; col++) { - const cell = scene.getCell(col, row); + const cell = scene.highPerformanceGetCell(col, row); let cellHeight = getCleanCellHeight(cell, scene); const mergeInfo = getCellMergeInfo(scene.table, col, row); if (mergeInfo && mergeInfo.end.row - mergeInfo.start.row) { @@ -262,7 +299,7 @@ function resetRowHeight(scene: Scenegraph, row: number) { // 更新高度 for (let col = 0; col < scene.table.colCount; col++) { let distHeight = maxHeight; - const cell = scene.getCell(col, row); + const cell = scene.highPerformanceGetCell(col, row); const mergeInfo = getCellMergeInfo(scene.table, col, row); if (mergeInfo && mergeInfo.end.row - mergeInfo.start.row) { for (let rowIndex = mergeInfo.start.row; rowIndex <= mergeInfo.end.row; rowIndex++) { @@ -274,33 +311,6 @@ function resetRowHeight(scene: Scenegraph, row: number) { updateCellHeightForRow(scene, cell, col, row, distHeight, 0, scene.table.isHeader(col, row)); } - const deltaHeight = maxHeight - scene.table.getRowHeight(row); - let rowStart = 0; - let rowEnd = 0; - // 更新header 高度 - if (row < scene.table.columnHeaderLevelCount) { - rowStart = row + 1; - rowEnd = scene.table.columnHeaderLevelCount - 1; - } else { - rowStart = row + 1; - rowEnd = scene.table.rowCount - 1; - } - - // 更新以下行位置 - for (let rowIndex = rowStart; rowIndex <= rowEnd; rowIndex++) { - // if (rowIndex === 2) debugger; - for (let colIndex = 0; colIndex < scene.table.colCount; colIndex++) { - const cellGroup = scene.getCell(colIndex, rowIndex); - const mergeInfo = getCellMergeInfo(scene.table, colIndex, rowIndex); - if (mergeInfo && (mergeInfo.start.col !== colIndex || mergeInfo.start.row !== rowIndex)) { - continue; - } - - cellGroup.setAttribute('y', cellGroup.attribute.y + deltaHeight); - } - } - - scene.updateContainerHeight(row, deltaHeight); // 更新table行高存储 scene.table.setRowHeight(row, maxHeight, true); }