pptx-angular-viewer 1.7.2 → 1.9.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.
|
@@ -32150,7 +32150,16 @@ const MATERIAL_PRESETS = [
|
|
|
32150
32150
|
* (PowerPoint shows "Saved to this PC" there).
|
|
32151
32151
|
*/
|
|
32152
32152
|
function resolveTitleBarStatusKey(input) {
|
|
32153
|
-
const { autosaveState, isDirty, autosaveEnabled } = input;
|
|
32153
|
+
const { autosaveState, isDirty, autosaveEnabled, disabledReason } = input;
|
|
32154
|
+
if (autosaveState === 'disabled') {
|
|
32155
|
+
if (disabledReason === 'no_file_path') {
|
|
32156
|
+
return 'pptx.autosave.disabledNoFilePath';
|
|
32157
|
+
}
|
|
32158
|
+
if (disabledReason === 'autosave_toggle_off') {
|
|
32159
|
+
return 'pptx.autosave.disabledToggleOff';
|
|
32160
|
+
}
|
|
32161
|
+
return 'pptx.autosave.disabled';
|
|
32162
|
+
}
|
|
32154
32163
|
if (autosaveEnabled && autosaveState === 'saving') {
|
|
32155
32164
|
return 'pptx.autosave.saving';
|
|
32156
32165
|
}
|
|
@@ -32207,6 +32216,198 @@ const TAB_ROW_ACTION_CLASSES = {
|
|
|
32207
32216
|
recordDot: 'w-2 h-2 rounded-full bg-red-600 shrink-0',
|
|
32208
32217
|
};
|
|
32209
32218
|
|
|
32219
|
+
/**
|
|
32220
|
+
* Command-search data for the PowerPoint-style "Tell me what you want to do"
|
|
32221
|
+
* search bar. Provides searchable command entries grouped by category, each
|
|
32222
|
+
* mapping a label translation key to a command identifier that bindings can
|
|
32223
|
+
* dispatch.
|
|
32224
|
+
*/
|
|
32225
|
+
/**
|
|
32226
|
+
* Static catalogue of searchable commands. Bindings filter this list by the
|
|
32227
|
+
* user's typed query (matching against the resolved translation text).
|
|
32228
|
+
*/
|
|
32229
|
+
const COMMAND_SEARCH_ENTRIES = [
|
|
32230
|
+
// Format
|
|
32231
|
+
{ labelKey: 'pptx.textPanel.bold', command: 'format.bold', icon: 'bold', category: 'format' },
|
|
32232
|
+
{
|
|
32233
|
+
labelKey: 'pptx.textPanel.italic',
|
|
32234
|
+
command: 'format.italic',
|
|
32235
|
+
icon: 'italic',
|
|
32236
|
+
category: 'format',
|
|
32237
|
+
},
|
|
32238
|
+
{
|
|
32239
|
+
labelKey: 'pptx.textPanel.underline',
|
|
32240
|
+
command: 'format.underline',
|
|
32241
|
+
icon: 'underline',
|
|
32242
|
+
category: 'format',
|
|
32243
|
+
},
|
|
32244
|
+
{
|
|
32245
|
+
labelKey: 'pptx.ribbon.alignLeft',
|
|
32246
|
+
command: 'format.alignLeft',
|
|
32247
|
+
icon: 'alignLeft',
|
|
32248
|
+
category: 'format',
|
|
32249
|
+
},
|
|
32250
|
+
{
|
|
32251
|
+
labelKey: 'pptx.ribbon.alignCenter',
|
|
32252
|
+
command: 'format.alignCenter',
|
|
32253
|
+
icon: 'alignCenter',
|
|
32254
|
+
category: 'format',
|
|
32255
|
+
},
|
|
32256
|
+
{
|
|
32257
|
+
labelKey: 'pptx.ribbon.alignRight',
|
|
32258
|
+
command: 'format.alignRight',
|
|
32259
|
+
icon: 'alignRight',
|
|
32260
|
+
category: 'format',
|
|
32261
|
+
},
|
|
32262
|
+
{
|
|
32263
|
+
labelKey: 'pptx.ribbon.clearFormatting',
|
|
32264
|
+
command: 'format.clear',
|
|
32265
|
+
icon: 'eraser',
|
|
32266
|
+
category: 'format',
|
|
32267
|
+
},
|
|
32268
|
+
// Insert
|
|
32269
|
+
{
|
|
32270
|
+
labelKey: 'pptx.insert.addTextBox',
|
|
32271
|
+
command: 'insert.textBox',
|
|
32272
|
+
icon: 'type',
|
|
32273
|
+
category: 'insert',
|
|
32274
|
+
},
|
|
32275
|
+
{ labelKey: 'pptx.insert.addShape', command: 'insert.shape', icon: 'square', category: 'insert' },
|
|
32276
|
+
{
|
|
32277
|
+
labelKey: 'pptx.ribbon.insertImage',
|
|
32278
|
+
command: 'insert.image',
|
|
32279
|
+
icon: 'image',
|
|
32280
|
+
category: 'insert',
|
|
32281
|
+
},
|
|
32282
|
+
{
|
|
32283
|
+
labelKey: 'pptx.ribbon.insertMedia',
|
|
32284
|
+
command: 'insert.media',
|
|
32285
|
+
icon: 'video',
|
|
32286
|
+
category: 'insert',
|
|
32287
|
+
},
|
|
32288
|
+
{
|
|
32289
|
+
labelKey: 'pptx.insert.insertTable',
|
|
32290
|
+
command: 'insert.table',
|
|
32291
|
+
icon: 'table',
|
|
32292
|
+
category: 'insert',
|
|
32293
|
+
},
|
|
32294
|
+
{
|
|
32295
|
+
labelKey: 'pptx.ribbon.insertChart',
|
|
32296
|
+
command: 'insert.chart',
|
|
32297
|
+
icon: 'barChart',
|
|
32298
|
+
category: 'insert',
|
|
32299
|
+
},
|
|
32300
|
+
{
|
|
32301
|
+
labelKey: 'pptx.insert.insertSmartArt',
|
|
32302
|
+
command: 'insert.smartArt',
|
|
32303
|
+
icon: 'layers',
|
|
32304
|
+
category: 'insert',
|
|
32305
|
+
},
|
|
32306
|
+
{
|
|
32307
|
+
labelKey: 'pptx.insert.insertEquation',
|
|
32308
|
+
command: 'insert.equation',
|
|
32309
|
+
icon: 'sigma',
|
|
32310
|
+
category: 'insert',
|
|
32311
|
+
},
|
|
32312
|
+
// View
|
|
32313
|
+
{ labelKey: 'pptx.grid.grid', command: 'view.toggleGrid', icon: 'grid', category: 'view' },
|
|
32314
|
+
{ labelKey: 'pptx.ruler.rulers', command: 'view.toggleRulers', icon: 'ruler', category: 'view' },
|
|
32315
|
+
{
|
|
32316
|
+
labelKey: 'pptx.slideSorter.title',
|
|
32317
|
+
command: 'view.slideSorter',
|
|
32318
|
+
icon: 'layoutGrid',
|
|
32319
|
+
category: 'view',
|
|
32320
|
+
},
|
|
32321
|
+
{
|
|
32322
|
+
labelKey: 'pptx.view.zoomToFit',
|
|
32323
|
+
command: 'view.zoomToFit',
|
|
32324
|
+
icon: 'maximize',
|
|
32325
|
+
category: 'view',
|
|
32326
|
+
},
|
|
32327
|
+
// Slide Show
|
|
32328
|
+
{
|
|
32329
|
+
labelKey: 'pptx.slideShow.fromBeginning',
|
|
32330
|
+
command: 'slideShow.fromBeginning',
|
|
32331
|
+
icon: 'play',
|
|
32332
|
+
category: 'slideShow',
|
|
32333
|
+
},
|
|
32334
|
+
{
|
|
32335
|
+
labelKey: 'pptx.slideShow.presenterView',
|
|
32336
|
+
command: 'slideShow.presenterView',
|
|
32337
|
+
icon: 'monitor',
|
|
32338
|
+
category: 'slideShow',
|
|
32339
|
+
},
|
|
32340
|
+
// Design
|
|
32341
|
+
{
|
|
32342
|
+
labelKey: 'pptx.ribbon.browseThemes',
|
|
32343
|
+
command: 'design.browseThemes',
|
|
32344
|
+
icon: 'palette',
|
|
32345
|
+
category: 'design',
|
|
32346
|
+
},
|
|
32347
|
+
{
|
|
32348
|
+
labelKey: 'pptx.ribbon.slideSize',
|
|
32349
|
+
command: 'design.slideSize',
|
|
32350
|
+
icon: 'monitor',
|
|
32351
|
+
category: 'design',
|
|
32352
|
+
},
|
|
32353
|
+
// Arrange
|
|
32354
|
+
{
|
|
32355
|
+
labelKey: 'pptx.arrange.bringToFront',
|
|
32356
|
+
command: 'arrange.bringToFront',
|
|
32357
|
+
icon: 'layers',
|
|
32358
|
+
category: 'arrange',
|
|
32359
|
+
},
|
|
32360
|
+
{
|
|
32361
|
+
labelKey: 'pptx.arrange.sendToBack',
|
|
32362
|
+
command: 'arrange.sendToBack',
|
|
32363
|
+
icon: 'layers',
|
|
32364
|
+
category: 'arrange',
|
|
32365
|
+
},
|
|
32366
|
+
{
|
|
32367
|
+
labelKey: 'pptx.arrange.duplicate',
|
|
32368
|
+
command: 'arrange.duplicate',
|
|
32369
|
+
icon: 'copy',
|
|
32370
|
+
category: 'arrange',
|
|
32371
|
+
},
|
|
32372
|
+
// Review
|
|
32373
|
+
{
|
|
32374
|
+
labelKey: 'pptx.review.spelling',
|
|
32375
|
+
command: 'review.spelling',
|
|
32376
|
+
icon: 'spellCheck',
|
|
32377
|
+
category: 'format',
|
|
32378
|
+
},
|
|
32379
|
+
{
|
|
32380
|
+
labelKey: 'pptx.review.language',
|
|
32381
|
+
command: 'review.language',
|
|
32382
|
+
icon: 'globe',
|
|
32383
|
+
category: 'format',
|
|
32384
|
+
},
|
|
32385
|
+
{
|
|
32386
|
+
labelKey: 'pptx.review.accessibilityCheck',
|
|
32387
|
+
command: 'review.accessibility',
|
|
32388
|
+
icon: 'shieldCheck',
|
|
32389
|
+
category: 'view',
|
|
32390
|
+
},
|
|
32391
|
+
{
|
|
32392
|
+
labelKey: 'pptx.ribbon.link',
|
|
32393
|
+
command: 'insert.link',
|
|
32394
|
+
icon: 'link',
|
|
32395
|
+
category: 'insert',
|
|
32396
|
+
},
|
|
32397
|
+
];
|
|
32398
|
+
/**
|
|
32399
|
+
* Filter the command catalogue by a search query (case-insensitive substring
|
|
32400
|
+
* match against the resolved label). The `resolveLabel` callback is provided
|
|
32401
|
+
* by the binding to translate the key into the current locale's text.
|
|
32402
|
+
*/
|
|
32403
|
+
function filterCommands(query, resolveLabel) {
|
|
32404
|
+
if (!query.trim()) {
|
|
32405
|
+
return [];
|
|
32406
|
+
}
|
|
32407
|
+
const lowerQuery = query.toLowerCase();
|
|
32408
|
+
return COMMAND_SEARCH_ENTRIES.filter((entry) => resolveLabel(entry.labelKey).toLowerCase().includes(lowerQuery));
|
|
32409
|
+
}
|
|
32410
|
+
|
|
32210
32411
|
/**
|
|
32211
32412
|
* IndexedDB-backed autosave recovery store, shared by every binding.
|
|
32212
32413
|
*
|
|
@@ -32304,6 +32505,99 @@ function putAutosaveRecord(filePath, data) {
|
|
|
32304
32505
|
};
|
|
32305
32506
|
}));
|
|
32306
32507
|
}
|
|
32508
|
+
/**
|
|
32509
|
+
* Retrieve a single autosave snapshot by file path.
|
|
32510
|
+
* Returns undefined when no snapshot exists.
|
|
32511
|
+
*/
|
|
32512
|
+
async function getAutosaveSnapshot(filePath) {
|
|
32513
|
+
const db = await openAutosaveDb$1();
|
|
32514
|
+
return new Promise((resolve) => {
|
|
32515
|
+
const tx = db.transaction(AUTOSAVE_STORE_NAME, 'readonly');
|
|
32516
|
+
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
32517
|
+
const req = store.get(filePath);
|
|
32518
|
+
req.onsuccess = () => {
|
|
32519
|
+
db.close();
|
|
32520
|
+
resolve(req.result);
|
|
32521
|
+
};
|
|
32522
|
+
req.onerror = () => {
|
|
32523
|
+
db.close();
|
|
32524
|
+
resolve(undefined);
|
|
32525
|
+
};
|
|
32526
|
+
});
|
|
32527
|
+
}
|
|
32528
|
+
/**
|
|
32529
|
+
* List all autosave snapshots (without the heavy `data` blob).
|
|
32530
|
+
* Useful for showing a recovery picker on app start.
|
|
32531
|
+
*/
|
|
32532
|
+
async function listAutosaveSnapshots() {
|
|
32533
|
+
const db = await openAutosaveDb$1();
|
|
32534
|
+
return new Promise((resolve) => {
|
|
32535
|
+
const results = [];
|
|
32536
|
+
try {
|
|
32537
|
+
const tx = db.transaction(AUTOSAVE_STORE_NAME, 'readonly');
|
|
32538
|
+
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
32539
|
+
const cursorReq = store.openCursor();
|
|
32540
|
+
cursorReq.onsuccess = () => {
|
|
32541
|
+
const cursor = cursorReq.result;
|
|
32542
|
+
if (cursor) {
|
|
32543
|
+
const val = cursor.value;
|
|
32544
|
+
results.push({ key: val.key, timestamp: val.timestamp, size: val.size });
|
|
32545
|
+
cursor.continue();
|
|
32546
|
+
}
|
|
32547
|
+
};
|
|
32548
|
+
tx.oncomplete = () => {
|
|
32549
|
+
db.close();
|
|
32550
|
+
resolve(results);
|
|
32551
|
+
};
|
|
32552
|
+
tx.onerror = () => {
|
|
32553
|
+
db.close();
|
|
32554
|
+
resolve([]);
|
|
32555
|
+
};
|
|
32556
|
+
}
|
|
32557
|
+
catch {
|
|
32558
|
+
try {
|
|
32559
|
+
db.close();
|
|
32560
|
+
}
|
|
32561
|
+
catch {
|
|
32562
|
+
// Ignore
|
|
32563
|
+
}
|
|
32564
|
+
resolve([]);
|
|
32565
|
+
}
|
|
32566
|
+
});
|
|
32567
|
+
}
|
|
32568
|
+
/**
|
|
32569
|
+
* Delete an autosave snapshot by file path.
|
|
32570
|
+
*/
|
|
32571
|
+
async function deleteAutosaveSnapshot(filePath) {
|
|
32572
|
+
const db = await openAutosaveDb$1();
|
|
32573
|
+
return new Promise((resolve) => {
|
|
32574
|
+
try {
|
|
32575
|
+
const tx = db.transaction(AUTOSAVE_STORE_NAME, 'readwrite');
|
|
32576
|
+
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
32577
|
+
store.delete(filePath);
|
|
32578
|
+
tx.oncomplete = () => {
|
|
32579
|
+
db.close();
|
|
32580
|
+
resolve(true);
|
|
32581
|
+
};
|
|
32582
|
+
tx.onerror = () => {
|
|
32583
|
+
db.close();
|
|
32584
|
+
resolve(false);
|
|
32585
|
+
};
|
|
32586
|
+
}
|
|
32587
|
+
catch {
|
|
32588
|
+
try {
|
|
32589
|
+
db.close();
|
|
32590
|
+
}
|
|
32591
|
+
catch {
|
|
32592
|
+
// Ignore
|
|
32593
|
+
}
|
|
32594
|
+
resolve(false);
|
|
32595
|
+
}
|
|
32596
|
+
});
|
|
32597
|
+
}
|
|
32598
|
+
// ---------------------------------------------------------------------------
|
|
32599
|
+
// Write helpers
|
|
32600
|
+
// ---------------------------------------------------------------------------
|
|
32307
32601
|
/**
|
|
32308
32602
|
* Persist a recovery snapshot. On QuotaExceededError the oldest record is
|
|
32309
32603
|
* dropped and the write retried once.
|
|
@@ -35127,9 +35421,18 @@ class AutosaveService {
|
|
|
35127
35421
|
const filePath = host.filePath();
|
|
35128
35422
|
const seconds = host.intervalSeconds?.() ?? AUTOSAVE_DEFAULT_INTERVAL_SECONDS;
|
|
35129
35423
|
this.clearTimer();
|
|
35130
|
-
if (!enabled
|
|
35424
|
+
if (!enabled) {
|
|
35425
|
+
this.status.set({ state: 'disabled', reason: 'autosave_toggle_off' });
|
|
35426
|
+
return;
|
|
35427
|
+
}
|
|
35428
|
+
if (!filePath) {
|
|
35429
|
+
this.status.set({ state: 'disabled', reason: 'no_file_path' });
|
|
35131
35430
|
return;
|
|
35132
35431
|
}
|
|
35432
|
+
// Requirements met; reset to idle if currently disabled.
|
|
35433
|
+
if (this.status().state === 'disabled') {
|
|
35434
|
+
this.status.set({ state: 'idle' });
|
|
35435
|
+
}
|
|
35133
35436
|
this.timer = setInterval(() => {
|
|
35134
35437
|
void this.doAutosave();
|
|
35135
35438
|
}, autosaveIntervalMs(seconds));
|
|
@@ -67944,6 +68247,14 @@ const CHAR_SPACING_OPTIONS = [
|
|
|
67944
68247
|
{ label: 'Loose', value: 300 },
|
|
67945
68248
|
{ label: 'Very Loose', value: 600 },
|
|
67946
68249
|
];
|
|
68250
|
+
/** Change Case options matching PowerPoint's Aa dropdown. */
|
|
68251
|
+
const CHANGE_CASE_OPTIONS = [
|
|
68252
|
+
{ label: 'Sentence case.', value: 'sentence' },
|
|
68253
|
+
{ label: 'lowercase', value: 'lower' },
|
|
68254
|
+
{ label: 'UPPERCASE', value: 'upper' },
|
|
68255
|
+
{ label: 'Capitalize Each Word', value: 'capitalize' },
|
|
68256
|
+
{ label: 'tOGGLE cASE', value: 'toggle' },
|
|
68257
|
+
];
|
|
67947
68258
|
class RibbonFontControlsComponent {
|
|
67948
68259
|
editor = inject(EditorStateService);
|
|
67949
68260
|
slideIndex = input(0, /* @ts-ignore */
|
|
@@ -67955,6 +68266,7 @@ class RibbonFontControlsComponent {
|
|
|
67955
68266
|
fontColorPresets = FONT_COLOR_PRESETS;
|
|
67956
68267
|
highlightColorPresets = HIGHLIGHT_COLOR_PRESETS;
|
|
67957
68268
|
charSpacingOptions = CHAR_SPACING_OPTIONS;
|
|
68269
|
+
changeCaseOptions = CHANGE_CASE_OPTIONS;
|
|
67958
68270
|
isText() {
|
|
67959
68271
|
return isTextElement(this.selectedElement());
|
|
67960
68272
|
}
|
|
@@ -67999,6 +68311,21 @@ class RibbonFontControlsComponent {
|
|
|
67999
68311
|
setCharSpacing(event) {
|
|
68000
68312
|
this.patch({ characterSpacing: Number(event.target.value) });
|
|
68001
68313
|
}
|
|
68314
|
+
setChangeCase(event) {
|
|
68315
|
+
const value = event.target.value;
|
|
68316
|
+
switch (value) {
|
|
68317
|
+
case 'upper':
|
|
68318
|
+
this.patch({ textCaps: 'all' });
|
|
68319
|
+
break;
|
|
68320
|
+
case 'lower':
|
|
68321
|
+
case 'sentence':
|
|
68322
|
+
case 'capitalize':
|
|
68323
|
+
case 'toggle':
|
|
68324
|
+
this.patch({ textCaps: 'none' });
|
|
68325
|
+
break;
|
|
68326
|
+
}
|
|
68327
|
+
event.target.selectedIndex = 0;
|
|
68328
|
+
}
|
|
68002
68329
|
toggleStyle(key) {
|
|
68003
68330
|
this.patch({ [key]: !this.curStyle()?.[key] });
|
|
68004
68331
|
}
|
|
@@ -68153,6 +68480,18 @@ class RibbonFontControlsComponent {
|
|
|
68153
68480
|
</option>
|
|
68154
68481
|
}
|
|
68155
68482
|
</select>
|
|
68483
|
+
<!-- Change Case -->
|
|
68484
|
+
<select
|
|
68485
|
+
class="pptx-rb-select w-24"
|
|
68486
|
+
[attr.aria-label]="'pptx.text.changeCase' | translate"
|
|
68487
|
+
[disabled]="!isText()"
|
|
68488
|
+
(change)="setChangeCase($event)"
|
|
68489
|
+
>
|
|
68490
|
+
<option value="" selected disabled>Aa</option>
|
|
68491
|
+
@for (opt of changeCaseOptions; track opt.value) {
|
|
68492
|
+
<option [value]="opt.value">{{ opt.label }}</option>
|
|
68493
|
+
}
|
|
68494
|
+
</select>
|
|
68156
68495
|
<!-- Font colour popover -->
|
|
68157
68496
|
<pptx-ribbon-color-popover
|
|
68158
68497
|
[current]="curColor()"
|
|
@@ -68313,6 +68652,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68313
68652
|
</option>
|
|
68314
68653
|
}
|
|
68315
68654
|
</select>
|
|
68655
|
+
<!-- Change Case -->
|
|
68656
|
+
<select
|
|
68657
|
+
class="pptx-rb-select w-24"
|
|
68658
|
+
[attr.aria-label]="'pptx.text.changeCase' | translate"
|
|
68659
|
+
[disabled]="!isText()"
|
|
68660
|
+
(change)="setChangeCase($event)"
|
|
68661
|
+
>
|
|
68662
|
+
<option value="" selected disabled>Aa</option>
|
|
68663
|
+
@for (opt of changeCaseOptions; track opt.value) {
|
|
68664
|
+
<option [value]="opt.value">{{ opt.label }}</option>
|
|
68665
|
+
}
|
|
68666
|
+
</select>
|
|
68316
68667
|
<!-- Font colour popover -->
|
|
68317
68668
|
<pptx-ribbon-color-popover
|
|
68318
68669
|
[current]="curColor()"
|
|
@@ -70288,19 +70639,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70288
70639
|
class RibbonReviewSectionComponent {
|
|
70289
70640
|
editor = inject(EditorStateService);
|
|
70290
70641
|
comments = output();
|
|
70642
|
+
spelling = output();
|
|
70291
70643
|
a11y = output();
|
|
70292
70644
|
openCompare = output();
|
|
70645
|
+
language = output();
|
|
70293
70646
|
link = output();
|
|
70294
70647
|
hasSel() {
|
|
70295
70648
|
return this.editor.selectedIds().length > 0;
|
|
70296
70649
|
}
|
|
70297
70650
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonReviewSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
70298
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RibbonReviewSectionComponent, isStandalone: true, selector: "pptx-ribbon-review-section", outputs: { comments: "comments", a11y: "a11y", openCompare: "openCompare", link: "link" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
70651
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RibbonReviewSectionComponent, isStandalone: true, selector: "pptx-ribbon-review-section", outputs: { comments: "comments", spelling: "spelling", a11y: "a11y", openCompare: "openCompare", language: "language", link: "link" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
70299
70652
|
<button type="button" class="pptx-rb-pill" (click)="comments.emit()">
|
|
70300
70653
|
{{ 'pptx.toolbar.comments' | translate }}
|
|
70301
70654
|
</button>
|
|
70302
|
-
<button
|
|
70303
|
-
|
|
70655
|
+
<button
|
|
70656
|
+
type="button"
|
|
70657
|
+
class="pptx-rb-pill"
|
|
70658
|
+
[title]="'pptx.review.toggleSpellCheck' | translate"
|
|
70659
|
+
(click)="spelling.emit()"
|
|
70660
|
+
>
|
|
70661
|
+
{{ 'pptx.review.spelling' | translate }}
|
|
70304
70662
|
</button>
|
|
70305
70663
|
<button
|
|
70306
70664
|
type="button"
|
|
@@ -70310,6 +70668,23 @@ class RibbonReviewSectionComponent {
|
|
|
70310
70668
|
>
|
|
70311
70669
|
{{ 'pptx.ribbon.compare' | translate }}
|
|
70312
70670
|
</button>
|
|
70671
|
+
<span class="pptx-rb-sep"></span>
|
|
70672
|
+
<button
|
|
70673
|
+
type="button"
|
|
70674
|
+
class="pptx-rb-pill"
|
|
70675
|
+
[title]="'pptx.review.languageTooltip' | translate"
|
|
70676
|
+
(click)="language.emit()"
|
|
70677
|
+
>
|
|
70678
|
+
{{ 'pptx.review.language' | translate }}
|
|
70679
|
+
</button>
|
|
70680
|
+
<button
|
|
70681
|
+
type="button"
|
|
70682
|
+
class="pptx-rb-pill"
|
|
70683
|
+
[title]="'pptx.review.accessibilityCheckTooltip' | translate"
|
|
70684
|
+
(click)="a11y.emit()"
|
|
70685
|
+
>
|
|
70686
|
+
{{ 'pptx.review.accessibilityCheck' | translate }}
|
|
70687
|
+
</button>
|
|
70313
70688
|
@if (hasSel()) {
|
|
70314
70689
|
<button type="button" class="pptx-rb-pill" (click)="link.emit()">
|
|
70315
70690
|
{{ 'pptx.ribbon.link' | translate }}
|
|
@@ -70329,8 +70704,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70329
70704
|
<button type="button" class="pptx-rb-pill" (click)="comments.emit()">
|
|
70330
70705
|
{{ 'pptx.toolbar.comments' | translate }}
|
|
70331
70706
|
</button>
|
|
70332
|
-
<button
|
|
70333
|
-
|
|
70707
|
+
<button
|
|
70708
|
+
type="button"
|
|
70709
|
+
class="pptx-rb-pill"
|
|
70710
|
+
[title]="'pptx.review.toggleSpellCheck' | translate"
|
|
70711
|
+
(click)="spelling.emit()"
|
|
70712
|
+
>
|
|
70713
|
+
{{ 'pptx.review.spelling' | translate }}
|
|
70334
70714
|
</button>
|
|
70335
70715
|
<button
|
|
70336
70716
|
type="button"
|
|
@@ -70340,6 +70720,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70340
70720
|
>
|
|
70341
70721
|
{{ 'pptx.ribbon.compare' | translate }}
|
|
70342
70722
|
</button>
|
|
70723
|
+
<span class="pptx-rb-sep"></span>
|
|
70724
|
+
<button
|
|
70725
|
+
type="button"
|
|
70726
|
+
class="pptx-rb-pill"
|
|
70727
|
+
[title]="'pptx.review.languageTooltip' | translate"
|
|
70728
|
+
(click)="language.emit()"
|
|
70729
|
+
>
|
|
70730
|
+
{{ 'pptx.review.language' | translate }}
|
|
70731
|
+
</button>
|
|
70732
|
+
<button
|
|
70733
|
+
type="button"
|
|
70734
|
+
class="pptx-rb-pill"
|
|
70735
|
+
[title]="'pptx.review.accessibilityCheckTooltip' | translate"
|
|
70736
|
+
(click)="a11y.emit()"
|
|
70737
|
+
>
|
|
70738
|
+
{{ 'pptx.review.accessibilityCheck' | translate }}
|
|
70739
|
+
</button>
|
|
70343
70740
|
@if (hasSel()) {
|
|
70344
70741
|
<button type="button" class="pptx-rb-pill" (click)="link.emit()">
|
|
70345
70742
|
{{ 'pptx.ribbon.link' | translate }}
|
|
@@ -70347,7 +70744,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70347
70744
|
}
|
|
70348
70745
|
`,
|
|
70349
70746
|
}]
|
|
70350
|
-
}], propDecorators: { comments: [{ type: i0.Output, args: ["comments"] }], a11y: [{ type: i0.Output, args: ["a11y"] }], openCompare: [{ type: i0.Output, args: ["openCompare"] }], link: [{ type: i0.Output, args: ["link"] }] } });
|
|
70747
|
+
}], propDecorators: { comments: [{ type: i0.Output, args: ["comments"] }], spelling: [{ type: i0.Output, args: ["spelling"] }], a11y: [{ type: i0.Output, args: ["a11y"] }], openCompare: [{ type: i0.Output, args: ["openCompare"] }], language: [{ type: i0.Output, args: ["language"] }], link: [{ type: i0.Output, args: ["link"] }] } });
|
|
70351
70748
|
|
|
70352
70749
|
/**
|
|
70353
70750
|
* ribbon-slideshow-section.component.ts: the Slide Show ribbon tab (From
|
|
@@ -70477,6 +70874,12 @@ class RibbonTransitionsSectionComponent {
|
|
|
70477
70874
|
transitionChange = output();
|
|
70478
70875
|
durationChange = output();
|
|
70479
70876
|
transitionPresets = TRANSITION_PRESETS;
|
|
70877
|
+
advanceOnClick = signal(true, /* @ts-ignore */
|
|
70878
|
+
...(ngDevMode ? [{ debugName: "advanceOnClick" }] : /* istanbul ignore next */ []));
|
|
70879
|
+
advanceAfter = signal(false, /* @ts-ignore */
|
|
70880
|
+
...(ngDevMode ? [{ debugName: "advanceAfter" }] : /* istanbul ignore next */ []));
|
|
70881
|
+
advanceAfterSeconds = signal('00:00.00', /* @ts-ignore */
|
|
70882
|
+
...(ngDevMode ? [{ debugName: "advanceAfterSeconds" }] : /* istanbul ignore next */ []));
|
|
70480
70883
|
/** Apply the chosen transition to the active slide. */
|
|
70481
70884
|
setTransition(type) {
|
|
70482
70885
|
this.transitionChange.emit(type);
|
|
@@ -70557,6 +70960,14 @@ class RibbonTransitionsSectionComponent {
|
|
|
70557
70960
|
<span>s</span>
|
|
70558
70961
|
</label>
|
|
70559
70962
|
<span class="pptx-rb-sep"></span>
|
|
70963
|
+
<!-- Sound -->
|
|
70964
|
+
<label class="inline-flex items-center gap-1.5 text-xs text-muted-foreground">
|
|
70965
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.sound' | translate }}</span>
|
|
70966
|
+
<select class="pptx-rb-select w-24">
|
|
70967
|
+
<option value="none">{{ 'pptx.ribbon.soundNone' | translate }}</option>
|
|
70968
|
+
</select>
|
|
70969
|
+
</label>
|
|
70970
|
+
<span class="pptx-rb-sep"></span>
|
|
70560
70971
|
<!-- Apply to all -->
|
|
70561
70972
|
<button
|
|
70562
70973
|
type="button"
|
|
@@ -70567,6 +70978,39 @@ class RibbonTransitionsSectionComponent {
|
|
|
70567
70978
|
⧉ {{ 'pptx.headerFooter.applyToAll' | translate }}
|
|
70568
70979
|
</button>
|
|
70569
70980
|
<span class="pptx-rb-sep"></span>
|
|
70981
|
+
<!-- Advance Slide -->
|
|
70982
|
+
<div class="inline-flex flex-col gap-1 text-xs text-muted-foreground">
|
|
70983
|
+
<span class="text-[10px] font-medium text-foreground">{{
|
|
70984
|
+
'pptx.ribbon.advanceSlide' | translate
|
|
70985
|
+
}}</span>
|
|
70986
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
70987
|
+
<input
|
|
70988
|
+
type="checkbox"
|
|
70989
|
+
[checked]="advanceOnClick()"
|
|
70990
|
+
(change)="advanceOnClick.set($any($event.target).checked)"
|
|
70991
|
+
class="accent-primary h-3 w-3"
|
|
70992
|
+
/>
|
|
70993
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.onMouseClick' | translate }}</span>
|
|
70994
|
+
</label>
|
|
70995
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
70996
|
+
<input
|
|
70997
|
+
type="checkbox"
|
|
70998
|
+
[checked]="advanceAfter()"
|
|
70999
|
+
(change)="advanceAfter.set($any($event.target).checked)"
|
|
71000
|
+
class="accent-primary h-3 w-3"
|
|
71001
|
+
/>
|
|
71002
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.afterDuration' | translate }}</span>
|
|
71003
|
+
<input
|
|
71004
|
+
type="text"
|
|
71005
|
+
[value]="advanceAfterSeconds()"
|
|
71006
|
+
(input)="advanceAfterSeconds.set($any($event.target).value)"
|
|
71007
|
+
[disabled]="!advanceAfter()"
|
|
71008
|
+
class="pptx-rb-select w-16 text-center disabled:opacity-50"
|
|
71009
|
+
[title]="'pptx.ribbon.advanceAfterSeconds' | translate"
|
|
71010
|
+
/>
|
|
71011
|
+
</label>
|
|
71012
|
+
</div>
|
|
71013
|
+
<span class="pptx-rb-sep"></span>
|
|
70570
71014
|
<!-- Inspector -->
|
|
70571
71015
|
<button
|
|
70572
71016
|
type="button"
|
|
@@ -70632,6 +71076,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70632
71076
|
<span>s</span>
|
|
70633
71077
|
</label>
|
|
70634
71078
|
<span class="pptx-rb-sep"></span>
|
|
71079
|
+
<!-- Sound -->
|
|
71080
|
+
<label class="inline-flex items-center gap-1.5 text-xs text-muted-foreground">
|
|
71081
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.sound' | translate }}</span>
|
|
71082
|
+
<select class="pptx-rb-select w-24">
|
|
71083
|
+
<option value="none">{{ 'pptx.ribbon.soundNone' | translate }}</option>
|
|
71084
|
+
</select>
|
|
71085
|
+
</label>
|
|
71086
|
+
<span class="pptx-rb-sep"></span>
|
|
70635
71087
|
<!-- Apply to all -->
|
|
70636
71088
|
<button
|
|
70637
71089
|
type="button"
|
|
@@ -70642,6 +71094,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70642
71094
|
⧉ {{ 'pptx.headerFooter.applyToAll' | translate }}
|
|
70643
71095
|
</button>
|
|
70644
71096
|
<span class="pptx-rb-sep"></span>
|
|
71097
|
+
<!-- Advance Slide -->
|
|
71098
|
+
<div class="inline-flex flex-col gap-1 text-xs text-muted-foreground">
|
|
71099
|
+
<span class="text-[10px] font-medium text-foreground">{{
|
|
71100
|
+
'pptx.ribbon.advanceSlide' | translate
|
|
71101
|
+
}}</span>
|
|
71102
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
71103
|
+
<input
|
|
71104
|
+
type="checkbox"
|
|
71105
|
+
[checked]="advanceOnClick()"
|
|
71106
|
+
(change)="advanceOnClick.set($any($event.target).checked)"
|
|
71107
|
+
class="accent-primary h-3 w-3"
|
|
71108
|
+
/>
|
|
71109
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.onMouseClick' | translate }}</span>
|
|
71110
|
+
</label>
|
|
71111
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
71112
|
+
<input
|
|
71113
|
+
type="checkbox"
|
|
71114
|
+
[checked]="advanceAfter()"
|
|
71115
|
+
(change)="advanceAfter.set($any($event.target).checked)"
|
|
71116
|
+
class="accent-primary h-3 w-3"
|
|
71117
|
+
/>
|
|
71118
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.afterDuration' | translate }}</span>
|
|
71119
|
+
<input
|
|
71120
|
+
type="text"
|
|
71121
|
+
[value]="advanceAfterSeconds()"
|
|
71122
|
+
(input)="advanceAfterSeconds.set($any($event.target).value)"
|
|
71123
|
+
[disabled]="!advanceAfter()"
|
|
71124
|
+
class="pptx-rb-select w-16 text-center disabled:opacity-50"
|
|
71125
|
+
[title]="'pptx.ribbon.advanceAfterSeconds' | translate"
|
|
71126
|
+
/>
|
|
71127
|
+
</label>
|
|
71128
|
+
</div>
|
|
71129
|
+
<span class="pptx-rb-sep"></span>
|
|
70645
71130
|
<!-- Inspector -->
|
|
70646
71131
|
<button
|
|
70647
71132
|
type="button"
|
|
@@ -71367,7 +71852,7 @@ class RibbonComponent {
|
|
|
71367
71852
|
}
|
|
71368
71853
|
</div>
|
|
71369
71854
|
</div>
|
|
71370
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonPrimaryRowComponent, selector: "pptx-ribbon-primary-row", inputs: ["slideCount", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount"], outputs: ["toggleSidebar", "toggleComments", "present", "presenter", "broadcast", "openCustomShows", "toggleInspector", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "a11y", "save"] }, { kind: "component", type: RibbonFileSectionComponent, selector: "pptx-ribbon-file-section", inputs: ["slideCount", "exporting"], outputs: ["openFile", "save", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "signatures", "replace", "openPassword", "openFontEmbedding", "openVersionHistory"] }, { kind: "component", type: RibbonHomeSectionComponent, selector: "pptx-ribbon-home-section", inputs: ["slideIndex", "selectedElement", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter", "findReplace", "applyLayout", "resetSlide", "addSection"] }, { kind: "component", type: RibbonInsertSectionComponent, selector: "pptx-ribbon-insert-section", inputs: ["slideIndex", "newChartType"], outputs: ["openSmartArtDialog", "openEquationDialog", "chartTypeChange"] }, { kind: "component", type: RibbonFontControlsComponent, selector: "pptx-ribbon-font-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonParagraphControlsComponent, selector: "pptx-ribbon-paragraph-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonArrangeSectionComponent, selector: "pptx-ribbon-arrange-section", inputs: ["slideIndex", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter"] }, { kind: "component", type: RibbonSlideshowSectionComponent, selector: "pptx-ribbon-slideshow-section", inputs: ["slideCount"], outputs: ["present", "presenter", "broadcast", "openCustomShows", "openSetUpSlideShow"] }, { kind: "component", type: RibbonReviewSectionComponent, selector: "pptx-ribbon-review-section", outputs: ["comments", "a11y", "openCompare", "link"] }, { kind: "component", type: RibbonViewSectionComponent, selector: "pptx-ribbon-view-section", inputs: ["canEdit", "showGrid", "showRulers", "showGuides", "snapToGrid", "eyedropperActive"], outputs: ["openSorter", "toggleNotes", "print", "openShortcuts", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "toggleSnapToGrid", "toggleEyedropper"] }, { kind: "component", type: RibbonDrawSectionComponent, selector: "pptx-ribbon-draw-section", inputs: ["activeTool", "drawingColor", "drawingWidth"], outputs: ["drawToolChange"] }, { kind: "component", type: RibbonDrawingGroupComponent, selector: "pptx-ribbon-drawing-group", inputs: ["canEdit"], outputs: ["shapeInsert", "moveLayer", "moveLayerToEdge"] }, { kind: "component", type: RibbonDesignSectionComponent, selector: "pptx-ribbon-design-section", inputs: ["themeGalleryOpen"], outputs: ["toggleThemeGallery", "info", "toggleInspector"] }, { kind: "component", type: RibbonTransitionsSectionComponent, selector: "pptx-ribbon-transitions-section", inputs: ["slideIndex", "selectedTransition", "transitionDurationSec"], outputs: ["present", "toggleInspector", "transitionChange", "durationChange"] }, { kind: "component", type: RibbonAnimationsSectionComponent, selector: "pptx-ribbon-animations-section", inputs: ["slideIndex", "selectedElement"], outputs: ["present", "toggleInspector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71855
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonPrimaryRowComponent, selector: "pptx-ribbon-primary-row", inputs: ["slideCount", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount"], outputs: ["toggleSidebar", "toggleComments", "present", "presenter", "broadcast", "openCustomShows", "toggleInspector", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "a11y", "save"] }, { kind: "component", type: RibbonFileSectionComponent, selector: "pptx-ribbon-file-section", inputs: ["slideCount", "exporting"], outputs: ["openFile", "save", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "signatures", "replace", "openPassword", "openFontEmbedding", "openVersionHistory"] }, { kind: "component", type: RibbonHomeSectionComponent, selector: "pptx-ribbon-home-section", inputs: ["slideIndex", "selectedElement", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter", "findReplace", "applyLayout", "resetSlide", "addSection"] }, { kind: "component", type: RibbonInsertSectionComponent, selector: "pptx-ribbon-insert-section", inputs: ["slideIndex", "newChartType"], outputs: ["openSmartArtDialog", "openEquationDialog", "chartTypeChange"] }, { kind: "component", type: RibbonFontControlsComponent, selector: "pptx-ribbon-font-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonParagraphControlsComponent, selector: "pptx-ribbon-paragraph-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonArrangeSectionComponent, selector: "pptx-ribbon-arrange-section", inputs: ["slideIndex", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter"] }, { kind: "component", type: RibbonSlideshowSectionComponent, selector: "pptx-ribbon-slideshow-section", inputs: ["slideCount"], outputs: ["present", "presenter", "broadcast", "openCustomShows", "openSetUpSlideShow"] }, { kind: "component", type: RibbonReviewSectionComponent, selector: "pptx-ribbon-review-section", outputs: ["comments", "spelling", "a11y", "openCompare", "language", "link"] }, { kind: "component", type: RibbonViewSectionComponent, selector: "pptx-ribbon-view-section", inputs: ["canEdit", "showGrid", "showRulers", "showGuides", "snapToGrid", "eyedropperActive"], outputs: ["openSorter", "toggleNotes", "print", "openShortcuts", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "toggleSnapToGrid", "toggleEyedropper"] }, { kind: "component", type: RibbonDrawSectionComponent, selector: "pptx-ribbon-draw-section", inputs: ["activeTool", "drawingColor", "drawingWidth"], outputs: ["drawToolChange"] }, { kind: "component", type: RibbonDrawingGroupComponent, selector: "pptx-ribbon-drawing-group", inputs: ["canEdit"], outputs: ["shapeInsert", "moveLayer", "moveLayerToEdge"] }, { kind: "component", type: RibbonDesignSectionComponent, selector: "pptx-ribbon-design-section", inputs: ["themeGalleryOpen"], outputs: ["toggleThemeGallery", "info", "toggleInspector"] }, { kind: "component", type: RibbonTransitionsSectionComponent, selector: "pptx-ribbon-transitions-section", inputs: ["slideIndex", "selectedTransition", "transitionDurationSec"], outputs: ["present", "toggleInspector", "transitionChange", "durationChange"] }, { kind: "component", type: RibbonAnimationsSectionComponent, selector: "pptx-ribbon-animations-section", inputs: ["slideIndex", "selectedElement"], outputs: ["present", "toggleInspector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71371
71856
|
}
|
|
71372
71857
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonComponent, decorators: [{
|
|
71373
71858
|
type: Component,
|
|
@@ -73859,19 +74344,30 @@ class TitleBarComponent {
|
|
|
73859
74344
|
findReplaceOpen = input(false, /* @ts-ignore */
|
|
73860
74345
|
...(ngDevMode ? [{ debugName: "findReplaceOpen" }] : /* istanbul ignore next */ []));
|
|
73861
74346
|
toggleAutosave = output();
|
|
73862
|
-
/** Quick-access save (downloads the `.pptx`). */
|
|
73863
74347
|
save = output();
|
|
73864
74348
|
undo = output();
|
|
73865
74349
|
redo = output();
|
|
73866
74350
|
toggleFindReplace = output();
|
|
74351
|
+
commandSearch = output();
|
|
74352
|
+
translate = inject(TranslateService);
|
|
73867
74353
|
tb = TITLE_BAR_CLASSES;
|
|
73868
74354
|
defaultFileKey = TITLE_BAR_DEFAULT_FILE_KEY;
|
|
74355
|
+
searchQuery = signal('', /* @ts-ignore */
|
|
74356
|
+
...(ngDevMode ? [{ debugName: "searchQuery" }] : /* istanbul ignore next */ []));
|
|
74357
|
+
searchFocused = signal(false, /* @ts-ignore */
|
|
74358
|
+
...(ngDevMode ? [{ debugName: "searchFocused" }] : /* istanbul ignore next */ []));
|
|
74359
|
+
commandResults = computed(() => filterCommands(this.searchQuery(), (key) => this.translate.instant(key)), /* @ts-ignore */
|
|
74360
|
+
...(ngDevMode ? [{ debugName: "commandResults" }] : /* istanbul ignore next */ []));
|
|
73869
74361
|
/** The i18n key for the save-location status text (next to the file name). */
|
|
73870
|
-
statusKey = computed(() =>
|
|
73871
|
-
|
|
73872
|
-
|
|
73873
|
-
|
|
73874
|
-
|
|
74362
|
+
statusKey = computed(() => {
|
|
74363
|
+
const status = this.autosaveStatus();
|
|
74364
|
+
return resolveTitleBarStatusKey({
|
|
74365
|
+
autosaveState: status?.state ?? 'idle',
|
|
74366
|
+
isDirty: this.isDirty(),
|
|
74367
|
+
autosaveEnabled: this.autosaveEnabled(),
|
|
74368
|
+
disabledReason: status?.state === 'disabled' ? status.reason : undefined,
|
|
74369
|
+
});
|
|
74370
|
+
}, /* @ts-ignore */
|
|
73875
74371
|
...(ngDevMode ? [{ debugName: "statusKey" }] : /* istanbul ignore next */ []));
|
|
73876
74372
|
/** Colour override for the status text on saving/error (when autosave is on). */
|
|
73877
74373
|
statusStateClass = computed(() => {
|
|
@@ -73888,8 +74384,37 @@ class TitleBarComponent {
|
|
|
73888
74384
|
return '';
|
|
73889
74385
|
}, /* @ts-ignore */
|
|
73890
74386
|
...(ngDevMode ? [{ debugName: "statusStateClass" }] : /* istanbul ignore next */ []));
|
|
74387
|
+
selectCommand(entry) {
|
|
74388
|
+
this.commandSearch.emit(entry.command);
|
|
74389
|
+
this.searchQuery.set('');
|
|
74390
|
+
this.searchFocused.set(false);
|
|
74391
|
+
}
|
|
74392
|
+
openFindReplace() {
|
|
74393
|
+
this.toggleFindReplace.emit();
|
|
74394
|
+
this.searchFocused.set(false);
|
|
74395
|
+
this.searchQuery.set('');
|
|
74396
|
+
}
|
|
74397
|
+
onSearchBlur() {
|
|
74398
|
+
// Delay to allow mousedown on dropdown items to fire first.
|
|
74399
|
+
setTimeout(() => this.searchFocused.set(false), 150);
|
|
74400
|
+
}
|
|
74401
|
+
onSearchKeyDown(event) {
|
|
74402
|
+
if (event.key === 'Enter' && this.searchQuery().trim()) {
|
|
74403
|
+
const results = this.commandResults();
|
|
74404
|
+
if (results.length > 0) {
|
|
74405
|
+
this.selectCommand(results[0]);
|
|
74406
|
+
}
|
|
74407
|
+
else {
|
|
74408
|
+
this.openFindReplace();
|
|
74409
|
+
}
|
|
74410
|
+
}
|
|
74411
|
+
else if (event.key === 'Escape') {
|
|
74412
|
+
this.searchQuery.set('');
|
|
74413
|
+
this.searchFocused.set(false);
|
|
74414
|
+
}
|
|
74415
|
+
}
|
|
73891
74416
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TitleBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73892
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: TitleBarComponent, isStandalone: true, selector: "pptx-title-bar", inputs: { canEdit: { classPropertyName: "canEdit", publicName: "canEdit", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, isDirty: { classPropertyName: "isDirty", publicName: "isDirty", isSignal: true, isRequired: false, transformFunction: null }, autosaveStatus: { classPropertyName: "autosaveStatus", publicName: "autosaveStatus", isSignal: true, isRequired: false, transformFunction: null }, autosaveEnabled: { classPropertyName: "autosaveEnabled", publicName: "autosaveEnabled", isSignal: true, isRequired: false, transformFunction: null }, canUndo: { classPropertyName: "canUndo", publicName: "canUndo", isSignal: true, isRequired: false, transformFunction: null }, canRedo: { classPropertyName: "canRedo", publicName: "canRedo", isSignal: true, isRequired: false, transformFunction: null }, undoLabel: { classPropertyName: "undoLabel", publicName: "undoLabel", isSignal: true, isRequired: false, transformFunction: null }, redoLabel: { classPropertyName: "redoLabel", publicName: "redoLabel", isSignal: true, isRequired: false, transformFunction: null }, findReplaceOpen: { classPropertyName: "findReplaceOpen", publicName: "findReplaceOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleAutosave: "toggleAutosave", save: "save", undo: "undo", redo: "redo", toggleFindReplace: "toggleFindReplace" }, ngImport: i0, template: `
|
|
74417
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: TitleBarComponent, isStandalone: true, selector: "pptx-title-bar", inputs: { canEdit: { classPropertyName: "canEdit", publicName: "canEdit", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, isDirty: { classPropertyName: "isDirty", publicName: "isDirty", isSignal: true, isRequired: false, transformFunction: null }, autosaveStatus: { classPropertyName: "autosaveStatus", publicName: "autosaveStatus", isSignal: true, isRequired: false, transformFunction: null }, autosaveEnabled: { classPropertyName: "autosaveEnabled", publicName: "autosaveEnabled", isSignal: true, isRequired: false, transformFunction: null }, canUndo: { classPropertyName: "canUndo", publicName: "canUndo", isSignal: true, isRequired: false, transformFunction: null }, canRedo: { classPropertyName: "canRedo", publicName: "canRedo", isSignal: true, isRequired: false, transformFunction: null }, undoLabel: { classPropertyName: "undoLabel", publicName: "undoLabel", isSignal: true, isRequired: false, transformFunction: null }, redoLabel: { classPropertyName: "redoLabel", publicName: "redoLabel", isSignal: true, isRequired: false, transformFunction: null }, findReplaceOpen: { classPropertyName: "findReplaceOpen", publicName: "findReplaceOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleAutosave: "toggleAutosave", save: "save", undo: "undo", redo: "redo", toggleFindReplace: "toggleFindReplace", commandSearch: "commandSearch" }, ngImport: i0, template: `
|
|
73893
74418
|
<div [class]="tb.container" data-pptx-title-bar>
|
|
73894
74419
|
<span [class]="tb.logo" aria-hidden="true">P</span>
|
|
73895
74420
|
|
|
@@ -73972,17 +74497,70 @@ class TitleBarComponent {
|
|
|
73972
74497
|
|
|
73973
74498
|
<span [class]="tb.searchWrap">
|
|
73974
74499
|
@if (canEdit()) {
|
|
73975
|
-
<
|
|
73976
|
-
|
|
73977
|
-
|
|
73978
|
-
|
|
73979
|
-
|
|
73980
|
-
|
|
73981
|
-
|
|
73982
|
-
|
|
73983
|
-
|
|
73984
|
-
|
|
73985
|
-
|
|
74500
|
+
<div class="relative w-full max-w-md">
|
|
74501
|
+
<div
|
|
74502
|
+
[class]="tb.searchBox"
|
|
74503
|
+
[ngClass]="
|
|
74504
|
+
searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
|
|
74505
|
+
"
|
|
74506
|
+
>
|
|
74507
|
+
<span [class]="tb.searchIcon" aria-hidden="true">⌕</span>
|
|
74508
|
+
<input
|
|
74509
|
+
type="text"
|
|
74510
|
+
[value]="searchQuery()"
|
|
74511
|
+
(input)="searchQuery.set($any($event.target).value)"
|
|
74512
|
+
(focus)="searchFocused.set(true)"
|
|
74513
|
+
(blur)="onSearchBlur()"
|
|
74514
|
+
(keydown)="onSearchKeyDown($event)"
|
|
74515
|
+
class="flex-1 bg-transparent text-[11px] outline-none placeholder:text-muted-foreground/60"
|
|
74516
|
+
[placeholder]="'pptx.titleBar.searchPlaceholder' | translate"
|
|
74517
|
+
[attr.aria-label]="'pptx.titleBar.search' | translate"
|
|
74518
|
+
/>
|
|
74519
|
+
</div>
|
|
74520
|
+
@if (searchFocused() && searchQuery().trim()) {
|
|
74521
|
+
<div
|
|
74522
|
+
class="absolute left-0 right-0 top-full z-50 mt-1 rounded-lg border border-border bg-popover shadow-xl max-h-64 overflow-y-auto"
|
|
74523
|
+
>
|
|
74524
|
+
@if (commandResults().length > 0) {
|
|
74525
|
+
<div
|
|
74526
|
+
class="px-3 py-1.5 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider"
|
|
74527
|
+
>
|
|
74528
|
+
{{ 'pptx.titleBar.searchCommands' | translate }}
|
|
74529
|
+
</div>
|
|
74530
|
+
@for (entry of commandResults().slice(0, 8); track entry.command) {
|
|
74531
|
+
<button
|
|
74532
|
+
type="button"
|
|
74533
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74534
|
+
(mousedown)="selectCommand(entry)"
|
|
74535
|
+
>
|
|
74536
|
+
<span class="truncate">{{ entry.labelKey | translate }}</span>
|
|
74537
|
+
<span class="ml-auto text-[10px] text-muted-foreground capitalize">{{
|
|
74538
|
+
entry.category
|
|
74539
|
+
}}</span>
|
|
74540
|
+
</button>
|
|
74541
|
+
}
|
|
74542
|
+
} @else {
|
|
74543
|
+
<div class="px-3 py-2 text-xs text-muted-foreground">
|
|
74544
|
+
{{ 'pptx.titleBar.searchNoResults' | translate }}
|
|
74545
|
+
</div>
|
|
74546
|
+
}
|
|
74547
|
+
<div class="border-t border-border/60">
|
|
74548
|
+
<button
|
|
74549
|
+
type="button"
|
|
74550
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74551
|
+
(mousedown)="openFindReplace()"
|
|
74552
|
+
>
|
|
74553
|
+
<span aria-hidden="true">⌕</span>
|
|
74554
|
+
<span
|
|
74555
|
+
>{{ 'pptx.titleBar.searchContent' | translate }} “{{
|
|
74556
|
+
searchQuery()
|
|
74557
|
+
}}”</span
|
|
74558
|
+
>
|
|
74559
|
+
</button>
|
|
74560
|
+
</div>
|
|
74561
|
+
</div>
|
|
74562
|
+
}
|
|
74563
|
+
</div>
|
|
73986
74564
|
}
|
|
73987
74565
|
</span>
|
|
73988
74566
|
|
|
@@ -74080,17 +74658,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74080
74658
|
|
|
74081
74659
|
<span [class]="tb.searchWrap">
|
|
74082
74660
|
@if (canEdit()) {
|
|
74083
|
-
<
|
|
74084
|
-
|
|
74085
|
-
|
|
74086
|
-
|
|
74087
|
-
|
|
74088
|
-
|
|
74089
|
-
|
|
74090
|
-
|
|
74091
|
-
|
|
74092
|
-
|
|
74093
|
-
|
|
74661
|
+
<div class="relative w-full max-w-md">
|
|
74662
|
+
<div
|
|
74663
|
+
[class]="tb.searchBox"
|
|
74664
|
+
[ngClass]="
|
|
74665
|
+
searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
|
|
74666
|
+
"
|
|
74667
|
+
>
|
|
74668
|
+
<span [class]="tb.searchIcon" aria-hidden="true">⌕</span>
|
|
74669
|
+
<input
|
|
74670
|
+
type="text"
|
|
74671
|
+
[value]="searchQuery()"
|
|
74672
|
+
(input)="searchQuery.set($any($event.target).value)"
|
|
74673
|
+
(focus)="searchFocused.set(true)"
|
|
74674
|
+
(blur)="onSearchBlur()"
|
|
74675
|
+
(keydown)="onSearchKeyDown($event)"
|
|
74676
|
+
class="flex-1 bg-transparent text-[11px] outline-none placeholder:text-muted-foreground/60"
|
|
74677
|
+
[placeholder]="'pptx.titleBar.searchPlaceholder' | translate"
|
|
74678
|
+
[attr.aria-label]="'pptx.titleBar.search' | translate"
|
|
74679
|
+
/>
|
|
74680
|
+
</div>
|
|
74681
|
+
@if (searchFocused() && searchQuery().trim()) {
|
|
74682
|
+
<div
|
|
74683
|
+
class="absolute left-0 right-0 top-full z-50 mt-1 rounded-lg border border-border bg-popover shadow-xl max-h-64 overflow-y-auto"
|
|
74684
|
+
>
|
|
74685
|
+
@if (commandResults().length > 0) {
|
|
74686
|
+
<div
|
|
74687
|
+
class="px-3 py-1.5 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider"
|
|
74688
|
+
>
|
|
74689
|
+
{{ 'pptx.titleBar.searchCommands' | translate }}
|
|
74690
|
+
</div>
|
|
74691
|
+
@for (entry of commandResults().slice(0, 8); track entry.command) {
|
|
74692
|
+
<button
|
|
74693
|
+
type="button"
|
|
74694
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74695
|
+
(mousedown)="selectCommand(entry)"
|
|
74696
|
+
>
|
|
74697
|
+
<span class="truncate">{{ entry.labelKey | translate }}</span>
|
|
74698
|
+
<span class="ml-auto text-[10px] text-muted-foreground capitalize">{{
|
|
74699
|
+
entry.category
|
|
74700
|
+
}}</span>
|
|
74701
|
+
</button>
|
|
74702
|
+
}
|
|
74703
|
+
} @else {
|
|
74704
|
+
<div class="px-3 py-2 text-xs text-muted-foreground">
|
|
74705
|
+
{{ 'pptx.titleBar.searchNoResults' | translate }}
|
|
74706
|
+
</div>
|
|
74707
|
+
}
|
|
74708
|
+
<div class="border-t border-border/60">
|
|
74709
|
+
<button
|
|
74710
|
+
type="button"
|
|
74711
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74712
|
+
(mousedown)="openFindReplace()"
|
|
74713
|
+
>
|
|
74714
|
+
<span aria-hidden="true">⌕</span>
|
|
74715
|
+
<span
|
|
74716
|
+
>{{ 'pptx.titleBar.searchContent' | translate }} “{{
|
|
74717
|
+
searchQuery()
|
|
74718
|
+
}}”</span
|
|
74719
|
+
>
|
|
74720
|
+
</button>
|
|
74721
|
+
</div>
|
|
74722
|
+
</div>
|
|
74723
|
+
}
|
|
74724
|
+
</div>
|
|
74094
74725
|
}
|
|
74095
74726
|
</span>
|
|
74096
74727
|
|
|
@@ -74098,7 +74729,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74098
74729
|
</div>
|
|
74099
74730
|
`,
|
|
74100
74731
|
}]
|
|
74101
|
-
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }], isDirty: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDirty", required: false }] }], autosaveStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autosaveStatus", required: false }] }], autosaveEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "autosaveEnabled", required: false }] }], canUndo: [{ type: i0.Input, args: [{ isSignal: true, alias: "canUndo", required: false }] }], canRedo: [{ type: i0.Input, args: [{ isSignal: true, alias: "canRedo", required: false }] }], undoLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "undoLabel", required: false }] }], redoLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "redoLabel", required: false }] }], findReplaceOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "findReplaceOpen", required: false }] }], toggleAutosave: [{ type: i0.Output, args: ["toggleAutosave"] }], save: [{ type: i0.Output, args: ["save"] }], undo: [{ type: i0.Output, args: ["undo"] }], redo: [{ type: i0.Output, args: ["redo"] }], toggleFindReplace: [{ type: i0.Output, args: ["toggleFindReplace"] }] } });
|
|
74732
|
+
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }], isDirty: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDirty", required: false }] }], autosaveStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autosaveStatus", required: false }] }], autosaveEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "autosaveEnabled", required: false }] }], canUndo: [{ type: i0.Input, args: [{ isSignal: true, alias: "canUndo", required: false }] }], canRedo: [{ type: i0.Input, args: [{ isSignal: true, alias: "canRedo", required: false }] }], undoLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "undoLabel", required: false }] }], redoLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "redoLabel", required: false }] }], findReplaceOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "findReplaceOpen", required: false }] }], toggleAutosave: [{ type: i0.Output, args: ["toggleAutosave"] }], save: [{ type: i0.Output, args: ["save"] }], undo: [{ type: i0.Output, args: ["undo"] }], redo: [{ type: i0.Output, args: ["redo"] }], toggleFindReplace: [{ type: i0.Output, args: ["toggleFindReplace"] }], commandSearch: [{ type: i0.Output, args: ["commandSearch"] }] } });
|
|
74102
74733
|
|
|
74103
74734
|
/**
|
|
74104
74735
|
* viewer-dialogs.service.ts: Viewer-scoped open-state + light state for the
|
|
@@ -80830,7 +81461,7 @@ class PowerPointViewerComponent {
|
|
|
80830
81461
|
/>
|
|
80831
81462
|
}
|
|
80832
81463
|
</div>
|
|
80833
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresentationOverlayComponent, selector: "pptx-presentation-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "startIndex"], outputs: ["indexChange", "closed", "annotationsExit"] }, { kind: "component", type: PresenterViewComponent, selector: "pptx-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime", "isAudienceWindowOpen"], outputs: ["movePresentationSlide", "exit", "openAudienceWindow", "closeAudienceWindow"] }, { kind: "component", type: MobilePresenterViewComponent, selector: "pptx-mobile-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime"], outputs: ["movePresentationSlide", "exit"] }, { kind: "component", type: SlideSorterOverlayComponent, selector: "pptx-slide-sorter-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select", "closed"] }, { kind: "component", type: FindBarComponent, selector: "pptx-find-bar", inputs: ["slides"], outputs: ["navigate", "closed"] }, { kind: "component", type: FindReplaceBarComponent, selector: "pptx-find-replace-bar", inputs: ["matchCount", "matchIndex"], outputs: ["find", "navigate", "replaceOne", "replaceAll", "close"] }, { kind: "component", type: InspectorPanelComponent, selector: "pptx-inspector-panel", inputs: ["element", "slideIndex"] }, { kind: "component", type: SlidesPanelComponent, selector: "pptx-slides-panel", inputs: ["canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select"] }, { kind: "component", type: StatusBarComponent, selector: "pptx-status-bar", inputs: ["slideIndex", "slideCount", "canEdit", "dirty", "autosaveStatus", "notesOpen", "zoomPercent", "sorterActive", "presenting"], outputs: ["toggleNotes", "normalView", "openSorter", "slideShow", "zoomIn", "zoomOut", "zoomReset"] }, { kind: "component", type: EditorContextMenuComponent, selector: "pptx-editor-context-menu", inputs: ["x", "y", "slideIndex"], outputs: ["closed"] }, { kind: "component", type: ExportProgressModalComponent, selector: "pptx-export-progress-modal", inputs: ["open", "title", "progress", "statusMessage"], outputs: ["cancel"] }, { kind: "component", type: CommentsPanelComponent, selector: "pptx-comments-panel", inputs: ["comments", "authorName"], outputs: ["add", "remove", "resolve"] }, { kind: "component", type: SignaturesPanelComponent, selector: "pptx-signatures-panel", inputs: ["signatures"] }, { kind: "component", type: AccessibilityPanelComponent, selector: "pptx-accessibility-panel", inputs: ["issues"], outputs: ["selectSlide"] }, { kind: "component", type: CollaborationCursorsComponent, selector: "pptx-collaboration-cursors", inputs: ["cursors", "zoom"] }, { kind: "component", type: RemoteSelectionOverlayComponent, selector: "pptx-remote-selection-overlay", inputs: ["presences", "elements", "activeSlideIndex", "zoom"] }, { kind: "component", type: FollowModeBarComponent, selector: "pptx-follow-mode-bar", inputs: ["presences", "followedClientId"], outputs: ["follow"] }, { kind: "component", type: PropertiesDialogComponent, selector: "pptx-properties-dialog", inputs: ["open", "properties"], outputs: ["save", "close"] }, { kind: "component", type: HyperlinkDialogComponent, selector: "pptx-hyperlink-dialog", inputs: ["open", "element"], outputs: ["save", "close"] }, { kind: "component", type: PrintDialogComponent, selector: "pptx-print-dialog", inputs: ["slides", "activeSlideIndex", "defaultSlidesPerPage", "defaultFrameSlides"], outputs: ["print", "cancel"] }, { kind: "component", type: ShareDialogComponent, selector: "pptx-share-dialog", inputs: ["open", "defaults", "active", "connected", "userCount", "shareUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: BroadcastDialogComponent, selector: "pptx-broadcast-dialog", inputs: ["open", "defaults", "active", "connected", "viewerCount", "viewerUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: MobileBottomBarComponent, selector: "pptx-mobile-bottom-bar", inputs: ["slideCount", "commentCount", "activeSheet"], outputs: ["openSlides", "insert", "openFormat", "openComments", "notes"] }, { kind: "component", type: MobileMenuSheetComponent, selector: "pptx-mobile-menu-sheet", inputs: ["open", "slideCount", "exporting", "showNotes", "canEdit"], outputs: ["closed", "openFind", "openSorter", "toggleNotes", "insertText", "present", "openFile", "savePptx", "exportPng", "exportPdf", "exportGif", "exportVideo", "print"] }, { kind: "component", type: MobileSlidesSheetComponent, selector: "pptx-mobile-slides-sheet", inputs: ["open", "slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["closed", "jumpToSlide"] }, { kind: "component", type: MobileToolbarComponent, selector: "pptx-mobile-toolbar", inputs: ["canUndo", "canRedo", "canPresent", "canEdit", "menuOpen"], outputs: ["toggleMenu", "undo", "redo", "save", "present"] }, { kind: "component", type: NotesPanelComponent, selector: "pptx-notes-panel", inputs: ["slide"], outputs: ["update"] }, { kind: "component", type: RibbonComponent, selector: "pptx-ribbon", inputs: ["slideIndex", "slideCount", "canEdit", "selectedElement", "zoomPercent", "formatPainterActive", "canActivateFormatPainter", "exporting", "showGrid", "showRulers", "showGuides", "snapToGrid", "eyedropperActive", "themeGalleryOpen", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount", "findOpen", "collabConnected", "connectedCount"], outputs: ["prev", "next", "zoomIn", "zoomOut", "zoomReset", "find", "present", "presenter", "record", "share", "broadcast", "openFile", "save", "toggleSidebar", "signatures", "info", "print", "comments", "a11y", "link", "openSorter", "toggleNotes", "toggleFormatPainter", "exportPng", "exportPdf", "exportGif", "exportVideo", "replace", "toggleInspector", "drawToolChange", "toggleThemeGallery", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "openCustomShows", "toggleSnapToGrid", "toggleEyedropper", "openSmartArtDialog", "openEquationDialog", "openSetUpSlideShow", "openCompare", "openPassword", "openFontEmbedding", "openVersionHistory", "openShortcuts", "shapeInsert", "moveLayer", "moveLayerToEdge"] }, { kind: "component", type: TitleBarComponent, selector: "pptx-title-bar", inputs: ["canEdit", "fileName", "isDirty", "autosaveStatus", "autosaveEnabled", "canUndo", "canRedo", "undoLabel", "redoLabel", "findReplaceOpen"], outputs: ["toggleAutosave", "save", "undo", "redo", "toggleFindReplace"] }, { kind: "component", type: ThemeGalleryComponent, selector: "pptx-theme-gallery", inputs: ["open", "activeName"], outputs: ["applyTheme", "close"] }, { kind: "component", type: SelectionPaneComponent, selector: "pptx-selection-pane", inputs: ["elements", "selectedIds"], outputs: ["selectElement", "bringForward", "sendBackward", "toggleHidden"] }, { kind: "component", type: CustomShowsComponent, selector: "pptx-custom-shows", inputs: ["open", "slides", "customShows", "activeCustomShowId"], outputs: ["create", "remove", "update", "setActive", "close"] }, { kind: "component", type: InsertSmartArtDialogComponent, selector: "pptx-insert-smart-art-dialog", inputs: ["open"], outputs: ["close", "insert"] }, { kind: "component", type: ViewerExtraDialogsComponent, selector: "pptx-viewer-extra-dialogs", inputs: ["activeSlideIndex", "selectedElementId", "filePath", "customShows"], outputs: ["restoreContent"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
81464
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresentationOverlayComponent, selector: "pptx-presentation-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "startIndex"], outputs: ["indexChange", "closed", "annotationsExit"] }, { kind: "component", type: PresenterViewComponent, selector: "pptx-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime", "isAudienceWindowOpen"], outputs: ["movePresentationSlide", "exit", "openAudienceWindow", "closeAudienceWindow"] }, { kind: "component", type: MobilePresenterViewComponent, selector: "pptx-mobile-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime"], outputs: ["movePresentationSlide", "exit"] }, { kind: "component", type: SlideSorterOverlayComponent, selector: "pptx-slide-sorter-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select", "closed"] }, { kind: "component", type: FindBarComponent, selector: "pptx-find-bar", inputs: ["slides"], outputs: ["navigate", "closed"] }, { kind: "component", type: FindReplaceBarComponent, selector: "pptx-find-replace-bar", inputs: ["matchCount", "matchIndex"], outputs: ["find", "navigate", "replaceOne", "replaceAll", "close"] }, { kind: "component", type: InspectorPanelComponent, selector: "pptx-inspector-panel", inputs: ["element", "slideIndex"] }, { kind: "component", type: SlidesPanelComponent, selector: "pptx-slides-panel", inputs: ["canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select"] }, { kind: "component", type: StatusBarComponent, selector: "pptx-status-bar", inputs: ["slideIndex", "slideCount", "canEdit", "dirty", "autosaveStatus", "notesOpen", "zoomPercent", "sorterActive", "presenting"], outputs: ["toggleNotes", "normalView", "openSorter", "slideShow", "zoomIn", "zoomOut", "zoomReset"] }, { kind: "component", type: EditorContextMenuComponent, selector: "pptx-editor-context-menu", inputs: ["x", "y", "slideIndex"], outputs: ["closed"] }, { kind: "component", type: ExportProgressModalComponent, selector: "pptx-export-progress-modal", inputs: ["open", "title", "progress", "statusMessage"], outputs: ["cancel"] }, { kind: "component", type: CommentsPanelComponent, selector: "pptx-comments-panel", inputs: ["comments", "authorName"], outputs: ["add", "remove", "resolve"] }, { kind: "component", type: SignaturesPanelComponent, selector: "pptx-signatures-panel", inputs: ["signatures"] }, { kind: "component", type: AccessibilityPanelComponent, selector: "pptx-accessibility-panel", inputs: ["issues"], outputs: ["selectSlide"] }, { kind: "component", type: CollaborationCursorsComponent, selector: "pptx-collaboration-cursors", inputs: ["cursors", "zoom"] }, { kind: "component", type: RemoteSelectionOverlayComponent, selector: "pptx-remote-selection-overlay", inputs: ["presences", "elements", "activeSlideIndex", "zoom"] }, { kind: "component", type: FollowModeBarComponent, selector: "pptx-follow-mode-bar", inputs: ["presences", "followedClientId"], outputs: ["follow"] }, { kind: "component", type: PropertiesDialogComponent, selector: "pptx-properties-dialog", inputs: ["open", "properties"], outputs: ["save", "close"] }, { kind: "component", type: HyperlinkDialogComponent, selector: "pptx-hyperlink-dialog", inputs: ["open", "element"], outputs: ["save", "close"] }, { kind: "component", type: PrintDialogComponent, selector: "pptx-print-dialog", inputs: ["slides", "activeSlideIndex", "defaultSlidesPerPage", "defaultFrameSlides"], outputs: ["print", "cancel"] }, { kind: "component", type: ShareDialogComponent, selector: "pptx-share-dialog", inputs: ["open", "defaults", "active", "connected", "userCount", "shareUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: BroadcastDialogComponent, selector: "pptx-broadcast-dialog", inputs: ["open", "defaults", "active", "connected", "viewerCount", "viewerUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: MobileBottomBarComponent, selector: "pptx-mobile-bottom-bar", inputs: ["slideCount", "commentCount", "activeSheet"], outputs: ["openSlides", "insert", "openFormat", "openComments", "notes"] }, { kind: "component", type: MobileMenuSheetComponent, selector: "pptx-mobile-menu-sheet", inputs: ["open", "slideCount", "exporting", "showNotes", "canEdit"], outputs: ["closed", "openFind", "openSorter", "toggleNotes", "insertText", "present", "openFile", "savePptx", "exportPng", "exportPdf", "exportGif", "exportVideo", "print"] }, { kind: "component", type: MobileSlidesSheetComponent, selector: "pptx-mobile-slides-sheet", inputs: ["open", "slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["closed", "jumpToSlide"] }, { kind: "component", type: MobileToolbarComponent, selector: "pptx-mobile-toolbar", inputs: ["canUndo", "canRedo", "canPresent", "canEdit", "menuOpen"], outputs: ["toggleMenu", "undo", "redo", "save", "present"] }, { kind: "component", type: NotesPanelComponent, selector: "pptx-notes-panel", inputs: ["slide"], outputs: ["update"] }, { kind: "component", type: RibbonComponent, selector: "pptx-ribbon", inputs: ["slideIndex", "slideCount", "canEdit", "selectedElement", "zoomPercent", "formatPainterActive", "canActivateFormatPainter", "exporting", "showGrid", "showRulers", "showGuides", "snapToGrid", "eyedropperActive", "themeGalleryOpen", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount", "findOpen", "collabConnected", "connectedCount"], outputs: ["prev", "next", "zoomIn", "zoomOut", "zoomReset", "find", "present", "presenter", "record", "share", "broadcast", "openFile", "save", "toggleSidebar", "signatures", "info", "print", "comments", "a11y", "link", "openSorter", "toggleNotes", "toggleFormatPainter", "exportPng", "exportPdf", "exportGif", "exportVideo", "replace", "toggleInspector", "drawToolChange", "toggleThemeGallery", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "openCustomShows", "toggleSnapToGrid", "toggleEyedropper", "openSmartArtDialog", "openEquationDialog", "openSetUpSlideShow", "openCompare", "openPassword", "openFontEmbedding", "openVersionHistory", "openShortcuts", "shapeInsert", "moveLayer", "moveLayerToEdge"] }, { kind: "component", type: TitleBarComponent, selector: "pptx-title-bar", inputs: ["canEdit", "fileName", "isDirty", "autosaveStatus", "autosaveEnabled", "canUndo", "canRedo", "undoLabel", "redoLabel", "findReplaceOpen"], outputs: ["toggleAutosave", "save", "undo", "redo", "toggleFindReplace", "commandSearch"] }, { kind: "component", type: ThemeGalleryComponent, selector: "pptx-theme-gallery", inputs: ["open", "activeName"], outputs: ["applyTheme", "close"] }, { kind: "component", type: SelectionPaneComponent, selector: "pptx-selection-pane", inputs: ["elements", "selectedIds"], outputs: ["selectElement", "bringForward", "sendBackward", "toggleHidden"] }, { kind: "component", type: CustomShowsComponent, selector: "pptx-custom-shows", inputs: ["open", "slides", "customShows", "activeCustomShowId"], outputs: ["create", "remove", "update", "setActive", "close"] }, { kind: "component", type: InsertSmartArtDialogComponent, selector: "pptx-insert-smart-art-dialog", inputs: ["open"], outputs: ["close", "insert"] }, { kind: "component", type: ViewerExtraDialogsComponent, selector: "pptx-viewer-extra-dialogs", inputs: ["activeSlideIndex", "selectedElementId", "filePath", "customShows"], outputs: ["restoreContent"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
80834
81465
|
}
|
|
80835
81466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PowerPointViewerComponent, decorators: [{
|
|
80836
81467
|
type: Component,
|
|
@@ -81924,6 +82555,9 @@ const translationsEn = {
|
|
|
81924
82555
|
'pptx.autosave.saving': 'Saving…',
|
|
81925
82556
|
'pptx.autosave.saved': 'Saved {{time}}',
|
|
81926
82557
|
'pptx.autosave.error': 'Autosave error',
|
|
82558
|
+
'pptx.autosave.disabled': 'AutoSave unavailable',
|
|
82559
|
+
'pptx.autosave.disabledNoFilePath': 'AutoSave disabled: no file path provided',
|
|
82560
|
+
'pptx.autosave.disabledToggleOff': 'AutoSave off',
|
|
81927
82561
|
'pptx.autosave.justNow': 'just now',
|
|
81928
82562
|
'pptx.autosave.oneMinAgo': '1 min ago',
|
|
81929
82563
|
'pptx.autosave.minutesAgo': '{{count}} min ago',
|
|
@@ -81939,7 +82573,13 @@ const translationsEn = {
|
|
|
81939
82573
|
'pptx.titleBar.savedToThisPc': 'Saved to this PC',
|
|
81940
82574
|
'pptx.titleBar.defaultFileName': 'Presentation',
|
|
81941
82575
|
'pptx.titleBar.search': 'Search',
|
|
82576
|
+
'pptx.titleBar.searchPlaceholder': 'Tell me what you want to do',
|
|
81942
82577
|
'pptx.titleBar.record': 'Record',
|
|
82578
|
+
'pptx.titleBar.searchCommands': 'Actions',
|
|
82579
|
+
'pptx.titleBar.searchContent': 'Find in Slides',
|
|
82580
|
+
'pptx.titleBar.searchHelp': 'Get Help on',
|
|
82581
|
+
'pptx.titleBar.searchNoResults': 'No results',
|
|
82582
|
+
'pptx.titleBar.searchRecent': 'Recent',
|
|
81943
82583
|
// Toolbar
|
|
81944
82584
|
'pptx.toolbar.toggleSlidesPanel': 'Toggle slides panel',
|
|
81945
82585
|
'pptx.toolbar.undo': 'Undo',
|
|
@@ -83556,6 +84196,12 @@ const translationsEn = {
|
|
|
83556
84196
|
'pptx.ribbon.duration': 'Duration:',
|
|
83557
84197
|
'pptx.ribbon.transitionDurationTitle': 'Transition duration in seconds',
|
|
83558
84198
|
'pptx.ribbon.applyTransitionToAll': 'Apply transition to all slides',
|
|
84199
|
+
'pptx.ribbon.advanceSlide': 'Advance Slide',
|
|
84200
|
+
'pptx.ribbon.onMouseClick': 'On Mouse Click',
|
|
84201
|
+
'pptx.ribbon.afterDuration': 'After:',
|
|
84202
|
+
'pptx.ribbon.advanceAfterSeconds': 'Advance after specified duration',
|
|
84203
|
+
'pptx.ribbon.sound': 'Sound:',
|
|
84204
|
+
'pptx.ribbon.soundNone': '[No Sound]',
|
|
83559
84205
|
'pptx.ribbon.inspector': 'Inspector',
|
|
83560
84206
|
'pptx.ribbon.openInspectorTransitions': 'Open Inspector for full transition options',
|
|
83561
84207
|
'pptx.ribbon.removeAnimation': 'Remove Animation',
|
|
@@ -83818,6 +84464,12 @@ const translationsEn = {
|
|
|
83818
84464
|
'pptx.review.spelling': 'Spelling',
|
|
83819
84465
|
'pptx.review.toggleComments': 'Toggle comments panel',
|
|
83820
84466
|
'pptx.review.toggleSpellCheck': 'Toggle spell check',
|
|
84467
|
+
'pptx.review.language': 'Language',
|
|
84468
|
+
'pptx.review.languageTooltip': 'Set proofing language',
|
|
84469
|
+
'pptx.review.accessibilityCheck': 'Check Accessibility',
|
|
84470
|
+
'pptx.review.accessibilityCheckTooltip': 'Check for accessibility issues',
|
|
84471
|
+
'pptx.review.translate': 'Translate',
|
|
84472
|
+
'pptx.review.translateTooltip': 'Translate selected text',
|
|
83821
84473
|
'pptx.shortcuts.action.cancelTextEdit': 'Cancel inline text / close menus',
|
|
83822
84474
|
'pptx.shortcuts.action.clearSelection': 'Clear selection / close menus / cancel edit',
|
|
83823
84475
|
'pptx.shortcuts.action.commitTextEdit': 'Commit inline text edit',
|
|
@@ -83872,6 +84524,12 @@ const translationsEn = {
|
|
|
83872
84524
|
'pptx.tableCell.edgeBorderColorAria': '{{edge}} border colour',
|
|
83873
84525
|
'pptx.tableCell.textColorAria': 'Text colour',
|
|
83874
84526
|
'pptx.text.bulletList': 'Bullet List',
|
|
84527
|
+
'pptx.text.changeCase': 'Change Case',
|
|
84528
|
+
'pptx.text.changeCaseSentence': 'Sentence case.',
|
|
84529
|
+
'pptx.text.changeCaseLower': 'lowercase',
|
|
84530
|
+
'pptx.text.changeCaseUpper': 'UPPERCASE',
|
|
84531
|
+
'pptx.text.changeCaseCapitalize': 'Capitalize Each Word',
|
|
84532
|
+
'pptx.text.changeCaseToggle': 'tOGGLE cASE',
|
|
83875
84533
|
'pptx.text.clearFormatting': 'Clear Formatting',
|
|
83876
84534
|
'pptx.text.decreaseFontSize': 'Decrease Font Size',
|
|
83877
84535
|
'pptx.text.decreaseIndent': 'Decrease Indent',
|