pptx-angular-viewer 1.8.0 → 1.9.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.
|
@@ -31812,9 +31812,16 @@ function reflowToDrawingShapes(layoutResult, nodes) {
|
|
|
31812
31812
|
*/
|
|
31813
31813
|
function rebuildDrawingShapesIfCleared(smartArtData, layout, palette, style, elementId, box) {
|
|
31814
31814
|
const shapes = smartArtData.drawingShapes;
|
|
31815
|
-
|
|
31815
|
+
// Skip when:
|
|
31816
|
+
// - shapes is undefined: the element never had drawing shapes (freshly
|
|
31817
|
+
// inserted); the family SVG renderer handles display from node data.
|
|
31818
|
+
// - shapes is populated (length > 0): already current, no rebuild needed.
|
|
31819
|
+
// - no nodes: nothing to lay out.
|
|
31820
|
+
if (shapes === undefined || shapes.length > 0 || smartArtData.nodes.length === 0) {
|
|
31816
31821
|
return smartArtData;
|
|
31817
31822
|
}
|
|
31823
|
+
// shapes is an empty array [] -- a structural edit cleared previously-
|
|
31824
|
+
// populated shapes. Rebuild them from the algorithmic layout engine.
|
|
31818
31825
|
const layoutResult = computeSmartArtLayout(smartArtData.nodes, box, palette, style, elementId, smartArtData.resolvedLayoutType, layout);
|
|
31819
31826
|
return {
|
|
31820
31827
|
...smartArtData,
|
|
@@ -32216,6 +32223,198 @@ const TAB_ROW_ACTION_CLASSES = {
|
|
|
32216
32223
|
recordDot: 'w-2 h-2 rounded-full bg-red-600 shrink-0',
|
|
32217
32224
|
};
|
|
32218
32225
|
|
|
32226
|
+
/**
|
|
32227
|
+
* Command-search data for the PowerPoint-style "Tell me what you want to do"
|
|
32228
|
+
* search bar. Provides searchable command entries grouped by category, each
|
|
32229
|
+
* mapping a label translation key to a command identifier that bindings can
|
|
32230
|
+
* dispatch.
|
|
32231
|
+
*/
|
|
32232
|
+
/**
|
|
32233
|
+
* Static catalogue of searchable commands. Bindings filter this list by the
|
|
32234
|
+
* user's typed query (matching against the resolved translation text).
|
|
32235
|
+
*/
|
|
32236
|
+
const COMMAND_SEARCH_ENTRIES = [
|
|
32237
|
+
// Format
|
|
32238
|
+
{ labelKey: 'pptx.textPanel.bold', command: 'format.bold', icon: 'bold', category: 'format' },
|
|
32239
|
+
{
|
|
32240
|
+
labelKey: 'pptx.textPanel.italic',
|
|
32241
|
+
command: 'format.italic',
|
|
32242
|
+
icon: 'italic',
|
|
32243
|
+
category: 'format',
|
|
32244
|
+
},
|
|
32245
|
+
{
|
|
32246
|
+
labelKey: 'pptx.textPanel.underline',
|
|
32247
|
+
command: 'format.underline',
|
|
32248
|
+
icon: 'underline',
|
|
32249
|
+
category: 'format',
|
|
32250
|
+
},
|
|
32251
|
+
{
|
|
32252
|
+
labelKey: 'pptx.ribbon.alignLeft',
|
|
32253
|
+
command: 'format.alignLeft',
|
|
32254
|
+
icon: 'alignLeft',
|
|
32255
|
+
category: 'format',
|
|
32256
|
+
},
|
|
32257
|
+
{
|
|
32258
|
+
labelKey: 'pptx.ribbon.alignCenter',
|
|
32259
|
+
command: 'format.alignCenter',
|
|
32260
|
+
icon: 'alignCenter',
|
|
32261
|
+
category: 'format',
|
|
32262
|
+
},
|
|
32263
|
+
{
|
|
32264
|
+
labelKey: 'pptx.ribbon.alignRight',
|
|
32265
|
+
command: 'format.alignRight',
|
|
32266
|
+
icon: 'alignRight',
|
|
32267
|
+
category: 'format',
|
|
32268
|
+
},
|
|
32269
|
+
{
|
|
32270
|
+
labelKey: 'pptx.ribbon.clearFormatting',
|
|
32271
|
+
command: 'format.clear',
|
|
32272
|
+
icon: 'eraser',
|
|
32273
|
+
category: 'format',
|
|
32274
|
+
},
|
|
32275
|
+
// Insert
|
|
32276
|
+
{
|
|
32277
|
+
labelKey: 'pptx.insert.addTextBox',
|
|
32278
|
+
command: 'insert.textBox',
|
|
32279
|
+
icon: 'type',
|
|
32280
|
+
category: 'insert',
|
|
32281
|
+
},
|
|
32282
|
+
{ labelKey: 'pptx.insert.addShape', command: 'insert.shape', icon: 'square', category: 'insert' },
|
|
32283
|
+
{
|
|
32284
|
+
labelKey: 'pptx.ribbon.insertImage',
|
|
32285
|
+
command: 'insert.image',
|
|
32286
|
+
icon: 'image',
|
|
32287
|
+
category: 'insert',
|
|
32288
|
+
},
|
|
32289
|
+
{
|
|
32290
|
+
labelKey: 'pptx.ribbon.insertMedia',
|
|
32291
|
+
command: 'insert.media',
|
|
32292
|
+
icon: 'video',
|
|
32293
|
+
category: 'insert',
|
|
32294
|
+
},
|
|
32295
|
+
{
|
|
32296
|
+
labelKey: 'pptx.insert.insertTable',
|
|
32297
|
+
command: 'insert.table',
|
|
32298
|
+
icon: 'table',
|
|
32299
|
+
category: 'insert',
|
|
32300
|
+
},
|
|
32301
|
+
{
|
|
32302
|
+
labelKey: 'pptx.ribbon.insertChart',
|
|
32303
|
+
command: 'insert.chart',
|
|
32304
|
+
icon: 'barChart',
|
|
32305
|
+
category: 'insert',
|
|
32306
|
+
},
|
|
32307
|
+
{
|
|
32308
|
+
labelKey: 'pptx.insert.insertSmartArt',
|
|
32309
|
+
command: 'insert.smartArt',
|
|
32310
|
+
icon: 'layers',
|
|
32311
|
+
category: 'insert',
|
|
32312
|
+
},
|
|
32313
|
+
{
|
|
32314
|
+
labelKey: 'pptx.insert.insertEquation',
|
|
32315
|
+
command: 'insert.equation',
|
|
32316
|
+
icon: 'sigma',
|
|
32317
|
+
category: 'insert',
|
|
32318
|
+
},
|
|
32319
|
+
// View
|
|
32320
|
+
{ labelKey: 'pptx.grid.grid', command: 'view.toggleGrid', icon: 'grid', category: 'view' },
|
|
32321
|
+
{ labelKey: 'pptx.ruler.rulers', command: 'view.toggleRulers', icon: 'ruler', category: 'view' },
|
|
32322
|
+
{
|
|
32323
|
+
labelKey: 'pptx.slideSorter.title',
|
|
32324
|
+
command: 'view.slideSorter',
|
|
32325
|
+
icon: 'layoutGrid',
|
|
32326
|
+
category: 'view',
|
|
32327
|
+
},
|
|
32328
|
+
{
|
|
32329
|
+
labelKey: 'pptx.view.zoomToFit',
|
|
32330
|
+
command: 'view.zoomToFit',
|
|
32331
|
+
icon: 'maximize',
|
|
32332
|
+
category: 'view',
|
|
32333
|
+
},
|
|
32334
|
+
// Slide Show
|
|
32335
|
+
{
|
|
32336
|
+
labelKey: 'pptx.slideShow.fromBeginning',
|
|
32337
|
+
command: 'slideShow.fromBeginning',
|
|
32338
|
+
icon: 'play',
|
|
32339
|
+
category: 'slideShow',
|
|
32340
|
+
},
|
|
32341
|
+
{
|
|
32342
|
+
labelKey: 'pptx.slideShow.presenterView',
|
|
32343
|
+
command: 'slideShow.presenterView',
|
|
32344
|
+
icon: 'monitor',
|
|
32345
|
+
category: 'slideShow',
|
|
32346
|
+
},
|
|
32347
|
+
// Design
|
|
32348
|
+
{
|
|
32349
|
+
labelKey: 'pptx.ribbon.browseThemes',
|
|
32350
|
+
command: 'design.browseThemes',
|
|
32351
|
+
icon: 'palette',
|
|
32352
|
+
category: 'design',
|
|
32353
|
+
},
|
|
32354
|
+
{
|
|
32355
|
+
labelKey: 'pptx.ribbon.slideSize',
|
|
32356
|
+
command: 'design.slideSize',
|
|
32357
|
+
icon: 'monitor',
|
|
32358
|
+
category: 'design',
|
|
32359
|
+
},
|
|
32360
|
+
// Arrange
|
|
32361
|
+
{
|
|
32362
|
+
labelKey: 'pptx.arrange.bringToFront',
|
|
32363
|
+
command: 'arrange.bringToFront',
|
|
32364
|
+
icon: 'layers',
|
|
32365
|
+
category: 'arrange',
|
|
32366
|
+
},
|
|
32367
|
+
{
|
|
32368
|
+
labelKey: 'pptx.arrange.sendToBack',
|
|
32369
|
+
command: 'arrange.sendToBack',
|
|
32370
|
+
icon: 'layers',
|
|
32371
|
+
category: 'arrange',
|
|
32372
|
+
},
|
|
32373
|
+
{
|
|
32374
|
+
labelKey: 'pptx.arrange.duplicate',
|
|
32375
|
+
command: 'arrange.duplicate',
|
|
32376
|
+
icon: 'copy',
|
|
32377
|
+
category: 'arrange',
|
|
32378
|
+
},
|
|
32379
|
+
// Review
|
|
32380
|
+
{
|
|
32381
|
+
labelKey: 'pptx.review.spelling',
|
|
32382
|
+
command: 'review.spelling',
|
|
32383
|
+
icon: 'spellCheck',
|
|
32384
|
+
category: 'format',
|
|
32385
|
+
},
|
|
32386
|
+
{
|
|
32387
|
+
labelKey: 'pptx.review.language',
|
|
32388
|
+
command: 'review.language',
|
|
32389
|
+
icon: 'globe',
|
|
32390
|
+
category: 'format',
|
|
32391
|
+
},
|
|
32392
|
+
{
|
|
32393
|
+
labelKey: 'pptx.review.accessibilityCheck',
|
|
32394
|
+
command: 'review.accessibility',
|
|
32395
|
+
icon: 'shieldCheck',
|
|
32396
|
+
category: 'view',
|
|
32397
|
+
},
|
|
32398
|
+
{
|
|
32399
|
+
labelKey: 'pptx.ribbon.link',
|
|
32400
|
+
command: 'insert.link',
|
|
32401
|
+
icon: 'link',
|
|
32402
|
+
category: 'insert',
|
|
32403
|
+
},
|
|
32404
|
+
];
|
|
32405
|
+
/**
|
|
32406
|
+
* Filter the command catalogue by a search query (case-insensitive substring
|
|
32407
|
+
* match against the resolved label). The `resolveLabel` callback is provided
|
|
32408
|
+
* by the binding to translate the key into the current locale's text.
|
|
32409
|
+
*/
|
|
32410
|
+
function filterCommands(query, resolveLabel) {
|
|
32411
|
+
if (!query.trim()) {
|
|
32412
|
+
return [];
|
|
32413
|
+
}
|
|
32414
|
+
const lowerQuery = query.toLowerCase();
|
|
32415
|
+
return COMMAND_SEARCH_ENTRIES.filter((entry) => resolveLabel(entry.labelKey).toLowerCase().includes(lowerQuery));
|
|
32416
|
+
}
|
|
32417
|
+
|
|
32219
32418
|
/**
|
|
32220
32419
|
* IndexedDB-backed autosave recovery store, shared by every binding.
|
|
32221
32420
|
*
|
|
@@ -66341,6 +66540,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66341
66540
|
`, styles: [":host{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:9997}.pptx-ng-remote-selection{position:absolute;top:0;left:0;box-sizing:border-box;border:2px solid currentcolor;border-radius:2px;pointer-events:none;will-change:transform;transition:transform 90ms linear}.pptx-ng-remote-selection-label{position:absolute;top:-18px;left:-2px;max-width:150px;padding:1px 5px;border-radius:3px;color:#fff;font-family:system-ui,sans-serif;font-size:9px;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
66342
66541
|
}], propDecorators: { presences: [{ type: i0.Input, args: [{ isSignal: true, alias: "presences", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: false }] }], activeSlideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeSlideIndex", required: false }] }], zoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoom", required: false }] }] } });
|
|
66343
66542
|
|
|
66543
|
+
/**
|
|
66544
|
+
* ribbon-text-helpers.ts: shared text-style helpers for the ribbon's Font and
|
|
66545
|
+
* Paragraph control groups (split out of {@link RibbonComponent} so both the
|
|
66546
|
+
* {@link RibbonFontControlsComponent} and {@link RibbonParagraphControlsComponent}
|
|
66547
|
+
* mutate the selection's `textStyle` through the same code path).
|
|
66548
|
+
*/
|
|
66549
|
+
/** The selection's text style, or null when the element carries no text props. */
|
|
66550
|
+
function textStyleOf(el) {
|
|
66551
|
+
return el && hasTextProperties(el) ? (el.textStyle ?? null) : null;
|
|
66552
|
+
}
|
|
66553
|
+
/** Whether the given element can take text formatting. */
|
|
66554
|
+
function isTextElement(el) {
|
|
66555
|
+
return el !== null && hasTextProperties(el);
|
|
66556
|
+
}
|
|
66557
|
+
/** Merge `patch` into the selection's text style and commit via the editor. */
|
|
66558
|
+
function patchTextStyle(editor, slideIndex, el, patch) {
|
|
66559
|
+
if (!el || !hasTextProperties(el)) {
|
|
66560
|
+
return;
|
|
66561
|
+
}
|
|
66562
|
+
editor.updateElement(slideIndex, el.id, {
|
|
66563
|
+
textStyle: { ...el.textStyle, ...patch },
|
|
66564
|
+
});
|
|
66565
|
+
}
|
|
66566
|
+
|
|
66344
66567
|
/**
|
|
66345
66568
|
* ribbon-animations-section.component.ts: the Animations ribbon tab (preview, the
|
|
66346
66569
|
* Add Animation entrance/emphasis/exit gallery, Remove Animation, Animation
|
|
@@ -67978,30 +68201,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67978
68201
|
}]
|
|
67979
68202
|
}], propDecorators: { current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], titleKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleKey", required: false }] }], swatchAriaKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "swatchAriaKey", required: false }] }], pick: [{ type: i0.Output, args: ["pick"] }] } });
|
|
67980
68203
|
|
|
67981
|
-
/**
|
|
67982
|
-
* ribbon-text-helpers.ts: shared text-style helpers for the ribbon's Font and
|
|
67983
|
-
* Paragraph control groups (split out of {@link RibbonComponent} so both the
|
|
67984
|
-
* {@link RibbonFontControlsComponent} and {@link RibbonParagraphControlsComponent}
|
|
67985
|
-
* mutate the selection's `textStyle` through the same code path).
|
|
67986
|
-
*/
|
|
67987
|
-
/** The selection's text style, or null when the element carries no text props. */
|
|
67988
|
-
function textStyleOf(el) {
|
|
67989
|
-
return el && hasTextProperties(el) ? (el.textStyle ?? null) : null;
|
|
67990
|
-
}
|
|
67991
|
-
/** Whether the given element can take text formatting. */
|
|
67992
|
-
function isTextElement(el) {
|
|
67993
|
-
return el !== null && hasTextProperties(el);
|
|
67994
|
-
}
|
|
67995
|
-
/** Merge `patch` into the selection's text style and commit via the editor. */
|
|
67996
|
-
function patchTextStyle(editor, slideIndex, el, patch) {
|
|
67997
|
-
if (!el || !hasTextProperties(el)) {
|
|
67998
|
-
return;
|
|
67999
|
-
}
|
|
68000
|
-
editor.updateElement(slideIndex, el.id, {
|
|
68001
|
-
textStyle: { ...el.textStyle, ...patch },
|
|
68002
|
-
});
|
|
68003
|
-
}
|
|
68004
|
-
|
|
68005
68204
|
/**
|
|
68006
68205
|
* ribbon-font-controls.component.ts: the ribbon's reusable Font control group
|
|
68007
68206
|
* (family/size dropdowns, grow/shrink, clear-formatting, bold/italic/underline/
|
|
@@ -68055,6 +68254,14 @@ const CHAR_SPACING_OPTIONS = [
|
|
|
68055
68254
|
{ label: 'Loose', value: 300 },
|
|
68056
68255
|
{ label: 'Very Loose', value: 600 },
|
|
68057
68256
|
];
|
|
68257
|
+
/** Change Case options matching PowerPoint's Aa dropdown. */
|
|
68258
|
+
const CHANGE_CASE_OPTIONS = [
|
|
68259
|
+
{ label: 'Sentence case.', value: 'sentence' },
|
|
68260
|
+
{ label: 'lowercase', value: 'lower' },
|
|
68261
|
+
{ label: 'UPPERCASE', value: 'upper' },
|
|
68262
|
+
{ label: 'Capitalize Each Word', value: 'capitalize' },
|
|
68263
|
+
{ label: 'tOGGLE cASE', value: 'toggle' },
|
|
68264
|
+
];
|
|
68058
68265
|
class RibbonFontControlsComponent {
|
|
68059
68266
|
editor = inject(EditorStateService);
|
|
68060
68267
|
slideIndex = input(0, /* @ts-ignore */
|
|
@@ -68066,6 +68273,7 @@ class RibbonFontControlsComponent {
|
|
|
68066
68273
|
fontColorPresets = FONT_COLOR_PRESETS;
|
|
68067
68274
|
highlightColorPresets = HIGHLIGHT_COLOR_PRESETS;
|
|
68068
68275
|
charSpacingOptions = CHAR_SPACING_OPTIONS;
|
|
68276
|
+
changeCaseOptions = CHANGE_CASE_OPTIONS;
|
|
68069
68277
|
isText() {
|
|
68070
68278
|
return isTextElement(this.selectedElement());
|
|
68071
68279
|
}
|
|
@@ -68110,6 +68318,21 @@ class RibbonFontControlsComponent {
|
|
|
68110
68318
|
setCharSpacing(event) {
|
|
68111
68319
|
this.patch({ characterSpacing: Number(event.target.value) });
|
|
68112
68320
|
}
|
|
68321
|
+
setChangeCase(event) {
|
|
68322
|
+
const value = event.target.value;
|
|
68323
|
+
switch (value) {
|
|
68324
|
+
case 'upper':
|
|
68325
|
+
this.patch({ textCaps: 'all' });
|
|
68326
|
+
break;
|
|
68327
|
+
case 'lower':
|
|
68328
|
+
case 'sentence':
|
|
68329
|
+
case 'capitalize':
|
|
68330
|
+
case 'toggle':
|
|
68331
|
+
this.patch({ textCaps: 'none' });
|
|
68332
|
+
break;
|
|
68333
|
+
}
|
|
68334
|
+
event.target.selectedIndex = 0;
|
|
68335
|
+
}
|
|
68113
68336
|
toggleStyle(key) {
|
|
68114
68337
|
this.patch({ [key]: !this.curStyle()?.[key] });
|
|
68115
68338
|
}
|
|
@@ -68264,6 +68487,18 @@ class RibbonFontControlsComponent {
|
|
|
68264
68487
|
</option>
|
|
68265
68488
|
}
|
|
68266
68489
|
</select>
|
|
68490
|
+
<!-- Change Case -->
|
|
68491
|
+
<select
|
|
68492
|
+
class="pptx-rb-select w-24"
|
|
68493
|
+
[attr.aria-label]="'pptx.text.changeCase' | translate"
|
|
68494
|
+
[disabled]="!isText()"
|
|
68495
|
+
(change)="setChangeCase($event)"
|
|
68496
|
+
>
|
|
68497
|
+
<option value="" selected disabled>Aa</option>
|
|
68498
|
+
@for (opt of changeCaseOptions; track opt.value) {
|
|
68499
|
+
<option [value]="opt.value">{{ opt.label }}</option>
|
|
68500
|
+
}
|
|
68501
|
+
</select>
|
|
68267
68502
|
<!-- Font colour popover -->
|
|
68268
68503
|
<pptx-ribbon-color-popover
|
|
68269
68504
|
[current]="curColor()"
|
|
@@ -68424,6 +68659,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68424
68659
|
</option>
|
|
68425
68660
|
}
|
|
68426
68661
|
</select>
|
|
68662
|
+
<!-- Change Case -->
|
|
68663
|
+
<select
|
|
68664
|
+
class="pptx-rb-select w-24"
|
|
68665
|
+
[attr.aria-label]="'pptx.text.changeCase' | translate"
|
|
68666
|
+
[disabled]="!isText()"
|
|
68667
|
+
(change)="setChangeCase($event)"
|
|
68668
|
+
>
|
|
68669
|
+
<option value="" selected disabled>Aa</option>
|
|
68670
|
+
@for (opt of changeCaseOptions; track opt.value) {
|
|
68671
|
+
<option [value]="opt.value">{{ opt.label }}</option>
|
|
68672
|
+
}
|
|
68673
|
+
</select>
|
|
68427
68674
|
<!-- Font colour popover -->
|
|
68428
68675
|
<pptx-ribbon-color-popover
|
|
68429
68676
|
[current]="curColor()"
|
|
@@ -70399,19 +70646,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70399
70646
|
class RibbonReviewSectionComponent {
|
|
70400
70647
|
editor = inject(EditorStateService);
|
|
70401
70648
|
comments = output();
|
|
70649
|
+
spelling = output();
|
|
70402
70650
|
a11y = output();
|
|
70403
70651
|
openCompare = output();
|
|
70652
|
+
language = output();
|
|
70404
70653
|
link = output();
|
|
70405
70654
|
hasSel() {
|
|
70406
70655
|
return this.editor.selectedIds().length > 0;
|
|
70407
70656
|
}
|
|
70408
70657
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonReviewSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
70409
|
-
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: `
|
|
70658
|
+
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: `
|
|
70410
70659
|
<button type="button" class="pptx-rb-pill" (click)="comments.emit()">
|
|
70411
70660
|
{{ 'pptx.toolbar.comments' | translate }}
|
|
70412
70661
|
</button>
|
|
70413
|
-
<button
|
|
70414
|
-
|
|
70662
|
+
<button
|
|
70663
|
+
type="button"
|
|
70664
|
+
class="pptx-rb-pill"
|
|
70665
|
+
[title]="'pptx.review.toggleSpellCheck' | translate"
|
|
70666
|
+
(click)="spelling.emit()"
|
|
70667
|
+
>
|
|
70668
|
+
{{ 'pptx.review.spelling' | translate }}
|
|
70415
70669
|
</button>
|
|
70416
70670
|
<button
|
|
70417
70671
|
type="button"
|
|
@@ -70421,6 +70675,23 @@ class RibbonReviewSectionComponent {
|
|
|
70421
70675
|
>
|
|
70422
70676
|
{{ 'pptx.ribbon.compare' | translate }}
|
|
70423
70677
|
</button>
|
|
70678
|
+
<span class="pptx-rb-sep"></span>
|
|
70679
|
+
<button
|
|
70680
|
+
type="button"
|
|
70681
|
+
class="pptx-rb-pill"
|
|
70682
|
+
[title]="'pptx.review.languageTooltip' | translate"
|
|
70683
|
+
(click)="language.emit()"
|
|
70684
|
+
>
|
|
70685
|
+
{{ 'pptx.review.language' | translate }}
|
|
70686
|
+
</button>
|
|
70687
|
+
<button
|
|
70688
|
+
type="button"
|
|
70689
|
+
class="pptx-rb-pill"
|
|
70690
|
+
[title]="'pptx.review.accessibilityCheckTooltip' | translate"
|
|
70691
|
+
(click)="a11y.emit()"
|
|
70692
|
+
>
|
|
70693
|
+
{{ 'pptx.review.accessibilityCheck' | translate }}
|
|
70694
|
+
</button>
|
|
70424
70695
|
@if (hasSel()) {
|
|
70425
70696
|
<button type="button" class="pptx-rb-pill" (click)="link.emit()">
|
|
70426
70697
|
{{ 'pptx.ribbon.link' | translate }}
|
|
@@ -70440,8 +70711,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70440
70711
|
<button type="button" class="pptx-rb-pill" (click)="comments.emit()">
|
|
70441
70712
|
{{ 'pptx.toolbar.comments' | translate }}
|
|
70442
70713
|
</button>
|
|
70443
|
-
<button
|
|
70444
|
-
|
|
70714
|
+
<button
|
|
70715
|
+
type="button"
|
|
70716
|
+
class="pptx-rb-pill"
|
|
70717
|
+
[title]="'pptx.review.toggleSpellCheck' | translate"
|
|
70718
|
+
(click)="spelling.emit()"
|
|
70719
|
+
>
|
|
70720
|
+
{{ 'pptx.review.spelling' | translate }}
|
|
70445
70721
|
</button>
|
|
70446
70722
|
<button
|
|
70447
70723
|
type="button"
|
|
@@ -70451,6 +70727,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70451
70727
|
>
|
|
70452
70728
|
{{ 'pptx.ribbon.compare' | translate }}
|
|
70453
70729
|
</button>
|
|
70730
|
+
<span class="pptx-rb-sep"></span>
|
|
70731
|
+
<button
|
|
70732
|
+
type="button"
|
|
70733
|
+
class="pptx-rb-pill"
|
|
70734
|
+
[title]="'pptx.review.languageTooltip' | translate"
|
|
70735
|
+
(click)="language.emit()"
|
|
70736
|
+
>
|
|
70737
|
+
{{ 'pptx.review.language' | translate }}
|
|
70738
|
+
</button>
|
|
70739
|
+
<button
|
|
70740
|
+
type="button"
|
|
70741
|
+
class="pptx-rb-pill"
|
|
70742
|
+
[title]="'pptx.review.accessibilityCheckTooltip' | translate"
|
|
70743
|
+
(click)="a11y.emit()"
|
|
70744
|
+
>
|
|
70745
|
+
{{ 'pptx.review.accessibilityCheck' | translate }}
|
|
70746
|
+
</button>
|
|
70454
70747
|
@if (hasSel()) {
|
|
70455
70748
|
<button type="button" class="pptx-rb-pill" (click)="link.emit()">
|
|
70456
70749
|
{{ 'pptx.ribbon.link' | translate }}
|
|
@@ -70458,7 +70751,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70458
70751
|
}
|
|
70459
70752
|
`,
|
|
70460
70753
|
}]
|
|
70461
|
-
}], 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"] }] } });
|
|
70754
|
+
}], 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"] }] } });
|
|
70462
70755
|
|
|
70463
70756
|
/**
|
|
70464
70757
|
* ribbon-slideshow-section.component.ts: the Slide Show ribbon tab (From
|
|
@@ -70588,6 +70881,12 @@ class RibbonTransitionsSectionComponent {
|
|
|
70588
70881
|
transitionChange = output();
|
|
70589
70882
|
durationChange = output();
|
|
70590
70883
|
transitionPresets = TRANSITION_PRESETS;
|
|
70884
|
+
advanceOnClick = signal(true, /* @ts-ignore */
|
|
70885
|
+
...(ngDevMode ? [{ debugName: "advanceOnClick" }] : /* istanbul ignore next */ []));
|
|
70886
|
+
advanceAfter = signal(false, /* @ts-ignore */
|
|
70887
|
+
...(ngDevMode ? [{ debugName: "advanceAfter" }] : /* istanbul ignore next */ []));
|
|
70888
|
+
advanceAfterSeconds = signal('00:00.00', /* @ts-ignore */
|
|
70889
|
+
...(ngDevMode ? [{ debugName: "advanceAfterSeconds" }] : /* istanbul ignore next */ []));
|
|
70591
70890
|
/** Apply the chosen transition to the active slide. */
|
|
70592
70891
|
setTransition(type) {
|
|
70593
70892
|
this.transitionChange.emit(type);
|
|
@@ -70668,6 +70967,14 @@ class RibbonTransitionsSectionComponent {
|
|
|
70668
70967
|
<span>s</span>
|
|
70669
70968
|
</label>
|
|
70670
70969
|
<span class="pptx-rb-sep"></span>
|
|
70970
|
+
<!-- Sound -->
|
|
70971
|
+
<label class="inline-flex items-center gap-1.5 text-xs text-muted-foreground">
|
|
70972
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.sound' | translate }}</span>
|
|
70973
|
+
<select class="pptx-rb-select w-24">
|
|
70974
|
+
<option value="none">{{ 'pptx.ribbon.soundNone' | translate }}</option>
|
|
70975
|
+
</select>
|
|
70976
|
+
</label>
|
|
70977
|
+
<span class="pptx-rb-sep"></span>
|
|
70671
70978
|
<!-- Apply to all -->
|
|
70672
70979
|
<button
|
|
70673
70980
|
type="button"
|
|
@@ -70678,6 +70985,39 @@ class RibbonTransitionsSectionComponent {
|
|
|
70678
70985
|
⧉ {{ 'pptx.headerFooter.applyToAll' | translate }}
|
|
70679
70986
|
</button>
|
|
70680
70987
|
<span class="pptx-rb-sep"></span>
|
|
70988
|
+
<!-- Advance Slide -->
|
|
70989
|
+
<div class="inline-flex flex-col gap-1 text-xs text-muted-foreground">
|
|
70990
|
+
<span class="text-[10px] font-medium text-foreground">{{
|
|
70991
|
+
'pptx.ribbon.advanceSlide' | translate
|
|
70992
|
+
}}</span>
|
|
70993
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
70994
|
+
<input
|
|
70995
|
+
type="checkbox"
|
|
70996
|
+
[checked]="advanceOnClick()"
|
|
70997
|
+
(change)="advanceOnClick.set($any($event.target).checked)"
|
|
70998
|
+
class="accent-primary h-3 w-3"
|
|
70999
|
+
/>
|
|
71000
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.onMouseClick' | translate }}</span>
|
|
71001
|
+
</label>
|
|
71002
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
71003
|
+
<input
|
|
71004
|
+
type="checkbox"
|
|
71005
|
+
[checked]="advanceAfter()"
|
|
71006
|
+
(change)="advanceAfter.set($any($event.target).checked)"
|
|
71007
|
+
class="accent-primary h-3 w-3"
|
|
71008
|
+
/>
|
|
71009
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.afterDuration' | translate }}</span>
|
|
71010
|
+
<input
|
|
71011
|
+
type="text"
|
|
71012
|
+
[value]="advanceAfterSeconds()"
|
|
71013
|
+
(input)="advanceAfterSeconds.set($any($event.target).value)"
|
|
71014
|
+
[disabled]="!advanceAfter()"
|
|
71015
|
+
class="pptx-rb-select w-16 text-center disabled:opacity-50"
|
|
71016
|
+
[title]="'pptx.ribbon.advanceAfterSeconds' | translate"
|
|
71017
|
+
/>
|
|
71018
|
+
</label>
|
|
71019
|
+
</div>
|
|
71020
|
+
<span class="pptx-rb-sep"></span>
|
|
70681
71021
|
<!-- Inspector -->
|
|
70682
71022
|
<button
|
|
70683
71023
|
type="button"
|
|
@@ -70743,6 +71083,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70743
71083
|
<span>s</span>
|
|
70744
71084
|
</label>
|
|
70745
71085
|
<span class="pptx-rb-sep"></span>
|
|
71086
|
+
<!-- Sound -->
|
|
71087
|
+
<label class="inline-flex items-center gap-1.5 text-xs text-muted-foreground">
|
|
71088
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.sound' | translate }}</span>
|
|
71089
|
+
<select class="pptx-rb-select w-24">
|
|
71090
|
+
<option value="none">{{ 'pptx.ribbon.soundNone' | translate }}</option>
|
|
71091
|
+
</select>
|
|
71092
|
+
</label>
|
|
71093
|
+
<span class="pptx-rb-sep"></span>
|
|
70746
71094
|
<!-- Apply to all -->
|
|
70747
71095
|
<button
|
|
70748
71096
|
type="button"
|
|
@@ -70753,6 +71101,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70753
71101
|
⧉ {{ 'pptx.headerFooter.applyToAll' | translate }}
|
|
70754
71102
|
</button>
|
|
70755
71103
|
<span class="pptx-rb-sep"></span>
|
|
71104
|
+
<!-- Advance Slide -->
|
|
71105
|
+
<div class="inline-flex flex-col gap-1 text-xs text-muted-foreground">
|
|
71106
|
+
<span class="text-[10px] font-medium text-foreground">{{
|
|
71107
|
+
'pptx.ribbon.advanceSlide' | translate
|
|
71108
|
+
}}</span>
|
|
71109
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
71110
|
+
<input
|
|
71111
|
+
type="checkbox"
|
|
71112
|
+
[checked]="advanceOnClick()"
|
|
71113
|
+
(change)="advanceOnClick.set($any($event.target).checked)"
|
|
71114
|
+
class="accent-primary h-3 w-3"
|
|
71115
|
+
/>
|
|
71116
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.onMouseClick' | translate }}</span>
|
|
71117
|
+
</label>
|
|
71118
|
+
<label class="inline-flex cursor-pointer items-center gap-1.5">
|
|
71119
|
+
<input
|
|
71120
|
+
type="checkbox"
|
|
71121
|
+
[checked]="advanceAfter()"
|
|
71122
|
+
(change)="advanceAfter.set($any($event.target).checked)"
|
|
71123
|
+
class="accent-primary h-3 w-3"
|
|
71124
|
+
/>
|
|
71125
|
+
<span class="whitespace-nowrap">{{ 'pptx.ribbon.afterDuration' | translate }}</span>
|
|
71126
|
+
<input
|
|
71127
|
+
type="text"
|
|
71128
|
+
[value]="advanceAfterSeconds()"
|
|
71129
|
+
(input)="advanceAfterSeconds.set($any($event.target).value)"
|
|
71130
|
+
[disabled]="!advanceAfter()"
|
|
71131
|
+
class="pptx-rb-select w-16 text-center disabled:opacity-50"
|
|
71132
|
+
[title]="'pptx.ribbon.advanceAfterSeconds' | translate"
|
|
71133
|
+
/>
|
|
71134
|
+
</label>
|
|
71135
|
+
</div>
|
|
71136
|
+
<span class="pptx-rb-sep"></span>
|
|
70756
71137
|
<!-- Inspector -->
|
|
70757
71138
|
<button
|
|
70758
71139
|
type="button"
|
|
@@ -71478,7 +71859,7 @@ class RibbonComponent {
|
|
|
71478
71859
|
}
|
|
71479
71860
|
</div>
|
|
71480
71861
|
</div>
|
|
71481
|
-
`, 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 });
|
|
71862
|
+
`, 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 });
|
|
71482
71863
|
}
|
|
71483
71864
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonComponent, decorators: [{
|
|
71484
71865
|
type: Component,
|
|
@@ -73970,13 +74351,20 @@ class TitleBarComponent {
|
|
|
73970
74351
|
findReplaceOpen = input(false, /* @ts-ignore */
|
|
73971
74352
|
...(ngDevMode ? [{ debugName: "findReplaceOpen" }] : /* istanbul ignore next */ []));
|
|
73972
74353
|
toggleAutosave = output();
|
|
73973
|
-
/** Quick-access save (downloads the `.pptx`). */
|
|
73974
74354
|
save = output();
|
|
73975
74355
|
undo = output();
|
|
73976
74356
|
redo = output();
|
|
73977
74357
|
toggleFindReplace = output();
|
|
74358
|
+
commandSearch = output();
|
|
74359
|
+
translate = inject(TranslateService);
|
|
73978
74360
|
tb = TITLE_BAR_CLASSES;
|
|
73979
74361
|
defaultFileKey = TITLE_BAR_DEFAULT_FILE_KEY;
|
|
74362
|
+
searchQuery = signal('', /* @ts-ignore */
|
|
74363
|
+
...(ngDevMode ? [{ debugName: "searchQuery" }] : /* istanbul ignore next */ []));
|
|
74364
|
+
searchFocused = signal(false, /* @ts-ignore */
|
|
74365
|
+
...(ngDevMode ? [{ debugName: "searchFocused" }] : /* istanbul ignore next */ []));
|
|
74366
|
+
commandResults = computed(() => filterCommands(this.searchQuery(), (key) => this.translate.instant(key)), /* @ts-ignore */
|
|
74367
|
+
...(ngDevMode ? [{ debugName: "commandResults" }] : /* istanbul ignore next */ []));
|
|
73980
74368
|
/** The i18n key for the save-location status text (next to the file name). */
|
|
73981
74369
|
statusKey = computed(() => {
|
|
73982
74370
|
const status = this.autosaveStatus();
|
|
@@ -74003,8 +74391,37 @@ class TitleBarComponent {
|
|
|
74003
74391
|
return '';
|
|
74004
74392
|
}, /* @ts-ignore */
|
|
74005
74393
|
...(ngDevMode ? [{ debugName: "statusStateClass" }] : /* istanbul ignore next */ []));
|
|
74394
|
+
selectCommand(entry) {
|
|
74395
|
+
this.commandSearch.emit(entry.command);
|
|
74396
|
+
this.searchQuery.set('');
|
|
74397
|
+
this.searchFocused.set(false);
|
|
74398
|
+
}
|
|
74399
|
+
openFindReplace() {
|
|
74400
|
+
this.toggleFindReplace.emit();
|
|
74401
|
+
this.searchFocused.set(false);
|
|
74402
|
+
this.searchQuery.set('');
|
|
74403
|
+
}
|
|
74404
|
+
onSearchBlur() {
|
|
74405
|
+
// Delay to allow mousedown on dropdown items to fire first.
|
|
74406
|
+
setTimeout(() => this.searchFocused.set(false), 150);
|
|
74407
|
+
}
|
|
74408
|
+
onSearchKeyDown(event) {
|
|
74409
|
+
if (event.key === 'Enter' && this.searchQuery().trim()) {
|
|
74410
|
+
const results = this.commandResults();
|
|
74411
|
+
if (results.length > 0) {
|
|
74412
|
+
this.selectCommand(results[0]);
|
|
74413
|
+
}
|
|
74414
|
+
else {
|
|
74415
|
+
this.openFindReplace();
|
|
74416
|
+
}
|
|
74417
|
+
}
|
|
74418
|
+
else if (event.key === 'Escape') {
|
|
74419
|
+
this.searchQuery.set('');
|
|
74420
|
+
this.searchFocused.set(false);
|
|
74421
|
+
}
|
|
74422
|
+
}
|
|
74006
74423
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TitleBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74007
|
-
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: `
|
|
74424
|
+
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: `
|
|
74008
74425
|
<div [class]="tb.container" data-pptx-title-bar>
|
|
74009
74426
|
<span [class]="tb.logo" aria-hidden="true">P</span>
|
|
74010
74427
|
|
|
@@ -74087,17 +74504,70 @@ class TitleBarComponent {
|
|
|
74087
74504
|
|
|
74088
74505
|
<span [class]="tb.searchWrap">
|
|
74089
74506
|
@if (canEdit()) {
|
|
74090
|
-
<
|
|
74091
|
-
|
|
74092
|
-
|
|
74093
|
-
|
|
74094
|
-
|
|
74095
|
-
|
|
74096
|
-
|
|
74097
|
-
|
|
74098
|
-
|
|
74099
|
-
|
|
74100
|
-
|
|
74507
|
+
<div class="relative w-full max-w-md">
|
|
74508
|
+
<div
|
|
74509
|
+
[class]="tb.searchBox"
|
|
74510
|
+
[ngClass]="
|
|
74511
|
+
searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
|
|
74512
|
+
"
|
|
74513
|
+
>
|
|
74514
|
+
<span [class]="tb.searchIcon" aria-hidden="true">⌕</span>
|
|
74515
|
+
<input
|
|
74516
|
+
type="text"
|
|
74517
|
+
[value]="searchQuery()"
|
|
74518
|
+
(input)="searchQuery.set($any($event.target).value)"
|
|
74519
|
+
(focus)="searchFocused.set(true)"
|
|
74520
|
+
(blur)="onSearchBlur()"
|
|
74521
|
+
(keydown)="onSearchKeyDown($event)"
|
|
74522
|
+
class="flex-1 bg-transparent text-[11px] outline-none placeholder:text-muted-foreground/60"
|
|
74523
|
+
[placeholder]="'pptx.titleBar.searchPlaceholder' | translate"
|
|
74524
|
+
[attr.aria-label]="'pptx.titleBar.search' | translate"
|
|
74525
|
+
/>
|
|
74526
|
+
</div>
|
|
74527
|
+
@if (searchFocused() && searchQuery().trim()) {
|
|
74528
|
+
<div
|
|
74529
|
+
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"
|
|
74530
|
+
>
|
|
74531
|
+
@if (commandResults().length > 0) {
|
|
74532
|
+
<div
|
|
74533
|
+
class="px-3 py-1.5 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider"
|
|
74534
|
+
>
|
|
74535
|
+
{{ 'pptx.titleBar.searchCommands' | translate }}
|
|
74536
|
+
</div>
|
|
74537
|
+
@for (entry of commandResults().slice(0, 8); track entry.command) {
|
|
74538
|
+
<button
|
|
74539
|
+
type="button"
|
|
74540
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74541
|
+
(mousedown)="selectCommand(entry)"
|
|
74542
|
+
>
|
|
74543
|
+
<span class="truncate">{{ entry.labelKey | translate }}</span>
|
|
74544
|
+
<span class="ml-auto text-[10px] text-muted-foreground capitalize">{{
|
|
74545
|
+
entry.category
|
|
74546
|
+
}}</span>
|
|
74547
|
+
</button>
|
|
74548
|
+
}
|
|
74549
|
+
} @else {
|
|
74550
|
+
<div class="px-3 py-2 text-xs text-muted-foreground">
|
|
74551
|
+
{{ 'pptx.titleBar.searchNoResults' | translate }}
|
|
74552
|
+
</div>
|
|
74553
|
+
}
|
|
74554
|
+
<div class="border-t border-border/60">
|
|
74555
|
+
<button
|
|
74556
|
+
type="button"
|
|
74557
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74558
|
+
(mousedown)="openFindReplace()"
|
|
74559
|
+
>
|
|
74560
|
+
<span aria-hidden="true">⌕</span>
|
|
74561
|
+
<span
|
|
74562
|
+
>{{ 'pptx.titleBar.searchContent' | translate }} “{{
|
|
74563
|
+
searchQuery()
|
|
74564
|
+
}}”</span
|
|
74565
|
+
>
|
|
74566
|
+
</button>
|
|
74567
|
+
</div>
|
|
74568
|
+
</div>
|
|
74569
|
+
}
|
|
74570
|
+
</div>
|
|
74101
74571
|
}
|
|
74102
74572
|
</span>
|
|
74103
74573
|
|
|
@@ -74195,17 +74665,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74195
74665
|
|
|
74196
74666
|
<span [class]="tb.searchWrap">
|
|
74197
74667
|
@if (canEdit()) {
|
|
74198
|
-
<
|
|
74199
|
-
|
|
74200
|
-
|
|
74201
|
-
|
|
74202
|
-
|
|
74203
|
-
|
|
74204
|
-
|
|
74205
|
-
|
|
74206
|
-
|
|
74207
|
-
|
|
74208
|
-
|
|
74668
|
+
<div class="relative w-full max-w-md">
|
|
74669
|
+
<div
|
|
74670
|
+
[class]="tb.searchBox"
|
|
74671
|
+
[ngClass]="
|
|
74672
|
+
searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
|
|
74673
|
+
"
|
|
74674
|
+
>
|
|
74675
|
+
<span [class]="tb.searchIcon" aria-hidden="true">⌕</span>
|
|
74676
|
+
<input
|
|
74677
|
+
type="text"
|
|
74678
|
+
[value]="searchQuery()"
|
|
74679
|
+
(input)="searchQuery.set($any($event.target).value)"
|
|
74680
|
+
(focus)="searchFocused.set(true)"
|
|
74681
|
+
(blur)="onSearchBlur()"
|
|
74682
|
+
(keydown)="onSearchKeyDown($event)"
|
|
74683
|
+
class="flex-1 bg-transparent text-[11px] outline-none placeholder:text-muted-foreground/60"
|
|
74684
|
+
[placeholder]="'pptx.titleBar.searchPlaceholder' | translate"
|
|
74685
|
+
[attr.aria-label]="'pptx.titleBar.search' | translate"
|
|
74686
|
+
/>
|
|
74687
|
+
</div>
|
|
74688
|
+
@if (searchFocused() && searchQuery().trim()) {
|
|
74689
|
+
<div
|
|
74690
|
+
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"
|
|
74691
|
+
>
|
|
74692
|
+
@if (commandResults().length > 0) {
|
|
74693
|
+
<div
|
|
74694
|
+
class="px-3 py-1.5 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider"
|
|
74695
|
+
>
|
|
74696
|
+
{{ 'pptx.titleBar.searchCommands' | translate }}
|
|
74697
|
+
</div>
|
|
74698
|
+
@for (entry of commandResults().slice(0, 8); track entry.command) {
|
|
74699
|
+
<button
|
|
74700
|
+
type="button"
|
|
74701
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74702
|
+
(mousedown)="selectCommand(entry)"
|
|
74703
|
+
>
|
|
74704
|
+
<span class="truncate">{{ entry.labelKey | translate }}</span>
|
|
74705
|
+
<span class="ml-auto text-[10px] text-muted-foreground capitalize">{{
|
|
74706
|
+
entry.category
|
|
74707
|
+
}}</span>
|
|
74708
|
+
</button>
|
|
74709
|
+
}
|
|
74710
|
+
} @else {
|
|
74711
|
+
<div class="px-3 py-2 text-xs text-muted-foreground">
|
|
74712
|
+
{{ 'pptx.titleBar.searchNoResults' | translate }}
|
|
74713
|
+
</div>
|
|
74714
|
+
}
|
|
74715
|
+
<div class="border-t border-border/60">
|
|
74716
|
+
<button
|
|
74717
|
+
type="button"
|
|
74718
|
+
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74719
|
+
(mousedown)="openFindReplace()"
|
|
74720
|
+
>
|
|
74721
|
+
<span aria-hidden="true">⌕</span>
|
|
74722
|
+
<span
|
|
74723
|
+
>{{ 'pptx.titleBar.searchContent' | translate }} “{{
|
|
74724
|
+
searchQuery()
|
|
74725
|
+
}}”</span
|
|
74726
|
+
>
|
|
74727
|
+
</button>
|
|
74728
|
+
</div>
|
|
74729
|
+
</div>
|
|
74730
|
+
}
|
|
74731
|
+
</div>
|
|
74209
74732
|
}
|
|
74210
74733
|
</span>
|
|
74211
74734
|
|
|
@@ -74213,7 +74736,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74213
74736
|
</div>
|
|
74214
74737
|
`,
|
|
74215
74738
|
}]
|
|
74216
|
-
}], 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"] }] } });
|
|
74739
|
+
}], 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"] }] } });
|
|
74217
74740
|
|
|
74218
74741
|
/**
|
|
74219
74742
|
* viewer-dialogs.service.ts: Viewer-scoped open-state + light state for the
|
|
@@ -80242,6 +80765,129 @@ class PowerPointViewerComponent {
|
|
|
80242
80765
|
}
|
|
80243
80766
|
this.findReplace.openFindReplace();
|
|
80244
80767
|
}
|
|
80768
|
+
/** Dispatch a command from the title-bar search palette. */
|
|
80769
|
+
handleCommandSearch(command) {
|
|
80770
|
+
const [category, action] = command.split('.');
|
|
80771
|
+
switch (category) {
|
|
80772
|
+
case 'format':
|
|
80773
|
+
this.dispatchFormatCommand(action);
|
|
80774
|
+
break;
|
|
80775
|
+
case 'insert':
|
|
80776
|
+
this.dispatchInsertCommand(action);
|
|
80777
|
+
break;
|
|
80778
|
+
case 'view':
|
|
80779
|
+
this.dispatchViewCommand(action);
|
|
80780
|
+
break;
|
|
80781
|
+
case 'slideShow':
|
|
80782
|
+
if (action === 'fromBeginning') {
|
|
80783
|
+
this.presentationMode.present();
|
|
80784
|
+
}
|
|
80785
|
+
else if (action === 'presenterView') {
|
|
80786
|
+
this.presentationMode.presentPresenter();
|
|
80787
|
+
}
|
|
80788
|
+
break;
|
|
80789
|
+
case 'design':
|
|
80790
|
+
if (action === 'browseThemes') {
|
|
80791
|
+
this.themeGallery.showThemeGallery.update((v) => !v);
|
|
80792
|
+
}
|
|
80793
|
+
else if (action === 'slideSize') {
|
|
80794
|
+
this.dialogs.showSetUpSlideShow.set(true);
|
|
80795
|
+
}
|
|
80796
|
+
break;
|
|
80797
|
+
case 'arrange':
|
|
80798
|
+
this.dispatchArrangeCommand(action);
|
|
80799
|
+
break;
|
|
80800
|
+
case 'review':
|
|
80801
|
+
if (action === 'spelling') {
|
|
80802
|
+
this.findReplace.openFindReplace();
|
|
80803
|
+
}
|
|
80804
|
+
else if (action === 'accessibility') {
|
|
80805
|
+
this.inspectorPanel.togglePanel('accessibility');
|
|
80806
|
+
}
|
|
80807
|
+
break;
|
|
80808
|
+
}
|
|
80809
|
+
}
|
|
80810
|
+
dispatchFormatCommand(action) {
|
|
80811
|
+
const el = this.selectedElement();
|
|
80812
|
+
const idx = this.activeSlideIndex();
|
|
80813
|
+
switch (action) {
|
|
80814
|
+
case 'bold':
|
|
80815
|
+
patchTextStyle(this.editor, idx, el, { bold: true });
|
|
80816
|
+
break;
|
|
80817
|
+
case 'italic':
|
|
80818
|
+
patchTextStyle(this.editor, idx, el, { italic: true });
|
|
80819
|
+
break;
|
|
80820
|
+
case 'underline':
|
|
80821
|
+
patchTextStyle(this.editor, idx, el, { underline: true });
|
|
80822
|
+
break;
|
|
80823
|
+
case 'alignLeft':
|
|
80824
|
+
patchTextStyle(this.editor, idx, el, { align: 'left' });
|
|
80825
|
+
break;
|
|
80826
|
+
case 'alignCenter':
|
|
80827
|
+
patchTextStyle(this.editor, idx, el, { align: 'center' });
|
|
80828
|
+
break;
|
|
80829
|
+
case 'alignRight':
|
|
80830
|
+
patchTextStyle(this.editor, idx, el, { align: 'right' });
|
|
80831
|
+
break;
|
|
80832
|
+
case 'clear':
|
|
80833
|
+
patchTextStyle(this.editor, idx, el, {
|
|
80834
|
+
bold: false,
|
|
80835
|
+
italic: false,
|
|
80836
|
+
underline: false,
|
|
80837
|
+
strikethrough: false,
|
|
80838
|
+
});
|
|
80839
|
+
break;
|
|
80840
|
+
}
|
|
80841
|
+
}
|
|
80842
|
+
dispatchInsertCommand(action) {
|
|
80843
|
+
const idx = this.activeSlideIndex();
|
|
80844
|
+
switch (action) {
|
|
80845
|
+
case 'textBox':
|
|
80846
|
+
this.editor.addElement(idx, newTextElement());
|
|
80847
|
+
break;
|
|
80848
|
+
case 'shape':
|
|
80849
|
+
this.editor.addElement(idx, newShapeElement('rect'));
|
|
80850
|
+
break;
|
|
80851
|
+
case 'table':
|
|
80852
|
+
this.editor.addElement(idx, newTableElement());
|
|
80853
|
+
break;
|
|
80854
|
+
case 'chart':
|
|
80855
|
+
this.editor.addElement(idx, newChartElement('bar'));
|
|
80856
|
+
break;
|
|
80857
|
+
case 'smartArt':
|
|
80858
|
+
this.showSmartArtInsert.set(true);
|
|
80859
|
+
break;
|
|
80860
|
+
case 'equation':
|
|
80861
|
+
this.dialogs.openEquationInsert();
|
|
80862
|
+
break;
|
|
80863
|
+
case 'link':
|
|
80864
|
+
this.docProperties.showHyperlink.set(true);
|
|
80865
|
+
break;
|
|
80866
|
+
}
|
|
80867
|
+
}
|
|
80868
|
+
dispatchViewCommand(action) {
|
|
80869
|
+
switch (action) {
|
|
80870
|
+
case 'toggleGrid':
|
|
80871
|
+
this.showGrid.update((v) => !v);
|
|
80872
|
+
break;
|
|
80873
|
+
case 'toggleRulers':
|
|
80874
|
+
this.showRulers.update((v) => !v);
|
|
80875
|
+
break;
|
|
80876
|
+
case 'slideSorter':
|
|
80877
|
+
this.showSorter.set(true);
|
|
80878
|
+
break;
|
|
80879
|
+
case 'zoomToFit':
|
|
80880
|
+
this.zoomSvc.zoomReset();
|
|
80881
|
+
break;
|
|
80882
|
+
}
|
|
80883
|
+
}
|
|
80884
|
+
dispatchArrangeCommand(action) {
|
|
80885
|
+
switch (action) {
|
|
80886
|
+
case 'duplicate':
|
|
80887
|
+
this.editor.duplicateSelected(this.activeSlideIndex());
|
|
80888
|
+
break;
|
|
80889
|
+
}
|
|
80890
|
+
}
|
|
80245
80891
|
/**
|
|
80246
80892
|
* Serialise the edited deck (templates merged back) to `.pptx` bytes for an
|
|
80247
80893
|
* autosave recovery snapshot. Returns null when the deck is read-only so the
|
|
@@ -80393,6 +81039,7 @@ class PowerPointViewerComponent {
|
|
|
80393
81039
|
(undo)="editor.undo()"
|
|
80394
81040
|
(redo)="editor.redo()"
|
|
80395
81041
|
(toggleFindReplace)="toggleFindReplace()"
|
|
81042
|
+
(commandSearch)="handleCommandSearch($event)"
|
|
80396
81043
|
/>
|
|
80397
81044
|
<pptx-ribbon
|
|
80398
81045
|
[slideIndex]="activeSlideIndex()"
|
|
@@ -80945,7 +81592,7 @@ class PowerPointViewerComponent {
|
|
|
80945
81592
|
/>
|
|
80946
81593
|
}
|
|
80947
81594
|
</div>
|
|
80948
|
-
`, 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 });
|
|
81595
|
+
`, 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 });
|
|
80949
81596
|
}
|
|
80950
81597
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PowerPointViewerComponent, decorators: [{
|
|
80951
81598
|
type: Component,
|
|
@@ -81061,6 +81708,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
81061
81708
|
(undo)="editor.undo()"
|
|
81062
81709
|
(redo)="editor.redo()"
|
|
81063
81710
|
(toggleFindReplace)="toggleFindReplace()"
|
|
81711
|
+
(commandSearch)="handleCommandSearch($event)"
|
|
81064
81712
|
/>
|
|
81065
81713
|
<pptx-ribbon
|
|
81066
81714
|
[slideIndex]="activeSlideIndex()"
|
|
@@ -82057,7 +82705,13 @@ const translationsEn = {
|
|
|
82057
82705
|
'pptx.titleBar.savedToThisPc': 'Saved to this PC',
|
|
82058
82706
|
'pptx.titleBar.defaultFileName': 'Presentation',
|
|
82059
82707
|
'pptx.titleBar.search': 'Search',
|
|
82708
|
+
'pptx.titleBar.searchPlaceholder': 'Tell me what you want to do',
|
|
82060
82709
|
'pptx.titleBar.record': 'Record',
|
|
82710
|
+
'pptx.titleBar.searchCommands': 'Actions',
|
|
82711
|
+
'pptx.titleBar.searchContent': 'Find in Slides',
|
|
82712
|
+
'pptx.titleBar.searchHelp': 'Get Help on',
|
|
82713
|
+
'pptx.titleBar.searchNoResults': 'No results',
|
|
82714
|
+
'pptx.titleBar.searchRecent': 'Recent',
|
|
82061
82715
|
// Toolbar
|
|
82062
82716
|
'pptx.toolbar.toggleSlidesPanel': 'Toggle slides panel',
|
|
82063
82717
|
'pptx.toolbar.undo': 'Undo',
|
|
@@ -83674,6 +84328,12 @@ const translationsEn = {
|
|
|
83674
84328
|
'pptx.ribbon.duration': 'Duration:',
|
|
83675
84329
|
'pptx.ribbon.transitionDurationTitle': 'Transition duration in seconds',
|
|
83676
84330
|
'pptx.ribbon.applyTransitionToAll': 'Apply transition to all slides',
|
|
84331
|
+
'pptx.ribbon.advanceSlide': 'Advance Slide',
|
|
84332
|
+
'pptx.ribbon.onMouseClick': 'On Mouse Click',
|
|
84333
|
+
'pptx.ribbon.afterDuration': 'After:',
|
|
84334
|
+
'pptx.ribbon.advanceAfterSeconds': 'Advance after specified duration',
|
|
84335
|
+
'pptx.ribbon.sound': 'Sound:',
|
|
84336
|
+
'pptx.ribbon.soundNone': '[No Sound]',
|
|
83677
84337
|
'pptx.ribbon.inspector': 'Inspector',
|
|
83678
84338
|
'pptx.ribbon.openInspectorTransitions': 'Open Inspector for full transition options',
|
|
83679
84339
|
'pptx.ribbon.removeAnimation': 'Remove Animation',
|
|
@@ -83936,6 +84596,12 @@ const translationsEn = {
|
|
|
83936
84596
|
'pptx.review.spelling': 'Spelling',
|
|
83937
84597
|
'pptx.review.toggleComments': 'Toggle comments panel',
|
|
83938
84598
|
'pptx.review.toggleSpellCheck': 'Toggle spell check',
|
|
84599
|
+
'pptx.review.language': 'Language',
|
|
84600
|
+
'pptx.review.languageTooltip': 'Set proofing language',
|
|
84601
|
+
'pptx.review.accessibilityCheck': 'Check Accessibility',
|
|
84602
|
+
'pptx.review.accessibilityCheckTooltip': 'Check for accessibility issues',
|
|
84603
|
+
'pptx.review.translate': 'Translate',
|
|
84604
|
+
'pptx.review.translateTooltip': 'Translate selected text',
|
|
83939
84605
|
'pptx.shortcuts.action.cancelTextEdit': 'Cancel inline text / close menus',
|
|
83940
84606
|
'pptx.shortcuts.action.clearSelection': 'Clear selection / close menus / cancel edit',
|
|
83941
84607
|
'pptx.shortcuts.action.commitTextEdit': 'Commit inline text edit',
|
|
@@ -83990,6 +84656,12 @@ const translationsEn = {
|
|
|
83990
84656
|
'pptx.tableCell.edgeBorderColorAria': '{{edge}} border colour',
|
|
83991
84657
|
'pptx.tableCell.textColorAria': 'Text colour',
|
|
83992
84658
|
'pptx.text.bulletList': 'Bullet List',
|
|
84659
|
+
'pptx.text.changeCase': 'Change Case',
|
|
84660
|
+
'pptx.text.changeCaseSentence': 'Sentence case.',
|
|
84661
|
+
'pptx.text.changeCaseLower': 'lowercase',
|
|
84662
|
+
'pptx.text.changeCaseUpper': 'UPPERCASE',
|
|
84663
|
+
'pptx.text.changeCaseCapitalize': 'Capitalize Each Word',
|
|
84664
|
+
'pptx.text.changeCaseToggle': 'tOGGLE cASE',
|
|
83993
84665
|
'pptx.text.clearFormatting': 'Clear Formatting',
|
|
83994
84666
|
'pptx.text.decreaseFontSize': 'Decrease Font Size',
|
|
83995
84667
|
'pptx.text.decreaseIndent': 'Decrease Indent',
|