diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index bd7ec2bfe..b42148a37 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -294,9 +294,9 @@ importers: '@types/react-dom': ^18.0.0 '@visactor/vchart': 1.12.1 '@visactor/vdataset': ~0.18.1 - '@visactor/vrender-components': 0.20.2-alpha.1 - '@visactor/vrender-core': 0.20.2-alpha.1 - '@visactor/vrender-kits': 0.20.2-alpha.1 + '@visactor/vrender-components': 0.20.8-alpha.3 + '@visactor/vrender-core': 0.20.8-alpha.3 + '@visactor/vrender-kits': 0.20.8-alpha.3 '@visactor/vscale': ~0.18.1 '@visactor/vtable-editors': workspace:* '@visactor/vutils': ~0.18.14 @@ -339,9 +339,9 @@ importers: vite-plugin-markdown: ^2.1.0 dependencies: '@visactor/vdataset': 0.18.15 - '@visactor/vrender-components': 0.20.2-alpha.1 - '@visactor/vrender-core': 0.20.2-alpha.1 - '@visactor/vrender-kits': 0.20.2-alpha.1 + '@visactor/vrender-components': 0.20.8-alpha.3 + '@visactor/vrender-core': 0.20.8-alpha.3 + '@visactor/vrender-kits': 0.20.8-alpha.3 '@visactor/vscale': 0.18.15 '@visactor/vtable-editors': link:../vtable-editors '@visactor/vutils': 0.18.15 @@ -3975,7 +3975,7 @@ packages: resolution: {integrity: sha512-9ZxQ0BQmcxi70Bl5oHRe2xd4UVPTbjdHhyQOIT1l4X6fVUwyIf2nRibQILHOlQj+KN8AhrdQIuYp1rD6khecpg==} dependencies: '@visactor/vgrammar-util': 0.14.0 - '@visactor/vutils': 0.18.15 + '@visactor/vutils': 0.18.17 /@visactor/vgrammar-core/0.14.0: resolution: {integrity: sha512-VZu/9cPkjrG6xVx4KeV5zJpEYKfqMR4vov3nIKqgXgIuKgqLcVSrsFsthoYu9qi8xCbPtgZSFI2yo0qiB9wN3g==} @@ -4057,13 +4057,13 @@ packages: '@visactor/vscale': 0.18.15 '@visactor/vutils': 0.18.15 - /@visactor/vrender-components/0.20.2-alpha.1: - resolution: {integrity: sha512-WcDrr8qZB80iHuL9JJqxM5TULnwWclYOHdO22BYDWnE/Zw3y2bB/urD6TWqU6+a45cppWe5177bBF9GU7e6HeA==} + /@visactor/vrender-components/0.20.8-alpha.3: + resolution: {integrity: sha512-yzeCDoCiwUjSqswwKBAU61UL1ID8NFp+6FozsPK5eUu1iw7wQZlM+zsM2vH9KoeYy9VQewlxoTKJfamM9igd3Q==} dependencies: - '@visactor/vrender-core': 0.20.2-alpha.1 - '@visactor/vrender-kits': 0.20.2-alpha.1 - '@visactor/vscale': 0.18.15 - '@visactor/vutils': 0.18.15 + '@visactor/vrender-core': 0.20.8-alpha.3 + '@visactor/vrender-kits': 0.20.8-alpha.3 + '@visactor/vscale': 0.18.17 + '@visactor/vutils': 0.18.17 dev: false /@visactor/vrender-core/0.20.0: @@ -4072,10 +4072,10 @@ packages: '@visactor/vutils': 0.18.15 color-convert: 2.0.1 - /@visactor/vrender-core/0.20.2-alpha.1: - resolution: {integrity: sha512-bZQAHPJ6tOu67ZHeTQsakXXW/OF16gzE1/SHsVYqM0JTOYl8x3c3YnyWBfBGSsnKm4ZwgQ+XrOr0w9JdQnA79A==} + /@visactor/vrender-core/0.20.8-alpha.3: + resolution: {integrity: sha512-so/uB7eebbj0/M073VF1wXzI6irxbDDNAEWDRpPBKRFKMX/yTFFkEYSseL2U75kBhLZJszMH5oBbICUFfZCSYw==} dependencies: - '@visactor/vutils': 0.18.15 + '@visactor/vutils': 0.18.17 color-convert: 2.0.1 dev: false @@ -4087,12 +4087,12 @@ packages: '@visactor/vutils': 0.18.15 roughjs: 4.5.2 - /@visactor/vrender-kits/0.20.2-alpha.1: - resolution: {integrity: sha512-9ZKx0MwaMda6KYklDkB9BbF2Y7BE1HtMWtyNO7h6gr5CDgpinxVs2KH0RHZJKgR+kiIKLbuuPveG0EmFPqtjyg==} + /@visactor/vrender-kits/0.20.8-alpha.3: + resolution: {integrity: sha512-zqUPd1v89Prue+8LKKi9weMtCz8b6IgU+ogH7Esf8JIMcRrI+0PW0QFDYOYJX15gUdSxZyO4Z/w/smeJTHGjnA==} dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 0.20.2-alpha.1 - '@visactor/vutils': 0.18.15 + '@visactor/vrender-core': 0.20.8-alpha.3 + '@visactor/vutils': 0.18.17 roughjs: 4.5.2 dev: false @@ -4101,6 +4101,12 @@ packages: dependencies: '@visactor/vutils': 0.18.15 + /@visactor/vscale/0.18.17: + resolution: {integrity: sha512-jChQ7kq2CN/i+BtQ9wA2B8Xqmlw2xQDARDrmiUszXtuki07zNvq39UiNiQLQQjPq1qXb5hHNY4h4Wsp6fUa/RQ==} + dependencies: + '@visactor/vutils': 0.18.17 + dev: false + /@visactor/vutils-extension/1.11.14: resolution: {integrity: sha512-vfViZphXJBH0NwCHIoe8S1/+tDtykEKIfsLMIHprh7Azv7fVSB1eotG00SAegK75E18ARQGNXF1DxixUFiXSIQ==} dependencies: @@ -4121,6 +4127,13 @@ packages: '@turf/invariant': 6.5.0 eventemitter3: 4.0.7 + /@visactor/vutils/0.18.17: + resolution: {integrity: sha512-V9KZTlqyjyKEnKqmH8n2VjxOKlR7bX07R7W8tgEV4andfCYG8ufbx+xniR3jYXxCtca4USAks2KwyJBj2H+Kww==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + eventemitter3: 4.0.7 + /@vitejs/plugin-react/3.1.0_vite@3.2.6: resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 59c1eedcf..b8b66d885 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -1 +1 @@ -[{"definitionName":"lockStepVersion","policyName":"vtableMain","version":"1.8.1","mainProject":"@visactor/vtable","nextBump":"patch"}] +[{"definitionName":"lockStepVersion","policyName":"vtableMain","version":"1.8.2","mainProject":"@visactor/vtable","nextBump":"patch"}] diff --git a/docs/assets/changelog/en/release.md b/docs/assets/changelog/en/release.md index afce9e916..2ccd07c93 100644 --- a/docs/assets/changelog/en/release.md +++ b/docs/assets/changelog/en/release.md @@ -1,3 +1,14 @@ +# v1.8.1 + +2024-09-30 + + +**🔨 Refactor** + +- **@visactor/vue-vtable**: rename vue component name + +[more detail about v1.8.1](https://github.com/VisActor/VTable/releases/tag/v1.8.1) + # v1.8.0 2024-09-29 diff --git a/docs/assets/changelog/zh/release.md b/docs/assets/changelog/zh/release.md index e647fef61..adf23f272 100644 --- a/docs/assets/changelog/zh/release.md +++ b/docs/assets/changelog/zh/release.md @@ -1,3 +1,14 @@ +# v1.8.1 + +2024-09-30 + + +**🔨 功能重构** + +- **@visactor/vue-vtable**: rename vue component name + +[更多详情请查看 v1.8.1](https://github.com/VisActor/VTable/releases/tag/v1.8.1) + # v1.8.0 2024-09-29 diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index da50474d7..df35410db 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/openinula-vtable", - "version": "1.8.1", + "version": "1.8.2", "description": "The openinula version of VTable", "keywords": [ "openinula", diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index 5c5e255e9..2b5371a56 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/react-vtable", - "version": "1.8.1", + "version": "1.8.2", "description": "The react version of VTable", "keywords": [ "react", diff --git a/packages/vtable-editors/package.json b/packages/vtable-editors/package.json index 80cc545c4..82d4cfeb7 100644 --- a/packages/vtable-editors/package.json +++ b/packages/vtable-editors/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-editors", - "version": "1.8.1", + "version": "1.8.2", "description": "", "sideEffects": false, "main": "cjs/index.js", diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index bd4d1e0fa..5de10937b 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-export", - "version": "1.8.1", + "version": "1.8.2", "description": "The export util of VTable", "author": { "name": "VisActor", diff --git a/packages/vtable-gantt/package.json b/packages/vtable-gantt/package.json index 95bb1b05a..f8fc4fdeb 100644 --- a/packages/vtable-gantt/package.json +++ b/packages/vtable-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-gantt", - "version": "1.8.1", + "version": "1.8.2", "description": "canvas table width high performance", "keywords": [ "vtable-gantt", diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index 65a639805..b70a1a163 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-search", - "version": "1.8.1", + "version": "1.8.2", "description": "The search util of VTable", "author": { "name": "VisActor", diff --git a/packages/vtable/CHANGELOG.json b/packages/vtable/CHANGELOG.json index b3aa4aa24..0bdbaeb7e 100644 --- a/packages/vtable/CHANGELOG.json +++ b/packages/vtable/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@visactor/vtable", "entries": [ + { + "version": "1.8.2", + "tag": "@visactor/vtable_v1.8.2", + "date": "Mon, 30 Sep 2024 09:38:25 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix richtext icon update #2281" + } + ] + } + }, { "version": "1.8.1", "tag": "@visactor/vtable_v1.8.1", diff --git a/packages/vtable/CHANGELOG.md b/packages/vtable/CHANGELOG.md index 80b8a9528..2c670b5a5 100644 --- a/packages/vtable/CHANGELOG.md +++ b/packages/vtable/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @visactor/vtable -This log was last generated on Sun, 29 Sep 2024 07:41:11 GMT and should not be manually modified. +This log was last generated on Mon, 30 Sep 2024 09:38:25 GMT and should not be manually modified. + +## 1.8.2 +Mon, 30 Sep 2024 09:38:25 GMT + +### Updates + +- fix: fix richtext icon update #2281 ## 1.8.1 Sun, 29 Sep 2024 07:41:11 GMT diff --git a/packages/vtable/examples/list/list.ts b/packages/vtable/examples/list/list.ts index 0ccb777a1..609682a94 100644 --- a/packages/vtable/examples/list/list.ts +++ b/packages/vtable/examples/list/list.ts @@ -15,6 +15,24 @@ const generatePersons = count => { })); }; +VTable.register.icon('sort_normal', { + type: 'svg', + svg: ``, + width: 20, //其实指定的是svg图片绘制多大,实际占位是box,margin也是相对阴影范围指定的 + height: 20, + funcType: VTable.TYPES.IconFuncTypeEnum.sort, + name: 'sort_normal', + positionType: VTable.TYPES.IconPosition.inlineFront, + marginLeft: 0, + marginRight: 0, + hover: { + width: 24, + height: 24, + bgColor: 'rgba(22,44,66,0.5)' + }, + cursor: 'pointer' +}); + export function createTable() { const records = generatePersons(2000); const columns: VTable.ColumnsDefine = [ @@ -170,16 +188,16 @@ export function createTable() { emptyTip: true, records, columns: [ - ...columns, - ...columns, - ...columns, - ...columns, - ...columns, - ...columns, - ...columns, - ...columns, - ...columns, ...columns + // ...columns, + // ...columns, + // ...columns, + // ...columns, + // ...columns, + // ...columns, + // ...columns, + // ...columns, + // ...columns ], tooltip: { isShowOverflowTextTooltip: true diff --git a/packages/vtable/package.json b/packages/vtable/package.json index dc91a6d6f..0fe4bb52c 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable", - "version": "1.8.1", + "version": "1.8.2", "description": "canvas table width high performance", "keywords": [ "grid", @@ -52,9 +52,9 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:*", - "@visactor/vrender-core": "0.20.2-alpha.1", - "@visactor/vrender-kits": "0.20.2-alpha.1", - "@visactor/vrender-components": "0.20.2-alpha.1", + "@visactor/vrender-core": "0.20.8-alpha.3", + "@visactor/vrender-kits": "0.20.8-alpha.3", + "@visactor/vrender-components": "0.20.8-alpha.3", "@visactor/vutils": "~0.18.14", "@visactor/vscale": "~0.18.1", "@visactor/vdataset": "~0.18.1", diff --git a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts index 2a174d51b..e89c3680b 100644 --- a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts +++ b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts @@ -15,6 +15,7 @@ import { isNil, isNumber, isValid, isValidNumber } from '@visactor/vutils'; import { isMergeCellGroup } from './is-merge-cell-group'; import { breakString } from './break-string'; import { CUSTOM_CONTAINER_NAME } from '../component/custom'; +import { getTargetCell } from '../../event/util'; /** * @description: 创建单元格内容 @@ -284,6 +285,10 @@ export function createCellContent( text.name = 'text'; textMark = text; text.bindIconEvent(); + + if (range && (range.start.col !== range.end.col || range.start.row !== range.end.row)) { + text.onBeforeAttributeUpdate = onBeforeAttributeUpdate as any; + } } if (contentLeftIcons.length !== 0 || contentRightIcons.length !== 0) { @@ -887,3 +892,54 @@ export function dealWithIconLayout( absoluteRightIconWidth }; } + +function onBeforeAttributeUpdate(val: Record, attribute: any) { + if (val.hasOwnProperty('hoverIconId')) { + // @ts-ignore + const graphic = this as any; + if (graphic.skipMergeUpdate) { + return; + } + + const cellGroup = getTargetCell(graphic) as Group; + if (!cellGroup || !cellGroup.stage) { + return; + } + const table = ((cellGroup as any).stage as any).table as BaseTableAPI; + graphic.skipAttributeUpdate = true; + const { mergeStartCol, mergeEndCol, mergeStartRow, mergeEndRow } = cellGroup; + if ( + isValid(mergeStartCol) && + isValid(mergeEndCol) && + isValid(mergeStartRow) && + isValid(mergeEndRow) && + (mergeStartCol !== mergeEndCol || mergeStartRow !== mergeEndRow) + ) { + for (let col = mergeStartCol; col <= mergeEndCol; col++) { + for (let row = mergeStartRow; row <= mergeEndRow; row++) { + if (col === cellGroup.col && row === cellGroup.row) { + // update icon state + if (val.hoverIconId !== graphic.attribute.hoverIconId) { + const icon = graphic._frameCache.icons.get(val.hoverIconId); + graphic.updateHoverIconState(icon); + } + continue; + } + // const cell = table.scenegraph.getCell(col, row); + const cell = table.scenegraph.highPerformanceGetCell(col, row); + if (cell.role === 'cell') { + const target = cell.getChildByName(graphic.name, true); + if (!target || target.skipAttributeUpdate) { + continue; + } + if (val.hoverIconId !== target.attribute.hoverIconId) { + target.setAttribute('hoverIconId', val.hoverIconId); + cell.addUpdateBoundTag(); + } + } + } + } + graphic.skipAttributeUpdate = undefined; + } + } +} diff --git a/packages/vue-vtable/package.json b/packages/vue-vtable/package.json index 63e09bd0b..9e8d61e24 100644 --- a/packages/vue-vtable/package.json +++ b/packages/vue-vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vue-vtable", - "version": "1.8.1", + "version": "1.8.2", "description": "The vue version of VTable", "keywords": [ "vue",