pptx-angular-viewer 1.6.0 → 1.7.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.
@@ -20327,7 +20327,7 @@ function buildParagraphs(element, fieldContext) {
20327
20327
  * value/label option lists into its own template / JSX.
20328
20328
  */
20329
20329
  /** Available text direction options (value/label pairs). */
20330
- const TEXT_DIRECTION_OPTIONS = [
20330
+ const TEXT_DIRECTION_OPTIONS$1 = [
20331
20331
  ['horizontal', 'Horizontal'],
20332
20332
  ['vertical', 'Vertical'],
20333
20333
  ['vertical270', 'Vertical 270'],
@@ -49350,7 +49350,7 @@ class TextAdvancedPanelComponent {
49350
49350
  /** Exposed option arrays for the template. */
49351
49351
  alignOptions = ALIGN_OPTIONS;
49352
49352
  vAlignOptions = VALIGN_OPTIONS;
49353
- textDirectionOptions = TEXT_DIRECTION_OPTIONS;
49353
+ textDirectionOptions = TEXT_DIRECTION_OPTIONS$1;
49354
49354
  // ── Short display label for alignment buttons ──────────────────────────────
49355
49355
  alignLabel(align) {
49356
49356
  switch (align) {
@@ -67261,6 +67261,260 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67261
67261
  }]
67262
67262
  }], propDecorators: { activeTool: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeTool", required: false }] }], drawingColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawingColor", required: false }] }], drawingWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawingWidth", required: false }] }], drawToolChange: [{ type: i0.Output, args: ["drawToolChange"] }] } });
67263
67263
 
67264
+ /**
67265
+ * ribbon-drawing-group.component.ts: Drawing group for the Home tab ribbon.
67266
+ * Provides shape insertion, layer arrangement, and shape formatting placeholders.
67267
+ */
67268
+ const SHAPE_PRESETS = [
67269
+ 'rectangle',
67270
+ 'roundedRectangle',
67271
+ 'ellipse',
67272
+ 'triangle',
67273
+ 'diamond',
67274
+ 'pentagon',
67275
+ 'hexagon',
67276
+ 'arrow',
67277
+ 'star5',
67278
+ 'heart',
67279
+ 'cloud',
67280
+ 'callout',
67281
+ ];
67282
+ class RibbonDrawingGroupComponent {
67283
+ canEdit = input(false, /* @ts-ignore */
67284
+ ...(ngDevMode ? [{ debugName: "canEdit" }] : /* istanbul ignore next */ []));
67285
+ shapeInsert = output();
67286
+ moveLayer = output();
67287
+ moveLayerToEdge = output();
67288
+ shapes = SHAPE_PRESETS;
67289
+ shapesOpen = signal(false, /* @ts-ignore */
67290
+ ...(ngDevMode ? [{ debugName: "shapesOpen" }] : /* istanbul ignore next */ []));
67291
+ arrangeOpen = signal(false, /* @ts-ignore */
67292
+ ...(ngDevMode ? [{ debugName: "arrangeOpen" }] : /* istanbul ignore next */ []));
67293
+ onShapeSelect(shape) {
67294
+ this.shapesOpen.set(false);
67295
+ this.shapeInsert.emit(shape);
67296
+ }
67297
+ onArrange(direction) {
67298
+ this.arrangeOpen.set(false);
67299
+ this.moveLayer.emit(direction);
67300
+ }
67301
+ onArrangeEdge(edge) {
67302
+ this.arrangeOpen.set(false);
67303
+ this.moveLayerToEdge.emit(edge);
67304
+ }
67305
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonDrawingGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RibbonDrawingGroupComponent, isStandalone: true, selector: "pptx-ribbon-drawing-group", inputs: { canEdit: { classPropertyName: "canEdit", publicName: "canEdit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { shapeInsert: "shapeInsert", moveLayer: "moveLayer", moveLayerToEdge: "moveLayerToEdge" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
67307
+ <!-- Shapes -->
67308
+ <div class="flex flex-col items-center gap-0.5">
67309
+ <div class="pptx-rb-grp">
67310
+ <div class="relative">
67311
+ <button
67312
+ type="button"
67313
+ class="pptx-rb-gb"
67314
+ [disabled]="!canEdit()"
67315
+ [title]="'pptx.ribbon.shapes' | translate"
67316
+ (click)="shapesOpen.set(!shapesOpen())"
67317
+ >
67318
+ {{ 'pptx.ribbon.shapes' | translate }} ▾
67319
+ </button>
67320
+ @if (shapesOpen()) {
67321
+ <div
67322
+ class="absolute left-0 top-full z-50 mt-0.5 grid grid-cols-4 gap-0.5 rounded border border-border bg-popover p-1 shadow-md"
67323
+ >
67324
+ @for (shape of shapes; track shape) {
67325
+ <button
67326
+ type="button"
67327
+ class="rounded px-1.5 py-0.5 text-[10px] hover:bg-accent"
67328
+ (click)="onShapeSelect(shape)"
67329
+ >
67330
+ {{ shape }}
67331
+ </button>
67332
+ }
67333
+ </div>
67334
+ }
67335
+ </div>
67336
+ <!-- Arrange -->
67337
+ <div class="relative">
67338
+ <button
67339
+ type="button"
67340
+ class="pptx-rb-gb"
67341
+ [disabled]="!canEdit()"
67342
+ [title]="'pptx.arrange.arrange' | translate"
67343
+ (click)="arrangeOpen.set(!arrangeOpen())"
67344
+ >
67345
+ {{ 'pptx.arrange.arrange' | translate }} ▾
67346
+ </button>
67347
+ @if (arrangeOpen()) {
67348
+ <div
67349
+ class="absolute left-0 top-full z-50 mt-0.5 flex flex-col rounded border border-border bg-popover p-1 shadow-md"
67350
+ >
67351
+ <button
67352
+ type="button"
67353
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67354
+ (click)="onArrange('up')"
67355
+ >
67356
+ {{ 'pptx.arrange.bringForward' | translate }}
67357
+ </button>
67358
+ <button
67359
+ type="button"
67360
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67361
+ (click)="onArrange('down')"
67362
+ >
67363
+ {{ 'pptx.arrange.sendBackward' | translate }}
67364
+ </button>
67365
+ <button
67366
+ type="button"
67367
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67368
+ (click)="onArrangeEdge('front')"
67369
+ >
67370
+ {{ 'pptx.arrange.bringToFront' | translate }}
67371
+ </button>
67372
+ <button
67373
+ type="button"
67374
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67375
+ (click)="onArrangeEdge('back')"
67376
+ >
67377
+ {{ 'pptx.arrange.sendToBack' | translate }}
67378
+ </button>
67379
+ </div>
67380
+ }
67381
+ </div>
67382
+ </div>
67383
+ <span class="text-[9px] leading-none text-muted-foreground">
67384
+ {{ 'pptx.ribbon.drawing' | translate }}
67385
+ </span>
67386
+ </div>
67387
+ <span class="pptx-rb-sep"></span>
67388
+ <!-- Shape formatting (placeholders) -->
67389
+ <div class="flex flex-col items-center gap-0.5">
67390
+ <div class="pptx-rb-grp">
67391
+ <button type="button" class="pptx-rb-gb" disabled>
67392
+ {{ 'pptx.ribbon.shapeFill' | translate }}
67393
+ </button>
67394
+ <button type="button" class="pptx-rb-gb" disabled>
67395
+ {{ 'pptx.ribbon.shapeOutline' | translate }}
67396
+ </button>
67397
+ <button type="button" class="pptx-rb-gb" disabled>
67398
+ {{ 'pptx.ribbon.shapeEffects' | translate }}
67399
+ </button>
67400
+ </div>
67401
+ <span class="text-[9px] leading-none text-muted-foreground">
67402
+ {{ 'pptx.ribbon.shapeStyles' | translate }}
67403
+ </span>
67404
+ </div>
67405
+ `, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67406
+ }
67407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonDrawingGroupComponent, decorators: [{
67408
+ type: Component,
67409
+ args: [{
67410
+ selector: 'pptx-ribbon-drawing-group',
67411
+ standalone: true,
67412
+ changeDetection: ChangeDetectionStrategy.OnPush,
67413
+ host: { class: 'contents' },
67414
+ imports: [TranslatePipe],
67415
+ template: `
67416
+ <!-- Shapes -->
67417
+ <div class="flex flex-col items-center gap-0.5">
67418
+ <div class="pptx-rb-grp">
67419
+ <div class="relative">
67420
+ <button
67421
+ type="button"
67422
+ class="pptx-rb-gb"
67423
+ [disabled]="!canEdit()"
67424
+ [title]="'pptx.ribbon.shapes' | translate"
67425
+ (click)="shapesOpen.set(!shapesOpen())"
67426
+ >
67427
+ {{ 'pptx.ribbon.shapes' | translate }} ▾
67428
+ </button>
67429
+ @if (shapesOpen()) {
67430
+ <div
67431
+ class="absolute left-0 top-full z-50 mt-0.5 grid grid-cols-4 gap-0.5 rounded border border-border bg-popover p-1 shadow-md"
67432
+ >
67433
+ @for (shape of shapes; track shape) {
67434
+ <button
67435
+ type="button"
67436
+ class="rounded px-1.5 py-0.5 text-[10px] hover:bg-accent"
67437
+ (click)="onShapeSelect(shape)"
67438
+ >
67439
+ {{ shape }}
67440
+ </button>
67441
+ }
67442
+ </div>
67443
+ }
67444
+ </div>
67445
+ <!-- Arrange -->
67446
+ <div class="relative">
67447
+ <button
67448
+ type="button"
67449
+ class="pptx-rb-gb"
67450
+ [disabled]="!canEdit()"
67451
+ [title]="'pptx.arrange.arrange' | translate"
67452
+ (click)="arrangeOpen.set(!arrangeOpen())"
67453
+ >
67454
+ {{ 'pptx.arrange.arrange' | translate }} ▾
67455
+ </button>
67456
+ @if (arrangeOpen()) {
67457
+ <div
67458
+ class="absolute left-0 top-full z-50 mt-0.5 flex flex-col rounded border border-border bg-popover p-1 shadow-md"
67459
+ >
67460
+ <button
67461
+ type="button"
67462
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67463
+ (click)="onArrange('up')"
67464
+ >
67465
+ {{ 'pptx.arrange.bringForward' | translate }}
67466
+ </button>
67467
+ <button
67468
+ type="button"
67469
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67470
+ (click)="onArrange('down')"
67471
+ >
67472
+ {{ 'pptx.arrange.sendBackward' | translate }}
67473
+ </button>
67474
+ <button
67475
+ type="button"
67476
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67477
+ (click)="onArrangeEdge('front')"
67478
+ >
67479
+ {{ 'pptx.arrange.bringToFront' | translate }}
67480
+ </button>
67481
+ <button
67482
+ type="button"
67483
+ class="whitespace-nowrap rounded px-2 py-0.5 text-left text-[11px] hover:bg-accent"
67484
+ (click)="onArrangeEdge('back')"
67485
+ >
67486
+ {{ 'pptx.arrange.sendToBack' | translate }}
67487
+ </button>
67488
+ </div>
67489
+ }
67490
+ </div>
67491
+ </div>
67492
+ <span class="text-[9px] leading-none text-muted-foreground">
67493
+ {{ 'pptx.ribbon.drawing' | translate }}
67494
+ </span>
67495
+ </div>
67496
+ <span class="pptx-rb-sep"></span>
67497
+ <!-- Shape formatting (placeholders) -->
67498
+ <div class="flex flex-col items-center gap-0.5">
67499
+ <div class="pptx-rb-grp">
67500
+ <button type="button" class="pptx-rb-gb" disabled>
67501
+ {{ 'pptx.ribbon.shapeFill' | translate }}
67502
+ </button>
67503
+ <button type="button" class="pptx-rb-gb" disabled>
67504
+ {{ 'pptx.ribbon.shapeOutline' | translate }}
67505
+ </button>
67506
+ <button type="button" class="pptx-rb-gb" disabled>
67507
+ {{ 'pptx.ribbon.shapeEffects' | translate }}
67508
+ </button>
67509
+ </div>
67510
+ <span class="text-[9px] leading-none text-muted-foreground">
67511
+ {{ 'pptx.ribbon.shapeStyles' | translate }}
67512
+ </span>
67513
+ </div>
67514
+ `,
67515
+ }]
67516
+ }], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], shapeInsert: [{ type: i0.Output, args: ["shapeInsert"] }], moveLayer: [{ type: i0.Output, args: ["moveLayer"] }], moveLayerToEdge: [{ type: i0.Output, args: ["moveLayerToEdge"] }] } });
67517
+
67264
67518
  /**
67265
67519
  * ribbon-file-section.component.ts: the File ribbon tab (Open/Save, PNG/PDF/GIF/
67266
67520
  * Video export group, Print/Properties/Signatures/Replace, Protect/Embed fonts/
@@ -67682,6 +67936,14 @@ const HIGHLIGHT_COLOR_PRESETS = [
67682
67936
  '#008000',
67683
67937
  '#800080',
67684
67938
  ];
67939
+ /** Character spacing presets (hundredths of a point, per OOXML `a:rPr/@spc`). */
67940
+ const CHAR_SPACING_OPTIONS = [
67941
+ { label: 'Very Tight', value: -300 },
67942
+ { label: 'Tight', value: -150 },
67943
+ { label: 'Normal', value: 0 },
67944
+ { label: 'Loose', value: 300 },
67945
+ { label: 'Very Loose', value: 600 },
67946
+ ];
67685
67947
  class RibbonFontControlsComponent {
67686
67948
  editor = inject(EditorStateService);
67687
67949
  slideIndex = input(0, /* @ts-ignore */
@@ -67692,6 +67954,7 @@ class RibbonFontControlsComponent {
67692
67954
  fontSizes = FONT_SIZES;
67693
67955
  fontColorPresets = FONT_COLOR_PRESETS;
67694
67956
  highlightColorPresets = HIGHLIGHT_COLOR_PRESETS;
67957
+ charSpacingOptions = CHAR_SPACING_OPTIONS;
67695
67958
  isText() {
67696
67959
  return isTextElement(this.selectedElement());
67697
67960
  }
@@ -67712,6 +67975,30 @@ class RibbonFontControlsComponent {
67712
67975
  curHighlight() {
67713
67976
  return this.curStyle()?.highlightColor ?? '#ffff00';
67714
67977
  }
67978
+ /** Current character spacing of the selection (for dropdown state). */
67979
+ curCharSpacing() {
67980
+ return this.curStyle()?.characterSpacing ?? 0;
67981
+ }
67982
+ toggleShadow() {
67983
+ const has = Boolean(this.curStyle()?.textShadowColor);
67984
+ this.patch(has
67985
+ ? {
67986
+ textShadowColor: undefined,
67987
+ textShadowBlur: undefined,
67988
+ textShadowOffsetX: undefined,
67989
+ textShadowOffsetY: undefined,
67990
+ }
67991
+ : {
67992
+ textShadowColor: '#000000',
67993
+ textShadowBlur: 4,
67994
+ textShadowOffsetX: 1,
67995
+ textShadowOffsetY: 1,
67996
+ textShadowOpacity: 0.5,
67997
+ });
67998
+ }
67999
+ setCharSpacing(event) {
68000
+ this.patch({ characterSpacing: Number(event.target.value) });
68001
+ }
67715
68002
  toggleStyle(key) {
67716
68003
  this.patch({ [key]: !this.curStyle()?.[key] });
67717
68004
  }
@@ -67842,6 +68129,30 @@ class RibbonFontControlsComponent {
67842
68129
  S
67843
68130
  </button>
67844
68131
  </div>
68132
+ <!-- Text Shadow toggle -->
68133
+ <button
68134
+ type="button"
68135
+ class="pptx-rb-gb"
68136
+ [disabled]="!isText()"
68137
+ [ngClass]="curStyle()?.textShadowColor ? 'bg-accent' : ''"
68138
+ [title]="'pptx.ribbon.textShadow' | translate"
68139
+ (click)="toggleShadow()"
68140
+ >
68141
+ Shadow
68142
+ </button>
68143
+ <!-- Character Spacing -->
68144
+ <select
68145
+ class="pptx-rb-select w-20"
68146
+ [attr.aria-label]="'pptx.ribbon.charSpacing' | translate"
68147
+ [disabled]="!isText()"
68148
+ (change)="setCharSpacing($event)"
68149
+ >
68150
+ @for (opt of charSpacingOptions; track opt.value) {
68151
+ <option [value]="opt.value" [selected]="opt.value === curCharSpacing()">
68152
+ {{ opt.label }}
68153
+ </option>
68154
+ }
68155
+ </select>
67845
68156
  <!-- Font colour popover -->
67846
68157
  <pptx-ribbon-color-popover
67847
68158
  [current]="curColor()"
@@ -67978,6 +68289,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67978
68289
  S
67979
68290
  </button>
67980
68291
  </div>
68292
+ <!-- Text Shadow toggle -->
68293
+ <button
68294
+ type="button"
68295
+ class="pptx-rb-gb"
68296
+ [disabled]="!isText()"
68297
+ [ngClass]="curStyle()?.textShadowColor ? 'bg-accent' : ''"
68298
+ [title]="'pptx.ribbon.textShadow' | translate"
68299
+ (click)="toggleShadow()"
68300
+ >
68301
+ Shadow
68302
+ </button>
68303
+ <!-- Character Spacing -->
68304
+ <select
68305
+ class="pptx-rb-select w-20"
68306
+ [attr.aria-label]="'pptx.ribbon.charSpacing' | translate"
68307
+ [disabled]="!isText()"
68308
+ (change)="setCharSpacing($event)"
68309
+ >
68310
+ @for (opt of charSpacingOptions; track opt.value) {
68311
+ <option [value]="opt.value" [selected]="opt.value === curCharSpacing()">
68312
+ {{ opt.label }}
68313
+ </option>
68314
+ }
68315
+ </select>
67981
68316
  <!-- Font colour popover -->
67982
68317
  <pptx-ribbon-color-popover
67983
68318
  [current]="curColor()"
@@ -68014,24 +68349,127 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68014
68349
  }]
68015
68350
  }], propDecorators: { slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }] } });
68016
68351
 
68352
+ /**
68353
+ * ribbon-editing-section.component.ts: the Editing group in the Home ribbon tab
68354
+ * (Find, Replace, Select All). Mirrors the React EditingSection and Vue
68355
+ * EditingSection components.
68356
+ */
68357
+ class RibbonEditingSectionComponent {
68358
+ toggleFindReplace = output();
68359
+ selectAll = output();
68360
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonEditingSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68361
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: RibbonEditingSectionComponent, isStandalone: true, selector: "pptx-ribbon-editing-section", outputs: { toggleFindReplace: "toggleFindReplace", selectAll: "selectAll" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
68362
+ <div class="pptx-rb-grp">
68363
+ <button
68364
+ type="button"
68365
+ class="pptx-rb-gb"
68366
+ [title]="'pptx.ribbon.find' | translate"
68367
+ (click)="toggleFindReplace.emit()"
68368
+ >
68369
+ {{ 'pptx.ribbon.find' | translate }}
68370
+ </button>
68371
+ <button
68372
+ type="button"
68373
+ class="pptx-rb-gb"
68374
+ [title]="'pptx.ribbon.replace' | translate"
68375
+ (click)="toggleFindReplace.emit()"
68376
+ >
68377
+ {{ 'pptx.ribbon.replace' | translate }}
68378
+ </button>
68379
+ <button
68380
+ type="button"
68381
+ class="pptx-rb-gl"
68382
+ [title]="'pptx.ribbon.selectAll' | translate"
68383
+ (click)="selectAll.emit()"
68384
+ >
68385
+ {{ 'pptx.ribbon.selectAll' | translate }}
68386
+ </button>
68387
+ </div>
68388
+ `, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68389
+ }
68390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonEditingSectionComponent, decorators: [{
68391
+ type: Component,
68392
+ args: [{
68393
+ selector: 'pptx-ribbon-editing-section',
68394
+ standalone: true,
68395
+ changeDetection: ChangeDetectionStrategy.OnPush,
68396
+ host: { class: 'contents' },
68397
+ imports: [TranslatePipe],
68398
+ template: `
68399
+ <div class="pptx-rb-grp">
68400
+ <button
68401
+ type="button"
68402
+ class="pptx-rb-gb"
68403
+ [title]="'pptx.ribbon.find' | translate"
68404
+ (click)="toggleFindReplace.emit()"
68405
+ >
68406
+ {{ 'pptx.ribbon.find' | translate }}
68407
+ </button>
68408
+ <button
68409
+ type="button"
68410
+ class="pptx-rb-gb"
68411
+ [title]="'pptx.ribbon.replace' | translate"
68412
+ (click)="toggleFindReplace.emit()"
68413
+ >
68414
+ {{ 'pptx.ribbon.replace' | translate }}
68415
+ </button>
68416
+ <button
68417
+ type="button"
68418
+ class="pptx-rb-gl"
68419
+ [title]="'pptx.ribbon.selectAll' | translate"
68420
+ (click)="selectAll.emit()"
68421
+ >
68422
+ {{ 'pptx.ribbon.selectAll' | translate }}
68423
+ </button>
68424
+ </div>
68425
+ `,
68426
+ }]
68427
+ }], propDecorators: { toggleFindReplace: [{ type: i0.Output, args: ["toggleFindReplace"] }], selectAll: [{ type: i0.Output, args: ["selectAll"] }] } });
68428
+
68017
68429
  /**
68018
68430
  * ribbon-paragraph-controls.component.ts: the ribbon's reusable Paragraph control
68019
68431
  * group (bullet/numbered lists, indent/outdent, and alignment). Split out of
68020
68432
  * {@link RibbonComponent}'s `paragraphControls` ng-template so the Home and Text
68021
68433
  * tabs share one implementation. Behaviour and markup are unchanged.
68022
68434
  */
68435
+ /** Line spacing multiplier presets. */
68436
+ const LINE_SPACING_OPTIONS = [1.0, 1.15, 1.5, 2.0, 2.5, 3.0];
68437
+ /** Text direction presets (mirrors React/Vue). */
68438
+ const TEXT_DIRECTION_OPTIONS = [
68439
+ { label: 'Horizontal', value: 'horizontal' },
68440
+ { label: 'Rotate 90\u00B0', value: 'vertical' },
68441
+ { label: 'Rotate 270\u00B0', value: 'vertical270' },
68442
+ { label: 'Stacked', value: 'wordArtVert' },
68443
+ ];
68444
+ /** Column count presets. */
68445
+ const COLUMN_OPTIONS = [1, 2, 3];
68023
68446
  class RibbonParagraphControlsComponent {
68024
68447
  editor = inject(EditorStateService);
68025
68448
  slideIndex = input(0, /* @ts-ignore */
68026
68449
  ...(ngDevMode ? [{ debugName: "slideIndex" }] : /* istanbul ignore next */ []));
68027
68450
  selectedElement = input(null, /* @ts-ignore */
68028
68451
  ...(ngDevMode ? [{ debugName: "selectedElement" }] : /* istanbul ignore next */ []));
68452
+ lineSpacingOptions = LINE_SPACING_OPTIONS;
68453
+ textDirectionOptions = TEXT_DIRECTION_OPTIONS;
68454
+ columnOptions = COLUMN_OPTIONS;
68029
68455
  isText() {
68030
68456
  return isTextElement(this.selectedElement());
68031
68457
  }
68032
68458
  /** Current text style of the selection (for active-state highlighting). */
68033
68459
  curStyle = computed(() => textStyleOf(this.selectedElement()), /* @ts-ignore */
68034
68460
  ...(ngDevMode ? [{ debugName: "curStyle" }] : /* istanbul ignore next */ []));
68461
+ /** Current line spacing multiplier. */
68462
+ curLineSpacing() {
68463
+ return this.curStyle()?.lineSpacing ?? 1.0;
68464
+ }
68465
+ /** Current text direction. */
68466
+ curTextDirection() {
68467
+ return this.curStyle()?.textDirection ?? 'horizontal';
68468
+ }
68469
+ /** Current column count. */
68470
+ curColumns() {
68471
+ return this.curStyle()?.columnCount ?? 1;
68472
+ }
68035
68473
  /** Toggle the paragraph list style (bullet / numbered) off when already set. */
68036
68474
  toggleList(kind) {
68037
68475
  this.patch({ listType: this.curStyle()?.listType === kind ? 'none' : kind });
@@ -68044,11 +68482,20 @@ class RibbonParagraphControlsComponent {
68044
68482
  setAlign(align) {
68045
68483
  this.patch({ align });
68046
68484
  }
68485
+ setLineSpacing(event) {
68486
+ this.patch({ lineSpacing: Number(event.target.value) });
68487
+ }
68488
+ setTextDirection(event) {
68489
+ this.patch({ textDirection: event.target.value });
68490
+ }
68491
+ setColumns(event) {
68492
+ this.patch({ columnCount: Number(event.target.value) });
68493
+ }
68047
68494
  patch(patch) {
68048
68495
  patchTextStyle(this.editor, this.slideIndex(), this.selectedElement(), patch);
68049
68496
  }
68050
68497
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonParagraphControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68051
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RibbonParagraphControlsComponent, isStandalone: true, selector: "pptx-ribbon-paragraph-controls", inputs: { slideIndex: { classPropertyName: "slideIndex", publicName: "slideIndex", isSignal: true, isRequired: false, transformFunction: null }, selectedElement: { classPropertyName: "selectedElement", publicName: "selectedElement", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "contents" }, ngImport: i0, template: `
68498
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RibbonParagraphControlsComponent, isStandalone: true, selector: "pptx-ribbon-paragraph-controls", inputs: { slideIndex: { classPropertyName: "slideIndex", publicName: "slideIndex", isSignal: true, isRequired: false, transformFunction: null }, selectedElement: { classPropertyName: "selectedElement", publicName: "selectedElement", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "contents" }, ngImport: i0, template: `
68052
68499
  <!-- List style: bullets + numbering -->
68053
68500
  <div class="pptx-rb-grp">
68054
68501
  <button
@@ -68136,6 +68583,41 @@ class RibbonParagraphControlsComponent {
68136
68583
 
68137
68584
  </button>
68138
68585
  </div>
68586
+ <!-- Line Spacing -->
68587
+ <select
68588
+ class="pptx-rb-select w-14"
68589
+ [attr.aria-label]="'pptx.ribbon.lineSpacing' | translate"
68590
+ [disabled]="!isText()"
68591
+ (change)="setLineSpacing($event)"
68592
+ >
68593
+ @for (ls of lineSpacingOptions; track ls) {
68594
+ <option [value]="ls" [selected]="ls === curLineSpacing()">{{ ls }}</option>
68595
+ }
68596
+ </select>
68597
+ <!-- Text Direction -->
68598
+ <select
68599
+ class="pptx-rb-select w-24"
68600
+ [attr.aria-label]="'pptx.ribbon.textDirection' | translate"
68601
+ [disabled]="!isText()"
68602
+ (change)="setTextDirection($event)"
68603
+ >
68604
+ @for (dir of textDirectionOptions; track dir.value) {
68605
+ <option [value]="dir.value" [selected]="dir.value === curTextDirection()">
68606
+ {{ dir.label }}
68607
+ </option>
68608
+ }
68609
+ </select>
68610
+ <!-- Columns -->
68611
+ <select
68612
+ class="pptx-rb-select w-12"
68613
+ [attr.aria-label]="'pptx.ribbon.columns' | translate"
68614
+ [disabled]="!isText()"
68615
+ (change)="setColumns($event)"
68616
+ >
68617
+ @for (c of columnOptions; track c) {
68618
+ <option [value]="c" [selected]="c === curColumns()">{{ c }}</option>
68619
+ }
68620
+ </select>
68139
68621
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68140
68622
  }
68141
68623
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonParagraphControlsComponent, decorators: [{
@@ -68234,6 +68716,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68234
68716
 
68235
68717
  </button>
68236
68718
  </div>
68719
+ <!-- Line Spacing -->
68720
+ <select
68721
+ class="pptx-rb-select w-14"
68722
+ [attr.aria-label]="'pptx.ribbon.lineSpacing' | translate"
68723
+ [disabled]="!isText()"
68724
+ (change)="setLineSpacing($event)"
68725
+ >
68726
+ @for (ls of lineSpacingOptions; track ls) {
68727
+ <option [value]="ls" [selected]="ls === curLineSpacing()">{{ ls }}</option>
68728
+ }
68729
+ </select>
68730
+ <!-- Text Direction -->
68731
+ <select
68732
+ class="pptx-rb-select w-24"
68733
+ [attr.aria-label]="'pptx.ribbon.textDirection' | translate"
68734
+ [disabled]="!isText()"
68735
+ (change)="setTextDirection($event)"
68736
+ >
68737
+ @for (dir of textDirectionOptions; track dir.value) {
68738
+ <option [value]="dir.value" [selected]="dir.value === curTextDirection()">
68739
+ {{ dir.label }}
68740
+ </option>
68741
+ }
68742
+ </select>
68743
+ <!-- Columns -->
68744
+ <select
68745
+ class="pptx-rb-select w-12"
68746
+ [attr.aria-label]="'pptx.ribbon.columns' | translate"
68747
+ [disabled]="!isText()"
68748
+ (change)="setColumns($event)"
68749
+ >
68750
+ @for (c of columnOptions; track c) {
68751
+ <option [value]="c" [selected]="c === curColumns()">{{ c }}</option>
68752
+ }
68753
+ </select>
68237
68754
  `,
68238
68755
  }]
68239
68756
  }], propDecorators: { slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }] } });
@@ -68255,6 +68772,10 @@ class RibbonHomeSectionComponent {
68255
68772
  canActivateFormatPainter = input(false, /* @ts-ignore */
68256
68773
  ...(ngDevMode ? [{ debugName: "canActivateFormatPainter" }] : /* istanbul ignore next */ []));
68257
68774
  toggleFormatPainter = output();
68775
+ findReplace = output();
68776
+ applyLayout = output();
68777
+ resetSlide = output();
68778
+ addSection = output();
68258
68779
  hasSel() {
68259
68780
  return this.editor.selectedIds().length > 0;
68260
68781
  }
@@ -68267,8 +68788,11 @@ class RibbonHomeSectionComponent {
68267
68788
  paste() {
68268
68789
  this.editor.paste(this.slideIndex());
68269
68790
  }
68791
+ onSelectAll() {
68792
+ this.editor.selectAll(this.slideIndex());
68793
+ }
68270
68794
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonHomeSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68271
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RibbonHomeSectionComponent, isStandalone: true, selector: "pptx-ribbon-home-section", inputs: { slideIndex: { classPropertyName: "slideIndex", publicName: "slideIndex", isSignal: true, isRequired: false, transformFunction: null }, selectedElement: { classPropertyName: "selectedElement", publicName: "selectedElement", isSignal: true, isRequired: false, transformFunction: null }, formatPainterActive: { classPropertyName: "formatPainterActive", publicName: "formatPainterActive", isSignal: true, isRequired: false, transformFunction: null }, canActivateFormatPainter: { classPropertyName: "canActivateFormatPainter", publicName: "canActivateFormatPainter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleFormatPainter: "toggleFormatPainter" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
68795
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RibbonHomeSectionComponent, isStandalone: true, selector: "pptx-ribbon-home-section", inputs: { slideIndex: { classPropertyName: "slideIndex", publicName: "slideIndex", isSignal: true, isRequired: false, transformFunction: null }, selectedElement: { classPropertyName: "selectedElement", publicName: "selectedElement", isSignal: true, isRequired: false, transformFunction: null }, formatPainterActive: { classPropertyName: "formatPainterActive", publicName: "formatPainterActive", isSignal: true, isRequired: false, transformFunction: null }, canActivateFormatPainter: { classPropertyName: "canActivateFormatPainter", publicName: "canActivateFormatPainter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleFormatPainter: "toggleFormatPainter", findReplace: "findReplace", applyLayout: "applyLayout", resetSlide: "resetSlide", addSection: "addSection" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
68272
68796
  <!-- Clipboard -->
68273
68797
  <div class="flex flex-col items-center gap-0.5">
68274
68798
  <div class="pptx-rb-grp">
@@ -68335,6 +68859,30 @@ class RibbonHomeSectionComponent {
68335
68859
  >
68336
68860
  {{ 'pptx.arrange.duplicate' | translate }}
68337
68861
  </button>
68862
+ <button
68863
+ type="button"
68864
+ class="pptx-rb-gb"
68865
+ [title]="'pptx.ribbon.layout' | translate"
68866
+ (click)="applyLayout.emit('blank')"
68867
+ >
68868
+ {{ 'pptx.ribbon.layout' | translate }}
68869
+ </button>
68870
+ <button
68871
+ type="button"
68872
+ class="pptx-rb-gb"
68873
+ [title]="'pptx.ribbon.resetSlide' | translate"
68874
+ (click)="resetSlide.emit()"
68875
+ >
68876
+ {{ 'pptx.ribbon.resetSlide' | translate }}
68877
+ </button>
68878
+ <button
68879
+ type="button"
68880
+ class="pptx-rb-gb"
68881
+ [title]="'pptx.ribbon.section' | translate"
68882
+ (click)="addSection.emit()"
68883
+ >
68884
+ {{ 'pptx.ribbon.section' | translate }}
68885
+ </button>
68338
68886
  </div>
68339
68887
  <span class="text-[9px] leading-none text-muted-foreground">
68340
68888
  {{ 'pptx.sections.slides' | translate }}
@@ -68366,7 +68914,18 @@ class RibbonHomeSectionComponent {
68366
68914
  {{ 'pptx.ribbon.paragraph' | translate }}
68367
68915
  </span>
68368
68916
  </div>
68369
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68917
+ <span class="pptx-rb-sep"></span>
68918
+ <!-- Editing -->
68919
+ <div class="flex flex-col items-center gap-0.5">
68920
+ <pptx-ribbon-editing-section
68921
+ (toggleFindReplace)="findReplace.emit()"
68922
+ (selectAll)="onSelectAll()"
68923
+ />
68924
+ <span class="text-[9px] leading-none text-muted-foreground">
68925
+ {{ 'pptx.ribbon.editing' | translate }}
68926
+ </span>
68927
+ </div>
68928
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: RibbonEditingSectionComponent, selector: "pptx-ribbon-editing-section", outputs: ["toggleFindReplace", "selectAll"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68370
68929
  }
68371
68930
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonHomeSectionComponent, decorators: [{
68372
68931
  type: Component,
@@ -68375,7 +68934,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68375
68934
  standalone: true,
68376
68935
  changeDetection: ChangeDetectionStrategy.OnPush,
68377
68936
  host: { class: 'contents' },
68378
- imports: [NgClass, TranslatePipe, RibbonFontControlsComponent, RibbonParagraphControlsComponent],
68937
+ imports: [
68938
+ NgClass,
68939
+ TranslatePipe,
68940
+ RibbonFontControlsComponent,
68941
+ RibbonParagraphControlsComponent,
68942
+ RibbonEditingSectionComponent,
68943
+ ],
68379
68944
  template: `
68380
68945
  <!-- Clipboard -->
68381
68946
  <div class="flex flex-col items-center gap-0.5">
@@ -68443,6 +69008,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68443
69008
  >
68444
69009
  {{ 'pptx.arrange.duplicate' | translate }}
68445
69010
  </button>
69011
+ <button
69012
+ type="button"
69013
+ class="pptx-rb-gb"
69014
+ [title]="'pptx.ribbon.layout' | translate"
69015
+ (click)="applyLayout.emit('blank')"
69016
+ >
69017
+ {{ 'pptx.ribbon.layout' | translate }}
69018
+ </button>
69019
+ <button
69020
+ type="button"
69021
+ class="pptx-rb-gb"
69022
+ [title]="'pptx.ribbon.resetSlide' | translate"
69023
+ (click)="resetSlide.emit()"
69024
+ >
69025
+ {{ 'pptx.ribbon.resetSlide' | translate }}
69026
+ </button>
69027
+ <button
69028
+ type="button"
69029
+ class="pptx-rb-gb"
69030
+ [title]="'pptx.ribbon.section' | translate"
69031
+ (click)="addSection.emit()"
69032
+ >
69033
+ {{ 'pptx.ribbon.section' | translate }}
69034
+ </button>
68446
69035
  </div>
68447
69036
  <span class="text-[9px] leading-none text-muted-foreground">
68448
69037
  {{ 'pptx.sections.slides' | translate }}
@@ -68474,9 +69063,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68474
69063
  {{ 'pptx.ribbon.paragraph' | translate }}
68475
69064
  </span>
68476
69065
  </div>
69066
+ <span class="pptx-rb-sep"></span>
69067
+ <!-- Editing -->
69068
+ <div class="flex flex-col items-center gap-0.5">
69069
+ <pptx-ribbon-editing-section
69070
+ (toggleFindReplace)="findReplace.emit()"
69071
+ (selectAll)="onSelectAll()"
69072
+ />
69073
+ <span class="text-[9px] leading-none text-muted-foreground">
69074
+ {{ 'pptx.ribbon.editing' | translate }}
69075
+ </span>
69076
+ </div>
68477
69077
  `,
68478
69078
  }]
68479
- }], propDecorators: { slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }], formatPainterActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatPainterActive", required: false }] }], canActivateFormatPainter: [{ type: i0.Input, args: [{ isSignal: true, alias: "canActivateFormatPainter", required: false }] }], toggleFormatPainter: [{ type: i0.Output, args: ["toggleFormatPainter"] }] } });
69079
+ }], propDecorators: { slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }], formatPainterActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatPainterActive", required: false }] }], canActivateFormatPainter: [{ type: i0.Input, args: [{ isSignal: true, alias: "canActivateFormatPainter", required: false }] }], toggleFormatPainter: [{ type: i0.Output, args: ["toggleFormatPainter"] }], findReplace: [{ type: i0.Output, args: ["findReplace"] }], applyLayout: [{ type: i0.Output, args: ["applyLayout"] }], resetSlide: [{ type: i0.Output, args: ["resetSlide"] }], addSection: [{ type: i0.Output, args: ["addSection"] }] } });
68480
69080
 
68481
69081
  /**
68482
69082
  * ribbon-insert-fields.component.ts: the Insert tab's "Action" and "Field"
@@ -70308,13 +70908,12 @@ const TABS = [
70308
70908
  { id: 'file', labelKey: 'pptx.ribbon.tab.file' },
70309
70909
  { id: 'home', labelKey: 'pptx.ribbon.tab.home' },
70310
70910
  { id: 'insert', labelKey: 'pptx.ribbon.tab.insert' },
70311
- { id: 'text', labelKey: 'pptx.ribbon.tab.text' },
70312
70911
  { id: 'draw', labelKey: 'pptx.ribbon.tab.draw' },
70313
- { id: 'arrange', labelKey: 'pptx.ribbon.tab.arrange' },
70314
70912
  { id: 'design', labelKey: 'pptx.ribbon.tab.design' },
70315
70913
  { id: 'transitions', labelKey: 'pptx.ribbon.tab.transitions' },
70316
70914
  { id: 'animations', labelKey: 'pptx.ribbon.tab.animations' },
70317
70915
  { id: 'slideShow', labelKey: 'pptx.ribbon.tab.slideShow' },
70916
+ { id: 'record', labelKey: 'pptx.ribbon.tab.record' },
70318
70917
  { id: 'review', labelKey: 'pptx.ribbon.tab.review' },
70319
70918
  { id: 'view', labelKey: 'pptx.ribbon.tab.view' },
70320
70919
  { id: 'help', labelKey: 'pptx.ribbon.tab.help' },
@@ -70459,6 +71058,12 @@ class RibbonComponent {
70459
71058
  openVersionHistory = output();
70460
71059
  /** Emitted when the user clicks "Shortcuts" in the Help tab. */
70461
71060
  openShortcuts = output();
71061
+ /** Emitted when a shape is inserted from the Drawing group. */
71062
+ shapeInsert = output();
71063
+ /** Emitted when the user reorders an element layer (up/down). */
71064
+ moveLayer = output();
71065
+ /** Emitted when the user moves an element to front/back. */
71066
+ moveLayerToEdge = output();
70462
71067
  tabs = TABS;
70463
71068
  /** Shared class tokens for the tab-row Record button. */
70464
71069
  tra = TAB_ROW_ACTION_CLASSES;
@@ -70494,7 +71099,7 @@ class RibbonComponent {
70494
71099
  this.drawToolChange.emit(state);
70495
71100
  }
70496
71101
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
70497
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RibbonComponent, isStandalone: true, selector: "pptx-ribbon", inputs: { slideIndex: { classPropertyName: "slideIndex", publicName: "slideIndex", isSignal: true, isRequired: false, transformFunction: null }, slideCount: { classPropertyName: "slideCount", publicName: "slideCount", isSignal: true, isRequired: false, transformFunction: null }, canEdit: { classPropertyName: "canEdit", publicName: "canEdit", isSignal: true, isRequired: false, transformFunction: null }, selectedElement: { classPropertyName: "selectedElement", publicName: "selectedElement", isSignal: true, isRequired: false, transformFunction: null }, zoomPercent: { classPropertyName: "zoomPercent", publicName: "zoomPercent", isSignal: true, isRequired: false, transformFunction: null }, formatPainterActive: { classPropertyName: "formatPainterActive", publicName: "formatPainterActive", isSignal: true, isRequired: false, transformFunction: null }, canActivateFormatPainter: { classPropertyName: "canActivateFormatPainter", publicName: "canActivateFormatPainter", isSignal: true, isRequired: false, transformFunction: null }, exporting: { classPropertyName: "exporting", publicName: "exporting", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, showRulers: { classPropertyName: "showRulers", publicName: "showRulers", isSignal: true, isRequired: false, transformFunction: null }, showGuides: { classPropertyName: "showGuides", publicName: "showGuides", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null }, eyedropperActive: { classPropertyName: "eyedropperActive", publicName: "eyedropperActive", isSignal: true, isRequired: false, transformFunction: null }, themeGalleryOpen: { classPropertyName: "themeGalleryOpen", publicName: "themeGalleryOpen", isSignal: true, isRequired: false, transformFunction: null }, sidebarCollapsed: { classPropertyName: "sidebarCollapsed", publicName: "sidebarCollapsed", isSignal: true, isRequired: false, transformFunction: null }, inspectorOpen: { classPropertyName: "inspectorOpen", publicName: "inspectorOpen", isSignal: true, isRequired: false, transformFunction: null }, commentsOpen: { classPropertyName: "commentsOpen", publicName: "commentsOpen", isSignal: true, isRequired: false, transformFunction: null }, commentCount: { classPropertyName: "commentCount", publicName: "commentCount", isSignal: true, isRequired: false, transformFunction: null }, findOpen: { classPropertyName: "findOpen", publicName: "findOpen", isSignal: true, isRequired: false, transformFunction: null }, collabConnected: { classPropertyName: "collabConnected", publicName: "collabConnected", isSignal: true, isRequired: false, transformFunction: null }, connectedCount: { classPropertyName: "connectedCount", publicName: "connectedCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { prev: "prev", next: "next", zoomIn: "zoomIn", zoomOut: "zoomOut", zoomReset: "zoomReset", find: "find", present: "present", presenter: "presenter", record: "record", share: "share", broadcast: "broadcast", openFile: "openFile", save: "save", toggleSidebar: "toggleSidebar", signatures: "signatures", info: "info", print: "print", comments: "comments", a11y: "a11y", link: "link", openSorter: "openSorter", toggleNotes: "toggleNotes", toggleFormatPainter: "toggleFormatPainter", exportPng: "exportPng", exportPdf: "exportPdf", exportGif: "exportGif", exportVideo: "exportVideo", replace: "replace", toggleInspector: "toggleInspector", drawToolChange: "drawToolChange", toggleThemeGallery: "toggleThemeGallery", toggleGrid: "toggleGrid", toggleRulers: "toggleRulers", toggleGuides: "toggleGuides", toggleSelectionPane: "toggleSelectionPane", openCustomShows: "openCustomShows", toggleSnapToGrid: "toggleSnapToGrid", toggleEyedropper: "toggleEyedropper", openSmartArtDialog: "openSmartArtDialog", openEquationDialog: "openEquationDialog", openSetUpSlideShow: "openSetUpSlideShow", openCompare: "openCompare", openPassword: "openPassword", openFontEmbedding: "openFontEmbedding", openVersionHistory: "openVersionHistory", openShortcuts: "openShortcuts" }, ngImport: i0, template: `
71102
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: RibbonComponent, isStandalone: true, selector: "pptx-ribbon", inputs: { slideIndex: { classPropertyName: "slideIndex", publicName: "slideIndex", isSignal: true, isRequired: false, transformFunction: null }, slideCount: { classPropertyName: "slideCount", publicName: "slideCount", isSignal: true, isRequired: false, transformFunction: null }, canEdit: { classPropertyName: "canEdit", publicName: "canEdit", isSignal: true, isRequired: false, transformFunction: null }, selectedElement: { classPropertyName: "selectedElement", publicName: "selectedElement", isSignal: true, isRequired: false, transformFunction: null }, zoomPercent: { classPropertyName: "zoomPercent", publicName: "zoomPercent", isSignal: true, isRequired: false, transformFunction: null }, formatPainterActive: { classPropertyName: "formatPainterActive", publicName: "formatPainterActive", isSignal: true, isRequired: false, transformFunction: null }, canActivateFormatPainter: { classPropertyName: "canActivateFormatPainter", publicName: "canActivateFormatPainter", isSignal: true, isRequired: false, transformFunction: null }, exporting: { classPropertyName: "exporting", publicName: "exporting", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, showRulers: { classPropertyName: "showRulers", publicName: "showRulers", isSignal: true, isRequired: false, transformFunction: null }, showGuides: { classPropertyName: "showGuides", publicName: "showGuides", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null }, eyedropperActive: { classPropertyName: "eyedropperActive", publicName: "eyedropperActive", isSignal: true, isRequired: false, transformFunction: null }, themeGalleryOpen: { classPropertyName: "themeGalleryOpen", publicName: "themeGalleryOpen", isSignal: true, isRequired: false, transformFunction: null }, sidebarCollapsed: { classPropertyName: "sidebarCollapsed", publicName: "sidebarCollapsed", isSignal: true, isRequired: false, transformFunction: null }, inspectorOpen: { classPropertyName: "inspectorOpen", publicName: "inspectorOpen", isSignal: true, isRequired: false, transformFunction: null }, commentsOpen: { classPropertyName: "commentsOpen", publicName: "commentsOpen", isSignal: true, isRequired: false, transformFunction: null }, commentCount: { classPropertyName: "commentCount", publicName: "commentCount", isSignal: true, isRequired: false, transformFunction: null }, findOpen: { classPropertyName: "findOpen", publicName: "findOpen", isSignal: true, isRequired: false, transformFunction: null }, collabConnected: { classPropertyName: "collabConnected", publicName: "collabConnected", isSignal: true, isRequired: false, transformFunction: null }, connectedCount: { classPropertyName: "connectedCount", publicName: "connectedCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { prev: "prev", next: "next", zoomIn: "zoomIn", zoomOut: "zoomOut", zoomReset: "zoomReset", find: "find", present: "present", presenter: "presenter", record: "record", share: "share", broadcast: "broadcast", openFile: "openFile", save: "save", toggleSidebar: "toggleSidebar", signatures: "signatures", info: "info", print: "print", comments: "comments", a11y: "a11y", link: "link", openSorter: "openSorter", toggleNotes: "toggleNotes", toggleFormatPainter: "toggleFormatPainter", exportPng: "exportPng", exportPdf: "exportPdf", exportGif: "exportGif", exportVideo: "exportVideo", replace: "replace", toggleInspector: "toggleInspector", drawToolChange: "drawToolChange", toggleThemeGallery: "toggleThemeGallery", toggleGrid: "toggleGrid", toggleRulers: "toggleRulers", toggleGuides: "toggleGuides", toggleSelectionPane: "toggleSelectionPane", openCustomShows: "openCustomShows", toggleSnapToGrid: "toggleSnapToGrid", toggleEyedropper: "toggleEyedropper", openSmartArtDialog: "openSmartArtDialog", openEquationDialog: "openEquationDialog", openSetUpSlideShow: "openSetUpSlideShow", openCompare: "openCompare", openPassword: "openPassword", openFontEmbedding: "openFontEmbedding", openVersionHistory: "openVersionHistory", openShortcuts: "openShortcuts", shapeInsert: "shapeInsert", moveLayer: "moveLayer", moveLayerToEdge: "moveLayerToEdge" }, ngImport: i0, template: `
70498
71103
  <div
70499
71104
  role="toolbar"
70500
71105
  aria-label="Presentation toolbar"
@@ -70627,6 +71232,24 @@ class RibbonComponent {
70627
71232
  [formatPainterActive]="formatPainterActive()"
70628
71233
  [canActivateFormatPainter]="canActivateFormatPainter()"
70629
71234
  (toggleFormatPainter)="toggleFormatPainter.emit()"
71235
+ (findReplace)="find.emit()"
71236
+ />
71237
+ <span class="pptx-rb-sep"></span>
71238
+ <pptx-ribbon-font-controls
71239
+ [slideIndex]="slideIndex()"
71240
+ [selectedElement]="selectedElement()"
71241
+ />
71242
+ <span class="pptx-rb-sep"></span>
71243
+ <pptx-ribbon-paragraph-controls
71244
+ [slideIndex]="slideIndex()"
71245
+ [selectedElement]="selectedElement()"
71246
+ />
71247
+ <span class="pptx-rb-sep"></span>
71248
+ <pptx-ribbon-drawing-group
71249
+ [canEdit]="canEdit()"
71250
+ (shapeInsert)="shapeInsert.emit($event)"
71251
+ (moveLayer)="moveLayer.emit($event)"
71252
+ (moveLayerToEdge)="moveLayerToEdge.emit($event)"
70630
71253
  />
70631
71254
  }
70632
71255
  @case ('insert') {
@@ -70735,10 +71358,16 @@ class RibbonComponent {
70735
71358
  {{ 'pptx.ribbon.accessibility' | translate }}
70736
71359
  </button>
70737
71360
  }
71361
+ @case ('record') {
71362
+ <div class="flex items-center gap-2 px-2 py-1 text-[12px] text-muted-foreground">
71363
+ <span class="text-red-500">&#x1F534;</span>
71364
+ <span>{{ 'pptx.titleBar.record' | translate }}</span>
71365
+ </div>
71366
+ }
70738
71367
  }
70739
71368
  </div>
70740
71369
  </div>
70741
- `, 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"] }, { 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: 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 });
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 });
70742
71371
  }
70743
71372
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonComponent, decorators: [{
70744
71373
  type: Component,
@@ -70760,6 +71389,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70760
71389
  RibbonReviewSectionComponent,
70761
71390
  RibbonViewSectionComponent,
70762
71391
  RibbonDrawSectionComponent,
71392
+ RibbonDrawingGroupComponent,
70763
71393
  RibbonDesignSectionComponent,
70764
71394
  RibbonTransitionsSectionComponent,
70765
71395
  RibbonAnimationsSectionComponent,
@@ -70897,6 +71527,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70897
71527
  [formatPainterActive]="formatPainterActive()"
70898
71528
  [canActivateFormatPainter]="canActivateFormatPainter()"
70899
71529
  (toggleFormatPainter)="toggleFormatPainter.emit()"
71530
+ (findReplace)="find.emit()"
71531
+ />
71532
+ <span class="pptx-rb-sep"></span>
71533
+ <pptx-ribbon-font-controls
71534
+ [slideIndex]="slideIndex()"
71535
+ [selectedElement]="selectedElement()"
71536
+ />
71537
+ <span class="pptx-rb-sep"></span>
71538
+ <pptx-ribbon-paragraph-controls
71539
+ [slideIndex]="slideIndex()"
71540
+ [selectedElement]="selectedElement()"
71541
+ />
71542
+ <span class="pptx-rb-sep"></span>
71543
+ <pptx-ribbon-drawing-group
71544
+ [canEdit]="canEdit()"
71545
+ (shapeInsert)="shapeInsert.emit($event)"
71546
+ (moveLayer)="moveLayer.emit($event)"
71547
+ (moveLayerToEdge)="moveLayerToEdge.emit($event)"
70900
71548
  />
70901
71549
  }
70902
71550
  @case ('insert') {
@@ -71005,12 +71653,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71005
71653
  {{ 'pptx.ribbon.accessibility' | translate }}
71006
71654
  </button>
71007
71655
  }
71656
+ @case ('record') {
71657
+ <div class="flex items-center gap-2 px-2 py-1 text-[12px] text-muted-foreground">
71658
+ <span class="text-red-500">&#x1F534;</span>
71659
+ <span>{{ 'pptx.titleBar.record' | translate }}</span>
71660
+ </div>
71661
+ }
71008
71662
  }
71009
71663
  </div>
71010
71664
  </div>
71011
71665
  `,
71012
71666
  }]
71013
- }], propDecorators: { slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], slideCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideCount", required: false }] }], canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }], zoomPercent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomPercent", required: false }] }], formatPainterActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatPainterActive", required: false }] }], canActivateFormatPainter: [{ type: i0.Input, args: [{ isSignal: true, alias: "canActivateFormatPainter", required: false }] }], exporting: [{ type: i0.Input, args: [{ isSignal: true, alias: "exporting", required: false }] }], showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], showRulers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRulers", required: false }] }], showGuides: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGuides", required: false }] }], snapToGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapToGrid", required: false }] }], eyedropperActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "eyedropperActive", required: false }] }], themeGalleryOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeGalleryOpen", required: false }] }], sidebarCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarCollapsed", required: false }] }], inspectorOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "inspectorOpen", required: false }] }], commentsOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "commentsOpen", required: false }] }], commentCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "commentCount", required: false }] }], findOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "findOpen", required: false }] }], collabConnected: [{ type: i0.Input, args: [{ isSignal: true, alias: "collabConnected", required: false }] }], connectedCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectedCount", required: false }] }], prev: [{ type: i0.Output, args: ["prev"] }], next: [{ type: i0.Output, args: ["next"] }], zoomIn: [{ type: i0.Output, args: ["zoomIn"] }], zoomOut: [{ type: i0.Output, args: ["zoomOut"] }], zoomReset: [{ type: i0.Output, args: ["zoomReset"] }], find: [{ type: i0.Output, args: ["find"] }], present: [{ type: i0.Output, args: ["present"] }], presenter: [{ type: i0.Output, args: ["presenter"] }], record: [{ type: i0.Output, args: ["record"] }], share: [{ type: i0.Output, args: ["share"] }], broadcast: [{ type: i0.Output, args: ["broadcast"] }], openFile: [{ type: i0.Output, args: ["openFile"] }], save: [{ type: i0.Output, args: ["save"] }], toggleSidebar: [{ type: i0.Output, args: ["toggleSidebar"] }], signatures: [{ type: i0.Output, args: ["signatures"] }], info: [{ type: i0.Output, args: ["info"] }], print: [{ type: i0.Output, args: ["print"] }], comments: [{ type: i0.Output, args: ["comments"] }], a11y: [{ type: i0.Output, args: ["a11y"] }], link: [{ type: i0.Output, args: ["link"] }], openSorter: [{ type: i0.Output, args: ["openSorter"] }], toggleNotes: [{ type: i0.Output, args: ["toggleNotes"] }], toggleFormatPainter: [{ type: i0.Output, args: ["toggleFormatPainter"] }], exportPng: [{ type: i0.Output, args: ["exportPng"] }], exportPdf: [{ type: i0.Output, args: ["exportPdf"] }], exportGif: [{ type: i0.Output, args: ["exportGif"] }], exportVideo: [{ type: i0.Output, args: ["exportVideo"] }], replace: [{ type: i0.Output, args: ["replace"] }], toggleInspector: [{ type: i0.Output, args: ["toggleInspector"] }], drawToolChange: [{ type: i0.Output, args: ["drawToolChange"] }], toggleThemeGallery: [{ type: i0.Output, args: ["toggleThemeGallery"] }], toggleGrid: [{ type: i0.Output, args: ["toggleGrid"] }], toggleRulers: [{ type: i0.Output, args: ["toggleRulers"] }], toggleGuides: [{ type: i0.Output, args: ["toggleGuides"] }], toggleSelectionPane: [{ type: i0.Output, args: ["toggleSelectionPane"] }], openCustomShows: [{ type: i0.Output, args: ["openCustomShows"] }], toggleSnapToGrid: [{ type: i0.Output, args: ["toggleSnapToGrid"] }], toggleEyedropper: [{ type: i0.Output, args: ["toggleEyedropper"] }], openSmartArtDialog: [{ type: i0.Output, args: ["openSmartArtDialog"] }], openEquationDialog: [{ type: i0.Output, args: ["openEquationDialog"] }], openSetUpSlideShow: [{ type: i0.Output, args: ["openSetUpSlideShow"] }], openCompare: [{ type: i0.Output, args: ["openCompare"] }], openPassword: [{ type: i0.Output, args: ["openPassword"] }], openFontEmbedding: [{ type: i0.Output, args: ["openFontEmbedding"] }], openVersionHistory: [{ type: i0.Output, args: ["openVersionHistory"] }], openShortcuts: [{ type: i0.Output, args: ["openShortcuts"] }] } });
71667
+ }], propDecorators: { slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], slideCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideCount", required: false }] }], canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }], zoomPercent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomPercent", required: false }] }], formatPainterActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatPainterActive", required: false }] }], canActivateFormatPainter: [{ type: i0.Input, args: [{ isSignal: true, alias: "canActivateFormatPainter", required: false }] }], exporting: [{ type: i0.Input, args: [{ isSignal: true, alias: "exporting", required: false }] }], showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], showRulers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRulers", required: false }] }], showGuides: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGuides", required: false }] }], snapToGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapToGrid", required: false }] }], eyedropperActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "eyedropperActive", required: false }] }], themeGalleryOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeGalleryOpen", required: false }] }], sidebarCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarCollapsed", required: false }] }], inspectorOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "inspectorOpen", required: false }] }], commentsOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "commentsOpen", required: false }] }], commentCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "commentCount", required: false }] }], findOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "findOpen", required: false }] }], collabConnected: [{ type: i0.Input, args: [{ isSignal: true, alias: "collabConnected", required: false }] }], connectedCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectedCount", required: false }] }], prev: [{ type: i0.Output, args: ["prev"] }], next: [{ type: i0.Output, args: ["next"] }], zoomIn: [{ type: i0.Output, args: ["zoomIn"] }], zoomOut: [{ type: i0.Output, args: ["zoomOut"] }], zoomReset: [{ type: i0.Output, args: ["zoomReset"] }], find: [{ type: i0.Output, args: ["find"] }], present: [{ type: i0.Output, args: ["present"] }], presenter: [{ type: i0.Output, args: ["presenter"] }], record: [{ type: i0.Output, args: ["record"] }], share: [{ type: i0.Output, args: ["share"] }], broadcast: [{ type: i0.Output, args: ["broadcast"] }], openFile: [{ type: i0.Output, args: ["openFile"] }], save: [{ type: i0.Output, args: ["save"] }], toggleSidebar: [{ type: i0.Output, args: ["toggleSidebar"] }], signatures: [{ type: i0.Output, args: ["signatures"] }], info: [{ type: i0.Output, args: ["info"] }], print: [{ type: i0.Output, args: ["print"] }], comments: [{ type: i0.Output, args: ["comments"] }], a11y: [{ type: i0.Output, args: ["a11y"] }], link: [{ type: i0.Output, args: ["link"] }], openSorter: [{ type: i0.Output, args: ["openSorter"] }], toggleNotes: [{ type: i0.Output, args: ["toggleNotes"] }], toggleFormatPainter: [{ type: i0.Output, args: ["toggleFormatPainter"] }], exportPng: [{ type: i0.Output, args: ["exportPng"] }], exportPdf: [{ type: i0.Output, args: ["exportPdf"] }], exportGif: [{ type: i0.Output, args: ["exportGif"] }], exportVideo: [{ type: i0.Output, args: ["exportVideo"] }], replace: [{ type: i0.Output, args: ["replace"] }], toggleInspector: [{ type: i0.Output, args: ["toggleInspector"] }], drawToolChange: [{ type: i0.Output, args: ["drawToolChange"] }], toggleThemeGallery: [{ type: i0.Output, args: ["toggleThemeGallery"] }], toggleGrid: [{ type: i0.Output, args: ["toggleGrid"] }], toggleRulers: [{ type: i0.Output, args: ["toggleRulers"] }], toggleGuides: [{ type: i0.Output, args: ["toggleGuides"] }], toggleSelectionPane: [{ type: i0.Output, args: ["toggleSelectionPane"] }], openCustomShows: [{ type: i0.Output, args: ["openCustomShows"] }], toggleSnapToGrid: [{ type: i0.Output, args: ["toggleSnapToGrid"] }], toggleEyedropper: [{ type: i0.Output, args: ["toggleEyedropper"] }], openSmartArtDialog: [{ type: i0.Output, args: ["openSmartArtDialog"] }], openEquationDialog: [{ type: i0.Output, args: ["openEquationDialog"] }], openSetUpSlideShow: [{ type: i0.Output, args: ["openSetUpSlideShow"] }], openCompare: [{ type: i0.Output, args: ["openCompare"] }], openPassword: [{ type: i0.Output, args: ["openPassword"] }], openFontEmbedding: [{ type: i0.Output, args: ["openFontEmbedding"] }], openVersionHistory: [{ type: i0.Output, args: ["openVersionHistory"] }], openShortcuts: [{ type: i0.Output, args: ["openShortcuts"] }], shapeInsert: [{ type: i0.Output, args: ["shapeInsert"] }], moveLayer: [{ type: i0.Output, args: ["moveLayer"] }], moveLayerToEdge: [{ type: i0.Output, args: ["moveLayerToEdge"] }] } });
71014
71668
 
71015
71669
  /**
71016
71670
  * selection-pane.component.ts: Side panel listing all elements on the active slide.
@@ -80176,7 +80830,7 @@ class PowerPointViewerComponent {
80176
80830
  />
80177
80831
  }
80178
80832
  </div>
80179
- `, 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"] }, { 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 });
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 });
80180
80834
  }
80181
80835
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PowerPointViewerComponent, decorators: [{
80182
80836
  type: Component,
@@ -82792,6 +83446,7 @@ const translationsEn = {
82792
83446
  'pptx.ribbon.tab.transitions': 'Transitions',
82793
83447
  'pptx.ribbon.tab.animations': 'Animations',
82794
83448
  'pptx.ribbon.tab.slideShow': 'Slide Show',
83449
+ 'pptx.ribbon.tab.record': 'Record',
82795
83450
  'pptx.ribbon.tab.review': 'Review',
82796
83451
  'pptx.ribbon.tab.view': 'View',
82797
83452
  'pptx.ribbon.tab.help': 'Help',