fix(xlsx): preserve DrawingML placement and resolve the actual Normal font - #4
Conversation
Coverage gate: verified pre-existing baseline failureThe unchanged PR base
Reproduction log: https://github.com/flyfish-dev/hucre/actions/runs/35437702987/job/105883073245 This PR does not lower coverage thresholds, exclude production modules from coverage, skip the original coverage job, or change the base branch. A separate informational baseline job makes this distinction explicit; it is not a substitute for the enforced coverage gate. The new DrawingML validation/Normal-font unit tests are now also included in Vitest coverage, alongside the 23 post-build public parser/writer/clone tests. The formatter issue has been corrected using the exact repository formatter output. Rendering integration is in flyfish-dev/excel-viewer#20, whose final CI, security check, clean packed-consumer checks, and 48 browser drawing scenarios have passed. |
Summary
Move XLSX file semantics into the maintained parser so consumers do not need to reopen the ZIP to recover lost layout metadata.
editAs, exact EMU extents and absolute positions alongside the existing cell markers and offsets.AlternateContentwithout treating grouped-child transforms as sheet coordinates.builtinId=0 -> cellStyleXfs -> fontId, without altering the font table used by cell styles.This is an additive model contract. Browser DPI, zoom, hidden-row grid geometry, text measurement and DOM reflow remain renderer responsibilities. No customer workbook, image, identifying business content, screenshot-specific sizing rule or font file is included.
Verification
At
638a8f29f26883fa03ee254259e395c7d9e962e6, the read-only Drawing layout integration workflow passed:Run: https://github.com/flyfish-dev/hucre/actions/runs/35436703277
npm run test:drawing-layoutreproduces the new generated-fixture checks. This does not claim support for all grouped DrawingML transforms or arbitrary picture effects.