pptx-angular-viewer 3.4.0 → 3.5.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 +23 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-ClFN-XPJ.mjs → pptx-angular-viewer-chat-history-idb-B0cHUgW4.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-ClFN-XPJ.mjs.map → pptx-angular-viewer-chat-history-idb-B0cHUgW4.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-D9KH43PW.mjs → pptx-angular-viewer-pptx-angular-viewer-C0kXOQt5.mjs} +4896 -717
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-D9KH43PW.mjs.map → pptx-angular-viewer-pptx-angular-viewer-C0kXOQt5.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +2 -2
- package/pptx-angular-viewer.css +1 -1
- package/types/pptx-angular-viewer.d.ts +566 -110
- package/types/pptx-angular-viewer.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as pptx_viewer_core from 'pptx-viewer-core';
|
|
2
|
-
import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData,
|
|
2
|
+
import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, MasterViewTab, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxModernCommentAuthor, PptxCommentMention, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxGridSpacing, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxBar3DShape, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, PptxChartMarkerSymbol, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, PptxLayoutPreview, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
|
|
3
3
|
export { GroupResult, SWITCHABLE_LAYOUT_TYPES, UngroupResult, addSmartArtNode, addSmartArtNodeAsChild, chartDataChangeType, chartDataUpdatePoint, demoteSmartArtNode, formatAutoNumberMarker as formatAutoNumber, groupElements, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, ungroupElements, updateSmartArtNodeText } from 'pptx-viewer-core';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { Signal, WritableSignal, OnDestroy, OnInit, AfterViewInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
|
|
@@ -6111,10 +6111,11 @@ declare function issueTrackKey(issue: AccessibilityIssue, index: number): string
|
|
|
6111
6111
|
* Settings" inspector panel (PowerPoint's Insert > Action dialog).
|
|
6112
6112
|
*
|
|
6113
6113
|
* WHY shared: the mapping from `ElementActionType` to a translation key is
|
|
6114
|
-
* plain data that every binding's action panel needs verbatim, and the
|
|
6115
|
-
* types that take an extra input (`url`, `slide
|
|
6116
|
-
*
|
|
6117
|
-
* five bindings at once instead of
|
|
6114
|
+
* plain data that every binding's action panel needs verbatim, and the three
|
|
6115
|
+
* types that take an extra input before they can commit (`url`, `slide`,
|
|
6116
|
+
* `customShow`) are a rule, not a rendering decision. Keeping the list here
|
|
6117
|
+
* means adding a new action kind updates all five bindings at once instead of
|
|
6118
|
+
* five hand-typed copies drifting apart.
|
|
6118
6119
|
*
|
|
6119
6120
|
* @module render/element-action-options
|
|
6120
6121
|
*/
|
|
@@ -6856,6 +6857,59 @@ interface BackstageTemplate {
|
|
|
6856
6857
|
}
|
|
6857
6858
|
declare function formatBackstageSize(bytes: number): string;
|
|
6858
6859
|
|
|
6860
|
+
/**
|
|
6861
|
+
* master-view.ts: the framework-neutral rules behind View > Slide Master.
|
|
6862
|
+
*
|
|
6863
|
+
* Every binding had its own copy of "turn the selected master/layout/notes/
|
|
6864
|
+
* handout part into a pseudo-slide the ordinary canvas can paint", and they
|
|
6865
|
+
* had drifted: React and Svelte painted a layout without its master's artwork
|
|
6866
|
+
* behind it, React keyed its pseudo-slide so the save path could never match
|
|
6867
|
+
* it, Angular dropped every edit made on the Slides tab, and Vue offered no
|
|
6868
|
+
* edit at all. The decisions live here instead, and each binding maps the
|
|
6869
|
+
* returned descriptors onto its own state container.
|
|
6870
|
+
*
|
|
6871
|
+
* @module render/master-view
|
|
6872
|
+
*/
|
|
6873
|
+
|
|
6874
|
+
/** Which part the master view is currently pointed at. */
|
|
6875
|
+
interface MasterViewTarget {
|
|
6876
|
+
tab: MasterViewTab;
|
|
6877
|
+
masterIndex: number;
|
|
6878
|
+
/** `null` selects the master itself rather than one of its layouts. */
|
|
6879
|
+
layoutIndex: number | null;
|
|
6880
|
+
}
|
|
6881
|
+
|
|
6882
|
+
/**
|
|
6883
|
+
* master-view-crud.ts: the decision layer behind PowerPoint's Slide Master
|
|
6884
|
+
* view sidebar commands (Insert/Duplicate/Delete/Rename Layout and Slide
|
|
6885
|
+
* Master).
|
|
6886
|
+
*
|
|
6887
|
+
* Splits into two pure-ish pieces:
|
|
6888
|
+
* - {@link masterViewCrudActions}: a synchronous, framework-neutral
|
|
6889
|
+
* descriptor of which buttons a binding's sidebar should show, enabled or
|
|
6890
|
+
* disabled, so no binding re-derives PowerPoint's "can't delete the last
|
|
6891
|
+
* master" / "can't delete a layout slides still use" rules itself.
|
|
6892
|
+
* - {@link applyMasterViewCrudAction}: the async bridge to
|
|
6893
|
+
* `pptx-viewer-core`'s `master-layout-crud` module (which performs the
|
|
6894
|
+
* actual ZIP surgery), returning the master-view selection a binding
|
|
6895
|
+
* should move to afterwards (the new layout/master it just created, or the
|
|
6896
|
+
* owning master after a delete).
|
|
6897
|
+
*
|
|
6898
|
+
* @module render/master-view-crud
|
|
6899
|
+
*/
|
|
6900
|
+
|
|
6901
|
+
/** One Slide Master view sidebar command. */
|
|
6902
|
+
type MasterViewCrudActionId = 'addLayout' | 'duplicateLayout' | 'deleteLayout' | 'renameLayout' | 'addMaster' | 'duplicateMaster' | 'deleteMaster' | 'renameMaster';
|
|
6903
|
+
/** A framework-neutral descriptor for one sidebar button. */
|
|
6904
|
+
interface MasterViewCrudAction {
|
|
6905
|
+
id: MasterViewCrudActionId;
|
|
6906
|
+
/** i18n key for the button label (`pptx.masterView.<id>`). */
|
|
6907
|
+
labelKey: string;
|
|
6908
|
+
enabled: boolean;
|
|
6909
|
+
/** i18n key explaining why the button is disabled, set only when it is. */
|
|
6910
|
+
disabledReasonKey?: string;
|
|
6911
|
+
}
|
|
6912
|
+
|
|
6859
6913
|
/** Framework-neutral virtual-list range used by every thumbnail sidebar. */
|
|
6860
6914
|
interface VirtualizedRange {
|
|
6861
6915
|
startIndex: number;
|
|
@@ -7320,11 +7374,12 @@ declare function computeHandoutLayout(slideIndices: number[], slidesPerPage: Han
|
|
|
7320
7374
|
*
|
|
7321
7375
|
* No DOM side effects and no `window.print()`: everything is deterministic and
|
|
7322
7376
|
* the binding writes the returned HTML string into a print window. The handout
|
|
7323
|
-
* grid geometry lives in `handout-layout`; this module reuses it.
|
|
7324
|
-
*
|
|
7325
|
-
*
|
|
7326
|
-
*
|
|
7327
|
-
*
|
|
7377
|
+
* grid geometry lives in `handout-layout`; this module reuses it. Handout
|
|
7378
|
+
* master "chrome" (background/header/footer/date/page-number/positioned slide
|
|
7379
|
+
* rects) is resolved by `handout-master-chrome.ts` and painted by
|
|
7380
|
+
* `handout-chrome-html.ts`; escaping helpers live in `html-escape.ts` (both
|
|
7381
|
+
* split out to keep this file under this repo's per-file LOC guideline and to
|
|
7382
|
+
* avoid a circular import between the two).
|
|
7328
7383
|
*/
|
|
7329
7384
|
|
|
7330
7385
|
/** What to print. */
|
|
@@ -7564,6 +7619,70 @@ declare function canSetStrokeWidth(canEdit: boolean, element: PptxElement | null
|
|
|
7564
7619
|
/** The stroke width to show for a selection, defaulted for a shape without one. */
|
|
7565
7620
|
declare function strokeWidthOf(element: PptxElement | null): number;
|
|
7566
7621
|
|
|
7622
|
+
/**
|
|
7623
|
+
* slide-size-rescale.ts: what happens to a deck's content when Design > Slide
|
|
7624
|
+
* Size changes the canvas dimensions.
|
|
7625
|
+
*
|
|
7626
|
+
* PowerPoint offers two responses when a slide-size change no longer matches
|
|
7627
|
+
* the existing content's aspect ratio:
|
|
7628
|
+
* - "Maximize": scale content up to fill the new size (by the LARGER of the
|
|
7629
|
+
* two axis ratios), which can push content outside the new slide bounds.
|
|
7630
|
+
* - "Ensure Fit": scale content down to fit inside the new size (by the
|
|
7631
|
+
* SMALLER of the two axis ratios), which can leave margins.
|
|
7632
|
+
*
|
|
7633
|
+
* Both scale uniformly (one factor, not independent X/Y stretch) and both
|
|
7634
|
+
* centre the scaled content in the new canvas, which is why every element's
|
|
7635
|
+
* position is re-derived from the same `(scale, offsetX, offsetY)` triple
|
|
7636
|
+
* rather than each axis being handled independently.
|
|
7637
|
+
*
|
|
7638
|
+
* Framework-agnostic: no React, Vue, Angular, Svelte or DOM imports.
|
|
7639
|
+
*/
|
|
7640
|
+
|
|
7641
|
+
type SlideSizeRescaleMode = 'maximize' | 'ensureFit';
|
|
7642
|
+
|
|
7643
|
+
type ReadOnlyRecommendationKind = 'modifyVerifier' | 'markedFinal' | null;
|
|
7644
|
+
interface ReadOnlyRecommendation {
|
|
7645
|
+
readonly kind: ReadOnlyRecommendationKind;
|
|
7646
|
+
/** i18n key for the banner/toast a binding shows for this recommendation. */
|
|
7647
|
+
readonly messageKey: string;
|
|
7648
|
+
/** Whether a binding's "read-only" toggle should default to on. */
|
|
7649
|
+
readonly defaultReadOnly: boolean;
|
|
7650
|
+
}
|
|
7651
|
+
|
|
7652
|
+
interface CompatibilityWarningToast {
|
|
7653
|
+
/** Stable per-code id, since toasts are deduped by code (see module docs). */
|
|
7654
|
+
readonly id: string;
|
|
7655
|
+
readonly code: string;
|
|
7656
|
+
readonly severity: 'info' | 'warning';
|
|
7657
|
+
readonly messageKey: string;
|
|
7658
|
+
/** `{{code}}` for the generic fallback key; `undefined` for a mapped code. */
|
|
7659
|
+
readonly params?: Readonly<Record<string, string>>;
|
|
7660
|
+
}
|
|
7661
|
+
|
|
7662
|
+
/**
|
|
7663
|
+
* Inspector option lists + pure patch builders for the three OOXML chart
|
|
7664
|
+
* subtype flags parsed/serialized in this wave: bar3D column/bar shape
|
|
7665
|
+
* (`c:bar3DChart/c:shape`), radar chart style (`c:radarChart/c:radarStyle`),
|
|
7666
|
+
* and surface wireframe (`c:surfaceChart|surface3DChart/c:wireframe`).
|
|
7667
|
+
*
|
|
7668
|
+
* Each `*_OPTIONS` list is `{ value, labelKey }` for a picker control, in the
|
|
7669
|
+
* order PowerPoint itself lists them; each `*Patch` function is a pure
|
|
7670
|
+
* decision function returning the minimal `Partial<PptxChartData>` patch an
|
|
7671
|
+
* inspector commits back onto the loaded chart data, following this repo's
|
|
7672
|
+
* "shared decides, binding only maps" shape (CLAUDE.md Rule 2: a shared
|
|
7673
|
+
* decision function, five thin bindings). No binding-specific code lives
|
|
7674
|
+
* here; a binding only renders `*_OPTIONS` as a picker and calls the matching
|
|
7675
|
+
* patch function on selection.
|
|
7676
|
+
*
|
|
7677
|
+
* @module chart-subtype-options
|
|
7678
|
+
*/
|
|
7679
|
+
|
|
7680
|
+
/** One inspector picker entry: the OOXML value plus its i18n label key. */
|
|
7681
|
+
interface ChartSubtypeOption<T extends string> {
|
|
7682
|
+
value: T;
|
|
7683
|
+
labelKey: string;
|
|
7684
|
+
}
|
|
7685
|
+
|
|
7567
7686
|
/**
|
|
7568
7687
|
* Minimal GIF89a encoder (pure JS, no external dependency) plus pure
|
|
7569
7688
|
* frame-planning helpers — shared by the React, Vue, and Angular bindings.
|
|
@@ -8892,6 +9011,55 @@ declare class CollaborationService {
|
|
|
8892
9011
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CollaborationService>;
|
|
8893
9012
|
}
|
|
8894
9013
|
|
|
9014
|
+
/** The trimmed text plus the mention spans an add/reply submit carries. */
|
|
9015
|
+
interface CommentSubmission {
|
|
9016
|
+
text: string;
|
|
9017
|
+
mentions: PptxCommentMention[];
|
|
9018
|
+
}
|
|
9019
|
+
declare class CommentsPanelComponent {
|
|
9020
|
+
/** The active slide's comments (already filtered to the active slide). */
|
|
9021
|
+
readonly comments: _angular_core.InputSignal<PptxComment[]>;
|
|
9022
|
+
private readonly translate;
|
|
9023
|
+
/** Display name shown in the compose label ("Commenting as …"). */
|
|
9024
|
+
readonly authorName: _angular_core.InputSignal<string>;
|
|
9025
|
+
/** Office 2021 modern comment authors, for the `@`-mention typeahead. */
|
|
9026
|
+
readonly modernCommentAuthors: _angular_core.InputSignal<readonly PptxModernCommentAuthor[]>;
|
|
9027
|
+
/** Emits the trimmed comment text (+ mentions) the user wants to add. */
|
|
9028
|
+
readonly add: _angular_core.OutputEmitterRef<CommentSubmission>;
|
|
9029
|
+
/** Emits the id of a comment the user wants to remove. */
|
|
9030
|
+
readonly remove: _angular_core.OutputEmitterRef<string>;
|
|
9031
|
+
/** Emits the id of a comment whose resolved flag should toggle. */
|
|
9032
|
+
readonly resolve: _angular_core.OutputEmitterRef<string>;
|
|
9033
|
+
/** Emits the parent comment id + trimmed text (+ mentions) of a threaded reply. */
|
|
9034
|
+
readonly reply: _angular_core.OutputEmitterRef<{
|
|
9035
|
+
parentId: string;
|
|
9036
|
+
} & CommentSubmission>;
|
|
9037
|
+
/** Current text typed into the compose textarea. */
|
|
9038
|
+
readonly draft: _angular_core.WritableSignal<string>;
|
|
9039
|
+
/** `@`-mentions recorded in {@link draft} so far. */
|
|
9040
|
+
readonly draftMentions: _angular_core.WritableSignal<PptxCommentMention[]>;
|
|
9041
|
+
/** Whether the draft has non-whitespace content (enables the submit button). */
|
|
9042
|
+
readonly canAdd: _angular_core.Signal<boolean>;
|
|
9043
|
+
/** Id of the comment whose reply composer is open (one at a time). */
|
|
9044
|
+
readonly replyingTo: _angular_core.WritableSignal<string | null>;
|
|
9045
|
+
/** Current text typed into the open reply composer. */
|
|
9046
|
+
readonly replyDraft: _angular_core.WritableSignal<string>;
|
|
9047
|
+
/** `@`-mentions recorded in {@link replyDraft} so far. */
|
|
9048
|
+
readonly replyMentions: _angular_core.WritableSignal<PptxCommentMention[]>;
|
|
9049
|
+
/** Whether the reply draft has content (enables the reply submit button). */
|
|
9050
|
+
readonly canReply: _angular_core.Signal<boolean>;
|
|
9051
|
+
submit(event: Event): void;
|
|
9052
|
+
/** Localized reply-composer placeholder ("Reply to <author>..."). */
|
|
9053
|
+
replyPlaceholder(comment: PptxComment): string;
|
|
9054
|
+
/** Open the reply composer under `parentId` (closing any other composer). */
|
|
9055
|
+
startReply(parentId: string): void;
|
|
9056
|
+
cancelReply(): void;
|
|
9057
|
+
submitReply(parentId: string): void;
|
|
9058
|
+
formatTimestamp(value: string | undefined): string;
|
|
9059
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommentsPanelComponent, never>;
|
|
9060
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommentsPanelComponent, "pptx-comments-panel", never, { "comments": { "alias": "comments"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "modernCommentAuthors": { "alias": "modernCommentAuthors"; "required": false; "isSignal": true; }; }, { "add": "add"; "remove": "remove"; "resolve": "resolve"; "reply": "reply"; }, never, never, true, never>;
|
|
9061
|
+
}
|
|
9062
|
+
|
|
8895
9063
|
interface EditorSectionOperations {
|
|
8896
9064
|
add(afterSlideIndex: number, name: string): void;
|
|
8897
9065
|
rename(sectionId: string, name: string): void;
|
|
@@ -9355,6 +9523,11 @@ declare class LoadContentService {
|
|
|
9355
9523
|
* than silently dropped.
|
|
9356
9524
|
*/
|
|
9357
9525
|
readonly tagCollections: _angular_core.WritableSignal<PptxTagCollection[]>;
|
|
9526
|
+
/**
|
|
9527
|
+
* Office 2021 modern comment authors (`ppt/commentAuthors/`, p188), the
|
|
9528
|
+
* candidate list the comment panel's `@`-mention typeahead matches against.
|
|
9529
|
+
*/
|
|
9530
|
+
readonly modernCommentAuthors: _angular_core.WritableSignal<PptxModernCommentAuthor[]>;
|
|
9358
9531
|
/** Header/footer settings (footer/header/date-time text + format) for field substitution. */
|
|
9359
9532
|
readonly headerFooter: _angular_core.WritableSignal<PptxHeaderFooter | undefined>;
|
|
9360
9533
|
/** Whether the presentation contains digital signatures. */
|
|
@@ -9413,12 +9586,61 @@ declare class LoadContentService {
|
|
|
9413
9586
|
* change is visible to consumers; callers mark the editor dirty.
|
|
9414
9587
|
*/
|
|
9415
9588
|
setPresentationTheme(themePath: string, applyToAllMasters: boolean): Promise<void>;
|
|
9589
|
+
/**
|
|
9590
|
+
* Adopt a new handler + fully-resolved `PptxData` from a Slide Master view
|
|
9591
|
+
* CRUD action (`applyMasterViewCrudAction`'s insert/duplicate/delete/rename
|
|
9592
|
+
* layout or master). Unlike {@link setPresentationTheme}, those functions
|
|
9593
|
+
* perform ZIP surgery and reload through a FRESH `PptxHandler` (see
|
|
9594
|
+
* `master-layout-crud`'s module doc) rather than mutating this one in
|
|
9595
|
+
* place, so the loaded handler itself must be swapped, not just the
|
|
9596
|
+
* derived signals.
|
|
9597
|
+
*
|
|
9598
|
+
* Media Blob URLs are left untouched: the slide array's own image
|
|
9599
|
+
* references are unaffected by a master/layout CRUD action, and a newly
|
|
9600
|
+
* inserted layout carries no images at all.
|
|
9601
|
+
*/
|
|
9602
|
+
adoptMasterViewData(handler: PptxHandler, data: PptxData): void;
|
|
9416
9603
|
private disposeHandler;
|
|
9417
9604
|
private revokeBlobUrls;
|
|
9418
9605
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadContentService, never>;
|
|
9419
9606
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoadContentService>;
|
|
9420
9607
|
}
|
|
9421
9608
|
|
|
9609
|
+
declare class LoadNoticesService {
|
|
9610
|
+
/** Optional so isolated service tests and stubbed injectors keep working. */
|
|
9611
|
+
private readonly loader;
|
|
9612
|
+
/** Whether the loaded deck recommends opening read-only, and why. */
|
|
9613
|
+
readonly recommendation: _angular_core.Signal<ReadOnlyRecommendation>;
|
|
9614
|
+
/** Whether the banner has been hidden ("Edit anyway" or "Dismiss") this load. */
|
|
9615
|
+
private readonly bannerHidden;
|
|
9616
|
+
/** Whether "Edit anyway" has lifted the recommendation's editing lock this load. */
|
|
9617
|
+
private readonly lockLifted;
|
|
9618
|
+
/** Whether the read-only banner should render. */
|
|
9619
|
+
readonly bannerActive: _angular_core.Signal<boolean>;
|
|
9620
|
+
/**
|
|
9621
|
+
* Whether the recommendation is still actively locking editing. Gates the
|
|
9622
|
+
* host viewer's `canEdit`, the same way the Protected View lock does.
|
|
9623
|
+
*/
|
|
9624
|
+
readonly lockActive: _angular_core.Signal<boolean>;
|
|
9625
|
+
/** "Edit anyway": lifts the recommendation's lock and hides the banner. */
|
|
9626
|
+
editAnyway(): void;
|
|
9627
|
+
/** "Dismiss": hides the banner but leaves any lock in place. */
|
|
9628
|
+
dismissBanner(): void;
|
|
9629
|
+
/** Deck-level plus every slide's compatibility warnings, deduped by code. */
|
|
9630
|
+
readonly toasts: _angular_core.Signal<CompatibilityWarningToast[]>;
|
|
9631
|
+
private readonly dismissedToastIds;
|
|
9632
|
+
/** {@link toasts} with per-toast / dismiss-all dismissals applied. */
|
|
9633
|
+
readonly visibleToasts: _angular_core.Signal<CompatibilityWarningToast[]>;
|
|
9634
|
+
/** Dismiss one toast by id. */
|
|
9635
|
+
dismissToast(id: string): void;
|
|
9636
|
+
/** Dismiss every currently-visible toast. */
|
|
9637
|
+
dismissAllToasts(): void;
|
|
9638
|
+
/** Reset both notices' dismissed/lifted state for a newly loaded deck. */
|
|
9639
|
+
resetForLoad(): void;
|
|
9640
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadNoticesService, never>;
|
|
9641
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoadNoticesService>;
|
|
9642
|
+
}
|
|
9643
|
+
|
|
9422
9644
|
/** Which mobile sheet/panel is currently active (highlights its button). */
|
|
9423
9645
|
type MobileBarSheet = 'slides' | 'inspector' | 'comments' | 'notes' | null;
|
|
9424
9646
|
/** Internal action descriptor used to build the bar. */
|
|
@@ -9580,7 +9802,14 @@ declare class PrintService {
|
|
|
9580
9802
|
height: number;
|
|
9581
9803
|
}>,
|
|
9582
9804
|
/** Options > Advanced > "Print hidden slides". Defaults to PowerPoint's own default (excluded). */
|
|
9583
|
-
includeHiddenSlides?: boolean
|
|
9805
|
+
includeHiddenSlides?: boolean,
|
|
9806
|
+
/**
|
|
9807
|
+
* The deck's handout master, consumed for its background, header/footer/
|
|
9808
|
+
* date/page-number placeholders, and (when authored) positioned slide
|
|
9809
|
+
* rects, in the `handouts` print mode. Optional and defaulted to
|
|
9810
|
+
* `undefined` so existing callers keep printing the bare grid.
|
|
9811
|
+
*/
|
|
9812
|
+
handoutMaster?: PptxHandoutMaster): Promise<boolean>;
|
|
9584
9813
|
/**
|
|
9585
9814
|
* Open a print window, write the document, focus, and trigger printing, all
|
|
9586
9815
|
* in one synchronous call. Used by the outline/slides paths, which never
|
|
@@ -9593,6 +9822,25 @@ declare class PrintService {
|
|
|
9593
9822
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PrintService>;
|
|
9594
9823
|
}
|
|
9595
9824
|
|
|
9825
|
+
declare class RecentColorsService {
|
|
9826
|
+
private readonly loader;
|
|
9827
|
+
/** Most-recently-used colours, most-recent-first, `#RRGGBB` uppercase. */
|
|
9828
|
+
readonly recent: _angular_core.WritableSignal<string[]>;
|
|
9829
|
+
/** Seed the row from the deck's own `p:clrMru`. Call once per load. */
|
|
9830
|
+
seed(data: Pick<PptxData, 'mruColors'> | undefined): void;
|
|
9831
|
+
/**
|
|
9832
|
+
* Record a newly-picked colour: moves it to the front of {@link recent},
|
|
9833
|
+
* and writes it straight into the loaded deck's `presentationProperties`
|
|
9834
|
+
* (`p:clrMru`), NOT through `EditorStateService`'s undo history: which
|
|
9835
|
+
* colours are "recent" is picker chrome, not an undoable document edit
|
|
9836
|
+
* (the same reasoning `PowerPointViewerComponent` already applies to the
|
|
9837
|
+
* grid/snap/guides toggles).
|
|
9838
|
+
*/
|
|
9839
|
+
push(hex: string): void;
|
|
9840
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RecentColorsService, never>;
|
|
9841
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<RecentColorsService>;
|
|
9842
|
+
}
|
|
9843
|
+
|
|
9596
9844
|
/**
|
|
9597
9845
|
* Duotone SVG `<filter>` descriptor for Angular templates.
|
|
9598
9846
|
*
|
|
@@ -10357,10 +10605,50 @@ declare class ViewerCustomShowsService {
|
|
|
10357
10605
|
*/
|
|
10358
10606
|
readonly presentationStartIndex: _angular_core.Signal<number>;
|
|
10359
10607
|
/**
|
|
10360
|
-
* The slide a show should OPEN on: the
|
|
10361
|
-
*
|
|
10608
|
+
* The slide a show should OPEN on: the active slide when the show (the
|
|
10609
|
+
* active custom show plus the deck's authored `p:showPr/p:sldRg` range, if
|
|
10610
|
+
* any) includes it, else the closest show slide at or after it, else the
|
|
10611
|
+
* show's own first slide. Read once, when the show starts.
|
|
10612
|
+
*
|
|
10613
|
+
* This is "From Current Slide" / the status-bar "Slide show" button /
|
|
10614
|
+
* `setMode('present')`. A deck authored `p:sldRg st="2" end="3"` used to
|
|
10615
|
+
* open on the editor's active slide unconditionally, which put a slide the
|
|
10616
|
+
* author took out of the show on screen first.
|
|
10617
|
+
*/
|
|
10618
|
+
showEntryIndex(authoredRange?: AuthoredSlideRange | null): number;
|
|
10619
|
+
/**
|
|
10620
|
+
* The show's own first slide ("From Beginning" / F5), honouring the active
|
|
10621
|
+
* custom show and the deck's authored range the same way {@link showEntryIndex}
|
|
10622
|
+
* does. Unlike `showEntryIndex`, this ignores the current active slide
|
|
10623
|
+
* entirely: PowerPoint's "From Beginning" always opens the show's first
|
|
10624
|
+
* slide, even when the editor is parked somewhere else in (or outside) it.
|
|
10625
|
+
*/
|
|
10626
|
+
showFirstIndex(authoredRange?: AuthoredSlideRange | null): number;
|
|
10627
|
+
/**
|
|
10628
|
+
* The show a running `ppaction://customshow?id=<id>[&return=true]` action
|
|
10629
|
+
* left pending: the show + slide to restore once the SUB-show it switched
|
|
10630
|
+
* to runs off its end (PowerPoint's "Resume last slide viewed after showing
|
|
10631
|
+
* this custom show"). `null` when no such action is in flight.
|
|
10632
|
+
*/
|
|
10633
|
+
private readonly pendingReturn;
|
|
10634
|
+
/**
|
|
10635
|
+
* Run `ppaction://customshow?id=<id>[&return=true]`: switch the active
|
|
10636
|
+
* custom show to `customShowId` (an id naming no surviving show is a
|
|
10637
|
+
* no-op, returning `null`) and resolve the deck index its show should open
|
|
10638
|
+
* on. When `returnAfter` is true, remembers the origin show + slide so
|
|
10639
|
+
* {@link consumeReturnAfterOnEnd} can restore it once the sub-show ends.
|
|
10640
|
+
*
|
|
10641
|
+
* @returns The deck index to navigate to, or `null` for an unresolvable id.
|
|
10642
|
+
*/
|
|
10643
|
+
runCustomShow(customShowId: string, returnAfter: boolean): number | null;
|
|
10644
|
+
/**
|
|
10645
|
+
* The running show just reached its end (`endOfShowChange` from the
|
|
10646
|
+
* overlay). If a `runCustomShow(..., returnAfter: true)` is pending,
|
|
10647
|
+
* restores the origin show and reports the origin slide to navigate back
|
|
10648
|
+
* to; otherwise a no-op (`null`), leaving the ordinary end-of-show screen
|
|
10649
|
+
* up.
|
|
10362
10650
|
*/
|
|
10363
|
-
|
|
10651
|
+
consumeReturnAfterOnEnd(): number | null;
|
|
10364
10652
|
/**
|
|
10365
10653
|
* Adopt the loaded deck's authored show selection.
|
|
10366
10654
|
*
|
|
@@ -11001,6 +11289,8 @@ interface PresentationModeHost {
|
|
|
11001
11289
|
readonly canEdit: () => boolean;
|
|
11002
11290
|
readonly promptKeepAnnotations: (map: SlideAnnotationMap) => void;
|
|
11003
11291
|
readonly applyRehearsalTimings: (timings: Record<number, number>) => void;
|
|
11292
|
+
/** The deck's authored `p:showPr/p:sldRg` range, or null for the whole deck. */
|
|
11293
|
+
readonly authoredRange: () => AuthoredSlideRange | null;
|
|
11004
11294
|
}
|
|
11005
11295
|
declare class ViewerPresentationModeService {
|
|
11006
11296
|
private readonly presenterWindow;
|
|
@@ -11026,11 +11316,25 @@ declare class ViewerPresentationModeService {
|
|
|
11026
11316
|
bind(host: PresentationModeHost): void;
|
|
11027
11317
|
private requireHost;
|
|
11028
11318
|
/**
|
|
11029
|
-
* Open the presentation overlay
|
|
11319
|
+
* Open the presentation overlay at `startIndex`, deselecting first so no
|
|
11320
|
+
* edit chrome (selection outline / resize + rotate "Adjust shape" handles)
|
|
11321
|
+
* leaks over the slideshow. The overlay itself
|
|
11030
11322
|
* (`PresentationOverlayComponent`) requests real browser fullscreen once it
|
|
11031
11323
|
* mounts as a result of `presenting` flipping true.
|
|
11032
11324
|
*/
|
|
11325
|
+
private openShow;
|
|
11326
|
+
/**
|
|
11327
|
+
* Open the presentation overlay from the current slide ("From Current
|
|
11328
|
+
* Slide", the status-bar "Slide show" button, `setMode('present')`). Opens
|
|
11329
|
+
* on the active slide when the show (active custom show + the deck's
|
|
11330
|
+
* authored `p:showPr/p:sldRg` range) includes it, else the closest show
|
|
11331
|
+
* slide at or after it, else the show's own first slide.
|
|
11332
|
+
*/
|
|
11033
11333
|
present(): void;
|
|
11334
|
+
/**
|
|
11335
|
+
* "From Beginning" / F5: always opens the show's own first slide, ignoring
|
|
11336
|
+
* where the editor is currently parked.
|
|
11337
|
+
*/
|
|
11034
11338
|
presentFromBeginning(): void;
|
|
11035
11339
|
presentFromCurrent(): void;
|
|
11036
11340
|
toggleSubtitles(): void;
|
|
@@ -11338,6 +11642,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
|
|
|
11338
11642
|
/** Fired when the collaboration/broadcast session stops. Mirrors React/Vue. */
|
|
11339
11643
|
readonly stopCollaboration: _angular_core.OutputEmitterRef<void>;
|
|
11340
11644
|
protected readonly loader: LoadContentService;
|
|
11645
|
+
protected readonly loadNotices: LoadNoticesService;
|
|
11341
11646
|
protected readonly editor: EditorStateService;
|
|
11342
11647
|
private readonly fonts;
|
|
11343
11648
|
private readonly googleWebfonts;
|
|
@@ -11362,6 +11667,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
|
|
|
11362
11667
|
protected readonly xport: ViewerExportService;
|
|
11363
11668
|
protected readonly findReplace: ViewerFindReplaceService;
|
|
11364
11669
|
protected readonly customShowsCtl: ViewerCustomShowsService;
|
|
11670
|
+
protected readonly recentColors: RecentColorsService;
|
|
11365
11671
|
/**
|
|
11366
11672
|
* The `p:showPr/p:sldRg` slide-range restriction, when the deck is authored
|
|
11367
11673
|
* to open into a range (`showSlidesMode === 'range'`) rather than the whole
|
|
@@ -11403,9 +11709,11 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
|
|
|
11403
11709
|
protected readonly protectedViewDismissed: _angular_core.WritableSignal<boolean>;
|
|
11404
11710
|
/**
|
|
11405
11711
|
* Effective edit permission: the host's `canEdit` input gated by Trust
|
|
11406
|
-
* Center > "Open presentations in Protected View"
|
|
11407
|
-
* read-only while enabled
|
|
11408
|
-
*
|
|
11712
|
+
* Center > "Open presentations in Protected View" (forces the deck
|
|
11713
|
+
* read-only while enabled, mirrors PowerPoint, unless the user has lifted
|
|
11714
|
+
* it via `enableEditing()` for this document) and by the deck's own
|
|
11715
|
+
* read-only recommendation (`p:modifyVerifier` / "Mark as Final"; lifted by
|
|
11716
|
+
* the read-only banner's "Edit anyway", see {@link LoadNoticesService}).
|
|
11409
11717
|
*/
|
|
11410
11718
|
protected readonly canEdit: _angular_core.Signal<boolean>;
|
|
11411
11719
|
/** Whether the Protected View banner should show: host allows editing, the option still blocks it, and the user hasn't dismissed it yet. */
|
|
@@ -11615,6 +11923,42 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
|
|
|
11615
11923
|
protected openMasterView(): void;
|
|
11616
11924
|
protected closeMasterView(): void;
|
|
11617
11925
|
protected selectMasterTab(tab: MasterViewTab): void;
|
|
11926
|
+
/**
|
|
11927
|
+
* `ppaction://customshow?id=<id>[&return=true]` clicked during a running
|
|
11928
|
+
* show: switch to the named custom show and open its resolved entry slide.
|
|
11929
|
+
* An id naming no surviving show is a no-op (`resolveCustomShowEntry`
|
|
11930
|
+
* returns `null`).
|
|
11931
|
+
*/
|
|
11932
|
+
protected onPresentationCustomShow(event: {
|
|
11933
|
+
customShowId: string;
|
|
11934
|
+
returnAfter: boolean;
|
|
11935
|
+
}): void;
|
|
11936
|
+
/**
|
|
11937
|
+
* The presentation overlay's end-of-show flag changed. Only relevant on the
|
|
11938
|
+
* rising edge: if a `ppaction://customshow ... &return=true` is pending,
|
|
11939
|
+
* restore the origin show and slide instead of leaving the black end
|
|
11940
|
+
* screen up (`syncFromHost`'s host-forced jump clears it once the new
|
|
11941
|
+
* index lands).
|
|
11942
|
+
*/
|
|
11943
|
+
protected onPresentationEndOfShow(isEnd: boolean): void;
|
|
11944
|
+
/** The Slide Master view sidebar's current selection, in `master-view-crud`'s shape. */
|
|
11945
|
+
protected readonly masterViewTarget: _angular_core.Signal<MasterViewTarget>;
|
|
11946
|
+
/** The Insert/Duplicate/Delete/Rename Layout+Master sidebar commands for the current selection. */
|
|
11947
|
+
protected readonly masterViewCrudActionsList: _angular_core.Signal<MasterViewCrudAction[]>;
|
|
11948
|
+
/**
|
|
11949
|
+
* Run one Slide Master view sidebar CRUD command.
|
|
11950
|
+
*
|
|
11951
|
+
* rename* prompts for a name first (`window.prompt`, matching the pattern
|
|
11952
|
+
* `SlidesPanelComponent`'s section-rename already uses); every command then
|
|
11953
|
+
* runs through `applyMasterViewCrudAction` and, on success, adopts the
|
|
11954
|
+
* returned handler + data through `LoadContentService.adoptMasterViewData`
|
|
11955
|
+
* (that helper reloads through a FRESH `PptxHandler`, so it cannot be
|
|
11956
|
+
* applied as a plain signal patch) and moves the sidebar selection to the
|
|
11957
|
+
* returned target. A failure is surfaced with `window.alert`: Angular has
|
|
11958
|
+
* no generic toast/notice channel for an arbitrary action failure (the
|
|
11959
|
+
* compat-toast stack is load-diagnostics only).
|
|
11960
|
+
*/
|
|
11961
|
+
protected onMasterViewCrudAction(id: MasterViewCrudActionId): Promise<void>;
|
|
11618
11962
|
/**
|
|
11619
11963
|
* Format Background for whichever master-view part is selected.
|
|
11620
11964
|
*
|
|
@@ -11811,17 +12155,26 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
|
|
|
11811
12155
|
* back to Options > General > "User name" before the generic "You".
|
|
11812
12156
|
*/
|
|
11813
12157
|
private commentAuthorName;
|
|
11814
|
-
/**
|
|
11815
|
-
|
|
12158
|
+
/**
|
|
12159
|
+
* Append a comment to the active slide (one history entry).
|
|
12160
|
+
*
|
|
12161
|
+
* `addCommentToList` (shared) has no `mentions` parameter, so the `@`-mention
|
|
12162
|
+
* spans the typeahead recorded are patched onto the newly-appended comment
|
|
12163
|
+
* (the array's last element) here, rather than in the shared helper.
|
|
12164
|
+
*/
|
|
12165
|
+
onCommentAdd(submission: CommentSubmission): void;
|
|
11816
12166
|
/** Remove a comment from the active slide. */
|
|
11817
12167
|
onCommentRemove(id: string): void;
|
|
11818
12168
|
/** Toggle a comment's resolved flag on the active slide. */
|
|
11819
12169
|
onCommentResolve(id: string): void;
|
|
11820
|
-
/**
|
|
12170
|
+
/**
|
|
12171
|
+
* Append a threaded reply under a top-level comment on the active slide.
|
|
12172
|
+
* See {@link onCommentAdd}: `mentions` is patched on afterwards, since
|
|
12173
|
+
* `replyToCommentInList` (shared) has no `mentions` parameter.
|
|
12174
|
+
*/
|
|
11821
12175
|
onCommentReply(event: {
|
|
11822
12176
|
parentId: string;
|
|
11823
|
-
|
|
11824
|
-
}): void;
|
|
12177
|
+
} & CommentSubmission): void;
|
|
11825
12178
|
/**
|
|
11826
12179
|
* Insert a new SmartArt element built from the dialog's chosen preset + item
|
|
11827
12180
|
* texts. The element id is left empty so `EditorStateService.addElement`
|
|
@@ -12238,6 +12591,7 @@ declare class ViewerKeyboardService {
|
|
|
12238
12591
|
private readonly dialogs;
|
|
12239
12592
|
private readonly formatPainter;
|
|
12240
12593
|
private readonly findReplace;
|
|
12594
|
+
private readonly presentationMode;
|
|
12241
12595
|
private host;
|
|
12242
12596
|
/** Wire the host accessors (called once from the component constructor). */
|
|
12243
12597
|
bind(host: KeyboardHost): void;
|
|
@@ -12360,7 +12714,7 @@ declare class ZoomTargetService {
|
|
|
12360
12714
|
* `PowerPointViewerComponent`'s children (ribbon, slide canvas, inspector,
|
|
12361
12715
|
* dialogs, ...) rely on via `inject()`.
|
|
12362
12716
|
*/
|
|
12363
|
-
declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof GoogleWebfontsService, typeof CollaborationService, typeof CustomFontsService, typeof AccessibilityService, typeof AutosaveService, typeof AutosaveRecoveryService, typeof PrintService, typeof IsMobileService, typeof SmartArt3DService, typeof SurfaceChart3DService, typeof BarChart3DService, typeof LineChart3DService, typeof AreaChart3DService, typeof PieChart3DService, typeof FieldContextService, typeof ZoomTargetService, typeof AiPanelStore, typeof ViewerDialogsService, typeof ViewerCompareService, typeof ViewerExportService, typeof ViewerFindReplaceService, typeof ViewerCustomShowsService, typeof ViewerCollaborationSessionService, typeof ViewerCanvasEditingService, typeof ViewerCollabCursorService, typeof ViewerDocumentPropertiesService, typeof ViewerFileIOService, typeof ViewerFormatPainterService, typeof ViewerInspectorPanelService, typeof ViewerKeyboardService, typeof ViewerMobileSheetService, typeof ViewerOptionsService, typeof ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
|
|
12717
|
+
declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof LoadNoticesService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof GoogleWebfontsService, typeof CollaborationService, typeof CustomFontsService, typeof AccessibilityService, typeof AutosaveService, typeof AutosaveRecoveryService, typeof PrintService, typeof IsMobileService, typeof SmartArt3DService, typeof SurfaceChart3DService, typeof BarChart3DService, typeof LineChart3DService, typeof AreaChart3DService, typeof PieChart3DService, typeof FieldContextService, typeof RecentColorsService, typeof ZoomTargetService, typeof AiPanelStore, typeof ViewerDialogsService, typeof ViewerCompareService, typeof ViewerExportService, typeof ViewerFindReplaceService, typeof ViewerCustomShowsService, typeof ViewerCollaborationSessionService, typeof ViewerCanvasEditingService, typeof ViewerCollabCursorService, typeof ViewerDocumentPropertiesService, typeof ViewerFileIOService, typeof ViewerFormatPainterService, typeof ViewerInspectorPanelService, typeof ViewerKeyboardService, typeof ViewerMobileSheetService, typeof ViewerOptionsService, typeof ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
|
|
12364
12718
|
|
|
12365
12719
|
/** Lifecycle of the AI session bootstrap. */
|
|
12366
12720
|
type AiChatInitState = 'checking' | 'unavailable' | 'ready' | 'error';
|
|
@@ -12756,9 +13110,16 @@ declare class RibbonDrawSectionComponent {
|
|
|
12756
13110
|
readonly drawingColor: _angular_core.InputSignal<string>;
|
|
12757
13111
|
readonly drawingWidth: _angular_core.InputSignal<number>;
|
|
12758
13112
|
readonly drawToolChange: _angular_core.OutputEmitterRef<DrawToolState>;
|
|
13113
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
13114
|
+
private readonly recentColors;
|
|
12759
13115
|
protected readonly drawTools: readonly DrawToolDef[];
|
|
12760
13116
|
protected selectTool(tool: DrawTool$1): void;
|
|
12761
13117
|
protected onColorInput(event: Event): void;
|
|
13118
|
+
/**
|
|
13119
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
13120
|
+
* pen colour into the shared "Recent colours" list.
|
|
13121
|
+
*/
|
|
13122
|
+
protected onColorCommit(event: Event): void;
|
|
12762
13123
|
protected onWidthInput(event: Event): void;
|
|
12763
13124
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonDrawSectionComponent, never>;
|
|
12764
13125
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonDrawSectionComponent, "pptx-ribbon-draw-section", never, { "activeTool": { "alias": "activeTool"; "required": false; "isSignal": true; }; "drawingColor": { "alias": "drawingColor"; "required": false; "isSignal": true; }; "drawingWidth": { "alias": "drawingWidth"; "required": false; "isSignal": true; }; }, { "drawToolChange": "drawToolChange"; }, never, never, true, never>;
|
|
@@ -15617,10 +15978,9 @@ interface ShowNavigatorDeps {
|
|
|
15617
15978
|
*/
|
|
15618
15979
|
activeCustomShow?: () => ActiveShow;
|
|
15619
15980
|
/**
|
|
15620
|
-
* The `p:showPr/p:sldRg`
|
|
15621
|
-
*
|
|
15622
|
-
*
|
|
15623
|
-
* pre-filtered slide array.
|
|
15981
|
+
* The `p:showPr/p:sldRg` range, when the deck opens into a range rather than
|
|
15982
|
+
* the whole deck or a custom show. Applied like `activeCustomShow`: a filter
|
|
15983
|
+
* on the navigable order, not a pre-filtered slide array.
|
|
15624
15984
|
*/
|
|
15625
15985
|
authoredRange?: () => AuthoredRange;
|
|
15626
15986
|
/** The slide at the CURRENT index (a computed over `currentIndex`). */
|
|
@@ -15633,16 +15993,14 @@ interface ShowNavigatorDeps {
|
|
|
15633
15993
|
/** Ask the host to end the show; the host guards against double-closing. */
|
|
15634
15994
|
requestClose: () => void;
|
|
15635
15995
|
/**
|
|
15636
|
-
* File > Options > Advanced > "End with black slide". PowerPoint's default
|
|
15637
|
-
*
|
|
15638
|
-
*
|
|
15639
|
-
* the show immediately instead. Undefined means the PowerPoint default.
|
|
15996
|
+
* File > Options > Advanced > "End with black slide". PowerPoint's default is
|
|
15997
|
+
* ON: running past the last slide raises a black end screen and only the NEXT
|
|
15998
|
+
* forward input ends the show; off ends the show immediately instead.
|
|
15640
15999
|
*/
|
|
15641
16000
|
endWithBlackSlide?: () => boolean | undefined;
|
|
15642
16001
|
/**
|
|
15643
|
-
* Set Up Slide Show > "Loop continuously until 'Esc'"
|
|
15644
|
-
*
|
|
15645
|
-
* raising the end-of-show screen (or exiting, per `endWithBlackSlide`).
|
|
16002
|
+
* Set Up Slide Show > "Loop continuously until 'Esc'": wraps to the show's
|
|
16003
|
+
* first slide instead of raising the end screen (or exiting).
|
|
15646
16004
|
*/
|
|
15647
16005
|
loopContinuously?: () => boolean | undefined;
|
|
15648
16006
|
}
|
|
@@ -15651,27 +16009,26 @@ declare class PresentationShowNavigator {
|
|
|
15651
16009
|
/** Zero-based index into `slides()`. */
|
|
15652
16010
|
readonly currentIndex: _angular_core.WritableSignal<number>;
|
|
15653
16011
|
/**
|
|
15654
|
-
* True once the show has run past its last slide and the black
|
|
15655
|
-
*
|
|
15656
|
-
*
|
|
15657
|
-
*
|
|
16012
|
+
* True once the show has run past its last slide and the black end screen is
|
|
16013
|
+
* up: while it is up the next input either goes nowhere (backward) or ends
|
|
16014
|
+
* the show (forward), so a stuck deck must surface this rather than swallow
|
|
16015
|
+
* every advance.
|
|
15658
16016
|
*/
|
|
15659
16017
|
readonly endOfShow: _angular_core.WritableSignal<boolean>;
|
|
15660
16018
|
/** Active slide-transition animation, or null when none is playing. */
|
|
15661
16019
|
readonly activeTransition: _angular_core.WritableSignal<ActiveSlideTransition | null>;
|
|
15662
16020
|
/**
|
|
15663
|
-
* Set just before a BACKWARD
|
|
16021
|
+
* Set just before a BACKWARD change so the host's slide effect seeds the
|
|
15664
16022
|
* incoming slide as fully built. Read-and-cleared via
|
|
15665
16023
|
* {@link takePendingCompletedEntry}.
|
|
15666
16024
|
*/
|
|
15667
16025
|
private pendingCompletedEntry;
|
|
15668
16026
|
/** Pending `p:transition/@advTm` auto-advance timer for the current slide. */
|
|
15669
16027
|
private autoAdvanceTimer;
|
|
16028
|
+
/** Deck index before each committed change; backs {@link goToLastViewed}. */
|
|
16029
|
+
private previousIndex;
|
|
15670
16030
|
constructor(deps: ShowNavigatorDeps);
|
|
15671
|
-
/**
|
|
15672
|
-
* Consume the "entered backward" flag. The host's per-slide effect asks once
|
|
15673
|
-
* per slide change, so this both reads and clears it.
|
|
15674
|
-
*/
|
|
16031
|
+
/** Consume the "entered backward" flag: reads and clears it in one call. */
|
|
15675
16032
|
takePendingCompletedEntry(): boolean;
|
|
15676
16033
|
/**
|
|
15677
16034
|
* Adopt an index pushed in by the host (its `startIndex` input, which an
|
|
@@ -15680,30 +16037,29 @@ declare class PresentationShowNavigator {
|
|
|
15680
16037
|
*/
|
|
15681
16038
|
syncFromHost(requestedIndex: number): void;
|
|
15682
16039
|
/**
|
|
15683
|
-
*
|
|
15684
|
-
*
|
|
15685
|
-
*
|
|
15686
|
-
|
|
16040
|
+
* Jump back to the slide the show was on immediately before the current one
|
|
16041
|
+
* (`ppaction://hlinkshowjump?jump=lastslideviewed`). A no-op before any
|
|
16042
|
+
* navigation has happened yet.
|
|
16043
|
+
*/
|
|
16044
|
+
goToLastViewed(): void;
|
|
16045
|
+
/**
|
|
16046
|
+
* (Re)arm PowerPoint's "Advance slide: After <n>" timer, always cancelling
|
|
16047
|
+
* whatever was pending first: a manual advance must never leave a stale
|
|
16048
|
+
* timer running that skips the slide the presenter just moved to.
|
|
15687
16049
|
*/
|
|
15688
16050
|
armAutoAdvance(delayMs: number | undefined): void;
|
|
15689
16051
|
/** Cancel any pending timed auto-advance (also called on teardown). */
|
|
15690
16052
|
clearAutoAdvance(): void;
|
|
15691
16053
|
navigate(direction: ShowDirection): void;
|
|
15692
16054
|
/**
|
|
15693
|
-
* Jump directly to `index` (clamped
|
|
15694
|
-
*
|
|
15695
|
-
*
|
|
15696
|
-
* A jump ENTERS the target slide, so PowerPoint plays that slide's
|
|
15697
|
-
* transition exactly as a forward step does. Committing with `null` here is
|
|
15698
|
-
* why a deck navigated by clicking its own on-slide links showed no morph at
|
|
15699
|
-
* all while the same transition played fine on PageDown.
|
|
16055
|
+
* Jump directly to `index` (clamped). Used by zoom tiles and by on-slide
|
|
16056
|
+
* Action Settings (`ppaction://hlinksldjump`); ENTERS the target slide, so
|
|
16057
|
+
* PowerPoint plays its transition exactly as a forward step does.
|
|
15700
16058
|
*/
|
|
15701
16059
|
goToSlide(index: number): void;
|
|
15702
16060
|
/**
|
|
15703
16061
|
* The single place a slide change becomes visible: set the transition, move
|
|
15704
|
-
* the index, retarget the annotation layer, and tell the host.
|
|
15705
|
-
* points share it so a change to one can never silently skip a step in the
|
|
15706
|
-
* other (they had drifted apart as four repeated statements before).
|
|
16062
|
+
* the index, retarget the annotation layer, and tell the host.
|
|
15707
16063
|
*/
|
|
15708
16064
|
private commit;
|
|
15709
16065
|
}
|
|
@@ -15754,6 +16110,13 @@ interface PresentationInputDeps {
|
|
|
15754
16110
|
* with the option off.
|
|
15755
16111
|
*/
|
|
15756
16112
|
confirmExternalHyperlink?: (href: string) => boolean;
|
|
16113
|
+
/**
|
|
16114
|
+
* `ppaction://customshow?id=<id>[&return=true]`: run the named custom show.
|
|
16115
|
+
* The host resolves `customShowId` against its own custom-show registry (an
|
|
16116
|
+
* id naming no surviving show is a no-op) and, when `returnAfter` is true,
|
|
16117
|
+
* restores the origin show + slide once the sub-show runs off its end.
|
|
16118
|
+
*/
|
|
16119
|
+
runCustomShow?: (customShowId: string, returnAfter: boolean) => void;
|
|
15757
16120
|
}
|
|
15758
16121
|
declare class PresentationInputController {
|
|
15759
16122
|
private readonly deps;
|
|
@@ -15889,6 +16252,24 @@ declare class PresentationOverlayComponent implements OnInit {
|
|
|
15889
16252
|
* host can offer the keep/discard prompt (mirrors React's exit flow).
|
|
15890
16253
|
*/
|
|
15891
16254
|
readonly annotationsExit: _angular_core.OutputEmitterRef<SlideAnnotationMap>;
|
|
16255
|
+
/**
|
|
16256
|
+
* `ppaction://customshow?id=<id>[&return=true]`: the host resolves the id
|
|
16257
|
+
* against its own custom-show registry (this overlay only knows the
|
|
16258
|
+
* CURRENTLY active show's membership, via `activeCustomShow`) and, when
|
|
16259
|
+
* `returnAfter` is true, restores the origin show + slide once the
|
|
16260
|
+
* sub-show runs off its end (see `endOfShowChange` below).
|
|
16261
|
+
*/
|
|
16262
|
+
readonly customShowRequest: _angular_core.OutputEmitterRef<{
|
|
16263
|
+
customShowId: string;
|
|
16264
|
+
returnAfter: boolean;
|
|
16265
|
+
}>;
|
|
16266
|
+
/**
|
|
16267
|
+
* Mirrors the navigator's `endOfShow` flag. The host listens for this to
|
|
16268
|
+
* implement `ppaction://customshow`'s "return after": ending the show while
|
|
16269
|
+
* a return is pending means restore the origin instead of raising the
|
|
16270
|
+
* black end screen (which `syncFromHost`'s host-forced jump then clears).
|
|
16271
|
+
*/
|
|
16272
|
+
readonly endOfShowChange: _angular_core.OutputEmitterRef<boolean>;
|
|
15892
16273
|
/** PowerPoint's Ctrl+M: hide ink markup without discarding the strokes. */
|
|
15893
16274
|
protected readonly inkMarkupVisible: _angular_core.WritableSignal<boolean>;
|
|
15894
16275
|
/** Click-stepped element-animation playback for the current slide. */
|
|
@@ -16056,7 +16437,7 @@ declare class PresentationOverlayComponent implements OnInit {
|
|
|
16056
16437
|
private runChromeAction;
|
|
16057
16438
|
private emitClosed;
|
|
16058
16439
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresentationOverlayComponent, never>;
|
|
16059
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresentationOverlayComponent, "pptx-presentation-overlay", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "isSignal": true; }; "authoredRange": { "alias": "authoredRange"; "required": false; "isSignal": true; }; "loopContinuously": { "alias": "loopContinuously"; "required": false; "isSignal": true; }; "showWithAnimation": { "alias": "showWithAnimation"; "required": false; "isSignal": true; }; "useTimings": { "alias": "useTimings"; "required": false; "isSignal": true; }; "subtitlesVisible": { "alias": "subtitlesVisible"; "required": false; "isSignal": true; }; "sessionEnded": { "alias": "sessionEnded"; "required": false; "isSignal": true; }; "endWithBlackSlide": { "alias": "endWithBlackSlide"; "required": false; "isSignal": true; }; "presenterMode": { "alias": "presenterMode"; "required": false; "isSignal": true; }; "showMenuOnRightClick": { "alias": "showMenuOnRightClick"; "required": false; "isSignal": true; }; "showPopupToolbar": { "alias": "showPopupToolbar"; "required": false; "isSignal": true; }; }, { "indexChange": "indexChange"; "closed": "closed"; "subtitlesChange": "subtitlesChange"; "presenterViewToggle": "presenterViewToggle"; "annotationsExit": "annotationsExit"; }, never, never, true, never>;
|
|
16440
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresentationOverlayComponent, "pptx-presentation-overlay", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "isSignal": true; }; "authoredRange": { "alias": "authoredRange"; "required": false; "isSignal": true; }; "loopContinuously": { "alias": "loopContinuously"; "required": false; "isSignal": true; }; "showWithAnimation": { "alias": "showWithAnimation"; "required": false; "isSignal": true; }; "useTimings": { "alias": "useTimings"; "required": false; "isSignal": true; }; "subtitlesVisible": { "alias": "subtitlesVisible"; "required": false; "isSignal": true; }; "sessionEnded": { "alias": "sessionEnded"; "required": false; "isSignal": true; }; "endWithBlackSlide": { "alias": "endWithBlackSlide"; "required": false; "isSignal": true; }; "presenterMode": { "alias": "presenterMode"; "required": false; "isSignal": true; }; "showMenuOnRightClick": { "alias": "showMenuOnRightClick"; "required": false; "isSignal": true; }; "showPopupToolbar": { "alias": "showPopupToolbar"; "required": false; "isSignal": true; }; }, { "indexChange": "indexChange"; "closed": "closed"; "subtitlesChange": "subtitlesChange"; "presenterViewToggle": "presenterViewToggle"; "annotationsExit": "annotationsExit"; "customShowRequest": "customShowRequest"; "endOfShowChange": "endOfShowChange"; }, never, never, true, never>;
|
|
16060
16441
|
}
|
|
16061
16442
|
|
|
16062
16443
|
/**
|
|
@@ -16267,6 +16648,8 @@ declare class InspectorPanelComponent {
|
|
|
16267
16648
|
protected readonly editor: EditorStateService;
|
|
16268
16649
|
/** Reactive viewport / pointer flags (drives the bottom-sheet layout). */
|
|
16269
16650
|
protected readonly mobile: IsMobileService;
|
|
16651
|
+
/** "Recent colours" row backing the fill/stroke/text colour pickers below. */
|
|
16652
|
+
protected readonly recentColors: RecentColorsService;
|
|
16270
16653
|
/**
|
|
16271
16654
|
* Root class list: gains the `is-mobile` modifier under the mobile
|
|
16272
16655
|
* breakpoint so the panel becomes a full-width, touch-sized bottom sheet.
|
|
@@ -16350,8 +16733,17 @@ declare class InspectorPanelComponent {
|
|
|
16350
16733
|
protected onRotationChange(event: Event): void;
|
|
16351
16734
|
protected onOpacityChange(event: Event): void;
|
|
16352
16735
|
protected onFillColorChange(event: Event): void;
|
|
16736
|
+
/** Recent-colours row pick: commits through the same path as the native picker. */
|
|
16737
|
+
protected onFillColorPick(color: string): void;
|
|
16738
|
+
private commitFillColor;
|
|
16353
16739
|
protected onStrokeColorChange(event: Event): void;
|
|
16740
|
+
/** Recent-colours row pick: commits through the same path as the native picker. */
|
|
16741
|
+
protected onStrokeColorPick(color: string): void;
|
|
16742
|
+
private commitStrokeColor;
|
|
16354
16743
|
protected onTextColorChange(event: Event): void;
|
|
16744
|
+
/** Recent-colours row pick: commits through the same path as the native picker. */
|
|
16745
|
+
protected onTextColorPick(color: string): void;
|
|
16746
|
+
private commitTextColor;
|
|
16355
16747
|
protected onFontSizeChange(event: Event): void;
|
|
16356
16748
|
protected onBoldToggle(): void;
|
|
16357
16749
|
protected onItalicToggle(): void;
|
|
@@ -16393,14 +16785,15 @@ declare class SlideDefaultInspectorComponent {
|
|
|
16393
16785
|
readonly selectedElement: _angular_core.InputSignal<PptxElement | null>;
|
|
16394
16786
|
/** The active slide's comments (host-owned; history-aware writes stay there). */
|
|
16395
16787
|
readonly comments: _angular_core.InputSignal<PptxComment[]>;
|
|
16788
|
+
/** Office 2021 modern comment authors, for the `@`-mention typeahead. */
|
|
16789
|
+
readonly modernCommentAuthors: _angular_core.InputSignal<readonly PptxModernCommentAuthor[]>;
|
|
16396
16790
|
/** Re-emitted comments-panel events (the host owns the comment writes). */
|
|
16397
|
-
readonly commentAdd: _angular_core.OutputEmitterRef<
|
|
16791
|
+
readonly commentAdd: _angular_core.OutputEmitterRef<CommentSubmission>;
|
|
16398
16792
|
readonly commentRemove: _angular_core.OutputEmitterRef<string>;
|
|
16399
16793
|
readonly commentResolve: _angular_core.OutputEmitterRef<string>;
|
|
16400
16794
|
readonly commentReply: _angular_core.OutputEmitterRef<{
|
|
16401
16795
|
parentId: string;
|
|
16402
|
-
|
|
16403
|
-
}>;
|
|
16796
|
+
} & CommentSubmission>;
|
|
16404
16797
|
protected readonly editor: EditorStateService;
|
|
16405
16798
|
protected readonly canvasEditing: ViewerCanvasEditingService;
|
|
16406
16799
|
protected readonly inspectorPanel: ViewerInspectorPanelService;
|
|
@@ -16415,7 +16808,7 @@ declare class SlideDefaultInspectorComponent {
|
|
|
16415
16808
|
*/
|
|
16416
16809
|
protected readonly layerRows: _angular_core.Signal<LayerRow[]>;
|
|
16417
16810
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideDefaultInspectorComponent, never>;
|
|
16418
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideDefaultInspectorComponent, "pptx-slide-default-inspector", never, { "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "comments": { "alias": "comments"; "required": false; "isSignal": true; }; }, { "commentAdd": "commentAdd"; "commentRemove": "commentRemove"; "commentResolve": "commentResolve"; "commentReply": "commentReply"; }, never, never, true, never>;
|
|
16811
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideDefaultInspectorComponent, "pptx-slide-default-inspector", never, { "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "comments": { "alias": "comments"; "required": false; "isSignal": true; }; "modernCommentAuthors": { "alias": "modernCommentAuthors"; "required": false; "isSignal": true; }; }, { "commentAdd": "commentAdd"; "commentRemove": "commentRemove"; "commentResolve": "commentResolve"; "commentReply": "commentReply"; }, never, never, true, never>;
|
|
16419
16812
|
}
|
|
16420
16813
|
|
|
16421
16814
|
declare class PresentationPropertiesPanelComponent {
|
|
@@ -16474,17 +16867,36 @@ declare class SlideSizeCardComponent {
|
|
|
16474
16867
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
16475
16868
|
private readonly loader;
|
|
16476
16869
|
private readonly editor;
|
|
16870
|
+
private readonly translate;
|
|
16477
16871
|
protected readonly CUSTOM_PRESET_VALUE = "";
|
|
16478
16872
|
protected readonly presets: readonly SlideSizePreset[];
|
|
16479
16873
|
protected readonly orientations: readonly SlideSizeOrientation[];
|
|
16480
16874
|
protected readonly size: _angular_core.WritableSignal<pptx_angular_viewer.CanvasSize>;
|
|
16481
16875
|
protected readonly selection: _angular_core.Signal<SlideSizeSelectionDescriptor>;
|
|
16482
16876
|
protected readonly selectedPresetValue: _angular_core.Signal<string>;
|
|
16877
|
+
/**
|
|
16878
|
+
* A confirmed size that differs from the current one and has at least one
|
|
16879
|
+
* element to rescale, awaiting the user's Maximize/Ensure-Fit choice. `null`
|
|
16880
|
+
* once answered (or when no prompt was needed) so the inline prompt hides.
|
|
16881
|
+
*/
|
|
16882
|
+
protected readonly pendingResize: _angular_core.WritableSignal<SlideSizeEmu | null>;
|
|
16483
16883
|
protected onPresetChange(event: Event): void;
|
|
16484
16884
|
protected onOrientation(orientation: SlideSizeOrientation): void;
|
|
16485
16885
|
protected onChange(event: Event, dim: 'width' | 'height'): void;
|
|
16486
|
-
/**
|
|
16886
|
+
/**
|
|
16887
|
+
* PowerPoint's Maximize/Ensure-Fit prompt: choosing a mode rescales every
|
|
16888
|
+
* slide's elements (one undoable history entry via
|
|
16889
|
+
* `EditorStateService.applyReplacement`) before the new size itself commits.
|
|
16890
|
+
*/
|
|
16891
|
+
protected onRescaleChoice(pending: SlideSizeEmu, mode: SlideSizeRescaleMode): void;
|
|
16892
|
+
/**
|
|
16893
|
+
* Commit a confirmed size, prompting first (PowerPoint's Maximize/Ensure
|
|
16894
|
+
* Fit) when it differs from the current size AND the deck has at least one
|
|
16895
|
+
* element anywhere to rescale; an empty deck commits directly, as before.
|
|
16896
|
+
*/
|
|
16487
16897
|
private apply;
|
|
16898
|
+
/** Commit an EMU size and the canvas size it implies, together. */
|
|
16899
|
+
private commit;
|
|
16488
16900
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideSizeCardComponent, never>;
|
|
16489
16901
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideSizeCardComponent, "pptx-slide-size-card", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16490
16902
|
}
|
|
@@ -16544,6 +16956,8 @@ declare class SlideBackgroundCardComponent {
|
|
|
16544
16956
|
private readonly editor;
|
|
16545
16957
|
private readonly loader;
|
|
16546
16958
|
private readonly translate;
|
|
16959
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
16960
|
+
private readonly recentColors;
|
|
16547
16961
|
protected readonly imageAccept = "image/png,image/jpeg,image/gif,image/webp,image/svg+xml";
|
|
16548
16962
|
protected readonly slide: _angular_core.Signal<PptxSlide | undefined>;
|
|
16549
16963
|
/** Stable per-slide key so the colour input reseeds only on slide change. */
|
|
@@ -16681,6 +17095,8 @@ declare class GradientPickerComponent {
|
|
|
16681
17095
|
* EditorStateService.updateElement(slideIndex, element().id, patch).
|
|
16682
17096
|
*/
|
|
16683
17097
|
readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
|
|
17098
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17099
|
+
private readonly recentColors;
|
|
16684
17100
|
/** Derived gradient state from the current element. */
|
|
16685
17101
|
protected readonly state: _angular_core.Signal<GradientState>;
|
|
16686
17102
|
/** CSS gradient string for the preview strip. */
|
|
@@ -16705,6 +17121,8 @@ declare class EffectsPanelComponent {
|
|
|
16705
17121
|
* The orchestrator should call EditorStateService.updateElement(slideIndex, element().id, patch).
|
|
16706
17122
|
*/
|
|
16707
17123
|
readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
|
|
17124
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17125
|
+
private readonly recentColors;
|
|
16708
17126
|
/** Derived EffectsState from the current element. */
|
|
16709
17127
|
protected readonly state: _angular_core.Signal<EffectsState>;
|
|
16710
17128
|
/** Stable key for keying inputs to the current element (prevents caret-reset). */
|
|
@@ -16769,6 +17187,8 @@ declare class Text3DPanelComponent {
|
|
|
16769
17187
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
16770
17188
|
/** A partial-element patch for the orchestrator to commit (one history entry). */
|
|
16771
17189
|
readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
|
|
17190
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17191
|
+
private readonly recentColors;
|
|
16772
17192
|
protected readonly materialPresets: readonly {
|
|
16773
17193
|
value: MaterialPresetType | "";
|
|
16774
17194
|
label: string;
|
|
@@ -16953,6 +17373,8 @@ declare class TableCellFormattingComponent {
|
|
|
16953
17373
|
/** Emits the fully-updated element after any edit. */
|
|
16954
17374
|
readonly elementChange: _angular_core.OutputEmitterRef<TablePptxElement>;
|
|
16955
17375
|
private readonly selection;
|
|
17376
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17377
|
+
private readonly recentColors;
|
|
16956
17378
|
protected readonly textToggles: ReadonlyArray<{
|
|
16957
17379
|
key: 'bold' | 'italic' | 'underline';
|
|
16958
17380
|
label: string;
|
|
@@ -16980,6 +17402,11 @@ declare class TableCellFormattingComponent {
|
|
|
16980
17402
|
protected widthOf(key: NumKey): number;
|
|
16981
17403
|
protected toggle(key: 'bold' | 'italic' | 'underline'): void;
|
|
16982
17404
|
protected onColor(key: ColorKey, event: Event): void;
|
|
17405
|
+
/**
|
|
17406
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
17407
|
+
* colour into the shared "Recent colours" list.
|
|
17408
|
+
*/
|
|
17409
|
+
protected pushRecentColor(event: Event): void;
|
|
16983
17410
|
protected onNumber(key: NumKey, event: Event): void;
|
|
16984
17411
|
/** Merge a style patch into the selected cell and emit the updated element. */
|
|
16985
17412
|
protected updateStyle(patch: Partial<PptxTableCellStyle>): void;
|
|
@@ -17013,6 +17440,8 @@ declare class TableCellAdvancedFillComponent {
|
|
|
17013
17440
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
17014
17441
|
/** Emits a partial style patch to merge into the cell. */
|
|
17015
17442
|
readonly styleChange: _angular_core.OutputEmitterRef<Partial<PptxTableCellStyle>>;
|
|
17443
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17444
|
+
private readonly recentColors;
|
|
17016
17445
|
protected readonly fillModes: {
|
|
17017
17446
|
value: "image" | "none" | "solid" | "gradient" | "pattern";
|
|
17018
17447
|
i18nKey: string;
|
|
@@ -17049,6 +17478,11 @@ declare class TableCellAdvancedFillComponent {
|
|
|
17049
17478
|
protected onPatternFg(event: Event): void;
|
|
17050
17479
|
protected onPatternBg(event: Event): void;
|
|
17051
17480
|
protected onMargin(key: 'marginTop' | 'marginBottom' | 'marginLeft' | 'marginRight', event: Event): void;
|
|
17481
|
+
/**
|
|
17482
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
17483
|
+
* colour into the shared "Recent colours" list.
|
|
17484
|
+
*/
|
|
17485
|
+
protected pushRecentColor(event: Event): void;
|
|
17052
17486
|
private updateStop;
|
|
17053
17487
|
private emitGradient;
|
|
17054
17488
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableCellAdvancedFillComponent, never>;
|
|
@@ -17098,6 +17532,8 @@ declare class ChartDataEditorComponent {
|
|
|
17098
17532
|
private readonly viewerOpts;
|
|
17099
17533
|
private readonly host;
|
|
17100
17534
|
private readonly injector;
|
|
17535
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17536
|
+
private readonly recentColors;
|
|
17101
17537
|
/**
|
|
17102
17538
|
* File > Options > Advanced > "Properties follow chart data point for
|
|
17103
17539
|
* current workbook". Falls back to PowerPoint's own default (`true`) when
|
|
@@ -17137,6 +17573,11 @@ declare class ChartDataEditorComponent {
|
|
|
17137
17573
|
protected onAddSeries(): void;
|
|
17138
17574
|
protected onRemoveLastSeries(): void;
|
|
17139
17575
|
protected onRemoveSeries(seriesIndex: number): void;
|
|
17576
|
+
/**
|
|
17577
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
17578
|
+
* series colour into the shared "Recent colours" list.
|
|
17579
|
+
*/
|
|
17580
|
+
protected pushRecentColor(event: Event): void;
|
|
17140
17581
|
protected onAddCategory(): void;
|
|
17141
17582
|
protected onRemoveLastCategory(): void;
|
|
17142
17583
|
protected onRemoveCategory(catIndex: number): void;
|
|
@@ -17179,7 +17620,14 @@ declare class ChartDisplayOptionsComponent {
|
|
|
17179
17620
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
17180
17621
|
readonly elementChange: _angular_core.OutputEmitterRef<ChartPptxElement>;
|
|
17181
17622
|
protected readonly legendPositions: readonly ChartOption<string>[];
|
|
17623
|
+
protected readonly bar3DShapeOptions: readonly ChartSubtypeOption<PptxBar3DShape>[];
|
|
17624
|
+
protected readonly radarStyleOptions: readonly ChartSubtypeOption<NonNullable<"marker" | "standard" | "filled" | undefined>>[];
|
|
17625
|
+
protected readonly surfaceWireframeOptions: readonly ChartSubtypeOption<"true" | "false">[];
|
|
17182
17626
|
protected readonly style: _angular_core.Signal<pptx_viewer_core.PptxChartStyle>;
|
|
17627
|
+
protected readonly chartData: _angular_core.Signal<PptxChartData | undefined>;
|
|
17628
|
+
protected readonly isBar3D: _angular_core.Signal<boolean>;
|
|
17629
|
+
protected readonly isRadar: _angular_core.Signal<boolean>;
|
|
17630
|
+
protected readonly isSurface: _angular_core.Signal<boolean>;
|
|
17183
17631
|
/**
|
|
17184
17632
|
* Read from the primary value axis's `majorGridlines`, matching what the
|
|
17185
17633
|
* cartesian renderer actually draws; `style.hasGridlines` alone is a legacy
|
|
@@ -17192,6 +17640,9 @@ declare class ChartDisplayOptionsComponent {
|
|
|
17192
17640
|
protected onLegendPosition(event: Event): void;
|
|
17193
17641
|
protected onToggleGridlines(event: Event): void;
|
|
17194
17642
|
protected onToggleDataLabels(event: Event): void;
|
|
17643
|
+
protected onBar3DShape(event: Event): void;
|
|
17644
|
+
protected onRadarStyle(event: Event): void;
|
|
17645
|
+
protected onSurfaceWireframe(event: Event): void;
|
|
17195
17646
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartDisplayOptionsComponent, never>;
|
|
17196
17647
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartDisplayOptionsComponent, "pptx-chart-display-options", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "elementChange": "elementChange"; }, never, never, true, never>;
|
|
17197
17648
|
}
|
|
@@ -17255,11 +17706,19 @@ declare class ChartAxisStyleOptionsComponent {
|
|
|
17255
17706
|
readonly element: _angular_core.InputSignal<ChartPptxElement>;
|
|
17256
17707
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
17257
17708
|
readonly elementChange: _angular_core.OutputEmitterRef<ChartPptxElement>;
|
|
17709
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17710
|
+
private readonly recentColors;
|
|
17258
17711
|
protected readonly dashOptions: readonly ChartOption<ChartGridlineDashValue>[];
|
|
17259
17712
|
protected readonly gridlineKinds: readonly ["major", "minor"];
|
|
17713
|
+
/**
|
|
17714
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
17715
|
+
* colour into the shared "Recent colours" list.
|
|
17716
|
+
*/
|
|
17717
|
+
protected pushRecentColor(event: Event): void;
|
|
17260
17718
|
protected readonly rows: _angular_core.Signal<AxisRow[]>;
|
|
17261
17719
|
protected gridlineEnabled(axis: PptxChartAxisFormatting, which: 'major' | 'minor'): boolean;
|
|
17262
17720
|
protected gridlineSpPr(axis: PptxChartAxisFormatting, which: 'major' | 'minor'): pptx_viewer_core.PptxChartShapeProps | undefined;
|
|
17721
|
+
protected gridDash(axis: PptxChartAxisFormatting, which: 'major' | 'minor'): string;
|
|
17263
17722
|
protected onLogScale(axisType: PptxChartAxisType, axis: PptxChartAxisFormatting, event: Event): void;
|
|
17264
17723
|
protected onLogBase(axisType: PptxChartAxisType, event: Event): void;
|
|
17265
17724
|
protected onTitleFont(axisType: PptxChartAxisType, event: Event): void;
|
|
@@ -17278,7 +17737,14 @@ declare class ChartMarkerOptionsComponent {
|
|
|
17278
17737
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
17279
17738
|
readonly elementChange: _angular_core.OutputEmitterRef<ChartPptxElement>;
|
|
17280
17739
|
protected readonly symbolOptions: readonly ChartOption<ChartMarkerSymbolValue>[];
|
|
17740
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17741
|
+
private readonly recentColors;
|
|
17281
17742
|
protected readonly series: _angular_core.Signal<PptxChartSeries[]>;
|
|
17743
|
+
/**
|
|
17744
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
17745
|
+
* colour into the shared "Recent colours" list.
|
|
17746
|
+
*/
|
|
17747
|
+
protected pushRecentColor(event: Event): void;
|
|
17282
17748
|
protected readonly supported: _angular_core.Signal<boolean>;
|
|
17283
17749
|
protected onSymbol(index: number, event: Event): void;
|
|
17284
17750
|
protected onSize(index: number, event: Event): void;
|
|
@@ -17304,7 +17770,14 @@ declare class ChartDatapointMarkerOptionsComponent {
|
|
|
17304
17770
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
17305
17771
|
readonly elementChange: _angular_core.OutputEmitterRef<ChartPptxElement>;
|
|
17306
17772
|
protected readonly symbolOptions: ChartOption<ChartMarkerSymbolValue>[];
|
|
17773
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
17774
|
+
private readonly recentColors;
|
|
17307
17775
|
private readonly seriesIndex;
|
|
17776
|
+
/**
|
|
17777
|
+
* Record the committed (native `change`, not the live-preview `input`)
|
|
17778
|
+
* colour into the shared "Recent colours" list.
|
|
17779
|
+
*/
|
|
17780
|
+
protected pushRecentColor(event: Event): void;
|
|
17308
17781
|
protected readonly series: _angular_core.Signal<PptxChartSeries[]>;
|
|
17309
17782
|
protected readonly categories: _angular_core.Signal<string[]>;
|
|
17310
17783
|
/** Clamp the picker: removing a series must not strand the index past the end. */
|
|
@@ -18175,47 +18648,6 @@ declare class CommentMarkersOverlayComponent {
|
|
|
18175
18648
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommentMarkersOverlayComponent, "pptx-comment-markers-overlay", never, { "comments": { "alias": "comments"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; }, { "markerClick": "markerClick"; }, never, never, true, never>;
|
|
18176
18649
|
}
|
|
18177
18650
|
|
|
18178
|
-
declare class CommentsPanelComponent {
|
|
18179
|
-
/** The active slide's comments (already filtered to the active slide). */
|
|
18180
|
-
readonly comments: _angular_core.InputSignal<PptxComment[]>;
|
|
18181
|
-
private readonly translate;
|
|
18182
|
-
/** Display name shown in the compose label ("Commenting as …"). */
|
|
18183
|
-
readonly authorName: _angular_core.InputSignal<string>;
|
|
18184
|
-
/** Emits the trimmed comment text the user wants to add. */
|
|
18185
|
-
readonly add: _angular_core.OutputEmitterRef<string>;
|
|
18186
|
-
/** Emits the id of a comment the user wants to remove. */
|
|
18187
|
-
readonly remove: _angular_core.OutputEmitterRef<string>;
|
|
18188
|
-
/** Emits the id of a comment whose resolved flag should toggle. */
|
|
18189
|
-
readonly resolve: _angular_core.OutputEmitterRef<string>;
|
|
18190
|
-
/** Emits the parent comment id + trimmed text of a threaded reply. */
|
|
18191
|
-
readonly reply: _angular_core.OutputEmitterRef<{
|
|
18192
|
-
parentId: string;
|
|
18193
|
-
text: string;
|
|
18194
|
-
}>;
|
|
18195
|
-
/** Current text typed into the compose textarea. */
|
|
18196
|
-
readonly draft: _angular_core.WritableSignal<string>;
|
|
18197
|
-
/** Whether the draft has non-whitespace content (enables the submit button). */
|
|
18198
|
-
readonly canAdd: _angular_core.Signal<boolean>;
|
|
18199
|
-
/** Id of the comment whose reply composer is open (one at a time). */
|
|
18200
|
-
readonly replyingTo: _angular_core.WritableSignal<string | null>;
|
|
18201
|
-
/** Current text typed into the open reply composer. */
|
|
18202
|
-
readonly replyDraft: _angular_core.WritableSignal<string>;
|
|
18203
|
-
/** Whether the reply draft has content (enables the reply submit button). */
|
|
18204
|
-
readonly canReply: _angular_core.Signal<boolean>;
|
|
18205
|
-
onDraftInput(event: Event): void;
|
|
18206
|
-
submit(event: Event): void;
|
|
18207
|
-
/** Localized reply-composer placeholder ("Reply to <author>..."). */
|
|
18208
|
-
replyPlaceholder(comment: PptxComment): string;
|
|
18209
|
-
/** Open the reply composer under `parentId` (closing any other composer). */
|
|
18210
|
-
startReply(parentId: string): void;
|
|
18211
|
-
cancelReply(): void;
|
|
18212
|
-
onReplyInput(event: Event): void;
|
|
18213
|
-
submitReply(parentId: string): void;
|
|
18214
|
-
formatTimestamp(value: string | undefined): string;
|
|
18215
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommentsPanelComponent, never>;
|
|
18216
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommentsPanelComponent, "pptx-comments-panel", never, { "comments": { "alias": "comments"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; }, { "add": "add"; "remove": "remove"; "resolve": "resolve"; "reply": "reply"; }, never, never, true, never>;
|
|
18217
|
-
}
|
|
18218
|
-
|
|
18219
18651
|
declare class CommentsService {
|
|
18220
18652
|
/**
|
|
18221
18653
|
* The active slide's comments (the deck slice for `activeSlideIndex`).
|
|
@@ -18430,10 +18862,15 @@ declare class ActionSettingsPanelComponent {
|
|
|
18430
18862
|
protected actionFor(trigger: Trigger): ElementAction | undefined;
|
|
18431
18863
|
/** The action type this trigger's controls should render right now. */
|
|
18432
18864
|
protected typeFor(trigger: Trigger): ElementActionType;
|
|
18865
|
+
/** `data.customShows`, for the `customShow` type's target `<select>`. */
|
|
18866
|
+
private readonly loader;
|
|
18867
|
+
protected readonly customShows: _angular_core.Signal<readonly PptxCustomShow[]>;
|
|
18433
18868
|
private update;
|
|
18434
18869
|
protected onType(event: Event, trigger: Trigger): void;
|
|
18435
|
-
protected onUrl(
|
|
18436
|
-
protected onSlide(
|
|
18870
|
+
protected onUrl(url: string, trigger: Trigger): void;
|
|
18871
|
+
protected onSlide(oneBasedSlide: number, trigger: Trigger): void;
|
|
18872
|
+
protected onCustomShow(customShowId: string, trigger: Trigger): void;
|
|
18873
|
+
protected onReturnAfter(returnAfter: boolean, trigger: Trigger): void;
|
|
18437
18874
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActionSettingsPanelComponent, never>;
|
|
18438
18875
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionSettingsPanelComponent, "pptx-action-settings-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
|
|
18439
18876
|
}
|
|
@@ -18445,6 +18882,8 @@ type ImageElement = PptxElement & {
|
|
|
18445
18882
|
declare class ImagePropertiesPanelComponent {
|
|
18446
18883
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
18447
18884
|
readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
|
|
18885
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
18886
|
+
private readonly recentColors;
|
|
18448
18887
|
protected readonly image: _angular_core.Signal<ImageElement>;
|
|
18449
18888
|
protected readonly effects: _angular_core.Signal<PptxImageEffects>;
|
|
18450
18889
|
protected readonly artisticEffects: readonly [readonly ["none", "pptx.image.effectNone", ""], readonly ["blur", "pptx.image.effectBlur", "blur(4px)"], readonly ["grayscale", "pptx.image.effectGrayscale", "grayscale(100%)"], readonly ["sepia", "pptx.image.effectSepia", "sepia(100%)"], readonly ["pencilSketch", "pptx.image.effectPencilSketch", "grayscale(100%) contrast(150%) brightness(80%)"], readonly ["lineDrawing", "pptx.image.effectLineDrawing", "grayscale(100%) contrast(150%)"], readonly ["watercolorSponge", "pptx.image.effectWatercolor", "saturate(150%) blur(1px)"], readonly ["paintStrokes", "pptx.image.effectPaintStrokes", "blur(3px) saturate(140%)"], readonly ["glow_edges", "pptx.image.effectGlowEdges", "contrast(180%) invert(5%) brightness(110%)"], readonly ["glowDiffused", "pptx.image.effectGlowDiffused", "blur(3px) brightness(120%)"], readonly ["cement", "pptx.image.effectCement", "contrast(200%) brightness(60%)"], readonly ["photocopy", "pptx.image.effectPhotocopy", "grayscale(100%) contrast(200%) brightness(120%)"], readonly ["filmGrain", "pptx.image.effectFilmGrain", "contrast(110%) brightness(105%)"], readonly ["mosaic", "pptx.image.effectMosaic", "blur(8px) contrast(105%)"], readonly ["chalkSketch", "pptx.image.effectChalk", "grayscale(80%) contrast(140%) brightness(110%)"], readonly ["marker", "pptx.image.effectMarker", "contrast(130%) saturate(130%)"], readonly ["cutout", "pptx.image.effectCutout", "contrast(300%) brightness(120%)"], readonly ["pastelsSmooth", "pptx.image.effectPastels", "blur(4px) saturate(120%)"], readonly ["paint", "pptx.image.effectPaint", "blur(3px) saturate(160%) contrast(110%)"], readonly ["plasticWrap", "pptx.image.effectPlasticWrap", "contrast(150%) brightness(115%) saturate(80%)"], readonly ["lightScreen", "pptx.image.effectLightScreen", "brightness(130%) contrast(80%)"], readonly ["sharpen", "pptx.image.effectSharpen", "contrast(160%) brightness(105%)"], readonly ["texturizer", "pptx.image.effectTexturizer", "contrast(110%) brightness(105%)"], readonly ["crisscrossEtching", "pptx.image.effectCrisscross", "grayscale(60%) contrast(120%)"]];
|
|
@@ -19441,7 +19880,7 @@ declare class AccountPageComponent {
|
|
|
19441
19880
|
readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
|
|
19442
19881
|
private readonly translate;
|
|
19443
19882
|
protected readonly swatches: readonly string[];
|
|
19444
|
-
protected readonly version = "3.
|
|
19883
|
+
protected readonly version = "3.4.0";
|
|
19445
19884
|
protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
|
|
19446
19885
|
protected readonly initial: _angular_core.Signal<string>;
|
|
19447
19886
|
protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
|
|
@@ -20058,6 +20497,12 @@ declare class PresenterViewComponent {
|
|
|
20058
20497
|
* forward press lands on is the show's next member, not `index + 1`.
|
|
20059
20498
|
*/
|
|
20060
20499
|
readonly activeCustomShow: _angular_core.InputSignal<ShowOrderCustomShow | null>;
|
|
20500
|
+
/**
|
|
20501
|
+
* The deck's authored `p:showPr/p:sldRg` slide-range restriction, or null
|
|
20502
|
+
* for the whole deck. The next-slide preview must honour it the same way it
|
|
20503
|
+
* honours {@link activeCustomShow}.
|
|
20504
|
+
*/
|
|
20505
|
+
readonly authoredRange: _angular_core.InputSignal<AuthoredSlideRange | null>;
|
|
20061
20506
|
readonly canvasSize: _angular_core.InputSignal<CanvasSize>;
|
|
20062
20507
|
readonly templateElements: _angular_core.InputSignal<readonly PptxElement[]>;
|
|
20063
20508
|
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
@@ -20132,7 +20577,7 @@ declare class PresenterViewComponent {
|
|
|
20132
20577
|
protected onSwapDisplays(): void;
|
|
20133
20578
|
private withTemplate;
|
|
20134
20579
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresenterViewComponent, never>;
|
|
20135
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresenterViewComponent, "pptx-presenter-view", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "currentSlideIndex": { "alias": "currentSlideIndex"; "required": true; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "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>;
|
|
20580
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresenterViewComponent, "pptx-presenter-view", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "currentSlideIndex": { "alias": "currentSlideIndex"; "required": true; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "isSignal": true; }; "authoredRange": { "alias": "authoredRange"; "required": false; "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>;
|
|
20136
20581
|
}
|
|
20137
20582
|
|
|
20138
20583
|
/**
|
|
@@ -20161,6 +20606,12 @@ declare class MobilePresenterViewComponent {
|
|
|
20161
20606
|
* forward press lands on is the show's next member, not `index + 1`.
|
|
20162
20607
|
*/
|
|
20163
20608
|
readonly activeCustomShow: _angular_core.InputSignal<ShowOrderCustomShow | null>;
|
|
20609
|
+
/**
|
|
20610
|
+
* The deck's authored `p:showPr/p:sldRg` slide-range restriction, or null
|
|
20611
|
+
* for the whole deck. The next-slide preview must honour it the same way it
|
|
20612
|
+
* honours {@link activeCustomShow}.
|
|
20613
|
+
*/
|
|
20614
|
+
readonly authoredRange: _angular_core.InputSignal<AuthoredSlideRange | null>;
|
|
20164
20615
|
readonly canvasSize: _angular_core.InputSignal<CanvasSize>;
|
|
20165
20616
|
readonly templateElements: _angular_core.InputSignal<readonly PptxElement[]>;
|
|
20166
20617
|
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
@@ -20186,7 +20637,7 @@ declare class MobilePresenterViewComponent {
|
|
|
20186
20637
|
}>;
|
|
20187
20638
|
private withTemplate;
|
|
20188
20639
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobilePresenterViewComponent, never>;
|
|
20189
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobilePresenterViewComponent, "pptx-mobile-presenter-view", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "currentSlideIndex": { "alias": "currentSlideIndex"; "required": true; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "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; }; }, { "movePresentationSlide": "movePresentationSlide"; "exit": "exit"; }, never, never, true, never>;
|
|
20640
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobilePresenterViewComponent, "pptx-mobile-presenter-view", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "currentSlideIndex": { "alias": "currentSlideIndex"; "required": true; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "isSignal": true; }; "authoredRange": { "alias": "authoredRange"; "required": false; "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; }; }, { "movePresentationSlide": "movePresentationSlide"; "exit": "exit"; }, never, never, true, never>;
|
|
20190
20641
|
}
|
|
20191
20642
|
|
|
20192
20643
|
/**
|
|
@@ -21000,6 +21451,8 @@ declare class SmartArtPropertiesComponent {
|
|
|
21000
21451
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
21001
21452
|
/** Emits a complete new data model after any edit. */
|
|
21002
21453
|
readonly smartArtDataChange: _angular_core.OutputEmitterRef<PptxSmartArtData>;
|
|
21454
|
+
/** Optional: absent in a standalone unit test with no viewer-level DI tree. */
|
|
21455
|
+
private readonly recentColors;
|
|
21003
21456
|
protected readonly layoutTypes: readonly SmartArtLayoutType[];
|
|
21004
21457
|
protected readonly colorSchemes: readonly SmartArtColorScheme[];
|
|
21005
21458
|
protected readonly styleOptions: readonly SmartArtStyle[];
|
|
@@ -21230,6 +21683,9 @@ declare class RibbonColorPopoverComponent {
|
|
|
21230
21683
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
21231
21684
|
readonly swatchAriaKey: _angular_core.InputSignal<string>;
|
|
21232
21685
|
readonly pick: _angular_core.OutputEmitterRef<string>;
|
|
21686
|
+
protected readonly recentColors: RecentColorsService;
|
|
21687
|
+
/** Every commit through this popover both fires `pick` and records the colour as recently used. */
|
|
21688
|
+
protected onPick(color: string): void;
|
|
21233
21689
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonColorPopoverComponent, never>;
|
|
21234
21690
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonColorPopoverComponent, "pptx-ribbon-color-popover", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "swatchAriaKey": { "alias": "swatchAriaKey"; "required": false; "isSignal": true; }; }, { "pick": "pick"; }, never, ["*"], true, never>;
|
|
21235
21691
|
}
|