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",