pptx-react-viewer 2.22.0 → 3.0.1
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 +60 -0
- package/dist/{AiChatPanel-KDHDYBMP.mjs → AiChatPanel-DMBQPAGB.mjs} +3 -3
- package/dist/AiChatPanel-DMBQPAGB.mjs.br +0 -0
- package/dist/AiChatPanel-DMBQPAGB.mjs.gz +0 -0
- package/dist/{AiChatPanel-WVRT4OLF.js → AiChatPanel-NLIUZ5RI.js} +23 -23
- package/dist/AiChatPanel-NLIUZ5RI.js.br +0 -0
- package/dist/AiChatPanel-NLIUZ5RI.js.gz +0 -0
- package/dist/{Model3DScene-COI2CG35.js → Model3DScene-JNZN42TU.js} +2 -2
- package/dist/Model3DScene-JNZN42TU.js.br +0 -0
- package/dist/Model3DScene-JNZN42TU.js.gz +0 -0
- package/dist/{Model3DScene-I5SQKIZC.mjs → Model3DScene-ZO6U7YVU.mjs} +1 -1
- package/dist/Model3DScene-ZO6U7YVU.mjs.br +0 -0
- package/dist/Model3DScene-ZO6U7YVU.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-6LTF5QPW.mjs → SurfaceChart3DScene-P6CVRWDQ.mjs} +1 -1
- package/dist/SurfaceChart3DScene-P6CVRWDQ.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-P6CVRWDQ.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-2N4TPYPU.js → SurfaceChart3DScene-PGD4ZCLI.js} +2 -2
- package/dist/SurfaceChart3DScene-PGD4ZCLI.js.br +0 -0
- package/dist/SurfaceChart3DScene-PGD4ZCLI.js.gz +0 -0
- package/dist/{chunk-YNHWNFE3.js → chunk-3MW6F3K7.js} +451 -399
- package/dist/chunk-3MW6F3K7.js.br +0 -0
- package/dist/chunk-3MW6F3K7.js.gz +0 -0
- package/dist/{chunk-KK6DOUES.js → chunk-54SDLPJY.js} +1275 -1248
- package/dist/chunk-54SDLPJY.js.br +0 -0
- package/dist/chunk-54SDLPJY.js.gz +0 -0
- package/dist/{chunk-TWU72BY4.mjs → chunk-BGAJLL4N.mjs} +70 -18
- package/dist/chunk-BGAJLL4N.mjs.br +0 -0
- package/dist/chunk-BGAJLL4N.mjs.gz +0 -0
- package/dist/{chunk-RJFKXPMU.mjs → chunk-OB4PKKIN.mjs} +1 -1
- package/dist/chunk-OB4PKKIN.mjs.br +0 -0
- package/dist/chunk-OB4PKKIN.mjs.gz +0 -0
- package/dist/{chunk-57TM4MV4.mjs → chunk-OXPD2UYI.mjs} +13085 -6709
- package/dist/chunk-OXPD2UYI.mjs.br +0 -0
- package/dist/chunk-OXPD2UYI.mjs.gz +0 -0
- package/dist/{chunk-7BZYDUNM.mjs → chunk-S6PFSR7I.mjs} +108 -255
- package/dist/chunk-S6PFSR7I.mjs.br +0 -0
- package/dist/chunk-S6PFSR7I.mjs.gz +0 -0
- package/dist/{chunk-34UAGEJM.js → chunk-SDOQKSKI.js} +13103 -6715
- package/dist/chunk-SDOQKSKI.js.br +0 -0
- package/dist/chunk-SDOQKSKI.js.gz +0 -0
- package/dist/{chunk-XIBTR7KJ.mjs → chunk-VGHEHM66.mjs} +254 -227
- package/dist/chunk-VGHEHM66.mjs.br +0 -0
- package/dist/chunk-VGHEHM66.mjs.gz +0 -0
- package/dist/{chunk-POP5IWYB.js → chunk-WFMSDYVQ.js} +3 -3
- package/dist/chunk-WFMSDYVQ.js.br +0 -0
- package/dist/chunk-WFMSDYVQ.js.gz +0 -0
- package/dist/{chunk-K7TFZ5MW.js → chunk-XMLPTDPM.js} +248 -396
- package/dist/chunk-XMLPTDPM.js.br +0 -0
- package/dist/chunk-XMLPTDPM.js.gz +0 -0
- package/dist/index.d.ts +475 -19
- package/dist/index.js +45 -45
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +492 -21
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/viewer/index.d.ts +472 -17
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +2 -2
- package/dist/AiChatPanel-KDHDYBMP.mjs.br +0 -0
- package/dist/AiChatPanel-KDHDYBMP.mjs.gz +0 -0
- package/dist/AiChatPanel-WVRT4OLF.js.br +0 -0
- package/dist/AiChatPanel-WVRT4OLF.js.gz +0 -0
- package/dist/Model3DScene-COI2CG35.js.br +0 -0
- package/dist/Model3DScene-COI2CG35.js.gz +0 -0
- package/dist/Model3DScene-I5SQKIZC.mjs.br +0 -0
- package/dist/Model3DScene-I5SQKIZC.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-2N4TPYPU.js.br +0 -0
- package/dist/SurfaceChart3DScene-2N4TPYPU.js.gz +0 -0
- package/dist/SurfaceChart3DScene-6LTF5QPW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-6LTF5QPW.mjs.gz +0 -0
- package/dist/chunk-34UAGEJM.js.br +0 -0
- package/dist/chunk-34UAGEJM.js.gz +0 -0
- package/dist/chunk-57TM4MV4.mjs.br +0 -0
- package/dist/chunk-57TM4MV4.mjs.gz +0 -0
- package/dist/chunk-7BZYDUNM.mjs.br +0 -0
- package/dist/chunk-7BZYDUNM.mjs.gz +0 -0
- package/dist/chunk-K7TFZ5MW.js.br +0 -0
- package/dist/chunk-K7TFZ5MW.js.gz +0 -0
- package/dist/chunk-KK6DOUES.js.br +0 -0
- package/dist/chunk-KK6DOUES.js.gz +0 -0
- package/dist/chunk-POP5IWYB.js.br +0 -0
- package/dist/chunk-POP5IWYB.js.gz +0 -0
- package/dist/chunk-RJFKXPMU.mjs.br +0 -0
- package/dist/chunk-RJFKXPMU.mjs.gz +0 -0
- package/dist/chunk-TWU72BY4.mjs.br +0 -0
- package/dist/chunk-TWU72BY4.mjs.gz +0 -0
- package/dist/chunk-XIBTR7KJ.mjs.br +0 -0
- package/dist/chunk-XIBTR7KJ.mjs.gz +0 -0
- package/dist/chunk-YNHWNFE3.js.br +0 -0
- package/dist/chunk-YNHWNFE3.js.gz +0 -0
package/dist/internals.d.ts
CHANGED
|
@@ -741,6 +741,13 @@ interface Pptx3DScene {
|
|
|
741
741
|
* ```
|
|
742
742
|
*/
|
|
743
743
|
interface Pptx3DShape {
|
|
744
|
+
/**
|
|
745
|
+
* Position of the shape along the Z axis, in EMU (`a:sp3d/@z`, default 0).
|
|
746
|
+
* Independent of {@link extrusionHeight}: it moves the whole shape forward
|
|
747
|
+
* or back in 3D space rather than adding depth to it, most commonly used to
|
|
748
|
+
* stack several shapes at different depths under one `a:scene3d` camera.
|
|
749
|
+
*/
|
|
750
|
+
positionZ?: number;
|
|
744
751
|
/** Extrusion height in EMU. */
|
|
745
752
|
extrusionHeight?: number;
|
|
746
753
|
/** Extrusion colour. */
|
|
@@ -1281,12 +1288,12 @@ interface TextStyle {
|
|
|
1281
1288
|
resolvedParagraphGeometry?: TextStyle;
|
|
1282
1289
|
fontFamily?: string;
|
|
1283
1290
|
fontSize?: number;
|
|
1284
|
-
/** When true,
|
|
1291
|
+
/** When true, some form of autofit is in effect; see {@link autoFitMode} for which. */
|
|
1285
1292
|
autoFit?: boolean;
|
|
1286
1293
|
/** Explicit autofit mode from OOXML body properties.
|
|
1287
|
-
* - 'shrink': `a:spAutoFit`
|
|
1288
|
-
* - 'normal': `a:normAutofit`
|
|
1289
|
-
* - 'none': `a:noAutofit`
|
|
1294
|
+
* - 'shrink': `a:spAutoFit` - resize the SHAPE to fit the text (never the font)
|
|
1295
|
+
* - 'normal': `a:normAutofit` - shrink the TEXT to fit the shape (via `fontScale`/`lnSpcReduction`)
|
|
1296
|
+
* - 'none': `a:noAutofit` - explicitly no auto-fit (text overflows)
|
|
1290
1297
|
* - undefined: no autofit element present (inherit from layout/master)
|
|
1291
1298
|
*/
|
|
1292
1299
|
autoFitMode?: 'shrink' | 'normal' | 'none';
|
|
@@ -1677,6 +1684,18 @@ interface TextStyle {
|
|
|
1677
1684
|
textBodyScene3d?: Pptx3DScene;
|
|
1678
1685
|
/** Raw `a:scene3d` subtree used to preserve extensions and unmodelled children. */
|
|
1679
1686
|
textBodyScene3dXml?: XmlObject;
|
|
1687
|
+
/**
|
|
1688
|
+
* `a:bodyPr/a:flatTx` - an explicit "render this text flat" marker. `sp3d`
|
|
1689
|
+
* and `flatTx` are a mutually exclusive OOXML choice (`EG_Text3D`), so a
|
|
1690
|
+
* shape/run that overrides an inherited 3D text body with `<a:flatTx/>`
|
|
1691
|
+
* carries no `text3d` of its own; without this explicit flag a later
|
|
1692
|
+
* inheritance merge has no signal to stop `text3d`/`textBodyScene3d` from
|
|
1693
|
+
* an ancestor (layout/master) leaking back in, the way `noFill` stops an
|
|
1694
|
+
* inherited fill. A renderer must short-circuit 3D-text application
|
|
1695
|
+
* whenever this is `true`, regardless of what `text3d`/`textBodyScene3d`
|
|
1696
|
+
* otherwise hold.
|
|
1697
|
+
*/
|
|
1698
|
+
flatText?: boolean;
|
|
1680
1699
|
/**
|
|
1681
1700
|
* Raw `<a:extLst>` subtree captured from `<a:bodyPr>`. Preserved verbatim so
|
|
1682
1701
|
* authored extensions (e.g. content placeholders, custom application data)
|
|
@@ -1952,6 +1971,24 @@ interface PptxElementBase {
|
|
|
1952
1971
|
* SDK-created elements.
|
|
1953
1972
|
*/
|
|
1954
1973
|
placeholderType?: string;
|
|
1974
|
+
/**
|
|
1975
|
+
* `p:nvSpPr/p:nvPr/p:ph/@sz` (lower-cased): `"full"`, `"half"`, or
|
|
1976
|
+
* `"quarter"`. Captured on load for round-trip completeness. Per
|
|
1977
|
+
* ECMA-376 §19.3.1.36 (CT_Placeholder) this size hint is only meaningful
|
|
1978
|
+
* when NO `a:xfrm` exists anywhere in the placeholder's inheritance
|
|
1979
|
+
* chain (slide -> layout -> master); every real-world corpus placeholder
|
|
1980
|
+
* that carries `@sz` already has an explicit `a:xfrm` at the master
|
|
1981
|
+
* level, so no renderer currently derives a size from this field.
|
|
1982
|
+
*/
|
|
1983
|
+
placeholderSz?: string;
|
|
1984
|
+
/**
|
|
1985
|
+
* `p:nvSpPr/p:nvPr/p:ph/@orient` (only `"vert"` is meaningful per
|
|
1986
|
+
* `ST_Direction`). Captured on load for round-trip completeness. In
|
|
1987
|
+
* practice every placeholder observed with `orient="vert"` also carries
|
|
1988
|
+
* an explicit `a:bodyPr/@vert`, which already drives vertical-text
|
|
1989
|
+
* rendering, so this field is not currently read by any renderer.
|
|
1990
|
+
*/
|
|
1991
|
+
placeholderOrient?: 'vert';
|
|
1955
1992
|
x: number;
|
|
1956
1993
|
y: number;
|
|
1957
1994
|
width: number;
|
|
@@ -2414,6 +2451,14 @@ interface PptxChartDataTable {
|
|
|
2414
2451
|
showVertBorder?: boolean;
|
|
2415
2452
|
showOutline?: boolean;
|
|
2416
2453
|
showKeys?: boolean;
|
|
2454
|
+
/** Table border/fill formatting (`c:dTable/c:spPr`). */
|
|
2455
|
+
spPr?: PptxChartShapeProps;
|
|
2456
|
+
/**
|
|
2457
|
+
* Cell text defaults (`c:dTable/c:txPr/a:p/a:pPr/a:defRPr`). Reuses the same
|
|
2458
|
+
* shape as a legend entry's text override since both are a flat paragraph
|
|
2459
|
+
* default-run-property style (size/bold/italic/font/colour).
|
|
2460
|
+
*/
|
|
2461
|
+
txPr?: PptxChartLegendTextStyle;
|
|
2417
2462
|
}
|
|
2418
2463
|
/**
|
|
2419
2464
|
* Line appearance for chart helper lines (drop lines, hi-low lines).
|
|
@@ -2572,6 +2617,15 @@ interface PptxChart3DSurface {
|
|
|
2572
2617
|
thickness?: number;
|
|
2573
2618
|
spPr?: PptxChartShapeProps;
|
|
2574
2619
|
}
|
|
2620
|
+
/**
|
|
2621
|
+
* One colour band for a surface chart (`c:bandFmts/c:bandFmt`,
|
|
2622
|
+
* ECMA-376 §21.2.2.19 / CT_BandFmt). `index` is the band's position
|
|
2623
|
+
* (`c:idx/@val`) among the value axis's major-unit bands, in authored order.
|
|
2624
|
+
*/
|
|
2625
|
+
interface PptxChartBandFmt {
|
|
2626
|
+
index: number;
|
|
2627
|
+
spPr?: PptxChartShapeProps;
|
|
2628
|
+
}
|
|
2575
2629
|
/** Office 2016 ChartEx box-and-whisker series layout options. */
|
|
2576
2630
|
interface PptxChartBoxWhiskerOptions {
|
|
2577
2631
|
quartileMethod?: 'inclusive' | 'exclusive';
|
|
@@ -2987,9 +3041,14 @@ interface PptxChartData {
|
|
|
2987
3041
|
chartType: PptxChartType;
|
|
2988
3042
|
categories: string[];
|
|
2989
3043
|
/**
|
|
2990
|
-
* Hierarchical category levels in source XML order for ChartEx
|
|
2991
|
-
*
|
|
2992
|
-
*
|
|
3044
|
+
* Hierarchical category levels in source XML order, for both ChartEx
|
|
3045
|
+
* hierarchy charts (`cx:multiLvlStrRef`) and classic multi-level category
|
|
3046
|
+
* axes (`c:cat/c:multiLvlStrRef`, e.g. a PowerPoint Quarter > Month
|
|
3047
|
+
* grouping). Level 0 contains the leaf labels and remains mirrored by
|
|
3048
|
+
* {@link categories} for consumers that only understand a flat category
|
|
3049
|
+
* axis. Parent (grouping) levels are forward-filled: a blank cache slot
|
|
3050
|
+
* continues the previous group's label, matching how the source stores a
|
|
3051
|
+
* merged category header sparsely.
|
|
2993
3052
|
*/
|
|
2994
3053
|
categoryLevels?: string[][];
|
|
2995
3054
|
dateCategories?: PptxChartDateCategories;
|
|
@@ -3056,6 +3115,8 @@ interface PptxChartData {
|
|
|
3056
3115
|
floor?: PptxChart3DSurface;
|
|
3057
3116
|
sideWall?: PptxChart3DSurface;
|
|
3058
3117
|
backWall?: PptxChart3DSurface;
|
|
3118
|
+
/** Per-band surface-chart colour overrides (`c:surfaceChart/c:bandFmts`). */
|
|
3119
|
+
bandFmts?: PptxChartBandFmt[];
|
|
3059
3120
|
/** External data source reference (c:externalData) linking to an external workbook. */
|
|
3060
3121
|
externalData?: PptxExternalData;
|
|
3061
3122
|
/**
|
|
@@ -3333,6 +3394,16 @@ interface PptxImageEffects {
|
|
|
3333
3394
|
contRawXml?: Record<string, unknown>;
|
|
3334
3395
|
/** Original effect XML, including foreign attributes. */
|
|
3335
3396
|
rawXml?: XmlObject;
|
|
3397
|
+
/**
|
|
3398
|
+
* Multiplicative alpha percentage (0..100+), read from a nested
|
|
3399
|
+
* `<a:alphaModFix>` inside `contRawXml` when present - the common
|
|
3400
|
+
* real-world shape of `a:alphaMod` (`<a:cont><a:alphaModFix amt="…"/>
|
|
3401
|
+
* </a:cont>`). Derived/read-only: a renderer multiplies the source alpha
|
|
3402
|
+
* by this, distinct from the top-level {@link alphaModFix} sibling
|
|
3403
|
+
* effect. Not written back independently on save; `contRawXml` is what
|
|
3404
|
+
* round-trips.
|
|
3405
|
+
*/
|
|
3406
|
+
amt?: number;
|
|
3336
3407
|
};
|
|
3337
3408
|
/** Alpha replace (`a:alphaRepl`) — replaces alpha with the given fixed-percent value (0..100). */
|
|
3338
3409
|
alphaRepl?: number;
|
|
@@ -3377,6 +3448,40 @@ interface PptxImageEffects {
|
|
|
3377
3448
|
blend: 'over' | 'mult' | 'screen' | 'darken' | 'lighten';
|
|
3378
3449
|
/** Raw opaque fill XML preserved for round-trip. */
|
|
3379
3450
|
fillRawXml?: Record<string, unknown>;
|
|
3451
|
+
/**
|
|
3452
|
+
* Resolved hex colour, when the overlay fill is a plain `a:solidFill`
|
|
3453
|
+
* (the common case for a picture-style colour overlay). `undefined` for
|
|
3454
|
+
* a gradient/pattern/picture overlay fill - see {@link resolvedGradient} /
|
|
3455
|
+
* {@link resolvedPattern} instead. `fillRawXml` still round-trips
|
|
3456
|
+
* losslessly regardless of which of the three resolved.
|
|
3457
|
+
*/
|
|
3458
|
+
resolvedColor?: string;
|
|
3459
|
+
/** Resolved opacity (0-1) of the `a:solidFill` overlay colour, when resolved. */
|
|
3460
|
+
resolvedOpacity?: number;
|
|
3461
|
+
/**
|
|
3462
|
+
* Resolved gradient, when the overlay fill is `a:gradFill`. A renderer
|
|
3463
|
+
* composites this as an SVG paint server (`<linearGradient>` /
|
|
3464
|
+
* `<radialGradient>`) rather than a flat flood colour.
|
|
3465
|
+
*/
|
|
3466
|
+
resolvedGradient?: {
|
|
3467
|
+
type: 'linear' | 'radial';
|
|
3468
|
+
/** Gradient angle in degrees (`a:lin/@ang`), for a linear gradient. */
|
|
3469
|
+
angle?: number;
|
|
3470
|
+
stops: Array<{
|
|
3471
|
+
color: string;
|
|
3472
|
+
position: number;
|
|
3473
|
+
opacity?: number;
|
|
3474
|
+
}>;
|
|
3475
|
+
};
|
|
3476
|
+
/**
|
|
3477
|
+
* Resolved preset pattern, when the overlay fill is `a:pattFill`. A
|
|
3478
|
+
* renderer composites this as a tiled SVG paint server.
|
|
3479
|
+
*/
|
|
3480
|
+
resolvedPattern?: {
|
|
3481
|
+
preset: string;
|
|
3482
|
+
foreground?: string;
|
|
3483
|
+
background?: string;
|
|
3484
|
+
};
|
|
3380
3485
|
};
|
|
3381
3486
|
/** Blur (`a:blur`) — radius in EMU and grow flag. */
|
|
3382
3487
|
blur?: {
|
|
@@ -3456,6 +3561,13 @@ interface PptxImageProperties {
|
|
|
3456
3561
|
tileFlip?: 'none' | 'x' | 'y' | 'xy';
|
|
3457
3562
|
/** Image tiling alignment. */
|
|
3458
3563
|
tileAlignment?: string;
|
|
3564
|
+
/**
|
|
3565
|
+
* Print-resolution hint in DPI (`a:blipFill/@dpi`). PowerPoint records this
|
|
3566
|
+
* when it downsamples an embedded image for a target print quality; it has
|
|
3567
|
+
* no on-screen rendering effect (a `0`/absent value means "use the source
|
|
3568
|
+
* image's native resolution"). Parsed for round-trip / API fidelity only.
|
|
3569
|
+
*/
|
|
3570
|
+
dpi?: number;
|
|
3459
3571
|
/** Image recolour/artistic effect properties. */
|
|
3460
3572
|
imageEffects?: PptxImageEffects;
|
|
3461
3573
|
/** Crop-to-shape — CSS clip-path shape name. */
|
|
@@ -3636,6 +3748,25 @@ interface PptxSmartArtChoose {
|
|
|
3636
3748
|
} | null;
|
|
3637
3749
|
rawXml?: XmlObject;
|
|
3638
3750
|
}
|
|
3751
|
+
/** A single `dgm:adj/@val` adjustment, keyed by its `@idx` (1-based, like `a:gd`). */
|
|
3752
|
+
interface PptxSmartArtShapeAdjustment {
|
|
3753
|
+
index: number;
|
|
3754
|
+
value: number;
|
|
3755
|
+
}
|
|
3756
|
+
/**
|
|
3757
|
+
* Typed DiagramML CT_Shape data (`dgm:shape`) attached to a layout node: the
|
|
3758
|
+
* per-node preset geometry override real (and third-party/custom) layout
|
|
3759
|
+
* definitions use so a layoutNode can be e.g. an ellipse or a chevron instead
|
|
3760
|
+
* of the arranger family's hardcoded default shape.
|
|
3761
|
+
*/
|
|
3762
|
+
interface PptxSmartArtLayoutNodeShape {
|
|
3763
|
+
/** `dgm:shape/@type`: a preset geometry name (`roundRect`, `ellipse`, `chevron`, `conn`, ...). */
|
|
3764
|
+
presetGeometry?: string;
|
|
3765
|
+
/** `dgm:adjLst/dgm:adj` entries (adjustment index -> value, as authored). */
|
|
3766
|
+
adjustments?: PptxSmartArtShapeAdjustment[];
|
|
3767
|
+
/** `dgm:shape/@hideGeom`: the shape is present only to size text, never painted. */
|
|
3768
|
+
hideGeometry?: boolean;
|
|
3769
|
+
}
|
|
3639
3770
|
/** Identity and ordering metadata from DiagramML CT_LayoutNode. */
|
|
3640
3771
|
interface PptxSmartArtLayoutNode {
|
|
3641
3772
|
name?: string;
|
|
@@ -3647,6 +3778,8 @@ interface PptxSmartArtLayoutNode {
|
|
|
3647
3778
|
choose?: PptxSmartArtChoose[];
|
|
3648
3779
|
constraints?: PptxSmartArtConstraint[];
|
|
3649
3780
|
rules?: PptxSmartArtNumericRule[];
|
|
3781
|
+
/** `dgm:shape`: this node's own preset geometry override, when present. */
|
|
3782
|
+
shape?: PptxSmartArtLayoutNodeShape;
|
|
3650
3783
|
children?: PptxSmartArtLayoutNode[];
|
|
3651
3784
|
}
|
|
3652
3785
|
/** Metadata and root node from DiagramML CT_DiagramDefinition. */
|
|
@@ -3770,6 +3903,61 @@ interface PptxSmartArtNodeStyle {
|
|
|
3770
3903
|
/** Italic emphasis override for the node's runs. */
|
|
3771
3904
|
italic?: boolean;
|
|
3772
3905
|
}
|
|
3906
|
+
/**
|
|
3907
|
+
* Manual layout override for a `type="pres"` presentation point, read from its
|
|
3908
|
+
* `dgm:prSet` attributes. PowerPoint writes these when the user drags, resizes,
|
|
3909
|
+
* rotates, or flips a SmartArt node by hand in its own diagram editor; without
|
|
3910
|
+
* them the node silently reverts to its algorithmic position whenever there is
|
|
3911
|
+
* no cached `dsp:` drawing part to fall back on.
|
|
3912
|
+
*
|
|
3913
|
+
* Every field is optional: only the attributes actually present on `prSet` are
|
|
3914
|
+
* populated. Angle and scale/factor units are already normalised to degrees and
|
|
3915
|
+
* plain ratios (a `custScaleX="150000"` becomes `scaleX: 1.5`), so a consumer
|
|
3916
|
+
* never has to know the raw `60000ths-of-a-degree` / `100000ths-of-a-percent`
|
|
3917
|
+
* XML encodings.
|
|
3918
|
+
*
|
|
3919
|
+
* @example
|
|
3920
|
+
* ```ts
|
|
3921
|
+
* const custom: SmartArtNodeCustomLayout = { angle: 15, scaleX: 1.2 };
|
|
3922
|
+
* // => a node manually rotated 15 degrees and widened 20% in PowerPoint
|
|
3923
|
+
* ```
|
|
3924
|
+
*/
|
|
3925
|
+
interface SmartArtNodeCustomLayout {
|
|
3926
|
+
/** `custAng`: additional rotation in degrees. */
|
|
3927
|
+
angle?: number;
|
|
3928
|
+
/** `custScaleX`: horizontal scale ratio (1 = no change). */
|
|
3929
|
+
scaleX?: number;
|
|
3930
|
+
/** `custScaleY`: vertical scale ratio (1 = no change). */
|
|
3931
|
+
scaleY?: number;
|
|
3932
|
+
/** `custSzX`: horizontal size ratio, layered on top of {@link scaleX}. */
|
|
3933
|
+
sizeX?: number;
|
|
3934
|
+
/** `custSzY`: vertical size ratio, layered on top of {@link scaleY}. */
|
|
3935
|
+
sizeY?: number;
|
|
3936
|
+
/** `custFlipHor`: the node was manually mirrored horizontally. */
|
|
3937
|
+
flipHorizontal?: boolean;
|
|
3938
|
+
/** `custFlipVert`: the node was manually mirrored vertically. */
|
|
3939
|
+
flipVertical?: boolean;
|
|
3940
|
+
/** `custLinFactX`: manual position nudge along X, as a fraction of the container width. */
|
|
3941
|
+
linearFactorX?: number;
|
|
3942
|
+
/** `custLinFactY`: manual position nudge along Y, as a fraction of the container height. */
|
|
3943
|
+
linearFactorY?: number;
|
|
3944
|
+
/**
|
|
3945
|
+
* `custLinFactNeighborX`: spacing compensation applied to a NEIGHBOURING
|
|
3946
|
+
* node when this one is resized. Parsed for round-trip completeness; not
|
|
3947
|
+
* applied by the per-node final transform (it has no effect on this node's
|
|
3948
|
+
* own geometry; folding it into a neighbour's geometry would require
|
|
3949
|
+
* whole-layout awareness the final transform pass does not have).
|
|
3950
|
+
*/
|
|
3951
|
+
linearFactorNeighborX?: number;
|
|
3952
|
+
/** `custLinFactNeighborY`: see {@link linearFactorNeighborX} (Y axis). */
|
|
3953
|
+
linearFactorNeighborY?: number;
|
|
3954
|
+
/** `custRadScaleRad`: manual radius scale ratio for a radial/cycle node. */
|
|
3955
|
+
radialScaleRadius?: number;
|
|
3956
|
+
/** `custRadScaleInc`: manual angular-position nudge for a radial/cycle node. */
|
|
3957
|
+
radialScaleIncrement?: number;
|
|
3958
|
+
/** `custT`: whether `prSet` declares a custom transform is present at all. */
|
|
3959
|
+
hasCustomTransform?: boolean;
|
|
3960
|
+
}
|
|
3773
3961
|
/**
|
|
3774
3962
|
* A single node in the SmartArt data model.
|
|
3775
3963
|
*
|
|
@@ -3795,6 +3983,16 @@ interface PptxSmartArtNode {
|
|
|
3795
3983
|
children?: PptxSmartArtNode[];
|
|
3796
3984
|
/** Node type from `@_type` attribute (e.g. "doc", "node", "asst", "pres"). */
|
|
3797
3985
|
nodeType?: string;
|
|
3986
|
+
/**
|
|
3987
|
+
* The node's own quick-style role (`dgm:prSet/@presStyleLbl` from its
|
|
3988
|
+
* paired `type="pres"` presentation point, resolved via a `presOf`
|
|
3989
|
+
* connection back to this content point). Structural names like `node1`,
|
|
3990
|
+
* `asst2`, `bgShp`, `revTx`; distinct from {@link nodeType}, which is the
|
|
3991
|
+
* data-model `@_type` ("node"/"asst"/...). Used to pick this node's own
|
|
3992
|
+
* colour list from a colour transform's per-role palettes instead of the
|
|
3993
|
+
* generic cycled palette (see `applySmartArtRoleColors`).
|
|
3994
|
+
*/
|
|
3995
|
+
styleRole?: string;
|
|
3798
3996
|
/**
|
|
3799
3997
|
* Per-run text + run-properties for the node's first paragraph, captured at
|
|
3800
3998
|
* parse time. When the joined run text still equals {@link text} (the node
|
|
@@ -3815,6 +4013,14 @@ interface PptxSmartArtNode {
|
|
|
3815
4013
|
* it round-trips.
|
|
3816
4014
|
*/
|
|
3817
4015
|
style?: PptxSmartArtNodeStyle;
|
|
4016
|
+
/**
|
|
4017
|
+
* Manual layout override read from the node's `dgm:prSet` `cust*`
|
|
4018
|
+
* attributes (drag/resize/rotate/flip performed in PowerPoint's own diagram
|
|
4019
|
+
* editor). Applied as a final transform after algorithmic layout by
|
|
4020
|
+
* {@link module:smartart-layout-interpreter-custom} so it survives even
|
|
4021
|
+
* when there is no cached `dsp:` drawing to fall back on.
|
|
4022
|
+
*/
|
|
4023
|
+
customLayout?: SmartArtNodeCustomLayout;
|
|
3818
4024
|
}
|
|
3819
4025
|
//#endregion
|
|
3820
4026
|
//#region src/core/types/smart-art-style-definition.d.ts
|
|
@@ -3877,6 +4083,18 @@ interface PptxSmartArtColorTransform extends PptxSmartArtDefinitionMetadata {
|
|
|
3877
4083
|
lineInterpolation?: PptxSmartArtColorListMetadata;
|
|
3878
4084
|
/** Ordered CT_CTStyleLabel metadata. */
|
|
3879
4085
|
labels?: PptxSmartArtColorStyleLabel[];
|
|
4086
|
+
/**
|
|
4087
|
+
* Every `styleLbl`'s own resolved fill/line colour list, keyed by name
|
|
4088
|
+
* (e.g. `node1`, `asst0`, `bgShp`, `revTx`). Unlike {@link fillColors} /
|
|
4089
|
+
* {@link lineColors} (which collapse to ONE "primary" node-role list),
|
|
4090
|
+
* this keeps every role so a node can be coloured from its OWN role's
|
|
4091
|
+
* palette (see `PptxSmartArtNode.styleRole` and `applySmartArtRoleColors`)
|
|
4092
|
+
* instead of a generic cycled colour.
|
|
4093
|
+
*/
|
|
4094
|
+
roleColors?: Record<string, {
|
|
4095
|
+
fill: string[];
|
|
4096
|
+
line: string[];
|
|
4097
|
+
}>;
|
|
3880
4098
|
}
|
|
3881
4099
|
/** Typed CT_StyleDefinition metadata and legacy rendering hint. */
|
|
3882
4100
|
interface PptxSmartArtQuickStyle extends PptxSmartArtDefinitionMetadata {
|
|
@@ -3961,6 +4179,14 @@ interface PptxSmartArtConnection {
|
|
|
3961
4179
|
siblingTransitionId?: string | null;
|
|
3962
4180
|
/** Layout presentation identifier used by presentation connections. */
|
|
3963
4181
|
presentationId?: string | null;
|
|
4182
|
+
/**
|
|
4183
|
+
* Connector text, read from the linked `parTrans`/`sibTrans` transition
|
|
4184
|
+
* point's `dgm:t` (via {@link parentTransitionId} / {@link siblingTransitionId}).
|
|
4185
|
+
* PowerPoint's own diagram editor lets a user type text directly onto an
|
|
4186
|
+
* org-chart relationship connector; `undefined` when the transition point
|
|
4187
|
+
* carries no text. Written back to that point on save.
|
|
4188
|
+
*/
|
|
4189
|
+
label?: string;
|
|
3964
4190
|
}
|
|
3965
4191
|
/**
|
|
3966
4192
|
* A pre-computed shape from `ppt/diagrams/drawing*.xml`.
|
|
@@ -4281,8 +4507,8 @@ interface PptxTableCellStyle {
|
|
|
4281
4507
|
textGlowRadius?: number;
|
|
4282
4508
|
/** Cell text glow opacity (0-1). */
|
|
4283
4509
|
textGlowOpacity?: number;
|
|
4284
|
-
/** Cell fill mode: solid, gradient, pattern, or none. */
|
|
4285
|
-
fillMode?: 'solid' | 'gradient' | 'pattern' | 'none';
|
|
4510
|
+
/** Cell fill mode: solid, gradient, pattern, image, or none. */
|
|
4511
|
+
fillMode?: 'solid' | 'gradient' | 'pattern' | 'image' | 'none';
|
|
4286
4512
|
/** Gradient fill stops (colours with positions). */
|
|
4287
4513
|
gradientFillStops?: Array<{
|
|
4288
4514
|
color: string;
|
|
@@ -4315,6 +4541,23 @@ interface PptxTableCellStyle {
|
|
|
4315
4541
|
patternFillForeground?: string;
|
|
4316
4542
|
/** Pattern fill background colour. */
|
|
4317
4543
|
patternFillBackground?: string;
|
|
4544
|
+
/**
|
|
4545
|
+
* Image fill (`a:tcPr/a:blipFill`, CT_TableCellProperties). Resolved
|
|
4546
|
+
* archive-relative path (or external `http(s):`/`data:` URL) for the
|
|
4547
|
+
* cell's background image, from `a:blipFill/a:blip/@r:embed` (or
|
|
4548
|
+
* `@r:link`). Present when `fillMode` is `'image'`.
|
|
4549
|
+
*
|
|
4550
|
+
* The parser resolves this synchronously (path only, no binary read);
|
|
4551
|
+
* a viewer's load pipeline resolves it further to a displayable
|
|
4552
|
+
* `data:`/`blob:` URL, written back to {@link backgroundImageFillData}.
|
|
4553
|
+
*/
|
|
4554
|
+
backgroundImageFillPath?: string;
|
|
4555
|
+
/**
|
|
4556
|
+
* Displayable image data (`data:` or `blob:` URL) for an image cell
|
|
4557
|
+
* fill, once resolved by the load pipeline. Renderers should prefer
|
|
4558
|
+
* this over {@link backgroundImageFillPath} when both are present.
|
|
4559
|
+
*/
|
|
4560
|
+
backgroundImageFillData?: string;
|
|
4318
4561
|
/**
|
|
4319
4562
|
* Cell 3D bevel + lighting from `a:tcPr/a:cell3D` (CT_Cell3D,
|
|
4320
4563
|
* ECMA-376 §21.1.3.1). Rendered as a CSS bevel treatment.
|
|
@@ -4540,6 +4783,24 @@ interface ParsedTableStyleFill {
|
|
|
4540
4783
|
gradient?: ParsedTableStyleGradient;
|
|
4541
4784
|
/** Preset pattern fill parsed from `a:pattFill`. */
|
|
4542
4785
|
pattern?: ParsedTableStylePattern;
|
|
4786
|
+
/** Image texture fill parsed from `a:blipFill`. */
|
|
4787
|
+
image?: ParsedTableStyleImage;
|
|
4788
|
+
}
|
|
4789
|
+
/**
|
|
4790
|
+
* An image texture fill parsed from a table style section's `a:blipFill`.
|
|
4791
|
+
*
|
|
4792
|
+
* `ppt/tableStyles.xml` is a presentation-level part parsed once (not
|
|
4793
|
+
* per-slide), so this mirrors the per-CELL `a:tcPr/a:blipFill` two-field lazy
|
|
4794
|
+
* pattern (`PptxTableCellStyle.backgroundImageFillPath` /
|
|
4795
|
+
* `backgroundImageFillData`): `path` starts out as a raw archive-relative
|
|
4796
|
+
* path (or an already-external `http(s):`/`data:` URL), and a load pipeline
|
|
4797
|
+
* patches it to a displayable URL in `data` once resolved.
|
|
4798
|
+
*/
|
|
4799
|
+
interface ParsedTableStyleImage {
|
|
4800
|
+
/** Archive-relative path, or an already-displayable external/data URL. */
|
|
4801
|
+
path?: string;
|
|
4802
|
+
/** Displayable URL once a load pipeline has resolved `path`. */
|
|
4803
|
+
data?: string;
|
|
4543
4804
|
}
|
|
4544
4805
|
/** A single colour stop within a {@link ParsedTableStyleGradient}. */
|
|
4545
4806
|
interface ParsedTableStyleGradientStop {
|
|
@@ -4966,6 +5227,12 @@ interface OlePptxElement extends PptxElementBase {
|
|
|
4966
5227
|
oleEmbeddedMimeType?: string;
|
|
4967
5228
|
/** Size of the embedded payload in bytes. */
|
|
4968
5229
|
oleEmbeddedByteSize?: number;
|
|
5230
|
+
/**
|
|
5231
|
+
* `p:link/@followColorScheme` (`ST_OleObjectFollowColorScheme`): whether a
|
|
5232
|
+
* LINKED OLE object's icon recolours to match the presentation theme.
|
|
5233
|
+
* Only meaningful when {@link isLinked} is `true`. ECMA-376 §19.3.1.28.
|
|
5234
|
+
*/
|
|
5235
|
+
oleFollowColorScheme?: 'none' | 'full' | 'textAndBackground';
|
|
4969
5236
|
/** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
|
|
4970
5237
|
extensionXml?: PptxGraphicFrameExtension[];
|
|
4971
5238
|
}
|
|
@@ -5267,6 +5534,16 @@ interface PptxNotesMaster {
|
|
|
5267
5534
|
headerFooter?: PptxHeaderFooterFlags;
|
|
5268
5535
|
/** Colour map from `<p:clrMap>` (12 alias attributes). Applied at save time. */
|
|
5269
5536
|
clrMap?: Record<string, string>;
|
|
5537
|
+
/**
|
|
5538
|
+
* Notes text defaults from `<p:notesStyle>` (`CT_TextListStyle`, ECMA-376
|
|
5539
|
+
* §19.3.1.34): the same `a:defPPr` + `a:lvl1pPr`..`a:lvl9pPr` shape as
|
|
5540
|
+
* {@link PptxMasterTextStyles}'s per-category styles, keyed 0-8 with the
|
|
5541
|
+
* default at `-1`. Governs the notes body placeholder's font size, indent
|
|
5542
|
+
* levels, and bullet style wherever a notes slide does not override them.
|
|
5543
|
+
* Parsed read-only for the render cascade; the save side preserves the
|
|
5544
|
+
* original `<p:notesStyle>` XML verbatim rather than re-serialising this.
|
|
5545
|
+
*/
|
|
5546
|
+
notesStyle?: PptxTextStyleLevels;
|
|
5270
5547
|
}
|
|
5271
5548
|
/**
|
|
5272
5549
|
* Parsed handout master from `ppt/handoutMasters/handoutMaster1.xml`.
|
|
@@ -5350,6 +5627,14 @@ interface PptxSlideMaster {
|
|
|
5350
5627
|
* accent1-6, hlink, folHlink). Applied at save time when present.
|
|
5351
5628
|
*/
|
|
5352
5629
|
clrMap?: Record<string, string>;
|
|
5630
|
+
/**
|
|
5631
|
+
* Whether the master is marked as preserved (prevent auto-deletion,
|
|
5632
|
+
* `@preserve`). Mirrors {@link PptxSlideLayout.preserve}: PowerPoint
|
|
5633
|
+
* silently drops an unused master unless this is set.
|
|
5634
|
+
*
|
|
5635
|
+
* ECMA-376 §19.3.1.38 (CT_SlideMaster).
|
|
5636
|
+
*/
|
|
5637
|
+
preserve?: boolean;
|
|
5353
5638
|
}
|
|
5354
5639
|
/**
|
|
5355
5640
|
* Per-level paragraph properties for a text style category.
|
|
@@ -5539,6 +5824,35 @@ type PptxGraphicBuild = {
|
|
|
5539
5824
|
animateBackground: boolean;
|
|
5540
5825
|
rawXml?: XmlObject;
|
|
5541
5826
|
};
|
|
5827
|
+
/**
|
|
5828
|
+
* A single `p:tmpl` timing template parsed from a TEXT `p:bldP/p:tmplLst`
|
|
5829
|
+
* (CT_TLTemplate, ECMA-376 §19.5.85; the list itself is CT_TLTemplateList,
|
|
5830
|
+
* §19.5.84).
|
|
5831
|
+
*
|
|
5832
|
+
* PowerPoint writes these as the timing PowerPoint would apply to a build
|
|
5833
|
+
* level that does not yet have an instantiated effect, so that promoting or
|
|
5834
|
+
* demoting an outline paragraph, or adding a new bullet at a level with no
|
|
5835
|
+
* prior animation, has a default to clone. They are not consulted at
|
|
5836
|
+
* playback: the animation actually shown for every paragraph level already
|
|
5837
|
+
* visible on the slide is the real, instantiated `p:tnLst` under
|
|
5838
|
+
* `p:timing/p:tnLst`, which the rest of this parser already models in full.
|
|
5839
|
+
*
|
|
5840
|
+
* The nested time-node tree under each template's own `p:tnLst` is kept as
|
|
5841
|
+
* a preserved `XmlObject` rather than deep-parsed into
|
|
5842
|
+
* {@link PptxNativeAnimation} records: it is schema-identical to the
|
|
5843
|
+
* top-level timing tree but scoped to a template that is never itself
|
|
5844
|
+
* executed, so structurally modelling it would stand up a second, unused
|
|
5845
|
+
* parallel animation model. Parsing stops at typed round-trip; see
|
|
5846
|
+
* `docs/guide/limitations.md`.
|
|
5847
|
+
*/
|
|
5848
|
+
interface PptxTimingTemplate {
|
|
5849
|
+
/** Build level this template targets, from `p:tmpl/@lvl` (ST_TLLevel, default 0). */
|
|
5850
|
+
level: number;
|
|
5851
|
+
/** Preserved `p:tnLst` (CT_TimeNodeList) subtree, verbatim. */
|
|
5852
|
+
timeNodeList: XmlObject;
|
|
5853
|
+
/** Preserved `p:tmpl` XML node (its attributes plus any unmodelled children). */
|
|
5854
|
+
rawXml?: XmlObject;
|
|
5855
|
+
}
|
|
5542
5856
|
/**
|
|
5543
5857
|
* Parsed native animation record from `p:timing / p:tnLst`.
|
|
5544
5858
|
*
|
|
@@ -5649,6 +5963,58 @@ interface PptxNativeAnimation {
|
|
|
5649
5963
|
soundPath?: string;
|
|
5650
5964
|
/** Whether to stop any currently playing sound (`p:endSnd`). */
|
|
5651
5965
|
stopSound?: boolean;
|
|
5966
|
+
/**
|
|
5967
|
+
* End-state behaviour from `p:cTn/@fill` (ST_TLTimeNodeFillType, ECMA-376
|
|
5968
|
+
* §19.5.27). `hold`/`freeze` mean the effect's final frame persists after
|
|
5969
|
+
* it finishes; `remove` (the default when absent) means the target reverts
|
|
5970
|
+
* to its pre-effect appearance. `transition` behaves like `hold` until the
|
|
5971
|
+
* next time node starts. Absent means the OOXML default (`remove`).
|
|
5972
|
+
*/
|
|
5973
|
+
fill?: 'remove' | 'freeze' | 'hold' | 'transition';
|
|
5974
|
+
/**
|
|
5975
|
+
* Restart behaviour from `p:cTn/@restart` (ST_TLTimeNodeRestartType).
|
|
5976
|
+
* Absent means the OOXML default (`always`).
|
|
5977
|
+
*/
|
|
5978
|
+
restart?: 'always' | 'whenNotActive' | 'never';
|
|
5979
|
+
/**
|
|
5980
|
+
* Repeat duration in milliseconds from `p:cTn/@repeatDur`. `Infinity`
|
|
5981
|
+
* represents the literal `"indefinite"` token.
|
|
5982
|
+
*/
|
|
5983
|
+
repeatDurMs?: number;
|
|
5984
|
+
/**
|
|
5985
|
+
* Playback speed multiplier from `p:cTn/@spd` (ST_Percentage, normalized
|
|
5986
|
+
* from OOXML's 1000ths-of-a-percent storage to a plain percentage, e.g.
|
|
5987
|
+
* `150` for 150% / double speed). Absent means normal (100%) speed.
|
|
5988
|
+
*/
|
|
5989
|
+
speedPct?: number;
|
|
5990
|
+
/**
|
|
5991
|
+
* Reverse the paragraph build order from `p:bldP/@rev` (TEXT build only).
|
|
5992
|
+
* Not to be confused with {@link PptxGraphicBuild}'s `reverse` field, which
|
|
5993
|
+
* carries the unrelated `p:bldDgm`/`@rev` DIAGRAM-build reverse flag.
|
|
5994
|
+
*/
|
|
5995
|
+
buildReverse?: boolean;
|
|
5996
|
+
/**
|
|
5997
|
+
* Auto-advance time in milliseconds from `p:bldP/@advAuto`. `Infinity`
|
|
5998
|
+
* represents the literal `"indefinite"` token. Absent means the build
|
|
5999
|
+
* step waits for a click.
|
|
6000
|
+
*/
|
|
6001
|
+
buildAdvAutoMs?: number;
|
|
6002
|
+
/**
|
|
6003
|
+
* Per-build-level timing templates from a TEXT `p:bldP/p:tmplLst`
|
|
6004
|
+
* (ECMA-376 §19.5.84 CT_TLTemplateList). Parsed for round-trip only; see
|
|
6005
|
+
* {@link PptxTimingTemplate} for why they are not consulted at playback.
|
|
6006
|
+
*/
|
|
6007
|
+
buildTemplates?: PptxTimingTemplate[];
|
|
6008
|
+
/**
|
|
6009
|
+
* Whether the enclosing `p:seq` allows concurrent play with its siblings,
|
|
6010
|
+
* from `p:seq/@concurrent`. Parsed for round-trip; not yet honoured by
|
|
6011
|
+
* playback (see `docs/guide/limitations.md`).
|
|
6012
|
+
*/
|
|
6013
|
+
seqConcurrent?: boolean;
|
|
6014
|
+
/** Next-action behaviour from `p:seq/@nextAc` (ST_TLNextActionType). */
|
|
6015
|
+
seqNextAction?: 'none' | 'seek';
|
|
6016
|
+
/** Previous-action behaviour from `p:seq/@prevAc` (ST_TLPreviousActionType). */
|
|
6017
|
+
seqPrevAction?: 'none' | 'skipTimeNode';
|
|
5652
6018
|
/**
|
|
5653
6019
|
* Whether the enclosing click-level group (a direct `p:par` child of the
|
|
5654
6020
|
* `mainSeq`) begins automatically when the slide appears, rather than waiting
|
|
@@ -5739,6 +6105,55 @@ interface PptxNativeAnimation {
|
|
|
5739
6105
|
* subsequent peer nodes are sequenced when serialised back to OOXML.
|
|
5740
6106
|
*/
|
|
5741
6107
|
afterEffect?: boolean;
|
|
6108
|
+
/**
|
|
6109
|
+
* "After animation" end-state behaviour carried over from the matching
|
|
6110
|
+
* {@link PptxElementAnimation.afterAnimation} entry for this effect's
|
|
6111
|
+
* element. Not populated by the native-timing parser itself (there is no
|
|
6112
|
+
* single `p:cTn` attribute for it): `applyAfterAnimationFromEditorList` in
|
|
6113
|
+
* `pptx-viewer-shared` merges it in from the editor's per-element
|
|
6114
|
+
* animation list before playback, since that is the model the animation
|
|
6115
|
+
* panel writes `afterAnimation` into.
|
|
6116
|
+
*/
|
|
6117
|
+
afterAnimationAction?: PptxAfterAnimationAction;
|
|
6118
|
+
/** Dim-to color hex, present when {@link afterAnimationAction} is `dimToColor`. */
|
|
6119
|
+
afterAnimationColor?: string;
|
|
6120
|
+
/**
|
|
6121
|
+
* Parsed `p:animEffect` filter descriptor. `presetId`/`presetClass` remain
|
|
6122
|
+
* the primary effect selector (see `resolveEffect` in `pptx-viewer-shared`);
|
|
6123
|
+
* this is the fallback used when a preset table lookup misses (unmapped or
|
|
6124
|
+
* absent `presetId`), which happens for decks authored by tools other than
|
|
6125
|
+
* PowerPoint that only emit the SMIL-style filter string.
|
|
6126
|
+
*/
|
|
6127
|
+
effectFilter?: PptxAnimationEffectFilter;
|
|
6128
|
+
}
|
|
6129
|
+
/**
|
|
6130
|
+
* Parsed `p:animEffect/@filter` (+ `@transition`) descriptor. ECMA-376
|
|
6131
|
+
* describes `@filter` as a free-form string of the form `family(subtype)`,
|
|
6132
|
+
* optionally followed by `;`-separated fallback candidates (only the first
|
|
6133
|
+
* is honoured, per ECMA-376 S19.5.3's "first supported filter wins" rule).
|
|
6134
|
+
*
|
|
6135
|
+
* @example
|
|
6136
|
+
* ```ts
|
|
6137
|
+
* const f: PptxAnimationEffectFilter = { family: 'wipe', subtype: 'up', transition: 'in', raw: 'wipe(up)' };
|
|
6138
|
+
* ```
|
|
6139
|
+
*/
|
|
6140
|
+
interface PptxAnimationEffectFilter {
|
|
6141
|
+
/** Filter family name (e.g. `"wipe"`, `"barn"`, `"checkerboard"`), lowercased. */
|
|
6142
|
+
family: string;
|
|
6143
|
+
/**
|
|
6144
|
+
* Parenthesised subtype/direction token verbatim (e.g. `"up"`,
|
|
6145
|
+
* `"inVertical"`, `"across"`, `"4"`). Absent when the filter has no
|
|
6146
|
+
* subtype (e.g. bare `"dissolve"`).
|
|
6147
|
+
*/
|
|
6148
|
+
subtype?: string;
|
|
6149
|
+
/**
|
|
6150
|
+
* `p:animEffect/@transition`: `"in"` reveals the target (the OOXML
|
|
6151
|
+
* default when the attribute is omitted), `"out"` conceals it, `"none"`
|
|
6152
|
+
* applies the filter without a visibility change (a static filter pass).
|
|
6153
|
+
*/
|
|
6154
|
+
transition?: 'in' | 'out' | 'none';
|
|
6155
|
+
/** Raw filter string exactly as authored, for round-trip/debugging. */
|
|
6156
|
+
raw: string;
|
|
5742
6157
|
}
|
|
5743
6158
|
/**
|
|
5744
6159
|
* Single keyframe parsed from a `p:tav` element (CT_TLTimeAnimateValue).
|
|
@@ -6893,10 +7308,12 @@ interface PptxSlide {
|
|
|
6893
7308
|
*/
|
|
6894
7309
|
backgroundPattern?: PptxSlideBackgroundPattern;
|
|
6895
7310
|
/**
|
|
6896
|
-
* `<p:bgPr/@shadeToTitle
|
|
7311
|
+
* `<p:bgPr/@shadeToTitle>`: boolean flag instructing the renderer to
|
|
6897
7312
|
* shade the background toward the title placeholder colour. Captured
|
|
6898
|
-
* for lossless round-trip;
|
|
6899
|
-
* a
|
|
7313
|
+
* for lossless round-trip only; no renderer applies the visual effect.
|
|
7314
|
+
* Documented as a known no-op in `docs/guide/limitations.md` (legacy
|
|
7315
|
+
* PowerPoint 97-2003 hint, not observed in any real-world corpus file
|
|
7316
|
+
* and not settable from any modern PowerPoint UI).
|
|
6900
7317
|
*
|
|
6901
7318
|
* ECMA-376 §19.3.1.2 (CT_BackgroundProperties).
|
|
6902
7319
|
*/
|
|
@@ -6935,6 +7352,13 @@ interface PptxSlide {
|
|
|
6935
7352
|
backgroundShowAnimation?: boolean;
|
|
6936
7353
|
/** Whether master slide shapes should be shown on this slide (`p:sld/@showMasterSp`). */
|
|
6937
7354
|
showMasterShapes?: boolean;
|
|
7355
|
+
/**
|
|
7356
|
+
* Whether inherited master placeholder animations should replay on this
|
|
7357
|
+
* slide (`p:sld/@showMasterPhAnim`). Distinct from {@link showMasterShapes}:
|
|
7358
|
+
* this governs animation timing, not shape visibility. Mirrors
|
|
7359
|
+
* `p:sldLayout/@showMasterPhAnim`, ECMA-376 §19.3.1.38.
|
|
7360
|
+
*/
|
|
7361
|
+
showMasterPhAnim?: boolean;
|
|
6938
7362
|
/** Drawing guides parsed from slide extension list. */
|
|
6939
7363
|
guides?: PptxDrawingGuide[];
|
|
6940
7364
|
/** When explicitly `false`, the slide is unmodified and save can skip re-serialization. */
|
|
@@ -7060,11 +7484,6 @@ interface PptxPresentationProperties {
|
|
|
7060
7484
|
printProperties?: PptxPresentationPrintProperties | null;
|
|
7061
7485
|
/** Most-recently-used colours from the presentation palette. */
|
|
7062
7486
|
mruColors?: string[];
|
|
7063
|
-
/** Grid spacing in EMUs (cx, cy). Default is 914400 / 8 = 114300. */
|
|
7064
|
-
gridSpacing?: {
|
|
7065
|
-
cx: number;
|
|
7066
|
-
cy: number;
|
|
7067
|
-
};
|
|
7068
7487
|
/** Pen colour for presentation mode annotations (from `p:showPr/p:penClr`). */
|
|
7069
7488
|
penColor?: string;
|
|
7070
7489
|
/** Kiosk auto-restart interval in milliseconds (from `p:kiosk/@restart`). Only meaningful when showType is "kiosk". */
|
|
@@ -7272,6 +7691,29 @@ interface PptxData {
|
|
|
7272
7691
|
embeddedFonts?: PptxEmbeddedFont[];
|
|
7273
7692
|
/** Typed `p:embeddedFontLst` package metadata, including unresolved variants. */
|
|
7274
7693
|
embeddedFontList?: PptxEmbeddedFontList;
|
|
7694
|
+
/**
|
|
7695
|
+
* `p:presentation/@embedTrueTypeFonts` (ECMA-376 §19.2.1.26): the author's
|
|
7696
|
+
* saved preference that TrueType fonts referenced by the deck be embedded.
|
|
7697
|
+
* `undefined` when the attribute is absent (spec default `false`).
|
|
7698
|
+
*
|
|
7699
|
+
* This is purely declarative in this library: fonts are only ever embedded
|
|
7700
|
+
* when the caller explicitly supplies `embeddedFontList`/`embeddedFonts`
|
|
7701
|
+
* (there is no automatic embed-on-save), so toggling this flag does not
|
|
7702
|
+
* gate any embedding behaviour of its own here - it only round-trips the
|
|
7703
|
+
* author's stated preference, the same way real PowerPoint reads it back
|
|
7704
|
+
* as a checkbox state rather than a trigger. See `@saveSubsetFonts`,
|
|
7705
|
+
* which is a separate, deliberately unimplemented flag (no glyph
|
|
7706
|
+
* subsetting) that does not interact with this one.
|
|
7707
|
+
*/
|
|
7708
|
+
embedTrueTypeFonts?: boolean;
|
|
7709
|
+
/**
|
|
7710
|
+
* Presentation-level default text style (`p:defaultTextStyle`): the
|
|
7711
|
+
* last-resort paragraph/run-property fallback for every shape (placeholder
|
|
7712
|
+
* or not) whose local and inherited cascade leaves a field undefined.
|
|
7713
|
+
* Keyed the same way as {@link PptxMasterTextStyles} categories: `-1` is
|
|
7714
|
+
* `a:defPPr`, `0`-`8` are `a:lvl1pPr`-`a:lvl9pPr`.
|
|
7715
|
+
*/
|
|
7716
|
+
defaultTextStyle?: PptxTextStyleLevels;
|
|
7275
7717
|
/** Most-recently-used colour list from presentation properties. */
|
|
7276
7718
|
mruColors?: string[];
|
|
7277
7719
|
/** Parsed notes master data if present in the PPTX. */
|
|
@@ -8121,6 +8563,19 @@ interface PptxHandlerSaveOptions {
|
|
|
8121
8563
|
kinsoku?: PptxKinsoku | null;
|
|
8122
8564
|
/** Write-protection verifier. Set to `null` to remove, `undefined` to preserve existing. */
|
|
8123
8565
|
modifyVerifier?: PptxModifyVerifier | null;
|
|
8566
|
+
/**
|
|
8567
|
+
* `p:presentation/@embedTrueTypeFonts` to write. `undefined` preserves
|
|
8568
|
+
* whatever was loaded (or omits the attribute for a brand-new deck);
|
|
8569
|
+
* purely declarative here, see {@link PptxData.embedTrueTypeFonts}.
|
|
8570
|
+
*/
|
|
8571
|
+
embedTrueTypeFonts?: boolean;
|
|
8572
|
+
/**
|
|
8573
|
+
* Presentation-level default text style edits to save back to
|
|
8574
|
+
* `p:defaultTextStyle`. Only the levels present in the map are touched;
|
|
8575
|
+
* omitted levels and any unmodelled XML on an edited level survive
|
|
8576
|
+
* untouched. See {@link PptxData.defaultTextStyle}.
|
|
8577
|
+
*/
|
|
8578
|
+
defaultTextStyle?: PptxTextStyleLevels;
|
|
8124
8579
|
/** View properties to save back to ppt/viewProps.xml. */
|
|
8125
8580
|
viewProperties?: PptxViewProperties;
|
|
8126
8581
|
/**
|
|
@@ -9578,9 +10033,10 @@ interface TouchGestureCallbacks {
|
|
|
9578
10033
|
/**
|
|
9579
10034
|
* Dropdown ids for the insert-chart menu. Distinct from `PptxChartType`
|
|
9580
10035
|
* because PowerPoint offers Column (vertical) and Bar (horizontal) as two
|
|
9581
|
-
* entries over the same underlying `'bar'` chart type.
|
|
10036
|
+
* entries over the same underlying `'bar'` chart type. The six ChartEx ids
|
|
10037
|
+
* (`histogram` through `regionMap`) map one-to-one onto their chart type.
|
|
9582
10038
|
*/
|
|
9583
|
-
type InsertChartKind = 'column' | 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter';
|
|
10039
|
+
type InsertChartKind = 'column' | 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'histogram' | 'funnel' | 'treemap' | 'sunburst' | 'boxWhisker' | 'regionMap';
|
|
9584
10040
|
/** In-memory clipboard payload stored when an element is copied or cut. */
|
|
9585
10041
|
interface ElementClipboardPayload {
|
|
9586
10042
|
element: PptxElement;
|
|
@@ -11622,6 +12078,14 @@ interface ViewerCoreState {
|
|
|
11622
12078
|
/** Presentation-level properties (loop, show type, subtitles, etc.). */
|
|
11623
12079
|
presentationProperties: PptxPresentationProperties;
|
|
11624
12080
|
setPresentationProperties: React$1.Dispatch<React$1.SetStateAction<PptxPresentationProperties>>;
|
|
12081
|
+
/**
|
|
12082
|
+
* View properties parsed from `ppt/viewProps.xml` (`p:viewPr`): grid
|
|
12083
|
+
* spacing, snap/guide toggles, last view, splitter state, etc. This is the
|
|
12084
|
+
* ONLY correct source for `gridSpacing` -- `p:gridSpacing` lives under
|
|
12085
|
+
* `p:viewPr`, never under `p:presentationPr`.
|
|
12086
|
+
*/
|
|
12087
|
+
viewProperties: PptxViewProperties | undefined;
|
|
12088
|
+
setViewProperties: React$1.Dispatch<React$1.SetStateAction<PptxViewProperties | undefined>>;
|
|
11625
12089
|
/** Notes master slide definition (background, elements, styles). */
|
|
11626
12090
|
notesMaster: PptxNotesMaster | undefined;
|
|
11627
12091
|
setNotesMaster: React$1.Dispatch<React$1.SetStateAction<PptxNotesMaster | undefined>>;
|
|
@@ -11855,6 +12319,7 @@ interface UseLoadContentInput {
|
|
|
11855
12319
|
setActiveCustomShowId: React.Dispatch<React.SetStateAction<string | null>>;
|
|
11856
12320
|
setSections: React.Dispatch<React.SetStateAction<PptxSection[]>>;
|
|
11857
12321
|
setPresentationProperties: React.Dispatch<React.SetStateAction<PptxPresentationProperties>>;
|
|
12322
|
+
setViewProperties: React.Dispatch<React.SetStateAction<PptxViewProperties | undefined>>;
|
|
11858
12323
|
setNotesMaster: React.Dispatch<React.SetStateAction<PptxNotesMaster | undefined>>;
|
|
11859
12324
|
setHandoutMaster: React.Dispatch<React.SetStateAction<PptxHandoutMaster | undefined>>;
|
|
11860
12325
|
setNotesCanvasSize: React.Dispatch<React.SetStateAction<CanvasSize | undefined>>;
|
|
@@ -11886,7 +12351,7 @@ interface UseLoadContentInput {
|
|
|
11886
12351
|
interface UseLoadContentResult {
|
|
11887
12352
|
handlerRef: React.MutableRefObject<PptxHandler | null>;
|
|
11888
12353
|
}
|
|
11889
|
-
declare function useLoadContent({ content, clearSelection, history, setSlides, setTemplateElementsBySlideId, mediaDataUrls, setCanvasSize, setSlideSizeEmu, setHeaderFooter, setLayoutOptions, setSlideMasters, setTheme, setTableStyleMap, setThemeOptions, setCustomShows, setActiveCustomShowId, setSections, setPresentationProperties, setNotesMaster, setHandoutMaster, setNotesCanvasSize, setCustomProperties, setTagCollections, setCoreProperties, setAppProperties, setEmbeddedFonts, setActiveSlideIndex, setHasMacros, setHasDigitalSignatures, setDigitalSignatureCount, setGuides, setLoading, setError, setIsDirty, setIsEncrypted, onContentApplied }: UseLoadContentInput): UseLoadContentResult;
|
|
12354
|
+
declare function useLoadContent({ content, clearSelection, history, setSlides, setTemplateElementsBySlideId, mediaDataUrls, setCanvasSize, setSlideSizeEmu, setHeaderFooter, setLayoutOptions, setSlideMasters, setTheme, setTableStyleMap, setThemeOptions, setCustomShows, setActiveCustomShowId, setSections, setPresentationProperties, setViewProperties, setNotesMaster, setHandoutMaster, setNotesCanvasSize, setCustomProperties, setTagCollections, setCoreProperties, setAppProperties, setEmbeddedFonts, setActiveSlideIndex, setHasMacros, setHasDigitalSignatures, setDigitalSignatureCount, setGuides, setLoading, setError, setIsDirty, setIsEncrypted, onContentApplied }: UseLoadContentInput): UseLoadContentResult;
|
|
11890
12355
|
//#endregion
|
|
11891
12356
|
//#region src/viewer/hooks/useElementOperations.d.ts
|
|
11892
12357
|
/**
|
|
@@ -12659,7 +13124,13 @@ interface UseDerivedSlideStateInput {
|
|
|
12659
13124
|
mode: ViewerMode;
|
|
12660
13125
|
activeLayout: PptxSlideLayout | undefined;
|
|
12661
13126
|
activeMaster: PptxSlideMaster | undefined;
|
|
12662
|
-
|
|
13127
|
+
/**
|
|
13128
|
+
* `PptxData.viewProperties.gridSpacing` (from `ppt/viewProps.xml`), NOT
|
|
13129
|
+
* `presentationProperties.gridSpacing`: `p:gridSpacing` lives under
|
|
13130
|
+
* `p:viewPr`, and a real PowerPoint file never populates it under
|
|
13131
|
+
* `p:presentationPr`, so reading the latter always yields the fallback.
|
|
13132
|
+
*/
|
|
13133
|
+
documentGridSpacing: {
|
|
12663
13134
|
cx: number;
|
|
12664
13135
|
} | undefined;
|
|
12665
13136
|
}
|