-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: 链接字段高亮下划线过长 #1652
fix: 链接字段高亮下划线过长 #1652
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
This pull request introduces 1 alert and fixes 3 when merging e14bbf7 into 71fefc7 - view on LGTM.com new alerts:
fixed alerts:
|
Size Change: +354 B (0%) Total Size: 426 kB
ℹ️ View Unchanged
|
你好, @lcx-seima CI 执行失败, 请点击 [Details] 按钮查看, 并根据日志修复。 Hello, @lcx-seima CI run failed, please click the [Details] button for detailed log information and fix it. |
This pull request introduces 1 alert and fixes 3 when merging 3627212 into 71fefc7 - view on LGTM.com new alerts:
fixed alerts:
|
Codecov Report
@@ Coverage Diff @@
## master #1652 +/- ##
==========================================
- Coverage 77.17% 77.00% -0.18%
==========================================
Files 231 231
Lines 11177 11194 +17
Branches 2355 2360 +5
==========================================
- Hits 8626 8620 -6
- Misses 1236 1257 +21
- Partials 1315 1317 +2
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
This pull request introduces 1 alert and fixes 3 when merging c89d41e into 577cd84 - view on LGTM.com new alerts:
fixed alerts:
|
* feat: 当前只能复制数值可带表头复制 (#1590) * feat: 添加通过 cellMetas 获取单元格对应的列头文本的方法 * feat: 添加通过 cellMetas 获取单元格对应的行头文本的方法 * feat: 只复制数据单元格时可以携带行列头 * feat: 选择某X行/列数据时可以携带行列头 * feat: 提取矩阵转换为字符串的方法 * test: 添加带行列头复制的单测 * test: 明细表添加带行列头复制的单测 * docs: 复制数据是否带表头信息 * feat(interaction): 行列宽高支持控制拖拽范围 (#1583) * feat(interaction): 行列宽高支持控制拖拽范围 * feat(interaction): 增加测试和文档 * feat(interaction): 增加主题色 * Update row-column-resize-spec.ts * Update packages/s2-core/src/interaction/row-column-resize.ts Co-authored-by: Wenjun Xu <[email protected]> * fix: rename Co-authored-by: Wenjun Xu <[email protected]> * docs: 复制数据是否带表头信息 * refactor: 评审细节修改 Co-authored-by: zishang <[email protected]> Co-authored-by: Jinke Li <[email protected]> Co-authored-by: Wenjun Xu <[email protected]> * fix(layout): 修复 Firefox 浏览器部分 icon 渲染失败 close #1571 (#1599) * fix: 有冻结行且有垂直scrollWidth时冻结行无法 resize (#1594) * fix: 有冻结行且有垂直scrollWidth时冻结航无法resize * fix: 有冻结行且有垂直scrollWidth时冻结航无法resize Co-authored-by: owen.wjh <[email protected]> * chore: 🤖 更新 lock 和 changelog 文件 (#1601) * fix: sortByFunc 排序后行列维度节点丢失 (#1606) * fix(interaction): 向左移动到不完全可见cell的时候,没有滚动过去 (#1607) * fix: 明细表复制时无需使用formatter格式化列头label (#1610) * fix: 明细表复制时无需使用formatter格式化列头label * test: 完善明细表导出case * feat: 支持resize最右侧column (#1611) * feat: 支持resize最右侧column * fix: 添加testing-library/dom dep * fix: npm源 * fix: npm源 * fix: 切换成dispatchEvent * fix: testcase fix Co-authored-by: owen.wjh <[email protected]> * docs: 将 S2Event 提取到 API 文档中, 方便查看 (#1618) * fix(strategysheet): 修复趋势分析表列头格式化不生效 (#1616) * fix(strategysheet): 修复趋势分析表列头格式化不生效 * fix: update * test: 增加测试 * fix: test * docs: 优化文档说法和校正有误的内容 (#1640) * docs: 让 demo 展示符合主题 * docs: 排序文档优化 * docs: 合并单元格文档更新 * docs: getAllCells()获取数据说明问题 * fix: 修复存在 0 时,数值为 number 时,排序错误的问题 (#1644) * fix: 修复存在 0 时,排序错误的问题 * test: 补充存在 0 时,排序错误的单测 * fix: 修复单测字典序排序错误 Co-authored-by: zishang <[email protected]> * fix(pagination): 分页配置未传 current 参数时表格渲染空白 (#1633) * feat: 复制支持html格式 (#1647) * feat: 复制支持html格式 * fix: 修复复制测试用例 * fix: 添加复制格式测试用例 * Update packages/s2-core/src/utils/export/copy.ts Co-authored-by: stone <[email protected]> * fix: moved mimetype as enum * chore: generic type narrowing * fix: html escaping special chars Co-authored-by: owen.wjh <[email protected]> Co-authored-by: stone <[email protected]> * feat(interaction): 宽高调整事件透出 resizedWidth/resizedHeight, 修复错误类型定义 (#1638) * feat(interaction): 宽高调整事件透出 resizedWidth/resizedHeight, 修复错误类型定义 * docs: 优化文档 * chore: 更新 reviewer * fix: 修复pivot模式 cell点击事件无法触发BUG (#1623) fix: 修复pivot-table cell事件无法触发BUG * chore: 发布成功后自动部署官网 (#1649) * fix(layout): 修复 treeRowsWidth 配置不生效 close #1622 (#1646) * fix(layout): 修复 treeRowsWidth 配置不生效 close #1622 * test: 修复测试 * chore: 🤖 更新 lock 和 changelog 文件 (#1650) * fix: 修复选中态的描边宽度样式问题 (#1654) * fix: 链接字段高亮下划线过长 (#1652) * refactor: measureTextWidth移动为spreadsheet实例方法 * test: 调整 text 测试用例 * feat: 明细表行头单元格支持拖拽 (#1655) * feat: 明细表行头单元格支持拖拽 * feat: 明细表行头单元格支持拖拽 * test: 添加单测 * fix(interaction): 优化resetSheetStyle性能 (#1653) * fix: 优化reset性能 * fix: icon draw * docs: 官网文档优化 (#1661) * fix(scroll): 修复滚动边界判断错误导致无法滚动 (#1664) Co-authored-by: 卿珂 <[email protected]> * chore: update the reviewers (#1673) * fix(resize): 修复总计列存在子节点时无法调整宽度 (#1675) * fix: 修复明细表 onRaneSort 失效问题 (#1678) * docs: 修改排序API文档 (#1677) * refactor: 重构多指标绘制文本布局逻辑 * feat: 趋势分析表支持icon字段标记 Co-authored-by: stone <[email protected]> Co-authored-by: zishang <[email protected]> Co-authored-by: Jinke Li <[email protected]> Co-authored-by: Wenjun Xu <[email protected]> Co-authored-by: serializedowen <[email protected]> Co-authored-by: owen.wjh <[email protected]> Co-authored-by: 刘嘉一 <[email protected]> Co-authored-by: YardWill <[email protected]> Co-authored-by: xiaochong44 <[email protected]> Co-authored-by: 卿珂 <[email protected]>
🎉 This PR is included in version @antv/s2-v1.26.0-alpha.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
🎉 This PR is included in version @antv/s2-v1.26.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
* refactor: measureTextWidth移动为spreadsheet实例方法 * test: 调整 text 测试用例
👀 PR includes
🎨 Enhance
🐛 Bugfix
📝 Description
背景
当 spreadsheet container 被应用了特殊的文字样式后(如
letter-spacing
)[email protected]
绘制链接下划线
会超过文字实际长度原因
drawLinkFieldShape 绘制下划线时,使用的是 g-base (
textShape.getBBox()
) 计算出的文字宽度而 g-base 使用的是 离屏 canvas,不会应用 html 中任何样式,当 计算文字尺寸 时,与实际渲染有较大差距(如宽度)
之前在修复 列头文字&icon 时,也发现了类似的问题。
当时把 s2 内部计算文字宽度的 offscreen canvas 放置到了 body,但实际场景中,特殊的文字样式是会设置到 container 这层,仅 body 的样式是不够的。
方案
直接使用 spreadsheet container 挂载的 canvas 作为文字宽度计算的 ctx:
utils/text.ts
中的measureTextWidth
、measureTextWidthRoughly
函数使用(有 export 暂不移除源码)measureTextWidth
、measureTextWidthRoughly
逻辑,作为 spreadsheet 的实例方法getEllipsisText
等文字工具函数,接受宽度计算函数measureTextWidth
作为参数🖼️ Screenshot
🔗 Related issue link
🔍 Self-Check before the merge