pptx-angular-viewer 1.11.0 → 1.12.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 +12 -0
- package/README.md +12 -0
- package/fesm2022/pptx-angular-viewer.mjs +718 -75
- package/fesm2022/pptx-angular-viewer.mjs.map +1 -1
- package/package.json +2 -2
- package/types/pptx-angular-viewer.d.ts +172 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pptx-angular-viewer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "Angular PowerPoint viewer and editor component: render, edit, and export PPTX slides in the browser.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"html2canvas-pro": "^2.0.4",
|
|
47
47
|
"jspdf": "^4.2.1",
|
|
48
48
|
"jszip": "^3.10.1",
|
|
49
|
-
"pptx-viewer-core": "^1.2.
|
|
49
|
+
"pptx-viewer-core": "^1.2.5",
|
|
50
50
|
"tslib": "^2.8.1"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
@@ -111,6 +111,26 @@ declare function themeToCssVars(theme: ViewerTheme | undefined, omitDefaults?: b
|
|
|
111
111
|
*/
|
|
112
112
|
declare function defaultCssVars(): Record<string, string>;
|
|
113
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Built-in "vermilion" theme presets.
|
|
116
|
+
*
|
|
117
|
+
* These mirror the pptx-viewer brand used on the documentation site:
|
|
118
|
+
* a warm paper canvas in light mode, a dimmed presenter room in dark
|
|
119
|
+
* mode, and the vermilion accent in both. Pass one to the viewer's
|
|
120
|
+
* `theme` prop (React/Vue) or `provideViewerTheme` (Angular), or spread
|
|
121
|
+
* the color objects to derive your own variant.
|
|
122
|
+
*/
|
|
123
|
+
/** Light "paper" palette: a projection screen in a bright room. */
|
|
124
|
+
declare const vermilionLightColors: ViewerThemeColors;
|
|
125
|
+
/** Dark "presenter" palette: the presenter room with the lights down. */
|
|
126
|
+
declare const vermilionDarkColors: ViewerThemeColors;
|
|
127
|
+
/** Shared border-radius for the vermilion presets (slightly sharper than the default). */
|
|
128
|
+
declare const vermilionRadius = "0.375rem";
|
|
129
|
+
/** Light vermilion theme, ready for the viewer's `theme` prop. */
|
|
130
|
+
declare const vermilionLightTheme: ViewerTheme;
|
|
131
|
+
/** Dark vermilion theme, ready for the viewer's `theme` prop. */
|
|
132
|
+
declare const vermilionDarkTheme: ViewerTheme;
|
|
133
|
+
|
|
114
134
|
/**
|
|
115
135
|
* Framework-agnostic public types shared by the viewer bindings.
|
|
116
136
|
*
|
|
@@ -587,6 +607,42 @@ interface ChartOption<V> {
|
|
|
587
607
|
* @module chart-view-model
|
|
588
608
|
*/
|
|
589
609
|
|
|
610
|
+
/** Min/max/span of a value axis. */
|
|
611
|
+
interface ValueRange {
|
|
612
|
+
min: number;
|
|
613
|
+
max: number;
|
|
614
|
+
span: number;
|
|
615
|
+
/** When true, the range is log-scaled (min/max are data-space power-of-base bounds, span is in log-space). */
|
|
616
|
+
logScale?: boolean;
|
|
617
|
+
/** Logarithmic base (e.g. 10, 2, Math.E). Only meaningful when logScale is true. */
|
|
618
|
+
logBase?: number;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Reference to an interactive chart sub-part, carried by the primitives that
|
|
622
|
+
* represent data marks (bars, dots, slices, series lines). Bindings use it to
|
|
623
|
+
* make marks clickable/draggable in edit mode and to sync selection with the
|
|
624
|
+
* chart inspector; primitives without a `part` stay purely decorative.
|
|
625
|
+
*/
|
|
626
|
+
interface ChartPartRef {
|
|
627
|
+
/** 'dataPoint' targets one (series, category) cell; 'series' the whole series. */
|
|
628
|
+
role: 'dataPoint' | 'series';
|
|
629
|
+
seriesIndex: number;
|
|
630
|
+
/** Category/point index. Absent when the primitive spans the whole series. */
|
|
631
|
+
pointIndex?: number;
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Vertical drag-to-value context, present on cartesian view-models whose data
|
|
635
|
+
* marks can be dragged vertically to change their value (clustered bar, line,
|
|
636
|
+
* scatter, bubble). `secondarySeriesIndexes` lists series plotted against
|
|
637
|
+
* `secondaryRange` instead of `range`.
|
|
638
|
+
*/
|
|
639
|
+
interface ChartValueDrag {
|
|
640
|
+
range: ValueRange;
|
|
641
|
+
secondaryRange?: ValueRange;
|
|
642
|
+
secondarySeriesIndexes?: number[];
|
|
643
|
+
plotTop: number;
|
|
644
|
+
plotBottom: number;
|
|
645
|
+
}
|
|
590
646
|
interface SvgRect {
|
|
591
647
|
kind: 'rect';
|
|
592
648
|
x: number;
|
|
@@ -596,6 +652,7 @@ interface SvgRect {
|
|
|
596
652
|
fill: string;
|
|
597
653
|
rx?: number;
|
|
598
654
|
opacity?: number;
|
|
655
|
+
part?: ChartPartRef;
|
|
599
656
|
}
|
|
600
657
|
interface SvgPath {
|
|
601
658
|
kind: 'path';
|
|
@@ -604,6 +661,7 @@ interface SvgPath {
|
|
|
604
661
|
stroke?: string;
|
|
605
662
|
strokeWidth?: number;
|
|
606
663
|
opacity?: number;
|
|
664
|
+
part?: ChartPartRef;
|
|
607
665
|
}
|
|
608
666
|
interface SvgPolyline {
|
|
609
667
|
kind: 'polyline';
|
|
@@ -612,6 +670,7 @@ interface SvgPolyline {
|
|
|
612
670
|
strokeWidth: number;
|
|
613
671
|
fill: string;
|
|
614
672
|
opacity?: number;
|
|
673
|
+
part?: ChartPartRef;
|
|
615
674
|
}
|
|
616
675
|
interface SvgCircle {
|
|
617
676
|
kind: 'circle';
|
|
@@ -620,6 +679,7 @@ interface SvgCircle {
|
|
|
620
679
|
r: number;
|
|
621
680
|
fill: string;
|
|
622
681
|
opacity?: number;
|
|
682
|
+
part?: ChartPartRef;
|
|
623
683
|
}
|
|
624
684
|
interface SvgLine {
|
|
625
685
|
kind: 'line';
|
|
@@ -654,6 +714,7 @@ interface SvgPolygon {
|
|
|
654
714
|
strokeWidth: number;
|
|
655
715
|
opacity?: number;
|
|
656
716
|
dashArray?: string;
|
|
717
|
+
part?: ChartPartRef;
|
|
657
718
|
}
|
|
658
719
|
interface SvgAreaGradient {
|
|
659
720
|
kind: 'areaGradient';
|
|
@@ -700,6 +761,12 @@ interface ChartViewModel {
|
|
|
700
761
|
* is set). Already appended to `primitives`; surfaced separately for projectors.
|
|
701
762
|
*/
|
|
702
763
|
dataTable?: SvgPrimitive[];
|
|
764
|
+
/**
|
|
765
|
+
* Present when the chart's data marks support vertical drag-to-value editing
|
|
766
|
+
* (clustered bar / line / scatter / bubble). Absent for stacked, polar, and
|
|
767
|
+
* hierarchical kinds, where a vertical drag has no single-value meaning.
|
|
768
|
+
*/
|
|
769
|
+
valueDrag?: ChartValueDrag;
|
|
703
770
|
}
|
|
704
771
|
|
|
705
772
|
/**
|
|
@@ -3000,7 +3067,6 @@ declare class EditorStateService {
|
|
|
3000
3067
|
private zOrder;
|
|
3001
3068
|
private commit;
|
|
3002
3069
|
private syncHistory;
|
|
3003
|
-
private clone;
|
|
3004
3070
|
private newId;
|
|
3005
3071
|
private idCounter;
|
|
3006
3072
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EditorStateService, never>;
|
|
@@ -3838,11 +3904,22 @@ declare class ViewerCustomShowsService {
|
|
|
3838
3904
|
readonly activeId: _angular_core.WritableSignal<string | null>;
|
|
3839
3905
|
/** Active-slide index of the host viewer (bound from the component). */
|
|
3840
3906
|
private activeSlideIndex;
|
|
3841
|
-
/**
|
|
3842
|
-
|
|
3907
|
+
/**
|
|
3908
|
+
* The viewer's LIVE (edited) slides accessor, bound from the component. The
|
|
3909
|
+
* presentation overlay must reflect in-session edits (inserted media, moved
|
|
3910
|
+
* shapes, etc.), so it reads these rather than the pristine loaded deck
|
|
3911
|
+
* (`loader.slides()`), mirroring React/Vue where present mode shows the
|
|
3912
|
+
* working set. Defaults to the loaded slides until bound.
|
|
3913
|
+
*/
|
|
3914
|
+
private liveSlides;
|
|
3915
|
+
/** Wire the host's active-slide-index + live-slides accessors (called once from the constructor). */
|
|
3916
|
+
bind(accessors: {
|
|
3917
|
+
activeSlideIndex: () => number;
|
|
3918
|
+
liveSlides: () => readonly PptxSlide[];
|
|
3919
|
+
}): void;
|
|
3843
3920
|
/** Custom shows mapped to the core shape consumed by set-up-slide-show. */
|
|
3844
3921
|
readonly pptxCustomShows: _angular_core.Signal<PptxCustomShow[]>;
|
|
3845
|
-
/** Slides shown in presentation mode: the active custom show, else the full deck. */
|
|
3922
|
+
/** Slides shown in presentation mode: the active custom show, else the full (live) deck. */
|
|
3846
3923
|
readonly presentationSlides: _angular_core.Signal<PptxSlide[]>;
|
|
3847
3924
|
/** Start index into {@link presentationSlides}: first slide of a custom show, else the active slide. */
|
|
3848
3925
|
readonly presentationStartIndex: _angular_core.Signal<number>;
|
|
@@ -4225,6 +4302,14 @@ declare class ViewerInspectorPanelService {
|
|
|
4225
4302
|
readonly activePanel: _angular_core.WritableSignal<InspectorToolPanel | null>;
|
|
4226
4303
|
/** True once the user swiped the inspector away on mobile (until reopened). */
|
|
4227
4304
|
readonly mobileInspectorHidden: _angular_core.WritableSignal<boolean>;
|
|
4305
|
+
/**
|
|
4306
|
+
* True once the user has explicitly closed the format (element/slide)
|
|
4307
|
+
* panel via the ribbon toggle - independent of selection, mirroring
|
|
4308
|
+
* React's/Vue's own open/closed toggle state. Never affects the explicit
|
|
4309
|
+
* tool panels (comments/accessibility/signatures/selection), which show
|
|
4310
|
+
* regardless of this flag.
|
|
4311
|
+
*/
|
|
4312
|
+
readonly formatPanelClosed: _angular_core.WritableSignal<boolean>;
|
|
4228
4313
|
/**
|
|
4229
4314
|
* Swipe-to-dismiss drag for the inspector host. The host docks in-flow below
|
|
4230
4315
|
* the canvas on mobile (same keyboard-reachability reason as the notes
|
|
@@ -4243,6 +4328,12 @@ declare class ViewerInspectorPanelService {
|
|
|
4243
4328
|
* `canEdit`.
|
|
4244
4329
|
*/
|
|
4245
4330
|
readonly inspectorContent: _angular_core.Signal<InspectorContent>;
|
|
4331
|
+
/**
|
|
4332
|
+
* `inspectorContent`, but the format (element/slide) view collapses to
|
|
4333
|
+
* `null` once the user has explicitly closed it via the ribbon toggle.
|
|
4334
|
+
* Explicit tool panels (comments/accessibility/etc.) are untouched.
|
|
4335
|
+
*/
|
|
4336
|
+
private readonly formatPanelContent;
|
|
4246
4337
|
/**
|
|
4247
4338
|
* Whether the right-docked inspector is showing the format panel (element or
|
|
4248
4339
|
* slide properties). Drives the top-bar inspector-toggle active state.
|
|
@@ -4254,6 +4345,13 @@ declare class ViewerInspectorPanelService {
|
|
|
4254
4345
|
readonly inspectorLabel: _angular_core.Signal<"" | "pptx.toolbar.comments" | "pptx.accessibility.title" | "pptx.viewer.digitalSignatures" | "pptx.selectionPane.title" | "pptx.viewer.elementProperties" | "pptx.viewer.slideProperties">;
|
|
4255
4346
|
/** Toggle a right-docked tool panel (clicking the active one closes it). */
|
|
4256
4347
|
togglePanel(panel: InspectorToolPanel): void;
|
|
4348
|
+
/**
|
|
4349
|
+
* Ribbon "toggle inspector" action: if a tool panel is active, return to
|
|
4350
|
+
* the format (element/slide) view; otherwise toggle the format view's
|
|
4351
|
+
* open/closed state, matching React's and Vue's independent open/close
|
|
4352
|
+
* toggle (closing/opening is not tied to selection changes).
|
|
4353
|
+
*/
|
|
4354
|
+
toggleFormatPanel(): void;
|
|
4257
4355
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewerInspectorPanelService, never>;
|
|
4258
4356
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ViewerInspectorPanelService>;
|
|
4259
4357
|
}
|
|
@@ -4352,7 +4450,11 @@ declare class ViewerPresentationModeService {
|
|
|
4352
4450
|
/** Wire the host accessors (called once from the component constructor). */
|
|
4353
4451
|
bind(host: PresentationModeHost): void;
|
|
4354
4452
|
private requireHost;
|
|
4355
|
-
/**
|
|
4453
|
+
/**
|
|
4454
|
+
* Open the presentation overlay from the current slide. The overlay itself
|
|
4455
|
+
* (`PresentationOverlayComponent`) requests real browser fullscreen once it
|
|
4456
|
+
* mounts as a result of `presenting` flipping true.
|
|
4457
|
+
*/
|
|
4356
4458
|
present(): void;
|
|
4357
4459
|
/**
|
|
4358
4460
|
* Map a presentation-overlay index back to the full-deck `activeSlideIndex`.
|
|
@@ -4922,6 +5024,12 @@ declare class SlideCanvasComponent {
|
|
|
4922
5024
|
* e2e selectors from matching multiple elements.
|
|
4923
5025
|
*/
|
|
4924
5026
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
5027
|
+
/**
|
|
5028
|
+
* True only for the live presentation stage: slide-content media autoplays.
|
|
5029
|
+
* Left false for thumbnails, the sorter and the editor canvas so their media
|
|
5030
|
+
* stays quiet (the template layer never autoplays regardless).
|
|
5031
|
+
*/
|
|
5032
|
+
readonly presenting: _angular_core.InputSignal<boolean>;
|
|
4925
5033
|
/** Ids of currently-selected elements (drawn with a selection outline). */
|
|
4926
5034
|
readonly selectedIds: _angular_core.InputSignal<readonly string[]>;
|
|
4927
5035
|
/** Id of the element currently being text-edited inline (or null). */
|
|
@@ -5135,7 +5243,7 @@ declare class SlideCanvasComponent {
|
|
|
5135
5243
|
readonly vRulerTicks: _angular_core.Signal<readonly RulerTick[]>;
|
|
5136
5244
|
readonly stageStyle: _angular_core.Signal<StyleMap>;
|
|
5137
5245
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideCanvasComponent, never>;
|
|
5138
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "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; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
|
|
5246
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "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; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
|
|
5139
5247
|
}
|
|
5140
5248
|
|
|
5141
5249
|
/**
|
|
@@ -5331,6 +5439,12 @@ declare class ElementRendererComponent {
|
|
|
5331
5439
|
* separate lightweight renderer).
|
|
5332
5440
|
*/
|
|
5333
5441
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
5442
|
+
/**
|
|
5443
|
+
* True only on the live presentation stage; threaded to the media renderer so
|
|
5444
|
+
* a slide's media autoplays when the slide becomes active (and to group
|
|
5445
|
+
* children so nested media autoplays too). False everywhere else.
|
|
5446
|
+
*/
|
|
5447
|
+
readonly presenting: _angular_core.InputSignal<boolean>;
|
|
5334
5448
|
/** Whether inline editing (e.g. table-cell text input) is enabled. */
|
|
5335
5449
|
readonly editable: _angular_core.InputSignal<boolean>;
|
|
5336
5450
|
/**
|
|
@@ -5395,7 +5509,7 @@ declare class ElementRendererComponent {
|
|
|
5395
5509
|
readonly hasText: _angular_core.Signal<boolean>;
|
|
5396
5510
|
readonly placeholderLabel: _angular_core.Signal<string>;
|
|
5397
5511
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElementRendererComponent, never>;
|
|
5398
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementRendererComponent, "pptx-element-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "obstacles": { "alias": "obstacles"; "required": false; "isSignal": true; }; "canvasWidth": { "alias": "canvasWidth"; "required": false; "isSignal": true; }; "canvasHeight": { "alias": "canvasHeight"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "fieldContext": { "alias": "fieldContext"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; }, { "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
|
|
5512
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementRendererComponent, "pptx-element-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "obstacles": { "alias": "obstacles"; "required": false; "isSignal": true; }; "canvasWidth": { "alias": "canvasWidth"; "required": false; "isSignal": true; }; "canvasHeight": { "alias": "canvasHeight"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "fieldContext": { "alias": "fieldContext"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; }, { "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
|
|
5399
5513
|
}
|
|
5400
5514
|
|
|
5401
5515
|
/**
|
|
@@ -5877,6 +5991,13 @@ declare class OleRendererComponent {
|
|
|
5877
5991
|
* when no rows are available.
|
|
5878
5992
|
*/
|
|
5879
5993
|
readonly infoTitle: _angular_core.Signal<string>;
|
|
5994
|
+
/**
|
|
5995
|
+
* Open the recovered embedded payload in a new browser tab. Routes through
|
|
5996
|
+
* the shared {@link openUrlInNewTab} helper, which converts the `data:` URL to
|
|
5997
|
+
* a Blob object URL first: browsers silently refuse to navigate a new
|
|
5998
|
+
* top-level tab straight to a `data:` URL.
|
|
5999
|
+
*/
|
|
6000
|
+
openEmbedded(): void;
|
|
5880
6001
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OleRendererComponent, never>;
|
|
5881
6002
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OleRendererComponent, "pptx-ole-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5882
6003
|
}
|
|
@@ -6272,6 +6393,17 @@ declare class PresentationAnnotationsService {
|
|
|
6272
6393
|
* Horizontal swipe → left → next, right → previous
|
|
6273
6394
|
*
|
|
6274
6395
|
* Click on the overlay body → advance to next visible slide.
|
|
6396
|
+
*
|
|
6397
|
+
* Fullscreen (mirrors the React `usePresentationMode` / Vue `PresentationMode.vue`
|
|
6398
|
+
* behavior, on top of the CSS-fixed full-viewport overlay above): the real
|
|
6399
|
+
* Fullscreen API is requested on this component's root element once it mounts,
|
|
6400
|
+
* and released again on destroy, so the browser chrome (address bar, etc.) gets
|
|
6401
|
+
* out of the way on mobile the same way it does for React/Vue. A
|
|
6402
|
+
* `fullscreenchange` listener syncs back to `closed` when fullscreen is exited
|
|
6403
|
+
* from outside this component's own close/Escape handling (browser UI, the
|
|
6404
|
+
* Android back gesture, etc.). Environments without Fullscreen API support
|
|
6405
|
+
* (iOS Safari's partial support, `jsdom` in tests) degrade silently to the
|
|
6406
|
+
* plain CSS overlay.
|
|
6275
6407
|
*/
|
|
6276
6408
|
declare class PresentationOverlayComponent implements OnInit {
|
|
6277
6409
|
readonly slides: _angular_core.InputSignal<PptxSlide[]>;
|
|
@@ -6309,8 +6441,19 @@ declare class PresentationOverlayComponent implements OnInit {
|
|
|
6309
6441
|
protected readonly subtitlesVisible: _angular_core.WritableSignal<boolean>;
|
|
6310
6442
|
/** The slide stage root; animation styles are applied to its elements. */
|
|
6311
6443
|
private readonly stageRef;
|
|
6312
|
-
/**
|
|
6444
|
+
/**
|
|
6445
|
+
* The overlay root; the shared touch-gesture recogniser attaches here, and
|
|
6446
|
+
* it is the element the real Fullscreen API is requested on (see
|
|
6447
|
+
* {@link setupFullscreen}).
|
|
6448
|
+
*/
|
|
6313
6449
|
private readonly rootRef;
|
|
6450
|
+
/**
|
|
6451
|
+
* Guards against handling the same exit twice: e.g. Escape both reaches our
|
|
6452
|
+
* own `keydown` handler AND causes the browser to natively exit fullscreen
|
|
6453
|
+
* (firing `fullscreenchange`), or the close button's `click` and `touchend`
|
|
6454
|
+
* both fire for one tap.
|
|
6455
|
+
*/
|
|
6456
|
+
private closing;
|
|
6314
6457
|
constructor();
|
|
6315
6458
|
/**
|
|
6316
6459
|
* Imperatively apply animation reveal / pending CSS to the slide's element
|
|
@@ -6349,6 +6492,24 @@ declare class PresentationOverlayComponent implements OnInit {
|
|
|
6349
6492
|
* (afterNextRender) and is torn down on destroy.
|
|
6350
6493
|
*/
|
|
6351
6494
|
private setupTouchGestures;
|
|
6495
|
+
/**
|
|
6496
|
+
* Request real fullscreen on the overlay root once it mounts, and release
|
|
6497
|
+
* it again when the overlay is destroyed (`presenting` flips back to
|
|
6498
|
+
* false, closing this `@if` block). Mirrors Vue's `onMounted` /
|
|
6499
|
+
* `onBeforeUnmount` pair on its own overlay root; feature-detected so
|
|
6500
|
+
* unsupported environments just keep the CSS overlay.
|
|
6501
|
+
*/
|
|
6502
|
+
private setupFullscreen;
|
|
6503
|
+
/**
|
|
6504
|
+
* Sync back to `closed` when fullscreen is exited from OUTSIDE this
|
|
6505
|
+
* component's own close/Escape handling: the browser's native Esc handling
|
|
6506
|
+
* can beat (or replace) our `keydown` listener, and mobile back
|
|
6507
|
+
* gestures/browser-UI exits never reach it at all. Without this, `presenting`
|
|
6508
|
+
* would stay stuck true while the app has silently fallen back to the plain
|
|
6509
|
+
* CSS overlay. `emitClosed()` is itself guarded against double-firing, so it
|
|
6510
|
+
* is safe if our own close flow *also* triggers this event.
|
|
6511
|
+
*/
|
|
6512
|
+
protected onFullscreenChange(): void;
|
|
6352
6513
|
ngOnInit(): void;
|
|
6353
6514
|
onWindowResize(): void;
|
|
6354
6515
|
private snapViewport;
|
|
@@ -8399,7 +8560,7 @@ declare class SetUpSlideShowDialogComponent {
|
|
|
8399
8560
|
/** Working copy of the properties; seeded from `properties` on open. */
|
|
8400
8561
|
readonly draft: _angular_core.WritableSignal<PptxPresentationProperties>;
|
|
8401
8562
|
readonly showType: _angular_core.Signal<"presented" | "browsed" | "kiosk">;
|
|
8402
|
-
readonly showSlidesMode: _angular_core.Signal<"
|
|
8563
|
+
readonly showSlidesMode: _angular_core.Signal<"range" | "all" | "customShow">;
|
|
8403
8564
|
constructor();
|
|
8404
8565
|
/** Merge a partial patch into the current draft. */
|
|
8405
8566
|
update(patch: Partial<PptxPresentationProperties>): void;
|
|
@@ -8423,7 +8584,7 @@ declare class ShowSlidesFieldsetComponent {
|
|
|
8423
8584
|
/** Current slide-show properties draft. */
|
|
8424
8585
|
readonly draft: _angular_core.InputSignal<PptxPresentationProperties>;
|
|
8425
8586
|
/** Derived active mode (falls back to 'all' upstream). */
|
|
8426
|
-
readonly showSlidesMode: _angular_core.InputSignal<"
|
|
8587
|
+
readonly showSlidesMode: _angular_core.InputSignal<"range" | "all" | "customShow">;
|
|
8427
8588
|
/** Total number of slides in the deck (clamps the range inputs). */
|
|
8428
8589
|
readonly slideCount: _angular_core.InputSignal<number>;
|
|
8429
8590
|
/** Named custom shows defined by the deck (may be empty). */
|
|
@@ -9394,5 +9555,5 @@ type TranslationKey = keyof typeof translationsEn;
|
|
|
9394
9555
|
*/
|
|
9395
9556
|
declare function keyToLabel(key: string): string;
|
|
9396
9557
|
|
|
9397
|
-
export { AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AccessibilityPanelComponent, AccessibilityService, AdvancedChartEditorComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, BroadcastDialogComponent, CURSOR_PALETTE, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, CollaborationCursorsComponent, CollaborationService, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_FILL_COLOR, DEFAULT_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, EMBEDDED_FONTS_STYLE_ID, TEMPLATES as EQUATION_TEMPLATES, EditorContextMenuComponent, EditorHistory, EditorStateService, EditorToolbarComponent, EffectsPanelComponent, ElementRendererComponent, EmbeddedFontsService, EncryptedFileDialogComponent, EquationEditorDialogComponent, EquationRendererComponent, EquationTemplateGalleryComponent, ExportService, FindBarComponent, FindReplaceBarComponent, FontEmbeddingListComponent, FontEmbeddingPanelComponent, GradientPickerComponent, HANDOUT_OPTIONS, HyperlinkDialogComponent, InkRendererComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LoadContentService, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesPanelComponent, OleRendererComponent, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationSubtitleBarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, RESIZE_HANDLES, SEVERITY_GROUPS, SEVERITY_LABELS, SLIDE_TRANSITION_KEYFRAMES, SVG_WARP_PRESETS, SetUpSlideShowDialogComponent, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideCanvasComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSorterOverlayComponent, SlidesPanelComponent, SmartArtRendererComponent, StatusBarComponent, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TextAdvancedPanelComponent, VIEWER_THEME, VersionHistoryPanelComponent, ViewerCompareService, ViewerDialogsService, ViewerExtraDialogsComponent, WEBM_MIME_CANDIDATES, ZoomRendererComponent, addCommentToList, advanceStep, annotationMapToInkInserts, applyAcceptedDiff, applyFindReplacements, applyFormatToElement, applyMove, applyResize, assignUserColor, bringForward, bringToFront, buildBroadcastConfig, buildBroadcastViewerUrl, buildClearHyperlinkPatch, buildClickGroups, buildCollaborationConfig, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFontFaceRule, buildHyperlinkPatch, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildShareUrl, bulletIndentPx, canStartBroadcast, canStartShare, canUseClipboard, changeCountLabel, changeIcon, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampNotesFontSize, clampStep, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectUsedFontFamilies, computeHandoutLayout, computeIsMobile, computeIsTablet, computePageCount, computeSlideIndices, computeTimerProgress, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, derivePresenceList, duplicateElementById, durationOf, encodeGif, estimatePageCount, findInSlides, fontMimeForFormat, formatAutoNumber, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, getContainerStyle, getDuotoneFilterDef, getImageSrc, getPasswordStrength, getPatternSvg, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getTextBlockStyle, getTextWarp, getWarpCategory, getWarpPath, groupIssuesBySeverity, hasCopyableFormat, hasExistingLink, headerLabel, isAudienceTab, isInjectableUrl, isPpactionUrl, isPresenterMessage, isSigned, isUrlSafe, isValidRoomId, issueTrackKey, issueTypeLabel, keyToLabel, latexToMathml, loadAudienceContent, moveElementBy, msToFrameDelayCs, normalizeFontFormat, normalizeSlidesPerPage, ommlToMathml, overallStatus, parseAudienceNonce, pendingElementStyles, pickSupportedMimeType, planGifFrames, planVideoSegments, presenceToCursors, provideViewerTheme, recordWebm, removeCommentFromList, renderToCanvas, replaceInSlides, replaceMatch, resizeElement, resolveFontVariant, resolveHyperlinkHref, resolveParagraphBullet, resolvePresenterNotes, resolveTransitionDuration, revealedElementStyles, routeOrthogonalConnector, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, sendBackward, sendToBack, setElementPosition, shouldUseSvgWarp, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, themeStyle, themeToCssVars, toggleCommentResolvedInList, translationsEn, updateElementById, validatePassword, validatePrintSettings, validateRoomId, waypointsToPathD, worstStatus };
|
|
9558
|
+
export { AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AccessibilityPanelComponent, AccessibilityService, AdvancedChartEditorComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, BroadcastDialogComponent, CURSOR_PALETTE, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, CollaborationCursorsComponent, CollaborationService, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_FILL_COLOR, DEFAULT_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, EMBEDDED_FONTS_STYLE_ID, TEMPLATES as EQUATION_TEMPLATES, EditorContextMenuComponent, EditorHistory, EditorStateService, EditorToolbarComponent, EffectsPanelComponent, ElementRendererComponent, EmbeddedFontsService, EncryptedFileDialogComponent, EquationEditorDialogComponent, EquationRendererComponent, EquationTemplateGalleryComponent, ExportService, FindBarComponent, FindReplaceBarComponent, FontEmbeddingListComponent, FontEmbeddingPanelComponent, GradientPickerComponent, HANDOUT_OPTIONS, HyperlinkDialogComponent, InkRendererComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LoadContentService, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesPanelComponent, OleRendererComponent, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationSubtitleBarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, RESIZE_HANDLES, SEVERITY_GROUPS, SEVERITY_LABELS, SLIDE_TRANSITION_KEYFRAMES, SVG_WARP_PRESETS, SetUpSlideShowDialogComponent, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideCanvasComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSorterOverlayComponent, SlidesPanelComponent, SmartArtRendererComponent, StatusBarComponent, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TextAdvancedPanelComponent, VIEWER_THEME, VersionHistoryPanelComponent, ViewerCompareService, ViewerDialogsService, ViewerExtraDialogsComponent, WEBM_MIME_CANDIDATES, ZoomRendererComponent, addCommentToList, advanceStep, annotationMapToInkInserts, applyAcceptedDiff, applyFindReplacements, applyFormatToElement, applyMove, applyResize, assignUserColor, bringForward, bringToFront, buildBroadcastConfig, buildBroadcastViewerUrl, buildClearHyperlinkPatch, buildClickGroups, buildCollaborationConfig, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFontFaceRule, buildHyperlinkPatch, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildShareUrl, bulletIndentPx, canStartBroadcast, canStartShare, canUseClipboard, changeCountLabel, changeIcon, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampNotesFontSize, clampStep, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectUsedFontFamilies, computeHandoutLayout, computeIsMobile, computeIsTablet, computePageCount, computeSlideIndices, computeTimerProgress, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, derivePresenceList, duplicateElementById, durationOf, encodeGif, estimatePageCount, findInSlides, fontMimeForFormat, formatAutoNumber, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, getContainerStyle, getDuotoneFilterDef, getImageSrc, getPasswordStrength, getPatternSvg, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getTextBlockStyle, getTextWarp, getWarpCategory, getWarpPath, groupIssuesBySeverity, hasCopyableFormat, hasExistingLink, headerLabel, isAudienceTab, isInjectableUrl, isPpactionUrl, isPresenterMessage, isSigned, isUrlSafe, isValidRoomId, issueTrackKey, issueTypeLabel, keyToLabel, latexToMathml, loadAudienceContent, moveElementBy, msToFrameDelayCs, normalizeFontFormat, normalizeSlidesPerPage, ommlToMathml, overallStatus, parseAudienceNonce, pendingElementStyles, pickSupportedMimeType, planGifFrames, planVideoSegments, presenceToCursors, provideViewerTheme, recordWebm, removeCommentFromList, renderToCanvas, replaceInSlides, replaceMatch, resizeElement, resolveFontVariant, resolveHyperlinkHref, resolveParagraphBullet, resolvePresenterNotes, resolveTransitionDuration, revealedElementStyles, routeOrthogonalConnector, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, sendBackward, sendToBack, setElementPosition, shouldUseSvgWarp, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, themeStyle, themeToCssVars, toggleCommentResolvedInList, translationsEn, updateElementById, validatePassword, validatePrintSettings, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus };
|
|
9398
9559
|
export type { AccessibilityIssueGroup, AnimationClickGroup, AnnotationInkInsert, AnnotationStroke, Box, BroadcastConfig, BroadcastDefaults, CSSProperties, CanvasSize, ClassValue, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, DocumentProperties, DuotoneFilterDef, EmbeddedFontStyles, EquationTemplate, FindOptions, FindResult, GifFrame, GifFramePlan, GifPlanOptions, HandoutSlidesPerPage, HyperlinkDraft, NotesSegmentViewModel, ObjectUrlFactory, OverallSignatureStatus, PowerPointViewerAPI, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, PrintColorMode, PrintHtmlDocumentOptions as PrintDocumentOptions, PrintOrientation, PrintSettings, PrintSlideRange, PrintWhat, PropertiesDraft, RecordWebmOptions, RecoveryVersion, RemoteCursor, SanitizedPresence as RemotePresence, ReplaceResult, ResizeHandle, ResolvedFontVariant, ShareDefaults, ShareFormFields, SignatureStatusKind, SlideTransitionAnimations, StyleMap, TableCellSelection, TextWarpCssDef, TextWarpDef, TextWarpPathDef, TimerProgress, TranslationKey, VideoPlanOptions, VideoSegmentPlan, ViewerMode, ViewerTheme, ViewerThemeColors };
|