pptx-angular-viewer 1.17.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +2 -2
- package/fesm2022/pptx-angular-viewer.mjs +4040 -2378
- package/fesm2022/pptx-angular-viewer.mjs.map +1 -1
- package/package.json +2 -2
- package/pptx-angular-viewer.css +1 -1
- package/types/pptx-angular-viewer.d.ts +250 -35
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { Signal, WritableSignal, OnDestroy, OnInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
|
|
3
1
|
import * as pptx_viewer_core from 'pptx-viewer-core';
|
|
4
|
-
import { PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationDirection, PptxAnimationRepeatMode, PptxAnimationSequence, PptxAnimationTimingCurve, PptxAnimationTrigger, TablePptxElement, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, InkPptxElement, PptxComment, PptxChartType, PptxTheme, PptxSlideMaster, PptxCoreProperties, PptxCustomProperty, PptxHeaderFooter, ParsedSignature, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, PptxCustomShow, PptxPresentationProperties, PptxThemePreset, Model3DPptxElement, ZoomPptxElement, PptxSlideTransition, ChartPptxElement, SmartArtPptxElement, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, SignatureStatus, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxChartMarkerSymbol, PptxSmartArtNode, SmartArtLayoutType, PptxSmartArtNodeStyle, MediaCaptionTrack, MediaPptxElement, PptxMediaType } from 'pptx-viewer-core';
|
|
2
|
+
import { PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationDirection, PptxAnimationRepeatMode, PptxAnimationSequence, PptxAnimationTimingCurve, PptxAnimationTrigger, TablePptxElement, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, InkPptxElement, PptxComment, PptxChartType, PptxTheme, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxCoreProperties, PptxCustomProperty, PptxHeaderFooter, ParsedSignature, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, PptxCustomShow, PptxPresentationProperties, PptxThemePreset, MasterViewTab, Model3DPptxElement, ZoomPptxElement, PptxSlideTransition, ChartPptxElement, SmartArtPptxElement, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, SignatureStatus, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxChartMarkerSymbol, PptxSmartArtNode, SmartArtLayoutType, PptxSmartArtNodeStyle, MediaCaptionTrack, MediaPptxElement, PptxMediaType } from 'pptx-viewer-core';
|
|
5
3
|
export { SWITCHABLE_LAYOUT_TYPES, addSmartArtNode, addSmartArtNodeAsChild, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, demoteSmartArtNode, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, updateSmartArtNodeText } from 'pptx-viewer-core';
|
|
4
|
+
import * as _angular_core from '@angular/core';
|
|
5
|
+
import { Signal, WritableSignal, OnDestroy, OnInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
|
|
6
6
|
import * as pptx_angular_viewer from 'pptx-angular-viewer';
|
|
7
7
|
import { TranslateService } from '@ngx-translate/core';
|
|
8
8
|
import { Options } from 'html2canvas-pro';
|
|
@@ -254,10 +254,12 @@ type CollaborationRole = 'owner' | 'collaborator' | 'viewer';
|
|
|
254
254
|
* any signaling server, which makes this mode usable from static hosting.
|
|
255
255
|
*/
|
|
256
256
|
type CollaborationTransport = 'websocket' | 'webrtc';
|
|
257
|
+
/** How the local user entered a collaboration session. */
|
|
258
|
+
type CollaborationSessionIntent = 'create' | 'join';
|
|
257
259
|
/**
|
|
258
260
|
* Real-time collaboration configuration.
|
|
259
261
|
*
|
|
260
|
-
* The same shape is accepted by
|
|
262
|
+
* The same shape is accepted by every framework binding.
|
|
261
263
|
*/
|
|
262
264
|
interface CollaborationConfig {
|
|
263
265
|
/** Unique identifier for the collaboration room (alphanumeric, hyphens, underscores). */
|
|
@@ -285,6 +287,13 @@ interface CollaborationConfig {
|
|
|
285
287
|
authToken?: string;
|
|
286
288
|
/** Role in the session; defaults to `'collaborator'`. */
|
|
287
289
|
role?: CollaborationRole;
|
|
290
|
+
/**
|
|
291
|
+
* Whether this client created the room or joined an existing room. Providers
|
|
292
|
+
* do not use this value, but hosts can use it to avoid publishing local file
|
|
293
|
+
* bytes when handling a join request. Omitted values retain the legacy
|
|
294
|
+
* create-session behaviour.
|
|
295
|
+
*/
|
|
296
|
+
sessionIntent?: CollaborationSessionIntent;
|
|
288
297
|
/**
|
|
289
298
|
* Elected-writer write-back callback (Area 3 of the C3 hardening plan).
|
|
290
299
|
*
|
|
@@ -442,6 +451,44 @@ declare function buildPatternFillCss(style: ShapeStyle | undefined): {
|
|
|
442
451
|
/** A neutral CSS map (framework `CSSProperties` are structurally compatible). */
|
|
443
452
|
type CssStyleMap = Record<string, string | number>;
|
|
444
453
|
|
|
454
|
+
/**
|
|
455
|
+
* Visual effects composable — pure CSS computation for OOXML shape/image effects.
|
|
456
|
+
*
|
|
457
|
+
* Mirrors the React `pptx-viewer` effect layer (shape-visual-style.ts +
|
|
458
|
+
* color-core.ts + effect-dag-filters.ts) without any React/Vue runtime
|
|
459
|
+
* dependency. Everything here is a pure function so it can be unit-tested
|
|
460
|
+
* without mounting a component, then wired into `element-style.ts` /
|
|
461
|
+
* `ElementRenderer.vue` by the integrator.
|
|
462
|
+
*
|
|
463
|
+
* It covers, for shapes/connectors/images:
|
|
464
|
+
* - **Outer shadow** → CSS `box-shadow`
|
|
465
|
+
* - **Inner shadow** → CSS `inset` `box-shadow`
|
|
466
|
+
* - **Multi-layer shadow** → comma-joined `box-shadow` (from `shadows[]`)
|
|
467
|
+
* - **Outer glow** → CSS `filter: drop-shadow(...)` (simple path) and
|
|
468
|
+
* optional layered `box-shadow` (high-fidelity path)
|
|
469
|
+
* - **Soft edges / blur** → CSS `filter: blur(...)`
|
|
470
|
+
* - **Reflection** → Chromium `-webkit-box-reflect`
|
|
471
|
+
* - **Effect DAG** → CSS `filter` (grayscale/biLevel/lum/hsl/tint…),
|
|
472
|
+
* `opacity`, `mix-blend-mode`, + optional duotone
|
|
473
|
+
* `<filter>` SVG markup (high-fidelity path)
|
|
474
|
+
*
|
|
475
|
+
* Units/precedence match the React implementation: spatial values are already
|
|
476
|
+
* in px on `ShapeStyle` (pre-converted from EMU by core), angles are degrees,
|
|
477
|
+
* alpha is 0–1. The EMU constants are re-exported from core for callers that
|
|
478
|
+
* need to convert raw values themselves.
|
|
479
|
+
*
|
|
480
|
+
* @module viewer/composables/visual-effects
|
|
481
|
+
*/
|
|
482
|
+
|
|
483
|
+
/** Resolved parameters for a line-level (`a:ln`) outer shadow. */
|
|
484
|
+
interface LineShadowParams {
|
|
485
|
+
offsetX: number;
|
|
486
|
+
offsetY: number;
|
|
487
|
+
blur: number;
|
|
488
|
+
color: string;
|
|
489
|
+
opacity: number;
|
|
490
|
+
}
|
|
491
|
+
|
|
445
492
|
/**
|
|
446
493
|
* Text warp / WordArt logic — Vue port of the React
|
|
447
494
|
* `viewer/utils/warp-path-generators.ts` + `text-warp-classifier.ts`.
|
|
@@ -3126,6 +3173,17 @@ interface ResolvedFontVariant {
|
|
|
3126
3173
|
/** Object URL minted for this variant (must be revoked on cleanup). */
|
|
3127
3174
|
objectUrl?: string;
|
|
3128
3175
|
}
|
|
3176
|
+
/**
|
|
3177
|
+
* A font supplied by the host application. The package never ships fonts:
|
|
3178
|
+
* applications provide a licensed URL, data URL, or blob URL for their users.
|
|
3179
|
+
*/
|
|
3180
|
+
interface ViewerFontSource {
|
|
3181
|
+
family: string;
|
|
3182
|
+
src: string;
|
|
3183
|
+
format?: 'truetype' | 'opentype' | 'woff' | 'woff2';
|
|
3184
|
+
weight?: string | number;
|
|
3185
|
+
style?: 'normal' | 'italic';
|
|
3186
|
+
}
|
|
3129
3187
|
/**
|
|
3130
3188
|
* Factory the (impure) object-URL minting is delegated to, so the resolution
|
|
3131
3189
|
* logic stays pure and testable. The binding supplies a real implementation
|
|
@@ -3308,6 +3366,44 @@ declare function clampNotesFontSize(size: number): number;
|
|
|
3308
3366
|
/** Format a Date as a locale time string (HH:MM:SS). */
|
|
3309
3367
|
declare function formatTime(date: Date): string;
|
|
3310
3368
|
|
|
3369
|
+
interface PresentationSnapshot {
|
|
3370
|
+
slideIndex: number;
|
|
3371
|
+
buildStep: number;
|
|
3372
|
+
sequence: number;
|
|
3373
|
+
blackout: 'none' | 'black' | 'white';
|
|
3374
|
+
paused: boolean;
|
|
3375
|
+
elapsedMs: number;
|
|
3376
|
+
zoom?: PresentationZoomState;
|
|
3377
|
+
pointer?: PresentationPointerState;
|
|
3378
|
+
inkStrokes?: PresentationInkStroke[];
|
|
3379
|
+
caption?: string;
|
|
3380
|
+
subtitlesVisible?: boolean;
|
|
3381
|
+
}
|
|
3382
|
+
interface PresentationZoomState {
|
|
3383
|
+
scale: number;
|
|
3384
|
+
originX: number;
|
|
3385
|
+
originY: number;
|
|
3386
|
+
}
|
|
3387
|
+
type PresentationPointerTool = 'none' | 'laser' | 'pen' | 'highlighter' | 'eraser';
|
|
3388
|
+
interface PresentationPointerState {
|
|
3389
|
+
tool: PresentationPointerTool;
|
|
3390
|
+
x: number;
|
|
3391
|
+
y: number;
|
|
3392
|
+
color: string;
|
|
3393
|
+
}
|
|
3394
|
+
interface PresentationInkPoint {
|
|
3395
|
+
x: number;
|
|
3396
|
+
y: number;
|
|
3397
|
+
}
|
|
3398
|
+
interface PresentationInkStroke {
|
|
3399
|
+
id: string;
|
|
3400
|
+
slideIndex: number;
|
|
3401
|
+
tool: 'pen' | 'highlighter';
|
|
3402
|
+
color: string;
|
|
3403
|
+
width: number;
|
|
3404
|
+
points: PresentationInkPoint[];
|
|
3405
|
+
}
|
|
3406
|
+
|
|
3311
3407
|
/**
|
|
3312
3408
|
* smart-art-presets.ts: the SmartArt insert-gallery catalogue, shared across
|
|
3313
3409
|
* bindings. Pure data + types; consumed by each binding's insert dialog and
|
|
@@ -3528,6 +3624,41 @@ interface StrokeToInkElementOpts {
|
|
|
3528
3624
|
*/
|
|
3529
3625
|
declare function strokeToInkElement(opts: StrokeToInkElementOpts): InkPptxElement | null;
|
|
3530
3626
|
|
|
3627
|
+
/**
|
|
3628
|
+
* Ink rendering utilities for pressure-sensitive strokes and replay animation.
|
|
3629
|
+
*
|
|
3630
|
+
* Pressure sensitivity is approximated by splitting an SVG path into short
|
|
3631
|
+
* sub-segments, each rendered as a filled circle at that point's coordinates.
|
|
3632
|
+
* The radius of each circle varies according to the corresponding entry in the
|
|
3633
|
+
* `inkWidths` array.
|
|
3634
|
+
*
|
|
3635
|
+
* Replay animation uses SVG `stroke-dasharray` / `stroke-dashoffset` to
|
|
3636
|
+
* progressively reveal each stroke with a sequential delay.
|
|
3637
|
+
*
|
|
3638
|
+
* Framework-agnostic: only imports core types, so every binding (React, Vue,
|
|
3639
|
+
* Angular) consumes one copy instead of duplicating the maths.
|
|
3640
|
+
*
|
|
3641
|
+
* @module ink-rendering
|
|
3642
|
+
*/
|
|
3643
|
+
|
|
3644
|
+
/**
|
|
3645
|
+
* CSS properties for a single ink stroke's replay animation.
|
|
3646
|
+
*/
|
|
3647
|
+
interface InkStrokeAnimationStyle {
|
|
3648
|
+
/** Estimated path length for stroke-dasharray. */
|
|
3649
|
+
pathLength: number;
|
|
3650
|
+
/** Animation delay for this stroke. */
|
|
3651
|
+
animationDelay: string;
|
|
3652
|
+
/** Animation duration for this stroke. */
|
|
3653
|
+
animationDuration: string;
|
|
3654
|
+
/** The CSS animation shorthand value. */
|
|
3655
|
+
animation: string;
|
|
3656
|
+
/** Initial stroke-dasharray value. */
|
|
3657
|
+
strokeDasharray: string;
|
|
3658
|
+
/** Initial stroke-dashoffset value. */
|
|
3659
|
+
strokeDashoffset: string;
|
|
3660
|
+
}
|
|
3661
|
+
|
|
3531
3662
|
/**
|
|
3532
3663
|
* Pure helper logic for mobile chrome state, shared by every binding.
|
|
3533
3664
|
*
|
|
@@ -4012,6 +4143,22 @@ declare function fpsToFrameIntervalMs(fps: number): number;
|
|
|
4012
4143
|
*/
|
|
4013
4144
|
declare function segmentFrameCount(durationMs: number, fps: number): number;
|
|
4014
4145
|
|
|
4146
|
+
/**
|
|
4147
|
+
* Thin re-export shim → vendored `pptx-viewer-shared` (`render/embedded-fonts`).
|
|
4148
|
+
*
|
|
4149
|
+
* The pure embedded-font `@font-face` assembly (URL/format validation, XOR
|
|
4150
|
+
* de-obfuscation fallback, resolved-variant -> stylesheet/family-list build)
|
|
4151
|
+
* was extracted to shared and is consumed by every binding. This shim preserves
|
|
4152
|
+
* the historical Angular import surface.
|
|
4153
|
+
*
|
|
4154
|
+
* `EMBEDDED_FONTS_STYLE_ID` stays Angular-local: it is the DOM id of the managed
|
|
4155
|
+
* `<style>` element this binding injects, and is intentionally distinct from the
|
|
4156
|
+
* React binding's id.
|
|
4157
|
+
*/
|
|
4158
|
+
|
|
4159
|
+
/** DOM id of the managed `<style>` element the service injects into `<head>`. */
|
|
4160
|
+
declare const EMBEDDED_FONTS_STYLE_ID = "pptx-angular-embedded-fonts";
|
|
4161
|
+
|
|
4015
4162
|
declare class AccessibilityService {
|
|
4016
4163
|
/** Parsed slides of the current presentation. */
|
|
4017
4164
|
readonly slides: _angular_core.WritableSignal<PptxSlide[]>;
|
|
@@ -4545,6 +4692,10 @@ declare class LoadContentService {
|
|
|
4545
4692
|
readonly themeColorMap: _angular_core.WritableSignal<Record<string, string> | undefined>;
|
|
4546
4693
|
/** Slide masters (for placeholder/background resolution). */
|
|
4547
4694
|
readonly slideMasters: _angular_core.WritableSignal<PptxSlideMaster[]>;
|
|
4695
|
+
/** Notes master, including its editable element tree. */
|
|
4696
|
+
readonly notesMaster: _angular_core.WritableSignal<PptxNotesMaster | undefined>;
|
|
4697
|
+
/** Handout master, including its editable element tree. */
|
|
4698
|
+
readonly handoutMaster: _angular_core.WritableSignal<PptxHandoutMaster | undefined>;
|
|
4548
4699
|
/** Archive-path → displayable URL map for media + poster frames. */
|
|
4549
4700
|
readonly mediaDataUrls: _angular_core.WritableSignal<Map<string, string>>;
|
|
4550
4701
|
/** Embedded font data (name + binary) extracted from the presentation. */
|
|
@@ -4594,6 +4745,7 @@ type MobileBarSheet = 'slides' | 'inspector' | 'comments' | 'notes' | null;
|
|
|
4594
4745
|
interface BarAction {
|
|
4595
4746
|
key: NonNullable<MobileBarSheet> | 'insert';
|
|
4596
4747
|
labelKey: string;
|
|
4748
|
+
ariaLabelKey?: string;
|
|
4597
4749
|
/** SVG path data for the icon (24 × 24 view-box). */
|
|
4598
4750
|
svgPath: string;
|
|
4599
4751
|
disabled: boolean;
|
|
@@ -4649,14 +4801,17 @@ declare function isPresenterMessage(data: unknown): data is PresenterMessage;
|
|
|
4649
4801
|
*/
|
|
4650
4802
|
declare function parseAudienceNonce(): string | null;
|
|
4651
4803
|
declare class PresenterWindowService {
|
|
4804
|
+
readonly snapshot: _angular_core.WritableSignal<PresentationSnapshot>;
|
|
4652
4805
|
private audienceWindow;
|
|
4653
4806
|
private channel;
|
|
4654
4807
|
private pollTimer;
|
|
4808
|
+
private readyListener;
|
|
4655
4809
|
/** Per-session UUID. Regenerated each time openAudienceWindow is invoked. */
|
|
4656
4810
|
private sessionId;
|
|
4657
4811
|
private getChannel;
|
|
4658
4812
|
isAudienceWindowOpen(): boolean;
|
|
4659
4813
|
syncSlideToAudience(slideIndex: number): void;
|
|
4814
|
+
updateSnapshot(patch: Partial<PresentationSnapshot>): void;
|
|
4660
4815
|
closeAudienceWindow(): void;
|
|
4661
4816
|
/**
|
|
4662
4817
|
* Open the audience tab. Persists the PPTX bytes (if any) to IndexedDB, then
|
|
@@ -4664,6 +4819,8 @@ declare class PresenterWindowService {
|
|
|
4664
4819
|
* popup is blocked.
|
|
4665
4820
|
*/
|
|
4666
4821
|
openAudienceWindow(content: ArrayBuffer | Uint8Array | null, currentSlideIndex: number): boolean;
|
|
4822
|
+
/** Connect an audience tab to the presenter channel and announce readiness. */
|
|
4823
|
+
connectAudience(onSlide: (index: number) => void, onExit: () => void): () => void;
|
|
4667
4824
|
private disposeWindow;
|
|
4668
4825
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresenterWindowService, never>;
|
|
4669
4826
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PresenterWindowService>;
|
|
@@ -5736,7 +5893,7 @@ declare class ViewerInspectorPanelService {
|
|
|
5736
5893
|
/** Inspector content, but null on mobile once the user has swiped it away. */
|
|
5737
5894
|
readonly visibleInspectorKind: _angular_core.Signal<InspectorContent>;
|
|
5738
5895
|
/** Accessible-label translation key for the inspector host, by active content. */
|
|
5739
|
-
readonly inspectorLabel: _angular_core.Signal<"" | "pptx.toolbar.comments" | "pptx.accessibility.title" | "pptx.viewer.digitalSignatures" | "pptx.selectionPane.title" | "pptx.
|
|
5896
|
+
readonly inspectorLabel: _angular_core.Signal<"" | "pptx.toolbar.comments" | "pptx.accessibility.title" | "pptx.viewer.digitalSignatures" | "pptx.selectionPane.title" | "pptx.inspector.properties">;
|
|
5740
5897
|
/** Toggle a right-docked tool panel (clicking the active one closes it). */
|
|
5741
5898
|
togglePanel(panel: InspectorToolPanel): void;
|
|
5742
5899
|
/**
|
|
@@ -5829,6 +5986,7 @@ interface PresentationModeHost {
|
|
|
5829
5986
|
readonly sourceContent: () => Uint8Array | ArrayBuffer | null;
|
|
5830
5987
|
readonly canEdit: () => boolean;
|
|
5831
5988
|
readonly promptKeepAnnotations: (map: SlideAnnotationMap) => void;
|
|
5989
|
+
readonly applyRehearsalTimings: (timings: Record<number, number>) => void;
|
|
5832
5990
|
}
|
|
5833
5991
|
declare class ViewerPresentationModeService {
|
|
5834
5992
|
private readonly loader;
|
|
@@ -5840,6 +5998,14 @@ declare class ViewerPresentationModeService {
|
|
|
5840
5998
|
readonly presentingPresenter: _angular_core.WritableSignal<boolean>;
|
|
5841
5999
|
/** Epoch ms when presenter view started (drives the elapsed timer). */
|
|
5842
6000
|
readonly presenterStartTime: _angular_core.WritableSignal<number | null>;
|
|
6001
|
+
readonly rehearsing: _angular_core.WritableSignal<boolean>;
|
|
6002
|
+
readonly rehearsalPaused: _angular_core.WritableSignal<boolean>;
|
|
6003
|
+
readonly showRehearsalSummary: _angular_core.WritableSignal<boolean>;
|
|
6004
|
+
readonly rehearsalStartedAt: _angular_core.WritableSignal<number | null>;
|
|
6005
|
+
readonly slideStartedAt: _angular_core.WritableSignal<number | null>;
|
|
6006
|
+
readonly recordedTimings: _angular_core.WritableSignal<Record<number, number>>;
|
|
6007
|
+
private pauseStartedAt;
|
|
6008
|
+
private pausedOnSlideMs;
|
|
5843
6009
|
private host;
|
|
5844
6010
|
/** Wire the host accessors (called once from the component constructor). */
|
|
5845
6011
|
bind(host: PresentationModeHost): void;
|
|
@@ -5850,6 +6016,7 @@ declare class ViewerPresentationModeService {
|
|
|
5850
6016
|
* mounts as a result of `presenting` flipping true.
|
|
5851
6017
|
*/
|
|
5852
6018
|
present(): void;
|
|
6019
|
+
startRehearsal(): void;
|
|
5853
6020
|
/**
|
|
5854
6021
|
* Map a presentation-overlay index back to the full-deck `activeSlideIndex`.
|
|
5855
6022
|
* The overlay's index is relative to the (possibly custom-show-filtered)
|
|
@@ -5857,6 +6024,11 @@ declare class ViewerPresentationModeService {
|
|
|
5857
6024
|
* correct when the show closes.
|
|
5858
6025
|
*/
|
|
5859
6026
|
onPresentationIndexChange(index: number): void;
|
|
6027
|
+
toggleRehearsalPause(): void;
|
|
6028
|
+
closePresentation(): void;
|
|
6029
|
+
saveRehearsalTimings(): void;
|
|
6030
|
+
dismissRehearsalSummary(): void;
|
|
6031
|
+
private recordCurrentSlide;
|
|
5860
6032
|
/**
|
|
5861
6033
|
* Open a separate audience tab and hand off the deck via the shared
|
|
5862
6034
|
* IndexedDB store. Mirrors React's presenter "open audience window".
|
|
@@ -5925,6 +6097,8 @@ declare class ViewerZoomService {
|
|
|
5925
6097
|
declare class PowerPointViewerComponent {
|
|
5926
6098
|
/** PowerPoint content as Uint8Array (or ArrayBuffer). */
|
|
5927
6099
|
readonly content: _angular_core.InputSignal<ArrayBuffer | Uint8Array<ArrayBufferLike> | null>;
|
|
6100
|
+
/** Licensed fonts supplied by the host application. No fonts are bundled. */
|
|
6101
|
+
readonly fontsInput: _angular_core.InputSignal<ViewerFontSource[]>;
|
|
5928
6102
|
/** Whether editing actions are enabled. (Editor chrome not yet ported.) */
|
|
5929
6103
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
5930
6104
|
/** Optional class applied to the root element. */
|
|
@@ -6011,6 +6185,7 @@ declare class PowerPointViewerComponent {
|
|
|
6011
6185
|
private readonly smartArt3DSvc;
|
|
6012
6186
|
private readonly zoomTarget;
|
|
6013
6187
|
protected readonly presenterWindow: PresenterWindowService;
|
|
6188
|
+
private readonly destroyRef;
|
|
6014
6189
|
protected readonly dialogs: ViewerDialogsService;
|
|
6015
6190
|
private readonly compareSvc;
|
|
6016
6191
|
protected readonly xport: ViewerExportService;
|
|
@@ -6054,6 +6229,11 @@ declare class PowerPointViewerComponent {
|
|
|
6054
6229
|
protected readonly rootStyle: _angular_core.Signal<Record<string, string>>;
|
|
6055
6230
|
/** Slide-sorter grid overlay visibility. */
|
|
6056
6231
|
protected readonly showSorter: _angular_core.WritableSignal<boolean>;
|
|
6232
|
+
/** Full-canvas master editor visibility and active target. */
|
|
6233
|
+
protected readonly showMasterView: _angular_core.WritableSignal<boolean>;
|
|
6234
|
+
protected readonly masterViewTab: _angular_core.WritableSignal<MasterViewTab>;
|
|
6235
|
+
protected readonly activeMasterIndex: _angular_core.WritableSignal<number>;
|
|
6236
|
+
protected readonly activeLayoutIndex: _angular_core.WritableSignal<number | null>;
|
|
6057
6237
|
/** Whether the left slides panel is collapsed (top-bar sidebar toggle). */
|
|
6058
6238
|
protected readonly slidesPanelCollapsed: _angular_core.WritableSignal<boolean>;
|
|
6059
6239
|
/** Whether periodic autosave is enabled (title-bar AutoSave toggle; default on). */
|
|
@@ -6098,6 +6278,13 @@ declare class PowerPointViewerComponent {
|
|
|
6098
6278
|
* When editing, this serialises the editor's edited deck so changes persist.
|
|
6099
6279
|
*/
|
|
6100
6280
|
getContent(): Promise<Uint8Array>;
|
|
6281
|
+
protected openMasterView(): void;
|
|
6282
|
+
protected closeMasterView(): void;
|
|
6283
|
+
protected selectMasterTab(tab: MasterViewTab): void;
|
|
6284
|
+
protected setMasterBackground(backgroundColor: string): void;
|
|
6285
|
+
protected setHandoutSlidesPerPage(slidesPerPage: number): void;
|
|
6286
|
+
protected updateNotesMaster(master: PptxNotesMaster): void;
|
|
6287
|
+
protected updateHandoutMaster(master: PptxHandoutMaster): void;
|
|
6101
6288
|
goTo(index: number): void;
|
|
6102
6289
|
goPrev(): void;
|
|
6103
6290
|
goNext(): void;
|
|
@@ -6218,7 +6405,7 @@ declare class PowerPointViewerComponent {
|
|
|
6218
6405
|
/** Resolve the live slide-stage element within `<main>`. */
|
|
6219
6406
|
private stageElement;
|
|
6220
6407
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PowerPointViewerComponent, never>;
|
|
6221
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
|
|
6408
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
|
|
6222
6409
|
}
|
|
6223
6410
|
|
|
6224
6411
|
/** The eight resize-handle positions around a selection box. */
|
|
@@ -6634,6 +6821,8 @@ declare class SlideCanvasComponent implements SlideContext {
|
|
|
6634
6821
|
onContextMenu(event: MouseEvent): void;
|
|
6635
6822
|
onHandlePointerDown(event: PointerEvent, handle: ResizeHandle): void;
|
|
6636
6823
|
onRotatePointerDown(event: PointerEvent): void;
|
|
6824
|
+
onResizeHandleKeydown(event: KeyboardEvent, handle: ResizeHandle): void;
|
|
6825
|
+
onRotateHandleKeydown(event: KeyboardEvent): void;
|
|
6637
6826
|
onPointerMove(event: PointerEvent): void;
|
|
6638
6827
|
onPointerUp(): void;
|
|
6639
6828
|
readonly wrapperStyle: _angular_core.Signal<StyleMap>;
|
|
@@ -6956,7 +7145,8 @@ declare class ElementRendererComponent {
|
|
|
6956
7145
|
* Compound (double/triple) lines render as parallel strands and line caps map
|
|
6957
7146
|
* from `a:ln/@cap`; both derive from the shared connector geometry.
|
|
6958
7147
|
*
|
|
6959
|
-
*
|
|
7148
|
+
* Line shadows use an SVG drop-shadow filter and line glow uses the shared
|
|
7149
|
+
* CSS filter builder, matching the other framework bindings.
|
|
6960
7150
|
*/
|
|
6961
7151
|
declare class ConnectorRendererComponent {
|
|
6962
7152
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
@@ -6970,6 +7160,11 @@ declare class ConnectorRendererComponent {
|
|
|
6970
7160
|
/** All derived geometry, recomputed on every input change. */
|
|
6971
7161
|
readonly geo: _angular_core.Signal<ConnectorGeometry>;
|
|
6972
7162
|
readonly viewBox: _angular_core.Signal<string>;
|
|
7163
|
+
private readonly shapeStyle;
|
|
7164
|
+
readonly lineShadow: _angular_core.Signal<LineShadowParams | undefined>;
|
|
7165
|
+
readonly lineGlow: _angular_core.Signal<string | undefined>;
|
|
7166
|
+
readonly shadowFilterId: _angular_core.Signal<string>;
|
|
7167
|
+
readonly wrapperStyle: _angular_core.Signal<string>;
|
|
6973
7168
|
/**
|
|
6974
7169
|
* Parallel strokes for compound (double/triple) line styles. A single line
|
|
6975
7170
|
* yields one strand at offset 0. Each strand carries its own width and is
|
|
@@ -6989,6 +7184,7 @@ interface ConnectorStrand {
|
|
|
6989
7184
|
key: number;
|
|
6990
7185
|
width: number;
|
|
6991
7186
|
transform: string | null;
|
|
7187
|
+
shadowFilter: string | null;
|
|
6992
7188
|
markerStart: string | null;
|
|
6993
7189
|
markerEnd: string | null;
|
|
6994
7190
|
}
|
|
@@ -7513,8 +7709,9 @@ declare function buildInkContainerStyle(element: PptxElement, zIndex: number): S
|
|
|
7513
7709
|
* radii follow the per-point pressure, matching React's `renderInk`. Strokes
|
|
7514
7710
|
* without pressure variation degrade to a plain constant-width `<path>`.
|
|
7515
7711
|
*
|
|
7516
|
-
*
|
|
7517
|
-
*
|
|
7712
|
+
* Presentation mode progressively replays constant-width paths using the
|
|
7713
|
+
* shared dash-offset timing model. Pressure circles remain static because SVG
|
|
7714
|
+
* dash replay only applies to paths.
|
|
7518
7715
|
*
|
|
7519
7716
|
* All non-trivial pure computation lives in `ink-renderer-helpers.ts` (no
|
|
7520
7717
|
* Angular dependency) so it can be unit-tested without TestBed.
|
|
@@ -7523,11 +7720,14 @@ declare class InkRendererComponent {
|
|
|
7523
7720
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
7524
7721
|
readonly zIndex: _angular_core.InputSignal<number>;
|
|
7525
7722
|
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
7723
|
+
readonly replay: _angular_core.InputSignal<boolean>;
|
|
7724
|
+
readonly replayKeyframes = "@keyframes pptx-ink-replay {\n from { stroke-dashoffset: var(--ink-path-length); }\n to { stroke-dashoffset: 0; }\n}";
|
|
7526
7725
|
readonly containerStyle: _angular_core.Signal<StyleMap>;
|
|
7527
7726
|
readonly strokes: _angular_core.Signal<InkStroke[]>;
|
|
7727
|
+
readonly replayStyles: _angular_core.Signal<InkStrokeAnimationStyle[]>;
|
|
7528
7728
|
readonly viewBox: _angular_core.Signal<string>;
|
|
7529
7729
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InkRendererComponent, never>;
|
|
7530
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InkRendererComponent, "pptx-ink-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7730
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InkRendererComponent, "pptx-ink-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "replay": { "alias": "replay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7531
7731
|
}
|
|
7532
7732
|
|
|
7533
7733
|
/**
|
|
@@ -8153,6 +8353,7 @@ declare class PresentationAnnotationsService {
|
|
|
8153
8353
|
* plain CSS overlay.
|
|
8154
8354
|
*/
|
|
8155
8355
|
declare class PresentationOverlayComponent implements OnInit {
|
|
8356
|
+
protected readonly presenterWindow: PresenterWindowService;
|
|
8156
8357
|
readonly slides: _angular_core.InputSignal<PptxSlide[]>;
|
|
8157
8358
|
readonly canvasSize: _angular_core.InputSignal<CanvasSize>;
|
|
8158
8359
|
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
@@ -8166,6 +8367,7 @@ declare class PresentationOverlayComponent implements OnInit {
|
|
|
8166
8367
|
readonly annotationsExit: _angular_core.OutputEmitterRef<SlideAnnotationMap>;
|
|
8167
8368
|
/** Zero-based index into `slides()`. */
|
|
8168
8369
|
protected readonly currentIndex: _angular_core.WritableSignal<number>;
|
|
8370
|
+
private readonly syncExternalIndex;
|
|
8169
8371
|
/**
|
|
8170
8372
|
* Active slide-transition animation: the outgoing slide + the incoming
|
|
8171
8373
|
* slide's transition, played over the new slide. Cleared on completion.
|
|
@@ -9277,6 +9479,8 @@ declare class MobileSlidesSheetComponent {
|
|
|
9277
9479
|
}
|
|
9278
9480
|
|
|
9279
9481
|
declare class MobileSheetComponent {
|
|
9482
|
+
private readonly panel;
|
|
9483
|
+
private releaseFocus;
|
|
9280
9484
|
/** Controls whether the sheet is visible. */
|
|
9281
9485
|
readonly open: _angular_core.InputSignal<boolean>;
|
|
9282
9486
|
/** Optional header text displayed above the body. */
|
|
@@ -9297,7 +9501,7 @@ declare class MobileSheetComponent {
|
|
|
9297
9501
|
/** Whether a drag is in progress (suppresses CSS transition during drag). */
|
|
9298
9502
|
readonly isDragging: _angular_core.WritableSignal<boolean>;
|
|
9299
9503
|
readonly panelStyle: _angular_core.Signal<Record<string, string>>;
|
|
9300
|
-
|
|
9504
|
+
constructor();
|
|
9301
9505
|
onPointerDown(event: PointerEvent): void;
|
|
9302
9506
|
onPointerMove(event: PointerEvent): void;
|
|
9303
9507
|
onPointerUp(event: PointerEvent): void;
|
|
@@ -9589,6 +9793,21 @@ declare class ExportService {
|
|
|
9589
9793
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ExportService>;
|
|
9590
9794
|
}
|
|
9591
9795
|
|
|
9796
|
+
/**
|
|
9797
|
+
* Canvas Export Utilities for the Angular viewer.
|
|
9798
|
+
*
|
|
9799
|
+
* Provides a safe wrapper around html2canvas that resolves modern CSS colour
|
|
9800
|
+
* functions (oklch, oklab, lch, lab, color()) into rgb()/hex before rendering,
|
|
9801
|
+
* then applies the full CSS preprocessing pipeline (backdrop-filter,
|
|
9802
|
+
* mix-blend-mode, 3D transforms, unsupported features).
|
|
9803
|
+
*
|
|
9804
|
+
* The pure colour-normalisation passes and the CSS preprocessing now live once
|
|
9805
|
+
* in `pptx-viewer-shared` (`export/canvas-color-fix`, `export/css-preprocessing`),
|
|
9806
|
+
* inlined here at build time via `../internal/shared-src`. Only the thin
|
|
9807
|
+
* `renderToCanvas` wrapper that imports `html2canvas-pro` stays local; `_testing`
|
|
9808
|
+
* is re-exported so the colocated unit tests keep their historical import path.
|
|
9809
|
+
*/
|
|
9810
|
+
|
|
9592
9811
|
/**
|
|
9593
9812
|
* A drop-in replacement for `html2canvas(element, options)` that first
|
|
9594
9813
|
* resolves any oklch / oklab / lch / lab / color() values in the cloned
|
|
@@ -9880,6 +10099,8 @@ declare class EmbeddedFontsService {
|
|
|
9880
10099
|
*/
|
|
9881
10100
|
readonly fontFamilies: _angular_core.WritableSignal<string[]>;
|
|
9882
10101
|
private styleEl;
|
|
10102
|
+
private embeddedCss;
|
|
10103
|
+
private userCss;
|
|
9883
10104
|
/** Object URLs minted on the most recent `setFonts`; revoked when superseded. */
|
|
9884
10105
|
private liveObjectUrls;
|
|
9885
10106
|
/** Mints a Blob object URL for de-obfuscated font bytes (impure side effect). */
|
|
@@ -9893,6 +10114,8 @@ declare class EmbeddedFontsService {
|
|
|
9893
10114
|
* leak across re-parses. Pass an empty list (or `null`) to clear everything.
|
|
9894
10115
|
*/
|
|
9895
10116
|
setFonts(fonts: readonly PptxEmbeddedFont[] | null | undefined): void;
|
|
10117
|
+
/** Replace the licensed font sources supplied by the host application. */
|
|
10118
|
+
setHostFonts(fonts: readonly ViewerFontSource[] | null | undefined): void;
|
|
9896
10119
|
/**
|
|
9897
10120
|
* Remove the injected `<style>` element, revoke all live object URLs, and
|
|
9898
10121
|
* reset the signals. Called automatically on destroy; safe to call manually.
|
|
@@ -9906,22 +10129,6 @@ declare class EmbeddedFontsService {
|
|
|
9906
10129
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<EmbeddedFontsService>;
|
|
9907
10130
|
}
|
|
9908
10131
|
|
|
9909
|
-
/**
|
|
9910
|
-
* Thin re-export shim → vendored `pptx-viewer-shared` (`render/embedded-fonts`).
|
|
9911
|
-
*
|
|
9912
|
-
* The pure embedded-font `@font-face` assembly (URL/format validation, XOR
|
|
9913
|
-
* de-obfuscation fallback, resolved-variant -> stylesheet/family-list build)
|
|
9914
|
-
* was extracted to shared and is consumed by every binding. This shim preserves
|
|
9915
|
-
* the historical Angular import surface.
|
|
9916
|
-
*
|
|
9917
|
-
* `EMBEDDED_FONTS_STYLE_ID` stays Angular-local: it is the DOM id of the managed
|
|
9918
|
-
* `<style>` element this binding injects, and is intentionally distinct from the
|
|
9919
|
-
* React binding's id.
|
|
9920
|
-
*/
|
|
9921
|
-
|
|
9922
|
-
/** DOM id of the managed `<style>` element the service injects into `<head>`. */
|
|
9923
|
-
declare const EMBEDDED_FONTS_STYLE_ID = "pptx-angular-embedded-fonts";
|
|
9924
|
-
|
|
9925
10132
|
/** A single rendered playback step (one click group). */
|
|
9926
10133
|
interface AnimationStepView {
|
|
9927
10134
|
/** 1-based step number for display. */
|
|
@@ -9970,6 +10177,8 @@ declare class CollaborationCursorsComponent {
|
|
|
9970
10177
|
}
|
|
9971
10178
|
|
|
9972
10179
|
declare class ModalDialogComponent {
|
|
10180
|
+
private readonly panel;
|
|
10181
|
+
private releaseFocus;
|
|
9973
10182
|
/** Whether the dialog is visible. */
|
|
9974
10183
|
readonly open: _angular_core.InputSignal<boolean>;
|
|
9975
10184
|
/** Optional heading shown in the header bar. */
|
|
@@ -9983,8 +10192,7 @@ declare class ModalDialogComponent {
|
|
|
9983
10192
|
* mobile breakpoint. See {@link modalPanelClass}.
|
|
9984
10193
|
*/
|
|
9985
10194
|
protected readonly panelClass: _angular_core.Signal<string>;
|
|
9986
|
-
|
|
9987
|
-
onDocumentKeydown(event: KeyboardEvent): void;
|
|
10195
|
+
constructor();
|
|
9988
10196
|
requestClose(): void;
|
|
9989
10197
|
/**
|
|
9990
10198
|
* Backdrop clicks close the dialog; clicks bubbling up from the panel are
|
|
@@ -10138,7 +10346,10 @@ declare class ShareDialogComponent {
|
|
|
10138
10346
|
readonly roomId: _angular_core.WritableSignal<string>;
|
|
10139
10347
|
readonly userName: _angular_core.WritableSignal<string>;
|
|
10140
10348
|
readonly serverUrl: _angular_core.WritableSignal<string>;
|
|
10349
|
+
readonly invitation: _angular_core.WritableSignal<string>;
|
|
10350
|
+
readonly mode: _angular_core.WritableSignal<"create" | "join">;
|
|
10141
10351
|
readonly copied: _angular_core.WritableSignal<boolean>;
|
|
10352
|
+
readonly pendingConfig: _angular_core.Signal<CollaborationConfig | null>;
|
|
10142
10353
|
readonly canStart: _angular_core.Signal<boolean>;
|
|
10143
10354
|
/** Blank server URL selects the serverless peer-to-peer (webrtc) transport. */
|
|
10144
10355
|
readonly isP2p: _angular_core.Signal<boolean>;
|
|
@@ -11015,6 +11226,7 @@ declare class PresentationTransitionOverlayComponent {
|
|
|
11015
11226
|
* - `closeAudienceWindow` : request closing the audience display window
|
|
11016
11227
|
*/
|
|
11017
11228
|
declare class PresenterViewComponent {
|
|
11229
|
+
protected readonly presenterWindow: PresenterWindowService;
|
|
11018
11230
|
protected readonly NOTES_FONT_SIZE_MIN = 10;
|
|
11019
11231
|
protected readonly NOTES_FONT_SIZE_MAX = 32;
|
|
11020
11232
|
readonly slides: _angular_core.InputSignal<PptxSlide[]>;
|
|
@@ -11028,6 +11240,7 @@ declare class PresenterViewComponent {
|
|
|
11028
11240
|
readonly exit: _angular_core.OutputEmitterRef<void>;
|
|
11029
11241
|
readonly openAudienceWindow: _angular_core.OutputEmitterRef<void>;
|
|
11030
11242
|
readonly closeAudienceWindow: _angular_core.OutputEmitterRef<void>;
|
|
11243
|
+
readonly navigateToSlide: _angular_core.OutputEmitterRef<number>;
|
|
11031
11244
|
/** Live wall-clock (epoch ms), advanced once per second. */
|
|
11032
11245
|
private readonly now;
|
|
11033
11246
|
/** Speaker-notes font size (px), clamped to the allowed range. */
|
|
@@ -11054,7 +11267,7 @@ declare class PresenterViewComponent {
|
|
|
11054
11267
|
protected onToggleAudienceWindow(): void;
|
|
11055
11268
|
private withTemplate;
|
|
11056
11269
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresenterViewComponent, never>;
|
|
11057
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresenterViewComponent, "pptx-presenter-view", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "currentSlideIndex": { "alias": "currentSlideIndex"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "presentationStartTime": { "alias": "presentationStartTime"; "required": false; "isSignal": true; }; "isAudienceWindowOpen": { "alias": "isAudienceWindowOpen"; "required": false; "isSignal": true; }; }, { "movePresentationSlide": "movePresentationSlide"; "exit": "exit"; "openAudienceWindow": "openAudienceWindow"; "closeAudienceWindow": "closeAudienceWindow"; }, never, never, true, never>;
|
|
11270
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresenterViewComponent, "pptx-presenter-view", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "currentSlideIndex": { "alias": "currentSlideIndex"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "presentationStartTime": { "alias": "presentationStartTime"; "required": false; "isSignal": true; }; "isAudienceWindowOpen": { "alias": "isAudienceWindowOpen"; "required": false; "isSignal": true; }; }, { "movePresentationSlide": "movePresentationSlide"; "exit": "exit"; "openAudienceWindow": "openAudienceWindow"; "closeAudienceWindow": "closeAudienceWindow"; "navigateToSlide": "navigateToSlide"; }, never, never, true, never>;
|
|
11058
11271
|
}
|
|
11059
11272
|
|
|
11060
11273
|
/**
|
|
@@ -11198,16 +11411,16 @@ declare function isAudienceTab(): boolean;
|
|
|
11198
11411
|
* Store PPTX content bytes so the audience tab can retrieve them.
|
|
11199
11412
|
* Called by the presenter before opening the audience window.
|
|
11200
11413
|
*/
|
|
11201
|
-
declare function storeAudienceContent(content: ArrayBuffer | Uint8Array): Promise<void>;
|
|
11414
|
+
declare function storeAudienceContent(content: ArrayBuffer | Uint8Array, sessionId?: string): Promise<void>;
|
|
11202
11415
|
/**
|
|
11203
11416
|
* Load PPTX content bytes stored by the presenter tab.
|
|
11204
11417
|
* Returns `null` if nothing is stored.
|
|
11205
11418
|
*/
|
|
11206
|
-
declare function loadAudienceContent(): Promise<Uint8Array | null>;
|
|
11419
|
+
declare function loadAudienceContent(sessionId?: string): Promise<Uint8Array | null>;
|
|
11207
11420
|
/**
|
|
11208
11421
|
* Remove stored audience content (cleanup).
|
|
11209
11422
|
*/
|
|
11210
|
-
declare function clearAudienceContent(): Promise<void>;
|
|
11423
|
+
declare function clearAudienceContent(sessionId?: string): Promise<void>;
|
|
11211
11424
|
|
|
11212
11425
|
/**
|
|
11213
11426
|
* SVG path generators for WordArt text warp presets.
|
|
@@ -12251,6 +12464,7 @@ declare class RibbonComponent {
|
|
|
12251
12464
|
readonly a11y: _angular_core.OutputEmitterRef<void>;
|
|
12252
12465
|
readonly link: _angular_core.OutputEmitterRef<void>;
|
|
12253
12466
|
readonly openSorter: _angular_core.OutputEmitterRef<void>;
|
|
12467
|
+
readonly openMasterView: _angular_core.OutputEmitterRef<void>;
|
|
12254
12468
|
readonly toggleNotes: _angular_core.OutputEmitterRef<void>;
|
|
12255
12469
|
readonly toggleFormatPainter: _angular_core.OutputEmitterRef<void>;
|
|
12256
12470
|
readonly exportPng: _angular_core.OutputEmitterRef<void>;
|
|
@@ -12339,7 +12553,7 @@ declare class RibbonComponent {
|
|
|
12339
12553
|
/** Sync the draw-tool signals with a Draw-tab change and re-broadcast it. */
|
|
12340
12554
|
protected onDrawChange(state: DrawToolState): void;
|
|
12341
12555
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonComponent, never>;
|
|
12342
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "save": "save"; "toggleSidebar": "toggleSidebar"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "link": "link"; "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "replace": "replace"; "toggleInspector": "toggleInspector"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "shapeInsert": "shapeInsert"; "moveLayer": "moveLayer"; "moveLayerToEdge": "moveLayerToEdge"; }, never, never, true, never>;
|
|
12556
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "save": "save"; "toggleSidebar": "toggleSidebar"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "link": "link"; "openSorter": "openSorter"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "replace": "replace"; "toggleInspector": "toggleInspector"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "shapeInsert": "shapeInsert"; "moveLayer": "moveLayer"; "moveLayerToEdge": "moveLayerToEdge"; }, never, never, true, never>;
|
|
12343
12557
|
}
|
|
12344
12558
|
|
|
12345
12559
|
declare class RibbonAnimationsSectionComponent {
|
|
@@ -12721,6 +12935,7 @@ declare class RibbonViewSectionComponent {
|
|
|
12721
12935
|
readonly toggleNotes: _angular_core.OutputEmitterRef<void>;
|
|
12722
12936
|
readonly print: _angular_core.OutputEmitterRef<void>;
|
|
12723
12937
|
readonly openShortcuts: _angular_core.OutputEmitterRef<void>;
|
|
12938
|
+
readonly openMasterView: _angular_core.OutputEmitterRef<void>;
|
|
12724
12939
|
readonly toggleGrid: _angular_core.OutputEmitterRef<void>;
|
|
12725
12940
|
readonly toggleRulers: _angular_core.OutputEmitterRef<void>;
|
|
12726
12941
|
readonly toggleGuides: _angular_core.OutputEmitterRef<void>;
|
|
@@ -12728,7 +12943,7 @@ declare class RibbonViewSectionComponent {
|
|
|
12728
12943
|
readonly toggleSnapToGrid: _angular_core.OutputEmitterRef<void>;
|
|
12729
12944
|
readonly toggleEyedropper: _angular_core.OutputEmitterRef<void>;
|
|
12730
12945
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonViewSectionComponent, never>;
|
|
12731
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "print": "print"; "openShortcuts": "openShortcuts"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
|
|
12946
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "print": "print"; "openShortcuts": "openShortcuts"; "openMasterView": "openMasterView"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
|
|
12732
12947
|
}
|
|
12733
12948
|
|
|
12734
12949
|
/**
|