pptx-react-viewer 3.5.4 → 3.6.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/CHANGELOG.md +6 -0
- package/dist/{AiChatPanel-LPZWDNVU.js → AiChatPanel-LEOEDIW2.js} +25 -25
- package/dist/AiChatPanel-LEOEDIW2.js.br +0 -0
- package/dist/AiChatPanel-LEOEDIW2.js.gz +0 -0
- package/dist/{AiChatPanel-CCJNQGER.mjs → AiChatPanel-WRQGJJVD.mjs} +4 -4
- package/dist/AiChatPanel-WRQGJJVD.mjs.br +0 -0
- package/dist/AiChatPanel-WRQGJJVD.mjs.gz +0 -0
- package/dist/{Area3DChartScene-LJCWBNQ3.js → Area3DChartScene-3TJ2GTGI.js} +2 -2
- package/dist/Area3DChartScene-3TJ2GTGI.js.br +0 -0
- package/dist/Area3DChartScene-3TJ2GTGI.js.gz +0 -0
- package/dist/{Area3DChartScene-P6YM6ZL7.mjs → Area3DChartScene-SJC2ZB6R.mjs} +1 -1
- package/dist/Area3DChartScene-SJC2ZB6R.mjs.br +2 -0
- package/dist/Area3DChartScene-SJC2ZB6R.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-7DNQ4X5T.js → Bar3DChartScene-2ZGOMOZO.js} +2 -2
- package/dist/Bar3DChartScene-2ZGOMOZO.js.br +0 -0
- package/dist/Bar3DChartScene-2ZGOMOZO.js.gz +0 -0
- package/dist/{Bar3DChartScene-DIVOJURZ.mjs → Bar3DChartScene-SPER4LQA.mjs} +1 -1
- package/dist/Bar3DChartScene-SPER4LQA.mjs.br +0 -0
- package/dist/Bar3DChartScene-SPER4LQA.mjs.gz +0 -0
- package/dist/{Line3DChartScene-UF6DHP36.js → Line3DChartScene-42FYFGLU.js} +2 -2
- package/dist/Line3DChartScene-42FYFGLU.js.br +0 -0
- package/dist/Line3DChartScene-42FYFGLU.js.gz +0 -0
- package/dist/{Line3DChartScene-ZZVNUKIJ.mjs → Line3DChartScene-FH3YHPXE.mjs} +1 -1
- package/dist/Line3DChartScene-FH3YHPXE.mjs.br +2 -0
- package/dist/Line3DChartScene-FH3YHPXE.mjs.gz +0 -0
- package/dist/{Model3DScene-XXMAAKBR.mjs → Model3DScene-2BCR2YYD.mjs} +1 -1
- package/dist/Model3DScene-2BCR2YYD.mjs.br +0 -0
- package/dist/Model3DScene-2BCR2YYD.mjs.gz +0 -0
- package/dist/{Model3DScene-C7MZ22DH.js → Model3DScene-EIU2GVUZ.js} +2 -2
- package/dist/Model3DScene-EIU2GVUZ.js.br +0 -0
- package/dist/Model3DScene-EIU2GVUZ.js.gz +0 -0
- package/dist/{PieChart3DScene-7LX3IL2Q.mjs → PieChart3DScene-QFQUJFDP.mjs} +1 -1
- package/dist/PieChart3DScene-QFQUJFDP.mjs.br +0 -0
- package/dist/PieChart3DScene-QFQUJFDP.mjs.gz +0 -0
- package/dist/{PieChart3DScene-N2Y25VG5.js → PieChart3DScene-VQOHZPHI.js} +2 -2
- package/dist/{PieChart3DScene-N2Y25VG5.js.br → PieChart3DScene-VQOHZPHI.js.br} +0 -0
- package/dist/PieChart3DScene-VQOHZPHI.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-ADA7NUIW.mjs → SurfaceChart3DScene-CGXMRBCL.mjs} +1 -1
- package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-WXJHYOGJ.js → SurfaceChart3DScene-FTVXZN6O.js} +2 -2
- package/dist/{SurfaceChart3DScene-WXJHYOGJ.js.br → SurfaceChart3DScene-FTVXZN6O.js.br} +0 -0
- package/dist/SurfaceChart3DScene-FTVXZN6O.js.gz +0 -0
- package/dist/{chunk-UTMTXJGM.js → chunk-7VPDHSWF.js} +330 -349
- package/dist/chunk-7VPDHSWF.js.br +0 -0
- package/dist/chunk-7VPDHSWF.js.gz +0 -0
- package/dist/{chunk-YQOK4E2A.js → chunk-AL2KLPOJ.js} +32381 -22178
- package/dist/chunk-AL2KLPOJ.js.br +0 -0
- package/dist/chunk-AL2KLPOJ.js.gz +0 -0
- package/dist/{chunk-IWQSAKPM.mjs → chunk-FG5VQFWP.mjs} +193 -71
- package/dist/chunk-FG5VQFWP.mjs.br +0 -0
- package/dist/chunk-FG5VQFWP.mjs.gz +0 -0
- package/dist/{chunk-UTIMT5CZ.js → chunk-MZI4DG3S.js} +12 -0
- package/dist/chunk-MZI4DG3S.js.br +0 -0
- package/dist/{chunk-UTIMT5CZ.js.gz → chunk-MZI4DG3S.js.gz} +0 -0
- package/dist/{chunk-HHJZK26I.js → chunk-NFOOONND.js} +1359 -1237
- package/dist/chunk-NFOOONND.js.br +0 -0
- package/dist/chunk-NFOOONND.js.gz +0 -0
- package/dist/{chunk-IVPT3U5C.mjs → chunk-T3V5FBXJ.mjs} +29 -1
- package/dist/chunk-T3V5FBXJ.mjs.br +0 -0
- package/dist/chunk-T3V5FBXJ.mjs.gz +0 -0
- package/dist/{chunk-JCJ3EPG6.mjs → chunk-TGCSZXOG.mjs} +12 -0
- package/dist/chunk-TGCSZXOG.mjs.br +0 -0
- package/dist/{chunk-JCJ3EPG6.mjs.gz → chunk-TGCSZXOG.mjs.gz} +0 -0
- package/dist/{chunk-EVVWCF2M.mjs → chunk-VYNICQ4O.mjs} +58 -37
- package/dist/chunk-VYNICQ4O.mjs.br +0 -0
- package/dist/chunk-VYNICQ4O.mjs.gz +0 -0
- package/dist/{chunk-U52MKWVA.mjs → chunk-WX7AFFBZ.mjs} +142 -161
- package/dist/chunk-WX7AFFBZ.mjs.br +0 -0
- package/dist/chunk-WX7AFFBZ.mjs.gz +0 -0
- package/dist/{chunk-2FMQ7M3L.js → chunk-ZHSBMG37.js} +490 -469
- package/dist/chunk-ZHSBMG37.js.br +0 -0
- package/dist/chunk-ZHSBMG37.js.gz +0 -0
- package/dist/{chunk-NM652EZS.mjs → chunk-ZUSYUWOV.mjs} +32358 -22178
- package/dist/chunk-ZUSYUWOV.mjs.br +0 -0
- package/dist/chunk-ZUSYUWOV.mjs.gz +0 -0
- package/dist/{chunk-UOMFINNJ.js → chunk-ZWPHUPL4.js} +33 -5
- package/dist/chunk-ZWPHUPL4.js.br +0 -0
- package/dist/chunk-ZWPHUPL4.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +599 -33
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +610 -33
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/{useViewerBuildingBlocks-f6oNGKMX.d.ts → useViewerBuildingBlocks-C8F_4Pzb.d.ts} +3 -1
- package/dist/useViewerBuildingBlocks-C8F_4Pzb.d.ts.map +1 -0
- package/dist/viewer/index.d.ts +552 -33
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-CCJNQGER.mjs.br +0 -0
- package/dist/AiChatPanel-CCJNQGER.mjs.gz +0 -0
- package/dist/AiChatPanel-LPZWDNVU.js.br +0 -0
- package/dist/AiChatPanel-LPZWDNVU.js.gz +0 -0
- package/dist/Area3DChartScene-LJCWBNQ3.js.br +0 -0
- package/dist/Area3DChartScene-LJCWBNQ3.js.gz +0 -0
- package/dist/Area3DChartScene-P6YM6ZL7.mjs.br +0 -0
- package/dist/Area3DChartScene-P6YM6ZL7.mjs.gz +0 -0
- package/dist/Bar3DChartScene-7DNQ4X5T.js.br +0 -1
- package/dist/Bar3DChartScene-7DNQ4X5T.js.gz +0 -0
- package/dist/Bar3DChartScene-DIVOJURZ.mjs.br +0 -0
- package/dist/Bar3DChartScene-DIVOJURZ.mjs.gz +0 -0
- package/dist/Line3DChartScene-UF6DHP36.js.br +0 -0
- package/dist/Line3DChartScene-UF6DHP36.js.gz +0 -0
- package/dist/Line3DChartScene-ZZVNUKIJ.mjs.br +0 -0
- package/dist/Line3DChartScene-ZZVNUKIJ.mjs.gz +0 -0
- package/dist/Model3DScene-C7MZ22DH.js.br +0 -0
- package/dist/Model3DScene-C7MZ22DH.js.gz +0 -0
- package/dist/Model3DScene-XXMAAKBR.mjs.br +0 -0
- package/dist/Model3DScene-XXMAAKBR.mjs.gz +0 -0
- package/dist/PieChart3DScene-7LX3IL2Q.mjs.br +0 -0
- package/dist/PieChart3DScene-7LX3IL2Q.mjs.gz +0 -0
- package/dist/PieChart3DScene-N2Y25VG5.js.gz +0 -0
- package/dist/SurfaceChart3DScene-ADA7NUIW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-ADA7NUIW.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-WXJHYOGJ.js.gz +0 -0
- package/dist/chunk-2FMQ7M3L.js.br +0 -0
- package/dist/chunk-2FMQ7M3L.js.gz +0 -0
- package/dist/chunk-EVVWCF2M.mjs.br +0 -0
- package/dist/chunk-EVVWCF2M.mjs.gz +0 -0
- package/dist/chunk-HHJZK26I.js.br +0 -0
- package/dist/chunk-HHJZK26I.js.gz +0 -0
- package/dist/chunk-IVPT3U5C.mjs.br +0 -0
- package/dist/chunk-IVPT3U5C.mjs.gz +0 -0
- package/dist/chunk-IWQSAKPM.mjs.br +0 -0
- package/dist/chunk-IWQSAKPM.mjs.gz +0 -0
- package/dist/chunk-JCJ3EPG6.mjs.br +0 -0
- package/dist/chunk-NM652EZS.mjs.br +0 -0
- package/dist/chunk-NM652EZS.mjs.gz +0 -0
- package/dist/chunk-U52MKWVA.mjs.br +0 -0
- package/dist/chunk-U52MKWVA.mjs.gz +0 -0
- package/dist/chunk-UOMFINNJ.js.br +0 -0
- package/dist/chunk-UOMFINNJ.js.gz +0 -0
- package/dist/chunk-UTIMT5CZ.js.br +0 -0
- package/dist/chunk-UTMTXJGM.js.br +0 -0
- package/dist/chunk-UTMTXJGM.js.gz +0 -0
- package/dist/chunk-YQOK4E2A.js.br +0 -0
- package/dist/chunk-YQOK4E2A.js.gz +0 -0
- package/dist/useViewerBuildingBlocks-f6oNGKMX.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -63,6 +63,12 @@ interface PptxAction {
|
|
|
63
63
|
soundRId?: string;
|
|
64
64
|
/** Resolved media target path for the optional click sound. */
|
|
65
65
|
soundPath?: string;
|
|
66
|
+
/**
|
|
67
|
+
* `CT_Hyperlink/@endSnd` (ECMA-376 20.1.2.2.23): PowerPoint's Action
|
|
68
|
+
* Settings "Stop previous sound" checkbox. Round-tripped for now (issue
|
|
69
|
+
* G14); not yet wired into playback.
|
|
70
|
+
*/
|
|
71
|
+
endSnd?: boolean;
|
|
66
72
|
}
|
|
67
73
|
//#endregion
|
|
68
74
|
//#region src/core/types/common.d.ts
|
|
@@ -85,7 +91,7 @@ interface PptxAction {
|
|
|
85
91
|
* // => "wavy" — one of: sng | dbl | heavy | dotted | dash | wavy | none | ...
|
|
86
92
|
* ```
|
|
87
93
|
*/
|
|
88
|
-
type UnderlineStyle = 'sng' | 'dbl' | 'heavy' | 'dotted' | 'dottedHeavy' | 'dash' | 'dashHeavy' | 'dashLong' | 'dashLongHeavy' | 'dotDash' | 'dotDashHeavy' | 'dotDotDash' | 'dotDotDashHeavy' | 'wavy' | 'wavyHeavy' | 'wavyDbl' | 'none';
|
|
94
|
+
type UnderlineStyle = 'sng' | 'dbl' | 'heavy' | 'dotted' | 'dottedHeavy' | 'dash' | 'dashHeavy' | 'dashLong' | 'dashLongHeavy' | 'dotDash' | 'dotDashHeavy' | 'dotDotDash' | 'dotDotDashHeavy' | 'wavy' | 'wavyHeavy' | 'wavyDbl' | 'words' | 'none';
|
|
89
95
|
/**
|
|
90
96
|
* Connector connection point reference — links a connector endpoint to a
|
|
91
97
|
* specific shape on the slide.
|
|
@@ -420,6 +426,16 @@ interface CustomGeometryRawData {
|
|
|
420
426
|
cxnLstXml?: unknown;
|
|
421
427
|
/** Raw `a:rect` XML content (text rectangle). */
|
|
422
428
|
rectXml?: unknown;
|
|
429
|
+
/**
|
|
430
|
+
* Raw `a:pathLst` XML content: every `a:path`'s formula-bearing `a:pt`
|
|
431
|
+
* x/y attributes, `a:arcTo` params, `a:close`, and per-path `@w`/`@h`/
|
|
432
|
+
* `@fill`/`@stroke`/`@extrusionOk`, preserved verbatim (not the
|
|
433
|
+
* parse-time-resolved numbers in `customGeometryPaths`). Lets a live
|
|
434
|
+
* `shapeAdjustments` drag re-evaluate the outline against the CURRENT
|
|
435
|
+
* guide values instead of the ones baked in at parse time; see
|
|
436
|
+
* `geometry/custom-geometry-live-eval.ts`.
|
|
437
|
+
*/
|
|
438
|
+
pathLstXml?: unknown;
|
|
423
439
|
}
|
|
424
440
|
/**
|
|
425
441
|
* XY-style adjustment handle (`a:ahXY`) on a custom geometry.
|
|
@@ -1177,6 +1193,21 @@ interface ShapeStyle {
|
|
|
1177
1193
|
dagFillOverlayColor?: string;
|
|
1178
1194
|
/** Fill overlay tint opacity (0-1), from the overlay fill colour's alpha. */
|
|
1179
1195
|
dagFillOverlayOpacity?: number;
|
|
1196
|
+
/** Fill overlay blend mode from a direct `a:effectLst/a:fillOverlay/@blend`. */
|
|
1197
|
+
shapeFillOverlayBlend?: 'over' | 'mult' | 'screen' | 'darken' | 'lighten';
|
|
1198
|
+
/**
|
|
1199
|
+
* Fill overlay tint colour (hex `#RRGGBB`) from a direct
|
|
1200
|
+
* `a:effectLst/a:fillOverlay`'s `a:solidFill`/`a:gradFill`.
|
|
1201
|
+
*/
|
|
1202
|
+
shapeFillOverlayColor?: string;
|
|
1203
|
+
/** Fill overlay tint opacity (0-1), from the overlay fill colour's alpha. */
|
|
1204
|
+
shapeFillOverlayOpacity?: number;
|
|
1205
|
+
/** Original source `a:fillOverlay` node, preserved for lossless surgical updates. */
|
|
1206
|
+
fillOverlayXml?: XmlObject;
|
|
1207
|
+
/** Resolved source fill-overlay colour used to detect colour edits. */
|
|
1208
|
+
shapeFillOverlayOriginalColor?: string;
|
|
1209
|
+
/** Source fill-overlay opacity used to detect alpha edits. */
|
|
1210
|
+
shapeFillOverlayOriginalOpacity?: number;
|
|
1180
1211
|
/** `<a:lnRef @idx>` — 1-based index into the theme's lnStyleLst. */
|
|
1181
1212
|
lnRefIdx?: number;
|
|
1182
1213
|
/** Raw XML colour child of `<a:lnRef>` (e.g. `<a:schemeClr>` with transforms). */
|
|
@@ -1433,7 +1464,15 @@ interface TextStyle {
|
|
|
1433
1464
|
*/
|
|
1434
1465
|
colorXml?: XmlObject;
|
|
1435
1466
|
align?: 'left' | 'center' | 'right' | 'justify' | 'justLow' | 'dist' | 'thaiDist';
|
|
1436
|
-
|
|
1467
|
+
/**
|
|
1468
|
+
* Vertical text-box anchor (`a:bodyPr/@anchor`, `ST_TextAnchoringType`).
|
|
1469
|
+
* `distributed`/`justified` (`dist`/`just`) stretch line spacing so the
|
|
1470
|
+
* paragraph block fills the box's full vertical extent, distinct from true
|
|
1471
|
+
* centering (`middle`/`ctr`); both approximate to a middle-anchored render
|
|
1472
|
+
* (see `text-body-layout.ts`) since CSS has no native vertical-justify
|
|
1473
|
+
* primitive, but round-trip losslessly through parse/save.
|
|
1474
|
+
*/
|
|
1475
|
+
vAlign?: 'top' | 'middle' | 'bottom' | 'distributed' | 'justified';
|
|
1437
1476
|
/** Right-to-left paragraph/run direction (`a:pPr/@rtl`, `a:rPr/@rtl`). */
|
|
1438
1477
|
rtl?: boolean;
|
|
1439
1478
|
/** Body text direction (`a:bodyPr/@vert`).
|
|
@@ -2254,6 +2293,50 @@ interface PptxChartAxisLabelFormatting {
|
|
|
2254
2293
|
noMultiLevelLabels?: boolean;
|
|
2255
2294
|
}
|
|
2256
2295
|
//#endregion
|
|
2296
|
+
//#region src/core/types/chart-ex.d.ts
|
|
2297
|
+
/**
|
|
2298
|
+
* Chart-formatting types that don't fit an existing, owned type module for
|
|
2299
|
+
* this wave (`types/chart.ts` is owned elsewhere; see its own module doc).
|
|
2300
|
+
* Despite the file name, `PptxChartDataPointPicture` is a CLASSIC (`c:`)
|
|
2301
|
+
* construct, not ChartEx (`cx:`) - it landed here only because it needs a
|
|
2302
|
+
* home outside `chart.ts`.
|
|
2303
|
+
*
|
|
2304
|
+
* @module pptx-types/chart-ex
|
|
2305
|
+
*/
|
|
2306
|
+
/** `c:dPt/c:pictureOptions/c:pictureFormat/@val` (ST_PictureFormat). */
|
|
2307
|
+
type PptxChartPictureFormat = 'stretch' | 'stack' | 'stackScale';
|
|
2308
|
+
/**
|
|
2309
|
+
* Per-data-point picture-fill flags (`c:dPt/c:pictureOptions`): PowerPoint's
|
|
2310
|
+
* "Picture or texture fill" with "Stack"/"Stretch" semantics on a bar/column
|
|
2311
|
+
* data point, distinct from the point's plain `c:spPr` solid/gradient fill.
|
|
2312
|
+
*
|
|
2313
|
+
* The flags parse purely (`parseChartDataPointPicture` in
|
|
2314
|
+
* `utils/chart-datapoint-serializer.ts`); {@link imageUrl} is a separate,
|
|
2315
|
+
* later addition populated by the runtime (`PptxHandlerRuntimeChartParsing.ts`)
|
|
2316
|
+
* once the sibling `c:spPr/a:blipFill/a:blip`'s `r:embed`/`r:link` is resolved
|
|
2317
|
+
* against the chart part's relationships, since that resolution needs zip/file
|
|
2318
|
+
* access the pure parser does not have.
|
|
2319
|
+
*/
|
|
2320
|
+
interface PptxChartDataPointPicture {
|
|
2321
|
+
/** Apply the picture to the front face of a 3-D bar/column (`c:applyToFront`). */
|
|
2322
|
+
applyToFront?: boolean;
|
|
2323
|
+
/** Apply the picture to the side faces of a 3-D bar/column (`c:applyToSides`). */
|
|
2324
|
+
applyToSides?: boolean;
|
|
2325
|
+
/** Apply the picture to the end face of a 3-D bar/column (`c:applyToEnd`). */
|
|
2326
|
+
applyToEnd?: boolean;
|
|
2327
|
+
/** Stretch, or stack repeated tiles at their natural size (or scaled). */
|
|
2328
|
+
pictureFormat?: PptxChartPictureFormat;
|
|
2329
|
+
/** Height, in points, of one repeated picture tile for "stack"/"stackScale" (`c:pictureStackUnit/@val`). */
|
|
2330
|
+
pictureStackUnit?: number;
|
|
2331
|
+
/**
|
|
2332
|
+
* Resolved picture source (a `data:`/`blob:` URL) for the point's sibling
|
|
2333
|
+
* `c:spPr/a:blipFill/a:blip`. Populated by the runtime after relationship
|
|
2334
|
+
* resolution (C2-G9 render half); absent until then, and absent entirely
|
|
2335
|
+
* when the point has no picture fill or the image could not be resolved.
|
|
2336
|
+
*/
|
|
2337
|
+
imageUrl?: string;
|
|
2338
|
+
}
|
|
2339
|
+
//#endregion
|
|
2257
2340
|
//#region src/core/types/chart-pivot-format.d.ts
|
|
2258
2341
|
interface PptxChartPivotFormat {
|
|
2259
2342
|
index: number;
|
|
@@ -2317,6 +2400,15 @@ interface PptxChartPageSetup {
|
|
|
2317
2400
|
horizontalDpi?: number;
|
|
2318
2401
|
verticalDpi?: number;
|
|
2319
2402
|
copies?: number;
|
|
2403
|
+
/**
|
|
2404
|
+
* Custom paper height, used when {@link paperSize} is `0`
|
|
2405
|
+
* (`c:pageSetup/@paperHeight`, ST_PositiveUniversalMeasure, e.g. `"297mm"`).
|
|
2406
|
+
* Kept as the raw measure string rather than converted, matching how the
|
|
2407
|
+
* schema stores it.
|
|
2408
|
+
*/
|
|
2409
|
+
paperHeight?: string;
|
|
2410
|
+
/** Custom paper width, used when {@link paperSize} is `0` (`@paperWidth`). */
|
|
2411
|
+
paperWidth?: string;
|
|
2320
2412
|
/** Original leaf retained for foreign attributes. */
|
|
2321
2413
|
rawXml?: unknown;
|
|
2322
2414
|
}
|
|
@@ -2348,6 +2440,65 @@ interface PptxChartProtection {
|
|
|
2348
2440
|
rawXml?: XmlObject;
|
|
2349
2441
|
}
|
|
2350
2442
|
//#endregion
|
|
2443
|
+
//#region src/core/types/chart-style-definition.d.ts
|
|
2444
|
+
/**
|
|
2445
|
+
* Typed subset of an Office 2013+ chart-style part (`ppt/charts/style#.xml`,
|
|
2446
|
+
* root element `cs:chartStyle`, relationship type
|
|
2447
|
+
* `.../2012/relationships/chartStyle`).
|
|
2448
|
+
*
|
|
2449
|
+
* PowerPoint's Design-tab "Chart Styles" gallery (1-48) writes `c:style/@val`
|
|
2450
|
+
* on the chart part itself (already modeled as `PptxChartStyle.styleId`) and,
|
|
2451
|
+
* for most styles, this SEPARATE part spelling out the per-element
|
|
2452
|
+
* `cs:lnRef`/`cs:fillRef`/`cs:effectRef`/`cs:fontRef`/`cs:defRPr` defaults a
|
|
2453
|
+
* chart element falls back to when its own XML leaves it unstyled. Without
|
|
2454
|
+
* parsing this part, styles beyond the one PowerPoint happens to have baked
|
|
2455
|
+
* inline are visually inert.
|
|
2456
|
+
*
|
|
2457
|
+
* @module pptx-types/chart-style-definition
|
|
2458
|
+
*/
|
|
2459
|
+
/**
|
|
2460
|
+
* One styled chart-element entry (`cs:title`, `cs:axisTitle`,
|
|
2461
|
+
* `cs:categoryAxis`, ...). Colours are resolved to hex at parse time (scheme
|
|
2462
|
+
* colour references via `cs:fontRef`/`cs:lnRef`/`cs:fillRef` are already
|
|
2463
|
+
* flattened against the theme, matching how classic chart colours resolve
|
|
2464
|
+
* elsewhere in this codebase). Fields are present only when the source XML
|
|
2465
|
+
* carried a value for them.
|
|
2466
|
+
*/
|
|
2467
|
+
interface PptxChartStylePartEntry {
|
|
2468
|
+
/** Text size in points, from `cs:defRPr/@sz` (hundredths of a point). */
|
|
2469
|
+
fontSize?: number;
|
|
2470
|
+
bold?: boolean;
|
|
2471
|
+
italic?: boolean;
|
|
2472
|
+
/** Resolved text colour: `cs:defRPr/a:solidFill`, or `cs:fontRef`'s scheme colour. */
|
|
2473
|
+
color?: string;
|
|
2474
|
+
/** Resolved line colour from `cs:lnRef`'s scheme colour reference. */
|
|
2475
|
+
lineColor?: string;
|
|
2476
|
+
/** Line width in points, when directly authored (rare; most styles reference a theme line style by index only). */
|
|
2477
|
+
lineWidth?: number;
|
|
2478
|
+
/** Resolved fill colour from `cs:fillRef`'s scheme colour reference. */
|
|
2479
|
+
fillColor?: string;
|
|
2480
|
+
}
|
|
2481
|
+
/**
|
|
2482
|
+
* Parsed per-element style defaults from a chart-style part. Only the
|
|
2483
|
+
* elements this viewer actually renders distinct defaults for are modeled;
|
|
2484
|
+
* elements PowerPoint's style gallery also styles (data table, trendlines,
|
|
2485
|
+
* up/down bars, ...) are out of scope until a renderer needs them.
|
|
2486
|
+
*/
|
|
2487
|
+
interface PptxChartStyleDefinition {
|
|
2488
|
+
title?: PptxChartStylePartEntry;
|
|
2489
|
+
axisTitle?: PptxChartStylePartEntry;
|
|
2490
|
+
categoryAxis?: PptxChartStylePartEntry;
|
|
2491
|
+
valueAxis?: PptxChartStylePartEntry;
|
|
2492
|
+
legend?: PptxChartStylePartEntry;
|
|
2493
|
+
dataLabel?: PptxChartStylePartEntry;
|
|
2494
|
+
dataPoint?: PptxChartStylePartEntry;
|
|
2495
|
+
dataPointLine?: PptxChartStylePartEntry;
|
|
2496
|
+
gridlineMajor?: PptxChartStylePartEntry;
|
|
2497
|
+
gridlineMinor?: PptxChartStylePartEntry;
|
|
2498
|
+
chartArea?: PptxChartStylePartEntry;
|
|
2499
|
+
plotArea?: PptxChartStylePartEntry;
|
|
2500
|
+
}
|
|
2501
|
+
//#endregion
|
|
2351
2502
|
//#region src/core/types/chart-user-shapes.d.ts
|
|
2352
2503
|
/**
|
|
2353
2504
|
* Types for chart drawing-overlay shapes (`c:userShapes`).
|
|
@@ -2386,8 +2537,16 @@ interface PptxChartUserShapeParagraph {
|
|
|
2386
2537
|
* `absSizeAnchor` the extent is {@link ext} in EMU.
|
|
2387
2538
|
*/
|
|
2388
2539
|
interface PptxChartUserShape {
|
|
2389
|
-
/**
|
|
2390
|
-
|
|
2540
|
+
/**
|
|
2541
|
+
* Shape kind: text/preset shape, connector, picture, a group of the
|
|
2542
|
+
* above (`grpSp`, flattened: each grouped child becomes its own entry
|
|
2543
|
+
* reusing the anchor's own bounding box, an approximation since the
|
|
2544
|
+
* group's internal chOff/chExt transform is not applied), or a bare
|
|
2545
|
+
* placeholder for a `graphicFrame` anchor child (deep content such as a
|
|
2546
|
+
* nested chart or table is out of scope; it only keeps the anchor's
|
|
2547
|
+
* space accounted for instead of the whole overlay disappearing).
|
|
2548
|
+
*/
|
|
2549
|
+
kind: 'sp' | 'cxnSp' | 'pic' | 'grpSp' | 'graphicFrame';
|
|
2391
2550
|
/** Anchor kind that positioned the shape. */
|
|
2392
2551
|
anchor: 'rel' | 'abs';
|
|
2393
2552
|
/** Top-left corner as chart-relative fractions (0-1). */
|
|
@@ -2619,6 +2778,8 @@ interface PptxChartDataPoint {
|
|
|
2619
2778
|
marker?: PptxChartMarker;
|
|
2620
2779
|
/** Render a bubble-chart point with a 3-D appearance. */
|
|
2621
2780
|
bubble3D?: boolean;
|
|
2781
|
+
/** Per-point picture-fill flags (`c:dPt/c:pictureOptions`). */
|
|
2782
|
+
picture?: PptxChartDataPointPicture;
|
|
2622
2783
|
}
|
|
2623
2784
|
/** Schema values accepted by `c:dLblPos`. */
|
|
2624
2785
|
type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
|
|
@@ -2637,6 +2798,26 @@ interface PptxChartDataLabel {
|
|
|
2637
2798
|
text?: string;
|
|
2638
2799
|
separator?: string;
|
|
2639
2800
|
showLeaderLines?: boolean;
|
|
2801
|
+
/**
|
|
2802
|
+
* Per-label number-format override (`c:dLbl/c:numFmt/@formatCode`), taking
|
|
2803
|
+
* precedence over the chart-level {@link PptxChartDataLabelOptions.numberFormat}
|
|
2804
|
+
* and the series' own {@link PptxChartSeries.numberFormat} when set.
|
|
2805
|
+
*/
|
|
2806
|
+
numberFormat?: string;
|
|
2807
|
+
/**
|
|
2808
|
+
* Manually dragged label position (`c:dLbl/c:layout/c:manualLayout`), the
|
|
2809
|
+
* same CT_ManualLayout shape used for title/legend/plotArea. `null`
|
|
2810
|
+
* explicitly clears a drag back to the automatic position.
|
|
2811
|
+
*/
|
|
2812
|
+
layout?: PptxChartManualLayout | null;
|
|
2813
|
+
/**
|
|
2814
|
+
* This label's own font (`c:dLbl/c:txPr/a:p/a:pPr/a:defRPr`, or ChartEx
|
|
2815
|
+
* `cx:dataLabel/cx:txPr`), taking precedence over the chart/series-level
|
|
2816
|
+
* {@link PptxChartDataLabelOptions.txPr} when set. Reuses the legend
|
|
2817
|
+
* entry's flat text-style shape since both are the same
|
|
2818
|
+
* `.../a:p/a:pPr/a:defRPr` default-run-property style.
|
|
2819
|
+
*/
|
|
2820
|
+
txPr?: PptxChartLegendTextStyle;
|
|
2640
2821
|
}
|
|
2641
2822
|
/** Axis number format. */
|
|
2642
2823
|
interface PptxChartAxisNumFmt {
|
|
@@ -2651,6 +2832,16 @@ interface PptxChartDisplayUnitsLabel {
|
|
|
2651
2832
|
layout?: PptxChartManualLayout | null;
|
|
2652
2833
|
/** Label shape formatting. `null` removes `c:spPr`. */
|
|
2653
2834
|
spPr?: PptxChartShapeProps | null;
|
|
2835
|
+
/**
|
|
2836
|
+
* The label's own run font, when it carries a distinct `txPr` from the
|
|
2837
|
+
* axis's own (ChartEx `cx:unitsLabel/cx:txPr`; classic `c:dispUnitsLbl`
|
|
2838
|
+
* has no equivalent child, so this is only ever populated from a ChartEx
|
|
2839
|
+
* axis).
|
|
2840
|
+
*/
|
|
2841
|
+
fontFamily?: string;
|
|
2842
|
+
fontSize?: number;
|
|
2843
|
+
fontBold?: boolean;
|
|
2844
|
+
fontColor?: string;
|
|
2654
2845
|
}
|
|
2655
2846
|
/** Axis formatting for category, value, or date axes. */
|
|
2656
2847
|
interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
|
|
@@ -2755,8 +2946,27 @@ interface PptxChartWaterfallOptions {
|
|
|
2755
2946
|
/** Whether connector lines are visible between adjacent bars. */
|
|
2756
2947
|
connectorLines?: boolean;
|
|
2757
2948
|
}
|
|
2949
|
+
/**
|
|
2950
|
+
* A single breakpoint in a ChartEx colour-by-value scale
|
|
2951
|
+
* (`cx:valueColorPositions/cx:colorPosition`). `kind` selects which of
|
|
2952
|
+
* CT_ColorPosition's union members was authored; `value` is absent for
|
|
2953
|
+
* `min`/`max` (they are implicit endpoints) and required otherwise.
|
|
2954
|
+
*/
|
|
2955
|
+
interface PptxCxValueColorPosition {
|
|
2956
|
+
kind: 'min' | 'max' | 'number' | 'percent';
|
|
2957
|
+
value?: number;
|
|
2958
|
+
}
|
|
2758
2959
|
/** Office 2016 ChartEx geographic series dimensions and layout options. */
|
|
2759
2960
|
interface PptxChartRegionMapOptions {
|
|
2961
|
+
/**
|
|
2962
|
+
* Colour-by-value gradient stops (`cx:valueColors/cx:colors/cx:color`),
|
|
2963
|
+
* resolved to hex, 2 or 3 entries (matching PowerPoint's two- and
|
|
2964
|
+
* three-colour scale UI). Paired index-for-index with
|
|
2965
|
+
* {@link valueColorPositions} when both are present.
|
|
2966
|
+
*/
|
|
2967
|
+
valueColors?: string[];
|
|
2968
|
+
/** Gradient breakpoints for {@link valueColors} (`cx:valueColorPositions`). */
|
|
2969
|
+
valueColorPositions?: PptxCxValueColorPosition[];
|
|
2760
2970
|
/** Optional provider entity identifiers aligned with categories and values. */
|
|
2761
2971
|
entityIds?: string[];
|
|
2762
2972
|
/** Original `cx:pt/@idx` values for category points. */
|
|
@@ -2921,6 +3131,20 @@ interface PptxChartDataLabelOptions {
|
|
|
2921
3131
|
* Omit to let PowerPoint use the type default.
|
|
2922
3132
|
*/
|
|
2923
3133
|
position?: PptxChartDataLabelPosition;
|
|
3134
|
+
/**
|
|
3135
|
+
* Chart-level number-format override (`c:dLbls/c:numFmt/@formatCode`),
|
|
3136
|
+
* applied to every label of the series/chart-type unless a per-point
|
|
3137
|
+
* {@link PptxChartDataLabel.numberFormat} overrides it.
|
|
3138
|
+
*/
|
|
3139
|
+
numberFormat?: string;
|
|
3140
|
+
/**
|
|
3141
|
+
* Default font for every label at this level (`c:dLbls/c:txPr`, or
|
|
3142
|
+
* ChartEx `cx:dataLabels/cx:txPr`), overridden by a per-point
|
|
3143
|
+
* {@link PptxChartDataLabel.txPr} when set. `c:dLbls` at the chart-type
|
|
3144
|
+
* level and the series level cascade the same way the show flags do
|
|
3145
|
+
* (point > series > chart-type).
|
|
3146
|
+
*/
|
|
3147
|
+
txPr?: PptxChartLegendTextStyle;
|
|
2924
3148
|
}
|
|
2925
3149
|
/** Typed text defaults for a single chart legend entry. */
|
|
2926
3150
|
interface PptxChartLegendTextStyle {
|
|
@@ -2977,6 +3201,17 @@ interface PptxChartStyle {
|
|
|
2977
3201
|
hasDataLabels?: boolean;
|
|
2978
3202
|
/** Chart-level data-label content/position options (when `hasDataLabels`). */
|
|
2979
3203
|
dataLabels?: PptxChartDataLabelOptions;
|
|
3204
|
+
/**
|
|
3205
|
+
* Font styling for the chart's own title (`c:title/c:txPr`), edited via
|
|
3206
|
+
* `applyChartTitleStyleToXml` (chart-title-style-serializer.ts). Distinct
|
|
3207
|
+
* from an axis title's styling (`PptxChartAxisFormatting.fontFamily` etc.).
|
|
3208
|
+
*/
|
|
3209
|
+
titleFontFamily?: string;
|
|
3210
|
+
titleFontSize?: number;
|
|
3211
|
+
titleFontBold?: boolean;
|
|
3212
|
+
titleFontColor?: string;
|
|
3213
|
+
/** Title text-box fill/border (`c:title/c:spPr`). `null` removes it. */
|
|
3214
|
+
titleSpPr?: PptxChartShapeProps | null;
|
|
2980
3215
|
}
|
|
2981
3216
|
/**
|
|
2982
3217
|
* External data source reference for a chart (c:externalData).
|
|
@@ -3357,6 +3592,38 @@ interface PptxChartData {
|
|
|
3357
3592
|
* `attribute → value` map for round-trip fidelity.
|
|
3358
3593
|
*/
|
|
3359
3594
|
clrMapOvr?: Record<string, string>;
|
|
3595
|
+
/**
|
|
3596
|
+
* Whether the chart's own cached numeric values use the 1904 date epoch
|
|
3597
|
+
* (`c:chartSpace/c:date1904/@val`). Independent of, and authoritative over,
|
|
3598
|
+
* any embedded workbook's `workbookPr/@date1904` (a chart can lack an
|
|
3599
|
+
* embedded workbook entirely, or its cache can legitimately differ from the
|
|
3600
|
+
* workbook's current setting). Absent when the source XML omits the
|
|
3601
|
+
* element, in which case the 1900 system applies (the schema default).
|
|
3602
|
+
*/
|
|
3603
|
+
date1904?: boolean;
|
|
3604
|
+
/**
|
|
3605
|
+
* PowerPoint's "Rounded corners" chart-area option
|
|
3606
|
+
* (`c:chartSpace/c:roundedCorners/@val`, default `false`). Absent when the
|
|
3607
|
+
* source XML omits the element.
|
|
3608
|
+
*/
|
|
3609
|
+
roundedCorners?: boolean;
|
|
3610
|
+
/**
|
|
3611
|
+
* 3-D chart depth/spacing along the series axis, as a percentage
|
|
3612
|
+
* (`c:gapDepth/@val`, `ST_GapAmount`, 0 through 500). Legal on
|
|
3613
|
+
* `bar3D`/`area3D`/`line3D`/`surface` chart-type containers only. Read-only
|
|
3614
|
+
* for rendering, matching {@link barGapWidth}/{@link barOverlap}: save
|
|
3615
|
+
* round-trips it via the preserved chart XML rather than a typed edit path.
|
|
3616
|
+
*/
|
|
3617
|
+
gapDepth?: number;
|
|
3618
|
+
/**
|
|
3619
|
+
* Parsed Office 2013+ chart-style part (`ppt/charts/style#.xml`,
|
|
3620
|
+
* `cs:chartStyle`), providing per-element font/line/fill defaults for
|
|
3621
|
+
* whichever built-in "Chart Styles" gallery entry ({@link PptxChartStyle.styleId})
|
|
3622
|
+
* is active. Absent when the chart has no such part (common for
|
|
3623
|
+
* automation-authored charts, where PowerPoint still implies style 2's
|
|
3624
|
+
* look via its own bundled defaults).
|
|
3625
|
+
*/
|
|
3626
|
+
chartStyleDefinition?: PptxChartStyleDefinition;
|
|
3360
3627
|
}
|
|
3361
3628
|
//#endregion
|
|
3362
3629
|
//#region src/core/types/image.d.ts
|
|
@@ -3880,6 +4147,52 @@ interface MediaCaptionTrack {
|
|
|
3880
4147
|
isDefault?: boolean;
|
|
3881
4148
|
}
|
|
3882
4149
|
//#endregion
|
|
4150
|
+
//#region src/core/types/smart-art-chrome.d.ts
|
|
4151
|
+
/**
|
|
4152
|
+
* Background / outline extracted from `dgm:bg` and `dgm:whole`.
|
|
4153
|
+
*
|
|
4154
|
+
* @example
|
|
4155
|
+
* ```ts
|
|
4156
|
+
* const chrome: PptxSmartArtChrome = {
|
|
4157
|
+
* backgroundColor: "#F0F0F0",
|
|
4158
|
+
* outlineColor: "#333333",
|
|
4159
|
+
* outlineWidth: 1,
|
|
4160
|
+
* };
|
|
4161
|
+
* // => satisfies PptxSmartArtChrome
|
|
4162
|
+
* ```
|
|
4163
|
+
*/
|
|
4164
|
+
interface PptxSmartArtChrome {
|
|
4165
|
+
/**
|
|
4166
|
+
* Background fill colour (hex). When the real `dgm:bg` fill is a gradient
|
|
4167
|
+
* or pattern (see {@link PptxSmartArtChrome.backgroundFillXml}), this is an
|
|
4168
|
+
* APPROXIMATION (the gradient's first stop, or the pattern's foreground
|
|
4169
|
+
* colour) for a consumer that only wants one display colour, not the full fill.
|
|
4170
|
+
*/
|
|
4171
|
+
backgroundColor?: string;
|
|
4172
|
+
/**
|
|
4173
|
+
* Raw `dgm:bg` fill XML, present only when the background is a gradient or
|
|
4174
|
+
* pattern fill (a solid fill is fully captured by {@link PptxSmartArtChrome.backgroundColor}
|
|
4175
|
+
* alone). Round-trip only: `smartart-save-chrome.ts` re-emits this verbatim
|
|
4176
|
+
* instead of flattening the fill to a solid colour on save.
|
|
4177
|
+
*/
|
|
4178
|
+
backgroundFillXml?: PptxSmartArtRawBackgroundFill;
|
|
4179
|
+
/** Outline stroke colour (hex). */
|
|
4180
|
+
outlineColor?: string;
|
|
4181
|
+
/** Outline stroke width in points. */
|
|
4182
|
+
outlineWidth?: number;
|
|
4183
|
+
}
|
|
4184
|
+
/**
|
|
4185
|
+
* A `dgm:bg` fill this viewer doesn't fully model as first-class chrome
|
|
4186
|
+
* (gradient or pattern), preserved verbatim for round-trip. See
|
|
4187
|
+
* {@link PptxSmartArtChrome.backgroundFillXml}.
|
|
4188
|
+
*/
|
|
4189
|
+
interface PptxSmartArtRawBackgroundFill {
|
|
4190
|
+
/** Local element name of the fill under `dgm:bg` (`gradFill` or `pattFill`). */
|
|
4191
|
+
localName: 'gradFill' | 'pattFill';
|
|
4192
|
+
/** The fill element's own attributes/children, as parsed. */
|
|
4193
|
+
xml: XmlObject;
|
|
4194
|
+
}
|
|
4195
|
+
//#endregion
|
|
3883
4196
|
//#region src/core/types/smart-art-constraint-rules.d.ts
|
|
3884
4197
|
type PptxSmartArtConstraintRelationship = 'self' | 'ch' | 'des';
|
|
3885
4198
|
type PptxSmartArtConstraintOperator = 'none' | 'equ' | 'gte' | 'lte';
|
|
@@ -3978,6 +4291,14 @@ interface PptxSmartArtLayoutNodeShape {
|
|
|
3978
4291
|
adjustments?: PptxSmartArtShapeAdjustment[];
|
|
3979
4292
|
/** `dgm:shape/@hideGeom`: the shape is present only to size text, never painted. */
|
|
3980
4293
|
hideGeometry?: boolean;
|
|
4294
|
+
/**
|
|
4295
|
+
* `dgm:shape/@lkTxEntry` (CT_Shape, boolean, default false): this node is a
|
|
4296
|
+
* decorative shape that should mirror its paired content node's text
|
|
4297
|
+
* rather than always rendering blank. See `smartart-layout-interpreter-
|
|
4298
|
+
* pyramid.ts`'s `arrangePyramid`, the interpreter's one existing
|
|
4299
|
+
* synthesized-decorative-shape call site.
|
|
4300
|
+
*/
|
|
4301
|
+
lkTxEntry?: boolean;
|
|
3981
4302
|
}
|
|
3982
4303
|
/** Identity and ordering metadata from DiagramML CT_LayoutNode. */
|
|
3983
4304
|
interface PptxSmartArtLayoutNode {
|
|
@@ -4205,6 +4526,13 @@ interface PptxSmartArtNode {
|
|
|
4205
4526
|
* generic cycled palette (see `applySmartArtRoleColors`).
|
|
4206
4527
|
*/
|
|
4207
4528
|
styleRole?: string;
|
|
4529
|
+
/**
|
|
4530
|
+
* `dgm:prSet/@coherent3DOff` (`CT_ElemPropSet`) resolved from the node's
|
|
4531
|
+
* paired presentation point: when true, this node opts out of the
|
|
4532
|
+
* diagram's overall coherent-3D scene rotation (a `dgm:scene3d`/`dgm:sp3d`
|
|
4533
|
+
* quick-style variation) applied to every other node.
|
|
4534
|
+
*/
|
|
4535
|
+
coherent3DOff?: boolean;
|
|
4208
4536
|
/**
|
|
4209
4537
|
* Per-run text + run-properties for the node's first paragraph, captured at
|
|
4210
4538
|
* parse time. When the joined run text still equals {@link text} (the node
|
|
@@ -4252,9 +4580,29 @@ interface PptxSmartArtColorListMetadata {
|
|
|
4252
4580
|
method?: PptxSmartArtColorApplicationMethod;
|
|
4253
4581
|
hueDirection?: PptxSmartArtHueDirection;
|
|
4254
4582
|
}
|
|
4583
|
+
/**
|
|
4584
|
+
* A quick-style label's `a:lnRef`/`a:fillRef`/`a:effectRef`/`a:fontRef`
|
|
4585
|
+
* (`CT_ShapeStyle`, the same complex type an ordinary shape's `p:style`
|
|
4586
|
+
* uses), resolved against the theme's `fmtScheme` at parse time instead of
|
|
4587
|
+
* the coarse subtle/moderate/intense enum ({@link PptxSmartArtQuickStyle.effectIntensity}).
|
|
4588
|
+
* Only populated when a theme format scheme was available when the quick
|
|
4589
|
+
* style was parsed. See G13 in the 2026-09 diagram audit.
|
|
4590
|
+
*/
|
|
4591
|
+
interface PptxSmartArtResolvedStyleRef {
|
|
4592
|
+
fillColor?: string;
|
|
4593
|
+
fillMode?: 'solid' | 'gradient' | 'pattern' | 'none' | 'theme';
|
|
4594
|
+
strokeColor?: string;
|
|
4595
|
+
strokeWidth?: number;
|
|
4596
|
+
/** `a:effectRef`'s theme-resolved outer shadow colour, when the style has one. */
|
|
4597
|
+
shadowColor?: string;
|
|
4598
|
+
/** `a:fontRef`'s theme-resolved typeface (`+mn-lt`/`+mj-lt` -> the theme's actual font). */
|
|
4599
|
+
fontTypeface?: string;
|
|
4600
|
+
}
|
|
4255
4601
|
/** CT_StyleLabel metadata from a quick-style definition. */
|
|
4256
4602
|
interface PptxSmartArtQuickStyleLabel {
|
|
4257
4603
|
name: string;
|
|
4604
|
+
/** Theme-resolved `dgm:style` refs for this label's role, when available. */
|
|
4605
|
+
resolvedStyle?: PptxSmartArtResolvedStyleRef;
|
|
4258
4606
|
}
|
|
4259
4607
|
/** CT_CTStyleLabel metadata from a color-transform definition. */
|
|
4260
4608
|
interface PptxSmartArtColorStyleLabel {
|
|
@@ -4517,27 +4865,6 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
|
|
|
4517
4865
|
textFrameWidth?: number;
|
|
4518
4866
|
textFrameHeight?: number;
|
|
4519
4867
|
}
|
|
4520
|
-
/**
|
|
4521
|
-
* Background / outline extracted from `dgm:bg` and `dgm:whole`.
|
|
4522
|
-
*
|
|
4523
|
-
* @example
|
|
4524
|
-
* ```ts
|
|
4525
|
-
* const chrome: PptxSmartArtChrome = {
|
|
4526
|
-
* backgroundColor: "#F0F0F0",
|
|
4527
|
-
* outlineColor: "#333333",
|
|
4528
|
-
* outlineWidth: 1,
|
|
4529
|
-
* };
|
|
4530
|
-
* // => satisfies PptxSmartArtChrome
|
|
4531
|
-
* ```
|
|
4532
|
-
*/
|
|
4533
|
-
interface PptxSmartArtChrome {
|
|
4534
|
-
/** Background fill colour (hex). */
|
|
4535
|
-
backgroundColor?: string;
|
|
4536
|
-
/** Outline stroke colour (hex). */
|
|
4537
|
-
outlineColor?: string;
|
|
4538
|
-
/** Outline stroke width in points. */
|
|
4539
|
-
outlineWidth?: number;
|
|
4540
|
-
}
|
|
4541
4868
|
/**
|
|
4542
4869
|
* Presentation layout variables from `dgm:prSet/dgm:presLayoutVars` (data model)
|
|
4543
4870
|
* or `dgm:varLst` (layout definition defaults).
|
|
@@ -4994,6 +5321,22 @@ interface PptxTableData {
|
|
|
4994
5321
|
bandColCycle?: number;
|
|
4995
5322
|
/** Right-to-left table layout from `a:tblPr/@rtl`. */
|
|
4996
5323
|
rtl?: boolean;
|
|
5324
|
+
/**
|
|
5325
|
+
* `a:tblPr`'s OWN fill (`CT_TableProperties` §21.1.3.15's
|
|
5326
|
+
* `EG_FillProperties`), independent of any `a:tblStyleLst`-referenced style
|
|
5327
|
+
* or that style's `a:tblBg`. Applied as the lowest-priority fill layer,
|
|
5328
|
+
* beneath the table style's `wholeTbl` fill. Real PowerPoint decks route
|
|
5329
|
+
* table appearance through `tableStyleId` instead, so this mainly matters
|
|
5330
|
+
* for non-PowerPoint authoring tools (issue G6).
|
|
5331
|
+
*/
|
|
5332
|
+
tableFill?: ParsedTableStyleFill;
|
|
5333
|
+
/**
|
|
5334
|
+
* Whether `a:tblPr` carries its own `a:effectLst`/`a:effectDag`,
|
|
5335
|
+
* independent of the referenced table style. Presence-only: the concrete
|
|
5336
|
+
* effect is not yet rendered, and the raw XML round-trips separately via
|
|
5337
|
+
* whatever preserves `a:tblPr`'s unrecognised children (issue G6).
|
|
5338
|
+
*/
|
|
5339
|
+
tableEffects?: boolean;
|
|
4997
5340
|
}
|
|
4998
5341
|
/**
|
|
4999
5342
|
* A single fill reference within a table style section.
|
|
@@ -5115,7 +5458,7 @@ interface ParsedTableStyleText {
|
|
|
5115
5458
|
* A single border side within a table style's `a:tcStyle/a:tcBdr`.
|
|
5116
5459
|
*
|
|
5117
5460
|
* Corresponds to one of `a:left`, `a:right`, `a:top`, `a:bottom`,
|
|
5118
|
-
* `a:insideH`, `a:insideV`, `a:tl2br`, `a:
|
|
5461
|
+
* `a:insideH`, `a:insideV`, `a:tl2br`, `a:tr2bl` (each a
|
|
5119
5462
|
* `CT_ThemeableLineStyle` wrapping an `a:ln`).
|
|
5120
5463
|
*
|
|
5121
5464
|
* @example
|
|
@@ -5155,8 +5498,16 @@ interface ParsedTableStyleBorders {
|
|
|
5155
5498
|
insideV?: ParsedTableStyleBorder;
|
|
5156
5499
|
/** Top-left to bottom-right diagonal. */
|
|
5157
5500
|
tl2br?: ParsedTableStyleBorder;
|
|
5158
|
-
/**
|
|
5159
|
-
|
|
5501
|
+
/**
|
|
5502
|
+
* Top-right to bottom-left diagonal (`a:tr2bl`, ECMA-376's
|
|
5503
|
+
* `CT_TableCellBorderStyle` sequence: left/right/top/bottom/insideH/
|
|
5504
|
+
* insideV/tl2br/tr2bl). The field keeps its historical `bl2tr` spelling
|
|
5505
|
+
* only in the sense that it names the same geometric anti-diagonal line
|
|
5506
|
+
* (top-right-to-bottom-left and bottom-left-to-top-right describe one
|
|
5507
|
+
* undirected diagonal); the parser accepts the real `a:tr2bl` element and,
|
|
5508
|
+
* leniently, a legacy `a:bl2tr` this app previously wrote (issue G4).
|
|
5509
|
+
*/
|
|
5510
|
+
tr2bl?: ParsedTableStyleBorder;
|
|
5160
5511
|
}
|
|
5161
5512
|
/**
|
|
5162
5513
|
* Table background style (CT_TableBackgroundStyle, ECMA-376 §21.1.3.7).
|
|
@@ -5224,6 +5575,26 @@ interface ParsedTableStyleEntry {
|
|
|
5224
5575
|
swCellText?: ParsedTableStyleText;
|
|
5225
5576
|
neCellText?: ParsedTableStyleText;
|
|
5226
5577
|
nwCellText?: ParsedTableStyleText;
|
|
5578
|
+
/**
|
|
5579
|
+
* Per-role 3D bevel + lighting from `a:tcStyle/a:cell3D` (CT_Cell3D),
|
|
5580
|
+
* distinct from the per-cell `a:tcPr/a:cell3D` {@link PptxTableCellStyle}
|
|
5581
|
+
* already supports. None of PowerPoint's 74 built-in gallery styles use
|
|
5582
|
+
* this (0 hits in the built-in catalogue), so it only matters for a
|
|
5583
|
+
* hand-authored or third-party table style.
|
|
5584
|
+
*/
|
|
5585
|
+
wholeTblCell3D?: PptxTableCell3D;
|
|
5586
|
+
firstRowCell3D?: PptxTableCell3D;
|
|
5587
|
+
lastRowCell3D?: PptxTableCell3D;
|
|
5588
|
+
firstColCell3D?: PptxTableCell3D;
|
|
5589
|
+
lastColCell3D?: PptxTableCell3D;
|
|
5590
|
+
band1HCell3D?: PptxTableCell3D;
|
|
5591
|
+
band2HCell3D?: PptxTableCell3D;
|
|
5592
|
+
band1VCell3D?: PptxTableCell3D;
|
|
5593
|
+
band2VCell3D?: PptxTableCell3D;
|
|
5594
|
+
seCellCell3D?: PptxTableCell3D;
|
|
5595
|
+
swCellCell3D?: PptxTableCell3D;
|
|
5596
|
+
neCellCell3D?: PptxTableCell3D;
|
|
5597
|
+
nwCellCell3D?: PptxTableCell3D;
|
|
5227
5598
|
}
|
|
5228
5599
|
/**
|
|
5229
5600
|
* Map of GUID → table style entry.
|
|
@@ -5246,6 +5617,38 @@ interface ParsedTableStyleEntry {
|
|
|
5246
5617
|
type ParsedTableStyleMap = Record<string, ParsedTableStyleEntry>;
|
|
5247
5618
|
//#endregion
|
|
5248
5619
|
//#region src/core/types/elements.d.ts
|
|
5620
|
+
/**
|
|
5621
|
+
* Accessibility metadata from `p:cNvPr/a:extLst`'s "Mark as decorative"
|
|
5622
|
+
* vendor extension (issue G16). PowerPoint's Alt Text pane writes
|
|
5623
|
+
* `a:ext[@uri='{C183D7F6-B498-43B3-948B-1728B52AA6E4}']/adec:decorative
|
|
5624
|
+
* val="1"` when a shape or image is marked decorative; mixed into the
|
|
5625
|
+
* element variants whose `p:cNvPr` that pane covers.
|
|
5626
|
+
*/
|
|
5627
|
+
interface PptxAccessibilityProperties {
|
|
5628
|
+
/**
|
|
5629
|
+
* Whether the element is marked decorative. When true, alt text /
|
|
5630
|
+
* aria-label / Markdown export should skip describing the element even
|
|
5631
|
+
* when {@link PptxImageProperties.altText} (or similar) is present.
|
|
5632
|
+
*/
|
|
5633
|
+
isDecorative?: boolean;
|
|
5634
|
+
}
|
|
5635
|
+
/**
|
|
5636
|
+
* `a:cNvPicPr/@preferRelativeResize` (issue G13), a picture-only non-visual
|
|
5637
|
+
* property distinct from `a:picLocks`.
|
|
5638
|
+
*/
|
|
5639
|
+
interface PptxPictureNonVisualProperties {
|
|
5640
|
+
/**
|
|
5641
|
+
* `a:cNvPicPr/@preferRelativeResize` (ST_Boolean, defaults to `true` when
|
|
5642
|
+
* absent). Controls whether a picture's crop rectangle is reinterpreted
|
|
5643
|
+
* relative to the picture's ORIGINAL dimensions or its CURRENT
|
|
5644
|
+
* (already-resized) dimensions when it is resized again after being
|
|
5645
|
+
* cropped. Parsed and round-tripped for now; not yet wired into
|
|
5646
|
+
* resize-after-crop arithmetic (this app always uses current-size
|
|
5647
|
+
* semantics, which only diverges from `preferRelativeResize="0"` on a
|
|
5648
|
+
* second resize after a crop).
|
|
5649
|
+
*/
|
|
5650
|
+
preferRelativeResize?: boolean;
|
|
5651
|
+
}
|
|
5249
5652
|
/**
|
|
5250
5653
|
* A text box — a plain rectangle containing text, typically with no
|
|
5251
5654
|
* visible fill or stroke.
|
|
@@ -5279,7 +5682,7 @@ interface TextPptxElement extends PptxElementBase, PptxTextProperties, PptxShape
|
|
|
5279
5682
|
* // => satisfies ShapePptxElement
|
|
5280
5683
|
* ```
|
|
5281
5684
|
*/
|
|
5282
|
-
interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxCustomPathProperties {
|
|
5685
|
+
interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxCustomPathProperties, PptxAccessibilityProperties {
|
|
5283
5686
|
type: 'shape';
|
|
5284
5687
|
}
|
|
5285
5688
|
/**
|
|
@@ -5318,7 +5721,7 @@ interface ConnectorPptxElement extends PptxElementBase, PptxTextProperties, Pptx
|
|
|
5318
5721
|
* // => satisfies ImagePptxElement
|
|
5319
5722
|
* ```
|
|
5320
5723
|
*/
|
|
5321
|
-
interface ImagePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties {
|
|
5724
|
+
interface ImagePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties, PptxAccessibilityProperties, PptxPictureNonVisualProperties {
|
|
5322
5725
|
type: 'image';
|
|
5323
5726
|
}
|
|
5324
5727
|
/**
|
|
@@ -5327,7 +5730,7 @@ interface ImagePptxElement extends PptxElementBase, PptxShapeProperties, PptxCus
|
|
|
5327
5730
|
* Functionally identical to {@link ImagePptxElement} but distinguished by
|
|
5328
5731
|
* the `type` discriminant for semantic clarity.
|
|
5329
5732
|
*/
|
|
5330
|
-
interface PicturePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties {
|
|
5733
|
+
interface PicturePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties, PptxAccessibilityProperties, PptxPictureNonVisualProperties {
|
|
5331
5734
|
type: 'picture';
|
|
5332
5735
|
}
|
|
5333
5736
|
/**
|
|
@@ -5477,6 +5880,14 @@ interface OlePptxElement extends PptxElementBase {
|
|
|
5477
5880
|
* Only meaningful when {@link isLinked} is `true`. ECMA-376 §19.3.1.28.
|
|
5478
5881
|
*/
|
|
5479
5882
|
oleFollowColorScheme?: 'none' | 'full' | 'textAndBackground';
|
|
5883
|
+
/**
|
|
5884
|
+
* `p:link/@updateAutomatic` (`CT_OleObjectLink`, ECMA-376 §19.3.2.4):
|
|
5885
|
+
* whether a LINKED OLE object refreshes automatically from its source
|
|
5886
|
+
* (PowerPoint's Edit Links dialog "Automatic" vs. "Manual" radio buttons).
|
|
5887
|
+
* Only meaningful when {@link isLinked} is `true`. The schema default is
|
|
5888
|
+
* `false`; `undefined` means the source authored no explicit value.
|
|
5889
|
+
*/
|
|
5890
|
+
oleUpdateAutomatic?: boolean;
|
|
5480
5891
|
/** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
|
|
5481
5892
|
extensionXml?: PptxGraphicFrameExtension[];
|
|
5482
5893
|
}
|
|
@@ -6061,12 +6472,50 @@ type PptxAnimationTrigger = 'onClick' | 'onShapeClick' | 'onHover' | 'afterPrevi
|
|
|
6061
6472
|
* is preserved alongside other animations.
|
|
6062
6473
|
*/
|
|
6063
6474
|
type PptxNativeAnimationKind = 'media';
|
|
6475
|
+
/**
|
|
6476
|
+
* `p:spTgt/p:graphicEl` (CT_TLGraphicalObjectBuildElement, ECMA-376 S19.5.34):
|
|
6477
|
+
* identifies exactly which series/category/element of a chart or diagram
|
|
6478
|
+
* build a per-stage effect reveals, when a deck authors one effect per stage
|
|
6479
|
+
* instead of a single staged `p:bldGraphic` reveal.
|
|
6480
|
+
*/
|
|
6481
|
+
interface PptxAnimationGraphicElementTarget {
|
|
6482
|
+
/** Which graphic kind: `p:dgm` (diagram) or `p:chart`. */
|
|
6483
|
+
kind: 'dgm' | 'chart';
|
|
6484
|
+
/** `@_seriesIdx`, 0-based series index, when the target is series-scoped. */
|
|
6485
|
+
seriesIdx?: number;
|
|
6486
|
+
/** `@_categoryIdx`, 0-based category index, when the target is category-scoped. */
|
|
6487
|
+
categoryIdx?: number;
|
|
6488
|
+
/** `@_bldStep` (ST_TLChartBuildStep): `category` / `categoryEl` / `series` / `seriesEl`. */
|
|
6489
|
+
bldStep?: string;
|
|
6490
|
+
}
|
|
6491
|
+
/**
|
|
6492
|
+
* `p:spTgt/p:oleChartEl` (CT_TLOleChartTargetElement, ECMA-376 S19.5.44):
|
|
6493
|
+
* legacy pre-DrawingML OLE Graph chart sub-element targeting.
|
|
6494
|
+
*/
|
|
6495
|
+
interface PptxAnimationOleChartElementTarget {
|
|
6496
|
+
/** `@_type` (ST_TLOleChartSubelementType): entireChart / series / category / ... */
|
|
6497
|
+
subelementType: string;
|
|
6498
|
+
/** `@_lvl`, optional sub-element level. */
|
|
6499
|
+
level?: number;
|
|
6500
|
+
}
|
|
6064
6501
|
/** A target selected by `p:tgtEl` in the PresentationML timing model. */
|
|
6065
6502
|
type PptxAnimationTarget = {
|
|
6066
6503
|
type: 'shape';
|
|
6067
6504
|
shapeId: string;
|
|
6068
6505
|
/** Whether `p:spTgt/p:bg` limits the effect to the shape background. */
|
|
6069
6506
|
backgroundOnly?: boolean;
|
|
6507
|
+
/**
|
|
6508
|
+
* `p:spTgt/p:subSp/@_spid`: the id of a shape NESTED inside the group
|
|
6509
|
+
* named by {@link shapeId} (CT_TLSubShapeId, ECMA-376 S19.5.71).
|
|
6510
|
+
* PowerPoint authors this when a user animates one member of a group
|
|
6511
|
+
* without ungrouping it: `shapeId` stays the outer group's id for
|
|
6512
|
+
* round-trip, but this sub-shape is the real playback target.
|
|
6513
|
+
*/
|
|
6514
|
+
subShapeId?: string;
|
|
6515
|
+
/** `p:spTgt/p:graphicEl`: chart/diagram series/category/element target. */
|
|
6516
|
+
graphicElement?: PptxAnimationGraphicElementTarget;
|
|
6517
|
+
/** `p:spTgt/p:oleChartEl`: legacy OLE chart sub-element target. */
|
|
6518
|
+
oleChartElement?: PptxAnimationOleChartElementTarget;
|
|
6070
6519
|
rawXml?: XmlObject;
|
|
6071
6520
|
} | {
|
|
6072
6521
|
type: 'slide';
|
|
@@ -6446,6 +6895,46 @@ interface PptxNativeAnimation {
|
|
|
6446
6895
|
* PowerPoint that only emit the SMIL-style filter string.
|
|
6447
6896
|
*/
|
|
6448
6897
|
effectFilter?: PptxAnimationEffectFilter;
|
|
6898
|
+
/**
|
|
6899
|
+
* This effect's own `p:cTn/@_id` (a raw OOXML time-node id, not a shape
|
|
6900
|
+
* id). Lets playback resolve a `p:cond/@tn` dependency (see
|
|
6901
|
+
* {@link AnimationCondition.targetTimeNodeId}) against the SPECIFIC node
|
|
6902
|
+
* it names rather than assuming it is always the positionally-previous
|
|
6903
|
+
* effect. Absent when the node carried no `@_id`.
|
|
6904
|
+
*/
|
|
6905
|
+
nodeId?: number;
|
|
6906
|
+
/**
|
|
6907
|
+
* Interpolation mode for this effect's PRIMARY `p:anim`-family behaviour
|
|
6908
|
+
* (the same node {@link keyframes}/{@link attrName} were read from), from
|
|
6909
|
+
* `@_calcmode` (ST_TLAnimateBehaviorCalcMode, ECMA-376 S19.5.2). See
|
|
6910
|
+
* {@link PptxAttributeAnimation.calcMode} for the per-component version.
|
|
6911
|
+
*/
|
|
6912
|
+
calcMode?: 'discrete' | 'lin' | 'fmla';
|
|
6913
|
+
/**
|
|
6914
|
+
* `p:cBhvr/@_additive` (ST_TLBehaviorAdditiveType, ECMA-376 S19.5.4):
|
|
6915
|
+
* controls how this behaviour's value composites with sibling behaviours
|
|
6916
|
+
* driving the same attribute on the same target. `sum` accumulates
|
|
6917
|
+
* (e.g. a combined scale+rotate), `repl`/`base`/`none`/`mult` replace or
|
|
6918
|
+
* otherwise combine. Absent means the OOXML default (`base`).
|
|
6919
|
+
*/
|
|
6920
|
+
cBhvrAdditive?: 'base' | 'sum' | 'repl' | 'mult' | 'none';
|
|
6921
|
+
/**
|
|
6922
|
+
* `p:cBhvr/@_accumulate` (ST_TLBehaviorAccumulateType): `always` means
|
|
6923
|
+
* each `p:cTn/@repeatCount` repeat starts from the PREVIOUS repeat's end
|
|
6924
|
+
* value (e.g. a 3x Spin totals 1080deg instead of replaying 0-360 three
|
|
6925
|
+
* times); `none` (the OOXML default) resets every repeat.
|
|
6926
|
+
*/
|
|
6927
|
+
cBhvrAccumulate?: 'none' | 'always';
|
|
6928
|
+
/**
|
|
6929
|
+
* `p:cBhvr/@_xfrmType` (only meaningful on `p:animMotion`): `point`
|
|
6930
|
+
* (default) or `img`, a legacy compatibility hint. Round-tripped only.
|
|
6931
|
+
*/
|
|
6932
|
+
cBhvrXfrmType?: 'point' | 'img';
|
|
6933
|
+
/**
|
|
6934
|
+
* `p:cBhvr/@_override` (ST_TLBehaviorOverrideType): `normal` (default) or
|
|
6935
|
+
* `childStyle`, a legacy compatibility hint. Round-tripped only.
|
|
6936
|
+
*/
|
|
6937
|
+
cBhvrOverride?: 'normal' | 'childStyle';
|
|
6449
6938
|
}
|
|
6450
6939
|
/**
|
|
6451
6940
|
* Parsed `p:animEffect/@filter` (+ `@transition`) descriptor. ECMA-376
|
|
@@ -6512,6 +7001,14 @@ interface PptxAttributeAnimation {
|
|
|
6512
7001
|
durationMs?: number;
|
|
6513
7002
|
/** Start offset from this behaviour's nested `p:stCondLst`. */
|
|
6514
7003
|
delayMs?: number;
|
|
7004
|
+
/**
|
|
7005
|
+
* Interpolation mode from this behaviour's own `@_calcmode`
|
|
7006
|
+
* (ST_TLAnimateBehaviorCalcMode, ECMA-376 S19.5.2): `discrete` snaps to
|
|
7007
|
+
* each `p:tav` stop with no interpolation, `lin` (the OOXML default)
|
|
7008
|
+
* interpolates linearly, `fmla` evaluates `p:tav/@fmla` (not consulted at
|
|
7009
|
+
* playback here; formulas are round-tripped only). Absent means `lin`.
|
|
7010
|
+
*/
|
|
7011
|
+
calcMode?: 'discrete' | 'lin' | 'fmla';
|
|
6515
7012
|
}
|
|
6516
7013
|
/** Signed HSL channel deltas parsed from `p:animClr/p:by/p:hsl`. */
|
|
6517
7014
|
interface PptxHslColorDelta {
|
|
@@ -6578,7 +7075,7 @@ interface PptxTextAnimationTarget {
|
|
|
6578
7075
|
* These map directly to OOXML condition event attribute values
|
|
6579
7076
|
* (ISO/IEC 29500-1 S19.5.28 CT_TLTimeCondition).
|
|
6580
7077
|
*/
|
|
6581
|
-
type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio';
|
|
7078
|
+
type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio' | 'onDblClick';
|
|
6582
7079
|
/**
|
|
6583
7080
|
* Structured representation of a single OOXML animation condition
|
|
6584
7081
|
* from `p:cond` elements inside `p:stCondLst` or `p:endCondLst`.
|
|
@@ -7918,10 +8415,32 @@ interface PptxPresentationProperties {
|
|
|
7918
8415
|
printProperties?: PptxPresentationPrintProperties | null;
|
|
7919
8416
|
/** Most-recently-used colours from the presentation palette. */
|
|
7920
8417
|
mruColors?: string[];
|
|
7921
|
-
/**
|
|
8418
|
+
/**
|
|
8419
|
+
* Pen colour for presentation mode annotations (from `p:showPr/p:penClr`).
|
|
8420
|
+
* `p:penClr` is a full `EG_ColorChoice` (P1-G2): a scheme/preset/system
|
|
8421
|
+
* swatch resolves to a hex string here just like a direct `a:srgbClr`.
|
|
8422
|
+
*/
|
|
7922
8423
|
penColor?: string;
|
|
8424
|
+
/**
|
|
8425
|
+
* The resolved hex value {@link penColor} had at parse time, and the
|
|
8426
|
+
* original `p:penClr` colour-choice XML node, preserved so a save that
|
|
8427
|
+
* never touches the pen colour re-emits the original scheme/preset
|
|
8428
|
+
* reference verbatim instead of flattening it to a baked `a:srgbClr`.
|
|
8429
|
+
* Internal round-trip bookkeeping; not meant to be set by API callers.
|
|
8430
|
+
*/
|
|
8431
|
+
penColorOriginal?: string;
|
|
8432
|
+
/** @see penColorOriginal */
|
|
8433
|
+
penColorXml?: XmlObject;
|
|
7923
8434
|
/** Kiosk auto-restart interval in milliseconds (from `p:kiosk/@restart`). Only meaningful when showType is "kiosk". */
|
|
7924
8435
|
kioskRestartTime?: number;
|
|
8436
|
+
/**
|
|
8437
|
+
* `p:showPr/p:browse/@showScrollbar` (CT_ShowInfoBrowse §19.2.1.10 /
|
|
8438
|
+
* §19.3.1.43), the "Show scrollbar" checkbox in PowerPoint's Set Up Show
|
|
8439
|
+
* dialog. Only meaningful when `showType` is `"browsed"`; the schema
|
|
8440
|
+
* default is `true`. `undefined` means the source authored no explicit
|
|
8441
|
+
* value (or `showType` is not `"browsed"`).
|
|
8442
|
+
*/
|
|
8443
|
+
showScrollbar?: boolean;
|
|
7925
8444
|
}
|
|
7926
8445
|
/**
|
|
7927
8446
|
* Slide dimensions from `p:sldSz` (CT_SlideSize, ECMA-376 §19.2.1.39).
|
|
@@ -10069,6 +10588,41 @@ type ChartBuildMode = 'asOne' | 'bySeries' | 'byCategory' | 'byElement';
|
|
|
10069
10588
|
* - `byLvlAtOnce` a whole level is revealed per stage (`lvlAtOnce`).
|
|
10070
10589
|
*/
|
|
10071
10590
|
type DiagramBuildMode = 'asOne' | 'byOne' | 'byLvl' | 'byLvlAtOnce';
|
|
10591
|
+
/**
|
|
10592
|
+
* One authored `p:graphicEl` reveal unit resolved onto a chart, per
|
|
10593
|
+
* `TimelineStepGraphicElement`'s "both indices set" case: a single (series,
|
|
10594
|
+
* category) cell revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect.
|
|
10595
|
+
*/
|
|
10596
|
+
interface ChartRevealPoint {
|
|
10597
|
+
seriesIdx: number;
|
|
10598
|
+
categoryIdx: number;
|
|
10599
|
+
}
|
|
10600
|
+
/**
|
|
10601
|
+
* Playback-time chart reveal state derived from AUTHORED `p:graphicEl`
|
|
10602
|
+
* indices (see `chart-reveal-descriptor`'s `resolveChartRevealDescriptor`),
|
|
10603
|
+
* rather than from click-count/time progress. Present on
|
|
10604
|
+
* {@link ElementAnimationState.chartReveal} only when every fired
|
|
10605
|
+
* chart-build step for the element carried index data; a renderer prefers
|
|
10606
|
+
* this over the progress-based `build`/`ElementBuildState` path when present,
|
|
10607
|
+
* since it reflects the real authored reveal set (correct even for a
|
|
10608
|
+
* reversed-order or gapped chart build), and falls back to `build` when
|
|
10609
|
+
* absent.
|
|
10610
|
+
*/
|
|
10611
|
+
interface ChartRevealDescriptor {
|
|
10612
|
+
/**
|
|
10613
|
+
* Whether the chart's background/axes/gridlines/legend should currently be
|
|
10614
|
+
* visible: always `true` when the chart's `animateBackground` is `false`
|
|
10615
|
+
* ("shown throughout"), otherwise `true` from the first revealed stage
|
|
10616
|
+
* onward.
|
|
10617
|
+
*/
|
|
10618
|
+
background: boolean;
|
|
10619
|
+
/** Whole series revealed by a `bldStep="series"` effect. */
|
|
10620
|
+
series: ReadonlySet<number>;
|
|
10621
|
+
/** Whole categories revealed by a `bldStep="category"` effect. */
|
|
10622
|
+
categories: ReadonlySet<number>;
|
|
10623
|
+
/** Individual cells revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect. */
|
|
10624
|
+
points: readonly ChartRevealPoint[];
|
|
10625
|
+
}
|
|
10072
10626
|
/**
|
|
10073
10627
|
* Playback-time staged-build state surfaced on {@link ElementAnimationState}.
|
|
10074
10628
|
* `progress` is the 0..1 fraction of the build revealed at the current playback
|
|
@@ -10099,6 +10653,16 @@ interface ElementAnimationState {
|
|
|
10099
10653
|
* whole-element entrances, so existing renderers are unaffected.
|
|
10100
10654
|
*/
|
|
10101
10655
|
build?: ElementBuildState;
|
|
10656
|
+
/**
|
|
10657
|
+
* Authored-index chart reveal state (see {@link ChartRevealDescriptor}),
|
|
10658
|
+
* present only when every fired chart-build step for this element carried
|
|
10659
|
+
* `p:graphicEl` index data. A chart renderer prefers this over `build` when
|
|
10660
|
+
* present; `chart-build`'s `resolveRevealedChartData` picks between the two.
|
|
10661
|
+
*/
|
|
10662
|
+
chartReveal?: {
|
|
10663
|
+
mode: ChartBuildMode;
|
|
10664
|
+
descriptor: ChartRevealDescriptor;
|
|
10665
|
+
};
|
|
10102
10666
|
/**
|
|
10103
10667
|
* True when an active `p:animClr` color animation targets this shape's fill.
|
|
10104
10668
|
* A vector renderer should then paint the fill with `fill: inherit` so the
|
|
@@ -11336,6 +11900,8 @@ interface ToolbarProps {
|
|
|
11336
11900
|
onUpdateElementStyle: (updates: Partial<ShapeStyle>) => void;
|
|
11337
11901
|
/** How many elements the multi-select currently holds. */
|
|
11338
11902
|
selectedCount: number;
|
|
11903
|
+
/** Whether every selected element allows `a:spLocks/@noGrp` grouping. */
|
|
11904
|
+
selectionGroupable: boolean;
|
|
11339
11905
|
/** Open the hyperlink editor for the current selection. */
|
|
11340
11906
|
onOpenHyperlinkDialog: () => void;
|
|
11341
11907
|
onDuplicate: () => void;
|