Skip to content
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: 修复单元格宽度为浮点数时单元格之间有几率出现多余空隙的问题 close #3014 #3066

Merged
merged 5 commits into from
Jan 3, 2025

Conversation

lijinke666
Copy link
Member

@lijinke666 lijinke666 commented Jan 3, 2025

👀 PR includes

🐛 Bugfix

📝 Description

背景见 #3014 (comment)

G 的底层默认有取整处理, 对于 S2 单元格来说, 如果宽度是浮点数 199.2, 实际渲染的可能是 200, 会导致有 1px 偏差, 出现多余空隙.

解法: 将宽高统一进行向下取整处理

🖼️ Screenshot

Before After
image image

🔗 Related issue link

🔍 Self-Check before the merge

  • Add or update relevant docs.
  • Add or update relevant demos.
  • Add or update test case.
  • Add or update relevant TypeScript definitions.

Copy link

vercel bot commented Jan 3, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
antvis-s2 ❌ Failed (Inspect) Jan 3, 2025 9:42am

@github-actions github-actions bot added next 2.0-next 版本的问题 pr(fix) bug fix labels Jan 3, 2025
Copy link
Contributor

github-actions bot commented Jan 3, 2025

你好 @lijinke666,非常感谢你的贡献.
为了让代码更健壮, 请根据 贡献指南 补充相应单元测试 (文档改动或其他特殊场景除外), 如果有 API 改动, 请修改 相应的文档.
同时请检查 linttest 相关 CI 是否通过, 如果失败, 请点击 [Details] 按钮查看, 并根据日志修复.

Hello, @lijinke666, Thanks for your contribution. In order to make the code more robust, please add the corresponding unit tests, and update the docs if there are API changes.
At the same time, please check whether the CI related to lint and test passes. If the CI fails, please click [Details] button to check and repair according to the log.

@github-actions github-actions bot requested a review from wjgogogo January 3, 2025 08:24
Copy link

Walkthrough

This PR addresses a bug where cells with floating-point widths in the S2 library rendered with extra gaps due to rounding issues in the underlying G library. The solution involves rounding the width and height values to ensure consistent rendering without gaps.

Changes

Files Summary
packages/s2-core/__tests__/bugs/issue-3014-spec.ts Added a test to verify that sub-pixel rendering issues are resolved.
packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap Updated snapshot tests to reflect changes in rendering.
packages/s2-core/src/extends/pivot-chart/facet/pivot-chart-facet.ts
packages/s2-core/src/facet/base-facet.ts
packages/s2-core/src/facet/pivot-facet.ts
packages/s2-core/src/facet/table-facet.ts
packages/s2-core/src/interaction/row-column-resize.ts
Modified functions to use round for width and height calculations to prevent rendering gaps.
packages/s2-core/src/utils/math.ts Added a new round function to handle rounding operations.
🪧 Tips For further assistance, please describe your question in the comments and @petercat-assistant to start a conversation with me.


export function floor(value: number, precision = 2) {
return innerFloor(value, precision);
}

export function round(value: number) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure that the round function is correctly handling non-numeric inputs by returning the input value unchanged. This is crucial for preventing unexpected behavior in the application.

@codecov-commenter
Copy link

codecov-commenter commented Jan 3, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 75.77%. Comparing base (ecdc9c8) to head (c1e87ff).
Report is 588 commits behind head on next.

Additional details and impacted files
@@            Coverage Diff             @@
##             next    #3066      +/-   ##
==========================================
  Coverage   75.77%   75.77%              
==========================================
  Files         257       51     -206     
  Lines       11994     1490   -10504     
  Branches     2464      284    -2180     
==========================================
- Hits         9088     1129    -7959     
+ Misses       1398      210    -1188     
+ Partials     1508      151    -1357     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

github-actions bot commented Jan 3, 2025

Size Change: +47 B (+0.01%)

Total Size: 619 kB

Filename Size Change
./packages/s2-core/dist/s2-extends.min.js 154 kB +10 B (+0.01%)
./packages/s2-core/dist/s2.min.js 257 kB +37 B (+0.01%)
ℹ️ View Unchanged
Filename Size
./packages/s2-core/dist/s2.min.css 581 B
./packages/s2-react-components/dist/s2-react-components.min.css 2.55 kB
./packages/s2-react-components/dist/s2-react-components.min.js 124 kB
./packages/s2-react/dist/s2-react.min.css 1.74 kB
./packages/s2-react/dist/s2-react.min.js 38.3 kB
./packages/s2-vue/dist/s2-vue.min.css 2.05 kB
./packages/s2-vue/dist/s2-vue.min.js 38.3 kB

compressed-size-action

@lijinke666 lijinke666 changed the title fix: 修复单元格宽度为浮点数时出现多余空隙的问题 close #3014 fix: 修复单元格宽度为浮点数时单元格之间有几率出现多余空隙的问题 close #3014 Jan 3, 2025
@lijinke666 lijinke666 merged commit 6c1f74a into next Jan 3, 2025
11 of 13 checks passed
@lijinke666 lijinke666 deleted the fix-3014 branch January 3, 2025 09:52
@lijinke666
Copy link
Member Author

🎉 This PR is included in version @antv/s2-v2.1.8 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
next 2.0-next 版本的问题 pr(fix) bug fix released on @latest
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🐛角头单元格垂直边线透明度或者宽度设置为0时不生效
3 participants