From 8ce24e598121e83fa927e1205a0a2cface02ea6b Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 14 May 2026 14:18:41 +0800 Subject: [PATCH 01/22] feat: upgrade vrender to 1.x --- .omx/logs/tmux-hook-2026-05-13.jsonl | 7 + .omx/logs/tmux-hook-2026-05-14.jsonl | 2 + .omx/logs/turns-2026-05-13.jsonl | 7 + .omx/logs/turns-2026-05-14.jsonl | 2 + .omx/metrics.json | 8 + .omx/state/hud-state.json | 6 + .omx/state/notify-hook-state.json | 10 + .omx/state/team-leader-nudge.json | 5 + .omx/state/tmux-hook-state.json | 9 + common/config/rush/pnpm-config.json | 13 +- common/config/rush/pnpm-lock.yaml | 1229 ++++++++--------- docs/package.json | 4 +- packages/openinula-vtable/package.json | 2 +- packages/react-vtable/package.json | 2 +- packages/vtable-export/package.json | 2 +- .../vtable-gantt/src/scenegraph/scenegraph.ts | 49 +- .../src/zoom-scale/DataZoomIntegration.ts | 29 +- packages/vtable-plugins/package.json | 2 +- packages/vtable-search/package.json | 2 +- .../vtable/__tests__/animation-appear.test.ts | 108 ++ .../__tests__/vchart-vrender-app.test.ts | 92 ++ .../__tests__/vrender-app-renderer.test.ts | 35 + packages/vtable/__tests__/vrender-app.test.ts | 99 ++ packages/vtable/package.json | 11 +- packages/vtable/src/core/BaseTable.ts | 2 +- .../vtable/src/scenegraph/animation/appear.ts | 14 +- packages/vtable/src/scenegraph/scenegraph.ts | 92 +- packages/vtable/src/vrender-app.ts | 141 ++ packages/vtable/src/vrender.ts | 81 +- packages/vue-vtable/package.json | 2 +- 30 files changed, 1353 insertions(+), 714 deletions(-) create mode 100644 .omx/logs/tmux-hook-2026-05-13.jsonl create mode 100644 .omx/logs/tmux-hook-2026-05-14.jsonl create mode 100644 .omx/logs/turns-2026-05-13.jsonl create mode 100644 .omx/logs/turns-2026-05-14.jsonl create mode 100644 .omx/metrics.json create mode 100644 .omx/state/hud-state.json create mode 100644 .omx/state/notify-hook-state.json create mode 100644 .omx/state/team-leader-nudge.json create mode 100644 .omx/state/tmux-hook-state.json create mode 100644 packages/vtable/__tests__/animation-appear.test.ts create mode 100644 packages/vtable/__tests__/vchart-vrender-app.test.ts create mode 100644 packages/vtable/__tests__/vrender-app-renderer.test.ts create mode 100644 packages/vtable/__tests__/vrender-app.test.ts create mode 100644 packages/vtable/src/vrender-app.ts diff --git a/.omx/logs/tmux-hook-2026-05-13.jsonl b/.omx/logs/tmux-hook-2026-05-13.jsonl new file mode 100644 index 0000000000..716367bf0e --- /dev/null +++ b/.omx/logs/tmux-hook-2026-05-13.jsonl @@ -0,0 +1,7 @@ +{"timestamp":"2026-05-13T02:58:22.995Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-13T02:59:14.683Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-13T03:00:39.337Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-13T03:29:12.322Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-13T05:02:18.048Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-13T06:19:18.709Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-13T06:23:48.555Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} diff --git a/.omx/logs/tmux-hook-2026-05-14.jsonl b/.omx/logs/tmux-hook-2026-05-14.jsonl new file mode 100644 index 0000000000..6b4ad9eb53 --- /dev/null +++ b/.omx/logs/tmux-hook-2026-05-14.jsonl @@ -0,0 +1,2 @@ +{"timestamp":"2026-05-14T03:41:54.025Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} +{"timestamp":"2026-05-14T03:42:48.391Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} diff --git a/.omx/logs/turns-2026-05-13.jsonl b/.omx/logs/turns-2026-05-13.jsonl new file mode 100644 index 0000000000..fe86abc1a3 --- /dev/null +++ b/.omx/logs/turns-2026-05-13.jsonl @@ -0,0 +1,7 @@ +{"timestamp":"2026-05-13T02:58:22.797Z","type":"agent-turn-complete","thread_id":"019e1f43-c10a-7033-80ad-bfc64ac73caa","turn_id":"019e1f43-c5d7-74b1-bca6-9a8c9d0c8e04","input_preview":"你是只读代码勘查代理。任务:在 /Users/bytedance/Documents/GitHub/VChart-develop 中核对 VChart 已完成的 VRender 升级,不要修改文件。\n","output_preview":"### 一致性核对结论(仅读核对)\n\n#### 1) `docs/vtable-upgrade-vrender-guide.md` 与 VChart 实际代码一致性\n\n- `/Users/bytedance/Documents/GitHub/VChart-develop/packages/vchart/src/compile/stage-app.ts`\n - 结论:一致。文件有独立 helper"} +{"timestamp":"2026-05-13T02:59:14.498Z","type":"agent-turn-complete","thread_id":"019e1f43-9cf5-7f60-8aa5-d4eeec290f5b","turn_id":"019e1f43-a462-7002-87eb-f510ac680540","input_preview":"你是只读代码勘查代理。任务:在 /Users/bytedance/Documents/GitHub/VRender2 中核对 VRender2 重构后的上层接入面,重点回答 VTable 升级需要知道","output_preview":"以下为**只读核查结果**(VRender2 源码快照):\n\n### 1) `@visactor/vrender` 是否导出 `createBrowserVRenderApp` / `createNodeVRenderApp`(源码路径与签名)\n\n**路径**\n- `/Users/bytedance/Documents/GitHub/VRender2/packages/vrender/src/en"} +{"timestamp":"2026-05-13T03:00:39.104Z","type":"agent-turn-complete","thread_id":"019e1f43-debe-71a0-ae3d-6c02e9a008e8","turn_id":"019e1f43-e359-7b31-a5c0-c82023648026","input_preview":"你是只读代码勘查代理。任务:在 /Users/bytedance/Documents/GitHub/VTable 中梳理当前 VRender 调用面,不要修改文件。\n\n请检查:\n1. 所有 @visa","output_preview":"\n\n\n- [/Users/bytedance/Documents/GitHub/VTable/packages/vtable/package.json] -- 包主的 VRender 直接依赖声明入口;后续升级最小破坏面。\n- [/Users/bytedance/Documents/GitHub/VTable/common/config/rush/pnpm-lock"} +{"timestamp":"2026-05-13T03:29:12.125Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e1f42-cae5-7070-9d03-8431ba85fd6b","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu","output_preview":"已完成 VRender 系列升级接入,并按本地 `/Users/bytedance/Documents/GitHub/VRender2` 解析依赖。VChart 指南只作为参考使用,关键 API 和版本解析都重新核对过;公开 registry 的 `1.0.45/1.0.46` 缺少本次需要的 app creator,因此当前用 Rush `globalOverrides` 指向本地 VRende"} +{"timestamp":"2026-05-13T05:02:17.849Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e1f77-f289-7883-9da6-47f7853efa2a","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.","output_preview":"已定位并修复这个回归。\n\n根因是 VRender2 创建 app 时,app registry 里保留的是 runtime 的默认 `DefaultCanvasGroupRender`,而 VTable 的分边框绘制贡献 `SplitGroupBefore/AfterRenderContribution` 挂在 legacy renderer 上。默认 group renderer 不处理 VTa"} +{"timestamp":"2026-05-13T06:19:18.508Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e1fc8-c160-70e2-8f8f-56e2555f0d33","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n","output_preview":"已修复第二个问题。\n\n根因是 VTable 当前解析到的 `@visactor/vchart@2.0.13-alpha.10` 仍在内部直接 `new Stage(...)`,没有走 VRender2 的 app-scoped stage 路径;在 VRender2 下会导致 VChart 图元实际不渲染。已将 Rush override 切到本地升级后的 VChart:\n\n- [pnpm-con"} +{"timestamp":"2026-05-13T06:23:48.380Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e2001-1269-7051-bc0b-bfd0e43ea19b","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n; 如果我需要使用 rush start 进行测试,需要 VCHart 进行build 吗?","output_preview":"需要,取决于你测什么:\n\n如果只是用当前这份 VChart 本地仓库已有的构建产物测试,暂时不需要再 build。我已经确认 VTable 解析到的本地 VChart 包里有 `esm/cjs/compile/stage-app.js`,`rush start` 能用这份产物。\n\n如果你之后改了 `/Users/bytedance/Documents/GitHub/VChart/packages/"} diff --git a/.omx/logs/turns-2026-05-14.jsonl b/.omx/logs/turns-2026-05-14.jsonl new file mode 100644 index 0000000000..35a73227e6 --- /dev/null +++ b/.omx/logs/turns-2026-05-14.jsonl @@ -0,0 +1,2 @@ +{"timestamp":"2026-05-14T03:41:53.687Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e2484-c9ef-72d0-8f87-04f580e5e4af","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n; 如果我需要使用 rush start 进行测试,需要 VCHart 进行build 吗?; 发现一个有效果问题的 case:\ncase位置:“Debug” 下 ”animation“ \n\n错误现象:\n1. 当前case 有动画效果\n2. 发现单元格内容在动画执行玩出后会隐藏\n3. 隐藏行为不; 应该是VRender 新的图形动画调用方式有更新,你可以给我提问,我会协助你让 VRender 回答你需要了解的内容; 你需要升级 VRender 到 1.1.0-alpha.18 ,然后 VRender 侧 agent 给你的回复如下:\n\n结论\n\n 1. 是的。VRender2/D3 属性模型下,普通 appea; VChart 升级到 2.1.0-alpha.2 ,不再使用本地 link。动画测试我已验证现在代码逻辑下是正常的了,你完成版本升级即可","output_preview":"当前阻塞在包源,不是代码改动。\n\n我已完成这些声明改动:\n\n- `@visactor/vchart` 全部改为 `2.1.0-alpha.2`\n- 移除了 Rush 中 `@visactor/vchart` 的本地 `file:../../../VChart/...` override\n- 也移除了本地 `@visactor/vutils-extension` override,避免继续从 VCh"} +{"timestamp":"2026-05-14T03:42:48.216Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e2493-dc72-7271-9afc-718a2f034b4e","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n; 如果我需要使用 rush start 进行测试,需要 VCHart 进行build 吗?; 发现一个有效果问题的 case:\ncase位置:“Debug” 下 ”animation“ \n\n错误现象:\n1. 当前case 有动画效果\n2. 发现单元格内容在动画执行玩出后会隐藏\n3. 隐藏行为不; 应该是VRender 新的图形动画调用方式有更新,你可以给我提问,我会协助你让 VRender 回答你需要了解的内容; 你需要升级 VRender 到 1.1.0-alpha.18 ,然后 VRender 侧 agent 给你的回复如下:\n\n结论\n\n 1. 是的。VRender2/D3 属性模型下,普通 appea; VChart 升级到 2.1.0-alpha.2 ,不再使用本地 link。动画测试我已验证现在代码逻辑下是正常的了,你完成版本升级即可; vchart 发版还没有完成,你可以先对配置文件进行修改,VChart 发版完成后,我会执行 rush update 进行依赖安装","output_preview":"已按“先改配置,暂不安装”处理完。\n\n配置层面现在是:\n\n- `common/config/rush/pnpm-config.json`\n - `@visactor/vchart`: `2.1.0-alpha.2`\n - VRender 系列: `1.1.0-alpha.18`\n - 已去掉 `VChart` / `VRender2` 的本地 `file:` override\n- `docs"} diff --git a/.omx/metrics.json b/.omx/metrics.json new file mode 100644 index 0000000000..ae24946420 --- /dev/null +++ b/.omx/metrics.json @@ -0,0 +1,8 @@ +{ + "total_turns": 9, + "session_turns": 9, + "last_activity": "2026-05-14T03:42:48.221Z", + "session_input_tokens": 0, + "session_output_tokens": 0, + "session_total_tokens": 0 +} \ No newline at end of file diff --git a/.omx/state/hud-state.json b/.omx/state/hud-state.json new file mode 100644 index 0000000000..9448e9c0c3 --- /dev/null +++ b/.omx/state/hud-state.json @@ -0,0 +1,6 @@ +{ + "last_turn_at": "2026-05-14T03:42:48.326Z", + "turn_count": 9, + "last_progress_at": "2026-05-14T03:42:48.326Z", + "last_agent_output": "已按“先改配置,暂不安装”处理完。\n\n配置层面现在是:\n\n- `common/config/rush/pnpm-config.json`\n - `@visactor/vchart`: `2.1.0-" +} \ No newline at end of file diff --git a/.omx/state/notify-hook-state.json b/.omx/state/notify-hook-state.json new file mode 100644 index 0000000000..b79524652e --- /dev/null +++ b/.omx/state/notify-hook-state.json @@ -0,0 +1,10 @@ +{ + "recent_turns": { + "019e1f37-9db4-7112-a459-747c8db6ed40|019e1f77-f289-7883-9da6-47f7853efa2a|agent-turn-complete": 1778648537847, + "019e1f37-9db4-7112-a459-747c8db6ed40|019e1fc8-c160-70e2-8f8f-56e2555f0d33|agent-turn-complete": 1778653158506, + "019e1f37-9db4-7112-a459-747c8db6ed40|019e2001-1269-7051-bc0b-bfd0e43ea19b|agent-turn-complete": 1778653428378, + "019e1f37-9db4-7112-a459-747c8db6ed40|019e2484-c9ef-72d0-8f87-04f580e5e4af|agent-turn-complete": 1778730113680, + "019e1f37-9db4-7112-a459-747c8db6ed40|019e2493-dc72-7271-9afc-718a2f034b4e|agent-turn-complete": 1778730168214 + }, + "last_event_at": "2026-05-14T03:42:48.215Z" +} \ No newline at end of file diff --git a/.omx/state/team-leader-nudge.json b/.omx/state/team-leader-nudge.json new file mode 100644 index 0000000000..96f0509e43 --- /dev/null +++ b/.omx/state/team-leader-nudge.json @@ -0,0 +1,5 @@ +{ + "last_nudged_by_team": {}, + "last_idle_nudged_by_team": {}, + "progress_by_team": {} +} \ No newline at end of file diff --git a/.omx/state/tmux-hook-state.json b/.omx/state/tmux-hook-state.json new file mode 100644 index 0000000000..2e79df402d --- /dev/null +++ b/.omx/state/tmux-hook-state.json @@ -0,0 +1,9 @@ +{ + "total_injections": 0, + "pane_counts": {}, + "session_counts": {}, + "recent_keys": {}, + "last_injection_ts": 0, + "last_reason": "disabled", + "last_event_at": "2026-05-14T03:42:48.339Z" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index 198ea2f758..e59bf098c2 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -82,9 +82,14 @@ * * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides */ - // "globalOverrides": { - // "@visactor/vrender": "0.12.3" - // }, + "globalOverrides": { + "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vrender": "1.1.0-alpha.18", + "@visactor/vrender-core": "1.1.0-alpha.18", + "@visactor/vrender-kits": "1.1.0-alpha.18", + "@visactor/vrender-components": "1.1.0-alpha.18", + "@visactor/vrender-animate": "1.1.0-alpha.18" + }, /** * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors * that are reported during installation with `strictPeerDependencies=true`. The settings are copied @@ -188,4 +193,4 @@ // }, // "pnpm": { "futurePnpmFeature": true } } -} \ No newline at end of file +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index d99c74bbb1..401276c8ab 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -4,6 +4,14 @@ settings: autoInstallPeers: false excludeLinksFromLockfile: false +overrides: + '@visactor/vchart': 2.1.0-alpha.2 + '@visactor/vrender': 1.1.0-alpha.18 + '@visactor/vrender-core': 1.1.0-alpha.18 + '@visactor/vrender-kits': 1.1.0-alpha.18 + '@visactor/vrender-components': 1.1.0-alpha.18 + '@visactor/vrender-animate': 1.1.0-alpha.18 + pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= importers: @@ -17,7 +25,7 @@ importers: version: 2.66.12(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@arco-design/web-vue': specifier: ^2.11.0 - version: 2.57.0(vue@3.5.31(typescript@4.9.5)) + version: 2.58.0(vue@3.5.34(typescript@4.9.5)) '@visactor/openinula-vtable': specifier: workspace:* version: link:../packages/openinula-vtable @@ -25,8 +33,8 @@ importers: specifier: workspace:* version: link:../packages/react-vtable '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@visactor/vtable': specifier: workspace:* version: link:../packages/vtable @@ -53,10 +61,10 @@ importers: version: 1.0.23 '@vue/compiler-dom': specifier: ^3.5.0 - version: 3.5.31 + version: 3.5.34 axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 buble: specifier: ^0.20.0 version: 0.20.0 @@ -83,7 +91,7 @@ importers: version: 6.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) vue: specifier: ^3.4.14 - version: 3.5.31(typescript@4.9.5) + version: 3.5.34(typescript@4.9.5) devDependencies: '@internal/eslint-config': specifier: workspace:* @@ -108,7 +116,7 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) chalk: specifier: ^3.0.0 version: 3.0.0 @@ -132,7 +140,7 @@ importers: version: 4.9.5 vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) yargs: specifier: ^17.1.1 version: 17.7.2 @@ -175,16 +183,16 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -205,10 +213,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -241,19 +249,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -262,10 +270,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/react-vtable: dependencies: @@ -314,7 +322,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -331,14 +339,14 @@ importers: specifier: 0.28.9 version: 0.28.9(@types/react@18.2.79) '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -359,10 +367,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -398,19 +406,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -419,28 +427,31 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable: dependencies: '@visactor/vdataset': specifier: ~1.0.17 version: 1.0.23 + '@visactor/vrender': + specifier: 1.1.0-alpha.18 + version: 1.1.0-alpha.18 '@visactor/vrender-animate': - specifier: ~1.0.41 - version: 1.0.44 + specifier: 1.1.0-alpha.18 + version: 1.1.0-alpha.18 '@visactor/vrender-components': - specifier: ~1.0.41 - version: 1.0.44 + specifier: 1.1.0-alpha.18 + version: 1.1.0-alpha.18 '@visactor/vrender-core': - specifier: ~1.0.41 - version: 1.0.44 + specifier: 1.1.0-alpha.18 + version: 1.1.0-alpha.18 '@visactor/vrender-kits': - specifier: ~1.0.41 - version: 1.0.44 + specifier: 1.1.0-alpha.18 + version: 1.1.0-alpha.18 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -452,7 +463,7 @@ importers: version: 1.0.23 '@visactor/vutils-extension': specifier: ~2.0.12 - version: 2.0.20 + version: 2.0.22 cssfontparser: specifier: ^1.2.1 version: 1.2.1 @@ -498,7 +509,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -509,14 +520,14 @@ importers: specifier: 18.2.25 version: 18.2.25 '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -552,10 +563,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -597,19 +608,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -618,10 +629,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-calendar: dependencies: @@ -664,7 +675,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -679,10 +690,10 @@ importers: version: 17.0.7 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -703,10 +714,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -745,19 +756,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -766,10 +777,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-editors: devDependencies: @@ -790,7 +801,7 @@ importers: version: 26.0.24 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -808,10 +819,10 @@ importers: version: 1.0.7 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) lint-staged: specifier: 12.3.7 version: 12.3.7 @@ -823,13 +834,13 @@ importers: version: 2.2.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 @@ -841,7 +852,7 @@ importers: version: 4.9.5 vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) ../../packages/vtable-export: dependencies: @@ -890,7 +901,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -904,14 +915,14 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -932,10 +943,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -974,19 +985,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -995,10 +1006,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-gantt: dependencies: @@ -1053,7 +1064,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1065,10 +1076,10 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -1104,10 +1115,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1149,19 +1160,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1170,10 +1181,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-plugins: dependencies: @@ -1228,7 +1239,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1242,8 +1253,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@visactor/vtable': specifier: workspace:* version: link:../vtable @@ -1255,10 +1266,10 @@ importers: version: link:../vtable-gantt '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -1279,10 +1290,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1321,19 +1332,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1342,10 +1353,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-search: dependencies: @@ -1385,7 +1396,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1399,14 +1410,14 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -1427,10 +1438,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1469,19 +1480,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1490,10 +1501,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-sheet: dependencies: @@ -1548,7 +1559,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1560,10 +1571,10 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -1578,10 +1589,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1620,19 +1631,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1641,10 +1652,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vue-vtable: dependencies: @@ -1657,7 +1668,7 @@ importers: devDependencies: '@arco-design/web-vue': specifier: ^2.11.0 - version: 2.57.0(vue@3.5.31(typescript@4.9.5)) + version: 2.58.0(vue@3.5.34(typescript@4.9.5)) '@babel/core': specifier: 7.20.12 version: 7.20.12 @@ -1687,19 +1698,19 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.0.13-alpha.10 - version: 2.0.13-alpha.10 + specifier: 2.1.0-alpha.2 + version: 2.1.0-alpha.2 '@vitejs/plugin-vue': specifier: ^5.0.3 - version: 5.2.4(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.31(typescript@4.9.5)) + version: 5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5)) axios: specifier: ^1.4.0 - version: 1.14.0 + version: 1.16.1 chai: specifier: 4.3.4 version: 4.3.4 @@ -1723,10 +1734,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1756,19 +1767,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1777,13 +1788,13 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) vue: specifier: ^3.4.14 - version: 3.5.31(typescript@4.9.5) + version: 3.5.34(typescript@4.9.5) vue-eslint-parser: specifier: ^9.4.2 version: 9.4.3(eslint@8.18.0) @@ -1859,7 +1870,7 @@ importers: version: 1.1.4 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/node-fetch': specifier: 2.6.4 version: 2.6.4 @@ -1877,7 +1888,7 @@ importers: version: 2.6.7 ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1943,7 +1954,7 @@ importers: version: 0.1.1 '@vitejs/plugin-vue': specifier: ^5.0.3 - version: 5.2.4(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.31(typescript@4.9.5)) + version: 5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5)) autoprefixer: specifier: 10.4.13 version: 10.4.13(postcss@8.4.21) @@ -2006,7 +2017,7 @@ importers: version: 3.20.5 rollup-plugin-postcss: specifier: 4.0.2 - version: 4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + version: 4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) rollup-plugin-typescript2: specifier: 0.36.0 version: 0.36.0(rollup@3.20.5)(typescript@4.9.5) @@ -2082,7 +2093,7 @@ importers: version: 0.7.31 '@types/node': specifier: '*' - version: 25.5.0 + version: 25.7.0 '@types/semver': specifier: 7.3.12 version: 7.3.12 @@ -2109,7 +2120,7 @@ importers: version: 3.0.2 ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -2132,17 +2143,17 @@ packages: react: '>=16' react-dom: '>=16' - '@arco-design/web-vue@2.57.0': - resolution: {integrity: sha512-R5YReC3C2sG3Jv0+YuR3B7kzkq2KdhhQNCGXD8T11xAoa0zMt6SWTP1xJQOdZcM9du+q3z6tk5mRvh4qkieRJw==} + '@arco-design/web-vue@2.58.0': + resolution: {integrity: sha512-b1vdPYOmjG5VAkVa7jlVwCb+WynBK+rnKN8zH3yKohpZObZbostRd3HgYNtjjZjGVU3OqR0Yy2FX7ftgF0bcOw==} peerDependencies: - vue: ^3.1.0 + vue: '>=3.1.0' '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + '@babel/compat-data@7.29.3': + resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} engines: {node: '>=6.9.0'} '@babel/core@7.20.12': @@ -2165,8 +2176,8 @@ packages: resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.6': - resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + '@babel/helper-create-class-features-plugin@7.29.3': + resolution: {integrity: sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2248,8 +2259,8 @@ packages: resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.2': - resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} engines: {node: '>=6.0.0'} hasBin: true @@ -2585,8 +2596,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.0': - resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} + '@babel/plugin-transform-modules-systemjs@7.29.4': + resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2839,8 +2850,8 @@ packages: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + '@istanbuljs/schema@0.1.6': + resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} engines: {node: '>=8'} '@jest/console@24.9.0': @@ -3314,8 +3325,8 @@ packages: '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} '@types/expect@1.20.4': resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} @@ -3408,8 +3419,8 @@ packages: '@types/node@14.18.63': resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} - '@types/node@25.5.0': - resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} + '@types/node@25.7.0': + resolution: {integrity: sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3417,8 +3428,8 @@ packages: '@types/offscreencanvas@2019.6.4': resolution: {integrity: sha512-u8SAgdZ8ROtkTF+mfZGOscl0or6BSj9A4g37e6nvxDc+YB/oDut0wHkK2PBBiC2bNR8TS0CPV+1gAk4fNisr1Q==} - '@types/picomatch@4.0.2': - resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==} + '@types/picomatch@4.0.3': + resolution: {integrity: sha512-iG0T6+nYJ9FAPmx9SsUlnwcq1ZVRuCXcVEvWnntoPlrOpwtSTKNDC9uVAxTsC3PUvJ+99n4RpAcNgBbHX3JSnQ==} '@types/prettier@2.7.3': resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} @@ -3553,8 +3564,8 @@ packages: '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - '@visactor/vchart@2.0.13-alpha.10': - resolution: {integrity: sha512-fPIjs+cboQ5ORUz4YD6/0YTV5IFwuAlou9n/8zi2xShiFfolQQqUZ3hAlG+di7n1yXVJAVo8WOTi0LKx/rlCiA==} + '@visactor/vchart@2.1.0-alpha.2': + resolution: {integrity: sha512-DEZjjaKxo19ABnVe+ZYv9AIQeW5VUzxLpiQRE1bE5AUknjZuR/0Pg3YGg+e9cOkuOMzMYp+YrhePyw8YVG0HHA==} '@visactor/vdataset@1.0.23': resolution: {integrity: sha512-zrLk9FBUWJoW6b30XnPKzXwAXl8USdLDfed6QZLsmdkylRU8V7yZeXE2aKwU8Lg1U4HmQngqmqOx7/QlbX44Tg==} @@ -3562,38 +3573,29 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.0.37-alpha.1': - resolution: {integrity: sha512-jbaegMFAA8nWxWIGSis63kzongcupvJqxj3KHR4Zn9E9ZeK3NDYgccXck97EYz187/8NDft8Fu8k8bQBBioVxQ==} - - '@visactor/vrender-animate@1.0.44': - resolution: {integrity: sha512-MKtoaucmbQNJnuff5F6ws+c8+mRBz1gXVY/bHw38nfvSTZcsJcXYug2aDPf4V9XaUSValDnkx9TyLLbKJ0o0TA==} - - '@visactor/vrender-components@1.0.37-alpha.1': - resolution: {integrity: sha512-g0G+HRsepXwJExFqhGj/8NErwR84s5KI4quAMWPR0mwRVu1q+1l91TdMQgDxtriXVHrrLfmK3RdUmdOuhkMrtQ==} - - '@visactor/vrender-components@1.0.44': - resolution: {integrity: sha512-vbCa/eME1UJL2iy0l4JHYJh1m6SG3rR5jt5umblLVRQjjBEWPAnhnPwQAA2TNiyO5eHG6qnyvcjgV5aeCeuJYw==} + '@visactor/vrender-animate@1.1.0-alpha.18': + resolution: {integrity: sha512-YYeMQWI6HjE4X36HH+7I1H+33Ettg+5kND6KWOVPScdXvL/6CtarcSBfiowo6U2XPYbN65gzXiI003QudUkmvQ==} - '@visactor/vrender-core@1.0.37-alpha.1': - resolution: {integrity: sha512-aSxF/FUuqM2HDj8DdvjdxvNqLBjW1f96ICdISXk9ZL/PoJVVZ8x9HHoESO5PDcMxLnkWGOSHhlSQJs7ON6A4gg==} + '@visactor/vrender-components@1.1.0-alpha.18': + resolution: {integrity: sha512-1eCS6AZ516H4cDlK5p1kNqVSQY/vLLhY01xandUVYGh+swVQyz0YrrMReQYWapDHbAlYeij8lJ2yxxnQ68t1pg==} - '@visactor/vrender-core@1.0.44': - resolution: {integrity: sha512-DrB+cg9//RkCZjchWConeXGOC99xwvEDdPfY7eEqajjPxUooJpSQ+pt51uD0VIwQCYtpsc2jVspefqdBh/e2Cg==} + '@visactor/vrender-core@1.1.0-alpha.18': + resolution: {integrity: sha512-Hh8Wet5yTwPmlt/pnyNiv4UH9qCmWeljyf6Ek9tCurpHc2f/KwkE5Doxv4ABx2QVMm5AX2QwYqGdvRd2ul15cA==} - '@visactor/vrender-kits@1.0.37-alpha.1': - resolution: {integrity: sha512-auQabc+V3413QeJOEujKGa/pCnuhzK2o4ogg8LEiArcXUKfKBvw9qS12Xo8G60diZMQe81kPle4LZJFD8j9FrA==} + '@visactor/vrender-kits@1.1.0-alpha.18': + resolution: {integrity: sha512-esNfbgTVCYPM7OJI+NIgnXWrq4xCu7yRr8VWom+GpOB5qtaprbzBFdQMDNepSqNM7KiI3WMU91xgwo7IW4X7dg==} - '@visactor/vrender-kits@1.0.44': - resolution: {integrity: sha512-B28zr+aTWlFIziH3b/ufUlpKQMv1Ie9ck8kTkHIGdBM/ES+CO6//GHMa/5OxuId19a9UhJxzj8cpeE/9mZLIoQ==} + '@visactor/vrender@1.1.0-alpha.18': + resolution: {integrity: sha512-7Akash0LEdukkN2gXk/WQfkqGktGQ1wnaSydxj7RbLCGrAVTs2h8LHckwC/UpVPfSSvS3owTyW8dhmJRIMDNdQ==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} - '@visactor/vutils-extension@2.0.13-alpha.10': - resolution: {integrity: sha512-kjP0oGgJrtsfADAq9FMMSgU04VwIAF7WX4zOa0wdwv0cflpKVchX/d7DBHXL/720Ak+LygfsvIdOpawKOrZ/GA==} + '@visactor/vutils-extension@2.0.22': + resolution: {integrity: sha512-PRxjplZF1/Qdsflb1hYh9DGGJdblq91yIG7CCC6MIlMMSlDYEAMJzJ9y2clnR1MgWa2AsAtMtuu+MSdG3DctUA==} - '@visactor/vutils-extension@2.0.20': - resolution: {integrity: sha512-now0AqIHimJr1/+7U9cJBkZ022VAsVlVANTN8mKLVIG1C5wnEYfKYG1Ew6ghjcSmkXi1c+pdrsAsj6i+ifRlwA==} + '@visactor/vutils-extension@2.1.0-alpha.2': + resolution: {integrity: sha512-Ko+5yiEMSznCnPRFGVBorcuyB/bd4ouBWhf5+Zr2NTBKm1xmB0NeB2/yxz72fgNaEu5hNoTPssYFiTl896zMJA==} '@visactor/vutils@1.0.23': resolution: {integrity: sha512-M8SLqgdHhKN8QmQKTWD1gzEaHptpIV9pvMYvC6+VeOsqYvZZ6UdhSCAAczTYVo+m/uwcEC2JHSUspbrs8rzlRQ==} @@ -3626,34 +3628,34 @@ packages: '@vitest/utils@0.30.1': resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} - '@vue/compiler-core@3.5.31': - resolution: {integrity: sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==} + '@vue/compiler-core@3.5.34': + resolution: {integrity: sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==} - '@vue/compiler-dom@3.5.31': - resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} + '@vue/compiler-dom@3.5.34': + resolution: {integrity: sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==} - '@vue/compiler-sfc@3.5.31': - resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} + '@vue/compiler-sfc@3.5.34': + resolution: {integrity: sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==} - '@vue/compiler-ssr@3.5.31': - resolution: {integrity: sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==} + '@vue/compiler-ssr@3.5.34': + resolution: {integrity: sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==} - '@vue/reactivity@3.5.31': - resolution: {integrity: sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==} + '@vue/reactivity@3.5.34': + resolution: {integrity: sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==} - '@vue/runtime-core@3.5.31': - resolution: {integrity: sha512-AZPmIHXEAyhpkmN7aWlqjSfYynmkWlluDNPHMCZKFHH+lLtxP/30UJmoVhXmbDoP1Ng0jG0fyY2zCj1PnSSA6Q==} + '@vue/runtime-core@3.5.34': + resolution: {integrity: sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==} - '@vue/runtime-dom@3.5.31': - resolution: {integrity: sha512-xQJsNRmGPeDCJq/u813tyonNgWBFjzfVkBwDREdEWndBnGdHLHgkwNBQxLtg4zDrzKTEcnikUy1UUNecb3lJ6g==} + '@vue/runtime-dom@3.5.34': + resolution: {integrity: sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==} - '@vue/server-renderer@3.5.31': - resolution: {integrity: sha512-GJuwRvMcdZX/CriUnyIIOGkx3rMV3H6sOu0JhdKbduaeCji6zb60iOGMY7tFoN24NfsUYoFBhshZtGxGpxO4iA==} + '@vue/server-renderer@3.5.34': + resolution: {integrity: sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==} peerDependencies: - vue: 3.5.31 + vue: 3.5.34 - '@vue/shared@3.5.31': - resolution: {integrity: sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==} + '@vue/shared@3.5.34': + resolution: {integrity: sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==} abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -3719,8 +3721,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} ansi-colors@1.1.0: resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} @@ -3979,8 +3981,8 @@ packages: aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axios@1.14.0: - resolution: {integrity: sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==} + axios@1.16.1: + resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} b-tween@0.3.3: resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} @@ -4072,8 +4074,8 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} - baseline-browser-mapping@2.10.12: - resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==} + baseline-browser-mapping@2.10.29: + resolution: {integrity: sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -4121,14 +4123,14 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - brace-expansion@1.1.13: - resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} + brace-expansion@1.1.14: + resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} - brace-expansion@2.0.3: - resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} braces@2.3.2: @@ -4148,8 +4150,8 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4209,8 +4211,8 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} engines: {node: '>= 0.4'} call-bound@1.0.4: @@ -4236,8 +4238,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001782: - resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==} + caniuse-lite@1.0.30001792: + resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==} capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -4838,8 +4840,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.328: - resolution: {integrity: sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==} + electron-to-chromium@1.5.355: + resolution: {integrity: sha512-LUPZhKzZPYSPme1jEYohpkA+ybYCJztr1quAdBd7E7h3+VOBVcKkwwtBJu41nrjawrRzfb8mtMfzWozoaK0ZIQ==} electron@11.5.0: resolution: {integrity: sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==} @@ -4866,8 +4868,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + enhanced-resolve@5.21.3: + resolution: {integrity: sha512-QyL119InA+XXEkNLNTPCXPugSvOfhwv0JOlGNzvxs0hZaiHLNvXSpudUWsOlsXGWJh8G6ckCScEkVHfX3kw/2Q==} engines: {node: '>=10.13.0'} entities@2.1.0: @@ -4895,8 +4897,8 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} es-array-method-boxes-properly@1.0.0: @@ -5391,8 +5393,8 @@ packages: resolution: {integrity: sha512-Ik/6OCk9RQQ0T5Xw+hKNLWrjSMtv51dD4GRmJjbD5a58TIEpI5a5iXagKVl3Z5UuyslMCA8Xwnu76jQob62Yhg==} engines: {node: '>=10'} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -5743,8 +5745,8 @@ packages: resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} engines: {node: '>=0.10.0'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} he@1.2.0: @@ -5903,9 +5905,9 @@ packages: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} - is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} + is-accessor-descriptor@1.0.2: + resolution: {integrity: sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==} + engines: {node: '>= 0.4'} is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} @@ -5952,8 +5954,8 @@ packages: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} is-data-descriptor@1.0.1: @@ -5968,12 +5970,12 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + is-descriptor@0.1.8: + resolution: {integrity: sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==} engines: {node: '>= 0.4'} - is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + is-descriptor@1.0.4: + resolution: {integrity: sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==} engines: {node: '>= 0.4'} is-docker@2.2.1: @@ -6528,8 +6530,8 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} @@ -6899,8 +6901,8 @@ packages: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.0.4: @@ -6956,16 +6958,16 @@ packages: resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} engines: {node: '>= 0.10'} - nan@2.26.2: - resolution: {integrity: sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==} + nan@2.27.0: + resolution: {integrity: sha512-hC+0LidcL3XE4rp1C4H54KujgXKzbfyTngZTwBByQxsOxCEKZT0MPQ4hOKUH2jU1OYstqdDH4onyHPDzcV0XdQ==} nanoid@3.1.25: resolution: {integrity: sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -7006,8 +7008,8 @@ packages: node-notifier@8.0.2: resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - node-releases@2.0.36: - resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + node-releases@2.0.44: + resolution: {integrity: sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -7634,8 +7636,8 @@ packages: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + postcss@8.5.14: + resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.1.2: @@ -7696,8 +7698,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protocol-buffers-schema@3.6.0: - resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + protocol-buffers-schema@3.6.1: + resolution: {integrity: sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==} proxy-from-env@2.1.0: resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} @@ -7896,8 +7898,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} hasBin: true regjsparser@0.6.9: @@ -7998,8 +8000,8 @@ packages: resolve@1.1.7: resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} engines: {node: '>= 0.4'} hasBin: true @@ -8087,8 +8089,8 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -8159,8 +8161,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + semver@7.8.0: + resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} engines: {node: '>=10'} hasBin: true @@ -8222,8 +8224,8 @@ packages: shellwords@0.1.1: resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -8565,8 +8567,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tapable@2.3.2: - resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} tar-stream@2.2.0: @@ -8866,8 +8868,8 @@ packages: uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} - ufo@1.6.3: - resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} @@ -8885,8 +8887,8 @@ packages: resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==} engines: {node: '>= 0.10'} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici-types@7.21.0: + resolution: {integrity: sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==} unicode-canonical-property-names-ecmascript@1.0.4: resolution: {integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==} @@ -9003,11 +9005,12 @@ packages: uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache-lib@3.0.1: @@ -9119,8 +9122,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue@3.5.31: - resolution: {integrity: sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==} + vue@3.5.34: + resolution: {integrity: sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -9388,7 +9391,7 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@arco-design/web-vue@2.57.0(vue@3.5.31(typescript@4.9.5))': + '@arco-design/web-vue@2.58.0(vue@3.5.34(typescript@4.9.5))': dependencies: '@arco-design/color': 0.4.0 b-tween: 0.3.3 @@ -9398,7 +9401,7 @@ snapshots: number-precision: 1.6.0 resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.31 - vue: 3.5.31(typescript@4.9.5) + vue: 3.5.34(typescript@4.9.5) '@babel/code-frame@7.29.0': dependencies: @@ -9406,7 +9409,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.0': {} + '@babel/compat-data@7.29.3': {} '@babel/core@7.20.12': dependencies: @@ -9416,7 +9419,7 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -9437,7 +9440,7 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -9449,13 +9452,13 @@ snapshots: '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.20.12)': + '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.27.3 @@ -9482,7 +9485,7 @@ snapshots: '@babel/helper-plugin-utils': 7.28.6 debug: 4.3.4(supports-color@9.4.0) lodash.debounce: 4.0.8 - resolve: 1.22.11 + resolve: 1.22.12 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9566,7 +9569,7 @@ snapshots: '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@babel/parser@7.29.2': + '@babel/parser@7.29.3': dependencies: '@babel/types': 7.29.0 @@ -9597,7 +9600,7 @@ snapshots: '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.20.12) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -9605,7 +9608,7 @@ snapshots: '@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.20.12) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.20.12) transitivePeerDependencies: @@ -9655,7 +9658,7 @@ snapshots: '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.20.12)': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/core': 7.20.12 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 @@ -9680,7 +9683,7 @@ snapshots: '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.20.12) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -9689,7 +9692,7 @@ snapshots: dependencies: '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.20.12) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.20.12) transitivePeerDependencies: @@ -9915,7 +9918,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.20.12)': + '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) @@ -10063,7 +10066,7 @@ snapshots: dependencies: '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.20.12) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.20.12) @@ -10083,7 +10086,7 @@ snapshots: '@babel/preset-env@7.20.2(@babel/core@7.20.12)': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/core': 7.20.12 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 @@ -10136,7 +10139,7 @@ snapshots: '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.20.12) '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.20.12) '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.20.12) + '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.20.12) '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.20.12) '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.20.12) '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.20.12) @@ -10197,7 +10200,7 @@ snapshots: '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@babel/traverse@7.29.0': @@ -10205,7 +10208,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.3.4(supports-color@9.4.0) @@ -10256,7 +10259,7 @@ snapshots: '@eslint/eslintrc@1.4.1': dependencies: - ajv: 6.14.0 + ajv: 6.15.0 debug: 4.3.4(supports-color@9.4.0) espree: 9.6.1 globals: 13.24.0 @@ -10318,7 +10321,7 @@ snapshots: js-yaml: 3.14.2 resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.3': {} + '@istanbuljs/schema@0.1.6': {} '@jest/console@24.9.0': dependencies: @@ -10329,33 +10332,33 @@ snapshots: '@jest/console@26.6.2': dependencies: '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 slash: 3.0.0 - '@jest/core@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))': + '@jest/core@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))': dependencies: '@jest/console': 26.6.2 '@jest/reporters': 26.6.2 '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 26.6.2 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-snapshot: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 @@ -10385,7 +10388,7 @@ snapshots: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 jest-mock: 26.6.2 '@jest/fake-timers@24.9.0': @@ -10398,7 +10401,7 @@ snapshots: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 25.5.0 + '@types/node': 25.7.0 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -10474,13 +10477,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/test-sequencer@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))': + '@jest/test-sequencer@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))': dependencies: '@jest/test-result': 26.6.2 graceful-fs: 4.2.11 jest-haste-map: 26.6.2 - jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) transitivePeerDependencies: - bufferutil - canvas @@ -10539,7 +10542,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/yargs': 15.0.20 chalk: 4.1.2 @@ -10723,7 +10726,7 @@ snapshots: deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.11 + resolve: 1.22.12 optionalDependencies: rollup: 3.20.5 @@ -10753,7 +10756,7 @@ snapshots: '@rollup/plugin-typescript@11.1.0(rollup@3.20.5)(tslib@2.8.1)(typescript@4.9.5)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@3.20.5) - resolve: 1.22.11 + resolve: 1.22.12 typescript: 4.9.5 optionalDependencies: rollup: 3.20.5 @@ -10781,7 +10784,7 @@ snapshots: '@rollup/pluginutils@5.3.0(rollup@3.20.5)': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: @@ -10855,7 +10858,7 @@ snapshots: '@types/babel__core@7.20.0': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -10867,7 +10870,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': @@ -10888,7 +10891,7 @@ snapshots: '@types/clean-css@4.2.6': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 source-map: 0.6.1 '@types/debug@4.1.7': @@ -10897,7 +10900,7 @@ snapshots: '@types/estree@0.0.39': {} - '@types/estree@1.0.8': {} + '@types/estree@1.0.9': {} '@types/expect@1.20.4': {} @@ -10905,25 +10908,25 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/glob-stream@8.0.3': dependencies: - '@types/node': 25.5.0 - '@types/picomatch': 4.0.2 + '@types/node': 25.7.0 + '@types/picomatch': 4.0.3 '@types/streamx': 2.9.5 '@types/glob-watcher@5.0.2': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/gulp-if@0.0.34': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/vinyl': 2.0.7 '@types/gulp-match@1.1.2': @@ -10933,7 +10936,7 @@ snapshots: '@types/gulp-sourcemaps@0.0.35': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/vinyl': 2.0.7 '@types/gulp@4.0.10': @@ -10981,11 +10984,11 @@ snapshots: '@types/merge2@1.4.0': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/minimatch@6.0.0': dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 '@types/minimist@1.2.2': {} @@ -10995,22 +10998,22 @@ snapshots: '@types/node-fetch@2.6.4': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 form-data: 3.0.4 '@types/node@12.20.55': {} '@types/node@14.18.63': {} - '@types/node@25.5.0': + '@types/node@25.7.0': dependencies: - undici-types: 7.18.2 + undici-types: 7.21.0 '@types/normalize-package-data@2.4.4': {} '@types/offscreencanvas@2019.6.4': {} - '@types/picomatch@4.0.2': {} + '@types/picomatch@4.0.3': {} '@types/prettier@2.7.3': {} @@ -11041,7 +11044,7 @@ snapshots: '@types/resolve@0.0.8': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/resolve@1.20.2': {} @@ -11055,7 +11058,7 @@ snapshots: '@types/streamx@2.9.5': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/terser@3.12.0': dependencies: @@ -11063,26 +11066,26 @@ snapshots: '@types/through2@2.0.38': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/undertaker-registry@1.0.4': {} '@types/undertaker@1.2.8': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/undertaker-registry': 1.0.4 async-done: 1.3.2 '@types/vinyl-fs@3.0.7': dependencies: '@types/glob-stream': 8.0.3 - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/vinyl': 2.0.7 '@types/vinyl@2.0.7': dependencies: '@types/expect': 1.20.4 - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/yargs-parser@21.0.0': {} @@ -11105,7 +11108,7 @@ snapshots: functional-red-black-tree: 1.0.1 ignore: 5.3.2 regexpp: 3.2.0 - semver: 7.7.4 + semver: 7.8.0 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11149,7 +11152,7 @@ snapshots: debug: 4.3.4(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.7.4 + semver: 7.8.0 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11176,17 +11179,18 @@ snapshots: '@ungap/promise-all-settled@1.1.2': {} - '@visactor/vchart@2.0.13-alpha.10': + '@visactor/vchart@2.1.0-alpha.2': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender-animate': 1.0.37-alpha.1 - '@visactor/vrender-components': 1.0.37-alpha.1 - '@visactor/vrender-core': 1.0.37-alpha.1 - '@visactor/vrender-kits': 1.0.37-alpha.1 + '@visactor/vrender': 1.1.0-alpha.18 + '@visactor/vrender-animate': 1.1.0-alpha.18 + '@visactor/vrender-components': 1.1.0-alpha.18 + '@visactor/vrender-core': 1.1.0-alpha.18 + '@visactor/vrender-kits': 1.1.0-alpha.18 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension': 2.0.13-alpha.10 + '@visactor/vutils-extension': 2.1.0-alpha.2 '@visactor/vdataset@1.0.23': dependencies: @@ -11216,70 +11220,50 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.0.37-alpha.1': + '@visactor/vrender-animate@1.1.0-alpha.18': dependencies: - '@visactor/vrender-core': 1.0.37-alpha.1 - '@visactor/vutils': 1.0.23 - - '@visactor/vrender-animate@1.0.44': - dependencies: - '@visactor/vrender-core': 1.0.44 - '@visactor/vutils': 1.0.23 - - '@visactor/vrender-components@1.0.37-alpha.1': - dependencies: - '@visactor/vrender-animate': 1.0.37-alpha.1 - '@visactor/vrender-core': 1.0.37-alpha.1 - '@visactor/vrender-kits': 1.0.37-alpha.1 - '@visactor/vscale': 1.0.23 + '@visactor/vrender-core': 1.1.0-alpha.18 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.0.44': + '@visactor/vrender-components@1.1.0-alpha.18': dependencies: - '@visactor/vrender-animate': 1.0.44 - '@visactor/vrender-core': 1.0.44 - '@visactor/vrender-kits': 1.0.44 + '@visactor/vrender-animate': 1.1.0-alpha.18 + '@visactor/vrender-core': 1.1.0-alpha.18 + '@visactor/vrender-kits': 1.1.0-alpha.18 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.0.37-alpha.1': + '@visactor/vrender-core@1.1.0-alpha.18': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-core@1.0.44': - dependencies: - '@visactor/vutils': 1.0.23 - color-convert: 2.0.1 - - '@visactor/vrender-kits@1.0.37-alpha.1': + '@visactor/vrender-kits@1.1.0-alpha.18': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.0.37-alpha.1 + '@visactor/vrender-core': 1.1.0-alpha.18 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender-kits@1.0.44': + '@visactor/vrender@1.1.0-alpha.18': dependencies: - '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.0.44 - '@visactor/vutils': 1.0.23 - gifuct-js: 2.1.2 - lottie-web: 5.13.0 - roughjs: 4.6.6 + '@visactor/vrender-animate': 1.1.0-alpha.18 + '@visactor/vrender-components': 1.1.0-alpha.18 + '@visactor/vrender-core': 1.1.0-alpha.18 + '@visactor/vrender-kits': 1.1.0-alpha.18 '@visactor/vscale@1.0.23': dependencies: '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension@2.0.13-alpha.10': + '@visactor/vutils-extension@2.0.22': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension@2.0.20': + '@visactor/vutils-extension@2.1.0-alpha.2': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 @@ -11290,21 +11274,21 @@ snapshots: '@turf/invariant': 6.5.0 eventemitter3: 4.0.7 - '@vitejs/plugin-react@3.1.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))': + '@vitejs/plugin-react@3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))': dependencies: '@babel/core': 7.20.12 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.20.12) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.20.12) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.31(typescript@4.9.5))': + '@vitejs/plugin-vue@5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5))': dependencies: - vite: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vue: 3.5.31(typescript@4.9.5) + vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vue: 3.5.34(typescript@4.9.5) '@vitest/expect@0.30.1': dependencies: @@ -11335,59 +11319,59 @@ snapshots: loupe: 2.3.7 pretty-format: 27.5.1 - '@vue/compiler-core@3.5.31': + '@vue/compiler-core@3.5.34': dependencies: - '@babel/parser': 7.29.2 - '@vue/shared': 3.5.31 + '@babel/parser': 7.29.3 + '@vue/shared': 3.5.34 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.31': + '@vue/compiler-dom@3.5.34': dependencies: - '@vue/compiler-core': 3.5.31 - '@vue/shared': 3.5.31 + '@vue/compiler-core': 3.5.34 + '@vue/shared': 3.5.34 - '@vue/compiler-sfc@3.5.31': + '@vue/compiler-sfc@3.5.34': dependencies: - '@babel/parser': 7.29.2 - '@vue/compiler-core': 3.5.31 - '@vue/compiler-dom': 3.5.31 - '@vue/compiler-ssr': 3.5.31 - '@vue/shared': 3.5.31 + '@babel/parser': 7.29.3 + '@vue/compiler-core': 3.5.34 + '@vue/compiler-dom': 3.5.34 + '@vue/compiler-ssr': 3.5.34 + '@vue/shared': 3.5.34 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.8 + postcss: 8.5.14 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.31': + '@vue/compiler-ssr@3.5.34': dependencies: - '@vue/compiler-dom': 3.5.31 - '@vue/shared': 3.5.31 + '@vue/compiler-dom': 3.5.34 + '@vue/shared': 3.5.34 - '@vue/reactivity@3.5.31': + '@vue/reactivity@3.5.34': dependencies: - '@vue/shared': 3.5.31 + '@vue/shared': 3.5.34 - '@vue/runtime-core@3.5.31': + '@vue/runtime-core@3.5.34': dependencies: - '@vue/reactivity': 3.5.31 - '@vue/shared': 3.5.31 + '@vue/reactivity': 3.5.34 + '@vue/shared': 3.5.34 - '@vue/runtime-dom@3.5.31': + '@vue/runtime-dom@3.5.34': dependencies: - '@vue/reactivity': 3.5.31 - '@vue/runtime-core': 3.5.31 - '@vue/shared': 3.5.31 + '@vue/reactivity': 3.5.34 + '@vue/runtime-core': 3.5.34 + '@vue/shared': 3.5.34 csstype: 3.2.3 - '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@4.9.5))': + '@vue/server-renderer@3.5.34(vue@3.5.34(typescript@4.9.5))': dependencies: - '@vue/compiler-ssr': 3.5.31 - '@vue/shared': 3.5.31 - vue: 3.5.31(typescript@4.9.5) + '@vue/compiler-ssr': 3.5.34 + '@vue/shared': 3.5.34 + vue: 3.5.34(typescript@4.9.5) - '@vue/shared@3.5.31': {} + '@vue/shared@3.5.34': {} abab@2.0.6: {} @@ -11442,7 +11426,7 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv@6.14.0: + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -11589,10 +11573,10 @@ snapshots: array-includes@3.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -11625,24 +11609,24 @@ snapshots: array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.reduce@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-array-method-boxes-properly: 1.0.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 @@ -11651,9 +11635,9 @@ snapshots: arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -11695,8 +11679,8 @@ snapshots: autoprefixer@10.4.13(postcss@8.4.21): dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001782 + browserslist: 4.28.2 + caniuse-lite: 1.0.30001792 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -11711,13 +11695,15 @@ snapshots: aws4@1.13.2: {} - axios@1.14.0: + axios@1.16.1: dependencies: - follow-redirects: 1.15.11 + follow-redirects: 1.16.0 form-data: 4.0.5 + https-proxy-agent: 5.0.1 proxy-from-env: 2.1.0 transitivePeerDependencies: - debug + - supports-color b-tween@0.3.3: {} @@ -11775,7 +11761,7 @@ snapshots: dependencies: '@babel/helper-plugin-utils': 7.28.6 '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: @@ -11794,7 +11780,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.20.12): dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/core': 7.20.12 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12) semver: 6.3.1 @@ -11875,7 +11861,7 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 - baseline-browser-mapping@2.10.12: {} + baseline-browser-mapping@2.10.29: {} bcrypt-pbkdf@1.0.2: dependencies: @@ -11916,16 +11902,16 @@ snapshots: boolean@3.2.0: optional: true - brace-expansion@1.1.13: + brace-expansion@1.1.14: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.3: + brace-expansion@2.1.0: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.5: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -11954,13 +11940,13 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.28.1: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.12 - caniuse-lite: 1.0.30001782 - electron-to-chromium: 1.5.328 - node-releases: 2.0.36 - update-browserslist-db: 1.2.3(browserslist@4.28.1) + baseline-browser-mapping: 2.10.29 + caniuse-lite: 1.0.30001792 + electron-to-chromium: 1.5.355 + node-releases: 2.0.44 + update-browserslist-db: 1.2.3(browserslist@4.28.2) bs-logger@0.2.6: dependencies: @@ -12028,7 +12014,7 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bind@1.0.9: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -12050,12 +12036,12 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001782 + browserslist: 4.28.2 + caniuse-lite: 1.0.30001792 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001782: {} + caniuse-lite@1.0.30001792: {} capture-exit@2.0.0: dependencies: @@ -12361,7 +12347,7 @@ snapshots: core-js-compat@3.49.0: dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 core-util-is@1.0.2: {} @@ -12634,15 +12620,15 @@ snapshots: define-property@0.2.5: dependencies: - is-descriptor: 0.1.7 + is-descriptor: 0.1.8 define-property@1.0.0: dependencies: - is-descriptor: 1.0.3 + is-descriptor: 1.0.4 define-property@2.0.2: dependencies: - is-descriptor: 1.0.3 + is-descriptor: 1.0.4 isobject: 3.0.1 delayed-stream@1.0.0: {} @@ -12753,7 +12739,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.328: {} + electron-to-chromium@1.5.355: {} electron@11.5.0: dependencies: @@ -12778,10 +12764,10 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.20.1: + enhanced-resolve@5.21.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.2 + tapable: 2.3.3 entities@2.1.0: {} @@ -12802,12 +12788,12 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.1: + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 @@ -12826,7 +12812,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.3 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -12844,7 +12830,7 @@ snapshots: object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 @@ -12874,11 +12860,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.3 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.2 + hasown: 2.0.3 es-to-primitive@1.3.0: dependencies: @@ -13070,7 +13056,7 @@ snapshots: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.7.4 + semver: 7.8.0 vue-eslint-parser: 9.4.3(eslint@8.18.0) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -13099,7 +13085,7 @@ snapshots: dependencies: '@eslint/eslintrc': 1.4.1 '@humanwhocodes/config-array': 0.9.5 - ajv: 6.14.0 + ajv: 6.15.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.3.4(supports-color@9.4.0) @@ -13432,7 +13418,7 @@ snapshots: dependencies: tslib: 2.3.1 - follow-redirects@1.15.11: {} + follow-redirects@1.16.0: {} for-each@0.3.5: dependencies: @@ -13459,7 +13445,7 @@ snapshots: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.2 + hasown: 2.0.3 mime-types: 2.1.35 form-data@4.0.5: @@ -13467,7 +13453,7 @@ snapshots: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.2 + hasown: 2.0.3 mime-types: 2.1.35 fraction.js@4.3.7: {} @@ -13485,7 +13471,7 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.0 + jsonfile: 6.2.1 universalify: 2.0.1 fs-extra@8.1.0: @@ -13504,7 +13490,7 @@ snapshots: fsevents@1.2.13: dependencies: bindings: 1.5.0 - nan: 2.26.2 + nan: 2.27.0 optional: true fsevents@2.3.3: @@ -13521,11 +13507,11 @@ snapshots: function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.2 + hasown: 2.0.3 is-callable: 1.2.7 functional-red-black-tree@1.0.1: {} @@ -13577,7 +13563,7 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.3 math-intrinsics: 1.1.0 get-package-type@0.1.0: {} @@ -13795,7 +13781,7 @@ snapshots: gulp-replace@1.1.4: dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@types/vinyl': 2.0.7 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -13842,7 +13828,7 @@ snapshots: har-validator@5.1.5: dependencies: - ajv: 6.14.0 + ajv: 6.15.0 har-schema: 2.0.0 has-ansi@2.0.0: @@ -13888,7 +13874,7 @@ snapshots: is-number: 3.0.0 kind-of: 4.0.0 - hasown@2.0.2: + hasown@2.0.3: dependencies: function-bind: 1.1.2 @@ -14016,7 +14002,7 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.2 + hasown: 2.0.3 side-channel: 1.1.0 internmap@2.0.3: {} @@ -14036,13 +14022,13 @@ snapshots: is-relative: 1.0.0 is-windows: 1.0.2 - is-accessor-descriptor@1.0.1: + is-accessor-descriptor@1.0.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.3 is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 @@ -14087,13 +14073,13 @@ snapshots: dependencies: ci-info: 2.0.0 - is-core-module@2.16.1: + is-core-module@2.16.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.3 is-data-descriptor@1.0.1: dependencies: - hasown: 2.0.2 + hasown: 2.0.3 is-data-view@1.0.2: dependencies: @@ -14106,14 +14092,14 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-descriptor@0.1.7: + is-descriptor@0.1.8: dependencies: - is-accessor-descriptor: 1.0.1 + is-accessor-descriptor: 1.0.2 is-data-descriptor: 1.0.1 - is-descriptor@1.0.3: + is-descriptor@1.0.4: dependencies: - is-accessor-descriptor: 1.0.1 + is-accessor-descriptor: 1.0.2 is-data-descriptor: 1.0.1 is-docker@2.2.1: @@ -14194,14 +14180,14 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 is-regex@1.2.1: dependencies: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.3 is-relative@1.0.0: dependencies: @@ -14287,7 +14273,7 @@ snapshots: istanbul-lib-instrument@3.3.0: dependencies: '@babel/generator': 7.21.1 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -14299,7 +14285,7 @@ snapshots: istanbul-lib-instrument@4.0.3: dependencies: '@babel/core': 7.20.12 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: @@ -14308,8 +14294,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.20.12 - '@babel/parser': 7.29.2 - '@istanbuljs/schema': 0.1.3 + '@babel/parser': 7.29.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: @@ -14345,9 +14331,9 @@ snapshots: execa: 4.1.0 throat: 5.0.0 - jest-cli@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + jest-cli@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: - '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 chalk: 4.1.2 @@ -14355,7 +14341,7 @@ snapshots: graceful-fs: 4.2.11 import-local: 3.2.0 is-ci: 2.0.0 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-util: 26.6.2 jest-validate: 26.6.2 prompts: 2.4.2 @@ -14389,10 +14375,10 @@ snapshots: transitivePeerDependencies: - supports-color - jest-config@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + jest-config@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: '@babel/core': 7.20.12 - '@jest/test-sequencer': 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + '@jest/test-sequencer': 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) '@jest/types': 26.6.2 babel-jest: 26.6.3(@babel/core@7.20.12) chalk: 4.1.2 @@ -14402,7 +14388,7 @@ snapshots: jest-environment-jsdom: 26.6.2 jest-environment-node: 26.6.2 jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-jasmine2: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-util: 26.6.2 @@ -14410,7 +14396,7 @@ snapshots: micromatch: 4.0.8 pretty-format: 26.6.2 optionalDependencies: - ts-node: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) transitivePeerDependencies: - bufferutil - canvas @@ -14455,10 +14441,10 @@ snapshots: jest-util: 26.6.2 pretty-format: 26.6.2 - jest-electron@0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))): + jest-electron@0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))): dependencies: electron: 11.5.0 - jest: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-haste-map: 24.9.0 jest-message-util: 24.9.0 jest-mock: 24.9.0 @@ -14487,7 +14473,7 @@ snapshots: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -14512,7 +14498,7 @@ snapshots: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -14540,7 +14526,7 @@ snapshots: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.9 - '@types/node': 25.5.0 + '@types/node': 25.7.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14575,14 +14561,14 @@ snapshots: transitivePeerDependencies: - supports-color - jest-jasmine2@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + jest-jasmine2@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: '@babel/traverse': 7.29.0 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -14590,7 +14576,7 @@ snapshots: jest-each: 26.6.2 jest-matcher-utils: 26.6.2 jest-message-util: 26.6.2 - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-snapshot: 26.6.2 jest-util: 26.6.2 pretty-format: 26.6.2 @@ -14656,7 +14642,7 @@ snapshots: jest-mock@26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 jest-pnp-resolver@1.2.3(jest-resolve@24.9.0): optionalDependencies: @@ -14692,7 +14678,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@26.6.2) jest-util: 26.6.2 read-pkg-up: 7.0.1 - resolve: 1.22.11 + resolve: 1.22.12 slash: 3.0.0 jest-runner@24.9.0: @@ -14719,24 +14705,24 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runner@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + jest-runner@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: '@jest/console': 26.6.2 '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-docblock: 26.0.0 jest-haste-map: 26.6.2 jest-leak-detector: 26.6.2 jest-message-util: 26.6.2 jest-resolve: 26.6.2 - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-util: 26.6.2 jest-worker: 26.6.2 source-map-support: 0.5.21 @@ -14776,7 +14762,7 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runtime@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + jest-runtime@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: '@jest/console': 26.6.2 '@jest/environment': 26.6.2 @@ -14793,7 +14779,7 @@ snapshots: exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-mock: 26.6.2 @@ -14816,7 +14802,7 @@ snapshots: jest-serializer@26.6.2: dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 graceful-fs: 4.2.11 jest-snapshot@24.9.0: @@ -14874,7 +14860,7 @@ snapshots: jest-util@26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -14902,7 +14888,7 @@ snapshots: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.5.0 + '@types/node': 25.7.0 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -14915,15 +14901,15 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 merge-stream: 2.0.0 supports-color: 7.2.0 - jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: - '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) import-local: 3.2.0 - jest-cli: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest-cli: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) transitivePeerDependencies: - bufferutil - canvas @@ -15047,7 +15033,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.0: + jsonfile@6.2.1: dependencies: universalify: 2.0.1 optionalDependencies: @@ -15158,7 +15144,7 @@ snapshots: is-plain-object: 2.0.4 object.map: 1.0.1 rechoir: 0.6.2 - resolve: 1.22.11 + resolve: 1.22.12 lilconfig@2.0.4: {} @@ -15340,7 +15326,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.4 + semver: 7.8.0 make-error@1.3.6: {} @@ -15380,7 +15366,7 @@ snapshots: dependencies: findup-sync: 2.0.0 micromatch: 3.1.10 - resolve: 1.22.11 + resolve: 1.22.12 stack-trace: 0.0.10 matcher@3.0.0: @@ -15449,21 +15435,21 @@ snapshots: mimic-response@1.0.1: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 minimatch@3.0.4: dependencies: - brace-expansion: 1.1.13 + brace-expansion: 1.1.14 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.13 + brace-expansion: 1.1.14 minimatch@5.1.9: dependencies: - brace-expansion: 2.0.3 + brace-expansion: 2.1.0 minimist@1.2.0: {} @@ -15487,7 +15473,7 @@ snapshots: acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.6.3 + ufo: 1.6.4 mocha@9.1.3: dependencies: @@ -15524,12 +15510,12 @@ snapshots: mute-stdout@1.0.1: {} - nan@2.26.2: + nan@2.27.0: optional: true nanoid@3.1.25: {} - nanoid@3.3.11: {} + nanoid@3.3.12: {} nanomatch@1.2.13: dependencies: @@ -15580,12 +15566,12 @@ snapshots: which: 2.0.2 optional: true - node-releases@2.0.36: {} + node-releases@2.0.44: {} normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.11 + resolve: 1.22.12 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -15649,7 +15635,7 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -15665,32 +15651,32 @@ snapshots: object.entries@1.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 object.getownpropertydescriptors@2.1.9: dependencies: array.prototype.reduce: 1.0.8 - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 gopd: 1.2.0 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 object.hasown@1.1.4: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 object.map@1.0.1: @@ -15709,7 +15695,7 @@ snapshots: object.values@1.2.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -15982,7 +15968,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.21 @@ -15990,7 +15976,7 @@ snapshots: postcss-convert-values@5.1.3(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 postcss: 8.4.21 postcss-value-parser: 4.2.0 @@ -16010,13 +15996,13 @@ snapshots: dependencies: postcss: 8.4.21 - postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: lilconfig: 2.1.0 yaml: 1.10.3 optionalDependencies: postcss: 8.4.21 - ts-node: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) postcss-merge-longhand@5.1.7(postcss@8.4.21): dependencies: @@ -16026,7 +16012,7 @@ snapshots: postcss-merge-rules@5.1.4(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 @@ -16046,7 +16032,7 @@ snapshots: postcss-minify-params@5.1.4(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 @@ -16120,7 +16106,7 @@ snapshots: postcss-normalize-unicode@5.1.1(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 postcss: 8.4.21 postcss-value-parser: 4.2.0 @@ -16143,7 +16129,7 @@ snapshots: postcss-reduce-initial@5.1.2(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 caniuse-api: 3.0.0 postcss: 8.4.21 @@ -16182,13 +16168,13 @@ snapshots: postcss@8.4.21: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.8: + postcss@8.5.14: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -16246,7 +16232,7 @@ snapshots: proto-list@1.2.4: optional: true - protocol-buffers-schema@3.6.0: {} + protocol-buffers-schema@3.6.1: {} proxy-from-env@2.1.0: {} @@ -16431,13 +16417,13 @@ snapshots: rechoir@0.6.2: dependencies: - resolve: 1.22.11 + resolve: 1.22.12 reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -16461,7 +16447,7 @@ snapshots: regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 @@ -16484,7 +16470,7 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.0 + regjsparser: 0.13.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 @@ -16492,7 +16478,7 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.13.0: + regjsparser@0.13.1: dependencies: jsesc: 3.1.0 @@ -16595,22 +16581,23 @@ snapshots: resolve-protobuf-schema@2.1.0: dependencies: - protocol-buffers-schema: 3.6.0 + protocol-buffers-schema: 3.6.1 resolve-url@0.2.1: {} resolve@1.1.7: {} - resolve@1.22.11: + resolve@1.22.12: dependencies: - is-core-module: 2.16.1 + es-errors: 1.3.0 + is-core-module: 2.16.2 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.6: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.1 + is-core-module: 2.16.2 node-exports-info: 1.6.0 object-keys: 1.1.1 path-parse: 1.0.7 @@ -16654,11 +16641,11 @@ snapshots: '@types/resolve': 0.0.8 builtin-modules: 3.3.0 is-module: 1.0.0 - resolve: 1.22.11 + resolve: 1.22.12 rollup: 3.20.5 rollup-pluginutils: 2.8.2 - rollup-plugin-postcss@4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)): + rollup-plugin-postcss@4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 @@ -16667,10 +16654,10 @@ snapshots: p-queue: 6.6.2 pify: 5.0.0 postcss: 8.4.21 - postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) postcss-modules: 4.3.1(postcss@8.4.21) promise.series: 0.2.0 - resolve: 1.22.11 + resolve: 1.22.12 rollup-pluginutils: 2.8.2 safe-identifier: 0.4.2 style-inject: 0.3.0 @@ -16683,7 +16670,7 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 10.1.0 rollup: 3.20.5 - semver: 7.7.4 + semver: 7.8.0 tslib: 2.8.1 typescript: 4.9.5 @@ -16718,9 +16705,9 @@ snapshots: dependencies: tslib: 2.3.1 - safe-array-concat@1.1.3: + safe-array-concat@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -16794,7 +16781,7 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.7.4: {} + semver@7.8.0: {} serialize-error@7.0.1: dependencies: @@ -16868,7 +16855,7 @@ snapshots: shellwords@0.1.1: optional: true - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -16892,7 +16879,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -17100,10 +17087,10 @@ snapshots: string.prototype.matchall@4.0.12: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -17116,24 +17103,24 @@ snapshots: string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -17187,7 +17174,7 @@ snapshots: stylehacks@5.1.1(postcss@8.4.21): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 postcss: 8.4.21 postcss-selector-parser: 6.1.2 @@ -17241,7 +17228,7 @@ snapshots: symbol-tree@3.2.4: {} - tapable@2.3.2: {} + tapable@2.3.3: {} tar-stream@2.2.0: dependencies: @@ -17279,7 +17266,7 @@ snapshots: test-exclude@6.0.0: dependencies: - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 glob: 7.2.3 minimatch: 3.1.5 @@ -17396,12 +17383,12 @@ snapshots: traverse@0.3.9: {} - ts-jest@26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 buffer-from: 1.1.2 fast-json-stable-stringify: 2.1.0 - jest: 26.6.3(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5)) + jest: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) jest-util: 26.6.2 json5: 2.2.3 lodash: 4.17.21 @@ -17414,19 +17401,19 @@ snapshots: ts-loader@9.2.6(typescript@4.9.5): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.20.1 + enhanced-resolve: 5.21.3 micromatch: 4.0.8 semver: 7.3.4 typescript: 4.9.5 - ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5): + ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.5.0 + '@types/node': 25.7.0 acorn: 8.16.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -17453,7 +17440,7 @@ snapshots: glob: 7.2.3 js-yaml: 3.14.2 minimatch: 3.1.5 - resolve: 1.22.11 + resolve: 1.22.12 semver: 5.7.2 tslib: 1.14.1 tsutils: 2.29.0(typescript@4.9.5) @@ -17469,10 +17456,10 @@ snapshots: tslib: 1.14.1 typescript: 4.9.5 - ttypescript@1.5.13(ts-node@10.9.0(@types/node@25.5.0)(typescript@4.9.5))(typescript@4.9.5): + ttypescript@1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5): dependencies: - resolve: 1.22.11 - ts-node: 10.9.0(@types/node@25.5.0)(typescript@4.9.5) + resolve: 1.22.12 + ts-node: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) typescript: 4.9.5 tunnel-agent@0.6.0: @@ -17517,7 +17504,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -17526,7 +17513,7 @@ snapshots: typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -17535,7 +17522,7 @@ snapshots: typed-array-length@1.0.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 @@ -17561,7 +17548,7 @@ snapshots: uc.micro@1.0.6: {} - ufo@1.6.3: {} + ufo@1.6.4: {} unbox-primitive@1.1.0: dependencies: @@ -17587,7 +17574,7 @@ snapshots: object.reduce: 1.0.1 undertaker-registry: 1.0.1 - undici-types@7.18.2: {} + undici-types@7.21.0: {} unicode-canonical-property-names-ecmascript@1.0.4: {} @@ -17649,9 +17636,9 @@ snapshots: upath@1.2.0: {} - update-browserslist-db@1.2.3(browserslist@4.28.1): + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -17691,7 +17678,7 @@ snapshots: util.promisify@1.1.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 @@ -17702,7 +17689,7 @@ snapshots: has-proto: 1.2.0 has-symbols: 1.1.0 object.getownpropertydescriptors: 2.1.9 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 uuid@3.4.0: {} @@ -17774,14 +17761,14 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vite-node@0.30.1(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): + vite-node@0.30.1(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@9.4.0) mlly: 1.8.2 pathe: 1.1.2 picocolors: 1.1.1 - vite: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) transitivePeerDependencies: - '@types/node' - less @@ -17791,22 +17778,22 @@ snapshots: - supports-color - terser - vite-plugin-markdown@2.2.0(vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)): + vite-plugin-markdown@2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)): dependencies: domhandler: 4.3.1 front-matter: 4.0.2 htmlparser2: 6.1.0 markdown-it: 12.3.2 - vite: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vite@3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): + vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): dependencies: esbuild: 0.15.18 postcss: 8.4.21 - resolve: 1.22.11 + resolve: 1.22.12 rollup: 2.80.0 optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 25.7.0 fsevents: 2.3.3 less: 4.1.3 sass: 1.43.5 @@ -17816,7 +17803,7 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 25.5.0 + '@types/node': 25.7.0 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 @@ -17837,8 +17824,8 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.4.0 - vite: 3.2.6(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vite-node: 0.30.1(@types/node@25.5.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite-node: 0.30.1(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) why-is-node-running: 2.3.0 optionalDependencies: jsdom: 16.7.0 @@ -17859,17 +17846,17 @@ snapshots: espree: 9.6.1 esquery: 1.7.0 lodash: 4.17.21 - semver: 7.7.4 + semver: 7.8.0 transitivePeerDependencies: - supports-color - vue@3.5.31(typescript@4.9.5): + vue@3.5.34(typescript@4.9.5): dependencies: - '@vue/compiler-dom': 3.5.31 - '@vue/compiler-sfc': 3.5.31 - '@vue/runtime-dom': 3.5.31 - '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@4.9.5)) - '@vue/shared': 3.5.31 + '@vue/compiler-dom': 3.5.34 + '@vue/compiler-sfc': 3.5.34 + '@vue/runtime-dom': 3.5.34 + '@vue/server-renderer': 3.5.34(vue@3.5.34(typescript@4.9.5)) + '@vue/shared': 3.5.34 optionalDependencies: typescript: 4.9.5 @@ -17962,7 +17949,7 @@ snapshots: which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 for-each: 0.3.5 get-proto: 1.0.1 diff --git a/docs/package.json b/docs/package.json index 42bdb73577..39897a6ce5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -22,7 +22,7 @@ "@visactor/vtable-search": "workspace:*", "@visactor/vtable-sheet": "workspace:*", "buble": "^0.20.0", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "markdown-it": "^13.0.0", "highlight.js": "^11.8.0", "axios": "^1.4.0", @@ -54,4 +54,4 @@ "globby": "11.1.0", "chokidar": "^3.5.0" } -} \ No newline at end of file +} diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index 116be3c1b5..859bf0f6ac 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -50,7 +50,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index b24f079d74..aff1628e81 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -65,7 +65,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index 4633b2fe76..c5d3c3a923 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -46,7 +46,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable-gantt/src/scenegraph/scenegraph.ts b/packages/vtable-gantt/src/scenegraph/scenegraph.ts index ec6e05f6cd..32d507a950 100644 --- a/packages/vtable-gantt/src/scenegraph/scenegraph.ts +++ b/packages/vtable-gantt/src/scenegraph/scenegraph.ts @@ -1,5 +1,5 @@ import type { Stage } from '@visactor/vtable/es/vrender'; -import { container, Group, vglobal, createStage } from '@visactor/vtable/es/vrender'; +import { container, Group, vglobal, createStageFromVRenderApp } from '@visactor/vtable/es/vrender'; import { Grid } from './grid'; import type { Gantt } from '../Gantt'; import { Env } from '../env'; @@ -35,6 +35,7 @@ export class Scenegraph { taskCreationButton: TaskCreationButton; toolTip: ToolTip; stage: Stage; + releaseVRenderAppRef?: () => void; tableGroupWidth: number; tableGroupHeight: number; constructor(gantt: Gantt) { @@ -52,23 +53,28 @@ export class Scenegraph { width = gantt.canvas.width; height = gantt.canvas.height; } - this.stage = createStage({ - canvas: gantt.canvas, - width, - height, - disableDirtyBounds: false, - background: gantt.parsedOptions.underlayBackgroundColor, - // dpr: gantt.internalProps.pixelRatio, - enableLayout: true, - autoRender: false, - context: { - appName: 'vtable' + const { stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas: gantt.canvas, + width, + height, + disableDirtyBounds: false, + background: gantt.parsedOptions.underlayBackgroundColor, + // dpr: gantt.internalProps.pixelRatio, + enableLayout: true, + autoRender: false, + context: { + appName: 'vtable' + }, + pluginList: ['poptipForText'] + // afterRender: () => { + // this._gantt.fireListeners('after_render', null); + // } }, - pluginList: ['poptipForText'] - // afterRender: () => { - // this._gantt.fireListeners('after_render', null); - // } - }); + { mode: Env.mode === 'node' ? 'node' : 'browser', scope: 'vtable-gantt' } + ); + this.stage = stage as Stage; + this.releaseVRenderAppRef = releaseAppRef; (this.stage as any).gantt = this._gantt; (this.stage as any).table = this._gantt; // 为了使用bindDebugTool this.stage.defaultLayer.setTheme({ @@ -282,7 +288,14 @@ export class Scenegraph { this.updateNextFrame(); } release() { - this.stage.release(); + const releaseAppRef = this.releaseVRenderAppRef; + this.releaseVRenderAppRef = undefined; + + try { + this.stage.release(); + } finally { + releaseAppRef?.(); + } } showTaskCreationButton(x: number, y: number, dateIndex: number) { diff --git a/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts b/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts index b28805eff9..2c76efb3ac 100644 --- a/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts +++ b/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts @@ -1,5 +1,5 @@ import type { Gantt } from '../Gantt'; -import { DataZoom, createStage, vglobal } from '@visactor/vtable/es/vrender'; +import { DataZoom, createStageFromVRenderApp, vglobal } from '@visactor/vtable/es/vrender'; export interface DataZoomConfig { /** DataZoom 容器 ID(可选,如果不提供会自动从 Gantt 实例获取) */ @@ -35,6 +35,7 @@ export class DataZoomIntegration { private gantt: Gantt; private dataZoomAxis: DataZoom; private stage: any; + private releaseVRenderAppRef?: () => void; private canvas: HTMLCanvasElement; private isUpdatingFromDataZoom = false; private isUpdatingFromGantt = false; @@ -179,12 +180,17 @@ export class DataZoomIntegration { dataZoomWrapper.appendChild(this.canvas); ganttContainer.appendChild(dataZoomWrapper); - this.stage = createStage({ - canvas: this.canvas, - width, - height, - autoRender: true - }); + const { stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas: this.canvas, + width, + height, + autoRender: true + }, + { mode: 'browser', scope: 'vtable-gantt-datazoom' } + ); + this.stage = stage; + this.releaseVRenderAppRef = releaseAppRef; // 创建 DataZoom 实例 this.dataZoomAxis = new DataZoom({ @@ -620,7 +626,14 @@ export class DataZoomIntegration { } if (this.stage) { - this.stage.release(); + const releaseAppRef = this.releaseVRenderAppRef; + this.releaseVRenderAppRef = undefined; + + try { + this.stage.release(); + } finally { + releaseAppRef?.(); + } } } } diff --git a/packages/vtable-plugins/package.json b/packages/vtable-plugins/package.json index aa1760334b..62434b6e75 100644 --- a/packages/vtable-plugins/package.json +++ b/packages/vtable-plugins/package.json @@ -64,7 +64,7 @@ "@visactor/vtable": "workspace:*", "@visactor/vtable-editors": "workspace:*", "@visactor/vtable-gantt": "workspace:*", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index 29621a1dee..1155e36665 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -42,7 +42,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable/__tests__/animation-appear.test.ts b/packages/vtable/__tests__/animation-appear.test.ts new file mode 100644 index 0000000000..5bb2ebbdf9 --- /dev/null +++ b/packages/vtable/__tests__/animation-appear.test.ts @@ -0,0 +1,108 @@ +// @ts-nocheck + +import { dealWithAnimationAppear } from '../src/scenegraph/animation/appear'; + +type MockAnimationAppear = Partial<{ + duration: number; + delay: number; + type: 'all' | 'one-by-one'; + direction: 'row' | 'column'; +}>; + +interface MockChild { + attribute: Record; + setAttribute: jest.Mock; + animate: jest.Mock; +} + +function createAnimation() { + const animation = { + wait: jest.fn(() => animation), + to: jest.fn(() => animation), + from: jest.fn(() => animation) + }; + + return animation; +} + +function createChild(opacity?: number) { + const animation = createAnimation(); + const child = { + attribute: opacity === undefined ? {} : { opacity }, + setAttribute: jest.fn((key: string, value: unknown) => { + child.attribute[key] = value; + }), + animate: jest.fn(() => animation) + }; + + return { child, animation }; +} + +function createTable(children: MockChild[], animationAppear: MockAnimationAppear = {}) { + const cellGroup = { + role: 'cell', + forEachChildren: (callback: (child: MockChild) => void) => { + children.forEach(callback); + } + }; + + return { + options: { + animationAppear: { + duration: 1000, + delay: 500, + type: 'one-by-one', + direction: 'row', + ...animationAppear + } + }, + scenegraph: { + proxy: { + colEnd: 0, + rowEnd: 2 + }, + highPerformanceGetCell: jest.fn((_col: number, row: number) => (row === 2 ? cellGroup : null)) + } + }; +} + +describe('dealWithAnimationAppear', () => { + it('keeps the final opacity as static state and animates from hidden state', () => { + const first = createChild(); + const second = createChild(0.4); + const table = createTable([first.child, second.child]); + + dealWithAnimationAppear(table as Parameters[0]); + + expect(first.child.attribute.opacity).toBe(1); + expect(second.child.attribute.opacity).toBe(0.4); + + expect(first.animation.wait).toHaveBeenCalledWith(1000); + expect(first.animation.from).toHaveBeenCalledWith({ opacity: 0 }, 1000, 'linear'); + expect(first.animation.to).not.toHaveBeenCalled(); + + expect(second.animation.wait).toHaveBeenCalledWith(1000); + expect(second.animation.from).toHaveBeenCalledWith({ opacity: 0 }, 1000, 'linear'); + expect(second.animation.to).not.toHaveBeenCalled(); + }); + + it('uses the column index for one-by-one column animation delays', () => { + const { child, animation } = createChild(); + const table = createTable([child], { direction: 'column' }); + table.scenegraph.proxy.colEnd = 3; + table.scenegraph.proxy.rowEnd = 0; + table.scenegraph.highPerformanceGetCell.mockImplementation((col: number) => + col === 3 + ? { + role: 'cell', + forEachChildren: (callback: (child: MockChild) => void) => callback(child) + } + : null + ); + + dealWithAnimationAppear(table as Parameters[0]); + + expect(animation.wait).toHaveBeenCalledWith(1500); + expect(animation.from).toHaveBeenCalledWith({ opacity: 0 }, 1000, 'linear'); + }); +}); diff --git a/packages/vtable/__tests__/vchart-vrender-app.test.ts b/packages/vtable/__tests__/vchart-vrender-app.test.ts new file mode 100644 index 0000000000..0b809fba96 --- /dev/null +++ b/packages/vtable/__tests__/vchart-vrender-app.test.ts @@ -0,0 +1,92 @@ +// @ts-nocheck + +import VChart from '@visactor/vchart'; +import * as stageApp from '@visactor/vchart/cjs/compile/stage-app.js'; + +describe('VChart VRender app integration', () => { + test('uses an app-scoped VRender stage helper', () => { + const stage = { release: jest.fn() }; + const app = { + createStage: jest.fn(() => stage) + }; + + expect(typeof stageApp.resolveVRenderApp).toBe('function'); + expect(typeof stageApp.createStageFromApp).toBe('function'); + expect(stageApp.resolveVRenderApp(app).app).toBe(app); + expect(stageApp.createStageFromApp(app, { width: 100, height: 80 })).toBe(stage); + expect(app.createStage).toHaveBeenCalledWith({ width: 100, height: 80 }); + }); + + test('renders chart marks through the resolved VRender app', () => { + const canvas = document.createElement('canvas'); + canvas.width = 200; + canvas.height = 120; + + const chart = new VChart( + { + type: 'line', + width: 200, + height: 120, + padding: 10, + background: '#000', + data: { + id: 'data', + values: [ + { x: 'A', y: 20 }, + { x: 'B', y: 90 }, + { x: 'C', y: 45 } + ] + }, + xField: 'x', + yField: 'y', + axes: [ + { orient: 'bottom', visible: false }, + { orient: 'left', visible: false } + ], + line: { + style: { + stroke: '#207BFE', + lineWidth: 3 + } + }, + point: { + style: { + fill: '#207BFE', + stroke: '#207BFE', + size: 8 + } + } + }, + { + renderCanvas: canvas, + mode: 'desktop-browser', + canvasControled: false, + viewBox: { x1: 0, y1: 0, x2: 200, y2: 120 }, + dpr: 1, + interactive: false, + animation: false, + autoFit: false + } + ); + + chart.renderSync(); + + const context = canvas.getContext('2d'); + expect(context).toBeTruthy(); + + const pixels = context.getImageData(0, 0, canvas.width, canvas.height).data; + let bluePixels = 0; + for (let i = 0; i < pixels.length; i += 4) { + const red = pixels[i]; + const green = pixels[i + 1]; + const blue = pixels[i + 2]; + const alpha = pixels[i + 3]; + if (alpha > 0 && red < 80 && green > 80 && blue > 160) { + bluePixels += 1; + } + } + + chart.release(); + expect(bluePixels).toBeGreaterThan(20); + }); +}); diff --git a/packages/vtable/__tests__/vrender-app-renderer.test.ts b/packages/vtable/__tests__/vrender-app-renderer.test.ts new file mode 100644 index 0000000000..fb2af1aef9 --- /dev/null +++ b/packages/vtable/__tests__/vrender-app-renderer.test.ts @@ -0,0 +1,35 @@ +import '../src/scenegraph/scenegraph'; +import { createStageFromVRenderApp } from '../src/vrender'; + +(globalThis as any).__VERSION__ = 'none'; + +describe('VRender app renderer installation', () => { + test('uses the VTable group renderer contributions for app-scoped stages', () => { + const canvas = document.createElement('canvas'); + const { app, stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-renderer-contributions' } + ); + + try { + const groupRenderer = app.registry.renderer + .getAll() + .find(renderer => renderer.constructor?.name === 'DefaultCanvasGroupRender') as any; + + groupRenderer?.reInit?.(); + + const contributionNames = groupRenderer?._groupRenderContribitions?.map( + (contribution: { constructor?: { name?: string } }) => contribution.constructor?.name + ); + + expect(contributionNames).toContain('SplitGroupAfterRenderContribution'); + } finally { + stage.release(); + releaseAppRef(); + } + }); +}); diff --git a/packages/vtable/__tests__/vrender-app.test.ts b/packages/vtable/__tests__/vrender-app.test.ts new file mode 100644 index 0000000000..5ae1df5eeb --- /dev/null +++ b/packages/vtable/__tests__/vrender-app.test.ts @@ -0,0 +1,99 @@ +jest.mock( + '@visactor/vrender', + () => ({ + createBrowserVRenderApp: jest.fn(), + createNodeVRenderApp: jest.fn() + }), + { virtual: true } +); + +import { createBrowserVRenderApp, createNodeVRenderApp } from '@visactor/vrender'; +import { createStageFromVRenderApp } from '../src/vrender'; + +const mockedCreateBrowserVRenderApp = createBrowserVRenderApp as jest.Mock; +const mockedCreateNodeVRenderApp = createNodeVRenderApp as jest.Mock; + +function createMockApp() { + const app = { + released: false, + createStage: jest.fn((params: any) => ({ + params, + release: jest.fn() + })), + release: jest.fn(() => { + app.released = true; + }) + }; + + return app; +} + +describe('VRender app-scoped stage helper', () => { + beforeEach(() => { + mockedCreateBrowserVRenderApp.mockReset(); + mockedCreateNodeVRenderApp.mockReset(); + }); + + it('reuses the fallback app by env and scope until every retained stage is released', () => { + const app = createMockApp(); + mockedCreateBrowserVRenderApp.mockReturnValue(app); + + const first = createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-reuse' }); + const second = createStageFromVRenderApp({ width: 200 }, { mode: 'browser', scope: 'unit-reuse' }); + + expect(mockedCreateBrowserVRenderApp).toHaveBeenCalledTimes(1); + expect(app.createStage).toHaveBeenCalledTimes(2); + expect(first.stage).not.toBe(second.stage); + + first.releaseAppRef(); + expect(app.release).not.toHaveBeenCalled(); + + second.releaseAppRef(); + second.releaseAppRef(); + expect(app.release).toHaveBeenCalledTimes(1); + }); + + it('keeps fallback apps isolated by scope', () => { + const firstApp = createMockApp(); + const secondApp = createMockApp(); + mockedCreateBrowserVRenderApp.mockReturnValueOnce(firstApp).mockReturnValueOnce(secondApp); + + const first = createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-scope-a' }); + const second = createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-scope-b' }); + + expect(mockedCreateBrowserVRenderApp).toHaveBeenCalledTimes(2); + expect(firstApp.createStage).toHaveBeenCalledTimes(1); + expect(secondApp.createStage).toHaveBeenCalledTimes(1); + + first.releaseAppRef(); + second.releaseAppRef(); + expect(firstApp.release).toHaveBeenCalledTimes(1); + expect(secondApp.release).toHaveBeenCalledTimes(1); + }); + + it('uses the node app creator for node mode', () => { + const app = createMockApp(); + mockedCreateNodeVRenderApp.mockReturnValue(app); + + const created = createStageFromVRenderApp({ width: 100 }, { mode: 'node', scope: 'unit-node' }); + + expect(mockedCreateNodeVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedCreateBrowserVRenderApp).not.toHaveBeenCalled(); + expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); + + created.releaseAppRef(); + expect(app.release).toHaveBeenCalledTimes(1); + }); + + it('releases the retained fallback app when stage creation throws', () => { + const app = createMockApp(); + const error = new Error('stage failed'); + app.createStage.mockImplementationOnce(() => { + throw error; + }); + mockedCreateBrowserVRenderApp.mockReturnValue(app); + + expect(() => createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-error' })).toThrow(error); + expect(app.release).toHaveBeenCalledTimes(1); + }); +}); diff --git a/packages/vtable/package.json b/packages/vtable/package.json index af18720687..e927f75f8a 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,10 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:*", - "@visactor/vrender-core": "~1.0.41", - "@visactor/vrender-kits": "~1.0.41", - "@visactor/vrender-components": "~1.0.41", - "@visactor/vrender-animate": "~1.0.41", + "@visactor/vrender": "1.1.0-alpha.18", + "@visactor/vrender-core": "1.1.0-alpha.18", + "@visactor/vrender-kits": "1.1.0-alpha.18", + "@visactor/vrender-components": "1.1.0-alpha.18", + "@visactor/vrender-animate": "1.1.0-alpha.18", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", @@ -69,7 +70,7 @@ "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", "luxon": "*", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable/src/core/BaseTable.ts b/packages/vtable/src/core/BaseTable.ts index 90b058be22..8269983d41 100644 --- a/packages/vtable/src/core/BaseTable.ts +++ b/packages/vtable/src/core/BaseTable.ts @@ -2731,7 +2731,7 @@ export abstract class BaseTable extends EventTarget implements BaseTableAPI { internalProps.releaseList = null; } - this.scenegraph.stage.release(); + this.scenegraph.releaseStage(); this.scenegraph.proxy.release(); const parentElement = internalProps.element?.parentElement; diff --git a/packages/vtable/src/scenegraph/animation/appear.ts b/packages/vtable/src/scenegraph/animation/appear.ts index 5ed3bd7209..85eed939d7 100644 --- a/packages/vtable/src/scenegraph/animation/appear.ts +++ b/packages/vtable/src/scenegraph/animation/appear.ts @@ -23,21 +23,21 @@ export function dealWithAnimationAppear(table: BaseTableAPI) { direction = table.options.animationAppear.direction ?? 'row'; } - const { scenegraph: scene, frozenColCount, frozenRowCount } = table; + const { scenegraph: scene } = table; // header cell - const { colStart, colEnd, rowStart, rowEnd } = scene.proxy; // to do: right bottom frozen + const { colEnd, rowEnd } = scene.proxy; // to do: right bottom frozen for (let col = 0; col <= colEnd; col++) { for (let row = 0; row <= rowEnd; row++) { const cellGroup = scene.highPerformanceGetCell(col, row); if (cellGroup && cellGroup.role === 'cell') { cellGroup.forEachChildren((child: Text) => { - child.setAttribute('opacity', 0); - child - .animate() - .wait(type === 'one-by-one' ? (direction === 'row' ? row : col) * (duration - delay) : delay) - .to({ opacity: 1 }, duration, 'linear'); + const finalOpacity = child.attribute.opacity ?? 1; + const animationDelay = type === 'one-by-one' ? (direction === 'row' ? row : col) * (duration - delay) : delay; + + child.setAttribute('opacity', finalOpacity); + child.animate().wait(animationDelay).from({ opacity: 0 }, duration, 'linear'); }); } } diff --git a/packages/vtable/src/scenegraph/scenegraph.ts b/packages/vtable/src/scenegraph/scenegraph.ts index 58e4ed73fd..0f456e3cc9 100644 --- a/packages/vtable/src/scenegraph/scenegraph.ts +++ b/packages/vtable/src/scenegraph/scenegraph.ts @@ -1,5 +1,23 @@ -import type { IStage, IRect, ITextCache, INode, Text, RichText, Stage, IRectGraphicAttribute } from '@src/vrender'; -import { createStage, createRect, IContainPointMode, container, vglobal, registerForVrender } from '@src/vrender'; +import { + createRect, + createStageFromVRenderApp, + type CheckBox, + type FederatedPointerEvent, + type IContainPointMode, + type INode, + type IRect, + type IRectGraphicAttribute, + type IStage, + type ITextCache, + type RichText, + type Stage, + type Text, + container, + loadPoptip, + setPoptipTheme, + vglobal, + registerForVrender +} from '@src/vrender'; import type { CellRange, CellSubLocation, PivotChartConstructorOptions } from '../ts-types'; import { type CellAddress, @@ -50,8 +68,6 @@ import { } from './refresh-node/update-chart'; import { initSceneGraph } from './group-creater/init-scenegraph'; import { updateContainerChildrenX, updateContainerChildrenY } from './utils/update-container'; -import type { CheckBox } from '@src/vrender'; -import { loadPoptip, setPoptipTheme } from '@src/vrender'; import textMeasureModule from './utils/text-measure'; import { getIconByXY, @@ -80,7 +96,6 @@ import { temporarilyUpdateSelectRectStyle } from './select/update-select-style'; import type { CheckboxContent } from './component/checkbox-content'; // import { contextModule } from './context/module'; -import type { FederatedPointerEvent } from '@src/vrender'; import { TABLE_EVENT_TYPE } from '../core/TABLE_EVENT_TYPE'; import { getCellEventArgsSet } from '../event/util'; import type { SceneEvent } from '../event/util'; @@ -143,6 +158,7 @@ export class Scenegraph { lastSelectId: string; component: TableComponent; stage: IStage; + releaseVRenderAppRef?: () => void; table: BaseTableAPI; isPivot: boolean; // transpose: boolean; @@ -205,32 +221,37 @@ export class Scenegraph { width = table.canvas.width; height = table.canvas.height; } - this.stage = createStage({ - canvas: table.canvas, - width, - height, - disableDirtyBounds: false, - background: table.theme.underlayBackgroundColor, - dpr: table.internalProps.pixelRatio, - enableLayout: true, - // enableHtmlAttribute: true, - // pluginList: table.isPivotChart() ? ['poptipForText'] : undefined, - beforeRender: (stage: Stage) => { - this.table.options.beforeRender && this.table.options.beforeRender(stage); - this.table.animationManager.ticker.start(); - }, - afterRender: (stage: Stage) => { - this.table.options.afterRender && this.table.options.afterRender(stage); - this.table.fireListeners('after_render', null); - // console.trace('after_render'); + const { stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas: table.canvas, + width, + height, + disableDirtyBounds: false, + background: table.theme.underlayBackgroundColor, + dpr: table.internalProps.pixelRatio, + enableLayout: true, + // enableHtmlAttribute: true, + // pluginList: table.isPivotChart() ? ['poptipForText'] : undefined, + beforeRender: (stage: Stage) => { + this.table.options.beforeRender && this.table.options.beforeRender(stage); + this.table.animationManager.ticker.start(); + }, + afterRender: (stage: Stage) => { + this.table.options.afterRender && this.table.options.afterRender(stage); + this.table.fireListeners('after_render', null); + // console.trace('after_render'); + }, + // event: { clickInterval: 400 } + // autoRender: true + + canvasControled: !table.options.canvas, + viewBox: table.options.viewBox, + ...table.options.renderOption }, - // event: { clickInterval: 400 } - // autoRender: true - - canvasControled: !table.options.canvas, - viewBox: table.options.viewBox, - ...table.options.renderOption - }); + { mode: Env.mode === 'node' ? 'node' : 'browser', scope: 'vtable' } + ); + this.stage = stage; + this.releaseVRenderAppRef = releaseAppRef; this.stage.defaultLayer.setTheme({ group: { @@ -493,6 +514,17 @@ export class Scenegraph { this.table.reactCustomLayout?.clearCache(); } + releaseStage() { + const releaseAppRef = this.releaseVRenderAppRef; + this.releaseVRenderAppRef = undefined; + + try { + this.stage?.release(); + } finally { + releaseAppRef?.(); + } + } + updateStageBackground() { this.stage.background = this.table.theme.underlayBackgroundColor; this.stage.renderNextFrame(); diff --git a/packages/vtable/src/vrender-app.ts b/packages/vtable/src/vrender-app.ts new file mode 100644 index 0000000000..f2f3688262 --- /dev/null +++ b/packages/vtable/src/vrender-app.ts @@ -0,0 +1,141 @@ +import { createBrowserVRenderApp, createNodeVRenderApp } from '@visactor/vrender'; +import { container as legacyContainer, GraphicRender } from '@visactor/vrender-core'; +import type { IApp, IGraphicRender, IStage, IStageParams } from '@visactor/vrender-core'; +import { Env } from './tools/env'; + +type VRenderAppEnv = 'browser' | 'node'; + +type DefaultVRenderAppRecord = { + app: IApp; + refCount: number; +}; + +export type VRenderStageAppOptions = { + mode?: VRenderAppEnv; + scope?: string; + app?: IApp; +}; + +export type VRenderStageAppRef = { + app: IApp; + stage: IStage; + releaseAppRef: () => void; +}; + +const defaultVRenderApps = new Map(); + +const getVRenderAppEnv = (mode?: VRenderAppEnv): VRenderAppEnv => mode ?? (Env.mode === 'node' ? 'node' : 'browser'); + +const getVRenderAppKey = (env: VRenderAppEnv, scope?: string): string => `${env}:${scope ?? 'default'}`; + +const createRendererRegistryKey = (renderer: IGraphicRender, prefix: string): string => { + const type = renderer?.type ?? 'unknown'; + const numberType = renderer?.numberType ?? 'unknown'; + const ctor = renderer?.constructor?.name ?? 'anonymous'; + + return `${prefix}:${String(numberType)}:${String(type)}:${ctor}`; +}; + +const syncLegacyRenderersToApp = (app: IApp): void => { + const rendererRegistry = app.registry?.renderer; + const existingRenderers = rendererRegistry?.getAll?.() ?? []; + const legacyRenderers = legacyContainer.getAll(GraphicRender) ?? []; + + if (!rendererRegistry || !legacyRenderers.length) { + return; + } + + const seen = new Set(); + rendererRegistry.clear(); + + [...legacyRenderers, ...existingRenderers].forEach(renderer => { + const key = createRendererRegistryKey(renderer, 'renderer'); + + if (seen.has(key)) { + return; + } + seen.add(key); + renderer.reInit?.(); + rendererRegistry.register(key, renderer); + }); +}; + +const createDefaultVRenderApp = (env: VRenderAppEnv): IApp => { + const app = env === 'node' ? createNodeVRenderApp() : createBrowserVRenderApp(); + + syncLegacyRenderersToApp(app); + + return app; +}; + +const getDefaultVRenderAppRecord = (env: VRenderAppEnv, scope?: string): DefaultVRenderAppRecord => { + const key = getVRenderAppKey(env, scope); + const record = defaultVRenderApps.get(key); + + if (record && !record.app.released) { + return record; + } + + const nextRecord = { + app: createDefaultVRenderApp(env), + refCount: 0 + }; + defaultVRenderApps.set(key, nextRecord); + + return nextRecord; +}; + +const retainDefaultVRenderApp = (env: VRenderAppEnv, scope?: string) => { + const key = getVRenderAppKey(env, scope); + const record = getDefaultVRenderAppRecord(env, scope); + let released = false; + + record.refCount += 1; + + return { + app: record.app, + releaseAppRef: () => { + if (released) { + return; + } + released = true; + record.refCount -= 1; + + if (record.refCount <= 0) { + defaultVRenderApps.delete(key); + if (!record.app.released) { + record.app.release(); + } + } + } + }; +}; + +const resolveVRenderApp = (options: VRenderStageAppOptions = {}) => { + if (options.app) { + return { + app: options.app, + releaseAppRef: (): void => undefined + }; + } + + return retainDefaultVRenderApp(getVRenderAppEnv(options.mode), options.scope); +}; + +export function createStageFromVRenderApp( + params: Partial, + options: VRenderStageAppOptions = {} +): VRenderStageAppRef { + const resolvedApp = resolveVRenderApp(options); + + try { + return { + app: resolvedApp.app, + stage: resolvedApp.app.createStage(params), + releaseAppRef: resolvedApp.releaseAppRef + }; + } catch (error) { + resolvedApp.releaseAppRef(); + throw error; + } +} diff --git a/packages/vtable/src/vrender.ts b/packages/vtable/src/vrender.ts index 3b85c82eaf..16017dc075 100644 --- a/packages/vtable/src/vrender.ts +++ b/packages/vtable/src/vrender.ts @@ -1,6 +1,12 @@ import { loadPoptip } from '@visactor/vrender-components'; -import '@visactor/vrender-core'; -import { container, isBrowserEnv, isNodeEnv, preLoadAllModule, registerFlexLayoutPlugin } from '@visactor/vrender-core'; +import { + container as legacyContainer, + type ILegacyBindingContext, + isBrowserEnv, + isNodeEnv, + preLoadAllModule, + registerFlexLayoutPlugin +} from '@visactor/vrender-core'; import { loadBrowserEnv, loadNodeEnv, @@ -8,6 +14,7 @@ import { registerArc3d, registerArea, registerCircle, + registerGifImage, registerGlyph, registerGroup, registerImage, @@ -19,6 +26,7 @@ import { registerRect3d, registerRichtext, registerShadowRoot, + registerStar, registerSymbol, registerText, registerWrapText @@ -36,36 +44,85 @@ export function registerForVrender() { preLoadAllModule(); if (isBrowserEnv()) { - loadBrowserEnv(container); + loadBrowserEnv(legacyContainer); } else if (isNodeEnv()) { - loadNodeEnv(container); + loadNodeEnv(legacyContainer); } registerArc(); - // registerArc3d(); - // registerArea(); + registerArc3d(); + registerArea(); registerCircle(); - // registerGlyph(); + registerGlyph(); registerGroup(); + registerGifImage(); registerImage(); registerLine(); - // registerPath(); - // registerPolygon(); - // registerPyramid3d(); + registerPath(); + registerPolygon(); + registerPyramid3d(); registerRect(); - // registerRect3d(); + registerRect3d(); registerRichtext(); registerShadowRoot(); + registerStar(); registerSymbol(); registerText(); registerFlexLayoutPlugin(); - // registerWrapText(); + registerWrapText(); loadPoptip(); registerFlexLayoutPlugin(); } +type LegacyBind = ILegacyBindingContext['bind']; +type LegacyRebind = ILegacyBindingContext['rebind']; +type LegacyIsBound = ILegacyBindingContext['isBound']; +type LegacyContainerModuleHandler = ( + bind: LegacyBind, + unbind: (serviceIdentifier: unknown) => void, + isBound: LegacyIsBound, + rebind: LegacyRebind +) => void; + +export class ContainerModule { + constructor(public readonly registry: LegacyContainerModuleHandler) {} +} + +const unbindLegacyService = (): void => undefined; + +export const container = Object.assign(legacyContainer, { + load(module: ContainerModule | ((context: ILegacyBindingContext) => void)): void { + if (module instanceof ContainerModule) { + module.registry(legacyContainer.bind, unbindLegacyService, legacyContainer.isBound, legacyContainer.rebind); + return; + } + + module(legacyContainer); + }, + get(serviceIdentifier: unknown): T { + return legacyContainer.getAll(serviceIdentifier as never)[0]; + } +}); + +export const injectable = + () => + (target: T): T => + target; + +export const inject = + (_serviceIdentifier: unknown) => + (..._args: unknown[]): void => + undefined; + +export const named = + (_name: unknown) => + (..._args: unknown[]): void => + undefined; + export type { Direction } from '@visactor/vrender-core'; export type { State } from '@visactor/vrender-components'; +export { createStageFromVRenderApp } from './vrender-app'; +export type { VRenderStageAppOptions, VRenderStageAppRef } from './vrender-app'; // export { GroupFadeIn } from '@visactor/vrender-core'; // export { GroupFadeOut } from '@visactor/vrender-core'; diff --git a/packages/vue-vtable/package.json b/packages/vue-vtable/package.json index 4bd2f9883b..5b8d4d7bce 100644 --- a/packages/vue-vtable/package.json +++ b/packages/vue-vtable/package.json @@ -66,7 +66,7 @@ "@arco-design/web-vue": "^2.11.0", "increase-memory-limit": "^1.0.7", "cross-env": "^7.0.3", - "@visactor/vchart": "2.0.13-alpha.10", + "@visactor/vchart": "2.1.0-alpha.2", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", From 9e69a02cb1f2022fcb48902fc0f5fe90b20e21ff Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 14 May 2026 14:28:56 +0800 Subject: [PATCH 02/22] chore: add omx to gitignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bb1ecf0d10..9fd76f9297 100644 --- a/.gitignore +++ b/.gitignore @@ -109,4 +109,7 @@ tsconfig.tsbuildinfo .history .trae/ -.agents/ \ No newline at end of file +.agents/ + +# codex +.omx/ \ No newline at end of file From 6a74a13bf35e6292ea31cb7c0c71cab45ee1fdf7 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Thu, 14 May 2026 17:05:17 +0800 Subject: [PATCH 03/22] chore: update release ci --- .github/workflows/release.yml | 58 +++++++++++++++++------------------ 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 94dc6a93d3..cb1a12ef1b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -292,41 +292,39 @@ jobs: if: startsWith(github.ref_name, 'release/') run: node common/scripts/apply-release-version.js 'none' ${{ steps.semver_release.outputs.main }} - - name: Build vutils-extension && vtable + - name: Build packages env: NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --to @visactor/vtable - - - name: Build vtable-extension - if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'pre-release/') - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only @visactor/vtable-extension - - - name: Build react-vtable - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only @visactor/react-vtable - - - name: Build openinula-vtable - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only @visactor/openinula-vtable + run: | + set -euo pipefail + package_names=() + while IFS= read -r package_name; do + [ -n "$package_name" ] && package_names+=("$package_name") + done < <(node <<'NODE' + const fs = require('fs'); + const path = require('path'); - - name: Build taro-vtable - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only @visactor/taro-vtable + const packagesDir = path.join(process.cwd(), 'packages'); + const packageNames = fs + .readdirSync(packagesDir, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .map((entry) => path.join(packagesDir, entry.name, 'package.json')) + .filter((packageJsonPath) => fs.existsSync(packageJsonPath)) + .map((packageJsonPath) => JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')).name) + .filter(Boolean) + .sort(); + + console.log(packageNames.join('\n')); + NODE + ) - - name: Build lark-vtable - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only @visactor/lark-vtable + build_args=() + for package_name in "${package_names[@]}"; do + build_args+=(--to "$package_name") + done - - name: Build wx-vtable - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only @visactor/wx-vtable + echo "Build packages: ${package_names[*]}" + node common/scripts/install-run-rush.js build "${build_args[@]}" - name: Publish to npm (release) if: startsWith(github.ref_name, 'release/') From 2a7a77effcb8939a2faa6078dde1e5885ad54d49 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Fri, 15 May 2026 14:26:40 +0800 Subject: [PATCH 04/22] feat: add miss script --- common/scripts/apply-release-version.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 common/scripts/apply-release-version.js diff --git a/common/scripts/apply-release-version.js b/common/scripts/apply-release-version.js new file mode 100644 index 0000000000..b9fd22a462 --- /dev/null +++ b/common/scripts/apply-release-version.js @@ -0,0 +1,19 @@ +const writePrereleaseVersion = require('./set-prerelease-version'); +const checkAndUpdateNextBump = require('./version-policies'); +const parseVersion = require('./parse-version'); + + +function run() { + const preReleaseName = process.argv.slice(2)[0]; + const nextVersionOrNextBump = process.argv.slice(2)[1]; + const buildName = process.argv.slice(2)[2]; + const nextBump = checkAndUpdateNextBump(nextVersionOrNextBump); + const parsedNextVersion = nextVersionOrNextBump ? parseVersion(nextVersionOrNextBump) : null; + const nextVersion = parsedNextVersion ? `${parsedNextVersion.major}.${parsedNextVersion.minor}.${parsedNextVersion.patch}`: null; + + console.log('[apply prerelease version]: ', preReleaseName, nextBump, nextVersion); + + writePrereleaseVersion(nextBump, preReleaseName, nextVersion, buildName); +} + +run() From 20cf72ac9a44fbbd966254d95f4295148843038f Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Fri, 15 May 2026 15:20:22 +0800 Subject: [PATCH 05/22] fix: package file add repository --- packages/openinula-vtable/package.json | 5 +++++ packages/react-vtable/package.json | 5 +++++ packages/vtable-calendar/package.json | 5 +++++ packages/vtable-export/package.json | 5 +++++ packages/vtable-plugins/package.json | 7 ++++++- packages/vtable-search/package.json | 5 +++++ packages/vue-vtable/package.json | 5 +++++ 7 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index 859bf0f6ac..942765d54f 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -91,5 +91,10 @@ }, "peerDependencies": { "openinula": "~0.1.2-SNAPSHOT" + }, + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/openinula-vtable" } } diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index aff1628e81..c7787a82aa 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -110,5 +110,10 @@ "@types/react-is": "^17.0.3", "@arco-design/web-react": "2.66.12", "@types/react-reconciler": "0.28.9" + }, + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/react-vtable" } } diff --git a/packages/vtable-calendar/package.json b/packages/vtable-calendar/package.json index 82105b162b..ed2c3ec92f 100644 --- a/packages/vtable-calendar/package.json +++ b/packages/vtable-calendar/package.json @@ -87,5 +87,10 @@ "axios": "^1.4.0", "@types/react-is": "^17.0.3", "rollup-plugin-node-resolve": "5.2.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/vtable-calendar" } } diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index c5d3c3a923..5c711f28d8 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -90,5 +90,10 @@ "axios": "^1.4.0", "@types/react-is": "^17.0.3", "rollup-plugin-node-resolve": "5.2.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/vtable-export" } } diff --git a/packages/vtable-plugins/package.json b/packages/vtable-plugins/package.json index 62434b6e75..c17c8a464e 100644 --- a/packages/vtable-plugins/package.json +++ b/packages/vtable-plugins/package.json @@ -110,5 +110,10 @@ "rollup-plugin-node-resolve": "5.2.0", "@types/lodash": "4.14.182" }, - "packageManager": "pnpm@10.7.0" + "packageManager": "pnpm@10.7.0", + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/vtable-plugins" + } } diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index 1155e36665..eabc2d059c 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -86,5 +86,10 @@ "axios": "^1.4.0", "@types/react-is": "^17.0.3", "rollup-plugin-node-resolve": "5.2.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/vtable-search" } } diff --git a/packages/vue-vtable/package.json b/packages/vue-vtable/package.json index 5b8d4d7bce..389a0639c2 100644 --- a/packages/vue-vtable/package.json +++ b/packages/vue-vtable/package.json @@ -107,5 +107,10 @@ "axios": "^1.4.0", "eslint-plugin-vue": "^9.26.0", "vue-eslint-parser": "^9.4.2" + }, + "repository": { + "type": "git", + "url": "https://github.com/VisActor/VTable.git", + "directory": "packages/vue-vtable" } } From 7bd4969971580873ee57e1e12d6031499d8d8821 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Mon, 18 May 2026 12:05:42 +0800 Subject: [PATCH 06/22] chore: upgrade vrender & vchart --- common/config/rush/pnpm-config.json | 14 +-- common/config/rush/pnpm-lock.yaml | 136 ++++++++++++------------- docs/package.json | 4 +- packages/openinula-vtable/package.json | 4 +- packages/react-vtable/package.json | 4 +- packages/vtable-export/package.json | 4 +- packages/vtable-plugins/package.json | 4 +- packages/vtable-search/package.json | 4 +- packages/vtable/package.json | 14 +-- packages/vue-vtable/package.json | 4 +- 10 files changed, 96 insertions(+), 96 deletions(-) diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index e59bf098c2..ed651d5df1 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -83,12 +83,12 @@ * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides */ "globalOverrides": { - "@visactor/vchart": "2.1.0-alpha.2", - "@visactor/vrender": "1.1.0-alpha.18", - "@visactor/vrender-core": "1.1.0-alpha.18", - "@visactor/vrender-kits": "1.1.0-alpha.18", - "@visactor/vrender-components": "1.1.0-alpha.18", - "@visactor/vrender-animate": "1.1.0-alpha.18" + "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vrender": "1.1.0-alpha.20", + "@visactor/vrender-core": "1.1.0-alpha.20", + "@visactor/vrender-kits": "1.1.0-alpha.20", + "@visactor/vrender-components": "1.1.0-alpha.20", + "@visactor/vrender-animate": "1.1.0-alpha.20" }, /** * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors @@ -193,4 +193,4 @@ // }, // "pnpm": { "futurePnpmFeature": true } } -} +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 401276c8ab..b994bd92d9 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -5,12 +5,12 @@ settings: excludeLinksFromLockfile: false overrides: - '@visactor/vchart': 2.1.0-alpha.2 - '@visactor/vrender': 1.1.0-alpha.18 - '@visactor/vrender-core': 1.1.0-alpha.18 - '@visactor/vrender-kits': 1.1.0-alpha.18 - '@visactor/vrender-components': 1.1.0-alpha.18 - '@visactor/vrender-animate': 1.1.0-alpha.18 + '@visactor/vchart': 2.1.0-alpha.6 + '@visactor/vrender': 1.1.0-alpha.20 + '@visactor/vrender-core': 1.1.0-alpha.20 + '@visactor/vrender-kits': 1.1.0-alpha.20 + '@visactor/vrender-components': 1.1.0-alpha.20 + '@visactor/vrender-animate': 1.1.0-alpha.20 pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= @@ -33,8 +33,8 @@ importers: specifier: workspace:* version: link:../packages/react-vtable '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@visactor/vtable': specifier: workspace:* version: link:../packages/vtable @@ -188,8 +188,8 @@ importers: specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 axios: specifier: ^1.4.0 version: 1.16.1 @@ -339,8 +339,8 @@ importers: specifier: 0.28.9 version: 0.28.9(@types/react@18.2.79) '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -438,20 +438,20 @@ importers: specifier: ~1.0.17 version: 1.0.23 '@visactor/vrender': - specifier: 1.1.0-alpha.18 - version: 1.1.0-alpha.18 + specifier: 1.1.0-alpha.20 + version: 1.1.0-alpha.20 '@visactor/vrender-animate': - specifier: 1.1.0-alpha.18 - version: 1.1.0-alpha.18 + specifier: 1.1.0-alpha.20 + version: 1.1.0-alpha.20 '@visactor/vrender-components': - specifier: 1.1.0-alpha.18 - version: 1.1.0-alpha.18 + specifier: 1.1.0-alpha.20 + version: 1.1.0-alpha.20 '@visactor/vrender-core': - specifier: 1.1.0-alpha.18 - version: 1.1.0-alpha.18 + specifier: 1.1.0-alpha.20 + version: 1.1.0-alpha.20 '@visactor/vrender-kits': - specifier: 1.1.0-alpha.18 - version: 1.1.0-alpha.18 + specifier: 1.1.0-alpha.20 + version: 1.1.0-alpha.20 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -520,8 +520,8 @@ importers: specifier: 18.2.25 version: 18.2.25 '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -915,8 +915,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -1253,8 +1253,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@visactor/vtable': specifier: workspace:* version: link:../vtable @@ -1410,8 +1410,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -1703,8 +1703,8 @@ importers: specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.1.0-alpha.2 - version: 2.1.0-alpha.2 + specifier: 2.1.0-alpha.6 + version: 2.1.0-alpha.6 '@vitejs/plugin-vue': specifier: ^5.0.3 version: 5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5)) @@ -3564,8 +3564,8 @@ packages: '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - '@visactor/vchart@2.1.0-alpha.2': - resolution: {integrity: sha512-DEZjjaKxo19ABnVe+ZYv9AIQeW5VUzxLpiQRE1bE5AUknjZuR/0Pg3YGg+e9cOkuOMzMYp+YrhePyw8YVG0HHA==} + '@visactor/vchart@2.1.0-alpha.6': + resolution: {integrity: sha512-lky1NdIU4/vP1RbR+eLkfLI1qNiFKRw4AtBj80jsFZc5b7T4XowuK5dWmAO98Evo5J4nTJ5vTx9eT80avo2OjA==} '@visactor/vdataset@1.0.23': resolution: {integrity: sha512-zrLk9FBUWJoW6b30XnPKzXwAXl8USdLDfed6QZLsmdkylRU8V7yZeXE2aKwU8Lg1U4HmQngqmqOx7/QlbX44Tg==} @@ -3573,20 +3573,20 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.1.0-alpha.18': - resolution: {integrity: sha512-YYeMQWI6HjE4X36HH+7I1H+33Ettg+5kND6KWOVPScdXvL/6CtarcSBfiowo6U2XPYbN65gzXiI003QudUkmvQ==} + '@visactor/vrender-animate@1.1.0-alpha.20': + resolution: {integrity: sha512-7Az5vPb5qvps6rERE18x88LFMQQ6FE2q1vrzsYe6RLWraZcghPcNZQpvUPbr+0Xrd1l8w2q0oxqCIUOz08BTFg==} - '@visactor/vrender-components@1.1.0-alpha.18': - resolution: {integrity: sha512-1eCS6AZ516H4cDlK5p1kNqVSQY/vLLhY01xandUVYGh+swVQyz0YrrMReQYWapDHbAlYeij8lJ2yxxnQ68t1pg==} + '@visactor/vrender-components@1.1.0-alpha.20': + resolution: {integrity: sha512-PiXHY/7c5fqoIF9V0DvfQL826qOVw3QcCuuhGXx+jIlKszKPfkt/g8Q+4Hb4jk6WIvuCz7NvrTxeksymiv1tAw==} - '@visactor/vrender-core@1.1.0-alpha.18': - resolution: {integrity: sha512-Hh8Wet5yTwPmlt/pnyNiv4UH9qCmWeljyf6Ek9tCurpHc2f/KwkE5Doxv4ABx2QVMm5AX2QwYqGdvRd2ul15cA==} + '@visactor/vrender-core@1.1.0-alpha.20': + resolution: {integrity: sha512-qaNSf9XqaXolz0IdWshRP+tT0ejFgLdGPiZM+zVkDWv1AAdkH6YBuHJ58ctXD9PcS6nmnzviBleXkZWONUlMZA==} - '@visactor/vrender-kits@1.1.0-alpha.18': - resolution: {integrity: sha512-esNfbgTVCYPM7OJI+NIgnXWrq4xCu7yRr8VWom+GpOB5qtaprbzBFdQMDNepSqNM7KiI3WMU91xgwo7IW4X7dg==} + '@visactor/vrender-kits@1.1.0-alpha.20': + resolution: {integrity: sha512-7wTAvvkIB0tq7PQoROzCvVbjE4zHHVz7GMk5Pv/TFeyReyetF39rlVrlCR/OE5emKjf7dHPYhKQCqOkJ4uRBWQ==} - '@visactor/vrender@1.1.0-alpha.18': - resolution: {integrity: sha512-7Akash0LEdukkN2gXk/WQfkqGktGQ1wnaSydxj7RbLCGrAVTs2h8LHckwC/UpVPfSSvS3owTyW8dhmJRIMDNdQ==} + '@visactor/vrender@1.1.0-alpha.20': + resolution: {integrity: sha512-t2vxpxrMss6aUuSCeZU+Ob76ltQb0ZLSwSpzItLl2yZXQZIo5otGd8JoAfeB/swhv0RAqs3JrOt8FocMD+NoBA==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} @@ -3594,8 +3594,8 @@ packages: '@visactor/vutils-extension@2.0.22': resolution: {integrity: sha512-PRxjplZF1/Qdsflb1hYh9DGGJdblq91yIG7CCC6MIlMMSlDYEAMJzJ9y2clnR1MgWa2AsAtMtuu+MSdG3DctUA==} - '@visactor/vutils-extension@2.1.0-alpha.2': - resolution: {integrity: sha512-Ko+5yiEMSznCnPRFGVBorcuyB/bd4ouBWhf5+Zr2NTBKm1xmB0NeB2/yxz72fgNaEu5hNoTPssYFiTl896zMJA==} + '@visactor/vutils-extension@2.1.0-alpha.6': + resolution: {integrity: sha512-24oo6V4hoGQTA7p4It6iifnuIi5mh5U3JQ3OsxeSkRTVupag4ARFfE0YO+EA38UGGFFMxb3IfhUyMTfb84zuBw==} '@visactor/vutils@1.0.23': resolution: {integrity: sha512-M8SLqgdHhKN8QmQKTWD1gzEaHptpIV9pvMYvC6+VeOsqYvZZ6UdhSCAAczTYVo+m/uwcEC2JHSUspbrs8rzlRQ==} @@ -11179,18 +11179,18 @@ snapshots: '@ungap/promise-all-settled@1.1.2': {} - '@visactor/vchart@2.1.0-alpha.2': + '@visactor/vchart@2.1.0-alpha.6': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender': 1.1.0-alpha.18 - '@visactor/vrender-animate': 1.1.0-alpha.18 - '@visactor/vrender-components': 1.1.0-alpha.18 - '@visactor/vrender-core': 1.1.0-alpha.18 - '@visactor/vrender-kits': 1.1.0-alpha.18 + '@visactor/vrender': 1.1.0-alpha.20 + '@visactor/vrender-animate': 1.1.0-alpha.20 + '@visactor/vrender-components': 1.1.0-alpha.20 + '@visactor/vrender-core': 1.1.0-alpha.20 + '@visactor/vrender-kits': 1.1.0-alpha.20 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension': 2.1.0-alpha.2 + '@visactor/vutils-extension': 2.1.0-alpha.6 '@visactor/vdataset@1.0.23': dependencies: @@ -11220,39 +11220,39 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.1.0-alpha.18': + '@visactor/vrender-animate@1.1.0-alpha.20': dependencies: - '@visactor/vrender-core': 1.1.0-alpha.18 + '@visactor/vrender-core': 1.1.0-alpha.20 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.1.0-alpha.18': + '@visactor/vrender-components@1.1.0-alpha.20': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.18 - '@visactor/vrender-core': 1.1.0-alpha.18 - '@visactor/vrender-kits': 1.1.0-alpha.18 + '@visactor/vrender-animate': 1.1.0-alpha.20 + '@visactor/vrender-core': 1.1.0-alpha.20 + '@visactor/vrender-kits': 1.1.0-alpha.20 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.1.0-alpha.18': + '@visactor/vrender-core@1.1.0-alpha.20': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-kits@1.1.0-alpha.18': + '@visactor/vrender-kits@1.1.0-alpha.20': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.1.0-alpha.18 + '@visactor/vrender-core': 1.1.0-alpha.20 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender@1.1.0-alpha.18': + '@visactor/vrender@1.1.0-alpha.20': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.18 - '@visactor/vrender-components': 1.1.0-alpha.18 - '@visactor/vrender-core': 1.1.0-alpha.18 - '@visactor/vrender-kits': 1.1.0-alpha.18 + '@visactor/vrender-animate': 1.1.0-alpha.20 + '@visactor/vrender-components': 1.1.0-alpha.20 + '@visactor/vrender-core': 1.1.0-alpha.20 + '@visactor/vrender-kits': 1.1.0-alpha.20 '@visactor/vscale@1.0.23': dependencies: @@ -11263,7 +11263,7 @@ snapshots: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension@2.1.0-alpha.2': + '@visactor/vutils-extension@2.1.0-alpha.6': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 diff --git a/docs/package.json b/docs/package.json index 39897a6ce5..0e51701302 100644 --- a/docs/package.json +++ b/docs/package.json @@ -22,7 +22,7 @@ "@visactor/vtable-search": "workspace:*", "@visactor/vtable-sheet": "workspace:*", "buble": "^0.20.0", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "markdown-it": "^13.0.0", "highlight.js": "^11.8.0", "axios": "^1.4.0", @@ -54,4 +54,4 @@ "globby": "11.1.0", "chokidar": "^3.5.0" } -} +} \ No newline at end of file diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index 942765d54f..100d7b7977 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -50,7 +50,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -97,4 +97,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/openinula-vtable" } -} +} \ No newline at end of file diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index c7787a82aa..94d1585b06 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -65,7 +65,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -116,4 +116,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/react-vtable" } -} +} \ No newline at end of file diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index 5c711f28d8..ae60594e8f 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -46,7 +46,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -96,4 +96,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable-export" } -} +} \ No newline at end of file diff --git a/packages/vtable-plugins/package.json b/packages/vtable-plugins/package.json index c17c8a464e..908372b3ed 100644 --- a/packages/vtable-plugins/package.json +++ b/packages/vtable-plugins/package.json @@ -64,7 +64,7 @@ "@visactor/vtable": "workspace:*", "@visactor/vtable-editors": "workspace:*", "@visactor/vtable-gantt": "workspace:*", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -116,4 +116,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable-plugins" } -} +} \ No newline at end of file diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index eabc2d059c..cd2b9563df 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -42,7 +42,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -92,4 +92,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable-search" } -} +} \ No newline at end of file diff --git a/packages/vtable/package.json b/packages/vtable/package.json index e927f75f8a..a05b92bb59 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:*", - "@visactor/vrender": "1.1.0-alpha.18", - "@visactor/vrender-core": "1.1.0-alpha.18", - "@visactor/vrender-kits": "1.1.0-alpha.18", - "@visactor/vrender-components": "1.1.0-alpha.18", - "@visactor/vrender-animate": "1.1.0-alpha.18", + "@visactor/vrender": "1.1.0-alpha.20", + "@visactor/vrender-core": "1.1.0-alpha.20", + "@visactor/vrender-kits": "1.1.0-alpha.20", + "@visactor/vrender-components": "1.1.0-alpha.20", + "@visactor/vrender-animate": "1.1.0-alpha.20", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", @@ -70,7 +70,7 @@ "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", "luxon": "*", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -135,4 +135,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable" } -} +} \ No newline at end of file diff --git a/packages/vue-vtable/package.json b/packages/vue-vtable/package.json index 389a0639c2..e9e17184b0 100644 --- a/packages/vue-vtable/package.json +++ b/packages/vue-vtable/package.json @@ -66,7 +66,7 @@ "@arco-design/web-vue": "^2.11.0", "increase-memory-limit": "^1.0.7", "cross-env": "^7.0.3", - "@visactor/vchart": "2.1.0-alpha.2", + "@visactor/vchart": "2.1.0-alpha.6", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -113,4 +113,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vue-vtable" } -} +} \ No newline at end of file From fdd582f6552d7b83fd1e71179cc9e8a41b8f2b57 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Tue, 19 May 2026 16:53:01 +0800 Subject: [PATCH 07/22] chore: upgrade vrender & vchart --- common/config/rush/pnpm-config.json | 14 +-- common/config/rush/pnpm-lock.yaml | 136 ++++++++++++------------- docs/package.json | 4 +- packages/openinula-vtable/package.json | 4 +- packages/react-vtable/package.json | 4 +- packages/vtable-export/package.json | 4 +- packages/vtable-plugins/package.json | 4 +- packages/vtable-search/package.json | 4 +- packages/vtable/package.json | 14 +-- packages/vue-vtable/package.json | 4 +- 10 files changed, 96 insertions(+), 96 deletions(-) diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index ed651d5df1..a5f5c2afd0 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -83,12 +83,12 @@ * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides */ "globalOverrides": { - "@visactor/vchart": "2.1.0-alpha.6", - "@visactor/vrender": "1.1.0-alpha.20", - "@visactor/vrender-core": "1.1.0-alpha.20", - "@visactor/vrender-kits": "1.1.0-alpha.20", - "@visactor/vrender-components": "1.1.0-alpha.20", - "@visactor/vrender-animate": "1.1.0-alpha.20" + "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vrender": "1.1.0-alpha.21", + "@visactor/vrender-core": "1.1.0-alpha.21", + "@visactor/vrender-kits": "1.1.0-alpha.21", + "@visactor/vrender-components": "1.1.0-alpha.21", + "@visactor/vrender-animate": "1.1.0-alpha.21" }, /** * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors @@ -193,4 +193,4 @@ // }, // "pnpm": { "futurePnpmFeature": true } } -} \ No newline at end of file +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b994bd92d9..18f03abdcd 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -5,12 +5,12 @@ settings: excludeLinksFromLockfile: false overrides: - '@visactor/vchart': 2.1.0-alpha.6 - '@visactor/vrender': 1.1.0-alpha.20 - '@visactor/vrender-core': 1.1.0-alpha.20 - '@visactor/vrender-kits': 1.1.0-alpha.20 - '@visactor/vrender-components': 1.1.0-alpha.20 - '@visactor/vrender-animate': 1.1.0-alpha.20 + '@visactor/vchart': 2.1.0-alpha.9 + '@visactor/vrender': 1.1.0-alpha.21 + '@visactor/vrender-core': 1.1.0-alpha.21 + '@visactor/vrender-kits': 1.1.0-alpha.21 + '@visactor/vrender-components': 1.1.0-alpha.21 + '@visactor/vrender-animate': 1.1.0-alpha.21 pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= @@ -33,8 +33,8 @@ importers: specifier: workspace:* version: link:../packages/react-vtable '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@visactor/vtable': specifier: workspace:* version: link:../packages/vtable @@ -188,8 +188,8 @@ importers: specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 axios: specifier: ^1.4.0 version: 1.16.1 @@ -339,8 +339,8 @@ importers: specifier: 0.28.9 version: 0.28.9(@types/react@18.2.79) '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -438,20 +438,20 @@ importers: specifier: ~1.0.17 version: 1.0.23 '@visactor/vrender': - specifier: 1.1.0-alpha.20 - version: 1.1.0-alpha.20 + specifier: 1.1.0-alpha.21 + version: 1.1.0-alpha.21 '@visactor/vrender-animate': - specifier: 1.1.0-alpha.20 - version: 1.1.0-alpha.20 + specifier: 1.1.0-alpha.21 + version: 1.1.0-alpha.21 '@visactor/vrender-components': - specifier: 1.1.0-alpha.20 - version: 1.1.0-alpha.20 + specifier: 1.1.0-alpha.21 + version: 1.1.0-alpha.21 '@visactor/vrender-core': - specifier: 1.1.0-alpha.20 - version: 1.1.0-alpha.20 + specifier: 1.1.0-alpha.21 + version: 1.1.0-alpha.21 '@visactor/vrender-kits': - specifier: 1.1.0-alpha.20 - version: 1.1.0-alpha.20 + specifier: 1.1.0-alpha.21 + version: 1.1.0-alpha.21 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -520,8 +520,8 @@ importers: specifier: 18.2.25 version: 18.2.25 '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -915,8 +915,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -1253,8 +1253,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@visactor/vtable': specifier: workspace:* version: link:../vtable @@ -1410,8 +1410,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -1703,8 +1703,8 @@ importers: specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.1.0-alpha.6 - version: 2.1.0-alpha.6 + specifier: 2.1.0-alpha.9 + version: 2.1.0-alpha.9 '@vitejs/plugin-vue': specifier: ^5.0.3 version: 5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5)) @@ -3564,8 +3564,8 @@ packages: '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - '@visactor/vchart@2.1.0-alpha.6': - resolution: {integrity: sha512-lky1NdIU4/vP1RbR+eLkfLI1qNiFKRw4AtBj80jsFZc5b7T4XowuK5dWmAO98Evo5J4nTJ5vTx9eT80avo2OjA==} + '@visactor/vchart@2.1.0-alpha.9': + resolution: {integrity: sha512-TQVNLaxrIbumI2skEoJ3WU1AjvnErf7fahodk+OIcAcYUAGtIyFf68sO0U6V1AMTPhvPcI+oEGoyMgmPeBfkDg==} '@visactor/vdataset@1.0.23': resolution: {integrity: sha512-zrLk9FBUWJoW6b30XnPKzXwAXl8USdLDfed6QZLsmdkylRU8V7yZeXE2aKwU8Lg1U4HmQngqmqOx7/QlbX44Tg==} @@ -3573,20 +3573,20 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.1.0-alpha.20': - resolution: {integrity: sha512-7Az5vPb5qvps6rERE18x88LFMQQ6FE2q1vrzsYe6RLWraZcghPcNZQpvUPbr+0Xrd1l8w2q0oxqCIUOz08BTFg==} + '@visactor/vrender-animate@1.1.0-alpha.21': + resolution: {integrity: sha512-Eu7p3x7l7Jxi0d80BaJzF7LiD9cT/oHOsnl2FTUQjqqtSLoJfEJtxkmNSFtf/t4SaMh6kR92PcpBMwH9uLfFgw==} - '@visactor/vrender-components@1.1.0-alpha.20': - resolution: {integrity: sha512-PiXHY/7c5fqoIF9V0DvfQL826qOVw3QcCuuhGXx+jIlKszKPfkt/g8Q+4Hb4jk6WIvuCz7NvrTxeksymiv1tAw==} + '@visactor/vrender-components@1.1.0-alpha.21': + resolution: {integrity: sha512-p/VCdueSvLIfZC+rf0g9edt/se3DW3B9H3jlYe7FgEfJ3V5Nd8rGYmGbvptnK2uafqVe8U6PBMFwnspR3hxtpw==} - '@visactor/vrender-core@1.1.0-alpha.20': - resolution: {integrity: sha512-qaNSf9XqaXolz0IdWshRP+tT0ejFgLdGPiZM+zVkDWv1AAdkH6YBuHJ58ctXD9PcS6nmnzviBleXkZWONUlMZA==} + '@visactor/vrender-core@1.1.0-alpha.21': + resolution: {integrity: sha512-Q2Lg1UkaLYshQJMZ3VRL0I67byuytHN24Peh+rwX7/9ZhsuUc1qCkSs1NxFoNdmMF+3EHk6U9HXmyY8a8dxchg==} - '@visactor/vrender-kits@1.1.0-alpha.20': - resolution: {integrity: sha512-7wTAvvkIB0tq7PQoROzCvVbjE4zHHVz7GMk5Pv/TFeyReyetF39rlVrlCR/OE5emKjf7dHPYhKQCqOkJ4uRBWQ==} + '@visactor/vrender-kits@1.1.0-alpha.21': + resolution: {integrity: sha512-2R/RY2uXmUh5kFP469NfBOOf/kefMHMQyxMpr2wpLawBeKpqN/Jq+hI+ecXvh5vJIu7wB1/IKYIirOyJG2eMSg==} - '@visactor/vrender@1.1.0-alpha.20': - resolution: {integrity: sha512-t2vxpxrMss6aUuSCeZU+Ob76ltQb0ZLSwSpzItLl2yZXQZIo5otGd8JoAfeB/swhv0RAqs3JrOt8FocMD+NoBA==} + '@visactor/vrender@1.1.0-alpha.21': + resolution: {integrity: sha512-9YBs9XPuCzeC3EXFCmbBMq5Jlv80zX56g8WWwF0X3BmA+PVVaO9Y0j2GeOH/1KYh5Qf6ExJ0+ZmaghLPfi9aCQ==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} @@ -3594,8 +3594,8 @@ packages: '@visactor/vutils-extension@2.0.22': resolution: {integrity: sha512-PRxjplZF1/Qdsflb1hYh9DGGJdblq91yIG7CCC6MIlMMSlDYEAMJzJ9y2clnR1MgWa2AsAtMtuu+MSdG3DctUA==} - '@visactor/vutils-extension@2.1.0-alpha.6': - resolution: {integrity: sha512-24oo6V4hoGQTA7p4It6iifnuIi5mh5U3JQ3OsxeSkRTVupag4ARFfE0YO+EA38UGGFFMxb3IfhUyMTfb84zuBw==} + '@visactor/vutils-extension@2.1.0-alpha.9': + resolution: {integrity: sha512-TZ12sCLSOEpN3AGwvO3iNV0RGHyymplyXRTj4+YakJhbEc7JTRJBnGN5Pmxv2Dfn4TSplwI1raHJKayR8UkSEA==} '@visactor/vutils@1.0.23': resolution: {integrity: sha512-M8SLqgdHhKN8QmQKTWD1gzEaHptpIV9pvMYvC6+VeOsqYvZZ6UdhSCAAczTYVo+m/uwcEC2JHSUspbrs8rzlRQ==} @@ -11179,18 +11179,18 @@ snapshots: '@ungap/promise-all-settled@1.1.2': {} - '@visactor/vchart@2.1.0-alpha.6': + '@visactor/vchart@2.1.0-alpha.9': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender': 1.1.0-alpha.20 - '@visactor/vrender-animate': 1.1.0-alpha.20 - '@visactor/vrender-components': 1.1.0-alpha.20 - '@visactor/vrender-core': 1.1.0-alpha.20 - '@visactor/vrender-kits': 1.1.0-alpha.20 + '@visactor/vrender': 1.1.0-alpha.21 + '@visactor/vrender-animate': 1.1.0-alpha.21 + '@visactor/vrender-components': 1.1.0-alpha.21 + '@visactor/vrender-core': 1.1.0-alpha.21 + '@visactor/vrender-kits': 1.1.0-alpha.21 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension': 2.1.0-alpha.6 + '@visactor/vutils-extension': 2.1.0-alpha.9 '@visactor/vdataset@1.0.23': dependencies: @@ -11220,39 +11220,39 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.1.0-alpha.20': + '@visactor/vrender-animate@1.1.0-alpha.21': dependencies: - '@visactor/vrender-core': 1.1.0-alpha.20 + '@visactor/vrender-core': 1.1.0-alpha.21 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.1.0-alpha.20': + '@visactor/vrender-components@1.1.0-alpha.21': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.20 - '@visactor/vrender-core': 1.1.0-alpha.20 - '@visactor/vrender-kits': 1.1.0-alpha.20 + '@visactor/vrender-animate': 1.1.0-alpha.21 + '@visactor/vrender-core': 1.1.0-alpha.21 + '@visactor/vrender-kits': 1.1.0-alpha.21 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.1.0-alpha.20': + '@visactor/vrender-core@1.1.0-alpha.21': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-kits@1.1.0-alpha.20': + '@visactor/vrender-kits@1.1.0-alpha.21': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.1.0-alpha.20 + '@visactor/vrender-core': 1.1.0-alpha.21 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender@1.1.0-alpha.20': + '@visactor/vrender@1.1.0-alpha.21': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.20 - '@visactor/vrender-components': 1.1.0-alpha.20 - '@visactor/vrender-core': 1.1.0-alpha.20 - '@visactor/vrender-kits': 1.1.0-alpha.20 + '@visactor/vrender-animate': 1.1.0-alpha.21 + '@visactor/vrender-components': 1.1.0-alpha.21 + '@visactor/vrender-core': 1.1.0-alpha.21 + '@visactor/vrender-kits': 1.1.0-alpha.21 '@visactor/vscale@1.0.23': dependencies: @@ -11263,7 +11263,7 @@ snapshots: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension@2.1.0-alpha.6': + '@visactor/vutils-extension@2.1.0-alpha.9': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 diff --git a/docs/package.json b/docs/package.json index 0e51701302..bfb4f44f70 100644 --- a/docs/package.json +++ b/docs/package.json @@ -22,7 +22,7 @@ "@visactor/vtable-search": "workspace:*", "@visactor/vtable-sheet": "workspace:*", "buble": "^0.20.0", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "markdown-it": "^13.0.0", "highlight.js": "^11.8.0", "axios": "^1.4.0", @@ -54,4 +54,4 @@ "globby": "11.1.0", "chokidar": "^3.5.0" } -} \ No newline at end of file +} diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index 100d7b7977..4e5e1c742a 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -50,7 +50,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -97,4 +97,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/openinula-vtable" } -} \ No newline at end of file +} diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index 94d1585b06..0d2280d301 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -65,7 +65,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -116,4 +116,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/react-vtable" } -} \ No newline at end of file +} diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index ae60594e8f..ce23984799 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -46,7 +46,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -96,4 +96,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable-export" } -} \ No newline at end of file +} diff --git a/packages/vtable-plugins/package.json b/packages/vtable-plugins/package.json index 908372b3ed..2a480ff843 100644 --- a/packages/vtable-plugins/package.json +++ b/packages/vtable-plugins/package.json @@ -64,7 +64,7 @@ "@visactor/vtable": "workspace:*", "@visactor/vtable-editors": "workspace:*", "@visactor/vtable-gantt": "workspace:*", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -116,4 +116,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable-plugins" } -} \ No newline at end of file +} diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index cd2b9563df..b45a6b0041 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -42,7 +42,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -92,4 +92,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable-search" } -} \ No newline at end of file +} diff --git a/packages/vtable/package.json b/packages/vtable/package.json index a05b92bb59..bd41b759c5 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:*", - "@visactor/vrender": "1.1.0-alpha.20", - "@visactor/vrender-core": "1.1.0-alpha.20", - "@visactor/vrender-kits": "1.1.0-alpha.20", - "@visactor/vrender-components": "1.1.0-alpha.20", - "@visactor/vrender-animate": "1.1.0-alpha.20", + "@visactor/vrender": "1.1.0-alpha.21", + "@visactor/vrender-core": "1.1.0-alpha.21", + "@visactor/vrender-kits": "1.1.0-alpha.21", + "@visactor/vrender-components": "1.1.0-alpha.21", + "@visactor/vrender-animate": "1.1.0-alpha.21", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", @@ -70,7 +70,7 @@ "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", "luxon": "*", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -135,4 +135,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vtable" } -} \ No newline at end of file +} diff --git a/packages/vue-vtable/package.json b/packages/vue-vtable/package.json index e9e17184b0..284ffdc2c2 100644 --- a/packages/vue-vtable/package.json +++ b/packages/vue-vtable/package.json @@ -66,7 +66,7 @@ "@arco-design/web-vue": "^2.11.0", "increase-memory-limit": "^1.0.7", "cross-env": "^7.0.3", - "@visactor/vchart": "2.1.0-alpha.6", + "@visactor/vchart": "2.1.0-alpha.9", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", @@ -113,4 +113,4 @@ "url": "https://github.com/VisActor/VTable.git", "directory": "packages/vue-vtable" } -} \ No newline at end of file +} From 49599fbe0b11994285435118dea8fddc4c3fd5c1 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Tue, 26 May 2026 11:23:46 +0800 Subject: [PATCH 08/22] fix(vtable): align with VRender app ownership contract VRender treats ordinary animation frames as transient and now prefers app-scoped stage ownership. VTable writes fade-appear final opacity before animating from hidden state, creates internal stages from VRender apps, and treats supplied stages/apps as borrowed resources. The default path no longer performs VTable-side load*Env/register* bootstrap. The remaining legacy bridge is limited to custom contribution wiring and is covered by smoke tests. Constraint: Animation endpoints must not become static truth. Constraint: App creators own normal env/bootstrap setup. Rejected: Keep root env/register bootstrap | duplicates app creator ownership. Rejected: Release external stage/app | violates borrowed-resource ownership. Confidence: high Scope-risk: moderate Directive: Do not restore default load*Env/register* bootstrap without VRender review. Tested: Targeted VRender app, lifecycle, renderer bridge, and appear Jest suites. Tested: tsc --noEmit --pretty false. Tested: Node 20.19.6 canvas smoke for node app and VTable image buffer. Not-tested: Real-device wx/lynx/harmony/taro/feishu/tt smoke. --- .../vtable/__tests__/animation-appear.test.ts | 34 +++++ .../scenegraph-stage-ownership.test.ts | 30 +++++ .../__tests__/vrender-app-lifecycle.test.ts | 88 +++++++++++++ .../__tests__/vrender-app-renderer.test.ts | 85 +++++++++++- packages/vtable/__tests__/vrender-app.test.ts | 90 ++++++++++++- packages/vtable/src/core/BaseTable.ts | 4 +- .../vtable/src/scenegraph/animation/appear.ts | 32 ++++- .../contributions/chart-render-helper.ts | 7 +- packages/vtable/src/scenegraph/scenegraph.ts | 32 +++-- packages/vtable/src/ts-types/base-table.ts | 20 ++- packages/vtable/src/vrender-app.ts | 122 +++++++++++++++--- packages/vtable/src/vrender.ts | 66 +--------- 12 files changed, 507 insertions(+), 103 deletions(-) create mode 100644 packages/vtable/__tests__/scenegraph-stage-ownership.test.ts create mode 100644 packages/vtable/__tests__/vrender-app-lifecycle.test.ts diff --git a/packages/vtable/__tests__/animation-appear.test.ts b/packages/vtable/__tests__/animation-appear.test.ts index 5bb2ebbdf9..4c800ecc5d 100644 --- a/packages/vtable/__tests__/animation-appear.test.ts +++ b/packages/vtable/__tests__/animation-appear.test.ts @@ -1,6 +1,7 @@ // @ts-nocheck import { dealWithAnimationAppear } from '../src/scenegraph/animation/appear'; +import { createText, defaultTimeline, registerAnimate } from '../src/vrender'; type MockAnimationAppear = Partial<{ duration: number; @@ -67,6 +68,15 @@ function createTable(children: MockChild[], animationAppear: MockAnimationAppear } describe('dealWithAnimationAppear', () => { + beforeEach(() => { + registerAnimate(); + defaultTimeline.clear(); + }); + + afterEach(() => { + defaultTimeline.clear(); + }); + it('keeps the final opacity as static state and animates from hidden state', () => { const first = createChild(); const second = createChild(0.4); @@ -105,4 +115,28 @@ describe('dealWithAnimationAppear', () => { expect(animation.wait).toHaveBeenCalledWith(1500); expect(animation.from).toHaveBeenCalledWith({ opacity: 0 }, 1000, 'linear'); }); + + it('keeps VRender static and final opacity visible through the fade appear lifecycle', () => { + const child = createText({ text: 'cell', opacity: 1 }); + child.setFinalAttributes({ opacity: 0 }); + const table = createTable([child], { delay: 0, type: 'all' }); + + dealWithAnimationAppear(table as Parameters[0]); + + expect(child.attribute.opacity).toBe(0); + expect(child.baseAttributes.opacity).toBe(1); + expect(child.getFinalAttribute().opacity).toBe(1); + + defaultTimeline.tick(500); + + expect(child.attribute.opacity).toBeCloseTo(0.5); + expect(child.baseAttributes.opacity).toBe(1); + expect(child.getFinalAttribute().opacity).toBe(1); + + defaultTimeline.tick(500); + + expect(child.attribute.opacity).toBe(1); + expect(child.baseAttributes.opacity).toBe(1); + expect(child.getFinalAttribute().opacity).toBe(1); + }); }); diff --git a/packages/vtable/__tests__/scenegraph-stage-ownership.test.ts b/packages/vtable/__tests__/scenegraph-stage-ownership.test.ts new file mode 100644 index 0000000000..e8bf116fc5 --- /dev/null +++ b/packages/vtable/__tests__/scenegraph-stage-ownership.test.ts @@ -0,0 +1,30 @@ +// @ts-nocheck +import { Scenegraph } from '../src/scenegraph/scenegraph'; + +(globalThis as { __VERSION__?: string }).__VERSION__ = 'none'; + +describe('Scenegraph stage ownership', () => { + test('does not release a borrowed stage or app reference', () => { + const releaseStage = jest.fn(); + const releaseAppRef = jest.fn(); + const removeChild = jest.fn(); + const releaseTableGroup = jest.fn(); + const tableGroup = { + parent: { removeChild }, + release: releaseTableGroup + }; + const scenegraph = Object.create(Scenegraph.prototype); + + scenegraph.stage = { release: releaseStage }; + scenegraph.stageOwned = false; + scenegraph.releaseVRenderAppRef = releaseAppRef; + scenegraph.tableGroup = tableGroup; + + scenegraph.releaseStage(); + + expect(releaseStage).not.toHaveBeenCalled(); + expect(releaseAppRef).toHaveBeenCalledTimes(1); + expect(removeChild).toHaveBeenCalledWith(tableGroup); + expect(releaseTableGroup).toHaveBeenCalledWith(true); + }); +}); diff --git a/packages/vtable/__tests__/vrender-app-lifecycle.test.ts b/packages/vtable/__tests__/vrender-app-lifecycle.test.ts new file mode 100644 index 0000000000..dd1401ea98 --- /dev/null +++ b/packages/vtable/__tests__/vrender-app-lifecycle.test.ts @@ -0,0 +1,88 @@ +import { ListTable } from '../src'; +import { createStageFromVRenderApp } from '../src/vrender'; +import { createCanvas, createDiv, removeDom } from './dom'; + +(globalThis as { __VERSION__?: string }).__VERSION__ = 'none'; + +const columns = [{ field: 'name', caption: 'Name', width: 120 }]; +const records = [{ name: 'Alice' }]; + +describe('VTable VRender app-scoped lifecycle smoke', () => { + test('creates, renders, releases, and recreates a browser-managed stage', () => { + const container = createDiv(); + container.style.position = 'relative'; + container.style.width = '240px'; + container.style.height = '120px'; + const stages: unknown[] = []; + + try { + for (let i = 0; i < 2; i++) { + const beforeRender = jest.fn(); + const table = new ListTable({ + container, + columns, + records, + widthMode: 'standard', + heightMode: 'standard', + defaultRowHeight: 30, + vRenderAppScope: 'unit-browser-lifecycle', + beforeRender + }); + const stage = table.scenegraph.stage as { render: () => void; release: () => void }; + const releaseStage = jest.spyOn(stage, 'release'); + + expect(table.scenegraph.stageOwned).toBe(true); + expect(stage).toBeTruthy(); + expect(stages).not.toContain(stage); + + stage.render(); + expect(beforeRender).toHaveBeenCalled(); + + stages.push(stage); + table.release(); + expect(releaseStage).toHaveBeenCalledTimes(1); + releaseStage.mockRestore(); + } + } finally { + removeDom(container); + } + }); + + test('does not release an externally supplied borrowed stage', () => { + const canvas = createCanvas(); + canvas.width = 240; + canvas.height = 120; + const external = createStageFromVRenderApp( + { + canvas, + width: 240, + height: 120 + }, + { mode: 'browser', scope: 'unit-borrowed-stage' } + ); + const releaseStage = jest.spyOn(external.stage, 'release'); + + try { + const table = new ListTable({ + canvas, + stage: external.stage, + columns, + records, + widthMode: 'standard', + heightMode: 'standard', + defaultRowHeight: 30 + }); + + expect(table.scenegraph.stage).toBe(external.stage); + expect(table.scenegraph.stageOwned).toBe(false); + + table.release(); + expect(releaseStage).not.toHaveBeenCalled(); + } finally { + releaseStage.mockRestore(); + external.stage.release(); + external.releaseAppRef(); + removeDom(canvas); + } + }); +}); diff --git a/packages/vtable/__tests__/vrender-app-renderer.test.ts b/packages/vtable/__tests__/vrender-app-renderer.test.ts index fb2af1aef9..df049ba111 100644 --- a/packages/vtable/__tests__/vrender-app-renderer.test.ts +++ b/packages/vtable/__tests__/vrender-app-renderer.test.ts @@ -1,7 +1,25 @@ import '../src/scenegraph/scenegraph'; -import { createStageFromVRenderApp } from '../src/vrender'; +import { container, createStageFromVRenderApp, TextMeasureContribution } from '../src/vrender'; -(globalThis as any).__VERSION__ = 'none'; +(globalThis as { __VERSION__?: string }).__VERSION__ = 'none'; + +type RendererWithGroupContributions = { + constructor?: { name?: string }; + reInit?: () => void; + _groupRenderContribitions?: { constructor?: { name?: string } }[]; +}; + +type PickerWithContains = { + constructor?: { name?: string }; + type?: string; + contains?: ( + graphic: { attribute?: Record; AABBBounds: { containsPoint: () => boolean } }, + point: { + x: number; + y: number; + } + ) => unknown; +}; describe('VRender app renderer installation', () => { test('uses the VTable group renderer contributions for app-scoped stages', () => { @@ -18,12 +36,12 @@ describe('VRender app renderer installation', () => { try { const groupRenderer = app.registry.renderer .getAll() - .find(renderer => renderer.constructor?.name === 'DefaultCanvasGroupRender') as any; + .find(renderer => renderer.constructor?.name === 'DefaultCanvasGroupRender') as RendererWithGroupContributions; groupRenderer?.reInit?.(); const contributionNames = groupRenderer?._groupRenderContribitions?.map( - (contribution: { constructor?: { name?: string } }) => contribution.constructor?.name + contribution => contribution.constructor?.name ); expect(contributionNames).toContain('SplitGroupAfterRenderContribution'); @@ -32,4 +50,63 @@ describe('VRender app renderer installation', () => { releaseAppRef(); } }); + + test('uses the VTable chart picker contribution for app-scoped stages', () => { + const canvas = document.createElement('canvas'); + const { app, stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-picker-contributions' } + ); + + try { + const picker = app.registry.picker + .getAll() + .find(entry => entry.constructor?.name === 'VChartPicker') as unknown as PickerWithContains | undefined; + + expect(picker?.type).toBe('chart'); + expect( + picker?.contains?.( + { + attribute: {}, + AABBBounds: { + containsPoint: () => true + } + }, + { x: 1, y: 1 } + ) + ).toBe(true); + } finally { + stage.release(); + releaseAppRef(); + } + }); + + test('uses the VTable fast text measure contribution with app-scoped setup', () => { + const canvas = document.createElement('canvas'); + const { stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-text-measure-contribution' } + ); + + try { + const textMeasure = container.get<{ + constructor?: { name?: string }; + measureTextWidth: (text: string, options: { fontSize: number; fontFamily: string }) => number; + }>(TextMeasureContribution); + + expect(textMeasure.constructor?.name).toBe('FastTextMeasureContribution'); + expect(textMeasure.measureTextWidth('VTable', { fontSize: 12, fontFamily: 'Arial' })).toBeGreaterThan(0); + } finally { + stage.release(); + releaseAppRef(); + } + }); }); diff --git a/packages/vtable/__tests__/vrender-app.test.ts b/packages/vtable/__tests__/vrender-app.test.ts index 5ae1df5eeb..7a0efce3a4 100644 --- a/packages/vtable/__tests__/vrender-app.test.ts +++ b/packages/vtable/__tests__/vrender-app.test.ts @@ -2,21 +2,29 @@ jest.mock( '@visactor/vrender', () => ({ createBrowserVRenderApp: jest.fn(), - createNodeVRenderApp: jest.fn() + createNodeVRenderApp: jest.fn(), + createWxVRenderApp: jest.fn(), + createLynxVRenderApp: jest.fn(), + createHarmonyVRenderApp: jest.fn(), + createTaroVRenderApp: jest.fn(), + createFeishuVRenderApp: jest.fn(), + createTTVRenderApp: jest.fn() }), { virtual: true } ); -import { createBrowserVRenderApp, createNodeVRenderApp } from '@visactor/vrender'; +import { createBrowserVRenderApp, createNodeVRenderApp, createWxVRenderApp } from '@visactor/vrender'; +import type { IApp, IStage } from '@visactor/vrender-core'; import { createStageFromVRenderApp } from '../src/vrender'; const mockedCreateBrowserVRenderApp = createBrowserVRenderApp as jest.Mock; const mockedCreateNodeVRenderApp = createNodeVRenderApp as jest.Mock; +const mockedCreateWxVRenderApp = createWxVRenderApp as jest.Mock; function createMockApp() { const app = { released: false, - createStage: jest.fn((params: any) => ({ + createStage: jest.fn((params: unknown) => ({ params, release: jest.fn() })), @@ -32,6 +40,7 @@ describe('VRender app-scoped stage helper', () => { beforeEach(() => { mockedCreateBrowserVRenderApp.mockReset(); mockedCreateNodeVRenderApp.mockReset(); + mockedCreateWxVRenderApp.mockReset(); }); it('reuses the fallback app by env and scope until every retained stage is released', () => { @@ -71,13 +80,15 @@ describe('VRender app-scoped stage helper', () => { expect(secondApp.release).toHaveBeenCalledTimes(1); }); - it('uses the node app creator for node mode', () => { + it('uses the node app creator with envParams for node mode', () => { const app = createMockApp(); + const envParams = { createCanvas: jest.fn() }; mockedCreateNodeVRenderApp.mockReturnValue(app); - const created = createStageFromVRenderApp({ width: 100 }, { mode: 'node', scope: 'unit-node' }); + const created = createStageFromVRenderApp({ width: 100 }, { mode: 'node', scope: 'unit-node', envParams }); expect(mockedCreateNodeVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedCreateNodeVRenderApp).toHaveBeenCalledWith({ envParams }); expect(mockedCreateBrowserVRenderApp).not.toHaveBeenCalled(); expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); @@ -85,6 +96,75 @@ describe('VRender app-scoped stage helper', () => { expect(app.release).toHaveBeenCalledTimes(1); }); + it('keeps fallback node apps isolated by envParams identity', () => { + const firstApp = createMockApp(); + const secondApp = createMockApp(); + const firstEnvParams = { createCanvas: jest.fn() }; + const secondEnvParams = { createCanvas: jest.fn() }; + mockedCreateNodeVRenderApp.mockReturnValueOnce(firstApp).mockReturnValueOnce(secondApp); + + const first = createStageFromVRenderApp( + { width: 100 }, + { mode: 'node', scope: 'unit-node-envparams', envParams: firstEnvParams } + ); + const second = createStageFromVRenderApp( + { width: 100 }, + { mode: 'node', scope: 'unit-node-envparams', envParams: secondEnvParams } + ); + + expect(mockedCreateNodeVRenderApp).toHaveBeenCalledTimes(2); + expect(firstApp.createStage).toHaveBeenCalledTimes(1); + expect(secondApp.createStage).toHaveBeenCalledTimes(1); + + first.releaseAppRef(); + second.releaseAppRef(); + expect(firstApp.release).toHaveBeenCalledTimes(1); + expect(secondApp.release).toHaveBeenCalledTimes(1); + }); + + it('uses stable mini-app creators for stable mini modes', () => { + const app = createMockApp(); + const envParams = { canvasIdLists: ['unit'] }; + mockedCreateWxVRenderApp.mockReturnValue(app); + + const created = createStageFromVRenderApp({ width: 100 }, { mode: 'wx', scope: 'unit-wx', envParams }); + + expect(mockedCreateWxVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedCreateWxVRenderApp).toHaveBeenCalledWith({ envParams }); + expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); + + created.releaseAppRef(); + expect(app.release).toHaveBeenCalledTimes(1); + }); + + it('borrows an externally supplied app and only creates a VTable-owned stage from it', () => { + const app = createMockApp(); + + const created = createStageFromVRenderApp({ width: 100 }, { app: app as unknown as IApp }); + + expect(created.app).toBe(app); + expect(created.stageOwned).toBe(true); + expect(created.appOwned).toBe(false); + expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); + + created.releaseAppRef(); + expect(app.release).not.toHaveBeenCalled(); + }); + + it('borrows an externally supplied stage without creating or releasing an app', () => { + const stage = { release: jest.fn() } as unknown as IStage; + + const created = createStageFromVRenderApp({ width: 100 }, { stage }); + + expect(created.stage).toBe(stage); + expect(created.stageOwned).toBe(false); + expect(created.appOwned).toBe(false); + expect(created.releaseAppRef()).toBeUndefined(); + expect(stage.release).not.toHaveBeenCalled(); + expect(mockedCreateBrowserVRenderApp).not.toHaveBeenCalled(); + expect(mockedCreateNodeVRenderApp).not.toHaveBeenCalled(); + }); + it('releases the retained fallback app when stage creation throws', () => { const app = createMockApp(); const error = new Error('stage failed'); diff --git a/packages/vtable/src/core/BaseTable.ts b/packages/vtable/src/core/BaseTable.ts index 8269983d41..e1dcd25137 100644 --- a/packages/vtable/src/core/BaseTable.ts +++ b/packages/vtable/src/core/BaseTable.ts @@ -2695,7 +2695,9 @@ export abstract class BaseTable extends EventTarget implements BaseTableAPI { this.scenegraph?.component?.hScrollBar?.release(); this.animationManager.clear(); this.animationManager.ticker.release(); - this.scenegraph?.stage?.ticker?.release(); + if (this.scenegraph?.stageOwned) { + this.scenegraph?.stage?.ticker?.release(); + } const internalProps = this.internalProps; const canvas = internalProps?.canvas as any; diff --git a/packages/vtable/src/scenegraph/animation/appear.ts b/packages/vtable/src/scenegraph/animation/appear.ts index 85eed939d7..e1199815f4 100644 --- a/packages/vtable/src/scenegraph/animation/appear.ts +++ b/packages/vtable/src/scenegraph/animation/appear.ts @@ -1,6 +1,32 @@ import type { Text } from '@src/vrender'; import type { BaseTableAPI } from '../../ts-types/base-table'; +type OpacityAttribute = { + opacity?: Text['attribute']['opacity']; +}; + +type AppearGraphic = Text & { + getFinalAttribute?: () => OpacityAttribute | undefined; + setFinalAttributes?: (attribute: OpacityAttribute) => void; +}; + +function getAppearFinalOpacity(child: AppearGraphic) { + return child.attribute.opacity ?? child.getFinalAttribute?.()?.opacity ?? 1; +} + +function setAppearFinalOpacity(child: AppearGraphic, opacity: number) { + child.setAttribute('opacity', opacity); + + const finalAttribute = child.getFinalAttribute?.(); + if (finalAttribute) { + if (child.setFinalAttributes) { + child.setFinalAttributes({ opacity }); + } else { + finalAttribute.opacity = opacity; + } + } +} + export function dealWithAnimationAppear(table: BaseTableAPI) { if (!table.options.animationAppear) { return; @@ -32,11 +58,11 @@ export function dealWithAnimationAppear(table: BaseTableAPI) { for (let row = 0; row <= rowEnd; row++) { const cellGroup = scene.highPerformanceGetCell(col, row); if (cellGroup && cellGroup.role === 'cell') { - cellGroup.forEachChildren((child: Text) => { - const finalOpacity = child.attribute.opacity ?? 1; + cellGroup.forEachChildren((child: AppearGraphic) => { + const finalOpacity = getAppearFinalOpacity(child); const animationDelay = type === 'one-by-one' ? (direction === 'row' ? row : col) * (duration - delay) : delay; - child.setAttribute('opacity', finalOpacity); + setAppearFinalOpacity(child, finalOpacity); child.animate().wait(animationDelay).from({ opacity: 0 }, duration, 'linear'); }); } diff --git a/packages/vtable/src/scenegraph/graphic/contributions/chart-render-helper.ts b/packages/vtable/src/scenegraph/graphic/contributions/chart-render-helper.ts index fda4962a30..95dcbd3a6e 100644 --- a/packages/vtable/src/scenegraph/graphic/contributions/chart-render-helper.ts +++ b/packages/vtable/src/scenegraph/graphic/contributions/chart-render-helper.ts @@ -12,7 +12,7 @@ interface chartRenderQueueItem { //每次消费的图表数量 let batchRenderChartCount = 5; let isHandlingChartQueue = false; -let requestAnimationFrameId: number; +let requestAnimationFrameId: number | undefined; export function setBatchRenderChartCount(count: number) { if (isValid(count)) { batchRenderChartCount = count; @@ -22,7 +22,10 @@ export function clearChartRenderQueue() { chartRenderKeys = []; chartRenderQueueList = []; isHandlingChartQueue = false; - vglobal.getCancelAnimationFrame()(requestAnimationFrameId); + if (requestAnimationFrameId != null) { + vglobal.getCancelAnimationFrame()(requestAnimationFrameId); + requestAnimationFrameId = undefined; + } } export function IsHandlingChartQueue() { return isHandlingChartQueue; diff --git a/packages/vtable/src/scenegraph/scenegraph.ts b/packages/vtable/src/scenegraph/scenegraph.ts index 0f456e3cc9..8e4ae20029 100644 --- a/packages/vtable/src/scenegraph/scenegraph.ts +++ b/packages/vtable/src/scenegraph/scenegraph.ts @@ -13,9 +13,7 @@ import { type Stage, type Text, container, - loadPoptip, setPoptipTheme, - vglobal, registerForVrender } from '@src/vrender'; import type { CellRange, CellSubLocation, PivotChartConstructorOptions } from '../ts-types'; @@ -158,6 +156,7 @@ export class Scenegraph { lastSelectId: string; component: TableComponent; stage: IStage; + stageOwned: boolean = true; releaseVRenderAppRef?: () => void; table: BaseTableAPI; isPivot: boolean; @@ -208,20 +207,19 @@ export class Scenegraph { setPoptipTheme(this.table.theme.textPopTipStyle); let width; let height; - if (Env.mode === 'node') { - vglobal.setEnv('node', table.options.modeParams); + const mode = table.options.mode ?? (Env.mode === 'node' ? 'node' : 'browser'); + + if (mode === 'node') { width = table.canvasWidth; height = table.canvasHeight; } else if (table.options.canvas && table.options.viewBox) { - vglobal.setEnv('browser'); width = table.options.viewBox.x2 - table.options.viewBox.x1; height = table.options.viewBox.y2 - table.options.viewBox.y1; } else { - vglobal.setEnv('browser'); width = table.canvas.width; height = table.canvas.height; } - const { stage, releaseAppRef } = createStageFromVRenderApp( + const { stage, releaseAppRef, stageOwned } = createStageFromVRenderApp( { canvas: table.canvas, width, @@ -246,11 +244,19 @@ export class Scenegraph { canvasControled: !table.options.canvas, viewBox: table.options.viewBox, + context: { appName: 'vtable' }, ...table.options.renderOption }, - { mode: Env.mode === 'node' ? 'node' : 'browser', scope: 'vtable' } + { + mode, + scope: table.options.vRenderAppScope ?? 'vtable', + app: table.options.vRenderApp, + stage: table.options.stage, + envParams: table.options.modeParams + } ); this.stage = stage; + this.stageOwned = stageOwned; this.releaseVRenderAppRef = releaseAppRef; this.stage.defaultLayer.setTheme({ @@ -519,7 +525,15 @@ export class Scenegraph { this.releaseVRenderAppRef = undefined; try { - this.stage?.release(); + if (this.stageOwned) { + this.stage?.release(); + } else { + const tableGroup = this.tableGroup; + const tableGroupParent = tableGroup?.parent as Group | undefined; + + tableGroupParent?.removeChild?.(tableGroup); + tableGroup?.release?.(true); + } } finally { releaseAppRef?.(); } diff --git a/packages/vtable/src/ts-types/base-table.ts b/packages/vtable/src/ts-types/base-table.ts index 4c9811d85c..0f81699490 100644 --- a/packages/vtable/src/ts-types/base-table.ts +++ b/packages/vtable/src/ts-types/base-table.ts @@ -105,7 +105,7 @@ import type { EditManager } from '../edit/edit-manager'; import type { TableAnimationManager } from '../core/animation'; import type { CustomCellStylePlugin } from '../plugins/custom-cell-style'; import type { IVTablePlugin } from '../plugins/interface'; -import type { FederatedPointerEvent } from '@src/vrender'; +import type { FederatedPointerEvent, IApp, IStage } from '@src/vrender'; export interface IBaseTableProtected { element: HTMLElement; @@ -570,6 +570,10 @@ export interface BaseTableConstructorOptions { // #region for nodejs mode?: 'node' | 'browser'; + /** + * Node env params are passed to createNodeVRenderApp({ envParams: modeParams }). + * Release validation should use Node 20.19.6 or another version matching the canvas native binding ABI. + */ modeParams?: any; canvasWidth?: number | 'auto'; canvasHeight?: number | 'auto'; @@ -592,6 +596,20 @@ export interface BaseTableConstructorOptions { canvas?: HTMLCanvasElement; viewBox?: IBoundsLike; + /** + * Advanced VRender app provider. Normal VTable users do not need to pass an app. + * VTable creates and releases the stage it creates from this app, but app ownership remains with the caller. + */ + vRenderApp?: IApp; + /** + * Scope for VTable-managed shared VRender apps. Tables with the same scope, mode, and envParams share a ref-counted app. + */ + vRenderAppScope?: string; + /** + * Advanced borrowed VRender stage. When supplied, VTable only mounts its table group and will not release the stage or app. + * The caller owns the stage lifecycle. + */ + stage?: IStage; /** 具体同 VChart 的 Option 配置。会与表格中标准的 chart Option 配置进行合并,后在图表中使用。 */ chartOption?: any; disableInteraction?: boolean; diff --git a/packages/vtable/src/vrender-app.ts b/packages/vtable/src/vrender-app.ts index f2f3688262..c71063d5bf 100644 --- a/packages/vtable/src/vrender-app.ts +++ b/packages/vtable/src/vrender-app.ts @@ -1,9 +1,24 @@ -import { createBrowserVRenderApp, createNodeVRenderApp } from '@visactor/vrender'; +import { + createBrowserVRenderApp, + createFeishuVRenderApp, + createHarmonyVRenderApp, + createLynxVRenderApp, + createNodeVRenderApp, + createTaroVRenderApp, + createTTVRenderApp, + createWxVRenderApp +} from '@visactor/vrender'; import { container as legacyContainer, GraphicRender } from '@visactor/vrender-core'; -import type { IApp, IGraphicRender, IStage, IStageParams } from '@visactor/vrender-core'; +import type { IApp, IEnvParamsMap, IGraphicRender, IStage, IStageParams } from '@visactor/vrender-core'; import { Env } from './tools/env'; -type VRenderAppEnv = 'browser' | 'node'; +type StableVRenderAppEnv = 'browser' | 'node' | 'wx' | 'lynx' | 'harmony'; +// Keep public creator paths for Tier 2 runtimes, but do not treat them as stable default support without real-device smoke. +type Tier2VRenderAppEnv = 'taro' | 'feishu' | 'tt'; +type VRenderAppEnv = StableVRenderAppEnv | Tier2VRenderAppEnv; +type VRenderAppEntryOptions = { + envParams?: IEnvParamsMap[VRenderAppEnv]; +}; type DefaultVRenderAppRecord = { app: IApp; @@ -14,19 +29,47 @@ export type VRenderStageAppOptions = { mode?: VRenderAppEnv; scope?: string; app?: IApp; + stage?: IStage; + envParams?: IEnvParamsMap[VRenderAppEnv]; }; export type VRenderStageAppRef = { - app: IApp; + app?: IApp; stage: IStage; releaseAppRef: () => void; + stageOwned: boolean; + appOwned: boolean; }; const defaultVRenderApps = new Map(); +const envParamsKeyMap = new WeakMap(); +let envParamsKeyId = 0; const getVRenderAppEnv = (mode?: VRenderAppEnv): VRenderAppEnv => mode ?? (Env.mode === 'node' ? 'node' : 'browser'); -const getVRenderAppKey = (env: VRenderAppEnv, scope?: string): string => `${env}:${scope ?? 'default'}`; +const getEnvParamsKey = (envParams?: IEnvParamsMap[VRenderAppEnv]): string => { + if (envParams == null) { + return 'default'; + } + + if (typeof envParams === 'object' || typeof envParams === 'function') { + const envParamsObject = envParams as object; + const existingKey = envParamsKeyMap.get(envParamsObject); + + if (existingKey != null) { + return `object:${existingKey}`; + } + + envParamsKeyId += 1; + envParamsKeyMap.set(envParamsObject, envParamsKeyId); + return `object:${envParamsKeyId}`; + } + + return `primitive:${String(envParams)}`; +}; + +const getVRenderAppKey = (env: VRenderAppEnv, scope?: string, envParams?: IEnvParamsMap[VRenderAppEnv]): string => + `${env}:${scope ?? 'default'}:${getEnvParamsKey(envParams)}`; const createRendererRegistryKey = (renderer: IGraphicRender, prefix: string): string => { const type = renderer?.type ?? 'unknown'; @@ -60,16 +103,49 @@ const syncLegacyRenderersToApp = (app: IApp): void => { }); }; -const createDefaultVRenderApp = (env: VRenderAppEnv): IApp => { - const app = env === 'node' ? createNodeVRenderApp() : createBrowserVRenderApp(); +const createDefaultVRenderApp = (env: VRenderAppEnv, envParams?: IEnvParamsMap[VRenderAppEnv]): IApp => { + const entryOptions: VRenderAppEntryOptions | undefined = envParams == null ? undefined : { envParams }; + let app: IApp; + + switch (env) { + case 'node': + app = createNodeVRenderApp(entryOptions); + break; + case 'wx': + app = createWxVRenderApp(entryOptions); + break; + case 'lynx': + app = createLynxVRenderApp(entryOptions); + break; + case 'harmony': + app = createHarmonyVRenderApp(entryOptions); + break; + case 'taro': + app = createTaroVRenderApp(entryOptions); + break; + case 'feishu': + app = createFeishuVRenderApp(entryOptions); + break; + case 'tt': + app = createTTVRenderApp(entryOptions); + break; + case 'browser': + default: + app = createBrowserVRenderApp(entryOptions); + break; + } syncLegacyRenderersToApp(app); return app; }; -const getDefaultVRenderAppRecord = (env: VRenderAppEnv, scope?: string): DefaultVRenderAppRecord => { - const key = getVRenderAppKey(env, scope); +const getDefaultVRenderAppRecord = ( + env: VRenderAppEnv, + scope?: string, + envParams?: IEnvParamsMap[VRenderAppEnv] +): DefaultVRenderAppRecord => { + const key = getVRenderAppKey(env, scope, envParams); const record = defaultVRenderApps.get(key); if (record && !record.app.released) { @@ -77,7 +153,7 @@ const getDefaultVRenderAppRecord = (env: VRenderAppEnv, scope?: string): Default } const nextRecord = { - app: createDefaultVRenderApp(env), + app: createDefaultVRenderApp(env, envParams), refCount: 0 }; defaultVRenderApps.set(key, nextRecord); @@ -85,9 +161,9 @@ const getDefaultVRenderAppRecord = (env: VRenderAppEnv, scope?: string): Default return nextRecord; }; -const retainDefaultVRenderApp = (env: VRenderAppEnv, scope?: string) => { - const key = getVRenderAppKey(env, scope); - const record = getDefaultVRenderAppRecord(env, scope); +const retainDefaultVRenderApp = (env: VRenderAppEnv, scope?: string, envParams?: IEnvParamsMap[VRenderAppEnv]) => { + const key = getVRenderAppKey(env, scope, envParams); + const record = getDefaultVRenderAppRecord(env, scope, envParams); let released = false; record.refCount += 1; @@ -115,24 +191,40 @@ const resolveVRenderApp = (options: VRenderStageAppOptions = {}) => { if (options.app) { return { app: options.app, + appOwned: false, releaseAppRef: (): void => undefined }; } - return retainDefaultVRenderApp(getVRenderAppEnv(options.mode), options.scope); + return { + ...retainDefaultVRenderApp(getVRenderAppEnv(options.mode), options.scope, options.envParams), + appOwned: true + }; }; export function createStageFromVRenderApp( params: Partial, options: VRenderStageAppOptions = {} ): VRenderStageAppRef { + if (options.stage) { + return { + app: options.app, + stage: options.stage, + releaseAppRef: (): void => undefined, + stageOwned: false, + appOwned: false + }; + } + const resolvedApp = resolveVRenderApp(options); try { return { app: resolvedApp.app, stage: resolvedApp.app.createStage(params), - releaseAppRef: resolvedApp.releaseAppRef + releaseAppRef: resolvedApp.releaseAppRef, + stageOwned: true, + appOwned: resolvedApp.appOwned }; } catch (error) { resolvedApp.releaseAppRef(); diff --git a/packages/vtable/src/vrender.ts b/packages/vtable/src/vrender.ts index 16017dc075..2f07d4fc4c 100644 --- a/packages/vtable/src/vrender.ts +++ b/packages/vtable/src/vrender.ts @@ -1,36 +1,5 @@ import { loadPoptip } from '@visactor/vrender-components'; -import { - container as legacyContainer, - type ILegacyBindingContext, - isBrowserEnv, - isNodeEnv, - preLoadAllModule, - registerFlexLayoutPlugin -} from '@visactor/vrender-core'; -import { - loadBrowserEnv, - loadNodeEnv, - registerArc, - registerArc3d, - registerArea, - registerCircle, - registerGifImage, - registerGlyph, - registerGroup, - registerImage, - registerLine, - registerPath, - registerPolygon, - registerPyramid3d, - registerRect, - registerRect3d, - registerRichtext, - registerShadowRoot, - registerStar, - registerSymbol, - registerText, - registerWrapText -} from '@visactor/vrender-kits'; +import { container as legacyContainer, type ILegacyBindingContext } from '@visactor/vrender-core'; // 导出版本号 // export const version = __VERSION__; @@ -40,38 +9,9 @@ export function registerForVrender() { return; } registed = true; - // 注册内置组件 - preLoadAllModule(); - - if (isBrowserEnv()) { - loadBrowserEnv(legacyContainer); - } else if (isNodeEnv()) { - loadNodeEnv(legacyContainer); - } - registerArc(); - registerArc3d(); - registerArea(); - registerCircle(); - registerGlyph(); - registerGroup(); - registerGifImage(); - registerImage(); - registerLine(); - registerPath(); - registerPolygon(); - registerPyramid3d(); - registerRect(); - registerRect3d(); - registerRichtext(); - registerShadowRoot(); - registerStar(); - registerSymbol(); - registerText(); - registerFlexLayoutPlugin(); - registerWrapText(); + // Default env and graphic bootstrap is owned by create*VRenderApp(). + // VTable keeps only component/custom assembly that is not covered by the app creator. loadPoptip(); - - registerFlexLayoutPlugin(); } type LegacyBind = ILegacyBindingContext['bind']; From 183b7d1d9d2d83af6372874e656fbffb283137ca Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Mon, 1 Jun 2026 16:10:47 +0800 Subject: [PATCH 09/22] feat: align with VRender alpha shared state contract VRender 1.1.0-alpha.25 removes ordinary graphic stateProxy and moves shared app ownership behind @visactor/vrender/entries/shared. VTable now accepts states and sharedStateDefinitions on custom layout surfaces and resolves managed stages through the shared entry. The runtime bridge mirrors VTable renderer contributions into the VRender runtime installer context and reactivates both app-scoped and legacy envs before stage creation. Jest configs share the VRender package-export subpath mapper so package-level pre-push tests resolve alpha.25 CJS files consistently outside the VTable root. Constraint: VRender 1.1.0-alpha.25 removes graphic.stateProxy Constraint: VRender recommends the shared entry for managed apps Rejected: Keep VTable-owned app/refcount map | duplicates VRender shared registry Rejected: Preserve stateProxy adapter | keeps a removed VRender API as user surface Confidence: high Scope-risk: moderate Directive: Do not reintroduce stateProxy on ordinary graphics Directive: Use states or sharedStateDefinitions with resolver definitions Tested: rush test --only tag:package Tested: packages/vtable rushx test --runInBand (54 suites, 224 tests) Tested: packages/vtable rushx compile Tested: packages/react-vtable rushx compile Tested: targeted eslint for touched files, warnings only and no errors Tested: old VRender API rg scans returned no matches Tested: git diff --check Not-tested: Full React/OpenInula browser demo smoke --- .../config/jest/vrender-module-name-mapper.js | 45 + common/config/rush/pnpm-config.json | 10 +- common/config/rush/pnpm-lock.yaml | 1843 ++++++++--------- .../en/custom-layout/custom-layout.md | 18 +- .../zh/custom-layout/custom-layout.md | 18 +- .../custom-render/custom-cell-layout-jsx.md | 18 +- .../custom-render/custom-cell-layout-jsx.md | 18 +- .../34-How to implement text type buttons.md | 31 +- ..., similar to the DOM's mouseenter event.md | 18 +- .../34-How to implement text type buttons.md | 31 +- ..., similar to the DOM's mouseenter event.md | 18 +- .../guide/en/custom_define/custom_layout.md | 18 +- .../en/table_type/List_table/group_list.md | 20 +- .../guide/zh/custom_define/custom_layout.md | 20 +- .../zh/table_type/List_table/group_list.md | 19 +- .../src/list-table/list-custom-layout.tsx | 8 +- .../demo/src/component/custom-layout-dom.tsx | 8 +- .../demo/src/component/custom-layout.tsx | 8 +- .../src/list-table/list-custom-layout.tsx | 8 +- .../src/components/vrender-components/type.ts | 8 +- .../src/table-components/custom/graphic.ts | 7 +- packages/vtable-gantt/jest.config.js | 4 +- packages/vtable-sheet/jest.config.js | 2 + .../__tests__/scenegraph-custom-state.test.ts | 73 + .../__tests__/vrender-app-renderer.test.ts | 42 +- packages/vtable/__tests__/vrender-app.test.ts | 150 +- .../examples/custom-layout-jsx/pivot-jsx.tsx | 144 +- packages/vtable/examples/list/list-group.ts | 36 +- packages/vtable/jest.config.js | 2 + packages/vtable/package.json | 10 +- .../vtable/src/scenegraph/component/custom.ts | 9 +- .../vtable/src/scenegraph/component/menu.ts | 12 +- packages/vtable/src/ts-types/base-table.ts | 4 +- packages/vtable/src/vrender-app.ts | 170 +- packages/vtable/src/vrender.ts | 10 + packages/vue-vtable/jest.config.js | 2 + 36 files changed, 1511 insertions(+), 1351 deletions(-) create mode 100644 common/config/jest/vrender-module-name-mapper.js create mode 100644 packages/vtable/__tests__/scenegraph-custom-state.test.ts diff --git a/common/config/jest/vrender-module-name-mapper.js b/common/config/jest/vrender-module-name-mapper.js new file mode 100644 index 0000000000..283ecebf6a --- /dev/null +++ b/common/config/jest/vrender-module-name-mapper.js @@ -0,0 +1,45 @@ +function createVRenderModuleNameMapper(nodeModulesRoot = '/node_modules') { + const visactorRoot = `${nodeModulesRoot}/@visactor`; + + return { + '^@visactor/vrender/entries/(.*)$': `${visactorRoot}/vrender/cjs/entries/$1.js`, + '^@visactor/vrender-core/color-string$': `${visactorRoot}/vrender-core/cjs/color-string/index.js`, + '^@visactor/vrender-core/event/constant$': `${visactorRoot}/vrender-core/cjs/event/public-constant.js`, + '^@visactor/vrender-core/graphic/builtin-symbol$': + `${visactorRoot}/vrender-core/cjs/graphic/builtin-symbol/index.js`, + '^@visactor/vrender-core/render/draw-interceptor$': + `${visactorRoot}/vrender-core/cjs/render/contributions/render/draw-interceptor.js`, + '^@visactor/vrender-core/render/symbol$': + `${visactorRoot}/vrender-core/cjs/render/contributions/render/symbol.js`, + '^@visactor/vrender-core/(.*)$': `${visactorRoot}/vrender-core/cjs/$1.js`, + '^@visactor/vrender-kits/env$': `${visactorRoot}/vrender-kits/cjs/env/index.js`, + '^@visactor/vrender-kits/event/extension$': + `${visactorRoot}/vrender-kits/cjs/event/extension/index.js`, + '^@visactor/vrender-kits/(.*)$': `${visactorRoot}/vrender-kits/cjs/$1.js`, + '^@visactor/vrender-components/axis$': + `${visactorRoot}/vrender-components/cjs/axis/index.js`, + '^@visactor/vrender-components/axis/tick-data$': + `${visactorRoot}/vrender-components/cjs/axis/tick-data/index.js`, + '^@visactor/vrender-components/crosshair$': + `${visactorRoot}/vrender-components/cjs/crosshair/index.js`, + '^@visactor/vrender-components/label$': + `${visactorRoot}/vrender-components/cjs/label/index.js`, + '^@visactor/vrender-components/legend/discrete$': + `${visactorRoot}/vrender-components/cjs/legend/discrete/index.js`, + '^@visactor/vrender-components/poptip$': + `${visactorRoot}/vrender-components/cjs/poptip/index.js`, + '^@visactor/vrender-components/tag$': `${visactorRoot}/vrender-components/cjs/tag/index.js`, + '^@visactor/vrender-components/tooltip$': + `${visactorRoot}/vrender-components/cjs/tooltip/index.js`, + '^@visactor/vrender-components/util$': `${visactorRoot}/vrender-components/cjs/util/index.js`, + '^@visactor/vrender-components/(.*)$': `${visactorRoot}/vrender-components/cjs/$1.js`, + '^@visactor/vrender-animate/component$': + `${visactorRoot}/vrender-animate/cjs/component/index.js`, + '^@visactor/vrender-animate/state$': `${visactorRoot}/vrender-animate/cjs/state/index.js`, + '^@visactor/vrender-animate/(.*)$': `${visactorRoot}/vrender-animate/cjs/$1.js` + }; +} + +module.exports = { + createVRenderModuleNameMapper +}; diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index a5f5c2afd0..bd27606b5b 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -84,11 +84,11 @@ */ "globalOverrides": { "@visactor/vchart": "2.1.0-alpha.9", - "@visactor/vrender": "1.1.0-alpha.21", - "@visactor/vrender-core": "1.1.0-alpha.21", - "@visactor/vrender-kits": "1.1.0-alpha.21", - "@visactor/vrender-components": "1.1.0-alpha.21", - "@visactor/vrender-animate": "1.1.0-alpha.21" + "@visactor/vrender": "1.1.0-alpha.25", + "@visactor/vrender-core": "1.1.0-alpha.25", + "@visactor/vrender-kits": "1.1.0-alpha.25", + "@visactor/vrender-components": "1.1.0-alpha.25", + "@visactor/vrender-animate": "1.1.0-alpha.25" }, /** * 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 18f03abdcd..c69973bfcb 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: overrides: '@visactor/vchart': 2.1.0-alpha.9 - '@visactor/vrender': 1.1.0-alpha.21 - '@visactor/vrender-core': 1.1.0-alpha.21 - '@visactor/vrender-kits': 1.1.0-alpha.21 - '@visactor/vrender-components': 1.1.0-alpha.21 - '@visactor/vrender-animate': 1.1.0-alpha.21 + '@visactor/vrender': 1.1.0-alpha.25 + '@visactor/vrender-core': 1.1.0-alpha.25 + '@visactor/vrender-kits': 1.1.0-alpha.25 + '@visactor/vrender-components': 1.1.0-alpha.25 + '@visactor/vrender-animate': 1.1.0-alpha.25 pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= @@ -25,7 +25,7 @@ importers: version: 2.66.12(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@arco-design/web-vue': specifier: ^2.11.0 - version: 2.58.0(vue@3.5.34(typescript@4.9.5)) + version: 2.58.0(vue@3.5.35(typescript@4.9.5)) '@visactor/openinula-vtable': specifier: workspace:* version: link:../packages/openinula-vtable @@ -61,7 +61,7 @@ importers: version: 1.0.23 '@vue/compiler-dom': specifier: ^3.5.0 - version: 3.5.34 + version: 3.5.35 axios: specifier: ^1.4.0 version: 1.16.1 @@ -91,7 +91,7 @@ importers: version: 6.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) vue: specifier: ^3.4.14 - version: 3.5.34(typescript@4.9.5) + version: 3.5.35(typescript@4.9.5) devDependencies: '@internal/eslint-config': specifier: workspace:* @@ -116,7 +116,7 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) chalk: specifier: ^3.0.0 version: 3.0.0 @@ -140,7 +140,7 @@ importers: version: 4.9.5 vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) yargs: specifier: ^17.1.1 version: 17.7.2 @@ -183,7 +183,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -213,10 +213,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -249,19 +249,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -270,10 +270,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/react-vtable: dependencies: @@ -322,7 +322,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -343,7 +343,7 @@ importers: version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -367,10 +367,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -406,19 +406,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -427,10 +427,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable: dependencies: @@ -438,20 +438,20 @@ importers: specifier: ~1.0.17 version: 1.0.23 '@visactor/vrender': - specifier: 1.1.0-alpha.21 - version: 1.1.0-alpha.21 + specifier: 1.1.0-alpha.25 + version: 1.1.0-alpha.25 '@visactor/vrender-animate': - specifier: 1.1.0-alpha.21 - version: 1.1.0-alpha.21 + specifier: 1.1.0-alpha.25 + version: 1.1.0-alpha.25 '@visactor/vrender-components': - specifier: 1.1.0-alpha.21 - version: 1.1.0-alpha.21 + specifier: 1.1.0-alpha.25 + version: 1.1.0-alpha.25 '@visactor/vrender-core': - specifier: 1.1.0-alpha.21 - version: 1.1.0-alpha.21 + specifier: 1.1.0-alpha.25 + version: 1.1.0-alpha.25 '@visactor/vrender-kits': - specifier: 1.1.0-alpha.21 - version: 1.1.0-alpha.21 + specifier: 1.1.0-alpha.25 + version: 1.1.0-alpha.25 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -509,7 +509,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -524,7 +524,7 @@ importers: version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -563,10 +563,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -608,19 +608,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -629,10 +629,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-calendar: dependencies: @@ -675,7 +675,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -690,7 +690,7 @@ importers: version: 17.0.7 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -714,10 +714,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -756,19 +756,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -777,10 +777,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-editors: devDependencies: @@ -801,7 +801,7 @@ importers: version: 26.0.24 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -819,10 +819,10 @@ importers: version: 1.0.7 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) lint-staged: specifier: 12.3.7 version: 12.3.7 @@ -834,13 +834,13 @@ importers: version: 2.2.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 @@ -852,7 +852,7 @@ importers: version: 4.9.5 vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) ../../packages/vtable-export: dependencies: @@ -901,7 +901,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -919,7 +919,7 @@ importers: version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -943,10 +943,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -985,19 +985,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1006,10 +1006,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-gantt: dependencies: @@ -1064,7 +1064,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1076,7 +1076,7 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -1115,10 +1115,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1160,19 +1160,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1181,10 +1181,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-plugins: dependencies: @@ -1239,7 +1239,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1266,7 +1266,7 @@ importers: version: link:../vtable-gantt '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -1290,10 +1290,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1332,19 +1332,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1353,10 +1353,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-search: dependencies: @@ -1396,7 +1396,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1414,7 +1414,7 @@ importers: version: 2.1.0-alpha.9 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -1438,10 +1438,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1480,19 +1480,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1501,10 +1501,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-sheet: dependencies: @@ -1559,7 +1559,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1571,7 +1571,7 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -1589,10 +1589,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1631,19 +1631,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1652,10 +1652,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vue-vtable: dependencies: @@ -1668,7 +1668,7 @@ importers: devDependencies: '@arco-design/web-vue': specifier: ^2.11.0 - version: 2.58.0(vue@3.5.34(typescript@4.9.5)) + version: 2.58.0(vue@3.5.35(typescript@4.9.5)) '@babel/core': specifier: 7.20.12 version: 7.20.12 @@ -1698,7 +1698,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1707,7 +1707,7 @@ importers: version: 2.1.0-alpha.9 '@vitejs/plugin-vue': specifier: ^5.0.3 - version: 5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5)) + version: 5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5)) axios: specifier: ^1.4.0 version: 1.16.1 @@ -1734,10 +1734,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1767,19 +1767,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1788,13 +1788,13 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) vue: specifier: ^3.4.14 - version: 3.5.34(typescript@4.9.5) + version: 3.5.35(typescript@4.9.5) vue-eslint-parser: specifier: ^9.4.2 version: 9.4.3(eslint@8.18.0) @@ -1870,7 +1870,7 @@ importers: version: 1.1.4 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/node-fetch': specifier: 2.6.4 version: 2.6.4 @@ -1888,7 +1888,7 @@ importers: version: 2.6.7 ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1954,7 +1954,7 @@ importers: version: 0.1.1 '@vitejs/plugin-vue': specifier: ^5.0.3 - version: 5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5)) + version: 5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5)) autoprefixer: specifier: 10.4.13 version: 10.4.13(postcss@8.4.21) @@ -2017,7 +2017,7 @@ importers: version: 3.20.5 rollup-plugin-postcss: specifier: 4.0.2 - version: 4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + version: 4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) rollup-plugin-typescript2: specifier: 0.36.0 version: 0.36.0(rollup@3.20.5)(typescript@4.9.5) @@ -2093,7 +2093,7 @@ importers: version: 0.7.31 '@types/node': specifier: '*' - version: 25.7.0 + version: 25.9.1 '@types/semver': specifier: 7.3.12 version: 7.3.12 @@ -2120,7 +2120,7 @@ importers: version: 3.0.2 ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -2148,12 +2148,12 @@ packages: peerDependencies: vue: '>=3.1.0' - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.3': - resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} engines: {node: '>=6.9.0'} '@babel/core@7.20.12': @@ -2164,26 +2164,26 @@ packages: resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.29.3': - resolution: {integrity: sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==} + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.28.5': - resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + '@babel/helper-create-regexp-features-plugin@7.29.7': + resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2197,81 +2197,81 @@ packages: resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.28.5': - resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + '@babel/helper-remap-async-to-generator@7.29.7': + resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.28.6': - resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.28.6': - resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + '@babel/helper-wrap-function@7.29.7': + resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.29.2': - resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.3': - resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7': + resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7': + resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 @@ -2413,8 +2413,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-export-default-from@7.28.6': - resolution: {integrity: sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==} + '@babel/plugin-syntax-export-default-from@7.29.7': + resolution: {integrity: sha512-foag0BB37ROhdeIX9O8G0jX7hw0UekJc04cHMrYLOnrErsnBKqJGHJ8eDRpoCFZBvEPPygmmtw4qyU97qa4oOw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2424,14 +2424,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.28.6': - resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} + '@babel/plugin-syntax-import-assertions@7.29.7': + resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.28.6': - resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + '@babel/plugin-syntax-import-attributes@7.29.7': + resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2446,8 +2446,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.28.6': - resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2494,200 +2494,200 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.28.6': - resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + '@babel/plugin-transform-arrow-functions@7.29.7': + resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.28.6': - resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + '@babel/plugin-transform-async-to-generator@7.29.7': + resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + '@babel/plugin-transform-block-scoped-functions@7.29.7': + resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.6': - resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + '@babel/plugin-transform-block-scoping@7.29.7': + resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-classes@7.28.6': - resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + '@babel/plugin-transform-classes@7.29.7': + resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.28.6': - resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + '@babel/plugin-transform-computed-properties@7.29.7': + resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.28.5': - resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + '@babel/plugin-transform-destructuring@7.29.7': + resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.28.6': - resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} + '@babel/plugin-transform-dotall-regex@7.29.7': + resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + '@babel/plugin-transform-duplicate-keys@7.29.7': + resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.28.6': - resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} + '@babel/plugin-transform-exponentiation-operator@7.29.7': + resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + '@babel/plugin-transform-for-of@7.29.7': + resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + '@babel/plugin-transform-function-name@7.29.7': + resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + '@babel/plugin-transform-literals@7.29.7': + resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + '@babel/plugin-transform-member-expression-literals@7.29.7': + resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + '@babel/plugin-transform-modules-amd@7.29.7': + resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.28.6': - resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + '@babel/plugin-transform-modules-commonjs@7.29.7': + resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.4': - resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} + '@babel/plugin-transform-modules-systemjs@7.29.7': + resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + '@babel/plugin-transform-modules-umd@7.29.7': + resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + '@babel/plugin-transform-new-target@7.29.7': + resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + '@babel/plugin-transform-object-super@7.29.7': + resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.28.6': - resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + '@babel/plugin-transform-optional-chaining@7.29.7': + resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + '@babel/plugin-transform-parameters@7.29.7': + resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + '@babel/plugin-transform-property-literals@7.29.7': + resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.28.0': - resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} + '@babel/plugin-transform-react-display-name@7.29.7': + resolution: {integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + '@babel/plugin-transform-react-jsx-development@7.29.7': + resolution: {integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + '@babel/plugin-transform-react-jsx-self@7.29.7': + resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + '@babel/plugin-transform-react-jsx-source@7.29.7': + resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.28.6': - resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} + '@babel/plugin-transform-react-jsx@7.29.7': + resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + '@babel/plugin-transform-react-pure-annotations@7.29.7': + resolution: {integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.29.0': - resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + '@babel/plugin-transform-regenerator@7.29.7': + resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + '@babel/plugin-transform-reserved-words@7.29.7': + resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2698,50 +2698,50 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + '@babel/plugin-transform-shorthand-properties@7.29.7': + resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.28.6': - resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + '@babel/plugin-transform-spread@7.29.7': + resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + '@babel/plugin-transform-sticky-regex@7.29.7': + resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + '@babel/plugin-transform-template-literals@7.29.7': + resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + '@babel/plugin-transform-typeof-symbol@7.29.7': + resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.6': - resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} + '@babel/plugin-transform-typescript@7.29.7': + resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + '@babel/plugin-transform-unicode-escapes@7.29.7': + resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + '@babel/plugin-transform-unicode-regex@7.29.7': + resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2769,20 +2769,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -3221,8 +3221,8 @@ packages: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -3419,8 +3419,8 @@ packages: '@types/node@14.18.63': resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} - '@types/node@25.7.0': - resolution: {integrity: sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==} + '@types/node@25.9.1': + resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3448,8 +3448,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@17.0.91': - resolution: {integrity: sha512-xauZca6qMeCU3Moy0KxCM9jtf1vyk6qRYK39Ryf3afUqwgNUjRIGoDdS9BcGWgAMGSg1hvP4XcmlYrM66PtqeA==} + '@types/react@17.0.92': + resolution: {integrity: sha512-TqKlM6WfeXFUV0rKnRhe7yYctmCNfLHhJGyN3FRr70nwQmCM4pYRO1l0W8979K0Va72KGF1d8MPtT1kt0pw0ng==} '@types/react@18.2.79': resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} @@ -3573,20 +3573,20 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.1.0-alpha.21': - resolution: {integrity: sha512-Eu7p3x7l7Jxi0d80BaJzF7LiD9cT/oHOsnl2FTUQjqqtSLoJfEJtxkmNSFtf/t4SaMh6kR92PcpBMwH9uLfFgw==} + '@visactor/vrender-animate@1.1.0-alpha.25': + resolution: {integrity: sha512-vAzV46ZO4ghKTK9zfFLpsBm4X/u8Hih+GSyxIJmcWhItDw0ZHvRr3zOKtUZ4q9fpib0e+u+7oUe3+t71O50gFw==} - '@visactor/vrender-components@1.1.0-alpha.21': - resolution: {integrity: sha512-p/VCdueSvLIfZC+rf0g9edt/se3DW3B9H3jlYe7FgEfJ3V5Nd8rGYmGbvptnK2uafqVe8U6PBMFwnspR3hxtpw==} + '@visactor/vrender-components@1.1.0-alpha.25': + resolution: {integrity: sha512-gp3KcghfNQaSRnOwUX2oF2N8vP29iD7QYa7bB5cxr9EjRosOAGBZpbwnbkHSdQwlahc5dzdJ6tN2hpkOE0VGYA==} - '@visactor/vrender-core@1.1.0-alpha.21': - resolution: {integrity: sha512-Q2Lg1UkaLYshQJMZ3VRL0I67byuytHN24Peh+rwX7/9ZhsuUc1qCkSs1NxFoNdmMF+3EHk6U9HXmyY8a8dxchg==} + '@visactor/vrender-core@1.1.0-alpha.25': + resolution: {integrity: sha512-02HQr5RrH1WXKDP6iMLSS2HUb3YqR6Y2qgikQ3BzxnElppPs1F7VnWWVfVXhM9r9UGd0+PBkAJkz16wnjK6p4w==} - '@visactor/vrender-kits@1.1.0-alpha.21': - resolution: {integrity: sha512-2R/RY2uXmUh5kFP469NfBOOf/kefMHMQyxMpr2wpLawBeKpqN/Jq+hI+ecXvh5vJIu7wB1/IKYIirOyJG2eMSg==} + '@visactor/vrender-kits@1.1.0-alpha.25': + resolution: {integrity: sha512-i5GsKSmJ0nBwmGDuUhCpV/mGpZiuqj/xzBKXy8D4OBijhfJwa6Xbgvf5ihLHKPt97zHorsr52mT39AWR+ImXUQ==} - '@visactor/vrender@1.1.0-alpha.21': - resolution: {integrity: sha512-9YBs9XPuCzeC3EXFCmbBMq5Jlv80zX56g8WWwF0X3BmA+PVVaO9Y0j2GeOH/1KYh5Qf6ExJ0+ZmaghLPfi9aCQ==} + '@visactor/vrender@1.1.0-alpha.25': + resolution: {integrity: sha512-gmhv8bPe03t94ju5yxVIjuKquaf2aCTTeKpoPyyE9vmfYu93WAMQWQcWkOmGqji0v5cJr8eKWyxfqVyxs7rFOA==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} @@ -3628,34 +3628,34 @@ packages: '@vitest/utils@0.30.1': resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} - '@vue/compiler-core@3.5.34': - resolution: {integrity: sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==} + '@vue/compiler-core@3.5.35': + resolution: {integrity: sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==} - '@vue/compiler-dom@3.5.34': - resolution: {integrity: sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==} + '@vue/compiler-dom@3.5.35': + resolution: {integrity: sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==} - '@vue/compiler-sfc@3.5.34': - resolution: {integrity: sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==} + '@vue/compiler-sfc@3.5.35': + resolution: {integrity: sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==} - '@vue/compiler-ssr@3.5.34': - resolution: {integrity: sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==} + '@vue/compiler-ssr@3.5.35': + resolution: {integrity: sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==} - '@vue/reactivity@3.5.34': - resolution: {integrity: sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==} + '@vue/reactivity@3.5.35': + resolution: {integrity: sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==} - '@vue/runtime-core@3.5.34': - resolution: {integrity: sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==} + '@vue/runtime-core@3.5.35': + resolution: {integrity: sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==} - '@vue/runtime-dom@3.5.34': - resolution: {integrity: sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==} + '@vue/runtime-dom@3.5.35': + resolution: {integrity: sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==} - '@vue/server-renderer@3.5.34': - resolution: {integrity: sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==} + '@vue/server-renderer@3.5.35': + resolution: {integrity: sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==} peerDependencies: - vue: 3.5.34 + vue: 3.5.35 - '@vue/shared@3.5.34': - resolution: {integrity: sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==} + '@vue/shared@3.5.35': + resolution: {integrity: sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==} abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -4074,8 +4074,8 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} - baseline-browser-mapping@2.10.29: - resolution: {integrity: sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==} + baseline-browser-mapping@2.10.33: + resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==} engines: {node: '>=6.0.0'} hasBin: true @@ -4123,11 +4123,11 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - brace-expansion@1.1.14: - resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@2.1.0: - resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + brace-expansion@2.1.1: + resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} brace-expansion@5.0.6: resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} @@ -4238,8 +4238,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001792: - resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==} + caniuse-lite@1.0.30001793: + resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -4637,8 +4637,8 @@ packages: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} engines: {node: '>=6'} - dayjs@1.11.20: - resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + dayjs@1.11.21: + resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} debug-fabulous@1.1.0: resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} @@ -4840,8 +4840,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.355: - resolution: {integrity: sha512-LUPZhKzZPYSPme1jEYohpkA+ybYCJztr1quAdBd7E7h3+VOBVcKkwwtBJu41nrjawrRzfb8mtMfzWozoaK0ZIQ==} + electron-to-chromium@1.5.364: + resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} electron@11.5.0: resolution: {integrity: sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==} @@ -4868,8 +4868,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.21.3: - resolution: {integrity: sha512-QyL119InA+XXEkNLNTPCXPugSvOfhwv0JOlGNzvxs0hZaiHLNvXSpudUWsOlsXGWJh8G6ckCScEkVHfX3kw/2Q==} + enhanced-resolve@5.22.1: + resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==} engines: {node: '>=10.13.0'} entities@2.1.0: @@ -4912,8 +4912,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -5745,8 +5745,8 @@ packages: resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} engines: {node: '>=0.10.0'} - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} he@1.2.0: @@ -6462,8 +6462,8 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@4.2.0: + resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true jsbn@0.1.1: @@ -7008,8 +7008,9 @@ packages: node-notifier@8.0.2: resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - node-releases@2.0.44: - resolution: {integrity: sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==} + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + engines: {node: '>=18'} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -7636,8 +7637,8 @@ packages: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.14: - resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.1.2: @@ -8005,8 +8006,8 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.6: - resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} engines: {node: '>= 0.4'} hasBin: true @@ -8161,8 +8162,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.0: - resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} engines: {node: '>=10'} hasBin: true @@ -8650,8 +8651,8 @@ packages: resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + tmp@0.2.7: + resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} engines: {node: '>=14.14'} tmpl@1.0.5: @@ -8838,8 +8839,8 @@ packages: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} typedarray-to-buffer@3.1.5: @@ -8887,8 +8888,8 @@ packages: resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==} engines: {node: '>= 0.10'} - undici-types@7.21.0: - resolution: {integrity: sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==} + undici-types@7.24.6: + resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} unicode-canonical-property-names-ecmascript@1.0.4: resolution: {integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==} @@ -9122,8 +9123,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue@3.5.34: - resolution: {integrity: sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==} + vue@3.5.35: + resolution: {integrity: sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -9197,8 +9198,8 @@ packages: which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + which-typed-array@1.1.21: + resolution: {integrity: sha512-zbRA8cVm6io/d5W8uIe2hblzN76/Wm3v/yiythQvr+dpBWeqhPSWIDNj4zOyHi4zKbMK6DN34Xsr9jPHJERAEw==} engines: {node: '>= 0.4'} which@1.3.1: @@ -9247,11 +9248,11 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@5.2.4: - resolution: {integrity: sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ==} + ws@5.2.5: + resolution: {integrity: sha512-G0gACQIjFmv7NqpaOAXEpe9nEtRYD6ZCy2Ip/B4EzR08qEwnf/wYJoQd3cjosPdnJsHkeh0j2tzOaIBZIOC1yA==} - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + ws@7.5.11: + resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -9373,11 +9374,11 @@ snapshots: '@arco-design/web-react@2.66.12(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@arco-design/color': 0.4.0 - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 b-tween: 0.3.3 b-validate: 1.5.3 compute-scroll-into-view: 1.0.20 - dayjs: 1.11.20 + dayjs: 1.11.21 lodash: 4.17.21 number-precision: 1.6.0 react: 18.2.0 @@ -9391,38 +9392,38 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@arco-design/web-vue@2.58.0(vue@3.5.34(typescript@4.9.5))': + '@arco-design/web-vue@2.58.0(vue@3.5.35(typescript@4.9.5))': dependencies: '@arco-design/color': 0.4.0 b-tween: 0.3.3 b-validate: 1.5.3 compute-scroll-into-view: 1.0.20 - dayjs: 1.11.20 + dayjs: 1.11.21 number-precision: 1.6.0 resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.31 - vue: 3.5.34(typescript@4.9.5) + vue: 3.5.35(typescript@4.9.5) - '@babel/code-frame@7.29.0': + '@babel/code-frame@7.29.7': dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.3': {} + '@babel/compat-data@7.29.7': {} '@babel/core@7.20.12': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@babel/generator': 7.21.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) - '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.20.12) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 convert-source-map: 1.9.0 debug: 4.3.4(supports-color@9.4.0) gensync: 1.0.0-beta.2 @@ -9433,56 +9434,56 @@ snapshots: '@babel/generator@7.21.1': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 2.5.2 - '@babel/generator@7.29.1': + '@babel/generator@7.29.7': dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.27.3': + '@babel/helper-annotate-as-pure@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/helper-compilation-targets@7.28.6': + '@babel/helper-compilation-targets@7.29.7': dependencies: - '@babel/compat-data': 7.29.3 - '@babel/helper-validator-option': 7.27.1 + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.20.12)': + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.20.12) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.20.12) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.20.12)': + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-annotate-as-pure': 7.29.7 regexpu-core: 6.4.0 semver: 6.3.1 '@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 debug: 4.3.4(supports-color@9.4.0) lodash.debounce: 4.0.8 resolve: 1.22.12 @@ -9492,98 +9493,98 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} - '@babel/helper-member-expression-to-functions@7.28.5': + '@babel/helper-member-expression-to-functions@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.28.6': + '@babel/helper-module-imports@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.20.12)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.27.1': + '@babel/helper-optimise-call-expression@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/helper-plugin-utils@7.28.6': {} + '@babel/helper-plugin-utils@7.29.7': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.20.12)': + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-wrap-function': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.20.12)': + '@babel/helper-replace-supers@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.29.7': {} - '@babel/helper-wrap-function@7.28.6': + '@babel/helper-wrap-function@7.29.7': dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helpers@7.29.2': + '@babel/helpers@7.29.7': dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 - '@babel/parser@7.29.3': + '@babel/parser@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color @@ -9591,8 +9592,8 @@ snapshots: dependencies: '@babel/core': 7.20.12 '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.20.12) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.20.12) transitivePeerDependencies: - supports-color @@ -9600,16 +9601,16 @@ snapshots: '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color '@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.20.12) transitivePeerDependencies: - supports-color @@ -9617,65 +9618,65 @@ snapshots: '@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.20.12) '@babel/plugin-proposal-export-default-from@7.18.10(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-export-default-from': 7.29.7(@babel/core@7.20.12) '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.20.12) '@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12) '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12) '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.20.12) '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.20.12) '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.20.12)': dependencies: - '@babel/compat-data': 7.29.3 + '@babel/compat-data': 7.29.7 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.20.12) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.20.12) '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.20.12) '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.20.12) transitivePeerDependencies: - supports-color @@ -9683,17 +9684,17 @@ snapshots: '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.20.12) transitivePeerDependencies: - supports-color @@ -9701,332 +9702,332 @@ snapshots: '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-syntax-export-default-from@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.20.12) + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-classes@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-classes@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.20.12) - '@babel/traverse': 7.29.0 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.20.12) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.20.12)': + '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-literals@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.20.12)': + '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.20.12)': + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.20.12)': + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.20.12)': + '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.20.12) + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.20.12) - '@babel/types': 7.29.0 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.20.12) + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.20.12)': + '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-runtime@7.21.0(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.20.12) babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.20.12) babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.20.12) @@ -10034,65 +10035,65 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-spread@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-spread@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.20.12)': + '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.20.12) + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.20.12)': + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.20.12) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 '@babel/preset-env@7.20.2(@babel/core@7.20.12)': dependencies: - '@babel/compat-data': 7.29.3 + '@babel/compat-data': 7.29.7 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.20.12) + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.20.12) '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.20.12) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.20.12) '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.20.12) @@ -10113,7 +10114,7 @@ snapshots: '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.20.12) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.20.12) '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.20.12) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.20.12) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12) '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.20.12) @@ -10123,40 +10124,40 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.20.12) '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.20.12) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.20.12) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.20.12) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.20.12) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.20.12) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.20.12) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.20.12) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.20.12) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.20.12) '@babel/preset-modules': 0.1.6(@babel/core@7.20.12) - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.20.12) babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.20.12) babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.20.12) @@ -10168,57 +10169,57 @@ snapshots: '@babel/preset-modules@0.1.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.20.12) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.20.12) - '@babel/types': 7.29.0 + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.20.12) + '@babel/types': 7.29.7 esutils: 2.0.3 '@babel/preset-react@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.20.12) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.20.12) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color '@babel/preset-typescript@7.18.6(@babel/core@7.20.12)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.20.12) transitivePeerDependencies: - supports-color - '@babel/runtime@7.29.2': {} + '@babel/runtime@7.29.7': {} - '@babel/template@7.28.6': + '@babel/template@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 - '@babel/traverse@7.29.0': + '@babel/traverse@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 debug: 4.3.4(supports-color@9.4.0) transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': + '@babel/types@7.29.7': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 '@bcoe/v8-coverage@0.2.3': {} @@ -10265,7 +10266,7 @@ snapshots: globals: 13.24.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -10332,33 +10333,33 @@ snapshots: '@jest/console@26.6.2': dependencies: '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 slash: 3.0.0 - '@jest/core@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))': + '@jest/core@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))': dependencies: '@jest/console': 26.6.2 '@jest/reporters': 26.6.2 '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 26.6.2 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-snapshot: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 @@ -10388,7 +10389,7 @@ snapshots: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 jest-mock: 26.6.2 '@jest/fake-timers@24.9.0': @@ -10401,7 +10402,7 @@ snapshots: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 25.7.0 + '@types/node': 25.9.1 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -10477,19 +10478,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/test-sequencer@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))': + '@jest/test-sequencer@26.6.3': dependencies: '@jest/test-result': 26.6.2 graceful-fs: 4.2.11 jest-haste-map: 26.6.2 - jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) transitivePeerDependencies: - - bufferutil - - canvas - supports-color - - ts-node - - utf-8-validate '@jest/transform@24.9.0': dependencies: @@ -10542,7 +10539,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/yargs': 15.0.20 chalk: 4.1.2 @@ -10695,8 +10692,8 @@ snapshots: '@rollup/plugin-babel@6.0.3(@babel/core@7.20.12)(@types/babel__core@7.20.0)(rollup@3.20.5)': dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.28.6 - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@babel/helper-module-imports': 7.29.7 + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) optionalDependencies: '@types/babel__core': 7.20.0 rollup: 3.20.5 @@ -10705,7 +10702,7 @@ snapshots: '@rollup/plugin-commonjs@24.1.0(rollup@3.20.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 @@ -10721,7 +10718,7 @@ snapshots: '@rollup/plugin-node-resolve@15.0.2(rollup@3.20.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 @@ -10732,14 +10729,14 @@ snapshots: '@rollup/plugin-replace@5.0.2(rollup@3.20.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) magic-string: 0.27.0 optionalDependencies: rollup: 3.20.5 '@rollup/plugin-strip@3.0.2(rollup@3.20.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) estree-walker: 2.0.2 magic-string: 0.27.0 optionalDependencies: @@ -10755,7 +10752,7 @@ snapshots: '@rollup/plugin-typescript@11.1.0(rollup@3.20.5)(tslib@2.8.1)(typescript@4.9.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) resolve: 1.22.12 typescript: 4.9.5 optionalDependencies: @@ -10764,7 +10761,7 @@ snapshots: '@rollup/plugin-url@8.0.1(rollup@3.20.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@3.20.5) + '@rollup/pluginutils': 5.4.0(rollup@3.20.5) make-dir: 3.1.0 mime: 3.0.0 optionalDependencies: @@ -10782,7 +10779,7 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.2 - '@rollup/pluginutils@5.3.0(rollup@3.20.5)': + '@rollup/pluginutils@5.4.0(rollup@3.20.5)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 @@ -10858,24 +10855,24 @@ snapshots: '@types/babel__core@7.20.0': dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/buble@0.20.5': dependencies: @@ -10891,7 +10888,7 @@ snapshots: '@types/clean-css@4.2.6': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 source-map: 0.6.1 '@types/debug@4.1.7': @@ -10908,25 +10905,25 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/glob-stream@8.0.3': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/picomatch': 4.0.3 '@types/streamx': 2.9.5 '@types/glob-watcher@5.0.2': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/gulp-if@0.0.34': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/vinyl': 2.0.7 '@types/gulp-match@1.1.2': @@ -10936,7 +10933,7 @@ snapshots: '@types/gulp-sourcemaps@0.0.35': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/vinyl': 2.0.7 '@types/gulp@4.0.10': @@ -10984,7 +10981,7 @@ snapshots: '@types/merge2@1.4.0': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/minimatch@6.0.0': dependencies: @@ -10998,16 +10995,16 @@ snapshots: '@types/node-fetch@2.6.4': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 form-data: 3.0.4 '@types/node@12.20.55': {} '@types/node@14.18.63': {} - '@types/node@25.7.0': + '@types/node@25.9.1': dependencies: - undici-types: 7.21.0 + undici-types: 7.24.6 '@types/normalize-package-data@2.4.4': {} @@ -11025,13 +11022,13 @@ snapshots: '@types/react-is@17.0.7': dependencies: - '@types/react': 17.0.91 + '@types/react': 17.0.92 '@types/react-reconciler@0.28.9(@types/react@18.2.79)': dependencies: '@types/react': 18.2.79 - '@types/react@17.0.91': + '@types/react@17.0.92': dependencies: '@types/prop-types': 15.7.15 '@types/scheduler': 0.16.8 @@ -11044,7 +11041,7 @@ snapshots: '@types/resolve@0.0.8': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/resolve@1.20.2': {} @@ -11058,7 +11055,7 @@ snapshots: '@types/streamx@2.9.5': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/terser@3.12.0': dependencies: @@ -11066,26 +11063,26 @@ snapshots: '@types/through2@2.0.38': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/undertaker-registry@1.0.4': {} '@types/undertaker@1.2.8': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/undertaker-registry': 1.0.4 async-done: 1.3.2 '@types/vinyl-fs@3.0.7': dependencies: '@types/glob-stream': 8.0.3 - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/vinyl': 2.0.7 '@types/vinyl@2.0.7': dependencies: '@types/expect': 1.20.4 - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/yargs-parser@21.0.0': {} @@ -11108,7 +11105,7 @@ snapshots: functional-red-black-tree: 1.0.1 ignore: 5.3.2 regexpp: 3.2.0 - semver: 7.8.0 + semver: 7.8.1 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11152,7 +11149,7 @@ snapshots: debug: 4.3.4(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.8.0 + semver: 7.8.1 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11183,11 +11180,11 @@ snapshots: dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender': 1.1.0-alpha.21 - '@visactor/vrender-animate': 1.1.0-alpha.21 - '@visactor/vrender-components': 1.1.0-alpha.21 - '@visactor/vrender-core': 1.1.0-alpha.21 - '@visactor/vrender-kits': 1.1.0-alpha.21 + '@visactor/vrender': 1.1.0-alpha.25 + '@visactor/vrender-animate': 1.1.0-alpha.25 + '@visactor/vrender-components': 1.1.0-alpha.25 + '@visactor/vrender-core': 1.1.0-alpha.25 + '@visactor/vrender-kits': 1.1.0-alpha.25 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 '@visactor/vutils-extension': 2.1.0-alpha.9 @@ -11220,39 +11217,39 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.1.0-alpha.21': + '@visactor/vrender-animate@1.1.0-alpha.25': dependencies: - '@visactor/vrender-core': 1.1.0-alpha.21 + '@visactor/vrender-core': 1.1.0-alpha.25 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.1.0-alpha.21': + '@visactor/vrender-components@1.1.0-alpha.25': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.21 - '@visactor/vrender-core': 1.1.0-alpha.21 - '@visactor/vrender-kits': 1.1.0-alpha.21 + '@visactor/vrender-animate': 1.1.0-alpha.25 + '@visactor/vrender-core': 1.1.0-alpha.25 + '@visactor/vrender-kits': 1.1.0-alpha.25 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.1.0-alpha.21': + '@visactor/vrender-core@1.1.0-alpha.25': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-kits@1.1.0-alpha.21': + '@visactor/vrender-kits@1.1.0-alpha.25': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.1.0-alpha.21 + '@visactor/vrender-core': 1.1.0-alpha.25 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender@1.1.0-alpha.21': + '@visactor/vrender@1.1.0-alpha.25': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.21 - '@visactor/vrender-components': 1.1.0-alpha.21 - '@visactor/vrender-core': 1.1.0-alpha.21 - '@visactor/vrender-kits': 1.1.0-alpha.21 + '@visactor/vrender-animate': 1.1.0-alpha.25 + '@visactor/vrender-components': 1.1.0-alpha.25 + '@visactor/vrender-core': 1.1.0-alpha.25 + '@visactor/vrender-kits': 1.1.0-alpha.25 '@visactor/vscale@1.0.23': dependencies: @@ -11274,21 +11271,21 @@ snapshots: '@turf/invariant': 6.5.0 eventemitter3: 4.0.7 - '@vitejs/plugin-react@3.1.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))': + '@vitejs/plugin-react@3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))': dependencies: '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.20.12) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.20.12) + '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.20.12) + '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.20.12) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.34(typescript@4.9.5))': + '@vitejs/plugin-vue@5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5))': dependencies: - vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vue: 3.5.34(typescript@4.9.5) + vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vue: 3.5.35(typescript@4.9.5) '@vitest/expect@0.30.1': dependencies: @@ -11319,59 +11316,59 @@ snapshots: loupe: 2.3.7 pretty-format: 27.5.1 - '@vue/compiler-core@3.5.34': + '@vue/compiler-core@3.5.35': dependencies: - '@babel/parser': 7.29.3 - '@vue/shared': 3.5.34 + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.35 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.34': + '@vue/compiler-dom@3.5.35': dependencies: - '@vue/compiler-core': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/compiler-core': 3.5.35 + '@vue/shared': 3.5.35 - '@vue/compiler-sfc@3.5.34': + '@vue/compiler-sfc@3.5.35': dependencies: - '@babel/parser': 7.29.3 - '@vue/compiler-core': 3.5.34 - '@vue/compiler-dom': 3.5.34 - '@vue/compiler-ssr': 3.5.34 - '@vue/shared': 3.5.34 + '@babel/parser': 7.29.7 + '@vue/compiler-core': 3.5.35 + '@vue/compiler-dom': 3.5.35 + '@vue/compiler-ssr': 3.5.35 + '@vue/shared': 3.5.35 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.14 + postcss: 8.5.15 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.34': + '@vue/compiler-ssr@3.5.35': dependencies: - '@vue/compiler-dom': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/compiler-dom': 3.5.35 + '@vue/shared': 3.5.35 - '@vue/reactivity@3.5.34': + '@vue/reactivity@3.5.35': dependencies: - '@vue/shared': 3.5.34 + '@vue/shared': 3.5.35 - '@vue/runtime-core@3.5.34': + '@vue/runtime-core@3.5.35': dependencies: - '@vue/reactivity': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/reactivity': 3.5.35 + '@vue/shared': 3.5.35 - '@vue/runtime-dom@3.5.34': + '@vue/runtime-dom@3.5.35': dependencies: - '@vue/reactivity': 3.5.34 - '@vue/runtime-core': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/reactivity': 3.5.35 + '@vue/runtime-core': 3.5.35 + '@vue/shared': 3.5.35 csstype: 3.2.3 - '@vue/server-renderer@3.5.34(vue@3.5.34(typescript@4.9.5))': + '@vue/server-renderer@3.5.35(vue@3.5.35(typescript@4.9.5))': dependencies: - '@vue/compiler-ssr': 3.5.34 - '@vue/shared': 3.5.34 - vue: 3.5.34(typescript@4.9.5) + '@vue/compiler-ssr': 3.5.35 + '@vue/shared': 3.5.35 + vue: 3.5.35(typescript@4.9.5) - '@vue/shared@3.5.34': {} + '@vue/shared@3.5.35': {} abab@2.0.6: {} @@ -11577,7 +11574,7 @@ snapshots: call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 @@ -11629,7 +11626,7 @@ snapshots: es-abstract: 1.24.2 es-array-method-boxes-properly: 1.0.0 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 is-string: 1.1.1 arraybuffer.prototype.slice@1.0.4: @@ -11680,7 +11677,7 @@ snapshots: autoprefixer@10.4.13(postcss@8.4.21): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001792 + caniuse-lite: 1.0.30001793 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -11744,13 +11741,13 @@ snapshots: babel-plugin-import@1.13.6: dependencies: - '@babel/helper-module-imports': 7.28.6 + '@babel/helper-module-imports': 7.29.7 transitivePeerDependencies: - supports-color babel-plugin-istanbul@5.2.0: dependencies: - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 find-up: 3.0.0 istanbul-lib-instrument: 3.3.0 test-exclude: 5.2.3 @@ -11759,7 +11756,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.6 istanbul-lib-instrument: 5.2.1 @@ -11773,14 +11770,14 @@ snapshots: babel-plugin-jest-hoist@26.6.2: dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.0 '@types/babel__traverse': 7.28.0 babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.20.12): dependencies: - '@babel/compat-data': 7.29.3 + '@babel/compat-data': 7.29.7 '@babel/core': 7.20.12 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12) semver: 6.3.1 @@ -11809,7 +11806,7 @@ snapshots: '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.20.12) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.20.12) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.20.12) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.20.12) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.20.12) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.20.12) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12) @@ -11861,7 +11858,7 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 - baseline-browser-mapping@2.10.29: {} + baseline-browser-mapping@2.10.33: {} bcrypt-pbkdf@1.0.2: dependencies: @@ -11902,12 +11899,12 @@ snapshots: boolean@3.2.0: optional: true - brace-expansion@1.1.14: + brace-expansion@1.1.15: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.0: + brace-expansion@2.1.1: dependencies: balanced-match: 1.0.2 @@ -11942,10 +11939,10 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.29 - caniuse-lite: 1.0.30001792 - electron-to-chromium: 1.5.355 - node-releases: 2.0.44 + baseline-browser-mapping: 2.10.33 + caniuse-lite: 1.0.30001793 + electron-to-chromium: 1.5.364 + node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) bs-logger@0.2.6: @@ -12037,11 +12034,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001792 + caniuse-lite: 1.0.30001793 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001792: {} + caniuse-lite@1.0.30001793: {} capture-exit@2.0.0: dependencies: @@ -12546,7 +12543,7 @@ snapshots: dependencies: time-zone: 1.0.0 - dayjs@1.11.20: {} + dayjs@1.11.21: {} debug-fabulous@1.1.0: dependencies: @@ -12668,7 +12665,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 csstype: 3.2.3 dom-serializer@1.4.1: @@ -12739,7 +12736,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.355: {} + electron-to-chromium@1.5.364: {} electron@11.5.0: dependencies: @@ -12764,7 +12761,7 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.21.3: + enhanced-resolve@5.22.1: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -12800,7 +12797,7 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -12812,7 +12809,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -12841,9 +12838,9 @@ snapshots: typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 + typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 + which-typed-array: 1.1.21 es-array-method-boxes-properly@1.0.0: {} @@ -12851,7 +12848,7 @@ snapshots: es-errors@1.3.0: {} - es-object-atoms@1.1.1: + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 @@ -12860,11 +12857,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 es-to-primitive@1.3.0: dependencies: @@ -13044,7 +13041,7 @@ snapshots: object.hasown: 1.1.4 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.6 + resolve: 2.0.0-next.7 semver: 6.3.1 string.prototype.matchall: 4.0.12 @@ -13056,7 +13053,7 @@ snapshots: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.8.0 + semver: 7.8.1 vue-eslint-parser: 9.4.3(eslint@8.18.0) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -13106,7 +13103,7 @@ snapshots: import-fresh: 3.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 - js-yaml: 4.1.1 + js-yaml: 4.2.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -13166,12 +13163,12 @@ snapshots: exceljs@4.4.0: dependencies: archiver: 5.3.2 - dayjs: 1.11.20 + dayjs: 1.11.21 fast-csv: 4.3.6 jszip: 3.10.1 readable-stream: 3.6.2 saxes: 5.0.1 - tmp: 0.2.5 + tmp: 0.2.7 unzipper: 0.10.14 uuid: 8.3.2 @@ -13445,7 +13442,7 @@ snapshots: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.3 + hasown: 2.0.4 mime-types: 2.1.35 form-data@4.0.5: @@ -13453,7 +13450,7 @@ snapshots: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.3 + hasown: 2.0.4 mime-types: 2.1.35 fraction.js@4.3.7: {} @@ -13511,7 +13508,7 @@ snapshots: call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.3 + hasown: 2.0.4 is-callable: 1.2.7 functional-red-black-tree@1.0.1: {} @@ -13558,12 +13555,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-package-type@0.1.0: {} @@ -13571,7 +13568,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-stdin@6.0.0: {} @@ -13781,7 +13778,7 @@ snapshots: gulp-replace@1.1.4: dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@types/vinyl': 2.0.7 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -13874,7 +13871,7 @@ snapshots: is-number: 3.0.0 kind-of: 4.0.0 - hasown@2.0.3: + hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -14002,7 +13999,7 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.3 + hasown: 2.0.4 side-channel: 1.1.0 internmap@2.0.3: {} @@ -14024,7 +14021,7 @@ snapshots: is-accessor-descriptor@1.0.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-array-buffer@3.0.5: dependencies: @@ -14075,11 +14072,11 @@ snapshots: is-core-module@2.16.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-descriptor@1.0.1: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -14187,7 +14184,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 is-relative@1.0.0: dependencies: @@ -14216,7 +14213,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.20 + which-typed-array: 1.1.21 is-typedarray@1.0.0: {} @@ -14273,10 +14270,10 @@ snapshots: istanbul-lib-instrument@3.3.0: dependencies: '@babel/generator': 7.21.1 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 istanbul-lib-coverage: 2.0.5 semver: 6.3.1 transitivePeerDependencies: @@ -14294,7 +14291,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.20.12 - '@babel/parser': 7.29.3 + '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -14331,9 +14328,9 @@ snapshots: execa: 4.1.0 throat: 5.0.0 - jest-cli@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + jest-cli@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: - '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 chalk: 4.1.2 @@ -14341,7 +14338,7 @@ snapshots: graceful-fs: 4.2.11 import-local: 3.2.0 is-ci: 2.0.0 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-util: 26.6.2 jest-validate: 26.6.2 prompts: 2.4.2 @@ -14375,10 +14372,10 @@ snapshots: transitivePeerDependencies: - supports-color - jest-config@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + jest-config@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: '@babel/core': 7.20.12 - '@jest/test-sequencer': 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + '@jest/test-sequencer': 26.6.3 '@jest/types': 26.6.2 babel-jest: 26.6.3(@babel/core@7.20.12) chalk: 4.1.2 @@ -14388,7 +14385,7 @@ snapshots: jest-environment-jsdom: 26.6.2 jest-environment-node: 26.6.2 jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-jasmine2: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-util: 26.6.2 @@ -14396,7 +14393,7 @@ snapshots: micromatch: 4.0.8 pretty-format: 26.6.2 optionalDependencies: - ts-node: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) transitivePeerDependencies: - bufferutil - canvas @@ -14441,10 +14438,10 @@ snapshots: jest-util: 26.6.2 pretty-format: 26.6.2 - jest-electron@0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))): + jest-electron@0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))): dependencies: electron: 11.5.0 - jest: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-haste-map: 24.9.0 jest-message-util: 24.9.0 jest-mock: 24.9.0 @@ -14473,7 +14470,7 @@ snapshots: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -14498,7 +14495,7 @@ snapshots: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -14526,7 +14523,7 @@ snapshots: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.9 - '@types/node': 25.7.0 + '@types/node': 25.9.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14542,7 +14539,7 @@ snapshots: jest-jasmine2@24.9.0: dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.29.7 '@jest/environment': 24.9.0 '@jest/test-result': 24.9.0 '@jest/types': 24.9.0 @@ -14561,14 +14558,14 @@ snapshots: transitivePeerDependencies: - supports-color - jest-jasmine2@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + jest-jasmine2@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.29.7 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -14576,7 +14573,7 @@ snapshots: jest-each: 26.6.2 jest-matcher-utils: 26.6.2 jest-message-util: 26.6.2 - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-snapshot: 26.6.2 jest-util: 26.6.2 pretty-format: 26.6.2 @@ -14614,7 +14611,7 @@ snapshots: jest-message-util@24.9.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@jest/test-result': 24.9.0 '@jest/types': 24.9.0 '@types/stack-utils': 1.0.1 @@ -14625,7 +14622,7 @@ snapshots: jest-message-util@26.6.2: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@jest/types': 26.6.2 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -14642,7 +14639,7 @@ snapshots: jest-mock@26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 jest-pnp-resolver@1.2.3(jest-resolve@24.9.0): optionalDependencies: @@ -14705,24 +14702,24 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runner@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + jest-runner@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: '@jest/console': 26.6.2 '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-docblock: 26.0.0 jest-haste-map: 26.6.2 jest-leak-detector: 26.6.2 jest-message-util: 26.6.2 jest-resolve: 26.6.2 - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-util: 26.6.2 jest-worker: 26.6.2 source-map-support: 0.5.21 @@ -14762,7 +14759,7 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runtime@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + jest-runtime@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: '@jest/console': 26.6.2 '@jest/environment': 26.6.2 @@ -14779,7 +14776,7 @@ snapshots: exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-mock: 26.6.2 @@ -14802,12 +14799,12 @@ snapshots: jest-serializer@26.6.2: dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 graceful-fs: 4.2.11 jest-snapshot@24.9.0: dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@jest/types': 24.9.0 chalk: 2.4.2 expect: 24.9.0 @@ -14823,7 +14820,7 @@ snapshots: jest-snapshot@26.6.2: dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@jest/types': 26.6.2 '@types/babel__traverse': 7.28.0 '@types/prettier': 2.7.3 @@ -14860,7 +14857,7 @@ snapshots: jest-util@26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -14888,7 +14885,7 @@ snapshots: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.7.0 + '@types/node': 25.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -14901,15 +14898,15 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 merge-stream: 2.0.0 supports-color: 7.2.0 - jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: - '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) import-local: 3.2.0 - jest-cli: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest-cli: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) transitivePeerDependencies: - bufferutil - canvas @@ -14934,7 +14931,7 @@ snapshots: dependencies: argparse: 2.0.1 - js-yaml@4.1.1: + js-yaml@4.2.0: dependencies: argparse: 2.0.1 @@ -14966,7 +14963,7 @@ snapshots: whatwg-encoding: 1.0.5 whatwg-mimetype: 2.3.0 whatwg-url: 6.5.0 - ws: 5.2.4 + ws: 5.2.5 xml-name-validator: 3.0.0 jsdom@16.7.0: @@ -14996,7 +14993,7 @@ snapshots: whatwg-encoding: 1.0.5 whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 - ws: 7.5.10 + ws: 7.5.11 xml-name-validator: 3.0.0 transitivePeerDependencies: - bufferutil @@ -15326,7 +15323,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.8.0 + semver: 7.8.1 make-error@1.3.6: {} @@ -15441,15 +15438,15 @@ snapshots: minimatch@3.0.4: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@5.1.9: dependencies: - brace-expansion: 2.1.0 + brace-expansion: 2.1.1 minimist@1.2.0: {} @@ -15566,7 +15563,7 @@ snapshots: which: 2.0.2 optional: true - node-releases@2.0.44: {} + node-releases@2.0.46: {} normalize-package-data@2.5.0: dependencies: @@ -15638,7 +15635,7 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -15654,14 +15651,14 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.fromentries@2.0.8: dependencies: call-bind: 1.0.9 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.getownpropertydescriptors@2.1.9: dependencies: @@ -15669,7 +15666,7 @@ snapshots: call-bind: 1.0.9 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 gopd: 1.2.0 safe-array-concat: 1.1.4 @@ -15677,7 +15674,7 @@ snapshots: dependencies: define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.map@1.0.1: dependencies: @@ -15698,7 +15695,7 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 once@1.4.0: dependencies: @@ -15810,7 +15807,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -15996,13 +15993,13 @@ snapshots: dependencies: postcss: 8.4.21 - postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: lilconfig: 2.1.0 yaml: 1.10.3 optionalDependencies: postcss: 8.4.21 - ts-node: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) postcss-merge-longhand@5.1.7(postcss@8.4.21): dependencies: @@ -16172,7 +16169,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.14: + postcss@8.5.15: dependencies: nanoid: 3.3.12 picocolors: 1.1.1 @@ -16273,7 +16270,7 @@ snapshots: react-clientside-effect@1.2.8(react@18.2.0): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 react: 18.2.0 react-device-detect@2.2.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): @@ -16290,7 +16287,7 @@ snapshots: react-focus-lock@2.13.7(@types/react@18.2.79)(react@18.2.0): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 focus-lock: 1.3.6 prop-types: 15.8.1 react: 18.2.0 @@ -16328,7 +16325,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -16425,7 +16422,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -16594,7 +16591,7 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.6: + resolve@2.0.0-next.7: dependencies: es-errors: 1.3.0 is-core-module: 2.16.2 @@ -16645,7 +16642,7 @@ snapshots: rollup: 3.20.5 rollup-pluginutils: 2.8.2 - rollup-plugin-postcss@4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)): + rollup-plugin-postcss@4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 @@ -16654,7 +16651,7 @@ snapshots: p-queue: 6.6.2 pify: 5.0.0 postcss: 8.4.21 - postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) postcss-modules: 4.3.1(postcss@8.4.21) promise.series: 0.2.0 resolve: 1.22.12 @@ -16670,7 +16667,7 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 10.1.0 rollup: 3.20.5 - semver: 7.8.0 + semver: 7.8.1 tslib: 2.8.1 typescript: 4.9.5 @@ -16781,7 +16778,7 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.8.0: {} + semver@7.8.1: {} serialize-error@7.0.1: dependencies: @@ -16818,7 +16815,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 set-value@2.0.1: dependencies: @@ -17092,7 +17089,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 @@ -17108,7 +17105,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: @@ -17116,13 +17113,13 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.9 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string_decoder@0.10.31: {} @@ -17316,7 +17313,7 @@ snapshots: tinyspy@2.2.1: {} - tmp@0.2.5: {} + tmp@0.2.7: {} tmpl@1.0.5: {} @@ -17383,12 +17380,12 @@ snapshots: traverse@0.3.9: {} - ts-jest@26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 buffer-from: 1.1.2 fast-json-stable-stringify: 2.1.0 - jest: 26.6.3(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5)) + jest: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-util: 26.6.2 json5: 2.2.3 lodash: 4.17.21 @@ -17401,19 +17398,19 @@ snapshots: ts-loader@9.2.6(typescript@4.9.5): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.21.3 + enhanced-resolve: 5.22.1 micromatch: 4.0.8 semver: 7.3.4 typescript: 4.9.5 - ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5): + ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.7.0 + '@types/node': 25.9.1 acorn: 8.16.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -17456,10 +17453,10 @@ snapshots: tslib: 1.14.1 typescript: 4.9.5 - ttypescript@1.5.13(ts-node@10.9.0(@types/node@25.7.0)(typescript@4.9.5))(typescript@4.9.5): + ttypescript@1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5): dependencies: resolve: 1.22.12 - ts-node: 10.9.0(@types/node@25.7.0)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) typescript: 4.9.5 tunnel-agent@0.6.0: @@ -17520,7 +17517,7 @@ snapshots: is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.7: + typed-array-length@1.0.8: dependencies: call-bind: 1.0.9 for-each: 0.3.5 @@ -17574,7 +17571,7 @@ snapshots: object.reduce: 1.0.1 undertaker-registry: 1.0.1 - undici-types@7.21.0: {} + undici-types@7.24.6: {} unicode-canonical-property-names-ecmascript@1.0.4: {} @@ -17683,7 +17680,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 for-each: 0.3.5 get-intrinsic: 1.3.0 has-proto: 1.2.0 @@ -17761,14 +17758,14 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vite-node@0.30.1(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): + vite-node@0.30.1(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@9.4.0) mlly: 1.8.2 pathe: 1.1.2 picocolors: 1.1.1 - vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) transitivePeerDependencies: - '@types/node' - less @@ -17778,22 +17775,22 @@ snapshots: - supports-color - terser - vite-plugin-markdown@2.2.0(vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)): + vite-plugin-markdown@2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)): dependencies: domhandler: 4.3.1 front-matter: 4.0.2 htmlparser2: 6.1.0 markdown-it: 12.3.2 - vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vite@3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): + vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): dependencies: esbuild: 0.15.18 postcss: 8.4.21 resolve: 1.22.12 rollup: 2.80.0 optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.9.1 fsevents: 2.3.3 less: 4.1.3 sass: 1.43.5 @@ -17803,7 +17800,7 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 25.7.0 + '@types/node': 25.9.1 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 @@ -17824,8 +17821,8 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.4.0 - vite: 3.2.6(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vite-node: 0.30.1(@types/node@25.7.0)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite-node: 0.30.1(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) why-is-node-running: 2.3.0 optionalDependencies: jsdom: 16.7.0 @@ -17846,17 +17843,17 @@ snapshots: espree: 9.6.1 esquery: 1.7.0 lodash: 4.17.21 - semver: 7.8.0 + semver: 7.8.1 transitivePeerDependencies: - supports-color - vue@3.5.34(typescript@4.9.5): + vue@3.5.35(typescript@4.9.5): dependencies: - '@vue/compiler-dom': 3.5.34 - '@vue/compiler-sfc': 3.5.34 - '@vue/runtime-dom': 3.5.34 - '@vue/server-renderer': 3.5.34(vue@3.5.34(typescript@4.9.5)) - '@vue/shared': 3.5.34 + '@vue/compiler-dom': 3.5.35 + '@vue/compiler-sfc': 3.5.35 + '@vue/runtime-dom': 3.5.35 + '@vue/server-renderer': 3.5.35(vue@3.5.35(typescript@4.9.5)) + '@vue/shared': 3.5.35 optionalDependencies: typescript: 4.9.5 @@ -17933,7 +17930,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.21 which-collection@1.0.2: dependencies: @@ -17946,7 +17943,7 @@ snapshots: which-module@2.0.1: {} - which-typed-array@1.1.20: + which-typed-array@1.1.21: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 @@ -18011,11 +18008,11 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@5.2.4: + ws@5.2.5: dependencies: async-limiter: 1.0.1 - ws@7.5.10: {} + ws@7.5.11: {} xml-name-validator@3.0.0: {} diff --git a/docs/assets/demo-openinula/en/custom-layout/custom-layout.md b/docs/assets/demo-openinula/en/custom-layout/custom-layout.md index 41f07c68ad..3538e9516c 100644 --- a/docs/assets/demo-openinula/en/custom-layout/custom-layout.md +++ b/docs/assets/demo-openinula/en/custom-layout/custom-layout.md @@ -194,16 +194,14 @@ Inula.render( boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { diff --git a/docs/assets/demo-openinula/zh/custom-layout/custom-layout.md b/docs/assets/demo-openinula/zh/custom-layout/custom-layout.md index 29fd783554..accae27d27 100644 --- a/docs/assets/demo-openinula/zh/custom-layout/custom-layout.md +++ b/docs/assets/demo-openinula/zh/custom-layout/custom-layout.md @@ -194,16 +194,14 @@ Inula.render( boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { diff --git a/docs/assets/demo/en/custom-render/custom-cell-layout-jsx.md b/docs/assets/demo/en/custom-render/custom-cell-layout-jsx.md index a03e1cebd8..83c8e58c10 100644 --- a/docs/assets/demo/en/custom-render/custom-cell-layout-jsx.md +++ b/docs/assets/demo/en/custom-render/custom-cell-layout-jsx.md @@ -123,16 +123,14 @@ const option = { boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - background: { - fill: '#c90', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#c90', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { diff --git a/docs/assets/demo/zh/custom-render/custom-cell-layout-jsx.md b/docs/assets/demo/zh/custom-render/custom-cell-layout-jsx.md index 246f656806..08ebefe696 100644 --- a/docs/assets/demo/zh/custom-render/custom-cell-layout-jsx.md +++ b/docs/assets/demo/zh/custom-render/custom-cell-layout-jsx.md @@ -123,16 +123,14 @@ const option = { boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - background: { - fill: '#c90', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#c90', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { diff --git a/docs/assets/faq/en/34-How to implement text type buttons.md b/docs/assets/faq/en/34-How to implement text type buttons.md index 323fcbcc8d..38dce80876 100644 --- a/docs/assets/faq/en/34-How to implement text type buttons.md +++ b/docs/assets/faq/en/34-How to implement text type buttons.md @@ -50,12 +50,10 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; underline: 0, cursor: 'pointer' }); - editText.stateProxy = (stateName: string) => { - if (stateName === 'hover') { - return { - fill: '#315efb', - underline: 1 - }; + editText.states = { + hover: { + fill: '#315efb', + underline: 1 } }; editText.addEventListener('mouseenter', e => { @@ -128,12 +126,10 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; underline: 0, cursor: 'pointer' }); - editText.stateProxy = (stateName) => { - if (stateName === 'hover') { - return { - fill: '#315efb', - underline: 1 - }; + editText.states = { + hover: { + fill: '#315efb', + underline: 1 } }; editText.addEventListener('mouseenter', e => { @@ -158,12 +154,10 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; underline: 0, cursor: 'pointer' }); - deleteText.stateProxy = (stateName) => { - if (stateName === 'hover') { - return { - fill: '#315efb', - underline: 1 - }; + deleteText.states = { + hover: { + fill: '#315efb', + underline: 1 } }; deleteText.addEventListener('mouseenter', e => { @@ -217,4 +211,3 @@ Related api: https://www.visactor.io/vtable/guide/custom_define/custom_layout - diff --git a/docs/assets/faq/en/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md b/docs/assets/faq/en/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md index 8f82f8d662..cf51f2ddda 100644 --- a/docs/assets/faq/en/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md +++ b/docs/assets/faq/en/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md @@ -103,16 +103,14 @@ const option = { boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - background: { - fill: 'green', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: 'green', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onPointerEnter={event => { diff --git a/docs/assets/faq/zh/34-How to implement text type buttons.md b/docs/assets/faq/zh/34-How to implement text type buttons.md index 792468f1d7..a4731c7b9f 100644 --- a/docs/assets/faq/zh/34-How to implement text type buttons.md +++ b/docs/assets/faq/zh/34-How to implement text type buttons.md @@ -50,12 +50,10 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; underline: 0, cursor: 'pointer' }); - editText.stateProxy = (stateName: string) => { - if (stateName === 'hover') { - return { - fill: '#315efb', - underline: 1 - }; + editText.states = { + hover: { + fill: '#315efb', + underline: 1 } }; editText.addEventListener('mouseenter', e => { @@ -128,12 +126,10 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; underline: 0, cursor: 'pointer' }); - editText.stateProxy = (stateName) => { - if (stateName === 'hover') { - return { - fill: '#315efb', - underline: 1 - }; + editText.states = { + hover: { + fill: '#315efb', + underline: 1 } }; editText.addEventListener('mouseenter', e => { @@ -158,12 +154,10 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; underline: 0, cursor: 'pointer' }); - deleteText.stateProxy = (stateName) => { - if (stateName === 'hover') { - return { - fill: '#315efb', - underline: 1 - }; + deleteText.states = { + hover: { + fill: '#315efb', + underline: 1 } }; deleteText.addEventListener('mouseenter', e => { @@ -217,4 +211,3 @@ import {createGroup, createText} from '@visactor/vtable/es/vrender'; github:https://github.com/VisActor/VTable
- diff --git a/docs/assets/faq/zh/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md b/docs/assets/faq/zh/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md index 6c7dff0f33..d36822a7b0 100644 --- a/docs/assets/faq/zh/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md +++ b/docs/assets/faq/zh/56-VTable table component, using customLayout to customize the drawing elements, how to listen for mouse hover events on the elements, similar to the DOM's mouseenter event.md @@ -103,16 +103,14 @@ const option = { boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - background: { - fill: 'green', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: 'green', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onPointerEnter={event => { diff --git a/docs/assets/guide/en/custom_define/custom_layout.md b/docs/assets/guide/en/custom_define/custom_layout.md index d808784ba6..84f14d5d7c 100644 --- a/docs/assets/guide/en/custom_define/custom_layout.md +++ b/docs/assets/guide/en/custom_define/custom_layout.md @@ -266,16 +266,14 @@ In addition to basic properties, state updates can be used to implement interact height: 20, cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { diff --git a/docs/assets/guide/en/table_type/List_table/group_list.md b/docs/assets/guide/en/table_type/List_table/group_list.md index b293aaa5e6..18599e81d0 100644 --- a/docs/assets/guide/en/table_type/List_table/group_list.md +++ b/docs/assets/guide/en/table_type/List_table/group_list.md @@ -307,16 +307,14 @@ const option = { boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }); - icon.stateProxy = (stateName) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + icon.states = { + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }; icon.addEventListener('pointerenter', event => { @@ -472,4 +470,4 @@ If you don't want to associate the selected status of parent and child nodes, yo If you don't want to associate the selected status of the header and body cells, you can configure the `enableHeaderCheckboxCascade` property to enable or disable the header checkbox cascade function. -When enableCheckboxCascade is true, enableHeaderCheckboxCascade is true. When enableCheckboxCascade is false, enableHeaderCheckboxCascade is false. \ No newline at end of file +When enableCheckboxCascade is true, enableHeaderCheckboxCascade is true. When enableCheckboxCascade is false, enableHeaderCheckboxCascade is false. diff --git a/docs/assets/guide/zh/custom_define/custom_layout.md b/docs/assets/guide/zh/custom_define/custom_layout.md index c7c13fc208..9a10e4d09c 100644 --- a/docs/assets/guide/zh/custom_define/custom_layout.md +++ b/docs/assets/guide/zh/custom_define/custom_layout.md @@ -266,16 +266,14 @@ customLayout 函数返回一个对象,该对象需要有:`rootContainer`来 height: 20, cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -477,4 +475,4 @@ iconGroup.add(icon); const animation = icon.animate(); animation.setTimeline(table.animationManager.timeline); animation.to({ angle: 2 * Math.PI }, 1000, 'linear').loop(Infinity); -``` \ No newline at end of file +``` diff --git a/docs/assets/guide/zh/table_type/List_table/group_list.md b/docs/assets/guide/zh/table_type/List_table/group_list.md index 70f1027ecf..d665c3217d 100644 --- a/docs/assets/guide/zh/table_type/List_table/group_list.md +++ b/docs/assets/guide/zh/table_type/List_table/group_list.md @@ -311,16 +311,14 @@ const option = { boundsPadding: [0, 0, 0, 10], cursor: 'pointer' }); - icon.stateProxy = (stateName) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + icon.states = { + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }; icon.addEventListener('pointerenter', event => { @@ -477,4 +475,3 @@ window['tableInstance'] = tableInstance; enableCheckboxCascade为true时则enableHeaderCheckboxCascade必定为true。 - diff --git a/packages/openinula-vtable/demo/src/list-table/list-custom-layout.tsx b/packages/openinula-vtable/demo/src/list-table/list-custom-layout.tsx index 26d55c53b0..1efc7d47b3 100644 --- a/packages/openinula-vtable/demo/src/list-table/list-custom-layout.tsx +++ b/packages/openinula-vtable/demo/src/list-table/list-custom-layout.tsx @@ -72,11 +72,9 @@ function App() { text: 'item.label', fill: '#000' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - fill: 'red' - }; + states={{ + hover: { + fill: 'red' } }} onMouseEnter={event => { diff --git a/packages/react-vtable/demo/src/component/custom-layout-dom.tsx b/packages/react-vtable/demo/src/component/custom-layout-dom.tsx index 763296ac61..505ecb797c 100644 --- a/packages/react-vtable/demo/src/component/custom-layout-dom.tsx +++ b/packages/react-vtable/demo/src/component/custom-layout-dom.tsx @@ -94,11 +94,9 @@ const CustomLayoutComponent = (props: CustomLayoutFunctionArg & { text: string } text: `${text}-${row}`, fill: hover ? 'red' : '#000' }} - // stateProxy={(stateName: any) => { - // if (stateName === 'hover') { - // return { - // fill: 'red' - // }; + // states={{ + // hover: { + // fill: 'red' // } // }} onMouseEnter={(event: any) => { diff --git a/packages/react-vtable/demo/src/component/custom-layout.tsx b/packages/react-vtable/demo/src/component/custom-layout.tsx index ffa90ba9f1..f7ca72dae3 100644 --- a/packages/react-vtable/demo/src/component/custom-layout.tsx +++ b/packages/react-vtable/demo/src/component/custom-layout.tsx @@ -244,11 +244,9 @@ const CustomLayoutComponent = (props: CustomLayoutFunctionArg & { text: string } text: `${text}-${row}`, fill: hover ? 'red' : '#000' }} - // stateProxy={(stateName: any) => { - // if (stateName === 'hover') { - // return { - // fill: 'red' - // }; + // states={{ + // hover: { + // fill: 'red' // } // }} onMouseEnter={(event: any) => { diff --git a/packages/react-vtable/demo/src/list-table/list-custom-layout.tsx b/packages/react-vtable/demo/src/list-table/list-custom-layout.tsx index fb7800e61f..2de5447c6a 100644 --- a/packages/react-vtable/demo/src/list-table/list-custom-layout.tsx +++ b/packages/react-vtable/demo/src/list-table/list-custom-layout.tsx @@ -72,11 +72,9 @@ function App() { text: 'item.label', fill: '#000' }} - stateProxy={stateName => { - if (stateName === 'hover') { - return { - fill: 'red' - }; + states={{ + hover: { + fill: 'red' } }} onMouseEnter={event => { diff --git a/packages/react-vtable/src/components/vrender-components/type.ts b/packages/react-vtable/src/components/vrender-components/type.ts index a6da676aa4..f901b7a13c 100644 --- a/packages/react-vtable/src/components/vrender-components/type.ts +++ b/packages/react-vtable/src/components/vrender-components/type.ts @@ -1,8 +1,10 @@ import type { Ref } from 'react'; -import type { IEventParamsType } from '@visactor/vtable/es/vrender'; +import type { IEventParamsType, StateDefinitionsInput } from '@visactor/vtable/es/vrender'; -export type GraphicProps = { +export type GraphicProps, IGraphicElement> = { attribute?: IGraphicGraphicAttribute; - ref?: Ref; + ref?: Ref; + states?: StateDefinitionsInput; + sharedStateDefinitions?: StateDefinitionsInput>; } & IGraphicGraphicAttribute & IEventParamsType; diff --git a/packages/react-vtable/src/table-components/custom/graphic.ts b/packages/react-vtable/src/table-components/custom/graphic.ts index 0a99b91586..c1f3032622 100644 --- a/packages/react-vtable/src/table-components/custom/graphic.ts +++ b/packages/react-vtable/src/table-components/custom/graphic.ts @@ -16,13 +16,16 @@ import type { IRectGraphicAttribute, ISymbolGraphicAttribute, IRichTextGraphicAttribute, - IPolygonGraphicAttribute + IPolygonGraphicAttribute, + StateDefinitionsInput } from '@visactor/vtable/es/vrender'; -type GraphicProps = { +type GraphicProps> = { attribute: IGraphicGraphicAttribute; ref?: Ref; children?: ReactNode; + states?: StateDefinitionsInput; + sharedStateDefinitions?: StateDefinitionsInput>; } & IEventParamsType; export const Group: ( diff --git a/packages/vtable-gantt/jest.config.js b/packages/vtable-gantt/jest.config.js index 80750b3c8f..57fb96812a 100644 --- a/packages/vtable-gantt/jest.config.js +++ b/packages/vtable-gantt/jest.config.js @@ -1,5 +1,6 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const path = require('path'); +const { createVRenderModuleNameMapper } = require('../../common/config/jest/vrender-module-name-mapper'); module.exports = { preset: 'ts-jest', @@ -13,7 +14,7 @@ module.exports = { diagnostics: { exclude: ['**'] }, - tsconfig: { + tsconfig: { resolveJsonModule: true, esModuleInterop: true, paths: { @@ -51,6 +52,7 @@ module.exports = { 'd3-dsv': path.resolve(__dirname, './node_modules/d3-dsv/dist/d3-dsv.min.js'), 'd3-hexbin': path.resolve(__dirname, './node_modules/d3-hexbin/build/d3-hexbin.min.js'), 'd3-hierarchy': path.resolve(__dirname, './node_modules/d3-hierarchy/dist/d3-hierarchy.min.js'), + ...createVRenderModuleNameMapper('/../vtable/node_modules'), '^@visactor/vtable-editors$': path.resolve(__dirname, '../vtable-editors/src/index.ts'), '^@visactor/vtable/es/themes$': path.resolve(__dirname, '../vtable/src/themes.ts'), '^@visactor/vtable/es/vrender$': path.resolve(__dirname, '../vtable/src/vrender.ts'), diff --git a/packages/vtable-sheet/jest.config.js b/packages/vtable-sheet/jest.config.js index 86e4b03785..a6c9a3dc87 100644 --- a/packages/vtable-sheet/jest.config.js +++ b/packages/vtable-sheet/jest.config.js @@ -1,5 +1,6 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const path = require('path'); +const { createVRenderModuleNameMapper } = require('../../common/config/jest/vrender-module-name-mapper'); module.exports = { preset: 'ts-jest', @@ -65,6 +66,7 @@ module.exports = { __dirname, '../../common/temp/node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/dist/d3-hierarchy.min.js' ), + ...createVRenderModuleNameMapper('/../vtable/node_modules'), '@visactor/vtable-editors': path.resolve(__dirname, '../vtable-editors/src/index.ts'), '@visactor/vtable-plugins': path.resolve(__dirname, '../vtable-plugins/src/index.ts'), // 子路径映射需放在 @visactor/vtable 之前,确保精确匹配优先生效 diff --git a/packages/vtable/__tests__/scenegraph-custom-state.test.ts b/packages/vtable/__tests__/scenegraph-custom-state.test.ts new file mode 100644 index 0000000000..7b96e41d5d --- /dev/null +++ b/packages/vtable/__tests__/scenegraph-custom-state.test.ts @@ -0,0 +1,73 @@ +import { decodeReactDom } from '../src/scenegraph/component/custom'; + +(globalThis as { __VERSION__?: string }).__VERSION__ = 'none'; + +const reactElementType = Symbol.for('react.element'); + +type TestGraphic = { + type: string; + attribute: unknown; + on: jest.Mock; + states?: unknown; + sharedStateDefinitions?: unknown; +}; + +function createElement(type: (params: { attribute: unknown }) => TestGraphic, props: Record) { + return { + $$typeof: reactElementType, + type, + props + }; +} + +function createGraphic(type: string) { + return ({ attribute }: { attribute: unknown }) => ({ + type, + attribute, + on: jest.fn() + }); +} + +describe('decodeReactDom state config', () => { + it('passes local states to graphics', () => { + const states = { + hover: { + fill: 'red' + } + }; + + const graphic = decodeReactDom( + createElement(createGraphic('text'), { + attribute: { + id: 'label', + name: 'label' + }, + states + }) + ); + + expect(graphic.states).toBe(states); + }); + + it('passes shared state definitions to group graphics', () => { + const sharedStateDefinitions = { + hover: { + patch: { + fill: 'red' + } + } + }; + + const group = decodeReactDom( + createElement(createGraphic('group'), { + attribute: { + id: 'owner', + name: 'owner' + }, + sharedStateDefinitions + }) + ); + + expect(group.sharedStateDefinitions).toBe(sharedStateDefinitions); + }); +}); diff --git a/packages/vtable/__tests__/vrender-app-renderer.test.ts b/packages/vtable/__tests__/vrender-app-renderer.test.ts index df049ba111..ad2d64250c 100644 --- a/packages/vtable/__tests__/vrender-app-renderer.test.ts +++ b/packages/vtable/__tests__/vrender-app-renderer.test.ts @@ -1,5 +1,5 @@ import '../src/scenegraph/scenegraph'; -import { container, createStageFromVRenderApp, TextMeasureContribution } from '../src/vrender'; +import { application, container, createStageFromVRenderApp, TextMeasureContribution, vglobal } from '../src/vrender'; (globalThis as { __VERSION__?: string }).__VERSION__ = 'none'; @@ -109,4 +109,44 @@ describe('VRender app renderer installation', () => { releaseAppRef(); } }); + + test('reactivates the runtime env when reusing an existing shared app', () => { + const firstCanvas = document.createElement('canvas'); + const first = createStageFromVRenderApp( + { + canvas: firstCanvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-env-reactivation' } + ); + + try { + const runtimeGlobal = application.global as { envContribution?: { loadSvg?: unknown } }; + const legacyGlobal = vglobal as { envContribution?: { addEventListener?: unknown } }; + runtimeGlobal.envContribution = undefined; + legacyGlobal.envContribution = undefined; + + const secondCanvas = document.createElement('canvas'); + const second = createStageFromVRenderApp( + { + canvas: secondCanvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-env-reactivation' } + ); + + try { + expect(typeof runtimeGlobal.envContribution?.loadSvg).toBe('function'); + expect(typeof legacyGlobal.envContribution?.addEventListener).toBe('function'); + } finally { + second.stage.release(); + second.releaseAppRef(); + } + } finally { + first.stage.release(); + first.releaseAppRef(); + } + }); }); diff --git a/packages/vtable/__tests__/vrender-app.test.ts b/packages/vtable/__tests__/vrender-app.test.ts index 7a0efce3a4..7bfec49093 100644 --- a/packages/vtable/__tests__/vrender-app.test.ts +++ b/packages/vtable/__tests__/vrender-app.test.ts @@ -1,25 +1,15 @@ -jest.mock( - '@visactor/vrender', - () => ({ - createBrowserVRenderApp: jest.fn(), - createNodeVRenderApp: jest.fn(), - createWxVRenderApp: jest.fn(), - createLynxVRenderApp: jest.fn(), - createHarmonyVRenderApp: jest.fn(), - createTaroVRenderApp: jest.fn(), - createFeishuVRenderApp: jest.fn(), - createTTVRenderApp: jest.fn() - }), - { virtual: true } -); - -import { createBrowserVRenderApp, createNodeVRenderApp, createWxVRenderApp } from '@visactor/vrender'; +jest.mock('@visactor/vrender/entries/shared', () => ({ + acquireSharedVRenderApp: jest.fn() +})); + +import { acquireSharedVRenderApp } from '@visactor/vrender/entries/shared'; import type { IApp, IStage } from '@visactor/vrender-core'; import { createStageFromVRenderApp } from '../src/vrender'; -const mockedCreateBrowserVRenderApp = createBrowserVRenderApp as jest.Mock; -const mockedCreateNodeVRenderApp = createNodeVRenderApp as jest.Mock; -const mockedCreateWxVRenderApp = createWxVRenderApp as jest.Mock; +const mockedAcquireSharedVRenderApp = acquireSharedVRenderApp as jest.Mock; + +const sharedRecords = new Map; refCount: number }>(); +const queuedApps: ReturnType[] = []; function createMockApp() { const app = { @@ -36,21 +26,76 @@ function createMockApp() { return app; } +function getSharedRecordKey(options: { env: string; key?: string | symbol }) { + return `${options.env}:${String(options.key ?? 'default')}`; +} + +function queueSharedApps(...apps: ReturnType[]) { + queuedApps.push(...apps); +} + +function installSharedAcquireMock() { + mockedAcquireSharedVRenderApp.mockImplementation((options: { env: string; key?: string | symbol }) => { + const key = getSharedRecordKey(options); + let record = sharedRecords.get(key); + + if (!record || record.app.released) { + record = { + app: queuedApps.shift() ?? createMockApp(), + refCount: 0 + }; + sharedRecords.set(key, record); + } + + record.refCount += 1; + let released = false; + + return { + app: record.app, + env: options.env, + key: options.key ?? 'default', + release: jest.fn(() => { + if (released) { + return; + } + released = true; + record.refCount -= 1; + + if (record.refCount <= 0) { + sharedRecords.delete(key); + if (!record.app.released) { + record.app.release(); + } + } + }) + }; + }); +} + describe('VRender app-scoped stage helper', () => { beforeEach(() => { - mockedCreateBrowserVRenderApp.mockReset(); - mockedCreateNodeVRenderApp.mockReset(); - mockedCreateWxVRenderApp.mockReset(); + mockedAcquireSharedVRenderApp.mockReset(); + sharedRecords.clear(); + queuedApps.length = 0; + installSharedAcquireMock(); }); - it('reuses the fallback app by env and scope until every retained stage is released', () => { + it('reuses the shared app by env and scope until every retained stage is released', () => { const app = createMockApp(); - mockedCreateBrowserVRenderApp.mockReturnValue(app); + queueSharedApps(app); const first = createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-reuse' }); const second = createStageFromVRenderApp({ width: 200 }, { mode: 'browser', scope: 'unit-reuse' }); - expect(mockedCreateBrowserVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledTimes(2); + expect(mockedAcquireSharedVRenderApp).toHaveBeenNthCalledWith(1, { + env: 'browser', + key: 'browser:unit-reuse:default' + }); + expect(mockedAcquireSharedVRenderApp).toHaveBeenNthCalledWith(2, { + env: 'browser', + key: 'browser:unit-reuse:default' + }); expect(app.createStage).toHaveBeenCalledTimes(2); expect(first.stage).not.toBe(second.stage); @@ -65,12 +110,20 @@ describe('VRender app-scoped stage helper', () => { it('keeps fallback apps isolated by scope', () => { const firstApp = createMockApp(); const secondApp = createMockApp(); - mockedCreateBrowserVRenderApp.mockReturnValueOnce(firstApp).mockReturnValueOnce(secondApp); + queueSharedApps(firstApp, secondApp); const first = createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-scope-a' }); const second = createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-scope-b' }); - expect(mockedCreateBrowserVRenderApp).toHaveBeenCalledTimes(2); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledTimes(2); + expect(mockedAcquireSharedVRenderApp).toHaveBeenNthCalledWith(1, { + env: 'browser', + key: 'browser:unit-scope-a:default' + }); + expect(mockedAcquireSharedVRenderApp).toHaveBeenNthCalledWith(2, { + env: 'browser', + key: 'browser:unit-scope-b:default' + }); expect(firstApp.createStage).toHaveBeenCalledTimes(1); expect(secondApp.createStage).toHaveBeenCalledTimes(1); @@ -80,16 +133,21 @@ describe('VRender app-scoped stage helper', () => { expect(secondApp.release).toHaveBeenCalledTimes(1); }); - it('uses the node app creator with envParams for node mode', () => { + it('uses the shared entry with envParams for node mode', () => { const app = createMockApp(); const envParams = { createCanvas: jest.fn() }; - mockedCreateNodeVRenderApp.mockReturnValue(app); + queueSharedApps(app); const created = createStageFromVRenderApp({ width: 100 }, { mode: 'node', scope: 'unit-node', envParams }); - expect(mockedCreateNodeVRenderApp).toHaveBeenCalledTimes(1); - expect(mockedCreateNodeVRenderApp).toHaveBeenCalledWith({ envParams }); - expect(mockedCreateBrowserVRenderApp).not.toHaveBeenCalled(); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledWith( + expect.objectContaining({ + env: 'node', + key: expect.stringMatching(/^node:unit-node:object:\d+$/), + envParams + }) + ); expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); created.releaseAppRef(); @@ -101,7 +159,7 @@ describe('VRender app-scoped stage helper', () => { const secondApp = createMockApp(); const firstEnvParams = { createCanvas: jest.fn() }; const secondEnvParams = { createCanvas: jest.fn() }; - mockedCreateNodeVRenderApp.mockReturnValueOnce(firstApp).mockReturnValueOnce(secondApp); + queueSharedApps(firstApp, secondApp); const first = createStageFromVRenderApp( { width: 100 }, @@ -112,7 +170,12 @@ describe('VRender app-scoped stage helper', () => { { mode: 'node', scope: 'unit-node-envparams', envParams: secondEnvParams } ); - expect(mockedCreateNodeVRenderApp).toHaveBeenCalledTimes(2); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledTimes(2); + const firstKey = mockedAcquireSharedVRenderApp.mock.calls[0][0].key; + const secondKey = mockedAcquireSharedVRenderApp.mock.calls[1][0].key; + expect(firstKey).toEqual(expect.stringMatching(/^node:unit-node-envparams:object:\d+$/)); + expect(secondKey).toEqual(expect.stringMatching(/^node:unit-node-envparams:object:\d+$/)); + expect(firstKey).not.toBe(secondKey); expect(firstApp.createStage).toHaveBeenCalledTimes(1); expect(secondApp.createStage).toHaveBeenCalledTimes(1); @@ -122,15 +185,21 @@ describe('VRender app-scoped stage helper', () => { expect(secondApp.release).toHaveBeenCalledTimes(1); }); - it('uses stable mini-app creators for stable mini modes', () => { + it('uses the shared entry for stable mini modes', () => { const app = createMockApp(); const envParams = { canvasIdLists: ['unit'] }; - mockedCreateWxVRenderApp.mockReturnValue(app); + queueSharedApps(app); const created = createStageFromVRenderApp({ width: 100 }, { mode: 'wx', scope: 'unit-wx', envParams }); - expect(mockedCreateWxVRenderApp).toHaveBeenCalledTimes(1); - expect(mockedCreateWxVRenderApp).toHaveBeenCalledWith({ envParams }); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledWith( + expect.objectContaining({ + env: 'wx', + key: expect.stringMatching(/^wx:unit-wx:object:\d+$/), + envParams + }) + ); expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); created.releaseAppRef(); @@ -161,8 +230,7 @@ describe('VRender app-scoped stage helper', () => { expect(created.appOwned).toBe(false); expect(created.releaseAppRef()).toBeUndefined(); expect(stage.release).not.toHaveBeenCalled(); - expect(mockedCreateBrowserVRenderApp).not.toHaveBeenCalled(); - expect(mockedCreateNodeVRenderApp).not.toHaveBeenCalled(); + expect(mockedAcquireSharedVRenderApp).not.toHaveBeenCalled(); }); it('releases the retained fallback app when stage creation throws', () => { @@ -171,7 +239,7 @@ describe('VRender app-scoped stage helper', () => { app.createStage.mockImplementationOnce(() => { throw error; }); - mockedCreateBrowserVRenderApp.mockReturnValue(app); + queueSharedApps(app); expect(() => createStageFromVRenderApp({ width: 100 }, { mode: 'browser', scope: 'unit-error' })).toThrow(error); expect(app.release).toHaveBeenCalledTimes(1); diff --git a/packages/vtable/examples/custom-layout-jsx/pivot-jsx.tsx b/packages/vtable/examples/custom-layout-jsx/pivot-jsx.tsx index 3edfdceaa5..a4365a5391 100644 --- a/packages/vtable/examples/custom-layout-jsx/pivot-jsx.tsx +++ b/packages/vtable/examples/custom-layout-jsx/pivot-jsx.tsx @@ -594,16 +594,14 @@ function customLayout(args: VTable.TYPES.CustomRenderFunctionArg) { boundsPadding: [10, 0, 0, 0], cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -734,16 +732,14 @@ function customLayout(args: VTable.TYPES.CustomRenderFunctionArg) { boundsPadding: [0, 0, 0, 5], cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -782,16 +778,14 @@ function customLayout(args: VTable.TYPES.CustomRenderFunctionArg) { boundsPadding: [12, 0, 0, 5], cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -814,16 +808,14 @@ function customLayout(args: VTable.TYPES.CustomRenderFunctionArg) { boundsPadding: [8, 0, 0, 5], cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -938,16 +930,14 @@ function customLayoutRow(args: VTable.TYPES.CustomRenderFunctionArg) { height: 20, cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -983,16 +973,14 @@ function customLayoutRow(args: VTable.TYPES.CustomRenderFunctionArg) { boundsPadding: [0, 10, 0, 0], cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -1015,16 +1003,14 @@ function customLayoutRow(args: VTable.TYPES.CustomRenderFunctionArg) { visible: false, cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { @@ -1086,16 +1072,14 @@ function customLayoutIndicator(args: VTable.TYPES.CustomRenderFunctionArg) { boundsPadding: [0, 5, 0, 0], cursor: 'pointer' }} - stateProxy={(stateName: string) => { - if (stateName === 'hover') { - return { - background: { - fill: '#ccc', - cornerRadius: 5, - expandX: 1, - expandY: 1 - } - }; + states={{ + hover: { + background: { + fill: '#ccc', + cornerRadius: 5, + expandX: 1, + expandY: 1 + } } }} onMouseEnter={event => { diff --git a/packages/vtable/examples/list/list-group.ts b/packages/vtable/examples/list/list-group.ts index ea8e8428e0..d082b1ae50 100644 --- a/packages/vtable/examples/list/list-group.ts +++ b/packages/vtable/examples/list/list-group.ts @@ -144,16 +144,14 @@ export function createTable() { // // boundsPadding: [0, 0, 0, 10], // // cursor: 'pointer' // // }); - // // icon.stateProxy = (stateName: string) => { - // // if (stateName === 'hover') { - // // return { - // // background: { - // // fill: '#ccc', - // // cornerRadius: 5, - // // expandX: 1, - // // expandY: 1 - // // } - // // }; + // // icon.states = { + // // hover: { + // // background: { + // // fill: '#ccc', + // // cornerRadius: 5, + // // expandX: 1, + // // expandY: 1 + // // } // // } // // }; // // icon.addEventListener('pointerenter', event => { @@ -261,16 +259,14 @@ export function createTable() { // boundsPadding: [0, 0, 0, 10], // cursor: 'pointer' // }); - // icon.stateProxy = (stateName: string) => { - // if (stateName === 'hover') { - // return { - // background: { - // fill: '#ccc', - // cornerRadius: 5, - // expandX: 1, - // expandY: 1 - // } - // }; + // icon.states = { + // hover: { + // background: { + // fill: '#ccc', + // cornerRadius: 5, + // expandX: 1, + // expandY: 1 + // } // } // }; // icon.addEventListener('pointerenter', event => { diff --git a/packages/vtable/jest.config.js b/packages/vtable/jest.config.js index adea010325..c2a9e9ee50 100644 --- a/packages/vtable/jest.config.js +++ b/packages/vtable/jest.config.js @@ -1,5 +1,6 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const path = require('path'); +const { createVRenderModuleNameMapper } = require('../../common/config/jest/vrender-module-name-mapper'); module.exports = { preset: 'ts-jest', @@ -47,6 +48,7 @@ module.exports = { 'd3-dsv': path.resolve(__dirname, './node_modules/d3-dsv/dist/d3-dsv.min.js'), 'd3-hexbin': path.resolve(__dirname, './node_modules/d3-hexbin/build/d3-hexbin.min.js'), 'd3-hierarchy': path.resolve(__dirname, './node_modules/d3-hierarchy/dist/d3-hierarchy.min.js'), + ...createVRenderModuleNameMapper(), // '@visactor/vtable-editors': path.resolve(__dirname, '../vtable-editors/src/index.ts'), // '@visactor/vtable-plugins': path.resolve(__dirname, '../vtable-plugins/src/index.ts'), '@visactor/vtable-editors': '/../vtable-editors/src/index.ts', diff --git a/packages/vtable/package.json b/packages/vtable/package.json index bd41b759c5..17ef861742 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:*", - "@visactor/vrender": "1.1.0-alpha.21", - "@visactor/vrender-core": "1.1.0-alpha.21", - "@visactor/vrender-kits": "1.1.0-alpha.21", - "@visactor/vrender-components": "1.1.0-alpha.21", - "@visactor/vrender-animate": "1.1.0-alpha.21", + "@visactor/vrender": "1.1.0-alpha.25", + "@visactor/vrender-core": "1.1.0-alpha.25", + "@visactor/vrender-kits": "1.1.0-alpha.25", + "@visactor/vrender-components": "1.1.0-alpha.25", + "@visactor/vrender-animate": "1.1.0-alpha.25", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", diff --git a/packages/vtable/src/scenegraph/component/custom.ts b/packages/vtable/src/scenegraph/component/custom.ts index e5f23aa28c..41feb95428 100644 --- a/packages/vtable/src/scenegraph/component/custom.ts +++ b/packages/vtable/src/scenegraph/component/custom.ts @@ -455,11 +455,14 @@ export function decodeReactDom(dom: any, timeline?: ITimeline) { return dom; } const type = dom.type; - const { attribute, children, stateProxy, animation } = dom.props; + const { attribute, children, states, sharedStateDefinitions, animation } = dom.props; const g = type({ attribute }); parseToGraphic(g, dom.props); - if (stateProxy) { - g.stateProxy = stateProxy; + if (states) { + g.states = states; + } + if (sharedStateDefinitions && g.type === 'group') { + g.sharedStateDefinitions = sharedStateDefinitions; } g.id = attribute.id; diff --git a/packages/vtable/src/scenegraph/component/menu.ts b/packages/vtable/src/scenegraph/component/menu.ts index 3381d0c917..f185b92691 100644 --- a/packages/vtable/src/scenegraph/component/menu.ts +++ b/packages/vtable/src/scenegraph/component/menu.ts @@ -175,16 +175,10 @@ export class MenuHandler { group.role = 'menu-item'; this._menuInstance.appendChild(group); - // 处理背景hover效果 - group.stateProxy = (stateName: string) => { - if (stateName === 'hover') { - return { - fill: menuStyle.hoverBgColor - }; + group.states = { + hover: { + fill: menuStyle.hoverBgColor } - return { - fill: menuStyle.bgColor - }; }; group.addEventListener('pointerenter', (e: FederatedEvent) => { group.addState('hover', true, false); diff --git a/packages/vtable/src/ts-types/base-table.ts b/packages/vtable/src/ts-types/base-table.ts index 0f81699490..b0dc9c65ea 100644 --- a/packages/vtable/src/ts-types/base-table.ts +++ b/packages/vtable/src/ts-types/base-table.ts @@ -571,7 +571,7 @@ export interface BaseTableConstructorOptions { // #region for nodejs mode?: 'node' | 'browser'; /** - * Node env params are passed to createNodeVRenderApp({ envParams: modeParams }). + * Node env params are passed to acquireSharedVRenderApp({ env: 'node', envParams: modeParams }). * Release validation should use Node 20.19.6 or another version matching the canvas native binding ABI. */ modeParams?: any; @@ -602,7 +602,7 @@ export interface BaseTableConstructorOptions { */ vRenderApp?: IApp; /** - * Scope for VTable-managed shared VRender apps. Tables with the same scope, mode, and envParams share a ref-counted app. + * Scope for VTable-managed shared VRender apps. Tables with the same scope, mode, and envParams identity share a ref-counted app. */ vRenderAppScope?: string; /** diff --git a/packages/vtable/src/vrender-app.ts b/packages/vtable/src/vrender-app.ts index c71063d5bf..57675068e1 100644 --- a/packages/vtable/src/vrender-app.ts +++ b/packages/vtable/src/vrender-app.ts @@ -1,29 +1,28 @@ +import { acquireSharedVRenderApp } from '@visactor/vrender/entries/shared'; import { - createBrowserVRenderApp, - createFeishuVRenderApp, - createHarmonyVRenderApp, - createLynxVRenderApp, - createNodeVRenderApp, - createTaroVRenderApp, - createTTVRenderApp, - createWxVRenderApp -} from '@visactor/vrender'; -import { container as legacyContainer, GraphicRender } from '@visactor/vrender-core'; -import type { IApp, IEnvParamsMap, IGraphicRender, IStage, IStageParams } from '@visactor/vrender-core'; + installBrowserEnvToApp, + installFeishuEnvToApp, + installHarmonyEnvToApp, + installLynxEnvToApp, + installNodeEnvToApp, + installTaroEnvToApp, + installTTEnvToApp, + installWxEnvToApp +} from '@visactor/vrender-kits/installers/app'; +import { loadBrowserEnv } from '@visactor/vrender-kits/env/browser'; +import { loadFeishuEnv } from '@visactor/vrender-kits/env/feishu'; +import { loadHarmonyEnv } from '@visactor/vrender-kits/env/harmony'; +import { loadLynxEnv } from '@visactor/vrender-kits/env/lynx'; +import { loadNodeEnv } from '@visactor/vrender-kits/env/node'; +import { loadTaroEnv } from '@visactor/vrender-kits/env/taro'; +import { loadTTEnv } from '@visactor/vrender-kits/env/tt'; +import { loadWxEnv } from '@visactor/vrender-kits/env/wx'; +import type { TVRenderSharedAppEnv, TVRenderSharedAppOptions } from '@visactor/vrender/entries/shared'; +import { vglobal } from '@visactor/vrender-core'; +import type { IApp, IEnvParamsMap, IStage, IStageParams } from '@visactor/vrender-core'; import { Env } from './tools/env'; -type StableVRenderAppEnv = 'browser' | 'node' | 'wx' | 'lynx' | 'harmony'; -// Keep public creator paths for Tier 2 runtimes, but do not treat them as stable default support without real-device smoke. -type Tier2VRenderAppEnv = 'taro' | 'feishu' | 'tt'; -type VRenderAppEnv = StableVRenderAppEnv | Tier2VRenderAppEnv; -type VRenderAppEntryOptions = { - envParams?: IEnvParamsMap[VRenderAppEnv]; -}; - -type DefaultVRenderAppRecord = { - app: IApp; - refCount: number; -}; +type VRenderAppEnv = TVRenderSharedAppEnv; export type VRenderStageAppOptions = { mode?: VRenderAppEnv; @@ -41,7 +40,6 @@ export type VRenderStageAppRef = { appOwned: boolean; }; -const defaultVRenderApps = new Map(); const envParamsKeyMap = new WeakMap(); let envParamsKeyId = 0; @@ -71,118 +69,100 @@ const getEnvParamsKey = (envParams?: IEnvParamsMap[VRenderAppEnv]): string => { const getVRenderAppKey = (env: VRenderAppEnv, scope?: string, envParams?: IEnvParamsMap[VRenderAppEnv]): string => `${env}:${scope ?? 'default'}:${getEnvParamsKey(envParams)}`; -const createRendererRegistryKey = (renderer: IGraphicRender, prefix: string): string => { - const type = renderer?.type ?? 'unknown'; - const numberType = renderer?.numberType ?? 'unknown'; - const ctor = renderer?.constructor?.name ?? 'anonymous'; - - return `${prefix}:${String(numberType)}:${String(type)}:${ctor}`; -}; - -const syncLegacyRenderersToApp = (app: IApp): void => { - const rendererRegistry = app.registry?.renderer; - const existingRenderers = rendererRegistry?.getAll?.() ?? []; - const legacyRenderers = legacyContainer.getAll(GraphicRender) ?? []; - - if (!rendererRegistry || !legacyRenderers.length) { - return; +const getForcedEnvParams = ( + envParams?: IEnvParamsMap[VRenderAppEnv] +): IEnvParamsMap[VRenderAppEnv] & { force: true } => { + if (envParams != null && (typeof envParams === 'object' || typeof envParams === 'function')) { + return Object.assign(Object.create(envParams as object), { force: true }); } - const seen = new Set(); - rendererRegistry.clear(); - - [...legacyRenderers, ...existingRenderers].forEach(renderer => { - const key = createRendererRegistryKey(renderer, 'renderer'); - - if (seen.has(key)) { - return; - } - seen.add(key); - renderer.reInit?.(); - rendererRegistry.register(key, renderer); - }); + return { force: true } as IEnvParamsMap[VRenderAppEnv] & { force: true }; }; -const createDefaultVRenderApp = (env: VRenderAppEnv, envParams?: IEnvParamsMap[VRenderAppEnv]): IApp => { - const entryOptions: VRenderAppEntryOptions | undefined = envParams == null ? undefined : { envParams }; - let app: IApp; - +const activateLegacyVGlobalEnv = (env: VRenderAppEnv, envParams?: IEnvParamsMap[VRenderAppEnv]): void => { switch (env) { case 'node': - app = createNodeVRenderApp(entryOptions); + loadNodeEnv(); break; case 'wx': - app = createWxVRenderApp(entryOptions); + loadWxEnv(); break; case 'lynx': - app = createLynxVRenderApp(entryOptions); + loadLynxEnv(); break; case 'harmony': - app = createHarmonyVRenderApp(entryOptions); + loadHarmonyEnv(); break; case 'taro': - app = createTaroVRenderApp(entryOptions); + loadTaroEnv(); break; case 'feishu': - app = createFeishuVRenderApp(entryOptions); + loadFeishuEnv(); break; case 'tt': - app = createTTVRenderApp(entryOptions); + loadTTEnv(); break; case 'browser': default: - app = createBrowserVRenderApp(entryOptions); + loadBrowserEnv(); break; } - syncLegacyRenderersToApp(app); - - return app; + vglobal.setEnv(env, getForcedEnvParams(envParams)); }; -const getDefaultVRenderAppRecord = ( - env: VRenderAppEnv, - scope?: string, - envParams?: IEnvParamsMap[VRenderAppEnv] -): DefaultVRenderAppRecord => { - const key = getVRenderAppKey(env, scope, envParams); - const record = defaultVRenderApps.get(key); - - if (record && !record.app.released) { - return record; +const activateSharedVRenderAppEnv = (app: IApp, env: VRenderAppEnv, envParams?: IEnvParamsMap[VRenderAppEnv]): void => { + switch (env) { + case 'node': + installNodeEnvToApp(app, envParams as IEnvParamsMap['node']); + break; + case 'wx': + installWxEnvToApp(app, envParams as IEnvParamsMap['wx']); + break; + case 'lynx': + installLynxEnvToApp(app, envParams as IEnvParamsMap['lynx']); + break; + case 'harmony': + installHarmonyEnvToApp(app, envParams as IEnvParamsMap['harmony']); + break; + case 'taro': + installTaroEnvToApp(app, envParams as IEnvParamsMap['taro']); + break; + case 'feishu': + installFeishuEnvToApp(app, envParams as IEnvParamsMap['feishu']); + break; + case 'tt': + installTTEnvToApp(app, envParams as IEnvParamsMap['tt']); + break; + case 'browser': + default: + installBrowserEnvToApp(app, envParams as IEnvParamsMap['browser']); + break; } - const nextRecord = { - app: createDefaultVRenderApp(env, envParams), - refCount: 0 - }; - defaultVRenderApps.set(key, nextRecord); - - return nextRecord; + activateLegacyVGlobalEnv(env, envParams); }; const retainDefaultVRenderApp = (env: VRenderAppEnv, scope?: string, envParams?: IEnvParamsMap[VRenderAppEnv]) => { const key = getVRenderAppKey(env, scope, envParams); - const record = getDefaultVRenderAppRecord(env, scope, envParams); + const sharedOptions = { + env, + key, + ...(envParams == null ? undefined : { envParams }) + } as TVRenderSharedAppOptions; + const handle = acquireSharedVRenderApp(sharedOptions); let released = false; - record.refCount += 1; + activateSharedVRenderAppEnv(handle.app, env, envParams); return { - app: record.app, + app: handle.app, releaseAppRef: () => { if (released) { return; } released = true; - record.refCount -= 1; - - if (record.refCount <= 0) { - defaultVRenderApps.delete(key); - if (!record.app.released) { - record.app.release(); - } - } + handle.release(); } }; }; diff --git a/packages/vtable/src/vrender.ts b/packages/vtable/src/vrender.ts index 2f07d4fc4c..6a462b7d7e 100644 --- a/packages/vtable/src/vrender.ts +++ b/packages/vtable/src/vrender.ts @@ -1,4 +1,5 @@ import { loadPoptip } from '@visactor/vrender-components'; +import { getRuntimeInstallerBindingContext } from '@visactor/vrender-core/entries/runtime-installer'; import { container as legacyContainer, type ILegacyBindingContext } from '@visactor/vrender-core'; // 导出版本号 // export const version = __VERSION__; @@ -32,12 +33,21 @@ const unbindLegacyService = (): void => undefined; export const container = Object.assign(legacyContainer, { load(module: ContainerModule | ((context: ILegacyBindingContext) => void)): void { + const runtimeInstallerContext = getRuntimeInstallerBindingContext(); + if (module instanceof ContainerModule) { module.registry(legacyContainer.bind, unbindLegacyService, legacyContainer.isBound, legacyContainer.rebind); + module.registry( + runtimeInstallerContext.bind, + unbindLegacyService, + runtimeInstallerContext.isBound, + runtimeInstallerContext.rebind + ); return; } module(legacyContainer); + module(runtimeInstallerContext); }, get(serviceIdentifier: unknown): T { return legacyContainer.getAll(serviceIdentifier as never)[0]; diff --git a/packages/vue-vtable/jest.config.js b/packages/vue-vtable/jest.config.js index 79a0a11b48..c4a18ae967 100644 --- a/packages/vue-vtable/jest.config.js +++ b/packages/vue-vtable/jest.config.js @@ -1,4 +1,5 @@ const path = require('path'); +const { createVRenderModuleNameMapper } = require('../../common/config/jest/vrender-module-name-mapper'); module.exports = { preset: 'ts-jest', @@ -19,6 +20,7 @@ module.exports = { __DEV__: true }, moduleNameMapper: { + ...createVRenderModuleNameMapper('/../vtable/node_modules'), '@visactor/vtable$': '/../vtable/src/index', '@visactor/vtable/es/(.*)': '/../vtable/src/$1' }, From feabce53c59b725d6287b7e1a4cd949ba5c8693a Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Mon, 15 Jun 2026 14:26:29 +0800 Subject: [PATCH 10/22] chore(vtable): align VRender alpha.26 contract VRender 1.1.0-alpha.26 is the current prerelease baseline for the app-scoped runtime and stabilized D3 state semantics. Keep the VTable package version unchanged while aligning direct VRender packages, Rush overrides, and the lockfile to the same alpha.26 build. Remove the stale commented internal VRender import so this package keeps using public VRender surfaces. Constraint: Do not modify the VTable package version Constraint: Keep VRender packages aligned on 1.1.0-alpha.26 Rejected: Deep import VRender internals | use public package surfaces Confidence: high Scope-risk: moderate Directive: Keep package deps and Rush global overrides in sync Tested: rush update Tested: packages/vtable rushx compile Tested: packages/react-vtable rushx compile Tested: packages/vtable-gantt rushx compile Tested: packages/vtable rushx test --runInBand Tested: packages/vtable rushx build Tested: rush test --only tag:package Tested: eslint text-measure.ts --quiet Tested: prettier --check changed package/json/ts files Tested: git diff --check Not-tested: packages/vtable rushx test-nodejs | local canvas module missing --- common/config/rush/pnpm-config.json | 10 +- common/config/rush/pnpm-lock.yaml | 104 +++++++++--------- packages/vtable/package.json | 10 +- .../src/scenegraph/utils/text-measure.ts | 5 - 4 files changed, 62 insertions(+), 67 deletions(-) diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index bd27606b5b..2c2ef37f2b 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -84,11 +84,11 @@ */ "globalOverrides": { "@visactor/vchart": "2.1.0-alpha.9", - "@visactor/vrender": "1.1.0-alpha.25", - "@visactor/vrender-core": "1.1.0-alpha.25", - "@visactor/vrender-kits": "1.1.0-alpha.25", - "@visactor/vrender-components": "1.1.0-alpha.25", - "@visactor/vrender-animate": "1.1.0-alpha.25" + "@visactor/vrender": "1.1.0-alpha.26", + "@visactor/vrender-core": "1.1.0-alpha.26", + "@visactor/vrender-kits": "1.1.0-alpha.26", + "@visactor/vrender-components": "1.1.0-alpha.26", + "@visactor/vrender-animate": "1.1.0-alpha.26" }, /** * 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 c69973bfcb..efdf62731b 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: overrides: '@visactor/vchart': 2.1.0-alpha.9 - '@visactor/vrender': 1.1.0-alpha.25 - '@visactor/vrender-core': 1.1.0-alpha.25 - '@visactor/vrender-kits': 1.1.0-alpha.25 - '@visactor/vrender-components': 1.1.0-alpha.25 - '@visactor/vrender-animate': 1.1.0-alpha.25 + '@visactor/vrender': 1.1.0-alpha.26 + '@visactor/vrender-core': 1.1.0-alpha.26 + '@visactor/vrender-kits': 1.1.0-alpha.26 + '@visactor/vrender-components': 1.1.0-alpha.26 + '@visactor/vrender-animate': 1.1.0-alpha.26 pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= @@ -438,20 +438,20 @@ importers: specifier: ~1.0.17 version: 1.0.23 '@visactor/vrender': - specifier: 1.1.0-alpha.25 - version: 1.1.0-alpha.25 + specifier: 1.1.0-alpha.26 + version: 1.1.0-alpha.26 '@visactor/vrender-animate': - specifier: 1.1.0-alpha.25 - version: 1.1.0-alpha.25 + specifier: 1.1.0-alpha.26 + version: 1.1.0-alpha.26 '@visactor/vrender-components': - specifier: 1.1.0-alpha.25 - version: 1.1.0-alpha.25 + specifier: 1.1.0-alpha.26 + version: 1.1.0-alpha.26 '@visactor/vrender-core': - specifier: 1.1.0-alpha.25 - version: 1.1.0-alpha.25 + specifier: 1.1.0-alpha.26 + version: 1.1.0-alpha.26 '@visactor/vrender-kits': - specifier: 1.1.0-alpha.25 - version: 1.1.0-alpha.25 + specifier: 1.1.0-alpha.26 + version: 1.1.0-alpha.26 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -3573,20 +3573,20 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.1.0-alpha.25': - resolution: {integrity: sha512-vAzV46ZO4ghKTK9zfFLpsBm4X/u8Hih+GSyxIJmcWhItDw0ZHvRr3zOKtUZ4q9fpib0e+u+7oUe3+t71O50gFw==} + '@visactor/vrender-animate@1.1.0-alpha.26': + resolution: {integrity: sha512-shcWacvEJ5FXbbOlMHtZKRFr2KrCtdiPrMMlUiuaZJK7rJ/Wm3Y/ATEksiqzTN0SUOsYH+G/1JTcKc2Pdf5xzw==} - '@visactor/vrender-components@1.1.0-alpha.25': - resolution: {integrity: sha512-gp3KcghfNQaSRnOwUX2oF2N8vP29iD7QYa7bB5cxr9EjRosOAGBZpbwnbkHSdQwlahc5dzdJ6tN2hpkOE0VGYA==} + '@visactor/vrender-components@1.1.0-alpha.26': + resolution: {integrity: sha512-o72vPXrZY9K/uu49E1tjfRHCKznNcrqAdE4EEI48paqKCX3qoK38QzdUvkFt68srrWVG0lVmwWV/fGg72XGjrw==} - '@visactor/vrender-core@1.1.0-alpha.25': - resolution: {integrity: sha512-02HQr5RrH1WXKDP6iMLSS2HUb3YqR6Y2qgikQ3BzxnElppPs1F7VnWWVfVXhM9r9UGd0+PBkAJkz16wnjK6p4w==} + '@visactor/vrender-core@1.1.0-alpha.26': + resolution: {integrity: sha512-3JenybipQI8U1kK/P5w72LDyQOLUC0cBnUyteEZhUOH7dToyLNXv2x2HzTvMDolYtifd4jbGedZkqb5Bnb7/7g==} - '@visactor/vrender-kits@1.1.0-alpha.25': - resolution: {integrity: sha512-i5GsKSmJ0nBwmGDuUhCpV/mGpZiuqj/xzBKXy8D4OBijhfJwa6Xbgvf5ihLHKPt97zHorsr52mT39AWR+ImXUQ==} + '@visactor/vrender-kits@1.1.0-alpha.26': + resolution: {integrity: sha512-OED02T92OeiWng/7uN7Oa2479kgWroBmxwn/QLDN8z/USzWJr63VO1uKUAtxi8WIQo8Aal2fVo4PCie0aOlwpg==} - '@visactor/vrender@1.1.0-alpha.25': - resolution: {integrity: sha512-gmhv8bPe03t94ju5yxVIjuKquaf2aCTTeKpoPyyE9vmfYu93WAMQWQcWkOmGqji0v5cJr8eKWyxfqVyxs7rFOA==} + '@visactor/vrender@1.1.0-alpha.26': + resolution: {integrity: sha512-SSDapsXKM88RLtcQKMs+StBe5DxetJOxOIAWGu0Sl5eCbdCp3kHJ2r+YUbKaMwk/4s2tAaNVXfXmmm5B+vfIpg==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} @@ -10478,7 +10478,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/test-sequencer@26.6.3': + '@jest/test-sequencer@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))': dependencies: '@jest/test-result': 26.6.2 graceful-fs: 4.2.11 @@ -10486,7 +10486,11 @@ snapshots: jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) transitivePeerDependencies: + - bufferutil + - canvas - supports-color + - ts-node + - utf-8-validate '@jest/transform@24.9.0': dependencies: @@ -11180,11 +11184,11 @@ snapshots: dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender': 1.1.0-alpha.25 - '@visactor/vrender-animate': 1.1.0-alpha.25 - '@visactor/vrender-components': 1.1.0-alpha.25 - '@visactor/vrender-core': 1.1.0-alpha.25 - '@visactor/vrender-kits': 1.1.0-alpha.25 + '@visactor/vrender': 1.1.0-alpha.26 + '@visactor/vrender-animate': 1.1.0-alpha.26 + '@visactor/vrender-components': 1.1.0-alpha.26 + '@visactor/vrender-core': 1.1.0-alpha.26 + '@visactor/vrender-kits': 1.1.0-alpha.26 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 '@visactor/vutils-extension': 2.1.0-alpha.9 @@ -11217,39 +11221,39 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.1.0-alpha.25': + '@visactor/vrender-animate@1.1.0-alpha.26': dependencies: - '@visactor/vrender-core': 1.1.0-alpha.25 + '@visactor/vrender-core': 1.1.0-alpha.26 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.1.0-alpha.25': + '@visactor/vrender-components@1.1.0-alpha.26': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.25 - '@visactor/vrender-core': 1.1.0-alpha.25 - '@visactor/vrender-kits': 1.1.0-alpha.25 + '@visactor/vrender-animate': 1.1.0-alpha.26 + '@visactor/vrender-core': 1.1.0-alpha.26 + '@visactor/vrender-kits': 1.1.0-alpha.26 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.1.0-alpha.25': + '@visactor/vrender-core@1.1.0-alpha.26': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-kits@1.1.0-alpha.25': + '@visactor/vrender-kits@1.1.0-alpha.26': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.1.0-alpha.25 + '@visactor/vrender-core': 1.1.0-alpha.26 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender@1.1.0-alpha.25': + '@visactor/vrender@1.1.0-alpha.26': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.25 - '@visactor/vrender-components': 1.1.0-alpha.25 - '@visactor/vrender-core': 1.1.0-alpha.25 - '@visactor/vrender-kits': 1.1.0-alpha.25 + '@visactor/vrender-animate': 1.1.0-alpha.26 + '@visactor/vrender-components': 1.1.0-alpha.26 + '@visactor/vrender-core': 1.1.0-alpha.26 + '@visactor/vrender-kits': 1.1.0-alpha.26 '@visactor/vscale@1.0.23': dependencies: @@ -14375,7 +14379,7 @@ snapshots: jest-config@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): dependencies: '@babel/core': 7.20.12 - '@jest/test-sequencer': 26.6.3 + '@jest/test-sequencer': 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) '@jest/types': 26.6.2 babel-jest: 26.6.3(@babel/core@7.20.12) chalk: 4.1.2 @@ -14385,7 +14389,7 @@ snapshots: jest-environment-jsdom: 26.6.2 jest-environment-node: 26.6.2 jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-jasmine2: 26.6.3 jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-util: 26.6.2 @@ -14558,7 +14562,7 @@ snapshots: transitivePeerDependencies: - supports-color - jest-jasmine2@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + jest-jasmine2@26.6.3: dependencies: '@babel/traverse': 7.29.7 '@jest/environment': 26.6.2 @@ -14579,11 +14583,7 @@ snapshots: pretty-format: 26.6.2 throat: 5.0.0 transitivePeerDependencies: - - bufferutil - - canvas - supports-color - - ts-node - - utf-8-validate jest-leak-detector@24.9.0: dependencies: diff --git a/packages/vtable/package.json b/packages/vtable/package.json index 17ef861742..5d95204233 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:*", - "@visactor/vrender": "1.1.0-alpha.25", - "@visactor/vrender-core": "1.1.0-alpha.25", - "@visactor/vrender-kits": "1.1.0-alpha.25", - "@visactor/vrender-components": "1.1.0-alpha.25", - "@visactor/vrender-animate": "1.1.0-alpha.25", + "@visactor/vrender": "1.1.0-alpha.26", + "@visactor/vrender-core": "1.1.0-alpha.26", + "@visactor/vrender-kits": "1.1.0-alpha.26", + "@visactor/vrender-components": "1.1.0-alpha.26", + "@visactor/vrender-animate": "1.1.0-alpha.26", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", diff --git a/packages/vtable/src/scenegraph/utils/text-measure.ts b/packages/vtable/src/scenegraph/utils/text-measure.ts index 932fdc1c51..5a95bdbb6c 100644 --- a/packages/vtable/src/scenegraph/utils/text-measure.ts +++ b/packages/vtable/src/scenegraph/utils/text-measure.ts @@ -9,11 +9,6 @@ import { Text } from '@src/vrender'; import { MeasureModeEnum } from '@src/vrender'; -// eslint-disable-next-line max-len -// import { -// DefaultTextMeasureContribution, -// TextMeasureContribution -// } from '@visactor/vrender/es/core/contributions/textMeasure/textMeasure-contribution'; import type { ITextMeasureOption, ITextSize } from '@visactor/vutils'; import { isValid, TextMeasure } from '@visactor/vutils'; From 2751227ec032a58eca725e0df868fce5b715653e Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Mon, 15 Jun 2026 14:27:50 +0800 Subject: [PATCH 11/22] chore: remove local omx artifacts from branch The branch already ignores .omx, but historical runtime files were tracked and still appeared in the PR diff. Remove them from version control while leaving local runtime files ignored. Constraint: Do not delete local OMX runtime state from disk Confidence: high Scope-risk: narrow Directive: Keep .omx ignored and out of review diffs Tested: git ls-files .omx --- .omx/logs/tmux-hook-2026-05-13.jsonl | 7 ------- .omx/logs/tmux-hook-2026-05-14.jsonl | 2 -- .omx/logs/turns-2026-05-13.jsonl | 7 ------- .omx/logs/turns-2026-05-14.jsonl | 2 -- .omx/metrics.json | 8 -------- .omx/state/hud-state.json | 6 ------ .omx/state/notify-hook-state.json | 10 ---------- .omx/state/team-leader-nudge.json | 5 ----- .omx/state/tmux-hook-state.json | 9 --------- 9 files changed, 56 deletions(-) delete mode 100644 .omx/logs/tmux-hook-2026-05-13.jsonl delete mode 100644 .omx/logs/tmux-hook-2026-05-14.jsonl delete mode 100644 .omx/logs/turns-2026-05-13.jsonl delete mode 100644 .omx/logs/turns-2026-05-14.jsonl delete mode 100644 .omx/metrics.json delete mode 100644 .omx/state/hud-state.json delete mode 100644 .omx/state/notify-hook-state.json delete mode 100644 .omx/state/team-leader-nudge.json delete mode 100644 .omx/state/tmux-hook-state.json diff --git a/.omx/logs/tmux-hook-2026-05-13.jsonl b/.omx/logs/tmux-hook-2026-05-13.jsonl deleted file mode 100644 index 716367bf0e..0000000000 --- a/.omx/logs/tmux-hook-2026-05-13.jsonl +++ /dev/null @@ -1,7 +0,0 @@ -{"timestamp":"2026-05-13T02:58:22.995Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-13T02:59:14.683Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-13T03:00:39.337Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-13T03:29:12.322Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-13T05:02:18.048Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-13T06:19:18.709Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-13T06:23:48.555Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} diff --git a/.omx/logs/tmux-hook-2026-05-14.jsonl b/.omx/logs/tmux-hook-2026-05-14.jsonl deleted file mode 100644 index 6b4ad9eb53..0000000000 --- a/.omx/logs/tmux-hook-2026-05-14.jsonl +++ /dev/null @@ -1,2 +0,0 @@ -{"timestamp":"2026-05-14T03:41:54.025Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} -{"timestamp":"2026-05-14T03:42:48.391Z","type":"auto_nudge_skipped","reason":"unmanaged_session"} diff --git a/.omx/logs/turns-2026-05-13.jsonl b/.omx/logs/turns-2026-05-13.jsonl deleted file mode 100644 index fe86abc1a3..0000000000 --- a/.omx/logs/turns-2026-05-13.jsonl +++ /dev/null @@ -1,7 +0,0 @@ -{"timestamp":"2026-05-13T02:58:22.797Z","type":"agent-turn-complete","thread_id":"019e1f43-c10a-7033-80ad-bfc64ac73caa","turn_id":"019e1f43-c5d7-74b1-bca6-9a8c9d0c8e04","input_preview":"你是只读代码勘查代理。任务:在 /Users/bytedance/Documents/GitHub/VChart-develop 中核对 VChart 已完成的 VRender 升级,不要修改文件。\n","output_preview":"### 一致性核对结论(仅读核对)\n\n#### 1) `docs/vtable-upgrade-vrender-guide.md` 与 VChart 实际代码一致性\n\n- `/Users/bytedance/Documents/GitHub/VChart-develop/packages/vchart/src/compile/stage-app.ts`\n - 结论:一致。文件有独立 helper"} -{"timestamp":"2026-05-13T02:59:14.498Z","type":"agent-turn-complete","thread_id":"019e1f43-9cf5-7f60-8aa5-d4eeec290f5b","turn_id":"019e1f43-a462-7002-87eb-f510ac680540","input_preview":"你是只读代码勘查代理。任务:在 /Users/bytedance/Documents/GitHub/VRender2 中核对 VRender2 重构后的上层接入面,重点回答 VTable 升级需要知道","output_preview":"以下为**只读核查结果**(VRender2 源码快照):\n\n### 1) `@visactor/vrender` 是否导出 `createBrowserVRenderApp` / `createNodeVRenderApp`(源码路径与签名)\n\n**路径**\n- `/Users/bytedance/Documents/GitHub/VRender2/packages/vrender/src/en"} -{"timestamp":"2026-05-13T03:00:39.104Z","type":"agent-turn-complete","thread_id":"019e1f43-debe-71a0-ae3d-6c02e9a008e8","turn_id":"019e1f43-e359-7b31-a5c0-c82023648026","input_preview":"你是只读代码勘查代理。任务:在 /Users/bytedance/Documents/GitHub/VTable 中梳理当前 VRender 调用面,不要修改文件。\n\n请检查:\n1. 所有 @visa","output_preview":"\n\n\n- [/Users/bytedance/Documents/GitHub/VTable/packages/vtable/package.json] -- 包主的 VRender 直接依赖声明入口;后续升级最小破坏面。\n- [/Users/bytedance/Documents/GitHub/VTable/common/config/rush/pnpm-lock"} -{"timestamp":"2026-05-13T03:29:12.125Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e1f42-cae5-7070-9d03-8431ba85fd6b","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu","output_preview":"已完成 VRender 系列升级接入,并按本地 `/Users/bytedance/Documents/GitHub/VRender2` 解析依赖。VChart 指南只作为参考使用,关键 API 和版本解析都重新核对过;公开 registry 的 `1.0.45/1.0.46` 缺少本次需要的 app creator,因此当前用 Rush `globalOverrides` 指向本地 VRende"} -{"timestamp":"2026-05-13T05:02:17.849Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e1f77-f289-7883-9da6-47f7853efa2a","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.","output_preview":"已定位并修复这个回归。\n\n根因是 VRender2 创建 app 时,app registry 里保留的是 runtime 的默认 `DefaultCanvasGroupRender`,而 VTable 的分边框绘制贡献 `SplitGroupBefore/AfterRenderContribution` 挂在 legacy renderer 上。默认 group renderer 不处理 VTa"} -{"timestamp":"2026-05-13T06:19:18.508Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e1fc8-c160-70e2-8f8f-56e2555f0d33","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n","output_preview":"已修复第二个问题。\n\n根因是 VTable 当前解析到的 `@visactor/vchart@2.0.13-alpha.10` 仍在内部直接 `new Stage(...)`,没有走 VRender2 的 app-scoped stage 路径;在 VRender2 下会导致 VChart 图元实际不渲染。已将 Rush override 切到本地升级后的 VChart:\n\n- [pnpm-con"} -{"timestamp":"2026-05-13T06:23:48.380Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e2001-1269-7051-bc0b-bfd0e43ea19b","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n; 如果我需要使用 rush start 进行测试,需要 VCHart 进行build 吗?","output_preview":"需要,取决于你测什么:\n\n如果只是用当前这份 VChart 本地仓库已有的构建产物测试,暂时不需要再 build。我已经确认 VTable 解析到的本地 VChart 包里有 `esm/cjs/compile/stage-app.js`,`rush start` 能用这份产物。\n\n如果你之后改了 `/Users/bytedance/Documents/GitHub/VChart/packages/"} diff --git a/.omx/logs/turns-2026-05-14.jsonl b/.omx/logs/turns-2026-05-14.jsonl deleted file mode 100644 index 35a73227e6..0000000000 --- a/.omx/logs/turns-2026-05-14.jsonl +++ /dev/null @@ -1,2 +0,0 @@ -{"timestamp":"2026-05-14T03:41:53.687Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e2484-c9ef-72d0-8f87-04f580e5e4af","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n; 如果我需要使用 rush start 进行测试,需要 VCHart 进行build 吗?; 发现一个有效果问题的 case:\ncase位置:“Debug” 下 ”animation“ \n\n错误现象:\n1. 当前case 有动画效果\n2. 发现单元格内容在动画执行玩出后会隐藏\n3. 隐藏行为不; 应该是VRender 新的图形动画调用方式有更新,你可以给我提问,我会协助你让 VRender 回答你需要了解的内容; 你需要升级 VRender 到 1.1.0-alpha.18 ,然后 VRender 侧 agent 给你的回复如下:\n\n结论\n\n 1. 是的。VRender2/D3 属性模型下,普通 appea; VChart 升级到 2.1.0-alpha.2 ,不再使用本地 link。动画测试我已验证现在代码逻辑下是正常的了,你完成版本升级即可","output_preview":"当前阻塞在包源,不是代码改动。\n\n我已完成这些声明改动:\n\n- `@visactor/vchart` 全部改为 `2.1.0-alpha.2`\n- 移除了 Rush 中 `@visactor/vchart` 的本地 `file:../../../VChart/...` override\n- 也移除了本地 `@visactor/vutils-extension` override,避免继续从 VCh"} -{"timestamp":"2026-05-14T03:42:48.216Z","type":"agent-turn-complete","thread_id":"019e1f37-9db4-7112-a459-747c8db6ed40","turn_id":"019e2493-dc72-7271-9afc-718a2f034b4e","input_preview":"现在我需要你进行一个升级依赖的工作,升级的依赖包是 VRender 系列包。\n\n上下文:\n\n- VRender 进行了一次较大的重构,当前重构代码在本地仓库:/Users/bytedance/Docu; 进行测试时发现一个问题:\n\n1. 测试case:’基本表格‘ 下的 list-iframe 测试\n2. 表头左上角合并的单元格中,应该不显示的格内线显示了\n3. 错误图片:[Image #1] \n4.; 当前问题确实完成了修复。现在发现另一个问题\n\n1. 错误case:”透视图“ 下的 ’bug-fix‘ 测试用例\n2. 透视图内的 VChart 没有渲染成功,应该渲染的单元格内没有任何图表渲染内容\n; 如果我需要使用 rush start 进行测试,需要 VCHart 进行build 吗?; 发现一个有效果问题的 case:\ncase位置:“Debug” 下 ”animation“ \n\n错误现象:\n1. 当前case 有动画效果\n2. 发现单元格内容在动画执行玩出后会隐藏\n3. 隐藏行为不; 应该是VRender 新的图形动画调用方式有更新,你可以给我提问,我会协助你让 VRender 回答你需要了解的内容; 你需要升级 VRender 到 1.1.0-alpha.18 ,然后 VRender 侧 agent 给你的回复如下:\n\n结论\n\n 1. 是的。VRender2/D3 属性模型下,普通 appea; VChart 升级到 2.1.0-alpha.2 ,不再使用本地 link。动画测试我已验证现在代码逻辑下是正常的了,你完成版本升级即可; vchart 发版还没有完成,你可以先对配置文件进行修改,VChart 发版完成后,我会执行 rush update 进行依赖安装","output_preview":"已按“先改配置,暂不安装”处理完。\n\n配置层面现在是:\n\n- `common/config/rush/pnpm-config.json`\n - `@visactor/vchart`: `2.1.0-alpha.2`\n - VRender 系列: `1.1.0-alpha.18`\n - 已去掉 `VChart` / `VRender2` 的本地 `file:` override\n- `docs"} diff --git a/.omx/metrics.json b/.omx/metrics.json deleted file mode 100644 index ae24946420..0000000000 --- a/.omx/metrics.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "total_turns": 9, - "session_turns": 9, - "last_activity": "2026-05-14T03:42:48.221Z", - "session_input_tokens": 0, - "session_output_tokens": 0, - "session_total_tokens": 0 -} \ No newline at end of file diff --git a/.omx/state/hud-state.json b/.omx/state/hud-state.json deleted file mode 100644 index 9448e9c0c3..0000000000 --- a/.omx/state/hud-state.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "last_turn_at": "2026-05-14T03:42:48.326Z", - "turn_count": 9, - "last_progress_at": "2026-05-14T03:42:48.326Z", - "last_agent_output": "已按“先改配置,暂不安装”处理完。\n\n配置层面现在是:\n\n- `common/config/rush/pnpm-config.json`\n - `@visactor/vchart`: `2.1.0-" -} \ No newline at end of file diff --git a/.omx/state/notify-hook-state.json b/.omx/state/notify-hook-state.json deleted file mode 100644 index b79524652e..0000000000 --- a/.omx/state/notify-hook-state.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recent_turns": { - "019e1f37-9db4-7112-a459-747c8db6ed40|019e1f77-f289-7883-9da6-47f7853efa2a|agent-turn-complete": 1778648537847, - "019e1f37-9db4-7112-a459-747c8db6ed40|019e1fc8-c160-70e2-8f8f-56e2555f0d33|agent-turn-complete": 1778653158506, - "019e1f37-9db4-7112-a459-747c8db6ed40|019e2001-1269-7051-bc0b-bfd0e43ea19b|agent-turn-complete": 1778653428378, - "019e1f37-9db4-7112-a459-747c8db6ed40|019e2484-c9ef-72d0-8f87-04f580e5e4af|agent-turn-complete": 1778730113680, - "019e1f37-9db4-7112-a459-747c8db6ed40|019e2493-dc72-7271-9afc-718a2f034b4e|agent-turn-complete": 1778730168214 - }, - "last_event_at": "2026-05-14T03:42:48.215Z" -} \ No newline at end of file diff --git a/.omx/state/team-leader-nudge.json b/.omx/state/team-leader-nudge.json deleted file mode 100644 index 96f0509e43..0000000000 --- a/.omx/state/team-leader-nudge.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "last_nudged_by_team": {}, - "last_idle_nudged_by_team": {}, - "progress_by_team": {} -} \ No newline at end of file diff --git a/.omx/state/tmux-hook-state.json b/.omx/state/tmux-hook-state.json deleted file mode 100644 index 2e79df402d..0000000000 --- a/.omx/state/tmux-hook-state.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "total_injections": 0, - "pane_counts": {}, - "session_counts": {}, - "recent_keys": {}, - "last_injection_ts": 0, - "last_reason": "disabled", - "last_event_at": "2026-05-14T03:42:48.339Z" -} \ No newline at end of file From 3ac69060ff8bb9a2bf327f716fb571589c16aff6 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Mon, 15 Jun 2026 15:09:51 +0800 Subject: [PATCH 12/22] fix(vtable): preserve VRender alpha.26 contracts The develop merge surfaced stricter VRender tree insertion behavior. It also exposed tests that depended on stale column/layout state. Keep VTable public state stable and adapt plugin tests to alpha.26 public subpaths. Constraint: VRender alpha.26 rejects inserting an attached graphic as a child Constraint: Plugin tests import the built VTable CJS entry Rejected: Deep import VRender internals | public subpaths must remain the boundary Confidence: high Scope-risk: moderate Directive: Do not reintroduce clear/add fallbacks for VRender tree reuse Tested: rush update Tested: packages/vtable rushx compile Tested: packages/vtable rushx build Tested: packages/vtable rushx test --runInBand Tested: packages/vtable-plugins rushx compile Tested: packages/vtable-plugins rushx test --runInBand Tested: rush test --only tag:package Tested: eslint changed files --quiet Tested: git diff --check Tested: pre-commit lint-staged eslint/prettier --- packages/vtable-plugins/jest.config.js | 20 ++++++++++-- packages/vtable/src/ListTable.ts | 31 +++++++++++++++---- packages/vtable/src/core/BaseTable.ts | 12 +++++-- .../vtable/src/scenegraph/graphic/group.ts | 5 +++ .../group-creater/cell-type/video-cell.ts | 17 ++++++++-- 5 files changed, 71 insertions(+), 14 deletions(-) diff --git a/packages/vtable-plugins/jest.config.js b/packages/vtable-plugins/jest.config.js index 40c71a2d45..4ddb9d0387 100644 --- a/packages/vtable-plugins/jest.config.js +++ b/packages/vtable-plugins/jest.config.js @@ -1,8 +1,11 @@ +const path = require('path'); const isCI = process.env.CI === 'true' || process.env.CI === '1'; +const { createVRenderModuleNameMapper } = require('../../common/config/jest/vrender-module-name-mapper'); module.exports = { preset: 'ts-jest', - testEnvironment: 'jsdom', + runner: 'jest-electron/runner', + testEnvironment: 'jest-electron/environment', testMatch: ['/__tests__/**/*.test.(ts|js)'], silent: false, verbose: true, @@ -33,6 +36,19 @@ module.exports = { } } : undefined, - moduleNameMapper: {}, + moduleNameMapper: { + 'd3-color': path.resolve(__dirname, '../vtable/node_modules/d3-color/dist/d3-color.min.js'), + 'd3-array': path.resolve(__dirname, '../vtable/node_modules/d3-array/dist/d3-array.min.js'), + 'd3-geo': path.resolve(__dirname, '../vtable/node_modules/d3-geo/dist/d3-geo.min.js'), + 'd3-dsv': path.resolve(__dirname, '../vtable/node_modules/d3-dsv/dist/d3-dsv.min.js'), + 'd3-hexbin': path.resolve(__dirname, '../vtable/node_modules/d3-hexbin/build/d3-hexbin.min.js'), + 'd3-hierarchy': path.resolve(__dirname, '../vtable/node_modules/d3-hierarchy/dist/d3-hierarchy.min.js'), + ...createVRenderModuleNameMapper('/../vtable/node_modules'), + '^@visactor/vtable-editors$': path.resolve(__dirname, '../vtable-editors/src/index.ts'), + '^@visactor/vtable/es/ts-types$': '/../vtable/cjs/ts-types/index.js', + '^@visactor/vtable/es/(.*)$': '/../vtable/cjs/$1.js', + '^@visactor/vtable$': path.resolve(__dirname, '../vtable/cjs/index.js'), + '^@src/vrender$': path.resolve(__dirname, '../vtable/src/vrender.ts') + }, setupFiles: ['./setup-mock.js'] }; diff --git a/packages/vtable/src/ListTable.ts b/packages/vtable/src/ListTable.ts index 47e7c0d699..902cd35a44 100644 --- a/packages/vtable/src/ListTable.ts +++ b/packages/vtable/src/ListTable.ts @@ -84,6 +84,17 @@ import { // registerVideoCell // } from './scenegraph/group-creater/cell-type'; +const LAYOUT_COLUMN_STATE_KEYS = ['level', 'startIndex', 'id', 'levelSpan', 'size', 'startInTotal']; + +function clearLayoutColumnState(columns: ColumnsDefine | undefined) { + columns?.forEach(column => { + LAYOUT_COLUMN_STATE_KEYS.forEach(key => { + delete (column as any)[key]; + }); + clearLayoutColumnState((column as any).children ?? (column as any).columns); + }); +} + // registerAxis(); // registerEmptyTip(); // registerLegend(); @@ -1062,9 +1073,22 @@ export class ListTable extends BaseTable implements ListTableAPI { return null; } private syncColumnsStateFromLayoutMap() { + const sourceColumns = this.options.columns ?? this.internalProps.columns; + const nextColumns = sourceColumns.some(column => column.hide === true) + ? this.mergeHiddenColumnsWithVisibleOrder(sourceColumns) + : this.columns; + const publicColumns = cloneDeepSpec(nextColumns, ['children']); + clearLayoutColumnState(publicColumns); + this.internalProps.columns = cloneDeepSpec(publicColumns, ['children']); + this.options.columns = publicColumns; + if (this.options.header) { + this.options.header = publicColumns; + } + } + private mergeHiddenColumnsWithVisibleOrder(sourceColumns: ColumnsDefine) { const visibleColumns = this.internalProps.layoutMap.columnObjects.map(column => column.define); let visibleIndex = 0; - const nextColumns = this.internalProps.columns.map(column => { + return sourceColumns.map(column => { if (column.hide === true) { return column; } @@ -1072,11 +1096,6 @@ export class ListTable extends BaseTable implements ListTableAPI { visibleIndex += 1; return nextVisibleColumn ?? column; }); - this.internalProps.columns = cloneDeepSpec(nextColumns, ['children']); - this.options.columns = nextColumns; - if (this.options.header) { - this.options.header = nextColumns; - } } changeRecordOrder(sourceIndex: number, targetIndex: number) { if (this.transpose) { diff --git a/packages/vtable/src/core/BaseTable.ts b/packages/vtable/src/core/BaseTable.ts index ef7edb28f5..96f03e0d30 100644 --- a/packages/vtable/src/core/BaseTable.ts +++ b/packages/vtable/src/core/BaseTable.ts @@ -2507,13 +2507,16 @@ export abstract class BaseTable extends EventTarget implements BaseTableAPI { const frozenColsOffset = this.getFrozenColsOffset(); const bottomFrozenRowsHeight = this.getBottomFrozenRowsHeight(); const rightFrozenColsWidth = this.getRightFrozenColsWidth(); + const frozenHeaderHeight = + this.frozenRowCount > this.columnHeaderLevelCount ? this.getRowsHeight(0, this.columnHeaderLevelCount - 1) : 0; // 计算非冻结 const rowStart = Math.max(this.getTargetRowAt(scrollTop + 1)?.row ?? -1, this.frozenRowCount); const { col: colStart } = this.getColAt(scrollLeft + frozenColsContentWidth + 1); const rowEnd = this.getAllRowsHeight() > this.tableNoFrameHeight ? Math.max( - this.getTargetRowAt(scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight)?.row ?? -1, + this.getTargetRowAt(scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight - frozenHeaderHeight) + ?.row ?? -1, rowStart ) : this.rowCount - 1; @@ -2535,13 +2538,16 @@ export abstract class BaseTable extends EventTarget implements BaseTableAPI { getBodyVisibleRowRange(start_deltaY: number = 0, end_deltaY: number = 0) { const { scrollTop } = this; const bottomFrozenRowsHeight = this.getBottomFrozenRowsHeight(); + const frozenHeaderHeight = + this.frozenRowCount > this.columnHeaderLevelCount ? this.getRowsHeight(0, this.columnHeaderLevelCount - 1) : 0; // 计算非冻结 const rowStart = Math.max(this.getTargetRowAt(scrollTop + 1 + start_deltaY)?.row ?? -1, this.frozenRowCount); const rowEnd = this.getAllRowsHeight() > this.tableNoFrameHeight ? Math.max( - this.getTargetRowAt(scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight + end_deltaY)?.row ?? - -1, + this.getTargetRowAt( + scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight - frozenHeaderHeight + end_deltaY + )?.row ?? -1, rowStart ) : this.rowCount - 1; diff --git a/packages/vtable/src/scenegraph/graphic/group.ts b/packages/vtable/src/scenegraph/graphic/group.ts index fd436b5e59..a8c8ea15eb 100644 --- a/packages/vtable/src/scenegraph/graphic/group.ts +++ b/packages/vtable/src/scenegraph/graphic/group.ts @@ -227,6 +227,11 @@ export class Group extends VRenderGroup { } addCellGroup(cellGroup: Group) { + const parent = cellGroup.parent as Group | undefined; + if (parent) { + parent.removeChild(cellGroup); + } + if (this.childrenCount === 0 || (this.lastChild as Group).row === cellGroup.row - 1) { this.addChild(cellGroup); } else { 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 dea5246088..188af04233 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 @@ -163,8 +163,12 @@ export function createVideoCellGroup( const value = table.getCellValue(col, row); const video = document.createElement('video'); video.addEventListener('loadeddata', (): void => { + const scenegraph = table.scenegraph; + if (!scenegraph) { + return; + } if (imageAutoSizing) { - _adjustWidthHeight(col, row, video.videoWidth, video.videoHeight, table.scenegraph, padding, cellGroup); + _adjustWidthHeight(col, row, video.videoWidth, video.videoHeight, scenegraph, padding, cellGroup); } // const width = cellGroup.attribute.width; // const height = cellGroup.attribute.height; @@ -249,9 +253,12 @@ export function createVideoCellGroup( playIcon.name = 'play-icon'; cellGroup.appendChild(playIcon); // 触发重绘 - table.scenegraph.updateNextFrame(); + scenegraph.updateNextFrame(); }); video.onerror = (): void => { + if (!table.scenegraph) { + return; + } const regedIcons = icons.get(); (image as any).image = regedIcons.video_damage_pic ? (regedIcons.video_damage_pic as any).svg @@ -274,6 +281,10 @@ export function createVideoCellGroup( image.textBaseline = textBaseline; cellGroup.appendChild(image); image.successCallback = () => { + const scenegraph = table.scenegraph; + if (!scenegraph) { + return; + } //补丁处理,上面loadeddata已经有一些尺寸处理,对应image-cell中updateAutoSizingAndKeepAspectRatio处理, //image重新赋值为损坏的图片的资源地址后,successCallback回调处理 //仿照image-cell.ts中的处理方法updateAutoSizingAndKeepAspectRatio @@ -288,7 +299,7 @@ export function createVideoCellGroup( cellGroup, table ); - table.scenegraph.updateNextFrame(); + scenegraph.updateNextFrame(); } }; return cellGroup; From 51b6db069571221a93275afc3d1acbbfbf9e55c3 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Mon, 15 Jun 2026 15:31:37 +0800 Subject: [PATCH 13/22] fix(vtable): guard VRender tree insertions VRender alpha.26 rejects ancestor insertions instead of loose tree mutation. VTable now uses the actual inserted cell group when a defensive clone is needed. This keeps later content append calls attached to the live scenegraph container. Constraint: VRender alpha.26 rejects ancestor insertBefore/insertAfter operations Constraint: Cell creators append content after addCellGroup inserts the container Rejected: Swallow insert errors | content would be appended to a detached group Confidence: high Scope-risk: moderate Directive: Keep cell creators using the Group.addCellGroup return value Tested: packages/vtable rushx compile Tested: packages/vtable rushx build Tested: packages/vtable rushx test Tested: scenegraph strict insertion regression tests Tested: rush test --only tag:package Tested: eslint changed files --quiet Tested: git diff --check --- .../vtable/__tests__/scenegraph/group.test.ts | 29 +++++++++++++ .../scenegraph/text-icon-layout.test.ts | 28 ++++++++++++ .../vtable/src/scenegraph/graphic/group.ts | 43 ++++++++++++++++--- .../group-creater/cell-type/button-cell.ts | 2 +- .../group-creater/cell-type/chart-cell.ts | 2 +- .../group-creater/cell-type/checkbox-cell.ts | 2 +- .../group-creater/cell-type/image-cell.ts | 2 +- .../group-creater/cell-type/radio-cell.ts | 2 +- .../cell-type/spark-line-cell.ts | 2 +- .../group-creater/cell-type/switch-cell.ts | 2 +- .../group-creater/cell-type/text-cell.ts | 2 +- .../group-creater/cell-type/video-cell.ts | 2 +- .../src/scenegraph/utils/text-icon-layout.ts | 33 +++++++++++--- 13 files changed, 130 insertions(+), 21 deletions(-) create mode 100644 packages/vtable/__tests__/scenegraph/group.test.ts create mode 100644 packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts diff --git a/packages/vtable/__tests__/scenegraph/group.test.ts b/packages/vtable/__tests__/scenegraph/group.test.ts new file mode 100644 index 0000000000..d855f56498 --- /dev/null +++ b/packages/vtable/__tests__/scenegraph/group.test.ts @@ -0,0 +1,29 @@ +import { Group } from '../../src/scenegraph/graphic/group'; + +describe('scenegraph Group', () => { + test('addCellGroup clones ancestor cell groups before insertion', () => { + const columnGroup = new Group({}); + const existingCell = new Group({}); + existingCell.role = 'cell'; + existingCell.row = 0; + columnGroup.addCellGroup(existingCell); + + const ancestorCell = new Group({ width: 120, height: 24 }); + ancestorCell.role = 'cell'; + ancestorCell.col = 2; + ancestorCell.row = 1; + (columnGroup as any).parent = ancestorCell; + + const insertedCell = columnGroup.addCellGroup(ancestorCell); + + expect(insertedCell).not.toBe(ancestorCell); + expect(insertedCell.parent).toBe(columnGroup); + expect(insertedCell.role).toBe('cell'); + expect(insertedCell.col).toBe(2); + expect(insertedCell.row).toBe(1); + expect(columnGroup.lastChild).toBe(insertedCell); + + columnGroup.removeAllChild(); + (columnGroup as any).parent = null; + }); +}); diff --git a/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts b/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts new file mode 100644 index 0000000000..61bf08a8b8 --- /dev/null +++ b/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts @@ -0,0 +1,28 @@ +import { Text } from '../../src/vrender'; +import { Group } from '../../src/scenegraph/graphic/group'; +import { insertTextBeforeCellIcons } from '../../src/scenegraph/utils/text-icon-layout'; + +describe('text icon layout insertion', () => { + test('clones ancestor text before inserting it into a cell group', () => { + const ancestorText = new Text({ text: 'value' }); + ancestorText.name = 'text'; + (ancestorText as any).addChildUpdateBoundTag = jest.fn(); + const cellGroup = new Group({}); + const iconGroup = new Group({}); + iconGroup.name = 'icon'; + + cellGroup.appendChild(iconGroup); + (cellGroup as any).parent = ancestorText; + + const insertedText = insertTextBeforeCellIcons(cellGroup, ancestorText as any); + + expect(insertedText).not.toBe(ancestorText); + expect(insertedText.name).toBe('text'); + expect(insertedText.parent).toBe(cellGroup); + expect(cellGroup.firstChild).toBe(insertedText); + expect(insertedText.nextSibling).toBe(iconGroup); + + cellGroup.removeAllChild(); + (cellGroup as any).parent = null; + }); +}); diff --git a/packages/vtable/src/scenegraph/graphic/group.ts b/packages/vtable/src/scenegraph/graphic/group.ts index a8c8ea15eb..2647dfdbf4 100644 --- a/packages/vtable/src/scenegraph/graphic/group.ts +++ b/packages/vtable/src/scenegraph/graphic/group.ts @@ -226,26 +226,57 @@ export class Group extends VRenderGroup { return null; } - addCellGroup(cellGroup: Group) { - const parent = cellGroup.parent as Group | undefined; - if (parent) { - parent.removeChild(cellGroup); - } + addCellGroup(cellGroup: Group): Group { + cellGroup = this.getInsertableCellGroup(cellGroup); if (this.childrenCount === 0 || (this.lastChild as Group).row === cellGroup.row - 1) { this.addChild(cellGroup); + return cellGroup; } else { // for promise cell row order in column let c = this._firstChild as Group; for (let i = 0; i < this.childrenCount; i++) { if (c.row === cellGroup.row - 1) { this.insertAfter(cellGroup, c); - return; + return cellGroup; } c = c._next as Group; } this.addChild(cellGroup); + return cellGroup; + } + } + + private getInsertableCellGroup(cellGroup: Group): Group { + if (cellGroup.isAncestorsOf(this)) { + return this.cloneCellGroupForInsertion(cellGroup); } + + const parent = cellGroup.parent as Group | undefined; + if (parent) { + parent.removeChild(cellGroup); + } + return cellGroup; + } + + private cloneCellGroupForInsertion(cellGroup: Group): Group { + const clonedCellGroup = new Group({ ...cellGroup.attribute }); + clonedCellGroup.name = cellGroup.name; + clonedCellGroup.role = cellGroup.role; + clonedCellGroup.col = cellGroup.col; + clonedCellGroup.row = cellGroup.row; + clonedCellGroup.mergeStartCol = cellGroup.mergeStartCol; + clonedCellGroup.mergeStartRow = cellGroup.mergeStartRow; + clonedCellGroup.mergeEndCol = cellGroup.mergeEndCol; + clonedCellGroup.mergeEndRow = cellGroup.mergeEndRow; + clonedCellGroup.contentWidth = cellGroup.contentWidth; + clonedCellGroup.contentHeight = cellGroup.contentHeight; + clonedCellGroup.rowNumber = cellGroup.rowNumber; + clonedCellGroup.colHeight = cellGroup.colHeight; + clonedCellGroup.needUpdate = cellGroup.needUpdate; + clonedCellGroup.needUpdateWidth = cellGroup.needUpdateWidth; + clonedCellGroup.needUpdateHeight = cellGroup.needUpdateHeight; + return clonedCellGroup; } getChildAt(index: number) { diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/button-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/button-cell.ts index c81245c8eb..09bb63974f 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/button-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/button-cell.ts @@ -77,7 +77,7 @@ export function createButtonCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } } 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 fdc78ceb6d..27383d378b 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 @@ -82,7 +82,7 @@ export function createChartCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } } cellGroup.AABBBounds.width(); // TODO 需要底层VRender修改 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 e7bf705025..dcf7aeff55 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 @@ -91,7 +91,7 @@ export function createCheckboxCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } } 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 8cffa12ad0..3030c49239 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 @@ -95,7 +95,7 @@ export function createImageCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } let cellIcons; diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/radio-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/radio-cell.ts index 791d546f6a..a7012394cc 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/radio-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/radio-cell.ts @@ -58,7 +58,7 @@ export function createRadioCellGroup( cellGroup.col = col; cellGroup.row = row; // columnGroup?.addChild(cellGroup); - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } // radio 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 ce6d3c1294..259d642314 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 @@ -72,7 +72,7 @@ export function createSparkLineCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } } diff --git a/packages/vtable/src/scenegraph/group-creater/cell-type/switch-cell.ts b/packages/vtable/src/scenegraph/group-creater/cell-type/switch-cell.ts index cdd78b493b..705a4739fa 100644 --- a/packages/vtable/src/scenegraph/group-creater/cell-type/switch-cell.ts +++ b/packages/vtable/src/scenegraph/group-creater/cell-type/switch-cell.ts @@ -77,7 +77,7 @@ export function createSwitchCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } } 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 95d79da0a2..8ce3149af2 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 @@ -113,7 +113,7 @@ export function createCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } if (customElementsGroup) { cellGroup.appendChild(customElementsGroup); 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 188af04233..4eada0e2d8 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 @@ -104,7 +104,7 @@ export function createVideoCellGroup( cellGroup.role = 'cell'; cellGroup.col = col; cellGroup.row = row; - columnGroup?.addCellGroup(cellGroup); + cellGroup = columnGroup?.addCellGroup(cellGroup) ?? cellGroup; } let cellIcons; diff --git a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts index 3591e1a7c5..285c09f804 100644 --- a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts +++ b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts @@ -19,6 +19,32 @@ import { getTargetCell } from '../../event/util'; import { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE'; // import { createLine } from '@src/vrender'; +type CellTextMark = Text | RichText; + +export function insertTextBeforeCellIcons(cellGroup: Group, textMark: T): T { + const insertableTextMark = getInsertableTextMark(cellGroup, textMark); + if (cellGroup.firstChild) { + cellGroup.insertBefore(insertableTextMark, cellGroup.firstChild); + } else { + cellGroup.appendChild(insertableTextMark); + } + return insertableTextMark; +} + +function getInsertableTextMark(cellGroup: Group, textMark: T): T { + if (textMark.isAncestorsOf(cellGroup)) { + const clonedTextMark = textMark.clone() as T; + clonedTextMark.name = textMark.name; + (clonedTextMark as any).role = (textMark as any).role; + (clonedTextMark as any).onBeforeAttributeUpdate = (textMark as any).onBeforeAttributeUpdate; + if (clonedTextMark instanceof RichText) { + clonedTextMark.bindIconEvent(); + } + return clonedTextMark; + } + return textMark; +} + /** * @description: 创建单元格内容 * cellGroup @@ -412,12 +438,7 @@ export function createCellContent( contentHeight = cellContent.AABBBounds.height(); } else { // 没有content icon,cellGroup: CellIcons + wrapText/richtext - // cellGroup.appendChild(textMark); - if (cellGroup.firstChild) { - cellGroup.insertBefore(textMark, cellGroup.firstChild); - } else { - cellGroup.appendChild(textMark); - } + textMark = insertTextBeforeCellIcons(cellGroup, textMark); contentWidth = textMark.AABBBounds.width(); contentHeight = textMark.AABBBounds.height(); } From 2d425cf36e46234a4fb3284d4eb4fffa4c1476c4 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Tue, 16 Jun 2026 17:51:57 +0800 Subject: [PATCH 14/22] chore: upgrade vrender and vchart --- common/config/rush/pnpm-config.json | 12 +-- common/config/rush/pnpm-lock.yaml | 122 ++++++++++++------------- docs/package.json | 2 +- packages/openinula-vtable/package.json | 2 +- packages/react-vtable/package.json | 2 +- packages/vtable-export/package.json | 2 +- packages/vtable-plugins/package.json | 2 +- packages/vtable-search/package.json | 2 +- packages/vtable/package.json | 12 +-- packages/vue-vtable/package.json | 2 +- 10 files changed, 80 insertions(+), 80 deletions(-) diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index 2c2ef37f2b..cd9dc00caa 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -83,12 +83,12 @@ * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides */ "globalOverrides": { - "@visactor/vchart": "2.1.0-alpha.9", - "@visactor/vrender": "1.1.0-alpha.26", - "@visactor/vrender-core": "1.1.0-alpha.26", - "@visactor/vrender-kits": "1.1.0-alpha.26", - "@visactor/vrender-components": "1.1.0-alpha.26", - "@visactor/vrender-animate": "1.1.0-alpha.26" + "@visactor/vchart": "2.1.0-alpha.18", + "@visactor/vrender": "1.1.0-alpha.27", + "@visactor/vrender-core": "1.1.0-alpha.27", + "@visactor/vrender-kits": "1.1.0-alpha.27", + "@visactor/vrender-components": "1.1.0-alpha.27", + "@visactor/vrender-animate": "1.1.0-alpha.27" }, /** * 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 b17a18b29b..d0c26b1429 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -5,12 +5,12 @@ settings: excludeLinksFromLockfile: false overrides: - '@visactor/vchart': 2.1.0-alpha.9 - '@visactor/vrender': 1.1.0-alpha.26 - '@visactor/vrender-core': 1.1.0-alpha.26 - '@visactor/vrender-kits': 1.1.0-alpha.26 - '@visactor/vrender-components': 1.1.0-alpha.26 - '@visactor/vrender-animate': 1.1.0-alpha.26 + '@visactor/vchart': 2.1.0-alpha.18 + '@visactor/vrender': 1.1.0-alpha.27 + '@visactor/vrender-core': 1.1.0-alpha.27 + '@visactor/vrender-kits': 1.1.0-alpha.27 + '@visactor/vrender-components': 1.1.0-alpha.27 + '@visactor/vrender-animate': 1.1.0-alpha.27 pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= @@ -33,8 +33,8 @@ importers: specifier: workspace:1.26.2-none version: link:../packages/react-vtable '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@visactor/vtable': specifier: workspace:1.26.2-none version: link:../packages/vtable @@ -188,8 +188,8 @@ importers: specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 axios: specifier: ^1.4.0 version: 1.16.1 @@ -339,8 +339,8 @@ importers: specifier: 0.28.9 version: 0.28.9(@types/react@18.2.79) '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -438,20 +438,20 @@ importers: specifier: ~1.0.17 version: 1.0.23 '@visactor/vrender': - specifier: 1.1.0-alpha.26 - version: 1.1.0-alpha.26 + specifier: 1.1.0-alpha.27 + version: 1.1.0-alpha.27 '@visactor/vrender-animate': - specifier: 1.1.0-alpha.26 - version: 1.1.0-alpha.26 + specifier: 1.1.0-alpha.27 + version: 1.1.0-alpha.27 '@visactor/vrender-components': - specifier: 1.1.0-alpha.26 - version: 1.1.0-alpha.26 + specifier: 1.1.0-alpha.27 + version: 1.1.0-alpha.27 '@visactor/vrender-core': - specifier: 1.1.0-alpha.26 - version: 1.1.0-alpha.26 + specifier: 1.1.0-alpha.27 + version: 1.1.0-alpha.27 '@visactor/vrender-kits': - specifier: 1.1.0-alpha.26 - version: 1.1.0-alpha.26 + specifier: 1.1.0-alpha.27 + version: 1.1.0-alpha.27 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -520,8 +520,8 @@ importers: specifier: 18.2.25 version: 18.2.25 '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -915,8 +915,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -1253,8 +1253,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@visactor/vtable': specifier: workspace:1.26.2-none version: link:../vtable @@ -1410,8 +1410,8 @@ importers: specifier: ^17.0.3 version: 17.0.7 '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) @@ -1703,8 +1703,8 @@ importers: specifier: 2019.6.4 version: 2019.6.4 '@visactor/vchart': - specifier: 2.1.0-alpha.9 - version: 2.1.0-alpha.9 + specifier: 2.1.0-alpha.18 + version: 2.1.0-alpha.18 '@vitejs/plugin-vue': specifier: ^5.0.3 version: 5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5)) @@ -3564,7 +3564,7 @@ packages: '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - '@visactor/vchart@2.1.0-alpha.9': + '@visactor/vchart@2.1.0-alpha.18': resolution: {integrity: sha512-TQVNLaxrIbumI2skEoJ3WU1AjvnErf7fahodk+OIcAcYUAGtIyFf68sO0U6V1AMTPhvPcI+oEGoyMgmPeBfkDg==} '@visactor/vdataset@1.0.23': @@ -3573,19 +3573,19 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.1.0-alpha.26': + '@visactor/vrender-animate@1.1.0-alpha.27': resolution: {integrity: sha512-shcWacvEJ5FXbbOlMHtZKRFr2KrCtdiPrMMlUiuaZJK7rJ/Wm3Y/ATEksiqzTN0SUOsYH+G/1JTcKc2Pdf5xzw==} - '@visactor/vrender-components@1.1.0-alpha.26': + '@visactor/vrender-components@1.1.0-alpha.27': resolution: {integrity: sha512-o72vPXrZY9K/uu49E1tjfRHCKznNcrqAdE4EEI48paqKCX3qoK38QzdUvkFt68srrWVG0lVmwWV/fGg72XGjrw==} - '@visactor/vrender-core@1.1.0-alpha.26': + '@visactor/vrender-core@1.1.0-alpha.27': resolution: {integrity: sha512-3JenybipQI8U1kK/P5w72LDyQOLUC0cBnUyteEZhUOH7dToyLNXv2x2HzTvMDolYtifd4jbGedZkqb5Bnb7/7g==} - '@visactor/vrender-kits@1.1.0-alpha.26': + '@visactor/vrender-kits@1.1.0-alpha.27': resolution: {integrity: sha512-OED02T92OeiWng/7uN7Oa2479kgWroBmxwn/QLDN8z/USzWJr63VO1uKUAtxi8WIQo8Aal2fVo4PCie0aOlwpg==} - '@visactor/vrender@1.1.0-alpha.26': + '@visactor/vrender@1.1.0-alpha.27': resolution: {integrity: sha512-SSDapsXKM88RLtcQKMs+StBe5DxetJOxOIAWGu0Sl5eCbdCp3kHJ2r+YUbKaMwk/4s2tAaNVXfXmmm5B+vfIpg==} '@visactor/vscale@1.0.23': @@ -3594,7 +3594,7 @@ packages: '@visactor/vutils-extension@2.0.22': resolution: {integrity: sha512-PRxjplZF1/Qdsflb1hYh9DGGJdblq91yIG7CCC6MIlMMSlDYEAMJzJ9y2clnR1MgWa2AsAtMtuu+MSdG3DctUA==} - '@visactor/vutils-extension@2.1.0-alpha.9': + '@visactor/vutils-extension@2.1.0-alpha.18': resolution: {integrity: sha512-TZ12sCLSOEpN3AGwvO3iNV0RGHyymplyXRTj4+YakJhbEc7JTRJBnGN5Pmxv2Dfn4TSplwI1raHJKayR8UkSEA==} '@visactor/vutils@1.0.23': @@ -11180,18 +11180,18 @@ snapshots: '@ungap/promise-all-settled@1.1.2': {} - '@visactor/vchart@2.1.0-alpha.9': + '@visactor/vchart@2.1.0-alpha.18': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender': 1.1.0-alpha.26 - '@visactor/vrender-animate': 1.1.0-alpha.26 - '@visactor/vrender-components': 1.1.0-alpha.26 - '@visactor/vrender-core': 1.1.0-alpha.26 - '@visactor/vrender-kits': 1.1.0-alpha.26 + '@visactor/vrender': 1.1.0-alpha.27 + '@visactor/vrender-animate': 1.1.0-alpha.27 + '@visactor/vrender-components': 1.1.0-alpha.27 + '@visactor/vrender-core': 1.1.0-alpha.27 + '@visactor/vrender-kits': 1.1.0-alpha.27 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension': 2.1.0-alpha.9 + '@visactor/vutils-extension': 2.1.0-alpha.18 '@visactor/vdataset@1.0.23': dependencies: @@ -11221,39 +11221,39 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.1.0-alpha.26': + '@visactor/vrender-animate@1.1.0-alpha.27': dependencies: - '@visactor/vrender-core': 1.1.0-alpha.26 + '@visactor/vrender-core': 1.1.0-alpha.27 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.1.0-alpha.26': + '@visactor/vrender-components@1.1.0-alpha.27': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.26 - '@visactor/vrender-core': 1.1.0-alpha.26 - '@visactor/vrender-kits': 1.1.0-alpha.26 + '@visactor/vrender-animate': 1.1.0-alpha.27 + '@visactor/vrender-core': 1.1.0-alpha.27 + '@visactor/vrender-kits': 1.1.0-alpha.27 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.1.0-alpha.26': + '@visactor/vrender-core@1.1.0-alpha.27': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-kits@1.1.0-alpha.26': + '@visactor/vrender-kits@1.1.0-alpha.27': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.1.0-alpha.26 + '@visactor/vrender-core': 1.1.0-alpha.27 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender@1.1.0-alpha.26': + '@visactor/vrender@1.1.0-alpha.27': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.26 - '@visactor/vrender-components': 1.1.0-alpha.26 - '@visactor/vrender-core': 1.1.0-alpha.26 - '@visactor/vrender-kits': 1.1.0-alpha.26 + '@visactor/vrender-animate': 1.1.0-alpha.27 + '@visactor/vrender-components': 1.1.0-alpha.27 + '@visactor/vrender-core': 1.1.0-alpha.27 + '@visactor/vrender-kits': 1.1.0-alpha.27 '@visactor/vscale@1.0.23': dependencies: @@ -11264,7 +11264,7 @@ snapshots: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vutils-extension@2.1.0-alpha.9': + '@visactor/vutils-extension@2.1.0-alpha.18': dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vutils': 1.0.23 diff --git a/docs/package.json b/docs/package.json index 13e81bddcb..beaba2f374 100644 --- a/docs/package.json +++ b/docs/package.json @@ -22,7 +22,7 @@ "@visactor/vtable-search": "workspace:1.26.2-none", "@visactor/vtable-sheet": "workspace:1.26.2-none", "buble": "^0.20.0", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "markdown-it": "^13.0.0", "highlight.js": "^11.8.0", "axios": "^1.4.0", diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index 95d40ed489..f40722753e 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -50,7 +50,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index 6a9b0fc7d4..ae7fd6eab9 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -65,7 +65,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index 55728cd381..91833b84fe 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -46,7 +46,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable-plugins/package.json b/packages/vtable-plugins/package.json index c87f80aa7d..95cc5f4e5d 100644 --- a/packages/vtable-plugins/package.json +++ b/packages/vtable-plugins/package.json @@ -64,7 +64,7 @@ "@visactor/vtable": "workspace:1.26.2-none", "@visactor/vtable-editors": "workspace:1.26.2-none", "@visactor/vtable-gantt": "workspace:1.26.2-none", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index a468a7c3c9..884add9f18 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -42,7 +42,7 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vtable/package.json b/packages/vtable/package.json index 3d334e8a4f..cb683128d5 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:1.26.2-none", - "@visactor/vrender": "1.1.0-alpha.26", - "@visactor/vrender-core": "1.1.0-alpha.26", - "@visactor/vrender-kits": "1.1.0-alpha.26", - "@visactor/vrender-components": "1.1.0-alpha.26", - "@visactor/vrender-animate": "1.1.0-alpha.26", + "@visactor/vrender": "1.1.0-alpha.27", + "@visactor/vrender-core": "1.1.0-alpha.27", + "@visactor/vrender-kits": "1.1.0-alpha.27", + "@visactor/vrender-components": "1.1.0-alpha.27", + "@visactor/vrender-animate": "1.1.0-alpha.27", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", @@ -70,7 +70,7 @@ "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", "luxon": "*", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", diff --git a/packages/vue-vtable/package.json b/packages/vue-vtable/package.json index 556b2f6432..2144ef8f67 100644 --- a/packages/vue-vtable/package.json +++ b/packages/vue-vtable/package.json @@ -66,7 +66,7 @@ "@arco-design/web-vue": "^2.11.0", "increase-memory-limit": "^1.0.7", "cross-env": "^7.0.3", - "@visactor/vchart": "2.1.0-alpha.9", + "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", "@internal/ts-config": "workspace:*", From 603a0ea48e860c66595ee2fb1772d7f5657bcb4a Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Tue, 16 Jun 2026 20:32:40 +0800 Subject: [PATCH 15/22] fix: align bugserver workspace dependencies Bugserver build runs rush install before bundling. The PR branch still had workspace:1.26.2-none ranges after develop moved to 1.26.2. Rush split those dependencies into mismatching groups and failed install. Align the workspace ranges and refresh alpha package integrity values. Constraint: develop now uses 1.26.2 workspace ranges Constraint: alpha packages have current registry integrity values Rejected: Downgrade VRender packages | would undo the VRender upgrade scope Confidence: high Scope-risk: narrow Directive: Keep internal workspace ranges on 1.26.2 while targeting develop Tested: rush check --verbose Tested: rush update Tested: rush install Tested: bugserver-trigger build command Tested: alpha package integrity compared with npm view Tested: git diff --check --- common/config/rush/pnpm-lock.yaml | 14 +++++++------- packages/vtable-plugins/package.json | 6 +++--- packages/vtable/package.json | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index f0ea94a5d5..e96baf2f5d 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -3565,7 +3565,7 @@ packages: resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} '@visactor/vchart@2.1.0-alpha.18': - resolution: {integrity: sha512-TQVNLaxrIbumI2skEoJ3WU1AjvnErf7fahodk+OIcAcYUAGtIyFf68sO0U6V1AMTPhvPcI+oEGoyMgmPeBfkDg==} + resolution: {integrity: sha512-rY3yT5Kl3Qu+OTSUMP7Gu6rXGZQaaNJhQT4yF9D2SOU1tZRYc64cfC2c3DWBQh5mv49P3l+JKQjGGHqAe5z5/A==} '@visactor/vdataset@1.0.23': resolution: {integrity: sha512-zrLk9FBUWJoW6b30XnPKzXwAXl8USdLDfed6QZLsmdkylRU8V7yZeXE2aKwU8Lg1U4HmQngqmqOx7/QlbX44Tg==} @@ -3574,19 +3574,19 @@ packages: resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} '@visactor/vrender-animate@1.1.0-alpha.27': - resolution: {integrity: sha512-shcWacvEJ5FXbbOlMHtZKRFr2KrCtdiPrMMlUiuaZJK7rJ/Wm3Y/ATEksiqzTN0SUOsYH+G/1JTcKc2Pdf5xzw==} + resolution: {integrity: sha512-8b7kmHisbRa1j2xbiPj4VFtbtw1RolBuqHOJBtuEN0U/KDrGzNYSCKC7DyTcAyty/aXOGpfnt+sIjfA4Y0ADbw==} '@visactor/vrender-components@1.1.0-alpha.27': - resolution: {integrity: sha512-o72vPXrZY9K/uu49E1tjfRHCKznNcrqAdE4EEI48paqKCX3qoK38QzdUvkFt68srrWVG0lVmwWV/fGg72XGjrw==} + resolution: {integrity: sha512-l2gnaUb5Cj1AJpOilCOEv+xKS+pje219x0Y/bivxToPR1J84oOgj8TMQA7jPIQ30F8Fmxh+QIBTqxe/bui+9Eg==} '@visactor/vrender-core@1.1.0-alpha.27': - resolution: {integrity: sha512-3JenybipQI8U1kK/P5w72LDyQOLUC0cBnUyteEZhUOH7dToyLNXv2x2HzTvMDolYtifd4jbGedZkqb5Bnb7/7g==} + resolution: {integrity: sha512-RbEzQ0K1ONxaPMTKPb/DYiQwKuINAcsoGFZJWfZHFVlMgYMk3E30h4RFv06JI7leX8LGIEswq1jq4gnLESIqgA==} '@visactor/vrender-kits@1.1.0-alpha.27': - resolution: {integrity: sha512-OED02T92OeiWng/7uN7Oa2479kgWroBmxwn/QLDN8z/USzWJr63VO1uKUAtxi8WIQo8Aal2fVo4PCie0aOlwpg==} + resolution: {integrity: sha512-pHir9VqOolL0+/Kiq1Knt9Jpe6YZVPgj1AGqZdjBR+aVwL2gdC2AU9YFEBw0H9gopC4dv0KPW4GyJqhhrhQqhw==} '@visactor/vrender@1.1.0-alpha.27': - resolution: {integrity: sha512-SSDapsXKM88RLtcQKMs+StBe5DxetJOxOIAWGu0Sl5eCbdCp3kHJ2r+YUbKaMwk/4s2tAaNVXfXmmm5B+vfIpg==} + resolution: {integrity: sha512-sj8p7thffFX54Tirjl1AebZ5qMjbRegQPCfLzYWRxpasgLgvInF3zRHp3R/I/KvT06kdqRLJWWmkIDqjgjOdrg==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} @@ -3595,7 +3595,7 @@ packages: resolution: {integrity: sha512-PRxjplZF1/Qdsflb1hYh9DGGJdblq91yIG7CCC6MIlMMSlDYEAMJzJ9y2clnR1MgWa2AsAtMtuu+MSdG3DctUA==} '@visactor/vutils-extension@2.1.0-alpha.18': - resolution: {integrity: sha512-TZ12sCLSOEpN3AGwvO3iNV0RGHyymplyXRTj4+YakJhbEc7JTRJBnGN5Pmxv2Dfn4TSplwI1raHJKayR8UkSEA==} + resolution: {integrity: sha512-lFbAKkac8m1rDp06d6NwL/QEZakHZLPNgYp2FCq9kvhjIAJLloh3jFtQz84xVS2ezC+55oDrqotPO8zqTqlmUA==} '@visactor/vutils@1.0.23': resolution: {integrity: sha512-M8SLqgdHhKN8QmQKTWD1gzEaHptpIV9pvMYvC6+VeOsqYvZZ6UdhSCAAczTYVo+m/uwcEC2JHSUspbrs8rzlRQ==} diff --git a/packages/vtable-plugins/package.json b/packages/vtable-plugins/package.json index 286e013ed5..719acbaff5 100644 --- a/packages/vtable-plugins/package.json +++ b/packages/vtable-plugins/package.json @@ -61,9 +61,9 @@ "devDependencies": { "cross-env": "^7.0.3", "increase-memory-limit": "^1.0.7", - "@visactor/vtable": "workspace:1.26.2-none", - "@visactor/vtable-editors": "workspace:1.26.2-none", - "@visactor/vtable-gantt": "workspace:1.26.2-none", + "@visactor/vtable": "workspace:1.26.2", + "@visactor/vtable-editors": "workspace:1.26.2", + "@visactor/vtable-gantt": "workspace:1.26.2", "@visactor/vchart": "2.1.0-alpha.18", "@internal/bundler": "workspace:*", "@internal/eslint-config": "workspace:*", diff --git a/packages/vtable/package.json b/packages/vtable/package.json index a61a7e5b7a..87e36459f4 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -52,7 +52,7 @@ "fix-memory-limit": "cross-env LIMIT=10240 increase-memory-limit" }, "dependencies": { - "@visactor/vtable-editors": "workspace:1.26.2-none", + "@visactor/vtable-editors": "workspace:1.26.2", "@visactor/vrender": "1.1.0-alpha.27", "@visactor/vrender-core": "1.1.0-alpha.27", "@visactor/vrender-kits": "1.1.0-alpha.27", From b08c834935c0e6d3a945db7471236725f00b1506 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Wed, 17 Jun 2026 12:30:24 +0800 Subject: [PATCH 16/22] fix: keep PivotChart compatible with VRender snapshots VRender 1.1 deep-clones graphic base attributes for static state snapshots. PivotChart chart graphics keep canvas and VChart runtime refs in attributes. Size updates could traverse canvas.__vtable__ cycles before first render. Constraint: Chart graphic still reads runtime refs from attributes Constraint: Do not deep import or patch VRender internals Rejected: Disable PivotChart state flow | hides the compatibility problem Confidence: high Scope-risk: narrow Tested: rushx compile Tested: rushx test --runInBand __tests__/chart-graphic.test.ts Tested: rushx test --runInBand __tests__/pivotChart.test.ts Tested: bugserver case construct and brush smoke with VChart 2.1.0-alpha.18 CDN Not-tested: Full bugserver photo CI --- .../vtable/__tests__/chart-graphic.test.ts | 65 ++++++++++++++++ .../vtable/src/scenegraph/graphic/chart.ts | 75 ++++++++++++++++++- 2 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 packages/vtable/__tests__/chart-graphic.test.ts diff --git a/packages/vtable/__tests__/chart-graphic.test.ts b/packages/vtable/__tests__/chart-graphic.test.ts new file mode 100644 index 0000000000..0e0d859437 --- /dev/null +++ b/packages/vtable/__tests__/chart-graphic.test.ts @@ -0,0 +1,65 @@ +import { Chart } from '../src/scenegraph/graphic/chart'; + +class MockChart { + static globalConfig = { uniqueTooltip: false }; + + spec: unknown; + option: unknown; + + constructor(spec: unknown, option: unknown) { + this.spec = spec; + this.option = option; + } + + renderSync() { + // noop + } + + getStage() { + return { + enableDirtyBounds() { + // noop + } + }; + } +} + +describe('Chart graphic', () => { + test('keeps runtime refs when VRender builds static state snapshots', () => { + const canvas = document.createElement('canvas') as HTMLCanvasElement & { __vtable__?: unknown }; + const tableRef: { internalProps?: unknown } = {}; + tableRef.internalProps = { element: { __vtable__: tableRef } }; + canvas.__vtable__ = tableRef; + + const chart = new Chart(false, { + stroke: false, + x: 0, + y: 0, + width: 100, + height: 80, + canvas, + mode: 'desktop-browser', + modeParams: {}, + spec: { type: 'bar' }, + ClassType: MockChart, + chartInstance: undefined, + dataId: 'data', + data: [], + cellPadding: [0, 0, 0, 0], + dpr: 1, + axes: [], + tableChartOption: {}, + detectPickChartItem: false + } as any); + + expect(chart.attribute.canvas).toBe(canvas); + expect((chart as any).baseAttributes.canvas).toBe(canvas); + + expect(() => (chart as any).buildStaticAttributeSnapshot()).not.toThrow(); + + chart.setAttributes({ width: 120, height: 90 }); + expect(chart.attribute.canvas).toBe(canvas); + expect(chart.attribute.chartInstance).toBe(chart.chartInstance); + expect(chart.attribute.chartInstance).toBe((chart as any).baseAttributes.chartInstance); + }); +}); diff --git a/packages/vtable/src/scenegraph/graphic/chart.ts b/packages/vtable/src/scenegraph/graphic/chart.ts index 39c3ccad89..651b1a5f97 100644 --- a/packages/vtable/src/scenegraph/graphic/chart.ts +++ b/packages/vtable/src/scenegraph/graphic/chart.ts @@ -1,4 +1,4 @@ -import type { GraphicType, IGroupGraphicAttribute, Stage, Group } from '@src/vrender'; +import type { GraphicType, IGroupGraphicAttribute, ISetAttributeContext, Stage, Group } from '@src/vrender'; import { genNumberType, Rect } from '@src/vrender'; import { Bounds, merge } from '@visactor/vutils'; import type { BaseTableAPI } from '../../ts-types/base-table'; @@ -45,6 +45,20 @@ interface IChartGraphicAttribute extends IGroupGraphicAttribute { detectPickChartItem?: boolean; } +const CHART_RUNTIME_ATTRIBUTE_KEYS: (keyof IChartGraphicAttribute)[] = [ + 'canvas', + 'modeParams', + 'spec', + 'ClassType', + 'chartInstance', + 'dataId', + 'data', + 'cellPadding', + 'axes', + 'tableChartOption', + 'detectPickChartItem' +]; + export const CHART_NUMBER_TYPE = genNumberType(); export class Chart extends Rect { @@ -61,6 +75,7 @@ export class Chart extends Rect { isShareChartSpec: boolean; //针对chartSpec用户配置成函数形式的话 就不需要存储chartInstance了 会太占内存,使用这个变量 当渲染出缓存图表会就删除chartInstance实例 constructor(isShareChartSpec: boolean, params: IChartGraphicAttribute) { super(params); + this.syncRuntimeAttributes(params); this.numberType = CHART_NUMBER_TYPE; this.isShareChartSpec = isShareChartSpec; // 创建chart @@ -90,8 +105,10 @@ export class Chart extends Rect { chartInstance.renderSync(); chartInstance.getStage().enableDirtyBounds(); params.chartInstance = this.chartInstance = chartInstance; + this.syncRuntimeAttributes({ chartInstance } as Partial); } else { this.chartInstance = params.chartInstance; + this.syncRuntimeAttributes({ chartInstance: params.chartInstance } as Partial); } // this.chart.load().then((cache) => { @@ -100,6 +117,62 @@ export class Chart extends Rect { // }); } + private syncRuntimeAttributes(source: Partial) { + const attribute = this.attribute as Record; + const baseAttributes = this.baseAttributes as Record; + + CHART_RUNTIME_ATTRIBUTE_KEYS.forEach(key => { + if (Object.prototype.hasOwnProperty.call(source, key)) { + attribute[key] = source[key]; + baseAttributes[key] = source[key]; + } + }); + } + + private restoreRuntimeAttributeRefs() { + const attribute = this.attribute as Record; + const baseAttributes = this.baseAttributes as Record; + + CHART_RUNTIME_ATTRIBUTE_KEYS.forEach(key => { + if (Object.prototype.hasOwnProperty.call(baseAttributes, key)) { + attribute[key] = baseAttributes[key]; + } + }); + } + + setAttributes( + params: Partial, + forceUpdateTag?: boolean, + context?: ISetAttributeContext + ): void { + super.setAttributes(params, forceUpdateTag, context); + this.restoreRuntimeAttributeRefs(); + } + + setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void { + super.setAttribute(key, value, forceUpdateTag, context); + this.restoreRuntimeAttributeRefs(); + } + + // Chart attributes carry DOM/VChart runtime references; VRender state snapshots must not deep-clone them. + protected buildStaticAttributeSnapshot(): Partial { + const snapshot = { ...((this.baseAttributes as Record | undefined) ?? {}) }; + const resolvedPatch = this.resolvedStatePatch as Record | undefined; + + resolvedPatch && + Object.keys(resolvedPatch).forEach(key => { + snapshot[key] = resolvedPatch[key]; + }); + + CHART_RUNTIME_ATTRIBUTE_KEYS.forEach(key => { + if (Object.prototype.hasOwnProperty.call(this.attribute, key)) { + snapshot[key] = (this.attribute as Record)[key]; + } + }); + + return snapshot as Partial; + } + // onBeforeAttributeUpdate() { // if (arguments[2] === y) { // debugger; From 21bb4d82e9802987fe5b3b89d253505d383c0c30 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Wed, 17 Jun 2026 13:46:17 +0800 Subject: [PATCH 17/22] fix: preserve circular image icons on VRender 1.1 ListTable image icons kept the legacy shape flag. VRender 1.1 clips image graphics through native cornerRadius in this runtime path. Map circle icons to cornerRadius during icon attribute creation. Constraint: shape remains a VTable option and compatibility attribute. Constraint: VRender 1.1 image renderer consumes cornerRadius for image clipping. Rejected: Renderer fallback | duplicates VRender native clipping behavior. Confidence: high Scope-risk: narrow Directive: Keep icon shape compatibility at the attribute mapping boundary. Tested: focused text-icon-layout Jest test Tested: cd packages/vtable && rushx compile Tested: browser smoke on localhost:3003; corner pixel clipped to background --- .../scenegraph/text-icon-layout.test.ts | 16 +++++++++++++++- .../src/scenegraph/utils/text-icon-layout.ts | 5 +++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts b/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts index 61bf08a8b8..eba541b6f8 100644 --- a/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts +++ b/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts @@ -1,6 +1,6 @@ import { Text } from '../../src/vrender'; import { Group } from '../../src/scenegraph/graphic/group'; -import { insertTextBeforeCellIcons } from '../../src/scenegraph/utils/text-icon-layout'; +import { dealWithIcon, insertTextBeforeCellIcons } from '../../src/scenegraph/utils/text-icon-layout'; describe('text icon layout insertion', () => { test('clones ancestor text before inserting it into a cell group', () => { @@ -25,4 +25,18 @@ describe('text icon layout insertion', () => { cellGroup.removeAllChild(); (cellGroup as any).parent = null; }); + + test('maps circle image icons to native image corner radius', () => { + const iconMark = dealWithIcon({ + type: 'image', + src: 'avatar', + name: 'avatar_pic', + shape: 'circle', + width: 30, + height: 20 + } as any); + + expect(iconMark.attribute.shape).toBe('circle'); + expect(iconMark.attribute.cornerRadius).toBe(10); + }); }); diff --git a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts index 285c09f804..6ace7379c3 100644 --- a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts +++ b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts @@ -581,6 +581,11 @@ export function dealWithIcon( if ('shape' in icon && icon.shape === 'circle') { iconAttribute.shape = icon.shape; + const iconWidth = icon.width ?? icon.height; + const iconHeight = icon.height ?? icon.width; + if (isNumber(iconWidth) && isNumber(iconHeight)) { + iconAttribute.cornerRadius = Math.min(iconWidth, iconHeight) / 2; + } } if (mark) { From 6b0e9b0721808bb88c230719273affb2e1acc13b Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Wed, 17 Jun 2026 17:22:03 +0800 Subject: [PATCH 18/22] fix: restore app renderer contributions with VRender alpha 28 VRender alpha.28 restores explicit renderer contribution providers. VTable keeps ImageRenderContribution and TextRenderContribution registration. Remove the temporary shape to cornerRadius mapping. Circle icons now exercise the VTable image contribution path again. Constraint: Renderer contributions stay on their render tokens. Rejected: Keep cornerRadius fallback | masks image contribution coverage. Confidence: high Scope-risk: moderate Directive: Do not move graphic renderer contributions to app registry. Tested: rush update --full Tested: rush check --verbose Tested: cd packages/vtable && rushx compile Tested: focused app renderer, icon layout, PivotChart, Chart graphic tests Tested: browser smoke on forced Vite server --- common/config/rush/pnpm-config.json | 10 +- common/config/rush/pnpm-lock.yaml | 895 +++++++++--------- .../scenegraph/text-icon-layout.test.ts | 4 +- .../__tests__/vrender-app-renderer.test.ts | 62 ++ packages/vtable/package.json | 10 +- .../src/scenegraph/utils/text-icon-layout.ts | 5 - 6 files changed, 534 insertions(+), 452 deletions(-) diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index cd9dc00caa..48bd298608 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -84,11 +84,11 @@ */ "globalOverrides": { "@visactor/vchart": "2.1.0-alpha.18", - "@visactor/vrender": "1.1.0-alpha.27", - "@visactor/vrender-core": "1.1.0-alpha.27", - "@visactor/vrender-kits": "1.1.0-alpha.27", - "@visactor/vrender-components": "1.1.0-alpha.27", - "@visactor/vrender-animate": "1.1.0-alpha.27" + "@visactor/vrender": "1.1.0-alpha.28", + "@visactor/vrender-core": "1.1.0-alpha.28", + "@visactor/vrender-kits": "1.1.0-alpha.28", + "@visactor/vrender-components": "1.1.0-alpha.28", + "@visactor/vrender-animate": "1.1.0-alpha.28" }, /** * 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 e96baf2f5d..b76a3774ae 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: overrides: '@visactor/vchart': 2.1.0-alpha.18 - '@visactor/vrender': 1.1.0-alpha.27 - '@visactor/vrender-core': 1.1.0-alpha.27 - '@visactor/vrender-kits': 1.1.0-alpha.27 - '@visactor/vrender-components': 1.1.0-alpha.27 - '@visactor/vrender-animate': 1.1.0-alpha.27 + '@visactor/vrender': 1.1.0-alpha.28 + '@visactor/vrender-core': 1.1.0-alpha.28 + '@visactor/vrender-kits': 1.1.0-alpha.28 + '@visactor/vrender-components': 1.1.0-alpha.28 + '@visactor/vrender-animate': 1.1.0-alpha.28 pnpmfileChecksum: sha256-XTeZQwJtKk4dimqf7175GhJCXrnq3Yh7+kwb86Bwcdo= @@ -25,7 +25,7 @@ importers: version: 2.66.12(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@arco-design/web-vue': specifier: ^2.11.0 - version: 2.58.0(vue@3.5.35(typescript@4.9.5)) + version: 2.58.0(vue@3.5.38(typescript@4.9.5)) '@visactor/openinula-vtable': specifier: workspace:1.26.2 version: link:../packages/openinula-vtable @@ -61,10 +61,10 @@ importers: version: 1.0.23 '@vue/compiler-dom': specifier: ^3.5.0 - version: 3.5.35 + version: 3.5.38 axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 buble: specifier: ^0.20.0 version: 0.20.0 @@ -91,7 +91,7 @@ importers: version: 6.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) vue: specifier: ^3.4.14 - version: 3.5.35(typescript@4.9.5) + version: 3.5.38(typescript@4.9.5) devDependencies: '@internal/eslint-config': specifier: workspace:* @@ -116,7 +116,7 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) chalk: specifier: ^3.0.0 version: 3.0.0 @@ -140,7 +140,7 @@ importers: version: 4.9.5 vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) yargs: specifier: ^17.1.1 version: 17.7.2 @@ -183,7 +183,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -192,7 +192,7 @@ importers: version: 2.1.0-alpha.18 axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -204,7 +204,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -213,10 +213,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -249,19 +249,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -270,10 +270,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/react-vtable: dependencies: @@ -322,7 +322,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -343,10 +343,10 @@ importers: version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -358,7 +358,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -367,10 +367,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -406,19 +406,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -427,10 +427,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable: dependencies: @@ -438,20 +438,20 @@ importers: specifier: ~1.0.17 version: 1.0.23 '@visactor/vrender': - specifier: 1.1.0-alpha.27 - version: 1.1.0-alpha.27 + specifier: 1.1.0-alpha.28 + version: 1.1.0-alpha.28 '@visactor/vrender-animate': - specifier: 1.1.0-alpha.27 - version: 1.1.0-alpha.27 + specifier: 1.1.0-alpha.28 + version: 1.1.0-alpha.28 '@visactor/vrender-components': - specifier: 1.1.0-alpha.27 - version: 1.1.0-alpha.27 + specifier: 1.1.0-alpha.28 + version: 1.1.0-alpha.28 '@visactor/vrender-core': - specifier: 1.1.0-alpha.27 - version: 1.1.0-alpha.27 + specifier: 1.1.0-alpha.28 + version: 1.1.0-alpha.28 '@visactor/vrender-kits': - specifier: 1.1.0-alpha.27 - version: 1.1.0-alpha.27 + specifier: 1.1.0-alpha.28 + version: 1.1.0-alpha.28 '@visactor/vscale': specifier: ~1.0.17 version: 1.0.23 @@ -509,7 +509,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -524,10 +524,10 @@ importers: version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -554,7 +554,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -563,10 +563,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -608,19 +608,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -629,10 +629,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-calendar: dependencies: @@ -675,7 +675,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -690,10 +690,10 @@ importers: version: 17.0.7 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -705,7 +705,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -714,10 +714,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -756,19 +756,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -777,10 +777,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-editors: devDependencies: @@ -801,7 +801,7 @@ importers: version: 26.0.24 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -819,10 +819,10 @@ importers: version: 1.0.7 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) lint-staged: specifier: 12.3.7 version: 12.3.7 @@ -834,13 +834,13 @@ importers: version: 2.2.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 @@ -852,7 +852,7 @@ importers: version: 4.9.5 vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) ../../packages/vtable-export: dependencies: @@ -901,7 +901,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -919,10 +919,10 @@ importers: version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -934,7 +934,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -943,10 +943,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -985,19 +985,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1006,10 +1006,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-gantt: dependencies: @@ -1064,7 +1064,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1076,10 +1076,10 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -1106,7 +1106,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -1115,10 +1115,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1160,19 +1160,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1181,10 +1181,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-plugins: dependencies: @@ -1239,7 +1239,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1266,10 +1266,10 @@ importers: version: link:../vtable-gantt '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -1281,7 +1281,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -1290,10 +1290,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1332,19 +1332,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1353,10 +1353,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-search: dependencies: @@ -1396,7 +1396,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1414,10 +1414,10 @@ importers: version: 2.1.0-alpha.18 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -1429,7 +1429,7 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -1438,10 +1438,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1480,19 +1480,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1501,10 +1501,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vtable-sheet: dependencies: @@ -1559,7 +1559,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1571,10 +1571,10 @@ importers: version: 18.2.25 '@vitejs/plugin-react': specifier: 3.1.0 - version: 3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -1583,16 +1583,16 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 inversify: specifier: 6.0.1 version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1631,19 +1631,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1652,10 +1652,10 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) ../../packages/vue-vtable: dependencies: @@ -1668,7 +1668,7 @@ importers: devDependencies: '@arco-design/web-vue': specifier: ^2.11.0 - version: 2.58.0(vue@3.5.35(typescript@4.9.5)) + version: 2.58.0(vue@3.5.38(typescript@4.9.5)) '@babel/core': specifier: 7.20.12 version: 7.20.12 @@ -1698,7 +1698,7 @@ importers: version: 9.0.0 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/offscreencanvas': specifier: 2019.6.4 version: 2019.6.4 @@ -1707,10 +1707,10 @@ importers: version: 2.1.0-alpha.18 '@vitejs/plugin-vue': specifier: ^5.0.3 - version: 5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5)) + version: 5.2.4(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.38(typescript@4.9.5)) axios: specifier: ^1.4.0 - version: 1.16.1 + version: 1.18.0 chai: specifier: 4.3.4 version: 4.3.4 @@ -1725,7 +1725,7 @@ importers: version: 9.33.0(eslint@8.18.0) form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 increase-memory-limit: specifier: ^1.0.7 version: 1.0.7 @@ -1734,10 +1734,10 @@ importers: version: 6.0.1 jest: specifier: ^26.0.0 - version: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-electron: specifier: ^0.1.12 - version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))) + version: 0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))) jest-transform-stub: specifier: ^2.0.0 version: 2.0.0 @@ -1767,19 +1767,19 @@ importers: version: 1.43.5 ts-jest: specifier: ^26.0.0 - version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5) + version: 26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: 9.2.6 version: 9.2.6(typescript@4.9.5) ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) tslib: specifier: 2.3.1 version: 2.3.1 ttypescript: specifier: 1.5.13 - version: 1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5) + version: 1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1788,13 +1788,13 @@ importers: version: 3.3.1(typescript@4.9.5) vite: specifier: 3.2.6 - version: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + version: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) vite-plugin-markdown: specifier: ^2.1.0 - version: 2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) + version: 2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)) vue: specifier: ^3.4.14 - version: 3.5.35(typescript@4.9.5) + version: 3.5.38(typescript@4.9.5) vue-eslint-parser: specifier: ^9.4.2 version: 9.4.3(eslint@8.18.0) @@ -1870,7 +1870,7 @@ importers: version: 1.1.4 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/node-fetch': specifier: 2.6.4 version: 2.6.4 @@ -1882,13 +1882,13 @@ importers: version: 8.18.0 form-data: specifier: ~4.0.0 - version: 4.0.5 + version: 4.0.6 node-fetch: specifier: 2.6.7 version: 2.6.7 ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1954,7 +1954,7 @@ importers: version: 0.1.1 '@vitejs/plugin-vue': specifier: ^5.0.3 - version: 5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5)) + version: 5.2.4(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.38(typescript@4.9.5)) autoprefixer: specifier: 10.4.13 version: 10.4.13(postcss@8.4.21) @@ -2017,7 +2017,7 @@ importers: version: 3.20.5 rollup-plugin-postcss: specifier: 4.0.2 - version: 4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + version: 4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) rollup-plugin-typescript2: specifier: 0.36.0 version: 0.36.0(rollup@3.20.5)(typescript@4.9.5) @@ -2093,7 +2093,7 @@ importers: version: 0.7.31 '@types/node': specifier: '*' - version: 25.9.1 + version: 25.9.3 '@types/semver': specifier: 7.3.12 version: 7.3.12 @@ -2120,7 +2120,7 @@ importers: version: 3.0.2 ts-node: specifier: 10.9.0 - version: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + version: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -3419,8 +3419,8 @@ packages: '@types/node@14.18.63': resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} - '@types/node@25.9.1': - resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} + '@types/node@25.9.3': + resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3448,8 +3448,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@17.0.92': - resolution: {integrity: sha512-TqKlM6WfeXFUV0rKnRhe7yYctmCNfLHhJGyN3FRr70nwQmCM4pYRO1l0W8979K0Va72KGF1d8MPtT1kt0pw0ng==} + '@types/react@17.0.93': + resolution: {integrity: sha512-KM4Ty/ZTLZupiYxZVAlP+InNJS3De6uBMdq0ePa6/04+eG9Y7ftnWfst1xTLQ5rwAhgHwQ4momt/O4KepdGBTw==} '@types/react@18.2.79': resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} @@ -3573,20 +3573,20 @@ packages: '@visactor/vlayouts@1.0.23': resolution: {integrity: sha512-fK1f5LmuumhYanLArk5yrT4BZxu4IAmdc8WMwfB/KAvV+2dTPFuBUMWbWnDl0siQoU9SX9l/bLozUnI9n7BwBQ==} - '@visactor/vrender-animate@1.1.0-alpha.27': - resolution: {integrity: sha512-8b7kmHisbRa1j2xbiPj4VFtbtw1RolBuqHOJBtuEN0U/KDrGzNYSCKC7DyTcAyty/aXOGpfnt+sIjfA4Y0ADbw==} + '@visactor/vrender-animate@1.1.0-alpha.28': + resolution: {integrity: sha512-QsqudcW0+B6SjNFQGPbbZBTwXDz4icmy9mw3rpgpRrVUlqd3GDrNcACJPKBTTICZWD1oxy28HBAYTDPdmoYfbg==} - '@visactor/vrender-components@1.1.0-alpha.27': - resolution: {integrity: sha512-l2gnaUb5Cj1AJpOilCOEv+xKS+pje219x0Y/bivxToPR1J84oOgj8TMQA7jPIQ30F8Fmxh+QIBTqxe/bui+9Eg==} + '@visactor/vrender-components@1.1.0-alpha.28': + resolution: {integrity: sha512-OZXv1ByFrXHHozXQEbAwtqT5fixXznSJQEq8BgClZi4nCYl76Sb6mZ3clA+qwRPcMPK6U9laArX1a+4bY98F3A==} - '@visactor/vrender-core@1.1.0-alpha.27': - resolution: {integrity: sha512-RbEzQ0K1ONxaPMTKPb/DYiQwKuINAcsoGFZJWfZHFVlMgYMk3E30h4RFv06JI7leX8LGIEswq1jq4gnLESIqgA==} + '@visactor/vrender-core@1.1.0-alpha.28': + resolution: {integrity: sha512-ktmIPi5DqzI94dZ2l72zWKItIv3N7gDXSRUCK7Ws+ZUxzhy7bgHXtr6tBsp7RoFt7FLDcU11gOkUGpgSynYU5w==} - '@visactor/vrender-kits@1.1.0-alpha.27': - resolution: {integrity: sha512-pHir9VqOolL0+/Kiq1Knt9Jpe6YZVPgj1AGqZdjBR+aVwL2gdC2AU9YFEBw0H9gopC4dv0KPW4GyJqhhrhQqhw==} + '@visactor/vrender-kits@1.1.0-alpha.28': + resolution: {integrity: sha512-kNPUtH40ToQmQ5WoqH/yBIL9PJEviP+PPVWxu0fBNxcu8Pm0CrFaFFHVEeDUHbVF+11K8g16sIAXOVCA3RvEwA==} - '@visactor/vrender@1.1.0-alpha.27': - resolution: {integrity: sha512-sj8p7thffFX54Tirjl1AebZ5qMjbRegQPCfLzYWRxpasgLgvInF3zRHp3R/I/KvT06kdqRLJWWmkIDqjgjOdrg==} + '@visactor/vrender@1.1.0-alpha.28': + resolution: {integrity: sha512-RrnqrOO5HN0YANQuG2P2uODTqnyerBRW7IxUJmpfO0QcqL0nV0cRiyJ+CK75rKhS8XG7WYcR6ZgeW0F2S/sWsA==} '@visactor/vscale@1.0.23': resolution: {integrity: sha512-XePhYuRoNAp+8MeSMuEOOvhVAlOwvM1sDT2yFxE6zdwVB2GjZk8mH+5N2xQGQWk75YmGJjlJASFtgwjlb1yWxw==} @@ -3628,34 +3628,34 @@ packages: '@vitest/utils@0.30.1': resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} - '@vue/compiler-core@3.5.35': - resolution: {integrity: sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==} + '@vue/compiler-core@3.5.38': + resolution: {integrity: sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ==} - '@vue/compiler-dom@3.5.35': - resolution: {integrity: sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==} + '@vue/compiler-dom@3.5.38': + resolution: {integrity: sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==} - '@vue/compiler-sfc@3.5.35': - resolution: {integrity: sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==} + '@vue/compiler-sfc@3.5.38': + resolution: {integrity: sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg==} - '@vue/compiler-ssr@3.5.35': - resolution: {integrity: sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==} + '@vue/compiler-ssr@3.5.38': + resolution: {integrity: sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA==} - '@vue/reactivity@3.5.35': - resolution: {integrity: sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==} + '@vue/reactivity@3.5.38': + resolution: {integrity: sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==} - '@vue/runtime-core@3.5.35': - resolution: {integrity: sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==} + '@vue/runtime-core@3.5.38': + resolution: {integrity: sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw==} - '@vue/runtime-dom@3.5.35': - resolution: {integrity: sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==} + '@vue/runtime-dom@3.5.38': + resolution: {integrity: sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A==} - '@vue/server-renderer@3.5.35': - resolution: {integrity: sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==} + '@vue/server-renderer@3.5.38': + resolution: {integrity: sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw==} peerDependencies: - vue: 3.5.35 + vue: 3.5.38 - '@vue/shared@3.5.35': - resolution: {integrity: sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==} + '@vue/shared@3.5.38': + resolution: {integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==} abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -3708,8 +3708,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} engines: {node: '>=0.4.0'} hasBin: true @@ -3981,8 +3981,8 @@ packages: aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axios@1.16.1: - resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} + axios@1.18.0: + resolution: {integrity: sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==} b-tween@0.3.3: resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} @@ -4074,8 +4074,8 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} - baseline-browser-mapping@2.10.33: - resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==} + baseline-browser-mapping@2.10.37: + resolution: {integrity: sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==} engines: {node: '>=6.0.0'} hasBin: true @@ -4238,8 +4238,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001793: - resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} + caniuse-lite@1.0.30001799: + resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -4840,8 +4840,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.364: - resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} + electron-to-chromium@1.5.375: + resolution: {integrity: sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==} electron@11.5.0: resolution: {integrity: sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==} @@ -4868,8 +4868,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.22.1: - resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==} + enhanced-resolve@5.24.0: + resolution: {integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==} engines: {node: '>=10.13.0'} entities@2.1.0: @@ -4897,6 +4897,10 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + es-abstract@1.24.2: resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} @@ -4924,8 +4928,8 @@ packages: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + es-to-primitive@1.3.1: + resolution: {integrity: sha512-CxN9N56HYfd2m/acc/NOFrZQsN9kU4eh+2kk6A707Kz1krH8tKmfrs5RnftB8WNX80T0NS7vSQsDOlg23diR2g==} engines: {node: '>= 0.4'} es5-ext@0.10.64: @@ -5424,12 +5428,12 @@ packages: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} - form-data@3.0.4: - resolution: {integrity: sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==} + form-data@3.0.5: + resolution: {integrity: sha512-j23EibVLnp4zNXGW7LjryXYa2X6U/M96yoOX+ybZxwkYajdxRNEqYY3zhh7y0i6kfISKS2jr+EJq1YTUDEv5+w==} engines: {node: '>= 6'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} engines: {node: '>= 6'} fraction.js@4.3.7: @@ -5479,8 +5483,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + function.prototype.name@1.2.0: + resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} engines: {node: '>= 0.4'} functional-red-black-tree@1.0.1: @@ -5983,6 +5987,10 @@ packages: engines: {node: '>=8'} hasBin: true + is-document.all@1.0.0: + resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} + engines: {node: '>= 0.4'} + is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -7008,8 +7016,8 @@ packages: node-notifier@8.0.2: resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - node-releases@2.0.46: - resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + node-releases@2.0.47: + resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} engines: {node: '>=18'} normalize-package-data@2.5.0: @@ -7061,8 +7069,8 @@ packages: number-precision@1.6.0: resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==} - nwsapi@2.2.23: - resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + nwsapi@2.2.24: + resolution: {integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==} oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -7606,12 +7614,12 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + postcss-selector-parser@6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} engines: {node: '>=4'} - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + postcss-selector-parser@7.1.4: + resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} engines: {node: '>=4'} postcss-svgo@5.1.0: @@ -7899,8 +7907,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.1: - resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + regjsparser@0.13.2: + resolution: {integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==} hasBin: true regjsparser@0.6.9: @@ -8162,8 +8170,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.1: - resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + semver@7.8.4: + resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} hasBin: true @@ -8237,8 +8245,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -8247,8 +8255,8 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - simple-statistics@7.8.9: - resolution: {integrity: sha512-YT6MLqYsz7y1rQZOLFlOCCgSRpCi6bqY417yhoOLI7aVoBi29dD39EPrOE03W9DY25H0J0jizVsHZnkLzyGJFg==} + simple-statistics@7.9.0: + resolution: {integrity: sha512-OOF4uUZseYAC54r2/W58KxlIe4aA33GyPBrX4WMSxQq/NBNVNIOBlJerpGnb64jGH6cUIqKKOkMdhymtmKmpiA==} simple-swizzle@0.2.4: resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} @@ -8444,12 +8452,12 @@ packages: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: @@ -9123,8 +9131,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue@3.5.35: - resolution: {integrity: sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==} + vue@3.5.38: + resolution: {integrity: sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -9198,8 +9206,8 @@ packages: which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.21: - resolution: {integrity: sha512-zbRA8cVm6io/d5W8uIe2hblzN76/Wm3v/yiythQvr+dpBWeqhPSWIDNj4zOyHi4zKbMK6DN34Xsr9jPHJERAEw==} + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} engines: {node: '>= 0.4'} which@1.3.1: @@ -9392,7 +9400,7 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@arco-design/web-vue@2.58.0(vue@3.5.35(typescript@4.9.5))': + '@arco-design/web-vue@2.58.0(vue@3.5.38(typescript@4.9.5))': dependencies: '@arco-design/color': 0.4.0 b-tween: 0.3.3 @@ -9402,7 +9410,7 @@ snapshots: number-precision: 1.6.0 resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.31 - vue: 3.5.35(typescript@4.9.5) + vue: 3.5.38(typescript@4.9.5) '@babel/code-frame@7.29.7': dependencies: @@ -10333,33 +10341,33 @@ snapshots: '@jest/console@26.6.2': dependencies: '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 slash: 3.0.0 - '@jest/core@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))': + '@jest/core@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))': dependencies: '@jest/console': 26.6.2 '@jest/reporters': 26.6.2 '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 26.6.2 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-snapshot: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 @@ -10389,7 +10397,7 @@ snapshots: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 jest-mock: 26.6.2 '@jest/fake-timers@24.9.0': @@ -10402,7 +10410,7 @@ snapshots: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 25.9.1 + '@types/node': 25.9.3 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -10478,19 +10486,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/test-sequencer@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))': + '@jest/test-sequencer@26.6.3': dependencies: '@jest/test-result': 26.6.2 graceful-fs: 4.2.11 jest-haste-map: 26.6.2 - jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-runner: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) transitivePeerDependencies: - - bufferutil - - canvas - supports-color - - ts-node - - utf-8-validate '@jest/transform@24.9.0': dependencies: @@ -10543,7 +10547,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/yargs': 15.0.20 chalk: 4.1.2 @@ -10892,7 +10896,7 @@ snapshots: '@types/clean-css@4.2.6': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 source-map: 0.6.1 '@types/debug@4.1.7': @@ -10909,25 +10913,25 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/glob-stream@8.0.3': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/picomatch': 4.0.3 '@types/streamx': 2.9.5 '@types/glob-watcher@5.0.2': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/gulp-if@0.0.34': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/vinyl': 2.0.7 '@types/gulp-match@1.1.2': @@ -10937,7 +10941,7 @@ snapshots: '@types/gulp-sourcemaps@0.0.35': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/vinyl': 2.0.7 '@types/gulp@4.0.10': @@ -10985,7 +10989,7 @@ snapshots: '@types/merge2@1.4.0': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/minimatch@6.0.0': dependencies: @@ -10999,14 +11003,14 @@ snapshots: '@types/node-fetch@2.6.4': dependencies: - '@types/node': 25.9.1 - form-data: 3.0.4 + '@types/node': 25.9.3 + form-data: 3.0.5 '@types/node@12.20.55': {} '@types/node@14.18.63': {} - '@types/node@25.9.1': + '@types/node@25.9.3': dependencies: undici-types: 7.24.6 @@ -11026,13 +11030,13 @@ snapshots: '@types/react-is@17.0.7': dependencies: - '@types/react': 17.0.92 + '@types/react': 17.0.93 '@types/react-reconciler@0.28.9(@types/react@18.2.79)': dependencies: '@types/react': 18.2.79 - '@types/react@17.0.92': + '@types/react@17.0.93': dependencies: '@types/prop-types': 15.7.15 '@types/scheduler': 0.16.8 @@ -11045,7 +11049,7 @@ snapshots: '@types/resolve@0.0.8': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/resolve@1.20.2': {} @@ -11059,7 +11063,7 @@ snapshots: '@types/streamx@2.9.5': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/terser@3.12.0': dependencies: @@ -11067,26 +11071,26 @@ snapshots: '@types/through2@2.0.38': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/undertaker-registry@1.0.4': {} '@types/undertaker@1.2.8': dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/undertaker-registry': 1.0.4 async-done: 1.3.2 '@types/vinyl-fs@3.0.7': dependencies: '@types/glob-stream': 8.0.3 - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/vinyl': 2.0.7 '@types/vinyl@2.0.7': dependencies: '@types/expect': 1.20.4 - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/yargs-parser@21.0.0': {} @@ -11109,7 +11113,7 @@ snapshots: functional-red-black-tree: 1.0.1 ignore: 5.3.2 regexpp: 3.2.0 - semver: 7.8.1 + semver: 7.8.4 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11153,7 +11157,7 @@ snapshots: debug: 4.3.4(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.8.1 + semver: 7.8.4 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11184,11 +11188,11 @@ snapshots: dependencies: '@visactor/vdataset': 1.0.23 '@visactor/vlayouts': 1.0.23 - '@visactor/vrender': 1.1.0-alpha.27 - '@visactor/vrender-animate': 1.1.0-alpha.27 - '@visactor/vrender-components': 1.1.0-alpha.27 - '@visactor/vrender-core': 1.1.0-alpha.27 - '@visactor/vrender-kits': 1.1.0-alpha.27 + '@visactor/vrender': 1.1.0-alpha.28 + '@visactor/vrender-animate': 1.1.0-alpha.28 + '@visactor/vrender-components': 1.1.0-alpha.28 + '@visactor/vrender-core': 1.1.0-alpha.28 + '@visactor/vrender-kits': 1.1.0-alpha.28 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 '@visactor/vutils-extension': 2.1.0-alpha.18 @@ -11209,7 +11213,7 @@ snapshots: path-browserify: 1.0.1 pbf: 3.3.0 point-at-length: 1.1.0 - simple-statistics: 7.8.9 + simple-statistics: 7.9.0 simplify-geojson: 1.0.5 topojson-client: 3.1.0 @@ -11221,39 +11225,39 @@ snapshots: '@visactor/vutils': 1.0.23 eventemitter3: 4.0.7 - '@visactor/vrender-animate@1.1.0-alpha.27': + '@visactor/vrender-animate@1.1.0-alpha.28': dependencies: - '@visactor/vrender-core': 1.1.0-alpha.27 + '@visactor/vrender-core': 1.1.0-alpha.28 '@visactor/vutils': 1.0.23 - '@visactor/vrender-components@1.1.0-alpha.27': + '@visactor/vrender-components@1.1.0-alpha.28': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.27 - '@visactor/vrender-core': 1.1.0-alpha.27 - '@visactor/vrender-kits': 1.1.0-alpha.27 + '@visactor/vrender-animate': 1.1.0-alpha.28 + '@visactor/vrender-core': 1.1.0-alpha.28 + '@visactor/vrender-kits': 1.1.0-alpha.28 '@visactor/vscale': 1.0.23 '@visactor/vutils': 1.0.23 - '@visactor/vrender-core@1.1.0-alpha.27': + '@visactor/vrender-core@1.1.0-alpha.28': dependencies: '@visactor/vutils': 1.0.23 color-convert: 2.0.1 - '@visactor/vrender-kits@1.1.0-alpha.27': + '@visactor/vrender-kits@1.1.0-alpha.28': dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 1.1.0-alpha.27 + '@visactor/vrender-core': 1.1.0-alpha.28 '@visactor/vutils': 1.0.23 gifuct-js: 2.1.2 lottie-web: 5.13.0 roughjs: 4.6.6 - '@visactor/vrender@1.1.0-alpha.27': + '@visactor/vrender@1.1.0-alpha.28': dependencies: - '@visactor/vrender-animate': 1.1.0-alpha.27 - '@visactor/vrender-components': 1.1.0-alpha.27 - '@visactor/vrender-core': 1.1.0-alpha.27 - '@visactor/vrender-kits': 1.1.0-alpha.27 + '@visactor/vrender-animate': 1.1.0-alpha.28 + '@visactor/vrender-components': 1.1.0-alpha.28 + '@visactor/vrender-core': 1.1.0-alpha.28 + '@visactor/vrender-kits': 1.1.0-alpha.28 '@visactor/vscale@1.0.23': dependencies: @@ -11275,21 +11279,21 @@ snapshots: '@turf/invariant': 6.5.0 eventemitter3: 4.0.7 - '@vitejs/plugin-react@3.1.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))': + '@vitejs/plugin-react@3.1.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))': dependencies: '@babel/core': 7.20.12 '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.20.12) '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.20.12) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.35(typescript@4.9.5))': + '@vitejs/plugin-vue@5.2.4(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1))(vue@3.5.38(typescript@4.9.5))': dependencies: - vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vue: 3.5.35(typescript@4.9.5) + vite: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vue: 3.5.38(typescript@4.9.5) '@vitest/expect@0.30.1': dependencies: @@ -11320,59 +11324,59 @@ snapshots: loupe: 2.3.7 pretty-format: 27.5.1 - '@vue/compiler-core@3.5.35': + '@vue/compiler-core@3.5.38': dependencies: '@babel/parser': 7.29.7 - '@vue/shared': 3.5.35 + '@vue/shared': 3.5.38 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.35': + '@vue/compiler-dom@3.5.38': dependencies: - '@vue/compiler-core': 3.5.35 - '@vue/shared': 3.5.35 + '@vue/compiler-core': 3.5.38 + '@vue/shared': 3.5.38 - '@vue/compiler-sfc@3.5.35': + '@vue/compiler-sfc@3.5.38': dependencies: '@babel/parser': 7.29.7 - '@vue/compiler-core': 3.5.35 - '@vue/compiler-dom': 3.5.35 - '@vue/compiler-ssr': 3.5.35 - '@vue/shared': 3.5.35 + '@vue/compiler-core': 3.5.38 + '@vue/compiler-dom': 3.5.38 + '@vue/compiler-ssr': 3.5.38 + '@vue/shared': 3.5.38 estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.15 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.35': + '@vue/compiler-ssr@3.5.38': dependencies: - '@vue/compiler-dom': 3.5.35 - '@vue/shared': 3.5.35 + '@vue/compiler-dom': 3.5.38 + '@vue/shared': 3.5.38 - '@vue/reactivity@3.5.35': + '@vue/reactivity@3.5.38': dependencies: - '@vue/shared': 3.5.35 + '@vue/shared': 3.5.38 - '@vue/runtime-core@3.5.35': + '@vue/runtime-core@3.5.38': dependencies: - '@vue/reactivity': 3.5.35 - '@vue/shared': 3.5.35 + '@vue/reactivity': 3.5.38 + '@vue/shared': 3.5.38 - '@vue/runtime-dom@3.5.35': + '@vue/runtime-dom@3.5.38': dependencies: - '@vue/reactivity': 3.5.35 - '@vue/runtime-core': 3.5.35 - '@vue/shared': 3.5.35 + '@vue/reactivity': 3.5.38 + '@vue/runtime-core': 3.5.38 + '@vue/shared': 3.5.38 csstype: 3.2.3 - '@vue/server-renderer@3.5.35(vue@3.5.35(typescript@4.9.5))': + '@vue/server-renderer@3.5.38(vue@3.5.38(typescript@4.9.5))': dependencies: - '@vue/compiler-ssr': 3.5.35 - '@vue/shared': 3.5.35 - vue: 3.5.35(typescript@4.9.5) + '@vue/compiler-ssr': 3.5.38 + '@vue/shared': 3.5.38 + vue: 3.5.38(typescript@4.9.5) - '@vue/shared@3.5.35': {} + '@vue/shared@3.5.38': {} abab@2.0.6: {} @@ -11396,9 +11400,9 @@ snapshots: dependencies: acorn: 6.4.2 - acorn-jsx@5.3.2(acorn@8.16.0): + acorn-jsx@5.3.2(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn-walk@6.2.0: {} @@ -11406,7 +11410,7 @@ snapshots: acorn-walk@8.3.5: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 acorn@5.7.4: {} @@ -11414,7 +11418,7 @@ snapshots: acorn@7.4.1: {} - acorn@8.16.0: {} + acorn@8.17.0: {} agent-base@6.0.2: dependencies: @@ -11681,7 +11685,7 @@ snapshots: autoprefixer@10.4.13(postcss@8.4.21): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 + caniuse-lite: 1.0.30001799 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -11696,10 +11700,10 @@ snapshots: aws4@1.13.2: {} - axios@1.16.1: + axios@1.18.0: dependencies: follow-redirects: 1.16.0 - form-data: 4.0.5 + form-data: 4.0.6 https-proxy-agent: 5.0.1 proxy-from-env: 2.1.0 transitivePeerDependencies: @@ -11862,7 +11866,7 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 - baseline-browser-mapping@2.10.33: {} + baseline-browser-mapping@2.10.37: {} bcrypt-pbkdf@1.0.2: dependencies: @@ -11943,10 +11947,10 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.33 - caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.364 - node-releases: 2.0.46 + baseline-browser-mapping: 2.10.37 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.375 + node-releases: 2.0.47 update-browserslist-db: 1.2.3(browserslist@4.28.2) bs-logger@0.2.6: @@ -12038,11 +12042,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 + caniuse-lite: 1.0.30001799 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001793: {} + caniuse-lite@1.0.30001799: {} capture-exit@2.0.0: dependencies: @@ -12740,7 +12744,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.364: {} + electron-to-chromium@1.5.375: {} electron@11.5.0: dependencies: @@ -12765,7 +12769,7 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.22.1: + enhanced-resolve@5.24.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -12789,6 +12793,13 @@ snapshots: dependencies: is-arrayish: 0.2.1 + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 @@ -12803,8 +12814,8 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 + es-to-primitive: 1.3.1 + function.prototype.name: 1.2.0 get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 @@ -12836,15 +12847,15 @@ snapshots: safe-regex-test: 1.1.0 set-proto: 1.0.0 stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.21 + which-typed-array: 1.1.22 es-array-method-boxes-properly@1.0.0: {} @@ -12867,8 +12878,10 @@ snapshots: dependencies: hasown: 2.0.4 - es-to-primitive@1.3.0: + es-to-primitive@1.3.1: dependencies: + es-abstract-get: 1.0.0 + es-errors: 1.3.0 is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 @@ -13056,8 +13069,8 @@ snapshots: globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.1.2 - semver: 7.8.1 + postcss-selector-parser: 6.1.4 + semver: 7.8.4 vue-eslint-parser: 9.4.3(eslint@8.18.0) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -13131,8 +13144,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -13441,7 +13454,7 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 - form-data@3.0.4: + form-data@3.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -13449,7 +13462,7 @@ snapshots: hasown: 2.0.4 mime-types: 2.1.35 - form-data@4.0.5: + form-data@4.0.6: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -13506,14 +13519,17 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: + function.prototype.name@1.2.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 - define-properties: 1.2.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 hasown: 2.0.4 is-callable: 1.2.7 + is-document.all: 1.0.0 functional-red-black-tree@1.0.1: {} @@ -13782,7 +13798,7 @@ snapshots: gulp-replace@1.1.4: dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@types/vinyl': 2.0.7 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -14004,7 +14020,7 @@ snapshots: dependencies: es-errors: 1.3.0 hasown: 2.0.4 - side-channel: 1.1.0 + side-channel: 1.1.1 internmap@2.0.3: {} @@ -14106,6 +14122,10 @@ snapshots: is-docker@2.2.1: optional: true + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + is-extendable@0.1.1: {} is-extendable@1.0.1: @@ -14217,7 +14237,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.21 + which-typed-array: 1.1.22 is-typedarray@1.0.0: {} @@ -14332,9 +14352,9 @@ snapshots: execa: 4.1.0 throat: 5.0.0 - jest-cli@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + jest-cli@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: - '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 chalk: 4.1.2 @@ -14342,7 +14362,7 @@ snapshots: graceful-fs: 4.2.11 import-local: 3.2.0 is-ci: 2.0.0 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-util: 26.6.2 jest-validate: 26.6.2 prompts: 2.4.2 @@ -14376,10 +14396,10 @@ snapshots: transitivePeerDependencies: - supports-color - jest-config@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + jest-config@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: '@babel/core': 7.20.12 - '@jest/test-sequencer': 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + '@jest/test-sequencer': 26.6.3 '@jest/types': 26.6.2 babel-jest: 26.6.3(@babel/core@7.20.12) chalk: 4.1.2 @@ -14389,7 +14409,7 @@ snapshots: jest-environment-jsdom: 26.6.2 jest-environment-node: 26.6.2 jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3 + jest-jasmine2: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-util: 26.6.2 @@ -14397,7 +14417,7 @@ snapshots: micromatch: 4.0.8 pretty-format: 26.6.2 optionalDependencies: - ts-node: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) transitivePeerDependencies: - bufferutil - canvas @@ -14442,10 +14462,10 @@ snapshots: jest-util: 26.6.2 pretty-format: 26.6.2 - jest-electron@0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))): + jest-electron@0.1.12(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))): dependencies: electron: 11.5.0 - jest: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-haste-map: 24.9.0 jest-message-util: 24.9.0 jest-mock: 24.9.0 @@ -14474,7 +14494,7 @@ snapshots: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -14499,7 +14519,7 @@ snapshots: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -14527,7 +14547,7 @@ snapshots: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.9 - '@types/node': 25.9.1 + '@types/node': 25.9.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14562,14 +14582,14 @@ snapshots: transitivePeerDependencies: - supports-color - jest-jasmine2@26.6.3: + jest-jasmine2@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: '@babel/traverse': 7.29.7 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -14577,13 +14597,17 @@ snapshots: jest-each: 26.6.2 jest-matcher-utils: 26.6.2 jest-message-util: 26.6.2 - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-snapshot: 26.6.2 jest-util: 26.6.2 pretty-format: 26.6.2 throat: 5.0.0 transitivePeerDependencies: + - bufferutil + - canvas - supports-color + - ts-node + - utf-8-validate jest-leak-detector@24.9.0: dependencies: @@ -14639,7 +14663,7 @@ snapshots: jest-mock@26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 jest-pnp-resolver@1.2.3(jest-resolve@24.9.0): optionalDependencies: @@ -14702,24 +14726,24 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runner@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + jest-runner@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: '@jest/console': 26.6.2 '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-docblock: 26.0.0 jest-haste-map: 26.6.2 jest-leak-detector: 26.6.2 jest-message-util: 26.6.2 jest-resolve: 26.6.2 - jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-runtime: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-util: 26.6.2 jest-worker: 26.6.2 source-map-support: 0.5.21 @@ -14759,7 +14783,7 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runtime@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + jest-runtime@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: '@jest/console': 26.6.2 '@jest/environment': 26.6.2 @@ -14776,7 +14800,7 @@ snapshots: exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-config: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-mock: 26.6.2 @@ -14799,7 +14823,7 @@ snapshots: jest-serializer@26.6.2: dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 graceful-fs: 4.2.11 jest-snapshot@24.9.0: @@ -14857,7 +14881,7 @@ snapshots: jest-util@26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -14885,7 +14909,7 @@ snapshots: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 25.9.1 + '@types/node': 25.9.3 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -14898,15 +14922,15 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 merge-stream: 2.0.0 supports-color: 7.2.0 - jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: - '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + '@jest/core': 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) import-local: 3.2.0 - jest-cli: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest-cli: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) transitivePeerDependencies: - bufferutil - canvas @@ -14950,7 +14974,7 @@ snapshots: escodegen: 1.14.3 html-encoding-sniffer: 1.0.2 left-pad: 1.3.0 - nwsapi: 2.2.23 + nwsapi: 2.2.24 parse5: 4.0.0 pn: 1.1.0 request: 2.88.2 @@ -14969,7 +14993,7 @@ snapshots: jsdom@16.7.0: dependencies: abab: 2.0.6 - acorn: 8.16.0 + acorn: 8.17.0 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 @@ -14977,12 +15001,12 @@ snapshots: decimal.js: 10.6.0 domexception: 2.0.1 escodegen: 2.1.0 - form-data: 3.0.4 + form-data: 3.0.5 html-encoding-sniffer: 2.0.1 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.23 + nwsapi: 2.2.24 parse5: 6.0.1 saxes: 5.0.1 symbol-tree: 3.2.4 @@ -15323,7 +15347,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 make-error@1.3.6: {} @@ -15467,7 +15491,7 @@ snapshots: mlly@1.8.2: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.4 @@ -15563,7 +15587,7 @@ snapshots: which: 2.0.2 optional: true - node-releases@2.0.46: {} + node-releases@2.0.47: {} normalize-package-data@2.5.0: dependencies: @@ -15610,7 +15634,7 @@ snapshots: number-precision@1.6.0: {} - nwsapi@2.2.23: {} + nwsapi@2.2.24: {} oauth-sign@0.9.0: {} @@ -15960,7 +15984,7 @@ snapshots: postcss-calc@8.2.4(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser: 4.2.0 postcss-colormin@5.3.1(postcss@8.4.21): @@ -15993,13 +16017,13 @@ snapshots: dependencies: postcss: 8.4.21 - postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: lilconfig: 2.1.0 yaml: 1.10.3 optionalDependencies: postcss: 8.4.21 - ts-node: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) postcss-merge-longhand@5.1.7(postcss@8.4.21): dependencies: @@ -16013,7 +16037,7 @@ snapshots: caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-minify-font-values@5.1.0(postcss@8.4.21): dependencies: @@ -16037,7 +16061,7 @@ snapshots: postcss-minify-selectors@5.2.1(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-modules-extract-imports@3.1.0(postcss@8.4.21): dependencies: @@ -16047,13 +16071,13 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.4.21) postcss: 8.4.21 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.1(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-modules-values@4.0.0(postcss@8.4.21): dependencies: @@ -16135,12 +16159,12 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-selector-parser@6.1.2: + postcss-selector-parser@6.1.4: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.1: + postcss-selector-parser@7.1.4: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -16154,7 +16178,7 @@ snapshots: postcss-unique-selectors@5.1.1(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 postcss-value-parser@4.2.0: {} @@ -16467,7 +16491,7 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.1 + regjsparser: 0.13.2 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 @@ -16475,7 +16499,7 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.13.1: + regjsparser@0.13.2: dependencies: jsesc: 3.1.0 @@ -16642,7 +16666,7 @@ snapshots: rollup: 3.20.5 rollup-pluginutils: 2.8.2 - rollup-plugin-postcss@4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)): + rollup-plugin-postcss@4.0.2(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 @@ -16651,7 +16675,7 @@ snapshots: p-queue: 6.6.2 pify: 5.0.0 postcss: 8.4.21 - postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) postcss-modules: 4.3.1(postcss@8.4.21) promise.series: 0.2.0 resolve: 1.22.12 @@ -16667,7 +16691,7 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 10.1.0 rollup: 3.20.5 - semver: 7.8.1 + semver: 7.8.4 tslib: 2.8.1 typescript: 4.9.5 @@ -16778,7 +16802,7 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.8.1: {} + semver@7.8.4: {} serialize-error@7.0.1: dependencies: @@ -16872,7 +16896,7 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -16884,7 +16908,7 @@ snapshots: signal-exit@3.0.7: {} - simple-statistics@7.8.9: {} + simple-statistics@7.9.0: {} simple-swizzle@0.2.4: dependencies: @@ -17096,9 +17120,9 @@ snapshots: internal-slot: 1.1.0 regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.1.0 + side-channel: 1.1.1 - string.prototype.trim@1.2.10: + string.prototype.trim@1.2.11: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -17107,8 +17131,9 @@ snapshots: es-abstract: 1.24.2 es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 - string.prototype.trimend@1.0.9: + string.prototype.trimend@1.0.10: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -17165,7 +17190,7 @@ snapshots: strip-literal@1.3.0: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 style-inject@0.3.0: {} @@ -17173,7 +17198,7 @@ snapshots: dependencies: browserslist: 4.28.2 postcss: 8.4.21 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 6.1.4 sumchecker@3.0.1: dependencies: @@ -17250,7 +17275,7 @@ snapshots: terser@5.17.1: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 + acorn: 8.17.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -17380,12 +17405,12 @@ snapshots: traverse@0.3.9: {} - ts-jest@26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@26.5.6(jest@26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 buffer-from: 1.1.2 fast-json-stable-stringify: 2.1.0 - jest: 26.6.3(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5)) + jest: 26.6.3(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5)) jest-util: 26.6.2 json5: 2.2.3 lodash: 4.17.21 @@ -17398,20 +17423,20 @@ snapshots: ts-loader@9.2.6(typescript@4.9.5): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.22.1 + enhanced-resolve: 5.24.0 micromatch: 4.0.8 semver: 7.3.4 typescript: 4.9.5 - ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5): + ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.9.1 - acorn: 8.16.0 + '@types/node': 25.9.3 + acorn: 8.17.0 acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 @@ -17453,10 +17478,10 @@ snapshots: tslib: 1.14.1 typescript: 4.9.5 - ttypescript@1.5.13(ts-node@10.9.0(@types/node@25.9.1)(typescript@4.9.5))(typescript@4.9.5): + ttypescript@1.5.13(ts-node@10.9.0(@types/node@25.9.3)(typescript@4.9.5))(typescript@4.9.5): dependencies: resolve: 1.22.12 - ts-node: 10.9.0(@types/node@25.9.1)(typescript@4.9.5) + ts-node: 10.9.0(@types/node@25.9.3)(typescript@4.9.5) typescript: 4.9.5 tunnel-agent@0.6.0: @@ -17758,14 +17783,14 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vite-node@0.30.1(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): + vite-node@0.30.1(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@9.4.0) mlly: 1.8.2 pathe: 1.1.2 picocolors: 1.1.1 - vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) transitivePeerDependencies: - '@types/node' - less @@ -17775,22 +17800,22 @@ snapshots: - supports-color - terser - vite-plugin-markdown@2.2.0(vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)): + vite-plugin-markdown@2.2.0(vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1)): dependencies: domhandler: 4.3.1 front-matter: 4.0.2 htmlparser2: 6.1.0 markdown-it: 12.3.2 - vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vite@3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): + vite@3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1): dependencies: esbuild: 0.15.18 postcss: 8.4.21 resolve: 1.22.12 rollup: 2.80.0 optionalDependencies: - '@types/node': 25.9.1 + '@types/node': 25.9.3 fsevents: 2.3.3 less: 4.1.3 sass: 1.43.5 @@ -17800,13 +17825,13 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 25.9.1 + '@types/node': 25.9.3 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 '@vitest/spy': 0.30.1 '@vitest/utils': 0.30.1 - acorn: 8.16.0 + acorn: 8.17.0 acorn-walk: 8.3.5 cac: 6.7.14 chai: 4.5.0 @@ -17821,8 +17846,8 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.4.0 - vite: 3.2.6(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) - vite-node: 0.30.1(@types/node@25.9.1)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite: 3.2.6(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) + vite-node: 0.30.1(@types/node@25.9.3)(less@4.1.3)(sass@1.43.5)(terser@5.17.1) why-is-node-running: 2.3.0 optionalDependencies: jsdom: 16.7.0 @@ -17843,17 +17868,17 @@ snapshots: espree: 9.6.1 esquery: 1.7.0 lodash: 4.17.21 - semver: 7.8.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color - vue@3.5.35(typescript@4.9.5): + vue@3.5.38(typescript@4.9.5): dependencies: - '@vue/compiler-dom': 3.5.35 - '@vue/compiler-sfc': 3.5.35 - '@vue/runtime-dom': 3.5.35 - '@vue/server-renderer': 3.5.35(vue@3.5.35(typescript@4.9.5)) - '@vue/shared': 3.5.35 + '@vue/compiler-dom': 3.5.38 + '@vue/compiler-sfc': 3.5.38 + '@vue/runtime-dom': 3.5.38 + '@vue/server-renderer': 3.5.38(vue@3.5.38(typescript@4.9.5)) + '@vue/shared': 3.5.38 optionalDependencies: typescript: 4.9.5 @@ -17919,7 +17944,7 @@ snapshots: which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 - function.prototype.name: 1.1.8 + function.prototype.name: 1.2.0 has-tostringtag: 1.0.2 is-async-function: 2.1.1 is-date-object: 1.1.0 @@ -17930,7 +17955,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.21 + which-typed-array: 1.1.22 which-collection@1.0.2: dependencies: @@ -17943,7 +17968,7 @@ snapshots: which-module@2.0.1: {} - which-typed-array@1.1.21: + which-typed-array@1.1.22: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 diff --git a/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts b/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts index eba541b6f8..a5de0e9bc0 100644 --- a/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts +++ b/packages/vtable/__tests__/scenegraph/text-icon-layout.test.ts @@ -26,7 +26,7 @@ describe('text icon layout insertion', () => { (cellGroup as any).parent = null; }); - test('maps circle image icons to native image corner radius', () => { + test('keeps circle image icon shape for image render contribution', () => { const iconMark = dealWithIcon({ type: 'image', src: 'avatar', @@ -37,6 +37,6 @@ describe('text icon layout insertion', () => { } as any); expect(iconMark.attribute.shape).toBe('circle'); - expect(iconMark.attribute.cornerRadius).toBe(10); + expect(iconMark.attribute.cornerRadius).toBeUndefined(); }); }); diff --git a/packages/vtable/__tests__/vrender-app-renderer.test.ts b/packages/vtable/__tests__/vrender-app-renderer.test.ts index ad2d64250c..474378bcdb 100644 --- a/packages/vtable/__tests__/vrender-app-renderer.test.ts +++ b/packages/vtable/__tests__/vrender-app-renderer.test.ts @@ -9,6 +9,11 @@ type RendererWithGroupContributions = { _groupRenderContribitions?: { constructor?: { name?: string } }[]; }; +type RendererWithRenderContributions = { + constructor?: { name?: string }; + _renderContribitions?: { constructor?: { name?: string } }[]; +}; + type PickerWithContains = { constructor?: { name?: string }; type?: string; @@ -51,6 +56,63 @@ describe('VRender app renderer installation', () => { } }); + test('uses the VTable image renderer contributions for app-scoped stages', () => { + const canvas = document.createElement('canvas'); + const { app, stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-image-renderer-contributions' } + ); + + try { + const imageRenderer = app.registry.renderer + .getAll() + .find(renderer => renderer.constructor?.name === 'DefaultCanvasImageRender') as + | RendererWithRenderContributions + | undefined; + + const contributionNames = imageRenderer?._renderContribitions?.map( + contribution => contribution.constructor?.name + ); + + expect(contributionNames).toContain('BeforeImageRenderContribution'); + expect(contributionNames).toContain('AfterImageRenderContribution'); + } finally { + stage.release(); + releaseAppRef(); + } + }); + + test('uses the VTable text renderer contributions for app-scoped stages', () => { + const canvas = document.createElement('canvas'); + const { app, stage, releaseAppRef } = createStageFromVRenderApp( + { + canvas, + width: 100, + height: 100 + }, + { mode: 'browser', scope: 'unit-text-renderer-contributions' } + ); + + try { + const textRenderer = app.registry.renderer + .getAll() + .find(renderer => renderer.constructor?.name === 'DefaultCanvasTextRender') as + | RendererWithRenderContributions + | undefined; + + const contributionNames = textRenderer?._renderContribitions?.map(contribution => contribution.constructor?.name); + + expect(contributionNames).toContain('SuffixTextBeforeRenderContribution'); + } finally { + stage.release(); + releaseAppRef(); + } + }); + test('uses the VTable chart picker contribution for app-scoped stages', () => { const canvas = document.createElement('canvas'); const { app, stage, releaseAppRef } = createStageFromVRenderApp( diff --git a/packages/vtable/package.json b/packages/vtable/package.json index 87e36459f4..750bfb3618 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@visactor/vtable-editors": "workspace:1.26.2", - "@visactor/vrender": "1.1.0-alpha.27", - "@visactor/vrender-core": "1.1.0-alpha.27", - "@visactor/vrender-kits": "1.1.0-alpha.27", - "@visactor/vrender-components": "1.1.0-alpha.27", - "@visactor/vrender-animate": "1.1.0-alpha.27", + "@visactor/vrender": "1.1.0-alpha.28", + "@visactor/vrender-core": "1.1.0-alpha.28", + "@visactor/vrender-kits": "1.1.0-alpha.28", + "@visactor/vrender-components": "1.1.0-alpha.28", + "@visactor/vrender-animate": "1.1.0-alpha.28", "@visactor/vutils": "~1.0.17", "@visactor/vscale": "~1.0.17", "@visactor/vdataset": "~1.0.17", diff --git a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts index 6ace7379c3..285c09f804 100644 --- a/packages/vtable/src/scenegraph/utils/text-icon-layout.ts +++ b/packages/vtable/src/scenegraph/utils/text-icon-layout.ts @@ -581,11 +581,6 @@ export function dealWithIcon( if ('shape' in icon && icon.shape === 'circle') { iconAttribute.shape = icon.shape; - const iconWidth = icon.width ?? icon.height; - const iconHeight = icon.height ?? icon.width; - if (isNumber(iconWidth) && isNumber(iconHeight)) { - iconAttribute.cornerRadius = Math.min(iconWidth, iconHeight) / 2; - } } if (mark) { From 90cf4795b801b0ce4ce37a59a7a5e944b6aa47c6 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Wed, 17 Jun 2026 19:17:54 +0800 Subject: [PATCH 19/22] fix: let Gantt use app-scoped VRender env Gantt called legacy vglobal.setEnv before createStageFromVRenderApp. With VRender 1.1, ScrollBar still binds native events through legacy vglobal. That early setEnv could leave vglobal with env but no active envContribution. Gantt now matches VTable: app creation owns environment activation. The regression test covers the bugserver init path that hit ScrollBar.bindEvents. Constraint: VRender alpha 28 keeps ScrollBar listeners on legacy vglobal. Rejected: Add missing-env guards | hides invalid bootstrap order. Confidence: high Scope-risk: narrow Directive: Do not call vglobal.setEnv before createStageFromVRenderApp here. Tested: cd packages/vtable-gantt && rushx test --runInBand Tested: cd packages/vtable-gantt && rushx compile Tested: cd packages/vtable-gantt && rushx build --- .../__tests__/gantt-bugserver-init.test.ts | 110 ++++++++++++++++++ .../vtable-gantt/src/scenegraph/scenegraph.ts | 4 +- 2 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts diff --git a/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts b/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts new file mode 100644 index 0000000000..6ae413e774 --- /dev/null +++ b/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts @@ -0,0 +1,110 @@ +// @ts-nocheck + +global.__VERSION__ = 'none'; + +import { createDiv } from './dom'; +import { Gantt } from '../src/index'; + +describe('bugserver gantt initialization', () => { + test('initializes gantt with mixed date formats and top-level columns', () => { + const container = createDiv(); + container.style.width = '800px'; + container.style.height = '400px'; + + const records = [ + { + id: 1, + title: 'Software Development', + developer: 'liufangfang.jane@bytedance.com', + start: '2024-07-04', + end: '2024-07-14', + progress: 31, + priority: 'P0' + }, + { + id: 2, + title: 'Scope', + developer: 'liufangfang.jane@bytedance.com', + start: '07/14/2024', + end: '07/24/2024', + progress: 60, + priority: 'P0' + }, + { + id: 3, + title: 'Determine project scope', + developer: 'liufangfang.jane@bytedance.com', + start: '2024.07.06', + end: '2024.07.08', + progress: 100, + priority: 'P1' + }, + { + id: 4, + title: 'Release', + developer: 'liufangfang.jane@bytedance.com', + start: '2024/07/24', + end: '2024/08/04', + progress: 90, + priority: 'P0' + } + ]; + + const columns = [ + { field: 'title', title: 'title', width: 200, sort: true }, + { field: 'start', title: 'start', width: 150, sort: true }, + { field: 'end', title: 'end', width: 150, sort: true }, + { field: 'priority', title: 'priority', width: 100, sort: true }, + { field: 'progress', title: 'progress', width: 200, sort: true } + ]; + + const gantt = new Gantt(container, { + records, + columns, + defaultHeaderRowHeight: 60, + defaultRowHeight: 40, + taskBar: { + startDateField: 'start', + endDateField: 'end', + progressField: 'progress', + labelText: '{title} {progress}%', + barStyle: { + width: 20, + barColor: '#ee8800', + completedBarColor: '#91e8e0', + cornerRadius: 8, + borderWidth: 1, + borderColor: 'black' + } + }, + timelineHeader: { + colWidth: 60, + scales: [ + { unit: 'week', step: 1, startOfWeek: 'sunday' }, + { unit: 'day', step: 1 } + ] + }, + minDate: '2024-07-05', + maxDate: '2024-10-15', + markLine: [ + { + date: '2024-07-17', + style: { + lineWidth: 1, + lineColor: 'blue', + lineDash: [8, 4] + } + } + ], + scrollStyle: { + visible: 'scrolling' + }, + overscrollBehavior: 'none' + }); + + expect(gantt.scenegraph.stage).toBeDefined(); + + gantt.release?.(); + container.remove(); + }); +}); diff --git a/packages/vtable-gantt/src/scenegraph/scenegraph.ts b/packages/vtable-gantt/src/scenegraph/scenegraph.ts index 32d507a950..39ff655a0f 100644 --- a/packages/vtable-gantt/src/scenegraph/scenegraph.ts +++ b/packages/vtable-gantt/src/scenegraph/scenegraph.ts @@ -1,5 +1,5 @@ import type { Stage } from '@visactor/vtable/es/vrender'; -import { container, Group, vglobal, createStageFromVRenderApp } from '@visactor/vtable/es/vrender'; +import { container, Group, createStageFromVRenderApp } from '@visactor/vtable/es/vrender'; import { Grid } from './grid'; import type { Gantt } from '../Gantt'; import { Env } from '../env'; @@ -49,7 +49,6 @@ export class Scenegraph { // width = table.canvasWidth; // height = table.canvasHeight; } else { - vglobal.setEnv('browser'); width = gantt.canvas.width; height = gantt.canvas.height; } @@ -136,7 +135,6 @@ export class Scenegraph { let height; if (Env.mode === 'node') { } else { - vglobal.setEnv('browser'); width = gantt.canvas.width; height = gantt.canvas.height; } From 9f85ece89609271656fed3df75589cbf2ce88c4b Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 18 Jun 2026 10:34:19 +0800 Subject: [PATCH 20/22] fix: normalize desktop browser VRender env PivotChart can receive mode desktop-browser from bugserver. That value is not a VRender shared app env. Passing it through left legacy vglobal without browser envContribution. The stage helper now maps desktop-browser to browser. Tests cover the shared key and real legacy vglobal activation. Constraint: VRender shared envs are fixed public names. Rejected: Guard addEventListener | hides a wrong env contract. Confidence: high Scope-risk: narrow Directive: Keep option modes separate from VRender app env names. Tested: vtable vrender-app.test.ts Tested: vtable vrender-app-renderer.test.ts Tested: vtable pivotChart/chart-graphic/vchart-vrender-app tests Tested: vtable rushx compile --- .../__tests__/vrender-app-renderer.test.ts | 25 +++++++++++++++++++ packages/vtable/__tests__/vrender-app.test.ts | 20 +++++++++++++++ packages/vtable/src/vrender-app.ts | 11 ++++++-- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/packages/vtable/__tests__/vrender-app-renderer.test.ts b/packages/vtable/__tests__/vrender-app-renderer.test.ts index 474378bcdb..e4edceda9a 100644 --- a/packages/vtable/__tests__/vrender-app-renderer.test.ts +++ b/packages/vtable/__tests__/vrender-app-renderer.test.ts @@ -211,4 +211,29 @@ describe('VRender app renderer installation', () => { first.releaseAppRef(); } }); + + test('normalizes desktop-browser mode before activating legacy env', () => { + const canvas = document.createElement('canvas'); + const created = createStageFromVRenderApp( + { + canvas, + width: 100, + height: 100 + }, + { mode: 'desktop-browser' as never, scope: 'unit-desktop-browser-env' } + ); + + try { + const legacyGlobal = vglobal as { + env?: string; + envContribution?: { addEventListener?: unknown }; + }; + + expect(legacyGlobal.env).toBe('browser'); + expect(typeof legacyGlobal.envContribution?.addEventListener).toBe('function'); + } finally { + created.stage.release(); + created.releaseAppRef(); + } + }); }); diff --git a/packages/vtable/__tests__/vrender-app.test.ts b/packages/vtable/__tests__/vrender-app.test.ts index 7bfec49093..e9339ab59d 100644 --- a/packages/vtable/__tests__/vrender-app.test.ts +++ b/packages/vtable/__tests__/vrender-app.test.ts @@ -206,6 +206,26 @@ describe('VRender app-scoped stage helper', () => { expect(app.release).toHaveBeenCalledTimes(1); }); + it('normalizes VChart desktop-browser mode to the browser VRender app env', () => { + const app = createMockApp(); + queueSharedApps(app); + + const created = createStageFromVRenderApp( + { width: 100 }, + { mode: 'desktop-browser' as never, scope: 'unit-desktop-browser' } + ); + + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledTimes(1); + expect(mockedAcquireSharedVRenderApp).toHaveBeenCalledWith({ + env: 'browser', + key: 'browser:unit-desktop-browser:default' + }); + expect(app.createStage).toHaveBeenCalledWith({ width: 100 }); + + created.releaseAppRef(); + expect(app.release).toHaveBeenCalledTimes(1); + }); + it('borrows an externally supplied app and only creates a VTable-owned stage from it', () => { const app = createMockApp(); diff --git a/packages/vtable/src/vrender-app.ts b/packages/vtable/src/vrender-app.ts index 57675068e1..fab6c128cc 100644 --- a/packages/vtable/src/vrender-app.ts +++ b/packages/vtable/src/vrender-app.ts @@ -23,9 +23,10 @@ import type { IApp, IEnvParamsMap, IStage, IStageParams } from '@visactor/vrende import { Env } from './tools/env'; type VRenderAppEnv = TVRenderSharedAppEnv; +type VRenderStageMode = VRenderAppEnv | 'desktop-browser'; export type VRenderStageAppOptions = { - mode?: VRenderAppEnv; + mode?: VRenderStageMode; scope?: string; app?: IApp; stage?: IStage; @@ -43,7 +44,13 @@ export type VRenderStageAppRef = { const envParamsKeyMap = new WeakMap(); let envParamsKeyId = 0; -const getVRenderAppEnv = (mode?: VRenderAppEnv): VRenderAppEnv => mode ?? (Env.mode === 'node' ? 'node' : 'browser'); +const getVRenderAppEnv = (mode?: VRenderStageMode): VRenderAppEnv => { + if (mode === 'desktop-browser') { + return 'browser'; + } + + return mode ?? (Env.mode === 'node' ? 'node' : 'browser'); +}; const getEnvParamsKey = (envParams?: IEnvParamsMap[VRenderAppEnv]): string => { if (envParams == null) { From b2d7ae2c1cd3944864d4a65eab8d3aefb7bae915 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 18 Jun 2026 10:44:48 +0800 Subject: [PATCH 21/22] fix: align Gantt stage pixel ratio with parsed options The right-side Gantt canvas is sized in CSS pixels before VRender creates its stage. Without an explicit dpr, VRender 1.1 picks browser DPR from the app env, so the right pane can render at DPR 2 while Gantt coordinates assume the parsed table ratio. Passing parsedOptions.pixelRatio matches the ordinary VTable stage path and keeps right-pane coordinates aligned with the task list table. Constraint: VRender 1.1 app-scoped stages choose browser DPR without dpr Rejected: Resize Gantt canvas backing store | broader lifecycle change Confidence: high Scope-risk: narrow Directive: Keep Gantt-owned VRender stages explicit about dpr Tested: rushx test --runInBand __tests__/gantt-bugserver-init.test.ts (gantt) Tested: rushx test --runInBand (packages/vtable-gantt) Tested: rushx compile (packages/vtable-gantt) Tested: rushx build (packages/vtable-gantt) Tested: git diff --check Not-tested: Manual bugserver screenshot after deployment --- .../__tests__/gantt-bugserver-init.test.ts | 46 +++++++++++++++++++ .../vtable-gantt/src/scenegraph/scenegraph.ts | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts b/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts index 6ae413e774..8afeab9375 100644 --- a/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts +++ b/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts @@ -107,4 +107,50 @@ describe('bugserver gantt initialization', () => { gantt.release?.(); container.remove(); }); + + test('initializes the gantt stage with the configured pixel ratio', () => { + const container = createDiv(); + container.style.width = '1600px'; + container.style.height = '800px'; + + const gantt = new Gantt(container, { + pixelRatio: 3, + records: [ + { id: 101, title: '需求评审', owner: 'Alice', start: '2024-12-05', end: '2024-12-12', progress: 20 }, + { id: 102, title: '交互设计', owner: 'Bob', start: '2024-12-10', end: '2024-12-18', progress: 35 } + ], + taskListTable: { + columns: [ + { field: 'title', title: 'title', width: 160, sort: true }, + { field: 'owner', title: 'owner', width: 80, sort: true }, + { field: 'start', title: 'start', width: 120, sort: true } + ], + tableWidth: 360, + minTableWidth: 280, + maxTableWidth: 640 + }, + taskKeyField: 'id', + taskBar: { + startDateField: 'start', + endDateField: 'end', + progressField: 'progress', + moveable: true, + labelText: '{title}' + }, + minDate: '2024-12-01', + maxDate: '2024-12-31', + timelineHeader: { + colWidth: 30, + scales: [{ unit: 'day', step: 1 }] + }, + scrollStyle: { + visible: 'scrolling' + } + }); + + expect((gantt.scenegraph.stage as any).window.dpr).toBe(gantt.parsedOptions.pixelRatio); + + gantt.release?.(); + container.remove(); + }); }); diff --git a/packages/vtable-gantt/src/scenegraph/scenegraph.ts b/packages/vtable-gantt/src/scenegraph/scenegraph.ts index 39ff655a0f..e75a290fd5 100644 --- a/packages/vtable-gantt/src/scenegraph/scenegraph.ts +++ b/packages/vtable-gantt/src/scenegraph/scenegraph.ts @@ -59,7 +59,7 @@ export class Scenegraph { height, disableDirtyBounds: false, background: gantt.parsedOptions.underlayBackgroundColor, - // dpr: gantt.internalProps.pixelRatio, + dpr: gantt.parsedOptions.pixelRatio, enableLayout: true, autoRender: false, context: { From df523cd341a02e7ce53171619a0e52fd76c45712 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 18 Jun 2026 11:01:51 +0800 Subject: [PATCH 22/22] fix: align Gantt data zoom stage pixel ratio The repo-wide stage audit found one remaining production path that creates an app-scoped VRender stage without an explicit dpr: the Gantt DataZoom overlay. It owns a separate canvas, so it must follow the same pixelRatio contract as the main Gantt stage. Passing the parsed Gantt pixel ratio prevents DataZoom from silently using the browser app default DPR when users configure or normalize pixelRatio. Constraint: VRender 1.1 app-scoped stages default to browser DPR without dpr Rejected: Add a global helper default dpr | broader API change than needed Confidence: high Scope-risk: narrow Directive: Any VTable-owned independent stage must pass its owner pixelRatio Tested: rg createStageFromVRenderApp in production package sources Tested: rushx test --runInBand __tests__/gantt-bugserver-init.test.ts (gantt) Tested: rushx test --runInBand (packages/vtable-gantt) Tested: rushx compile (packages/vtable-gantt) Tested: rushx build (packages/vtable-gantt) Tested: git diff --check Not-tested: Manual DataZoom rendering in browser bugserver --- .../__tests__/gantt-bugserver-init.test.ts | 57 +++++++++++++++++++ .../src/zoom-scale/DataZoomIntegration.ts | 1 + 2 files changed, 58 insertions(+) diff --git a/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts b/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts index 8afeab9375..5623cb2f9f 100644 --- a/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts +++ b/packages/vtable-gantt/__tests__/gantt-bugserver-init.test.ts @@ -153,4 +153,61 @@ describe('bugserver gantt initialization', () => { gantt.release?.(); container.remove(); }); + + test('initializes the data zoom stage with the configured pixel ratio', () => { + const container = createDiv(); + container.style.width = '1600px'; + container.style.height = '800px'; + + const gantt = new Gantt(container, { + pixelRatio: 3, + records: [ + { id: 101, title: '需求评审', owner: 'Alice', start: '2024-12-05', end: '2024-12-12', progress: 20 }, + { id: 102, title: '交互设计', owner: 'Bob', start: '2024-12-10', end: '2024-12-18', progress: 35 } + ], + taskListTable: { + columns: [ + { field: 'title', title: 'title', width: 160, sort: true }, + { field: 'owner', title: 'owner', width: 80, sort: true }, + { field: 'start', title: 'start', width: 120, sort: true } + ], + tableWidth: 360, + minTableWidth: 280, + maxTableWidth: 640 + }, + taskKeyField: 'id', + taskBar: { + startDateField: 'start', + endDateField: 'end', + progressField: 'progress', + moveable: true, + labelText: '{title}' + }, + minDate: '2024-12-01', + maxDate: '2024-12-31', + timelineHeader: { + colWidth: 30, + scales: [{ unit: 'day', step: 1 }], + zoomScale: { + enabled: true, + levels: [] + } + }, + scrollStyle: { + visible: 'scrolling' + } + }); + + const dataZoom = gantt.zoomScaleManager.createDataZoomIntegration({ + width: 400, + height: 30, + x: 360, + y: 0 + }); + + expect((dataZoom as any).stage.window.dpr).toBe(gantt.parsedOptions.pixelRatio); + + gantt.release?.(); + container.remove(); + }); }); diff --git a/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts b/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts index 2c76efb3ac..c09ee836d5 100644 --- a/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts +++ b/packages/vtable-gantt/src/zoom-scale/DataZoomIntegration.ts @@ -185,6 +185,7 @@ export class DataZoomIntegration { canvas: this.canvas, width, height, + dpr: this.gantt.parsedOptions.pixelRatio, autoRender: true }, { mode: 'browser', scope: 'vtable-gantt-datazoom' }