pptx-vanilla-viewer 2.0.2 → 2.1.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 +18 -0
- package/dist/{ai-panel-IT54ECVY.js → ai-panel-RGWWA6VJ.js} +1 -1
- package/dist/ai-panel-VZF4DIIT.cjs +1 -0
- package/dist/chunk-I2DIATNM.cjs +2157 -0
- package/dist/chunk-RYM7YIDO.js +2157 -0
- package/dist/index.cjs +101 -91
- package/dist/index.d.ts +305 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -90
- package/dist/styles.css +16 -6
- package/package.json +4 -4
- package/dist/ai-panel-BMU7IXKB.cjs +0 -1
- package/dist/chunk-F3X63X7H.js +0 -2062
- package/dist/chunk-QOZR2M2P.cjs +0 -2062
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import "jszip";
|
|
|
3
3
|
import { ChatTransport, LanguageModel, ToolSet, UIMessage } from "ai";
|
|
4
4
|
import "pptx-viewer-mcp";
|
|
5
5
|
import { Options } from "html2canvas-pro";
|
|
6
|
-
//#region ../core/dist/text-operations-
|
|
6
|
+
//#region ../core/dist/text-operations-Dg5-_6uo.d.ts
|
|
7
7
|
//#region src/core/types/actions.d.ts
|
|
8
8
|
/**
|
|
9
9
|
* Action types: hyperlinks, slide jumps, macros, and action buttons.
|
|
@@ -1722,6 +1722,32 @@ interface TextStyle {
|
|
|
1722
1722
|
textReflectionEndOpacity?: number;
|
|
1723
1723
|
/** Text reflection offset distance in px. */
|
|
1724
1724
|
textReflectionOffset?: number;
|
|
1725
|
+
/**
|
|
1726
|
+
* Text reflection fade direction (`a:rPr/a:effectLst/a:reflection/@fadeDir`)
|
|
1727
|
+
* in degrees. Mirrors `ShapeStyle.reflectionFadeDirection`.
|
|
1728
|
+
*/
|
|
1729
|
+
textReflectionFadeDirection?: number;
|
|
1730
|
+
/**
|
|
1731
|
+
* Text reflection horizontal scaling (`@sx`), same units as
|
|
1732
|
+
* `ShapeStyle.reflectionScaleX` (1000ths of a percent, e.g. 100000 = 100%).
|
|
1733
|
+
*/
|
|
1734
|
+
textReflectionScaleX?: number;
|
|
1735
|
+
/** Text reflection vertical scaling (`@sy`). See `ShapeStyle.reflectionScaleY`. */
|
|
1736
|
+
textReflectionScaleY?: number;
|
|
1737
|
+
/**
|
|
1738
|
+
* Text reflection horizontal skew (`@kx`) in 60000ths of a degree. See
|
|
1739
|
+
* `ShapeStyle.reflectionSkewX`.
|
|
1740
|
+
*/
|
|
1741
|
+
textReflectionSkewX?: number;
|
|
1742
|
+
/** Text reflection vertical skew (`@ky`). See `ShapeStyle.reflectionSkewY`. */
|
|
1743
|
+
textReflectionSkewY?: number;
|
|
1744
|
+
/**
|
|
1745
|
+
* Text reflection independent rotation (`@rot`) in degrees. See
|
|
1746
|
+
* `ShapeStyle.reflectionRotation`.
|
|
1747
|
+
*/
|
|
1748
|
+
textReflectionRotation?: number;
|
|
1749
|
+
/** Text reflection anchor (`@algn`). See `ShapeStyle.reflectionAlignment`. */
|
|
1750
|
+
textReflectionAlignment?: 'tl' | 't' | 'tr' | 'l' | 'ctr' | 'r' | 'bl' | 'b' | 'br';
|
|
1725
1751
|
/** 3D extrusion/bevel settings on the text body. */
|
|
1726
1752
|
text3d?: Text3DStyle;
|
|
1727
1753
|
/** 3D scene (camera + light rig) settings on the text body (`a:bodyPr/a:scene3d`). */
|
|
@@ -5423,6 +5449,21 @@ interface ContentPartInkStroke {
|
|
|
5423
5449
|
* variable-width strokes that reflect stylus/pen pressure.
|
|
5424
5450
|
*/
|
|
5425
5451
|
pressures?: number[];
|
|
5452
|
+
/**
|
|
5453
|
+
* Per-point pen-tilt lean direction (radians), decoded from the source
|
|
5454
|
+
* InkML's `OTx`/`OTy` tilt-offset channels or its `AZIMUTH` channel.
|
|
5455
|
+
*
|
|
5456
|
+
* When present (paired with {@link tiltMagnitudes}), the renderer widens
|
|
5457
|
+
* each point perpendicular to the lean direction, approximating a
|
|
5458
|
+
* calligraphic (chisel-tip) nib. Absent when the source declared no tilt
|
|
5459
|
+
* channel, in which case rendering is unaffected.
|
|
5460
|
+
*/
|
|
5461
|
+
tiltAngles?: number[];
|
|
5462
|
+
/**
|
|
5463
|
+
* Per-point pen-tilt strength (0 upright, 1 maximally leaned), paired with
|
|
5464
|
+
* {@link tiltAngles}.
|
|
5465
|
+
*/
|
|
5466
|
+
tiltMagnitudes?: number[];
|
|
5426
5467
|
}
|
|
5427
5468
|
/**
|
|
5428
5469
|
* A content-part element wrapped in `mc:AlternateContent`.
|
|
@@ -5991,6 +6032,19 @@ interface PptxNativeAnimation {
|
|
|
5991
6032
|
scaleZoomContents?: boolean;
|
|
5992
6033
|
/** Parsed `p:tav` keyframes from `p:tavLst` (CT_TLAnimVariantList). */
|
|
5993
6034
|
keyframes?: PptxAnimationKeyframe[];
|
|
6035
|
+
/**
|
|
6036
|
+
* The attribute {@link keyframes} drives, from the SAME node's
|
|
6037
|
+
* `p:cBhvr/p:attrNameLst/p:attrName` (ECMA-376 S19.5.4). `p:tavLst` is
|
|
6038
|
+
* schema-generic: without this, playback could see a numeric ramp but not
|
|
6039
|
+
* know whether it targeted opacity, position, colour, or something with
|
|
6040
|
+
* no CSS mapping. Lowercased and trimmed; common values seen in the wild
|
|
6041
|
+
* (and written by this codebase's own animation writer) include
|
|
6042
|
+
* `"style.opacity"`, `"style.color"`, `"style.visibility"`, `"fillcolor"`,
|
|
6043
|
+
* `"stroke.color"`, `"r"` (rotation, only meaningful on `p:animRot`), and
|
|
6044
|
+
* `"ppt_x"` / `"ppt_y"` (position, normally driven via `p:animMotion`
|
|
6045
|
+
* instead). Absent when the behaviour carries no `p:attrNameLst`.
|
|
6046
|
+
*/
|
|
6047
|
+
attrName?: string;
|
|
5994
6048
|
/** Repeat count (e.g. `2`, `Infinity` for indefinite). */
|
|
5995
6049
|
repeatCount?: number;
|
|
5996
6050
|
/** Whether the animation plays in reverse after completion. */
|
|
@@ -6092,6 +6146,17 @@ interface PptxNativeAnimation {
|
|
|
6092
6146
|
textTarget?: PptxTextAnimationTarget;
|
|
6093
6147
|
/** Whether this animation is inside an exclusive container (`p:excl`). */
|
|
6094
6148
|
exclusive?: boolean;
|
|
6149
|
+
/**
|
|
6150
|
+
* Identifies which `p:excl` container this animation belongs to, when
|
|
6151
|
+
* {@link exclusive} is set. ECMA-376 S19.5.24 CT_TLExclusiveTimeNode: at
|
|
6152
|
+
* most one direct child of an exclusive container may be active at a
|
|
6153
|
+
* time, so starting one child stops any other currently-playing child of
|
|
6154
|
+
* the SAME container. Two different `p:excl` containers on the same slide
|
|
6155
|
+
* are independent groups; this id (assigned per container encountered
|
|
6156
|
+
* during parsing, stable only within one parse's animation list) lets
|
|
6157
|
+
* playback tell them apart. Absent when {@link exclusive} is unset.
|
|
6158
|
+
*/
|
|
6159
|
+
exclGroupId?: number;
|
|
6095
6160
|
/** Command type from `p:cmd` (@_type: call/evt/verb). */
|
|
6096
6161
|
commandType?: string;
|
|
6097
6162
|
/** Command string from `p:cmd` (@_cmd). */
|
|
@@ -6375,6 +6440,52 @@ interface PptxElementAnimation {
|
|
|
6375
6440
|
soundPath?: string;
|
|
6376
6441
|
/** Whether to stop any currently playing sound (`p:endSnd`). */
|
|
6377
6442
|
stopSound?: boolean;
|
|
6443
|
+
/**
|
|
6444
|
+
* Pending, not-yet-embedded sound chosen in the authoring UI, as a
|
|
6445
|
+
* `data:audio/...;base64,...` URL. Mirrors the `imageData` /
|
|
6446
|
+
* `mediaData` pending-embed convention used elsewhere in the typed model:
|
|
6447
|
+
* on save, the writer converts this to real bytes under `ppt/media/`,
|
|
6448
|
+
* mints a relationship, and replaces this field with the resolved
|
|
6449
|
+
* {@link soundRId} / {@link soundPath}. Cleared once embedded.
|
|
6450
|
+
*/
|
|
6451
|
+
soundData?: string;
|
|
6452
|
+
/**
|
|
6453
|
+
* Display name for the chosen sound (e.g. the uploaded file's name),
|
|
6454
|
+
* shown by the authoring UI's sound picker. Purely cosmetic; has no
|
|
6455
|
+
* OOXML equivalent and is not required for playback.
|
|
6456
|
+
*/
|
|
6457
|
+
soundFileName?: string;
|
|
6458
|
+
}
|
|
6459
|
+
/**
|
|
6460
|
+
* A read-only anchor representing one of the deck's own effect groups: a
|
|
6461
|
+
* top-level click group (`p:par` under `p:timing`'s main sequence) that this
|
|
6462
|
+
* app did not author, so it is never exposed as an editable
|
|
6463
|
+
* {@link PptxElementAnimation}.
|
|
6464
|
+
*
|
|
6465
|
+
* The authoring UI merges these anchors alongside `PptxSlide.animations` to
|
|
6466
|
+
* render the FULL animation sequence (editor-authored and deck-native
|
|
6467
|
+
* effects together) and lets an editor-authored entry be dragged to any
|
|
6468
|
+
* position relative to them. `order` is the anchor's position among ALL
|
|
6469
|
+
* top-level click groups (editor-owned and native) at load time, in the same
|
|
6470
|
+
* numbering space as {@link PptxElementAnimation.order}, so the two
|
|
6471
|
+
* populations sort into one coherent timeline.
|
|
6472
|
+
*
|
|
6473
|
+
* Anchors are never written back: on save, an untouched anchor's own click
|
|
6474
|
+
* group is repositioned (if an editor-authored effect was dragged past it)
|
|
6475
|
+
* but never mutated, so the deck's own effect stays byte-identical apart
|
|
6476
|
+
* from its position in the sequence.
|
|
6477
|
+
*/
|
|
6478
|
+
interface PptxAnimationTimelineAnchor {
|
|
6479
|
+
/**
|
|
6480
|
+
* Position of this group among all top-level click groups in the main
|
|
6481
|
+
* animation sequence at load time (dense, shared with editor entries'
|
|
6482
|
+
* `order`).
|
|
6483
|
+
*/
|
|
6484
|
+
order: number;
|
|
6485
|
+
/** Shape id(s) this group's effects target, for a readable UI label. */
|
|
6486
|
+
targetIds: string[];
|
|
6487
|
+
/** Effect preset classes present in the group (entr/exit/emph/path). */
|
|
6488
|
+
presetClasses: Array<'entr' | 'exit' | 'emph' | 'path'>;
|
|
6378
6489
|
}
|
|
6379
6490
|
//#endregion
|
|
6380
6491
|
//#region src/core/types/embedded-font.d.ts
|
|
@@ -7078,8 +7189,19 @@ interface PptxSlideTransition {
|
|
|
7078
7189
|
soundLoop?: boolean;
|
|
7079
7190
|
/** Resolved transition sound media path within the package. */
|
|
7080
7191
|
soundPath?: string;
|
|
7081
|
-
/** Human-readable sound file name (extracted from soundPath
|
|
7192
|
+
/** Human-readable sound file name (extracted from soundPath, or set by the
|
|
7193
|
+
* UI when a new file is picked, before it has a soundPath at all). */
|
|
7082
7194
|
soundFileName?: string;
|
|
7195
|
+
/**
|
|
7196
|
+
* A newly-picked local sound file awaiting embedding, as a `data:` URL.
|
|
7197
|
+
* Set by the transitions ribbon's Sound picker (`applyTransitionSoundFile`
|
|
7198
|
+
* in `pptx-viewer-shared`) when the user chooses a file that is not yet
|
|
7199
|
+
* part of the package; mirrors `imageData`/`mediaData` on picture and media
|
|
7200
|
+
* elements. The save pipeline (`embedTransitionSound`) writes the bytes to
|
|
7201
|
+
* `ppt/media/`, mints a relationship, sets `soundRId`/`soundPath`, and
|
|
7202
|
+
* clears this field so a later save does not re-embed the same bytes.
|
|
7203
|
+
*/
|
|
7204
|
+
soundData?: string;
|
|
7083
7205
|
/**
|
|
7084
7206
|
* When true, the transition stops the currently-playing sound (OOXML `p:sndAc/p:endSnd`).
|
|
7085
7207
|
* Mutually exclusive with `soundRId`/`soundPath` (which use `p:stSnd`).
|
|
@@ -7353,17 +7475,29 @@ interface PptxSlide {
|
|
|
7353
7475
|
backgroundPattern?: PptxSlideBackgroundPattern;
|
|
7354
7476
|
/**
|
|
7355
7477
|
* `<p:bgPr/@shadeToTitle>`: boolean flag instructing the renderer to
|
|
7356
|
-
* shade the background toward the title placeholder
|
|
7357
|
-
*
|
|
7358
|
-
*
|
|
7359
|
-
*
|
|
7360
|
-
*
|
|
7478
|
+
* shade the background gradient toward the title placeholder's text
|
|
7479
|
+
* colour. Parsed and round-tripped here on the core model; the actual
|
|
7480
|
+
* visual effect is applied by `pptx-viewer-shared`'s
|
|
7481
|
+
* `getSlideBackgroundStyle` (see `render/background-shade-to-title.ts`),
|
|
7482
|
+
* consumed by all five bindings, not by core itself. That module's
|
|
7483
|
+
* docstring explains the approximation: no published ECMA-376 or
|
|
7484
|
+
* MS-ODRAWXML text documents the exact legacy blend. Legacy PowerPoint
|
|
7485
|
+
* 97-2003 hint, not observed in any real-world corpus file this project
|
|
7486
|
+
* has collected and not settable from any modern PowerPoint UI; see
|
|
7487
|
+
* `docs/guide/limitations.md`.
|
|
7361
7488
|
*
|
|
7362
7489
|
* ECMA-376 §19.3.1.2 (CT_BackgroundProperties).
|
|
7363
7490
|
*/
|
|
7364
7491
|
backgroundShadeToTitle?: boolean;
|
|
7365
7492
|
transition?: PptxSlideTransition;
|
|
7366
7493
|
animations?: PptxElementAnimation[];
|
|
7494
|
+
/**
|
|
7495
|
+
* Read-only anchors for the deck's own (non-editor-authored) effect
|
|
7496
|
+
* groups, merged with `animations` by the authoring UI so drag-to-reorder
|
|
7497
|
+
* can target any position in the full sequence. See
|
|
7498
|
+
* {@link PptxAnimationTimelineAnchor}.
|
|
7499
|
+
*/
|
|
7500
|
+
animationTimelineAnchors?: PptxAnimationTimelineAnchor[];
|
|
7367
7501
|
/** Native OOXML animation data parsed from `p:timing`. */
|
|
7368
7502
|
nativeAnimations?: PptxNativeAnimation[];
|
|
7369
7503
|
/** Preserved raw `p:timing` XML for lossless round-trip of native animations. */
|
|
@@ -7916,7 +8050,7 @@ interface PptxEmbeddedFont {
|
|
|
7916
8050
|
originalPartBytes?: Uint8Array;
|
|
7917
8051
|
}
|
|
7918
8052
|
//#endregion
|
|
7919
|
-
//#region ../core/dist/index-
|
|
8053
|
+
//#region ../core/dist/index-Cwwrmmqf.d.ts
|
|
7920
8054
|
//#region src/core/types/theme-presets.d.ts
|
|
7921
8055
|
/**
|
|
7922
8056
|
* A complete theme preset that can be applied to a presentation.
|
|
@@ -8756,12 +8890,25 @@ interface IPptxHandlerRuntimeFactory {
|
|
|
8756
8890
|
*/
|
|
8757
8891
|
/** Supported encryption algorithms. */
|
|
8758
8892
|
type EncryptionAlgorithm = 'AES128' | 'AES256';
|
|
8893
|
+
/**
|
|
8894
|
+
* Which OOXML encryption scheme to write when creating a password-protected
|
|
8895
|
+
* file. Real PowerPoint can write and open either scheme; this library
|
|
8896
|
+
* defaults to 'agile' (Office 2010+), matching PowerPoint's own default.
|
|
8897
|
+
*/
|
|
8898
|
+
type EncryptionScheme = 'agile' | 'standard';
|
|
8759
8899
|
/** Encryption options for creating encrypted files. */
|
|
8760
8900
|
interface EncryptionOptions {
|
|
8761
8901
|
/** The encryption algorithm to use (defaults to AES256). */
|
|
8762
8902
|
algorithm?: EncryptionAlgorithm;
|
|
8763
8903
|
/** Number of hash iterations for key derivation (defaults to 100000). Lower values speed up tests. */
|
|
8764
8904
|
spinCount?: number;
|
|
8905
|
+
/**
|
|
8906
|
+
* Which encryption scheme to write (defaults to 'agile'). 'standard'
|
|
8907
|
+
* writes the ECMA-376 Standard scheme (Office 2007-compatible: a single
|
|
8908
|
+
* password-derived AES-CBC key with a zero IV over the whole package),
|
|
8909
|
+
* mirroring the scheme this library already knows how to decrypt.
|
|
8910
|
+
*/
|
|
8911
|
+
encryptionScheme?: EncryptionScheme;
|
|
8765
8912
|
}
|
|
8766
8913
|
//#endregion
|
|
8767
8914
|
//#region src/core/PptxHandlerCore.d.ts
|
|
@@ -10084,6 +10231,15 @@ interface Guide {
|
|
|
10084
10231
|
interface InkPoint {
|
|
10085
10232
|
x: number;
|
|
10086
10233
|
y: number;
|
|
10234
|
+
/**
|
|
10235
|
+
* Pointer pressure at this point, from `PointerEvent.pressure` (0..1).
|
|
10236
|
+
* Optional: a binding that has not wired pressure capture simply omits
|
|
10237
|
+
* it, and {@link strokeToInkElement} falls back to
|
|
10238
|
+
* {@link DEFAULT_POINTER_PRESSURE}, the constant value mice and other
|
|
10239
|
+
* non-pressure-aware devices report, which reads as "no real pressure
|
|
10240
|
+
* data".
|
|
10241
|
+
*/
|
|
10242
|
+
pressure?: number;
|
|
10087
10243
|
}
|
|
10088
10244
|
/** Options for {@link strokeToInkElement}. */
|
|
10089
10245
|
interface StrokeToInkElementOpts {
|
|
@@ -10124,10 +10280,13 @@ interface GradientState {
|
|
|
10124
10280
|
/**
|
|
10125
10281
|
* Dropdown ids for the insert-chart menu. Distinct from `PptxChartType`
|
|
10126
10282
|
* because PowerPoint offers Column (vertical) and Bar (horizontal) as two
|
|
10127
|
-
* entries over the same underlying `'bar'` chart type
|
|
10128
|
-
*
|
|
10283
|
+
* entries over the same underlying `'bar'` chart type, and because `'pareto'`
|
|
10284
|
+
* has no `PptxChartType` of its own: it is a dropdown entry that resolves to
|
|
10285
|
+
* `type: 'histogram'` (see docs/guide/limitations.md's ChartEx row) with a
|
|
10286
|
+
* frequency-plus-cumulative-percentage default shape. The other six ChartEx
|
|
10287
|
+
* ids (`histogram` through `regionMap`) map one-to-one onto their chart type.
|
|
10129
10288
|
*/
|
|
10130
|
-
type InsertChartKind = 'column' | 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'histogram' | 'funnel' | 'treemap' | 'sunburst' | 'boxWhisker' | 'regionMap';
|
|
10289
|
+
type InsertChartKind = 'column' | 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'histogram' | 'pareto' | 'funnel' | 'treemap' | 'sunburst' | 'boxWhisker' | 'regionMap';
|
|
10131
10290
|
/** In-memory clipboard payload stored when an element is copied or cut. */
|
|
10132
10291
|
interface ElementClipboardPayload {
|
|
10133
10292
|
element: PptxElement;
|
|
@@ -10354,6 +10513,34 @@ interface ElementRenderContext {
|
|
|
10354
10513
|
* when the option is unset.
|
|
10355
10514
|
*/
|
|
10356
10515
|
readonly surfaceChart3D: boolean;
|
|
10516
|
+
/**
|
|
10517
|
+
* Opt-in flag: render `bar3D` charts as an interactive, camera-orbitable
|
|
10518
|
+
* Three.js box-mesh scene instead of the flat SVG oblique-projection
|
|
10519
|
+
* illusion (see `PptxViewerOptions.barChart3D`). Defaults to `false` when
|
|
10520
|
+
* the option is unset.
|
|
10521
|
+
*/
|
|
10522
|
+
readonly barChart3D: boolean;
|
|
10523
|
+
/**
|
|
10524
|
+
* Opt-in flag: render `line3D` charts as an interactive, camera-orbitable
|
|
10525
|
+
* Three.js tube-path scene instead of the flat SVG oblique-projection
|
|
10526
|
+
* illusion (see `PptxViewerOptions.lineChart3D`). Defaults to `false` when
|
|
10527
|
+
* the option is unset.
|
|
10528
|
+
*/
|
|
10529
|
+
readonly lineChart3D: boolean;
|
|
10530
|
+
/**
|
|
10531
|
+
* Opt-in flag: render `area3D` charts as an interactive, camera-orbitable
|
|
10532
|
+
* Three.js tube-path + ribbon-fill scene instead of the flat SVG
|
|
10533
|
+
* oblique-projection illusion (see `PptxViewerOptions.areaChart3D`).
|
|
10534
|
+
* Defaults to `false` when the option is unset.
|
|
10535
|
+
*/
|
|
10536
|
+
readonly areaChart3D: boolean;
|
|
10537
|
+
/**
|
|
10538
|
+
* Opt-in flag: render `pie3D` charts as an interactive, camera-orbitable
|
|
10539
|
+
* Three.js wedge-mesh scene instead of the flat SVG oblique-projection
|
|
10540
|
+
* illusion (see `PptxViewerOptions.pieChart3D`). Defaults to `false` when
|
|
10541
|
+
* the option is unset.
|
|
10542
|
+
*/
|
|
10543
|
+
readonly pieChart3D: boolean;
|
|
10357
10544
|
/**
|
|
10358
10545
|
* True only for the live presentation stage (real Fullscreen API active):
|
|
10359
10546
|
* media renderers use this to autoplay once mounted, matching PowerPoint's
|
|
@@ -10511,6 +10698,26 @@ interface SlideStageOptions {
|
|
|
10511
10698
|
* `PptxViewerOptions.surfaceChart3D`.
|
|
10512
10699
|
*/
|
|
10513
10700
|
surfaceChart3D?: boolean;
|
|
10701
|
+
/**
|
|
10702
|
+
* Opt-in interactive WebGL bar3D-chart renderer flag; see
|
|
10703
|
+
* `PptxViewerOptions.barChart3D`.
|
|
10704
|
+
*/
|
|
10705
|
+
barChart3D?: boolean;
|
|
10706
|
+
/**
|
|
10707
|
+
* Opt-in interactive WebGL line3D-chart renderer flag; see
|
|
10708
|
+
* `PptxViewerOptions.lineChart3D`.
|
|
10709
|
+
*/
|
|
10710
|
+
lineChart3D?: boolean;
|
|
10711
|
+
/**
|
|
10712
|
+
* Opt-in interactive WebGL area3D-chart renderer flag; see
|
|
10713
|
+
* `PptxViewerOptions.areaChart3D`.
|
|
10714
|
+
*/
|
|
10715
|
+
areaChart3D?: boolean;
|
|
10716
|
+
/**
|
|
10717
|
+
* Opt-in interactive WebGL pie3D-chart renderer flag; see
|
|
10718
|
+
* `PptxViewerOptions.pieChart3D`.
|
|
10719
|
+
*/
|
|
10720
|
+
pieChart3D?: boolean;
|
|
10514
10721
|
/** True only for the live presentation stage; see `ElementRenderContext.presenting`. */
|
|
10515
10722
|
presenting?: boolean;
|
|
10516
10723
|
/** Full deck and active index used by presentation Zoom elements. */
|
|
@@ -10813,6 +11020,8 @@ interface AnimationTimingPatch {
|
|
|
10813
11020
|
repeatCount?: number;
|
|
10814
11021
|
repeatMode?: PptxAnimationRepeatMode | 'none';
|
|
10815
11022
|
triggerShapeId?: string;
|
|
11023
|
+
afterAnimation?: PptxAfterAnimationAction;
|
|
11024
|
+
afterAnimationColor?: string;
|
|
10816
11025
|
}
|
|
10817
11026
|
interface AnimationActions {
|
|
10818
11027
|
addAnimation(group: AnimationGroup, preset: PptxAnimationPreset): void;
|
|
@@ -10835,6 +11044,14 @@ interface AnimationActions {
|
|
|
10835
11044
|
/** Replace the selected element's raw path (canvas end-handle drag commit). */
|
|
10836
11045
|
setMotionPathData(path: string): void;
|
|
10837
11046
|
setAnimationTiming(elementId: string, patch: AnimationTimingPatch): void;
|
|
11047
|
+
/**
|
|
11048
|
+
* Stage a newly-picked effect sound file (a pending `data:` URL, embedded
|
|
11049
|
+
* on save), or clear the sound entirely when `pick` is `undefined`.
|
|
11050
|
+
*/
|
|
11051
|
+
setAnimationSound(elementId: string, pick: {
|
|
11052
|
+
dataUrl: string;
|
|
11053
|
+
fileName?: string;
|
|
11054
|
+
} | undefined): void;
|
|
10838
11055
|
reorderAnimation(elementId: string, direction: 'up' | 'down'): void;
|
|
10839
11056
|
moveAnimation(elementId: string, index: number): void;
|
|
10840
11057
|
}
|
|
@@ -10965,10 +11182,13 @@ interface InkActions {
|
|
|
10965
11182
|
*/
|
|
10966
11183
|
commitStroke(stroke: StrokeToInkElementOpts): void;
|
|
10967
11184
|
/**
|
|
10968
|
-
* Remove the ink element with `id` from the current slide
|
|
10969
|
-
* eraser tool).
|
|
10970
|
-
*
|
|
10971
|
-
*
|
|
11185
|
+
* Remove the ink/contentPart element with `id` from the current slide
|
|
11186
|
+
* (Draw tab's eraser tool). `contentPart` is included because ink saved
|
|
11187
|
+
* via the Draw tab reloads in that shape, so it must stay erasable after a
|
|
11188
|
+
* save/reload round-trip. Returns `true` when a matching element was found
|
|
11189
|
+
* and removed; `false` for a missing id, an unrelated element, or a
|
|
11190
|
+
* read-only viewer (safe to call from a generic stage hit-test without a
|
|
11191
|
+
* pre-check).
|
|
10972
11192
|
*/
|
|
10973
11193
|
eraseInkElement(id: string): boolean;
|
|
10974
11194
|
}
|
|
@@ -11026,6 +11246,8 @@ interface InspectorActions {
|
|
|
11026
11246
|
setElementAction(trigger: 'click' | 'hover', action: ElementAction): void;
|
|
11027
11247
|
/** Set the selection's accessibility description (inspector Alt Text field). */
|
|
11028
11248
|
setAltText(text: string): void;
|
|
11249
|
+
/** Set the selected OLE element's Object Name (`p:oleObj/@name`). */
|
|
11250
|
+
setOleName(name: string): void;
|
|
11029
11251
|
setChartData(data: PptxChartData): void;
|
|
11030
11252
|
setMediaProperties(patch: Partial<MediaPptxElement>): void;
|
|
11031
11253
|
setTableHeaderRow(enabled: boolean): void;
|
|
@@ -11159,6 +11381,13 @@ interface TransitionActions {
|
|
|
11159
11381
|
* comes from the shared `ribbonTransitionTargets`.
|
|
11160
11382
|
*/
|
|
11161
11383
|
applyTransitionDraft(draft: RibbonTransitionDraft, applyToAll: boolean): void;
|
|
11384
|
+
/**
|
|
11385
|
+
* Merge a raw partial change onto the ACTIVE slide's transition, for
|
|
11386
|
+
* controls that write a single field outside the ribbon draft (currently
|
|
11387
|
+
* the Sound picker: a freshly-picked file's `soundData` has no equivalent
|
|
11388
|
+
* in {@link RibbonTransitionDraft}).
|
|
11389
|
+
*/
|
|
11390
|
+
applyTransitionChange(changes: Partial<PptxSlideTransition>): void;
|
|
11162
11391
|
}
|
|
11163
11392
|
//#endregion
|
|
11164
11393
|
//#region src/viewer/editor/editor-edit-ops.d.ts
|
|
@@ -11264,6 +11493,8 @@ interface InspectorState {
|
|
|
11264
11493
|
oleObjectType: OleObjectType | undefined;
|
|
11265
11494
|
oleFileName: string | undefined;
|
|
11266
11495
|
oleIsLinked: boolean;
|
|
11496
|
+
/** The OLE object's author-assigned name (`p:oleObj/@name`), if any. */
|
|
11497
|
+
oleName: string | undefined;
|
|
11267
11498
|
x: number;
|
|
11268
11499
|
y: number;
|
|
11269
11500
|
width: number;
|
|
@@ -11563,6 +11794,14 @@ interface RibbonTransitionHandlers {
|
|
|
11563
11794
|
readDraft(): RibbonTransitionDraft;
|
|
11564
11795
|
/** Commit the tab's whole draft, onto the active slide or every slide. */
|
|
11565
11796
|
applyDraft(draft: RibbonTransitionDraft, applyToAll: boolean): void;
|
|
11797
|
+
/** The ACTIVE slide's raw transition, for fields the draft does not carry (the Sound picker). */
|
|
11798
|
+
readTransition(): PptxSlideTransition | undefined;
|
|
11799
|
+
/**
|
|
11800
|
+
* Merge a raw partial change onto the active slide's transition. Used by
|
|
11801
|
+
* the Sound picker: a freshly-picked file's `soundData` has no equivalent
|
|
11802
|
+
* in {@link RibbonTransitionDraft}.
|
|
11803
|
+
*/
|
|
11804
|
+
applyChange(changes: Partial<PptxSlideTransition>): void;
|
|
11566
11805
|
}
|
|
11567
11806
|
/**
|
|
11568
11807
|
* Design tab handler: swap the viewer chrome's `ViewerTheme` (the shared
|
|
@@ -11649,6 +11888,8 @@ interface RibbonSelectionState {
|
|
|
11649
11888
|
formatPainterActive?: boolean;
|
|
11650
11889
|
selectedElementId?: string;
|
|
11651
11890
|
animations?: readonly PptxElementAnimation[];
|
|
11891
|
+
/** Read-only anchors for the active slide's deck-native effect groups. */
|
|
11892
|
+
animationTimelineAnchors?: readonly PptxAnimationTimelineAnchor[];
|
|
11652
11893
|
/** Available slide layouts for the Slides group's New Slide / Layout menus. */
|
|
11653
11894
|
layouts?: readonly LayoutOption[];
|
|
11654
11895
|
/** Artwork for the layout gallery thumbnails, keyed by layout path. */
|
|
@@ -12668,6 +12909,55 @@ interface PptxViewerOptions extends PptxViewerCallbacks {
|
|
|
12668
12909
|
* Vue/React/Angular/Svelte bindings).
|
|
12669
12910
|
*/
|
|
12670
12911
|
surfaceChart3D?: boolean;
|
|
12912
|
+
/**
|
|
12913
|
+
* Opt in to the interactive Three.js bar3D-chart renderer (default
|
|
12914
|
+
* `false`). When `true`, `bar3D` charts render as camera-orbitable real
|
|
12915
|
+
* box meshes (drag to rotate, scroll to zoom) instead of the flat SVG
|
|
12916
|
+
* oblique-projection illusion. Chart marks are not selectable/draggable in
|
|
12917
|
+
* this mode. `three` is an optional peer dependency, lazily imported only
|
|
12918
|
+
* when this is `true`; when it is unavailable, the chart has no plottable
|
|
12919
|
+
* grid, or it is a horizontal 3-D Bar, the SVG renderer is used instead.
|
|
12920
|
+
* Set once at construction (no runtime setter, mirroring the
|
|
12921
|
+
* Vue/React/Angular/Svelte bindings).
|
|
12922
|
+
*/
|
|
12923
|
+
barChart3D?: boolean;
|
|
12924
|
+
/**
|
|
12925
|
+
* Opt in to the interactive Three.js line3D-chart renderer (default
|
|
12926
|
+
* `false`). When `true`, `line3D` charts render as camera-orbitable real
|
|
12927
|
+
* tube-path meshes, one per depth ("series") plane (drag to rotate, scroll
|
|
12928
|
+
* to zoom), instead of the flat SVG oblique-projection illusion. Chart
|
|
12929
|
+
* marks are not selectable/draggable in this mode. `three` is an optional
|
|
12930
|
+
* peer dependency, lazily imported only when this is `true`; when it is
|
|
12931
|
+
* unavailable or the chart has no plottable grid, the SVG renderer is used
|
|
12932
|
+
* instead. Set once at construction (no runtime setter, mirroring the
|
|
12933
|
+
* Vue/React/Angular/Svelte bindings).
|
|
12934
|
+
*/
|
|
12935
|
+
lineChart3D?: boolean;
|
|
12936
|
+
/**
|
|
12937
|
+
* Opt in to the interactive Three.js area3D-chart renderer (default
|
|
12938
|
+
* `false`). When `true`, `area3D` charts render as camera-orbitable real
|
|
12939
|
+
* tube-path meshes plus a filled ribbon mesh per series, one per depth
|
|
12940
|
+
* ("series") plane (drag to rotate, scroll to zoom), instead of the flat
|
|
12941
|
+
* SVG oblique-projection illusion. Chart marks are not selectable/draggable
|
|
12942
|
+
* in this mode. `three` is an optional peer dependency, lazily imported
|
|
12943
|
+
* only when this is `true`; when it is unavailable or the chart has no
|
|
12944
|
+
* plottable grid, the SVG renderer is used instead. Set once at
|
|
12945
|
+
* construction (no runtime setter, mirroring the Vue/React/Angular/Svelte
|
|
12946
|
+
* bindings).
|
|
12947
|
+
*/
|
|
12948
|
+
areaChart3D?: boolean;
|
|
12949
|
+
/**
|
|
12950
|
+
* Opt in to the interactive Three.js pie3D-chart renderer (default
|
|
12951
|
+
* `false`). When `true`, `pie3D` charts render as camera-orbitable real
|
|
12952
|
+
* wedge meshes (drag to rotate, scroll to zoom) instead of the flat SVG
|
|
12953
|
+
* oblique-projection illusion. Chart marks are not selectable/draggable in
|
|
12954
|
+
* this mode. `three` is an optional peer dependency, lazily imported only
|
|
12955
|
+
* when this is `true`; when it is unavailable or the chart has no
|
|
12956
|
+
* plottable series, the SVG renderer is used instead. Set once at
|
|
12957
|
+
* construction (no runtime setter, mirroring the
|
|
12958
|
+
* Vue/React/Angular/Svelte bindings).
|
|
12959
|
+
*/
|
|
12960
|
+
pieChart3D?: boolean;
|
|
12671
12961
|
/**
|
|
12672
12962
|
* Whether this application PERMITS recovery autosave (`@default true`).
|
|
12673
12963
|
*
|