pptx-svelte-viewer 2.19.0 → 2.20.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 +448 -0
- package/dist/{AiChatPanel-DKeBilcx.js → AiChatPanel-DPXM1HsP.js} +188 -204
- package/dist/{export-CZzvhGTm.js → export-Cp97qZ_g.js} +22289 -21779
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +55 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -29
- package/dist/pptx-svelte-viewer.css +1 -1
- package/dist/{translator-EP8BTIz6.js → translator-Cs5ewuZ4.js} +8 -0
- package/dist/viewer/components/presentation-toolbar.svelte.d.ts +6 -0
- package/dist/viewer/components/presentation-toolbar.svelte.d.ts.map +1 -1
- package/dist/viewer/editor/editor-document-lifecycle.d.ts.map +1 -1
- package/dist/viewer/editor/editor-state.svelte.d.ts +14 -0
- package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
- package/dist/viewer/index.d.ts +298 -17
- package/dist/viewer/index.js +10 -10
- package/dist/viewer/state/autosave-recovery.svelte.d.ts +48 -0
- package/dist/viewer/state/autosave-recovery.svelte.d.ts.map +1 -0
- package/dist/viewer/state/autosave.svelte.d.ts +26 -2
- package/dist/viewer/state/autosave.svelte.d.ts.map +1 -1
- package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts +23 -0
- package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -1
- package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -1
- package/dist/viewer/state/create-viewer-state-types.d.ts +21 -4
- package/dist/viewer/state/create-viewer-state-types.d.ts.map +1 -1
- package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -1
- package/dist/viewer/state/viewer-options.svelte.d.ts +5 -3
- package/dist/viewer/state/viewer-options.svelte.d.ts.map +1 -1
- package/dist/viewer/state/viewer-parity-ui.svelte.d.ts +11 -0
- package/dist/viewer/state/viewer-parity-ui.svelte.d.ts.map +1 -1
- package/dist/viewer/state/viewer-state-options.d.ts.map +1 -1
- package/dist/viewer/state/viewport-handlers.d.ts +4 -0
- package/dist/viewer/state/viewport-handlers.d.ts.map +1 -1
- package/dist/viewer/types.d.ts +32 -8
- package/dist/viewer/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -295,12 +295,20 @@ var n = {
|
|
|
295
295
|
"pptx.autosave.disabled": "AutoSave unavailable",
|
|
296
296
|
"pptx.autosave.disabledNoFilePath": "AutoSave disabled: no file path provided",
|
|
297
297
|
"pptx.autosave.disabledToggleOff": "AutoSave off",
|
|
298
|
+
"pptx.autosave.disabledByHost": "AutoSave turned off by this application",
|
|
299
|
+
"pptx.autosave.disabledReadOnly": "AutoSave disabled: this presentation is read-only",
|
|
298
300
|
"pptx.autosave.justNow": "just now",
|
|
299
301
|
"pptx.autosave.oneMinAgo": "1 min ago",
|
|
300
302
|
"pptx.autosave.minutesAgo": "{{count}} min ago",
|
|
301
303
|
"pptx.autosave.saveFailed": "Save failed",
|
|
302
304
|
"pptx.autosave.savedShort": "Saved",
|
|
303
305
|
"pptx.autosave.allChangesSaved": "All changes saved",
|
|
306
|
+
"pptx.autosave.recovery.title": "Recover unsaved changes?",
|
|
307
|
+
"pptx.autosave.recovery.message": 'An autosaved copy of "{{file}}" ({{size}}) has changes that are not in the version you just opened.',
|
|
308
|
+
"pptx.autosave.recovery.savedLabel": "Autosaved {{when}}",
|
|
309
|
+
"pptx.autosave.recovery.hoursAgo": "{{count}} h ago",
|
|
310
|
+
"pptx.autosave.recovery.restore": "Restore",
|
|
311
|
+
"pptx.autosave.recovery.discard": "Discard",
|
|
304
312
|
"pptx.titleBar.autoSave": "AutoSave",
|
|
305
313
|
"pptx.titleBar.autoSaveOn": "On",
|
|
306
314
|
"pptx.titleBar.autoSaveOff": "Off",
|
|
@@ -28,6 +28,12 @@ export declare class PresentToolbarChrome {
|
|
|
28
28
|
enter(): void;
|
|
29
29
|
/** Pointer left the bar: restart the auto-hide countdown. */
|
|
30
30
|
leave(): void;
|
|
31
|
+
/**
|
|
32
|
+
* PowerPoint's Ctrl+H: flip the show chrome. Deliberately the same `visible`
|
|
33
|
+
* flag auto-hide writes, and it re-arms the countdown when it reveals the bar,
|
|
34
|
+
* so the shortcut leaves the toolbar in a state the pointer can still govern.
|
|
35
|
+
*/
|
|
36
|
+
toggleVisible(): void;
|
|
31
37
|
/** Open `key`'s palette, or close it when it is already the open one. */
|
|
32
38
|
togglePalette(key: PresentPaletteKey): void;
|
|
33
39
|
/** Close both palettes (after picking a colour or choosing a tool). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation-toolbar.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/presentation-toolbar.svelte.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,aAAa,CAAC;AAEtD,gFAAgF;AAChF,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACvC,2EAA2E;IAC3E,UAAU,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,oBAAoB;;IAChC,0EAA0E;IAC1E,OAAO,UAAiB;IACxB,oEAAoE;IACpE,SAAS,SAAa;IACtB,+DAA+D;IAC/D,OAAO,2BAA0C;IAYjD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,IAAI;IAuCxD,2EAA2E;IAC3E,KAAK,IAAI,IAAI;IAMb,6DAA6D;IAC7D,KAAK,IAAI,IAAI;IAKb,yEAAyE;IACzE,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAI3C,uEAAuE;IACvE,aAAa,IAAI,IAAI;CAwBrB"}
|
|
1
|
+
{"version":3,"file":"presentation-toolbar.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/presentation-toolbar.svelte.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,aAAa,CAAC;AAEtD,gFAAgF;AAChF,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACvC,2EAA2E;IAC3E,UAAU,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,oBAAoB;;IAChC,0EAA0E;IAC1E,OAAO,UAAiB;IACxB,oEAAoE;IACpE,SAAS,SAAa;IACtB,+DAA+D;IAC/D,OAAO,2BAA0C;IAYjD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,IAAI;IAuCxD,2EAA2E;IAC3E,KAAK,IAAI,IAAI;IAMb,6DAA6D;IAC7D,KAAK,IAAI,IAAI;IAKb;;;;OAIG;IACH,aAAa,IAAI,IAAI;IASrB,yEAAyE;IACzE,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAI3C,uEAAuE;IACvE,aAAa,IAAI,IAAI;CAwBrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-document-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-document-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,SAAS,EAAE;IACnB,YAAY,CAAC,EAAE,eAAe,EAAE;IAChC,WAAW,CAAC,EAAE,eAAe;IAC7B,aAAa,CAAC,EAAE,iBAAiB;IACjC,QAAQ,CAAC,EAAE,WAAW,EAAE;IACxB,cAAc,CAAC,EAAE,kBAAkB;IACnC,aAAa,CAAC,EAAE,iBAAiB;IACjC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE;IACvC,YAAY,CAAC,EAAE,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,0BAA0B;IACnD,WAAW,CAAC,EAAE,cAAc,EAAE;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,gBAAgB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"editor-document-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-document-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,SAAS,EAAE;IACnB,YAAY,CAAC,EAAE,eAAe,EAAE;IAChC,WAAW,CAAC,EAAE,eAAe;IAC7B,aAAa,CAAC,EAAE,iBAAiB;IACjC,QAAQ,CAAC,EAAE,WAAW,EAAE;IACxB,cAAc,CAAC,EAAE,kBAAkB;IACnC,aAAa,CAAC,EAAE,iBAAiB;IACjC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE;IACvC,YAAY,CAAC,EAAE,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,0BAA0B;IACnD,WAAW,CAAC,EAAE,cAAc,EAAE;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAkCtF;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAS3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAKrF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,GAAG,SAAS,GAClC,IAAI,CAuBN;AAED,0EAA0E;AAC1E,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAC1B,IAAI,CASN;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAChC,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,cAAuB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAkBrB"}
|
|
@@ -85,6 +85,20 @@ export declare class EditorState {
|
|
|
85
85
|
readonly tableCells: TableCellSelection;
|
|
86
86
|
editable: boolean;
|
|
87
87
|
dirty: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Monotonic counter bumped by {@link setSlides}, i.e. every time a freshly
|
|
90
|
+
* loaded deck is installed as the working document.
|
|
91
|
+
*
|
|
92
|
+
* It exists because the loader's own `loadCount` is bumped in an EARLIER
|
|
93
|
+
* flush than the one that writes these slides: the seeding effect
|
|
94
|
+
* (`viewer-effects.svelte.ts`) reacts to `loadCount`, so by the time it calls
|
|
95
|
+
* `setSlides` the autosave effect has already run once, seen the new count
|
|
96
|
+
* against the old slides, and settled. The slide reassignment that followed
|
|
97
|
+
* then looked exactly like a user edit, and merely OPENING a deck wrote a
|
|
98
|
+
* crash-recovery snapshot. This counter changes in the SAME synchronous block
|
|
99
|
+
* as the slides it describes, so the reseed can never be misread again.
|
|
100
|
+
*/
|
|
101
|
+
seedNonce: number;
|
|
88
102
|
editTemplateMode: boolean;
|
|
89
103
|
interactionActive: boolean;
|
|
90
104
|
clipboard: ElementClipboardPayload | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-state.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,aAAa,EACb,SAAS,EACT,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACX,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAWpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAA2B,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC/B,UAAU,IAAI,MAAM,CAAC;IACrB,UAAU,IAAI,WAAW,GAAG,IAAI,CAAC;IACjC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,qBAAa,WAAW;;IACvB,MAAM,cAA+B;IACrC,yBAAyB,qBAAsC;IAC/D,YAAY,oBAAqC;IACjD,WAAW,8BAAsD;IACjE,aAAa,gCAAwD;IACrE,QAAQ,gBAAiC;IACzC,QAAQ,CAAC,oBAAoB,6BAAwC;IACrE,cAAc,iCAAyD;IACvE,aAAa,gCAAwD;IACrE,gBAAgB,uBAAwC;IACxD;;;;OAIG;IACH,cAAc,sBAAuC;IACrD;;;;;OAKG;IACH,KAAK,wBAAgD;IACrD;;;;OAIG;IACH,oBAAoB,oBAAqC;IACzD;;;;;;;OAOG;IACH,UAAU,UAAgB;IAC1B;;;;OAIG;IACH,kBAAkB,oBAAqC;IACvD,gBAAgB,0BAA6C;IAC7D,QAAQ,CAAC,SAAS,kBAAyB;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,qBAA4B;IAC/C,QAAQ,UAAiB;IACzB,KAAK,UAAiB;IACtB,gBAAgB,UAAiB;IACjC,iBAAiB,UAAiB;IAClC,SAAS,iCAAoD;IAC7D;;;;;;OAMG;IACH,iBAAiB,UAAiB;IAClC,YAAY,gBAA+B;IAE3C,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,qBAA4B;IAK5C,QAAQ,CAAC,YAAY,4BAAuC;IAC5D,QAAQ,CAAC,UAAU,0BAAqC;IACxD,QAAQ,CAAC,WAAW,2BAAsC;IAC1D,QAAQ,CAAC,SAAS,yBAAoC;IACtD,QAAQ,CAAC,UAAU,0BAAqC;IACxD,QAAQ,CAAC,UAAU,0BAAqC;IACxD,QAAQ,CAAC,aAAa,6BAAwC;IAC9D,QAAQ,CAAC,aAAa,6BAAwC;IAC9D,QAAQ,CAAC,YAAY,4BAAuC;IAC5D,QAAQ,CAAC,MAAM,sBAAiC;IAChD,QAAQ,CAAC,SAAS,yBAAoC;IACtD,QAAQ,CAAC,aAAa,gCAA2C;IACjE,QAAQ,CAAC,WAAW,2BAAsC;gBAE9C,IAAI,EAAE,eAAe;IAIjC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,YAAY,IAAI,gBAAgB,CAEnC;IAED,IAAI,sBAAsB,IAAI,0BAA0B,CAEvD;IAED,IAAI,WAAW,IAAI,cAAc,EAAE,CAElC;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAErC;IAED,IAAI,eAAe,IAAI,WAAW,GAAG,SAAS,CAI7C;IAED,IAAI,gBAAgB,IAAI,WAAW,EAAE,CAEpC;IAED,IAAI,cAAc,IAAI,WAAW,EAAE,CAElC;IAED,IAAI,cAAc,IAAI,SAAS,EAAE,CAEhC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;oEACgE;IAChE,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC;;;;;OAKG;IACH,YAAY,IAAI,aAAa,GAAG,SAAS;IAIzC,sFAAsF;IACtF,SAAS,CAAC,GAAG,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAI1C,8EAA8E;IAC9E,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;IAI5C,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY/B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIhD;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAOzC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAS1C,gEAAgE;IAChE,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,WAAW,IAAI,IAAI;IAKnB,YAAY,IAAI,IAAI;IAMpB,sEAAsE;IACtE,aAAa,GAAI,IAAI,MAAM,EAAE,KAAK,eAAe,KAAG,IAAI,CAChB;IAExC,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAIpD,uEAAuE;IACvE,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAInD;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IASrC,mFAAmF;IACnF,QAAQ,IAAI,cAAc;IAI1B;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAK5D,qEAAqE;IACrE,IAAI,aAAa,IAAI,uBAAuB,CAE3C;IAED,8EAA8E;IAC9E,UAAU,IAAI,cAAc;IAI5B,6EAA6E;IAC7E,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKvC,uEAAuE;IACvE,iBAAiB,IAAI,IAAI;IAKzB,cAAc,QAAO,IAAI,CAAqC;IAC9D,iBAAiB,QAAO,MAAM,GAAG,IAAI,CAAwC;IAC7E,iBAAiB,GAAI,IAAI,MAAM,EAAE,OAAO,OAAO,CAAC,WAAW,CAAC,KAAG,IAAI,CACrB;IAC9C,aAAa,GAAI,OAAO,OAAO,CAAC,WAAW,CAAC,KAAG,IAAI,CAAyC;IAC5F,aAAa,GAAI,SAAS,WAAW,KAAG,MAAM,GAAG,IAAI,CAA2C;IAChG,eAAe,GAAI,WAAW,eAAe,KAAG,IAAI,CACR;IAC5C,aAAa,GAAI,IAAI,MAAM,EAAE,IAAI,MAAM,KAAG,IAAI,CAA0C;IACxF,gBAAgB,GAAI,IAAI,MAAM,EAAE,MAAM,MAAM,KAAG,IAAI,CAA+C;IAClG,WAAW,GAAI,OAAO,MAAM,EAAE,gBAAgB,WAAW,EAAE,KAAG,IAAI,CACf;IAEnD,wBAAwB,CACvB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAC1B,IAAI;IAIP;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;IAI7D,iFAAiF;IACjF,oBAAoB,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI;IAI9D,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,IAAI,CAAC,MAAM,GAAE,cAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;CAG1D"}
|
|
1
|
+
{"version":3,"file":"editor-state.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-state.svelte.ts"],"names":[],"mappings":"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"}
|
package/dist/viewer/index.d.ts
CHANGED
|
@@ -183,11 +183,18 @@ interface XmlObject {
|
|
|
183
183
|
[child: string]: XmlObject | XmlObject[] | string | undefined;
|
|
184
184
|
}
|
|
185
185
|
/**
|
|
186
|
-
*
|
|
186
|
+
* Lock attributes from an element's non-visual properties node.
|
|
187
187
|
*
|
|
188
188
|
* When a flag is `true` the corresponding user interaction is disabled
|
|
189
189
|
* in the editor (e.g. `noRotation` prevents free rotation of the shape).
|
|
190
190
|
*
|
|
191
|
+
* One bag covers every family, but the families are NOT interchangeable in
|
|
192
|
+
* the file: `a:spLocks` (`CT_ShapeLocking`), `a:picLocks`, `a:cxnSpLocks`,
|
|
193
|
+
* `a:grpSpLocks` (`CT_GroupLocking`) and `a:graphicFrameLocks`
|
|
194
|
+
* (`CT_GraphicalObjectFrameLocking`) each declare their own attribute subset.
|
|
195
|
+
* `runtime/shape-lock-containers` holds that table and is what decides which
|
|
196
|
+
* of these fields may be written for a given element.
|
|
197
|
+
*
|
|
191
198
|
* @example
|
|
192
199
|
* ```ts
|
|
193
200
|
* const locks: PptxShapeLocks = { noMove: true, noResize: true };
|
|
@@ -206,6 +213,14 @@ interface PptxShapeLocks {
|
|
|
206
213
|
noAdjustHandles?: boolean;
|
|
207
214
|
noChangeArrowheads?: boolean;
|
|
208
215
|
noChangeShapeType?: boolean;
|
|
216
|
+
/**
|
|
217
|
+
* `a:graphicFrameLocks/@noDrilldown`: forbids selecting the individual
|
|
218
|
+
* parts inside a graphic frame (a chart series, a SmartArt node). Declared
|
|
219
|
+
* ONLY by `CT_GraphicalObjectFrameLocking`, so it is written for tables,
|
|
220
|
+
* charts, SmartArt, OLE objects and graphic-frame media, and never onto
|
|
221
|
+
* `a:spLocks` / `a:picLocks` / `a:cxnSpLocks` / `a:grpSpLocks`.
|
|
222
|
+
*/
|
|
223
|
+
noDrilldown?: boolean;
|
|
209
224
|
/**
|
|
210
225
|
* Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
|
|
211
226
|
* but it lives on the same non-visual-properties node as `a:spLocks`, so
|
|
@@ -9651,6 +9666,93 @@ interface FontEmbeddingDescriptor {
|
|
|
9651
9666
|
declare function zoomInPercent(percent: number): number;
|
|
9652
9667
|
/** The percentage one zoom-out press moves to, clamped. */
|
|
9653
9668
|
declare function zoomOutPercent(percent: number): number;
|
|
9669
|
+
//#endregion
|
|
9670
|
+
//#region src/render/autosave-policy.d.ts
|
|
9671
|
+
/**
|
|
9672
|
+
* @fileoverview Who decides whether recovery autosave runs, and how often.
|
|
9673
|
+
*
|
|
9674
|
+
* ## The rule: the host prop is a ceiling, the toggle is a preference
|
|
9675
|
+
*
|
|
9676
|
+
* Two things can speak about autosave, and until now each binding invented its
|
|
9677
|
+
* own answer for what happens when both do:
|
|
9678
|
+
*
|
|
9679
|
+
* - the **host** passes an `autosave` prop. That is a POLICY: the embedder is
|
|
9680
|
+
* stating what its application permits.
|
|
9681
|
+
* - the **user** flips the title-bar AutoSave switch, or File > Options > Save
|
|
9682
|
+
* > AutoSave. That is a PREFERENCE, expressed inside whatever the host allows.
|
|
9683
|
+
*
|
|
9684
|
+
* A preference can never exceed a policy, so:
|
|
9685
|
+
*
|
|
9686
|
+
* - `autosave={false}` turns recovery autosave OFF and takes the toggle away
|
|
9687
|
+
* (`toggleAvailable: false`). A user cannot switch on what the application
|
|
9688
|
+
* forbade, and a switch that silently does nothing is worse than no switch.
|
|
9689
|
+
* - `autosave={true}`, or the prop omitted entirely, PERMITS autosave. The
|
|
9690
|
+
* user's toggle then decides, and it defaults to on.
|
|
9691
|
+
*
|
|
9692
|
+
* The prop is therefore only load-bearing when it is `false`. That is
|
|
9693
|
+
* deliberate: crash recovery that is off by default is crash recovery nobody
|
|
9694
|
+
* has, and the shared options schema already declares `save.autoSave: true` as
|
|
9695
|
+
* the user default, so any other prop default would contradict it. Vue, Svelte
|
|
9696
|
+
* and Vanilla previously defaulted to `false` and React and Angular to `true`;
|
|
9697
|
+
* `true` is the answer, and the three that defaulted off now write recovery
|
|
9698
|
+
* snapshots for hosts that never opted in. Pass `autosave={false}` to opt out.
|
|
9699
|
+
*
|
|
9700
|
+
* Two further gates are not negotiable by anyone, because without them there is
|
|
9701
|
+
* nothing to write or nowhere to write it: editing must be possible at all, and
|
|
9702
|
+
* a `filePath` must be set to key the IndexedDB record.
|
|
9703
|
+
*
|
|
9704
|
+
* ## Cadence follows the same rule
|
|
9705
|
+
*
|
|
9706
|
+
* An explicit `autosaveIntervalMs` prop is a policy and is honoured as given.
|
|
9707
|
+
* Otherwise the cadence is the user's own File > Options > Save > "Save
|
|
9708
|
+
* AutoRecover information every N minutes" (default two minutes), which React
|
|
9709
|
+
* and Angular already respected and the other three ignored.
|
|
9710
|
+
*
|
|
9711
|
+
* ## What the two engine shapes must agree on
|
|
9712
|
+
*
|
|
9713
|
+
* React and Angular POLL on a fixed interval; Vue, Svelte and Vanilla DEBOUNCE
|
|
9714
|
+
* on the edit. Both are legitimate, but a plain debounce has a failure mode a
|
|
9715
|
+
* poll does not: a user who keeps editing keeps re-arming the timer, so it can
|
|
9716
|
+
* defer a snapshot forever, and at the two-minute cadence that is an entire
|
|
9717
|
+
* session of lost work. {@link nextAutosaveDelayMs} caps the debounce so both
|
|
9718
|
+
* shapes make the same promise:
|
|
9719
|
+
*
|
|
9720
|
+
* **a snapshot lands no later than one interval after the first unsaved edit,
|
|
9721
|
+
* and no more often than once per interval.**
|
|
9722
|
+
*
|
|
9723
|
+
* @module render/autosave-policy
|
|
9724
|
+
*/
|
|
9725
|
+
/**
|
|
9726
|
+
* Why autosave is not running. `autosave_toggle_off` and `no_file_path` are the
|
|
9727
|
+
* codes the title bar has always understood; the other two are new and fall
|
|
9728
|
+
* back to the generic message in bindings that do not map them.
|
|
9729
|
+
*/
|
|
9730
|
+
type AutosaveDisabledReason = 'autosave_host_off' | 'autosave_toggle_off' | 'no_file_path' | 'read_only';
|
|
9731
|
+
/** Everything a binding needs to render the recovery dialog, and nothing else. */
|
|
9732
|
+
interface AutosaveRecoveryPrompt {
|
|
9733
|
+
/** IndexedDB key the snapshot is stored under (the deck's file path/name). */
|
|
9734
|
+
readonly filePath: string;
|
|
9735
|
+
/** When the snapshot was written (epoch ms). */
|
|
9736
|
+
readonly timestamp: number;
|
|
9737
|
+
/** Snapshot size in bytes. */
|
|
9738
|
+
readonly size: number;
|
|
9739
|
+
/** Whole minutes since it was written, floored at 0. */
|
|
9740
|
+
readonly ageMinutes: number;
|
|
9741
|
+
readonly titleKey: string;
|
|
9742
|
+
readonly messageKey: string;
|
|
9743
|
+
/** `size` is pre-formatted here because byte units are not translated. */
|
|
9744
|
+
readonly messageParams: {
|
|
9745
|
+
readonly file: string;
|
|
9746
|
+
readonly size: string;
|
|
9747
|
+
};
|
|
9748
|
+
/** Relative age, reusing the existing autosave age keys. */
|
|
9749
|
+
readonly ageKey: string;
|
|
9750
|
+
readonly ageParams: {
|
|
9751
|
+
readonly count: number;
|
|
9752
|
+
};
|
|
9753
|
+
readonly restoreKey: string;
|
|
9754
|
+
readonly discardKey: string;
|
|
9755
|
+
}
|
|
9654
9756
|
/**
|
|
9655
9757
|
* Why the deck is being serialised, which is a separate question from whether
|
|
9656
9758
|
* the user protected it.
|
|
@@ -10572,13 +10674,28 @@ interface PowerPointViewerProps {
|
|
|
10572
10674
|
/** Host override for the File > Open action. */
|
|
10573
10675
|
onopenfile?: () => void;
|
|
10574
10676
|
/**
|
|
10575
|
-
*
|
|
10576
|
-
* the
|
|
10577
|
-
*
|
|
10578
|
-
*
|
|
10579
|
-
*
|
|
10580
|
-
*
|
|
10581
|
-
*
|
|
10677
|
+
* POLICY CEILING for crash-recovery autosave. Not a switch the host flips on
|
|
10678
|
+
* the user's behalf: it states what this application permits, and the
|
|
10679
|
+
* title-bar AutoSave toggle (and File > Options > Save > AutoSave) is the
|
|
10680
|
+
* user's preference inside it.
|
|
10681
|
+
*
|
|
10682
|
+
* - `false` turns autosave off AND renders the toggle off and inert; a user
|
|
10683
|
+
* cannot switch on what the application forbade.
|
|
10684
|
+
* - `true`, or omitted, PERMITS autosave and lets the toggle decide.
|
|
10685
|
+
*
|
|
10686
|
+
* While active, each edit serializes the current slides to `.pptx` bytes,
|
|
10687
|
+
* writes them to the shared IndexedDB recovery store (keyed by
|
|
10688
|
+
* {@link filePath}) and fires `onautosave`. A snapshot lands no later than
|
|
10689
|
+
* one interval after the first unsaved edit, and no more often than once per
|
|
10690
|
+
* interval. Requires `filePath`; without one the indicator reads "disabled".
|
|
10691
|
+
*
|
|
10692
|
+
* On the next load of the same `filePath` the viewer OFFERS the snapshot back
|
|
10693
|
+
* in a "Recover unsaved changes?" dialog (Restore loads it in place, Discard
|
|
10694
|
+
* deletes it), unless this prop is `false`. The store is also reachable
|
|
10695
|
+
* directly through the re-exported `getAutosaveSnapshot` /
|
|
10696
|
+
* `listAutosaveSnapshots` helpers.
|
|
10697
|
+
*
|
|
10698
|
+
* @default true
|
|
10582
10699
|
*/
|
|
10583
10700
|
autosave?: boolean;
|
|
10584
10701
|
/** Fired when the desktop title bar toggles AutoSave for this viewer instance. */
|
|
@@ -10588,7 +10705,16 @@ interface PowerPointViewerProps {
|
|
|
10588
10705
|
* Autosave is inert until this is set.
|
|
10589
10706
|
*/
|
|
10590
10707
|
filePath?: string;
|
|
10591
|
-
/**
|
|
10708
|
+
/**
|
|
10709
|
+
* Autosave cadence in milliseconds: the debounce window, and the ceiling on
|
|
10710
|
+
* how long an unbroken stream of edits may defer a snapshot.
|
|
10711
|
+
*
|
|
10712
|
+
* Optional, and a policy like {@link autosave}: pass it and it wins. Leave it
|
|
10713
|
+
* out and the cadence is the user's own File > Options > Save > "Save
|
|
10714
|
+
* AutoRecover information every N minutes", which defaults to two minutes.
|
|
10715
|
+
*
|
|
10716
|
+
* @default 120000 (Options > Save, "every 2 minutes")
|
|
10717
|
+
*/
|
|
10592
10718
|
autosaveIntervalMs?: number;
|
|
10593
10719
|
/** Fired with the serialized `.pptx` bytes after each successful autosave. */
|
|
10594
10720
|
onautosave?: (bytes: Uint8Array) => void;
|
|
@@ -10820,6 +10946,13 @@ declare class ExportUiState {
|
|
|
10820
10946
|
* - Vue's debounce-on-edit trigger: an edit marks the document dirty and
|
|
10821
10947
|
* (re)arms a debounce timer instead of polling on a fixed interval.
|
|
10822
10948
|
*
|
|
10949
|
+
* The debounce is CAPPED by the shared `nextAutosaveDelayMs`, so it keeps the
|
|
10950
|
+
* same promise React's and Angular's polling engines do: a snapshot lands no
|
|
10951
|
+
* later than one interval after the FIRST unsaved edit, and no more often than
|
|
10952
|
+
* once per interval. Without that cap a user who keeps typing keeps re-arming
|
|
10953
|
+
* the timer, and at the two-minute AutoRecover cadence that is a whole session
|
|
10954
|
+
* of work that never reaches the recovery store.
|
|
10955
|
+
*
|
|
10823
10956
|
* The controller registers its own edit-watching `$effect` in the constructor,
|
|
10824
10957
|
* so the SFC only has to construct it once during setup and read its reactive
|
|
10825
10958
|
* `status` / `isDirty` for the toolbar indicator.
|
|
@@ -10835,9 +10968,13 @@ declare class ExportUiState {
|
|
|
10835
10968
|
*/
|
|
10836
10969
|
type AutosaveStatus = 'idle' | 'disabled' | 'saving' | 'saved' | 'error';
|
|
10837
10970
|
interface AutosaveDeps {
|
|
10838
|
-
/**
|
|
10971
|
+
/**
|
|
10972
|
+
* Master on/off: the resolved activation (`resolveAutosaveActivation` in
|
|
10973
|
+
* shared), which folds the host policy, the user's toggle, editability and
|
|
10974
|
+
* the collaboration read-only veto into one answer.
|
|
10975
|
+
*/
|
|
10839
10976
|
getEnabled: () => boolean;
|
|
10840
|
-
/** Debounce window in milliseconds. */
|
|
10977
|
+
/** Debounce window in milliseconds, and the ceiling on deferring a save. */
|
|
10841
10978
|
getIntervalMs: () => number;
|
|
10842
10979
|
/** IndexedDB record key (host `filePath`); autosave is disabled without one. */
|
|
10843
10980
|
getFilePath: () => string | undefined;
|
|
@@ -10862,6 +10999,19 @@ interface AutosaveDeps {
|
|
|
10862
10999
|
* a user edit), so the watcher clears dirty instead of arming a save.
|
|
10863
11000
|
*/
|
|
10864
11001
|
getLoadCount: () => number;
|
|
11002
|
+
/**
|
|
11003
|
+
* Monotonic SEED counter, bumped in the same synchronous block that installs
|
|
11004
|
+
* the loaded slides (`EditorState.seedNonce`).
|
|
11005
|
+
*
|
|
11006
|
+
* `getLoadCount` alone is not enough, because the loader bumps it in an
|
|
11007
|
+
* earlier flush than the effect that copies its slides into the editor: this
|
|
11008
|
+
* watcher ran once on the count change (old slides, so nothing to do) and
|
|
11009
|
+
* then a second time on the slide reassignment, with the count already
|
|
11010
|
+
* settled - indistinguishable from an edit. Merely OPENING a deck therefore
|
|
11011
|
+
* marked it dirty and wrote a crash-recovery snapshot, so the next visit
|
|
11012
|
+
* offered to recover unsaved changes that never existed.
|
|
11013
|
+
*/
|
|
11014
|
+
getSeedNonce?: () => number;
|
|
10865
11015
|
/** Host callback with the freshly-serialized bytes on each successful save. */
|
|
10866
11016
|
onSaved?: (bytes: Uint8Array) => void;
|
|
10867
11017
|
}
|
|
@@ -11536,6 +11686,20 @@ declare class EditorState {
|
|
|
11536
11686
|
readonly tableCells: TableCellSelection;
|
|
11537
11687
|
editable: boolean;
|
|
11538
11688
|
dirty: boolean;
|
|
11689
|
+
/**
|
|
11690
|
+
* Monotonic counter bumped by {@link setSlides}, i.e. every time a freshly
|
|
11691
|
+
* loaded deck is installed as the working document.
|
|
11692
|
+
*
|
|
11693
|
+
* It exists because the loader's own `loadCount` is bumped in an EARLIER
|
|
11694
|
+
* flush than the one that writes these slides: the seeding effect
|
|
11695
|
+
* (`viewer-effects.svelte.ts`) reacts to `loadCount`, so by the time it calls
|
|
11696
|
+
* `setSlides` the autosave effect has already run once, seen the new count
|
|
11697
|
+
* against the old slides, and settled. The slide reassignment that followed
|
|
11698
|
+
* then looked exactly like a user edit, and merely OPENING a deck wrote a
|
|
11699
|
+
* crash-recovery snapshot. This counter changes in the SAME synchronous block
|
|
11700
|
+
* as the slides it describes, so the reseed can never be misread again.
|
|
11701
|
+
*/
|
|
11702
|
+
seedNonce: number;
|
|
11539
11703
|
editTemplateMode: boolean;
|
|
11540
11704
|
interactionActive: boolean;
|
|
11541
11705
|
clipboard: ElementClipboardPayload | null;
|
|
@@ -12631,6 +12795,53 @@ declare class PresenterSession {
|
|
|
12631
12795
|
private getChannel;
|
|
12632
12796
|
}
|
|
12633
12797
|
|
|
12798
|
+
/**
|
|
12799
|
+
* autosave-recovery.svelte.ts: offer the crash-recovery snapshot back.
|
|
12800
|
+
*
|
|
12801
|
+
* This binding has always WRITTEN recovery snapshots (see `autosave.svelte.ts`)
|
|
12802
|
+
* and never once offered one back, so the whole feature was invisible: the user
|
|
12803
|
+
* lost a tab mid-edit, reopened the deck, and silently got the pre-crash work
|
|
12804
|
+
* thrown away. Every decision (is it worth probing, is the snapshot fresh
|
|
12805
|
+
* enough, has this tab already taken delivery of it, what should the prompt
|
|
12806
|
+
* say) lives in `pptx-viewer-shared`'s `render/autosave-recovery` so all five
|
|
12807
|
+
* bindings ask the same questions in the same order; this class is only the
|
|
12808
|
+
* runes wiring plus the two actions.
|
|
12809
|
+
*
|
|
12810
|
+
* It registers its own probing `$effect` in the constructor, exactly like
|
|
12811
|
+
* {@link AutosaveController}, so a caller only has to construct it during
|
|
12812
|
+
* component initialisation and render `prompt` when it is non-null.
|
|
12813
|
+
*/
|
|
12814
|
+
interface AutosaveRecoveryDeps {
|
|
12815
|
+
/** IndexedDB record key (host `filePath`). Nothing to look up without one. */
|
|
12816
|
+
getFilePath: () => string | undefined;
|
|
12817
|
+
/**
|
|
12818
|
+
* Whether recovery snapshots are permitted at all, which is the HOST prop
|
|
12819
|
+
* (`autosave !== false`) and not the user's toggle: someone who merely
|
|
12820
|
+
* switched AutoSave off should still be offered the pre-crash snapshot that
|
|
12821
|
+
* was written while it was on.
|
|
12822
|
+
*/
|
|
12823
|
+
getAutosaveAllowed: () => boolean;
|
|
12824
|
+
getLoading: () => boolean;
|
|
12825
|
+
getError: () => string | null;
|
|
12826
|
+
getSlideCount: () => number;
|
|
12827
|
+
/** Monotonic load counter: the probe runs once per loaded deck. */
|
|
12828
|
+
getLoadCount: () => number;
|
|
12829
|
+
/** The loader's own load path, the same one the backstage recent list uses. */
|
|
12830
|
+
load: (bytes: Uint8Array) => Promise<void> | void;
|
|
12831
|
+
}
|
|
12832
|
+
declare class AutosaveRecoveryController {
|
|
12833
|
+
#private;
|
|
12834
|
+
/** The prompt to render, or null when there is nothing to recover. */
|
|
12835
|
+
prompt: AutosaveRecoveryPrompt | null;
|
|
12836
|
+
constructor(deps: AutosaveRecoveryDeps);
|
|
12837
|
+
/** Take the snapshot: mark it consumed, then load its bytes in place. */
|
|
12838
|
+
restore(): Promise<void>;
|
|
12839
|
+
/** Decline the snapshot: delete it, and never load it. */
|
|
12840
|
+
discard(): Promise<void>;
|
|
12841
|
+
/** Close the prompt without touching the stored snapshot. */
|
|
12842
|
+
dismiss(): void;
|
|
12843
|
+
}
|
|
12844
|
+
|
|
12634
12845
|
/** One element ring to draw on the canvas: an explicit pick or a live-tool focus. */
|
|
12635
12846
|
interface AiCanvasHighlight {
|
|
12636
12847
|
slideIndex: number;
|
|
@@ -12762,10 +12973,12 @@ declare class ViewerOptionsState {
|
|
|
12762
12973
|
/** Accessibility > "feedback with sound" cue for a completed action. */
|
|
12763
12974
|
playFeedback(): void;
|
|
12764
12975
|
/**
|
|
12765
|
-
*
|
|
12766
|
-
*
|
|
12976
|
+
* Options > Save > "Save AutoRecover information every N minutes", in
|
|
12977
|
+
* seconds. The autosave cadence whenever the host passed no explicit
|
|
12978
|
+
* `autosaveIntervalMs`; the host-vs-user precedence itself is decided by
|
|
12979
|
+
* `resolveAutosaveIntervalMs` in shared, not re-invented here.
|
|
12767
12980
|
*/
|
|
12768
|
-
|
|
12981
|
+
get autosaveIntervalSeconds(): number;
|
|
12769
12982
|
/** Options > Save > "Delete cached files": drop all recovery snapshots. */
|
|
12770
12983
|
clearCache(): Promise<void>;
|
|
12771
12984
|
dispose(): void;
|
|
@@ -12784,6 +12997,48 @@ declare class CompareController {
|
|
|
12784
12997
|
acceptAll(): void;
|
|
12785
12998
|
}
|
|
12786
12999
|
|
|
13000
|
+
/** Which tool's colour palette is currently open, if any. */
|
|
13001
|
+
type PresentPaletteKey = 'pen' | 'highlighter';
|
|
13002
|
+
/** DOM getters {@link PresentToolbarChrome.attach} needs from the component. */
|
|
13003
|
+
interface PresentToolbarChromeTargets {
|
|
13004
|
+
/**
|
|
13005
|
+
* The positioned show surface the bar floats over. Used only for the
|
|
13006
|
+
* bottom-trigger-zone fast path; a missing container still shows the bar on
|
|
13007
|
+
* any movement, exactly as React's wrapper does.
|
|
13008
|
+
*/
|
|
13009
|
+
getContainer: () => HTMLElement | null;
|
|
13010
|
+
/** The bar itself, so a mousedown outside it can close an open palette. */
|
|
13011
|
+
getToolbar: () => HTMLElement | null;
|
|
13012
|
+
}
|
|
13013
|
+
declare class PresentToolbarChrome {
|
|
13014
|
+
#private;
|
|
13015
|
+
/** Whether the bar is currently faded in and accepting pointer events. */
|
|
13016
|
+
visible: boolean;
|
|
13017
|
+
/** Milliseconds since the show started, refreshed once a second. */
|
|
13018
|
+
elapsedMs: number;
|
|
13019
|
+
/** The open colour palette, or `null` when both are closed. */
|
|
13020
|
+
palette: PresentPaletteKey | null;
|
|
13021
|
+
/**
|
|
13022
|
+
* Wire the document listeners and the one-second tick. Returns a teardown,
|
|
13023
|
+
* so a component can hand it straight to `$effect`.
|
|
13024
|
+
*/
|
|
13025
|
+
attach(targets: PresentToolbarChromeTargets): () => void;
|
|
13026
|
+
/** Pointer entered the bar: pin it open until the pointer leaves again. */
|
|
13027
|
+
enter(): void;
|
|
13028
|
+
/** Pointer left the bar: restart the auto-hide countdown. */
|
|
13029
|
+
leave(): void;
|
|
13030
|
+
/**
|
|
13031
|
+
* PowerPoint's Ctrl+H: flip the show chrome. Deliberately the same `visible`
|
|
13032
|
+
* flag auto-hide writes, and it re-arms the countdown when it reveals the bar,
|
|
13033
|
+
* so the shortcut leaves the toolbar in a state the pointer can still govern.
|
|
13034
|
+
*/
|
|
13035
|
+
toggleVisible(): void;
|
|
13036
|
+
/** Open `key`'s palette, or close it when it is already the open one. */
|
|
13037
|
+
togglePalette(key: PresentPaletteKey): void;
|
|
13038
|
+
/** Close both palettes (after picking a colour or choosing a tool). */
|
|
13039
|
+
closePalettes(): void;
|
|
13040
|
+
}
|
|
13041
|
+
|
|
12787
13042
|
type PresentationInkTool = 'none' | 'pen' | 'highlighter' | 'eraser' | 'laser';
|
|
12788
13043
|
interface PresentationStroke {
|
|
12789
13044
|
id: string;
|
|
@@ -12841,6 +13096,16 @@ declare class RehearseState {
|
|
|
12841
13096
|
declare class ViewerParityUiState {
|
|
12842
13097
|
readonly compare: CompareController;
|
|
12843
13098
|
readonly annotations: PresentationAnnotations;
|
|
13099
|
+
/**
|
|
13100
|
+
* The show toolbar's fade/auto-hide state. It lives here, not inside
|
|
13101
|
+
* `PresentationToolbar.svelte`, because PowerPoint's Ctrl+H toggles the show
|
|
13102
|
+
* chrome from the keyboard handler, which is nowhere near that component: a
|
|
13103
|
+
* second visibility flag over there would be overwritten by the next mouse
|
|
13104
|
+
* move, so the shortcut and the countdown share this one.
|
|
13105
|
+
*/
|
|
13106
|
+
readonly showChrome: PresentToolbarChrome;
|
|
13107
|
+
/** PowerPoint's Ctrl+S "See All Slides" grid, over the running show. */
|
|
13108
|
+
allSlidesOpen: boolean;
|
|
12844
13109
|
readonly rehearse: RehearseState;
|
|
12845
13110
|
setupSlideShowOpen: boolean;
|
|
12846
13111
|
headerFooterOpen: boolean;
|
|
@@ -12890,8 +13155,13 @@ interface CreateViewerStateOptions {
|
|
|
12890
13155
|
getSource: () => Uint8Array | ArrayBuffer | null | undefined;
|
|
12891
13156
|
collaboration?: CollaborationConfig;
|
|
12892
13157
|
shareDefaults?: ShareDefaultsInput;
|
|
12893
|
-
/**
|
|
12894
|
-
|
|
13158
|
+
/**
|
|
13159
|
+
* Host `autosave` prop, verbatim. `undefined` means the host said nothing,
|
|
13160
|
+
* which PERMITS autosave (the user's toggle then decides); only an explicit
|
|
13161
|
+
* `false` vetoes it and makes the toggle inert. See
|
|
13162
|
+
* `resolveAutosaveActivation` in `pptx-viewer-shared`.
|
|
13163
|
+
*/
|
|
13164
|
+
getAutosave: () => boolean | undefined;
|
|
12895
13165
|
autosaveIntervalMs?: number;
|
|
12896
13166
|
getFilePath: () => string | undefined;
|
|
12897
13167
|
getInitialSlide: () => number;
|
|
@@ -12955,6 +13225,8 @@ interface ViewerStateBag {
|
|
|
12955
13225
|
readonly collab: CollaborationController;
|
|
12956
13226
|
readonly dialogs: CollaborationDialogsState;
|
|
12957
13227
|
readonly autosaveCtl: AutosaveController;
|
|
13228
|
+
/** The "recover unsaved changes?" probe + prompt for the loaded deck. */
|
|
13229
|
+
readonly autosaveRecovery: AutosaveRecoveryController;
|
|
12958
13230
|
readonly presentation: PresentationController;
|
|
12959
13231
|
readonly presenterSession: PresenterSession;
|
|
12960
13232
|
readonly exportWiring: ExportWiring;
|
|
@@ -12990,8 +13262,17 @@ interface ViewerStateBag {
|
|
|
12990
13262
|
* can flip it without waiting on the host.
|
|
12991
13263
|
*/
|
|
12992
13264
|
editable: boolean;
|
|
12993
|
-
/**
|
|
13265
|
+
/**
|
|
13266
|
+
* The EFFECTIVE title-bar AutoSave state: the user's preference, or false
|
|
13267
|
+
* when the host vetoed autosave (the switch renders off and inert rather
|
|
13268
|
+
* than pretending to work). Mutate via {@link setAutosaveEnabled}, which
|
|
13269
|
+
* also fires `onautosavetoggle`.
|
|
13270
|
+
*/
|
|
12994
13271
|
readonly autosaveEnabled: boolean;
|
|
13272
|
+
/** False only when the host passed `autosave={false}`; the toggle is then inert. */
|
|
13273
|
+
readonly autosaveToggleAvailable: boolean;
|
|
13274
|
+
/** Why autosave is not running, for a host that wants to explain it. */
|
|
13275
|
+
readonly autosaveDisabledReason: AutosaveDisabledReason | undefined;
|
|
12995
13276
|
setAutosaveEnabled(enabled: boolean): void;
|
|
12996
13277
|
presenterMode: boolean;
|
|
12997
13278
|
/** `Date.now()` timestamp of the last `enterPresenterView()` call; the presenter view's elapsed-time display. */
|
package/dist/viewer/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { A as e, _ as s, c as t, d as i, f as l,
|
|
2
|
-
var
|
|
1
|
+
import { A as e, M as a, _ as s, c as t, d as i, f as l, gt as S, ht as n, i as v, j as o, l as d, n as p, o as b, p as g, r as c, s as x, t as w, u as T } from "../export-Cp97qZ_g.js";
|
|
2
|
+
var m = a, A = o, P = e;
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
w as PowerPointViewer,
|
|
5
|
+
v as PresentationLoader,
|
|
6
|
+
m as Ribbon,
|
|
7
7
|
P as SlideCanvas,
|
|
8
|
-
|
|
8
|
+
c as ViewerState,
|
|
9
9
|
A as ViewerToolbar,
|
|
10
10
|
i as clampSlideIndex,
|
|
11
11
|
s as createSvelteAiBridge,
|
|
@@ -13,10 +13,10 @@ export {
|
|
|
13
13
|
b as exportAllSlidesToSvg,
|
|
14
14
|
x as exportAllSlidesToSvgBlobs,
|
|
15
15
|
t as exportSlideAsSvg,
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
d as exportSlideToSvg,
|
|
17
|
+
T as exportSlideToSvgBlob,
|
|
18
18
|
l as fitScale,
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
g as resolveNavigationKey,
|
|
20
|
+
n as zoomInPercent,
|
|
21
21
|
S as zoomOutPercent
|
|
22
22
|
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AutosaveRecoveryPrompt } from 'pptx-viewer-shared';
|
|
2
|
+
/**
|
|
3
|
+
* autosave-recovery.svelte.ts: offer the crash-recovery snapshot back.
|
|
4
|
+
*
|
|
5
|
+
* This binding has always WRITTEN recovery snapshots (see `autosave.svelte.ts`)
|
|
6
|
+
* and never once offered one back, so the whole feature was invisible: the user
|
|
7
|
+
* lost a tab mid-edit, reopened the deck, and silently got the pre-crash work
|
|
8
|
+
* thrown away. Every decision (is it worth probing, is the snapshot fresh
|
|
9
|
+
* enough, has this tab already taken delivery of it, what should the prompt
|
|
10
|
+
* say) lives in `pptx-viewer-shared`'s `render/autosave-recovery` so all five
|
|
11
|
+
* bindings ask the same questions in the same order; this class is only the
|
|
12
|
+
* runes wiring plus the two actions.
|
|
13
|
+
*
|
|
14
|
+
* It registers its own probing `$effect` in the constructor, exactly like
|
|
15
|
+
* {@link AutosaveController}, so a caller only has to construct it during
|
|
16
|
+
* component initialisation and render `prompt` when it is non-null.
|
|
17
|
+
*/
|
|
18
|
+
export interface AutosaveRecoveryDeps {
|
|
19
|
+
/** IndexedDB record key (host `filePath`). Nothing to look up without one. */
|
|
20
|
+
getFilePath: () => string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Whether recovery snapshots are permitted at all, which is the HOST prop
|
|
23
|
+
* (`autosave !== false`) and not the user's toggle: someone who merely
|
|
24
|
+
* switched AutoSave off should still be offered the pre-crash snapshot that
|
|
25
|
+
* was written while it was on.
|
|
26
|
+
*/
|
|
27
|
+
getAutosaveAllowed: () => boolean;
|
|
28
|
+
getLoading: () => boolean;
|
|
29
|
+
getError: () => string | null;
|
|
30
|
+
getSlideCount: () => number;
|
|
31
|
+
/** Monotonic load counter: the probe runs once per loaded deck. */
|
|
32
|
+
getLoadCount: () => number;
|
|
33
|
+
/** The loader's own load path, the same one the backstage recent list uses. */
|
|
34
|
+
load: (bytes: Uint8Array) => Promise<void> | void;
|
|
35
|
+
}
|
|
36
|
+
export declare class AutosaveRecoveryController {
|
|
37
|
+
#private;
|
|
38
|
+
/** The prompt to render, or null when there is nothing to recover. */
|
|
39
|
+
prompt: AutosaveRecoveryPrompt | null;
|
|
40
|
+
constructor(deps: AutosaveRecoveryDeps);
|
|
41
|
+
/** Take the snapshot: mark it consumed, then load its bytes in place. */
|
|
42
|
+
restore(): Promise<void>;
|
|
43
|
+
/** Decline the snapshot: delete it, and never load it. */
|
|
44
|
+
discard(): Promise<void>;
|
|
45
|
+
/** Close the prompt without touching the stored snapshot. */
|
|
46
|
+
dismiss(): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=autosave-recovery.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autosave-recovery.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/autosave-recovery.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAQjF;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,oBAAoB;IACpC,8EAA8E;IAC9E,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtC;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAClC,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,mEAAmE;IACnE,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,qBAAa,0BAA0B;;IACtC,sEAAsE;IACtE,MAAM,gCAAmD;gBAO7C,IAAI,EAAE,oBAAoB;IAgCtC,yEAAyE;IACnE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,0DAA0D;IACpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,6DAA6D;IAC7D,OAAO,IAAI,IAAI;CAIf"}
|