pptx-svelte-viewer 1.4.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +470 -0
- package/README.md +175 -17
- package/dist/AiChatPanel-CkC2py3J.js +1082 -0
- package/dist/__vite-browser-external-DOmiXdGM.js +7 -0
- package/dist/{dist-DZ-fjucV.js → dist-AHWCPEmj.js} +44226 -40236
- package/dist/export-CtfwVh4-.js +97263 -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-effects.svelte.d.ts +17 -0
- package/dist/viewer/collab/collaboration-effects.svelte.d.ts.map +1 -0
- package/dist/viewer/collab/collaboration-provider.d.ts.map +1 -1
- package/dist/viewer/collab/collaboration-remote-sync.d.ts +32 -1
- package/dist/viewer/collab/collaboration-remote-sync.d.ts.map +1 -1
- package/dist/viewer/collab/collaboration.svelte.d.ts +12 -22
- 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 +68 -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 +15 -0
- package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
- package/dist/viewer/editor/editor-controller.svelte.d.ts +5 -0
- package/dist/viewer/editor/editor-controller.svelte.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 +2816 -22
- 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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { PptxSlide } from 'pptx-viewer-core';
|
|
2
|
+
import { PptxAiFocusedTarget } from 'pptx-viewer-shared/ai';
|
|
3
|
+
/** The selection inputs the focus derivation reads. */
|
|
4
|
+
export interface FocusSelectionInput {
|
|
5
|
+
activeSlideIndex: number;
|
|
6
|
+
selectedElementIds: readonly string[];
|
|
7
|
+
selectedElementId: string | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Derive focused targets from the live selection: one `element` target per
|
|
11
|
+
* selected element on the active slide, or a single whole-`slide` target when
|
|
12
|
+
* nothing is selected. Order and multiplicity are preserved (multi-select and
|
|
13
|
+
* tables included) so callers can detect e.g. "exactly two tables".
|
|
14
|
+
*/
|
|
15
|
+
export declare function computeFocusTargets(input: FocusSelectionInput): PptxAiFocusedTarget[];
|
|
16
|
+
/** A renderable focus chip. `title` carries the full element id for hover. */
|
|
17
|
+
export interface FocusChip {
|
|
18
|
+
key: string;
|
|
19
|
+
label: string;
|
|
20
|
+
title: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build display chips for the given targets. Slide targets read `Slide N`;
|
|
24
|
+
* element targets read `<Type> <n>` (a friendly short label, full id on hover),
|
|
25
|
+
* or `<Type> (missing)` when the element is no longer on the slide.
|
|
26
|
+
*/
|
|
27
|
+
export declare function focusTargetChips(targets: readonly PptxAiFocusedTarget[], slides: readonly PptxSlide[]): FocusChip[];
|
|
28
|
+
/** Whether the focus is exactly two table elements (drives the merge action). */
|
|
29
|
+
export declare function isTwoTableFocus(targets: readonly PptxAiFocusedTarget[], slides: readonly PptxSlide[]): false | {
|
|
30
|
+
slideIndex: number;
|
|
31
|
+
elementIdA: string;
|
|
32
|
+
elementIdB: string;
|
|
33
|
+
};
|
|
34
|
+
/** Build the directive that fires `merge_tables` without a confirmation round-trip. */
|
|
35
|
+
export declare function mergeTablesDirective(slideIndex: number, elementIdA: string, elementIdB: string): string;
|
|
36
|
+
//# sourceMappingURL=focus-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-targets.d.ts","sourceRoot":"","sources":["../../../src/viewer/ai/focus-targets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAYrF;AAaD,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAiBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,MAAM,EAAE,SAAS,SAAS,EAAE,GAC1B,SAAS,EAAE,CAiBb;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAC9B,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,MAAM,EAAE,SAAS,SAAS,EAAE,GAC1B,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAexE;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAChB,MAAM,CAKR"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI assistant barrel. Only the light, `ai`-SDK-free surface is re-exported
|
|
3
|
+
* here (the bridge builder + its dep type). The chat runes controller
|
|
4
|
+
* (`chat.svelte.ts`) and the panel components are intentionally NOT re-exported
|
|
5
|
+
* so importing this barrel never statically pulls in `@ai-sdk/svelte` / `ai`;
|
|
6
|
+
* the panel is reached through the dynamic `import('./components/ai/...')`
|
|
7
|
+
* inside `PowerPointViewer.svelte`.
|
|
8
|
+
*/
|
|
9
|
+
export type { SvelteAiBridgeDeps } from './ai-bridge';
|
|
10
|
+
export { createSvelteAiBridge } from './ai-bridge';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PptxSlide } from 'pptx-viewer-core';
|
|
2
|
+
import { CollaborationConfig } from 'pptx-viewer-shared';
|
|
3
|
+
import { CollabSessionFactory } from './collaboration-session';
|
|
4
|
+
export interface CollaborationDeps {
|
|
5
|
+
/** Read the current local slides (broadcast granularly on change). */
|
|
6
|
+
getSlides: () => PptxSlide[];
|
|
7
|
+
/** Apply a remote peer's slide snapshot into the editable slides. */
|
|
8
|
+
applyRemoteSlides: (slides: PptxSlide[]) => void;
|
|
9
|
+
/** Live host `collaboration` config; watched to auto start/stop a session. */
|
|
10
|
+
getConfig: () => CollaborationConfig | undefined;
|
|
11
|
+
/** Return the loaded source bytes for elected-writer (role 'owner') write-back. */
|
|
12
|
+
getSourceBytes?: () => Uint8Array | null;
|
|
13
|
+
/** Slide canvas width/height (unscaled px), used to clamp incoming cursor coordinates. */
|
|
14
|
+
getCanvasWidth?: () => number | undefined;
|
|
15
|
+
getCanvasHeight?: () => number | undefined;
|
|
16
|
+
/** Fired when a session starts (host observability). */
|
|
17
|
+
onStart?: (config: CollaborationConfig) => void;
|
|
18
|
+
/** Fired when a session stops (host observability). */
|
|
19
|
+
onStop?: () => void;
|
|
20
|
+
/** Session factory seam (defaults to the real yjs + transport wiring). */
|
|
21
|
+
createSession?: CollabSessionFactory;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=collaboration-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-deps.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration-deps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IACjC,sEAAsE;IACtE,SAAS,EAAE,MAAM,SAAS,EAAE,CAAC;IAC7B,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACjD,8EAA8E;IAC9E,SAAS,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACjD,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACzC,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACrC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PptxSlide } from 'pptx-viewer-core';
|
|
2
|
+
import { CollaborationConfig } from 'pptx-viewer-shared';
|
|
3
|
+
export interface CollaborationEffectsHost {
|
|
4
|
+
getConfig: () => CollaborationConfig | undefined;
|
|
5
|
+
getSlides: () => PptxSlide[];
|
|
6
|
+
syncConfig: (config: CollaborationConfig | undefined) => void;
|
|
7
|
+
isPublishable: () => boolean;
|
|
8
|
+
flushLocalSlides: (slides: PptxSlide[]) => void;
|
|
9
|
+
stop: () => void;
|
|
10
|
+
rejoin: () => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Register the controller's effects. Call from the constructor, inside the
|
|
14
|
+
* component's reactive scope.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerCollaborationEffects(host: CollaborationEffectsHost): void;
|
|
17
|
+
//# sourceMappingURL=collaboration-effects.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-effects.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration-effects.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACjD,SAAS,EAAE,MAAM,SAAS,EAAE,CAAC;IAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9D,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAChD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAsBjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collaboration-provider.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EACX,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"collaboration-provider.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EACX,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,MAAM,oBAAoB,CAAC;AAG5B,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACpC,iEAAiE;IACjE,SAAS,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACrD,6EAA6E;IAC7E,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,uDAAuD;AACvD,KAAK,SAAS,GAAG,qBAAqB,CAAC,cAAc,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1F;;;;GAIG;AACH,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,SAAS,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAgE/B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PptxSlide } from 'pptx-viewer-core';
|
|
2
|
-
import { CollaborationConfig, YDocLike } from 'pptx-viewer-shared';
|
|
2
|
+
import { CollaborationConfig, YDocLike, YjsFactories } from 'pptx-viewer-shared';
|
|
3
3
|
export interface ObserveRemoteDeps {
|
|
4
4
|
isApplyingRemote: () => boolean;
|
|
5
5
|
setApplyingRemote: (value: boolean) => void;
|
|
@@ -7,6 +7,37 @@ export interface ObserveRemoteDeps {
|
|
|
7
7
|
applyRemoteSlides: (slides: PptxSlide[]) => void;
|
|
8
8
|
scheduleWriteBack: (config: CollaborationConfig) => void;
|
|
9
9
|
}
|
|
10
|
+
/** The subset of {@link ObserveRemoteDeps} needed by {@link adoptDocSlidesAfterLoad}. */
|
|
11
|
+
export type AdoptDocSlidesDeps = Pick<ObserveRemoteDeps, 'setApplyingRemote' | 'setLastSynced' | 'applyRemoteSlides'>;
|
|
12
|
+
/**
|
|
13
|
+
* Re-adopt the shared doc's slides after a local content load. The load
|
|
14
|
+
* pipeline applies its parsed deck to viewer state unconditionally, so when a
|
|
15
|
+
* late joiner's bootstrap deck finishes parsing AFTER the room's slides were
|
|
16
|
+
* already synced in, the synced state is silently clobbered and, with the doc
|
|
17
|
+
* itself unchanged, the observer never re-fires. Called by the load pipeline
|
|
18
|
+
* right after it commits a parsed deck: when the room already has slides they
|
|
19
|
+
* win; an empty room means this client is the seeder and its loaded deck
|
|
20
|
+
* stands (written into the doc by the normal gated publish path).
|
|
21
|
+
*/
|
|
22
|
+
export declare function adoptDocSlidesAfterLoad(ydoc: YDocLike, deps: AdoptDocSlidesDeps): void;
|
|
10
23
|
/** Register the remote-slide observer; returns the unobserve function. */
|
|
11
24
|
export declare function observeRemoteSlides(ydoc: YDocLike, config: CollaborationConfig, deps: ObserveRemoteDeps): () => void;
|
|
25
|
+
/** Everything `publishLocalSlides` needs from the controller's private state. */
|
|
26
|
+
export interface PublishLocalSlidesInput {
|
|
27
|
+
slides: PptxSlide[];
|
|
28
|
+
ydoc: YDocLike | null;
|
|
29
|
+
factories: YjsFactories | null;
|
|
30
|
+
/** True while a remote apply is in flight; publishing then would echo it. */
|
|
31
|
+
applyingRemote: boolean;
|
|
32
|
+
role: CollaborationConfig['role'];
|
|
33
|
+
/** JSON of the last published slides, for the echo dedupe. */
|
|
34
|
+
lastSynced: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Granular local -> doc publish, the write-side sibling of
|
|
38
|
+
* {@link observeRemoteSlides}. Returns the new `lastSynced` value when it
|
|
39
|
+
* wrote, or null when the write was skipped (no doc, read-only viewer, a
|
|
40
|
+
* remote apply in flight, or the slides are unchanged).
|
|
41
|
+
*/
|
|
42
|
+
export declare function publishLocalSlides(input: PublishLocalSlidesInput): string | null;
|
|
12
43
|
//# sourceMappingURL=collaboration-remote-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collaboration-remote-sync.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration-remote-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"collaboration-remote-sync.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration-remote-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQtF,MAAM,WAAW,iBAAiB;IACjC,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACjD,iBAAiB,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACzD;AAED,yFAAyF;AACzF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACpC,iBAAiB,EACjB,mBAAmB,GAAG,eAAe,GAAG,mBAAmB,CAC3D,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAatF;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,iBAAiB,GACrB,MAAM,IAAI,CAgBZ;AAED,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAClC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI,CAehF"}
|
|
@@ -1,25 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { CollabSessionFactory } from './collaboration-session';
|
|
4
|
-
export interface CollaborationDeps {
|
|
5
|
-
/** Read the current local slides (broadcast granularly on change). */
|
|
6
|
-
getSlides: () => PptxSlide[];
|
|
7
|
-
/** Apply a remote peer's slide snapshot into the editable slides. */
|
|
8
|
-
applyRemoteSlides: (slides: PptxSlide[]) => void;
|
|
9
|
-
/** Live host `collaboration` config; watched to auto start/stop a session. */
|
|
10
|
-
getConfig: () => CollaborationConfig | undefined;
|
|
11
|
-
/** Return the loaded source bytes for elected-writer (role 'owner') write-back. */
|
|
12
|
-
getSourceBytes?: () => Uint8Array | null;
|
|
13
|
-
/** Slide canvas width/height (unscaled px), used to clamp incoming cursor coordinates. */
|
|
14
|
-
getCanvasWidth?: () => number | undefined;
|
|
15
|
-
getCanvasHeight?: () => number | undefined;
|
|
16
|
-
/** Fired when a session starts (host observability). */
|
|
17
|
-
onStart?: (config: CollaborationConfig) => void;
|
|
18
|
-
/** Fired when a session stops (host observability). */
|
|
19
|
-
onStop?: () => void;
|
|
20
|
-
/** Session factory seam (defaults to the real yjs + transport wiring). */
|
|
21
|
-
createSession?: CollabSessionFactory;
|
|
22
|
-
}
|
|
1
|
+
import { CollaborationConfig, CollaborationLivePatcher, ConnectionStatus, RemoteCursor, SanitizedPresence } from 'pptx-viewer-shared';
|
|
2
|
+
import { CollaborationDeps } from './collaboration-deps';
|
|
23
3
|
/**
|
|
24
4
|
* The collaboration controller. Construct it once during component setup: it
|
|
25
5
|
* registers the two effects (auto start/stop from the config, granular publish
|
|
@@ -29,6 +9,8 @@ export declare class CollaborationController {
|
|
|
29
9
|
#private;
|
|
30
10
|
/** Live connection status (reactive). */
|
|
31
11
|
status: ConnectionStatus;
|
|
12
|
+
/** Interim Y.Doc channel for in-flight inline text (dormant when stopped). */
|
|
13
|
+
readonly livePatcher: CollaborationLivePatcher;
|
|
32
14
|
constructor(deps: CollaborationDeps);
|
|
33
15
|
/** Whether a session is live (reactive). */
|
|
34
16
|
get active(): boolean;
|
|
@@ -48,6 +30,14 @@ export declare class CollaborationController {
|
|
|
48
30
|
setActiveSlide(index: number): void;
|
|
49
31
|
/** Follow the given peer's active slide, or `null` to stop following. */
|
|
50
32
|
followUser(clientId: number | null): void;
|
|
33
|
+
/**
|
|
34
|
+
* Re-adopt the shared doc's slides after a local content load committed a
|
|
35
|
+
* parsed deck to viewer state (see `adoptDocSlidesAfterLoad`). The load
|
|
36
|
+
* pipeline calls this synchronously right after it applies, i.e. before the
|
|
37
|
+
* publish effect can flush the freshly loaded slides into the doc, so a
|
|
38
|
+
* late joiner's bootstrap deck never clobbers the room's synced content.
|
|
39
|
+
*/
|
|
40
|
+
adoptDocAfterLoad(): void;
|
|
51
41
|
/** Start (or restart) a session with the given config (dialog-driven). */
|
|
52
42
|
start(config: CollaborationConfig): Promise<void>;
|
|
53
43
|
stop(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collaboration.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collaboration.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/collaboration.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACX,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAGjB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAc9D;;;;GAIG;AACH,qBAAa,uBAAuB;;IACnC,yCAAyC;IACzC,MAAM,mBAA4C;IAClD,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAoC;gBA0BtE,IAAI,EAAE,iBAAiB;IAuBnC,4CAA4C;IAC5C,IAAI,MAAM,IAAI,OAAO,CAEpB;IACD,+FAA+F;IAC/F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,sDAAsD;IACtD,IAAI,OAAO,IAAI,YAAY,EAAE,CAE5B;IACD,sDAAsD;IACtD,IAAI,eAAe,IAAI,iBAAiB,EAAE,CAEzC;IACD,+DAA+D;IAC/D,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,+EAA+E;IAC/E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAGhE,oEAAoE;IACpE,YAAY,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAGpF,uEAAuE;IACvE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGnC,yEAAyE;IACzE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIzC;;;;;;OAMG;IACH,iBAAiB,IAAI,IAAI;IA8CzB,0EAA0E;IACpE,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsFvD,IAAI,IAAI,IAAI;CAoBZ"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PptxElement } from 'pptx-viewer-core';
|
|
1
2
|
import { BroadcastConfig, BroadcastDefaults, CollaborationConfig, ConnectionStatus, RemoteCursor, SanitizedPresence } from 'pptx-viewer-shared';
|
|
2
3
|
import { Snippet } from 'svelte';
|
|
3
4
|
import { ShareDefaults } from './share-helpers';
|
|
@@ -58,6 +59,17 @@ export interface CollaborationCursorsProps {
|
|
|
58
59
|
/** Current canvas zoom factor; cursor positions scale by this. */
|
|
59
60
|
zoom: number;
|
|
60
61
|
}
|
|
62
|
+
/** Props for the remote-selection overlay. */
|
|
63
|
+
export interface RemoteSelectionOverlayProps {
|
|
64
|
+
/** Remote collaborators' presence (selection + active slide), excludes self. */
|
|
65
|
+
presences: SanitizedPresence[];
|
|
66
|
+
/** Elements on the active slide; selected ids resolve against these. */
|
|
67
|
+
elements: PptxElement[];
|
|
68
|
+
/** The current slide index; only peers on this slide are drawn. */
|
|
69
|
+
activeSlideIndex: number;
|
|
70
|
+
/** Current canvas zoom factor; element geometry scales by this. */
|
|
71
|
+
zoom: number;
|
|
72
|
+
}
|
|
61
73
|
/** Props for the connection status pill. */
|
|
62
74
|
export interface CollaborationStatusIndicatorProps {
|
|
63
75
|
/** Current connection status. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../../src/viewer/collab/components/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;GAIG;AAEH,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAChC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAChC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,mDAAmD;IACnD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACpC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,gEAAgE;IAChE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,2DAA2D;IAC3D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACzC,qEAAqE;IACrE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,4CAA4C;AAC5C,MAAM,WAAW,iCAAiC;IACjD,iCAAiC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IAClC,mDAAmD;IACnD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,sDAAsD;IACtD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C"}
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../../src/viewer/collab/components/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACX,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;GAIG;AAEH,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAChC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAChC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,mDAAmD;IACnD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACpC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,gEAAgE;IAChE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,2DAA2D;IAC3D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACzC,qEAAqE;IACrE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,8CAA8C;AAC9C,MAAM,WAAW,2BAA2B;IAC3C,gFAAgF;IAChF,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,4CAA4C;AAC5C,MAAM,WAAW,iCAAiC;IACjD,iCAAiC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IAClC,mDAAmD;IACnD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,sDAAsD;IACtD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PptxElement } from 'pptx-viewer-core';
|
|
2
|
+
import { SanitizedPresence } from 'pptx-viewer-shared';
|
|
3
|
+
/**
|
|
4
|
+
* remote-selection.ts: pure resolution logic for `RemoteSelectionOverlay`.
|
|
5
|
+
* Kept in a plain `.ts` module (not inside the SFC) per repo convention:
|
|
6
|
+
* SFCs stay thin presentation, logic lives in lintable TypeScript files.
|
|
7
|
+
*/
|
|
8
|
+
/** A single resolved remote selection box, in unscaled slide coordinates. */
|
|
9
|
+
export interface RemoteSelectionBox {
|
|
10
|
+
/** Stable key (peer clientId + element id). */
|
|
11
|
+
key: string;
|
|
12
|
+
/** Peer display name shown in the label chip. */
|
|
13
|
+
userName: string;
|
|
14
|
+
/** Outline + chip colour. */
|
|
15
|
+
color: string;
|
|
16
|
+
/** Unscaled slide-space geometry of the selected element. */
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve every remote peer's selection on the active slide into drawable
|
|
24
|
+
* boxes. Only peers whose `activeSlideIndex` matches the current slide are
|
|
25
|
+
* considered, and only selected ids that resolve to an element on the slide
|
|
26
|
+
* produce a box.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveRemoteSelectionBoxes(presences: readonly SanitizedPresence[], elements: readonly PptxElement[], activeSlideIndex: number): RemoteSelectionBox[];
|
|
29
|
+
//# sourceMappingURL=remote-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-selection.d.ts","sourceRoot":"","sources":["../../../../src/viewer/collab/components/remote-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;GAIG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IAClC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAC1C,SAAS,EAAE,SAAS,iBAAiB,EAAE,EACvC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,gBAAgB,EAAE,MAAM,GACtB,kBAAkB,EAAE,CAyBtB"}
|
|
@@ -1,31 +1,10 @@
|
|
|
1
|
-
import { CollaborationConfig, JoinSessionFields, buildJoinCollaborationConfig, canJoinCollaborationSession } from 'pptx-viewer-shared';
|
|
2
|
-
/** The share form's editable fields. */
|
|
3
|
-
export interface ShareFormFields {
|
|
4
|
-
roomId: string;
|
|
5
|
-
userName: string;
|
|
6
|
-
serverUrl: string;
|
|
7
|
-
}
|
|
8
|
-
/** Optional seed values for the share start form. */
|
|
9
|
-
export interface ShareDefaults {
|
|
10
|
-
roomId?: string;
|
|
11
|
-
userName?: string;
|
|
12
|
-
serverUrl?: string;
|
|
13
|
-
}
|
|
14
|
-
/** Seed the form fields from the (optional) host-supplied defaults. */
|
|
15
|
-
export declare function seedShareFields(defaults?: ShareDefaults): ShareFormFields;
|
|
16
1
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
2
|
+
* Thin re-export shim -> `pptx-viewer-shared`.
|
|
3
|
+
*
|
|
4
|
+
* The Share dialog form helpers (seeding, validity, and CollaborationConfig
|
|
5
|
+
* assembly) now live in `pptx-viewer-shared` (`render/share-form`). This shim
|
|
6
|
+
* preserves the historical import surface for `ShareDialog.svelte`.
|
|
20
7
|
*/
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
export declare function isPeerToPeerShare(serverUrl: string): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Assemble a {@link CollaborationConfig} from the (trimmed) form fields, or
|
|
26
|
-
* `null` when the form is incomplete.
|
|
27
|
-
*/
|
|
28
|
-
export declare function buildShareConfig(fields: ShareFormFields): CollaborationConfig | null;
|
|
29
|
-
export { buildJoinCollaborationConfig as buildJoinConfig, canJoinCollaborationSession as canJoinShare, };
|
|
30
|
-
export type { JoinSessionFields };
|
|
8
|
+
export type { JoinSessionFields, ShareDefaults, ShareFormFields } from 'pptx-viewer-shared';
|
|
9
|
+
export { buildJoinConfig, buildShareConfig, canJoinShare, canStartShare, isPeerToPeerShare, seedShareFields, } from 'pptx-viewer-shared';
|
|
31
10
|
//# sourceMappingURL=share-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share-helpers.d.ts","sourceRoot":"","sources":["../../../../src/viewer/collab/components/share-helpers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"share-helpers.d.ts","sourceRoot":"","sources":["../../../../src/viewer/collab/components/share-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,GACf,MAAM,oBAAoB,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* transport/session seams, and the shared config types re-exported for hosts.
|
|
4
4
|
*/
|
|
5
5
|
export { CollaborationController } from './collaboration.svelte';
|
|
6
|
-
export type { CollaborationDeps } from './collaboration
|
|
6
|
+
export type { CollaborationDeps } from './collaboration-deps';
|
|
7
7
|
export { CollaborationDialogsState } from './collaboration-dialogs.svelte';
|
|
8
8
|
export type { ShareDefaultsInput } from './collaboration-dialogs.svelte';
|
|
9
9
|
export { createDefaultSession } from './collaboration-session';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/collab/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PptxElement, PptxSection, PptxSlide, TextSegment } from 'pptx-viewer-core';
|
|
2
|
-
import { CanvasSize, RenderParagraph, ResizeHandleId, SnapLine, ToolbarActionId } from 'pptx-viewer-shared';
|
|
1
|
+
import { PptxElement, PptxSection, PptxSlide, ShapeStyle, TextSegment } from 'pptx-viewer-core';
|
|
2
|
+
import { CanvasSize, ElementAnimationState, RenderParagraph, ResizeHandleId, SnapLine, ToolbarActionId } from 'pptx-viewer-shared';
|
|
3
3
|
import { EditorController } from '../editor/editor-controller.svelte';
|
|
4
4
|
import { EditorMarqueeRect } from '../editor/editor-selection-gestures';
|
|
5
5
|
import { EditorState } from '../editor/editor-state.svelte';
|
|
@@ -34,6 +34,21 @@ export interface ElementRendererProps {
|
|
|
34
34
|
interactive?: boolean;
|
|
35
35
|
/** Whether inherited layout/master nodes participate in pointer editing. */
|
|
36
36
|
editTemplateMode?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The enclosing group's fill (`GroupPptxElement.groupFill`), passed down by a
|
|
39
|
+
* group's render branch so a child painted with `a:grpFill`
|
|
40
|
+
* (`fillMode === 'group'`) inherits the group's resolved fill.
|
|
41
|
+
*/
|
|
42
|
+
parentGroupFill?: ShapeStyle;
|
|
43
|
+
/**
|
|
44
|
+
* Native-animation playback state for this element, present only during a
|
|
45
|
+
* running presentation. Drives the staged chart / SmartArt build reveal and
|
|
46
|
+
* the `p:animClr` fill / stroke relinquish; mirrors React's / Vue's
|
|
47
|
+
* per-element `animationState`. Absent (undefined) in editor / read-only
|
|
48
|
+
* rendering (element renderers read it from the element-states context, so it
|
|
49
|
+
* is optional here and defaulted per renderer).
|
|
50
|
+
*/
|
|
51
|
+
animationState?: ElementAnimationState;
|
|
37
52
|
ontablecellcommit?: (elementId: string, rowIndex: number, cellIndex: number, text: string) => void;
|
|
38
53
|
onsmartartnodecommit?: (elementId: string, nodeId: string, text: string) => void;
|
|
39
54
|
onsmartartnodefill?: (elementId: string, nodeId: string, fill: string) => void;
|
|
@@ -62,6 +77,51 @@ export interface SlideStageProps {
|
|
|
62
77
|
onsmartartnodecommit?: (elementId: string, nodeId: string, text: string) => void;
|
|
63
78
|
onsmartartnodefill?: (elementId: string, nodeId: string, fill: string) => void;
|
|
64
79
|
}
|
|
80
|
+
export interface SlideCanvasProps {
|
|
81
|
+
slide: PptxSlide | undefined;
|
|
82
|
+
canvasSize: CanvasSize;
|
|
83
|
+
mediaDataUrls: Map<string, string>;
|
|
84
|
+
/** Effective scale (fit-to-viewport x user zoom), pre-computed by the host. */
|
|
85
|
+
scale: number;
|
|
86
|
+
/** True only on the live presentation stage; see `SlideStageProps.presenting`. */
|
|
87
|
+
presenting?: boolean;
|
|
88
|
+
/** True while in-place editing is available; gates the pointer handlers and the editing cursor/class. */
|
|
89
|
+
editingActive?: boolean;
|
|
90
|
+
editTemplateMode?: boolean;
|
|
91
|
+
ontablecellcommit?: (elementId: string, rowIndex: number, cellIndex: number, text: string) => void;
|
|
92
|
+
onsmartartnodecommit?: (elementId: string, nodeId: string, text: string) => void;
|
|
93
|
+
onsmartartnodefill?: (elementId: string, nodeId: string, fill: string) => void;
|
|
94
|
+
/** Reports the stage-holder node to the host on mount/teardown (editing hit-surface, export capture anchor). */
|
|
95
|
+
onstageholder?: (el: HTMLDivElement | null) => void;
|
|
96
|
+
onstagepointerdown?: (event: PointerEvent) => void;
|
|
97
|
+
onstagepointermove?: (event: PointerEvent) => void;
|
|
98
|
+
onstagedblclick?: (event: MouseEvent) => void;
|
|
99
|
+
onstagecontextmenu?: (event: MouseEvent) => void;
|
|
100
|
+
/** Fired on any stage click; the host wires this to advance presentation playback. */
|
|
101
|
+
onstageclick?: (event: MouseEvent) => void;
|
|
102
|
+
/**
|
|
103
|
+
* True while the AI panel is picking an element: the next element click(s)
|
|
104
|
+
* become the assistant's focus (highlighted) instead of selecting / editing.
|
|
105
|
+
*/
|
|
106
|
+
aiPickMode?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* True while a running AI tool is active: the stage marks itself
|
|
109
|
+
* `data-pptx-ai-active` so element colour changes tween while the assistant
|
|
110
|
+
* works (see AiFocusHighlightOverlay's tween rule).
|
|
111
|
+
*/
|
|
112
|
+
aiActive?: boolean;
|
|
113
|
+
/** Route a picked canvas element to the AI focus (pick mode only). */
|
|
114
|
+
onaipickelement?: (elementId: string) => void;
|
|
115
|
+
/**
|
|
116
|
+
* Overlay content layered above the slide (selection/editor layer, ink
|
|
117
|
+
* drawing, alignment guides, presentation annotations, collaboration
|
|
118
|
+
* cursors, transition overlay, ...). Rendered inside the same
|
|
119
|
+
* fixed-size, scaled stage-holder as the slide itself. Kept out of this
|
|
120
|
+
* component's own props (rather than a fixed list of overlay slots) so it
|
|
121
|
+
* stays free of the live editor/controller instances those overlays need.
|
|
122
|
+
*/
|
|
123
|
+
children?: import('svelte').Snippet;
|
|
124
|
+
}
|
|
65
125
|
export interface ViewerToolbarProps {
|
|
66
126
|
/** Active slide (0-based). */
|
|
67
127
|
current: number;
|
|
@@ -141,6 +201,8 @@ export interface InlineTextEditorProps {
|
|
|
141
201
|
/** Stage scale (screen px per element px). */
|
|
142
202
|
scale: number;
|
|
143
203
|
spellCheck?: boolean;
|
|
204
|
+
/** Called with the edited plain text on every keystroke (live preview only). */
|
|
205
|
+
oninput?: (text: string) => void;
|
|
144
206
|
/** Called with the edited plain text on commit (only when it changed). */
|
|
145
207
|
oncommit: (text: string) => void;
|
|
146
208
|
/** Called after the surface closes (commit or cancel). */
|
|
@@ -159,6 +221,10 @@ export interface ElementContextMenuProps {
|
|
|
159
221
|
x: number;
|
|
160
222
|
y: number;
|
|
161
223
|
editor: EditorState;
|
|
224
|
+
/** "Ask AI about this" action (shown only when the host enables the `ai` prop). */
|
|
225
|
+
onaskai?: () => void;
|
|
226
|
+
/** "Fix with AI" action (shown only when the host enables the `ai` prop). */
|
|
227
|
+
onfixai?: () => void;
|
|
162
228
|
onclose: () => void;
|
|
163
229
|
}
|
|
164
230
|
export interface ThumbnailRailProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ export interface RibbonProps {
|
|
|
18
18
|
findReplace: FindReplaceState;
|
|
19
19
|
/** Slide canvas size (px); the Insert tab centres new charts/media/SmartArt/etc. on it. */
|
|
20
20
|
canvasSize: CanvasSize;
|
|
21
|
+
/** Read-only deck: the full ribbon still renders (React parity) but a
|
|
22
|
+
read-only badge shows in the primary row and edits are inert. */
|
|
23
|
+
readOnly?: boolean;
|
|
21
24
|
/** Compact nav row (always visible): active slide (0-based) / total. */
|
|
22
25
|
current: number;
|
|
23
26
|
total: number;
|
|
@@ -52,6 +55,10 @@ export interface RibbonProps {
|
|
|
52
55
|
chromeUi?: ChromeUiState;
|
|
53
56
|
/** Whether live subtitles are currently enabled (Present dropdown checkmark). */
|
|
54
57
|
subtitlesEnabled?: boolean;
|
|
58
|
+
/** Toggle the AI assistant panel. Only wired when the viewer's `ai` prop is set. */
|
|
59
|
+
onai?: () => void;
|
|
60
|
+
/** Whether the AI assistant panel is currently open (primary-row toggle state). */
|
|
61
|
+
aiActive?: boolean;
|
|
55
62
|
/** Toolbar buttons/ribbon tabs to hide; see `PowerPointViewerProps.hiddenActions`. */
|
|
56
63
|
hiddenActions?: ToolbarActionId[];
|
|
57
64
|
/** Slide Show tab actions: enter presentation from slide 0 or the current slide. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ribbon-types.d.ts","sourceRoot":"","sources":["../../../../src/viewer/components/ribbon/ribbon-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,MAAM,EAAE,WAAW,CAAC;IACpB,4FAA4F;IAC5F,WAAW,EAAE,gBAAgB,CAAC;IAC9B,2FAA2F;IAC3F,UAAU,EAAE,UAAU,CAAC;IAEvB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+EAA+E;IAC/E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sFAAsF;IACtF,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,oFAAoF;IACpF,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,mBAAmB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,IAAI,CAAC;IAEtC,8EAA8E;IAC9E,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpE,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;;OAGG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IAErD,kEAAkE;IAClE,WAAW,CAAC,EAAE,iBAAiB,CAAC;CAChC"}
|
|
1
|
+
{"version":3,"file":"ribbon-types.d.ts","sourceRoot":"","sources":["../../../../src/viewer/components/ribbon/ribbon-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,MAAM,EAAE,WAAW,CAAC;IACpB,4FAA4F;IAC5F,WAAW,EAAE,gBAAgB,CAAC;IAC9B,2FAA2F;IAC3F,UAAU,EAAE,UAAU,CAAC;IAEvB;wEACoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+EAA+E;IAC/E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,oFAAoF;IACpF,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,mBAAmB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,IAAI,CAAC;IAEtC,8EAA8E;IAC9E,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpE,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;;OAGG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IAErD,kEAAkE;IAClE,WAAW,CAAC,EAAE,iBAAiB,CAAC;CAChC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component } from 'svelte';
|
|
2
|
+
import { SlideCanvasProps, ViewerToolbarProps } from './props';
|
|
3
|
+
import { RibbonProps } from './ribbon/ribbon-types';
|
|
4
|
+
/**
|
|
5
|
+
* Explicitly-typed public exports of the standalone view components.
|
|
6
|
+
*
|
|
7
|
+
* Same rationale as `PowerPointViewer` in `../component.ts`: `svelte-check`
|
|
8
|
+
* types `.svelte` imports precisely, but the plain TypeScript pass that emits
|
|
9
|
+
* the published declaration files resolves `.svelte` modules through a loose
|
|
10
|
+
* ambient shim (`src/shims-svelte.d.ts`), and the post-build Rollup
|
|
11
|
+
* declaration bundling cannot resolve a raw `.svelte` specifier at all (no
|
|
12
|
+
* `.svelte.d.ts` is emitted, which broke the library build on CI). Re-export
|
|
13
|
+
* through annotated constants so the published `.d.ts` is fully typed and
|
|
14
|
+
* free of `.svelte` specifiers.
|
|
15
|
+
*/
|
|
16
|
+
export declare const Ribbon: Component<RibbonProps>;
|
|
17
|
+
export declare const ViewerToolbar: Component<ViewerToolbarProps>;
|
|
18
|
+
export declare const SlideCanvas: Component<SlideCanvasProps>;
|
|
19
|
+
//# sourceMappingURL=typed-exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-exports.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/typed-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKzD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,WAAW,CAAwD,CAAC;AAEnG,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,kBAAkB,CACW,CAAC;AAEpE,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CACW,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { PptxSlide } from 'pptx-viewer-core';
|
|
2
|
+
import { CollaborationLivePatcher } from 'pptx-viewer-shared';
|
|
1
3
|
export interface EditorControllerDeps {
|
|
2
4
|
getScale(): number;
|
|
3
5
|
getCurrent(): number;
|
|
@@ -12,5 +14,18 @@ export interface EditorControllerDeps {
|
|
|
12
14
|
axis: 'h' | 'v';
|
|
13
15
|
position: number;
|
|
14
16
|
}[];
|
|
17
|
+
/**
|
|
18
|
+
* Transform inline-editor text at commit time (File > Options > Proofing
|
|
19
|
+
* AutoCorrect); identity when unset.
|
|
20
|
+
*/
|
|
21
|
+
transformCommittedText?(text: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Collaboration live-preview channel. Inline text only reaches the slides
|
|
24
|
+
* state on commit, so peers saw nothing while a peer typed; each keystroke is
|
|
25
|
+
* published through this instead. Omit outside a collaborative viewer.
|
|
26
|
+
*/
|
|
27
|
+
getLivePatcher?(): CollaborationLivePatcher | undefined;
|
|
28
|
+
/** The slide the inline-edited element belongs to (live-preview lookup). */
|
|
29
|
+
getActiveSlide?(): PptxSlide | undefined;
|
|
15
30
|
}
|
|
16
31
|
//# sourceMappingURL=editor-controller-deps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-controller-deps.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller-deps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACpC,QAAQ,IAAI,MAAM,CAAC;IACnB,UAAU,IAAI,MAAM,CAAC;IACrB,aAAa,IAAI,OAAO,CAAC;IACzB,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC;IAC/B,WAAW,IAAI,WAAW,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,aAAa,CAAC,IAAI,OAAO,CAAC;IAC1B,cAAc,CAAC,IAAI,OAAO,CAAC;IAC3B,SAAS,CAAC,IAAI,SAAS;QAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"editor-controller-deps.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACpC,QAAQ,IAAI,MAAM,CAAC;IACnB,UAAU,IAAI,MAAM,CAAC;IACrB,aAAa,IAAI,OAAO,CAAC;IACzB,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC;IAC/B,WAAW,IAAI,WAAW,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,aAAa,CAAC,IAAI,OAAO,CAAC;IAC1B,cAAc,CAAC,IAAI,OAAO,CAAC;IAC3B,SAAS,CAAC,IAAI,SAAS;QAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D;;;OAGG;IACH,sBAAsB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C;;;;OAIG;IACH,cAAc,CAAC,IAAI,wBAAwB,GAAG,SAAS,CAAC;IACxD,4EAA4E;IAC5E,cAAc,CAAC,IAAI,SAAS,GAAG,SAAS,CAAC;CACzC"}
|
|
@@ -26,6 +26,11 @@ export declare class EditorController {
|
|
|
26
26
|
onKeyDown: (event: KeyboardEvent) => void;
|
|
27
27
|
/** Open the inline text editor over `id` when the element carries text. */
|
|
28
28
|
enterInlineEdit(id: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Mirror the in-progress inline text to collaborators. Touches no editor
|
|
31
|
+
* state or history: the commit path stays the single source of truth.
|
|
32
|
+
*/
|
|
33
|
+
previewInline(id: string, text: string): void;
|
|
29
34
|
/** Commit the inline editor's text onto the element and close it. */
|
|
30
35
|
commitInline(id: string, text: string): void;
|
|
31
36
|
/** Close the inline editor without further mutation. */
|