Skip to content

fix(pictogram): respect SVG text anchors - #4685

Merged
xile611 merged 1 commit into
developfrom
codex/fix-pictogram-text-anchor
Sep 15, 2026
Merged

xile611 merged 1 commit into
developfrom
codex/fix-pictogram-text-anchor

Conversation

@xile611

@xile611 xile611 commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

🤔 这个分支是...

  • Bug fix
  • 测试 case 更新
  • 网站/文档更新

🐞 Bugserver 用例 id

674d2b8a435dab00bc007d5c

💡 问题的背景&解决方案

Pictogram 将 SVG 的 text-anchor 写入无效的 textBaseLine 字段,水平对齐始终回退为 left。因此使用 middleend 的文字向右偏移,并可能被 SVG 画布裁剪。

在现有文字属性转换器中将 start / middle / end 映射为 left / center / right,保留显式 textAlign 的优先级,并删除错误的基线赋值。使用已有 SVG 属性继承和 VRender 默认基线,保持现有缩放、裁剪及 resize 路径。

例如 <text x="170" text-anchor="middle">WWWW</text> 应以 x=170 为中心;修复前实际文字中心为约 192.65,修复后为 170。

原 network 用例使用相同源码基点、依赖及 500×500 容器进行修复前后对照:

检查项 修复前 修复后
右侧标签右边界 530.36px 478.89px,接近画布右边界 478.87px
缩放比例 0.756578947 0.756578947
根矩阵、裁剪、161 个非文字图元的边界 基准 一致
文字内容及已核对标签的垂直位置 基准 一致

📝 Changelog

Language Changelog
🇺🇸 English Fix Pictogram SVG text-anchor alignment so centered and right-aligned text is positioned correctly without changing viewport fitting or the vertical baseline.
🇨🇳 Chinese 修复 Pictogram SVG text-anchor 水平对齐映射,避免居中或右对齐文字错误偏移及被裁剪,并保留 SVG 画布适配及垂直基线行为。

已有使用 middle / end 的 SVG 会出现符合锚点语义的文字位置变化;没有公共 API 或依赖变更。

☑️ 自测

  • 中英文 Pictogram 文档已更新
  • 已补充最小 SVG 回归场景并验证原用例,无需新增公开 demo
  • 无需更新公共 TypeScript 类型
  • 已提供扩展包 patch 变更记录

验证结果:

  • 推送前仓库全量检查 rush test --only tag:package 通过:VChart 84 个测试文件、470 项测试通过,VUtils Extension 1 项测试通过;其余四个包未定义测试任务。
  • 两个 Pictogram 测试文件共 16 项通过,覆盖 start/middle/end 的实际文字边界、显式对齐优先级、垂直基线、g/text/tspan 属性继承、完整图表 resize 及现有尺寸适配行为;新回归已先在修复前复现失败。
  • 修改文件的 ESLint、核心包 tsc --noEmitgit diff --check 通过。
  • 扩展包 tsc --noEmit 未通过:修改前后均为 901 条既有错误,主要由缺失 @visactor/vchart/esm 构建产物导致。去除源码行列号后逐项对比一致,无新增错误。

🚀 Summary

copilot:summary

🔍 Walkthrough

copilot:walkthrough

@xile611
xile611 merged commit 702ecbb into develop Sep 15, 2026
7 of 9 checks passed
@xile611
xile611 deleted the codex/fix-pictogram-text-anchor branch September 15, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants