pptx-svelte-viewer 2.3.0 → 2.5.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/{AiChatPanel-CO-BVNBN.js → AiChatPanel-D2xEoaRP.js} +1 -1
- package/dist/{export-ko5GUtEk.js → export-Doev_dGg.js} +75816 -58293
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +112 -87
- package/dist/index.js +16 -16
- package/dist/pptx-svelte-viewer.css +1 -1
- package/dist/{translator-D2iZRR15.js → translator-DL83W_OP.js} +1 -0
- package/dist/viewer/components/props.d.ts +7 -0
- package/dist/viewer/components/props.d.ts.map +1 -1
- package/dist/viewer/index.d.ts +138 -88
- package/dist/viewer/index.js +49 -47
- package/dist/viewer/presentation/animation-playback.svelte.d.ts +5 -1
- package/dist/viewer/presentation/animation-playback.svelte.d.ts.map +1 -1
- package/dist/viewer/presentation/apply-animation-styles.d.ts.map +1 -1
- package/dist/viewer/presentation/presentation-controller.svelte.d.ts +21 -0
- package/dist/viewer/presentation/presentation-controller.svelte.d.ts.map +1 -1
- package/dist/viewer/presentation/presenter-session.svelte.d.ts.map +1 -1
- package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -1
- package/dist/viewer/state/presentation-element-states-context.d.ts +11 -0
- package/dist/viewer/state/presentation-element-states-context.d.ts.map +1 -1
- package/dist/viewer/state/viewport-handlers.d.ts.map +1 -1
- package/dist/{y-webrtc-BiViqyU2.js → y-webrtc-Cph8DzuM.js} +876 -863
- package/package.json +3 -3
- package/dist/__vite-browser-external-DOmiXdGM.js +0 -7
- package/dist/dist-BAMsFiYQ.js +0 -63126
- package/dist/rolldown-runtime--_vEcKDh.js +0 -29
|
@@ -341,6 +341,7 @@ var r = {
|
|
|
341
341
|
"pptx.presentation.highlighter": "Highlighter",
|
|
342
342
|
"pptx.presentation.eraser": "Eraser",
|
|
343
343
|
"pptx.presentation.laserPointer": "Laser Pointer",
|
|
344
|
+
"pptx.presentation.endOfSlideShow": "End of slide show, click to exit.",
|
|
344
345
|
"pptx.presentation.pointerTools": "Pointer Options",
|
|
345
346
|
"pptx.selectionPane.title": "Selection Pane",
|
|
346
347
|
"pptx.selectionPane.empty": "No elements",
|
|
@@ -57,6 +57,13 @@ export interface TextBlockProps {
|
|
|
57
57
|
paragraphs: RenderParagraph[];
|
|
58
58
|
/** Inline `style` string for the text block wrapper. */
|
|
59
59
|
textStyle: string;
|
|
60
|
+
/** Owning element id, needed to key this element's text-build sub-animations. */
|
|
61
|
+
elementId?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Live per-sub-element animation states. Present only while a staged text
|
|
64
|
+
* build (by paragraph / word / letter) is playing.
|
|
65
|
+
*/
|
|
66
|
+
subElementAnimStates?: ReadonlyMap<string, ElementAnimationState>;
|
|
60
67
|
}
|
|
61
68
|
export interface SlideStageProps {
|
|
62
69
|
slide: PptxSlide | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACX,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,QAAQ,EACR,eAAe,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;GAIG;AAEH,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACX,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,QAAQ,EACR,eAAe,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;GAIG;AAEH,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,gHAAgH;IAChH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,QAAQ,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IAClC,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,yFAAyF;IACzF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACrC,wEAAwE;IACxE,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3E,mBAAmB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACnD;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACrC,sEAAsE;IACtE,OAAO,EAAE,WAAW,CAAC;IACrB,qDAAqD;IACrD,GAAG,EAAE,UAAU,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAChC,0EAA0E;IAC1E,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,WAAW,CAAC;IACpB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,eAAe;IAC/B,wEAAwE;IACxE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC7D,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
|
package/dist/viewer/index.d.ts
CHANGED
|
@@ -534,6 +534,62 @@ interface PptxCustomPathProperties {
|
|
|
534
534
|
customGeometryTextRect?: CustomGeometryTextRect;
|
|
535
535
|
}
|
|
536
536
|
//#endregion
|
|
537
|
+
//#region src/core/types/effect-dag.d.ts
|
|
538
|
+
type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
|
|
539
|
+
type EffectDagContainerType = 'sib' | 'tree';
|
|
540
|
+
type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagAlphaOutset | EffectDagPresetShadow | EffectDagRawLeaf;
|
|
541
|
+
interface EffectDagContainer {
|
|
542
|
+
kind: 'cont';
|
|
543
|
+
type: EffectDagContainerType;
|
|
544
|
+
name?: string;
|
|
545
|
+
children: EffectDagNode[];
|
|
546
|
+
}
|
|
547
|
+
interface EffectDagBlend {
|
|
548
|
+
kind: 'blend';
|
|
549
|
+
mode: EffectDagBlendMode;
|
|
550
|
+
container: EffectDagContainer;
|
|
551
|
+
}
|
|
552
|
+
interface EffectDagXfrm {
|
|
553
|
+
kind: 'xfrmEffect';
|
|
554
|
+
sx?: number;
|
|
555
|
+
sy?: number;
|
|
556
|
+
kx?: number;
|
|
557
|
+
ky?: number;
|
|
558
|
+
tx?: number;
|
|
559
|
+
ty?: number;
|
|
560
|
+
}
|
|
561
|
+
interface EffectDagRelOff {
|
|
562
|
+
kind: 'relOff';
|
|
563
|
+
tx?: number;
|
|
564
|
+
ty?: number;
|
|
565
|
+
}
|
|
566
|
+
/** Typed CT_BlurEffect with its original payload retained for lossless edits. */
|
|
567
|
+
interface EffectDagBlur {
|
|
568
|
+
kind: 'blur';
|
|
569
|
+
radiusEmu?: number;
|
|
570
|
+
grow?: boolean;
|
|
571
|
+
xml: XmlObject;
|
|
572
|
+
}
|
|
573
|
+
/** Typed CT_AlphaOutsetEffect with original XML retained for lossless edits. */
|
|
574
|
+
interface EffectDagAlphaOutset {
|
|
575
|
+
kind: 'alphaOutset';
|
|
576
|
+
radiusEmu?: number;
|
|
577
|
+
xml: XmlObject;
|
|
578
|
+
}
|
|
579
|
+
/** Typed CT_PresetShadowEffect with colour and extension XML retained verbatim. */
|
|
580
|
+
interface EffectDagPresetShadow {
|
|
581
|
+
kind: 'prstShdw';
|
|
582
|
+
preset?: `shdw${number}`;
|
|
583
|
+
distanceEmu?: number;
|
|
584
|
+
direction?: number;
|
|
585
|
+
xml: XmlObject;
|
|
586
|
+
}
|
|
587
|
+
interface EffectDagRawLeaf {
|
|
588
|
+
kind: 'raw';
|
|
589
|
+
tag: string;
|
|
590
|
+
xml: Record<string, unknown>;
|
|
591
|
+
}
|
|
592
|
+
//#endregion
|
|
537
593
|
//#region src/core/types/three-d.d.ts
|
|
538
594
|
/**
|
|
539
595
|
* 3-D effect properties, text warp (WordArt) presets, and scene/shape bevel
|
|
@@ -764,6 +820,18 @@ interface ShapeStyle {
|
|
|
764
820
|
/** Original `gradFill` XML retained for unknown-child and extension round-tripping. */
|
|
765
821
|
fillGradientXml?: XmlObject;
|
|
766
822
|
fillMode?: 'solid' | 'gradient' | 'pattern' | 'none' | 'image' | 'theme' | 'group';
|
|
823
|
+
/**
|
|
824
|
+
* `<p:sp useBgFill="1">`: the shape paints with the SLIDE BACKGROUND's fill
|
|
825
|
+
* rather than its own or its theme style's.
|
|
826
|
+
*
|
|
827
|
+
* PowerPoint's designer emits full-bleed rectangles this way, and they also
|
|
828
|
+
* carry an `a:fillRef` pointing at `accent1`. Ignoring the attribute painted
|
|
829
|
+
* those panels in the accent colour, so a black-and-white title slide came out
|
|
830
|
+
* black-and-blue. The load pipeline copies the resolved slide background onto
|
|
831
|
+
* the fill fields; the flag stays for round-trip and for renderers that want
|
|
832
|
+
* to re-resolve against a changed background.
|
|
833
|
+
*/
|
|
834
|
+
useBackgroundFill?: boolean;
|
|
767
835
|
fillPatternPreset?: string;
|
|
768
836
|
fillPatternBackgroundColor?: string;
|
|
769
837
|
/** Original `pattFill` XML retained for unknown-child round-tripping. */
|
|
@@ -996,6 +1064,15 @@ interface ShapeStyle {
|
|
|
996
1064
|
lineGlowOpacity?: number;
|
|
997
1065
|
/** Raw `a:effectDag` XML node preserved for round-trip serialisation. */
|
|
998
1066
|
effectDagXml?: XmlObject;
|
|
1067
|
+
/**
|
|
1068
|
+
* Typed effect graph parsed from {@link ShapeStyle.effectDagXml}. The four
|
|
1069
|
+
* structural container nodes (`a:cont`, `a:blend`, `a:xfrmEffect`,
|
|
1070
|
+
* `a:relOff`) are fully typed; any other leaf effect (e.g. `a:outerShdw`,
|
|
1071
|
+
* `a:glow`, `a:alphaInv`) is captured as
|
|
1072
|
+
* {@link import('./effect-dag').EffectDagRawLeaf} so we never have to
|
|
1073
|
+
* recurse into the full effect taxonomy.
|
|
1074
|
+
*/
|
|
1075
|
+
effectDagTree?: EffectDagContainer;
|
|
999
1076
|
/** Grayscale flag from effectDag `a:grayscl`. */
|
|
1000
1077
|
dagGrayscale?: boolean;
|
|
1001
1078
|
/** Bi-level threshold (0-100) from effectDag `a:biLevel`. */
|
|
@@ -1430,6 +1507,20 @@ interface TextStyle {
|
|
|
1430
1507
|
textPresetShadowDirection?: number;
|
|
1431
1508
|
/** Text blur effect radius in px (`a:blur`). */
|
|
1432
1509
|
textBlurRadius?: number;
|
|
1510
|
+
/**
|
|
1511
|
+
* Raw `a:effectDag` XML node from `a:rPr`, preserved verbatim for
|
|
1512
|
+
* round-trip serialisation. Mirrors the shape-level
|
|
1513
|
+
* {@link import('./shape-style').ShapeStyle.effectDagXml} field.
|
|
1514
|
+
*/
|
|
1515
|
+
textEffectDagXml?: XmlObject;
|
|
1516
|
+
/**
|
|
1517
|
+
* Typed effect graph parsed from `textEffectDagXml`. The four structural
|
|
1518
|
+
* container nodes (`a:cont`, `a:blend`, `a:xfrmEffect`, `a:relOff`) are
|
|
1519
|
+
* fully typed; any other leaf effect is captured as
|
|
1520
|
+
* {@link import('./effect-dag').EffectDagRawLeaf} so we never have to
|
|
1521
|
+
* recurse into the full effect taxonomy.
|
|
1522
|
+
*/
|
|
1523
|
+
textEffectDagTree?: EffectDagContainer;
|
|
1433
1524
|
/** Text alpha modulation fixed (0-100) from `a:alphaModFix`. */
|
|
1434
1525
|
textAlphaModFix?: number;
|
|
1435
1526
|
/** Text alpha modulation from `a:alphaMod` (0-100 percentage). */
|
|
@@ -2820,62 +2911,6 @@ interface PptxChartData {
|
|
|
2820
2911
|
clrMapOvr?: Record<string, string>;
|
|
2821
2912
|
}
|
|
2822
2913
|
//#endregion
|
|
2823
|
-
//#region src/core/types/effect-dag.d.ts
|
|
2824
|
-
type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
|
|
2825
|
-
type EffectDagContainerType = 'sib' | 'tree';
|
|
2826
|
-
type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagAlphaOutset | EffectDagPresetShadow | EffectDagRawLeaf;
|
|
2827
|
-
interface EffectDagContainer {
|
|
2828
|
-
kind: 'cont';
|
|
2829
|
-
type: EffectDagContainerType;
|
|
2830
|
-
name?: string;
|
|
2831
|
-
children: EffectDagNode[];
|
|
2832
|
-
}
|
|
2833
|
-
interface EffectDagBlend {
|
|
2834
|
-
kind: 'blend';
|
|
2835
|
-
mode: EffectDagBlendMode;
|
|
2836
|
-
container: EffectDagContainer;
|
|
2837
|
-
}
|
|
2838
|
-
interface EffectDagXfrm {
|
|
2839
|
-
kind: 'xfrmEffect';
|
|
2840
|
-
sx?: number;
|
|
2841
|
-
sy?: number;
|
|
2842
|
-
kx?: number;
|
|
2843
|
-
ky?: number;
|
|
2844
|
-
tx?: number;
|
|
2845
|
-
ty?: number;
|
|
2846
|
-
}
|
|
2847
|
-
interface EffectDagRelOff {
|
|
2848
|
-
kind: 'relOff';
|
|
2849
|
-
tx?: number;
|
|
2850
|
-
ty?: number;
|
|
2851
|
-
}
|
|
2852
|
-
/** Typed CT_BlurEffect with its original payload retained for lossless edits. */
|
|
2853
|
-
interface EffectDagBlur {
|
|
2854
|
-
kind: 'blur';
|
|
2855
|
-
radiusEmu?: number;
|
|
2856
|
-
grow?: boolean;
|
|
2857
|
-
xml: XmlObject;
|
|
2858
|
-
}
|
|
2859
|
-
/** Typed CT_AlphaOutsetEffect with original XML retained for lossless edits. */
|
|
2860
|
-
interface EffectDagAlphaOutset {
|
|
2861
|
-
kind: 'alphaOutset';
|
|
2862
|
-
radiusEmu?: number;
|
|
2863
|
-
xml: XmlObject;
|
|
2864
|
-
}
|
|
2865
|
-
/** Typed CT_PresetShadowEffect with colour and extension XML retained verbatim. */
|
|
2866
|
-
interface EffectDagPresetShadow {
|
|
2867
|
-
kind: 'prstShdw';
|
|
2868
|
-
preset?: `shdw${number}`;
|
|
2869
|
-
distanceEmu?: number;
|
|
2870
|
-
direction?: number;
|
|
2871
|
-
xml: XmlObject;
|
|
2872
|
-
}
|
|
2873
|
-
interface EffectDagRawLeaf {
|
|
2874
|
-
kind: 'raw';
|
|
2875
|
-
tag: string;
|
|
2876
|
-
xml: Record<string, unknown>;
|
|
2877
|
-
}
|
|
2878
|
-
//#endregion
|
|
2879
2914
|
//#region src/core/types/image.d.ts
|
|
2880
2915
|
/**
|
|
2881
2916
|
* Image recolour/adjustment properties parsed from blip extensions.
|
|
@@ -3078,36 +3113,6 @@ interface PptxImageProperties {
|
|
|
3078
3113
|
/** Crop-to-shape — CSS clip-path shape name. */
|
|
3079
3114
|
cropShape?: PptxCropShape;
|
|
3080
3115
|
}
|
|
3081
|
-
declare module "./index" {
|
|
3082
|
-
interface TextStyle {
|
|
3083
|
-
/**
|
|
3084
|
-
* Raw `a:effectDag` XML node from `a:rPr`, preserved verbatim for
|
|
3085
|
-
* round-trip serialisation. Mirrors the shape-level
|
|
3086
|
-
* {@link import('./shape-style').ShapeStyle.effectDagXml} field.
|
|
3087
|
-
*/
|
|
3088
|
-
textEffectDagXml?: XmlObject;
|
|
3089
|
-
/**
|
|
3090
|
-
* Typed effect graph parsed from `textEffectDagXml`. The four structural
|
|
3091
|
-
* container nodes (`a:cont`, `a:blend`, `a:xfrmEffect`, `a:relOff`) are
|
|
3092
|
-
* fully typed; any other leaf effect is captured as
|
|
3093
|
-
* {@link EffectDagRawLeaf} so we never have to recurse into the full
|
|
3094
|
-
* effect taxonomy.
|
|
3095
|
-
*/
|
|
3096
|
-
textEffectDagTree?: EffectDagContainer;
|
|
3097
|
-
}
|
|
3098
|
-
}
|
|
3099
|
-
declare module "./index" {
|
|
3100
|
-
interface ShapeStyle {
|
|
3101
|
-
/**
|
|
3102
|
-
* Typed effect graph parsed from {@link ShapeStyle.effectDagXml}. The four
|
|
3103
|
-
* structural container nodes (`a:cont`, `a:blend`, `a:xfrmEffect`,
|
|
3104
|
-
* `a:relOff`) are fully typed; any other leaf effect (e.g. `a:outerShdw`,
|
|
3105
|
-
* `a:glow`, `a:alphaInv`) is captured as {@link EffectDagRawLeaf} so we
|
|
3106
|
-
* never have to recurse into the full effect taxonomy.
|
|
3107
|
-
*/
|
|
3108
|
-
effectDagTree?: EffectDagContainer;
|
|
3109
|
-
}
|
|
3110
|
-
}
|
|
3111
3116
|
//#endregion
|
|
3112
3117
|
//#region src/core/types/media.d.ts
|
|
3113
3118
|
/**
|
|
@@ -5174,6 +5179,27 @@ interface PptxNativeAnimation {
|
|
|
5174
5179
|
soundPath?: string;
|
|
5175
5180
|
/** Whether to stop any currently playing sound (`p:endSnd`). */
|
|
5176
5181
|
stopSound?: boolean;
|
|
5182
|
+
/**
|
|
5183
|
+
* Whether the enclosing click-level group (a direct `p:par` child of the
|
|
5184
|
+
* `mainSeq`) begins automatically when the slide appears, rather than waiting
|
|
5185
|
+
* for a click.
|
|
5186
|
+
*
|
|
5187
|
+
* PowerPoint gates a click step with a lone `<p:cond delay="indefinite"/>`;
|
|
5188
|
+
* a group that also carries a time-node condition (`onBegin`/`onEnd` with a
|
|
5189
|
+
* `@tn`) or a finite delay starts on slide entry ("With/After Previous" as the
|
|
5190
|
+
* first effect on the slide). The flat animation list cannot express that on
|
|
5191
|
+
* its own, so the parse layer stamps it here.
|
|
5192
|
+
*/
|
|
5193
|
+
groupAutoStart?: boolean;
|
|
5194
|
+
/**
|
|
5195
|
+
* Index of the enclosing effect-wrapper `p:par` inside the click-level group.
|
|
5196
|
+
*
|
|
5197
|
+
* Effects that share a wrapper are OOXML siblings: they all start when that
|
|
5198
|
+
* wrapper starts, and each `p:cond/@delay` is measured from the wrapper's
|
|
5199
|
+
* start, NOT chained off the effect before it. Playback uses this to place
|
|
5200
|
+
* simultaneous effects at their true offsets instead of accumulating delays.
|
|
5201
|
+
*/
|
|
5202
|
+
parGroupIndex?: number;
|
|
5177
5203
|
/** Structured start conditions parsed from `p:stCondLst`. */
|
|
5178
5204
|
startConditions?: AnimationCondition[];
|
|
5179
5205
|
/** Structured end conditions parsed from `p:endCondLst`. */
|
|
@@ -6837,7 +6863,6 @@ interface PptxEmbeddedFont {
|
|
|
6837
6863
|
originalPartBytes?: Uint8Array;
|
|
6838
6864
|
}
|
|
6839
6865
|
|
|
6840
|
-
//#endregion
|
|
6841
6866
|
//#region src/core/types/theme-presets.d.ts
|
|
6842
6867
|
/**
|
|
6843
6868
|
* A complete theme preset that can be applied to a presentation.
|
|
@@ -10932,12 +10957,16 @@ declare class AnimationPlayback {
|
|
|
10932
10957
|
get isComplete(): boolean;
|
|
10933
10958
|
/** Clear all pending timers + the in-flight staged-build RAF. */
|
|
10934
10959
|
clearTimers(): void;
|
|
10960
|
+
/** Whether the active slide was seeded as fully built (backward entry). */
|
|
10961
|
+
get seededCompleted(): boolean;
|
|
10935
10962
|
/**
|
|
10936
10963
|
* Rebuild the controller for the current slide and replay from the start. The
|
|
10937
10964
|
* controller builds the timeline engine (expanding text-build animations) and
|
|
10938
10965
|
* derives keyframes CSS, trigger-shape ids, and the tracked element id list.
|
|
10939
10966
|
*/
|
|
10940
|
-
reset(
|
|
10967
|
+
reset(options?: {
|
|
10968
|
+
completed?: boolean;
|
|
10969
|
+
}): void;
|
|
10941
10970
|
/**
|
|
10942
10971
|
* Reveal the next click-group. Returns `true` if a group was revealed, `false`
|
|
10943
10972
|
* when playback is complete or animations are disabled (so the caller can fall
|
|
@@ -10997,12 +11026,18 @@ interface PresentationControllerDeps {
|
|
|
10997
11026
|
onPlayActionSound?: (soundPath: string) => void;
|
|
10998
11027
|
/** The live presentation stage root, to scope media-command lookups to. */
|
|
10999
11028
|
getFrameRoot?(): HTMLElement | null;
|
|
11029
|
+
/** End the show (host leaves presentation mode). */
|
|
11030
|
+
exit?(): void;
|
|
11031
|
+
/** `p:showPr` "end with black slide"; defaults to on, like PowerPoint. */
|
|
11032
|
+
getEndWithBlackSlide?(): boolean | undefined;
|
|
11000
11033
|
}
|
|
11001
11034
|
declare class PresentationController {
|
|
11002
11035
|
#private;
|
|
11003
11036
|
readonly playback: AnimationPlayback;
|
|
11004
11037
|
constructor(deps: PresentationControllerDeps);
|
|
11005
11038
|
/** The active slide-transition overlay state, or `null` when none is playing. */
|
|
11039
|
+
/** Whether the black "End of slide show" screen should be rendered. */
|
|
11040
|
+
get endOfShowVisible(): boolean;
|
|
11006
11041
|
get transition(): TransitionState | null;
|
|
11007
11042
|
/** Reactive per-element native-animation state (visibility, build, colour). */
|
|
11008
11043
|
get elementStates(): Map<string, ElementAnimationState>;
|
|
@@ -11029,6 +11064,21 @@ declare class PresentationController {
|
|
|
11029
11064
|
* on-screen next button pass `fromClick = false` and are never gated.
|
|
11030
11065
|
*/
|
|
11031
11066
|
advance(fromClick?: boolean): void;
|
|
11067
|
+
/**
|
|
11068
|
+
* Raise the black end-of-slide-show screen without ending anything.
|
|
11069
|
+
*
|
|
11070
|
+
* Used by an audience display when the presenter ends the session and the
|
|
11071
|
+
* browser refuses to close the tab: the room sees the end screen, never the
|
|
11072
|
+
* editor.
|
|
11073
|
+
*/
|
|
11074
|
+
showEndOfShow(): void;
|
|
11075
|
+
/**
|
|
11076
|
+
* Backward input. Dismisses the end screen when it is up; on a slide entered
|
|
11077
|
+
* backward it replays that slide's builds from the start rather than leaving
|
|
11078
|
+
* it, so a presenter who overshot can watch the build again (PowerPoint).
|
|
11079
|
+
* Returns true when the press was consumed here.
|
|
11080
|
+
*/
|
|
11081
|
+
retreat(): boolean;
|
|
11032
11082
|
/** Entering presentation: seed builds for the current slide, drop any overlay. */
|
|
11033
11083
|
start(): void;
|
|
11034
11084
|
/** Leaving presentation: clear timers, reset builds, drop any overlay. */
|
package/dist/viewer/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { A as M, B as T, C as
|
|
1
|
+
import { A as M, B as T, C as ce, D as P, E as O, H as R, I as U, L as F, M as H, O as D, R as W, S as de, T as I, U as V, W as N, _, a as ue, at as z, b as Se, c as B, d as ve, f as pe, g as k, h as K, it as L, j as $, k as q, l as fe, m as G, o as Z, ot as j, p as he, pt as J, s as Q, st as X, t as we, u as Y, v as ee, w as me, x as be, y as te, z as re } from "../export-Doev_dGg.js";
|
|
2
2
|
import * as e from "svelte/internal/client";
|
|
3
|
-
import { onDestroy as
|
|
4
|
-
var
|
|
5
|
-
function
|
|
3
|
+
import { onDestroy as ne, onMount as oe } from "svelte";
|
|
4
|
+
var Ee = H, Ae = P, ye = D;
|
|
5
|
+
function ae(t) {
|
|
6
6
|
const { loader: a, viewer: r, editor: i, options: n } = t;
|
|
7
7
|
function g() {
|
|
8
8
|
const u = n.getSource();
|
|
@@ -76,7 +76,7 @@ function oe(t) {
|
|
|
76
76
|
closeSignatureWarning: o
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
-
function
|
|
79
|
+
function se(t) {
|
|
80
80
|
const { loader: a, editor: r, viewer: i, collab: n, options: g } = t, c = new G(r), l = new K();
|
|
81
81
|
R({
|
|
82
82
|
navigateToZoomTarget: (o) => i.goTo(o),
|
|
@@ -99,14 +99,14 @@ function ae(t) {
|
|
|
99
99
|
getSnapToGrid: () => c.preferences.snapToGrid,
|
|
100
100
|
getSnapToShape: () => c.snapToShape,
|
|
101
101
|
getGuides: () => c.guides
|
|
102
|
-
}), v = new
|
|
102
|
+
}), v = new W({
|
|
103
103
|
getSlides: () => r.slides,
|
|
104
104
|
commitSlides: (o) => r.commitSlides(o),
|
|
105
105
|
onNavigate: (o, S) => {
|
|
106
106
|
i.goTo(o), r.select(S);
|
|
107
107
|
}
|
|
108
108
|
});
|
|
109
|
-
return
|
|
109
|
+
return Q({
|
|
110
110
|
getSource: g.getSource,
|
|
111
111
|
getEditable: () => g.getEditable() && !n.readOnly,
|
|
112
112
|
getInitialSlide: g.getInitialSlide,
|
|
@@ -132,8 +132,8 @@ function ae(t) {
|
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
-
function
|
|
136
|
-
const { editor: a, loader: r, viewer: i } = t, n =
|
|
135
|
+
function ie(t) {
|
|
136
|
+
const { editor: a, loader: r, viewer: i } = t, n = te({
|
|
137
137
|
getContainer: t.getRootEl,
|
|
138
138
|
getSlides: () => a.renderedSlides,
|
|
139
139
|
getCanvasSize: () => r.canvasSize,
|
|
@@ -169,7 +169,7 @@ function se(t) {
|
|
|
169
169
|
onNotesCommit: v
|
|
170
170
|
};
|
|
171
171
|
}
|
|
172
|
-
function
|
|
172
|
+
function le(t) {
|
|
173
173
|
const { editor: a, viewer: r, loader: i, parityUi: n, controller: g } = t, c = new $({
|
|
174
174
|
getSlides: () => a.renderedSlides,
|
|
175
175
|
getCurrentIndex: () => r.current,
|
|
@@ -214,7 +214,7 @@ function ie(t) {
|
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
216
|
function xe(t) {
|
|
217
|
-
|
|
217
|
+
X(t.t), N(t.getSmartArt3D);
|
|
218
218
|
const a = new k();
|
|
219
219
|
V({
|
|
220
220
|
getColorScheme: () => a.colorScheme,
|
|
@@ -227,51 +227,53 @@ function xe(t) {
|
|
|
227
227
|
getSource: t.getSource,
|
|
228
228
|
getSlideIndex: () => r.current,
|
|
229
229
|
onAudienceSlide: (f) => r.goTo(f),
|
|
230
|
-
onAudienceExit: () =>
|
|
230
|
+
onAudienceExit: () => {
|
|
231
|
+
J(window) && w.presentation.showEndOfShow();
|
|
232
|
+
}
|
|
231
233
|
});
|
|
232
|
-
|
|
234
|
+
oe(() => {
|
|
233
235
|
g.connect(), g.isAudience && (r.isFullscreen = !0);
|
|
234
|
-
}),
|
|
236
|
+
}), ne(() => g.dispose()), e.user_effect(() => {
|
|
235
237
|
g.sync(r.current);
|
|
236
238
|
});
|
|
237
239
|
function c() {
|
|
238
240
|
e.set(n, Date.now(), !0), e.set(i, !0);
|
|
239
241
|
}
|
|
240
|
-
const l = new
|
|
242
|
+
const l = new re({
|
|
241
243
|
getCurrent: () => r.current,
|
|
242
244
|
getHandler: () => a.handler,
|
|
243
245
|
onChange: () => {
|
|
244
246
|
t.onchange?.(), l.save().then((f) => t.oncontentchange?.(f));
|
|
245
247
|
}
|
|
246
248
|
});
|
|
247
|
-
|
|
249
|
+
F(U({
|
|
248
250
|
loader: a,
|
|
249
251
|
editor: l
|
|
250
252
|
}));
|
|
251
|
-
const s =
|
|
253
|
+
const s = ae({
|
|
252
254
|
loader: a,
|
|
253
255
|
viewer: r,
|
|
254
256
|
editor: l,
|
|
255
257
|
options: t
|
|
256
|
-
}), d =
|
|
258
|
+
}), d = se({
|
|
257
259
|
loader: a,
|
|
258
260
|
editor: l,
|
|
259
261
|
viewer: r,
|
|
260
262
|
collab: s.collab,
|
|
261
263
|
options: t,
|
|
262
264
|
getScale: () => e.get(o)
|
|
263
|
-
}), v = e.derived(() =>
|
|
265
|
+
}), v = e.derived(() => Y(t.getViewportWidth(), t.getViewportHeight(), a.canvasSize.width, a.canvasSize.height, r.isFullscreen ? 0 : 24)), o = e.derived(() => r.isFullscreen ? e.get(v) : e.get(v) * ((r.zoomPercent ?? 100) / 100)), S = e.derived(() => Math.max(1, Math.round(r.zoomPercent ?? 100))), h = e.derived(() => l.renderedSlides), u = e.derived(() => e.get(h)[r.current]), E = e.derived(() => !r.isFullscreen), b = e.derived(() => t.getEditable() && !r.isFullscreen && !s.collab.readOnly), A = e.derived(() => t.getEditable() && !s.collab.readOnly && a.slides.length > 0), C = e.derived(() => l.masterViewTarget ? "master" : r.isFullscreen ? "present" : t.getEditable() ? "edit" : "preview");
|
|
264
266
|
e.user_effect(() => t.ondirtychange?.(l.dirty)), e.user_effect(() => t.onmodechange?.(e.get(C))), e.user_effect(() => t.onzoomchange?.(e.get(S) / 100)), e.user_effect(() => t.onselectionchange?.([...l.selection.ids])), e.user_effect(() => t.onslidecountchange?.(e.get(h).length));
|
|
265
|
-
const
|
|
267
|
+
const w = le({
|
|
266
268
|
editor: l,
|
|
267
269
|
viewer: r,
|
|
268
270
|
loader: a,
|
|
269
271
|
parityUi: d.parityUi,
|
|
270
272
|
controller: d.controller,
|
|
271
|
-
getEditingActive: () => e.get(
|
|
273
|
+
getEditingActive: () => e.get(b),
|
|
272
274
|
getStageHolderEl: t.getStageHolderEl,
|
|
273
275
|
getRootEl: t.getRootEl
|
|
274
|
-
}), p =
|
|
276
|
+
}), p = ie({
|
|
275
277
|
editor: l,
|
|
276
278
|
loader: a,
|
|
277
279
|
viewer: r,
|
|
@@ -280,8 +282,8 @@ function xe(t) {
|
|
|
280
282
|
getRootEl: t.getRootEl,
|
|
281
283
|
getEditable: t.getEditable,
|
|
282
284
|
onnotesupdate: t.onnotesupdate
|
|
283
|
-
}),
|
|
284
|
-
function
|
|
285
|
+
}), m = O(l), y = ee(p.exportWiring.controller);
|
|
286
|
+
function x() {
|
|
285
287
|
d.controller.destroy(), s.collab.stop(), p.exportWiring.destroy(), a.dispose();
|
|
286
288
|
}
|
|
287
289
|
return {
|
|
@@ -295,13 +297,13 @@ function xe(t) {
|
|
|
295
297
|
collab: s.collab,
|
|
296
298
|
dialogs: s.dialogs,
|
|
297
299
|
autosaveCtl: s.autosaveCtl,
|
|
298
|
-
presentation:
|
|
300
|
+
presentation: w.presentation,
|
|
299
301
|
presenterSession: g,
|
|
300
302
|
exportWiring: p.exportWiring,
|
|
301
303
|
exportUi: p.exportUi,
|
|
302
304
|
t: t.t,
|
|
303
|
-
editingApi:
|
|
304
|
-
exportingApi:
|
|
305
|
+
editingApi: m,
|
|
306
|
+
exportingApi: y,
|
|
305
307
|
get scale() {
|
|
306
308
|
return e.get(o);
|
|
307
309
|
},
|
|
@@ -318,7 +320,7 @@ function xe(t) {
|
|
|
318
320
|
return e.get(E);
|
|
319
321
|
},
|
|
320
322
|
get editingActive() {
|
|
321
|
-
return e.get(
|
|
323
|
+
return e.get(b);
|
|
322
324
|
},
|
|
323
325
|
get showRibbon() {
|
|
324
326
|
return e.get(A);
|
|
@@ -368,31 +370,31 @@ function xe(t) {
|
|
|
368
370
|
closeSignatureWarning: s.closeSignatureWarning,
|
|
369
371
|
onNotesToggle: p.onNotesToggle,
|
|
370
372
|
onNotesCommit: p.onNotesCommit,
|
|
371
|
-
onFullscreenToggle:
|
|
372
|
-
onFullscreenChange:
|
|
373
|
-
onKeydown:
|
|
374
|
-
downloadPptx:
|
|
375
|
-
downloadAs:
|
|
376
|
-
destroy:
|
|
373
|
+
onFullscreenToggle: w.onFullscreenToggle,
|
|
374
|
+
onFullscreenChange: w.onFullscreenChange,
|
|
375
|
+
onKeydown: w.onKeydown,
|
|
376
|
+
downloadPptx: m.downloadPptx,
|
|
377
|
+
downloadAs: m.downloadAs,
|
|
378
|
+
destroy: x
|
|
377
379
|
};
|
|
378
380
|
}
|
|
379
381
|
export {
|
|
380
|
-
|
|
382
|
+
we as PowerPointViewer,
|
|
381
383
|
k as PresentationLoader,
|
|
382
|
-
|
|
383
|
-
|
|
384
|
+
Ee as Ribbon,
|
|
385
|
+
ye as SlideCanvas,
|
|
384
386
|
B as ViewerState,
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
387
|
+
Ae as ViewerToolbar,
|
|
388
|
+
fe as clampSlideIndex,
|
|
389
|
+
ue as createSvelteAiBridge,
|
|
388
390
|
xe as createViewerState,
|
|
389
|
-
|
|
391
|
+
Se as exportAllSlidesToSvg,
|
|
390
392
|
be as exportAllSlidesToSvgBlobs,
|
|
391
|
-
|
|
392
|
-
|
|
393
|
+
de as exportSlideAsSvg,
|
|
394
|
+
ce as exportSlideToSvg,
|
|
393
395
|
me as exportSlideToSvgBlob,
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
396
|
+
Y as fitScale,
|
|
397
|
+
ve as resolveNavigationKey,
|
|
398
|
+
pe as zoomInPercent,
|
|
399
|
+
he as zoomOutPercent
|
|
398
400
|
};
|
|
@@ -47,12 +47,16 @@ export declare class AnimationPlayback {
|
|
|
47
47
|
get isComplete(): boolean;
|
|
48
48
|
/** Clear all pending timers + the in-flight staged-build RAF. */
|
|
49
49
|
clearTimers(): void;
|
|
50
|
+
/** Whether the active slide was seeded as fully built (backward entry). */
|
|
51
|
+
get seededCompleted(): boolean;
|
|
50
52
|
/**
|
|
51
53
|
* Rebuild the controller for the current slide and replay from the start. The
|
|
52
54
|
* controller builds the timeline engine (expanding text-build animations) and
|
|
53
55
|
* derives keyframes CSS, trigger-shape ids, and the tracked element id list.
|
|
54
56
|
*/
|
|
55
|
-
reset(
|
|
57
|
+
reset(options?: {
|
|
58
|
+
completed?: boolean;
|
|
59
|
+
}): void;
|
|
56
60
|
/**
|
|
57
61
|
* Reveal the next click-group. Returns `true` if a group was revealed, `false`
|
|
58
62
|
* when playback is complete or animations are disabled (so the caller can fall
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation-playback.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAShE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,qBAAqB;IACrC,oEAAoE;IACpE,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC;IAClC,wDAAwD;IACxD,oBAAoB,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;IAC7C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,iBAAiB;;gBAkBjB,IAAI,EAAE,qBAAqB;IAavC,+EAA+E;IAC/E,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAEtD;IAED,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uEAAuE;IACvE,IAAI,0BAA0B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;IAED,2DAA2D;IAC3D,IAAI,oBAAoB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE9C;IAED,mEAAmE;IACnE,IAAI,UAAU,IAAI,OAAO,CAExB;IAUD,iEAAiE;IACjE,WAAW,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"animation-playback.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAShE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,qBAAqB;IACrC,oEAAoE;IACpE,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC;IAClC,wDAAwD;IACxD,oBAAoB,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;IAC7C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,iBAAiB;;gBAkBjB,IAAI,EAAE,qBAAqB;IAavC,+EAA+E;IAC/E,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAEtD;IAED,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uEAAuE;IACvE,IAAI,0BAA0B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;IAED,2DAA2D;IAC3D,IAAI,oBAAoB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE9C;IAED,mEAAmE;IACnE,IAAI,UAAU,IAAI,OAAO,CAExB;IAUD,iEAAiE;IACjE,WAAW,IAAI,IAAI;IAcnB,2EAA2E;IAC3E,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAmD9C;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAclB,0EAA0E;IAC1E,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYrD,mEAAmE;IACnE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkB1C,mEAAmE;IACnE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAKrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-animation-styles.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/apply-animation-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAsBhE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC1C,cAAc,GAAE,WAAW,CAAC,MAAM,CAAa,EAC/C,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACvC,IAAI,
|
|
1
|
+
{"version":3,"file":"apply-animation-styles.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/apply-animation-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAsBhE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC1C,cAAc,GAAE,WAAW,CAAC,MAAM,CAAa,EAC/C,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACvC,IAAI,CAyBN"}
|
|
@@ -46,12 +46,18 @@ export interface PresentationControllerDeps {
|
|
|
46
46
|
onPlayActionSound?: (soundPath: string) => void;
|
|
47
47
|
/** The live presentation stage root, to scope media-command lookups to. */
|
|
48
48
|
getFrameRoot?(): HTMLElement | null;
|
|
49
|
+
/** End the show (host leaves presentation mode). */
|
|
50
|
+
exit?(): void;
|
|
51
|
+
/** `p:showPr` "end with black slide"; defaults to on, like PowerPoint. */
|
|
52
|
+
getEndWithBlackSlide?(): boolean | undefined;
|
|
49
53
|
}
|
|
50
54
|
export declare class PresentationController {
|
|
51
55
|
#private;
|
|
52
56
|
readonly playback: AnimationPlayback;
|
|
53
57
|
constructor(deps: PresentationControllerDeps);
|
|
54
58
|
/** The active slide-transition overlay state, or `null` when none is playing. */
|
|
59
|
+
/** Whether the black "End of slide show" screen should be rendered. */
|
|
60
|
+
get endOfShowVisible(): boolean;
|
|
55
61
|
get transition(): TransitionState | null;
|
|
56
62
|
/** Reactive per-element native-animation state (visibility, build, colour). */
|
|
57
63
|
get elementStates(): Map<string, ElementAnimationState>;
|
|
@@ -78,6 +84,21 @@ export declare class PresentationController {
|
|
|
78
84
|
* on-screen next button pass `fromClick = false` and are never gated.
|
|
79
85
|
*/
|
|
80
86
|
advance(fromClick?: boolean): void;
|
|
87
|
+
/**
|
|
88
|
+
* Raise the black end-of-slide-show screen without ending anything.
|
|
89
|
+
*
|
|
90
|
+
* Used by an audience display when the presenter ends the session and the
|
|
91
|
+
* browser refuses to close the tab: the room sees the end screen, never the
|
|
92
|
+
* editor.
|
|
93
|
+
*/
|
|
94
|
+
showEndOfShow(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Backward input. Dismisses the end screen when it is up; on a slide entered
|
|
97
|
+
* backward it replays that slide's builds from the start rather than leaving
|
|
98
|
+
* it, so a presenter who overshot can watch the build again (PowerPoint).
|
|
99
|
+
* Returns true when the press was consumed here.
|
|
100
|
+
*/
|
|
101
|
+
retreat(): boolean;
|
|
81
102
|
/** Entering presentation: seed builds for the current slide, drop any overlay. */
|
|
82
103
|
start(): void;
|
|
83
104
|
/** Leaving presentation: clear timers, reset builds, drop any overlay. */
|