pptx-svelte-viewer 1.4.0 → 2.0.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 +440 -0
- package/README.md +175 -17
- package/dist/AiChatPanel-CssmoLYL.js +1110 -0
- package/dist/__vite-browser-external-DOmiXdGM.js +7 -0
- package/dist/{dist-DZ-fjucV.js → dist-AHWCPEmj.js} +44226 -40236
- package/dist/export-DplwT6FC.js +96087 -0
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +2193 -99
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -22
- package/dist/pptx-svelte-viewer.css +1 -1
- package/dist/rolldown-runtime--_vEcKDh.js +29 -0
- package/dist/{translator-D4a_pxY4.js → translator-Ddi-liGk.js} +251 -7
- package/dist/viewer/ai/ai-bridge.d.ts +61 -0
- package/dist/viewer/ai/ai-bridge.d.ts.map +1 -0
- package/dist/viewer/ai/ai-history-persist.d.ts +13 -0
- package/dist/viewer/ai/ai-history-persist.d.ts.map +1 -0
- package/dist/viewer/ai/ai-log-export.d.ts +71 -0
- package/dist/viewer/ai/ai-log-export.d.ts.map +1 -0
- package/dist/viewer/ai/ai-panel-controller.svelte.d.ts +77 -0
- package/dist/viewer/ai/ai-panel-controller.svelte.d.ts.map +1 -0
- package/dist/viewer/ai/chat.svelte.d.ts +43 -0
- package/dist/viewer/ai/chat.svelte.d.ts.map +1 -0
- package/dist/viewer/ai/focus-targets.d.ts +36 -0
- package/dist/viewer/ai/focus-targets.d.ts.map +1 -0
- package/dist/viewer/ai/index.d.ts +11 -0
- package/dist/viewer/ai/index.d.ts.map +1 -0
- package/dist/viewer/collab/collaboration-deps.d.ts +23 -0
- package/dist/viewer/collab/collaboration-deps.d.ts.map +1 -0
- package/dist/viewer/collab/collaboration-remote-sync.d.ts +13 -0
- package/dist/viewer/collab/collaboration-remote-sync.d.ts.map +1 -1
- package/dist/viewer/collab/collaboration.svelte.d.ts +9 -21
- package/dist/viewer/collab/collaboration.svelte.d.ts.map +1 -1
- package/dist/viewer/collab/components/props.d.ts +12 -0
- package/dist/viewer/collab/components/props.d.ts.map +1 -1
- package/dist/viewer/collab/components/remote-selection.d.ts +29 -0
- package/dist/viewer/collab/components/remote-selection.d.ts.map +1 -0
- package/dist/viewer/collab/components/share-helpers.d.ts +7 -28
- package/dist/viewer/collab/components/share-helpers.d.ts.map +1 -1
- package/dist/viewer/collab/index.d.ts +1 -1
- package/dist/viewer/collab/index.d.ts.map +1 -1
- package/dist/viewer/components/props.d.ts +66 -2
- package/dist/viewer/components/props.d.ts.map +1 -1
- package/dist/viewer/components/ribbon/ribbon-types.d.ts +7 -0
- package/dist/viewer/components/ribbon/ribbon-types.d.ts.map +1 -1
- package/dist/viewer/components/typed-exports.d.ts +19 -0
- package/dist/viewer/components/typed-exports.d.ts.map +1 -0
- package/dist/viewer/editor/editor-controller-deps.d.ts +5 -0
- package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
- package/dist/viewer/editor/editor-state.svelte.d.ts +6 -0
- package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
- package/dist/viewer/export/export-ui.svelte.d.ts +5 -0
- package/dist/viewer/export/export-ui.svelte.d.ts.map +1 -1
- package/dist/viewer/index.d.ts +2781 -31
- package/dist/viewer/index.d.ts.map +1 -1
- package/dist/viewer/index.js +392 -14
- package/dist/viewer/presentation/animation-playback-helpers.d.ts +43 -0
- package/dist/viewer/presentation/animation-playback-helpers.d.ts.map +1 -0
- package/dist/viewer/presentation/animation-playback.svelte.d.ts +50 -40
- package/dist/viewer/presentation/animation-playback.svelte.d.ts.map +1 -1
- package/dist/viewer/presentation/animation-sound.d.ts +20 -0
- package/dist/viewer/presentation/animation-sound.d.ts.map +1 -0
- package/dist/viewer/presentation/apply-animation-styles.d.ts +6 -5
- package/dist/viewer/presentation/apply-animation-styles.d.ts.map +1 -1
- package/dist/viewer/presentation/index.d.ts +2 -1
- package/dist/viewer/presentation/index.d.ts.map +1 -1
- package/dist/viewer/presentation/keyframes.d.ts +9 -0
- package/dist/viewer/presentation/keyframes.d.ts.map +1 -1
- package/dist/viewer/presentation/presentation-controller.svelte.d.ts +32 -10
- package/dist/viewer/presentation/presentation-controller.svelte.d.ts.map +1 -1
- package/dist/viewer/presentation/presentation-effects.svelte.d.ts +6 -2
- package/dist/viewer/presentation/presentation-effects.svelte.d.ts.map +1 -1
- package/dist/viewer/presentation/presentation-triggers.d.ts +18 -0
- package/dist/viewer/presentation/presentation-triggers.d.ts.map +1 -0
- package/dist/viewer/presentation/transition-overlay.d.ts +23 -0
- package/dist/viewer/presentation/transition-overlay.d.ts.map +1 -0
- package/dist/viewer/render/smartart-view.d.ts +7 -2
- package/dist/viewer/render/smartart-view.d.ts.map +1 -1
- package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts +37 -0
- package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -0
- package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts +42 -0
- package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts.map +1 -0
- package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts +36 -0
- package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts.map +1 -0
- package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts +30 -0
- package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -0
- package/dist/viewer/state/create-viewer-state-types.d.ts +134 -0
- package/dist/viewer/state/create-viewer-state-types.d.ts.map +1 -0
- package/dist/viewer/state/create-viewer-state.svelte.d.ts +30 -0
- package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -0
- package/dist/viewer/state/index.d.ts +2 -0
- package/dist/viewer/state/index.d.ts.map +1 -1
- package/dist/viewer/state/presentation-element-states-context.d.ts +37 -0
- package/dist/viewer/state/presentation-element-states-context.d.ts.map +1 -0
- package/dist/viewer/state/render-context.d.ts +3 -1
- package/dist/viewer/state/render-context.d.ts.map +1 -1
- package/dist/viewer/state/viewer-effects.svelte.d.ts +8 -0
- package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
- package/dist/viewer/state/viewer-options-context.d.ts +10 -0
- package/dist/viewer/state/viewer-options-context.d.ts.map +1 -0
- package/dist/viewer/state/viewer-options-wiring.svelte.d.ts +31 -0
- package/dist/viewer/state/viewer-options-wiring.svelte.d.ts.map +1 -0
- package/dist/viewer/state/viewer-options.svelte.d.ts +55 -0
- package/dist/viewer/state/viewer-options.svelte.d.ts.map +1 -0
- package/dist/viewer/style/element-style.d.ts +3 -3
- package/dist/viewer/style/element-style.d.ts.map +1 -1
- package/dist/viewer/types.d.ts +16 -5
- package/dist/viewer/types.d.ts.map +1 -1
- package/dist/{y-webrtc-BdH40MC6.js → y-webrtc-BiViqyU2.js} +1079 -1101
- package/package.json +18 -5
- package/dist/export-N-hrLHrd.js +0 -38592
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACX,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,YAAY,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,iBAAiB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/viewer/index.js
CHANGED
|
@@ -1,16 +1,394 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { A as M, B as T, C as ge, D as P, E as F, G as R, H as U, M as H, O, R as W, S as ce, T as D, U as V, V as I, W as N, _, a as de, at as z, b as ue, c as B, d as Se, f as ve, g as k, h as G, it as K, j as $, k as q, l as pe, m as L, nt as Z, o as j, p as fe, rt as J, s as Q, t as he, u as X, v as Y, w as me, x as be, y as ee, z as te } from "../export-DplwT6FC.js";
|
|
2
|
+
import * as e from "svelte/internal/client";
|
|
3
|
+
import { onDestroy as re, onMount as ne } from "svelte";
|
|
4
|
+
var Ce = H, Ee = P, Ae = O;
|
|
5
|
+
function oe(t) {
|
|
6
|
+
const { loader: a, viewer: r, editor: i, options: n } = t;
|
|
7
|
+
function g() {
|
|
8
|
+
const u = n.getSource();
|
|
9
|
+
return u ? u instanceof Uint8Array ? u : new Uint8Array(u) : null;
|
|
10
|
+
}
|
|
11
|
+
const c = new K({
|
|
12
|
+
getSlides: () => i.renderedSlides,
|
|
13
|
+
applyRemoteSlides: (u) => i.applyRemoteSlides(u),
|
|
14
|
+
getConfig: () => n.collaboration,
|
|
15
|
+
getSourceBytes: g,
|
|
16
|
+
getCanvasWidth: () => a.canvasSize.width,
|
|
17
|
+
getCanvasHeight: () => a.canvasSize.height,
|
|
18
|
+
onStart: (u) => n.onstartcollaboration?.(u),
|
|
19
|
+
onStop: () => n.onstopcollaboration?.()
|
|
20
|
+
});
|
|
21
|
+
Z({
|
|
22
|
+
collab: c,
|
|
23
|
+
getCurrentSlide: () => r.current,
|
|
24
|
+
getSelectedElementId: () => i.selectedElementId,
|
|
25
|
+
goTo: (u) => r.goTo(u)
|
|
26
|
+
});
|
|
27
|
+
const l = new J(c, () => n.shareDefaults);
|
|
28
|
+
let s = e.state(!1), d = e.state(!1), v = e.state(!1);
|
|
29
|
+
e.user_effect(() => {
|
|
30
|
+
a.loadCount, e.set(v, !1), e.set(d, !1);
|
|
31
|
+
}), e.user_effect(() => {
|
|
32
|
+
i.dirty && a.hasDigitalSignatures && !e.get(v) && e.set(d, !0);
|
|
33
|
+
});
|
|
34
|
+
function o() {
|
|
35
|
+
e.set(v, !0), e.set(d, !1);
|
|
36
|
+
}
|
|
37
|
+
let S = e.state(!1);
|
|
38
|
+
e.user_effect(() => {
|
|
39
|
+
e.set(S, n.getAutosave(), !0);
|
|
40
|
+
});
|
|
41
|
+
const h = e.derived(() => n.getEditable() && e.get(S) && !!n.getFilePath() && !c.readOnly);
|
|
42
|
+
return {
|
|
43
|
+
collab: c,
|
|
44
|
+
dialogs: l,
|
|
45
|
+
autosaveCtl: new D({
|
|
46
|
+
getEnabled: () => e.get(h),
|
|
47
|
+
getIntervalMs: () => n.autosaveIntervalMs ?? 2e3,
|
|
48
|
+
getFilePath: n.getFilePath,
|
|
49
|
+
getSlides: () => i.renderedSlides,
|
|
50
|
+
getSlideMasters: () => i.slideMasters,
|
|
51
|
+
getNotesMaster: () => i.notesMaster,
|
|
52
|
+
getHandoutMaster: () => i.handoutMaster,
|
|
53
|
+
getSections: () => i.sections,
|
|
54
|
+
getHandler: () => a.handler,
|
|
55
|
+
getLoadCount: () => a.loadCount,
|
|
56
|
+
onSaved: (u) => n.onautosave?.(u)
|
|
57
|
+
}),
|
|
58
|
+
get autosaveEnabled() {
|
|
59
|
+
return e.get(S);
|
|
60
|
+
},
|
|
61
|
+
setAutosaveEnabled(u) {
|
|
62
|
+
e.set(S, u, !0), n.onautosavetoggle?.(u);
|
|
63
|
+
},
|
|
64
|
+
get autosaveActive() {
|
|
65
|
+
return e.get(h);
|
|
66
|
+
},
|
|
67
|
+
get versionHistoryOpen() {
|
|
68
|
+
return e.get(s);
|
|
69
|
+
},
|
|
70
|
+
set versionHistoryOpen(u) {
|
|
71
|
+
e.set(s, u, !0);
|
|
72
|
+
},
|
|
73
|
+
get signatureWarningOpen() {
|
|
74
|
+
return e.get(d);
|
|
75
|
+
},
|
|
76
|
+
closeSignatureWarning: o
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function ae(t) {
|
|
80
|
+
const { loader: a, editor: r, viewer: i, collab: n, options: g } = t, c = new L(r), l = new G();
|
|
81
|
+
V({
|
|
82
|
+
navigateToZoomTarget: (o) => i.goTo(o),
|
|
83
|
+
getSlides: () => r.renderedSlides
|
|
84
|
+
});
|
|
85
|
+
let s = e.state(null);
|
|
86
|
+
const d = new U(r, {
|
|
87
|
+
getScale: () => r.masterViewTarget ? g.getMasterScale() : t.getScale(),
|
|
88
|
+
getCurrent: () => i.current,
|
|
89
|
+
getPresenting: () => i.isFullscreen,
|
|
90
|
+
getStageRoot: () => g.getStageHolderEl()?.querySelector(".pptx-svelte-stage") ?? null,
|
|
91
|
+
getHolderEl: () => g.getStageHolderEl() ?? null,
|
|
92
|
+
onCursorMove: (o, S) => n.setCursor(o, S, i.current),
|
|
93
|
+
onContextMenu: (o, S) => {
|
|
94
|
+
e.set(s, {
|
|
95
|
+
x: o,
|
|
96
|
+
y: S
|
|
97
|
+
}, !0);
|
|
98
|
+
},
|
|
99
|
+
getSnapToGrid: () => c.preferences.snapToGrid,
|
|
100
|
+
getSnapToShape: () => c.snapToShape,
|
|
101
|
+
getGuides: () => c.guides
|
|
102
|
+
}), v = new T({
|
|
103
|
+
getSlides: () => r.slides,
|
|
104
|
+
commitSlides: (o) => r.commitSlides(o),
|
|
105
|
+
onNavigate: (o, S) => {
|
|
106
|
+
i.goTo(o), r.select(S);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return Q({
|
|
110
|
+
getSource: g.getSource,
|
|
111
|
+
getEditable: () => g.getEditable() && !n.readOnly,
|
|
112
|
+
getInitialSlide: g.getInitialSlide,
|
|
113
|
+
getTranslator: () => g.t,
|
|
114
|
+
loader: a,
|
|
115
|
+
viewer: i,
|
|
116
|
+
editor: r,
|
|
117
|
+
controller: d,
|
|
118
|
+
getOnload: () => g.onload,
|
|
119
|
+
getOnerror: () => g.onerror,
|
|
120
|
+
getOnslidechange: () => g.onslidechange,
|
|
121
|
+
onContentApplied: () => n.adoptDocAfterLoad()
|
|
122
|
+
}), {
|
|
123
|
+
parityUi: c,
|
|
124
|
+
chromeUi: l,
|
|
125
|
+
controller: d,
|
|
126
|
+
findReplace: v,
|
|
127
|
+
get stageContextMenu() {
|
|
128
|
+
return e.get(s);
|
|
129
|
+
},
|
|
130
|
+
set stageContextMenu(o) {
|
|
131
|
+
e.set(s, o, !0);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function se(t) {
|
|
136
|
+
const { editor: a, loader: r, viewer: i } = t, n = ee({
|
|
137
|
+
getContainer: t.getRootEl,
|
|
138
|
+
getSlides: () => a.renderedSlides,
|
|
139
|
+
getCanvasSize: () => r.canvasSize,
|
|
140
|
+
getMediaDataUrls: () => r.mediaDataUrls,
|
|
141
|
+
getCurrent: () => i.current,
|
|
142
|
+
getTranslator: () => t.t,
|
|
143
|
+
getSmartArt3D: t.getSmartArt3D
|
|
144
|
+
}), g = new _({
|
|
145
|
+
controller: n.controller,
|
|
146
|
+
getTranslator: () => t.t
|
|
147
|
+
});
|
|
148
|
+
let c = e.state(!1), l = e.state(null);
|
|
149
|
+
function s() {
|
|
150
|
+
e.set(c, !e.get(c)), e.set(l, e.get(c) ? "notes" : null, !0);
|
|
151
|
+
}
|
|
152
|
+
function d(o) {
|
|
153
|
+
o === "notes" ? e.set(c, !0) : e.get(l) === "notes" && e.set(c, !1), e.set(l, o, !0);
|
|
154
|
+
}
|
|
155
|
+
function v(o, S) {
|
|
156
|
+
t.getEditable() && a.commitNotes(o, S), t.onnotesupdate?.(o);
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
exportWiring: n,
|
|
160
|
+
exportUi: g,
|
|
161
|
+
get notesExpanded() {
|
|
162
|
+
return e.get(c);
|
|
163
|
+
},
|
|
164
|
+
get activeMobileSheet() {
|
|
165
|
+
return e.get(l);
|
|
166
|
+
},
|
|
167
|
+
onNotesToggle: s,
|
|
168
|
+
setActiveMobileSheet: d,
|
|
169
|
+
onNotesCommit: v
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function ie(t) {
|
|
173
|
+
const { editor: a, viewer: r, loader: i, parityUi: n, controller: g } = t, c = new $({
|
|
174
|
+
getSlides: () => a.renderedSlides,
|
|
175
|
+
getCurrentIndex: () => r.current,
|
|
176
|
+
navigate: (o) => r.goTo(o),
|
|
177
|
+
getShowWithAnimation: () => i.presentationProperties.showWithAnimation,
|
|
178
|
+
getFrameRoot: () => t.getStageHolderEl()?.querySelector(".pptx-svelte-stage") ?? null
|
|
179
|
+
});
|
|
180
|
+
q({
|
|
181
|
+
controller: c,
|
|
182
|
+
getPresenting: () => r.isFullscreen,
|
|
183
|
+
getCurrentIndex: () => r.current,
|
|
184
|
+
getActiveSlide: () => a.renderedSlides[r.current],
|
|
185
|
+
getStageRoot: () => t.getStageHolderEl()?.querySelector(".pptx-svelte-stage") ?? null
|
|
186
|
+
});
|
|
187
|
+
let l = !1;
|
|
188
|
+
e.user_effect(() => {
|
|
189
|
+
const o = r.isFullscreen;
|
|
190
|
+
l && !o && n.annotations.count > 0 && (n.keepAnnotationsOpen = !0), l = o, !o && n.rehearse.active && n.rehearse.finish();
|
|
191
|
+
}), e.user_effect(() => {
|
|
192
|
+
n.rehearse.move(r.current);
|
|
193
|
+
}), e.user_effect(() => {
|
|
194
|
+
if (!n.rehearse.active || n.rehearse.paused) return;
|
|
195
|
+
const o = window.setInterval(() => n.rehearse.tick(), 250);
|
|
196
|
+
return () => window.clearInterval(o);
|
|
197
|
+
});
|
|
198
|
+
const { onFullscreenToggle: s, onFullscreenChange: d, onKeydown: v } = j({
|
|
199
|
+
getRootEl: t.getRootEl,
|
|
200
|
+
viewer: r,
|
|
201
|
+
controller: g,
|
|
202
|
+
getEditingActive: t.getEditingActive,
|
|
203
|
+
presentation: c
|
|
204
|
+
});
|
|
205
|
+
return {
|
|
206
|
+
presentation: c,
|
|
207
|
+
onFullscreenToggle: s,
|
|
208
|
+
onFullscreenChange: d,
|
|
209
|
+
onKeydown: v
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function xe(t) {
|
|
213
|
+
z(t.t), R(t.getSmartArt3D);
|
|
214
|
+
const a = new k();
|
|
215
|
+
N({
|
|
216
|
+
getColorScheme: () => a.colorScheme,
|
|
217
|
+
getTableStyleMap: () => a.tableStyleMap,
|
|
218
|
+
getFontScheme: () => a.presentationTheme?.fontScheme
|
|
219
|
+
});
|
|
220
|
+
const r = new B();
|
|
221
|
+
let i = e.state(!1), n = e.state(e.proxy(Date.now()));
|
|
222
|
+
const g = new M({
|
|
223
|
+
getSource: t.getSource,
|
|
224
|
+
getSlideIndex: () => r.current,
|
|
225
|
+
onAudienceSlide: (f) => r.goTo(f),
|
|
226
|
+
onAudienceExit: () => r.isFullscreen = !1
|
|
227
|
+
});
|
|
228
|
+
ne(() => {
|
|
229
|
+
g.connect(), g.isAudience && (r.isFullscreen = !0);
|
|
230
|
+
}), re(() => g.dispose()), e.user_effect(() => {
|
|
231
|
+
g.sync(r.current);
|
|
232
|
+
});
|
|
233
|
+
function c() {
|
|
234
|
+
e.set(n, Date.now(), !0), e.set(i, !0);
|
|
235
|
+
}
|
|
236
|
+
const l = new I({
|
|
237
|
+
getCurrent: () => r.current,
|
|
238
|
+
getHandler: () => a.handler,
|
|
239
|
+
onChange: () => {
|
|
240
|
+
t.onchange?.(), l.save().then((f) => t.oncontentchange?.(f));
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
te(W({
|
|
244
|
+
loader: a,
|
|
245
|
+
editor: l
|
|
246
|
+
}));
|
|
247
|
+
const s = oe({
|
|
248
|
+
loader: a,
|
|
249
|
+
viewer: r,
|
|
250
|
+
editor: l,
|
|
251
|
+
options: t
|
|
252
|
+
}), d = ae({
|
|
253
|
+
loader: a,
|
|
254
|
+
editor: l,
|
|
255
|
+
viewer: r,
|
|
256
|
+
collab: s.collab,
|
|
257
|
+
options: t,
|
|
258
|
+
getScale: () => e.get(o)
|
|
259
|
+
}), v = e.derived(() => X(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), w = 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");
|
|
260
|
+
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));
|
|
261
|
+
const m = ie({
|
|
262
|
+
editor: l,
|
|
263
|
+
viewer: r,
|
|
264
|
+
loader: a,
|
|
265
|
+
parityUi: d.parityUi,
|
|
266
|
+
controller: d.controller,
|
|
267
|
+
getEditingActive: () => e.get(w),
|
|
268
|
+
getStageHolderEl: t.getStageHolderEl,
|
|
269
|
+
getRootEl: t.getRootEl
|
|
270
|
+
}), p = se({
|
|
271
|
+
editor: l,
|
|
272
|
+
loader: a,
|
|
273
|
+
viewer: r,
|
|
274
|
+
t: t.t,
|
|
275
|
+
getSmartArt3D: t.getSmartArt3D,
|
|
276
|
+
getRootEl: t.getRootEl,
|
|
277
|
+
getEditable: t.getEditable,
|
|
278
|
+
onnotesupdate: t.onnotesupdate
|
|
279
|
+
}), b = F(l), x = Y(p.exportWiring.controller);
|
|
280
|
+
function y() {
|
|
281
|
+
d.controller.destroy(), s.collab.stop(), p.exportWiring.destroy(), a.dispose();
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
loader: a,
|
|
285
|
+
viewer: r,
|
|
286
|
+
editor: l,
|
|
287
|
+
controller: d.controller,
|
|
288
|
+
parityUi: d.parityUi,
|
|
289
|
+
chromeUi: d.chromeUi,
|
|
290
|
+
findReplace: d.findReplace,
|
|
291
|
+
collab: s.collab,
|
|
292
|
+
dialogs: s.dialogs,
|
|
293
|
+
autosaveCtl: s.autosaveCtl,
|
|
294
|
+
presentation: m.presentation,
|
|
295
|
+
presenterSession: g,
|
|
296
|
+
exportWiring: p.exportWiring,
|
|
297
|
+
exportUi: p.exportUi,
|
|
298
|
+
t: t.t,
|
|
299
|
+
editingApi: b,
|
|
300
|
+
exportingApi: x,
|
|
301
|
+
get scale() {
|
|
302
|
+
return e.get(o);
|
|
303
|
+
},
|
|
304
|
+
get effectivePercent() {
|
|
305
|
+
return e.get(S);
|
|
306
|
+
},
|
|
307
|
+
get displaySlides() {
|
|
308
|
+
return e.get(h);
|
|
309
|
+
},
|
|
310
|
+
get activeSlide() {
|
|
311
|
+
return e.get(u);
|
|
312
|
+
},
|
|
313
|
+
get chromeVisible() {
|
|
314
|
+
return e.get(E);
|
|
315
|
+
},
|
|
316
|
+
get editingActive() {
|
|
317
|
+
return e.get(w);
|
|
318
|
+
},
|
|
319
|
+
get showRibbon() {
|
|
320
|
+
return e.get(A);
|
|
321
|
+
},
|
|
322
|
+
get viewerMode() {
|
|
323
|
+
return e.get(C);
|
|
324
|
+
},
|
|
325
|
+
get autosaveActive() {
|
|
326
|
+
return s.autosaveActive;
|
|
327
|
+
},
|
|
328
|
+
get autosaveEnabled() {
|
|
329
|
+
return s.autosaveEnabled;
|
|
330
|
+
},
|
|
331
|
+
setAutosaveEnabled: s.setAutosaveEnabled,
|
|
332
|
+
get presenterMode() {
|
|
333
|
+
return e.get(i);
|
|
334
|
+
},
|
|
335
|
+
set presenterMode(f) {
|
|
336
|
+
e.set(i, f, !0);
|
|
337
|
+
},
|
|
338
|
+
get presenterStartedAt() {
|
|
339
|
+
return e.get(n);
|
|
340
|
+
},
|
|
341
|
+
get stageContextMenu() {
|
|
342
|
+
return d.stageContextMenu;
|
|
343
|
+
},
|
|
344
|
+
set stageContextMenu(f) {
|
|
345
|
+
d.stageContextMenu = f;
|
|
346
|
+
},
|
|
347
|
+
get activeMobileSheet() {
|
|
348
|
+
return p.activeMobileSheet;
|
|
349
|
+
},
|
|
350
|
+
setActiveMobileSheet: p.setActiveMobileSheet,
|
|
351
|
+
get notesExpanded() {
|
|
352
|
+
return p.notesExpanded;
|
|
353
|
+
},
|
|
354
|
+
get versionHistoryOpen() {
|
|
355
|
+
return s.versionHistoryOpen;
|
|
356
|
+
},
|
|
357
|
+
set versionHistoryOpen(f) {
|
|
358
|
+
s.versionHistoryOpen = f;
|
|
359
|
+
},
|
|
360
|
+
get signatureWarningOpen() {
|
|
361
|
+
return s.signatureWarningOpen;
|
|
362
|
+
},
|
|
363
|
+
enterPresenterView: c,
|
|
364
|
+
closeSignatureWarning: s.closeSignatureWarning,
|
|
365
|
+
onNotesToggle: p.onNotesToggle,
|
|
366
|
+
onNotesCommit: p.onNotesCommit,
|
|
367
|
+
onFullscreenToggle: m.onFullscreenToggle,
|
|
368
|
+
onFullscreenChange: m.onFullscreenChange,
|
|
369
|
+
onKeydown: m.onKeydown,
|
|
370
|
+
downloadPptx: b.downloadPptx,
|
|
371
|
+
downloadAs: b.downloadAs,
|
|
372
|
+
destroy: y
|
|
373
|
+
};
|
|
374
|
+
}
|
|
2
375
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
376
|
+
he as PowerPointViewer,
|
|
377
|
+
k as PresentationLoader,
|
|
378
|
+
Ce as Ribbon,
|
|
379
|
+
Ae as SlideCanvas,
|
|
380
|
+
B as ViewerState,
|
|
381
|
+
Ee as ViewerToolbar,
|
|
382
|
+
pe as clampSlideIndex,
|
|
383
|
+
de as createSvelteAiBridge,
|
|
384
|
+
xe as createViewerState,
|
|
385
|
+
ue as exportAllSlidesToSvg,
|
|
386
|
+
be as exportAllSlidesToSvgBlobs,
|
|
387
|
+
ce as exportSlideAsSvg,
|
|
388
|
+
ge as exportSlideToSvg,
|
|
389
|
+
me as exportSlideToSvgBlob,
|
|
390
|
+
X as fitScale,
|
|
391
|
+
Se as resolveNavigationKey,
|
|
392
|
+
ve as zoomInPercent,
|
|
393
|
+
fe as zoomOutPercent
|
|
16
394
|
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { PresentationAnimationController, ElementAnimationState, TimelineClickGroup } from 'pptx-viewer-shared';
|
|
2
|
+
/** Updater over the element-state map (React `setState`-compatible signature). */
|
|
3
|
+
export type StatesSetter = (updater: (prev: Map<string, ElementAnimationState>) => Map<string, ElementAnimationState>) => void;
|
|
4
|
+
/** Mutable handle holding the in-flight `requestAnimationFrame` id (or null). */
|
|
5
|
+
export interface BuildRafHandle {
|
|
6
|
+
current: number | null;
|
|
7
|
+
}
|
|
8
|
+
/** Everything the step / build / auto-advance helpers need from the playback. */
|
|
9
|
+
export interface PlaybackContext {
|
|
10
|
+
setStates: StatesSetter;
|
|
11
|
+
/** Timer ids collected here so the playback can clear them on slide change. */
|
|
12
|
+
timers: number[];
|
|
13
|
+
buildHandle: BuildRafHandle;
|
|
14
|
+
/** Host-provided action-sound player; falls back to the local audio element. */
|
|
15
|
+
onPlayActionSound?: (soundPath: string) => void;
|
|
16
|
+
/** Root element to scope media-command target lookups to (the slide frame). */
|
|
17
|
+
frameRoot?: () => HTMLElement | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Apply a click-group's steps onto the element-state map: fire sound / media
|
|
21
|
+
* commands, set each step's initial visibility + CSS animation, then schedule
|
|
22
|
+
* cleanup timers to clear the animation (and hide exits) once each step ends.
|
|
23
|
+
* Mirrors the Vue / React `applyAnimationGroupSteps`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function applyAnimationGroupSteps(group: TimelineClickGroup, ctx: PlaybackContext): void;
|
|
26
|
+
/** Cancel any in-flight build RAF and clear the handle. */
|
|
27
|
+
export declare function cancelBuildReveal(handle: BuildRafHandle): void;
|
|
28
|
+
/**
|
|
29
|
+
* Ramp a click-group's staged-build `progress` from 0 -> 1 via
|
|
30
|
+
* requestAnimationFrame, merging each build element's `build` descriptor onto the
|
|
31
|
+
* element states each frame. No-op when the group carries no build step, so
|
|
32
|
+
* ordinary click-advance is unchanged. Mirrors the Vue / React `driveBuildReveal`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function driveBuildReveal(controller: PresentationAnimationController, group: TimelineClickGroup, ctx: PlaybackContext): void;
|
|
35
|
+
/** Apply a group's steps and start its staged-build reveal (if any). */
|
|
36
|
+
export declare function playGroup(controller: PresentationAnimationController, group: TimelineClickGroup, ctx: PlaybackContext): void;
|
|
37
|
+
/**
|
|
38
|
+
* After a click-group plays, schedule the next group when it should auto-advance
|
|
39
|
+
* (withPrevious / afterPrevious), chaining through consecutive auto-advance
|
|
40
|
+
* groups. Mirrors the Vue / React `scheduleAutoAdvanceChain`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function scheduleAutoAdvanceChain(controller: PresentationAnimationController, ctx: PlaybackContext): void;
|
|
43
|
+
//# sourceMappingURL=animation-playback-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-playback-helpers.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAqB,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EACX,qBAAqB,EACrB,kBAAkB,EAElB,MAAM,oBAAoB,CAAC;AAI5B,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,CAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,KACrF,IAAI,CAAC;AAEV,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAwFD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CA+D9F;AAMD,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAK9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,eAAe,GAClB,IAAI,CAsCN;AAMD,wEAAwE;AACxE,wBAAgB,SAAS,CACxB,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,eAAe,GAClB,IAAI,CAGN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,+BAA+B,EAC3C,GAAG,EAAE,eAAe,GAClB,IAAI,CAqBN"}
|
|
@@ -1,59 +1,69 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { PptxSlide } from 'pptx-viewer-core';
|
|
2
|
+
import { ElementAnimationState } from 'pptx-viewer-shared';
|
|
3
3
|
/**
|
|
4
|
-
* `AnimationPlayback`:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `AnimationPlayback`: native-timing (`p:timing`) animation playback for the
|
|
5
|
+
* Svelte binding's presentation mode, driven by the shared, framework-agnostic
|
|
6
|
+
* {@link PresentationAnimationController}. The runes analogue of the Vue
|
|
7
|
+
* `useAnimationPlayback` composable, kept out of the SFC so it is unit-testable.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* This replaces the older preset (`PptxElementAnimation`) click-group model for
|
|
10
|
+
* the slide show: the controller builds a timeline engine from the slide's
|
|
11
|
+
* `nativeAnimations` (expanding staged text builds), which can represent native
|
|
12
|
+
* staged chart / SmartArt builds (`p:bldChart` / `p:bldDgm`) and colour
|
|
13
|
+
* animations (`p:animClr`) that the preset model could not. It mirrors the Vue /
|
|
14
|
+
* React bindings.
|
|
14
15
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* The class owns the reactive per-element state map, the keyframes CSS, and the
|
|
17
|
+
* interactive / hover trigger-shape id sets; the controller stays pure. The
|
|
18
|
+
* clock (timers, requestAnimationFrame) + DOM effects live in
|
|
19
|
+
* {@link module:presentation/animation-playback-helpers}.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: the editor / inspector animation PREVIEW still uses the older shared
|
|
22
|
+
* `buildClickGroups` model (see `AnimationsTab` / `editor-animation-controller`);
|
|
23
|
+
* this class is only the running slide show.
|
|
20
24
|
*/
|
|
21
25
|
export interface AnimationPlaybackDeps {
|
|
22
|
-
/** The current slide
|
|
23
|
-
|
|
26
|
+
/** The current slide to build the native-animation timeline for. */
|
|
27
|
+
getSlide(): PptxSlide | undefined;
|
|
24
28
|
/** Presentation-level switch parsed from `p:showPr`. */
|
|
25
29
|
getShowWithAnimation?(): boolean | undefined;
|
|
30
|
+
/** Host-provided action-sound player (resolves + plays embedded sounds). */
|
|
31
|
+
onPlayActionSound?: (soundPath: string) => void;
|
|
32
|
+
/** Root element to scope media-command (`p:cmd`) target lookups to. */
|
|
33
|
+
frameRoot?: () => HTMLElement | null;
|
|
26
34
|
}
|
|
27
35
|
export declare class AnimationPlayback {
|
|
28
36
|
#private;
|
|
29
37
|
constructor(deps: AnimationPlaybackDeps);
|
|
30
|
-
/**
|
|
31
|
-
get
|
|
32
|
-
/**
|
|
33
|
-
get
|
|
34
|
-
/**
|
|
35
|
-
get
|
|
36
|
-
/**
|
|
38
|
+
/** Reactive per-element native-animation state (visibility, build, colour). */
|
|
39
|
+
get elementStates(): Map<string, ElementAnimationState>;
|
|
40
|
+
/** The per-slide `@keyframes` CSS to inject once per slide. */
|
|
41
|
+
get keyframesCss(): string;
|
|
42
|
+
/** Shape ids that trigger an interactive (`onShapeClick`) sequence. */
|
|
43
|
+
get interactiveTriggerShapeIds(): ReadonlySet<string>;
|
|
44
|
+
/** Shape ids that trigger a hover (`onHover`) sequence. */
|
|
45
|
+
get hoverTriggerShapeIds(): ReadonlySet<string>;
|
|
46
|
+
/** True once every main-timeline click-group has been revealed. */
|
|
37
47
|
get isComplete(): boolean;
|
|
48
|
+
/** Clear all pending timers + the in-flight staged-build RAF. */
|
|
49
|
+
clearTimers(): void;
|
|
38
50
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
|
|
42
|
-
get elementStyles(): Map<string, CSSProperties>;
|
|
43
|
-
/**
|
|
44
|
-
* `elementId -> hidden CSS` for entrances not yet revealed, so the host can
|
|
45
|
-
* pre-seed them (hide until their group plays) without a flash.
|
|
51
|
+
* Rebuild the controller for the current slide and replay from the start. The
|
|
52
|
+
* controller builds the timeline engine (expanding text-build animations) and
|
|
53
|
+
* derives keyframes CSS, trigger-shape ids, and the tracked element id list.
|
|
46
54
|
*/
|
|
47
|
-
|
|
55
|
+
reset(): void;
|
|
48
56
|
/**
|
|
49
|
-
* Reveal the next click
|
|
50
|
-
*
|
|
51
|
-
* to slide navigation).
|
|
57
|
+
* Reveal the next click-group. Returns `true` if a group was revealed, `false`
|
|
58
|
+
* when playback is complete or animations are disabled (so the caller can fall
|
|
59
|
+
* through to slide navigation).
|
|
52
60
|
*/
|
|
53
61
|
advance(): boolean;
|
|
54
|
-
/**
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
|
|
62
|
+
/** Play an interactive shape's sequence; `true` when it triggered one. */
|
|
63
|
+
handleInteractiveShapeClick(shapeId: string): boolean;
|
|
64
|
+
/** Play a hover shape's sequence; `true` when it triggered one. */
|
|
65
|
+
handleHoverStart(shapeId: string): boolean;
|
|
66
|
+
/** Reset a hover shape's sequence so the next hover replays it. */
|
|
67
|
+
handleHoverEnd(shapeId: string): void;
|
|
58
68
|
}
|
|
59
69
|
//# sourceMappingURL=animation-playback.svelte.d.ts.map
|
|
@@ -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,
|
|
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;IAQnB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAuCb;;;;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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML5 audio playback for native-animation sound actions (`p:snd` / `p:stSnd`),
|
|
3
|
+
* ported from the Vue / React bindings' `animation-sound`.
|
|
4
|
+
*
|
|
5
|
+
* A single shared audio element means only one animation sound plays at a time,
|
|
6
|
+
* matching PowerPoint: a new sound replaces any in-progress animation sound.
|
|
7
|
+
*
|
|
8
|
+
* @module presentation/animation-sound
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Play a sound file during animation. Stops any previously playing animation
|
|
12
|
+
* sound first. Silently ignores autoplay restrictions and unplayable sources.
|
|
13
|
+
*
|
|
14
|
+
* @param soundUrl - Blob URL or data URL of the sound file.
|
|
15
|
+
* @param loop - When true, repeat the sound until it is stopped or replaced.
|
|
16
|
+
*/
|
|
17
|
+
export declare function playAnimationSound(soundUrl: string, loop?: boolean): void;
|
|
18
|
+
/** Stop any currently playing animation sound. */
|
|
19
|
+
export declare function stopAnimationSound(): void;
|
|
20
|
+
//# sourceMappingURL=animation-sound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-sound.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-sound.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,IAAI,CAUvE;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementAnimationState } from 'pptx-viewer-shared';
|
|
2
2
|
/**
|
|
3
|
-
* Apply the
|
|
4
|
-
* `
|
|
5
|
-
*
|
|
3
|
+
* Apply the tracked element states to every `[data-element-id]` node under
|
|
4
|
+
* `root`. Elements without a state get their managed properties cleared, so a
|
|
5
|
+
* previously-hidden entrance becomes visible once its state is dropped (e.g. on
|
|
6
|
+
* slide change / reset).
|
|
6
7
|
*/
|
|
7
|
-
export declare function applyAnimationStyles(root: HTMLElement,
|
|
8
|
+
export declare function applyAnimationStyles(root: HTMLElement, states: Map<string, ElementAnimationState>, interactiveIds?: ReadonlySet<string>, hoverIds?: ReadonlySet<string>): void;
|
|
8
9
|
//# sourceMappingURL=apply-animation-styles.d.ts.map
|
|
@@ -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,
|
|
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,CAWN"}
|
|
@@ -7,5 +7,6 @@ export type { PresentationControllerDeps, TransitionState } from './presentation
|
|
|
7
7
|
export { PresenterSession } from './presenter-session.svelte';
|
|
8
8
|
export { usePresentationEffects } from './presentation-effects.svelte';
|
|
9
9
|
export type { PresentationEffectsDeps } from './presentation-effects.svelte';
|
|
10
|
-
export {
|
|
10
|
+
export { PresentationTransitionOverlay } from './transition-overlay';
|
|
11
|
+
export type { PresentationTransitionOverlayProps } from './transition-overlay';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAC"}
|