pptx-vanilla-viewer 2.2.0 → 2.4.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 +50 -0
- package/dist/{ai-panel-3IIPXB2F.js → ai-panel-FN3ICKK4.js} +1 -1
- package/dist/ai-panel-SWFPPLI4.cjs +1 -0
- package/dist/{chunk-PF5W56XU.cjs → chunk-OBWXMT2T.cjs} +363 -279
- package/dist/{chunk-3XQHIDTV.js → chunk-SG47CFJD.js} +363 -279
- package/dist/index.cjs +238 -75
- package/dist/index.d.ts +198 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +237 -74
- package/dist/styles.css +170 -0
- package/package.json +1 -1
- package/dist/ai-panel-M3W65ORV.cjs +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import "jszip";
|
|
|
3
3
|
import { ChatTransport, LanguageModel, ToolSet, UIMessage } from "ai";
|
|
4
4
|
import "pptx-viewer-mcp";
|
|
5
5
|
import { Options } from "html2canvas-pro";
|
|
6
|
-
//#region ../core/dist/text-operations-
|
|
6
|
+
//#region ../core/dist/text-operations-CCau8x-H.d.ts
|
|
7
7
|
//#region src/core/types/actions.d.ts
|
|
8
8
|
/**
|
|
9
9
|
* Action types: hyperlinks, slide jumps, macros, and action buttons.
|
|
@@ -53,10 +53,22 @@ interface PptxAction {
|
|
|
53
53
|
* @example
|
|
54
54
|
* ```ts
|
|
55
55
|
* const type: ElementActionType = "slide";
|
|
56
|
-
* // => "slide"
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
type ElementActionType = 'none' | 'url' | 'slide' | 'firstSlide' | 'lastSlide' | 'prevSlide' | 'nextSlide' | 'endShow'
|
|
56
|
+
* // => "slide": one of: "none" | "url" | "slide" | "firstSlide" | "lastSlide" | "prevSlide" | "nextSlide" | "endShow" | "lastViewed" | "customShow" | "openFile" | "openPresentation" | "playMedia" | "oleVerb"
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
type ElementActionType = 'none' | 'url' | 'slide' | 'firstSlide' | 'lastSlide' | 'prevSlide' | 'nextSlide' | 'endShow' |
|
|
60
|
+
/** `ppaction://hlinkshowjump?jump=lastslideviewed` - back to the last slide the audience saw. */
|
|
61
|
+
'lastViewed' |
|
|
62
|
+
/** `ppaction://customshow?id=N[&return=true]` - jump into a named custom show. */
|
|
63
|
+
'customShow' |
|
|
64
|
+
/** `ppaction://hlinkfile` - open an external file via the action's `r:id`. */
|
|
65
|
+
'openFile' |
|
|
66
|
+
/** `ppaction://hlinkpres` - open another presentation via the action's `r:id`. */
|
|
67
|
+
'openPresentation' |
|
|
68
|
+
/** `ppaction://media` - play (or toggle) the element's own embedded media. */
|
|
69
|
+
'playMedia' |
|
|
70
|
+
/** `ppaction://ole?verb=N` - run a numbered OLE verb on an embedded object. */
|
|
71
|
+
'oleVerb';
|
|
60
72
|
/**
|
|
61
73
|
* User-facing action configuration stored on an element.
|
|
62
74
|
* This is a convenience wrapper around the lower-level `PptxAction` that maps
|
|
@@ -83,10 +95,16 @@ interface ElementAction {
|
|
|
83
95
|
trigger: 'click' | 'hover';
|
|
84
96
|
/** What kind of action to perform. */
|
|
85
97
|
type: ElementActionType;
|
|
86
|
-
/** External URL (for 'url' type). */
|
|
98
|
+
/** External URL (for 'url' type), or the resolved external target (for 'openFile' / 'openPresentation'). */
|
|
87
99
|
url?: string;
|
|
88
100
|
/** Zero-based slide index (for 'slide' type). */
|
|
89
101
|
slideIndex?: number;
|
|
102
|
+
/** Custom show identifier (for 'customShow' type), from `ppaction://customshow?id=`. */
|
|
103
|
+
customShowId?: string;
|
|
104
|
+
/** Whether the show returns to its origin after the custom show ends (`&return=true`), for 'customShow'. */
|
|
105
|
+
returnAfter?: boolean;
|
|
106
|
+
/** OLE verb number (for 'oleVerb' type), from `ppaction://ole?verb=`. */
|
|
107
|
+
oleVerb?: number;
|
|
90
108
|
}
|
|
91
109
|
//#endregion
|
|
92
110
|
//#region src/core/types/common.d.ts
|
|
@@ -8339,7 +8357,7 @@ interface PptxEmbeddedFont {
|
|
|
8339
8357
|
originalPartBytes?: Uint8Array;
|
|
8340
8358
|
}
|
|
8341
8359
|
//#endregion
|
|
8342
|
-
//#region ../core/dist/index-
|
|
8360
|
+
//#region ../core/dist/index-CcItPDSd.d.ts
|
|
8343
8361
|
//#region src/core/types/theme-presets.d.ts
|
|
8344
8362
|
/**
|
|
8345
8363
|
* A complete theme preset that can be applied to a presentation.
|
|
@@ -10613,6 +10631,19 @@ interface AutosaveRecord {
|
|
|
10613
10631
|
timestamp: number;
|
|
10614
10632
|
size: number;
|
|
10615
10633
|
}
|
|
10634
|
+
//#endregion
|
|
10635
|
+
//#region src/render/master-view-crud.d.ts
|
|
10636
|
+
/** One Slide Master view sidebar command. */
|
|
10637
|
+
type MasterViewCrudActionId = 'addLayout' | 'duplicateLayout' | 'deleteLayout' | 'renameLayout' | 'addMaster' | 'duplicateMaster' | 'deleteMaster' | 'renameMaster';
|
|
10638
|
+
/** A framework-neutral descriptor for one sidebar button. */
|
|
10639
|
+
interface MasterViewCrudAction {
|
|
10640
|
+
id: MasterViewCrudActionId;
|
|
10641
|
+
/** i18n key for the button label (`pptx.masterView.<id>`). */
|
|
10642
|
+
labelKey: string;
|
|
10643
|
+
enabled: boolean;
|
|
10644
|
+
/** i18n key explaining why the button is disabled, set only when it is. */
|
|
10645
|
+
disabledReasonKey?: string;
|
|
10646
|
+
}
|
|
10616
10647
|
/**
|
|
10617
10648
|
* Optional hook point for hosts that want to wire a real sign-in flow into
|
|
10618
10649
|
* File > Account. Disabled by default: the Account page renders nothing
|
|
@@ -10706,26 +10737,25 @@ interface PrintSettings {
|
|
|
10706
10737
|
scaleToFit?: boolean;
|
|
10707
10738
|
}
|
|
10708
10739
|
//#endregion
|
|
10709
|
-
//#region src/
|
|
10710
|
-
|
|
10711
|
-
|
|
10712
|
-
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
10716
|
-
|
|
10717
|
-
|
|
10718
|
-
|
|
10719
|
-
|
|
10720
|
-
|
|
10721
|
-
|
|
10722
|
-
|
|
10723
|
-
|
|
10724
|
-
|
|
10725
|
-
/**
|
|
10726
|
-
|
|
10740
|
+
//#region src/render/slide-size-rescale.d.ts
|
|
10741
|
+
type SlideSizeRescaleMode = 'maximize' | 'ensureFit';
|
|
10742
|
+
type ReadOnlyRecommendationKind = 'modifyVerifier' | 'markedFinal' | null;
|
|
10743
|
+
interface ReadOnlyRecommendation {
|
|
10744
|
+
readonly kind: ReadOnlyRecommendationKind;
|
|
10745
|
+
/** i18n key for the banner/toast a binding shows for this recommendation. */
|
|
10746
|
+
readonly messageKey: string;
|
|
10747
|
+
/** Whether a binding's "read-only" toggle should default to on. */
|
|
10748
|
+
readonly defaultReadOnly: boolean;
|
|
10749
|
+
}
|
|
10750
|
+
interface CompatibilityWarningToast {
|
|
10751
|
+
/** Stable per-code id, since toasts are deduped by code (see module docs). */
|
|
10752
|
+
readonly id: string;
|
|
10753
|
+
readonly code: string;
|
|
10754
|
+
readonly severity: 'info' | 'warning';
|
|
10755
|
+
readonly messageKey: string;
|
|
10756
|
+
/** `{{code}}` for the generic fallback key; `undefined` for a mapped code. */
|
|
10757
|
+
readonly params?: Readonly<Record<string, string>>;
|
|
10727
10758
|
}
|
|
10728
|
-
declare function createStore<T extends object>(initial: T): Store<T>;
|
|
10729
10759
|
//#endregion
|
|
10730
10760
|
//#region src/viewer/i18n/translator.d.ts
|
|
10731
10761
|
/**
|
|
@@ -10751,6 +10781,27 @@ type TranslationMessages = Record<string, Record<string, string>>;
|
|
|
10751
10781
|
*/
|
|
10752
10782
|
declare function createTranslator(locale?: string, messages?: TranslationMessages): Translator;
|
|
10753
10783
|
//#endregion
|
|
10784
|
+
//#region src/viewer/state/store.d.ts
|
|
10785
|
+
/**
|
|
10786
|
+
* A tiny framework-free reactive store: `get` / `set(patch)` / `subscribe`.
|
|
10787
|
+
*
|
|
10788
|
+
* This is deliberately minimal (a few dozen lines, no external deps). It only
|
|
10789
|
+
* carries the vanilla binding's *view state*; all domain logic (parsing,
|
|
10790
|
+
* styles, geometry, text building) stays in `pptx-viewer-core` and
|
|
10791
|
+
* `pptx-viewer-shared`.
|
|
10792
|
+
*/
|
|
10793
|
+
/** Listener invoked after every state change with the next and previous state. */
|
|
10794
|
+
type StoreListener<T> = (state: T, previous: T) => void;
|
|
10795
|
+
interface Store<T extends object> {
|
|
10796
|
+
/** Current state snapshot (do not mutate). */
|
|
10797
|
+
get(): T;
|
|
10798
|
+
/** Shallow-merge a partial patch into the state and notify subscribers. */
|
|
10799
|
+
set(patch: Partial<T>): void;
|
|
10800
|
+
/** Subscribe to state changes; returns an unsubscribe function. */
|
|
10801
|
+
subscribe(listener: StoreListener<T>): () => void;
|
|
10802
|
+
}
|
|
10803
|
+
declare function createStore<T extends object>(initial: T): Store<T>;
|
|
10804
|
+
//#endregion
|
|
10754
10805
|
//#region src/viewer/render/types.d.ts
|
|
10755
10806
|
/** Discriminant values of the {@link PptxElement} union (`'text'`, `'chart'`, ...). */
|
|
10756
10807
|
type PptxElementType = PptxElement['type'];
|
|
@@ -10897,6 +10948,16 @@ interface ElementRenderContext {
|
|
|
10897
10948
|
* every non-authoring surface, matching `onChartPointChange`.
|
|
10898
10949
|
*/
|
|
10899
10950
|
readonly onChartPartSelect?: (element: PptxElement, part: ChartPartRef) => void;
|
|
10951
|
+
/**
|
|
10952
|
+
* Ids of the currently selected elements (the store's `selectedElementIds`).
|
|
10953
|
+
* A chart renderer arms its on-canvas mark hit-testing
|
|
10954
|
+
* (`chart-editable.ts`'s `CHART_INTERACTIVE_CLASS`) only while ITS OWN id is
|
|
10955
|
+
* in this set: an unselected chart must let a mark click bubble up and
|
|
10956
|
+
* select the chart like any other element, exactly as a bare click on any
|
|
10957
|
+
* other element type does. Absent on every non-authoring surface, matching
|
|
10958
|
+
* `onChartPointChange`.
|
|
10959
|
+
*/
|
|
10960
|
+
readonly selectedElementIds?: ReadonlySet<string>;
|
|
10900
10961
|
/**
|
|
10901
10962
|
* Per-element native-animation playback state, keyed by element id, present
|
|
10902
10963
|
* only during a running presentation. Chart / SmartArt renderers read their
|
|
@@ -11043,6 +11104,8 @@ interface SlideStageOptions {
|
|
|
11043
11104
|
readonly chartPartSelection?: ChartPartSelection | null;
|
|
11044
11105
|
/** See `ElementRenderContext.onChartPartSelect`. */
|
|
11045
11106
|
readonly onChartPartSelect?: (element: PptxElement, part: ChartPartRef) => void;
|
|
11107
|
+
/** See `ElementRenderContext.selectedElementIds`. */
|
|
11108
|
+
readonly selectedElementIds?: ReadonlySet<string>;
|
|
11046
11109
|
/**
|
|
11047
11110
|
* True only for the main (interactive) canvas, never the thumbnail rail.
|
|
11048
11111
|
* Marks every rendered element (recursively, including group children) with
|
|
@@ -11117,6 +11180,10 @@ interface ViewerState {
|
|
|
11117
11180
|
appProperties?: PptxAppProperties;
|
|
11118
11181
|
customProperties: PptxCustomProperty[];
|
|
11119
11182
|
customShows: PptxCustomShow[];
|
|
11183
|
+
/** Office 2021 (p188) comment authors, for the `@`-mention typeahead. */
|
|
11184
|
+
modernCommentAuthors: PptxModernCommentAuthor[];
|
|
11185
|
+
/** Legacy `ppt/commentAuthors.xml` authors, mapped into the typeahead too. */
|
|
11186
|
+
commentAuthors: PptxCommentAuthor[];
|
|
11120
11187
|
/**
|
|
11121
11188
|
* The custom show a started slide show is restricted to, or null for the
|
|
11122
11189
|
* whole deck. Custom shows were definable here but nothing could select one,
|
|
@@ -11306,6 +11373,28 @@ interface ViewerState {
|
|
|
11306
11373
|
guides: Guide[];
|
|
11307
11374
|
eyedropperActive: boolean;
|
|
11308
11375
|
spellCheckEnabled: boolean;
|
|
11376
|
+
/**
|
|
11377
|
+
* Whether the loaded deck recommends opening read-only (`p:modifyVerifier`
|
|
11378
|
+
* or `docProps/custom.xml`'s "Mark as Final"), and why; null when it does
|
|
11379
|
+
* not. See `readOnlyRecommendation` in `pptx-viewer-shared`. Reset on every
|
|
11380
|
+
* load.
|
|
11381
|
+
*/
|
|
11382
|
+
readOnlyRecommendation: ReadOnlyRecommendation | null;
|
|
11383
|
+
/**
|
|
11384
|
+
* Whether the read-only recommendation banner has been closed for this
|
|
11385
|
+
* load, by either "Edit anyway" or the plain dismiss button. Independent
|
|
11386
|
+
* from whether editing is actually locked: "Dismiss" hides the banner but
|
|
11387
|
+
* keeps the lock, only "Edit anyway" lifts it too.
|
|
11388
|
+
*/
|
|
11389
|
+
readOnlyBannerDismissed: boolean;
|
|
11390
|
+
/**
|
|
11391
|
+
* Compatibility-warning toasts for the current load (deck-level
|
|
11392
|
+
* `data.warnings` concatenated with every slide's own `warnings`, deduped
|
|
11393
|
+
* by code through the shared `compatibilityWarningToasts`). Load
|
|
11394
|
+
* diagnostics, not auto-hiding; cleared on the next load. Dismissing a
|
|
11395
|
+
* toast (or all of them) removes it from this list.
|
|
11396
|
+
*/
|
|
11397
|
+
compatToasts: CompatibilityWarningToast[];
|
|
11309
11398
|
}
|
|
11310
11399
|
declare function createInitialViewerState(): ViewerState;
|
|
11311
11400
|
//#endregion
|
|
@@ -11420,13 +11509,13 @@ interface ClipboardActions {
|
|
|
11420
11509
|
//#endregion
|
|
11421
11510
|
//#region src/viewer/editor/editor-comment-actions.d.ts
|
|
11422
11511
|
interface CommentActions {
|
|
11423
|
-
addComment(text: string, elementId?: string): string | null;
|
|
11512
|
+
addComment(text: string, elementId?: string, mentions?: PptxCommentMention[]): string | null;
|
|
11424
11513
|
/**
|
|
11425
11514
|
* Append a reply under a top-level comment (React's `handleSubmitReply`
|
|
11426
11515
|
* nested-`replies` model: the reply carries `threadId` = parent id and
|
|
11427
11516
|
* inherits the parent's `elementId` anchor).
|
|
11428
11517
|
*/
|
|
11429
|
-
addCommentReply(parentId: string, text: string): string | null;
|
|
11518
|
+
addCommentReply(parentId: string, text: string, mentions?: PptxCommentMention[]): string | null;
|
|
11430
11519
|
/** Update a comment's text in place; recurses into `replies` so nested rows are editable too. */
|
|
11431
11520
|
editComment(id: string, text: string): void;
|
|
11432
11521
|
deleteComment(id: string): void;
|
|
@@ -11475,6 +11564,15 @@ interface DeckActions {
|
|
|
11475
11564
|
* exact authored dimensions.
|
|
11476
11565
|
*/
|
|
11477
11566
|
updateSlideSize(size: SlideSizeEmu): void;
|
|
11567
|
+
/**
|
|
11568
|
+
* Adopt an EMU slide size AND rescale every slide's content for it in one
|
|
11569
|
+
* undoable step (PowerPoint's Design > Slide Size "Maximize" / "Ensure Fit"
|
|
11570
|
+
* prompt, shown when the deck has content and the new size does not match
|
|
11571
|
+
* the old one). Unlike {@link updateSlideSize}, this also repositions and
|
|
11572
|
+
* resizes every element (and scales font sizes) through the shared
|
|
11573
|
+
* `scaleSlidesForSizeChange`.
|
|
11574
|
+
*/
|
|
11575
|
+
applySlideSizeRescale(size: SlideSizeEmu, mode: SlideSizeRescaleMode): void;
|
|
11478
11576
|
}
|
|
11479
11577
|
//#endregion
|
|
11480
11578
|
//#region src/viewer/editor/editor-ink-actions.d.ts
|
|
@@ -11585,6 +11683,19 @@ interface InspectorActions {
|
|
|
11585
11683
|
setSmartArtColorScheme(scheme: SmartArtColorScheme): void;
|
|
11586
11684
|
}
|
|
11587
11685
|
//#endregion
|
|
11686
|
+
//#region src/viewer/editor/editor-master-view-crud-actions.d.ts
|
|
11687
|
+
interface MasterViewCrudActions {
|
|
11688
|
+
/**
|
|
11689
|
+
* Run one sidebar command (`addLayout` / `duplicateLayout` / `deleteLayout` /
|
|
11690
|
+
* `renameLayout` / `addMaster` / `duplicateMaster` / `deleteMaster` /
|
|
11691
|
+
* `renameMaster`) against the CURRENT master-view target. A no-op outside
|
|
11692
|
+
* master view, when the deck is read-only, or when the action is disabled
|
|
11693
|
+
* for the current target (mirrors the sidebar's own gating, so a stray call
|
|
11694
|
+
* through the public API cannot bypass it).
|
|
11695
|
+
*/
|
|
11696
|
+
runMasterViewCrudAction(id: MasterViewCrudActionId): Promise<void>;
|
|
11697
|
+
}
|
|
11698
|
+
//#endregion
|
|
11588
11699
|
//#region src/viewer/editor/editor-section-actions.d.ts
|
|
11589
11700
|
/** History-aware slide section actions exposed to the rail and Home ribbon. */
|
|
11590
11701
|
interface SectionActions {
|
|
@@ -11725,6 +11836,8 @@ interface GeometryPatch {
|
|
|
11725
11836
|
interface EditActions extends TextActions, ArrangeActions, ClipboardActions, SlideActions, SlideBackgroundActions, TransitionActions, AnimationActions, InspectorActions, InkActions, DeckActions {
|
|
11726
11837
|
/** Slide section CRUD and ordering actions. */
|
|
11727
11838
|
sections: SectionActions;
|
|
11839
|
+
/** Slide Master view sidebar CRUD (Insert/Duplicate/Delete/Rename Layout/Master). */
|
|
11840
|
+
masterView: MasterViewCrudActions;
|
|
11728
11841
|
comments: CommentActions;
|
|
11729
11842
|
toggleFormatPainter(): void;
|
|
11730
11843
|
setShapeFill(color: string): void;
|
|
@@ -11732,6 +11845,8 @@ interface EditActions extends TextActions, ArrangeActions, ClipboardActions, Sli
|
|
|
11732
11845
|
setShapeStrokeWidth(width: number): void;
|
|
11733
11846
|
setShapeStyle(patch: Partial<ShapeStyle>): void;
|
|
11734
11847
|
setShapeType(shapeType: string): void;
|
|
11848
|
+
/** B6: fold a colour into the deck's "Recent colours" MRU list; see `InspectorHandlers.pushRecentColor`. */
|
|
11849
|
+
pushRecentColor(hex: string): void;
|
|
11735
11850
|
/** Commit an inspector geometry edit (X/Y/W/H/rotation). */
|
|
11736
11851
|
setGeometry(patch: GeometryPatch): void;
|
|
11737
11852
|
insert(kind: InsertKind, shapeType?: ShapePresetType): void;
|
|
@@ -11897,6 +12012,11 @@ interface InspectorState {
|
|
|
11897
12012
|
tableRowHeights: number[];
|
|
11898
12013
|
/** The selected table element itself, feeding the inspector data grid. */
|
|
11899
12014
|
tableElement?: TablePptxElement;
|
|
12015
|
+
/**
|
|
12016
|
+
* B6: the deck's `p:clrMru`, most-recent-first, feeding the "Recent
|
|
12017
|
+
* colours" row under the fill/stroke/text colour pickers.
|
|
12018
|
+
*/
|
|
12019
|
+
recentColors: readonly string[];
|
|
11900
12020
|
}
|
|
11901
12021
|
/**
|
|
11902
12022
|
* Deck/slide-level state for the inspector's Elements and Comments tabs plus
|
|
@@ -11911,11 +12031,21 @@ interface InspectorDeckState {
|
|
|
11911
12031
|
};
|
|
11912
12032
|
/** The deck's `p:sldSz` in EMU, which is what a save persists. */
|
|
11913
12033
|
slideSize: SlideSizeEmu | undefined;
|
|
12034
|
+
/**
|
|
12035
|
+
* Whether ANY slide in the deck has at least one element (not just the
|
|
12036
|
+
* active one). Gates the SLIDE SIZE card's rescale prompt: PowerPoint only
|
|
12037
|
+
* offers Maximize/Ensure Fit when there is content to rescale.
|
|
12038
|
+
*/
|
|
12039
|
+
hasDeckElements: boolean;
|
|
11914
12040
|
elements: readonly PptxElement[];
|
|
11915
12041
|
selectedIds: readonly string[];
|
|
11916
12042
|
/** Primary selected element id (docked Animation panel target), if any. */
|
|
11917
12043
|
selectedElementId?: string;
|
|
11918
12044
|
comments: readonly PptxComment[];
|
|
12045
|
+
/** Authors offered by the Comments tab's `@`-mention typeahead. */
|
|
12046
|
+
commentMentionAuthors: readonly PptxModernCommentAuthor[];
|
|
12047
|
+
/** Named custom shows, for the Action Settings panel's `customShow` picker. */
|
|
12048
|
+
customShows: readonly PptxCustomShow[];
|
|
11919
12049
|
docTitle: string | undefined;
|
|
11920
12050
|
docAuthor: string | undefined;
|
|
11921
12051
|
editable: boolean;
|
|
@@ -11979,6 +12109,9 @@ interface MasterViewSidebarOptions {
|
|
|
11979
12109
|
handoutSlidesPerPage: number;
|
|
11980
12110
|
/** Editing affordances are offered only on an editable deck. */
|
|
11981
12111
|
editable?: boolean;
|
|
12112
|
+
/** B4: the sidebar's CRUD command list for the current target (`[]` when there is none). */
|
|
12113
|
+
crudActions: readonly MasterViewCrudAction[];
|
|
12114
|
+
onCrudAction(id: MasterViewCrudActionId): void;
|
|
11982
12115
|
renderStage(slide: PptxSlide, scale: number): HTMLElement;
|
|
11983
12116
|
onSelect(masterIndex: number, layoutIndex: number | null): void;
|
|
11984
12117
|
onTabChange(tab: MasterViewTab): void;
|
|
@@ -12150,6 +12283,8 @@ interface RibbonDrawState {
|
|
|
12150
12283
|
tool: DrawTool;
|
|
12151
12284
|
color: string;
|
|
12152
12285
|
width: number;
|
|
12286
|
+
/** B6: the deck's `p:clrMru`, most-recent-first. */
|
|
12287
|
+
recentColors?: readonly string[];
|
|
12153
12288
|
}
|
|
12154
12289
|
/** Insert tab handler: build + insert an element of the given kind/shape preset. */
|
|
12155
12290
|
interface RibbonInsertHandlers {
|
|
@@ -12223,6 +12358,8 @@ interface RibbonSelectionState {
|
|
|
12223
12358
|
embeddedFontFamilies?: readonly string[];
|
|
12224
12359
|
/** Families registered this session via File > Options > Fonts. */
|
|
12225
12360
|
customFontFamilies?: readonly string[];
|
|
12361
|
+
/** B6: the deck's `p:clrMru`, most-recent-first; feeds every swatch picker's row. */
|
|
12362
|
+
recentColors?: readonly string[];
|
|
12226
12363
|
}
|
|
12227
12364
|
//#endregion
|
|
12228
12365
|
//#region src/viewer/ui/mobile-action-sheets.d.ts
|
|
@@ -12494,6 +12631,10 @@ interface ViewerChrome {
|
|
|
12494
12631
|
setQuickAccessPosition(position: 'above' | 'below'): void;
|
|
12495
12632
|
/** Show/hide the Protected View "Enable Editing" banner. */
|
|
12496
12633
|
setProtectedView(active: boolean): void;
|
|
12634
|
+
/** Show/hide + populate the read-only recommendation banner. */
|
|
12635
|
+
setReadOnlyRecommendation(recommendation: ReadOnlyRecommendation | null, dismissed: boolean): void;
|
|
12636
|
+
/** Replace the compatibility-warning toast stack. */
|
|
12637
|
+
setCompatToasts(toasts: readonly CompatibilityWarningToast[]): void;
|
|
12497
12638
|
}
|
|
12498
12639
|
//#endregion
|
|
12499
12640
|
//#region src/viewer/editor/editor-controller.d.ts
|
|
@@ -13531,6 +13672,14 @@ interface ChromeHost {
|
|
|
13531
13672
|
quickAccessScreenTip(label: string): string | undefined;
|
|
13532
13673
|
/** Trust Center > Protected View's "Enable Editing" banner button. */
|
|
13533
13674
|
enableEditingFromProtectedView(): void;
|
|
13675
|
+
/** The read-only recommendation banner's "Edit anyway" button. */
|
|
13676
|
+
editAnywayFromReadOnlyRecommendation(): void;
|
|
13677
|
+
/** The read-only recommendation banner's plain close button. */
|
|
13678
|
+
dismissReadOnlyBanner(): void;
|
|
13679
|
+
/** One compatibility toast's own dismiss button. */
|
|
13680
|
+
dismissCompatToast(id: string): void;
|
|
13681
|
+
/** The compatibility toast stack's "Dismiss all" button. */
|
|
13682
|
+
dismissAllCompatToasts(): void;
|
|
13534
13683
|
/** Trust Center > "Confirm before opening external hyperlinks" gate + prompt. */
|
|
13535
13684
|
confirmExternalHyperlink(url: string): boolean;
|
|
13536
13685
|
toggleAutosave(): boolean;
|
|
@@ -13546,6 +13695,12 @@ interface ChromeHost {
|
|
|
13546
13695
|
goToFirstSlide(): void;
|
|
13547
13696
|
/** End: the show's last slide (skips trailing hidden slides while presenting). */
|
|
13548
13697
|
goToLastSlide(): void;
|
|
13698
|
+
/**
|
|
13699
|
+
* The deck index "Present From Beginning" should land on (skips a hidden
|
|
13700
|
+
* slide 1 and honours the authored `p:showPr/p:sldRg` range / custom show),
|
|
13701
|
+
* unconditionally unlike {@link goToFirstSlide}.
|
|
13702
|
+
*/
|
|
13703
|
+
firstShowSlideIndex(): number;
|
|
13549
13704
|
getSlideCount(): number;
|
|
13550
13705
|
enterPresentation(): Promise<void>;
|
|
13551
13706
|
openPresenterView(): void;
|
|
@@ -13698,7 +13853,7 @@ declare class PptxViewer extends ViewerExportHost implements PptxViewerInstance,
|
|
|
13698
13853
|
private userFontsStyle;
|
|
13699
13854
|
private signatureWarningAcknowledged;
|
|
13700
13855
|
private detachSignatureWarning;
|
|
13701
|
-
/** Tags in-flight webfont
|
|
13856
|
+
/** Tags in-flight webfont resolutions; only the newest deck may apply its result. */
|
|
13702
13857
|
private webfontsToken;
|
|
13703
13858
|
private annotations;
|
|
13704
13859
|
private parityWorkflows;
|
|
@@ -13747,6 +13902,8 @@ declare class PptxViewer extends ViewerExportHost implements PptxViewerInstance,
|
|
|
13747
13902
|
goToFirstSlide: () => void;
|
|
13748
13903
|
/** End: the show's last slide (skips trailing hidden slides while presenting). */
|
|
13749
13904
|
goToLastSlide: () => void;
|
|
13905
|
+
/** "Present From Beginning"'s target deck index (skips a hidden slide 1 / honours the authored range). */
|
|
13906
|
+
firstShowSlideIndex: () => number;
|
|
13750
13907
|
getSlideCount: () => number;
|
|
13751
13908
|
getCurrentSlide: () => number;
|
|
13752
13909
|
getZoom: () => number;
|
|
@@ -13922,6 +14079,18 @@ declare class PptxViewer extends ViewerExportHost implements PptxViewerInstance,
|
|
|
13922
14079
|
setEditable(editable: boolean): void;
|
|
13923
14080
|
/** Trust Center > Protected View's "Enable Editing" banner button. */
|
|
13924
14081
|
enableEditingFromProtectedView(): void;
|
|
14082
|
+
/**
|
|
14083
|
+
* The read-only recommendation banner's "Edit anyway" button
|
|
14084
|
+
* (`p:modifyVerifier` / "Mark as Final"): lifts the lock and hides the
|
|
14085
|
+
* banner, unlike plain dismiss which only hides it.
|
|
14086
|
+
*/
|
|
14087
|
+
editAnywayFromReadOnlyRecommendation(): void;
|
|
14088
|
+
/** The read-only recommendation banner's plain close button: hides the banner, keeps the lock. */
|
|
14089
|
+
dismissReadOnlyBanner(): void;
|
|
14090
|
+
/** One compatibility toast's own dismiss button. */
|
|
14091
|
+
dismissCompatToast(id: string): void;
|
|
14092
|
+
/** The compatibility toast stack's "Dismiss all" button. */
|
|
14093
|
+
dismissAllCompatToasts(): void;
|
|
13925
14094
|
/**
|
|
13926
14095
|
* Trust Center > "Confirm before opening external hyperlinks": both a
|
|
13927
14096
|
* run-level text hyperlink click and an on-slide Action Setting's
|