pptx-react-viewer 3.5.3 → 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 +12 -0
- package/dist/{AiChatPanel-ZEM3ZVA6.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-L2HGGEND.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-I7LMTNK5.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-EYNCHRB3.mjs → Area3DChartScene-SJC2ZB6R.mjs} +1 -1
- package/dist/{Line3DChartScene-QYBKXNOD.mjs.br → Area3DChartScene-SJC2ZB6R.mjs.br} +1 -1
- package/dist/Area3DChartScene-SJC2ZB6R.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-VPKQDPIO.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-6HQ6QWNB.mjs → Bar3DChartScene-SPER4LQA.mjs} +1 -1
- package/dist/{Bar3DChartScene-6HQ6QWNB.mjs.br → Bar3DChartScene-SPER4LQA.mjs.br} +0 -0
- package/dist/Bar3DChartScene-SPER4LQA.mjs.gz +0 -0
- package/dist/{Line3DChartScene-VV362RMX.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-QYBKXNOD.mjs → Line3DChartScene-FH3YHPXE.mjs} +1 -1
- package/dist/{Area3DChartScene-EYNCHRB3.mjs.br → Line3DChartScene-FH3YHPXE.mjs.br} +1 -1
- package/dist/Line3DChartScene-FH3YHPXE.mjs.gz +0 -0
- package/dist/{Model3DScene-YTLWTG52.mjs → Model3DScene-2BCR2YYD.mjs} +1 -1
- package/dist/{Model3DScene-YTLWTG52.mjs.br → Model3DScene-2BCR2YYD.mjs.br} +0 -0
- package/dist/Model3DScene-2BCR2YYD.mjs.gz +0 -0
- package/dist/{Model3DScene-XA57KXA5.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-INBL4F5Z.mjs → PieChart3DScene-QFQUJFDP.mjs} +1 -1
- package/dist/{PieChart3DScene-INBL4F5Z.mjs.br → PieChart3DScene-QFQUJFDP.mjs.br} +0 -0
- package/dist/PieChart3DScene-QFQUJFDP.mjs.gz +0 -0
- package/dist/{PieChart3DScene-IFZMTN5H.js → PieChart3DScene-VQOHZPHI.js} +2 -2
- package/dist/PieChart3DScene-VQOHZPHI.js.br +0 -0
- package/dist/PieChart3DScene-VQOHZPHI.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-EV6DBPJS.mjs → SurfaceChart3DScene-CGXMRBCL.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-EV6DBPJS.mjs.br → SurfaceChart3DScene-CGXMRBCL.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-FRSZVIVB.js → SurfaceChart3DScene-FTVXZN6O.js} +2 -2
- package/dist/SurfaceChart3DScene-FTVXZN6O.js.br +0 -0
- package/dist/SurfaceChart3DScene-FTVXZN6O.js.gz +0 -0
- package/dist/{chunk-QA573RUB.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-HHDPQJF3.js → chunk-AL2KLPOJ.js} +32437 -22179
- package/dist/chunk-AL2KLPOJ.js.br +0 -0
- package/dist/chunk-AL2KLPOJ.js.gz +0 -0
- package/dist/{chunk-7AL6KAFX.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-PPL3WBC7.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-MSRRBA7G.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-3WM5TUY7.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-KOLCCOTS.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-SIM2LXO2.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-QPHGHUUJ.mjs → chunk-ZUSYUWOV.mjs} +32414 -22179
- package/dist/chunk-ZUSYUWOV.mjs.br +0 -0
- package/dist/chunk-ZUSYUWOV.mjs.gz +0 -0
- package/dist/{chunk-BBSFZLYI.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-L2HGGEND.mjs.br +0 -0
- package/dist/AiChatPanel-L2HGGEND.mjs.gz +0 -0
- package/dist/AiChatPanel-ZEM3ZVA6.js.br +0 -0
- package/dist/AiChatPanel-ZEM3ZVA6.js.gz +0 -0
- package/dist/Area3DChartScene-EYNCHRB3.mjs.gz +0 -0
- package/dist/Area3DChartScene-I7LMTNK5.js.br +0 -0
- package/dist/Area3DChartScene-I7LMTNK5.js.gz +0 -0
- package/dist/Bar3DChartScene-6HQ6QWNB.mjs.gz +0 -0
- package/dist/Bar3DChartScene-VPKQDPIO.js.br +0 -0
- package/dist/Bar3DChartScene-VPKQDPIO.js.gz +0 -0
- package/dist/Line3DChartScene-QYBKXNOD.mjs.gz +0 -0
- package/dist/Line3DChartScene-VV362RMX.js.br +0 -0
- package/dist/Line3DChartScene-VV362RMX.js.gz +0 -0
- package/dist/Model3DScene-XA57KXA5.js.br +0 -0
- package/dist/Model3DScene-XA57KXA5.js.gz +0 -0
- package/dist/Model3DScene-YTLWTG52.mjs.gz +0 -0
- package/dist/PieChart3DScene-IFZMTN5H.js.br +0 -0
- package/dist/PieChart3DScene-IFZMTN5H.js.gz +0 -0
- package/dist/PieChart3DScene-INBL4F5Z.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-EV6DBPJS.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-FRSZVIVB.js.br +0 -0
- package/dist/SurfaceChart3DScene-FRSZVIVB.js.gz +0 -0
- package/dist/chunk-3WM5TUY7.mjs.br +0 -0
- package/dist/chunk-3WM5TUY7.mjs.gz +0 -0
- package/dist/chunk-7AL6KAFX.mjs.br +0 -0
- package/dist/chunk-7AL6KAFX.mjs.gz +0 -0
- package/dist/chunk-BBSFZLYI.js.br +0 -0
- package/dist/chunk-BBSFZLYI.js.gz +0 -0
- package/dist/chunk-HHDPQJF3.js.br +0 -0
- package/dist/chunk-HHDPQJF3.js.gz +0 -0
- package/dist/chunk-JCJ3EPG6.mjs.br +0 -0
- package/dist/chunk-KOLCCOTS.mjs.br +0 -0
- package/dist/chunk-KOLCCOTS.mjs.gz +0 -0
- package/dist/chunk-MSRRBA7G.mjs.br +0 -0
- package/dist/chunk-MSRRBA7G.mjs.gz +0 -0
- package/dist/chunk-PPL3WBC7.js.br +0 -0
- package/dist/chunk-PPL3WBC7.js.gz +0 -0
- package/dist/chunk-QA573RUB.js.br +0 -0
- package/dist/chunk-QA573RUB.js.gz +0 -0
- package/dist/chunk-QPHGHUUJ.mjs.br +0 -0
- package/dist/chunk-QPHGHUUJ.mjs.gz +0 -0
- package/dist/chunk-SIM2LXO2.js.br +0 -0
- package/dist/chunk-SIM2LXO2.js.gz +0 -0
- package/dist/chunk-UTIMT5CZ.js.br +0 -0
- package/dist/useViewerBuildingBlocks-f6oNGKMX.d.ts.map +0 -1
package/dist/internals.d.ts
CHANGED
|
@@ -43,6 +43,12 @@ interface PptxAction {
|
|
|
43
43
|
soundRId?: string;
|
|
44
44
|
/** Resolved media target path for the optional click sound. */
|
|
45
45
|
soundPath?: string;
|
|
46
|
+
/**
|
|
47
|
+
* `CT_Hyperlink/@endSnd` (ECMA-376 20.1.2.2.23): PowerPoint's Action
|
|
48
|
+
* Settings "Stop previous sound" checkbox. Round-tripped for now (issue
|
|
49
|
+
* G14); not yet wired into playback.
|
|
50
|
+
*/
|
|
51
|
+
endSnd?: boolean;
|
|
46
52
|
}
|
|
47
53
|
//#endregion
|
|
48
54
|
//#region src/core/types/common.d.ts
|
|
@@ -65,7 +71,7 @@ interface PptxAction {
|
|
|
65
71
|
* // => "wavy" — one of: sng | dbl | heavy | dotted | dash | wavy | none | ...
|
|
66
72
|
* ```
|
|
67
73
|
*/
|
|
68
|
-
type UnderlineStyle = 'sng' | 'dbl' | 'heavy' | 'dotted' | 'dottedHeavy' | 'dash' | 'dashHeavy' | 'dashLong' | 'dashLongHeavy' | 'dotDash' | 'dotDashHeavy' | 'dotDotDash' | 'dotDotDashHeavy' | 'wavy' | 'wavyHeavy' | 'wavyDbl' | 'none';
|
|
74
|
+
type UnderlineStyle = 'sng' | 'dbl' | 'heavy' | 'dotted' | 'dottedHeavy' | 'dash' | 'dashHeavy' | 'dashLong' | 'dashLongHeavy' | 'dotDash' | 'dotDashHeavy' | 'dotDotDash' | 'dotDotDashHeavy' | 'wavy' | 'wavyHeavy' | 'wavyDbl' | 'words' | 'none';
|
|
69
75
|
/**
|
|
70
76
|
* Connector connection point reference — links a connector endpoint to a
|
|
71
77
|
* specific shape on the slide.
|
|
@@ -400,6 +406,16 @@ interface CustomGeometryRawData {
|
|
|
400
406
|
cxnLstXml?: unknown;
|
|
401
407
|
/** Raw `a:rect` XML content (text rectangle). */
|
|
402
408
|
rectXml?: unknown;
|
|
409
|
+
/**
|
|
410
|
+
* Raw `a:pathLst` XML content: every `a:path`'s formula-bearing `a:pt`
|
|
411
|
+
* x/y attributes, `a:arcTo` params, `a:close`, and per-path `@w`/`@h`/
|
|
412
|
+
* `@fill`/`@stroke`/`@extrusionOk`, preserved verbatim (not the
|
|
413
|
+
* parse-time-resolved numbers in `customGeometryPaths`). Lets a live
|
|
414
|
+
* `shapeAdjustments` drag re-evaluate the outline against the CURRENT
|
|
415
|
+
* guide values instead of the ones baked in at parse time; see
|
|
416
|
+
* `geometry/custom-geometry-live-eval.ts`.
|
|
417
|
+
*/
|
|
418
|
+
pathLstXml?: unknown;
|
|
403
419
|
}
|
|
404
420
|
/**
|
|
405
421
|
* XY-style adjustment handle (`a:ahXY`) on a custom geometry.
|
|
@@ -1157,6 +1173,21 @@ interface ShapeStyle {
|
|
|
1157
1173
|
dagFillOverlayColor?: string;
|
|
1158
1174
|
/** Fill overlay tint opacity (0-1), from the overlay fill colour's alpha. */
|
|
1159
1175
|
dagFillOverlayOpacity?: number;
|
|
1176
|
+
/** Fill overlay blend mode from a direct `a:effectLst/a:fillOverlay/@blend`. */
|
|
1177
|
+
shapeFillOverlayBlend?: 'over' | 'mult' | 'screen' | 'darken' | 'lighten';
|
|
1178
|
+
/**
|
|
1179
|
+
* Fill overlay tint colour (hex `#RRGGBB`) from a direct
|
|
1180
|
+
* `a:effectLst/a:fillOverlay`'s `a:solidFill`/`a:gradFill`.
|
|
1181
|
+
*/
|
|
1182
|
+
shapeFillOverlayColor?: string;
|
|
1183
|
+
/** Fill overlay tint opacity (0-1), from the overlay fill colour's alpha. */
|
|
1184
|
+
shapeFillOverlayOpacity?: number;
|
|
1185
|
+
/** Original source `a:fillOverlay` node, preserved for lossless surgical updates. */
|
|
1186
|
+
fillOverlayXml?: XmlObject;
|
|
1187
|
+
/** Resolved source fill-overlay colour used to detect colour edits. */
|
|
1188
|
+
shapeFillOverlayOriginalColor?: string;
|
|
1189
|
+
/** Source fill-overlay opacity used to detect alpha edits. */
|
|
1190
|
+
shapeFillOverlayOriginalOpacity?: number;
|
|
1160
1191
|
/** `<a:lnRef @idx>` — 1-based index into the theme's lnStyleLst. */
|
|
1161
1192
|
lnRefIdx?: number;
|
|
1162
1193
|
/** Raw XML colour child of `<a:lnRef>` (e.g. `<a:schemeClr>` with transforms). */
|
|
@@ -1413,7 +1444,15 @@ interface TextStyle {
|
|
|
1413
1444
|
*/
|
|
1414
1445
|
colorXml?: XmlObject;
|
|
1415
1446
|
align?: 'left' | 'center' | 'right' | 'justify' | 'justLow' | 'dist' | 'thaiDist';
|
|
1416
|
-
|
|
1447
|
+
/**
|
|
1448
|
+
* Vertical text-box anchor (`a:bodyPr/@anchor`, `ST_TextAnchoringType`).
|
|
1449
|
+
* `distributed`/`justified` (`dist`/`just`) stretch line spacing so the
|
|
1450
|
+
* paragraph block fills the box's full vertical extent, distinct from true
|
|
1451
|
+
* centering (`middle`/`ctr`); both approximate to a middle-anchored render
|
|
1452
|
+
* (see `text-body-layout.ts`) since CSS has no native vertical-justify
|
|
1453
|
+
* primitive, but round-trip losslessly through parse/save.
|
|
1454
|
+
*/
|
|
1455
|
+
vAlign?: 'top' | 'middle' | 'bottom' | 'distributed' | 'justified';
|
|
1417
1456
|
/** Right-to-left paragraph/run direction (`a:pPr/@rtl`, `a:rPr/@rtl`). */
|
|
1418
1457
|
rtl?: boolean;
|
|
1419
1458
|
/** Body text direction (`a:bodyPr/@vert`).
|
|
@@ -2234,6 +2273,50 @@ interface PptxChartAxisLabelFormatting {
|
|
|
2234
2273
|
noMultiLevelLabels?: boolean;
|
|
2235
2274
|
}
|
|
2236
2275
|
//#endregion
|
|
2276
|
+
//#region src/core/types/chart-ex.d.ts
|
|
2277
|
+
/**
|
|
2278
|
+
* Chart-formatting types that don't fit an existing, owned type module for
|
|
2279
|
+
* this wave (`types/chart.ts` is owned elsewhere; see its own module doc).
|
|
2280
|
+
* Despite the file name, `PptxChartDataPointPicture` is a CLASSIC (`c:`)
|
|
2281
|
+
* construct, not ChartEx (`cx:`) - it landed here only because it needs a
|
|
2282
|
+
* home outside `chart.ts`.
|
|
2283
|
+
*
|
|
2284
|
+
* @module pptx-types/chart-ex
|
|
2285
|
+
*/
|
|
2286
|
+
/** `c:dPt/c:pictureOptions/c:pictureFormat/@val` (ST_PictureFormat). */
|
|
2287
|
+
type PptxChartPictureFormat = 'stretch' | 'stack' | 'stackScale';
|
|
2288
|
+
/**
|
|
2289
|
+
* Per-data-point picture-fill flags (`c:dPt/c:pictureOptions`): PowerPoint's
|
|
2290
|
+
* "Picture or texture fill" with "Stack"/"Stretch" semantics on a bar/column
|
|
2291
|
+
* data point, distinct from the point's plain `c:spPr` solid/gradient fill.
|
|
2292
|
+
*
|
|
2293
|
+
* The flags parse purely (`parseChartDataPointPicture` in
|
|
2294
|
+
* `utils/chart-datapoint-serializer.ts`); {@link imageUrl} is a separate,
|
|
2295
|
+
* later addition populated by the runtime (`PptxHandlerRuntimeChartParsing.ts`)
|
|
2296
|
+
* once the sibling `c:spPr/a:blipFill/a:blip`'s `r:embed`/`r:link` is resolved
|
|
2297
|
+
* against the chart part's relationships, since that resolution needs zip/file
|
|
2298
|
+
* access the pure parser does not have.
|
|
2299
|
+
*/
|
|
2300
|
+
interface PptxChartDataPointPicture {
|
|
2301
|
+
/** Apply the picture to the front face of a 3-D bar/column (`c:applyToFront`). */
|
|
2302
|
+
applyToFront?: boolean;
|
|
2303
|
+
/** Apply the picture to the side faces of a 3-D bar/column (`c:applyToSides`). */
|
|
2304
|
+
applyToSides?: boolean;
|
|
2305
|
+
/** Apply the picture to the end face of a 3-D bar/column (`c:applyToEnd`). */
|
|
2306
|
+
applyToEnd?: boolean;
|
|
2307
|
+
/** Stretch, or stack repeated tiles at their natural size (or scaled). */
|
|
2308
|
+
pictureFormat?: PptxChartPictureFormat;
|
|
2309
|
+
/** Height, in points, of one repeated picture tile for "stack"/"stackScale" (`c:pictureStackUnit/@val`). */
|
|
2310
|
+
pictureStackUnit?: number;
|
|
2311
|
+
/**
|
|
2312
|
+
* Resolved picture source (a `data:`/`blob:` URL) for the point's sibling
|
|
2313
|
+
* `c:spPr/a:blipFill/a:blip`. Populated by the runtime after relationship
|
|
2314
|
+
* resolution (C2-G9 render half); absent until then, and absent entirely
|
|
2315
|
+
* when the point has no picture fill or the image could not be resolved.
|
|
2316
|
+
*/
|
|
2317
|
+
imageUrl?: string;
|
|
2318
|
+
}
|
|
2319
|
+
//#endregion
|
|
2237
2320
|
//#region src/core/types/chart-pivot-format.d.ts
|
|
2238
2321
|
interface PptxChartPivotFormat {
|
|
2239
2322
|
index: number;
|
|
@@ -2297,6 +2380,15 @@ interface PptxChartPageSetup {
|
|
|
2297
2380
|
horizontalDpi?: number;
|
|
2298
2381
|
verticalDpi?: number;
|
|
2299
2382
|
copies?: number;
|
|
2383
|
+
/**
|
|
2384
|
+
* Custom paper height, used when {@link paperSize} is `0`
|
|
2385
|
+
* (`c:pageSetup/@paperHeight`, ST_PositiveUniversalMeasure, e.g. `"297mm"`).
|
|
2386
|
+
* Kept as the raw measure string rather than converted, matching how the
|
|
2387
|
+
* schema stores it.
|
|
2388
|
+
*/
|
|
2389
|
+
paperHeight?: string;
|
|
2390
|
+
/** Custom paper width, used when {@link paperSize} is `0` (`@paperWidth`). */
|
|
2391
|
+
paperWidth?: string;
|
|
2300
2392
|
/** Original leaf retained for foreign attributes. */
|
|
2301
2393
|
rawXml?: unknown;
|
|
2302
2394
|
}
|
|
@@ -2328,6 +2420,65 @@ interface PptxChartProtection {
|
|
|
2328
2420
|
rawXml?: XmlObject;
|
|
2329
2421
|
}
|
|
2330
2422
|
//#endregion
|
|
2423
|
+
//#region src/core/types/chart-style-definition.d.ts
|
|
2424
|
+
/**
|
|
2425
|
+
* Typed subset of an Office 2013+ chart-style part (`ppt/charts/style#.xml`,
|
|
2426
|
+
* root element `cs:chartStyle`, relationship type
|
|
2427
|
+
* `.../2012/relationships/chartStyle`).
|
|
2428
|
+
*
|
|
2429
|
+
* PowerPoint's Design-tab "Chart Styles" gallery (1-48) writes `c:style/@val`
|
|
2430
|
+
* on the chart part itself (already modeled as `PptxChartStyle.styleId`) and,
|
|
2431
|
+
* for most styles, this SEPARATE part spelling out the per-element
|
|
2432
|
+
* `cs:lnRef`/`cs:fillRef`/`cs:effectRef`/`cs:fontRef`/`cs:defRPr` defaults a
|
|
2433
|
+
* chart element falls back to when its own XML leaves it unstyled. Without
|
|
2434
|
+
* parsing this part, styles beyond the one PowerPoint happens to have baked
|
|
2435
|
+
* inline are visually inert.
|
|
2436
|
+
*
|
|
2437
|
+
* @module pptx-types/chart-style-definition
|
|
2438
|
+
*/
|
|
2439
|
+
/**
|
|
2440
|
+
* One styled chart-element entry (`cs:title`, `cs:axisTitle`,
|
|
2441
|
+
* `cs:categoryAxis`, ...). Colours are resolved to hex at parse time (scheme
|
|
2442
|
+
* colour references via `cs:fontRef`/`cs:lnRef`/`cs:fillRef` are already
|
|
2443
|
+
* flattened against the theme, matching how classic chart colours resolve
|
|
2444
|
+
* elsewhere in this codebase). Fields are present only when the source XML
|
|
2445
|
+
* carried a value for them.
|
|
2446
|
+
*/
|
|
2447
|
+
interface PptxChartStylePartEntry {
|
|
2448
|
+
/** Text size in points, from `cs:defRPr/@sz` (hundredths of a point). */
|
|
2449
|
+
fontSize?: number;
|
|
2450
|
+
bold?: boolean;
|
|
2451
|
+
italic?: boolean;
|
|
2452
|
+
/** Resolved text colour: `cs:defRPr/a:solidFill`, or `cs:fontRef`'s scheme colour. */
|
|
2453
|
+
color?: string;
|
|
2454
|
+
/** Resolved line colour from `cs:lnRef`'s scheme colour reference. */
|
|
2455
|
+
lineColor?: string;
|
|
2456
|
+
/** Line width in points, when directly authored (rare; most styles reference a theme line style by index only). */
|
|
2457
|
+
lineWidth?: number;
|
|
2458
|
+
/** Resolved fill colour from `cs:fillRef`'s scheme colour reference. */
|
|
2459
|
+
fillColor?: string;
|
|
2460
|
+
}
|
|
2461
|
+
/**
|
|
2462
|
+
* Parsed per-element style defaults from a chart-style part. Only the
|
|
2463
|
+
* elements this viewer actually renders distinct defaults for are modeled;
|
|
2464
|
+
* elements PowerPoint's style gallery also styles (data table, trendlines,
|
|
2465
|
+
* up/down bars, ...) are out of scope until a renderer needs them.
|
|
2466
|
+
*/
|
|
2467
|
+
interface PptxChartStyleDefinition {
|
|
2468
|
+
title?: PptxChartStylePartEntry;
|
|
2469
|
+
axisTitle?: PptxChartStylePartEntry;
|
|
2470
|
+
categoryAxis?: PptxChartStylePartEntry;
|
|
2471
|
+
valueAxis?: PptxChartStylePartEntry;
|
|
2472
|
+
legend?: PptxChartStylePartEntry;
|
|
2473
|
+
dataLabel?: PptxChartStylePartEntry;
|
|
2474
|
+
dataPoint?: PptxChartStylePartEntry;
|
|
2475
|
+
dataPointLine?: PptxChartStylePartEntry;
|
|
2476
|
+
gridlineMajor?: PptxChartStylePartEntry;
|
|
2477
|
+
gridlineMinor?: PptxChartStylePartEntry;
|
|
2478
|
+
chartArea?: PptxChartStylePartEntry;
|
|
2479
|
+
plotArea?: PptxChartStylePartEntry;
|
|
2480
|
+
}
|
|
2481
|
+
//#endregion
|
|
2331
2482
|
//#region src/core/types/chart-user-shapes.d.ts
|
|
2332
2483
|
/**
|
|
2333
2484
|
* Types for chart drawing-overlay shapes (`c:userShapes`).
|
|
@@ -2366,8 +2517,16 @@ interface PptxChartUserShapeParagraph {
|
|
|
2366
2517
|
* `absSizeAnchor` the extent is {@link ext} in EMU.
|
|
2367
2518
|
*/
|
|
2368
2519
|
interface PptxChartUserShape {
|
|
2369
|
-
/**
|
|
2370
|
-
|
|
2520
|
+
/**
|
|
2521
|
+
* Shape kind: text/preset shape, connector, picture, a group of the
|
|
2522
|
+
* above (`grpSp`, flattened: each grouped child becomes its own entry
|
|
2523
|
+
* reusing the anchor's own bounding box, an approximation since the
|
|
2524
|
+
* group's internal chOff/chExt transform is not applied), or a bare
|
|
2525
|
+
* placeholder for a `graphicFrame` anchor child (deep content such as a
|
|
2526
|
+
* nested chart or table is out of scope; it only keeps the anchor's
|
|
2527
|
+
* space accounted for instead of the whole overlay disappearing).
|
|
2528
|
+
*/
|
|
2529
|
+
kind: 'sp' | 'cxnSp' | 'pic' | 'grpSp' | 'graphicFrame';
|
|
2371
2530
|
/** Anchor kind that positioned the shape. */
|
|
2372
2531
|
anchor: 'rel' | 'abs';
|
|
2373
2532
|
/** Top-left corner as chart-relative fractions (0-1). */
|
|
@@ -2599,6 +2758,8 @@ interface PptxChartDataPoint {
|
|
|
2599
2758
|
marker?: PptxChartMarker;
|
|
2600
2759
|
/** Render a bubble-chart point with a 3-D appearance. */
|
|
2601
2760
|
bubble3D?: boolean;
|
|
2761
|
+
/** Per-point picture-fill flags (`c:dPt/c:pictureOptions`). */
|
|
2762
|
+
picture?: PptxChartDataPointPicture;
|
|
2602
2763
|
}
|
|
2603
2764
|
/** Schema values accepted by `c:dLblPos`. */
|
|
2604
2765
|
type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
|
|
@@ -2617,6 +2778,26 @@ interface PptxChartDataLabel {
|
|
|
2617
2778
|
text?: string;
|
|
2618
2779
|
separator?: string;
|
|
2619
2780
|
showLeaderLines?: boolean;
|
|
2781
|
+
/**
|
|
2782
|
+
* Per-label number-format override (`c:dLbl/c:numFmt/@formatCode`), taking
|
|
2783
|
+
* precedence over the chart-level {@link PptxChartDataLabelOptions.numberFormat}
|
|
2784
|
+
* and the series' own {@link PptxChartSeries.numberFormat} when set.
|
|
2785
|
+
*/
|
|
2786
|
+
numberFormat?: string;
|
|
2787
|
+
/**
|
|
2788
|
+
* Manually dragged label position (`c:dLbl/c:layout/c:manualLayout`), the
|
|
2789
|
+
* same CT_ManualLayout shape used for title/legend/plotArea. `null`
|
|
2790
|
+
* explicitly clears a drag back to the automatic position.
|
|
2791
|
+
*/
|
|
2792
|
+
layout?: PptxChartManualLayout | null;
|
|
2793
|
+
/**
|
|
2794
|
+
* This label's own font (`c:dLbl/c:txPr/a:p/a:pPr/a:defRPr`, or ChartEx
|
|
2795
|
+
* `cx:dataLabel/cx:txPr`), taking precedence over the chart/series-level
|
|
2796
|
+
* {@link PptxChartDataLabelOptions.txPr} when set. Reuses the legend
|
|
2797
|
+
* entry's flat text-style shape since both are the same
|
|
2798
|
+
* `.../a:p/a:pPr/a:defRPr` default-run-property style.
|
|
2799
|
+
*/
|
|
2800
|
+
txPr?: PptxChartLegendTextStyle;
|
|
2620
2801
|
}
|
|
2621
2802
|
/** Axis number format. */
|
|
2622
2803
|
interface PptxChartAxisNumFmt {
|
|
@@ -2631,6 +2812,16 @@ interface PptxChartDisplayUnitsLabel {
|
|
|
2631
2812
|
layout?: PptxChartManualLayout | null;
|
|
2632
2813
|
/** Label shape formatting. `null` removes `c:spPr`. */
|
|
2633
2814
|
spPr?: PptxChartShapeProps | null;
|
|
2815
|
+
/**
|
|
2816
|
+
* The label's own run font, when it carries a distinct `txPr` from the
|
|
2817
|
+
* axis's own (ChartEx `cx:unitsLabel/cx:txPr`; classic `c:dispUnitsLbl`
|
|
2818
|
+
* has no equivalent child, so this is only ever populated from a ChartEx
|
|
2819
|
+
* axis).
|
|
2820
|
+
*/
|
|
2821
|
+
fontFamily?: string;
|
|
2822
|
+
fontSize?: number;
|
|
2823
|
+
fontBold?: boolean;
|
|
2824
|
+
fontColor?: string;
|
|
2634
2825
|
}
|
|
2635
2826
|
/** Axis formatting for category, value, or date axes. */
|
|
2636
2827
|
interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
|
|
@@ -2735,8 +2926,27 @@ interface PptxChartWaterfallOptions {
|
|
|
2735
2926
|
/** Whether connector lines are visible between adjacent bars. */
|
|
2736
2927
|
connectorLines?: boolean;
|
|
2737
2928
|
}
|
|
2929
|
+
/**
|
|
2930
|
+
* A single breakpoint in a ChartEx colour-by-value scale
|
|
2931
|
+
* (`cx:valueColorPositions/cx:colorPosition`). `kind` selects which of
|
|
2932
|
+
* CT_ColorPosition's union members was authored; `value` is absent for
|
|
2933
|
+
* `min`/`max` (they are implicit endpoints) and required otherwise.
|
|
2934
|
+
*/
|
|
2935
|
+
interface PptxCxValueColorPosition {
|
|
2936
|
+
kind: 'min' | 'max' | 'number' | 'percent';
|
|
2937
|
+
value?: number;
|
|
2938
|
+
}
|
|
2738
2939
|
/** Office 2016 ChartEx geographic series dimensions and layout options. */
|
|
2739
2940
|
interface PptxChartRegionMapOptions {
|
|
2941
|
+
/**
|
|
2942
|
+
* Colour-by-value gradient stops (`cx:valueColors/cx:colors/cx:color`),
|
|
2943
|
+
* resolved to hex, 2 or 3 entries (matching PowerPoint's two- and
|
|
2944
|
+
* three-colour scale UI). Paired index-for-index with
|
|
2945
|
+
* {@link valueColorPositions} when both are present.
|
|
2946
|
+
*/
|
|
2947
|
+
valueColors?: string[];
|
|
2948
|
+
/** Gradient breakpoints for {@link valueColors} (`cx:valueColorPositions`). */
|
|
2949
|
+
valueColorPositions?: PptxCxValueColorPosition[];
|
|
2740
2950
|
/** Optional provider entity identifiers aligned with categories and values. */
|
|
2741
2951
|
entityIds?: string[];
|
|
2742
2952
|
/** Original `cx:pt/@idx` values for category points. */
|
|
@@ -2901,6 +3111,20 @@ interface PptxChartDataLabelOptions {
|
|
|
2901
3111
|
* Omit to let PowerPoint use the type default.
|
|
2902
3112
|
*/
|
|
2903
3113
|
position?: PptxChartDataLabelPosition;
|
|
3114
|
+
/**
|
|
3115
|
+
* Chart-level number-format override (`c:dLbls/c:numFmt/@formatCode`),
|
|
3116
|
+
* applied to every label of the series/chart-type unless a per-point
|
|
3117
|
+
* {@link PptxChartDataLabel.numberFormat} overrides it.
|
|
3118
|
+
*/
|
|
3119
|
+
numberFormat?: string;
|
|
3120
|
+
/**
|
|
3121
|
+
* Default font for every label at this level (`c:dLbls/c:txPr`, or
|
|
3122
|
+
* ChartEx `cx:dataLabels/cx:txPr`), overridden by a per-point
|
|
3123
|
+
* {@link PptxChartDataLabel.txPr} when set. `c:dLbls` at the chart-type
|
|
3124
|
+
* level and the series level cascade the same way the show flags do
|
|
3125
|
+
* (point > series > chart-type).
|
|
3126
|
+
*/
|
|
3127
|
+
txPr?: PptxChartLegendTextStyle;
|
|
2904
3128
|
}
|
|
2905
3129
|
/** Typed text defaults for a single chart legend entry. */
|
|
2906
3130
|
interface PptxChartLegendTextStyle {
|
|
@@ -2957,6 +3181,17 @@ interface PptxChartStyle {
|
|
|
2957
3181
|
hasDataLabels?: boolean;
|
|
2958
3182
|
/** Chart-level data-label content/position options (when `hasDataLabels`). */
|
|
2959
3183
|
dataLabels?: PptxChartDataLabelOptions;
|
|
3184
|
+
/**
|
|
3185
|
+
* Font styling for the chart's own title (`c:title/c:txPr`), edited via
|
|
3186
|
+
* `applyChartTitleStyleToXml` (chart-title-style-serializer.ts). Distinct
|
|
3187
|
+
* from an axis title's styling (`PptxChartAxisFormatting.fontFamily` etc.).
|
|
3188
|
+
*/
|
|
3189
|
+
titleFontFamily?: string;
|
|
3190
|
+
titleFontSize?: number;
|
|
3191
|
+
titleFontBold?: boolean;
|
|
3192
|
+
titleFontColor?: string;
|
|
3193
|
+
/** Title text-box fill/border (`c:title/c:spPr`). `null` removes it. */
|
|
3194
|
+
titleSpPr?: PptxChartShapeProps | null;
|
|
2960
3195
|
}
|
|
2961
3196
|
/**
|
|
2962
3197
|
* External data source reference for a chart (c:externalData).
|
|
@@ -3337,6 +3572,38 @@ interface PptxChartData {
|
|
|
3337
3572
|
* `attribute → value` map for round-trip fidelity.
|
|
3338
3573
|
*/
|
|
3339
3574
|
clrMapOvr?: Record<string, string>;
|
|
3575
|
+
/**
|
|
3576
|
+
* Whether the chart's own cached numeric values use the 1904 date epoch
|
|
3577
|
+
* (`c:chartSpace/c:date1904/@val`). Independent of, and authoritative over,
|
|
3578
|
+
* any embedded workbook's `workbookPr/@date1904` (a chart can lack an
|
|
3579
|
+
* embedded workbook entirely, or its cache can legitimately differ from the
|
|
3580
|
+
* workbook's current setting). Absent when the source XML omits the
|
|
3581
|
+
* element, in which case the 1900 system applies (the schema default).
|
|
3582
|
+
*/
|
|
3583
|
+
date1904?: boolean;
|
|
3584
|
+
/**
|
|
3585
|
+
* PowerPoint's "Rounded corners" chart-area option
|
|
3586
|
+
* (`c:chartSpace/c:roundedCorners/@val`, default `false`). Absent when the
|
|
3587
|
+
* source XML omits the element.
|
|
3588
|
+
*/
|
|
3589
|
+
roundedCorners?: boolean;
|
|
3590
|
+
/**
|
|
3591
|
+
* 3-D chart depth/spacing along the series axis, as a percentage
|
|
3592
|
+
* (`c:gapDepth/@val`, `ST_GapAmount`, 0 through 500). Legal on
|
|
3593
|
+
* `bar3D`/`area3D`/`line3D`/`surface` chart-type containers only. Read-only
|
|
3594
|
+
* for rendering, matching {@link barGapWidth}/{@link barOverlap}: save
|
|
3595
|
+
* round-trips it via the preserved chart XML rather than a typed edit path.
|
|
3596
|
+
*/
|
|
3597
|
+
gapDepth?: number;
|
|
3598
|
+
/**
|
|
3599
|
+
* Parsed Office 2013+ chart-style part (`ppt/charts/style#.xml`,
|
|
3600
|
+
* `cs:chartStyle`), providing per-element font/line/fill defaults for
|
|
3601
|
+
* whichever built-in "Chart Styles" gallery entry ({@link PptxChartStyle.styleId})
|
|
3602
|
+
* is active. Absent when the chart has no such part (common for
|
|
3603
|
+
* automation-authored charts, where PowerPoint still implies style 2's
|
|
3604
|
+
* look via its own bundled defaults).
|
|
3605
|
+
*/
|
|
3606
|
+
chartStyleDefinition?: PptxChartStyleDefinition;
|
|
3340
3607
|
}
|
|
3341
3608
|
//#endregion
|
|
3342
3609
|
//#region src/core/types/image.d.ts
|
|
@@ -3860,6 +4127,52 @@ interface MediaCaptionTrack {
|
|
|
3860
4127
|
isDefault?: boolean;
|
|
3861
4128
|
}
|
|
3862
4129
|
//#endregion
|
|
4130
|
+
//#region src/core/types/smart-art-chrome.d.ts
|
|
4131
|
+
/**
|
|
4132
|
+
* Background / outline extracted from `dgm:bg` and `dgm:whole`.
|
|
4133
|
+
*
|
|
4134
|
+
* @example
|
|
4135
|
+
* ```ts
|
|
4136
|
+
* const chrome: PptxSmartArtChrome = {
|
|
4137
|
+
* backgroundColor: "#F0F0F0",
|
|
4138
|
+
* outlineColor: "#333333",
|
|
4139
|
+
* outlineWidth: 1,
|
|
4140
|
+
* };
|
|
4141
|
+
* // => satisfies PptxSmartArtChrome
|
|
4142
|
+
* ```
|
|
4143
|
+
*/
|
|
4144
|
+
interface PptxSmartArtChrome {
|
|
4145
|
+
/**
|
|
4146
|
+
* Background fill colour (hex). When the real `dgm:bg` fill is a gradient
|
|
4147
|
+
* or pattern (see {@link PptxSmartArtChrome.backgroundFillXml}), this is an
|
|
4148
|
+
* APPROXIMATION (the gradient's first stop, or the pattern's foreground
|
|
4149
|
+
* colour) for a consumer that only wants one display colour, not the full fill.
|
|
4150
|
+
*/
|
|
4151
|
+
backgroundColor?: string;
|
|
4152
|
+
/**
|
|
4153
|
+
* Raw `dgm:bg` fill XML, present only when the background is a gradient or
|
|
4154
|
+
* pattern fill (a solid fill is fully captured by {@link PptxSmartArtChrome.backgroundColor}
|
|
4155
|
+
* alone). Round-trip only: `smartart-save-chrome.ts` re-emits this verbatim
|
|
4156
|
+
* instead of flattening the fill to a solid colour on save.
|
|
4157
|
+
*/
|
|
4158
|
+
backgroundFillXml?: PptxSmartArtRawBackgroundFill;
|
|
4159
|
+
/** Outline stroke colour (hex). */
|
|
4160
|
+
outlineColor?: string;
|
|
4161
|
+
/** Outline stroke width in points. */
|
|
4162
|
+
outlineWidth?: number;
|
|
4163
|
+
}
|
|
4164
|
+
/**
|
|
4165
|
+
* A `dgm:bg` fill this viewer doesn't fully model as first-class chrome
|
|
4166
|
+
* (gradient or pattern), preserved verbatim for round-trip. See
|
|
4167
|
+
* {@link PptxSmartArtChrome.backgroundFillXml}.
|
|
4168
|
+
*/
|
|
4169
|
+
interface PptxSmartArtRawBackgroundFill {
|
|
4170
|
+
/** Local element name of the fill under `dgm:bg` (`gradFill` or `pattFill`). */
|
|
4171
|
+
localName: 'gradFill' | 'pattFill';
|
|
4172
|
+
/** The fill element's own attributes/children, as parsed. */
|
|
4173
|
+
xml: XmlObject;
|
|
4174
|
+
}
|
|
4175
|
+
//#endregion
|
|
3863
4176
|
//#region src/core/types/smart-art-constraint-rules.d.ts
|
|
3864
4177
|
type PptxSmartArtConstraintRelationship = 'self' | 'ch' | 'des';
|
|
3865
4178
|
type PptxSmartArtConstraintOperator = 'none' | 'equ' | 'gte' | 'lte';
|
|
@@ -3958,6 +4271,14 @@ interface PptxSmartArtLayoutNodeShape {
|
|
|
3958
4271
|
adjustments?: PptxSmartArtShapeAdjustment[];
|
|
3959
4272
|
/** `dgm:shape/@hideGeom`: the shape is present only to size text, never painted. */
|
|
3960
4273
|
hideGeometry?: boolean;
|
|
4274
|
+
/**
|
|
4275
|
+
* `dgm:shape/@lkTxEntry` (CT_Shape, boolean, default false): this node is a
|
|
4276
|
+
* decorative shape that should mirror its paired content node's text
|
|
4277
|
+
* rather than always rendering blank. See `smartart-layout-interpreter-
|
|
4278
|
+
* pyramid.ts`'s `arrangePyramid`, the interpreter's one existing
|
|
4279
|
+
* synthesized-decorative-shape call site.
|
|
4280
|
+
*/
|
|
4281
|
+
lkTxEntry?: boolean;
|
|
3961
4282
|
}
|
|
3962
4283
|
/** Identity and ordering metadata from DiagramML CT_LayoutNode. */
|
|
3963
4284
|
interface PptxSmartArtLayoutNode {
|
|
@@ -4185,6 +4506,13 @@ interface PptxSmartArtNode {
|
|
|
4185
4506
|
* generic cycled palette (see `applySmartArtRoleColors`).
|
|
4186
4507
|
*/
|
|
4187
4508
|
styleRole?: string;
|
|
4509
|
+
/**
|
|
4510
|
+
* `dgm:prSet/@coherent3DOff` (`CT_ElemPropSet`) resolved from the node's
|
|
4511
|
+
* paired presentation point: when true, this node opts out of the
|
|
4512
|
+
* diagram's overall coherent-3D scene rotation (a `dgm:scene3d`/`dgm:sp3d`
|
|
4513
|
+
* quick-style variation) applied to every other node.
|
|
4514
|
+
*/
|
|
4515
|
+
coherent3DOff?: boolean;
|
|
4188
4516
|
/**
|
|
4189
4517
|
* Per-run text + run-properties for the node's first paragraph, captured at
|
|
4190
4518
|
* parse time. When the joined run text still equals {@link text} (the node
|
|
@@ -4232,9 +4560,29 @@ interface PptxSmartArtColorListMetadata {
|
|
|
4232
4560
|
method?: PptxSmartArtColorApplicationMethod;
|
|
4233
4561
|
hueDirection?: PptxSmartArtHueDirection;
|
|
4234
4562
|
}
|
|
4563
|
+
/**
|
|
4564
|
+
* A quick-style label's `a:lnRef`/`a:fillRef`/`a:effectRef`/`a:fontRef`
|
|
4565
|
+
* (`CT_ShapeStyle`, the same complex type an ordinary shape's `p:style`
|
|
4566
|
+
* uses), resolved against the theme's `fmtScheme` at parse time instead of
|
|
4567
|
+
* the coarse subtle/moderate/intense enum ({@link PptxSmartArtQuickStyle.effectIntensity}).
|
|
4568
|
+
* Only populated when a theme format scheme was available when the quick
|
|
4569
|
+
* style was parsed. See G13 in the 2026-09 diagram audit.
|
|
4570
|
+
*/
|
|
4571
|
+
interface PptxSmartArtResolvedStyleRef {
|
|
4572
|
+
fillColor?: string;
|
|
4573
|
+
fillMode?: 'solid' | 'gradient' | 'pattern' | 'none' | 'theme';
|
|
4574
|
+
strokeColor?: string;
|
|
4575
|
+
strokeWidth?: number;
|
|
4576
|
+
/** `a:effectRef`'s theme-resolved outer shadow colour, when the style has one. */
|
|
4577
|
+
shadowColor?: string;
|
|
4578
|
+
/** `a:fontRef`'s theme-resolved typeface (`+mn-lt`/`+mj-lt` -> the theme's actual font). */
|
|
4579
|
+
fontTypeface?: string;
|
|
4580
|
+
}
|
|
4235
4581
|
/** CT_StyleLabel metadata from a quick-style definition. */
|
|
4236
4582
|
interface PptxSmartArtQuickStyleLabel {
|
|
4237
4583
|
name: string;
|
|
4584
|
+
/** Theme-resolved `dgm:style` refs for this label's role, when available. */
|
|
4585
|
+
resolvedStyle?: PptxSmartArtResolvedStyleRef;
|
|
4238
4586
|
}
|
|
4239
4587
|
/** CT_CTStyleLabel metadata from a color-transform definition. */
|
|
4240
4588
|
interface PptxSmartArtColorStyleLabel {
|
|
@@ -4497,27 +4845,6 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
|
|
|
4497
4845
|
textFrameWidth?: number;
|
|
4498
4846
|
textFrameHeight?: number;
|
|
4499
4847
|
}
|
|
4500
|
-
/**
|
|
4501
|
-
* Background / outline extracted from `dgm:bg` and `dgm:whole`.
|
|
4502
|
-
*
|
|
4503
|
-
* @example
|
|
4504
|
-
* ```ts
|
|
4505
|
-
* const chrome: PptxSmartArtChrome = {
|
|
4506
|
-
* backgroundColor: "#F0F0F0",
|
|
4507
|
-
* outlineColor: "#333333",
|
|
4508
|
-
* outlineWidth: 1,
|
|
4509
|
-
* };
|
|
4510
|
-
* // => satisfies PptxSmartArtChrome
|
|
4511
|
-
* ```
|
|
4512
|
-
*/
|
|
4513
|
-
interface PptxSmartArtChrome {
|
|
4514
|
-
/** Background fill colour (hex). */
|
|
4515
|
-
backgroundColor?: string;
|
|
4516
|
-
/** Outline stroke colour (hex). */
|
|
4517
|
-
outlineColor?: string;
|
|
4518
|
-
/** Outline stroke width in points. */
|
|
4519
|
-
outlineWidth?: number;
|
|
4520
|
-
}
|
|
4521
4848
|
/**
|
|
4522
4849
|
* Presentation layout variables from `dgm:prSet/dgm:presLayoutVars` (data model)
|
|
4523
4850
|
* or `dgm:varLst` (layout definition defaults).
|
|
@@ -4974,6 +5301,22 @@ interface PptxTableData {
|
|
|
4974
5301
|
bandColCycle?: number;
|
|
4975
5302
|
/** Right-to-left table layout from `a:tblPr/@rtl`. */
|
|
4976
5303
|
rtl?: boolean;
|
|
5304
|
+
/**
|
|
5305
|
+
* `a:tblPr`'s OWN fill (`CT_TableProperties` §21.1.3.15's
|
|
5306
|
+
* `EG_FillProperties`), independent of any `a:tblStyleLst`-referenced style
|
|
5307
|
+
* or that style's `a:tblBg`. Applied as the lowest-priority fill layer,
|
|
5308
|
+
* beneath the table style's `wholeTbl` fill. Real PowerPoint decks route
|
|
5309
|
+
* table appearance through `tableStyleId` instead, so this mainly matters
|
|
5310
|
+
* for non-PowerPoint authoring tools (issue G6).
|
|
5311
|
+
*/
|
|
5312
|
+
tableFill?: ParsedTableStyleFill;
|
|
5313
|
+
/**
|
|
5314
|
+
* Whether `a:tblPr` carries its own `a:effectLst`/`a:effectDag`,
|
|
5315
|
+
* independent of the referenced table style. Presence-only: the concrete
|
|
5316
|
+
* effect is not yet rendered, and the raw XML round-trips separately via
|
|
5317
|
+
* whatever preserves `a:tblPr`'s unrecognised children (issue G6).
|
|
5318
|
+
*/
|
|
5319
|
+
tableEffects?: boolean;
|
|
4977
5320
|
}
|
|
4978
5321
|
/**
|
|
4979
5322
|
* A single fill reference within a table style section.
|
|
@@ -5095,7 +5438,7 @@ interface ParsedTableStyleText {
|
|
|
5095
5438
|
* A single border side within a table style's `a:tcStyle/a:tcBdr`.
|
|
5096
5439
|
*
|
|
5097
5440
|
* Corresponds to one of `a:left`, `a:right`, `a:top`, `a:bottom`,
|
|
5098
|
-
* `a:insideH`, `a:insideV`, `a:tl2br`, `a:
|
|
5441
|
+
* `a:insideH`, `a:insideV`, `a:tl2br`, `a:tr2bl` (each a
|
|
5099
5442
|
* `CT_ThemeableLineStyle` wrapping an `a:ln`).
|
|
5100
5443
|
*
|
|
5101
5444
|
* @example
|
|
@@ -5135,8 +5478,16 @@ interface ParsedTableStyleBorders {
|
|
|
5135
5478
|
insideV?: ParsedTableStyleBorder;
|
|
5136
5479
|
/** Top-left to bottom-right diagonal. */
|
|
5137
5480
|
tl2br?: ParsedTableStyleBorder;
|
|
5138
|
-
/**
|
|
5139
|
-
|
|
5481
|
+
/**
|
|
5482
|
+
* Top-right to bottom-left diagonal (`a:tr2bl`, ECMA-376's
|
|
5483
|
+
* `CT_TableCellBorderStyle` sequence: left/right/top/bottom/insideH/
|
|
5484
|
+
* insideV/tl2br/tr2bl). The field keeps its historical `bl2tr` spelling
|
|
5485
|
+
* only in the sense that it names the same geometric anti-diagonal line
|
|
5486
|
+
* (top-right-to-bottom-left and bottom-left-to-top-right describe one
|
|
5487
|
+
* undirected diagonal); the parser accepts the real `a:tr2bl` element and,
|
|
5488
|
+
* leniently, a legacy `a:bl2tr` this app previously wrote (issue G4).
|
|
5489
|
+
*/
|
|
5490
|
+
tr2bl?: ParsedTableStyleBorder;
|
|
5140
5491
|
}
|
|
5141
5492
|
/**
|
|
5142
5493
|
* Table background style (CT_TableBackgroundStyle, ECMA-376 §21.1.3.7).
|
|
@@ -5204,6 +5555,26 @@ interface ParsedTableStyleEntry {
|
|
|
5204
5555
|
swCellText?: ParsedTableStyleText;
|
|
5205
5556
|
neCellText?: ParsedTableStyleText;
|
|
5206
5557
|
nwCellText?: ParsedTableStyleText;
|
|
5558
|
+
/**
|
|
5559
|
+
* Per-role 3D bevel + lighting from `a:tcStyle/a:cell3D` (CT_Cell3D),
|
|
5560
|
+
* distinct from the per-cell `a:tcPr/a:cell3D` {@link PptxTableCellStyle}
|
|
5561
|
+
* already supports. None of PowerPoint's 74 built-in gallery styles use
|
|
5562
|
+
* this (0 hits in the built-in catalogue), so it only matters for a
|
|
5563
|
+
* hand-authored or third-party table style.
|
|
5564
|
+
*/
|
|
5565
|
+
wholeTblCell3D?: PptxTableCell3D;
|
|
5566
|
+
firstRowCell3D?: PptxTableCell3D;
|
|
5567
|
+
lastRowCell3D?: PptxTableCell3D;
|
|
5568
|
+
firstColCell3D?: PptxTableCell3D;
|
|
5569
|
+
lastColCell3D?: PptxTableCell3D;
|
|
5570
|
+
band1HCell3D?: PptxTableCell3D;
|
|
5571
|
+
band2HCell3D?: PptxTableCell3D;
|
|
5572
|
+
band1VCell3D?: PptxTableCell3D;
|
|
5573
|
+
band2VCell3D?: PptxTableCell3D;
|
|
5574
|
+
seCellCell3D?: PptxTableCell3D;
|
|
5575
|
+
swCellCell3D?: PptxTableCell3D;
|
|
5576
|
+
neCellCell3D?: PptxTableCell3D;
|
|
5577
|
+
nwCellCell3D?: PptxTableCell3D;
|
|
5207
5578
|
}
|
|
5208
5579
|
/**
|
|
5209
5580
|
* Map of GUID → table style entry.
|
|
@@ -5226,6 +5597,38 @@ interface ParsedTableStyleEntry {
|
|
|
5226
5597
|
type ParsedTableStyleMap = Record<string, ParsedTableStyleEntry>;
|
|
5227
5598
|
//#endregion
|
|
5228
5599
|
//#region src/core/types/elements.d.ts
|
|
5600
|
+
/**
|
|
5601
|
+
* Accessibility metadata from `p:cNvPr/a:extLst`'s "Mark as decorative"
|
|
5602
|
+
* vendor extension (issue G16). PowerPoint's Alt Text pane writes
|
|
5603
|
+
* `a:ext[@uri='{C183D7F6-B498-43B3-948B-1728B52AA6E4}']/adec:decorative
|
|
5604
|
+
* val="1"` when a shape or image is marked decorative; mixed into the
|
|
5605
|
+
* element variants whose `p:cNvPr` that pane covers.
|
|
5606
|
+
*/
|
|
5607
|
+
interface PptxAccessibilityProperties {
|
|
5608
|
+
/**
|
|
5609
|
+
* Whether the element is marked decorative. When true, alt text /
|
|
5610
|
+
* aria-label / Markdown export should skip describing the element even
|
|
5611
|
+
* when {@link PptxImageProperties.altText} (or similar) is present.
|
|
5612
|
+
*/
|
|
5613
|
+
isDecorative?: boolean;
|
|
5614
|
+
}
|
|
5615
|
+
/**
|
|
5616
|
+
* `a:cNvPicPr/@preferRelativeResize` (issue G13), a picture-only non-visual
|
|
5617
|
+
* property distinct from `a:picLocks`.
|
|
5618
|
+
*/
|
|
5619
|
+
interface PptxPictureNonVisualProperties {
|
|
5620
|
+
/**
|
|
5621
|
+
* `a:cNvPicPr/@preferRelativeResize` (ST_Boolean, defaults to `true` when
|
|
5622
|
+
* absent). Controls whether a picture's crop rectangle is reinterpreted
|
|
5623
|
+
* relative to the picture's ORIGINAL dimensions or its CURRENT
|
|
5624
|
+
* (already-resized) dimensions when it is resized again after being
|
|
5625
|
+
* cropped. Parsed and round-tripped for now; not yet wired into
|
|
5626
|
+
* resize-after-crop arithmetic (this app always uses current-size
|
|
5627
|
+
* semantics, which only diverges from `preferRelativeResize="0"` on a
|
|
5628
|
+
* second resize after a crop).
|
|
5629
|
+
*/
|
|
5630
|
+
preferRelativeResize?: boolean;
|
|
5631
|
+
}
|
|
5229
5632
|
/**
|
|
5230
5633
|
* A text box — a plain rectangle containing text, typically with no
|
|
5231
5634
|
* visible fill or stroke.
|
|
@@ -5259,7 +5662,7 @@ interface TextPptxElement extends PptxElementBase, PptxTextProperties, PptxShape
|
|
|
5259
5662
|
* // => satisfies ShapePptxElement
|
|
5260
5663
|
* ```
|
|
5261
5664
|
*/
|
|
5262
|
-
interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxCustomPathProperties {
|
|
5665
|
+
interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxCustomPathProperties, PptxAccessibilityProperties {
|
|
5263
5666
|
type: 'shape';
|
|
5264
5667
|
}
|
|
5265
5668
|
/**
|
|
@@ -5298,7 +5701,7 @@ interface ConnectorPptxElement extends PptxElementBase, PptxTextProperties, Pptx
|
|
|
5298
5701
|
* // => satisfies ImagePptxElement
|
|
5299
5702
|
* ```
|
|
5300
5703
|
*/
|
|
5301
|
-
interface ImagePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties {
|
|
5704
|
+
interface ImagePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties, PptxAccessibilityProperties, PptxPictureNonVisualProperties {
|
|
5302
5705
|
type: 'image';
|
|
5303
5706
|
}
|
|
5304
5707
|
/**
|
|
@@ -5307,7 +5710,7 @@ interface ImagePptxElement extends PptxElementBase, PptxShapeProperties, PptxCus
|
|
|
5307
5710
|
* Functionally identical to {@link ImagePptxElement} but distinguished by
|
|
5308
5711
|
* the `type` discriminant for semantic clarity.
|
|
5309
5712
|
*/
|
|
5310
|
-
interface PicturePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties {
|
|
5713
|
+
interface PicturePptxElement extends PptxElementBase, PptxShapeProperties, PptxCustomPathProperties, PptxImageProperties, PptxAccessibilityProperties, PptxPictureNonVisualProperties {
|
|
5311
5714
|
type: 'picture';
|
|
5312
5715
|
}
|
|
5313
5716
|
/**
|
|
@@ -5457,6 +5860,14 @@ interface OlePptxElement extends PptxElementBase {
|
|
|
5457
5860
|
* Only meaningful when {@link isLinked} is `true`. ECMA-376 §19.3.1.28.
|
|
5458
5861
|
*/
|
|
5459
5862
|
oleFollowColorScheme?: 'none' | 'full' | 'textAndBackground';
|
|
5863
|
+
/**
|
|
5864
|
+
* `p:link/@updateAutomatic` (`CT_OleObjectLink`, ECMA-376 §19.3.2.4):
|
|
5865
|
+
* whether a LINKED OLE object refreshes automatically from its source
|
|
5866
|
+
* (PowerPoint's Edit Links dialog "Automatic" vs. "Manual" radio buttons).
|
|
5867
|
+
* Only meaningful when {@link isLinked} is `true`. The schema default is
|
|
5868
|
+
* `false`; `undefined` means the source authored no explicit value.
|
|
5869
|
+
*/
|
|
5870
|
+
oleUpdateAutomatic?: boolean;
|
|
5460
5871
|
/** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
|
|
5461
5872
|
extensionXml?: PptxGraphicFrameExtension[];
|
|
5462
5873
|
}
|
|
@@ -6051,12 +6462,50 @@ type PptxAnimationTrigger = 'onClick' | 'onShapeClick' | 'onHover' | 'afterPrevi
|
|
|
6051
6462
|
* is preserved alongside other animations.
|
|
6052
6463
|
*/
|
|
6053
6464
|
type PptxNativeAnimationKind = 'media';
|
|
6465
|
+
/**
|
|
6466
|
+
* `p:spTgt/p:graphicEl` (CT_TLGraphicalObjectBuildElement, ECMA-376 S19.5.34):
|
|
6467
|
+
* identifies exactly which series/category/element of a chart or diagram
|
|
6468
|
+
* build a per-stage effect reveals, when a deck authors one effect per stage
|
|
6469
|
+
* instead of a single staged `p:bldGraphic` reveal.
|
|
6470
|
+
*/
|
|
6471
|
+
interface PptxAnimationGraphicElementTarget {
|
|
6472
|
+
/** Which graphic kind: `p:dgm` (diagram) or `p:chart`. */
|
|
6473
|
+
kind: 'dgm' | 'chart';
|
|
6474
|
+
/** `@_seriesIdx`, 0-based series index, when the target is series-scoped. */
|
|
6475
|
+
seriesIdx?: number;
|
|
6476
|
+
/** `@_categoryIdx`, 0-based category index, when the target is category-scoped. */
|
|
6477
|
+
categoryIdx?: number;
|
|
6478
|
+
/** `@_bldStep` (ST_TLChartBuildStep): `category` / `categoryEl` / `series` / `seriesEl`. */
|
|
6479
|
+
bldStep?: string;
|
|
6480
|
+
}
|
|
6481
|
+
/**
|
|
6482
|
+
* `p:spTgt/p:oleChartEl` (CT_TLOleChartTargetElement, ECMA-376 S19.5.44):
|
|
6483
|
+
* legacy pre-DrawingML OLE Graph chart sub-element targeting.
|
|
6484
|
+
*/
|
|
6485
|
+
interface PptxAnimationOleChartElementTarget {
|
|
6486
|
+
/** `@_type` (ST_TLOleChartSubelementType): entireChart / series / category / ... */
|
|
6487
|
+
subelementType: string;
|
|
6488
|
+
/** `@_lvl`, optional sub-element level. */
|
|
6489
|
+
level?: number;
|
|
6490
|
+
}
|
|
6054
6491
|
/** A target selected by `p:tgtEl` in the PresentationML timing model. */
|
|
6055
6492
|
type PptxAnimationTarget = {
|
|
6056
6493
|
type: 'shape';
|
|
6057
6494
|
shapeId: string;
|
|
6058
6495
|
/** Whether `p:spTgt/p:bg` limits the effect to the shape background. */
|
|
6059
6496
|
backgroundOnly?: boolean;
|
|
6497
|
+
/**
|
|
6498
|
+
* `p:spTgt/p:subSp/@_spid`: the id of a shape NESTED inside the group
|
|
6499
|
+
* named by {@link shapeId} (CT_TLSubShapeId, ECMA-376 S19.5.71).
|
|
6500
|
+
* PowerPoint authors this when a user animates one member of a group
|
|
6501
|
+
* without ungrouping it: `shapeId` stays the outer group's id for
|
|
6502
|
+
* round-trip, but this sub-shape is the real playback target.
|
|
6503
|
+
*/
|
|
6504
|
+
subShapeId?: string;
|
|
6505
|
+
/** `p:spTgt/p:graphicEl`: chart/diagram series/category/element target. */
|
|
6506
|
+
graphicElement?: PptxAnimationGraphicElementTarget;
|
|
6507
|
+
/** `p:spTgt/p:oleChartEl`: legacy OLE chart sub-element target. */
|
|
6508
|
+
oleChartElement?: PptxAnimationOleChartElementTarget;
|
|
6060
6509
|
rawXml?: XmlObject;
|
|
6061
6510
|
} | {
|
|
6062
6511
|
type: 'slide';
|
|
@@ -6436,6 +6885,46 @@ interface PptxNativeAnimation {
|
|
|
6436
6885
|
* PowerPoint that only emit the SMIL-style filter string.
|
|
6437
6886
|
*/
|
|
6438
6887
|
effectFilter?: PptxAnimationEffectFilter;
|
|
6888
|
+
/**
|
|
6889
|
+
* This effect's own `p:cTn/@_id` (a raw OOXML time-node id, not a shape
|
|
6890
|
+
* id). Lets playback resolve a `p:cond/@tn` dependency (see
|
|
6891
|
+
* {@link AnimationCondition.targetTimeNodeId}) against the SPECIFIC node
|
|
6892
|
+
* it names rather than assuming it is always the positionally-previous
|
|
6893
|
+
* effect. Absent when the node carried no `@_id`.
|
|
6894
|
+
*/
|
|
6895
|
+
nodeId?: number;
|
|
6896
|
+
/**
|
|
6897
|
+
* Interpolation mode for this effect's PRIMARY `p:anim`-family behaviour
|
|
6898
|
+
* (the same node {@link keyframes}/{@link attrName} were read from), from
|
|
6899
|
+
* `@_calcmode` (ST_TLAnimateBehaviorCalcMode, ECMA-376 S19.5.2). See
|
|
6900
|
+
* {@link PptxAttributeAnimation.calcMode} for the per-component version.
|
|
6901
|
+
*/
|
|
6902
|
+
calcMode?: 'discrete' | 'lin' | 'fmla';
|
|
6903
|
+
/**
|
|
6904
|
+
* `p:cBhvr/@_additive` (ST_TLBehaviorAdditiveType, ECMA-376 S19.5.4):
|
|
6905
|
+
* controls how this behaviour's value composites with sibling behaviours
|
|
6906
|
+
* driving the same attribute on the same target. `sum` accumulates
|
|
6907
|
+
* (e.g. a combined scale+rotate), `repl`/`base`/`none`/`mult` replace or
|
|
6908
|
+
* otherwise combine. Absent means the OOXML default (`base`).
|
|
6909
|
+
*/
|
|
6910
|
+
cBhvrAdditive?: 'base' | 'sum' | 'repl' | 'mult' | 'none';
|
|
6911
|
+
/**
|
|
6912
|
+
* `p:cBhvr/@_accumulate` (ST_TLBehaviorAccumulateType): `always` means
|
|
6913
|
+
* each `p:cTn/@repeatCount` repeat starts from the PREVIOUS repeat's end
|
|
6914
|
+
* value (e.g. a 3x Spin totals 1080deg instead of replaying 0-360 three
|
|
6915
|
+
* times); `none` (the OOXML default) resets every repeat.
|
|
6916
|
+
*/
|
|
6917
|
+
cBhvrAccumulate?: 'none' | 'always';
|
|
6918
|
+
/**
|
|
6919
|
+
* `p:cBhvr/@_xfrmType` (only meaningful on `p:animMotion`): `point`
|
|
6920
|
+
* (default) or `img`, a legacy compatibility hint. Round-tripped only.
|
|
6921
|
+
*/
|
|
6922
|
+
cBhvrXfrmType?: 'point' | 'img';
|
|
6923
|
+
/**
|
|
6924
|
+
* `p:cBhvr/@_override` (ST_TLBehaviorOverrideType): `normal` (default) or
|
|
6925
|
+
* `childStyle`, a legacy compatibility hint. Round-tripped only.
|
|
6926
|
+
*/
|
|
6927
|
+
cBhvrOverride?: 'normal' | 'childStyle';
|
|
6439
6928
|
}
|
|
6440
6929
|
/**
|
|
6441
6930
|
* Parsed `p:animEffect/@filter` (+ `@transition`) descriptor. ECMA-376
|
|
@@ -6502,6 +6991,14 @@ interface PptxAttributeAnimation {
|
|
|
6502
6991
|
durationMs?: number;
|
|
6503
6992
|
/** Start offset from this behaviour's nested `p:stCondLst`. */
|
|
6504
6993
|
delayMs?: number;
|
|
6994
|
+
/**
|
|
6995
|
+
* Interpolation mode from this behaviour's own `@_calcmode`
|
|
6996
|
+
* (ST_TLAnimateBehaviorCalcMode, ECMA-376 S19.5.2): `discrete` snaps to
|
|
6997
|
+
* each `p:tav` stop with no interpolation, `lin` (the OOXML default)
|
|
6998
|
+
* interpolates linearly, `fmla` evaluates `p:tav/@fmla` (not consulted at
|
|
6999
|
+
* playback here; formulas are round-tripped only). Absent means `lin`.
|
|
7000
|
+
*/
|
|
7001
|
+
calcMode?: 'discrete' | 'lin' | 'fmla';
|
|
6505
7002
|
}
|
|
6506
7003
|
/** Signed HSL channel deltas parsed from `p:animClr/p:by/p:hsl`. */
|
|
6507
7004
|
interface PptxHslColorDelta {
|
|
@@ -6568,7 +7065,7 @@ interface PptxTextAnimationTarget {
|
|
|
6568
7065
|
* These map directly to OOXML condition event attribute values
|
|
6569
7066
|
* (ISO/IEC 29500-1 S19.5.28 CT_TLTimeCondition).
|
|
6570
7067
|
*/
|
|
6571
|
-
type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio';
|
|
7068
|
+
type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio' | 'onDblClick';
|
|
6572
7069
|
/**
|
|
6573
7070
|
* Structured representation of a single OOXML animation condition
|
|
6574
7071
|
* from `p:cond` elements inside `p:stCondLst` or `p:endCondLst`.
|
|
@@ -7908,10 +8405,32 @@ interface PptxPresentationProperties {
|
|
|
7908
8405
|
printProperties?: PptxPresentationPrintProperties | null;
|
|
7909
8406
|
/** Most-recently-used colours from the presentation palette. */
|
|
7910
8407
|
mruColors?: string[];
|
|
7911
|
-
/**
|
|
8408
|
+
/**
|
|
8409
|
+
* Pen colour for presentation mode annotations (from `p:showPr/p:penClr`).
|
|
8410
|
+
* `p:penClr` is a full `EG_ColorChoice` (P1-G2): a scheme/preset/system
|
|
8411
|
+
* swatch resolves to a hex string here just like a direct `a:srgbClr`.
|
|
8412
|
+
*/
|
|
7912
8413
|
penColor?: string;
|
|
8414
|
+
/**
|
|
8415
|
+
* The resolved hex value {@link penColor} had at parse time, and the
|
|
8416
|
+
* original `p:penClr` colour-choice XML node, preserved so a save that
|
|
8417
|
+
* never touches the pen colour re-emits the original scheme/preset
|
|
8418
|
+
* reference verbatim instead of flattening it to a baked `a:srgbClr`.
|
|
8419
|
+
* Internal round-trip bookkeeping; not meant to be set by API callers.
|
|
8420
|
+
*/
|
|
8421
|
+
penColorOriginal?: string;
|
|
8422
|
+
/** @see penColorOriginal */
|
|
8423
|
+
penColorXml?: XmlObject;
|
|
7913
8424
|
/** Kiosk auto-restart interval in milliseconds (from `p:kiosk/@restart`). Only meaningful when showType is "kiosk". */
|
|
7914
8425
|
kioskRestartTime?: number;
|
|
8426
|
+
/**
|
|
8427
|
+
* `p:showPr/p:browse/@showScrollbar` (CT_ShowInfoBrowse §19.2.1.10 /
|
|
8428
|
+
* §19.3.1.43), the "Show scrollbar" checkbox in PowerPoint's Set Up Show
|
|
8429
|
+
* dialog. Only meaningful when `showType` is `"browsed"`; the schema
|
|
8430
|
+
* default is `true`. `undefined` means the source authored no explicit
|
|
8431
|
+
* value (or `showType` is not `"browsed"`).
|
|
8432
|
+
*/
|
|
8433
|
+
showScrollbar?: boolean;
|
|
7915
8434
|
}
|
|
7916
8435
|
/**
|
|
7917
8436
|
* Slide dimensions from `p:sldSz` (CT_SlideSize, ECMA-376 §19.2.1.39).
|
|
@@ -9913,6 +10432,41 @@ type ChartBuildMode = 'asOne' | 'bySeries' | 'byCategory' | 'byElement';
|
|
|
9913
10432
|
* - `byLvlAtOnce` a whole level is revealed per stage (`lvlAtOnce`).
|
|
9914
10433
|
*/
|
|
9915
10434
|
type DiagramBuildMode = 'asOne' | 'byOne' | 'byLvl' | 'byLvlAtOnce';
|
|
10435
|
+
/**
|
|
10436
|
+
* One authored `p:graphicEl` reveal unit resolved onto a chart, per
|
|
10437
|
+
* `TimelineStepGraphicElement`'s "both indices set" case: a single (series,
|
|
10438
|
+
* category) cell revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect.
|
|
10439
|
+
*/
|
|
10440
|
+
interface ChartRevealPoint {
|
|
10441
|
+
seriesIdx: number;
|
|
10442
|
+
categoryIdx: number;
|
|
10443
|
+
}
|
|
10444
|
+
/**
|
|
10445
|
+
* Playback-time chart reveal state derived from AUTHORED `p:graphicEl`
|
|
10446
|
+
* indices (see `chart-reveal-descriptor`'s `resolveChartRevealDescriptor`),
|
|
10447
|
+
* rather than from click-count/time progress. Present on
|
|
10448
|
+
* {@link ElementAnimationState.chartReveal} only when every fired
|
|
10449
|
+
* chart-build step for the element carried index data; a renderer prefers
|
|
10450
|
+
* this over the progress-based `build`/`ElementBuildState` path when present,
|
|
10451
|
+
* since it reflects the real authored reveal set (correct even for a
|
|
10452
|
+
* reversed-order or gapped chart build), and falls back to `build` when
|
|
10453
|
+
* absent.
|
|
10454
|
+
*/
|
|
10455
|
+
interface ChartRevealDescriptor {
|
|
10456
|
+
/**
|
|
10457
|
+
* Whether the chart's background/axes/gridlines/legend should currently be
|
|
10458
|
+
* visible: always `true` when the chart's `animateBackground` is `false`
|
|
10459
|
+
* ("shown throughout"), otherwise `true` from the first revealed stage
|
|
10460
|
+
* onward.
|
|
10461
|
+
*/
|
|
10462
|
+
background: boolean;
|
|
10463
|
+
/** Whole series revealed by a `bldStep="series"` effect. */
|
|
10464
|
+
series: ReadonlySet<number>;
|
|
10465
|
+
/** Whole categories revealed by a `bldStep="category"` effect. */
|
|
10466
|
+
categories: ReadonlySet<number>;
|
|
10467
|
+
/** Individual cells revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect. */
|
|
10468
|
+
points: readonly ChartRevealPoint[];
|
|
10469
|
+
}
|
|
9916
10470
|
/**
|
|
9917
10471
|
* Playback-time staged-build state surfaced on {@link ElementAnimationState}.
|
|
9918
10472
|
* `progress` is the 0..1 fraction of the build revealed at the current playback
|
|
@@ -9943,6 +10497,16 @@ interface ElementAnimationState {
|
|
|
9943
10497
|
* whole-element entrances, so existing renderers are unaffected.
|
|
9944
10498
|
*/
|
|
9945
10499
|
build?: ElementBuildState;
|
|
10500
|
+
/**
|
|
10501
|
+
* Authored-index chart reveal state (see {@link ChartRevealDescriptor}),
|
|
10502
|
+
* present only when every fired chart-build step for this element carried
|
|
10503
|
+
* `p:graphicEl` index data. A chart renderer prefers this over `build` when
|
|
10504
|
+
* present; `chart-build`'s `resolveRevealedChartData` picks between the two.
|
|
10505
|
+
*/
|
|
10506
|
+
chartReveal?: {
|
|
10507
|
+
mode: ChartBuildMode;
|
|
10508
|
+
descriptor: ChartRevealDescriptor;
|
|
10509
|
+
};
|
|
9946
10510
|
/**
|
|
9947
10511
|
* True when an active `p:animClr` color animation targets this shape's fill.
|
|
9948
10512
|
* A vector renderer should then paint the fill with `fill: inherit` so the
|
|
@@ -11208,6 +11772,8 @@ interface ToolbarProps {
|
|
|
11208
11772
|
onUpdateElementStyle: (updates: Partial<ShapeStyle>) => void;
|
|
11209
11773
|
/** How many elements the multi-select currently holds. */
|
|
11210
11774
|
selectedCount: number;
|
|
11775
|
+
/** Whether every selected element allows `a:spLocks/@noGrp` grouping. */
|
|
11776
|
+
selectionGroupable: boolean;
|
|
11211
11777
|
/** Open the hyperlink editor for the current selection. */
|
|
11212
11778
|
onOpenHyperlinkDialog: () => void;
|
|
11213
11779
|
onDuplicate: () => void;
|
|
@@ -12154,6 +12720,11 @@ interface UsePresentationModeInput {
|
|
|
12154
12720
|
onPlayActionSound?: (soundPath: string, options?: {
|
|
12155
12721
|
loop?: boolean;
|
|
12156
12722
|
}) => void;
|
|
12723
|
+
/**
|
|
12724
|
+
* Stop the currently-playing action/transition sound (`p:sndAc/p:endSnd`,
|
|
12725
|
+
* PowerPoint's transition "Stop Previous Sound").
|
|
12726
|
+
*/
|
|
12727
|
+
onStopActionSound?: () => void;
|
|
12157
12728
|
/** Select a pointer tool (Ctrl+L laser, Ctrl+P pen, Ctrl+A arrow, Ctrl+E eraser). */
|
|
12158
12729
|
onSetPointerTool?: (tool: PresentationPointerTool | 'arrow') => void;
|
|
12159
12730
|
/** Erase the current slide's ink annotations (E). */
|
|
@@ -13248,6 +13819,8 @@ interface ElementManipulationHandlers {
|
|
|
13248
13819
|
handleAlignElements: (align: string) => void;
|
|
13249
13820
|
handleDistributeElements: (axis: string) => void;
|
|
13250
13821
|
canDistribute: boolean;
|
|
13822
|
+
/** Whether every currently selected element allows `a:spLocks/@noGrp` grouping. */
|
|
13823
|
+
selectionGroupable: boolean;
|
|
13251
13824
|
handleMoveLayer: (direction: string) => void;
|
|
13252
13825
|
handleMoveLayerToEdge: (direction: string) => void;
|
|
13253
13826
|
handleMergeShapes: (operation: MergeShapeOperation) => void;
|
|
@@ -13268,6 +13841,8 @@ interface GroupAlignLayerHandlers {
|
|
|
13268
13841
|
handleAlignElements: (align: string) => void;
|
|
13269
13842
|
handleDistributeElements: (axis: string) => void;
|
|
13270
13843
|
canDistribute: boolean;
|
|
13844
|
+
/** Whether every currently selected element allows `a:spLocks/@noGrp` grouping. */
|
|
13845
|
+
selectionGroupable: boolean;
|
|
13271
13846
|
handleMoveLayer: (direction: string) => void;
|
|
13272
13847
|
handleMoveLayerToEdge: (direction: string) => void;
|
|
13273
13848
|
handleMergeShapes: (operation: MergeShapeOperation) => void;
|
|
@@ -14773,6 +15348,8 @@ interface UseSlideNavigationInput {
|
|
|
14773
15348
|
onSetMode: (mode: ViewerMode) => void;
|
|
14774
15349
|
onSetActiveSlideIndex: (index: number) => void;
|
|
14775
15350
|
onPlayActionSound?: (soundPath: string) => void;
|
|
15351
|
+
/** Stop the current transition sound (`p:sndAc/p:endSnd`). See `slide-transition.ts`. */
|
|
15352
|
+
onStopActionSound?: () => void;
|
|
14776
15353
|
loopContinuously?: boolean;
|
|
14777
15354
|
/** Whether to use rehearsed auto-advance timings. When false, slides advance only on click. */
|
|
14778
15355
|
useTimings?: boolean;
|