@a3s-lab/office 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,9 +56,8 @@ workflows, and a separate Rust automation plane.
56
56
 
57
57
  ## Latest on `main`
58
58
 
59
- The `0.35.0` release plus the current `main` branch expose these capabilities
60
- as normal user-facing Playground templates, with matching implementation
61
- detail in the documentation:
59
+ The `0.37.0` release exposes these capabilities as normal user-facing
60
+ Playground templates, with matching implementation detail in the documentation:
62
61
 
63
62
  | Editor | Latest capability | Public entry |
64
63
  | --- | --- | --- |
@@ -69,12 +68,13 @@ detail in the documentation:
69
68
  | Writer | Native character shading with exact `w:shd` patterns, foreground/background color identity, explicit resets, authoring, and DOCX reopen | Playground **Latest capabilities → 字符底纹** · [Document reference](docs/latest/en/components/document.mdx#native-character-shading) |
70
69
  | Writer | Independent Latin, East Asian, and bidi proofing languages plus explicit `w:noProof` inclusion/exclusion | Playground **Latest capabilities → 校对语言** · [Document reference](docs/latest/en/components/document.mdx#native-proofing-languages) |
71
70
  | Spreadsheet | Complete common Data Validation input, blank/dropdown, and Stop/Warning/Information error settings with native XLSX round trips | Playground **Latest capabilities → 数据验证** · [Spreadsheet reference](docs/latest/en/components/spreadsheet.mdx#data-validation) |
71
+ | Spreadsheet | Native totals-row authoring with per-column aggregates, labels, custom formulas, filtered-row-aware `SUBTOTAL`, automatic calculated-column fill for newly inserted table body rows, and bounded structured-reference calculation across Rust/WASM and JavaScript fallback | Playground **Latest capabilities → 结构化引用** · [Totals-row reference](docs/latest/en/components/spreadsheet.mdx#native-totals-row-authoring) · [Structured-reference calculation](docs/latest/en/components/spreadsheet.mdx#structured-reference-calculation) |
72
72
  | PDF | Insert, delete, rotate, reorder, extract, merge, and split pages through a dedicated Web Worker, with Blob-level Undo/Redo and independent binary reopen verification | Playground **Latest capabilities → 组织 PDF 页面** · [PDF reference](docs/latest/en/components/pdf.mdx#page-organization) |
73
73
 
74
- All eight entries are reachable from the first Playground viewport. The
74
+ All nine entries are reachable from the first Playground viewport. The
75
75
  filterable capability gallery groups releases by editor, publishes the source
76
76
  release on every card, and grows from one shared metadata list instead of a
77
- fixed-width strip. The seven content templates also remain under **新建**;
77
+ fixed-width strip. The eight content templates also remain under **新建**;
78
78
  **组织 PDF 页面** opens the normal PDF file workflow because page organization
79
79
  must operate on host-provided source bytes.
80
80
 
@@ -151,8 +151,8 @@ baseline rather than one specific release.
151
151
  | Cells, sheets, navigation, and history | **Supported** — multiple sheets, sparse editing, search, clipboard, four-direction fill, exact formula/value copy from above, and undo/redo | Mature grid workflows across desktop and web |
152
152
  | Formatting and style rendering | **Partial** — native fonts, colors, borders, alignment, number formats, cell styles, all 17 native non-solid OOXML pattern fills, native linear/path XLSX gradients, and one Format Cells surface that authors none, solid, pattern, or gradient fills with exact geometry and 2–256 ordered stops; static date/time entry, contrast-safe font preview, native XLSX rich-text runs, selected-text font formatting, direct formula-bar/F2 insertion or deletion, and bounded authenticated formatted-HTML paste | Disjoint multi-edit rich-text authoring, broader themes, locale formats, and advanced style effects |
153
153
  | Ribbon and shortcuts | **Partial** — common Office-style Home/Data/View commands, grid-scoped shortcuts, and focused Font-dialog aliases | Larger command catalog and platform-specific accelerators |
154
- | Formulas and recalculation | **Partial** — dependency-aware calculation and common formula paths | Wider functions, arrays, volatile semantics, and calculation parity |
155
- | Tables, pivots, charts, and rules | **Partial** — native tables, pivots, charts, conditional formatting, and common validation rules with complete input/error-setting authoring | Calculated columns, slicers, pivot charts, custom/dependent validation rules, advanced analysis, and broader browser alert flows |
154
+ | Formulas and recalculation | **Partial** — dependency-aware calculation plus bounded structured references (`Table[Column]`, contiguous ranges, `#All`/`#Headers`/`#Data`/`#Totals`/`#This Row`, and `[@Column]`) in the shared Rust/WASM and JavaScript paths | Wider functions, arrays, volatile semantics, and calculation parity |
155
+ | Tables, pivots, charts, and rules | **Partial** — native tables, bounded structured-reference formulas, calculated-column formulas with automatic fill for newly inserted body rows, complete common totals-row authoring, pivots, charts, conditional formatting, and common validation rules with complete input/error-setting authoring | Slicers, pivot charts, custom/dependent validation rules, advanced analysis, and broader browser alert flows |
156
156
  | Large worksheets | **Supported with boundaries** — maximum-dimension sparse import/editing and viewport-bounded Canvas painting | Highly optimized native grid with hardware-dependent limits |
157
157
  | Files and printing | **Partial** — XLS/XLSX/ODS/CSV import, XLSX export, and PDF output | Broader round trips, external data, print fidelity, and legacy conversion |
158
158
  | External data, macros, and specialist analysis | **Gap** — active macros are never executed; bounded models are still needed for data connections and solver-like tools | Established data, macro/add-in, scenario, and optimization ecosystems |
@@ -740,9 +740,31 @@ stable IDs, workbook-unique names, zero-based ranges, ordered columns, filters,
740
740
  header/totals flags, and built-in style identity. XLSX import and export keep
741
741
  native table parts and relationships. Table styling is resolved only for the
742
742
  visible Canvas cells; converting a table to a range materializes the confirmed
743
- appearance without densifying unrelated worksheet space. Structured-reference
744
- calculation, calculated columns, complete totals authoring, slicers, and
745
- external/query tables are not yet claimed.
743
+ appearance without densifying unrelated worksheet space.
744
+
745
+ The calculation kernel resolves a bounded common structured-reference subset:
746
+ table names or `displayName`, worksheet-qualified tables, contiguous column
747
+ ranges, `#All`, `#Headers`, `#Data`, `#Totals`, `#This Row`, and table-local
748
+ `[@Column]` formulas. Rust/WASM and JavaScript fallback share the parser,
749
+ catalog, dependency graph, and no-history projection path. Requests accept at
750
+ most 1,024 tables and materialize at most 100,000 cells per structured range;
751
+ whole-row/column, three-dimensional, external, disjoint, missing, or
752
+ over-budget references fail closed. A validated calculated-column rule is
753
+ inferred from matching current-row formulas and fills only newly inserted table
754
+ body rows. Existing values, formulas, and manual exceptions always win; a
755
+ conflicting column fails closed and drops its automatic rule. XLSX
756
+ `<calculatedColumnFormula>` metadata round-trips with the leading `=` restored
757
+ in the controlled model, while unsafe or external formulas are omitted.
758
+ The Playground's **结构化引用** template shows a calculated `Revenue` column,
759
+ an insertion hint, an editable totals row, and a worksheet-qualified summary.
760
+ The Table Design totals menu enables or disables the row and assigns each
761
+ column a label, one of ten native aggregate functions, or a bounded custom
762
+ formula. Native aggregates emit filtered-row-aware `SUBTOTAL` formulas; direct
763
+ cell edits reconcile back into table metadata, table structure changes move
764
+ the row without overwriting manual cells, and table renames rewrite only
765
+ generated formulas. Dense and sparse worksheets, Yjs collaboration, and XLSX
766
+ `totalsRowFunction`, `totalsRowLabel`, and `totalsRowFormula` round trips share
767
+ the same model. Slicers and external/query tables remain explicit boundaries.
746
768
 
747
769
  Use `downloadArtifact` to start a browser download or
748
770
  `createArtifactBlob` when your application owns upload and persistence.
@@ -1625,6 +1647,8 @@ keep working without hard-coded return URLs.
1625
1647
 
1626
1648
  - [Live Playground](https://a3s-lab.github.io/Office/playground/)
1627
1649
  - [Documentation center](https://a3s-lab.github.io/Office/docs/)
1650
+ - [A3S Office 0.37.0 documentation](https://a3s-lab.github.io/Office/docs/0.37.0/)
1651
+ - [A3S Office 0.36.0 documentation](https://a3s-lab.github.io/Office/docs/0.36.0/)
1628
1652
  - [A3S Office 0.34.0 documentation](https://a3s-lab.github.io/Office/docs/0.34.0/)
1629
1653
  - [A3S Office 0.33.0 documentation](https://a3s-lab.github.io/Office/docs/0.33.0/)
1630
1654
  - [A3S Office 0.32.0 documentation](https://a3s-lab.github.io/Office/docs/0.32.0/)