Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
6bd6d23
demo(business): add personnel information sheet with phone masking #2093
Apr 10, 2026
1c31a9b
Merge pull request #5108 from william-xue/feat/2093-personnel-info-demo
fangsmile Apr 15, 2026
5999b31
fix(vtable): refresh custom merged corner layout
fangsmile Aug 20, 2026
4c67c1f
Merge pull request #5287 from VisActor/sync/main-1.26.7
fangsmile Aug 20, 2026
5be858d
Merge remote-tracking branch 'origin/develop' into fix/issue-765-cust…
fangsmile Aug 20, 2026
4bbfbf2
docs: link v1.26.7 changelog issues
fangsmile Aug 21, 2026
ec25f7d
fix(vtable): harden custom merged corner rendering
fangsmile Aug 21, 2026
2cf8c7d
build: update vrender dependencies
fangsmile Aug 21, 2026
21905ca
revert: move vrender dependency update off develop
fangsmile Aug 21, 2026
acdf2c5
build: update vrender dependencies
fangsmile Aug 21, 2026
d892b42
Merge pull request #5289 from VisActor/chore/update-vrender-dependencies
fangsmile Aug 24, 2026
3e503ac
Merge remote-tracking branch 'origin/develop' into docs/personnel-inf…
fangsmile Aug 24, 2026
d1873fc
docs: complete personnel info demo icons
fangsmile Aug 24, 2026
d33ffb7
docs: fix personnel info eye icon state
fangsmile Aug 24, 2026
61e5d05
docs: fix typo defalut -> default
vaibhav8a Aug 24, 2026
60ae1a8
docs: fix personnel info eye icon toggle
fangsmile Aug 24, 2026
00aa6b4
Merge pull request #5111 from VisActor/docs/personnel-info-demo
fangsmile Aug 24, 2026
3426dbb
Merge pull request #5291 from vaibhav8a/fix-typo-default
fangsmile Aug 24, 2026
b2833d8
fix: support dynamic gantt mark line styles
fangsmile Aug 24, 2026
d7403e0
fix: prevent image preview for null/undefined image values
Aug 24, 2026
0b473d9
fix: support copy fallback on http
fangsmile Aug 24, 2026
d36f7da
Merge pull request #5292 from VisActor/fix/issue-5158
fangsmile Aug 24, 2026
faaa8d9
fix(vtable-sheet): exclude test shim from compile
dajiaohuang Aug 24, 2026
0e73de9
fix: refine http clipboard fallback
fangsmile Aug 25, 2026
afea0c5
Merge pull request #5296 from dajiaohuang/fix/5295-vtable-sheet-compile
fangsmile Aug 25, 2026
1863020
fix: handle clipboard html fallback
fangsmile Aug 25, 2026
495e251
fix: stabilize clipboard html paste handling
fangsmile Aug 25, 2026
143266d
fix: normalize pasted html cell content
fangsmile Aug 25, 2026
58c0b04
fix: harden clipboard cut paste state
fangsmile Aug 25, 2026
b43e855
fix: harden clipboard paste transactions
fangsmile Aug 25, 2026
fa8b80a
fix: handle empty audio and video previews
dajiaohuang Aug 25, 2026
de2f2ba
fix: guard cut cleanup
fangsmile Aug 26, 2026
6518849
fix: harden clipboard transaction guards
fangsmile Aug 26, 2026
399b095
fix: harden clipboard transactions
fangsmile Aug 26, 2026
9f72196
fix: address clipboard review issues
fangsmile Aug 26, 2026
3da291a
fix: harden clipboard async operations
fangsmile Aug 26, 2026
c5a7733
docs: improve third-party component popup handling guidance and demos…
fangsmile Aug 26, 2026
f4b6b9c
fix: tighten clipboard transaction guards
fangsmile Aug 26, 2026
b90c3f7
fix: correct Vue Arco Select triggerProps.contentClass and remove bro…
fangsmile Aug 26, 2026
85b5d4d
Merge pull request #5297 from VisActor/docs/custom-editor-popup-guidance
fangsmile Aug 26, 2026
f08617c
fix(vtable): harden custom corner merge cleanup
fangsmile Aug 27, 2026
6cd06a0
Merge pull request #5293 from dajiaohuang/fix/5290-image-null-preview
fangsmile Aug 27, 2026
1db8cd8
fix(vtable): guard custom corner merge rendering
fangsmile Aug 27, 2026
ad03156
fix(vtable): preserve corner custom layout during resize
fangsmile Aug 27, 2026
e1ed11e
fix(vtable): refresh corner merge layout safely
fangsmile Aug 27, 2026
2ec2275
fix(vtable): correct complex corner divider paths
fangsmile Aug 27, 2026
3107a0f
fix(react-vtable): flush custom layout unmounts
fangsmile Aug 27, 2026
45e4f58
fix(vtable): stabilize corner custom layout refresh
fangsmile Aug 27, 2026
8e565ff
fix: stabilize react custom layout refresh
fangsmile Aug 28, 2026
4fa3405
fix: defer corner merge refresh during resize
fangsmile Aug 28, 2026
a26131a
fix: preserve corner merge react state on resize
fangsmile Aug 28, 2026
79315e9
Merge pull request #5294 from VisActor/fix/issue-5274-http-copy
fangsmile Aug 28, 2026
041f52e
Merge remote-tracking branch 'origin/develop' into fix/issue-765-cust…
fangsmile Aug 28, 2026
22155af
Merge pull request #5288 from VisActor/fix/issue-765-custom-corner-he…
fangsmile Aug 28, 2026
d6d4185
fix: preserve pivot column widths after updateOption
biubiukam Aug 28, 2026
e45f89f
docs: update changlog of rush
biubiukam Aug 28, 2026
d197534
fix: avoid allocating resized column scan array
fangsmile Aug 31, 2026
b0ce099
fix: preserve unresized row height recalculation
fangsmile Aug 31, 2026
5bf93dd
fix: keep autoHeight row sync independent
fangsmile Aug 31, 2026
0665dbe
fix: preserve manual row heights during recompute
fangsmile Aug 31, 2026
bad2312
feat: support grouped grand totals by dimension
fangsmile Aug 31, 2026
cb9432d
fix: address grouped grand total review issues
fangsmile Aug 31, 2026
dc25524
fix: keep pivot header width default during updateOption
fangsmile Aug 31, 2026
9372189
fix: complete grouped grand total integrations
fangsmile Aug 31, 2026
9c5858c
fix: complete grouped grand total edge cases
fangsmile Sep 1, 2026
a0fdfd9
fix: preserve data config in data path lookup
fangsmile Sep 1, 2026
9df5d48
fix: preserve resized columns during adaptive width
fangsmile Sep 1, 2026
e82a378
fix: keep autoFillWidth resized columns fillable
fangsmile Sep 2, 2026
83017a7
Merge pull request #5301 from VisActor/fix/pr-5299-from-develop
fangsmile Sep 2, 2026
9047f5f
fix: complete grouped grand total chart paths
fangsmile Sep 2, 2026
4d0f7b5
fix: handle grouped grand total review regressions
fangsmile Sep 2, 2026
8e5a534
fix: preserve tree header path lookup compatibility
fangsmile Sep 2, 2026
7d72716
Merge origin/develop into feat/issue-5272
fangsmile Sep 3, 2026
d3555ce
feat(theme): 增加全局默认主题配置 API
kitee0325 Sep 9, 2026
ac47c7d
test: ensure grouped total sorting is exercised
fangsmile Sep 10, 2026
2626a6b
Merge pull request #5302 from VisActor/feat/issue-5272
fangsmile Sep 10, 2026
8fc8227
Merge pull request #5309 from kitee0325/feat/set-default-theme
fangsmile Sep 10, 2026
4243b54
test: add issue 4186 nested field edit demo
fangsmile Sep 11, 2026
2397f10
fix(vtable): update nested fields by path
biubiukam Sep 4, 2026
5fdbc5d
fix: preserve nested field record compatibility
fangsmile Sep 11, 2026
2c0e346
fix: harden nested field updates
fangsmile Sep 11, 2026
a938bf7
Merge pull request #5311 from VisActor/fix/issue-4186-from-develop
fangsmile Sep 11, 2026
843598b
build: release version 1.26.8 [skip ci]
fangsmile Sep 11, 2026
da6a746
docs: refine v1.26.8 release notes
fangsmile Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 29 additions & 29 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion common/config/rush/version-policies.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"definitionName":"lockStepVersion","policyName":"vtableMain","version":"1.26.7","mainProject":"@visactor/vtable","nextBump":"patch"}]
[{"definitionName":"lockStepVersion","policyName":"vtableMain","version":"1.26.8","mainProject":"@visactor/vtable","nextBump":"patch"}]
34 changes: 27 additions & 7 deletions docs/assets/changelog/en/release.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
# v1.26.8

2026-09-11

**🆕 New Features**

- **@visactor/vtable**: add themes.setDefaultTheme for application-wide default styling

**🐛 Bug Fixes**

- **@visactor/vtable**: prevent empty image, audio, and video cells from opening media previews (GitHub #5290)
- **@visactor/vtable**: update nested fields by path
- **@visactor/vtable**: prefer event clipboard data for copy and cut, fall back to it for paste when the async Clipboard API is unavailable, preserve cut source cells until paste succeeds, and normalize pasted HTML cell content (GitHub #5274)
- **@visactor/vtable**: preserve pivot table column widths after updateOption (#5298)
- **@visactor/vtable-sheet**: keep test-only plugin sources out of the package compile

**Full Changelog**: https://github.com/VisActor/VTable/compare/v1.26.7...v1.26.8

[more detail about v1.26.8](https://github.com/VisActor/VTable/releases/tag/v1.26.8)

# v1.26.7

2026-08-20

**🆕 New Features**

- **@visactor/vtable**: support tooltip appear delay
- **@visactor/vtable**: add audio cell type support (GitHub #5271)
- **@visactor/vtable**: add audio cell type support [#5271](https://github.com/VisActor/VTable/issues/5271)

**🐛 Bug Fixes**

- **@visactor/vtable**: prevent blank scrolling for large merged auto-height cells by keeping enough virtual rows (GitHub #3752)
- **@visactor/vtable**: preserve tree checkbox state after row drag reorder (GitHub #3975)
- **@visactor/vtable**: add context menu click event typing (GitHub #4655)
- **@visactor/vtable**: avoid loading all lazy dataSource records during customRender auto size computation (GitHub #4964)
- **@visactor/vtable**: prevent blank scrolling for large merged auto-height cells by keeping enough virtual rows [#3752](https://github.com/VisActor/VTable/issues/3752)
- **@visactor/vtable**: preserve tree checkbox state after row drag reorder [#3975](https://github.com/VisActor/VTable/issues/3975)
- **@visactor/vtable**: add context menu click event typing [#4655](https://github.com/VisActor/VTable/issues/4655)
- **@visactor/vtable**: avoid loading all lazy dataSource records during customRender auto size computation [#4964](https://github.com/VisActor/VTable/issues/4964)
- **@visactor/vtable**: render vue components in top frozen rows
- **@visactor/vtable**: align frame border with short frozen rows (GitHub #5277)
- **@visactor/vtable**: keep headers after setRecords at scroll edge (GitHub #5278)
- **@visactor/vtable**: align frame border with short frozen rows [#5277](https://github.com/VisActor/VTable/issues/5277)
- **@visactor/vtable**: keep headers after setRecords at scroll edge [#5278](https://github.com/VisActor/VTable/issues/5278)

**Full Changelog**: https://github.com/VisActor/VTable/compare/v1.26.6...v1.26.7

Expand Down
34 changes: 27 additions & 7 deletions docs/assets/changelog/zh/release.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
# v1.26.8

2026-09-11

**🆕 新增功能**

- **@visactor/vtable**: 新增 `themes.setDefaultTheme`,支持配置应用级默认主题样式

**🐛 问题修复**

- **@visactor/vtable**: 阻止空图片、音频和视频单元格打开媒体预览(GitHub #5290)
- **@visactor/vtable**: 支持按路径更新嵌套字段
- **@visactor/vtable**: 复制和剪切时优先使用事件的剪贴板数据;异步 Clipboard API 不可用时为粘贴提供回退;粘贴成功前保留剪切源单元格,并规范化粘贴的 HTML 单元格内容(GitHub #5274)
- **@visactor/vtable**: 调用 `updateOption` 后保留透视表列宽(#5298)
- **@visactor/vtable-sheet**: 修复编译配置,避免将仅用于测试的插件源码纳入包编译

**完整更新日志**: https://github.com/VisActor/VTable/compare/v1.26.7...v1.26.8

[更多详情请查看 v1.26.8](https://github.com/VisActor/VTable/releases/tag/v1.26.8)

# v1.26.7

2026-08-20

**🆕 新增功能**

- **@visactor/vtable**: 支持配置 Tooltip 展示延迟
- **@visactor/vtable**: 新增音频单元格类型支持(GitHub #5271)
- **@visactor/vtable**: 新增音频单元格类型支持 [#5271](https://github.com/VisActor/VTable/issues/5271)

**🐛 问题修复**

- **@visactor/vtable**: 通过保留足够的虚拟行,避免大范围合并单元格在自动行高下滚动出现空白(GitHub #3752)
- **@visactor/vtable**: 行拖拽重排后保持树形 checkbox 状态(GitHub #3975)
- **@visactor/vtable**: 新增右键菜单点击事件类型定义(GitHub #4655)
- **@visactor/vtable**: customRender 自动尺寸计算时避免加载全部懒加载 dataSource 记录(GitHub #4964)
- **@visactor/vtable**: 通过保留足够的虚拟行,避免大范围合并单元格在自动行高下滚动出现空白 [#3752](https://github.com/VisActor/VTable/issues/3752)
- **@visactor/vtable**: 行拖拽重排后保持树形 checkbox 状态 [#3975](https://github.com/VisActor/VTable/issues/3975)
- **@visactor/vtable**: 新增右键菜单点击事件类型定义 [#4655](https://github.com/VisActor/VTable/issues/4655)
- **@visactor/vtable**: customRender 自动尺寸计算时避免加载全部懒加载 dataSource 记录 [#4964](https://github.com/VisActor/VTable/issues/4964)
- **@visactor/vtable**: 支持在顶部冻结行中渲染 Vue 组件
- **@visactor/vtable**: 短数据且存在底部冻结行时,表格外框边框与内容高度对齐(GitHub #5277)
- **@visactor/vtable**: 在滚动边界调用 setRecords 后保持表头显示(GitHub #5278)
- **@visactor/vtable**: 短数据且存在底部冻结行时,表格外框边框与内容高度对齐 [#5277](https://github.com/VisActor/VTable/issues/5277)
- **@visactor/vtable**: 在滚动边界调用 setRecords 后保持表头显示 [#5278](https://github.com/VisActor/VTable/issues/5278)

**完整更新日志**: https://github.com/VisActor/VTable/compare/v1.26.6...v1.26.7

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ https://arco.design/react/components/select

```javascript livedemo template=vtable-react
// import * as ReactVTable from '@visactor/react-vtable';
const selectEditorPopupClassName = 'vtable-editor-select-popup';

class ArcoListEditor {
constructor() {
this.root = null;
Expand Down Expand Up @@ -48,6 +50,7 @@ class ArcoListEditor {
<div>
<ArcoDesign.Select
placeholder="Select city"
dropdownMenuClassName={selectEditorPopupClassName}
defaultValue={defaultValue}
onChange={value => {
this.currentValue = value;
Expand Down Expand Up @@ -86,19 +89,23 @@ class ArcoListEditor {
}

isEditorElement(target) {
// cascader创建时时在cavas后追加一个dom,而popup append在body尾部。不论popup还是dom,都应该被认为是点击到了editor区域
// The popup is appended to body and is outside the editor container.
// Clicking the popup should still be treated as clicking inside the editor.
return this.element.contains(target) || this.isClickPopUp(target);
}

isClickPopUp(target) {
while (target) {
if (target.classList && target.classList.contains('arco-select-vtable')) {
if (
target.classList &&
(target.classList.contains(selectEditorPopupClassName) || target.classList.contains('arco-select-vtable'))
) {
return true;
}
// 如果到达了DOM树的顶部,则停止搜索
// Stop searching when reaching the top of the DOM tree.
target = target.parentNode;
}
// 如果遍历结束也没有找到符合条件的父元素,则返回false
// Return false if no matching parent element is found.
return false;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ https://arco.design/react/components/select

```javascript livedemo template=vtable-react
// import * as ReactVTable from '@visactor/react-vtable';
const selectEditorPopupClassName = 'vtable-editor-select-popup';

class ArcoListEditor {
constructor() {
this.root = null;
Expand Down Expand Up @@ -48,6 +50,7 @@ class ArcoListEditor {
<div>
<ArcoDesign.Select
placeholder="Select city"
dropdownMenuClassName={selectEditorPopupClassName}
defaultValue={defaultValue}
onChange={value => {
this.currentValue = value;
Expand Down Expand Up @@ -86,13 +89,16 @@ class ArcoListEditor {
}

isEditorElement(target) {
// cascader创建时时在cavas后追加一个dom,而popup append在body尾部。不论popup还是dom,都应该被认为是点击到了editor区域
// popup append 在 body 尾部,不在编辑器容器内;点击 popup 时也应该被认为仍在编辑器区域。
return this.element.contains(target) || this.isClickPopUp(target);
}

isClickPopUp(target) {
while (target) {
if (target.classList && target.classList.contains('arco-select-vtable')) {
if (
target.classList &&
(target.classList.contains(selectEditorPopupClassName) || target.classList.contains('arco-select-vtable'))
) {
return true;
}
// 如果到达了DOM树的顶部,则停止搜索
Expand Down
13 changes: 12 additions & 1 deletion docs/assets/demo-vue/en/edit-data/arco-select-editor.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ https://arco.design/vue/components/select
## Code Demonstration

```javascript livedemo template=vtable-vue
const selectEditorPopupClassName = 'vtable-editor-select-popup';

class ArcoListEditor {
root = null;
element = null;
Expand Down Expand Up @@ -64,6 +66,9 @@ class ArcoListEditor {
style: { height: '32px' },
placeholder: 'Select city',
modelValue: this.currentValue,
triggerProps: {
contentClass: selectEditorPopupClassName
},
'onUpdate:modelValue': value => {
this.currentValue = value;
self.setValue(value);
Expand Down Expand Up @@ -110,12 +115,18 @@ class ArcoListEditor {
}

isEditorElement(target) {
// The popup is appended to body and is outside the editor container.
// Clicking the popup should still be treated as clicking inside the editor.
return this.element?.contains(target) || this.isClickPopUp(target);
}

isClickPopUp(target) {
while (target) {
if (target.classList && target.classList.contains('arco-select-vtable')) {
if (
target.classList &&
(target.classList.contains(selectEditorPopupClassName) ||
target.classList.contains('arco-select-vtable'))
) {
return true;
}
target = target.parentNode;
Expand Down
Loading
Loading