From 34a3ca678d6fbff39d2d5d5ee50dae395882f634 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 15:12:02 +0800 Subject: [PATCH 1/8] feat: scrollbar visible focus #1360 --- packages/vtable/src/event/listener/table-group.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/vtable/src/event/listener/table-group.ts b/packages/vtable/src/event/listener/table-group.ts index 48fd9d368..707b8a744 100644 --- a/packages/vtable/src/event/listener/table-group.ts +++ b/packages/vtable/src/event/listener/table-group.ts @@ -236,12 +236,19 @@ export function bindTableGroupListener(eventManager: EventManager) { // }); // } // }); + table.scenegraph.tableGroup.addEventListener('pointerenter', (e: FederatedPointerEvent) => { + stateManager.showHorizontalScrollBar(); + stateManager.showVerticalScrollBar(); + }); table.scenegraph.tableGroup.addEventListener('pointerleave', (e: FederatedPointerEvent) => { //resize 列宽 当鼠标离开table也需要继续响应 if (!stateManager.isResizeCol() && !stateManager.isMoveCol() && !stateManager.isSelecting()) { stateManager.updateInteractionState(InteractionState.default); stateManager.updateCursor(); } + + stateManager.hideHorizontalScrollBar(); + stateManager.hideVerticalScrollBar(); // 移动到table外部 如移动到表格空白区域 移动到表格浏览器外部 if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSELEAVE_CELL)) { if (table.stateManager.hover.cellPos.col !== -1 && table.stateManager.hover.cellPos.row !== -1) { From a4bc2b646c93f63fc2990c30aefefa0ce4ba5f0f Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 15:12:24 +0800 Subject: [PATCH 2/8] docs: update changlog of rush --- .../1360-bug-visible-focus_2024-04-03-07-12.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vtable/1360-bug-visible-focus_2024-04-03-07-12.json diff --git a/common/changes/@visactor/vtable/1360-bug-visible-focus_2024-04-03-07-12.json b/common/changes/@visactor/vtable/1360-bug-visible-focus_2024-04-03-07-12.json new file mode 100644 index 000000000..bed314709 --- /dev/null +++ b/common/changes/@visactor/vtable/1360-bug-visible-focus_2024-04-03-07-12.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "feat: scrollbar visible focus #1360\n\n", + "type": "none", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} \ No newline at end of file From 028c6013b1832f5e1e553fdd162036c0a18b052a Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 15:24:25 +0800 Subject: [PATCH 3/8] feat: scrollbar visible focus #1360 --- packages/vtable/src/event/listener/table-group.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/vtable/src/event/listener/table-group.ts b/packages/vtable/src/event/listener/table-group.ts index 707b8a744..7de895214 100644 --- a/packages/vtable/src/event/listener/table-group.ts +++ b/packages/vtable/src/event/listener/table-group.ts @@ -237,8 +237,10 @@ export function bindTableGroupListener(eventManager: EventManager) { // } // }); table.scenegraph.tableGroup.addEventListener('pointerenter', (e: FederatedPointerEvent) => { - stateManager.showHorizontalScrollBar(); - stateManager.showVerticalScrollBar(); + if (table.theme.scrollStyle.visible === 'focus') { + stateManager.showHorizontalScrollBar(); + stateManager.showVerticalScrollBar(); + } }); table.scenegraph.tableGroup.addEventListener('pointerleave', (e: FederatedPointerEvent) => { //resize 列宽 当鼠标离开table也需要继续响应 @@ -246,9 +248,10 @@ export function bindTableGroupListener(eventManager: EventManager) { stateManager.updateInteractionState(InteractionState.default); stateManager.updateCursor(); } - - stateManager.hideHorizontalScrollBar(); - stateManager.hideVerticalScrollBar(); + if (table.theme.scrollStyle.visible === 'focus') { + stateManager.hideHorizontalScrollBar(); + stateManager.hideVerticalScrollBar(); + } // 移动到table外部 如移动到表格空白区域 移动到表格浏览器外部 if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSELEAVE_CELL)) { if (table.stateManager.hover.cellPos.col !== -1 && table.stateManager.hover.cellPos.row !== -1) { From 813feb7f6876593ce719831cee3846845ad7ce30 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 17:26:18 +0800 Subject: [PATCH 4/8] fix: borderlinedash effect error handle with lineCap #1436 --- .../graphic/contributions/group-contribution-render.ts | 2 +- .../vtable/src/scenegraph/group-creater/cell-type/chart-cell.ts | 2 +- .../src/scenegraph/group-creater/cell-type/checkbox-cell.ts | 2 +- .../vtable/src/scenegraph/group-creater/cell-type/image-cell.ts | 2 +- .../src/scenegraph/group-creater/cell-type/spark-line-cell.ts | 2 +- .../vtable/src/scenegraph/group-creater/cell-type/text-cell.ts | 2 +- .../vtable/src/scenegraph/group-creater/cell-type/video-cell.ts | 2 +- packages/vtable/src/scenegraph/style/corner-cell.ts | 2 +- packages/vtable/src/scenegraph/style/frame-border.ts | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/vtable/src/scenegraph/graphic/contributions/group-contribution-render.ts b/packages/vtable/src/scenegraph/graphic/contributions/group-contribution-render.ts index 6a871c6ba..4625bcb45 100644 --- a/packages/vtable/src/scenegraph/graphic/contributions/group-contribution-render.ts +++ b/packages/vtable/src/scenegraph/graphic/contributions/group-contribution-render.ts @@ -261,7 +261,7 @@ export function renderStroke( context.setStrokeStyle(group, group.attribute, x, y, groupAttribute); // if (isHighlight) { // context.setLineDash(highlightDash); - // context.lineCap = 'square'; + // context.lineCap = 'butt'; // } const lineDash = context.getLineDash(); let isDash = false; diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/chart-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/chart-cell.ts index cb27cc06a..cd129e451 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/chart-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/chart-cell.ts @@ -51,7 +51,7 @@ export function createChartCellGroup( cursor: (cellTheme?.group as any)?.cursor ?? undefined, lineDash: cellTheme?.group?.lineDash ?? undefined, - lineCap: 'square', + lineCap: 'butt', clip: true, diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/checkbox-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/checkbox-cell.ts index c8f192f04..9e184f048 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/checkbox-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/checkbox-cell.ts @@ -49,7 +49,7 @@ export function createCheckboxCellGroup( cursor: (cellTheme?.group as any)?.cursor ?? undefined, lineDash: cellTheme?.group?.lineDash ?? undefined, - lineCap: 'square', + lineCap: 'butt', clip: true, diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/image-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/image-cell.ts index 6352643b5..a816ba2b6 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/image-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/image-cell.ts @@ -60,7 +60,7 @@ export function createImageCellGroup( cursor: (cellTheme?.group as any)?.cursor ?? undefined, lineDash: cellTheme?.group?.lineDash ?? undefined, - lineCap: 'square', + lineCap: 'butt', clip: true, diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/spark-line-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/spark-line-cell.ts index d7d9b7d5e..6284a6129 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/spark-line-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/spark-line-cell.ts @@ -43,7 +43,7 @@ export function createSparkLineCellGroup( cursor: (cellTheme?.group as any)?.cursor ?? undefined, lineDash: cellTheme?.group?.lineDash ?? undefined, - lineCap: 'square', + lineCap: 'butt', clip: true, diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/text-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/text-cell.ts index 9abc8898e..09f21d2c4 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/text-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/text-cell.ts @@ -80,7 +80,7 @@ export function createCellGroup( cursor: (cellTheme?.group as any)?.cursor ?? undefined, lineDash: cellTheme?.group?.lineDash ?? undefined, - lineCap: 'square', + lineCap: 'butt', clip: true, diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/video-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/video-cell.ts index 8008f48b2..d395733e2 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/video-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/video-cell.ts @@ -61,7 +61,7 @@ export function createVideoCellGroup( cursor: (cellTheme?.group as any)?.cursor ?? undefined, lineDash: cellTheme?.group?.lineDash ?? undefined, - lineCap: 'square', + lineCap: 'butt', clip: true, diff --git a/packages/vtable/src/scenegraph/style/corner-cell.ts b/packages/vtable/src/scenegraph/style/corner-cell.ts index e305fb80e..727ee3f2c 100644 --- a/packages/vtable/src/scenegraph/style/corner-cell.ts +++ b/packages/vtable/src/scenegraph/style/corner-cell.ts @@ -19,7 +19,7 @@ export function createCornerCell(cellGroup: Group, frameTheme: ThemeStyle) { rectAttributes.stroke = getStroke(borderColor as string, undefined); rectAttributes.lineWidth = borderLineWidth as number; borderLineDash && (rectAttributes.lineDash = borderLineDash as number[]); - rectAttributes.lineCap = 'square'; + rectAttributes.lineCap = 'butt'; if (Array.isArray(borderColor)) { (rectAttributes as any).strokeArrayColor = getQuadProps(borderColor as any); } diff --git a/packages/vtable/src/scenegraph/style/frame-border.ts b/packages/vtable/src/scenegraph/style/frame-border.ts index baf64616c..bc6d88797 100644 --- a/packages/vtable/src/scenegraph/style/frame-border.ts +++ b/packages/vtable/src/scenegraph/style/frame-border.ts @@ -66,7 +66,7 @@ export function createFrameBorder( rectAttributes.stroke = getStroke(borderColor, strokeArray); rectAttributes.lineWidth = borderLineWidth as number; borderLineDash && (rectAttributes.lineDash = borderLineDash as number[]); - rectAttributes.lineCap = 'square'; + rectAttributes.lineCap = 'butt'; } if (Array.isArray(borderColor)) { From 8734296fe8894cb3d84d877473200288e842e1fb Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 17:26:55 +0800 Subject: [PATCH 5/8] docs: update changlog of rush --- ...g-borderlinedash-not-working_2024-04-03-09-26.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vtable/1436-bug-borderlinedash-not-working_2024-04-03-09-26.json diff --git a/common/changes/@visactor/vtable/1436-bug-borderlinedash-not-working_2024-04-03-09-26.json b/common/changes/@visactor/vtable/1436-bug-borderlinedash-not-working_2024-04-03-09-26.json new file mode 100644 index 000000000..9fed76601 --- /dev/null +++ b/common/changes/@visactor/vtable/1436-bug-borderlinedash-not-working_2024-04-03-09-26.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: borderlinedash effect error handle with lineCap #1436\n\n", + "type": "none", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} \ No newline at end of file From 961d20bd724d897fce23fb6ea1a22dd90e78c8bb Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 17:41:07 +0800 Subject: [PATCH 6/8] refactor: supplement event type for react table #1434 --- packages/react-vtable/src/eventsUtils.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/react-vtable/src/eventsUtils.ts b/packages/react-vtable/src/eventsUtils.ts index ec9f4d5c6..56dd5c441 100644 --- a/packages/react-vtable/src/eventsUtils.ts +++ b/packages/react-vtable/src/eventsUtils.ts @@ -61,6 +61,15 @@ export interface EventsProps { // pivot chart only onVChartEventType?: EventCallback; + + onChangCellValue?: EventCallback; + + onMousedownFillHandle?: EventCallback; + onDragFillHandleEnd?: EventCallback; + onDblclickFillHandle?: EventCallback; + + onScrollVerticalEnd?: EventCallback; + onScrollHorizontalEnd?: EventCallback; } export const TABLE_EVENTS = { @@ -113,7 +122,14 @@ export const TABLE_EVENTS = { onDrillMenuClick: EVENT_TYPE.DRILLMENU_CLICK, // pivot chart only - onVChartEventType: EVENT_TYPE.VCHART_EVENT_TYPE + onVChartEventType: EVENT_TYPE.VCHART_EVENT_TYPE, + + onChangCellValue: EVENT_TYPE.CHANGE_CELL_VALUE, + onMousedownFillHandle: EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, + onDragFillHandleEnd: EVENT_TYPE.DRAG_FILL_HANDLE_END, + onDblclickFillHandle: EVENT_TYPE.DBLCLICK_FILL_HANDLE, + onScrollVerticalEnd: EVENT_TYPE.SCROLL_VERTICAL_END, + onScrollHorizontalEnd: EVENT_TYPE.SCROLL_HORIZONTAL_END }; export const TABLE_EVENTS_KEYS = Object.keys(TABLE_EVENTS); From a88b854c5ec0b6ea5fd7bf14fcc796d43b1ad3b9 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Wed, 3 Apr 2024 17:41:30 +0800 Subject: [PATCH 7/8] docs: update changlog of rush --- .../1434-react-event-supplyment_2024-04-03-09-41.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vtable/1434-react-event-supplyment_2024-04-03-09-41.json diff --git a/common/changes/@visactor/vtable/1434-react-event-supplyment_2024-04-03-09-41.json b/common/changes/@visactor/vtable/1434-react-event-supplyment_2024-04-03-09-41.json new file mode 100644 index 000000000..a020c3ebf --- /dev/null +++ b/common/changes/@visactor/vtable/1434-react-event-supplyment_2024-04-03-09-41.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "refactor: supplement event type for react table #1434\n\n", + "type": "none", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} \ No newline at end of file From dc1720de3a6e9dc2ca4e3f17c50901e72e85ba3b Mon Sep 17 00:00:00 2001 From: fangsmile Date: Sun, 7 Apr 2024 03:33:49 +0000 Subject: [PATCH 8/8] docs: generate changelog of release v0.23.1 --- docs/assets/changelog/en/release.md | 29 +++++++++++++++++++++++++++++ docs/assets/changelog/zh/release.md | 29 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/docs/assets/changelog/en/release.md b/docs/assets/changelog/en/release.md index d7c0a2d51..0f344986b 100644 --- a/docs/assets/changelog/en/release.md +++ b/docs/assets/changelog/en/release.md @@ -1,3 +1,32 @@ +# v0.23.1 + +2024-04-07 + + +**🆕 New feature** + +- **@visactor/vtable**: select range can extends during scroll [#1400](https://github.com/VisActor/VTable/issues/1400) + +**🐛 Bug fix** + +- **@visactor/vtable**: maxLineWidth value should consider hierarchyOffset [#1224](https://github.com/VisActor/VTable/issues/1224) +- **@visactor/vtable**: tree leaf node textAlign right render error [#1393](https://github.com/VisActor/VTable/issues/1393) +- **@visactor/vtable**: when copy or paste navigator.clipboard?.write occor undefined error in not https [#1421](https://github.com/VisActor/VTable/issues/1421) +- **@visactor/vtable**: fix header cell imageAutoSizing [#1339](https://github.com/VisActor/VTable/issues/1339) +- **@visactor/vtable**: hide icon background when hide icon +- **@visactor/vtable**: fix nan verticalBarPos [#1232](https://github.com/VisActor/VTable/issues/1232) +- **@visactor/vtable**: fix progressbar cover cell border [#1425](https://github.com/VisActor/VTable/issues/1425) +- **@visactor/vtable**: remove container in table option +- **@visactor/vtable**: add sync render in exportCellImg [#1398](https://github.com/VisActor/VTable/issues/1398) + +**🔨 Refactor** + +- **@visactor/vtable**: optimize performance when change tree hierarchy state [#1406](https://github.com/VisActor/VTable/issues/1406) + + + +[more detail about v0.23.1](https://github.com/VisActor/VTable/releases/tag/v0.23.1) + # v0.23.0 2024-03-29 diff --git a/docs/assets/changelog/zh/release.md b/docs/assets/changelog/zh/release.md index aac2a7f88..4f090881c 100644 --- a/docs/assets/changelog/zh/release.md +++ b/docs/assets/changelog/zh/release.md @@ -1,3 +1,32 @@ +# v0.23.1 + +2024-04-07 + + +**🆕 新增功能** + +- **@visactor/vtable**: select range can extends during scroll [#1400](https://github.com/VisActor/VTable/issues/1400) + +**🐛 功能修复** + +- **@visactor/vtable**: maxLineWidth value should consider hierarchyOffset [#1224](https://github.com/VisActor/VTable/issues/1224) +- **@visactor/vtable**: tree leaf node textAlign right render error [#1393](https://github.com/VisActor/VTable/issues/1393) +- **@visactor/vtable**: when copy or paste navigator.clipboard?.write occor undefined error in not https [#1421](https://github.com/VisActor/VTable/issues/1421) +- **@visactor/vtable**: fix header cell imageAutoSizing [#1339](https://github.com/VisActor/VTable/issues/1339) +- **@visactor/vtable**: hide icon background when hide icon +- **@visactor/vtable**: fix nan verticalBarPos [#1232](https://github.com/VisActor/VTable/issues/1232) +- **@visactor/vtable**: fix progressbar cover cell border [#1425](https://github.com/VisActor/VTable/issues/1425) +- **@visactor/vtable**: remove container in table option +- **@visactor/vtable**: add sync render in exportCellImg [#1398](https://github.com/VisActor/VTable/issues/1398) + +**🔨 功能重构** + +- **@visactor/vtable**: optimize performance when change tree hierarchy state [#1406](https://github.com/VisActor/VTable/issues/1406) + + + +[更多详情请查看 v0.23.1](https://github.com/VisActor/VTable/releases/tag/v0.23.1) + # v0.23.0 2024-03-29