pptx-angular-viewer 1.10.0 → 1.11.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.
|
@@ -2,8 +2,9 @@ import { NgStyle, NgClass } from '@angular/common';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, input, output, computed, ChangeDetectionStrategy, Component, signal, Injectable, inject, Injector, DestroyRef, effect, HostListener, ElementRef, viewChild, afterNextRender } from '@angular/core';
|
|
4
4
|
import { TranslatePipe, translate, TranslateService } from '@ngx-translate/core';
|
|
5
|
-
import { guideEmuToPx, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hasShapeProperties, applyDrawingColorTransforms as applyDrawingColorTransforms$1, hslToRgb as hslToRgb$1, PRESET_COLOR_MAP, isImageLikeElement, hasTextProperties, MIN_ELEMENT_SIZE as MIN_ELEMENT_SIZE$2, THEME_COLOR_SCHEME_KEYS, getLinkedTextBoxSegments, svgPathToPolygons, deobfuscateFont, detectFontFormat, getSubstituteFontFamily, checkMissingAltText, checkMissingSlideTitle, checkLowContrast, checkComplexTables, checkBlankSlide, checkDuplicateTitles, createChartElement, formatCommentTimestamp as formatCommentTimestamp$1, PptxHandler, EncryptedFileError, parseSignatureXml, updateSmartArtNodeText, setSmartArtNodeStyle, setChartTitle, setChartLegend, setChartDataLabels, setChartAxis, setChartSeriesTrendline, setChartSeriesErrorBars, setChartDataPointLabel, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, chartDataAddSeries, chartDataRemoveSeries, chartDataAddCategory, chartDataRemoveCategory, chartDataUpdatePoint, chartDataChangeType, addSmartArtNodeAsChild, removeSmartArtNode, promoteSmartArtNode, demoteSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, SWITCHABLE_LAYOUT_TYPES, isInkElement, parseDataUrlToBytes, isZoomElement, THEME_PRESETS, applyThemeToData, getAnimationPresetInfo } from 'pptx-viewer-core';
|
|
5
|
+
import { guideEmuToPx, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hasShapeProperties, applyDrawingColorTransforms as applyDrawingColorTransforms$1, hslToRgb as hslToRgb$1, PRESET_COLOR_MAP, isImageLikeElement, hasTextProperties, MIN_ELEMENT_SIZE as MIN_ELEMENT_SIZE$2, THEME_COLOR_SCHEME_KEYS, getLinkedTextBoxSegments, svgPathToPolygons, deobfuscateFont, detectFontFormat, getSubstituteFontFamily, checkMissingAltText, checkMissingSlideTitle, checkLowContrast, checkComplexTables, checkBlankSlide, checkDuplicateTitles, createChartElement, formatCommentTimestamp as formatCommentTimestamp$1, cloneSlide as cloneSlide$1, cloneTemplateElementsBySlideId as cloneTemplateElementsBySlideId$1, cloneElement as cloneElement$1, PptxHandler, EncryptedFileError, parseSignatureXml, updateSmartArtNodeText, setSmartArtNodeStyle, setChartTitle, setChartLegend, setChartDataLabels, setChartAxis, setChartSeriesTrendline, setChartSeriesErrorBars, setChartDataPointLabel, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, chartDataAddSeries, chartDataRemoveSeries, chartDataAddCategory, chartDataRemoveCategory, chartDataUpdatePoint, chartDataChangeType, addSmartArtNodeAsChild, removeSmartArtNode, promoteSmartArtNode, demoteSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, SWITCHABLE_LAYOUT_TYPES, isInkElement, parseDataUrlToBytes, isZoomElement, THEME_PRESETS, applyThemeToData, getAnimationPresetInfo } from 'pptx-viewer-core';
|
|
6
6
|
import DOMPurify from 'dompurify';
|
|
7
|
+
import { LucideX, LucideSquare, LucideCircle, LucideSlash, LucideCopy, LucideTrash2, LucideChevronsUp, LucideChevronsDown, LucideArrowUp, LucideArrowDown, LucideGroup, LucideUngroup, LucideTextAlignStart, LucideTextAlignCenter, LucideTextAlignEnd, LucideChevronUp, LucideChevronDown, LucideAlignHorizontalSpaceAround, LucideAlignVerticalSpaceAround, LucideChevronRight, LucidePenTool, LucideHighlighter, LucideEraser, LucideMousePointer2, LucideChevronLeft, LucidePlay, LucideSparkles, LucidePanelRight, LucideMoveRight, LucidePencil, LucideType, LucideMinus, LucideSpline, LucideAArrowUp, LucideAArrowDown, LucideRemoveFormatting, LucideList, LucideListOrdered, LucideListIndentDecrease, LucideListIndentIncrease, LucideTextAlignJustify, LucidePlus, LucideImage, LucideVideo, LucideDatabase, LucideLayers, LucidePanelLeft, LucideMessageSquare, LucideEllipsis, LucideShare2, LucideEye, LucideEyeOff, LucideStickyNote, LucideMonitor, LucideColumns2, LucidePresentation, LucideCheck, LucideSave, LucideUndo, LucideRedo, LucideSearch } from '@lucide/angular';
|
|
7
8
|
import { jsPDF } from 'jspdf';
|
|
8
9
|
import html2canvasPro from 'html2canvas-pro';
|
|
9
10
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -31863,6 +31864,37 @@ function rebuildDrawingShapesIfCleared(smartArtData, layout, palette, style, ele
|
|
|
31863
31864
|
};
|
|
31864
31865
|
}
|
|
31865
31866
|
|
|
31867
|
+
/**
|
|
31868
|
+
* Presentation-mode media autoplay.
|
|
31869
|
+
*
|
|
31870
|
+
* When present mode makes a slide the active, visible surface, any media on it
|
|
31871
|
+
* should begin playing without a manual click (matching PowerPoint's slideshow
|
|
31872
|
+
* behaviour). Browsers only honour a fresh `.play()` call, not an `autoplay`
|
|
31873
|
+
* attribute added retroactively to an already-mounted node, so each binding
|
|
31874
|
+
* calls this once the media element is mounted and its slide is live.
|
|
31875
|
+
*
|
|
31876
|
+
* `play()` can reject when the browser blocks autoplay-with-sound without a
|
|
31877
|
+
* prior user gesture; the rejection is swallowed so it never surfaces as an
|
|
31878
|
+
* unhandled promise (the element simply stays paused until the user interacts).
|
|
31879
|
+
*/
|
|
31880
|
+
function startMediaAutoplay(el, options) {
|
|
31881
|
+
const trimStartMs = options?.trimStartMs;
|
|
31882
|
+
if (trimStartMs !== undefined && trimStartMs > 0) {
|
|
31883
|
+
try {
|
|
31884
|
+
el.currentTime = trimStartMs / 1000;
|
|
31885
|
+
}
|
|
31886
|
+
catch {
|
|
31887
|
+
/* seeking before metadata is loaded can throw in some browsers; ignore */
|
|
31888
|
+
}
|
|
31889
|
+
}
|
|
31890
|
+
const result = el.play();
|
|
31891
|
+
if (result && typeof result.catch === 'function') {
|
|
31892
|
+
void result.catch(() => {
|
|
31893
|
+
/* autoplay blocked (e.g. sound without a user gesture) */
|
|
31894
|
+
});
|
|
31895
|
+
}
|
|
31896
|
+
}
|
|
31897
|
+
|
|
31866
31898
|
/**
|
|
31867
31899
|
* Artistic image-effect presets for the image inspector's "Artistic Effects"
|
|
31868
31900
|
* gallery. Each entry is a tuple `[effectName, i18nKey, cssFilter]`:
|
|
@@ -32698,6 +32730,13 @@ async function saveAutosaveSnapshot(filePath, data) {
|
|
|
32698
32730
|
const FALLBACK_DOWNLOAD_NAME = 'presentation.pptx';
|
|
32699
32731
|
/** Revoke delay (ms) after triggering a download click. */
|
|
32700
32732
|
const REVOKE_DELAY_MS = 200;
|
|
32733
|
+
/**
|
|
32734
|
+
* Revoke delay (ms) after opening a payload in a new tab. Longer than the
|
|
32735
|
+
* download delay: the new document may still be fetching the object URL (a PDF
|
|
32736
|
+
* viewer, an image) well after the current task finishes, so we keep the URL
|
|
32737
|
+
* alive for a minute before releasing it.
|
|
32738
|
+
*/
|
|
32739
|
+
const OPEN_REVOKE_DELAY_MS = 60_000;
|
|
32701
32740
|
/**
|
|
32702
32741
|
* Strip control characters, filesystem-reserved characters, and path-traversal
|
|
32703
32742
|
* sequences from a user-supplied download filename. CR/LF in particular can
|
|
@@ -32775,6 +32814,69 @@ function downloadDataUrl(dataUrl, filename) {
|
|
|
32775
32814
|
anchor.remove();
|
|
32776
32815
|
}, REVOKE_DELAY_MS);
|
|
32777
32816
|
}
|
|
32817
|
+
/**
|
|
32818
|
+
* Convert a `data:` URL into a {@link Blob}, preserving its MIME type. Handles
|
|
32819
|
+
* both base64 and percent-encoded payloads. Returns `undefined` for a non-data
|
|
32820
|
+
* URL or a payload that cannot be decoded, so callers can fall back gracefully.
|
|
32821
|
+
*
|
|
32822
|
+
* @param dataUrl - A `data:` URL string.
|
|
32823
|
+
*/
|
|
32824
|
+
function dataUrlToBlob(dataUrl) {
|
|
32825
|
+
const match = /^data:(?<mime>[^;,]*)(?<base64>;base64)?,(?<payload>[\s\S]*)$/u.exec(dataUrl);
|
|
32826
|
+
if (!match?.groups) {
|
|
32827
|
+
return undefined;
|
|
32828
|
+
}
|
|
32829
|
+
const mime = match.groups.mime || 'application/octet-stream';
|
|
32830
|
+
const isBase64 = Boolean(match.groups.base64);
|
|
32831
|
+
const payload = match.groups.payload ?? '';
|
|
32832
|
+
try {
|
|
32833
|
+
if (isBase64) {
|
|
32834
|
+
const binary = atob(payload);
|
|
32835
|
+
const bytes = new Uint8Array(binary.length);
|
|
32836
|
+
for (let i = 0; i < binary.length; i++) {
|
|
32837
|
+
bytes[i] = binary.charCodeAt(i);
|
|
32838
|
+
}
|
|
32839
|
+
return new Blob([bytes], { type: mime });
|
|
32840
|
+
}
|
|
32841
|
+
return new Blob([decodeURIComponent(payload)], { type: mime });
|
|
32842
|
+
}
|
|
32843
|
+
catch {
|
|
32844
|
+
return undefined;
|
|
32845
|
+
}
|
|
32846
|
+
}
|
|
32847
|
+
/**
|
|
32848
|
+
* Open a payload in a new browser tab. Chromium (and other browsers) silently
|
|
32849
|
+
* refuse to navigate a new top-level browsing context straight to a `data:`
|
|
32850
|
+
* URL, so a data URL is first converted to a Blob object URL - which browsers
|
|
32851
|
+
* do allow a new tab to open - and revoked after {@link OPEN_REVOKE_DELAY_MS}
|
|
32852
|
+
* once the new document has had time to fetch it. Non-`data:` URLs (http(s),
|
|
32853
|
+
* blob) are opened as-is.
|
|
32854
|
+
*
|
|
32855
|
+
* @param url - The payload URL (typically a recovered `data:` URL).
|
|
32856
|
+
*/
|
|
32857
|
+
function openUrlInNewTab(url) {
|
|
32858
|
+
const blob = url.startsWith('data:') ? dataUrlToBlob(url) : undefined;
|
|
32859
|
+
const target = blob ? URL.createObjectURL(blob) : url;
|
|
32860
|
+
// NB: no `noopener` here. A `blob:` object URL is resolved from the opener's
|
|
32861
|
+
// origin-partitioned blob store, and Chromium refuses to resolve it in the
|
|
32862
|
+
// disconnected browsing context `noopener` creates (the new tab lands on an
|
|
32863
|
+
// empty document). We instead sever the child's back-reference to us
|
|
32864
|
+
// afterwards, which mitigates reverse-tabnabbing without breaking the blob.
|
|
32865
|
+
const opened = window.open(target, '_blank');
|
|
32866
|
+
if (opened) {
|
|
32867
|
+
try {
|
|
32868
|
+
opened.opener = null;
|
|
32869
|
+
}
|
|
32870
|
+
catch {
|
|
32871
|
+
// Some browsers disallow reassigning `opener`; best-effort only.
|
|
32872
|
+
}
|
|
32873
|
+
}
|
|
32874
|
+
if (blob) {
|
|
32875
|
+
setTimeout(() => {
|
|
32876
|
+
URL.revokeObjectURL(target);
|
|
32877
|
+
}, OPEN_REVOKE_DELAY_MS);
|
|
32878
|
+
}
|
|
32879
|
+
}
|
|
32778
32880
|
|
|
32779
32881
|
/**
|
|
32780
32882
|
* Canvas -> JPEG byte extraction shared by every binding's PDF export. This is
|
|
@@ -37356,7 +37458,7 @@ class CustomShowsComponent {
|
|
|
37356
37458
|
[attr.aria-label]="'pptx.customShows.closeDialog' | translate"
|
|
37357
37459
|
(click)="close.emit()"
|
|
37358
37460
|
>
|
|
37359
|
-
|
|
37461
|
+
<svg lucideX class="h-4 w-4"></svg>
|
|
37360
37462
|
</button>
|
|
37361
37463
|
</header>
|
|
37362
37464
|
|
|
@@ -37519,11 +37621,11 @@ class CustomShowsComponent {
|
|
|
37519
37621
|
</footer>
|
|
37520
37622
|
</div>
|
|
37521
37623
|
}
|
|
37522
|
-
`, isInline: true, styles: [":host{display:contents}.pptx-ng-cs-backdrop{position:fixed;inset:0;background:#00000080;z-index:200}.pptx-ng-cs-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:201;width:min(540px,94vw);max-height:80vh;display:flex;flex-direction:column;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border:1px solid var(--pptx-border, #374151);border-radius:12px;box-shadow:0 20px 60px #0009;font-family:system-ui,sans-serif}.pptx-ng-cs-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-cs-title{margin:0;font-size:15px;font-weight:600}.pptx-ng-cs-close{background:transparent;border:none;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.pptx-ng-cs-close:hover{background:var(--pptx-accent, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-cs-body{flex:1 1 auto;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px;min-height:0}.pptx-ng-cs-section{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-section-title{margin:0;font-size:13px;font-weight:600;color:var(--pptx-muted-foreground, #9ca3af);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.pptx-ng-cs-badge{background:var(--pptx-primary, #6366f1);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.pptx-ng-cs-show-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pptx-ng-cs-show-row{padding:10px 12px;border:1px solid var(--pptx-border, #374151);border-radius:8px;display:flex;flex-direction:column;gap:8px}.pptx-ng-cs-show-row--active{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 10%,transparent)}.pptx-ng-cs-show-info{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pptx-ng-cs-show-name{font-size:13px;font-weight:600}.pptx-ng-cs-show-meta{font-size:11px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-cs-show-actions{display:flex;gap:6px;flex-wrap:wrap}.pptx-ng-cs-edit-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pptx-ng-cs-input{flex:1 1 auto;min-width:120px;padding:6px 10px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:var(--pptx-background, #030712);color:inherit;font:inherit;font-size:13px}.pptx-ng-cs-slide-picker{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;padding:6px 8px;border:1px solid var(--pptx-border, #374151);border-radius:6px;background:var(--pptx-background, #030712)}.pptx-ng-cs-slide-option{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:2px 0}.pptx-ng-cs-empty{font-size:13px;color:var(--pptx-muted-foreground, #9ca3af);margin:0}.pptx-ng-cs-create-form{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-btn{font-size:12px;padding:5px 12px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:transparent;color:inherit;cursor:pointer;white-space:nowrap}.pptx-ng-cs-btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-cs-btn--primary{background:var(--pptx-primary, #6366f1);border-color:var(--pptx-primary, #6366f1);color:#fff;align-self:flex-start}.pptx-ng-cs-btn--primary:hover:not(:disabled){opacity:.9}.pptx-ng-cs-btn--primary:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-btn--danger{color:#f87171;border-color:#f87171}.pptx-ng-cs-btn--danger:hover{background:#f871711a}.pptx-ng-cs-btn--active{background:color-mix(in srgb,var(--pptx-primary, #6366f1) 20%,transparent);border-color:var(--pptx-primary, #6366f1);color:var(--pptx-primary, #6366f1)}.pptx-ng-cs-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--pptx-border, #374151);flex-shrink:0}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37624
|
+
`, isInline: true, styles: [":host{display:contents}.pptx-ng-cs-backdrop{position:fixed;inset:0;background:#00000080;z-index:200}.pptx-ng-cs-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:201;width:min(540px,94vw);max-height:80vh;display:flex;flex-direction:column;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border:1px solid var(--pptx-border, #374151);border-radius:12px;box-shadow:0 20px 60px #0009;font-family:system-ui,sans-serif}.pptx-ng-cs-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-cs-title{margin:0;font-size:15px;font-weight:600}.pptx-ng-cs-close{background:transparent;border:none;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.pptx-ng-cs-close:hover{background:var(--pptx-accent, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-cs-body{flex:1 1 auto;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px;min-height:0}.pptx-ng-cs-section{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-section-title{margin:0;font-size:13px;font-weight:600;color:var(--pptx-muted-foreground, #9ca3af);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.pptx-ng-cs-badge{background:var(--pptx-primary, #6366f1);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.pptx-ng-cs-show-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pptx-ng-cs-show-row{padding:10px 12px;border:1px solid var(--pptx-border, #374151);border-radius:8px;display:flex;flex-direction:column;gap:8px}.pptx-ng-cs-show-row--active{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 10%,transparent)}.pptx-ng-cs-show-info{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pptx-ng-cs-show-name{font-size:13px;font-weight:600}.pptx-ng-cs-show-meta{font-size:11px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-cs-show-actions{display:flex;gap:6px;flex-wrap:wrap}.pptx-ng-cs-edit-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pptx-ng-cs-input{flex:1 1 auto;min-width:120px;padding:6px 10px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:var(--pptx-background, #030712);color:inherit;font:inherit;font-size:13px}.pptx-ng-cs-slide-picker{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;padding:6px 8px;border:1px solid var(--pptx-border, #374151);border-radius:6px;background:var(--pptx-background, #030712)}.pptx-ng-cs-slide-option{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:2px 0}.pptx-ng-cs-empty{font-size:13px;color:var(--pptx-muted-foreground, #9ca3af);margin:0}.pptx-ng-cs-create-form{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-btn{font-size:12px;padding:5px 12px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:transparent;color:inherit;cursor:pointer;white-space:nowrap}.pptx-ng-cs-btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-cs-btn--primary{background:var(--pptx-primary, #6366f1);border-color:var(--pptx-primary, #6366f1);color:#fff;align-self:flex-start}.pptx-ng-cs-btn--primary:hover:not(:disabled){opacity:.9}.pptx-ng-cs-btn--primary:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-btn--danger{color:#f87171;border-color:#f87171}.pptx-ng-cs-btn--danger:hover{background:#f871711a}.pptx-ng-cs-btn--active{background:color-mix(in srgb,var(--pptx-primary, #6366f1) 20%,transparent);border-color:var(--pptx-primary, #6366f1);color:var(--pptx-primary, #6366f1)}.pptx-ng-cs-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--pptx-border, #374151);flex-shrink:0}\n"], dependencies: [{ kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37523
37625
|
}
|
|
37524
37626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CustomShowsComponent, decorators: [{
|
|
37525
37627
|
type: Component,
|
|
37526
|
-
args: [{ selector: 'pptx-custom-shows', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
|
|
37628
|
+
args: [{ selector: 'pptx-custom-shows', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, LucideX], template: `
|
|
37527
37629
|
@if (open()) {
|
|
37528
37630
|
<!-- Backdrop -->
|
|
37529
37631
|
<div class="pptx-ng-cs-backdrop" aria-hidden="true" (click)="close.emit()"></div>
|
|
@@ -37545,7 +37647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
37545
37647
|
[attr.aria-label]="'pptx.customShows.closeDialog' | translate"
|
|
37546
37648
|
(click)="close.emit()"
|
|
37547
37649
|
>
|
|
37548
|
-
|
|
37650
|
+
<svg lucideX class="h-4 w-4"></svg>
|
|
37549
37651
|
</button>
|
|
37550
37652
|
</header>
|
|
37551
37653
|
|
|
@@ -37814,7 +37916,7 @@ class EditorStateService {
|
|
|
37814
37916
|
* layer and re-merged on save.
|
|
37815
37917
|
*/
|
|
37816
37918
|
setSlides(slides) {
|
|
37817
|
-
const partitioned = partitionSlides(
|
|
37919
|
+
const partitioned = partitionSlides(slides.map(cloneSlide$1));
|
|
37818
37920
|
this.slides.set(partitioned.slides);
|
|
37819
37921
|
this.templateElementsBySlideId.set(partitioned.templateElementsBySlideId);
|
|
37820
37922
|
this.selectedIds.set([]);
|
|
@@ -37824,7 +37926,7 @@ class EditorStateService {
|
|
|
37824
37926
|
}
|
|
37825
37927
|
/** Current editable (template-free) slides as a fresh (cloned) array. */
|
|
37826
37928
|
snapshot() {
|
|
37827
|
-
return this.
|
|
37929
|
+
return this.slides().map(cloneSlide$1);
|
|
37828
37930
|
}
|
|
37829
37931
|
/**
|
|
37830
37932
|
* Replace the whole deck with pre-computed slides (e.g. a find/replace
|
|
@@ -37833,7 +37935,7 @@ class EditorStateService {
|
|
|
37833
37935
|
*/
|
|
37834
37936
|
applyReplacement(newSlides, label = 'Replace') {
|
|
37835
37937
|
this.history.record(this.captureSnapshot(), label);
|
|
37836
|
-
this.slides.set(
|
|
37938
|
+
this.slides.set(newSlides.map(cloneSlide$1));
|
|
37837
37939
|
this.dirty.set(true);
|
|
37838
37940
|
this.syncHistory();
|
|
37839
37941
|
}
|
|
@@ -37844,15 +37946,15 @@ class EditorStateService {
|
|
|
37844
37946
|
* steps.
|
|
37845
37947
|
*/
|
|
37846
37948
|
applyRemoteSlides(slides) {
|
|
37847
|
-
this.slides.set(
|
|
37949
|
+
this.slides.set(slides.map(cloneSlide$1));
|
|
37848
37950
|
this.dirty.set(true);
|
|
37849
37951
|
}
|
|
37850
37952
|
// ── Snapshot (deck + template store) ─────────────────────────────────────
|
|
37851
37953
|
/** Capture the current deck + template store as one undo/redo snapshot. */
|
|
37852
37954
|
captureSnapshot() {
|
|
37853
37955
|
return {
|
|
37854
|
-
slides: this.
|
|
37855
|
-
templateElementsBySlideId:
|
|
37956
|
+
slides: this.slides().map(cloneSlide$1),
|
|
37957
|
+
templateElementsBySlideId: cloneTemplateElementsBySlideId$1(this.templateElementsBySlideId()),
|
|
37856
37958
|
};
|
|
37857
37959
|
}
|
|
37858
37960
|
/** Restore both the deck and the template store from a snapshot. */
|
|
@@ -38102,7 +38204,7 @@ class EditorStateService {
|
|
|
38102
38204
|
if (picked.length === 0) {
|
|
38103
38205
|
return;
|
|
38104
38206
|
}
|
|
38105
|
-
this.clipboard =
|
|
38207
|
+
this.clipboard = picked.map(cloneElement$1);
|
|
38106
38208
|
this.hasClipboard.set(true);
|
|
38107
38209
|
}
|
|
38108
38210
|
/** Copy then delete the selected elements. */
|
|
@@ -38124,7 +38226,7 @@ class EditorStateService {
|
|
|
38124
38226
|
const additions = this.clipboard.map((el) => {
|
|
38125
38227
|
const id = this.newId();
|
|
38126
38228
|
newIds.push(id);
|
|
38127
|
-
return { ...
|
|
38229
|
+
return { ...cloneElement$1(el), id, x: el.x + 12, y: el.y + 12 };
|
|
38128
38230
|
});
|
|
38129
38231
|
this.slides.set(slides.map((slide, i) => i === slideIndex ? { ...slide, elements: [...slide.elements, ...additions] } : slide));
|
|
38130
38232
|
this.selectedIds.set(newIds);
|
|
@@ -38190,7 +38292,7 @@ class EditorStateService {
|
|
|
38190
38292
|
}
|
|
38191
38293
|
this.history.record(this.captureSnapshot(), 'Duplicate slide');
|
|
38192
38294
|
const id = this.newId();
|
|
38193
|
-
const copy = { ...
|
|
38295
|
+
const copy = { ...cloneSlide$1(slides[index]), id, rId: id };
|
|
38194
38296
|
const next = [...slides];
|
|
38195
38297
|
next.splice(index + 1, 0, copy);
|
|
38196
38298
|
this.slides.set(this.renumber(next));
|
|
@@ -38249,9 +38351,6 @@ class EditorStateService {
|
|
|
38249
38351
|
this.undoLabel.set(this.history.undoLabel);
|
|
38250
38352
|
this.redoLabel.set(this.history.redoLabel);
|
|
38251
38353
|
}
|
|
38252
|
-
clone(value) {
|
|
38253
|
-
return structuredClone(value);
|
|
38254
|
-
}
|
|
38255
38354
|
newId() {
|
|
38256
38355
|
const c = globalThis.crypto;
|
|
38257
38356
|
if (c && typeof c.randomUUID === 'function') {
|
|
@@ -39124,7 +39223,7 @@ class EditorToolbarComponent {
|
|
|
39124
39223
|
[title]="'pptx.editorToolbar.insertRectangle' | translate"
|
|
39125
39224
|
(click)="onInsertShape('rect')"
|
|
39126
39225
|
>
|
|
39127
|
-
|
|
39226
|
+
<svg lucideSquare class="h-4 w-4"></svg>
|
|
39128
39227
|
</button>
|
|
39129
39228
|
|
|
39130
39229
|
<button
|
|
@@ -39133,7 +39232,7 @@ class EditorToolbarComponent {
|
|
|
39133
39232
|
[title]="'pptx.editorToolbar.insertEllipse' | translate"
|
|
39134
39233
|
(click)="onInsertShape('ellipse')"
|
|
39135
39234
|
>
|
|
39136
|
-
|
|
39235
|
+
<svg lucideCircle class="h-4 w-4"></svg>
|
|
39137
39236
|
</button>
|
|
39138
39237
|
|
|
39139
39238
|
<button
|
|
@@ -39142,7 +39241,7 @@ class EditorToolbarComponent {
|
|
|
39142
39241
|
[title]="'pptx.editorToolbar.insertLine' | translate"
|
|
39143
39242
|
(click)="onInsertShape('line')"
|
|
39144
39243
|
>
|
|
39145
|
-
|
|
39244
|
+
<svg lucideSlash class="h-4 w-4"></svg>
|
|
39146
39245
|
</button>
|
|
39147
39246
|
</div>
|
|
39148
39247
|
|
|
@@ -39166,7 +39265,7 @@ class EditorToolbarComponent {
|
|
|
39166
39265
|
[disabled]="!editor.hasSelection()"
|
|
39167
39266
|
(click)="editor.duplicateSelected(slideIndex())"
|
|
39168
39267
|
>
|
|
39169
|
-
|
|
39268
|
+
<svg lucideCopy class="h-4 w-4"></svg>
|
|
39170
39269
|
</button>
|
|
39171
39270
|
|
|
39172
39271
|
<button
|
|
@@ -39176,7 +39275,7 @@ class EditorToolbarComponent {
|
|
|
39176
39275
|
[disabled]="!editor.hasSelection()"
|
|
39177
39276
|
(click)="editor.deleteSelected(slideIndex())"
|
|
39178
39277
|
>
|
|
39179
|
-
|
|
39278
|
+
<svg lucideTrash2 class="h-4 w-4"></svg>
|
|
39180
39279
|
</button>
|
|
39181
39280
|
|
|
39182
39281
|
<button
|
|
@@ -39186,7 +39285,7 @@ class EditorToolbarComponent {
|
|
|
39186
39285
|
[disabled]="!editor.hasSelection()"
|
|
39187
39286
|
(click)="editor.bringSelectedToFront(slideIndex())"
|
|
39188
39287
|
>
|
|
39189
|
-
|
|
39288
|
+
<svg lucideChevronsUp class="h-4 w-4"></svg>
|
|
39190
39289
|
</button>
|
|
39191
39290
|
|
|
39192
39291
|
<button
|
|
@@ -39196,7 +39295,7 @@ class EditorToolbarComponent {
|
|
|
39196
39295
|
[disabled]="!editor.hasSelection()"
|
|
39197
39296
|
(click)="editor.sendSelectedToBack(slideIndex())"
|
|
39198
39297
|
>
|
|
39199
|
-
|
|
39298
|
+
<svg lucideChevronsDown class="h-4 w-4"></svg>
|
|
39200
39299
|
</button>
|
|
39201
39300
|
|
|
39202
39301
|
<button
|
|
@@ -39206,7 +39305,7 @@ class EditorToolbarComponent {
|
|
|
39206
39305
|
[disabled]="!editor.hasSelection()"
|
|
39207
39306
|
(click)="editor.bringSelectedForward(slideIndex())"
|
|
39208
39307
|
>
|
|
39209
|
-
|
|
39308
|
+
<svg lucideArrowUp class="h-4 w-4"></svg>
|
|
39210
39309
|
</button>
|
|
39211
39310
|
|
|
39212
39311
|
<button
|
|
@@ -39216,7 +39315,7 @@ class EditorToolbarComponent {
|
|
|
39216
39315
|
[disabled]="!editor.hasSelection()"
|
|
39217
39316
|
(click)="editor.sendSelectedBackward(slideIndex())"
|
|
39218
39317
|
>
|
|
39219
|
-
|
|
39318
|
+
<svg lucideArrowDown class="h-4 w-4"></svg>
|
|
39220
39319
|
</button>
|
|
39221
39320
|
<button
|
|
39222
39321
|
type="button"
|
|
@@ -39225,7 +39324,7 @@ class EditorToolbarComponent {
|
|
|
39225
39324
|
[disabled]="!canGroup()"
|
|
39226
39325
|
(click)="editor.groupSelected(slideIndex())"
|
|
39227
39326
|
>
|
|
39228
|
-
|
|
39327
|
+
<svg lucideGroup class="h-4 w-4"></svg>
|
|
39229
39328
|
</button>
|
|
39230
39329
|
<button
|
|
39231
39330
|
type="button"
|
|
@@ -39234,7 +39333,7 @@ class EditorToolbarComponent {
|
|
|
39234
39333
|
[disabled]="!canUngroup()"
|
|
39235
39334
|
(click)="editor.ungroupSelected(slideIndex())"
|
|
39236
39335
|
>
|
|
39237
|
-
|
|
39336
|
+
<svg lucideUngroup class="h-4 w-4"></svg>
|
|
39238
39337
|
</button>
|
|
39239
39338
|
</div>
|
|
39240
39339
|
|
|
@@ -39255,7 +39354,7 @@ class EditorToolbarComponent {
|
|
|
39255
39354
|
[disabled]="!canAlign()"
|
|
39256
39355
|
(click)="editor.alignSelected(slideIndex(), 'left')"
|
|
39257
39356
|
>
|
|
39258
|
-
|
|
39357
|
+
<svg lucideTextAlignStart class="h-4 w-4"></svg>
|
|
39259
39358
|
</button>
|
|
39260
39359
|
<button
|
|
39261
39360
|
type="button"
|
|
@@ -39264,7 +39363,7 @@ class EditorToolbarComponent {
|
|
|
39264
39363
|
[disabled]="!canAlign()"
|
|
39265
39364
|
(click)="editor.alignSelected(slideIndex(), 'centerH')"
|
|
39266
39365
|
>
|
|
39267
|
-
|
|
39366
|
+
<svg lucideTextAlignCenter class="h-4 w-4"></svg>
|
|
39268
39367
|
</button>
|
|
39269
39368
|
<button
|
|
39270
39369
|
type="button"
|
|
@@ -39273,7 +39372,7 @@ class EditorToolbarComponent {
|
|
|
39273
39372
|
[disabled]="!canAlign()"
|
|
39274
39373
|
(click)="editor.alignSelected(slideIndex(), 'right')"
|
|
39275
39374
|
>
|
|
39276
|
-
|
|
39375
|
+
<svg lucideTextAlignEnd class="h-4 w-4"></svg>
|
|
39277
39376
|
</button>
|
|
39278
39377
|
<button
|
|
39279
39378
|
type="button"
|
|
@@ -39282,7 +39381,7 @@ class EditorToolbarComponent {
|
|
|
39282
39381
|
[disabled]="!canAlign()"
|
|
39283
39382
|
(click)="editor.alignSelected(slideIndex(), 'top')"
|
|
39284
39383
|
>
|
|
39285
|
-
|
|
39384
|
+
<svg lucideChevronUp class="h-4 w-4"></svg>
|
|
39286
39385
|
</button>
|
|
39287
39386
|
<button
|
|
39288
39387
|
type="button"
|
|
@@ -39291,7 +39390,7 @@ class EditorToolbarComponent {
|
|
|
39291
39390
|
[disabled]="!canAlign()"
|
|
39292
39391
|
(click)="editor.alignSelected(slideIndex(), 'middle')"
|
|
39293
39392
|
>
|
|
39294
|
-
|
|
39393
|
+
<svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
|
|
39295
39394
|
</button>
|
|
39296
39395
|
<button
|
|
39297
39396
|
type="button"
|
|
@@ -39300,7 +39399,7 @@ class EditorToolbarComponent {
|
|
|
39300
39399
|
[disabled]="!canAlign()"
|
|
39301
39400
|
(click)="editor.alignSelected(slideIndex(), 'bottom')"
|
|
39302
39401
|
>
|
|
39303
|
-
|
|
39402
|
+
<svg lucideChevronDown class="h-4 w-4"></svg>
|
|
39304
39403
|
</button>
|
|
39305
39404
|
<button
|
|
39306
39405
|
type="button"
|
|
@@ -39309,7 +39408,7 @@ class EditorToolbarComponent {
|
|
|
39309
39408
|
[disabled]="!canDistribute()"
|
|
39310
39409
|
(click)="editor.distributeSelected(slideIndex(), 'horizontal')"
|
|
39311
39410
|
>
|
|
39312
|
-
|
|
39411
|
+
<svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
|
|
39313
39412
|
</button>
|
|
39314
39413
|
<button
|
|
39315
39414
|
type="button"
|
|
@@ -39318,15 +39417,35 @@ class EditorToolbarComponent {
|
|
|
39318
39417
|
[disabled]="!canDistribute()"
|
|
39319
39418
|
(click)="editor.distributeSelected(slideIndex(), 'vertical')"
|
|
39320
39419
|
>
|
|
39321
|
-
|
|
39420
|
+
<svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
|
|
39322
39421
|
</button>
|
|
39323
39422
|
</div>
|
|
39324
39423
|
</div>
|
|
39325
|
-
`, isInline: true, styles: [".pptx-ng-toolbar{display:flex;flex-direction:row;align-items:center;gap:0;padding:4px 8px;background:var(--pptx-toolbar-bg, #1e1e1e);color:var(--pptx-toolbar-fg, #e0e0e0);border-bottom:1px solid var(--pptx-toolbar-border, #333);min-height:36px;-webkit-user-select:none;user-select:none}.pptx-ng-toolbar__group{display:flex;flex-direction:row;align-items:center;gap:4px}.pptx-ng-toolbar__group-label{font-size:10px;color:var(--pptx-toolbar-muted, #888);text-transform:uppercase;letter-spacing:.05em;padding:0 6px 0 4px;flex-shrink:0}.pptx-ng-toolbar__divider{width:1px;height:20px;background:var(--pptx-toolbar-border, #444);margin:0 4px;flex-shrink:0}.pptx-ng-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:2px 8px;background:transparent;border:1px solid transparent;border-radius:4px;color:inherit;font-size:14px;cursor:pointer;transition:background .1s;flex-shrink:0}.pptx-ng-toolbar__btn:hover:not(:disabled){background:var(--pptx-toolbar-hover, #3a3a3a)}.pptx-ng-toolbar__btn:active:not(:disabled){background:var(--pptx-toolbar-active-bg, #2a2a2a);transform:scale(.95);opacity:.8}.pptx-ng-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-toolbar__btn--danger:not(:disabled){color:var(--pptx-toolbar-danger, #f47c7c)}.pptx-ng-toolbar__btn--danger:hover:not(:disabled){background:var(--pptx-toolbar-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
39424
|
+
`, isInline: true, styles: [".pptx-ng-toolbar{display:flex;flex-direction:row;align-items:center;gap:0;padding:4px 8px;background:var(--pptx-toolbar-bg, #1e1e1e);color:var(--pptx-toolbar-fg, #e0e0e0);border-bottom:1px solid var(--pptx-toolbar-border, #333);min-height:36px;-webkit-user-select:none;user-select:none}.pptx-ng-toolbar__group{display:flex;flex-direction:row;align-items:center;gap:4px}.pptx-ng-toolbar__group-label{font-size:10px;color:var(--pptx-toolbar-muted, #888);text-transform:uppercase;letter-spacing:.05em;padding:0 6px 0 4px;flex-shrink:0}.pptx-ng-toolbar__divider{width:1px;height:20px;background:var(--pptx-toolbar-border, #444);margin:0 4px;flex-shrink:0}.pptx-ng-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:2px 8px;background:transparent;border:1px solid transparent;border-radius:4px;color:inherit;font-size:14px;cursor:pointer;transition:background .1s;flex-shrink:0}.pptx-ng-toolbar__btn:hover:not(:disabled){background:var(--pptx-toolbar-hover, #3a3a3a)}.pptx-ng-toolbar__btn:active:not(:disabled){background:var(--pptx-toolbar-active-bg, #2a2a2a);transform:scale(.95);opacity:.8}.pptx-ng-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-toolbar__btn--danger:not(:disabled){color:var(--pptx-toolbar-danger, #f47c7c)}.pptx-ng-toolbar__btn--danger:hover:not(:disabled){background:var(--pptx-toolbar-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "component", type: LucideSquare, selector: "svg[lucideSquare]" }, { kind: "component", type: LucideCircle, selector: "svg[lucideCircle]" }, { kind: "component", type: LucideSlash, selector: "svg[lucideSlash]" }, { kind: "component", type: LucideCopy, selector: "svg[lucideCopy]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucideChevronsUp, selector: "svg[lucideChevronsUp]" }, { kind: "component", type: LucideChevronsDown, selector: "svg[lucideChevronsDown]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "component", type: LucideGroup, selector: "svg[lucideGroup]" }, { kind: "component", type: LucideUngroup, selector: "svg[lucideUngroup]" }, { kind: "component", type: LucideTextAlignStart, selector: "svg[lucideTextAlignStart], svg[lucideText], svg[lucideAlignLeft]" }, { kind: "component", type: LucideTextAlignCenter, selector: "svg[lucideTextAlignCenter], svg[lucideAlignCenter]" }, { kind: "component", type: LucideTextAlignEnd, selector: "svg[lucideTextAlignEnd], svg[lucideAlignRight]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideAlignHorizontalSpaceAround, selector: "svg[lucideAlignHorizontalSpaceAround]" }, { kind: "component", type: LucideAlignVerticalSpaceAround, selector: "svg[lucideAlignVerticalSpaceAround]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
39326
39425
|
}
|
|
39327
39426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EditorToolbarComponent, decorators: [{
|
|
39328
39427
|
type: Component,
|
|
39329
|
-
args: [{ selector: 'pptx-editor-toolbar', standalone: true, imports: [
|
|
39428
|
+
args: [{ selector: 'pptx-editor-toolbar', standalone: true, imports: [
|
|
39429
|
+
TranslatePipe,
|
|
39430
|
+
LucideSquare,
|
|
39431
|
+
LucideCircle,
|
|
39432
|
+
LucideSlash,
|
|
39433
|
+
LucideCopy,
|
|
39434
|
+
LucideTrash2,
|
|
39435
|
+
LucideChevronsUp,
|
|
39436
|
+
LucideChevronsDown,
|
|
39437
|
+
LucideArrowUp,
|
|
39438
|
+
LucideArrowDown,
|
|
39439
|
+
LucideGroup,
|
|
39440
|
+
LucideUngroup,
|
|
39441
|
+
LucideTextAlignStart,
|
|
39442
|
+
LucideTextAlignCenter,
|
|
39443
|
+
LucideTextAlignEnd,
|
|
39444
|
+
LucideChevronUp,
|
|
39445
|
+
LucideChevronDown,
|
|
39446
|
+
LucideAlignHorizontalSpaceAround,
|
|
39447
|
+
LucideAlignVerticalSpaceAround,
|
|
39448
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
39330
39449
|
<div
|
|
39331
39450
|
class="pptx-ng-toolbar"
|
|
39332
39451
|
role="toolbar"
|
|
@@ -39357,7 +39476,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39357
39476
|
[title]="'pptx.editorToolbar.insertRectangle' | translate"
|
|
39358
39477
|
(click)="onInsertShape('rect')"
|
|
39359
39478
|
>
|
|
39360
|
-
|
|
39479
|
+
<svg lucideSquare class="h-4 w-4"></svg>
|
|
39361
39480
|
</button>
|
|
39362
39481
|
|
|
39363
39482
|
<button
|
|
@@ -39366,7 +39485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39366
39485
|
[title]="'pptx.editorToolbar.insertEllipse' | translate"
|
|
39367
39486
|
(click)="onInsertShape('ellipse')"
|
|
39368
39487
|
>
|
|
39369
|
-
|
|
39488
|
+
<svg lucideCircle class="h-4 w-4"></svg>
|
|
39370
39489
|
</button>
|
|
39371
39490
|
|
|
39372
39491
|
<button
|
|
@@ -39375,7 +39494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39375
39494
|
[title]="'pptx.editorToolbar.insertLine' | translate"
|
|
39376
39495
|
(click)="onInsertShape('line')"
|
|
39377
39496
|
>
|
|
39378
|
-
|
|
39497
|
+
<svg lucideSlash class="h-4 w-4"></svg>
|
|
39379
39498
|
</button>
|
|
39380
39499
|
</div>
|
|
39381
39500
|
|
|
@@ -39399,7 +39518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39399
39518
|
[disabled]="!editor.hasSelection()"
|
|
39400
39519
|
(click)="editor.duplicateSelected(slideIndex())"
|
|
39401
39520
|
>
|
|
39402
|
-
|
|
39521
|
+
<svg lucideCopy class="h-4 w-4"></svg>
|
|
39403
39522
|
</button>
|
|
39404
39523
|
|
|
39405
39524
|
<button
|
|
@@ -39409,7 +39528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39409
39528
|
[disabled]="!editor.hasSelection()"
|
|
39410
39529
|
(click)="editor.deleteSelected(slideIndex())"
|
|
39411
39530
|
>
|
|
39412
|
-
|
|
39531
|
+
<svg lucideTrash2 class="h-4 w-4"></svg>
|
|
39413
39532
|
</button>
|
|
39414
39533
|
|
|
39415
39534
|
<button
|
|
@@ -39419,7 +39538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39419
39538
|
[disabled]="!editor.hasSelection()"
|
|
39420
39539
|
(click)="editor.bringSelectedToFront(slideIndex())"
|
|
39421
39540
|
>
|
|
39422
|
-
|
|
39541
|
+
<svg lucideChevronsUp class="h-4 w-4"></svg>
|
|
39423
39542
|
</button>
|
|
39424
39543
|
|
|
39425
39544
|
<button
|
|
@@ -39429,7 +39548,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39429
39548
|
[disabled]="!editor.hasSelection()"
|
|
39430
39549
|
(click)="editor.sendSelectedToBack(slideIndex())"
|
|
39431
39550
|
>
|
|
39432
|
-
|
|
39551
|
+
<svg lucideChevronsDown class="h-4 w-4"></svg>
|
|
39433
39552
|
</button>
|
|
39434
39553
|
|
|
39435
39554
|
<button
|
|
@@ -39439,7 +39558,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39439
39558
|
[disabled]="!editor.hasSelection()"
|
|
39440
39559
|
(click)="editor.bringSelectedForward(slideIndex())"
|
|
39441
39560
|
>
|
|
39442
|
-
|
|
39561
|
+
<svg lucideArrowUp class="h-4 w-4"></svg>
|
|
39443
39562
|
</button>
|
|
39444
39563
|
|
|
39445
39564
|
<button
|
|
@@ -39449,7 +39568,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39449
39568
|
[disabled]="!editor.hasSelection()"
|
|
39450
39569
|
(click)="editor.sendSelectedBackward(slideIndex())"
|
|
39451
39570
|
>
|
|
39452
|
-
|
|
39571
|
+
<svg lucideArrowDown class="h-4 w-4"></svg>
|
|
39453
39572
|
</button>
|
|
39454
39573
|
<button
|
|
39455
39574
|
type="button"
|
|
@@ -39458,7 +39577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39458
39577
|
[disabled]="!canGroup()"
|
|
39459
39578
|
(click)="editor.groupSelected(slideIndex())"
|
|
39460
39579
|
>
|
|
39461
|
-
|
|
39580
|
+
<svg lucideGroup class="h-4 w-4"></svg>
|
|
39462
39581
|
</button>
|
|
39463
39582
|
<button
|
|
39464
39583
|
type="button"
|
|
@@ -39467,7 +39586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39467
39586
|
[disabled]="!canUngroup()"
|
|
39468
39587
|
(click)="editor.ungroupSelected(slideIndex())"
|
|
39469
39588
|
>
|
|
39470
|
-
|
|
39589
|
+
<svg lucideUngroup class="h-4 w-4"></svg>
|
|
39471
39590
|
</button>
|
|
39472
39591
|
</div>
|
|
39473
39592
|
|
|
@@ -39488,7 +39607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39488
39607
|
[disabled]="!canAlign()"
|
|
39489
39608
|
(click)="editor.alignSelected(slideIndex(), 'left')"
|
|
39490
39609
|
>
|
|
39491
|
-
|
|
39610
|
+
<svg lucideTextAlignStart class="h-4 w-4"></svg>
|
|
39492
39611
|
</button>
|
|
39493
39612
|
<button
|
|
39494
39613
|
type="button"
|
|
@@ -39497,7 +39616,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39497
39616
|
[disabled]="!canAlign()"
|
|
39498
39617
|
(click)="editor.alignSelected(slideIndex(), 'centerH')"
|
|
39499
39618
|
>
|
|
39500
|
-
|
|
39619
|
+
<svg lucideTextAlignCenter class="h-4 w-4"></svg>
|
|
39501
39620
|
</button>
|
|
39502
39621
|
<button
|
|
39503
39622
|
type="button"
|
|
@@ -39506,7 +39625,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39506
39625
|
[disabled]="!canAlign()"
|
|
39507
39626
|
(click)="editor.alignSelected(slideIndex(), 'right')"
|
|
39508
39627
|
>
|
|
39509
|
-
|
|
39628
|
+
<svg lucideTextAlignEnd class="h-4 w-4"></svg>
|
|
39510
39629
|
</button>
|
|
39511
39630
|
<button
|
|
39512
39631
|
type="button"
|
|
@@ -39515,7 +39634,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39515
39634
|
[disabled]="!canAlign()"
|
|
39516
39635
|
(click)="editor.alignSelected(slideIndex(), 'top')"
|
|
39517
39636
|
>
|
|
39518
|
-
|
|
39637
|
+
<svg lucideChevronUp class="h-4 w-4"></svg>
|
|
39519
39638
|
</button>
|
|
39520
39639
|
<button
|
|
39521
39640
|
type="button"
|
|
@@ -39524,7 +39643,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39524
39643
|
[disabled]="!canAlign()"
|
|
39525
39644
|
(click)="editor.alignSelected(slideIndex(), 'middle')"
|
|
39526
39645
|
>
|
|
39527
|
-
|
|
39646
|
+
<svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
|
|
39528
39647
|
</button>
|
|
39529
39648
|
<button
|
|
39530
39649
|
type="button"
|
|
@@ -39533,7 +39652,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39533
39652
|
[disabled]="!canAlign()"
|
|
39534
39653
|
(click)="editor.alignSelected(slideIndex(), 'bottom')"
|
|
39535
39654
|
>
|
|
39536
|
-
|
|
39655
|
+
<svg lucideChevronDown class="h-4 w-4"></svg>
|
|
39537
39656
|
</button>
|
|
39538
39657
|
<button
|
|
39539
39658
|
type="button"
|
|
@@ -39542,7 +39661,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39542
39661
|
[disabled]="!canDistribute()"
|
|
39543
39662
|
(click)="editor.distributeSelected(slideIndex(), 'horizontal')"
|
|
39544
39663
|
>
|
|
39545
|
-
|
|
39664
|
+
<svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
|
|
39546
39665
|
</button>
|
|
39547
39666
|
<button
|
|
39548
39667
|
type="button"
|
|
@@ -39551,7 +39670,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
39551
39670
|
[disabled]="!canDistribute()"
|
|
39552
39671
|
(click)="editor.distributeSelected(slideIndex(), 'vertical')"
|
|
39553
39672
|
>
|
|
39554
|
-
|
|
39673
|
+
<svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
|
|
39555
39674
|
</button>
|
|
39556
39675
|
</div>
|
|
39557
39676
|
</div>
|
|
@@ -42613,6 +42732,7 @@ class SmartArtRendererComponent {
|
|
|
42613
42732
|
} @else if (hasDrawingShapes()) {
|
|
42614
42733
|
<svg
|
|
42615
42734
|
class="pptx-ng-smartart-svg"
|
|
42735
|
+
data-testid="smartart-drawing-shapes"
|
|
42616
42736
|
[attr.viewBox]="svgViewBox()"
|
|
42617
42737
|
preserveAspectRatio="xMidYMid meet"
|
|
42618
42738
|
>
|
|
@@ -42669,6 +42789,7 @@ class SmartArtRendererComponent {
|
|
|
42669
42789
|
} @else if (hasLayout()) {
|
|
42670
42790
|
<svg
|
|
42671
42791
|
class="pptx-ng-smartart-svg"
|
|
42792
|
+
[attr.data-testid]="'smartart-' + layout().family"
|
|
42672
42793
|
[attr.viewBox]="layout().viewBox"
|
|
42673
42794
|
preserveAspectRatio="xMidYMid meet"
|
|
42674
42795
|
[attr.data-layout-family]="layout().family"
|
|
@@ -42847,6 +42968,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
42847
42968
|
} @else if (hasDrawingShapes()) {
|
|
42848
42969
|
<svg
|
|
42849
42970
|
class="pptx-ng-smartart-svg"
|
|
42971
|
+
data-testid="smartart-drawing-shapes"
|
|
42850
42972
|
[attr.viewBox]="svgViewBox()"
|
|
42851
42973
|
preserveAspectRatio="xMidYMid meet"
|
|
42852
42974
|
>
|
|
@@ -42903,6 +43025,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
42903
43025
|
} @else if (hasLayout()) {
|
|
42904
43026
|
<svg
|
|
42905
43027
|
class="pptx-ng-smartart-svg"
|
|
43028
|
+
[attr.data-testid]="'smartart-' + layout().family"
|
|
42906
43029
|
[attr.viewBox]="layout().viewBox"
|
|
42907
43030
|
preserveAspectRatio="xMidYMid meet"
|
|
42908
43031
|
[attr.data-layout-family]="layout().family"
|
|
@@ -43742,11 +43865,11 @@ class AnimationAuthorPanelComponent {
|
|
|
43742
43865
|
@if (currentHasAnimation()) {
|
|
43743
43866
|
<button
|
|
43744
43867
|
type="button"
|
|
43745
|
-
class="pptx-ng-anim__remove-btn"
|
|
43868
|
+
class="pptx-ng-anim__remove-btn inline-flex items-center gap-1"
|
|
43746
43869
|
[title]="'pptx.animations.removeFromElement' | translate"
|
|
43747
43870
|
(click)="onRemove()"
|
|
43748
43871
|
>
|
|
43749
|
-
|
|
43872
|
+
<svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.animations.remove' | translate }}
|
|
43750
43873
|
</button>
|
|
43751
43874
|
}
|
|
43752
43875
|
</div>
|
|
@@ -44004,32 +44127,34 @@ class AnimationAuthorPanelComponent {
|
|
|
44004
44127
|
<div class="pptx-ng-anim__row">
|
|
44005
44128
|
<button
|
|
44006
44129
|
type="button"
|
|
44007
|
-
class="pptx-ng-anim__order-btn"
|
|
44130
|
+
class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
|
|
44008
44131
|
[disabled]="!canEdit()"
|
|
44009
44132
|
[title]="'pptx.animations.moveEarlier' | translate"
|
|
44010
44133
|
(click)="onMoveUp()"
|
|
44011
44134
|
>
|
|
44012
|
-
|
|
44135
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
44136
|
+
{{ 'pptx.animations.earlier' | translate }}
|
|
44013
44137
|
</button>
|
|
44014
44138
|
<button
|
|
44015
44139
|
type="button"
|
|
44016
|
-
class="pptx-ng-anim__order-btn"
|
|
44140
|
+
class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
|
|
44017
44141
|
[disabled]="!canEdit()"
|
|
44018
44142
|
[title]="'pptx.animations.moveLater' | translate"
|
|
44019
44143
|
(click)="onMoveDown()"
|
|
44020
44144
|
>
|
|
44021
|
-
|
|
44145
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
44146
|
+
{{ 'pptx.animations.later' | translate }}
|
|
44022
44147
|
</button>
|
|
44023
44148
|
</div>
|
|
44024
44149
|
</section>
|
|
44025
44150
|
}
|
|
44026
44151
|
<!-- end @if (currentHasAnimation()) -->
|
|
44027
44152
|
</aside>
|
|
44028
|
-
`, isInline: true, styles: [".pptx-ng-anim{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-anim__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem;border-bottom:1px solid var(--pptx-inspector-border, #333);margin-bottom:.35rem}.pptx-ng-anim__title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888)}.pptx-ng-anim__subheading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);padding:.4rem 0 .2rem;border-top:1px solid var(--pptx-inspector-border, #333);margin-top:.2rem}.pptx-ng-anim__section{padding:.25rem 0;border-bottom:1px solid var(--pptx-inspector-border, #2a2a2a)}.pptx-ng-anim__section:last-child{border-bottom:none}.pptx-ng-anim__label{display:block;font-size:10px;color:var(--pptx-inspector-muted, #888);margin-bottom:.2rem}.pptx-ng-anim__select,.pptx-ng-anim__input{width:100%;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:3px 6px;font-size:12px;box-sizing:border-box}.pptx-ng-anim__select:disabled,.pptx-ng-anim__input:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__direction-grid{display:flex;flex-wrap:wrap;gap:.25rem}.pptx-ng-anim__dir-btn{width:30px;height:30px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.pptx-ng-anim__dir-btn.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-anim__dir-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__row{display:flex;gap:.35rem}.pptx-ng-anim__order-btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-anim__order-btn:hover:not(:disabled){background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-anim__order-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__remove-btn{padding:2px 6px;background:transparent;border:1px solid var(--pptx-inspector-danger-border, #6b2a2a);color:var(--pptx-inspector-danger, #f47c7c);border-radius:3px;cursor:pointer;font-size:10px}.pptx-ng-anim__remove-btn:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}@media(pointer:coarse),(max-width:640px){.pptx-ng-anim{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-anim__select,.pptx-ng-anim__input{min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-anim__dir-btn{width:40px;height:40px}.pptx-ng-anim__order-btn{min-height:40px;font-size:13px}}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
44153
|
+
`, isInline: true, styles: [".pptx-ng-anim{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-anim__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem;border-bottom:1px solid var(--pptx-inspector-border, #333);margin-bottom:.35rem}.pptx-ng-anim__title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888)}.pptx-ng-anim__subheading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);padding:.4rem 0 .2rem;border-top:1px solid var(--pptx-inspector-border, #333);margin-top:.2rem}.pptx-ng-anim__section{padding:.25rem 0;border-bottom:1px solid var(--pptx-inspector-border, #2a2a2a)}.pptx-ng-anim__section:last-child{border-bottom:none}.pptx-ng-anim__label{display:block;font-size:10px;color:var(--pptx-inspector-muted, #888);margin-bottom:.2rem}.pptx-ng-anim__select,.pptx-ng-anim__input{width:100%;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:3px 6px;font-size:12px;box-sizing:border-box}.pptx-ng-anim__select:disabled,.pptx-ng-anim__input:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__direction-grid{display:flex;flex-wrap:wrap;gap:.25rem}.pptx-ng-anim__dir-btn{width:30px;height:30px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.pptx-ng-anim__dir-btn.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-anim__dir-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__row{display:flex;gap:.35rem}.pptx-ng-anim__order-btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-anim__order-btn:hover:not(:disabled){background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-anim__order-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__remove-btn{padding:2px 6px;background:transparent;border:1px solid var(--pptx-inspector-danger-border, #6b2a2a);color:var(--pptx-inspector-danger, #f47c7c);border-radius:3px;cursor:pointer;font-size:10px}.pptx-ng-anim__remove-btn:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}@media(pointer:coarse),(max-width:640px){.pptx-ng-anim{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-anim__select,.pptx-ng-anim__input{min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-anim__dir-btn{width:40px;height:40px}.pptx-ng-anim__order-btn{min-height:40px;font-size:13px}}\n"], dependencies: [{ kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
44029
44154
|
}
|
|
44030
44155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AnimationAuthorPanelComponent, decorators: [{
|
|
44031
44156
|
type: Component,
|
|
44032
|
-
args: [{ selector: 'pptx-animation-author-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
|
|
44157
|
+
args: [{ selector: 'pptx-animation-author-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, LucideX, LucideArrowUp, LucideArrowDown], template: `
|
|
44033
44158
|
<aside class="pptx-ng-anim" [attr.aria-label]="'pptx.animations.propertiesLabel' | translate">
|
|
44034
44159
|
<!-- ── Header ───────────────────────────────────────────────────── -->
|
|
44035
44160
|
<div class="pptx-ng-anim__header">
|
|
@@ -44037,11 +44162,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
44037
44162
|
@if (currentHasAnimation()) {
|
|
44038
44163
|
<button
|
|
44039
44164
|
type="button"
|
|
44040
|
-
class="pptx-ng-anim__remove-btn"
|
|
44165
|
+
class="pptx-ng-anim__remove-btn inline-flex items-center gap-1"
|
|
44041
44166
|
[title]="'pptx.animations.removeFromElement' | translate"
|
|
44042
44167
|
(click)="onRemove()"
|
|
44043
44168
|
>
|
|
44044
|
-
|
|
44169
|
+
<svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.animations.remove' | translate }}
|
|
44045
44170
|
</button>
|
|
44046
44171
|
}
|
|
44047
44172
|
</div>
|
|
@@ -44299,21 +44424,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
44299
44424
|
<div class="pptx-ng-anim__row">
|
|
44300
44425
|
<button
|
|
44301
44426
|
type="button"
|
|
44302
|
-
class="pptx-ng-anim__order-btn"
|
|
44427
|
+
class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
|
|
44303
44428
|
[disabled]="!canEdit()"
|
|
44304
44429
|
[title]="'pptx.animations.moveEarlier' | translate"
|
|
44305
44430
|
(click)="onMoveUp()"
|
|
44306
44431
|
>
|
|
44307
|
-
|
|
44432
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
44433
|
+
{{ 'pptx.animations.earlier' | translate }}
|
|
44308
44434
|
</button>
|
|
44309
44435
|
<button
|
|
44310
44436
|
type="button"
|
|
44311
|
-
class="pptx-ng-anim__order-btn"
|
|
44437
|
+
class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
|
|
44312
44438
|
[disabled]="!canEdit()"
|
|
44313
44439
|
[title]="'pptx.animations.moveLater' | translate"
|
|
44314
44440
|
(click)="onMoveDown()"
|
|
44315
44441
|
>
|
|
44316
|
-
|
|
44442
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
44443
|
+
{{ 'pptx.animations.later' | translate }}
|
|
44317
44444
|
</button>
|
|
44318
44445
|
</div>
|
|
44319
44446
|
</section>
|
|
@@ -51896,7 +52023,7 @@ class InspectorPanelComponent {
|
|
|
51896
52023
|
[title]="'pptx.contextMenu.bringForward' | translate"
|
|
51897
52024
|
(click)="editor.bringSelectedForward(slideIndex())"
|
|
51898
52025
|
>
|
|
51899
|
-
|
|
52026
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
51900
52027
|
</button>
|
|
51901
52028
|
<button
|
|
51902
52029
|
type="button"
|
|
@@ -51904,7 +52031,7 @@ class InspectorPanelComponent {
|
|
|
51904
52031
|
[title]="'pptx.contextMenu.sendBackward' | translate"
|
|
51905
52032
|
(click)="editor.sendSelectedBackward(slideIndex())"
|
|
51906
52033
|
>
|
|
51907
|
-
|
|
52034
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
51908
52035
|
</button>
|
|
51909
52036
|
</div>
|
|
51910
52037
|
</section>
|
|
@@ -52016,7 +52143,7 @@ class InspectorPanelComponent {
|
|
|
52016
52143
|
</div>
|
|
52017
52144
|
</section>
|
|
52018
52145
|
</aside>
|
|
52019
|
-
`, isInline: true, styles: [".pptx-ng-inspector{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-inspector__section{padding:.5rem 0;border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__section:last-child{border-bottom:none}.pptx-ng-inspector__heading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);margin:0 0 .35rem}.pptx-ng-inspector__details{border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__summary{padding:.5rem 0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-inspector__row{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.pptx-ng-inspector__row:last-child{margin-bottom:0}.pptx-ng-inspector__row--toggles{gap:.25rem}.pptx-ng-inspector__label{font-size:10px;color:var(--pptx-inspector-muted, #888);min-width:32px;text-align:right;flex-shrink:0}.pptx-ng-inspector__input{background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:2px 4px;font-size:12px}.pptx-ng-inspector__input--number{width:62px;text-align:right}.pptx-ng-inspector__color{width:32px;height:22px;border:1px solid var(--pptx-inspector-border, #444);border-radius:3px;padding:1px;cursor:pointer;background:transparent;flex-shrink:0}.pptx-ng-inspector__toggle{width:26px;height:22px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.pptx-ng-inspector.is-mobile{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}@media(pointer:coarse),(max-width:767px){.pptx-ng-inspector{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}}.pptx-ng-inspector__toggle.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-inspector__btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-inspector__btn:hover{background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-inspector__btn--danger{color:var(--pptx-inspector-danger, #f47c7c);border-color:var(--pptx-inspector-danger-border, #6b2a2a)}.pptx-ng-inspector__btn--danger:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "component", type: GradientPickerComponent, selector: "pptx-gradient-picker", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: EffectsPanelComponent, selector: "pptx-effects-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TextAdvancedPanelComponent, selector: "pptx-text-advanced-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TableDataEditorComponent, selector: "pptx-table-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TablePropertiesComponent, selector: "pptx-table-properties", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TableCellFormattingComponent, selector: "pptx-table-cell-formatting", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: ChartDataEditorComponent, selector: "pptx-chart-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: SmartArtPropertiesComponent, selector: "pptx-smart-art-properties", inputs: ["smartArtData", "canEdit"], outputs: ["smartArtDataChange"] }, { kind: "component", type: AnimationAuthorPanelComponent, selector: "pptx-animation-author-panel", inputs: ["element", "slideIndex", "animations", "canEdit"], outputs: ["animationsChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
52146
|
+
`, isInline: true, styles: [".pptx-ng-inspector{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-inspector__section{padding:.5rem 0;border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__section:last-child{border-bottom:none}.pptx-ng-inspector__heading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);margin:0 0 .35rem}.pptx-ng-inspector__details{border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__summary{padding:.5rem 0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-inspector__row{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.pptx-ng-inspector__row:last-child{margin-bottom:0}.pptx-ng-inspector__row--toggles{gap:.25rem}.pptx-ng-inspector__label{font-size:10px;color:var(--pptx-inspector-muted, #888);min-width:32px;text-align:right;flex-shrink:0}.pptx-ng-inspector__input{background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:2px 4px;font-size:12px}.pptx-ng-inspector__input--number{width:62px;text-align:right}.pptx-ng-inspector__color{width:32px;height:22px;border:1px solid var(--pptx-inspector-border, #444);border-radius:3px;padding:1px;cursor:pointer;background:transparent;flex-shrink:0}.pptx-ng-inspector__toggle{width:26px;height:22px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.pptx-ng-inspector.is-mobile{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}@media(pointer:coarse),(max-width:767px){.pptx-ng-inspector{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}}.pptx-ng-inspector__toggle.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-inspector__btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-inspector__btn:hover{background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-inspector__btn--danger{color:var(--pptx-inspector-danger, #f47c7c);border-color:var(--pptx-inspector-danger-border, #6b2a2a)}.pptx-ng-inspector__btn--danger:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "component", type: GradientPickerComponent, selector: "pptx-gradient-picker", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: EffectsPanelComponent, selector: "pptx-effects-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TextAdvancedPanelComponent, selector: "pptx-text-advanced-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TableDataEditorComponent, selector: "pptx-table-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TablePropertiesComponent, selector: "pptx-table-properties", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TableCellFormattingComponent, selector: "pptx-table-cell-formatting", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: ChartDataEditorComponent, selector: "pptx-chart-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: SmartArtPropertiesComponent, selector: "pptx-smart-art-properties", inputs: ["smartArtData", "canEdit"], outputs: ["smartArtDataChange"] }, { kind: "component", type: AnimationAuthorPanelComponent, selector: "pptx-animation-author-panel", inputs: ["element", "slideIndex", "animations", "canEdit"], outputs: ["animationsChange"] }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
52020
52147
|
}
|
|
52021
52148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: InspectorPanelComponent, decorators: [{
|
|
52022
52149
|
type: Component,
|
|
@@ -52031,6 +52158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
52031
52158
|
SmartArtPropertiesComponent,
|
|
52032
52159
|
AnimationAuthorPanelComponent,
|
|
52033
52160
|
TranslatePipe,
|
|
52161
|
+
LucideArrowUp,
|
|
52162
|
+
LucideArrowDown,
|
|
52034
52163
|
], providers: [IsMobileService], template: `
|
|
52035
52164
|
<!--
|
|
52036
52165
|
NOTE (mobile-safe inputs): every numeric / colour input is keyed on the
|
|
@@ -52272,7 +52401,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
52272
52401
|
[title]="'pptx.contextMenu.bringForward' | translate"
|
|
52273
52402
|
(click)="editor.bringSelectedForward(slideIndex())"
|
|
52274
52403
|
>
|
|
52275
|
-
|
|
52404
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
52276
52405
|
</button>
|
|
52277
52406
|
<button
|
|
52278
52407
|
type="button"
|
|
@@ -52280,7 +52409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
52280
52409
|
[title]="'pptx.contextMenu.sendBackward' | translate"
|
|
52281
52410
|
(click)="editor.sendSelectedBackward(slideIndex())"
|
|
52282
52411
|
>
|
|
52283
|
-
|
|
52412
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
52284
52413
|
</button>
|
|
52285
52414
|
</div>
|
|
52286
52415
|
</section>
|
|
@@ -54992,9 +55121,40 @@ class MediaRendererComponent {
|
|
|
54992
55121
|
...(ngDevMode ? [{ debugName: "zIndex" }] : /* istanbul ignore next */ []));
|
|
54993
55122
|
interactive = input(true, /* @ts-ignore */
|
|
54994
55123
|
...(ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []));
|
|
55124
|
+
/**
|
|
55125
|
+
* True only on the live presentation stage. When set, the media element
|
|
55126
|
+
* starts playing on its own once mounted (as PowerPoint does when a slide
|
|
55127
|
+
* with media becomes active) instead of waiting for a manual click; the
|
|
55128
|
+
* thumbnail / sorter / editor canvases leave it false so their media is quiet.
|
|
55129
|
+
*/
|
|
55130
|
+
presenting = input(false, /* @ts-ignore */
|
|
55131
|
+
...(ngDevMode ? [{ debugName: "presenting" }] : /* istanbul ignore next */ []));
|
|
54995
55132
|
/** Fallback text shown when neither a source nor a poster is available. */
|
|
54996
55133
|
placeholderLabel = input('Media', /* @ts-ignore */
|
|
54997
55134
|
...(ngDevMode ? [{ debugName: "placeholderLabel" }] : /* istanbul ignore next */ []));
|
|
55135
|
+
/** The live `<video>`/`<audio>` node (only one is mounted at a time). */
|
|
55136
|
+
mediaElRef = viewChild('mediaEl', /* @ts-ignore */
|
|
55137
|
+
...(ngDevMode ? [{ debugName: "mediaElRef" }] : /* istanbul ignore next */ []));
|
|
55138
|
+
constructor() {
|
|
55139
|
+
// Presentation autoplay: once the media node is in the DOM and this is the
|
|
55140
|
+
// live stage, start playback; pause again if it leaves present mode. Reads
|
|
55141
|
+
// mediaSrc so a source swap re-evaluates. The shared helper owns the
|
|
55142
|
+
// `.play()` + blocked-autoplay handling so all three bindings match.
|
|
55143
|
+
effect(() => {
|
|
55144
|
+
const el = this.mediaElRef()?.nativeElement;
|
|
55145
|
+
const presenting = this.presenting();
|
|
55146
|
+
this.mediaSrc();
|
|
55147
|
+
if (!el) {
|
|
55148
|
+
return;
|
|
55149
|
+
}
|
|
55150
|
+
if (presenting) {
|
|
55151
|
+
startMediaAutoplay(el, { trimStartMs: asMediaElement(this.element())?.trimStartMs });
|
|
55152
|
+
}
|
|
55153
|
+
else if (!el.paused) {
|
|
55154
|
+
el.pause();
|
|
55155
|
+
}
|
|
55156
|
+
});
|
|
55157
|
+
}
|
|
54998
55158
|
containerStyle = computed(() => getContainerStyle(this.element(), this.zIndex()), /* @ts-ignore */
|
|
54999
55159
|
...(ngDevMode ? [{ debugName: "containerStyle" }] : /* istanbul ignore next */ []));
|
|
55000
55160
|
/** Poster / preview frame data-URL (also used as the `<video poster>`). */
|
|
@@ -55020,7 +55180,7 @@ class MediaRendererComponent {
|
|
|
55020
55180
|
clrChangeParams = computed(() => getClrChangeParams(this.element()), /* @ts-ignore */
|
|
55021
55181
|
...(ngDevMode ? [{ debugName: "clrChangeParams" }] : /* istanbul ignore next */ []));
|
|
55022
55182
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MediaRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
55023
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: MediaRendererComponent, isStandalone: true, selector: "pptx-media-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, placeholderLabel: { classPropertyName: "placeholderLabel", publicName: "placeholderLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
55183
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: MediaRendererComponent, isStandalone: true, selector: "pptx-media-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, presenting: { classPropertyName: "presenting", publicName: "presenting", isSignal: true, isRequired: false, transformFunction: null }, placeholderLabel: { classPropertyName: "placeholderLabel", publicName: "placeholderLabel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "mediaElRef", first: true, predicate: ["mediaEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
55024
55184
|
<div
|
|
55025
55185
|
class="pptx-ng-element pptx-ng-media"
|
|
55026
55186
|
[ngStyle]="containerStyle()"
|
|
@@ -55030,6 +55190,7 @@ class MediaRendererComponent {
|
|
|
55030
55190
|
@if (mediaSrc(); as src) {
|
|
55031
55191
|
@if (mediaKind() === 'audio') {
|
|
55032
55192
|
<audio
|
|
55193
|
+
#mediaEl
|
|
55033
55194
|
class="pptx-ng-media-el pptx-ng-media-audio"
|
|
55034
55195
|
[class.pptx-ng-media-inert]="interactive()"
|
|
55035
55196
|
[src]="src + trimFragment()"
|
|
@@ -55039,6 +55200,7 @@ class MediaRendererComponent {
|
|
|
55039
55200
|
></audio>
|
|
55040
55201
|
} @else {
|
|
55041
55202
|
<video
|
|
55203
|
+
#mediaEl
|
|
55042
55204
|
class="pptx-ng-media-el pptx-ng-media-video"
|
|
55043
55205
|
[class.pptx-ng-media-inert]="interactive()"
|
|
55044
55206
|
[src]="src + trimFragment()"
|
|
@@ -55088,6 +55250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55088
55250
|
@if (mediaSrc(); as src) {
|
|
55089
55251
|
@if (mediaKind() === 'audio') {
|
|
55090
55252
|
<audio
|
|
55253
|
+
#mediaEl
|
|
55091
55254
|
class="pptx-ng-media-el pptx-ng-media-audio"
|
|
55092
55255
|
[class.pptx-ng-media-inert]="interactive()"
|
|
55093
55256
|
[src]="src + trimFragment()"
|
|
@@ -55097,6 +55260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55097
55260
|
></audio>
|
|
55098
55261
|
} @else {
|
|
55099
55262
|
<video
|
|
55263
|
+
#mediaEl
|
|
55100
55264
|
class="pptx-ng-media-el pptx-ng-media-video"
|
|
55101
55265
|
[class.pptx-ng-media-inert]="interactive()"
|
|
55102
55266
|
[src]="src + trimFragment()"
|
|
@@ -55133,7 +55297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55133
55297
|
}
|
|
55134
55298
|
</div>
|
|
55135
55299
|
`, styles: [".pptx-ng-media-el{display:block;pointer-events:auto}.pptx-ng-media-video{width:100%;height:100%;object-fit:contain}.pptx-ng-media-audio{width:100%}.pptx-ng-media-inert{pointer-events:none}.pptx-ng-img{width:100%;height:100%;object-fit:contain;display:block}\n"] }]
|
|
55136
|
-
}], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], placeholderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholderLabel", required: false }] }] } });
|
|
55300
|
+
}], ctorParameters: () => [], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], presenting: [{ type: i0.Input, args: [{ isSignal: true, alias: "presenting", required: false }] }], placeholderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholderLabel", required: false }] }], mediaElRef: [{ type: i0.ViewChild, args: ['mediaEl', { isSignal: true }] }] } });
|
|
55137
55301
|
|
|
55138
55302
|
/**
|
|
55139
55303
|
* Pure helpers for `Model3DRendererComponent`.
|
|
@@ -55576,6 +55740,18 @@ class OleRendererComponent {
|
|
|
55576
55740
|
return rows.map((row) => `${row.label}: ${row.value}`).join(', ');
|
|
55577
55741
|
}, /* @ts-ignore */
|
|
55578
55742
|
...(ngDevMode ? [{ debugName: "infoTitle" }] : /* istanbul ignore next */ []));
|
|
55743
|
+
/**
|
|
55744
|
+
* Open the recovered embedded payload in a new browser tab. Routes through
|
|
55745
|
+
* the shared {@link openUrlInNewTab} helper, which converts the `data:` URL to
|
|
55746
|
+
* a Blob object URL first: browsers silently refuse to navigate a new
|
|
55747
|
+
* top-level tab straight to a `data:` URL.
|
|
55748
|
+
*/
|
|
55749
|
+
openEmbedded() {
|
|
55750
|
+
const href = this.actions().downloadHref;
|
|
55751
|
+
if (href) {
|
|
55752
|
+
openUrlInNewTab(href);
|
|
55753
|
+
}
|
|
55754
|
+
}
|
|
55579
55755
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: OleRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
55580
55756
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: OleRendererComponent, isStandalone: true, selector: "pptx-ole-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
55581
55757
|
<div
|
|
@@ -55853,18 +56029,16 @@ class OleRendererComponent {
|
|
|
55853
56029
|
{{ 'pptx.ole.download' | translate }}
|
|
55854
56030
|
</a>
|
|
55855
56031
|
@if (actions().canOpen) {
|
|
55856
|
-
<
|
|
56032
|
+
<button
|
|
56033
|
+
type="button"
|
|
55857
56034
|
class="pptx-ng-ole-action"
|
|
55858
|
-
[href]="actions().downloadHref"
|
|
55859
|
-
target="_blank"
|
|
55860
|
-
rel="noopener noreferrer"
|
|
55861
56035
|
[attr.aria-label]="
|
|
55862
56036
|
'pptx.ole.openFileAria' | translate: { file: actions().downloadFileName }
|
|
55863
56037
|
"
|
|
55864
|
-
(click)="$event.stopPropagation()"
|
|
56038
|
+
(click)="$event.stopPropagation(); openEmbedded()"
|
|
55865
56039
|
>
|
|
55866
56040
|
{{ 'pptx.ole.open' | translate }}
|
|
55867
|
-
</
|
|
56041
|
+
</button>
|
|
55868
56042
|
}
|
|
55869
56043
|
</div>
|
|
55870
56044
|
}
|
|
@@ -56149,18 +56323,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
56149
56323
|
{{ 'pptx.ole.download' | translate }}
|
|
56150
56324
|
</a>
|
|
56151
56325
|
@if (actions().canOpen) {
|
|
56152
|
-
<
|
|
56326
|
+
<button
|
|
56327
|
+
type="button"
|
|
56153
56328
|
class="pptx-ng-ole-action"
|
|
56154
|
-
[href]="actions().downloadHref"
|
|
56155
|
-
target="_blank"
|
|
56156
|
-
rel="noopener noreferrer"
|
|
56157
56329
|
[attr.aria-label]="
|
|
56158
56330
|
'pptx.ole.openFileAria' | translate: { file: actions().downloadFileName }
|
|
56159
56331
|
"
|
|
56160
|
-
(click)="$event.stopPropagation()"
|
|
56332
|
+
(click)="$event.stopPropagation(); openEmbedded()"
|
|
56161
56333
|
>
|
|
56162
56334
|
{{ 'pptx.ole.open' | translate }}
|
|
56163
|
-
</
|
|
56335
|
+
</button>
|
|
56164
56336
|
}
|
|
56165
56337
|
</div>
|
|
56166
56338
|
}
|
|
@@ -57888,6 +58060,13 @@ class ElementRendererComponent {
|
|
|
57888
58060
|
*/
|
|
57889
58061
|
interactive = input(true, /* @ts-ignore */
|
|
57890
58062
|
...(ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []));
|
|
58063
|
+
/**
|
|
58064
|
+
* True only on the live presentation stage; threaded to the media renderer so
|
|
58065
|
+
* a slide's media autoplays when the slide becomes active (and to group
|
|
58066
|
+
* children so nested media autoplays too). False everywhere else.
|
|
58067
|
+
*/
|
|
58068
|
+
presenting = input(false, /* @ts-ignore */
|
|
58069
|
+
...(ngDevMode ? [{ debugName: "presenting" }] : /* istanbul ignore next */ []));
|
|
57891
58070
|
/** Whether inline editing (e.g. table-cell text input) is enabled. */
|
|
57892
58071
|
editable = input(false, /* @ts-ignore */
|
|
57893
58072
|
...(ngDevMode ? [{ debugName: "editable" }] : /* istanbul ignore next */ []));
|
|
@@ -58075,7 +58254,7 @@ class ElementRendererComponent {
|
|
|
58075
58254
|
}, /* @ts-ignore */
|
|
58076
58255
|
...(ngDevMode ? [{ debugName: "placeholderLabel" }] : /* istanbul ignore next */ []));
|
|
58077
58256
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ElementRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58078
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ElementRendererComponent, isStandalone: true, selector: "pptx-element-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, obstacles: { classPropertyName: "obstacles", publicName: "obstacles", isSignal: true, isRequired: false, transformFunction: null }, canvasWidth: { classPropertyName: "canvasWidth", publicName: "canvasWidth", isSignal: true, isRequired: false, transformFunction: null }, canvasHeight: { classPropertyName: "canvasHeight", publicName: "canvasHeight", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, fieldContext: { classPropertyName: "fieldContext", publicName: "fieldContext", isSignal: true, isRequired: false, transformFunction: null }, editTemplateMode: { classPropertyName: "editTemplateMode", publicName: "editTemplateMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cellCommit: "cellCommit", tableChange: "tableChange" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
58257
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ElementRendererComponent, isStandalone: true, selector: "pptx-element-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, obstacles: { classPropertyName: "obstacles", publicName: "obstacles", isSignal: true, isRequired: false, transformFunction: null }, canvasWidth: { classPropertyName: "canvasWidth", publicName: "canvasWidth", isSignal: true, isRequired: false, transformFunction: null }, canvasHeight: { classPropertyName: "canvasHeight", publicName: "canvasHeight", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, presenting: { classPropertyName: "presenting", publicName: "presenting", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, fieldContext: { classPropertyName: "fieldContext", publicName: "fieldContext", isSignal: true, isRequired: false, transformFunction: null }, editTemplateMode: { classPropertyName: "editTemplateMode", publicName: "editTemplateMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cellCommit: "cellCommit", tableChange: "tableChange" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
58079
58258
|
@switch (true) {
|
|
58080
58259
|
@case (element().type === 'connector') {
|
|
58081
58260
|
<pptx-connector-renderer
|
|
@@ -58177,6 +58356,7 @@ class ElementRendererComponent {
|
|
|
58177
58356
|
[mediaDataUrls]="mediaDataUrls()"
|
|
58178
58357
|
[zIndex]="$index"
|
|
58179
58358
|
[interactive]="interactive()"
|
|
58359
|
+
[presenting]="presenting()"
|
|
58180
58360
|
[fieldContext]="fieldContext()"
|
|
58181
58361
|
/>
|
|
58182
58362
|
}
|
|
@@ -58209,6 +58389,7 @@ class ElementRendererComponent {
|
|
|
58209
58389
|
[mediaDataUrls]="mediaDataUrls()"
|
|
58210
58390
|
[zIndex]="zIndex()"
|
|
58211
58391
|
[interactive]="interactive()"
|
|
58392
|
+
[presenting]="presenting()"
|
|
58212
58393
|
[placeholderLabel]="placeholderLabel()"
|
|
58213
58394
|
/>
|
|
58214
58395
|
}
|
|
@@ -58341,7 +58522,7 @@ class ElementRendererComponent {
|
|
|
58341
58522
|
</defs>
|
|
58342
58523
|
</svg>
|
|
58343
58524
|
}
|
|
58344
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ElementRendererComponent, selector: "pptx-element-renderer", inputs: ["element", "mediaDataUrls", "zIndex", "obstacles", "canvasWidth", "canvasHeight", "interactive", "editable", "fieldContext", "editTemplateMode"], outputs: ["cellCommit", "tableChange"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ConnectorRendererComponent, selector: "pptx-connector-renderer", inputs: ["element", "zIndex", "obstacles", "canvasWidth", "canvasHeight", "interactive"] }, { kind: "component", type: TableRendererComponent, selector: "pptx-table-renderer", inputs: ["element", "editable"], outputs: ["cellCommit", "tableChange"] }, { kind: "component", type: ChartRendererComponent, selector: "pptx-chart-renderer", inputs: ["element"] }, { kind: "component", type: SmartArtRendererComponent, selector: "pptx-smart-art-renderer", inputs: ["element", "zIndex", "editable"] }, { kind: "component", type: SmartArt3DRendererComponent, selector: "pptx-smart-art-3d-renderer", inputs: ["element", "zIndex", "canEdit"] }, { kind: "component", type: InkRendererComponent, selector: "pptx-ink-renderer", inputs: ["element", "zIndex", "mediaDataUrls"] }, { kind: "component", type: MediaRendererComponent, selector: "pptx-media-renderer", inputs: ["element", "mediaDataUrls", "zIndex", "interactive", "placeholderLabel"] }, { kind: "component", type: OleRendererComponent, selector: "pptx-ole-renderer", inputs: ["element", "zIndex"] }, { kind: "component", type: Model3DRendererComponent, selector: "pptx-model3d-renderer", inputs: ["element", "zIndex", "mediaDataUrls", "interactive"] }, { kind: "component", type: ZoomRendererComponent, selector: "pptx-zoom-renderer", inputs: ["element", "zIndex", "mediaDataUrls"] }, { kind: "component", type: EquationRendererComponent, selector: "pptx-equation-renderer", inputs: ["equationXml", "equationNumber"] }, { kind: "component", type: ColorChangedImageComponent, selector: "pptx-color-changed-image", inputs: ["src", "clrChange", "alt", "imgClass", "imgStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58525
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ElementRendererComponent, selector: "pptx-element-renderer", inputs: ["element", "mediaDataUrls", "zIndex", "obstacles", "canvasWidth", "canvasHeight", "interactive", "presenting", "editable", "fieldContext", "editTemplateMode"], outputs: ["cellCommit", "tableChange"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ConnectorRendererComponent, selector: "pptx-connector-renderer", inputs: ["element", "zIndex", "obstacles", "canvasWidth", "canvasHeight", "interactive"] }, { kind: "component", type: TableRendererComponent, selector: "pptx-table-renderer", inputs: ["element", "editable"], outputs: ["cellCommit", "tableChange"] }, { kind: "component", type: ChartRendererComponent, selector: "pptx-chart-renderer", inputs: ["element"] }, { kind: "component", type: SmartArtRendererComponent, selector: "pptx-smart-art-renderer", inputs: ["element", "zIndex", "editable"] }, { kind: "component", type: SmartArt3DRendererComponent, selector: "pptx-smart-art-3d-renderer", inputs: ["element", "zIndex", "canEdit"] }, { kind: "component", type: InkRendererComponent, selector: "pptx-ink-renderer", inputs: ["element", "zIndex", "mediaDataUrls"] }, { kind: "component", type: MediaRendererComponent, selector: "pptx-media-renderer", inputs: ["element", "mediaDataUrls", "zIndex", "interactive", "presenting", "placeholderLabel"] }, { kind: "component", type: OleRendererComponent, selector: "pptx-ole-renderer", inputs: ["element", "zIndex"] }, { kind: "component", type: Model3DRendererComponent, selector: "pptx-model3d-renderer", inputs: ["element", "zIndex", "mediaDataUrls", "interactive"] }, { kind: "component", type: ZoomRendererComponent, selector: "pptx-zoom-renderer", inputs: ["element", "zIndex", "mediaDataUrls"] }, { kind: "component", type: EquationRendererComponent, selector: "pptx-equation-renderer", inputs: ["equationXml", "equationNumber"] }, { kind: "component", type: ColorChangedImageComponent, selector: "pptx-color-changed-image", inputs: ["src", "clrChange", "alt", "imgClass", "imgStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58345
58526
|
}
|
|
58346
58527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ElementRendererComponent, decorators: [{
|
|
58347
58528
|
type: Component,
|
|
@@ -58467,6 +58648,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
58467
58648
|
[mediaDataUrls]="mediaDataUrls()"
|
|
58468
58649
|
[zIndex]="$index"
|
|
58469
58650
|
[interactive]="interactive()"
|
|
58651
|
+
[presenting]="presenting()"
|
|
58470
58652
|
[fieldContext]="fieldContext()"
|
|
58471
58653
|
/>
|
|
58472
58654
|
}
|
|
@@ -58499,6 +58681,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
58499
58681
|
[mediaDataUrls]="mediaDataUrls()"
|
|
58500
58682
|
[zIndex]="zIndex()"
|
|
58501
58683
|
[interactive]="interactive()"
|
|
58684
|
+
[presenting]="presenting()"
|
|
58502
58685
|
[placeholderLabel]="placeholderLabel()"
|
|
58503
58686
|
/>
|
|
58504
58687
|
}
|
|
@@ -58633,7 +58816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
58633
58816
|
}
|
|
58634
58817
|
`,
|
|
58635
58818
|
}]
|
|
58636
|
-
}], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], obstacles: [{ type: i0.Input, args: [{ isSignal: true, alias: "obstacles", required: false }] }], canvasWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasWidth", required: false }] }], canvasHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasHeight", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], fieldContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldContext", required: false }] }], editTemplateMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "editTemplateMode", required: false }] }], cellCommit: [{ type: i0.Output, args: ["cellCommit"] }], tableChange: [{ type: i0.Output, args: ["tableChange"] }] } });
|
|
58819
|
+
}], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], obstacles: [{ type: i0.Input, args: [{ isSignal: true, alias: "obstacles", required: false }] }], canvasWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasWidth", required: false }] }], canvasHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasHeight", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], presenting: [{ type: i0.Input, args: [{ isSignal: true, alias: "presenting", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], fieldContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldContext", required: false }] }], editTemplateMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "editTemplateMode", required: false }] }], cellCommit: [{ type: i0.Output, args: ["cellCommit"] }], tableChange: [{ type: i0.Output, args: ["tableChange"] }] } });
|
|
58637
58820
|
|
|
58638
58821
|
/**
|
|
58639
58822
|
* ink-drawing.service.ts: Pen/highlighter/freeform/eraser drawing state +
|
|
@@ -59140,6 +59323,13 @@ class SlideCanvasComponent {
|
|
|
59140
59323
|
*/
|
|
59141
59324
|
interactive = input(true, /* @ts-ignore */
|
|
59142
59325
|
...(ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []));
|
|
59326
|
+
/**
|
|
59327
|
+
* True only for the live presentation stage: slide-content media autoplays.
|
|
59328
|
+
* Left false for thumbnails, the sorter and the editor canvas so their media
|
|
59329
|
+
* stays quiet (the template layer never autoplays regardless).
|
|
59330
|
+
*/
|
|
59331
|
+
presenting = input(false, /* @ts-ignore */
|
|
59332
|
+
...(ngDevMode ? [{ debugName: "presenting" }] : /* istanbul ignore next */ []));
|
|
59143
59333
|
/** Ids of currently-selected elements (drawn with a selection outline). */
|
|
59144
59334
|
selectedIds = input([], /* @ts-ignore */
|
|
59145
59335
|
...(ngDevMode ? [{ debugName: "selectedIds" }] : /* istanbul ignore next */ []));
|
|
@@ -59805,7 +59995,7 @@ class SlideCanvasComponent {
|
|
|
59805
59995
|
}, /* @ts-ignore */
|
|
59806
59996
|
...(ngDevMode ? [{ debugName: "stageStyle" }] : /* istanbul ignore next */ []));
|
|
59807
59997
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlideCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
59808
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SlideCanvasComponent, isStandalone: true, selector: "pptx-slide-canvas", inputs: { slide: { classPropertyName: "slide", publicName: "slide", isSignal: true, isRequired: false, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zoom: { classPropertyName: "zoom", publicName: "zoom", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", 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 }, snapToGuides: { classPropertyName: "snapToGuides", publicName: "snapToGuides", isSignal: true, isRequired: false, transformFunction: null }, autoFit: { classPropertyName: "autoFit", publicName: "autoFit", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null }, editingId: { classPropertyName: "editingId", publicName: "editingId", isSignal: true, isRequired: false, transformFunction: null }, editTemplateMode: { classPropertyName: "editTemplateMode", publicName: "editTemplateMode", isSignal: true, isRequired: false, transformFunction: null }, templateElements: { classPropertyName: "templateElements", publicName: "templateElements", isSignal: true, isRequired: false, transformFunction: null }, drawTool: { classPropertyName: "drawTool", publicName: "drawTool", isSignal: true, isRequired: false, transformFunction: null }, drawColor: { classPropertyName: "drawColor", publicName: "drawColor", isSignal: true, isRequired: false, transformFunction: null }, drawWidth: { classPropertyName: "drawWidth", publicName: "drawWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { elementSelect: "elementSelect", backgroundClick: "backgroundClick", transformStart: "transformStart", transformUpdate: "transformUpdate", contextMenu: "contextMenu", textEditStart: "textEditStart", textCommit: "textCommit", textCancel: "textCancel", textFormat: "textFormat", rotateUpdate: "rotateUpdate", marqueeSelect: "marqueeSelect", inkStrokeComplete: "inkStrokeComplete", eraserHit: "eraserHit", cellCommit: "cellCommit", tableChange: "tableChange" }, host: { listeners: { "document:pointermove": "onPointerMove($event)", "document:pointerup": "onPointerUp()" } }, providers: [CanvasFitService, InkDrawingService, RulerGuidesService], viewQueries: [{ propertyName: "textEditor", first: true, predicate: ["textEditor"], descendants: true, isSignal: true }, { propertyName: "stageRef", first: true, predicate: ["stage"], descendants: true, isSignal: true }, { propertyName: "viewportRef", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
59998
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SlideCanvasComponent, isStandalone: true, selector: "pptx-slide-canvas", inputs: { slide: { classPropertyName: "slide", publicName: "slide", isSignal: true, isRequired: false, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zoom: { classPropertyName: "zoom", publicName: "zoom", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", 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 }, snapToGuides: { classPropertyName: "snapToGuides", publicName: "snapToGuides", isSignal: true, isRequired: false, transformFunction: null }, autoFit: { classPropertyName: "autoFit", publicName: "autoFit", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, presenting: { classPropertyName: "presenting", publicName: "presenting", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null }, editingId: { classPropertyName: "editingId", publicName: "editingId", isSignal: true, isRequired: false, transformFunction: null }, editTemplateMode: { classPropertyName: "editTemplateMode", publicName: "editTemplateMode", isSignal: true, isRequired: false, transformFunction: null }, templateElements: { classPropertyName: "templateElements", publicName: "templateElements", isSignal: true, isRequired: false, transformFunction: null }, drawTool: { classPropertyName: "drawTool", publicName: "drawTool", isSignal: true, isRequired: false, transformFunction: null }, drawColor: { classPropertyName: "drawColor", publicName: "drawColor", isSignal: true, isRequired: false, transformFunction: null }, drawWidth: { classPropertyName: "drawWidth", publicName: "drawWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { elementSelect: "elementSelect", backgroundClick: "backgroundClick", transformStart: "transformStart", transformUpdate: "transformUpdate", contextMenu: "contextMenu", textEditStart: "textEditStart", textCommit: "textCommit", textCancel: "textCancel", textFormat: "textFormat", rotateUpdate: "rotateUpdate", marqueeSelect: "marqueeSelect", inkStrokeComplete: "inkStrokeComplete", eraserHit: "eraserHit", cellCommit: "cellCommit", tableChange: "tableChange" }, host: { listeners: { "document:pointermove": "onPointerMove($event)", "document:pointerup": "onPointerUp()" } }, providers: [CanvasFitService, InkDrawingService, RulerGuidesService], viewQueries: [{ propertyName: "textEditor", first: true, predicate: ["textEditor"], descendants: true, isSignal: true }, { propertyName: "stageRef", first: true, predicate: ["stage"], descendants: true, isSignal: true }, { propertyName: "viewportRef", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
59809
59999
|
<div
|
|
59810
60000
|
#viewport
|
|
59811
60001
|
class="pptx-ng-canvas-viewport"
|
|
@@ -59856,6 +60046,7 @@ class SlideCanvasComponent {
|
|
|
59856
60046
|
[canvasWidth]="canvasSize().width"
|
|
59857
60047
|
[canvasHeight]="canvasSize().height"
|
|
59858
60048
|
[interactive]="interactive()"
|
|
60049
|
+
[presenting]="presenting()"
|
|
59859
60050
|
[editable]="editable()"
|
|
59860
60051
|
[fieldContext]="fieldContext()"
|
|
59861
60052
|
[editTemplateMode]="false"
|
|
@@ -60175,7 +60366,7 @@ class SlideCanvasComponent {
|
|
|
60175
60366
|
}
|
|
60176
60367
|
</div>
|
|
60177
60368
|
</div>
|
|
60178
|
-
`, isInline: true, styles: [".pptx-ng-canvas-stage.is-editable{touch-action:none}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ElementRendererComponent, selector: "pptx-element-renderer", inputs: ["element", "mediaDataUrls", "zIndex", "obstacles", "canvasWidth", "canvasHeight", "interactive", "editable", "fieldContext", "editTemplateMode"], outputs: ["cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60369
|
+
`, isInline: true, styles: [".pptx-ng-canvas-stage.is-editable{touch-action:none}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ElementRendererComponent, selector: "pptx-element-renderer", inputs: ["element", "mediaDataUrls", "zIndex", "obstacles", "canvasWidth", "canvasHeight", "interactive", "presenting", "editable", "fieldContext", "editTemplateMode"], outputs: ["cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60179
60370
|
}
|
|
60180
60371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlideCanvasComponent, decorators: [{
|
|
60181
60372
|
type: Component,
|
|
@@ -60230,6 +60421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
60230
60421
|
[canvasWidth]="canvasSize().width"
|
|
60231
60422
|
[canvasHeight]="canvasSize().height"
|
|
60232
60423
|
[interactive]="interactive()"
|
|
60424
|
+
[presenting]="presenting()"
|
|
60233
60425
|
[editable]="editable()"
|
|
60234
60426
|
[fieldContext]="fieldContext()"
|
|
60235
60427
|
[editTemplateMode]="false"
|
|
@@ -60550,7 +60742,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
60550
60742
|
</div>
|
|
60551
60743
|
</div>
|
|
60552
60744
|
`, styles: [".pptx-ng-canvas-stage.is-editable{touch-action:none}\n"] }]
|
|
60553
|
-
}], ctorParameters: () => [], propDecorators: { slide: [{ type: i0.Input, args: [{ isSignal: true, alias: "slide", required: false }] }], canvasSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasSize", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], zoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoom", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", 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 }] }], snapToGuides: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapToGuides", required: false }] }], autoFit: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoFit", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], selectedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIds", required: false }] }], editingId: [{ type: i0.Input, args: [{ isSignal: true, alias: "editingId", required: false }] }], editTemplateMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "editTemplateMode", required: false }] }], templateElements: [{ type: i0.Input, args: [{ isSignal: true, alias: "templateElements", required: false }] }], drawTool: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawTool", required: false }] }], drawColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawColor", required: false }] }], drawWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawWidth", required: false }] }], elementSelect: [{ type: i0.Output, args: ["elementSelect"] }], backgroundClick: [{ type: i0.Output, args: ["backgroundClick"] }], transformStart: [{ type: i0.Output, args: ["transformStart"] }], transformUpdate: [{ type: i0.Output, args: ["transformUpdate"] }], contextMenu: [{ type: i0.Output, args: ["contextMenu"] }], textEditStart: [{ type: i0.Output, args: ["textEditStart"] }], textCommit: [{ type: i0.Output, args: ["textCommit"] }], textCancel: [{ type: i0.Output, args: ["textCancel"] }], textFormat: [{ type: i0.Output, args: ["textFormat"] }], rotateUpdate: [{ type: i0.Output, args: ["rotateUpdate"] }], marqueeSelect: [{ type: i0.Output, args: ["marqueeSelect"] }], inkStrokeComplete: [{ type: i0.Output, args: ["inkStrokeComplete"] }], eraserHit: [{ type: i0.Output, args: ["eraserHit"] }], cellCommit: [{ type: i0.Output, args: ["cellCommit"] }], tableChange: [{ type: i0.Output, args: ["tableChange"] }], textEditor: [{ type: i0.ViewChild, args: ['textEditor', { isSignal: true }] }], stageRef: [{ type: i0.ViewChild, args: ['stage', { isSignal: true }] }], viewportRef: [{ type: i0.ViewChild, args: ['viewport', { isSignal: true }] }], onPointerMove: [{
|
|
60745
|
+
}], ctorParameters: () => [], propDecorators: { slide: [{ type: i0.Input, args: [{ isSignal: true, alias: "slide", required: false }] }], canvasSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasSize", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], zoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoom", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", 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 }] }], snapToGuides: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapToGuides", required: false }] }], autoFit: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoFit", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], presenting: [{ type: i0.Input, args: [{ isSignal: true, alias: "presenting", required: false }] }], selectedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIds", required: false }] }], editingId: [{ type: i0.Input, args: [{ isSignal: true, alias: "editingId", required: false }] }], editTemplateMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "editTemplateMode", required: false }] }], templateElements: [{ type: i0.Input, args: [{ isSignal: true, alias: "templateElements", required: false }] }], drawTool: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawTool", required: false }] }], drawColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawColor", required: false }] }], drawWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawWidth", required: false }] }], elementSelect: [{ type: i0.Output, args: ["elementSelect"] }], backgroundClick: [{ type: i0.Output, args: ["backgroundClick"] }], transformStart: [{ type: i0.Output, args: ["transformStart"] }], transformUpdate: [{ type: i0.Output, args: ["transformUpdate"] }], contextMenu: [{ type: i0.Output, args: ["contextMenu"] }], textEditStart: [{ type: i0.Output, args: ["textEditStart"] }], textCommit: [{ type: i0.Output, args: ["textCommit"] }], textCancel: [{ type: i0.Output, args: ["textCancel"] }], textFormat: [{ type: i0.Output, args: ["textFormat"] }], rotateUpdate: [{ type: i0.Output, args: ["rotateUpdate"] }], marqueeSelect: [{ type: i0.Output, args: ["marqueeSelect"] }], inkStrokeComplete: [{ type: i0.Output, args: ["inkStrokeComplete"] }], eraserHit: [{ type: i0.Output, args: ["eraserHit"] }], cellCommit: [{ type: i0.Output, args: ["cellCommit"] }], tableChange: [{ type: i0.Output, args: ["tableChange"] }], textEditor: [{ type: i0.ViewChild, args: ['textEditor', { isSignal: true }] }], stageRef: [{ type: i0.ViewChild, args: ['stage', { isSignal: true }] }], viewportRef: [{ type: i0.ViewChild, args: ['viewport', { isSignal: true }] }], onPointerMove: [{
|
|
60554
60746
|
type: HostListener,
|
|
60555
60747
|
args: ['document:pointermove', ['$event']]
|
|
60556
60748
|
}], onPointerUp: [{
|
|
@@ -60755,7 +60947,7 @@ class MobilePresenterViewComponent {
|
|
|
60755
60947
|
} @else {
|
|
60756
60948
|
<div class="pptx-ng-mpresenter-empty">{{ 'pptx.presenter.noSlides' | translate }}</div>
|
|
60757
60949
|
}
|
|
60758
|
-
`, isInline: true, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:#0b0b0c;color:#f5f5f5;font-family:system-ui,sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.pptx-ng-mpresenter-header,.pptx-ng-mpresenter-next,.pptx-ng-mpresenter-ctl{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem}.pptx-ng-mpresenter-header{justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08)}.pptx-ng-mpresenter-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c}.pptx-ng-mpresenter-elapsed{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:1.125rem;color:#6ea8fe}.pptx-ng-mpresenter-counter{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.875rem}.pptx-ng-mpresenter-exit{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;border:none;border-radius:6px;background:transparent;color:#ffffffbf;cursor:pointer;font-size:1.25rem;line-height:1}.pptx-ng-mpresenter-exit:hover{background:#ffffff1f;color:#fff}.pptx-ng-mpresenter-main{display:flex;align-items:center;justify-content:center;background:#000;padding:.75rem}.pptx-ng-mpresenter-main-stage{width:100%;max-width:640px}.pptx-ng-mpresenter-next{border-bottom:1px solid rgba(255,255,255,.08)}.pptx-ng-mpresenter-thumb{flex:0 0 auto;overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:4px}.pptx-ng-mpresenter-next-empty{display:flex;flex:1 1 auto;align-items:center;justify-content:center;height:3rem;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0a;font-size:.625rem;font-style:italic;color:#ffffff80}.pptx-ng-mpresenter-notes{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;padding:.5rem 1rem}.pptx-ng-mpresenter-notes-body{flex:1 1 auto;overflow-y:auto;margin-top:.25rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0a;padding:.5rem .75rem;white-space:pre-wrap;line-height:1.5;font-size:15px}.pptx-ng-mpresenter-notes-empty{font-style:italic;color:#ffffff80}.pptx-ng-mpresenter-ctl{justify-content:space-between;border-top:1px solid rgba(255,255,255,.08)}.pptx-ng-mpresenter-navbtn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;height:44px;border:none;border-radius:6px;background:#ffffff14;color:#f5f5f5;cursor:pointer;font-size:.9rem}.pptx-ng-mpresenter-navbtn:hover:not(:disabled){background:#ffffff29}.pptx-ng-mpresenter-navbtn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-mpresenter-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff9}\n"], dependencies: [{ 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60950
|
+
`, isInline: true, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:#0b0b0c;color:#f5f5f5;font-family:system-ui,sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.pptx-ng-mpresenter-header,.pptx-ng-mpresenter-next,.pptx-ng-mpresenter-ctl{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem}.pptx-ng-mpresenter-header{justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08)}.pptx-ng-mpresenter-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c}.pptx-ng-mpresenter-elapsed{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:1.125rem;color:#6ea8fe}.pptx-ng-mpresenter-counter{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.875rem}.pptx-ng-mpresenter-exit{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;border:none;border-radius:6px;background:transparent;color:#ffffffbf;cursor:pointer;font-size:1.25rem;line-height:1}.pptx-ng-mpresenter-exit:hover{background:#ffffff1f;color:#fff}.pptx-ng-mpresenter-main{display:flex;align-items:center;justify-content:center;background:#000;padding:.75rem}.pptx-ng-mpresenter-main-stage{width:100%;max-width:640px}.pptx-ng-mpresenter-next{border-bottom:1px solid rgba(255,255,255,.08)}.pptx-ng-mpresenter-thumb{flex:0 0 auto;overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:4px}.pptx-ng-mpresenter-next-empty{display:flex;flex:1 1 auto;align-items:center;justify-content:center;height:3rem;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0a;font-size:.625rem;font-style:italic;color:#ffffff80}.pptx-ng-mpresenter-notes{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;padding:.5rem 1rem}.pptx-ng-mpresenter-notes-body{flex:1 1 auto;overflow-y:auto;margin-top:.25rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0a;padding:.5rem .75rem;white-space:pre-wrap;line-height:1.5;font-size:15px}.pptx-ng-mpresenter-notes-empty{font-style:italic;color:#ffffff80}.pptx-ng-mpresenter-ctl{justify-content:space-between;border-top:1px solid rgba(255,255,255,.08)}.pptx-ng-mpresenter-navbtn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;height:44px;border:none;border-radius:6px;background:#ffffff14;color:#f5f5f5;cursor:pointer;font-size:.9rem}.pptx-ng-mpresenter-navbtn:hover:not(:disabled){background:#ffffff29}.pptx-ng-mpresenter-navbtn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-mpresenter-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff9}\n"], dependencies: [{ 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", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60759
60951
|
}
|
|
60760
60952
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MobilePresenterViewComponent, decorators: [{
|
|
60761
60953
|
type: Component,
|
|
@@ -61031,7 +61223,7 @@ class MobileSlidesSheetComponent {
|
|
|
61031
61223
|
}
|
|
61032
61224
|
</div>
|
|
61033
61225
|
</pptx-mobile-sheet>
|
|
61034
|
-
`, isInline: true, styles: [":host{display:contents}.pptx-ng-mslides-count{margin:0;padding:.5rem 1rem .25rem;font-size:.75rem;color:#ffffff73}.pptx-ng-mslides-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;padding:.75rem .875rem 1.5rem}.pptx-ng-mslides-cell{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.375rem;border:2px solid transparent;border-radius:.5rem;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:border-color .12s,background .12s}.pptx-ng-mslides-cell:hover{background:#ffffff0d;border-color:#ffffff26}.pptx-ng-mslides-cell:active{background:#ffffff1a}.pptx-ng-mslides-cell.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-mslides-clip{overflow:hidden;border-radius:.25rem;width:100%}.pptx-ng-mslides-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-mslides-num{display:block;font-size:.625rem;color:#fff6;line-height:1.4;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MobileSheetComponent, selector: "pptx-mobile-sheet", inputs: ["open", "title", "heightFraction", "fullScreen"], outputs: ["closed"] }, { 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61226
|
+
`, isInline: true, styles: [":host{display:contents}.pptx-ng-mslides-count{margin:0;padding:.5rem 1rem .25rem;font-size:.75rem;color:#ffffff73}.pptx-ng-mslides-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;padding:.75rem .875rem 1.5rem}.pptx-ng-mslides-cell{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.375rem;border:2px solid transparent;border-radius:.5rem;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:border-color .12s,background .12s}.pptx-ng-mslides-cell:hover{background:#ffffff0d;border-color:#ffffff26}.pptx-ng-mslides-cell:active{background:#ffffff1a}.pptx-ng-mslides-cell.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-mslides-clip{overflow:hidden;border-radius:.25rem;width:100%}.pptx-ng-mslides-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-mslides-num{display:block;font-size:.625rem;color:#fff6;line-height:1.4;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MobileSheetComponent, selector: "pptx-mobile-sheet", inputs: ["open", "title", "heightFraction", "fullScreen"], outputs: ["closed"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61035
61227
|
}
|
|
61036
61228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MobileSlidesSheetComponent, decorators: [{
|
|
61037
61229
|
type: Component,
|
|
@@ -61930,7 +62122,13 @@ class NotesPanelComponent {
|
|
|
61930
62122
|
(click)="toggle()"
|
|
61931
62123
|
>
|
|
61932
62124
|
<span class="pptx-ng-notes-label">{{ 'pptx.notes.speakerNotes' | translate }}</span>
|
|
61933
|
-
<span class="pptx-ng-notes-chevron" aria-hidden="true">
|
|
62125
|
+
<span class="pptx-ng-notes-chevron" aria-hidden="true">
|
|
62126
|
+
@if (collapsed()) {
|
|
62127
|
+
<svg lucideChevronRight class="h-4 w-4"></svg>
|
|
62128
|
+
} @else {
|
|
62129
|
+
<svg lucideChevronDown class="h-4 w-4"></svg>
|
|
62130
|
+
}
|
|
62131
|
+
</span>
|
|
61934
62132
|
</button>
|
|
61935
62133
|
|
|
61936
62134
|
@if (!collapsed()) {
|
|
@@ -61954,7 +62152,7 @@ class NotesPanelComponent {
|
|
|
61954
62152
|
#richEditor
|
|
61955
62153
|
class="pptx-ng-notes-rich"
|
|
61956
62154
|
[hidden]="!showRich()"
|
|
61957
|
-
[attr.contenteditable]="
|
|
62155
|
+
[attr.contenteditable]="showRich() ? 'true' : 'false'"
|
|
61958
62156
|
role="textbox"
|
|
61959
62157
|
aria-multiline="true"
|
|
61960
62158
|
[attr.aria-label]="'pptx.notes.speakerNotes' | translate"
|
|
@@ -61981,11 +62179,11 @@ class NotesPanelComponent {
|
|
|
61981
62179
|
</div>
|
|
61982
62180
|
}
|
|
61983
62181
|
</section>
|
|
61984
|
-
`, isInline: true, styles: [":host{display:block}.pptx-ng-notes-panel{display:flex;flex-direction:column;border-top:1px solid var(--pptx-border, rgba(0, 0, 0, .1));background:var(--pptx-background, #ffffff);color:var(--pptx-foreground, #111827)}.pptx-ng-notes-header{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:none;background:transparent;font-size:.8125rem;font-weight:600;color:var(--pptx-muted-foreground, #6b7280);cursor:pointer}.pptx-ng-notes-header:hover{color:var(--pptx-foreground, #111827)}.pptx-ng-notes-body{padding:0 .75rem .75rem}.pptx-ng-notes-rich,.pptx-ng-notes-textarea{box-sizing:border-box;width:100%;min-height:5rem;padding:.5rem;border:1px solid rgba(0,0,0,.15);border-radius:.375rem;background:#00000008;font:inherit;font-size:.8125rem;line-height:1.5;color:#111827}.pptx-ng-notes-rich{overflow:auto;resize:vertical}.pptx-ng-notes-textarea{resize:vertical}.pptx-ng-notes-rich:focus,.pptx-ng-notes-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 1px #6366f14d}.pptx-ng-notes-textarea:disabled{cursor:not-allowed;opacity:.6}\n"], dependencies: [{ kind: "component", type: NotesToolbarComponent, selector: "pptx-notes-toolbar", inputs: ["isRichEnabled", "showLinkPopover", "savedSelectionText"], outputs: ["inline", "paragraph", "linkButtonClick", "insertLink", "closeLinkPopover", "print", "toggleRich"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62182
|
+
`, isInline: true, styles: [":host{display:block}.pptx-ng-notes-panel{display:flex;flex-direction:column;border-top:1px solid var(--pptx-border, rgba(0, 0, 0, .1));background:var(--pptx-background, #ffffff);color:var(--pptx-foreground, #111827)}.pptx-ng-notes-header{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:none;background:transparent;font-size:.8125rem;font-weight:600;color:var(--pptx-muted-foreground, #6b7280);cursor:pointer}.pptx-ng-notes-header:hover{color:var(--pptx-foreground, #111827)}.pptx-ng-notes-body{padding:0 .75rem .75rem}.pptx-ng-notes-rich,.pptx-ng-notes-textarea{box-sizing:border-box;width:100%;min-height:5rem;padding:.5rem;border:1px solid rgba(0,0,0,.15);border-radius:.375rem;background:#00000008;font:inherit;font-size:.8125rem;line-height:1.5;color:#111827}.pptx-ng-notes-rich{overflow:auto;resize:vertical}.pptx-ng-notes-textarea{resize:vertical}.pptx-ng-notes-rich:focus,.pptx-ng-notes-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 1px #6366f14d}.pptx-ng-notes-textarea:disabled{cursor:not-allowed;opacity:.6}\n"], dependencies: [{ kind: "component", type: NotesToolbarComponent, selector: "pptx-notes-toolbar", inputs: ["isRichEnabled", "showLinkPopover", "savedSelectionText"], outputs: ["inline", "paragraph", "linkButtonClick", "insertLink", "closeLinkPopover", "print", "toggleRich"] }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61985
62183
|
}
|
|
61986
62184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NotesPanelComponent, decorators: [{
|
|
61987
62185
|
type: Component,
|
|
61988
|
-
args: [{ selector: 'pptx-notes-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NotesToolbarComponent, TranslatePipe], template: `
|
|
62186
|
+
args: [{ selector: 'pptx-notes-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NotesToolbarComponent, TranslatePipe, LucideChevronRight, LucideChevronDown], template: `
|
|
61989
62187
|
<section class="pptx-ng-notes-panel" [attr.data-collapsed]="collapsed()">
|
|
61990
62188
|
<button
|
|
61991
62189
|
type="button"
|
|
@@ -61994,7 +62192,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
61994
62192
|
(click)="toggle()"
|
|
61995
62193
|
>
|
|
61996
62194
|
<span class="pptx-ng-notes-label">{{ 'pptx.notes.speakerNotes' | translate }}</span>
|
|
61997
|
-
<span class="pptx-ng-notes-chevron" aria-hidden="true">
|
|
62195
|
+
<span class="pptx-ng-notes-chevron" aria-hidden="true">
|
|
62196
|
+
@if (collapsed()) {
|
|
62197
|
+
<svg lucideChevronRight class="h-4 w-4"></svg>
|
|
62198
|
+
} @else {
|
|
62199
|
+
<svg lucideChevronDown class="h-4 w-4"></svg>
|
|
62200
|
+
}
|
|
62201
|
+
</span>
|
|
61998
62202
|
</button>
|
|
61999
62203
|
|
|
62000
62204
|
@if (!collapsed()) {
|
|
@@ -62018,7 +62222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
62018
62222
|
#richEditor
|
|
62019
62223
|
class="pptx-ng-notes-rich"
|
|
62020
62224
|
[hidden]="!showRich()"
|
|
62021
|
-
[attr.contenteditable]="
|
|
62225
|
+
[attr.contenteditable]="showRich() ? 'true' : 'false'"
|
|
62022
62226
|
role="textbox"
|
|
62023
62227
|
aria-multiline="true"
|
|
62024
62228
|
[attr.aria-label]="'pptx.notes.speakerNotes' | translate"
|
|
@@ -63002,6 +63206,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
63002
63206
|
`, styles: [":host{display:block;position:absolute;inset:0;pointer-events:none}.pptx-ng-anno-wrapper{position:absolute;inset:0}.pptx-ng-anno-svg{position:absolute;top:0;left:0;transform-origin:top left;overflow:visible}.pptx-ng-laser-dot{position:absolute;border-radius:50%;pointer-events:none;background:#ff0000d9;box-shadow:0 0 12px 6px #ff000080,0 0 24px 12px #ff000040;filter:drop-shadow(0 0 8px rgba(255,0,0,.7))}\n"] }]
|
|
63003
63207
|
}], propDecorators: { canvasSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasSize", required: true }] }], zoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoom", required: false }] }], svgRef: [{ type: i0.ViewChild, args: ['svg', { isSignal: true }] }] } });
|
|
63004
63208
|
|
|
63209
|
+
/**
|
|
63210
|
+
* presentation-fullscreen.ts
|
|
63211
|
+
*
|
|
63212
|
+
* DOM-only helpers that drive the real browser Fullscreen API for the
|
|
63213
|
+
* presentation overlay. Kept Angular-free so they can be unit-tested without
|
|
63214
|
+
* TestBed (mirrors `presentation-overlay-helpers.ts`).
|
|
63215
|
+
*
|
|
63216
|
+
* Mirrors the React (`usePresentationMode.ts`) and Vue (`PresentationMode.vue`)
|
|
63217
|
+
* implementations: request fullscreen on the overlay's own root element when it
|
|
63218
|
+
* mounts, exit fullscreen when it unmounts, and feature-detect throughout so
|
|
63219
|
+
* browsers/environments without full Fullscreen API support (iOS Safari's
|
|
63220
|
+
* partial support, jsdom in tests, etc.) degrade silently to the CSS-fixed
|
|
63221
|
+
* overlay rather than throwing.
|
|
63222
|
+
*/
|
|
63223
|
+
/**
|
|
63224
|
+
* Request fullscreen on `element` if the Fullscreen API is available.
|
|
63225
|
+
* No-ops (rather than throwing) when the element is missing, the API is
|
|
63226
|
+
* unsupported, or the browser rejects the request (no active user gesture,
|
|
63227
|
+
* permission denied, etc.).
|
|
63228
|
+
*/
|
|
63229
|
+
function requestPresentationFullscreen(element) {
|
|
63230
|
+
if (!element) {
|
|
63231
|
+
return;
|
|
63232
|
+
}
|
|
63233
|
+
const el = element;
|
|
63234
|
+
if (typeof el.requestFullscreen !== 'function') {
|
|
63235
|
+
return;
|
|
63236
|
+
}
|
|
63237
|
+
try {
|
|
63238
|
+
void el.requestFullscreen().catch(() => {
|
|
63239
|
+
/* ignore: denied, unsupported, or no active user gesture */
|
|
63240
|
+
});
|
|
63241
|
+
}
|
|
63242
|
+
catch {
|
|
63243
|
+
/* ignore: some environments throw synchronously instead of rejecting */
|
|
63244
|
+
}
|
|
63245
|
+
}
|
|
63246
|
+
/**
|
|
63247
|
+
* Exit fullscreen if the given document is currently in it and the Fullscreen
|
|
63248
|
+
* API is available. No-ops otherwise.
|
|
63249
|
+
*/
|
|
63250
|
+
function exitPresentationFullscreen(doc) {
|
|
63251
|
+
if (!doc) {
|
|
63252
|
+
return;
|
|
63253
|
+
}
|
|
63254
|
+
const d = doc;
|
|
63255
|
+
if (!d.fullscreenElement || typeof d.exitFullscreen !== 'function') {
|
|
63256
|
+
return;
|
|
63257
|
+
}
|
|
63258
|
+
try {
|
|
63259
|
+
void d.exitFullscreen().catch(() => {
|
|
63260
|
+
/* ignore */
|
|
63261
|
+
});
|
|
63262
|
+
}
|
|
63263
|
+
catch {
|
|
63264
|
+
/* ignore */
|
|
63265
|
+
}
|
|
63266
|
+
}
|
|
63267
|
+
/**
|
|
63268
|
+
* Whether `doc` is currently NOT in fullscreen (i.e. fullscreen was just
|
|
63269
|
+
* exited, or was never entered, e.g. because the API is unsupported).
|
|
63270
|
+
*
|
|
63271
|
+
* Fed a `fullscreenchange` event on `document`; combined with the overlay's
|
|
63272
|
+
* own "did I just cause this?" guard, distinguishes an external exit (Esc
|
|
63273
|
+
* consumed by the browser before reaching the overlay's own keydown handler,
|
|
63274
|
+
* the Android back gesture, swiping away on iOS) from our own close flow.
|
|
63275
|
+
*/
|
|
63276
|
+
function hasExitedFullscreen(doc) {
|
|
63277
|
+
const d = doc;
|
|
63278
|
+
return !d?.fullscreenElement;
|
|
63279
|
+
}
|
|
63280
|
+
|
|
63005
63281
|
/**
|
|
63006
63282
|
* Clamp `index` to the valid range [0, count - 1].
|
|
63007
63283
|
* Returns 0 when `count` is 0 to avoid -1 states.
|
|
@@ -63519,7 +63795,7 @@ class PresentationTransitionOverlayComponent {
|
|
|
63519
63795
|
/>
|
|
63520
63796
|
</div>
|
|
63521
63797
|
</div>
|
|
63522
|
-
`, isInline: true, styles: [":host{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none}.pptx-ng-transition-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63798
|
+
`, isInline: true, styles: [":host{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none}.pptx-ng-transition-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ 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", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63523
63799
|
}
|
|
63524
63800
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PresentationTransitionOverlayComponent, decorators: [{
|
|
63525
63801
|
type: Component,
|
|
@@ -63628,6 +63904,17 @@ function attachTouchGestures(element, config) {
|
|
|
63628
63904
|
* Horizontal swipe → left → next, right → previous
|
|
63629
63905
|
*
|
|
63630
63906
|
* Click on the overlay body → advance to next visible slide.
|
|
63907
|
+
*
|
|
63908
|
+
* Fullscreen (mirrors the React `usePresentationMode` / Vue `PresentationMode.vue`
|
|
63909
|
+
* behavior, on top of the CSS-fixed full-viewport overlay above): the real
|
|
63910
|
+
* Fullscreen API is requested on this component's root element once it mounts,
|
|
63911
|
+
* and released again on destroy, so the browser chrome (address bar, etc.) gets
|
|
63912
|
+
* out of the way on mobile the same way it does for React/Vue. A
|
|
63913
|
+
* `fullscreenchange` listener syncs back to `closed` when fullscreen is exited
|
|
63914
|
+
* from outside this component's own close/Escape handling (browser UI, the
|
|
63915
|
+
* Android back gesture, etc.). Environments without Fullscreen API support
|
|
63916
|
+
* (iOS Safari's partial support, `jsdom` in tests) degrade silently to the
|
|
63917
|
+
* plain CSS overlay.
|
|
63631
63918
|
*/
|
|
63632
63919
|
class PresentationOverlayComponent {
|
|
63633
63920
|
// ------------------------------------------------------------------
|
|
@@ -63679,11 +63966,23 @@ class PresentationOverlayComponent {
|
|
|
63679
63966
|
/** The slide stage root; animation styles are applied to its elements. */
|
|
63680
63967
|
stageRef = viewChild('stage', /* @ts-ignore */
|
|
63681
63968
|
...(ngDevMode ? [{ debugName: "stageRef" }] : /* istanbul ignore next */ []));
|
|
63682
|
-
/**
|
|
63969
|
+
/**
|
|
63970
|
+
* The overlay root; the shared touch-gesture recogniser attaches here, and
|
|
63971
|
+
* it is the element the real Fullscreen API is requested on (see
|
|
63972
|
+
* {@link setupFullscreen}).
|
|
63973
|
+
*/
|
|
63683
63974
|
rootRef = viewChild('root', /* @ts-ignore */
|
|
63684
63975
|
...(ngDevMode ? [{ debugName: "rootRef" }] : /* istanbul ignore next */ []));
|
|
63976
|
+
/**
|
|
63977
|
+
* Guards against handling the same exit twice: e.g. Escape both reaches our
|
|
63978
|
+
* own `keydown` handler AND causes the browser to natively exit fullscreen
|
|
63979
|
+
* (firing `fullscreenchange`), or the close button's `click` and `touchend`
|
|
63980
|
+
* both fire for one tap.
|
|
63981
|
+
*/
|
|
63982
|
+
closing = false;
|
|
63685
63983
|
constructor() {
|
|
63686
63984
|
this.setupTouchGestures();
|
|
63985
|
+
this.setupFullscreen();
|
|
63687
63986
|
// Wire the zoom-navigation context to this overlay's slide navigation so a
|
|
63688
63987
|
// descendant zoom tile can jump to its target slide on click.
|
|
63689
63988
|
this.zoomNavigation.setHandler((index) => this.goToSlide(index));
|
|
@@ -63881,6 +64180,39 @@ class PresentationOverlayComponent {
|
|
|
63881
64180
|
});
|
|
63882
64181
|
}
|
|
63883
64182
|
// ------------------------------------------------------------------
|
|
64183
|
+
// Real Fullscreen API (layered on top of the CSS-fixed overlay)
|
|
64184
|
+
// ------------------------------------------------------------------
|
|
64185
|
+
/**
|
|
64186
|
+
* Request real fullscreen on the overlay root once it mounts, and release
|
|
64187
|
+
* it again when the overlay is destroyed (`presenting` flips back to
|
|
64188
|
+
* false, closing this `@if` block). Mirrors Vue's `onMounted` /
|
|
64189
|
+
* `onBeforeUnmount` pair on its own overlay root; feature-detected so
|
|
64190
|
+
* unsupported environments just keep the CSS overlay.
|
|
64191
|
+
*/
|
|
64192
|
+
setupFullscreen() {
|
|
64193
|
+
const destroyRef = inject(DestroyRef);
|
|
64194
|
+
afterNextRender(() => {
|
|
64195
|
+
requestPresentationFullscreen(this.rootRef()?.nativeElement);
|
|
64196
|
+
});
|
|
64197
|
+
destroyRef.onDestroy(() => {
|
|
64198
|
+
exitPresentationFullscreen(typeof document === 'undefined' ? null : document);
|
|
64199
|
+
});
|
|
64200
|
+
}
|
|
64201
|
+
/**
|
|
64202
|
+
* Sync back to `closed` when fullscreen is exited from OUTSIDE this
|
|
64203
|
+
* component's own close/Escape handling: the browser's native Esc handling
|
|
64204
|
+
* can beat (or replace) our `keydown` listener, and mobile back
|
|
64205
|
+
* gestures/browser-UI exits never reach it at all. Without this, `presenting`
|
|
64206
|
+
* would stay stuck true while the app has silently fallen back to the plain
|
|
64207
|
+
* CSS overlay. `emitClosed()` is itself guarded against double-firing, so it
|
|
64208
|
+
* is safe if our own close flow *also* triggers this event.
|
|
64209
|
+
*/
|
|
64210
|
+
onFullscreenChange() {
|
|
64211
|
+
if (hasExitedFullscreen(typeof document === 'undefined' ? null : document)) {
|
|
64212
|
+
this.emitClosed();
|
|
64213
|
+
}
|
|
64214
|
+
}
|
|
64215
|
+
// ------------------------------------------------------------------
|
|
63884
64216
|
// Lifecycle
|
|
63885
64217
|
// ------------------------------------------------------------------
|
|
63886
64218
|
ngOnInit() {
|
|
@@ -64060,13 +64392,17 @@ class PresentationOverlayComponent {
|
|
|
64060
64392
|
this.indexChange.emit(next);
|
|
64061
64393
|
}
|
|
64062
64394
|
emitClosed() {
|
|
64395
|
+
if (this.closing) {
|
|
64396
|
+
return;
|
|
64397
|
+
}
|
|
64398
|
+
this.closing = true;
|
|
64063
64399
|
if (this.annotations.hasAnyAnnotations()) {
|
|
64064
64400
|
this.annotationsExit.emit(this.annotations.getAllSlideAnnotations());
|
|
64065
64401
|
}
|
|
64066
64402
|
this.closed.emit();
|
|
64067
64403
|
}
|
|
64068
64404
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PresentationOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
64069
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: PresentationOverlayComponent, isStandalone: true, selector: "pptx-presentation-overlay", inputs: { slides: { classPropertyName: "slides", publicName: "slides", isSignal: true, isRequired: true, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange", closed: "closed", annotationsExit: "annotationsExit" }, host: { listeners: { "window:resize": "onWindowResize()", "document:keydown": "onKeyDown($event)" } }, providers: [AnimationPlaybackService, PresentationAnnotationsService, ZoomNavigationService], viewQueries: [{ propertyName: "stageRef", first: true, predicate: ["stage"], descendants: true, isSignal: true }, { propertyName: "rootRef", first: true, predicate: ["root"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
64405
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: PresentationOverlayComponent, isStandalone: true, selector: "pptx-presentation-overlay", inputs: { slides: { classPropertyName: "slides", publicName: "slides", isSignal: true, isRequired: true, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange", closed: "closed", annotationsExit: "annotationsExit" }, host: { listeners: { "document:fullscreenchange": "onFullscreenChange()", "window:resize": "onWindowResize()", "document:keydown": "onKeyDown($event)" } }, providers: [AnimationPlaybackService, PresentationAnnotationsService, ZoomNavigationService], viewQueries: [{ propertyName: "stageRef", first: true, predicate: ["stage"], descendants: true, isSignal: true }, { propertyName: "rootRef", first: true, predicate: ["root"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
64070
64406
|
<div #root class="pptx-ng-presentation-root">
|
|
64071
64407
|
<!--
|
|
64072
64408
|
Slide counter, rendered first in DOM (before slide content) so a
|
|
@@ -64092,6 +64428,7 @@ class PresentationOverlayComponent {
|
|
|
64092
64428
|
[zoom]="zoom()"
|
|
64093
64429
|
[autoFit]="false"
|
|
64094
64430
|
[interactive]="false"
|
|
64431
|
+
[presenting]="true"
|
|
64095
64432
|
/>
|
|
64096
64433
|
|
|
64097
64434
|
@if (activeTransition(); as t) {
|
|
@@ -64123,7 +64460,7 @@ class PresentationOverlayComponent {
|
|
|
64123
64460
|
(click)="selectTool('pen')"
|
|
64124
64461
|
[attr.aria-label]="'pptx.presentation.pen' | translate"
|
|
64125
64462
|
>
|
|
64126
|
-
|
|
64463
|
+
<svg lucidePenTool class="h-4 w-4"></svg>
|
|
64127
64464
|
</button>
|
|
64128
64465
|
<button
|
|
64129
64466
|
type="button"
|
|
@@ -64131,7 +64468,7 @@ class PresentationOverlayComponent {
|
|
|
64131
64468
|
(click)="selectTool('highlighter')"
|
|
64132
64469
|
[attr.aria-label]="'pptx.presentation.highlighter' | translate"
|
|
64133
64470
|
>
|
|
64134
|
-
|
|
64471
|
+
<svg lucideHighlighter class="h-4 w-4"></svg>
|
|
64135
64472
|
</button>
|
|
64136
64473
|
<button
|
|
64137
64474
|
type="button"
|
|
@@ -64139,7 +64476,7 @@ class PresentationOverlayComponent {
|
|
|
64139
64476
|
(click)="selectTool('eraser')"
|
|
64140
64477
|
[attr.aria-label]="'pptx.presentation.eraser' | translate"
|
|
64141
64478
|
>
|
|
64142
|
-
|
|
64479
|
+
<svg lucideEraser class="h-4 w-4"></svg>
|
|
64143
64480
|
</button>
|
|
64144
64481
|
<button
|
|
64145
64482
|
type="button"
|
|
@@ -64147,14 +64484,14 @@ class PresentationOverlayComponent {
|
|
|
64147
64484
|
(click)="selectTool('laser')"
|
|
64148
64485
|
[attr.aria-label]="'pptx.presentation.laserPointer' | translate"
|
|
64149
64486
|
>
|
|
64150
|
-
|
|
64487
|
+
<svg lucideMousePointer2 class="h-4 w-4"></svg>
|
|
64151
64488
|
</button>
|
|
64152
64489
|
<button
|
|
64153
64490
|
type="button"
|
|
64154
64491
|
(click)="annotations.clearAnnotations()"
|
|
64155
64492
|
[attr.aria-label]="'pptx.presentation.clearAnnotations' | translate"
|
|
64156
64493
|
>
|
|
64157
|
-
|
|
64494
|
+
<svg lucideTrash2 class="h-4 w-4"></svg>
|
|
64158
64495
|
</button>
|
|
64159
64496
|
<button
|
|
64160
64497
|
type="button"
|
|
@@ -64175,7 +64512,7 @@ class PresentationOverlayComponent {
|
|
|
64175
64512
|
(touchend)="onCloseTouch($event)"
|
|
64176
64513
|
[attr.aria-label]="'pptx.presenter.endPresentation' | translate"
|
|
64177
64514
|
>
|
|
64178
|
-
|
|
64515
|
+
<svg lucideX class="h-5 w-5"></svg>
|
|
64179
64516
|
</button>
|
|
64180
64517
|
|
|
64181
64518
|
<!-- Edge navigation buttons (vertically centred, touch-friendly). -->
|
|
@@ -64187,7 +64524,7 @@ class PresentationOverlayComponent {
|
|
|
64187
64524
|
(touchend)="onPrevTouch($event)"
|
|
64188
64525
|
[attr.aria-label]="'pptx.presenter.previousSlide' | translate"
|
|
64189
64526
|
>
|
|
64190
|
-
|
|
64527
|
+
<svg lucideChevronLeft class="h-6 w-6"></svg>
|
|
64191
64528
|
</button>
|
|
64192
64529
|
<button
|
|
64193
64530
|
type="button"
|
|
@@ -64197,10 +64534,10 @@ class PresentationOverlayComponent {
|
|
|
64197
64534
|
(touchend)="onNextTouch($event)"
|
|
64198
64535
|
[attr.aria-label]="'pptx.presenter.nextSlide' | translate"
|
|
64199
64536
|
>
|
|
64200
|
-
|
|
64537
|
+
<svg lucideChevronRight class="h-6 w-6"></svg>
|
|
64201
64538
|
</button>
|
|
64202
64539
|
</div>
|
|
64203
|
-
`, isInline: true, styles: [":host{display:block;position:fixed;inset:0;z-index:10000;background:#000;cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-presentation-root{position:absolute;inset:0;touch-action:pan-y}.pptx-ng-presentation-close:hover,.pptx-ng-presentation-nav:hover{background:#000000bf}.pptx-ng-presentation-tools{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;display:flex;gap:.25rem;padding:.25rem;border-radius:.5rem;background:#0000008c;z-index:80}.pptx-ng-presentation-tools button{width:2rem;height:2rem;border:none;border-radius:.35rem;background:transparent;color:#fff;font-size:1rem;cursor:pointer}.pptx-ng-presentation-tools button:hover{background:#ffffff26}.pptx-ng-presentation-tools button.is-active{background:#ffffff4d}\n"], dependencies: [{ 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: PresentationTransitionOverlayComponent, selector: "pptx-presentation-transition-overlay", inputs: ["outgoingSlide", "canvasSize", "transition", "templateElements", "mediaDataUrls", "durationMs"], outputs: ["complete"] }, { kind: "component", type: PresentationAnnotationOverlayComponent, selector: "pptx-presentation-annotation-overlay", inputs: ["canvasSize", "zoom"] }, { kind: "component", type: PresentationSubtitleBarComponent, selector: "pptx-presentation-subtitle-bar", inputs: ["visible"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
64540
|
+
`, isInline: true, styles: [":host{display:block;position:fixed;inset:0;z-index:10000;background:#000;cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-presentation-root{position:absolute;inset:0;touch-action:pan-y}.pptx-ng-presentation-close:hover,.pptx-ng-presentation-nav:hover{background:#000000bf}.pptx-ng-presentation-tools{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;display:flex;gap:.25rem;padding:.25rem;border-radius:.5rem;background:#0000008c;z-index:80}.pptx-ng-presentation-tools button{width:2rem;height:2rem;border:none;border-radius:.35rem;background:transparent;color:#fff;font-size:1rem;cursor:pointer}.pptx-ng-presentation-tools button:hover{background:#ffffff26}.pptx-ng-presentation-tools button.is-active{background:#ffffff4d}\n"], dependencies: [{ 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", "presenting", "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: PresentationTransitionOverlayComponent, selector: "pptx-presentation-transition-overlay", inputs: ["outgoingSlide", "canvasSize", "transition", "templateElements", "mediaDataUrls", "durationMs"], outputs: ["complete"] }, { kind: "component", type: PresentationAnnotationOverlayComponent, selector: "pptx-presentation-annotation-overlay", inputs: ["canvasSize", "zoom"] }, { kind: "component", type: PresentationSubtitleBarComponent, selector: "pptx-presentation-subtitle-bar", inputs: ["visible"] }, { kind: "component", type: LucidePenTool, selector: "svg[lucidePenTool]" }, { kind: "component", type: LucideHighlighter, selector: "svg[lucideHighlighter]" }, { kind: "component", type: LucideEraser, selector: "svg[lucideEraser]" }, { kind: "component", type: LucideMousePointer2, selector: "svg[lucideMousePointer2]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideChevronLeft, selector: "svg[lucideChevronLeft]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
64204
64541
|
}
|
|
64205
64542
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PresentationOverlayComponent, decorators: [{
|
|
64206
64543
|
type: Component,
|
|
@@ -64211,6 +64548,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64211
64548
|
PresentationAnnotationOverlayComponent,
|
|
64212
64549
|
PresentationSubtitleBarComponent,
|
|
64213
64550
|
TranslatePipe,
|
|
64551
|
+
LucidePenTool,
|
|
64552
|
+
LucideHighlighter,
|
|
64553
|
+
LucideEraser,
|
|
64554
|
+
LucideMousePointer2,
|
|
64555
|
+
LucideTrash2,
|
|
64556
|
+
LucideX,
|
|
64557
|
+
LucideChevronLeft,
|
|
64558
|
+
LucideChevronRight,
|
|
64214
64559
|
], providers: [AnimationPlaybackService, PresentationAnnotationsService, ZoomNavigationService], template: `
|
|
64215
64560
|
<div #root class="pptx-ng-presentation-root">
|
|
64216
64561
|
<!--
|
|
@@ -64237,6 +64582,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64237
64582
|
[zoom]="zoom()"
|
|
64238
64583
|
[autoFit]="false"
|
|
64239
64584
|
[interactive]="false"
|
|
64585
|
+
[presenting]="true"
|
|
64240
64586
|
/>
|
|
64241
64587
|
|
|
64242
64588
|
@if (activeTransition(); as t) {
|
|
@@ -64268,7 +64614,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64268
64614
|
(click)="selectTool('pen')"
|
|
64269
64615
|
[attr.aria-label]="'pptx.presentation.pen' | translate"
|
|
64270
64616
|
>
|
|
64271
|
-
|
|
64617
|
+
<svg lucidePenTool class="h-4 w-4"></svg>
|
|
64272
64618
|
</button>
|
|
64273
64619
|
<button
|
|
64274
64620
|
type="button"
|
|
@@ -64276,7 +64622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64276
64622
|
(click)="selectTool('highlighter')"
|
|
64277
64623
|
[attr.aria-label]="'pptx.presentation.highlighter' | translate"
|
|
64278
64624
|
>
|
|
64279
|
-
|
|
64625
|
+
<svg lucideHighlighter class="h-4 w-4"></svg>
|
|
64280
64626
|
</button>
|
|
64281
64627
|
<button
|
|
64282
64628
|
type="button"
|
|
@@ -64284,7 +64630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64284
64630
|
(click)="selectTool('eraser')"
|
|
64285
64631
|
[attr.aria-label]="'pptx.presentation.eraser' | translate"
|
|
64286
64632
|
>
|
|
64287
|
-
|
|
64633
|
+
<svg lucideEraser class="h-4 w-4"></svg>
|
|
64288
64634
|
</button>
|
|
64289
64635
|
<button
|
|
64290
64636
|
type="button"
|
|
@@ -64292,14 +64638,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64292
64638
|
(click)="selectTool('laser')"
|
|
64293
64639
|
[attr.aria-label]="'pptx.presentation.laserPointer' | translate"
|
|
64294
64640
|
>
|
|
64295
|
-
|
|
64641
|
+
<svg lucideMousePointer2 class="h-4 w-4"></svg>
|
|
64296
64642
|
</button>
|
|
64297
64643
|
<button
|
|
64298
64644
|
type="button"
|
|
64299
64645
|
(click)="annotations.clearAnnotations()"
|
|
64300
64646
|
[attr.aria-label]="'pptx.presentation.clearAnnotations' | translate"
|
|
64301
64647
|
>
|
|
64302
|
-
|
|
64648
|
+
<svg lucideTrash2 class="h-4 w-4"></svg>
|
|
64303
64649
|
</button>
|
|
64304
64650
|
<button
|
|
64305
64651
|
type="button"
|
|
@@ -64320,7 +64666,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64320
64666
|
(touchend)="onCloseTouch($event)"
|
|
64321
64667
|
[attr.aria-label]="'pptx.presenter.endPresentation' | translate"
|
|
64322
64668
|
>
|
|
64323
|
-
|
|
64669
|
+
<svg lucideX class="h-5 w-5"></svg>
|
|
64324
64670
|
</button>
|
|
64325
64671
|
|
|
64326
64672
|
<!-- Edge navigation buttons (vertically centred, touch-friendly). -->
|
|
@@ -64332,7 +64678,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64332
64678
|
(touchend)="onPrevTouch($event)"
|
|
64333
64679
|
[attr.aria-label]="'pptx.presenter.previousSlide' | translate"
|
|
64334
64680
|
>
|
|
64335
|
-
|
|
64681
|
+
<svg lucideChevronLeft class="h-6 w-6"></svg>
|
|
64336
64682
|
</button>
|
|
64337
64683
|
<button
|
|
64338
64684
|
type="button"
|
|
@@ -64342,11 +64688,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
64342
64688
|
(touchend)="onNextTouch($event)"
|
|
64343
64689
|
[attr.aria-label]="'pptx.presenter.nextSlide' | translate"
|
|
64344
64690
|
>
|
|
64345
|
-
|
|
64691
|
+
<svg lucideChevronRight class="h-6 w-6"></svg>
|
|
64346
64692
|
</button>
|
|
64347
64693
|
</div>
|
|
64348
64694
|
`, styles: [":host{display:block;position:fixed;inset:0;z-index:10000;background:#000;cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-presentation-root{position:absolute;inset:0;touch-action:pan-y}.pptx-ng-presentation-close:hover,.pptx-ng-presentation-nav:hover{background:#000000bf}.pptx-ng-presentation-tools{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;display:flex;gap:.25rem;padding:.25rem;border-radius:.5rem;background:#0000008c;z-index:80}.pptx-ng-presentation-tools button{width:2rem;height:2rem;border:none;border-radius:.35rem;background:transparent;color:#fff;font-size:1rem;cursor:pointer}.pptx-ng-presentation-tools button:hover{background:#ffffff26}.pptx-ng-presentation-tools button.is-active{background:#ffffff4d}\n"] }]
|
|
64349
|
-
}], ctorParameters: () => [], propDecorators: { slides: [{ type: i0.Input, args: [{ isSignal: true, alias: "slides", required: true }] }], canvasSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasSize", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], startIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "startIndex", required: false }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], closed: [{ type: i0.Output, args: ["closed"] }], annotationsExit: [{ type: i0.Output, args: ["annotationsExit"] }], stageRef: [{ type: i0.ViewChild, args: ['stage', { isSignal: true }] }], rootRef: [{ type: i0.ViewChild, args: ['root', { isSignal: true }] }],
|
|
64695
|
+
}], ctorParameters: () => [], propDecorators: { slides: [{ type: i0.Input, args: [{ isSignal: true, alias: "slides", required: true }] }], canvasSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasSize", required: true }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], startIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "startIndex", required: false }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], closed: [{ type: i0.Output, args: ["closed"] }], annotationsExit: [{ type: i0.Output, args: ["annotationsExit"] }], stageRef: [{ type: i0.ViewChild, args: ['stage', { isSignal: true }] }], rootRef: [{ type: i0.ViewChild, args: ['root', { isSignal: true }] }], onFullscreenChange: [{
|
|
64696
|
+
type: HostListener,
|
|
64697
|
+
args: ['document:fullscreenchange']
|
|
64698
|
+
}], onWindowResize: [{
|
|
64350
64699
|
type: HostListener,
|
|
64351
64700
|
args: ['window:resize']
|
|
64352
64701
|
}], onKeyDown: [{
|
|
@@ -64667,7 +65016,7 @@ class PresenterViewComponent {
|
|
|
64667
65016
|
} @else {
|
|
64668
65017
|
<div class="pptx-ng-presenter-empty">{{ 'pptx.presenter.noSlides' | translate }}</div>
|
|
64669
65018
|
}
|
|
64670
|
-
`, isInline: true, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:#0b0b0c;color:#f5f5f5;font-family:system-ui,sans-serif}.pptx-ng-presenter-body{display:flex;flex:1 1 auto;min-height:0}.pptx-ng-presenter-current{flex:7 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;padding:1rem;min-width:0}.pptx-ng-presenter-preview-stage{width:100%;max-width:100%;min-height:0}.pptx-ng-presenter-slide-badge{margin-top:.5rem;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.75rem;color:#ffffff80;-webkit-user-select:none;user-select:none}.pptx-ng-presenter-side{flex:3 1 0;display:flex;flex-direction:column;background:#18181b;border-left:1px solid rgba(255,255,255,.12);min-width:260px;max-width:440px}.pptx-ng-presenter-header,.pptx-ng-presenter-nav,.pptx-ng-presenter-next{padding:.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.08)}.pptx-ng-presenter-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pptx-ng-presenter-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c}.pptx-ng-presenter-clock{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:1.125rem}.pptx-ng-presenter-elapsed{color:#6ea8fe}.pptx-ng-presenter-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#ffffffb3;cursor:pointer;font-size:1rem;line-height:1}.pptx-ng-presenter-iconbtn:hover{background:#ffffff1a;color:#fff}.pptx-ng-presenter-iconbtn:disabled{opacity:.3;cursor:not-allowed}.pptx-ng-presenter-nav{display:flex;align-items:center;justify-content:space-between}.pptx-ng-presenter-navbtn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:6px;background:#ffffff14;color:#f5f5f5;cursor:pointer;font-size:.75rem}.pptx-ng-presenter-navbtn:hover:not(:disabled){background:#ffffff29}.pptx-ng-presenter-navbtn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-presenter-counter{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.875rem}.pptx-ng-presenter-next-empty{display:flex;align-items:center;justify-content:center;height:4rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0a;font-size:.75rem;font-style:italic;color:#ffffff80}.pptx-ng-presenter-notes{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;padding:.75rem 1rem}.pptx-ng-presenter-notes-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.pptx-ng-presenter-notes-size{display:flex;align-items:center;gap:.25rem}.pptx-ng-presenter-notes-size-value{min-width:28px;text-align:center;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.625rem;color:#ffffff8c;-webkit-user-select:none;user-select:none}.pptx-ng-presenter-notes-body{flex:1 1 auto;overflow-y:auto;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0a;padding:.5rem .75rem;white-space:pre-wrap;line-height:1.5}.pptx-ng-presenter-notes-empty{font-style:italic;color:#ffffff80}.pptx-ng-presenter-progress{height:6px;width:100%;background:#ffffff1f;flex:0 0 auto}.pptx-ng-presenter-progress-fill{height:100%;background:#6ea8fe;transition:width 1s linear}.pptx-ng-presenter-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff9}\n"], dependencies: [{ 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
65019
|
+
`, isInline: true, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:#0b0b0c;color:#f5f5f5;font-family:system-ui,sans-serif}.pptx-ng-presenter-body{display:flex;flex:1 1 auto;min-height:0}.pptx-ng-presenter-current{flex:7 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;padding:1rem;min-width:0}.pptx-ng-presenter-preview-stage{width:100%;max-width:100%;min-height:0}.pptx-ng-presenter-slide-badge{margin-top:.5rem;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.75rem;color:#ffffff80;-webkit-user-select:none;user-select:none}.pptx-ng-presenter-side{flex:3 1 0;display:flex;flex-direction:column;background:#18181b;border-left:1px solid rgba(255,255,255,.12);min-width:260px;max-width:440px}.pptx-ng-presenter-header,.pptx-ng-presenter-nav,.pptx-ng-presenter-next{padding:.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.08)}.pptx-ng-presenter-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pptx-ng-presenter-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c}.pptx-ng-presenter-clock{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:1.125rem}.pptx-ng-presenter-elapsed{color:#6ea8fe}.pptx-ng-presenter-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#ffffffb3;cursor:pointer;font-size:1rem;line-height:1}.pptx-ng-presenter-iconbtn:hover{background:#ffffff1a;color:#fff}.pptx-ng-presenter-iconbtn:disabled{opacity:.3;cursor:not-allowed}.pptx-ng-presenter-nav{display:flex;align-items:center;justify-content:space-between}.pptx-ng-presenter-navbtn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:6px;background:#ffffff14;color:#f5f5f5;cursor:pointer;font-size:.75rem}.pptx-ng-presenter-navbtn:hover:not(:disabled){background:#ffffff29}.pptx-ng-presenter-navbtn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-presenter-counter{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.875rem}.pptx-ng-presenter-next-empty{display:flex;align-items:center;justify-content:center;height:4rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0a;font-size:.75rem;font-style:italic;color:#ffffff80}.pptx-ng-presenter-notes{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;padding:.75rem 1rem}.pptx-ng-presenter-notes-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.pptx-ng-presenter-notes-size{display:flex;align-items:center;gap:.25rem}.pptx-ng-presenter-notes-size-value{min-width:28px;text-align:center;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.625rem;color:#ffffff8c;-webkit-user-select:none;user-select:none}.pptx-ng-presenter-notes-body{flex:1 1 auto;overflow-y:auto;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0a;padding:.5rem .75rem;white-space:pre-wrap;line-height:1.5}.pptx-ng-presenter-notes-empty{font-style:italic;color:#ffffff80}.pptx-ng-presenter-progress{height:6px;width:100%;background:#ffffff1f;flex:0 0 auto}.pptx-ng-presenter-progress-fill{height:100%;background:#6ea8fe;transition:width 1s linear}.pptx-ng-presenter-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff9}\n"], dependencies: [{ 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", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
64671
65020
|
}
|
|
64672
65021
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PresenterViewComponent, decorators: [{
|
|
64673
65022
|
type: Component,
|
|
@@ -66443,7 +66792,7 @@ class RibbonAnimationsSectionComponent {
|
|
|
66443
66792
|
[title]="'pptx.animations.previewTooltip' | translate"
|
|
66444
66793
|
(click)="present.emit()"
|
|
66445
66794
|
>
|
|
66446
|
-
|
|
66795
|
+
<svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.animations.preview' | translate }}
|
|
66447
66796
|
</button>
|
|
66448
66797
|
<span class="pptx-rb-sep"></span>
|
|
66449
66798
|
<!-- Add Animation dropdown (hover-reveal, mirrors React pattern) -->
|
|
@@ -66454,7 +66803,9 @@ class RibbonAnimationsSectionComponent {
|
|
|
66454
66803
|
[disabled]="!hasSel()"
|
|
66455
66804
|
[title]="'pptx.animations.addTooltip' | translate"
|
|
66456
66805
|
>
|
|
66457
|
-
|
|
66806
|
+
<svg lucideSparkles class="h-4 w-4"></svg>
|
|
66807
|
+
{{ 'pptx.animations.addAnimation' | translate }}
|
|
66808
|
+
<svg lucideChevronDown class="h-3 w-3"></svg>
|
|
66458
66809
|
</button>
|
|
66459
66810
|
<!-- Dropdown panel: shown on group hover -->
|
|
66460
66811
|
<div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
|
|
@@ -66522,7 +66873,7 @@ class RibbonAnimationsSectionComponent {
|
|
|
66522
66873
|
[title]="'pptx.animations.removeTooltip' | translate"
|
|
66523
66874
|
(click)="removeAnim()"
|
|
66524
66875
|
>
|
|
66525
|
-
|
|
66876
|
+
<svg lucideTrash2 class="h-4 w-4"></svg> {{ 'pptx.ribbon.removeAnimation' | translate }}
|
|
66526
66877
|
</button>
|
|
66527
66878
|
<span class="pptx-rb-sep"></span>
|
|
66528
66879
|
<!-- Animation Panel -->
|
|
@@ -66532,9 +66883,10 @@ class RibbonAnimationsSectionComponent {
|
|
|
66532
66883
|
[title]="'pptx.animations.openPanelTooltip' | translate"
|
|
66533
66884
|
(click)="toggleInspector.emit()"
|
|
66534
66885
|
>
|
|
66535
|
-
|
|
66886
|
+
<svg lucidePanelRight class="h-4 w-4"></svg>
|
|
66887
|
+
{{ 'pptx.animations.animationPanel' | translate }}
|
|
66536
66888
|
</button>
|
|
66537
|
-
`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
66889
|
+
`, isInline: true, dependencies: [{ kind: "component", type: LucidePlay, selector: "svg[lucidePlay]" }, { kind: "component", type: LucideSparkles, selector: "svg[lucideSparkles], svg[lucideStars]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucidePanelRight, selector: "svg[lucidePanelRight]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
66538
66890
|
}
|
|
66539
66891
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonAnimationsSectionComponent, decorators: [{
|
|
66540
66892
|
type: Component,
|
|
@@ -66543,7 +66895,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66543
66895
|
standalone: true,
|
|
66544
66896
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
66545
66897
|
host: { class: 'contents' },
|
|
66546
|
-
imports: [
|
|
66898
|
+
imports: [
|
|
66899
|
+
TranslatePipe,
|
|
66900
|
+
LucidePlay,
|
|
66901
|
+
LucideSparkles,
|
|
66902
|
+
LucideChevronDown,
|
|
66903
|
+
LucideTrash2,
|
|
66904
|
+
LucidePanelRight,
|
|
66905
|
+
],
|
|
66547
66906
|
template: `
|
|
66548
66907
|
<!-- Preview: plays presentation from this slide; no element-only preview API yet -->
|
|
66549
66908
|
<button
|
|
@@ -66553,7 +66912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66553
66912
|
[title]="'pptx.animations.previewTooltip' | translate"
|
|
66554
66913
|
(click)="present.emit()"
|
|
66555
66914
|
>
|
|
66556
|
-
|
|
66915
|
+
<svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.animations.preview' | translate }}
|
|
66557
66916
|
</button>
|
|
66558
66917
|
<span class="pptx-rb-sep"></span>
|
|
66559
66918
|
<!-- Add Animation dropdown (hover-reveal, mirrors React pattern) -->
|
|
@@ -66564,7 +66923,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66564
66923
|
[disabled]="!hasSel()"
|
|
66565
66924
|
[title]="'pptx.animations.addTooltip' | translate"
|
|
66566
66925
|
>
|
|
66567
|
-
|
|
66926
|
+
<svg lucideSparkles class="h-4 w-4"></svg>
|
|
66927
|
+
{{ 'pptx.animations.addAnimation' | translate }}
|
|
66928
|
+
<svg lucideChevronDown class="h-3 w-3"></svg>
|
|
66568
66929
|
</button>
|
|
66569
66930
|
<!-- Dropdown panel: shown on group hover -->
|
|
66570
66931
|
<div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
|
|
@@ -66632,7 +66993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66632
66993
|
[title]="'pptx.animations.removeTooltip' | translate"
|
|
66633
66994
|
(click)="removeAnim()"
|
|
66634
66995
|
>
|
|
66635
|
-
|
|
66996
|
+
<svg lucideTrash2 class="h-4 w-4"></svg> {{ 'pptx.ribbon.removeAnimation' | translate }}
|
|
66636
66997
|
</button>
|
|
66637
66998
|
<span class="pptx-rb-sep"></span>
|
|
66638
66999
|
<!-- Animation Panel -->
|
|
@@ -66642,7 +67003,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66642
67003
|
[title]="'pptx.animations.openPanelTooltip' | translate"
|
|
66643
67004
|
(click)="toggleInspector.emit()"
|
|
66644
67005
|
>
|
|
66645
|
-
|
|
67006
|
+
<svg lucidePanelRight class="h-4 w-4"></svg>
|
|
67007
|
+
{{ 'pptx.animations.animationPanel' | translate }}
|
|
66646
67008
|
</button>
|
|
66647
67009
|
`,
|
|
66648
67010
|
}]
|
|
@@ -66738,7 +67100,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66738
67100
|
[title]="'pptx.ribbon.alignLeft' | translate"
|
|
66739
67101
|
(click)="editor.alignSelected(slideIndex(), 'left')"
|
|
66740
67102
|
>
|
|
66741
|
-
|
|
67103
|
+
<svg lucideTextAlignStart class="h-4 w-4"></svg>
|
|
66742
67104
|
</button>
|
|
66743
67105
|
<button
|
|
66744
67106
|
type="button"
|
|
@@ -66747,7 +67109,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66747
67109
|
[title]="'pptx.ribbon.alignCenter' | translate"
|
|
66748
67110
|
(click)="editor.alignSelected(slideIndex(), 'centerH')"
|
|
66749
67111
|
>
|
|
66750
|
-
|
|
67112
|
+
<svg lucideTextAlignCenter class="h-4 w-4"></svg>
|
|
66751
67113
|
</button>
|
|
66752
67114
|
<button
|
|
66753
67115
|
type="button"
|
|
@@ -66756,7 +67118,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66756
67118
|
[title]="'pptx.ribbon.alignRight' | translate"
|
|
66757
67119
|
(click)="editor.alignSelected(slideIndex(), 'right')"
|
|
66758
67120
|
>
|
|
66759
|
-
|
|
67121
|
+
<svg lucideTextAlignEnd class="h-4 w-4"></svg>
|
|
66760
67122
|
</button>
|
|
66761
67123
|
<button
|
|
66762
67124
|
type="button"
|
|
@@ -66765,7 +67127,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66765
67127
|
[title]="'pptx.ribbon.alignTop' | translate"
|
|
66766
67128
|
(click)="editor.alignSelected(slideIndex(), 'top')"
|
|
66767
67129
|
>
|
|
66768
|
-
|
|
67130
|
+
<svg lucideChevronUp class="h-4 w-4"></svg>
|
|
66769
67131
|
</button>
|
|
66770
67132
|
<button
|
|
66771
67133
|
type="button"
|
|
@@ -66774,7 +67136,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66774
67136
|
[title]="'pptx.ribbon.alignMiddle' | translate"
|
|
66775
67137
|
(click)="editor.alignSelected(slideIndex(), 'middle')"
|
|
66776
67138
|
>
|
|
66777
|
-
|
|
67139
|
+
<svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
|
|
66778
67140
|
</button>
|
|
66779
67141
|
<button
|
|
66780
67142
|
type="button"
|
|
@@ -66783,7 +67145,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66783
67145
|
[title]="'pptx.ribbon.alignBottom' | translate"
|
|
66784
67146
|
(click)="editor.alignSelected(slideIndex(), 'bottom')"
|
|
66785
67147
|
>
|
|
66786
|
-
|
|
67148
|
+
<svg lucideChevronDown class="h-4 w-4"></svg>
|
|
66787
67149
|
</button>
|
|
66788
67150
|
</div>
|
|
66789
67151
|
<span class="pptx-rb-sep"></span>
|
|
@@ -66796,7 +67158,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66796
67158
|
[title]="'pptx.ribbon.distributeHorizontally' | translate"
|
|
66797
67159
|
(click)="editor.distributeSelected(slideIndex(), 'horizontal')"
|
|
66798
67160
|
>
|
|
66799
|
-
|
|
67161
|
+
<svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
|
|
66800
67162
|
</button>
|
|
66801
67163
|
<button
|
|
66802
67164
|
type="button"
|
|
@@ -66805,7 +67167,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66805
67167
|
[title]="'pptx.ribbon.distributeVertically' | translate"
|
|
66806
67168
|
(click)="editor.distributeSelected(slideIndex(), 'vertical')"
|
|
66807
67169
|
>
|
|
66808
|
-
|
|
67170
|
+
<svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
|
|
66809
67171
|
</button>
|
|
66810
67172
|
</div>
|
|
66811
67173
|
<span class="pptx-rb-sep"></span>
|
|
@@ -66912,7 +67274,7 @@ class RibbonArrangeSectionComponent {
|
|
|
66912
67274
|
{{ 'pptx.arrange.delete' | translate }}
|
|
66913
67275
|
</button>
|
|
66914
67276
|
</div>
|
|
66915
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
67277
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideTextAlignStart, selector: "svg[lucideTextAlignStart], svg[lucideText], svg[lucideAlignLeft]" }, { kind: "component", type: LucideTextAlignCenter, selector: "svg[lucideTextAlignCenter], svg[lucideAlignCenter]" }, { kind: "component", type: LucideTextAlignEnd, selector: "svg[lucideTextAlignEnd], svg[lucideAlignRight]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideAlignHorizontalSpaceAround, selector: "svg[lucideAlignHorizontalSpaceAround]" }, { kind: "component", type: LucideAlignVerticalSpaceAround, selector: "svg[lucideAlignVerticalSpaceAround]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
66916
67278
|
}
|
|
66917
67279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonArrangeSectionComponent, decorators: [{
|
|
66918
67280
|
type: Component,
|
|
@@ -66921,7 +67283,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66921
67283
|
standalone: true,
|
|
66922
67284
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
66923
67285
|
host: { class: 'contents' },
|
|
66924
|
-
imports: [
|
|
67286
|
+
imports: [
|
|
67287
|
+
NgClass,
|
|
67288
|
+
TranslatePipe,
|
|
67289
|
+
LucideTextAlignStart,
|
|
67290
|
+
LucideTextAlignCenter,
|
|
67291
|
+
LucideTextAlignEnd,
|
|
67292
|
+
LucideChevronUp,
|
|
67293
|
+
LucideChevronDown,
|
|
67294
|
+
LucideAlignHorizontalSpaceAround,
|
|
67295
|
+
LucideAlignVerticalSpaceAround,
|
|
67296
|
+
],
|
|
66925
67297
|
template: `
|
|
66926
67298
|
<!-- Order -->
|
|
66927
67299
|
<div class="pptx-rb-grp">
|
|
@@ -66972,7 +67344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66972
67344
|
[title]="'pptx.ribbon.alignLeft' | translate"
|
|
66973
67345
|
(click)="editor.alignSelected(slideIndex(), 'left')"
|
|
66974
67346
|
>
|
|
66975
|
-
|
|
67347
|
+
<svg lucideTextAlignStart class="h-4 w-4"></svg>
|
|
66976
67348
|
</button>
|
|
66977
67349
|
<button
|
|
66978
67350
|
type="button"
|
|
@@ -66981,7 +67353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66981
67353
|
[title]="'pptx.ribbon.alignCenter' | translate"
|
|
66982
67354
|
(click)="editor.alignSelected(slideIndex(), 'centerH')"
|
|
66983
67355
|
>
|
|
66984
|
-
|
|
67356
|
+
<svg lucideTextAlignCenter class="h-4 w-4"></svg>
|
|
66985
67357
|
</button>
|
|
66986
67358
|
<button
|
|
66987
67359
|
type="button"
|
|
@@ -66990,7 +67362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66990
67362
|
[title]="'pptx.ribbon.alignRight' | translate"
|
|
66991
67363
|
(click)="editor.alignSelected(slideIndex(), 'right')"
|
|
66992
67364
|
>
|
|
66993
|
-
|
|
67365
|
+
<svg lucideTextAlignEnd class="h-4 w-4"></svg>
|
|
66994
67366
|
</button>
|
|
66995
67367
|
<button
|
|
66996
67368
|
type="button"
|
|
@@ -66999,7 +67371,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
66999
67371
|
[title]="'pptx.ribbon.alignTop' | translate"
|
|
67000
67372
|
(click)="editor.alignSelected(slideIndex(), 'top')"
|
|
67001
67373
|
>
|
|
67002
|
-
|
|
67374
|
+
<svg lucideChevronUp class="h-4 w-4"></svg>
|
|
67003
67375
|
</button>
|
|
67004
67376
|
<button
|
|
67005
67377
|
type="button"
|
|
@@ -67008,7 +67380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67008
67380
|
[title]="'pptx.ribbon.alignMiddle' | translate"
|
|
67009
67381
|
(click)="editor.alignSelected(slideIndex(), 'middle')"
|
|
67010
67382
|
>
|
|
67011
|
-
|
|
67383
|
+
<svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
|
|
67012
67384
|
</button>
|
|
67013
67385
|
<button
|
|
67014
67386
|
type="button"
|
|
@@ -67017,7 +67389,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67017
67389
|
[title]="'pptx.ribbon.alignBottom' | translate"
|
|
67018
67390
|
(click)="editor.alignSelected(slideIndex(), 'bottom')"
|
|
67019
67391
|
>
|
|
67020
|
-
|
|
67392
|
+
<svg lucideChevronDown class="h-4 w-4"></svg>
|
|
67021
67393
|
</button>
|
|
67022
67394
|
</div>
|
|
67023
67395
|
<span class="pptx-rb-sep"></span>
|
|
@@ -67030,7 +67402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67030
67402
|
[title]="'pptx.ribbon.distributeHorizontally' | translate"
|
|
67031
67403
|
(click)="editor.distributeSelected(slideIndex(), 'horizontal')"
|
|
67032
67404
|
>
|
|
67033
|
-
|
|
67405
|
+
<svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
|
|
67034
67406
|
</button>
|
|
67035
67407
|
<button
|
|
67036
67408
|
type="button"
|
|
@@ -67039,7 +67411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67039
67411
|
[title]="'pptx.ribbon.distributeVertically' | translate"
|
|
67040
67412
|
(click)="editor.distributeSelected(slideIndex(), 'vertical')"
|
|
67041
67413
|
>
|
|
67042
|
-
|
|
67414
|
+
<svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
|
|
67043
67415
|
</button>
|
|
67044
67416
|
</div>
|
|
67045
67417
|
<span class="pptx-rb-sep"></span>
|
|
@@ -67260,11 +67632,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67260
67632
|
* {@link DrawToolState} the parent re-broadcasts as `drawToolChange`.
|
|
67261
67633
|
*/
|
|
67262
67634
|
const DRAW_TOOLS = [
|
|
67263
|
-
{ id: 'select', labelKey: 'pptx.ribbon.tool.select'
|
|
67264
|
-
{ id: 'pen', labelKey: 'pptx.ribbon.tool.pen'
|
|
67265
|
-
{ id: 'highlighter', labelKey: 'pptx.ribbon.tool.highlighter'
|
|
67266
|
-
{ id: 'eraser', labelKey: 'pptx.ribbon.tool.eraser'
|
|
67267
|
-
{ id: 'freeform', labelKey: 'pptx.ribbon.tool.freeform'
|
|
67635
|
+
{ id: 'select', labelKey: 'pptx.ribbon.tool.select' },
|
|
67636
|
+
{ id: 'pen', labelKey: 'pptx.ribbon.tool.pen' },
|
|
67637
|
+
{ id: 'highlighter', labelKey: 'pptx.ribbon.tool.highlighter' },
|
|
67638
|
+
{ id: 'eraser', labelKey: 'pptx.ribbon.tool.eraser' },
|
|
67639
|
+
{ id: 'freeform', labelKey: 'pptx.ribbon.tool.freeform' },
|
|
67268
67640
|
];
|
|
67269
67641
|
class RibbonDrawSectionComponent {
|
|
67270
67642
|
activeTool = input('select', /* @ts-ignore */
|
|
@@ -67304,7 +67676,23 @@ class RibbonDrawSectionComponent {
|
|
|
67304
67676
|
[title]="tool.labelKey | translate"
|
|
67305
67677
|
(click)="selectTool(tool.id)"
|
|
67306
67678
|
>
|
|
67307
|
-
|
|
67679
|
+
@switch (tool.id) {
|
|
67680
|
+
@case ('select') {
|
|
67681
|
+
<svg lucideMoveRight class="h-4 w-4"></svg>
|
|
67682
|
+
}
|
|
67683
|
+
@case ('pen') {
|
|
67684
|
+
<svg lucidePencil class="h-4 w-4"></svg>
|
|
67685
|
+
}
|
|
67686
|
+
@case ('highlighter') {
|
|
67687
|
+
<svg lucideType class="h-4 w-4"></svg>
|
|
67688
|
+
}
|
|
67689
|
+
@case ('eraser') {
|
|
67690
|
+
<svg lucideMinus class="h-4 w-4"></svg>
|
|
67691
|
+
}
|
|
67692
|
+
@case ('freeform') {
|
|
67693
|
+
<svg lucideSpline class="h-4 w-4"></svg>
|
|
67694
|
+
}
|
|
67695
|
+
}
|
|
67308
67696
|
</button>
|
|
67309
67697
|
}
|
|
67310
67698
|
</div>
|
|
@@ -67338,7 +67726,7 @@ class RibbonDrawSectionComponent {
|
|
|
67338
67726
|
/>
|
|
67339
67727
|
<span class="w-4 text-right text-foreground">{{ drawingWidth() }}</span>
|
|
67340
67728
|
</label>
|
|
67341
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
67729
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideMoveRight, selector: "svg[lucideMoveRight]" }, { kind: "component", type: LucidePencil, selector: "svg[lucidePencil]" }, { kind: "component", type: LucideType, selector: "svg[lucideType]" }, { kind: "component", type: LucideMinus, selector: "svg[lucideMinus]" }, { kind: "component", type: LucideSpline, selector: "svg[lucideSpline]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
67342
67730
|
}
|
|
67343
67731
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonDrawSectionComponent, decorators: [{
|
|
67344
67732
|
type: Component,
|
|
@@ -67347,7 +67735,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67347
67735
|
standalone: true,
|
|
67348
67736
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
67349
67737
|
host: { class: 'contents' },
|
|
67350
|
-
imports: [
|
|
67738
|
+
imports: [
|
|
67739
|
+
NgClass,
|
|
67740
|
+
TranslatePipe,
|
|
67741
|
+
LucideMoveRight,
|
|
67742
|
+
LucidePencil,
|
|
67743
|
+
LucideType,
|
|
67744
|
+
LucideMinus,
|
|
67745
|
+
LucideSpline,
|
|
67746
|
+
],
|
|
67351
67747
|
template: `
|
|
67352
67748
|
<!--
|
|
67353
67749
|
Draw tool state is held in the parent ribbon and pushed up via
|
|
@@ -67365,7 +67761,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67365
67761
|
[title]="tool.labelKey | translate"
|
|
67366
67762
|
(click)="selectTool(tool.id)"
|
|
67367
67763
|
>
|
|
67368
|
-
|
|
67764
|
+
@switch (tool.id) {
|
|
67765
|
+
@case ('select') {
|
|
67766
|
+
<svg lucideMoveRight class="h-4 w-4"></svg>
|
|
67767
|
+
}
|
|
67768
|
+
@case ('pen') {
|
|
67769
|
+
<svg lucidePencil class="h-4 w-4"></svg>
|
|
67770
|
+
}
|
|
67771
|
+
@case ('highlighter') {
|
|
67772
|
+
<svg lucideType class="h-4 w-4"></svg>
|
|
67773
|
+
}
|
|
67774
|
+
@case ('eraser') {
|
|
67775
|
+
<svg lucideMinus class="h-4 w-4"></svg>
|
|
67776
|
+
}
|
|
67777
|
+
@case ('freeform') {
|
|
67778
|
+
<svg lucideSpline class="h-4 w-4"></svg>
|
|
67779
|
+
}
|
|
67780
|
+
}
|
|
67369
67781
|
</button>
|
|
67370
67782
|
}
|
|
67371
67783
|
</div>
|
|
@@ -67452,12 +67864,12 @@ class RibbonDrawingGroupComponent {
|
|
|
67452
67864
|
<div class="relative">
|
|
67453
67865
|
<button
|
|
67454
67866
|
type="button"
|
|
67455
|
-
class="pptx-rb-gb"
|
|
67867
|
+
class="pptx-rb-gb gap-1.5"
|
|
67456
67868
|
[disabled]="!canEdit()"
|
|
67457
67869
|
[title]="'pptx.ribbon.shapes' | translate"
|
|
67458
67870
|
(click)="shapesOpen.set(!shapesOpen())"
|
|
67459
67871
|
>
|
|
67460
|
-
{{ 'pptx.ribbon.shapes' | translate }}
|
|
67872
|
+
{{ 'pptx.ribbon.shapes' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
67461
67873
|
</button>
|
|
67462
67874
|
@if (shapesOpen()) {
|
|
67463
67875
|
<div
|
|
@@ -67479,12 +67891,12 @@ class RibbonDrawingGroupComponent {
|
|
|
67479
67891
|
<div class="relative">
|
|
67480
67892
|
<button
|
|
67481
67893
|
type="button"
|
|
67482
|
-
class="pptx-rb-gb"
|
|
67894
|
+
class="pptx-rb-gb gap-1.5"
|
|
67483
67895
|
[disabled]="!canEdit()"
|
|
67484
67896
|
[title]="'pptx.arrange.arrange' | translate"
|
|
67485
67897
|
(click)="arrangeOpen.set(!arrangeOpen())"
|
|
67486
67898
|
>
|
|
67487
|
-
{{ 'pptx.arrange.arrange' | translate }}
|
|
67899
|
+
{{ 'pptx.arrange.arrange' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
67488
67900
|
</button>
|
|
67489
67901
|
@if (arrangeOpen()) {
|
|
67490
67902
|
<div
|
|
@@ -67544,7 +67956,7 @@ class RibbonDrawingGroupComponent {
|
|
|
67544
67956
|
{{ 'pptx.ribbon.shapeStyles' | translate }}
|
|
67545
67957
|
</span>
|
|
67546
67958
|
</div>
|
|
67547
|
-
`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
67959
|
+
`, isInline: true, dependencies: [{ kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
67548
67960
|
}
|
|
67549
67961
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonDrawingGroupComponent, decorators: [{
|
|
67550
67962
|
type: Component,
|
|
@@ -67553,7 +67965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67553
67965
|
standalone: true,
|
|
67554
67966
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
67555
67967
|
host: { class: 'contents' },
|
|
67556
|
-
imports: [TranslatePipe],
|
|
67968
|
+
imports: [TranslatePipe, LucideChevronDown],
|
|
67557
67969
|
template: `
|
|
67558
67970
|
<!-- Shapes -->
|
|
67559
67971
|
<div class="flex flex-col items-center gap-0.5">
|
|
@@ -67561,12 +67973,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67561
67973
|
<div class="relative">
|
|
67562
67974
|
<button
|
|
67563
67975
|
type="button"
|
|
67564
|
-
class="pptx-rb-gb"
|
|
67976
|
+
class="pptx-rb-gb gap-1.5"
|
|
67565
67977
|
[disabled]="!canEdit()"
|
|
67566
67978
|
[title]="'pptx.ribbon.shapes' | translate"
|
|
67567
67979
|
(click)="shapesOpen.set(!shapesOpen())"
|
|
67568
67980
|
>
|
|
67569
|
-
{{ 'pptx.ribbon.shapes' | translate }}
|
|
67981
|
+
{{ 'pptx.ribbon.shapes' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
67570
67982
|
</button>
|
|
67571
67983
|
@if (shapesOpen()) {
|
|
67572
67984
|
<div
|
|
@@ -67588,12 +68000,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
67588
68000
|
<div class="relative">
|
|
67589
68001
|
<button
|
|
67590
68002
|
type="button"
|
|
67591
|
-
class="pptx-rb-gb"
|
|
68003
|
+
class="pptx-rb-gb gap-1.5"
|
|
67592
68004
|
[disabled]="!canEdit()"
|
|
67593
68005
|
[title]="'pptx.arrange.arrange' | translate"
|
|
67594
68006
|
(click)="arrangeOpen.set(!arrangeOpen())"
|
|
67595
68007
|
>
|
|
67596
|
-
{{ 'pptx.arrange.arrange' | translate }}
|
|
68008
|
+
{{ 'pptx.arrange.arrange' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
67597
68009
|
</button>
|
|
67598
68010
|
@if (arrangeOpen()) {
|
|
67599
68011
|
<div
|
|
@@ -68208,7 +68620,7 @@ class RibbonFontControlsComponent {
|
|
|
68208
68620
|
[title]="'pptx.ribbon.growFont' | translate"
|
|
68209
68621
|
(click)="stepFontSize(1)"
|
|
68210
68622
|
>
|
|
68211
|
-
|
|
68623
|
+
<svg lucideAArrowUp class="h-4 w-4"></svg>
|
|
68212
68624
|
</button>
|
|
68213
68625
|
<button
|
|
68214
68626
|
type="button"
|
|
@@ -68217,7 +68629,7 @@ class RibbonFontControlsComponent {
|
|
|
68217
68629
|
[title]="'pptx.ribbon.shrinkFont' | translate"
|
|
68218
68630
|
(click)="stepFontSize(-1)"
|
|
68219
68631
|
>
|
|
68220
|
-
|
|
68632
|
+
<svg lucideAArrowDown class="h-4 w-4"></svg>
|
|
68221
68633
|
</button>
|
|
68222
68634
|
<button
|
|
68223
68635
|
type="button"
|
|
@@ -68226,7 +68638,7 @@ class RibbonFontControlsComponent {
|
|
|
68226
68638
|
[title]="'pptx.ribbon.clearFormatting' | translate"
|
|
68227
68639
|
(click)="clearFormatting()"
|
|
68228
68640
|
>
|
|
68229
|
-
|
|
68641
|
+
<svg lucideRemoveFormatting class="h-4 w-4"></svg>
|
|
68230
68642
|
</button>
|
|
68231
68643
|
</div>
|
|
68232
68644
|
<div class="pptx-rb-grp">
|
|
@@ -68337,9 +68749,9 @@ class RibbonFontControlsComponent {
|
|
|
68337
68749
|
swatchAriaKey="pptx.ribbon.highlightColourValue"
|
|
68338
68750
|
(pick)="setHighlight($event)"
|
|
68339
68751
|
>
|
|
68340
|
-
<
|
|
68752
|
+
<svg lucideHighlighter class="h-3.5 w-3.5"></svg>
|
|
68341
68753
|
</pptx-ribbon-color-popover>
|
|
68342
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonColorPopoverComponent, selector: "pptx-ribbon-color-popover", inputs: ["current", "presets", "disabled", "titleKey", "swatchAriaKey"], outputs: ["pick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68754
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonColorPopoverComponent, selector: "pptx-ribbon-color-popover", inputs: ["current", "presets", "disabled", "titleKey", "swatchAriaKey"], outputs: ["pick"] }, { kind: "component", type: LucideAArrowUp, selector: "svg[lucideAArrowUp]" }, { kind: "component", type: LucideAArrowDown, selector: "svg[lucideAArrowDown]" }, { kind: "component", type: LucideRemoveFormatting, selector: "svg[lucideRemoveFormatting]" }, { kind: "component", type: LucideHighlighter, selector: "svg[lucideHighlighter]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68343
68755
|
}
|
|
68344
68756
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonFontControlsComponent, decorators: [{
|
|
68345
68757
|
type: Component,
|
|
@@ -68348,7 +68760,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68348
68760
|
standalone: true,
|
|
68349
68761
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68350
68762
|
host: { class: 'contents' },
|
|
68351
|
-
imports: [
|
|
68763
|
+
imports: [
|
|
68764
|
+
NgClass,
|
|
68765
|
+
TranslatePipe,
|
|
68766
|
+
RibbonColorPopoverComponent,
|
|
68767
|
+
LucideAArrowUp,
|
|
68768
|
+
LucideAArrowDown,
|
|
68769
|
+
LucideRemoveFormatting,
|
|
68770
|
+
LucideHighlighter,
|
|
68771
|
+
],
|
|
68352
68772
|
template: `
|
|
68353
68773
|
<div class="flex items-center gap-1">
|
|
68354
68774
|
<select
|
|
@@ -68380,7 +68800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68380
68800
|
[title]="'pptx.ribbon.growFont' | translate"
|
|
68381
68801
|
(click)="stepFontSize(1)"
|
|
68382
68802
|
>
|
|
68383
|
-
|
|
68803
|
+
<svg lucideAArrowUp class="h-4 w-4"></svg>
|
|
68384
68804
|
</button>
|
|
68385
68805
|
<button
|
|
68386
68806
|
type="button"
|
|
@@ -68389,7 +68809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68389
68809
|
[title]="'pptx.ribbon.shrinkFont' | translate"
|
|
68390
68810
|
(click)="stepFontSize(-1)"
|
|
68391
68811
|
>
|
|
68392
|
-
|
|
68812
|
+
<svg lucideAArrowDown class="h-4 w-4"></svg>
|
|
68393
68813
|
</button>
|
|
68394
68814
|
<button
|
|
68395
68815
|
type="button"
|
|
@@ -68398,7 +68818,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68398
68818
|
[title]="'pptx.ribbon.clearFormatting' | translate"
|
|
68399
68819
|
(click)="clearFormatting()"
|
|
68400
68820
|
>
|
|
68401
|
-
|
|
68821
|
+
<svg lucideRemoveFormatting class="h-4 w-4"></svg>
|
|
68402
68822
|
</button>
|
|
68403
68823
|
</div>
|
|
68404
68824
|
<div class="pptx-rb-grp">
|
|
@@ -68509,7 +68929,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68509
68929
|
swatchAriaKey="pptx.ribbon.highlightColourValue"
|
|
68510
68930
|
(pick)="setHighlight($event)"
|
|
68511
68931
|
>
|
|
68512
|
-
<
|
|
68932
|
+
<svg lucideHighlighter class="h-3.5 w-3.5"></svg>
|
|
68513
68933
|
</pptx-ribbon-color-popover>
|
|
68514
68934
|
`,
|
|
68515
68935
|
}]
|
|
@@ -68672,7 +69092,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68672
69092
|
[title]="'pptx.ribbon.bulletList' | translate"
|
|
68673
69093
|
(click)="toggleList('bullet')"
|
|
68674
69094
|
>
|
|
68675
|
-
|
|
69095
|
+
<svg lucideList class="h-4 w-4"></svg>
|
|
68676
69096
|
</button>
|
|
68677
69097
|
<button
|
|
68678
69098
|
type="button"
|
|
@@ -68682,7 +69102,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68682
69102
|
[title]="'pptx.notes.numberedList' | translate"
|
|
68683
69103
|
(click)="toggleList('numbered')"
|
|
68684
69104
|
>
|
|
68685
|
-
|
|
69105
|
+
<svg lucideListOrdered class="h-4 w-4"></svg>
|
|
68686
69106
|
</button>
|
|
68687
69107
|
</div>
|
|
68688
69108
|
<!-- Indent: outdent + indent -->
|
|
@@ -68694,7 +69114,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68694
69114
|
[title]="'pptx.notes.outdent' | translate"
|
|
68695
69115
|
(click)="changeIndent(-24)"
|
|
68696
69116
|
>
|
|
68697
|
-
|
|
69117
|
+
<svg lucideListIndentDecrease class="h-4 w-4"></svg>
|
|
68698
69118
|
</button>
|
|
68699
69119
|
<button
|
|
68700
69120
|
type="button"
|
|
@@ -68703,7 +69123,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68703
69123
|
[title]="'pptx.notes.indent' | translate"
|
|
68704
69124
|
(click)="changeIndent(24)"
|
|
68705
69125
|
>
|
|
68706
|
-
|
|
69126
|
+
<svg lucideListIndentIncrease class="h-4 w-4"></svg>
|
|
68707
69127
|
</button>
|
|
68708
69128
|
</div>
|
|
68709
69129
|
<!-- Alignment -->
|
|
@@ -68716,7 +69136,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68716
69136
|
[title]="'pptx.ribbon.alignLeft' | translate"
|
|
68717
69137
|
(click)="setAlign('left')"
|
|
68718
69138
|
>
|
|
68719
|
-
|
|
69139
|
+
<svg lucideTextAlignStart class="h-4 w-4"></svg>
|
|
68720
69140
|
</button>
|
|
68721
69141
|
<button
|
|
68722
69142
|
type="button"
|
|
@@ -68726,7 +69146,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68726
69146
|
[title]="'pptx.ribbon.alignCenter' | translate"
|
|
68727
69147
|
(click)="setAlign('center')"
|
|
68728
69148
|
>
|
|
68729
|
-
|
|
69149
|
+
<svg lucideTextAlignCenter class="h-4 w-4"></svg>
|
|
68730
69150
|
</button>
|
|
68731
69151
|
<button
|
|
68732
69152
|
type="button"
|
|
@@ -68736,7 +69156,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68736
69156
|
[title]="'pptx.ribbon.alignRight' | translate"
|
|
68737
69157
|
(click)="setAlign('right')"
|
|
68738
69158
|
>
|
|
68739
|
-
|
|
69159
|
+
<svg lucideTextAlignEnd class="h-4 w-4"></svg>
|
|
68740
69160
|
</button>
|
|
68741
69161
|
<button
|
|
68742
69162
|
type="button"
|
|
@@ -68746,7 +69166,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68746
69166
|
[title]="'pptx.ribbon.justify' | translate"
|
|
68747
69167
|
(click)="setAlign('justify')"
|
|
68748
69168
|
>
|
|
68749
|
-
|
|
69169
|
+
<svg lucideTextAlignJustify class="h-4 w-4"></svg>
|
|
68750
69170
|
</button>
|
|
68751
69171
|
</div>
|
|
68752
69172
|
<!-- Line Spacing -->
|
|
@@ -68784,7 +69204,7 @@ class RibbonParagraphControlsComponent {
|
|
|
68784
69204
|
<option [value]="c" [selected]="c === curColumns()">{{ c }}</option>
|
|
68785
69205
|
}
|
|
68786
69206
|
</select>
|
|
68787
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69207
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideList, selector: "svg[lucideList]" }, { kind: "component", type: LucideListOrdered, selector: "svg[lucideListOrdered]" }, { kind: "component", type: LucideListIndentDecrease, selector: "svg[lucideListIndentDecrease], svg[lucideOutdent], svg[lucideIndentDecrease]" }, { kind: "component", type: LucideListIndentIncrease, selector: "svg[lucideListIndentIncrease], svg[lucideIndent], svg[lucideIndentIncrease]" }, { kind: "component", type: LucideTextAlignStart, selector: "svg[lucideTextAlignStart], svg[lucideText], svg[lucideAlignLeft]" }, { kind: "component", type: LucideTextAlignCenter, selector: "svg[lucideTextAlignCenter], svg[lucideAlignCenter]" }, { kind: "component", type: LucideTextAlignEnd, selector: "svg[lucideTextAlignEnd], svg[lucideAlignRight]" }, { kind: "component", type: LucideTextAlignJustify, selector: "svg[lucideTextAlignJustify], svg[lucideAlignJustify]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68788
69208
|
}
|
|
68789
69209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonParagraphControlsComponent, decorators: [{
|
|
68790
69210
|
type: Component,
|
|
@@ -68793,7 +69213,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68793
69213
|
standalone: true,
|
|
68794
69214
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68795
69215
|
host: { class: 'contents' },
|
|
68796
|
-
imports: [
|
|
69216
|
+
imports: [
|
|
69217
|
+
NgClass,
|
|
69218
|
+
TranslatePipe,
|
|
69219
|
+
LucideList,
|
|
69220
|
+
LucideListOrdered,
|
|
69221
|
+
LucideListIndentDecrease,
|
|
69222
|
+
LucideListIndentIncrease,
|
|
69223
|
+
LucideTextAlignStart,
|
|
69224
|
+
LucideTextAlignCenter,
|
|
69225
|
+
LucideTextAlignEnd,
|
|
69226
|
+
LucideTextAlignJustify,
|
|
69227
|
+
],
|
|
68797
69228
|
template: `
|
|
68798
69229
|
<!-- List style: bullets + numbering -->
|
|
68799
69230
|
<div class="pptx-rb-grp">
|
|
@@ -68805,7 +69236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68805
69236
|
[title]="'pptx.ribbon.bulletList' | translate"
|
|
68806
69237
|
(click)="toggleList('bullet')"
|
|
68807
69238
|
>
|
|
68808
|
-
|
|
69239
|
+
<svg lucideList class="h-4 w-4"></svg>
|
|
68809
69240
|
</button>
|
|
68810
69241
|
<button
|
|
68811
69242
|
type="button"
|
|
@@ -68815,7 +69246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68815
69246
|
[title]="'pptx.notes.numberedList' | translate"
|
|
68816
69247
|
(click)="toggleList('numbered')"
|
|
68817
69248
|
>
|
|
68818
|
-
|
|
69249
|
+
<svg lucideListOrdered class="h-4 w-4"></svg>
|
|
68819
69250
|
</button>
|
|
68820
69251
|
</div>
|
|
68821
69252
|
<!-- Indent: outdent + indent -->
|
|
@@ -68827,7 +69258,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68827
69258
|
[title]="'pptx.notes.outdent' | translate"
|
|
68828
69259
|
(click)="changeIndent(-24)"
|
|
68829
69260
|
>
|
|
68830
|
-
|
|
69261
|
+
<svg lucideListIndentDecrease class="h-4 w-4"></svg>
|
|
68831
69262
|
</button>
|
|
68832
69263
|
<button
|
|
68833
69264
|
type="button"
|
|
@@ -68836,7 +69267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68836
69267
|
[title]="'pptx.notes.indent' | translate"
|
|
68837
69268
|
(click)="changeIndent(24)"
|
|
68838
69269
|
>
|
|
68839
|
-
|
|
69270
|
+
<svg lucideListIndentIncrease class="h-4 w-4"></svg>
|
|
68840
69271
|
</button>
|
|
68841
69272
|
</div>
|
|
68842
69273
|
<!-- Alignment -->
|
|
@@ -68849,7 +69280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68849
69280
|
[title]="'pptx.ribbon.alignLeft' | translate"
|
|
68850
69281
|
(click)="setAlign('left')"
|
|
68851
69282
|
>
|
|
68852
|
-
|
|
69283
|
+
<svg lucideTextAlignStart class="h-4 w-4"></svg>
|
|
68853
69284
|
</button>
|
|
68854
69285
|
<button
|
|
68855
69286
|
type="button"
|
|
@@ -68859,7 +69290,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68859
69290
|
[title]="'pptx.ribbon.alignCenter' | translate"
|
|
68860
69291
|
(click)="setAlign('center')"
|
|
68861
69292
|
>
|
|
68862
|
-
|
|
69293
|
+
<svg lucideTextAlignCenter class="h-4 w-4"></svg>
|
|
68863
69294
|
</button>
|
|
68864
69295
|
<button
|
|
68865
69296
|
type="button"
|
|
@@ -68869,7 +69300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68869
69300
|
[title]="'pptx.ribbon.alignRight' | translate"
|
|
68870
69301
|
(click)="setAlign('right')"
|
|
68871
69302
|
>
|
|
68872
|
-
|
|
69303
|
+
<svg lucideTextAlignEnd class="h-4 w-4"></svg>
|
|
68873
69304
|
</button>
|
|
68874
69305
|
<button
|
|
68875
69306
|
type="button"
|
|
@@ -68879,7 +69310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68879
69310
|
[title]="'pptx.ribbon.justify' | translate"
|
|
68880
69311
|
(click)="setAlign('justify')"
|
|
68881
69312
|
>
|
|
68882
|
-
|
|
69313
|
+
<svg lucideTextAlignJustify class="h-4 w-4"></svg>
|
|
68883
69314
|
</button>
|
|
68884
69315
|
</div>
|
|
68885
69316
|
<!-- Line Spacing -->
|
|
@@ -69011,11 +69442,11 @@ class RibbonHomeSectionComponent {
|
|
|
69011
69442
|
<div class="pptx-rb-grp">
|
|
69012
69443
|
<button
|
|
69013
69444
|
type="button"
|
|
69014
|
-
class="pptx-rb-gb"
|
|
69445
|
+
class="pptx-rb-gb gap-1.5"
|
|
69015
69446
|
[title]="'pptx.ribbon.newSlide' | translate"
|
|
69016
69447
|
(click)="editor.addSlide(slideIndex())"
|
|
69017
69448
|
>
|
|
69018
|
-
|
|
69449
|
+
<svg lucidePlus class="h-4 w-4"></svg> {{ 'pptx.ribbon.slide' | translate }}
|
|
69019
69450
|
</button>
|
|
69020
69451
|
<button
|
|
69021
69452
|
type="button"
|
|
@@ -69091,7 +69522,7 @@ class RibbonHomeSectionComponent {
|
|
|
69091
69522
|
{{ 'pptx.ribbon.editing' | translate }}
|
|
69092
69523
|
</span>
|
|
69093
69524
|
</div>
|
|
69094
|
-
`, 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 });
|
|
69525
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { 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 });
|
|
69095
69526
|
}
|
|
69096
69527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonHomeSectionComponent, decorators: [{
|
|
69097
69528
|
type: Component,
|
|
@@ -69103,6 +69534,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69103
69534
|
imports: [
|
|
69104
69535
|
NgClass,
|
|
69105
69536
|
TranslatePipe,
|
|
69537
|
+
LucidePlus,
|
|
69106
69538
|
RibbonFontControlsComponent,
|
|
69107
69539
|
RibbonParagraphControlsComponent,
|
|
69108
69540
|
RibbonEditingSectionComponent,
|
|
@@ -69160,11 +69592,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69160
69592
|
<div class="pptx-rb-grp">
|
|
69161
69593
|
<button
|
|
69162
69594
|
type="button"
|
|
69163
|
-
class="pptx-rb-gb"
|
|
69595
|
+
class="pptx-rb-gb gap-1.5"
|
|
69164
69596
|
[title]="'pptx.ribbon.newSlide' | translate"
|
|
69165
69597
|
(click)="editor.addSlide(slideIndex())"
|
|
69166
69598
|
>
|
|
69167
|
-
|
|
69599
|
+
<svg lucidePlus class="h-4 w-4"></svg> {{ 'pptx.ribbon.slide' | translate }}
|
|
69168
69600
|
</button>
|
|
69169
69601
|
<button
|
|
69170
69602
|
type="button"
|
|
@@ -69422,7 +69854,7 @@ class RibbonInsertFieldsComponent {
|
|
|
69422
69854
|
<rect x="3" y="3" width="18" height="18" rx="2" />
|
|
69423
69855
|
<path d="M13 7l4 5-4 5" />
|
|
69424
69856
|
</svg>
|
|
69425
|
-
{{ 'pptx.ribbon.action' | translate }}
|
|
69857
|
+
{{ 'pptx.ribbon.action' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
69426
69858
|
</button>
|
|
69427
69859
|
<div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
|
|
69428
69860
|
<div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
|
|
@@ -69466,7 +69898,7 @@ class RibbonInsertFieldsComponent {
|
|
|
69466
69898
|
<path d="M4 7h16M4 12h10M4 17h12" />
|
|
69467
69899
|
<circle cx="19" cy="15" r="3" />
|
|
69468
69900
|
</svg>
|
|
69469
|
-
{{ 'pptx.field.field' | translate }}
|
|
69901
|
+
{{ 'pptx.field.field' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
69470
69902
|
</button>
|
|
69471
69903
|
<div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
|
|
69472
69904
|
<div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
|
|
@@ -69553,7 +69985,7 @@ class RibbonInsertFieldsComponent {
|
|
|
69553
69985
|
</div>
|
|
69554
69986
|
</div>
|
|
69555
69987
|
}
|
|
69556
|
-
`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69988
|
+
`, isInline: true, dependencies: [{ kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69557
69989
|
}
|
|
69558
69990
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonInsertFieldsComponent, decorators: [{
|
|
69559
69991
|
type: Component,
|
|
@@ -69562,7 +69994,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69562
69994
|
standalone: true,
|
|
69563
69995
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
69564
69996
|
host: { class: 'contents' },
|
|
69565
|
-
imports: [TranslatePipe],
|
|
69997
|
+
imports: [TranslatePipe, LucideChevronDown],
|
|
69566
69998
|
template: `
|
|
69567
69999
|
<!-- Action Buttons dropdown (hover-reveal, mirrors React/Vue) -->
|
|
69568
70000
|
<div class="group relative">
|
|
@@ -69583,7 +70015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69583
70015
|
<rect x="3" y="3" width="18" height="18" rx="2" />
|
|
69584
70016
|
<path d="M13 7l4 5-4 5" />
|
|
69585
70017
|
</svg>
|
|
69586
|
-
{{ 'pptx.ribbon.action' | translate }}
|
|
70018
|
+
{{ 'pptx.ribbon.action' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
69587
70019
|
</button>
|
|
69588
70020
|
<div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
|
|
69589
70021
|
<div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
|
|
@@ -69627,7 +70059,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69627
70059
|
<path d="M4 7h16M4 12h10M4 17h12" />
|
|
69628
70060
|
<circle cx="19" cy="15" r="3" />
|
|
69629
70061
|
</svg>
|
|
69630
|
-
{{ 'pptx.field.field' | translate }}
|
|
70062
|
+
{{ 'pptx.field.field' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
|
|
69631
70063
|
</button>
|
|
69632
70064
|
<div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
|
|
69633
70065
|
<div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
|
|
@@ -69854,43 +70286,43 @@ class RibbonInsertSectionComponent {
|
|
|
69854
70286
|
</button>
|
|
69855
70287
|
<button
|
|
69856
70288
|
type="button"
|
|
69857
|
-
class="pptx-rb-gb"
|
|
70289
|
+
class="pptx-rb-gb gap-1.5"
|
|
69858
70290
|
(click)="insertShape('rect')"
|
|
69859
70291
|
[title]="'pptx.ribbon.rectangle' | translate"
|
|
69860
70292
|
>
|
|
69861
|
-
|
|
70293
|
+
<svg lucideSquare class="h-4 w-4"></svg> {{ 'pptx.ribbon.rect' | translate }}
|
|
69862
70294
|
</button>
|
|
69863
70295
|
<button
|
|
69864
70296
|
type="button"
|
|
69865
|
-
class="pptx-rb-gb"
|
|
70297
|
+
class="pptx-rb-gb gap-1.5"
|
|
69866
70298
|
(click)="insertShape('ellipse')"
|
|
69867
70299
|
[title]="'pptx.ribbon.ellipse' | translate"
|
|
69868
70300
|
>
|
|
69869
|
-
|
|
70301
|
+
<svg lucideCircle class="h-4 w-4"></svg> {{ 'pptx.ribbon.ellipse' | translate }}
|
|
69870
70302
|
</button>
|
|
69871
70303
|
<button
|
|
69872
70304
|
type="button"
|
|
69873
|
-
class="pptx-rb-gb"
|
|
70305
|
+
class="pptx-rb-gb gap-1.5"
|
|
69874
70306
|
(click)="insertShape('line')"
|
|
69875
70307
|
[title]="'pptx.ribbon.line' | translate"
|
|
69876
70308
|
>
|
|
69877
|
-
|
|
70309
|
+
<svg lucideSlash class="h-4 w-4"></svg> {{ 'pptx.ribbon.line' | translate }}
|
|
69878
70310
|
</button>
|
|
69879
70311
|
<button
|
|
69880
70312
|
type="button"
|
|
69881
|
-
class="pptx-rb-gb"
|
|
70313
|
+
class="pptx-rb-gb gap-1.5"
|
|
69882
70314
|
(click)="insertImage()"
|
|
69883
70315
|
[title]="'pptx.ribbon.insertImage' | translate"
|
|
69884
70316
|
>
|
|
69885
|
-
|
|
70317
|
+
<svg lucideImage class="h-4 w-4"></svg> {{ 'pptx.ribbon.image' | translate }}
|
|
69886
70318
|
</button>
|
|
69887
70319
|
<button
|
|
69888
70320
|
type="button"
|
|
69889
|
-
class="pptx-rb-gl"
|
|
70321
|
+
class="pptx-rb-gl gap-1.5"
|
|
69890
70322
|
(click)="insertMedia()"
|
|
69891
70323
|
[title]="'pptx.ribbon.insertMedia' | translate"
|
|
69892
70324
|
>
|
|
69893
|
-
|
|
70325
|
+
<svg lucideVideo class="h-4 w-4"></svg> {{ 'pptx.ribbon.media' | translate }}
|
|
69894
70326
|
</button>
|
|
69895
70327
|
</div>
|
|
69896
70328
|
<span class="pptx-rb-sep"></span>
|
|
@@ -69898,19 +70330,19 @@ class RibbonInsertSectionComponent {
|
|
|
69898
70330
|
<div class="pptx-rb-grp">
|
|
69899
70331
|
<button
|
|
69900
70332
|
type="button"
|
|
69901
|
-
class="pptx-rb-gb"
|
|
70333
|
+
class="pptx-rb-gb gap-1.5"
|
|
69902
70334
|
(click)="insertTable()"
|
|
69903
70335
|
[title]="'pptx.ribbon.insertTable' | translate"
|
|
69904
70336
|
>
|
|
69905
|
-
|
|
70337
|
+
<svg lucideDatabase class="h-4 w-4"></svg> {{ 'pptx.ribbon.table' | translate }}
|
|
69906
70338
|
</button>
|
|
69907
70339
|
<button
|
|
69908
70340
|
type="button"
|
|
69909
|
-
class="pptx-rb-gb"
|
|
70341
|
+
class="pptx-rb-gb gap-1.5"
|
|
69910
70342
|
(click)="openSmartArtDialog.emit()"
|
|
69911
70343
|
[title]="'pptx.ribbon.insertSmartArt' | translate"
|
|
69912
70344
|
>
|
|
69913
|
-
|
|
70345
|
+
<svg lucideLayers class="h-4 w-4"></svg> {{ 'pptx.ribbon.smartArt' | translate }}
|
|
69914
70346
|
</button>
|
|
69915
70347
|
<select
|
|
69916
70348
|
class="pptx-rb-gl"
|
|
@@ -69924,25 +70356,50 @@ class RibbonInsertSectionComponent {
|
|
|
69924
70356
|
</select>
|
|
69925
70357
|
<button
|
|
69926
70358
|
type="button"
|
|
69927
|
-
class="pptx-rb-gb"
|
|
70359
|
+
class="pptx-rb-gb gap-1.5"
|
|
69928
70360
|
(click)="insertChart()"
|
|
69929
70361
|
[title]="'pptx.ribbon.insertChart' | translate"
|
|
69930
70362
|
>
|
|
69931
|
-
|
|
70363
|
+
<svg
|
|
70364
|
+
class="h-4 w-4"
|
|
70365
|
+
viewBox="0 0 24 24"
|
|
70366
|
+
fill="none"
|
|
70367
|
+
stroke="currentColor"
|
|
70368
|
+
stroke-width="2"
|
|
70369
|
+
stroke-linecap="round"
|
|
70370
|
+
stroke-linejoin="round"
|
|
70371
|
+
>
|
|
70372
|
+
<path d="M3 3v18h18" />
|
|
70373
|
+
<rect x="7" y="11" width="3" height="6" />
|
|
70374
|
+
<rect x="12" y="7" width="3" height="10" />
|
|
70375
|
+
<rect x="17" y="13" width="3" height="4" />
|
|
70376
|
+
</svg>
|
|
70377
|
+
{{ 'pptx.ribbon.chart' | translate }}
|
|
69932
70378
|
</button>
|
|
69933
70379
|
<button
|
|
69934
70380
|
type="button"
|
|
69935
|
-
class="pptx-rb-gl"
|
|
70381
|
+
class="pptx-rb-gl gap-1.5"
|
|
69936
70382
|
(click)="openEquationDialog.emit()"
|
|
69937
70383
|
[title]="'pptx.ribbon.insertEquation' | translate"
|
|
69938
70384
|
>
|
|
69939
|
-
|
|
70385
|
+
<svg
|
|
70386
|
+
class="h-4 w-4"
|
|
70387
|
+
viewBox="0 0 24 24"
|
|
70388
|
+
fill="none"
|
|
70389
|
+
stroke="currentColor"
|
|
70390
|
+
stroke-width="2"
|
|
70391
|
+
stroke-linecap="round"
|
|
70392
|
+
stroke-linejoin="round"
|
|
70393
|
+
>
|
|
70394
|
+
<path d="M4 17h6M7 14v6M14 7l4.5 10M15.5 14h5" />
|
|
70395
|
+
</svg>
|
|
70396
|
+
{{ 'pptx.ribbon.equation' | translate }}
|
|
69940
70397
|
</button>
|
|
69941
70398
|
</div>
|
|
69942
70399
|
<span class="pptx-rb-sep"></span>
|
|
69943
70400
|
<!-- Action button + Field dropdowns -->
|
|
69944
70401
|
<pptx-ribbon-insert-fields [slideIndex]="slideIndex()" />
|
|
69945
|
-
`, isInline: true, dependencies: [{ kind: "component", type: RibbonInsertFieldsComponent, selector: "pptx-ribbon-insert-fields", inputs: ["slideIndex"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70402
|
+
`, isInline: true, dependencies: [{ kind: "component", type: RibbonInsertFieldsComponent, selector: "pptx-ribbon-insert-fields", inputs: ["slideIndex"] }, { kind: "component", type: LucideSquare, selector: "svg[lucideSquare]" }, { kind: "component", type: LucideCircle, selector: "svg[lucideCircle]" }, { kind: "component", type: LucideSlash, selector: "svg[lucideSlash]" }, { kind: "component", type: LucideImage, selector: "svg[lucideImage]" }, { kind: "component", type: LucideVideo, selector: "svg[lucideVideo]" }, { kind: "component", type: LucideDatabase, selector: "svg[lucideDatabase]" }, { kind: "component", type: LucideLayers, selector: "svg[lucideLayers], svg[lucideLayers3]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69946
70403
|
}
|
|
69947
70404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonInsertSectionComponent, decorators: [{
|
|
69948
70405
|
type: Component,
|
|
@@ -69951,7 +70408,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69951
70408
|
standalone: true,
|
|
69952
70409
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
69953
70410
|
host: { class: 'contents' },
|
|
69954
|
-
imports: [
|
|
70411
|
+
imports: [
|
|
70412
|
+
TranslatePipe,
|
|
70413
|
+
RibbonInsertFieldsComponent,
|
|
70414
|
+
LucideSquare,
|
|
70415
|
+
LucideCircle,
|
|
70416
|
+
LucideSlash,
|
|
70417
|
+
LucideImage,
|
|
70418
|
+
LucideVideo,
|
|
70419
|
+
LucideDatabase,
|
|
70420
|
+
LucideLayers,
|
|
70421
|
+
],
|
|
69955
70422
|
template: `
|
|
69956
70423
|
<!-- Shapes group -->
|
|
69957
70424
|
<div class="pptx-rb-grp">
|
|
@@ -69965,43 +70432,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
69965
70432
|
</button>
|
|
69966
70433
|
<button
|
|
69967
70434
|
type="button"
|
|
69968
|
-
class="pptx-rb-gb"
|
|
70435
|
+
class="pptx-rb-gb gap-1.5"
|
|
69969
70436
|
(click)="insertShape('rect')"
|
|
69970
70437
|
[title]="'pptx.ribbon.rectangle' | translate"
|
|
69971
70438
|
>
|
|
69972
|
-
|
|
70439
|
+
<svg lucideSquare class="h-4 w-4"></svg> {{ 'pptx.ribbon.rect' | translate }}
|
|
69973
70440
|
</button>
|
|
69974
70441
|
<button
|
|
69975
70442
|
type="button"
|
|
69976
|
-
class="pptx-rb-gb"
|
|
70443
|
+
class="pptx-rb-gb gap-1.5"
|
|
69977
70444
|
(click)="insertShape('ellipse')"
|
|
69978
70445
|
[title]="'pptx.ribbon.ellipse' | translate"
|
|
69979
70446
|
>
|
|
69980
|
-
|
|
70447
|
+
<svg lucideCircle class="h-4 w-4"></svg> {{ 'pptx.ribbon.ellipse' | translate }}
|
|
69981
70448
|
</button>
|
|
69982
70449
|
<button
|
|
69983
70450
|
type="button"
|
|
69984
|
-
class="pptx-rb-gb"
|
|
70451
|
+
class="pptx-rb-gb gap-1.5"
|
|
69985
70452
|
(click)="insertShape('line')"
|
|
69986
70453
|
[title]="'pptx.ribbon.line' | translate"
|
|
69987
70454
|
>
|
|
69988
|
-
|
|
70455
|
+
<svg lucideSlash class="h-4 w-4"></svg> {{ 'pptx.ribbon.line' | translate }}
|
|
69989
70456
|
</button>
|
|
69990
70457
|
<button
|
|
69991
70458
|
type="button"
|
|
69992
|
-
class="pptx-rb-gb"
|
|
70459
|
+
class="pptx-rb-gb gap-1.5"
|
|
69993
70460
|
(click)="insertImage()"
|
|
69994
70461
|
[title]="'pptx.ribbon.insertImage' | translate"
|
|
69995
70462
|
>
|
|
69996
|
-
|
|
70463
|
+
<svg lucideImage class="h-4 w-4"></svg> {{ 'pptx.ribbon.image' | translate }}
|
|
69997
70464
|
</button>
|
|
69998
70465
|
<button
|
|
69999
70466
|
type="button"
|
|
70000
|
-
class="pptx-rb-gl"
|
|
70467
|
+
class="pptx-rb-gl gap-1.5"
|
|
70001
70468
|
(click)="insertMedia()"
|
|
70002
70469
|
[title]="'pptx.ribbon.insertMedia' | translate"
|
|
70003
70470
|
>
|
|
70004
|
-
|
|
70471
|
+
<svg lucideVideo class="h-4 w-4"></svg> {{ 'pptx.ribbon.media' | translate }}
|
|
70005
70472
|
</button>
|
|
70006
70473
|
</div>
|
|
70007
70474
|
<span class="pptx-rb-sep"></span>
|
|
@@ -70009,19 +70476,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70009
70476
|
<div class="pptx-rb-grp">
|
|
70010
70477
|
<button
|
|
70011
70478
|
type="button"
|
|
70012
|
-
class="pptx-rb-gb"
|
|
70479
|
+
class="pptx-rb-gb gap-1.5"
|
|
70013
70480
|
(click)="insertTable()"
|
|
70014
70481
|
[title]="'pptx.ribbon.insertTable' | translate"
|
|
70015
70482
|
>
|
|
70016
|
-
|
|
70483
|
+
<svg lucideDatabase class="h-4 w-4"></svg> {{ 'pptx.ribbon.table' | translate }}
|
|
70017
70484
|
</button>
|
|
70018
70485
|
<button
|
|
70019
70486
|
type="button"
|
|
70020
|
-
class="pptx-rb-gb"
|
|
70487
|
+
class="pptx-rb-gb gap-1.5"
|
|
70021
70488
|
(click)="openSmartArtDialog.emit()"
|
|
70022
70489
|
[title]="'pptx.ribbon.insertSmartArt' | translate"
|
|
70023
70490
|
>
|
|
70024
|
-
|
|
70491
|
+
<svg lucideLayers class="h-4 w-4"></svg> {{ 'pptx.ribbon.smartArt' | translate }}
|
|
70025
70492
|
</button>
|
|
70026
70493
|
<select
|
|
70027
70494
|
class="pptx-rb-gl"
|
|
@@ -70035,19 +70502,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70035
70502
|
</select>
|
|
70036
70503
|
<button
|
|
70037
70504
|
type="button"
|
|
70038
|
-
class="pptx-rb-gb"
|
|
70505
|
+
class="pptx-rb-gb gap-1.5"
|
|
70039
70506
|
(click)="insertChart()"
|
|
70040
70507
|
[title]="'pptx.ribbon.insertChart' | translate"
|
|
70041
70508
|
>
|
|
70042
|
-
|
|
70509
|
+
<svg
|
|
70510
|
+
class="h-4 w-4"
|
|
70511
|
+
viewBox="0 0 24 24"
|
|
70512
|
+
fill="none"
|
|
70513
|
+
stroke="currentColor"
|
|
70514
|
+
stroke-width="2"
|
|
70515
|
+
stroke-linecap="round"
|
|
70516
|
+
stroke-linejoin="round"
|
|
70517
|
+
>
|
|
70518
|
+
<path d="M3 3v18h18" />
|
|
70519
|
+
<rect x="7" y="11" width="3" height="6" />
|
|
70520
|
+
<rect x="12" y="7" width="3" height="10" />
|
|
70521
|
+
<rect x="17" y="13" width="3" height="4" />
|
|
70522
|
+
</svg>
|
|
70523
|
+
{{ 'pptx.ribbon.chart' | translate }}
|
|
70043
70524
|
</button>
|
|
70044
70525
|
<button
|
|
70045
70526
|
type="button"
|
|
70046
|
-
class="pptx-rb-gl"
|
|
70527
|
+
class="pptx-rb-gl gap-1.5"
|
|
70047
70528
|
(click)="openEquationDialog.emit()"
|
|
70048
70529
|
[title]="'pptx.ribbon.insertEquation' | translate"
|
|
70049
70530
|
>
|
|
70050
|
-
|
|
70531
|
+
<svg
|
|
70532
|
+
class="h-4 w-4"
|
|
70533
|
+
viewBox="0 0 24 24"
|
|
70534
|
+
fill="none"
|
|
70535
|
+
stroke="currentColor"
|
|
70536
|
+
stroke-width="2"
|
|
70537
|
+
stroke-linecap="round"
|
|
70538
|
+
stroke-linejoin="round"
|
|
70539
|
+
>
|
|
70540
|
+
<path d="M4 17h6M7 14v6M14 7l4.5 10M15.5 14h5" />
|
|
70541
|
+
</svg>
|
|
70542
|
+
{{ 'pptx.ribbon.equation' | translate }}
|
|
70051
70543
|
</button>
|
|
70052
70544
|
</div>
|
|
70053
70545
|
<span class="pptx-rb-sep"></span>
|
|
@@ -70158,7 +70650,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70158
70650
|
[attr.aria-label]="'pptx.toolbar.toggleSlidesPanel' | translate"
|
|
70159
70651
|
(click)="toggleSidebar.emit()"
|
|
70160
70652
|
>
|
|
70161
|
-
|
|
70653
|
+
<svg lucidePanelLeft class="h-4 w-4"></svg>
|
|
70162
70654
|
</button>
|
|
70163
70655
|
|
|
70164
70656
|
<!-- Center spacer -->
|
|
@@ -70173,7 +70665,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70173
70665
|
[attr.aria-label]="'pptx.toolbar.comments' | translate"
|
|
70174
70666
|
(click)="toggleComments.emit()"
|
|
70175
70667
|
>
|
|
70176
|
-
|
|
70668
|
+
<svg lucideMessageSquare class="h-3.5 w-3.5"></svg>
|
|
70177
70669
|
@if (commentCount() > 0) {
|
|
70178
70670
|
<span
|
|
70179
70671
|
class="absolute -right-0.5 -top-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[8px] leading-none text-white"
|
|
@@ -70190,7 +70682,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70190
70682
|
[disabled]="slideCount() === 0"
|
|
70191
70683
|
(click)="present.emit()"
|
|
70192
70684
|
>
|
|
70193
|
-
|
|
70685
|
+
<svg lucidePlay class="h-3.5 w-3.5"></svg> {{ 'pptx.toolbar.present' | translate }}
|
|
70194
70686
|
</button>
|
|
70195
70687
|
<button
|
|
70196
70688
|
type="button"
|
|
@@ -70200,7 +70692,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70200
70692
|
[attr.aria-label]="'pptx.ribbon.slideShowOptions' | translate"
|
|
70201
70693
|
(click)="presentMenuOpen.set(!presentMenuOpen())"
|
|
70202
70694
|
>
|
|
70203
|
-
|
|
70695
|
+
<svg lucideChevronDown class="h-3 w-3"></svg>
|
|
70204
70696
|
</button>
|
|
70205
70697
|
@if (presentMenuOpen()) {
|
|
70206
70698
|
<div class="absolute right-0 top-full z-50 w-48 pt-1">
|
|
@@ -70240,7 +70732,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70240
70732
|
[attr.aria-label]="'pptx.ribbon.customShows' | translate"
|
|
70241
70733
|
(click)="openCustomShows.emit()"
|
|
70242
70734
|
>
|
|
70243
|
-
|
|
70735
|
+
<svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.ribbon.show' | translate }}
|
|
70244
70736
|
</button>
|
|
70245
70737
|
|
|
70246
70738
|
<span class="mx-1 h-5 w-px self-center bg-border/50"></span>
|
|
@@ -70253,7 +70745,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70253
70745
|
[attr.aria-label]="'pptx.toolbar.toggleInspector' | translate"
|
|
70254
70746
|
(click)="toggleInspector.emit()"
|
|
70255
70747
|
>
|
|
70256
|
-
|
|
70748
|
+
<svg lucidePanelRight class="h-4 w-4"></svg>
|
|
70257
70749
|
</button>
|
|
70258
70750
|
|
|
70259
70751
|
<!-- Overflow menu -->
|
|
@@ -70266,7 +70758,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70266
70758
|
[attr.aria-label]="'pptx.ribbon.moreActions' | translate"
|
|
70267
70759
|
(click)="overflowOpen.set(!overflowOpen())"
|
|
70268
70760
|
>
|
|
70269
|
-
|
|
70761
|
+
<svg lucideEllipsis class="h-3.5 w-3.5"></svg>
|
|
70270
70762
|
</button>
|
|
70271
70763
|
@if (overflowOpen()) {
|
|
70272
70764
|
<div class="absolute right-0 top-full z-50 w-52 pt-1">
|
|
@@ -70290,7 +70782,7 @@ class RibbonPrimaryRowComponent {
|
|
|
70290
70782
|
}
|
|
70291
70783
|
</div>
|
|
70292
70784
|
</div>
|
|
70293
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70785
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucidePanelLeft, selector: "svg[lucidePanelLeft], svg[lucideSidebar]" }, { kind: "component", type: LucidePanelRight, selector: "svg[lucidePanelRight]" }, { kind: "component", type: LucideMessageSquare, selector: "svg[lucideMessageSquare]" }, { kind: "component", type: LucidePlay, selector: "svg[lucidePlay]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "component", type: LucideEllipsis, selector: "svg[lucideEllipsis], svg[lucideMoreHorizontal]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70294
70786
|
}
|
|
70295
70787
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonPrimaryRowComponent, decorators: [{
|
|
70296
70788
|
type: Component,
|
|
@@ -70298,7 +70790,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70298
70790
|
selector: 'pptx-ribbon-primary-row',
|
|
70299
70791
|
standalone: true,
|
|
70300
70792
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
70301
|
-
imports: [
|
|
70793
|
+
imports: [
|
|
70794
|
+
NgClass,
|
|
70795
|
+
TranslatePipe,
|
|
70796
|
+
LucidePanelLeft,
|
|
70797
|
+
LucidePanelRight,
|
|
70798
|
+
LucideMessageSquare,
|
|
70799
|
+
LucidePlay,
|
|
70800
|
+
LucideChevronDown,
|
|
70801
|
+
LucidePlus,
|
|
70802
|
+
LucideEllipsis,
|
|
70803
|
+
],
|
|
70302
70804
|
template: `
|
|
70303
70805
|
<div class="flex items-center gap-0.5 px-1.5 py-0.5">
|
|
70304
70806
|
<!-- Left: slides pane toggle (undo/redo/find moved to the title bar) -->
|
|
@@ -70310,7 +70812,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70310
70812
|
[attr.aria-label]="'pptx.toolbar.toggleSlidesPanel' | translate"
|
|
70311
70813
|
(click)="toggleSidebar.emit()"
|
|
70312
70814
|
>
|
|
70313
|
-
|
|
70815
|
+
<svg lucidePanelLeft class="h-4 w-4"></svg>
|
|
70314
70816
|
</button>
|
|
70315
70817
|
|
|
70316
70818
|
<!-- Center spacer -->
|
|
@@ -70325,7 +70827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70325
70827
|
[attr.aria-label]="'pptx.toolbar.comments' | translate"
|
|
70326
70828
|
(click)="toggleComments.emit()"
|
|
70327
70829
|
>
|
|
70328
|
-
|
|
70830
|
+
<svg lucideMessageSquare class="h-3.5 w-3.5"></svg>
|
|
70329
70831
|
@if (commentCount() > 0) {
|
|
70330
70832
|
<span
|
|
70331
70833
|
class="absolute -right-0.5 -top-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[8px] leading-none text-white"
|
|
@@ -70342,7 +70844,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70342
70844
|
[disabled]="slideCount() === 0"
|
|
70343
70845
|
(click)="present.emit()"
|
|
70344
70846
|
>
|
|
70345
|
-
|
|
70847
|
+
<svg lucidePlay class="h-3.5 w-3.5"></svg> {{ 'pptx.toolbar.present' | translate }}
|
|
70346
70848
|
</button>
|
|
70347
70849
|
<button
|
|
70348
70850
|
type="button"
|
|
@@ -70352,7 +70854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70352
70854
|
[attr.aria-label]="'pptx.ribbon.slideShowOptions' | translate"
|
|
70353
70855
|
(click)="presentMenuOpen.set(!presentMenuOpen())"
|
|
70354
70856
|
>
|
|
70355
|
-
|
|
70857
|
+
<svg lucideChevronDown class="h-3 w-3"></svg>
|
|
70356
70858
|
</button>
|
|
70357
70859
|
@if (presentMenuOpen()) {
|
|
70358
70860
|
<div class="absolute right-0 top-full z-50 w-48 pt-1">
|
|
@@ -70392,7 +70894,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70392
70894
|
[attr.aria-label]="'pptx.ribbon.customShows' | translate"
|
|
70393
70895
|
(click)="openCustomShows.emit()"
|
|
70394
70896
|
>
|
|
70395
|
-
|
|
70897
|
+
<svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.ribbon.show' | translate }}
|
|
70396
70898
|
</button>
|
|
70397
70899
|
|
|
70398
70900
|
<span class="mx-1 h-5 w-px self-center bg-border/50"></span>
|
|
@@ -70405,7 +70907,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70405
70907
|
[attr.aria-label]="'pptx.toolbar.toggleInspector' | translate"
|
|
70406
70908
|
(click)="toggleInspector.emit()"
|
|
70407
70909
|
>
|
|
70408
|
-
|
|
70910
|
+
<svg lucidePanelRight class="h-4 w-4"></svg>
|
|
70409
70911
|
</button>
|
|
70410
70912
|
|
|
70411
70913
|
<!-- Overflow menu -->
|
|
@@ -70418,7 +70920,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70418
70920
|
[attr.aria-label]="'pptx.ribbon.moreActions' | translate"
|
|
70419
70921
|
(click)="overflowOpen.set(!overflowOpen())"
|
|
70420
70922
|
>
|
|
70421
|
-
|
|
70923
|
+
<svg lucideEllipsis class="h-3.5 w-3.5"></svg>
|
|
70422
70924
|
</button>
|
|
70423
70925
|
@if (overflowOpen()) {
|
|
70424
70926
|
<div class="absolute right-0 top-full z-50 w-52 pt-1">
|
|
@@ -70737,7 +71239,7 @@ class RibbonTransitionsSectionComponent {
|
|
|
70737
71239
|
[title]="'pptx.ribbon.previewTransition' | translate"
|
|
70738
71240
|
(click)="present.emit()"
|
|
70739
71241
|
>
|
|
70740
|
-
|
|
71242
|
+
<svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.ribbon.preview' | translate }}
|
|
70741
71243
|
</button>
|
|
70742
71244
|
<span class="pptx-rb-sep"></span>
|
|
70743
71245
|
<!-- Preset gallery -->
|
|
@@ -70833,9 +71335,9 @@ class RibbonTransitionsSectionComponent {
|
|
|
70833
71335
|
[title]="'pptx.ribbon.openInspectorTransitions' | translate"
|
|
70834
71336
|
(click)="toggleInspector.emit()"
|
|
70835
71337
|
>
|
|
70836
|
-
|
|
71338
|
+
<svg lucidePanelRight class="h-4 w-4"></svg> {{ 'pptx.ribbon.inspector' | translate }}
|
|
70837
71339
|
</button>
|
|
70838
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71340
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucidePlay, selector: "svg[lucidePlay]" }, { kind: "component", type: LucidePanelRight, selector: "svg[lucidePanelRight]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70839
71341
|
}
|
|
70840
71342
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonTransitionsSectionComponent, decorators: [{
|
|
70841
71343
|
type: Component,
|
|
@@ -70844,7 +71346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70844
71346
|
standalone: true,
|
|
70845
71347
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
70846
71348
|
host: { class: 'contents' },
|
|
70847
|
-
imports: [NgClass, TranslatePipe],
|
|
71349
|
+
imports: [NgClass, TranslatePipe, LucidePlay, LucidePanelRight],
|
|
70848
71350
|
template: `
|
|
70849
71351
|
<!-- Preview (fires existing presentation present path; no separate preview API yet) -->
|
|
70850
71352
|
<button
|
|
@@ -70853,7 +71355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70853
71355
|
[title]="'pptx.ribbon.previewTransition' | translate"
|
|
70854
71356
|
(click)="present.emit()"
|
|
70855
71357
|
>
|
|
70856
|
-
|
|
71358
|
+
<svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.ribbon.preview' | translate }}
|
|
70857
71359
|
</button>
|
|
70858
71360
|
<span class="pptx-rb-sep"></span>
|
|
70859
71361
|
<!-- Preset gallery -->
|
|
@@ -70949,7 +71451,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70949
71451
|
[title]="'pptx.ribbon.openInspectorTransitions' | translate"
|
|
70950
71452
|
(click)="toggleInspector.emit()"
|
|
70951
71453
|
>
|
|
70952
|
-
|
|
71454
|
+
<svg lucidePanelRight class="h-4 w-4"></svg> {{ 'pptx.ribbon.inspector' | translate }}
|
|
70953
71455
|
</button>
|
|
70954
71456
|
`,
|
|
70955
71457
|
}]
|
|
@@ -71431,24 +71933,28 @@ class RibbonComponent {
|
|
|
71431
71933
|
|
|
71432
71934
|
<!-- ── Tab bar ───────────────────────────────────────────────────── -->
|
|
71433
71935
|
<div class="flex items-center border-b border-border/60 px-1">
|
|
71434
|
-
|
|
71435
|
-
|
|
71436
|
-
|
|
71437
|
-
|
|
71438
|
-
|
|
71439
|
-
|
|
71440
|
-
|
|
71441
|
-
|
|
71442
|
-
|
|
71443
|
-
|
|
71444
|
-
|
|
71445
|
-
|
|
71446
|
-
|
|
71447
|
-
|
|
71448
|
-
|
|
71936
|
+
<!-- Scrollable tab strip: on narrow widths the tabs scroll instead of
|
|
71937
|
+
clipping (mirrors React's max-md:overflow-x-auto scrollbar-none),
|
|
71938
|
+
while the Record/Share actions and collapse toggle stay pinned. -->
|
|
71939
|
+
<div class="flex min-w-0 flex-1 items-center overflow-x-auto pptx-scrollbar-none">
|
|
71940
|
+
@for (t of tabs; track t.id) {
|
|
71941
|
+
<button
|
|
71942
|
+
type="button"
|
|
71943
|
+
(click)="activeTab.set(t.id)"
|
|
71944
|
+
class="relative whitespace-nowrap px-3.5 py-2 text-[12px] font-medium transition-colors"
|
|
71945
|
+
[ngClass]="
|
|
71946
|
+
activeTab() === t.id
|
|
71947
|
+
? 'text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary'
|
|
71948
|
+
: 'text-muted-foreground hover:bg-accent/30 hover:text-foreground'
|
|
71949
|
+
"
|
|
71950
|
+
>
|
|
71951
|
+
{{ t.labelKey | translate }}
|
|
71952
|
+
</button>
|
|
71953
|
+
}
|
|
71954
|
+
</div>
|
|
71449
71955
|
|
|
71450
71956
|
<!-- Tab-row right actions (Record + Share), mirroring React's TabRowActions -->
|
|
71451
|
-
<div class="flex items-center gap-1 pr-1">
|
|
71957
|
+
<div class="flex shrink-0 items-center gap-1 pr-1">
|
|
71452
71958
|
@if (canEdit()) {
|
|
71453
71959
|
<button
|
|
71454
71960
|
type="button"
|
|
@@ -71477,7 +71983,7 @@ class RibbonComponent {
|
|
|
71477
71983
|
[attr.aria-label]="'pptx.toolbar.share' | translate"
|
|
71478
71984
|
(click)="share.emit()"
|
|
71479
71985
|
>
|
|
71480
|
-
|
|
71986
|
+
<svg lucideShare2 class="h-3.5 w-3.5"></svg>
|
|
71481
71987
|
<span>{{
|
|
71482
71988
|
collabConnected()
|
|
71483
71989
|
? ('pptx.toolbar.sharingCount' | translate: { count: connectedCount() })
|
|
@@ -71488,7 +71994,7 @@ class RibbonComponent {
|
|
|
71488
71994
|
|
|
71489
71995
|
<button
|
|
71490
71996
|
type="button"
|
|
71491
|
-
class="mr-1 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
|
|
71997
|
+
class="mr-1 shrink-0 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
|
|
71492
71998
|
[attr.aria-pressed]="!ribbonExpanded()"
|
|
71493
71999
|
[title]="
|
|
71494
72000
|
(ribbonExpanded() ? 'pptx.ribbon.collapseRibbon' : 'pptx.ribbon.expandRibbon')
|
|
@@ -71496,7 +72002,11 @@ class RibbonComponent {
|
|
|
71496
72002
|
"
|
|
71497
72003
|
(click)="ribbonExpanded.set(!ribbonExpanded())"
|
|
71498
72004
|
>
|
|
71499
|
-
|
|
72005
|
+
@if (ribbonExpanded()) {
|
|
72006
|
+
<svg lucideChevronUp class="h-3.5 w-3.5"></svg>
|
|
72007
|
+
} @else {
|
|
72008
|
+
<svg lucideChevronDown class="h-3.5 w-3.5"></svg>
|
|
72009
|
+
}
|
|
71500
72010
|
</button>
|
|
71501
72011
|
</div>
|
|
71502
72012
|
|
|
@@ -71667,7 +72177,7 @@ class RibbonComponent {
|
|
|
71667
72177
|
}
|
|
71668
72178
|
</div>
|
|
71669
72179
|
</div>
|
|
71670
|
-
`, 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 });
|
|
72180
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideShare2, selector: "svg[lucideShare2]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { 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 });
|
|
71671
72181
|
}
|
|
71672
72182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonComponent, decorators: [{
|
|
71673
72183
|
type: Component,
|
|
@@ -71678,6 +72188,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71678
72188
|
imports: [
|
|
71679
72189
|
NgClass,
|
|
71680
72190
|
TranslatePipe,
|
|
72191
|
+
LucideShare2,
|
|
72192
|
+
LucideChevronUp,
|
|
72193
|
+
LucideChevronDown,
|
|
71681
72194
|
RibbonPrimaryRowComponent,
|
|
71682
72195
|
RibbonFileSectionComponent,
|
|
71683
72196
|
RibbonHomeSectionComponent,
|
|
@@ -71726,24 +72239,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71726
72239
|
|
|
71727
72240
|
<!-- ── Tab bar ───────────────────────────────────────────────────── -->
|
|
71728
72241
|
<div class="flex items-center border-b border-border/60 px-1">
|
|
71729
|
-
|
|
71730
|
-
|
|
71731
|
-
|
|
71732
|
-
|
|
71733
|
-
|
|
71734
|
-
|
|
71735
|
-
|
|
71736
|
-
|
|
71737
|
-
|
|
71738
|
-
|
|
71739
|
-
|
|
71740
|
-
|
|
71741
|
-
|
|
71742
|
-
|
|
71743
|
-
|
|
72242
|
+
<!-- Scrollable tab strip: on narrow widths the tabs scroll instead of
|
|
72243
|
+
clipping (mirrors React's max-md:overflow-x-auto scrollbar-none),
|
|
72244
|
+
while the Record/Share actions and collapse toggle stay pinned. -->
|
|
72245
|
+
<div class="flex min-w-0 flex-1 items-center overflow-x-auto pptx-scrollbar-none">
|
|
72246
|
+
@for (t of tabs; track t.id) {
|
|
72247
|
+
<button
|
|
72248
|
+
type="button"
|
|
72249
|
+
(click)="activeTab.set(t.id)"
|
|
72250
|
+
class="relative whitespace-nowrap px-3.5 py-2 text-[12px] font-medium transition-colors"
|
|
72251
|
+
[ngClass]="
|
|
72252
|
+
activeTab() === t.id
|
|
72253
|
+
? 'text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary'
|
|
72254
|
+
: 'text-muted-foreground hover:bg-accent/30 hover:text-foreground'
|
|
72255
|
+
"
|
|
72256
|
+
>
|
|
72257
|
+
{{ t.labelKey | translate }}
|
|
72258
|
+
</button>
|
|
72259
|
+
}
|
|
72260
|
+
</div>
|
|
71744
72261
|
|
|
71745
72262
|
<!-- Tab-row right actions (Record + Share), mirroring React's TabRowActions -->
|
|
71746
|
-
<div class="flex items-center gap-1 pr-1">
|
|
72263
|
+
<div class="flex shrink-0 items-center gap-1 pr-1">
|
|
71747
72264
|
@if (canEdit()) {
|
|
71748
72265
|
<button
|
|
71749
72266
|
type="button"
|
|
@@ -71772,7 +72289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71772
72289
|
[attr.aria-label]="'pptx.toolbar.share' | translate"
|
|
71773
72290
|
(click)="share.emit()"
|
|
71774
72291
|
>
|
|
71775
|
-
|
|
72292
|
+
<svg lucideShare2 class="h-3.5 w-3.5"></svg>
|
|
71776
72293
|
<span>{{
|
|
71777
72294
|
collabConnected()
|
|
71778
72295
|
? ('pptx.toolbar.sharingCount' | translate: { count: connectedCount() })
|
|
@@ -71783,7 +72300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71783
72300
|
|
|
71784
72301
|
<button
|
|
71785
72302
|
type="button"
|
|
71786
|
-
class="mr-1 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
|
|
72303
|
+
class="mr-1 shrink-0 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
|
|
71787
72304
|
[attr.aria-pressed]="!ribbonExpanded()"
|
|
71788
72305
|
[title]="
|
|
71789
72306
|
(ribbonExpanded() ? 'pptx.ribbon.collapseRibbon' : 'pptx.ribbon.expandRibbon')
|
|
@@ -71791,7 +72308,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71791
72308
|
"
|
|
71792
72309
|
(click)="ribbonExpanded.set(!ribbonExpanded())"
|
|
71793
72310
|
>
|
|
71794
|
-
|
|
72311
|
+
@if (ribbonExpanded()) {
|
|
72312
|
+
<svg lucideChevronUp class="h-3.5 w-3.5"></svg>
|
|
72313
|
+
} @else {
|
|
72314
|
+
<svg lucideChevronDown class="h-3.5 w-3.5"></svg>
|
|
72315
|
+
}
|
|
71795
72316
|
</button>
|
|
71796
72317
|
</div>
|
|
71797
72318
|
|
|
@@ -72068,7 +72589,11 @@ class SelectionPaneComponent {
|
|
|
72068
72589
|
"
|
|
72069
72590
|
(click)="toggleHidden.emit(el.id)"
|
|
72070
72591
|
>
|
|
72071
|
-
|
|
72592
|
+
@if (el.hidden) {
|
|
72593
|
+
<svg lucideEyeOff class="h-3.5 w-3.5"></svg>
|
|
72594
|
+
} @else {
|
|
72595
|
+
<svg lucideEye class="h-3.5 w-3.5"></svg>
|
|
72596
|
+
}
|
|
72072
72597
|
</button>
|
|
72073
72598
|
<button
|
|
72074
72599
|
type="button"
|
|
@@ -72077,7 +72602,7 @@ class SelectionPaneComponent {
|
|
|
72077
72602
|
[title]="'pptx.arrange.bringForward' | translate"
|
|
72078
72603
|
(click)="bringForward.emit(el.id)"
|
|
72079
72604
|
>
|
|
72080
|
-
|
|
72605
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
72081
72606
|
</button>
|
|
72082
72607
|
<button
|
|
72083
72608
|
type="button"
|
|
@@ -72086,7 +72611,7 @@ class SelectionPaneComponent {
|
|
|
72086
72611
|
[title]="'pptx.arrange.sendBackward' | translate"
|
|
72087
72612
|
(click)="sendBackward.emit(el.id)"
|
|
72088
72613
|
>
|
|
72089
|
-
|
|
72614
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
72090
72615
|
</button>
|
|
72091
72616
|
</div>
|
|
72092
72617
|
</li>
|
|
@@ -72096,11 +72621,11 @@ class SelectionPaneComponent {
|
|
|
72096
72621
|
<p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.empty' | translate }}</p>
|
|
72097
72622
|
}
|
|
72098
72623
|
</aside>
|
|
72099
|
-
`, isInline: true, styles: [":host{display:block;height:100%;width:100%}.pptx-ng-sel-pane{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border-left:1px solid var(--pptx-border, #374151);font-family:system-ui,sans-serif}.pptx-ng-sel-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-sel-pane__title{margin:0;font-size:14px;font-weight:600}.pptx-ng-sel-pane__count{font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.pptx-ng-sel-pane__row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;margin-bottom:2px;transition:background .1s;-webkit-user-select:none;user-select:none}.pptx-ng-sel-pane__row:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__row--selected{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 15%,transparent)}.pptx-ng-sel-pane__row--hidden{opacity:.5}.pptx-ng-sel-pane__icon{flex-shrink:0;width:20px;text-align:center;font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__label{flex:1 1 auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pptx-ng-sel-pane__actions{display:flex;gap:2px;flex-shrink:0}.pptx-ng-sel-pane__btn{background:transparent;border:1px solid var(--pptx-border, #374151);color:inherit;border-radius:4px;padding:2px 5px;font-size:11px;cursor:pointer;line-height:1.2}.pptx-ng-sel-pane__btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__empty{padding:16px;font-size:13px;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
72624
|
+
`, isInline: true, styles: [":host{display:block;height:100%;width:100%}.pptx-ng-sel-pane{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border-left:1px solid var(--pptx-border, #374151);font-family:system-ui,sans-serif}.pptx-ng-sel-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-sel-pane__title{margin:0;font-size:14px;font-weight:600}.pptx-ng-sel-pane__count{font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.pptx-ng-sel-pane__row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;margin-bottom:2px;transition:background .1s;-webkit-user-select:none;user-select:none}.pptx-ng-sel-pane__row:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__row--selected{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 15%,transparent)}.pptx-ng-sel-pane__row--hidden{opacity:.5}.pptx-ng-sel-pane__icon{flex-shrink:0;width:20px;text-align:center;font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__label{flex:1 1 auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pptx-ng-sel-pane__actions{display:flex;gap:2px;flex-shrink:0}.pptx-ng-sel-pane__btn{background:transparent;border:1px solid var(--pptx-border, #374151);color:inherit;border-radius:4px;padding:2px 5px;font-size:11px;cursor:pointer;line-height:1.2}.pptx-ng-sel-pane__btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__empty{padding:16px;font-size:13px;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "component", type: LucideEye, selector: "svg[lucideEye]" }, { kind: "component", type: LucideEyeOff, selector: "svg[lucideEyeOff]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
72100
72625
|
}
|
|
72101
72626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SelectionPaneComponent, decorators: [{
|
|
72102
72627
|
type: Component,
|
|
72103
|
-
args: [{ selector: 'pptx-selection-pane', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
|
|
72628
|
+
args: [{ selector: 'pptx-selection-pane', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, LucideEye, LucideEyeOff, LucideArrowUp, LucideArrowDown], template: `
|
|
72104
72629
|
<aside class="pptx-ng-sel-pane" [attr.aria-label]="'pptx.selectionPane.title' | translate">
|
|
72105
72630
|
<header class="pptx-ng-sel-pane__header">
|
|
72106
72631
|
<h2 class="pptx-ng-sel-pane__title">{{ 'pptx.selectionPane.title' | translate }}</h2>
|
|
@@ -72139,7 +72664,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
72139
72664
|
"
|
|
72140
72665
|
(click)="toggleHidden.emit(el.id)"
|
|
72141
72666
|
>
|
|
72142
|
-
|
|
72667
|
+
@if (el.hidden) {
|
|
72668
|
+
<svg lucideEyeOff class="h-3.5 w-3.5"></svg>
|
|
72669
|
+
} @else {
|
|
72670
|
+
<svg lucideEye class="h-3.5 w-3.5"></svg>
|
|
72671
|
+
}
|
|
72143
72672
|
</button>
|
|
72144
72673
|
<button
|
|
72145
72674
|
type="button"
|
|
@@ -72148,7 +72677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
72148
72677
|
[title]="'pptx.arrange.bringForward' | translate"
|
|
72149
72678
|
(click)="bringForward.emit(el.id)"
|
|
72150
72679
|
>
|
|
72151
|
-
|
|
72680
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
72152
72681
|
</button>
|
|
72153
72682
|
<button
|
|
72154
72683
|
type="button"
|
|
@@ -72157,7 +72686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
72157
72686
|
[title]="'pptx.arrange.sendBackward' | translate"
|
|
72158
72687
|
(click)="sendBackward.emit(el.id)"
|
|
72159
72688
|
>
|
|
72160
|
-
|
|
72689
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
72161
72690
|
</button>
|
|
72162
72691
|
</div>
|
|
72163
72692
|
</li>
|
|
@@ -73060,7 +73589,7 @@ class SlideSorterOverlayComponent {
|
|
|
73060
73589
|
</div>
|
|
73061
73590
|
</div>
|
|
73062
73591
|
</div>
|
|
73063
|
-
`, isInline: true, styles: [":host{display:contents}.pptx-ng-sorter-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pptx-ng-sorter-panel{display:flex;flex-direction:column;width:min(96vw,1200px);max-height:90vh;border-radius:.5rem;background:#1a1a1a;color:#e5e5e5;box-shadow:0 24px 64px #0009;overflow:hidden}.pptx-ng-sorter-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.pptx-ng-sorter-title{margin:0;font-size:.875rem;font-weight:500}.pptx-ng-sorter-count{font-size:.75rem;color:#ffffff80;flex:1}.pptx-ng-sorter-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:none;border-radius:50%;background:#ffffff1a;color:#e5e5e5;cursor:pointer;transition:background .15s;flex-shrink:0;touch-action:manipulation}.pptx-ng-sorter-close:hover{background:#fff3}.pptx-ng-sorter-grid-scroll{flex:1;overflow-y:auto;padding:1.25rem}.pptx-ng-sorter-grid{display:grid;gap:1rem}.pptx-ng-sorter-cell{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;border:2px solid transparent;border-radius:.375rem;background:transparent;cursor:pointer;transition:border-color .15s,background .15s;color:inherit}.pptx-ng-sorter-cell:hover{background:#ffffff0f;border-color:#fff3}.pptx-ng-sorter-cell.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-sorter-cell.is-hidden{opacity:.4}.pptx-ng-sorter-thumb-clip{overflow:hidden;border-radius:2px}.pptx-ng-sorter-thumb-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-sorter-index{font-size:.6875rem;color:#ffffff8c;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73592
|
+
`, isInline: true, styles: [":host{display:contents}.pptx-ng-sorter-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pptx-ng-sorter-panel{display:flex;flex-direction:column;width:min(96vw,1200px);max-height:90vh;border-radius:.5rem;background:#1a1a1a;color:#e5e5e5;box-shadow:0 24px 64px #0009;overflow:hidden}.pptx-ng-sorter-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.pptx-ng-sorter-title{margin:0;font-size:.875rem;font-weight:500}.pptx-ng-sorter-count{font-size:.75rem;color:#ffffff80;flex:1}.pptx-ng-sorter-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:none;border-radius:50%;background:#ffffff1a;color:#e5e5e5;cursor:pointer;transition:background .15s;flex-shrink:0;touch-action:manipulation}.pptx-ng-sorter-close:hover{background:#fff3}.pptx-ng-sorter-grid-scroll{flex:1;overflow-y:auto;padding:1.25rem}.pptx-ng-sorter-grid{display:grid;gap:1rem}.pptx-ng-sorter-cell{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;border:2px solid transparent;border-radius:.375rem;background:transparent;cursor:pointer;transition:border-color .15s,background .15s;color:inherit}.pptx-ng-sorter-cell:hover{background:#ffffff0f;border-color:#fff3}.pptx-ng-sorter-cell.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-sorter-cell.is-hidden{opacity:.4}.pptx-ng-sorter-thumb-clip{overflow:hidden;border-radius:2px}.pptx-ng-sorter-thumb-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-sorter-index{font-size:.6875rem;color:#ffffff8c;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ 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", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73064
73593
|
}
|
|
73065
73594
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlideSorterOverlayComponent, decorators: [{
|
|
73066
73595
|
type: Component,
|
|
@@ -73256,7 +73785,7 @@ class SlidesPanelComponent {
|
|
|
73256
73785
|
[attr.aria-label]="'pptx.arrange.duplicate' | translate"
|
|
73257
73786
|
(click)="onDuplicate(i)"
|
|
73258
73787
|
>
|
|
73259
|
-
|
|
73788
|
+
<svg lucideCopy class="h-3.5 w-3.5"></svg>
|
|
73260
73789
|
</button>
|
|
73261
73790
|
<button
|
|
73262
73791
|
type="button"
|
|
@@ -73266,7 +73795,7 @@ class SlidesPanelComponent {
|
|
|
73266
73795
|
[disabled]="editor.slides().length <= 1"
|
|
73267
73796
|
(click)="onDelete(i)"
|
|
73268
73797
|
>
|
|
73269
|
-
|
|
73798
|
+
<svg lucideTrash2 class="h-3.5 w-3.5"></svg>
|
|
73270
73799
|
</button>
|
|
73271
73800
|
<button
|
|
73272
73801
|
type="button"
|
|
@@ -73276,7 +73805,7 @@ class SlidesPanelComponent {
|
|
|
73276
73805
|
[disabled]="i === 0"
|
|
73277
73806
|
(click)="onMoveUp(i)"
|
|
73278
73807
|
>
|
|
73279
|
-
|
|
73808
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
73280
73809
|
</button>
|
|
73281
73810
|
<button
|
|
73282
73811
|
type="button"
|
|
@@ -73286,7 +73815,7 @@ class SlidesPanelComponent {
|
|
|
73286
73815
|
[disabled]="i === editor.slides().length - 1"
|
|
73287
73816
|
(click)="onMoveDown(i)"
|
|
73288
73817
|
>
|
|
73289
|
-
|
|
73818
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
73290
73819
|
</button>
|
|
73291
73820
|
</div>
|
|
73292
73821
|
</div>
|
|
@@ -73301,15 +73830,24 @@ class SlidesPanelComponent {
|
|
|
73301
73830
|
[attr.aria-label]="'pptx.sections.addSlide' | translate"
|
|
73302
73831
|
(click)="onAddSlide()"
|
|
73303
73832
|
>
|
|
73304
|
-
|
|
73833
|
+
<svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.sections.addSlide' | translate }}
|
|
73305
73834
|
</button>
|
|
73306
73835
|
</footer>
|
|
73307
73836
|
</div>
|
|
73308
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;overflow:hidden}.pptx-ng-spanel{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#e5e5e5;border-right:1px solid rgba(255,255,255,.08);overflow:hidden}.pptx-ng-spanel-scroll{flex:1;overflow-y:auto;padding:.5rem .375rem;display:flex;flex-direction:column;gap:.375rem}.pptx-ng-spanel-card{position:relative;border-radius:.375rem;border:2px solid transparent;background:transparent;transition:border-color .15s,background .15s}.pptx-ng-spanel-card:hover,.pptx-ng-spanel-card:focus-within{background:#ffffff0d;border-color:#ffffff26}.pptx-ng-spanel-card.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-spanel-thumb-btn{display:block;width:100%;padding:.375rem .375rem 0;border:none;background:transparent;cursor:pointer;color:inherit;line-height:0}.pptx-ng-spanel-thumb-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:.25rem}.pptx-ng-spanel-clip{overflow:hidden;border-radius:2px}.pptx-ng-spanel-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-spanel-num{display:block;text-align:center;font-size:.625rem;line-height:1.6;color:#ffffff73;-webkit-user-select:none;user-select:none;padding-bottom:.25rem}.pptx-ng-spanel-actions{position:absolute;top:.25rem;right:.25rem;display:flex;flex-direction:column;gap:.125rem;opacity:0;pointer-events:none;transition:opacity .12s}.pptx-ng-spanel-card:hover .pptx-ng-spanel-actions,.pptx-ng-spanel-card:focus-within .pptx-ng-spanel-actions{opacity:1;pointer-events:auto}.pptx-ng-spanel-action{display:flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;padding:0;border:none;border-radius:.25rem;background:#1e1e1ed9;color:#e5e5e5;font-size:.6875rem;cursor:pointer;transition:background .12s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pptx-ng-spanel-action:hover:not([disabled]){background:#3b82f6bf}.pptx-ng-spanel-action[disabled]{opacity:.3;cursor:not-allowed}.pptx-ng-spanel-footer{flex-shrink:0;padding:.5rem .375rem;border-top:1px solid rgba(255,255,255,.08)}.pptx-ng-spanel-add{display:block;width:100%;padding:.4375rem 0;border:1px dashed rgba(255,255,255,.2);border-radius:.375rem;background:transparent;color:#fff9;font-size:.75rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pptx-ng-spanel-add:hover{background:#3b82f626;border-color:#3b82f6;color:#e5e5e5}\n"], dependencies: [{ 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73837
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;overflow:hidden}.pptx-ng-spanel{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#e5e5e5;border-right:1px solid rgba(255,255,255,.08);overflow:hidden}.pptx-ng-spanel-scroll{flex:1;overflow-y:auto;padding:.5rem .375rem;display:flex;flex-direction:column;gap:.375rem}.pptx-ng-spanel-card{position:relative;border-radius:.375rem;border:2px solid transparent;background:transparent;transition:border-color .15s,background .15s}.pptx-ng-spanel-card:hover,.pptx-ng-spanel-card:focus-within{background:#ffffff0d;border-color:#ffffff26}.pptx-ng-spanel-card.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-spanel-thumb-btn{display:block;width:100%;padding:.375rem .375rem 0;border:none;background:transparent;cursor:pointer;color:inherit;line-height:0}.pptx-ng-spanel-thumb-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:.25rem}.pptx-ng-spanel-clip{overflow:hidden;border-radius:2px}.pptx-ng-spanel-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-spanel-num{display:block;text-align:center;font-size:.625rem;line-height:1.6;color:#ffffff73;-webkit-user-select:none;user-select:none;padding-bottom:.25rem}.pptx-ng-spanel-actions{position:absolute;top:.25rem;right:.25rem;display:flex;flex-direction:column;gap:.125rem;opacity:0;pointer-events:none;transition:opacity .12s}.pptx-ng-spanel-card:hover .pptx-ng-spanel-actions,.pptx-ng-spanel-card:focus-within .pptx-ng-spanel-actions{opacity:1;pointer-events:auto}.pptx-ng-spanel-action{display:flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;padding:0;border:none;border-radius:.25rem;background:#1e1e1ed9;color:#e5e5e5;font-size:.6875rem;cursor:pointer;transition:background .12s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pptx-ng-spanel-action:hover:not([disabled]){background:#3b82f6bf}.pptx-ng-spanel-action[disabled]{opacity:.3;cursor:not-allowed}.pptx-ng-spanel-footer{flex-shrink:0;padding:.5rem .375rem;border-top:1px solid rgba(255,255,255,.08)}.pptx-ng-spanel-add{display:block;width:100%;padding:.4375rem 0;border:1px dashed rgba(255,255,255,.2);border-radius:.375rem;background:transparent;color:#fff9;font-size:.75rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pptx-ng-spanel-add:hover{background:#3b82f626;border-color:#3b82f6;color:#e5e5e5}\n"], dependencies: [{ 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", "presenting", "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: LucideCopy, selector: "svg[lucideCopy]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73309
73838
|
}
|
|
73310
73839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlidesPanelComponent, decorators: [{
|
|
73311
73840
|
type: Component,
|
|
73312
|
-
args: [{ selector: 'pptx-slides-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
73841
|
+
args: [{ selector: 'pptx-slides-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
73842
|
+
NgStyle,
|
|
73843
|
+
SlideCanvasComponent,
|
|
73844
|
+
TranslatePipe,
|
|
73845
|
+
LucideCopy,
|
|
73846
|
+
LucideTrash2,
|
|
73847
|
+
LucideArrowUp,
|
|
73848
|
+
LucideArrowDown,
|
|
73849
|
+
LucidePlus,
|
|
73850
|
+
], template: `
|
|
73313
73851
|
<div class="pptx-ng-spanel">
|
|
73314
73852
|
<!-- Scrollable slide list -->
|
|
73315
73853
|
<div
|
|
@@ -73363,7 +73901,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73363
73901
|
[attr.aria-label]="'pptx.arrange.duplicate' | translate"
|
|
73364
73902
|
(click)="onDuplicate(i)"
|
|
73365
73903
|
>
|
|
73366
|
-
|
|
73904
|
+
<svg lucideCopy class="h-3.5 w-3.5"></svg>
|
|
73367
73905
|
</button>
|
|
73368
73906
|
<button
|
|
73369
73907
|
type="button"
|
|
@@ -73373,7 +73911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73373
73911
|
[disabled]="editor.slides().length <= 1"
|
|
73374
73912
|
(click)="onDelete(i)"
|
|
73375
73913
|
>
|
|
73376
|
-
|
|
73914
|
+
<svg lucideTrash2 class="h-3.5 w-3.5"></svg>
|
|
73377
73915
|
</button>
|
|
73378
73916
|
<button
|
|
73379
73917
|
type="button"
|
|
@@ -73383,7 +73921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73383
73921
|
[disabled]="i === 0"
|
|
73384
73922
|
(click)="onMoveUp(i)"
|
|
73385
73923
|
>
|
|
73386
|
-
|
|
73924
|
+
<svg lucideArrowUp class="h-3.5 w-3.5"></svg>
|
|
73387
73925
|
</button>
|
|
73388
73926
|
<button
|
|
73389
73927
|
type="button"
|
|
@@ -73393,7 +73931,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73393
73931
|
[disabled]="i === editor.slides().length - 1"
|
|
73394
73932
|
(click)="onMoveDown(i)"
|
|
73395
73933
|
>
|
|
73396
|
-
|
|
73934
|
+
<svg lucideArrowDown class="h-3.5 w-3.5"></svg>
|
|
73397
73935
|
</button>
|
|
73398
73936
|
</div>
|
|
73399
73937
|
</div>
|
|
@@ -73408,7 +73946,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73408
73946
|
[attr.aria-label]="'pptx.sections.addSlide' | translate"
|
|
73409
73947
|
(click)="onAddSlide()"
|
|
73410
73948
|
>
|
|
73411
|
-
|
|
73949
|
+
<svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.sections.addSlide' | translate }}
|
|
73412
73950
|
</button>
|
|
73413
73951
|
</footer>
|
|
73414
73952
|
</div>
|
|
@@ -73529,7 +74067,7 @@ class StatusBarComponent {
|
|
|
73529
74067
|
[attr.aria-label]="'pptx.statusBar.toggleNotes' | translate"
|
|
73530
74068
|
(click)="toggleNotes.emit()"
|
|
73531
74069
|
>
|
|
73532
|
-
<
|
|
74070
|
+
<svg lucideStickyNote class="h-3 w-3"></svg>
|
|
73533
74071
|
<span>{{ 'pptx.notes.title' | translate }}</span>
|
|
73534
74072
|
</button>
|
|
73535
74073
|
|
|
@@ -73545,7 +74083,7 @@ class StatusBarComponent {
|
|
|
73545
74083
|
[attr.aria-label]="'pptx.statusBar.normalView' | translate"
|
|
73546
74084
|
(click)="normalView.emit()"
|
|
73547
74085
|
>
|
|
73548
|
-
<
|
|
74086
|
+
<svg lucideMonitor class="h-3.5 w-3.5"></svg>
|
|
73549
74087
|
</button>
|
|
73550
74088
|
<button
|
|
73551
74089
|
type="button"
|
|
@@ -73555,7 +74093,7 @@ class StatusBarComponent {
|
|
|
73555
74093
|
[attr.aria-label]="'pptx.statusBar.slideSorter' | translate"
|
|
73556
74094
|
(click)="openSorter.emit()"
|
|
73557
74095
|
>
|
|
73558
|
-
<
|
|
74096
|
+
<svg lucideColumns2 class="h-3.5 w-3.5"></svg>
|
|
73559
74097
|
</button>
|
|
73560
74098
|
<button
|
|
73561
74099
|
type="button"
|
|
@@ -73566,7 +74104,7 @@ class StatusBarComponent {
|
|
|
73566
74104
|
[attr.aria-label]="'pptx.statusBar.slideShow' | translate"
|
|
73567
74105
|
(click)="slideShow.emit()"
|
|
73568
74106
|
>
|
|
73569
|
-
<
|
|
74107
|
+
<svg lucidePresentation class="h-3.5 w-3.5"></svg>
|
|
73570
74108
|
</button>
|
|
73571
74109
|
</div>
|
|
73572
74110
|
|
|
@@ -73580,7 +74118,7 @@ class StatusBarComponent {
|
|
|
73580
74118
|
[attr.aria-label]="'pptx.statusBar.zoomOut' | translate"
|
|
73581
74119
|
(click)="zoomOut.emit()"
|
|
73582
74120
|
>
|
|
73583
|
-
<
|
|
74121
|
+
<svg lucideMinus class="h-3 w-3"></svg>
|
|
73584
74122
|
</button>
|
|
73585
74123
|
<button
|
|
73586
74124
|
type="button"
|
|
@@ -73597,11 +74135,11 @@ class StatusBarComponent {
|
|
|
73597
74135
|
[attr.aria-label]="'pptx.statusBar.zoomIn' | translate"
|
|
73598
74136
|
(click)="zoomIn.emit()"
|
|
73599
74137
|
>
|
|
73600
|
-
<
|
|
74138
|
+
<svg lucidePlus class="h-3 w-3"></svg>
|
|
73601
74139
|
</button>
|
|
73602
74140
|
</div>
|
|
73603
74141
|
</div>
|
|
73604
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74142
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideStickyNote, selector: "svg[lucideStickyNote]" }, { kind: "component", type: LucideMonitor, selector: "svg[lucideMonitor]" }, { kind: "component", type: LucideColumns2, selector: "svg[lucideColumns2], svg[lucideColumns]" }, { kind: "component", type: LucidePresentation, selector: "svg[lucidePresentation]" }, { kind: "component", type: LucideMinus, selector: "svg[lucideMinus]" }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73605
74143
|
}
|
|
73606
74144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: StatusBarComponent, decorators: [{
|
|
73607
74145
|
type: Component,
|
|
@@ -73609,7 +74147,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73609
74147
|
selector: 'pptx-status-bar',
|
|
73610
74148
|
standalone: true,
|
|
73611
74149
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
73612
|
-
imports: [
|
|
74150
|
+
imports: [
|
|
74151
|
+
NgClass,
|
|
74152
|
+
TranslatePipe,
|
|
74153
|
+
LucideStickyNote,
|
|
74154
|
+
LucideMonitor,
|
|
74155
|
+
LucideColumns2,
|
|
74156
|
+
LucidePresentation,
|
|
74157
|
+
LucideMinus,
|
|
74158
|
+
LucidePlus,
|
|
74159
|
+
],
|
|
73613
74160
|
template: `
|
|
73614
74161
|
<div
|
|
73615
74162
|
class="flex w-full items-center gap-1 border-t border-border bg-secondary/50 px-2 py-0.5 text-[10px] text-muted-foreground"
|
|
@@ -73644,7 +74191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73644
74191
|
[attr.aria-label]="'pptx.statusBar.toggleNotes' | translate"
|
|
73645
74192
|
(click)="toggleNotes.emit()"
|
|
73646
74193
|
>
|
|
73647
|
-
<
|
|
74194
|
+
<svg lucideStickyNote class="h-3 w-3"></svg>
|
|
73648
74195
|
<span>{{ 'pptx.notes.title' | translate }}</span>
|
|
73649
74196
|
</button>
|
|
73650
74197
|
|
|
@@ -73660,7 +74207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73660
74207
|
[attr.aria-label]="'pptx.statusBar.normalView' | translate"
|
|
73661
74208
|
(click)="normalView.emit()"
|
|
73662
74209
|
>
|
|
73663
|
-
<
|
|
74210
|
+
<svg lucideMonitor class="h-3.5 w-3.5"></svg>
|
|
73664
74211
|
</button>
|
|
73665
74212
|
<button
|
|
73666
74213
|
type="button"
|
|
@@ -73670,7 +74217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73670
74217
|
[attr.aria-label]="'pptx.statusBar.slideSorter' | translate"
|
|
73671
74218
|
(click)="openSorter.emit()"
|
|
73672
74219
|
>
|
|
73673
|
-
<
|
|
74220
|
+
<svg lucideColumns2 class="h-3.5 w-3.5"></svg>
|
|
73674
74221
|
</button>
|
|
73675
74222
|
<button
|
|
73676
74223
|
type="button"
|
|
@@ -73681,7 +74228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73681
74228
|
[attr.aria-label]="'pptx.statusBar.slideShow' | translate"
|
|
73682
74229
|
(click)="slideShow.emit()"
|
|
73683
74230
|
>
|
|
73684
|
-
<
|
|
74231
|
+
<svg lucidePresentation class="h-3.5 w-3.5"></svg>
|
|
73685
74232
|
</button>
|
|
73686
74233
|
</div>
|
|
73687
74234
|
|
|
@@ -73695,7 +74242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73695
74242
|
[attr.aria-label]="'pptx.statusBar.zoomOut' | translate"
|
|
73696
74243
|
(click)="zoomOut.emit()"
|
|
73697
74244
|
>
|
|
73698
|
-
<
|
|
74245
|
+
<svg lucideMinus class="h-3 w-3"></svg>
|
|
73699
74246
|
</button>
|
|
73700
74247
|
<button
|
|
73701
74248
|
type="button"
|
|
@@ -73712,7 +74259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
73712
74259
|
[attr.aria-label]="'pptx.statusBar.zoomIn' | translate"
|
|
73713
74260
|
(click)="zoomIn.emit()"
|
|
73714
74261
|
>
|
|
73715
|
-
<
|
|
74262
|
+
<svg lucidePlus class="h-3 w-3"></svg>
|
|
73716
74263
|
</button>
|
|
73717
74264
|
</div>
|
|
73718
74265
|
</div>
|
|
@@ -73930,7 +74477,7 @@ class ThemeGalleryComponent {
|
|
|
73930
74477
|
(click)="close.emit()"
|
|
73931
74478
|
aria-label="Close theme gallery"
|
|
73932
74479
|
>
|
|
73933
|
-
|
|
74480
|
+
<svg lucideX class="h-4 w-4"></svg>
|
|
73934
74481
|
</button>
|
|
73935
74482
|
</div>
|
|
73936
74483
|
|
|
@@ -73980,8 +74527,8 @@ class ThemeGalleryComponent {
|
|
|
73980
74527
|
<span
|
|
73981
74528
|
class="absolute right-1 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-white"
|
|
73982
74529
|
aria-label="Selected theme"
|
|
73983
|
-
|
|
73984
|
-
>
|
|
74530
|
+
><svg lucideCheck class="h-2.5 w-2.5"></svg
|
|
74531
|
+
></span>
|
|
73985
74532
|
}
|
|
73986
74533
|
</button>
|
|
73987
74534
|
}
|
|
@@ -74002,7 +74549,7 @@ class ThemeGalleryComponent {
|
|
|
74002
74549
|
</div>
|
|
74003
74550
|
</div>
|
|
74004
74551
|
}
|
|
74005
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74552
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74006
74553
|
}
|
|
74007
74554
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ThemeGalleryComponent, decorators: [{
|
|
74008
74555
|
type: Component,
|
|
@@ -74010,7 +74557,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74010
74557
|
selector: 'pptx-theme-gallery',
|
|
74011
74558
|
standalone: true,
|
|
74012
74559
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
74013
|
-
imports: [NgClass],
|
|
74560
|
+
imports: [NgClass, LucideX, LucideCheck],
|
|
74014
74561
|
template: `
|
|
74015
74562
|
@if (open()) {
|
|
74016
74563
|
<!-- Backdrop -->
|
|
@@ -74038,7 +74585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74038
74585
|
(click)="close.emit()"
|
|
74039
74586
|
aria-label="Close theme gallery"
|
|
74040
74587
|
>
|
|
74041
|
-
|
|
74588
|
+
<svg lucideX class="h-4 w-4"></svg>
|
|
74042
74589
|
</button>
|
|
74043
74590
|
</div>
|
|
74044
74591
|
|
|
@@ -74088,8 +74635,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74088
74635
|
<span
|
|
74089
74636
|
class="absolute right-1 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-white"
|
|
74090
74637
|
aria-label="Selected theme"
|
|
74091
|
-
|
|
74092
|
-
>
|
|
74638
|
+
><svg lucideCheck class="h-2.5 w-2.5"></svg
|
|
74639
|
+
></span>
|
|
74093
74640
|
}
|
|
74094
74641
|
</button>
|
|
74095
74642
|
}
|
|
@@ -74266,7 +74813,7 @@ class TitleBarComponent {
|
|
|
74266
74813
|
[attr.aria-label]="'pptx.titleBar.save' | translate"
|
|
74267
74814
|
(click)="save.emit()"
|
|
74268
74815
|
>
|
|
74269
|
-
|
|
74816
|
+
<svg lucideSave class="h-3.5 w-3.5"></svg>
|
|
74270
74817
|
</button>
|
|
74271
74818
|
<button
|
|
74272
74819
|
type="button"
|
|
@@ -74280,7 +74827,7 @@ class TitleBarComponent {
|
|
|
74280
74827
|
[attr.aria-label]="'pptx.toolbar.undo' | translate"
|
|
74281
74828
|
(click)="undo.emit()"
|
|
74282
74829
|
>
|
|
74283
|
-
|
|
74830
|
+
<svg lucideUndo class="h-3.5 w-3.5"></svg>
|
|
74284
74831
|
</button>
|
|
74285
74832
|
<button
|
|
74286
74833
|
type="button"
|
|
@@ -74294,7 +74841,7 @@ class TitleBarComponent {
|
|
|
74294
74841
|
[attr.aria-label]="'pptx.toolbar.redo' | translate"
|
|
74295
74842
|
(click)="redo.emit()"
|
|
74296
74843
|
>
|
|
74297
|
-
|
|
74844
|
+
<svg lucideRedo class="h-3.5 w-3.5"></svg>
|
|
74298
74845
|
</button>
|
|
74299
74846
|
|
|
74300
74847
|
<div [class]="tb.separator"></div>
|
|
@@ -74319,7 +74866,9 @@ class TitleBarComponent {
|
|
|
74319
74866
|
searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
|
|
74320
74867
|
"
|
|
74321
74868
|
>
|
|
74322
|
-
<span [class]="tb.searchIcon" aria-hidden="true"
|
|
74869
|
+
<span [class]="tb.searchIcon" aria-hidden="true"
|
|
74870
|
+
><svg lucideSearch class="h-3.5 w-3.5"></svg
|
|
74871
|
+
></span>
|
|
74323
74872
|
<input
|
|
74324
74873
|
type="text"
|
|
74325
74874
|
[value]="searchQuery()"
|
|
@@ -74365,7 +74914,7 @@ class TitleBarComponent {
|
|
|
74365
74914
|
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74366
74915
|
(mousedown)="openFindReplace()"
|
|
74367
74916
|
>
|
|
74368
|
-
<
|
|
74917
|
+
<svg lucideSearch class="h-3.5 w-3.5"></svg>
|
|
74369
74918
|
<span
|
|
74370
74919
|
>{{ 'pptx.titleBar.searchContent' | translate }} “{{
|
|
74371
74920
|
searchQuery()
|
|
@@ -74381,7 +74930,7 @@ class TitleBarComponent {
|
|
|
74381
74930
|
|
|
74382
74931
|
<span [class]="tb.rightSpacer"></span>
|
|
74383
74932
|
</div>
|
|
74384
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74933
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideSave, selector: "svg[lucideSave]" }, { kind: "component", type: LucideUndo, selector: "svg[lucideUndo]" }, { kind: "component", type: LucideRedo, selector: "svg[lucideRedo]" }, { kind: "component", type: LucideSearch, selector: "svg[lucideSearch]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74385
74934
|
}
|
|
74386
74935
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TitleBarComponent, decorators: [{
|
|
74387
74936
|
type: Component,
|
|
@@ -74389,7 +74938,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74389
74938
|
selector: 'pptx-title-bar',
|
|
74390
74939
|
standalone: true,
|
|
74391
74940
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
74392
|
-
imports: [NgClass, TranslatePipe],
|
|
74941
|
+
imports: [NgClass, TranslatePipe, LucideSave, LucideUndo, LucideRedo, LucideSearch],
|
|
74393
74942
|
template: `
|
|
74394
74943
|
<div [class]="tb.container" data-pptx-title-bar>
|
|
74395
74944
|
<span [class]="tb.logo" aria-hidden="true">P</span>
|
|
@@ -74427,7 +74976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74427
74976
|
[attr.aria-label]="'pptx.titleBar.save' | translate"
|
|
74428
74977
|
(click)="save.emit()"
|
|
74429
74978
|
>
|
|
74430
|
-
|
|
74979
|
+
<svg lucideSave class="h-3.5 w-3.5"></svg>
|
|
74431
74980
|
</button>
|
|
74432
74981
|
<button
|
|
74433
74982
|
type="button"
|
|
@@ -74441,7 +74990,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74441
74990
|
[attr.aria-label]="'pptx.toolbar.undo' | translate"
|
|
74442
74991
|
(click)="undo.emit()"
|
|
74443
74992
|
>
|
|
74444
|
-
|
|
74993
|
+
<svg lucideUndo class="h-3.5 w-3.5"></svg>
|
|
74445
74994
|
</button>
|
|
74446
74995
|
<button
|
|
74447
74996
|
type="button"
|
|
@@ -74455,7 +75004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74455
75004
|
[attr.aria-label]="'pptx.toolbar.redo' | translate"
|
|
74456
75005
|
(click)="redo.emit()"
|
|
74457
75006
|
>
|
|
74458
|
-
|
|
75007
|
+
<svg lucideRedo class="h-3.5 w-3.5"></svg>
|
|
74459
75008
|
</button>
|
|
74460
75009
|
|
|
74461
75010
|
<div [class]="tb.separator"></div>
|
|
@@ -74480,7 +75029,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74480
75029
|
searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
|
|
74481
75030
|
"
|
|
74482
75031
|
>
|
|
74483
|
-
<span [class]="tb.searchIcon" aria-hidden="true"
|
|
75032
|
+
<span [class]="tb.searchIcon" aria-hidden="true"
|
|
75033
|
+
><svg lucideSearch class="h-3.5 w-3.5"></svg
|
|
75034
|
+
></span>
|
|
74484
75035
|
<input
|
|
74485
75036
|
type="text"
|
|
74486
75037
|
[value]="searchQuery()"
|
|
@@ -74526,7 +75077,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
74526
75077
|
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
|
|
74527
75078
|
(mousedown)="openFindReplace()"
|
|
74528
75079
|
>
|
|
74529
|
-
<
|
|
75080
|
+
<svg lucideSearch class="h-3.5 w-3.5"></svg>
|
|
74530
75081
|
<span
|
|
74531
75082
|
>{{ 'pptx.titleBar.searchContent' | translate }} “{{
|
|
74532
75083
|
searchQuery()
|
|
@@ -75562,9 +76113,18 @@ class ViewerCustomShowsService {
|
|
|
75562
76113
|
...(ngDevMode ? [{ debugName: "activeId" }] : /* istanbul ignore next */ []));
|
|
75563
76114
|
/** Active-slide index of the host viewer (bound from the component). */
|
|
75564
76115
|
activeSlideIndex = () => 0;
|
|
75565
|
-
/**
|
|
75566
|
-
|
|
75567
|
-
|
|
76116
|
+
/**
|
|
76117
|
+
* The viewer's LIVE (edited) slides accessor, bound from the component. The
|
|
76118
|
+
* presentation overlay must reflect in-session edits (inserted media, moved
|
|
76119
|
+
* shapes, etc.), so it reads these rather than the pristine loaded deck
|
|
76120
|
+
* (`loader.slides()`), mirroring React/Vue where present mode shows the
|
|
76121
|
+
* working set. Defaults to the loaded slides until bound.
|
|
76122
|
+
*/
|
|
76123
|
+
liveSlides = () => this.loader.slides();
|
|
76124
|
+
/** Wire the host's active-slide-index + live-slides accessors (called once from the constructor). */
|
|
76125
|
+
bind(accessors) {
|
|
76126
|
+
this.activeSlideIndex = accessors.activeSlideIndex;
|
|
76127
|
+
this.liveSlides = accessors.liveSlides;
|
|
75568
76128
|
}
|
|
75569
76129
|
/** Custom shows mapped to the core shape consumed by set-up-slide-show. */
|
|
75570
76130
|
pptxCustomShows = computed(() => this.shows().map((show) => ({
|
|
@@ -75573,8 +76133,8 @@ class ViewerCustomShowsService {
|
|
|
75573
76133
|
slideRIds: [...show.slideIds],
|
|
75574
76134
|
})), /* @ts-ignore */
|
|
75575
76135
|
...(ngDevMode ? [{ debugName: "pptxCustomShows" }] : /* istanbul ignore next */ []));
|
|
75576
|
-
/** Slides shown in presentation mode: the active custom show, else the full deck. */
|
|
75577
|
-
presentationSlides = computed(() => this.resolveActiveShowSlides() ?? [...this.
|
|
76136
|
+
/** Slides shown in presentation mode: the active custom show, else the full (live) deck. */
|
|
76137
|
+
presentationSlides = computed(() => this.resolveActiveShowSlides() ?? [...this.liveSlides()], /* @ts-ignore */
|
|
75578
76138
|
...(ngDevMode ? [{ debugName: "presentationSlides" }] : /* istanbul ignore next */ []));
|
|
75579
76139
|
/** Start index into {@link presentationSlides}: first slide of a custom show, else the active slide. */
|
|
75580
76140
|
presentationStartIndex = computed(() => this.resolveActiveShowSlides() ? 0 : this.activeSlideIndex(), /* @ts-ignore */
|
|
@@ -75604,7 +76164,7 @@ class ViewerCustomShowsService {
|
|
|
75604
76164
|
if (!show || show.slideIds.length === 0) {
|
|
75605
76165
|
return null;
|
|
75606
76166
|
}
|
|
75607
|
-
const byId = new Map(this.
|
|
76167
|
+
const byId = new Map(this.liveSlides().map((s) => [s.id, s]));
|
|
75608
76168
|
const picked = show.slideIds
|
|
75609
76169
|
.map((sid) => byId.get(sid))
|
|
75610
76170
|
.filter((s) => s !== undefined);
|
|
@@ -76076,7 +76636,7 @@ class SlideDiffThumbnailsComponent {
|
|
|
76076
76636
|
</div>
|
|
76077
76637
|
}
|
|
76078
76638
|
</div>
|
|
76079
|
-
`, isInline: true, styles: [".pptx-ng-diff-thumbs{display:flex;gap:.5rem}.pptx-ng-diff-thumb-col{flex:1}.pptx-ng-diff-thumb-label{margin-bottom:.25rem;font-size:.625rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-thumb-clip{overflow:hidden;border:1px solid var(--pptx-border, #374151);border-radius:.25rem}.pptx-ng-diff-thumb-clip[data-status=added]{border-color:#15803d99}.pptx-ng-diff-thumb-clip[data-status=changed]{border-color:#b4530999}.pptx-ng-diff-thumb-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}\n"], dependencies: [{ 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76639
|
+
`, isInline: true, styles: [".pptx-ng-diff-thumbs{display:flex;gap:.5rem}.pptx-ng-diff-thumb-col{flex:1}.pptx-ng-diff-thumb-label{margin-bottom:.25rem;font-size:.625rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-thumb-clip{overflow:hidden;border:1px solid var(--pptx-border, #374151);border-radius:.25rem}.pptx-ng-diff-thumb-clip[data-status=added]{border-color:#15803d99}.pptx-ng-diff-thumb-clip[data-status=changed]{border-color:#b4530999}.pptx-ng-diff-thumb-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}\n"], dependencies: [{ kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76080
76640
|
}
|
|
76081
76641
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlideDiffThumbnailsComponent, decorators: [{
|
|
76082
76642
|
type: Component,
|
|
@@ -76183,7 +76743,13 @@ class SlideDiffRowComponent {
|
|
|
76183
76743
|
<div class="pptx-ng-diff-row" [class.is-resolved]="isResolved()">
|
|
76184
76744
|
<!-- Header (toggles expand) -->
|
|
76185
76745
|
<button type="button" class="pptx-ng-diff-head" (click)="toggle()">
|
|
76186
|
-
<span class="pptx-ng-diff-chevron
|
|
76746
|
+
<span class="pptx-ng-diff-chevron inline-flex items-center">
|
|
76747
|
+
@if (expanded()) {
|
|
76748
|
+
<svg lucideChevronDown class="h-3.5 w-3.5"></svg>
|
|
76749
|
+
} @else {
|
|
76750
|
+
<svg lucideChevronRight class="h-3.5 w-3.5"></svg>
|
|
76751
|
+
}
|
|
76752
|
+
</span>
|
|
76187
76753
|
<span class="pptx-ng-diff-slide">{{
|
|
76188
76754
|
'pptx.compare.slideNumber' | translate: { number: slideNumber() }
|
|
76189
76755
|
}}</span>
|
|
@@ -76218,17 +76784,18 @@ class SlideDiffRowComponent {
|
|
|
76218
76784
|
<div class="pptx-ng-diff-actions">
|
|
76219
76785
|
<button
|
|
76220
76786
|
type="button"
|
|
76221
|
-
class="pptx-ng-diff-btn is-accept"
|
|
76787
|
+
class="pptx-ng-diff-btn is-accept inline-flex items-center gap-1"
|
|
76222
76788
|
(click)="accept.emit(diffIndex())"
|
|
76223
76789
|
>
|
|
76224
|
-
|
|
76790
|
+
<svg lucideCheck class="h-3.5 w-3.5"></svg>
|
|
76791
|
+
{{ 'pptx.compare.accept' | translate }}
|
|
76225
76792
|
</button>
|
|
76226
76793
|
<button
|
|
76227
76794
|
type="button"
|
|
76228
|
-
class="pptx-ng-diff-btn is-reject"
|
|
76795
|
+
class="pptx-ng-diff-btn is-reject inline-flex items-center gap-1"
|
|
76229
76796
|
(click)="reject.emit(diffIndex())"
|
|
76230
76797
|
>
|
|
76231
|
-
|
|
76798
|
+
<svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.reject' | translate }}
|
|
76232
76799
|
</button>
|
|
76233
76800
|
</div>
|
|
76234
76801
|
}
|
|
@@ -76236,16 +76803,30 @@ class SlideDiffRowComponent {
|
|
|
76236
76803
|
}
|
|
76237
76804
|
</div>
|
|
76238
76805
|
}
|
|
76239
|
-
`, isInline: true, styles: [".pptx-ng-diff-row{border:1px solid var(--pptx-border, #374151);border-radius:.5rem;background:var(--pptx-background, #030712)}.pptx-ng-diff-row.is-resolved{opacity:.6;background:var(--pptx-card, #111827)}.pptx-ng-diff-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;text-align:left;border:none;background:transparent;color:var(--pptx-foreground, #f3f4f6);cursor:pointer}.pptx-ng-diff-chevron{flex-shrink:0;color:var(--pptx-muted-foreground, #9ca3af);font-size:.75rem}.pptx-ng-diff-slide{font-size:.75rem}.pptx-ng-diff-pill{border-radius:9999px;padding:.0625rem .5rem;font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af);background:#6b728033}.pptx-ng-diff-pill[data-status=added]{color:#4ade80;background:#14532d4d}.pptx-ng-diff-pill[data-status=removed]{color:#f87171;background:#7f1d1d4d}.pptx-ng-diff-pill[data-status=changed]{color:#fbbf24;background:#78350f4d}.pptx-ng-diff-count{font-size:.625rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-spacer{flex:1}.pptx-ng-diff-tag{font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-tag.is-accepted{color:#4ade80}.pptx-ng-diff-body{display:flex;flex-direction:column;gap:.5rem;padding:0 .75rem .75rem}.pptx-ng-diff-actions{display:flex;gap:.5rem;padding-top:.25rem}.pptx-ng-diff-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border:none;border-radius:.25rem;font-size:.6875rem;cursor:pointer}.pptx-ng-diff-btn.is-accept{background:#15803dcc;color:#f0fdf4}.pptx-ng-diff-btn.is-accept:hover{background:#16a34a}.pptx-ng-diff-btn.is-reject{background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-diff-btn.is-reject:hover{filter:brightness(1.2)}\n"], dependencies: [{ kind: "component", type: SlideDiffThumbnailsComponent, selector: "pptx-slide-diff-thumbnails", inputs: ["diff", "canvasSize", "mediaDataUrls"] }, { kind: "component", type: SlideDiffChangesComponent, selector: "pptx-slide-diff-changes", inputs: ["changes"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76806
|
+
`, isInline: true, styles: [".pptx-ng-diff-row{border:1px solid var(--pptx-border, #374151);border-radius:.5rem;background:var(--pptx-background, #030712)}.pptx-ng-diff-row.is-resolved{opacity:.6;background:var(--pptx-card, #111827)}.pptx-ng-diff-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;text-align:left;border:none;background:transparent;color:var(--pptx-foreground, #f3f4f6);cursor:pointer}.pptx-ng-diff-chevron{flex-shrink:0;color:var(--pptx-muted-foreground, #9ca3af);font-size:.75rem}.pptx-ng-diff-slide{font-size:.75rem}.pptx-ng-diff-pill{border-radius:9999px;padding:.0625rem .5rem;font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af);background:#6b728033}.pptx-ng-diff-pill[data-status=added]{color:#4ade80;background:#14532d4d}.pptx-ng-diff-pill[data-status=removed]{color:#f87171;background:#7f1d1d4d}.pptx-ng-diff-pill[data-status=changed]{color:#fbbf24;background:#78350f4d}.pptx-ng-diff-count{font-size:.625rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-spacer{flex:1}.pptx-ng-diff-tag{font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-tag.is-accepted{color:#4ade80}.pptx-ng-diff-body{display:flex;flex-direction:column;gap:.5rem;padding:0 .75rem .75rem}.pptx-ng-diff-actions{display:flex;gap:.5rem;padding-top:.25rem}.pptx-ng-diff-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border:none;border-radius:.25rem;font-size:.6875rem;cursor:pointer}.pptx-ng-diff-btn.is-accept{background:#15803dcc;color:#f0fdf4}.pptx-ng-diff-btn.is-accept:hover{background:#16a34a}.pptx-ng-diff-btn.is-reject{background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-diff-btn.is-reject:hover{filter:brightness(1.2)}\n"], dependencies: [{ kind: "component", type: SlideDiffThumbnailsComponent, selector: "pptx-slide-diff-thumbnails", inputs: ["diff", "canvasSize", "mediaDataUrls"] }, { kind: "component", type: SlideDiffChangesComponent, selector: "pptx-slide-diff-changes", inputs: ["changes"] }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76240
76807
|
}
|
|
76241
76808
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlideDiffRowComponent, decorators: [{
|
|
76242
76809
|
type: Component,
|
|
76243
|
-
args: [{ selector: 'pptx-slide-diff-row', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
76810
|
+
args: [{ selector: 'pptx-slide-diff-row', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
76811
|
+
SlideDiffThumbnailsComponent,
|
|
76812
|
+
SlideDiffChangesComponent,
|
|
76813
|
+
TranslatePipe,
|
|
76814
|
+
LucideChevronDown,
|
|
76815
|
+
LucideChevronRight,
|
|
76816
|
+
LucideCheck,
|
|
76817
|
+
LucideX,
|
|
76818
|
+
], template: `
|
|
76244
76819
|
@if (diff().status !== 'unchanged') {
|
|
76245
76820
|
<div class="pptx-ng-diff-row" [class.is-resolved]="isResolved()">
|
|
76246
76821
|
<!-- Header (toggles expand) -->
|
|
76247
76822
|
<button type="button" class="pptx-ng-diff-head" (click)="toggle()">
|
|
76248
|
-
<span class="pptx-ng-diff-chevron
|
|
76823
|
+
<span class="pptx-ng-diff-chevron inline-flex items-center">
|
|
76824
|
+
@if (expanded()) {
|
|
76825
|
+
<svg lucideChevronDown class="h-3.5 w-3.5"></svg>
|
|
76826
|
+
} @else {
|
|
76827
|
+
<svg lucideChevronRight class="h-3.5 w-3.5"></svg>
|
|
76828
|
+
}
|
|
76829
|
+
</span>
|
|
76249
76830
|
<span class="pptx-ng-diff-slide">{{
|
|
76250
76831
|
'pptx.compare.slideNumber' | translate: { number: slideNumber() }
|
|
76251
76832
|
}}</span>
|
|
@@ -76280,17 +76861,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
76280
76861
|
<div class="pptx-ng-diff-actions">
|
|
76281
76862
|
<button
|
|
76282
76863
|
type="button"
|
|
76283
|
-
class="pptx-ng-diff-btn is-accept"
|
|
76864
|
+
class="pptx-ng-diff-btn is-accept inline-flex items-center gap-1"
|
|
76284
76865
|
(click)="accept.emit(diffIndex())"
|
|
76285
76866
|
>
|
|
76286
|
-
|
|
76867
|
+
<svg lucideCheck class="h-3.5 w-3.5"></svg>
|
|
76868
|
+
{{ 'pptx.compare.accept' | translate }}
|
|
76287
76869
|
</button>
|
|
76288
76870
|
<button
|
|
76289
76871
|
type="button"
|
|
76290
|
-
class="pptx-ng-diff-btn is-reject"
|
|
76872
|
+
class="pptx-ng-diff-btn is-reject inline-flex items-center gap-1"
|
|
76291
76873
|
(click)="reject.emit(diffIndex())"
|
|
76292
76874
|
>
|
|
76293
|
-
|
|
76875
|
+
<svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.reject' | translate }}
|
|
76294
76876
|
</button>
|
|
76295
76877
|
</div>
|
|
76296
76878
|
}
|
|
@@ -76402,15 +76984,19 @@ class ComparePanelComponent {
|
|
|
76402
76984
|
[attr.aria-label]="'pptx.compare.closePanel' | translate"
|
|
76403
76985
|
(click)="close.emit()"
|
|
76404
76986
|
>
|
|
76405
|
-
|
|
76987
|
+
<svg lucideX class="h-4 w-4"></svg>
|
|
76406
76988
|
</button>
|
|
76407
76989
|
</div>
|
|
76408
76990
|
|
|
76409
76991
|
<!-- Accept all -->
|
|
76410
76992
|
@if (nonTrivialCount() > 0) {
|
|
76411
76993
|
<div class="pptx-ng-compare-acceptall">
|
|
76412
|
-
<button
|
|
76413
|
-
|
|
76994
|
+
<button
|
|
76995
|
+
type="button"
|
|
76996
|
+
class="pptx-ng-compare-acceptall-btn inline-flex items-center gap-1"
|
|
76997
|
+
(click)="handleAcceptAll()"
|
|
76998
|
+
>
|
|
76999
|
+
<svg lucideCheck class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.acceptAll' | translate }}
|
|
76414
77000
|
</button>
|
|
76415
77001
|
</div>
|
|
76416
77002
|
}
|
|
@@ -76436,11 +77022,11 @@ class ComparePanelComponent {
|
|
|
76436
77022
|
</div>
|
|
76437
77023
|
</div>
|
|
76438
77024
|
}
|
|
76439
|
-
`, isInline: true, styles: [".pptx-ng-compare{position:fixed;inset-block:0;right:0;z-index:50;display:flex;flex-direction:column;width:440px;max-width:100%;border-left:1px solid var(--pptx-border, #374151);background:var(--pptx-popover, #0b1220);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:-12px 0 40px #00000080}.pptx-ng-compare-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-title{margin:0;font-size:.875rem;font-weight:500;color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-summary{margin:.125rem 0 0;font-size:.6875rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-compare-close{padding:.375rem;border:none;border-radius:.25rem;background:transparent;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;transition:background .15s ease}.pptx-ng-compare-close:hover{background:var(--pptx-muted, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-acceptall{padding:.5rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-acceptall-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:.25rem;background:#15803dcc;color:#f0fdf4;font-size:.75rem;cursor:pointer;transition:background .15s ease}.pptx-ng-compare-acceptall-btn:hover{background:#16a34a}.pptx-ng-compare-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.pptx-ng-compare-empty{padding:2rem 0;text-align:center;font-size:.75rem;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "component", type: SlideDiffRowComponent, selector: "pptx-slide-diff-row", inputs: ["diff", "diffIndex", "canvasSize", "mediaDataUrls", "accepted", "rejected"], outputs: ["accept", "reject"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
77025
|
+
`, isInline: true, styles: [".pptx-ng-compare{position:fixed;inset-block:0;right:0;z-index:50;display:flex;flex-direction:column;width:440px;max-width:100%;border-left:1px solid var(--pptx-border, #374151);background:var(--pptx-popover, #0b1220);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:-12px 0 40px #00000080}.pptx-ng-compare-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-title{margin:0;font-size:.875rem;font-weight:500;color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-summary{margin:.125rem 0 0;font-size:.6875rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-compare-close{padding:.375rem;border:none;border-radius:.25rem;background:transparent;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;transition:background .15s ease}.pptx-ng-compare-close:hover{background:var(--pptx-muted, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-acceptall{padding:.5rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-acceptall-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:.25rem;background:#15803dcc;color:#f0fdf4;font-size:.75rem;cursor:pointer;transition:background .15s ease}.pptx-ng-compare-acceptall-btn:hover{background:#16a34a}.pptx-ng-compare-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.pptx-ng-compare-empty{padding:2rem 0;text-align:center;font-size:.75rem;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "component", type: SlideDiffRowComponent, selector: "pptx-slide-diff-row", inputs: ["diff", "diffIndex", "canvasSize", "mediaDataUrls", "accepted", "rejected"], outputs: ["accept", "reject"] }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76440
77026
|
}
|
|
76441
77027
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComparePanelComponent, decorators: [{
|
|
76442
77028
|
type: Component,
|
|
76443
|
-
args: [{ selector: 'pptx-compare-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [SlideDiffRowComponent, TranslatePipe], template: `
|
|
77029
|
+
args: [{ selector: 'pptx-compare-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [SlideDiffRowComponent, TranslatePipe, LucideCheck, LucideX], template: `
|
|
76444
77030
|
@if (open() && compareResult(); as result) {
|
|
76445
77031
|
<div class="pptx-ng-compare">
|
|
76446
77032
|
<!-- Header -->
|
|
@@ -76466,15 +77052,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
76466
77052
|
[attr.aria-label]="'pptx.compare.closePanel' | translate"
|
|
76467
77053
|
(click)="close.emit()"
|
|
76468
77054
|
>
|
|
76469
|
-
|
|
77055
|
+
<svg lucideX class="h-4 w-4"></svg>
|
|
76470
77056
|
</button>
|
|
76471
77057
|
</div>
|
|
76472
77058
|
|
|
76473
77059
|
<!-- Accept all -->
|
|
76474
77060
|
@if (nonTrivialCount() > 0) {
|
|
76475
77061
|
<div class="pptx-ng-compare-acceptall">
|
|
76476
|
-
<button
|
|
76477
|
-
|
|
77062
|
+
<button
|
|
77063
|
+
type="button"
|
|
77064
|
+
class="pptx-ng-compare-acceptall-btn inline-flex items-center gap-1"
|
|
77065
|
+
(click)="handleAcceptAll()"
|
|
77066
|
+
>
|
|
77067
|
+
<svg lucideCheck class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.acceptAll' | translate }}
|
|
76478
77068
|
</button>
|
|
76479
77069
|
</div>
|
|
76480
77070
|
}
|
|
@@ -79627,6 +80217,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
79627
80217
|
* prompt trigger) via {@link bind}; the template reads the signals / invokes the
|
|
79628
80218
|
* handlers off the injected instance directly (same pattern as `session`/`xport`).
|
|
79629
80219
|
*
|
|
80220
|
+
* This service owns no DOM node, so the real browser Fullscreen API request/exit
|
|
80221
|
+
* (mirroring React's `usePresentationMode` / Vue's `PresentationMode.vue`) is
|
|
80222
|
+
* driven by `PresentationOverlayComponent` itself off this `presenting` signal's
|
|
80223
|
+
* mount/unmount, not from here; see that component for the fullscreen wiring.
|
|
80224
|
+
*
|
|
79630
80225
|
* Provide it once on the viewer component (`providers: [ViewerPresentationModeService]`).
|
|
79631
80226
|
*/
|
|
79632
80227
|
class ViewerPresentationModeService {
|
|
@@ -79653,7 +80248,11 @@ class ViewerPresentationModeService {
|
|
|
79653
80248
|
}
|
|
79654
80249
|
return this.host;
|
|
79655
80250
|
}
|
|
79656
|
-
/**
|
|
80251
|
+
/**
|
|
80252
|
+
* Open the presentation overlay from the current slide. The overlay itself
|
|
80253
|
+
* (`PresentationOverlayComponent`) requests real browser fullscreen once it
|
|
80254
|
+
* mounts as a result of `presenting` flipping true.
|
|
80255
|
+
*/
|
|
79657
80256
|
present() {
|
|
79658
80257
|
const host = this.requireHost();
|
|
79659
80258
|
if (host.slideCount() > 0) {
|
|
@@ -80277,9 +80876,14 @@ class PowerPointViewerComponent {
|
|
|
80277
80876
|
// Hand the find/replace controller a slide-navigation callback so a match
|
|
80278
80877
|
// can scroll its slide into view.
|
|
80279
80878
|
this.findReplace.bind((index) => this.goTo(index));
|
|
80280
|
-
// Hand the custom-shows controller the active-slide-index accessor so a
|
|
80281
|
-
// normal
|
|
80282
|
-
|
|
80879
|
+
// Hand the custom-shows controller the active-slide-index accessor (so a
|
|
80880
|
+
// normal show starts at the current slide) and the LIVE edited-slides
|
|
80881
|
+
// accessor (so present mode reflects in-session edits like inserted media,
|
|
80882
|
+
// mirroring React/Vue) rather than the pristine loaded deck.
|
|
80883
|
+
this.customShowsCtl.bind({
|
|
80884
|
+
activeSlideIndex: () => this.activeSlideIndex(),
|
|
80885
|
+
liveSlides: () => this.displaySlidesMut(),
|
|
80886
|
+
});
|
|
80283
80887
|
// Hand the collaboration-session controller the host inputs it cannot own
|
|
80284
80888
|
// (author name, share defaults, template-element supplier) and the
|
|
80285
80889
|
// start/stop output emitters.
|
|
@@ -81380,7 +81984,12 @@ class PowerPointViewerComponent {
|
|
|
81380
81984
|
>
|
|
81381
81985
|
<div class="pptx-ng-mnotes-handle"></div>
|
|
81382
81986
|
</div>
|
|
81383
|
-
<pptx-notes-panel
|
|
81987
|
+
<pptx-notes-panel
|
|
81988
|
+
[slide]="activeSlide()"
|
|
81989
|
+
[expanded]="true"
|
|
81990
|
+
(update)="canvasEditing.onNotesUpdate($event)"
|
|
81991
|
+
(notesToggle)="mobileSheetSvc.toggleNotes()"
|
|
81992
|
+
/>
|
|
81384
81993
|
</div>
|
|
81385
81994
|
}
|
|
81386
81995
|
|
|
@@ -81402,7 +82011,7 @@ class PowerPointViewerComponent {
|
|
|
81402
82011
|
/>
|
|
81403
82012
|
}
|
|
81404
82013
|
</div>
|
|
81405
|
-
`, 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", "expanded"], outputs: ["update", "notesToggle"] }, { 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 });
|
|
82014
|
+
`, 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", "presenting", "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", "expanded"], outputs: ["update", "notesToggle"] }, { 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 });
|
|
81406
82015
|
}
|
|
81407
82016
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PowerPointViewerComponent, decorators: [{
|
|
81408
82017
|
type: Component,
|
|
@@ -82051,7 +82660,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
82051
82660
|
>
|
|
82052
82661
|
<div class="pptx-ng-mnotes-handle"></div>
|
|
82053
82662
|
</div>
|
|
82054
|
-
<pptx-notes-panel
|
|
82663
|
+
<pptx-notes-panel
|
|
82664
|
+
[slide]="activeSlide()"
|
|
82665
|
+
[expanded]="true"
|
|
82666
|
+
(update)="canvasEditing.onNotesUpdate($event)"
|
|
82667
|
+
(notesToggle)="mobileSheetSvc.toggleNotes()"
|
|
82668
|
+
/>
|
|
82055
82669
|
</div>
|
|
82056
82670
|
}
|
|
82057
82671
|
|