@silurus/ooxml 0.80.3 → 0.82.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 +61 -85
- package/dist/assets/render-worker-7-Zr7fSw.js +10 -0
- package/dist/assets/render-worker-B5gsW6b5.js +11 -0
- package/dist/assets/render-worker-Dw_wQRIh.js +24 -0
- package/dist/{canvas-viewer-mechanics-D-r6wHY_.js → canvas-viewer-mechanics-CS_qbr6T.js} +1 -1
- package/dist/chart-ex.mjs +1017 -0
- package/dist/comment-occurrence-C34fWs_F.js +6 -0
- package/dist/comment-ui-runtime-BAe30Ct9.js +112 -0
- package/dist/comment-ui-runtime-BUCj4hWn.js +171 -0
- package/dist/comment-ui-runtime-F4a3te6p.js +2 -0
- package/dist/comments-Cf9W7r3M.js +241 -0
- package/dist/{document-pull-client-vxk-Aomu.js → document-pull-client-BCgmytqI.js} +4682 -4541
- package/dist/docx-wokGKYfi.js +2162 -0
- package/dist/docx.mjs +6 -4
- package/dist/docx_parser_bg.wasm +0 -0
- package/dist/dom-interaction-boundary-C8F6HO5x.js +119 -0
- package/dist/highlight-rect-MaCt0om0.js +13 -0
- package/dist/index.mjs +3 -3
- package/dist/{line-distribute-Bvtp0Gt6.js → line-distribute-iXsUCIH-.js} +17 -16
- package/dist/{line-metrics-DdEJYxjx.js → line-metrics-B3syvDn2.js} +667 -7492
- package/dist/math.mjs +2 -2
- package/dist/node.mjs +248 -247
- package/dist/plot-area-frame-DHV02PJU.js +3670 -0
- package/dist/pptx-DU8L8I2T.js +2432 -0
- package/dist/pptx.mjs +6 -5
- package/dist/pptx_parser_bg.wasm +0 -0
- package/dist/read-only-comment-decoration-DcFevX_Q.js +96 -0
- package/dist/read-only-comment-margin-Dn2y55W6.js +189 -0
- package/dist/region-map.mjs +102 -97
- package/dist/{render-CoqMHcbF.js → render-CenWM4g1.js} +1 -1
- package/dist/{render-worker-host-IuQFpoJM.js → render-worker-host-BNENN3qP.js} +1 -1
- package/dist/{render-worker-host-CYPhmBtX.js → render-worker-host-BmH3kGSj.js} +1 -1
- package/dist/{render-worker-host-GlLR1rtF.js → render-worker-host-CmPBviYJ.js} +1 -1
- package/dist/renderer-CYr9YTXM.js +5856 -0
- package/dist/{renderer-module-contract-BNGz8HvO.js → renderer-module-contract-DLbb7zY0.js} +4 -3
- package/dist/{resource-measurement-CgMubiAI.js → resource-measurement-CsW4_eYt.js} +12 -11
- package/dist/{session-DkPblDiq.js → session-Cky_swUj.js} +8 -8
- package/dist/{slide-pull-client-m2blvngt.js → slide-pull-client-CqTVFb3W.js} +1004 -1091
- package/dist/source-key-BklvnEyQ.js +42 -0
- package/dist/three-d-7MaVzQuZ.js +1346 -0
- package/dist/three-d.mjs +1238 -797
- package/dist/types/chart-ex.d.ts +949 -0
- package/dist/types/docx.d.ts +497 -28
- package/dist/types/index.d.ts +649 -39
- package/dist/types/math.d.ts +1 -1
- package/dist/types/node.d.ts +385 -22
- package/dist/types/pptx.d.ts +435 -24
- package/dist/types/region-map.d.ts +318 -6
- package/dist/types/three-d.d.ts +318 -6
- package/dist/types/xlsx.d.ts +384 -19
- package/dist/units-BzZ0gAxs.js +4 -0
- package/dist/{worksheet-pull-client-BntP6RiO.js → worksheet-pull-client-CYtwXP5D.js} +19 -19
- package/dist/{xlsx-DqMe7J2C.js → xlsx-DlV37-0j.js} +1594 -1349
- package/dist/xlsx.mjs +6 -5
- package/dist/xlsx_parser_bg.wasm +0 -0
- package/package.json +7 -1
- package/dist/assets/render-worker-CRaEOHkw.js +0 -9
- package/dist/assets/render-worker-DQGLj5Zv.js +0 -22
- package/dist/assets/render-worker-rnrSLmqL.js +0 -8
- package/dist/chart-number-format-qLhnk6hj.js +0 -475
- package/dist/docx-DN0PRx2f.js +0 -1733
- package/dist/highlight-rect-BuX5rWP4.js +0 -48
- package/dist/pptx-B-Laftl1.js +0 -2134
- package/dist/three-d-C28kqDym.js +0 -1086
- /package/dist/{mathjax-DgAl7Yi5.js → mathjax-DwIrafQ6.js} +0 -0
- /package/dist/{transfer-CKZ79zFw.js → transfer-R6NjgBKD.js} +0 -0
- /package/dist/{visible-index-BjesVGhg.js → visible-index-BFE3PWiY.js} +0 -0
package/README.md
CHANGED
|
@@ -46,11 +46,6 @@ npm install @silurus/ooxml
|
|
|
46
46
|
pnpm add @silurus/ooxml
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
> Upgrading from v0.76? Review the
|
|
50
|
-
> [v0.77 migration guide](https://ooxml.silurus.dev/announcements/v077-migration-guide/)
|
|
51
|
-
> for the XLSX selection, selection-context, MCP-tool, option/type, and Viewer
|
|
52
|
-
> error-handling changes.
|
|
53
|
-
|
|
54
49
|
> **Bundler note**: the Rust parsers ship as real `.wasm` asset files next to the
|
|
55
50
|
> JavaScript, referenced with the standard `new URL('…', import.meta.url)` form
|
|
56
51
|
> and fetched (streaming-compiled) at load time. Verified to work with zero
|
|
@@ -76,39 +71,13 @@ pnpm add @silurus/ooxml
|
|
|
76
71
|
> new DocxViewer(canvas, { wasmUrl: 'https://cdn.example.com/docx_parser_bg.wasm' });
|
|
77
72
|
> ```
|
|
78
73
|
|
|
79
|
-
> **Bundle size note**: the package is ESM-only (`.mjs`). npm's *Unpacked
|
|
80
|
-
>
|
|
81
|
-
>
|
|
82
|
-
>
|
|
83
|
-
>
|
|
84
|
-
>
|
|
85
|
-
>
|
|
86
|
-
> | Imported entry | Reachable assets | gzip | Includes |
|
|
87
|
-
> |---|---:|---:|---|
|
|
88
|
-
> | `@silurus/ooxml/docx` | 4.0 MB | 1.2 MB | DOCX renderer, parser WASM, and lazy worker |
|
|
89
|
-
> | `@silurus/ooxml/xlsx` | 2.6 MB | 0.82 MB | XLSX renderer, parser WASM, and lazy worker |
|
|
90
|
-
> | `@silurus/ooxml/pptx` | 2.5 MB | 0.78 MB | PPTX renderer, parser WASM, and lazy worker |
|
|
91
|
-
> | `@silurus/ooxml/math` | 3.1 MB | 1.1 MB | Optional MathJax + STIX Two Math engine |
|
|
92
|
-
> | `@silurus/ooxml/three-d` | 92 KB | 27 KB | Optional model-space 3-D chart mesh and camera |
|
|
93
|
-
> | `@silurus/ooxml/region-map` | 236 KB | 66 KB | Optional offline Region Map renderer and fixed country geometry |
|
|
94
|
-
>
|
|
95
|
-
> These are production-artifact estimates, not initial-load figures: each row
|
|
96
|
-
> sums all assets reachable from that entry, including parser WASM and worker
|
|
97
|
-
> chunks loaded on demand. Exact output varies by bundler and compression. Import
|
|
98
|
-
> only the format you need (for example, `@silurus/ooxml/pptx`) so the other
|
|
99
|
-
> formats can be tree-shaken. The math engine is a **separate entry** whose
|
|
100
|
-
> main-thread chunk is a ~1 KB loader referencing the ~3 MB engine as a
|
|
101
|
-
> **sibling file**, not an inline data URL. The engine is fetched lazily, only
|
|
102
|
-
> when a document contains equations, and only if you imported
|
|
103
|
-
> `@silurus/ooxml/math` and passed it to a viewer (see
|
|
104
|
-
> [Rendering equations](#rendering-equations)). Never import the `math` entry
|
|
105
|
-
> and the loader chunk never enters your graph at all.
|
|
106
|
-
>
|
|
107
|
-
> The 3-D chart and Region Map renderers follow the same dependency-injection
|
|
108
|
-
> boundary: import and pass only the optional renderer modules an application
|
|
109
|
-
> needs. Their implementations are not eagerly loaded or evaluated in main
|
|
110
|
-
> mode. Worker mode fetches a self-contained render-worker asset that includes
|
|
111
|
-
> the worker-side built-ins, so consumer bundlers can copy it safely.
|
|
74
|
+
> **Bundle size note**: the package is ESM-only (`.mjs`). npm's *Unpacked Size*
|
|
75
|
+
> includes every entry and optional asset, so it is not the size of a
|
|
76
|
+
> format-specific application graph. See the current production measurements on
|
|
77
|
+
> the stable [Bundle size](https://ooxml.silurus.dev/bundle-size/) page. Import
|
|
78
|
+
> only the format and optional renderer entries your application needs. In main
|
|
79
|
+
> mode, MathJax, ChartEx, 3-D and Region Map implementations remain outside the
|
|
80
|
+
> graph unless imported; the separately loaded worker asset is self-contained.
|
|
112
81
|
|
|
113
82
|
---
|
|
114
83
|
|
|
@@ -209,22 +178,30 @@ shapes / text boxes the same way.)
|
|
|
209
178
|
|
|
210
179
|
### Optional chart renderers
|
|
211
180
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
181
|
+
Classic DrawingML 2-D chart families are included in every format entry.
|
|
182
|
+
Microsoft ChartEx, model-space 3-D charts and offline country-level Region Maps
|
|
183
|
+
are separate entries. Inject them once in the same load options object as
|
|
184
|
+
`math`; omitting a renderer keeps it out of the ordinary render path. The
|
|
185
|
+
built-in renderers work in both main and worker modes. Without `chartEx`,
|
|
186
|
+
ChartEx families show the standard unsupported-chart placeholder. Without
|
|
187
|
+
`threeD`, 3-D chart groups
|
|
216
188
|
fall back to their canonical 2-D family. Without `regionMap`, Region Maps show
|
|
217
|
-
the standard unsupported-chart placeholder.
|
|
189
|
+
the standard unsupported-chart placeholder. The code-size boundary applies to
|
|
190
|
+
the default main-mode application graph. The separately loaded render-worker
|
|
191
|
+
asset stays self-contained for broad bundler compatibility and therefore
|
|
192
|
+
contains its built-in optional renderer implementations.
|
|
218
193
|
|
|
219
194
|
```typescript
|
|
220
195
|
import { XlsxViewer } from '@silurus/ooxml/xlsx';
|
|
221
196
|
import { threeD } from '@silurus/ooxml/three-d';
|
|
222
197
|
import { regionMap } from '@silurus/ooxml/region-map';
|
|
198
|
+
import { chartEx } from '@silurus/ooxml/chart-ex';
|
|
223
199
|
|
|
224
200
|
const container = document.getElementById('xlsx-container') as HTMLElement;
|
|
225
201
|
const workbookViewer = new XlsxViewer(container, {
|
|
226
202
|
threeD,
|
|
227
203
|
regionMap,
|
|
204
|
+
chartEx,
|
|
228
205
|
mode: 'worker',
|
|
229
206
|
});
|
|
230
207
|
await workbookViewer.load('/workbook-with-advanced-charts.xlsx');
|
|
@@ -272,10 +249,10 @@ Notes:
|
|
|
272
249
|
- The canvas-target methods (`renderSlide(canvas)`, `renderPage(canvas)`,
|
|
273
250
|
`renderViewport(canvas)`) are unavailable in worker mode — use the `*ToBitmap`
|
|
274
251
|
variants instead.
|
|
275
|
-
- The built-in math, 3-D chart, and Region Map renderers work in both
|
|
276
|
-
through the same `math`, `threeD`, and `regionMap` options.
|
|
277
|
-
objects are main-realm code and therefore use the feature's
|
|
278
|
-
fallback in `mode: 'worker'`.
|
|
252
|
+
- The built-in math, ChartEx, 3-D chart, and Region Map renderers work in both
|
|
253
|
+
modes through the same `math`, `chartEx`, `threeD`, and `regionMap` options.
|
|
254
|
+
Custom renderer objects are main-realm code and therefore use the feature's
|
|
255
|
+
documented fallback in `mode: 'worker'`.
|
|
279
256
|
- A DOCX document that requires browser-only OpenType vertical-glyph selection
|
|
280
257
|
automatically uses effective main mode for correct shaping. Read
|
|
281
258
|
`document.mode` after loading when your integration needs to observe this
|
|
@@ -526,38 +503,33 @@ flowchart TB
|
|
|
526
503
|
end
|
|
527
504
|
|
|
528
505
|
subgraph browser["🌐 Runtime (Browser)"]
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
XB --> XR["renderer.ts\n〈Canvas 2D — main thread〉"]
|
|
541
|
-
end
|
|
542
|
-
subgraph pptx_pkg["@silurus/ooxml · pptx"]
|
|
543
|
-
PV["PptxViewer"] --> PP["PptxPresentation"]
|
|
544
|
-
PP --> PW["worker.ts\n〈Web Worker — parse only〉"]
|
|
545
|
-
PP --> PR["renderer.ts\n〈Canvas 2D — main thread〉"]
|
|
546
|
-
end
|
|
547
|
-
DR -. uses .-> CORE
|
|
548
|
-
XR -. uses .-> CORE
|
|
549
|
-
PR -. uses .-> CORE
|
|
506
|
+
VIEWER["DOCX / XLSX / PPTX Viewer"] --> ENGINE["format headless engine"]
|
|
507
|
+
ENGINE -->|mode: main| PARSE["parser worker\n〈WASM parse〉"]
|
|
508
|
+
PARSE --> MODEL["validated document model"]
|
|
509
|
+
MODEL --> MAIN["layout + Canvas paint\n〈main thread〉"]
|
|
510
|
+
ENGINE -->|mode: worker| RENDER_WORKER["render-worker.ts\n〈WASM parse + layout + paint〉"]
|
|
511
|
+
RENDER_WORKER --> BITMAP["ImageBitmap"]
|
|
512
|
+
MAIN --> CANVAS["<canvas>"]
|
|
513
|
+
BITMAP --> CANVAS
|
|
514
|
+
CORE["@silurus/ooxml-core\nshared layout and paint primitives"]
|
|
515
|
+
MAIN -. uses .-> CORE
|
|
516
|
+
RENDER_WORKER -. uses .-> CORE
|
|
550
517
|
end
|
|
551
518
|
|
|
552
|
-
docx_wasm -->
|
|
553
|
-
xlsx_wasm -->
|
|
554
|
-
pptx_wasm -->
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
519
|
+
docx_wasm --> PARSE
|
|
520
|
+
xlsx_wasm --> PARSE
|
|
521
|
+
pptx_wasm --> PARSE
|
|
522
|
+
docx_wasm --> RENDER_WORKER
|
|
523
|
+
xlsx_wasm --> RENDER_WORKER
|
|
524
|
+
pptx_wasm --> RENDER_WORKER
|
|
558
525
|
```
|
|
559
526
|
|
|
560
|
-
All three formats
|
|
527
|
+
All three formats use the same public mode boundary. In the default `main` mode,
|
|
528
|
+
WASM parsing runs in a Worker and the validated model is laid out and painted on
|
|
529
|
+
the main thread. In `worker` mode, parsing, layout and Canvas paint run in a
|
|
530
|
+
render Worker, which returns an `ImageBitmap` for presentation. Built-in optional
|
|
531
|
+
renderers use the same injection options in both modes. `@silurus/ooxml-core`
|
|
532
|
+
owns the layout, paint and type primitives shared by DOCX, XLSX and PPTX.
|
|
561
533
|
|
|
562
534
|
### Key files
|
|
563
535
|
|
|
@@ -566,10 +538,11 @@ All three formats follow the same shape: the worker parses the `.docx` / `.xlsx`
|
|
|
566
538
|
| `packages/docx/parser/src/lib.rs` | Rust WASM parser — DOCX ZIP → `Document` JSON |
|
|
567
539
|
| `packages/xlsx/parser/src/lib.rs` | Rust WASM parser — XLSX ZIP → `Workbook` JSON |
|
|
568
540
|
| `packages/pptx/parser/src/lib.rs` | Rust WASM parser — PPTX ZIP → `Presentation` JSON |
|
|
569
|
-
| `packages/docx/src/renderer.ts` | Canvas 2D rendering
|
|
570
|
-
| `packages/xlsx/src/renderer.ts` | Canvas 2D rendering
|
|
571
|
-
| `packages/pptx/src/renderer.ts` | Canvas 2D rendering
|
|
572
|
-
| `packages/*/src/worker.ts` |
|
|
541
|
+
| `packages/docx/src/renderer.ts` | DOCX Canvas 2D rendering and text layout |
|
|
542
|
+
| `packages/xlsx/src/renderer.ts` | XLSX Canvas 2D viewport rendering |
|
|
543
|
+
| `packages/pptx/src/renderer.ts` | PPTX Canvas 2D rendering |
|
|
544
|
+
| `packages/*/src/worker.ts` | Main-mode parser Worker entry |
|
|
545
|
+
| `packages/*/src/render-worker.ts` | Worker-mode parser, layout and Canvas paint entry |
|
|
573
546
|
| `packages/*/src/viewer.ts` | Public Viewer API — canvas lifecycle, navigation |
|
|
574
547
|
| `packages/core/src/index.ts` | Cross-format primitives — chart renderer, shape helpers, `autoResize`, shared types |
|
|
575
548
|
|
|
@@ -628,6 +601,7 @@ file without uploading it.
|
|
|
628
601
|
| | Table indent (`w:tblInd`, §17.4.50) | ✅ |
|
|
629
602
|
| | Right-to-left table column order (`w:bidiVisual`, §17.4.1) | ✅ |
|
|
630
603
|
| | Charts (embedded DrawingML `c:chart` — bar / line / area / pie / doughnut / radar / scatter, via the shared core chart renderer; data labels honour `dLblPos`, §21.2.2.48) | ✅ |
|
|
604
|
+
| | ChartEx (waterfall / histogram / Pareto / funnel / box & whisker / treemap / sunburst) | ✅ opt-in |
|
|
631
605
|
| | Math equations (OMML `m:oMath` / `m:oMathPara`, rendered via MathJax — opt-in `@silurus/ooxml/math`) | ✅ |
|
|
632
606
|
| | Images (inline and anchored, with text wrap) | ✅ |
|
|
633
607
|
| | SVG images (`asvg:svgBlip` MS-2016 extension — vector drawn from the embedded `.svg`, raster fallback) | ✅ |
|
|
@@ -639,8 +613,8 @@ file without uploading it.
|
|
|
639
613
|
| | Page-number formats (`w:pgNumType` restart / format §17.6.12; PAGE `\*` switches — decimal / roman / letter / hex / ordinal-dash / hebrew2 / koreanLegal, §17.18.59) | ✅ |
|
|
640
614
|
| | Field date/time pictures (`TIME` / `DATE` field `\@` format, §17.16.5.72 / .16) | ✅ |
|
|
641
615
|
| | `w:snapToGrid` opt-out of the document grid (§17.3.1.32) | ✅ |
|
|
642
|
-
| | Track changes (`w:ins` / `w:del` —
|
|
643
|
-
| | Comments —
|
|
616
|
+
| | Track changes (§17.13.5 `w:ins` / `w:del` / `w:moveFrom` / `w:moveTo`) — body-story revision records are available as data; rendering projects the accepted final state, with deletions and moved-away text hidden | ✅ |
|
|
617
|
+
| | Comments (§17.13.4) — opt-in margin balloons (`comments: true`): commented ranges tinted, threaded replies via `commentsExtended.xml`, resolved threads hidden, click-to-select stacking; also available as data (`doc.comments`, `doc.commentAnchorRanges()`) | ✅ |
|
|
644
618
|
| | Markdown export (`DocxDocument.toMarkdown()` — headings, lists, tables, footnotes / comments) | ✅ |
|
|
645
619
|
| | Mail merge fields | ❌ Not planned |
|
|
646
620
|
| **Interaction** | Text selection (transparent overlay, native copy) | ✅ |
|
|
@@ -687,6 +661,7 @@ file without uploading it.
|
|
|
687
661
|
| | Drawing shapes / text boxes (`xdr:sp`, `xdr:txBody` — 186 preset geometries via the shared engine, with `avLst` adjust handles) | ✅ |
|
|
688
662
|
| | Math equations in shapes (OMML `m:oMath` / `m:oMathPara` in `xdr:txBody`, incl. `a14:m` / `mc:AlternateContent`; rendered via MathJax — opt-in `@silurus/ooxml/math`) | ✅ |
|
|
689
663
|
| | Charts (bar, line, area, pie, doughnut, radar, scatter / bubble) | ✅ |
|
|
664
|
+
| | ChartEx (waterfall / histogram / Pareto / funnel / box & whisker / treemap / sunburst) | ✅ opt-in |
|
|
690
665
|
| | Chart markers (circle / square / diamond / triangle / x / plus / star / dot / dash, per-point `<c:dPt>` overrides; markers-only scatter series draw a marker legend key) | ✅ |
|
|
691
666
|
| | Chart data labels (`<c:dLbl>` per-point with CELLRANGE / VALUE / SERIESNAME / CATEGORYNAME field references, position `l`/`r`/`t`/`b`/`ctr`/`outEnd`) | ✅ |
|
|
692
667
|
| | Chart error bars (`<c:errBars>` X/Y direction, `cust` / `fixedVal` / `stdErr` / `stdDev` / `percentage`, dashed/styled lines) | ✅ |
|
|
@@ -695,7 +670,7 @@ file without uploading it.
|
|
|
695
670
|
| **Advanced** | Conditional formatting (`cellIs`, `colorScale`, `dataBar`, `iconSet`, `top10`, `aboveAverage`) | ✅ |
|
|
696
671
|
| | Slicers (static, Office 2010 extension) | ✅ |
|
|
697
672
|
| | Pivot tables (saved worksheet output renders unchanged; read-only metadata is exposed. Refresh, recalculation, filtering, restructuring, and interactivity are unsupported) | ⚠️ Partial |
|
|
698
|
-
| | Cell comments / notes (classic `xl/commentsN.xml` + Office-365 threaded comments — red triangle indicator + author / text via the worksheet model,
|
|
673
|
+
| | Cell comments / notes (classic `xl/commentsN.xml` + Office-365 threaded comments — red triangle indicator + author / text via the worksheet model; pointer or keyboard users can open the popup, with a polite screen-reader status) | ✅ |
|
|
699
674
|
| | Data validation (rules via the worksheet model; `list`-type dropdown arrow on the selected cell whose click opens a panel showing the allowed values — read-only) | ✅ |
|
|
700
675
|
| | Markdown export (`XlsxWorkbook.toMarkdown()` — each sheet as a `## SheetName` pipe table) | ✅ |
|
|
701
676
|
| **Interaction** | Cell selection (single / range / row / column / all / multiple areas; `setSelection('B2:D5')` or canonical structured state) | ✅ |
|
|
@@ -732,12 +707,12 @@ file without uploading it.
|
|
|
732
707
|
| | Groups (`grpSp`) with nested transforms | ✅ |
|
|
733
708
|
| | Connectors (`cxnSp`) | ✅ |
|
|
734
709
|
| | Tables (`tbl` in `graphicFrame`) | ✅ |
|
|
735
|
-
| | Charts (bar, line, area, radar
|
|
710
|
+
| | Charts (bar, line, area, radar) | ✅ |
|
|
736
711
|
| | Charts (pie, doughnut) | ✅ |
|
|
737
712
|
| | Charts (scatter — `scatterStyle` marker / line / smooth variants) | ✅ |
|
|
738
713
|
| | Charts (bubble — `bubbleSize` per-point area scaling) | ✅ |
|
|
739
|
-
| | Charts (combo — bar
|
|
740
|
-
| |
|
|
714
|
+
| | Charts (ordered classic combo groups — observed bar/line/area, scatter/bubble, and stock/line combinations; unsupported mixes fail closed) | ✅ |
|
|
715
|
+
| | ChartEx (waterfall / histogram / Pareto / funnel / box & whisker / treemap / sunburst) | ✅ opt-in |
|
|
741
716
|
| | Charts (stock — high / low / close candlesticks) | ✅ |
|
|
742
717
|
| | SmartArt (renders the PowerPoint-saved drawing layout `dsp:drawing`, or a staged fallback to a text list when no drawing part is present; no native diagram layout engine) | ✅ |
|
|
743
718
|
| | OLE embedded objects (`p:oleObj` — the baked preview `p:pic` is drawn; the embedded app is not run) | ✅ |
|
|
@@ -807,6 +782,7 @@ file without uploading it.
|
|
|
807
782
|
| | lumMod / lumOff / alpha transforms | ✅ |
|
|
808
783
|
| **Interaction** | Text selection (transparent overlay, native copy) | ✅ |
|
|
809
784
|
| | Bounded text/element selection context (`getSelectionContext()`, element selection, master/layout/slide provenance, main + worker) | ✅ |
|
|
785
|
+
| | Comments — opt-in slide-side cards (`comments: true`), authored target markers and highlights, replies and resolved state; also available per slide through the presentation model | ✅ |
|
|
810
786
|
| | In-document find (`findText` / `findNext` / `findPrev` / `clearFind` — matches tagged with slide) | ✅ |
|
|
811
787
|
| | Runtime zoom (`getScale` / `setScale` / `fitWidth` / `fitPage`) | ✅ |
|
|
812
788
|
| | Clickable hyperlinks (`onHyperlinkClick`; internal slide-jump navigation) | ✅ |
|