pptx-angular-viewer 1.30.1 → 1.31.1
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 +8 -0
- package/fesm2022/pptx-angular-viewer.mjs +2622 -281
- package/fesm2022/pptx-angular-viewer.mjs.map +1 -1
- package/package.json +2 -2
- package/types/pptx-angular-viewer.d.ts +446 -118
|
@@ -1914,10 +1914,16 @@ interface EditorHistoryOptions {
|
|
|
1914
1914
|
* already-cloned snapshots.
|
|
1915
1915
|
*/
|
|
1916
1916
|
declare class EditorHistory<T> {
|
|
1917
|
-
private
|
|
1917
|
+
private _maxDepth;
|
|
1918
1918
|
private readonly _past;
|
|
1919
1919
|
private readonly _future;
|
|
1920
1920
|
constructor(options?: EditorHistoryOptions);
|
|
1921
|
+
/**
|
|
1922
|
+
* Change the maximum undo depth at runtime (File > Options > Advanced >
|
|
1923
|
+
* "Maximum number of undos"). Trims the past stack immediately if the new
|
|
1924
|
+
* limit is smaller.
|
|
1925
|
+
*/
|
|
1926
|
+
setMaxDepth(maxDepth: number): void;
|
|
1921
1927
|
/** True when at least one undo step is available. */
|
|
1922
1928
|
get canUndo(): boolean;
|
|
1923
1929
|
/** True when at least one redo step is available. */
|
|
@@ -4018,10 +4024,6 @@ interface ShortcutReferenceItem {
|
|
|
4018
4024
|
shortcut: string;
|
|
4019
4025
|
}
|
|
4020
4026
|
declare const SHORTCUT_REFERENCE_ITEMS: readonly ShortcutReferenceItem[];
|
|
4021
|
-
interface ViewerPreferenceToggle {
|
|
4022
|
-
key: keyof ViewerPreferences;
|
|
4023
|
-
labelKey: string;
|
|
4024
|
-
}
|
|
4025
4027
|
|
|
4026
4028
|
interface SpeechAlternative {
|
|
4027
4029
|
readonly transcript: string;
|
|
@@ -4127,95 +4129,140 @@ type ToolbarTabId = 'file' | 'home' | 'insert' | 'draw' | 'design' | 'transition
|
|
|
4127
4129
|
type ToolbarActionId = ToolbarButtonId | ToolbarTabId;
|
|
4128
4130
|
|
|
4129
4131
|
/**
|
|
4130
|
-
*
|
|
4131
|
-
*
|
|
4132
|
-
*
|
|
4133
|
-
*
|
|
4134
|
-
*
|
|
4135
|
-
*
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4132
|
+
* Full PowerPoint "File > Options" parity model.
|
|
4133
|
+
*
|
|
4134
|
+
* Groups mirror the ten categories of PowerPoint's Options dialog. Values are
|
|
4135
|
+
* flat primitives per group so the dialog panes can be rendered generically
|
|
4136
|
+
* from `VIEWER_OPTIONS_SCHEMA` in every binding. The legacy six-toggle
|
|
4137
|
+
* `ViewerPreferences` surface stays supported via the mapping helpers below.
|
|
4138
|
+
*/
|
|
4139
|
+
type ScreenTipStyle = 'descriptions' | 'plain' | 'off';
|
|
4140
|
+
type DisplayOptimization = 'appearance' | 'compatibility';
|
|
4141
|
+
type ImageResolutionPreset = 'highFidelity' | 'ppi330' | 'ppi220' | 'ppi150' | 'ppi96';
|
|
4142
|
+
type OpenDocumentsView = 'savedView' | 'normal' | 'outline' | 'slideSorter' | 'notes';
|
|
4143
|
+
type DefaultExportFormat = 'pptx' | 'pdf' | 'png';
|
|
4144
|
+
type QuickAccessPosition = 'above' | 'below';
|
|
4145
|
+
type FeedbackSoundScheme = 'modern' | 'classic';
|
|
4146
|
+
type OptionsPrintWhat = 'slides' | 'handouts' | 'notes' | 'outline';
|
|
4147
|
+
type OptionsPrintColorMode = 'color' | 'grayscale' | 'blackAndWhite';
|
|
4148
|
+
interface ViewerGeneralOptions {
|
|
4149
|
+
displayOptimization: DisplayOptimization;
|
|
4150
|
+
showMiniToolbar: boolean;
|
|
4151
|
+
enableLivePreview: boolean;
|
|
4152
|
+
collapseRibbonAutomatically: boolean;
|
|
4153
|
+
collapseSearchByDefault: boolean;
|
|
4154
|
+
screenTipStyle: ScreenTipStyle;
|
|
4155
|
+
userName: string;
|
|
4156
|
+
userInitials: string;
|
|
4157
|
+
showStartScreen: boolean;
|
|
4158
|
+
}
|
|
4159
|
+
interface ViewerProofingOptions {
|
|
4160
|
+
autoCorrectTwoInitialCapitals: boolean;
|
|
4161
|
+
autoCorrectCapitalizeFirstLetter: boolean;
|
|
4162
|
+
autoCorrectCapitalizeDayNames: boolean;
|
|
4163
|
+
autoCorrectSmartQuotes: boolean;
|
|
4164
|
+
autoCorrectHyphensToDash: boolean;
|
|
4165
|
+
autoCorrectFractions: boolean;
|
|
4166
|
+
autoCorrectOrdinals: boolean;
|
|
4167
|
+
ignoreUppercase: boolean;
|
|
4168
|
+
ignoreWordsWithNumbers: boolean;
|
|
4169
|
+
ignoreInternetAddresses: boolean;
|
|
4170
|
+
flagRepeatedWords: boolean;
|
|
4171
|
+
checkSpellingAsYouType: boolean;
|
|
4172
|
+
hideSpellingErrors: boolean;
|
|
4173
|
+
}
|
|
4174
|
+
interface ViewerSaveOptions {
|
|
4175
|
+
autoSave: boolean;
|
|
4176
|
+
autoRecoverIntervalMinutes: number;
|
|
4177
|
+
keepLastAutoRecoveredVersion: boolean;
|
|
4178
|
+
defaultExportFormat: DefaultExportFormat;
|
|
4179
|
+
embedFonts: boolean;
|
|
4180
|
+
embedAllFontCharacters: boolean;
|
|
4181
|
+
cacheRetentionDays: number;
|
|
4182
|
+
clearCacheOnClose: boolean;
|
|
4183
|
+
}
|
|
4184
|
+
interface ViewerAccessibilityOptions {
|
|
4185
|
+
showAccessibilityStatus: boolean;
|
|
4186
|
+
feedbackWithSound: boolean;
|
|
4187
|
+
soundScheme: FeedbackSoundScheme;
|
|
4188
|
+
showShortcutKeysInScreenTips: boolean;
|
|
4189
|
+
reducedMotion: boolean;
|
|
4165
4190
|
}
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4191
|
+
interface ViewerAdvancedOptions {
|
|
4192
|
+
autoSelectEntireWord: boolean;
|
|
4193
|
+
allowTextDragAndDrop: boolean;
|
|
4194
|
+
maximumUndoSteps: number;
|
|
4195
|
+
useSmartCutAndPaste: boolean;
|
|
4196
|
+
showPasteOptionsButton: boolean;
|
|
4197
|
+
imageDefaultResolution: ImageResolutionPreset;
|
|
4198
|
+
doNotCompressImages: boolean;
|
|
4199
|
+
chartPropertiesFollowDataPoint: boolean;
|
|
4200
|
+
recentPresentationsCount: number;
|
|
4201
|
+
showVerticalRuler: boolean;
|
|
4202
|
+
showGrid: boolean;
|
|
4203
|
+
snapToGrid: boolean;
|
|
4204
|
+
disableHardwareAcceleration: boolean;
|
|
4205
|
+
openDocumentsView: OpenDocumentsView;
|
|
4206
|
+
slideShowShowMenuOnRightClick: boolean;
|
|
4207
|
+
slideShowShowPopupToolbar: boolean;
|
|
4208
|
+
slideShowPromptKeepInkAnnotations: boolean;
|
|
4209
|
+
slideShowEndWithBlackSlide: boolean;
|
|
4210
|
+
printInBackground: boolean;
|
|
4211
|
+
printHighQuality: boolean;
|
|
4212
|
+
printUseMostRecentSettings: boolean;
|
|
4213
|
+
printWhat: OptionsPrintWhat;
|
|
4214
|
+
printColorMode: OptionsPrintColorMode;
|
|
4215
|
+
printHiddenSlides: boolean;
|
|
4216
|
+
printScaleToFit: boolean;
|
|
4217
|
+
printFrameSlides: boolean;
|
|
4218
|
+
}
|
|
4219
|
+
interface ViewerRibbonOptions {
|
|
4220
|
+
/** Ribbon tabs unticked in Customize Ribbon. The File tab can never be hidden. */
|
|
4221
|
+
hiddenTabIds: ToolbarTabId[];
|
|
4222
|
+
}
|
|
4223
|
+
interface ViewerQuickAccessOptions {
|
|
4224
|
+
visible: boolean;
|
|
4225
|
+
position: QuickAccessPosition;
|
|
4226
|
+
showCommandLabels: boolean;
|
|
4227
|
+
/** Ordered ids from `QUICK_ACCESS_COMMAND_CATALOG`. */
|
|
4228
|
+
commandIds: string[];
|
|
4229
|
+
}
|
|
4230
|
+
interface ViewerTrustOptions {
|
|
4231
|
+
openInProtectedView: boolean;
|
|
4232
|
+
allowExternalContent: boolean;
|
|
4233
|
+
confirmExternalHyperlinks: boolean;
|
|
4234
|
+
}
|
|
4235
|
+
interface ViewerOptions {
|
|
4236
|
+
general: ViewerGeneralOptions;
|
|
4237
|
+
proofing: ViewerProofingOptions;
|
|
4238
|
+
save: ViewerSaveOptions;
|
|
4239
|
+
accessibility: ViewerAccessibilityOptions;
|
|
4240
|
+
advanced: ViewerAdvancedOptions;
|
|
4241
|
+
ribbon: ViewerRibbonOptions;
|
|
4242
|
+
quickAccess: ViewerQuickAccessOptions;
|
|
4243
|
+
trust: ViewerTrustOptions;
|
|
4244
|
+
}
|
|
4245
|
+
type ViewerOptionsGroupId = keyof ViewerOptions;
|
|
4246
|
+
type ViewerOptionPrimitive = boolean | number | string;
|
|
4247
|
+
|
|
4248
|
+
/**
|
|
4249
|
+
* Quick Access Toolbar command catalog and list-editing helpers, backing the
|
|
4250
|
+
* Options > Quick Access Toolbar pane and the title-bar QAT strip.
|
|
4251
|
+
*
|
|
4252
|
+
* Ids map onto actions every binding already exposes; each binding resolves
|
|
4253
|
+
* an id to its own icon + handler when rendering the strip.
|
|
4254
|
+
*/
|
|
4255
|
+
interface QuickAccessCommandDefinition {
|
|
4256
|
+
id: string;
|
|
4257
|
+
labelKey: string;
|
|
4258
|
+
/** Logical icon name bindings map to their icon set. */
|
|
4259
|
+
icon: string;
|
|
4196
4260
|
}
|
|
4197
|
-
|
|
4198
|
-
interface
|
|
4199
|
-
/**
|
|
4200
|
-
|
|
4201
|
-
* that does not carry its own {@link GifFrame.delayCs} override.
|
|
4202
|
-
* Default: 200 cs (2 s).
|
|
4203
|
-
*/
|
|
4204
|
-
delayCs?: number;
|
|
4205
|
-
/** Number of times the animation loops (0 = loop forever, default). */
|
|
4206
|
-
loopCount?: number;
|
|
4261
|
+
|
|
4262
|
+
interface ViewerAddinStatus {
|
|
4263
|
+
/** Addin id -> whether the capability is active in this host. */
|
|
4264
|
+
[addinId: string]: boolean | undefined;
|
|
4207
4265
|
}
|
|
4208
|
-
/**
|
|
4209
|
-
* Encode an ordered list of RGBA frames into an animated GIF89a byte sequence.
|
|
4210
|
-
*
|
|
4211
|
-
* Accepts either a bare `delayCs` number (React/Vue call style) or an
|
|
4212
|
-
* {@link EncodeGifOptions} object (Angular call style) as the second argument.
|
|
4213
|
-
*
|
|
4214
|
-
* @param frames Ordered frame descriptors (all must share identical dimensions).
|
|
4215
|
-
* @param delay Per-frame delay in centiseconds, or an options object.
|
|
4216
|
-
* @returns Raw GIF89a bytes.
|
|
4217
|
-
*/
|
|
4218
|
-
declare function encodeGif(frames: GifFrame[], delay?: number | EncodeGifOptions): Uint8Array;
|
|
4219
4266
|
|
|
4220
4267
|
/**
|
|
4221
4268
|
* Pure handout layout calculations, shared by every binding's print path.
|
|
@@ -4339,6 +4386,176 @@ interface PrintHtmlDocumentOptions {
|
|
|
4339
4386
|
*/
|
|
4340
4387
|
declare function buildPrintHtmlDocument(options: PrintHtmlDocumentOptions): string;
|
|
4341
4388
|
|
|
4389
|
+
/**
|
|
4390
|
+
* Control/section/tab descriptor types for the File > Options schema, plus
|
|
4391
|
+
* the terse constructors the tab-definition modules build panes with.
|
|
4392
|
+
*/
|
|
4393
|
+
type ViewerOptionsTabId = 'general' | 'proofing' | 'save' | 'language' | 'accessibility' | 'advanced' | 'ribbon' | 'quickAccess' | 'addIns' | 'trust';
|
|
4394
|
+
interface ViewerOptionsSelectChoice {
|
|
4395
|
+
value: string;
|
|
4396
|
+
labelKey: string;
|
|
4397
|
+
}
|
|
4398
|
+
interface ControlBase {
|
|
4399
|
+
group: ViewerOptionsGroupId;
|
|
4400
|
+
key: string;
|
|
4401
|
+
labelKey: string;
|
|
4402
|
+
/** Optional "(i)" tooltip body, mirroring PowerPoint's info bubbles. */
|
|
4403
|
+
infoKey?: string;
|
|
4404
|
+
/** Renders indented under the preceding control, PowerPoint-style. */
|
|
4405
|
+
indent?: boolean;
|
|
4406
|
+
}
|
|
4407
|
+
interface ViewerOptionsToggleControl extends ControlBase {
|
|
4408
|
+
kind: 'toggle';
|
|
4409
|
+
}
|
|
4410
|
+
interface ViewerOptionsSelectControl extends ControlBase {
|
|
4411
|
+
kind: 'select';
|
|
4412
|
+
choices: readonly ViewerOptionsSelectChoice[];
|
|
4413
|
+
}
|
|
4414
|
+
interface ViewerOptionsNumberControl extends ControlBase {
|
|
4415
|
+
kind: 'number';
|
|
4416
|
+
min: number;
|
|
4417
|
+
max: number;
|
|
4418
|
+
step?: number;
|
|
4419
|
+
unitKey?: string;
|
|
4420
|
+
}
|
|
4421
|
+
interface ViewerOptionsTextControl extends ControlBase {
|
|
4422
|
+
kind: 'text';
|
|
4423
|
+
maxLength?: number;
|
|
4424
|
+
}
|
|
4425
|
+
type ViewerOptionsControl = ViewerOptionsToggleControl | ViewerOptionsSelectControl | ViewerOptionsNumberControl | ViewerOptionsTextControl;
|
|
4426
|
+
interface ViewerOptionsSection {
|
|
4427
|
+
id: string;
|
|
4428
|
+
titleKey: string;
|
|
4429
|
+
/** Optional explanatory paragraph under the section title. */
|
|
4430
|
+
descriptionKey?: string;
|
|
4431
|
+
/** Marks a bespoke block a binding renders itself (e.g. the theme picker). */
|
|
4432
|
+
special?: 'themePicker' | 'clearCache' | 'shortcutReference';
|
|
4433
|
+
controls: readonly ViewerOptionsControl[];
|
|
4434
|
+
}
|
|
4435
|
+
interface ViewerOptionsTabDefinition {
|
|
4436
|
+
id: ViewerOptionsTabId;
|
|
4437
|
+
labelKey: string;
|
|
4438
|
+
/** Headline shown at the top of the pane. */
|
|
4439
|
+
descriptionKey: string;
|
|
4440
|
+
/** Pane needing a bespoke view instead of (or on top of) `sections`. */
|
|
4441
|
+
custom?: 'language' | 'ribbon' | 'quickAccess' | 'addIns';
|
|
4442
|
+
sections: readonly ViewerOptionsSection[];
|
|
4443
|
+
}
|
|
4444
|
+
|
|
4445
|
+
/**
|
|
4446
|
+
* Framework-neutral store behind the File > Options dialog.
|
|
4447
|
+
*
|
|
4448
|
+
* Holds a `ViewerOptions` snapshot, notifies subscribers on change, and
|
|
4449
|
+
* persists a sparse diff into the shared `pptx-viewer-prefs` localStorage
|
|
4450
|
+
* entry so choices survive reloads in every binding.
|
|
4451
|
+
*/
|
|
4452
|
+
type ViewerOptionsListener = (options: ViewerOptions) => void;
|
|
4453
|
+
interface ViewerOptionsStore {
|
|
4454
|
+
getOptions(): ViewerOptions;
|
|
4455
|
+
/** Replace the whole snapshot (e.g. hydrating from a host prop). */
|
|
4456
|
+
setOptions(next: ViewerOptions): void;
|
|
4457
|
+
/** Set one primitive value; ignores unknown keys and mismatched types. */
|
|
4458
|
+
setValue(group: ViewerOptionsGroupId, key: string, value: ViewerOptionPrimitive): void;
|
|
4459
|
+
getValue(group: ViewerOptionsGroupId, key: string): ViewerOptionPrimitive | undefined;
|
|
4460
|
+
/** Toggle a ribbon tab's visibility. The File tab is always kept visible. */
|
|
4461
|
+
setRibbonTabHidden(tabId: ToolbarTabId, hidden: boolean): void;
|
|
4462
|
+
setQuickAccessCommands(commandIds: readonly string[]): void;
|
|
4463
|
+
/** Reset every option (or one tab-group) back to defaults. */
|
|
4464
|
+
reset(group?: ViewerOptionsGroupId): void;
|
|
4465
|
+
subscribe(listener: ViewerOptionsListener): () => void;
|
|
4466
|
+
}
|
|
4467
|
+
|
|
4468
|
+
/**
|
|
4469
|
+
* Minimal GIF89a encoder (pure JS, no external dependency) plus pure
|
|
4470
|
+
* frame-planning helpers — shared by the React, Vue, and Angular bindings.
|
|
4471
|
+
*
|
|
4472
|
+
* The encoder uses median-cut colour quantisation (256 colours per frame) and
|
|
4473
|
+
* LZW compression. It carries no DOM/browser dependency — it operates on
|
|
4474
|
+
* pre-extracted `ImageData` objects — so each binding owns the rasterisation
|
|
4475
|
+
* (grabbing a canvas, calling `getImageData`) and the `Blob` wrapping, while
|
|
4476
|
+
* the byte encoding lives here once.
|
|
4477
|
+
*
|
|
4478
|
+
* No npm GIF library is depended on; this self-contained source replaces the
|
|
4479
|
+
* three previously-duplicated copies (React `export-gif-encoder.ts`, Vue
|
|
4480
|
+
* `gif-encoder.ts`, Angular `gif-export-helpers.ts`).
|
|
4481
|
+
*/
|
|
4482
|
+
/** A single GIF frame descriptor produced by the planning helpers. */
|
|
4483
|
+
interface GifFramePlan {
|
|
4484
|
+
/** 0-based slide index this frame corresponds to. */
|
|
4485
|
+
slideIndex: number;
|
|
4486
|
+
/** Frame delay in **centiseconds** (1 cs = 10 ms), as required by GIF89a. */
|
|
4487
|
+
delayCs: number;
|
|
4488
|
+
}
|
|
4489
|
+
/** Options controlling GIF frame planning. */
|
|
4490
|
+
interface GifPlanOptions {
|
|
4491
|
+
/** Total number of slides in the presentation. */
|
|
4492
|
+
totalSlides: number;
|
|
4493
|
+
/**
|
|
4494
|
+
* Duration each slide is shown, in **milliseconds** (default: 2000).
|
|
4495
|
+
* Per-slide overrides can be supplied via {@link slideTimingsMs}.
|
|
4496
|
+
*/
|
|
4497
|
+
slideDurationMs?: number;
|
|
4498
|
+
/**
|
|
4499
|
+
* Per-slide duration overrides in milliseconds (index maps to slide index).
|
|
4500
|
+
* When a slide's index is present here its value takes precedence over
|
|
4501
|
+
* {@link slideDurationMs}.
|
|
4502
|
+
*/
|
|
4503
|
+
slideTimingsMs?: number[];
|
|
4504
|
+
}
|
|
4505
|
+
/**
|
|
4506
|
+
* Compute the ordered list of {@link GifFramePlan} objects for a presentation.
|
|
4507
|
+
* All timing is derived here; nothing browser-specific is touched.
|
|
4508
|
+
*/
|
|
4509
|
+
declare function planGifFrames(opts: GifPlanOptions): GifFramePlan[];
|
|
4510
|
+
/**
|
|
4511
|
+
* Convert a slide duration in milliseconds to a GIF89a frame delay in
|
|
4512
|
+
* centiseconds (1 cs = 10 ms), clamped to a minimum of 1 cs.
|
|
4513
|
+
*/
|
|
4514
|
+
declare function msToFrameDelayCs(ms: number): number;
|
|
4515
|
+
/**
|
|
4516
|
+
* Clamp canvas/image dimensions so neither side exceeds `maxSide` pixels while
|
|
4517
|
+
* preserving the aspect ratio. When both dimensions are already within the
|
|
4518
|
+
* limit the original values are returned unchanged.
|
|
4519
|
+
*/
|
|
4520
|
+
declare function clampGifDimensions(width: number, height: number, maxSide?: number): {
|
|
4521
|
+
width: number;
|
|
4522
|
+
height: number;
|
|
4523
|
+
};
|
|
4524
|
+
/** A single animated-GIF frame: raw RGBA pixels plus its dimensions. */
|
|
4525
|
+
interface GifFrame {
|
|
4526
|
+
imageData: ImageData;
|
|
4527
|
+
width: number;
|
|
4528
|
+
height: number;
|
|
4529
|
+
/**
|
|
4530
|
+
* Optional per-frame delay in **centiseconds** (1 cs = 10 ms). When set it
|
|
4531
|
+
* overrides the encoder-level delay for this frame only, which is how
|
|
4532
|
+
* per-slide durations from {@link planGifFrames} flow into the encoder.
|
|
4533
|
+
*/
|
|
4534
|
+
delayCs?: number;
|
|
4535
|
+
}
|
|
4536
|
+
/** Options for {@link encodeGif}. */
|
|
4537
|
+
interface EncodeGifOptions {
|
|
4538
|
+
/**
|
|
4539
|
+
* Frame delay in **centiseconds** (1 cs = 10 ms). Applies to every frame
|
|
4540
|
+
* that does not carry its own {@link GifFrame.delayCs} override.
|
|
4541
|
+
* Default: 200 cs (2 s).
|
|
4542
|
+
*/
|
|
4543
|
+
delayCs?: number;
|
|
4544
|
+
/** Number of times the animation loops (0 = loop forever, default). */
|
|
4545
|
+
loopCount?: number;
|
|
4546
|
+
}
|
|
4547
|
+
/**
|
|
4548
|
+
* Encode an ordered list of RGBA frames into an animated GIF89a byte sequence.
|
|
4549
|
+
*
|
|
4550
|
+
* Accepts either a bare `delayCs` number (React/Vue call style) or an
|
|
4551
|
+
* {@link EncodeGifOptions} object (Angular call style) as the second argument.
|
|
4552
|
+
*
|
|
4553
|
+
* @param frames Ordered frame descriptors (all must share identical dimensions).
|
|
4554
|
+
* @param delay Per-frame delay in centiseconds, or an options object.
|
|
4555
|
+
* @returns Raw GIF89a bytes.
|
|
4556
|
+
*/
|
|
4557
|
+
declare function encodeGif(frames: GifFrame[], delay?: number | EncodeGifOptions): Uint8Array;
|
|
4558
|
+
|
|
4342
4559
|
/**
|
|
4343
4560
|
* Pure video (WebM) export planning helpers shared by every binding's video
|
|
4344
4561
|
* export. Frame-segment timing, fps -> frame-interval maths, and MediaRecorder
|
|
@@ -6334,6 +6551,56 @@ declare class ViewerMobileSheetService {
|
|
|
6334
6551
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ViewerMobileSheetService>;
|
|
6335
6552
|
}
|
|
6336
6553
|
|
|
6554
|
+
declare class ViewerOptionsService {
|
|
6555
|
+
/**
|
|
6556
|
+
* Optional: `inject()` needs an active injection context, which plain
|
|
6557
|
+
* `new ViewerOptionsService()` (used by the colocated unit tests) does not
|
|
6558
|
+
* provide. Outside DI the subscription simply lives as long as the instance.
|
|
6559
|
+
*/
|
|
6560
|
+
private readonly destroyRef;
|
|
6561
|
+
private readonly translate;
|
|
6562
|
+
/** Imperative store: hydrates from and persists to `pptx-viewer-prefs`. */
|
|
6563
|
+
readonly store: ViewerOptionsStore;
|
|
6564
|
+
private readonly _options;
|
|
6565
|
+
/** Reactive File > Options snapshot; a new object per change. */
|
|
6566
|
+
readonly options: _angular_core.Signal<ViewerOptions>;
|
|
6567
|
+
constructor();
|
|
6568
|
+
setValue(group: ViewerOptionsGroupId, key: string, value: ViewerOptionPrimitive): void;
|
|
6569
|
+
setRibbonTabHidden(tabId: ToolbarTabId, hidden: boolean): void;
|
|
6570
|
+
setQuickAccessCommands(commandIds: readonly string[]): void;
|
|
6571
|
+
reset(group?: ViewerOptionsGroupId): void;
|
|
6572
|
+
/** Restore a snapshot wholesale (the dialog's Cancel semantics). */
|
|
6573
|
+
restore(snapshot: ViewerOptions): void;
|
|
6574
|
+
/** Undo-stack depth for `new EditorHistory({ maxDepth })`. */
|
|
6575
|
+
historyDepth(): number;
|
|
6576
|
+
/** AutoRecover cadence in seconds for the autosave engine. */
|
|
6577
|
+
autosaveIntervalSeconds(): number;
|
|
6578
|
+
/** Print-dialog seed; `undefined` keeps the dialog's own recents. */
|
|
6579
|
+
printDefaults(): Partial<PrintSettings> | undefined;
|
|
6580
|
+
/** Option-driven CSS classes for the viewer root (`pptx-ng-*` prefixed). */
|
|
6581
|
+
rootClasses(): string[];
|
|
6582
|
+
/** Tooltip text under the current ScreenTip style (undefined = suppress). */
|
|
6583
|
+
screenTip(label: string, description?: string, shortcut?: string): string | undefined;
|
|
6584
|
+
/** Run the enabled AutoCorrect rules over a committed run of text. */
|
|
6585
|
+
autoCorrect(text: string): string;
|
|
6586
|
+
/** Play the Accessibility "feedback with sound" cue for a completed action. */
|
|
6587
|
+
playFeedback(): void;
|
|
6588
|
+
/** Whether Trust Center forces the deck to open read-only. */
|
|
6589
|
+
protectedView(): boolean;
|
|
6590
|
+
/**
|
|
6591
|
+
* Gate an external hyperlink activation. Returns `true` when navigation may
|
|
6592
|
+
* proceed (no confirmation required, or the user confirmed the prompt).
|
|
6593
|
+
*/
|
|
6594
|
+
confirmExternalHyperlink(href: string): boolean;
|
|
6595
|
+
/**
|
|
6596
|
+
* Options > Save > "Delete cached files": purge every autosave recovery
|
|
6597
|
+
* snapshot from the shared IndexedDB store. Resolves with the purge count.
|
|
6598
|
+
*/
|
|
6599
|
+
clearCache(): Promise<number>;
|
|
6600
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewerOptionsService, never>;
|
|
6601
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ViewerOptionsService>;
|
|
6602
|
+
}
|
|
6603
|
+
|
|
6337
6604
|
/**
|
|
6338
6605
|
* presentation-annotations-helpers.ts: Pure geometry helpers for presentation
|
|
6339
6606
|
* ink annotations (pen, highlighter, eraser, laser).
|
|
@@ -6500,8 +6767,8 @@ declare class PowerPointViewerComponent {
|
|
|
6500
6767
|
readonly content: _angular_core.InputSignal<ArrayBuffer | Uint8Array<ArrayBufferLike> | null>;
|
|
6501
6768
|
/** Licensed fonts supplied by the host application. No fonts are bundled. */
|
|
6502
6769
|
readonly fontsInput: _angular_core.InputSignal<ViewerFontSource[]>;
|
|
6503
|
-
/** Whether editing actions are enabled
|
|
6504
|
-
readonly
|
|
6770
|
+
/** Whether editing actions are enabled (host input; see {@link canEdit}). */
|
|
6771
|
+
readonly canEditInput: _angular_core.InputSignal<boolean>;
|
|
6505
6772
|
/** Optional class applied to the root element. */
|
|
6506
6773
|
readonly class: _angular_core.InputSignal<string>;
|
|
6507
6774
|
/** Theme configuration for customising the viewer's appearance. Always wins over a File > Options > Appearance selection; see {@link defaultThemeKey}. */
|
|
@@ -6626,6 +6893,7 @@ declare class PowerPointViewerComponent {
|
|
|
6626
6893
|
protected readonly presenterWindow: PresenterWindowService;
|
|
6627
6894
|
private readonly destroyRef;
|
|
6628
6895
|
protected readonly dialogs: ViewerDialogsService;
|
|
6896
|
+
protected readonly viewerOpts: ViewerOptionsService;
|
|
6629
6897
|
private readonly compareSvc;
|
|
6630
6898
|
protected readonly xport: ViewerExportService;
|
|
6631
6899
|
protected readonly findReplace: ViewerFindReplaceService;
|
|
@@ -6650,6 +6918,12 @@ declare class PowerPointViewerComponent {
|
|
|
6650
6918
|
private readonly encryptedNotice;
|
|
6651
6919
|
/** The `<main>` host; used to locate the live `.pptx-ng-canvas-stage`. */
|
|
6652
6920
|
private readonly mainEl;
|
|
6921
|
+
/**
|
|
6922
|
+
* Effective edit permission: the host's `canEdit` input gated by Trust
|
|
6923
|
+
* Center > "Open presentations in Protected View", which forces the deck
|
|
6924
|
+
* read-only while enabled (File > Options wiring, mirrors PowerPoint).
|
|
6925
|
+
*/
|
|
6926
|
+
protected readonly canEdit: _angular_core.Signal<boolean>;
|
|
6653
6927
|
protected readonly activeSlideIndex: _angular_core.WritableSignal<number>;
|
|
6654
6928
|
/** Slides to display: the editable deck when `canEdit`, else the loaded deck. */
|
|
6655
6929
|
protected readonly displaySlides: _angular_core.Signal<readonly PptxSlide[]>;
|
|
@@ -6735,8 +7009,17 @@ declare class PowerPointViewerComponent {
|
|
|
6735
7009
|
protected readonly spellCheck: _angular_core.WritableSignal<boolean>;
|
|
6736
7010
|
/** User override that suppresses viewer animations and transitions. */
|
|
6737
7011
|
protected readonly reducedMotion: _angular_core.WritableSignal<boolean>;
|
|
6738
|
-
/**
|
|
7012
|
+
/**
|
|
7013
|
+
* The six legacy preference toggles as a snapshot, kept in a guarded
|
|
7014
|
+
* two-way sync with the File > Options store (see the constructor).
|
|
7015
|
+
*/
|
|
6739
7016
|
protected readonly viewerSettings: _angular_core.Signal<ViewerPreferences>;
|
|
7017
|
+
/**
|
|
7018
|
+
* Root class list: the host `class` input, the reduced-motion override, and
|
|
7019
|
+
* the option-driven display classes (`resolveOptionRootClasses`, so e.g.
|
|
7020
|
+
* hardware-acceleration and compatibility-display choices are styleable).
|
|
7021
|
+
*/
|
|
7022
|
+
protected readonly rootClasses: _angular_core.Signal<string[]>;
|
|
6740
7023
|
/** Whether the Insert SmartArt gallery dialog is open. */
|
|
6741
7024
|
protected readonly showSmartArtInsert: _angular_core.WritableSignal<boolean>;
|
|
6742
7025
|
/** The single selected element on the active slide (for the inspector). */
|
|
@@ -6855,8 +7138,10 @@ declare class PowerPointViewerComponent {
|
|
|
6855
7138
|
protected addGuide(axis: 'x' | 'y'): void;
|
|
6856
7139
|
/** Swap the deck for a restored version-history snapshot. */
|
|
6857
7140
|
protected onRestoreVersion(bytes: Uint8Array): void;
|
|
6858
|
-
/** Apply
|
|
6859
|
-
|
|
7141
|
+
/** Apply one legacy preference snapshot onto the scattered live signals. */
|
|
7142
|
+
private applyPreferenceSnapshot;
|
|
7143
|
+
/** Dispatch a Quick Access Toolbar command id to its existing handler. */
|
|
7144
|
+
protected onQuickAccessCommand(id: string): void;
|
|
6860
7145
|
/**
|
|
6861
7146
|
* Mobile "Format" slot: surface the inspector for the current selection.
|
|
6862
7147
|
* On mobile the format pane starts closed (React parity: the canvas owns
|
|
@@ -6891,7 +7176,7 @@ declare class PowerPointViewerComponent {
|
|
|
6891
7176
|
/** Resolve the live slide-stage element within `<main>`. */
|
|
6892
7177
|
private stageElement;
|
|
6893
7178
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PowerPointViewerComponent, never>;
|
|
6894
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "
|
|
7179
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEditInput": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultThemeKey": { "alias": "defaultThemeKey"; "required": false; "isSignal": true; }; "availableThemes": { "alias": "availableThemes"; "required": false; "isSignal": true; }; "onThemeChange": { "alias": "onThemeChange"; "required": false; "isSignal": true; }; "defaultLocale": { "alias": "defaultLocale"; "required": false; "isSignal": true; }; "availableLocales": { "alias": "availableLocales"; "required": false; "isSignal": true; }; "onLocaleChange": { "alias": "onLocaleChange"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
|
|
6895
7180
|
}
|
|
6896
7181
|
|
|
6897
7182
|
/** A selected chart sub-part, scoped to the chart element that owns it. */
|
|
@@ -7246,7 +7531,7 @@ declare class ZoomTargetService {
|
|
|
7246
7531
|
* `PowerPointViewerComponent`'s children (ribbon, slide canvas, inspector,
|
|
7247
7532
|
* dialogs, ...) rely on via `inject()`.
|
|
7248
7533
|
*/
|
|
7249
|
-
declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof CollaborationService, typeof AccessibilityService, typeof AutosaveService, typeof PrintService, typeof IsMobileService, typeof SmartArt3DService, typeof FieldContextService, typeof ZoomTargetService, 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 ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
|
|
7534
|
+
declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof CollaborationService, typeof AccessibilityService, typeof AutosaveService, typeof PrintService, typeof IsMobileService, typeof SmartArt3DService, typeof FieldContextService, typeof ZoomTargetService, 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];
|
|
7250
7535
|
|
|
7251
7536
|
/** Drawing tool IDs (mirrors React DRAW_TOOLS). */
|
|
7252
7537
|
type DrawTool$1 = 'select' | 'pen' | 'highlighter' | 'eraser' | 'freeform';
|
|
@@ -11646,19 +11931,16 @@ declare class ViewerExtraDialogsComponent {
|
|
|
11646
11931
|
readonly filePath: _angular_core.InputSignal<string | undefined>;
|
|
11647
11932
|
/** Custom shows offered in the set-up-slide-show "show slides" fieldset. */
|
|
11648
11933
|
readonly customShows: _angular_core.InputSignal<PptxCustomShow[]>;
|
|
11649
|
-
/** Live viewer preferences surfaced by the settings dialog. */
|
|
11650
|
-
readonly settings: _angular_core.InputSignal<ViewerPreferences>;
|
|
11651
11934
|
readonly themeKey: _angular_core.InputSignal<string>;
|
|
11652
11935
|
readonly availableThemes: _angular_core.InputSignal<readonly ThemeCatalogEntry[]>;
|
|
11653
11936
|
readonly localeCode: _angular_core.InputSignal<string>;
|
|
11654
11937
|
readonly availableLocales: _angular_core.InputSignal<readonly LocaleCatalogEntry[]>;
|
|
11655
11938
|
/** Fired with a restored `.pptx` version's bytes; the host swaps the deck. */
|
|
11656
11939
|
readonly restoreContent: _angular_core.OutputEmitterRef<Uint8Array<ArrayBufferLike>>;
|
|
11657
|
-
/** Fired whenever a settings toggle changes. */
|
|
11658
|
-
readonly settingsChange: _angular_core.OutputEmitterRef<ViewerPreferences>;
|
|
11659
11940
|
readonly themeKeySelect: _angular_core.OutputEmitterRef<string>;
|
|
11660
11941
|
readonly localeSelect: _angular_core.OutputEmitterRef<string>;
|
|
11661
11942
|
protected readonly svc: ViewerDialogsService;
|
|
11943
|
+
protected readonly viewerOpts: ViewerOptionsService;
|
|
11662
11944
|
protected readonly compare: ViewerCompareService;
|
|
11663
11945
|
protected readonly editor: EditorStateService;
|
|
11664
11946
|
protected readonly loader: LoadContentService;
|
|
@@ -11681,6 +11963,8 @@ declare class ViewerExtraDialogsComponent {
|
|
|
11681
11963
|
promptKeepAnnotations(map: SlideAnnotationMap): void;
|
|
11682
11964
|
/** Persist the pending presentation ink as `ink` elements on their slides. */
|
|
11683
11965
|
onKeepAnnotations(): void;
|
|
11966
|
+
/** Options > Save > "Delete cached files": purge autosave recovery snapshots. */
|
|
11967
|
+
protected onClearOptionsCache(): void;
|
|
11684
11968
|
/** Drop the pending presentation ink. */
|
|
11685
11969
|
onDiscardAnnotations(): void;
|
|
11686
11970
|
/** Insert a new equation element, or update the one currently being edited. */
|
|
@@ -11692,7 +11976,7 @@ declare class ViewerExtraDialogsComponent {
|
|
|
11692
11976
|
/** Clear any save password. */
|
|
11693
11977
|
onRemovePassword(): void;
|
|
11694
11978
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewerExtraDialogsComponent, never>;
|
|
11695
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ViewerExtraDialogsComponent, "pptx-viewer-extra-dialogs", never, { "activeSlideIndex": { "alias": "activeSlideIndex"; "required": false; "isSignal": true; }; "selectedElementId": { "alias": "selectedElementId"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "customShows": { "alias": "customShows"; "required": false; "isSignal": true; }; "
|
|
11979
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ViewerExtraDialogsComponent, "pptx-viewer-extra-dialogs", never, { "activeSlideIndex": { "alias": "activeSlideIndex"; "required": false; "isSignal": true; }; "selectedElementId": { "alias": "selectedElementId"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "customShows": { "alias": "customShows"; "required": false; "isSignal": true; }; "themeKey": { "alias": "themeKey"; "required": false; "isSignal": true; }; "availableThemes": { "alias": "availableThemes"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "availableLocales": { "alias": "availableLocales"; "required": false; "isSignal": true; }; }, { "restoreContent": "restoreContent"; "themeKeySelect": "themeKeySelect"; "localeSelect": "localeSelect"; }, never, never, true, never>;
|
|
11696
11980
|
}
|
|
11697
11981
|
|
|
11698
11982
|
declare class EquationEditorDialogComponent {
|
|
@@ -12072,29 +12356,55 @@ declare class ShortcutPanelComponent {
|
|
|
12072
12356
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShortcutPanelComponent, "pptx-shortcut-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
|
|
12073
12357
|
}
|
|
12074
12358
|
|
|
12359
|
+
/** One dialog-level option edit (group + key + new primitive value). */
|
|
12360
|
+
interface OptionValueChange {
|
|
12361
|
+
group: ViewerOptionsGroupId;
|
|
12362
|
+
key: string;
|
|
12363
|
+
value: ViewerOptionPrimitive;
|
|
12364
|
+
}
|
|
12365
|
+
|
|
12366
|
+
/** One Customize Ribbon checkbox edit. */
|
|
12367
|
+
interface RibbonTabHiddenChange {
|
|
12368
|
+
tabId: ToolbarTabId;
|
|
12369
|
+
hidden: boolean;
|
|
12370
|
+
}
|
|
12371
|
+
|
|
12075
12372
|
declare class SettingsDialogComponent {
|
|
12076
12373
|
readonly open: _angular_core.InputSignal<boolean>;
|
|
12077
|
-
|
|
12078
|
-
|
|
12374
|
+
/** Full File > Options snapshot rendered by every pane. */
|
|
12375
|
+
readonly options: _angular_core.InputSignal<ViewerOptions>;
|
|
12376
|
+
/** Selected theme catalog key, for General > Appearance. */
|
|
12079
12377
|
readonly themeKey: _angular_core.InputSignal<string>;
|
|
12080
|
-
/** Theme choices offered by the Appearance tab. Defaults to the built-in `THEME_CATALOG`. */
|
|
12081
12378
|
readonly availableThemes: _angular_core.InputSignal<readonly ThemeCatalogEntry[]>;
|
|
12082
|
-
/** Active locale code, for the Language
|
|
12379
|
+
/** Active locale code, for the Language category. */
|
|
12083
12380
|
readonly localeCode: _angular_core.InputSignal<string>;
|
|
12084
|
-
/** Locale choices offered by the Language tab. Defaults to the built-in `LOCALE_CATALOG`. */
|
|
12085
12381
|
readonly availableLocales: _angular_core.InputSignal<readonly LocaleCatalogEntry[]>;
|
|
12086
|
-
|
|
12087
|
-
|
|
12382
|
+
/** Availability flags for the Add-ins pane (unset ids default to active). */
|
|
12383
|
+
readonly addinStatus: _angular_core.InputSignal<ViewerAddinStatus | undefined>;
|
|
12384
|
+
readonly optionChange: _angular_core.OutputEmitterRef<OptionValueChange>;
|
|
12385
|
+
/** Restore a snapshot wholesale (Cancel semantics). */
|
|
12386
|
+
readonly restoreOptions: _angular_core.OutputEmitterRef<ViewerOptions>;
|
|
12387
|
+
readonly ribbonTabHiddenChange: _angular_core.OutputEmitterRef<RibbonTabHiddenChange>;
|
|
12388
|
+
readonly quickAccessCommandsChange: _angular_core.OutputEmitterRef<string[]>;
|
|
12389
|
+
/** Reset one tab-group (or everything when `undefined`). */
|
|
12390
|
+
readonly resetOptions: _angular_core.OutputEmitterRef<keyof ViewerOptions | undefined>;
|
|
12391
|
+
readonly clearCache: _angular_core.OutputEmitterRef<void>;
|
|
12088
12392
|
readonly themeKeySelect: _angular_core.OutputEmitterRef<string>;
|
|
12089
|
-
/** Fired when the user picks a Language tab entry. */
|
|
12090
12393
|
readonly localeSelect: _angular_core.OutputEmitterRef<string>;
|
|
12091
12394
|
readonly close: _angular_core.OutputEmitterRef<void>;
|
|
12092
|
-
protected readonly
|
|
12093
|
-
protected readonly
|
|
12094
|
-
protected readonly
|
|
12095
|
-
|
|
12395
|
+
protected readonly tabs: readonly ViewerOptionsTabDefinition[];
|
|
12396
|
+
protected readonly activeTabId: _angular_core.WritableSignal<ViewerOptionsTabId>;
|
|
12397
|
+
protected readonly activeTab: _angular_core.Signal<ViewerOptionsTabDefinition>;
|
|
12398
|
+
/** Snapshot taken when the dialog opens, restored by Cancel. */
|
|
12399
|
+
private snapshot;
|
|
12400
|
+
private wasOpen;
|
|
12401
|
+
constructor();
|
|
12402
|
+
/** Cancel: restore the on-open snapshot, then close. */
|
|
12403
|
+
protected cancel(): void;
|
|
12404
|
+
/** Escape confirms (keeps edits), mirroring React's dialog. */
|
|
12405
|
+
protected onEscape(): void;
|
|
12096
12406
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SettingsDialogComponent, never>;
|
|
12097
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SettingsDialogComponent, "pptx-settings-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "
|
|
12407
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SettingsDialogComponent, "pptx-settings-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "themeKey": { "alias": "themeKey"; "required": false; "isSignal": true; }; "availableThemes": { "alias": "availableThemes"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "availableLocales": { "alias": "availableLocales"; "required": false; "isSignal": true; }; "addinStatus": { "alias": "addinStatus"; "required": false; "isSignal": true; }; }, { "optionChange": "optionChange"; "restoreOptions": "restoreOptions"; "ribbonTabHiddenChange": "ribbonTabHiddenChange"; "quickAccessCommandsChange": "quickAccessCommandsChange"; "resetOptions": "resetOptions"; "clearCache": "clearCache"; "themeKeySelect": "themeKeySelect"; "localeSelect": "localeSelect"; "close": "close"; }, never, never, true, never>;
|
|
12098
12408
|
}
|
|
12099
12409
|
|
|
12100
12410
|
declare class SettingsAppearanceTabComponent {
|
|
@@ -12119,7 +12429,7 @@ declare class AccountPageComponent {
|
|
|
12119
12429
|
readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
|
|
12120
12430
|
private readonly translate;
|
|
12121
12431
|
protected readonly swatches: readonly string[];
|
|
12122
|
-
protected readonly version = "1.
|
|
12432
|
+
protected readonly version = "1.31.0";
|
|
12123
12433
|
protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
|
|
12124
12434
|
protected readonly initial: _angular_core.Signal<string>;
|
|
12125
12435
|
protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
|
|
@@ -14682,10 +14992,14 @@ declare class TitleBarComponent {
|
|
|
14682
14992
|
readonly findReplaceOpen: _angular_core.InputSignal<boolean>;
|
|
14683
14993
|
/** Toolbar buttons the host wants hidden (gates Undo/Redo independently). */
|
|
14684
14994
|
readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
|
|
14995
|
+
/** Live Quick Access Toolbar options (File > Options > Quick Access). */
|
|
14996
|
+
readonly quickAccess: _angular_core.InputSignal<ViewerQuickAccessOptions | null>;
|
|
14685
14997
|
readonly toggleAutosave: _angular_core.OutputEmitterRef<void>;
|
|
14686
14998
|
readonly save: _angular_core.OutputEmitterRef<void>;
|
|
14687
14999
|
readonly undo: _angular_core.OutputEmitterRef<void>;
|
|
14688
15000
|
readonly redo: _angular_core.OutputEmitterRef<void>;
|
|
15001
|
+
/** A configured Quick Access command was pressed (catalog id). */
|
|
15002
|
+
readonly quickCommand: _angular_core.OutputEmitterRef<string>;
|
|
14689
15003
|
readonly toggleFindReplace: _angular_core.OutputEmitterRef<void>;
|
|
14690
15004
|
readonly commandSearch: _angular_core.OutputEmitterRef<string>;
|
|
14691
15005
|
private readonly translate;
|
|
@@ -14718,6 +15032,20 @@ declare class TitleBarComponent {
|
|
|
14718
15032
|
protected readonly toolbar: ToolbarVisibility;
|
|
14719
15033
|
protected readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
14720
15034
|
protected readonly searchFocused: _angular_core.WritableSignal<boolean>;
|
|
15035
|
+
/** Resolved Quick Access options (host-supplied, or the default trio+). */
|
|
15036
|
+
protected readonly qat: _angular_core.Signal<ViewerQuickAccessOptions>;
|
|
15037
|
+
/**
|
|
15038
|
+
* Configured Quick Access commands beyond the dedicated save/undo/redo
|
|
15039
|
+
* buttons (which keep their own gating + labels). Rendered as text-label
|
|
15040
|
+
* buttons routed through {@link onQuickCommand}.
|
|
15041
|
+
*/
|
|
15042
|
+
protected readonly extraQuickCommands: _angular_core.Signal<QuickAccessCommandDefinition[]>;
|
|
15043
|
+
/**
|
|
15044
|
+
* Route a Quick Access press: keep the dedicated save/undo/redo outputs
|
|
15045
|
+
* (existing host wiring, `hiddenActions` gating) and forward everything
|
|
15046
|
+
* else through the generic {@link quickCommand} output.
|
|
15047
|
+
*/
|
|
15048
|
+
protected onQuickCommand(id: string): void;
|
|
14721
15049
|
protected readonly commandResults: _angular_core.Signal<CommandSearchEntry[]>;
|
|
14722
15050
|
/** The i18n key for the save-location status text (next to the file name). */
|
|
14723
15051
|
protected readonly statusKey: _angular_core.Signal<string>;
|
|
@@ -14728,7 +15056,7 @@ declare class TitleBarComponent {
|
|
|
14728
15056
|
protected onSearchBlur(): void;
|
|
14729
15057
|
protected onSearchKeyDown(event: KeyboardEvent): void;
|
|
14730
15058
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TitleBarComponent, never>;
|
|
14731
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TitleBarComponent, "pptx-title-bar", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "isDirty": { "alias": "isDirty"; "required": false; "isSignal": true; }; "autosaveStatus": { "alias": "autosaveStatus"; "required": false; "isSignal": true; }; "autosaveEnabled": { "alias": "autosaveEnabled"; "required": false; "isSignal": true; }; "canUndo": { "alias": "canUndo"; "required": false; "isSignal": true; }; "canRedo": { "alias": "canRedo"; "required": false; "isSignal": true; }; "undoLabel": { "alias": "undoLabel"; "required": false; "isSignal": true; }; "redoLabel": { "alias": "redoLabel"; "required": false; "isSignal": true; }; "findReplaceOpen": { "alias": "findReplaceOpen"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "toggleAutosave": "toggleAutosave"; "save": "save"; "undo": "undo"; "redo": "redo"; "toggleFindReplace": "toggleFindReplace"; "commandSearch": "commandSearch"; }, never, never, true, never>;
|
|
15059
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TitleBarComponent, "pptx-title-bar", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "isDirty": { "alias": "isDirty"; "required": false; "isSignal": true; }; "autosaveStatus": { "alias": "autosaveStatus"; "required": false; "isSignal": true; }; "autosaveEnabled": { "alias": "autosaveEnabled"; "required": false; "isSignal": true; }; "canUndo": { "alias": "canUndo"; "required": false; "isSignal": true; }; "canRedo": { "alias": "canRedo"; "required": false; "isSignal": true; }; "undoLabel": { "alias": "undoLabel"; "required": false; "isSignal": true; }; "redoLabel": { "alias": "redoLabel"; "required": false; "isSignal": true; }; "findReplaceOpen": { "alias": "findReplaceOpen"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "quickAccess": { "alias": "quickAccess"; "required": false; "isSignal": true; }; }, { "toggleAutosave": "toggleAutosave"; "save": "save"; "undo": "undo"; "redo": "redo"; "quickCommand": "quickCommand"; "toggleFindReplace": "toggleFindReplace"; "commandSearch": "commandSearch"; }, never, never, true, never>;
|
|
14732
15060
|
}
|
|
14733
15061
|
|
|
14734
15062
|
/**
|