pptx-angular-viewer 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-BSVKLMXQ.mjs → pptx-angular-viewer-chat-history-idb-B1LY08QA.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-BSVKLMXQ.mjs.map → pptx-angular-viewer-chat-history-idb-B1LY08QA.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-CcgJ4fgi.mjs → pptx-angular-viewer-pptx-angular-viewer-Dora2fol.mjs} +412 -43
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-CcgJ4fgi.mjs.map → pptx-angular-viewer-pptx-angular-viewer-Dora2fol.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +3 -3
- package/types/pptx-angular-viewer.d.ts +98 -3
|
@@ -2,15 +2,16 @@ import { NgStyle, NgTemplateOutlet, NgClass } from '@angular/common';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, input, output, computed, ChangeDetectionStrategy, Component, signal, Injectable, inject, DestroyRef, Injector, effect, viewChild, ElementRef, HostListener, afterNextRender, Renderer2, ViewEncapsulation, forwardRef, untracked } from '@angular/core';
|
|
4
4
|
import { TranslatePipe, TranslateService, translate } from '@ngx-translate/core';
|
|
5
|
-
import { THEME_PRESETS, guideEmuToPx, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, ooxmlGradientAngleToCssDegrees, hasShapeProperties, applyDrawingColorTransforms as applyDrawingColorTransforms$1, hslToRgb as hslToRgb$1, PRESET_COLOR_MAP, isImageLikeElement, hasTextProperties, stripXmlOrderSuffix, orderedXmlKey, MIN_ELEMENT_SIZE as MIN_ELEMENT_SIZE$2, THEME_COLOR_SCHEME_KEYS, getLinkedTextBoxSegments, createBuiltinVariables, resolveCoordinate, svgPathToPolygons, deobfuscateFont, detectFontFormat, getSubstituteFontFamily, checkMissingAltText, checkMissingSlideTitle, checkLowContrast, checkComplexTables, checkBlankSlide, checkDuplicateTitles, createChartElement, PptxMarkdownConverter, ThemePresets, formatCommentTimestamp as formatCommentTimestamp$1,
|
|
5
|
+
import { THEME_PRESETS, guideEmuToPx, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, ooxmlGradientAngleToCssDegrees, hasShapeProperties, applyDrawingColorTransforms as applyDrawingColorTransforms$1, hslToRgb as hslToRgb$1, PRESET_COLOR_MAP, isImageLikeElement, hasTextProperties, stripXmlOrderSuffix, orderedXmlKey, MIN_ELEMENT_SIZE as MIN_ELEMENT_SIZE$2, THEME_COLOR_SCHEME_KEYS, getLinkedTextBoxSegments, createBuiltinVariables, resolveCoordinate, PptxHandler, svgPathToPolygons, deobfuscateFont, detectFontFormat, getSubstituteFontFamily, checkMissingAltText, checkMissingSlideTitle, checkLowContrast, checkComplexTables, checkBlankSlide, checkDuplicateTitles, createChartElement, PptxMarkdownConverter, ThemePresets, formatCommentTimestamp as formatCommentTimestamp$1, EncryptedFileError, parseSignatureXml, cloneSlide as cloneSlide$1, cloneTemplateElementsBySlideId as cloneTemplateElementsBySlideId$1, cloneElement as cloneElement$1, updateSmartArtNodeText, setSmartArtNodeStyle, isInkElement, parseDataUrlToBytes, isZoomElement, SvgExporter, applyThemeToData, pptxActionToElementAction, elementActionToPptxAction, setChartTitle, setChartLegend, setChartDataLabels, setChartAxis, setChartSeriesTrendline, setChartSeriesErrorBars, setChartDataPointLabel, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, chartDataAddSeries, chartDataRemoveSeries, chartDataAddCategory, chartDataRemoveCategory, chartDataUpdatePoint, chartDataChangeType, getOleObjectTypeLabel, addSmartArtNodeAsChild, removeSmartArtNode, promoteSmartArtNode, demoteSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, SWITCHABLE_LAYOUT_TYPES, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, applyThemeOverrideToSlide, getAnimationPresetInfo } from 'pptx-viewer-core';
|
|
6
6
|
import DOMPurify from 'dompurify';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
import * as mcp from 'pptx-viewer-mcp';
|
|
9
9
|
import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
|
|
10
10
|
import { LucideX, LucideSquare, LucideCircle, LucideSlash, LucideCopy, LucideTrash2, LucideChevronsUp, LucideChevronsDown, LucideArrowUp, LucideArrowDown, LucideGroup, LucideUngroup, LucideTextAlignStart, LucideTextAlignCenter, LucideTextAlignEnd, LucideChevronUp, LucideChevronDown, LucideAlignHorizontalSpaceAround, LucideAlignVerticalSpaceAround, LucideLayers, LucideMessageSquare, LucidePlus, LucideSettings2, LucideStickyNote, LucideDownload, LucideMenu, LucidePresentation, LucideRedo, LucideShare2, LucideSparkles, LucideUndo, LucideChevronRight, LucidePenTool, LucideHighlighter, LucideEraser, LucideMousePointer2, LucideChevronLeft, LucidePlay, LucidePanelRight, LucideMoveRight, LucidePencil, LucideType, LucideMinus, LucideSpline, LucideArrowLeft, LucideFilePlus2, LucideFolderOpen, LucideHome, LucideInfo, LucidePrinter, LucideSave, LucideSettings, LucideUpload, LucideUserRound, LucideAArrowUp, LucideAArrowDown, LucideRemoveFormatting, LucideList, LucideListOrdered, LucideListIndentDecrease, LucideListIndentIncrease, LucideTextAlignJustify, LucideClipboardPaste, LucideFolderPlus, LucideLayoutGrid, LucidePaintbrush, LucideRotateCcw, LucideScissors, LucideImage, LucideVideo, LucideDatabase, LucidePanelLeft, LucideEllipsis, LucideEye, LucideEyeOff, LucideMonitor, LucideColumns2, LucideCheck, LucideSearch, LucideBug, LucideSend, LucideCrosshair, LucideGitMerge, LucidePin, LucidePinOff, LucideWrench, LucideLoaderCircle, LucideTriangleAlert, LucideShapes, LucidePalette, LucideTable, LucideLayoutTemplate, LucideChartColumn, LucideMove, LucideNavigation, LucideFilm, LucideBot, LucideUser } from '@lucide/angular';
|
|
11
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
12
|
+
import JSZip from 'jszip';
|
|
11
13
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
12
14
|
import { jsPDF } from 'jspdf';
|
|
13
|
-
import JSZip from 'jszip';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Default dark-theme color values.
|
|
@@ -15836,6 +15837,50 @@ function countTextSegments(textSegments) {
|
|
|
15836
15837
|
* in composite animation target IDs (e.g. `"shape3::p0"`).
|
|
15837
15838
|
*/
|
|
15838
15839
|
const TEXT_BUILD_ID_SEP = '::';
|
|
15840
|
+
/**
|
|
15841
|
+
* The build granularity an animation actually wants, from either of the two
|
|
15842
|
+
* places OOXML records it.
|
|
15843
|
+
*
|
|
15844
|
+
* `p:bldP/@build` (parsed to `buildType`) is the slide-level text build, but
|
|
15845
|
+
* PowerPoint's "Effect Options > Animate text: By letter / By word" writes
|
|
15846
|
+
* `p:iterate` on the effect's own `p:cTn` instead. Only the first was honoured,
|
|
15847
|
+
* so a title authored to fade in letter by letter faded in as one block
|
|
15848
|
+
* (issue #106). `p:iterate type="el"` means "as one object" and stays
|
|
15849
|
+
* unexpanded.
|
|
15850
|
+
*/
|
|
15851
|
+
function effectiveTextBuildType(anim) {
|
|
15852
|
+
if (anim.buildType && anim.buildType !== 'allAtOnce') {
|
|
15853
|
+
return anim.buildType;
|
|
15854
|
+
}
|
|
15855
|
+
if (anim.iterate?.type === 'lt') {
|
|
15856
|
+
return 'byChar';
|
|
15857
|
+
}
|
|
15858
|
+
if (anim.iterate?.type === 'wd') {
|
|
15859
|
+
return 'byWord';
|
|
15860
|
+
}
|
|
15861
|
+
return undefined;
|
|
15862
|
+
}
|
|
15863
|
+
/**
|
|
15864
|
+
* Stagger (ms) between consecutive sub-elements of an `p:iterate` build.
|
|
15865
|
+
*
|
|
15866
|
+
* `p:tmAbs` is already milliseconds; `p:tmPct` is a percentage of the effect's
|
|
15867
|
+
* own duration in 1000ths of a percent (PowerPoint's default is `10000`, i.e.
|
|
15868
|
+
* 10%). Returns `undefined` when the animation is not iterate-driven, so the
|
|
15869
|
+
* caller keeps the slide-build defaults.
|
|
15870
|
+
*/
|
|
15871
|
+
function iterateStaggerMs(anim, durationMs) {
|
|
15872
|
+
const iterate = anim.iterate;
|
|
15873
|
+
if (!iterate || iterate.type === 'el') {
|
|
15874
|
+
return undefined;
|
|
15875
|
+
}
|
|
15876
|
+
if (typeof iterate.tmAbs === 'number' && Number.isFinite(iterate.tmAbs) && iterate.tmAbs > 0) {
|
|
15877
|
+
return iterate.tmAbs;
|
|
15878
|
+
}
|
|
15879
|
+
if (typeof iterate.tmPct === 'number' && Number.isFinite(iterate.tmPct) && iterate.tmPct > 0) {
|
|
15880
|
+
return Math.max(1, Math.round((iterate.tmPct / 100000) * durationMs));
|
|
15881
|
+
}
|
|
15882
|
+
return undefined;
|
|
15883
|
+
}
|
|
15839
15884
|
/**
|
|
15840
15885
|
* Expand text-build animations into per-paragraph, per-word or per-character
|
|
15841
15886
|
* sub-element animations.
|
|
@@ -15851,9 +15896,9 @@ const TEXT_BUILD_ID_SEP = '::';
|
|
|
15851
15896
|
function expandTextBuildAnimations(animations, segmentCounts) {
|
|
15852
15897
|
const result = [];
|
|
15853
15898
|
for (const anim of animations) {
|
|
15854
|
-
const buildType = anim
|
|
15899
|
+
const buildType = effectiveTextBuildType(anim);
|
|
15855
15900
|
const targetId = anim.targetId ?? '';
|
|
15856
|
-
if (!buildType ||
|
|
15901
|
+
if (!buildType || !targetId) {
|
|
15857
15902
|
result.push(anim);
|
|
15858
15903
|
continue;
|
|
15859
15904
|
}
|
|
@@ -15883,6 +15928,13 @@ function expandSingleBuildAnimation(anim, buildType, counts, output) {
|
|
|
15883
15928
|
}
|
|
15884
15929
|
return;
|
|
15885
15930
|
}
|
|
15931
|
+
// An `p:iterate` build overlaps: every letter/word runs the FULL effect
|
|
15932
|
+
// duration and merely starts `stagger` later than the one before, which is
|
|
15933
|
+
// what makes PowerPoint's "by letter" read as a ripple. `withPrevious` steps
|
|
15934
|
+
// accumulate their delay from the previous step's START, so passing the bare
|
|
15935
|
+
// interval as each step's delay yields `base + i * stagger`. The slide-build
|
|
15936
|
+
// (`p:bldP`) path keeps its original end-to-end pacing.
|
|
15937
|
+
const stagger = iterateStaggerMs(anim, baseDuration);
|
|
15886
15938
|
if (buildType === 'byWord') {
|
|
15887
15939
|
const wordCounts = counts.wordCounts ?? [];
|
|
15888
15940
|
let stepIndex = 0;
|
|
@@ -15892,10 +15944,18 @@ function expandSingleBuildAnimation(anim, buildType, counts, output) {
|
|
|
15892
15944
|
output.push({
|
|
15893
15945
|
...anim,
|
|
15894
15946
|
targetId: `${targetId}${TEXT_BUILD_ID_SEP}w${pIdx}-${wIdx}`,
|
|
15895
|
-
trigger: stepIndex === 0
|
|
15896
|
-
|
|
15897
|
-
|
|
15947
|
+
trigger: stepIndex === 0
|
|
15948
|
+
? anim.trigger
|
|
15949
|
+
: stagger !== undefined
|
|
15950
|
+
? 'withPrevious'
|
|
15951
|
+
: 'afterPrevious',
|
|
15952
|
+
durationMs: stagger !== undefined ? baseDuration : Math.max(100, Math.round(baseDuration / 2)),
|
|
15953
|
+
delayMs: stepIndex === 0 ? (anim.delayMs ?? 0) : (stagger ?? 50),
|
|
15954
|
+
// Only the first sub-step inherits the parent's start delay; the
|
|
15955
|
+
// rest carry the bare stagger, so these must not re-apply it.
|
|
15956
|
+
...(stepIndex === 0 ? {} : { triggerDelayMs: undefined, startConditions: undefined }),
|
|
15898
15957
|
buildType: undefined,
|
|
15958
|
+
iterate: undefined,
|
|
15899
15959
|
});
|
|
15900
15960
|
stepIndex++;
|
|
15901
15961
|
}
|
|
@@ -15911,10 +15971,18 @@ function expandSingleBuildAnimation(anim, buildType, counts, output) {
|
|
|
15911
15971
|
output.push({
|
|
15912
15972
|
...anim,
|
|
15913
15973
|
targetId: `${targetId}${TEXT_BUILD_ID_SEP}c${pIdx}-${cIdx}`,
|
|
15914
|
-
trigger: stepIndex === 0
|
|
15915
|
-
|
|
15916
|
-
|
|
15974
|
+
trigger: stepIndex === 0
|
|
15975
|
+
? anim.trigger
|
|
15976
|
+
: stagger !== undefined
|
|
15977
|
+
? 'withPrevious'
|
|
15978
|
+
: 'afterPrevious',
|
|
15979
|
+
durationMs: stagger !== undefined ? baseDuration : Math.max(50, Math.round(baseDuration / 4)),
|
|
15980
|
+
delayMs: stepIndex === 0 ? (anim.delayMs ?? 0) : (stagger ?? 20),
|
|
15981
|
+
// Only the first sub-step inherits the parent's start delay; the
|
|
15982
|
+
// rest carry the bare stagger, so these must not re-apply it.
|
|
15983
|
+
...(stepIndex === 0 ? {} : { triggerDelayMs: undefined, startConditions: undefined }),
|
|
15917
15984
|
buildType: undefined,
|
|
15985
|
+
iterate: undefined,
|
|
15918
15986
|
});
|
|
15919
15987
|
stepIndex++;
|
|
15920
15988
|
}
|
|
@@ -16574,13 +16642,17 @@ function buildTimeline(nativeAnimations) {
|
|
|
16574
16642
|
const duration = isCommand
|
|
16575
16643
|
? 0
|
|
16576
16644
|
: (singleAnim.durationMs ?? defaultDuration(singleAnim.presetClass));
|
|
16577
|
-
|
|
16645
|
+
// `delayMs`, `triggerDelayMs` and the start condition's delay are three
|
|
16646
|
+
// views of ONE OOXML quantity: when does this effect start. Adding them
|
|
16647
|
+
// double-counts (a 1s delay played at 2s), so take the governing value.
|
|
16648
|
+
const animDelay = Math.max(singleAnim.delayMs ?? 0,
|
|
16578
16649
|
// Use the governing condition delay when conditions were present;
|
|
16579
16650
|
// otherwise fall back to the simple triggerDelayMs (afterDelay) so
|
|
16580
16651
|
// existing single-condition slides are unchanged.
|
|
16581
|
-
|
|
16652
|
+
singleAnim.startConditions && singleAnim.startConditions.length > 0
|
|
16582
16653
|
? effective.delayMs
|
|
16583
|
-
: (singleAnim.triggerDelayMs ?? 0);
|
|
16654
|
+
: (singleAnim.triggerDelayMs ?? 0));
|
|
16655
|
+
const triggerDelay = 0;
|
|
16584
16656
|
const presetClass = isCommand ? 'emph' : (singleAnim.presetClass ?? 'entr');
|
|
16585
16657
|
const fill = fillModeForClass(singleAnim.presetClass);
|
|
16586
16658
|
// Compute repeat / direction
|
|
@@ -16709,14 +16781,11 @@ function countDynamicUids(interactiveAnims) {
|
|
|
16709
16781
|
* delay between consecutive sub-elements.
|
|
16710
16782
|
*/
|
|
16711
16783
|
function expandIterateAnimation(anim) {
|
|
16712
|
-
|
|
16713
|
-
|
|
16714
|
-
|
|
16715
|
-
|
|
16716
|
-
//
|
|
16717
|
-
// iterate expansion is handled at a higher level by the text-build system
|
|
16718
|
-
// when buildType is set. When iterate is present without a matching
|
|
16719
|
-
// buildType, we still return the original to avoid dropping the animation.
|
|
16784
|
+
// Expansion happens upstream, in `expandTextBuildAnimations`: splitting text
|
|
16785
|
+
// needs the target element's paragraph/word/character counts, which the
|
|
16786
|
+
// timeline builder does not have (it only sees animations). By the time an
|
|
16787
|
+
// animation reaches here it has already been split into per-letter or
|
|
16788
|
+
// per-word sub-animations, so there is nothing left to do.
|
|
16720
16789
|
return [anim];
|
|
16721
16790
|
}
|
|
16722
16791
|
/**
|
|
@@ -16748,8 +16817,9 @@ function buildSequenceGroups(animsByKey, entranceIds, neededKeyframes, dynamicBl
|
|
|
16748
16817
|
const elementId = anim.targetId ?? '';
|
|
16749
16818
|
const seqTrigger = anim.trigger ?? 'onShapeClick';
|
|
16750
16819
|
const duration = anim.durationMs ?? defaultDuration(anim.presetClass);
|
|
16751
|
-
|
|
16752
|
-
const
|
|
16820
|
+
// Same single-quantity rule as the main sequence: never sum the two.
|
|
16821
|
+
const animDelay = Math.max(anim.delayMs ?? 0, anim.triggerDelayMs ?? 0);
|
|
16822
|
+
const triggerDelay = 0;
|
|
16753
16823
|
const presetClass = anim.presetClass ?? 'entr';
|
|
16754
16824
|
const fill = fillModeForClass(anim.presetClass);
|
|
16755
16825
|
const iterCount = anim.repeatCount ?? 1;
|
|
@@ -17142,7 +17212,7 @@ class TimelineEngine {
|
|
|
17142
17212
|
function buildSegmentCounts(slide, nativeAnims) {
|
|
17143
17213
|
const segmentCounts = new Map();
|
|
17144
17214
|
for (const anim of nativeAnims) {
|
|
17145
|
-
if (anim
|
|
17215
|
+
if (effectiveTextBuildType(anim) && anim.targetId) {
|
|
17146
17216
|
const el = slide.elements.find((e) => e.id === anim.targetId);
|
|
17147
17217
|
if (el && hasTextProperties(el) && el.textSegments && el.textSegments.length > 0) {
|
|
17148
17218
|
segmentCounts.set(anim.targetId, countTextSegments(el.textSegments));
|
|
@@ -29891,6 +29961,23 @@ function createDepartureChannel(roomId, awareness, factory) {
|
|
|
29891
29961
|
};
|
|
29892
29962
|
}
|
|
29893
29963
|
|
|
29964
|
+
/**
|
|
29965
|
+
* collaboration-writeback.ts: elected-writer (role 'owner') PPTX write-back.
|
|
29966
|
+
*
|
|
29967
|
+
* Only the session owner persists snapshots, eliminating last-save-wins races.
|
|
29968
|
+
* On a debounced trigger it reloads the retained source bytes, overlays the
|
|
29969
|
+
* live Y.Doc slides (optionally merging back a binding's separately-stored
|
|
29970
|
+
* master/layout template elements via `mergeTemplateElements`, so template
|
|
29971
|
+
* edits survive), re-serializes to PPTX bytes, and hands them to
|
|
29972
|
+
* `config.onWriteBack`.
|
|
29973
|
+
*
|
|
29974
|
+
* Framework-agnostic: every binding (Vue, Svelte, Vanilla) shares this single
|
|
29975
|
+
* implementation instead of maintaining its own near-identical copy. A
|
|
29976
|
+
* binding without template-mode editing simply omits `getTemplateElements`/
|
|
29977
|
+
* `mergeTemplateElements`. Angular keeps its own class-based
|
|
29978
|
+
* `WriteBackScheduler` (a different calling convention tied to its DI style),
|
|
29979
|
+
* not a duplicate of this one.
|
|
29980
|
+
*/
|
|
29894
29981
|
const DEFAULT_DEBOUNCE_MS = 5_000;
|
|
29895
29982
|
function createWriteBackScheduler(deps) {
|
|
29896
29983
|
let timer = null;
|
|
@@ -29917,7 +30004,6 @@ function createWriteBackScheduler(deps) {
|
|
|
29917
30004
|
return;
|
|
29918
30005
|
}
|
|
29919
30006
|
try {
|
|
29920
|
-
const { PptxHandler } = await import('pptx-viewer-core');
|
|
29921
30007
|
const handler = new PptxHandler();
|
|
29922
30008
|
await handler.load(sourceBytes.buffer);
|
|
29923
30009
|
const slides = readSlidesFromYDoc(ydoc);
|
|
@@ -37772,6 +37858,122 @@ function notesSegmentsToSpans(segments) {
|
|
|
37772
37858
|
});
|
|
37773
37859
|
}
|
|
37774
37860
|
|
|
37861
|
+
/**
|
|
37862
|
+
* `text-build-spans` - framework-agnostic spec for rendering a staged text
|
|
37863
|
+
* build (by paragraph / word / letter).
|
|
37864
|
+
*
|
|
37865
|
+
* `expandTextBuildAnimations` splits one animation into per-paragraph,
|
|
37866
|
+
* per-word or per-character sub-animations keyed `<elementId>::p0` /
|
|
37867
|
+
* `::w0-3` / `::c0-7`. Something then has to split the RENDERED text the same
|
|
37868
|
+
* way and attach each sub-animation to its own span, or the build has no
|
|
37869
|
+
* visible effect and the whole box fades as one.
|
|
37870
|
+
*
|
|
37871
|
+
* React did that inline in JSX, which left the other four bindings with no
|
|
37872
|
+
* by-letter animation at all. This module returns the split as plain data so
|
|
37873
|
+
* every binding can render it with its own primitives - the same shape as
|
|
37874
|
+
* `notesSegmentsToSpans`.
|
|
37875
|
+
*
|
|
37876
|
+
* @module render/text-build-spans
|
|
37877
|
+
*/
|
|
37878
|
+
/**
|
|
37879
|
+
* Flatten runs into `[character, style]` pairs so a split can carry each
|
|
37880
|
+
* character's own formatting through.
|
|
37881
|
+
*/
|
|
37882
|
+
function charactersWithStyle(runs) {
|
|
37883
|
+
const out = [];
|
|
37884
|
+
for (const run of runs) {
|
|
37885
|
+
for (const ch of run.text) {
|
|
37886
|
+
out.push({ ch, style: run.style });
|
|
37887
|
+
}
|
|
37888
|
+
}
|
|
37889
|
+
return out;
|
|
37890
|
+
}
|
|
37891
|
+
function stateSpan(animId, text, states, style) {
|
|
37892
|
+
const state = states.get(animId);
|
|
37893
|
+
return {
|
|
37894
|
+
animId,
|
|
37895
|
+
text,
|
|
37896
|
+
hidden: state?.visible === false,
|
|
37897
|
+
cssAnimation: state?.cssAnimation,
|
|
37898
|
+
style,
|
|
37899
|
+
};
|
|
37900
|
+
}
|
|
37901
|
+
/**
|
|
37902
|
+
* Resolve how a paragraph should be split, or `undefined` when no staged build
|
|
37903
|
+
* targets it (the overwhelmingly common case - callers render normally then).
|
|
37904
|
+
*
|
|
37905
|
+
* Detection mirrors the ids `expandTextBuildAnimations` emits: a paragraph
|
|
37906
|
+
* build registers `::p<i>`, a word build `::w<i>-0`, a char build `::c<i>-0`.
|
|
37907
|
+
*
|
|
37908
|
+
* @param elementId - The owning element's id.
|
|
37909
|
+
* @param paraIndex - Index of this paragraph within the element's text.
|
|
37910
|
+
* @param runs - The paragraph's styled runs, in order.
|
|
37911
|
+
* @param states - Live sub-element animation states for the slide.
|
|
37912
|
+
*/
|
|
37913
|
+
function buildTextBuildSpec(elementId, paraIndex, runs, states) {
|
|
37914
|
+
if (!states || states.size === 0) {
|
|
37915
|
+
return undefined;
|
|
37916
|
+
}
|
|
37917
|
+
const paraKey = `${elementId}${TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
37918
|
+
const paraState = states.get(paraKey);
|
|
37919
|
+
if (paraState) {
|
|
37920
|
+
return {
|
|
37921
|
+
granularity: 'paragraph',
|
|
37922
|
+
animId: paraKey,
|
|
37923
|
+
hidden: paraState.visible === false,
|
|
37924
|
+
cssAnimation: paraState.cssAnimation,
|
|
37925
|
+
};
|
|
37926
|
+
}
|
|
37927
|
+
const characters = charactersWithStyle(runs);
|
|
37928
|
+
if (states.has(`${elementId}${TEXT_BUILD_ID_SEP}w${paraIndex}-0`)) {
|
|
37929
|
+
const spans = [];
|
|
37930
|
+
let wordIndex = 0;
|
|
37931
|
+
let current = null;
|
|
37932
|
+
// Whitespace stays its own unanimated piece so the paragraph wraps and
|
|
37933
|
+
// spaces exactly as it does unanimated. A word that straddles a run
|
|
37934
|
+
// boundary keeps the style of the run it started in.
|
|
37935
|
+
const flush = () => {
|
|
37936
|
+
if (!current) {
|
|
37937
|
+
return;
|
|
37938
|
+
}
|
|
37939
|
+
spans.push(stateSpan(`${elementId}${TEXT_BUILD_ID_SEP}w${paraIndex}-${wordIndex}`, current.text, states, current.style));
|
|
37940
|
+
wordIndex++;
|
|
37941
|
+
current = null;
|
|
37942
|
+
};
|
|
37943
|
+
for (const { ch, style } of characters) {
|
|
37944
|
+
if (/\s/u.test(ch)) {
|
|
37945
|
+
flush();
|
|
37946
|
+
spans.push({ text: ch, hidden: false, style });
|
|
37947
|
+
continue;
|
|
37948
|
+
}
|
|
37949
|
+
current =
|
|
37950
|
+
current === null ? { text: ch, style } : { text: current.text + ch, style: current.style };
|
|
37951
|
+
}
|
|
37952
|
+
flush();
|
|
37953
|
+
return { granularity: 'word', spans };
|
|
37954
|
+
}
|
|
37955
|
+
if (states.has(`${elementId}${TEXT_BUILD_ID_SEP}c${paraIndex}-0`)) {
|
|
37956
|
+
const spans = characters.map((entry, index) => stateSpan(`${elementId}${TEXT_BUILD_ID_SEP}c${paraIndex}-${index}`, entry.ch, states, entry.style));
|
|
37957
|
+
return { granularity: 'char', spans };
|
|
37958
|
+
}
|
|
37959
|
+
return undefined;
|
|
37960
|
+
}
|
|
37961
|
+
/**
|
|
37962
|
+
* The inline style a {@link TextBuildSpan} (or a paragraph-level spec) needs.
|
|
37963
|
+
* Returned as a plain record so each binding can apply it however it applies
|
|
37964
|
+
* styles; `display: inline` keeps the wrapper from breaking text layout.
|
|
37965
|
+
*/
|
|
37966
|
+
function textBuildSpanStyle(span) {
|
|
37967
|
+
const style = { display: 'inline' };
|
|
37968
|
+
if (span.hidden) {
|
|
37969
|
+
style.visibility = 'hidden';
|
|
37970
|
+
}
|
|
37971
|
+
if (span.cssAnimation) {
|
|
37972
|
+
style.animation = span.cssAnimation;
|
|
37973
|
+
}
|
|
37974
|
+
return style;
|
|
37975
|
+
}
|
|
37976
|
+
|
|
37775
37977
|
const PRESENTER_ZOOM_MIN = 1;
|
|
37776
37978
|
const PRESENTER_ZOOM_MAX = 4;
|
|
37777
37979
|
const PRESENTER_ZOOM_STEP = 0.5;
|
|
@@ -47612,6 +47814,7 @@ const translationsEn = {
|
|
|
47612
47814
|
'pptx.presentation.highlighter': 'Highlighter',
|
|
47613
47815
|
'pptx.presentation.eraser': 'Eraser',
|
|
47614
47816
|
'pptx.presentation.laserPointer': 'Laser Pointer',
|
|
47817
|
+
'pptx.presentation.endOfSlideShow': 'End of slide show, click to exit.',
|
|
47615
47818
|
'pptx.presentation.pointerTools': 'Pointer Options',
|
|
47616
47819
|
// Selection pane
|
|
47617
47820
|
'pptx.selectionPane.title': 'Selection Pane',
|
|
@@ -51972,7 +52175,7 @@ function createLocalStorageBackend(namespace) {
|
|
|
51972
52175
|
/** Try IndexedDB first; fall back to localStorage on any failure. */
|
|
51973
52176
|
async function resolveBackend(dbName, namespace) {
|
|
51974
52177
|
try {
|
|
51975
|
-
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-
|
|
52178
|
+
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-B1LY08QA.mjs');
|
|
51976
52179
|
const db = await openChatDb(dbName);
|
|
51977
52180
|
return createIdbBackend(db);
|
|
51978
52181
|
}
|
|
@@ -54682,7 +54885,6 @@ const WRITE_BACK_DEBOUNCE_MS = 5_000;
|
|
|
54682
54885
|
* handler so package parts the CRDT does not carry (media, fonts, rels) survive.
|
|
54683
54886
|
*/
|
|
54684
54887
|
async function serializeWriteBack(ydoc, sourceBytes, templateElements) {
|
|
54685
|
-
const { PptxHandler } = await import('pptx-viewer-core');
|
|
54686
54888
|
const handler = new PptxHandler();
|
|
54687
54889
|
await handler.load(sourceBytes.buffer);
|
|
54688
54890
|
const slides = buildSaveSlides(readSlidesFromYDoc(ydoc), templateElements);
|
|
@@ -56165,16 +56367,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
56165
56367
|
}], ctorParameters: () => [] });
|
|
56166
56368
|
/**
|
|
56167
56369
|
* Parse digital signatures from a `.pptx` ZIP buffer (best-effort; returns an
|
|
56168
|
-
* empty array when there are none or parsing fails).
|
|
56169
|
-
*
|
|
56170
|
-
*
|
|
56370
|
+
* empty array when there are none or parsing fails). Mirrors the Vue port's
|
|
56371
|
+
* `parseSignaturesFromBuffer`.
|
|
56372
|
+
*
|
|
56373
|
+
* `jszip`/`fast-xml-parser` are imported statically on purpose: `PptxHandler`
|
|
56374
|
+
* (imported above) already pulls both into the same chunk, so a dynamic import
|
|
56375
|
+
* here cannot move them anywhere. It only made bundlers emit
|
|
56376
|
+
* INEFFECTIVE_DYNAMIC_IMPORT.
|
|
56171
56377
|
*/
|
|
56172
56378
|
async function parseSignaturesFromBuffer(buffer) {
|
|
56173
56379
|
try {
|
|
56174
|
-
const [{ default: JSZip }, { XMLParser }] = await Promise.all([
|
|
56175
|
-
import('jszip'),
|
|
56176
|
-
import('fast-xml-parser'),
|
|
56177
|
-
]);
|
|
56178
56380
|
const zip = await JSZip.loadAsync(buffer);
|
|
56179
56381
|
const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_' });
|
|
56180
56382
|
const result = [];
|
|
@@ -67904,6 +68106,31 @@ class ElementRendererComponent {
|
|
|
67904
68106
|
*/
|
|
67905
68107
|
animationState = computed(() => this.playback?.presentationElementStates().get(this.element().id), /* @ts-ignore */
|
|
67906
68108
|
...(ngDevMode ? [{ debugName: "animationState" }] : /* istanbul ignore next */ []));
|
|
68109
|
+
/**
|
|
68110
|
+
* Per-paragraph split for a staged text build (by paragraph / word / letter),
|
|
68111
|
+
* or `undefined` entries to render the runs normally. PowerPoint's "Animate
|
|
68112
|
+
* text: By letter" needs the rendered text split to match the per-character
|
|
68113
|
+
* sub-animations, otherwise the whole box just fades as one.
|
|
68114
|
+
*/
|
|
68115
|
+
textBuildSpecs = computed(() => {
|
|
68116
|
+
const states = this.playback?.presentationElementStates();
|
|
68117
|
+
if (!states || states.size === 0) {
|
|
68118
|
+
return [];
|
|
68119
|
+
}
|
|
68120
|
+
const id = this.element().id;
|
|
68121
|
+
return this.paragraphs().map((para, paraIndex) => buildTextBuildSpec(id, paraIndex, para.runs
|
|
68122
|
+
.filter((run) => run.text !== '\n')
|
|
68123
|
+
.map((run) => ({ text: run.text, style: run.style })), states));
|
|
68124
|
+
}, /* @ts-ignore */
|
|
68125
|
+
...(ngDevMode ? [{ debugName: "textBuildSpecs" }] : /* istanbul ignore next */ []));
|
|
68126
|
+
/** Whole-paragraph text, for the paragraph-level build wrapper. */
|
|
68127
|
+
paragraphText(para) {
|
|
68128
|
+
return para.runs.map((run) => run.text).join('');
|
|
68129
|
+
}
|
|
68130
|
+
/** Style for one build piece, merged over the run's own style. */
|
|
68131
|
+
buildSpanStyle(span) {
|
|
68132
|
+
return { ...(span.style ?? {}), ...textBuildSpanStyle(span) };
|
|
68133
|
+
}
|
|
67907
68134
|
containerStyle = computed(() => ({
|
|
67908
68135
|
...getContainerStyle(this.element(), this.zIndex()),
|
|
67909
68136
|
...this.templateAffordanceStyle(),
|
|
@@ -68276,6 +68503,25 @@ class ElementRendererComponent {
|
|
|
68276
68503
|
>{{ para.bulletMarker }} </span
|
|
68277
68504
|
>
|
|
68278
68505
|
}
|
|
68506
|
+
@if (textBuildSpecs()[$index]; as spec) {
|
|
68507
|
+
<!-- Staged text build: render the split pieces so each one
|
|
68508
|
+
carries its own sub-animation. -->
|
|
68509
|
+
@if (spec.granularity === 'paragraph') {
|
|
68510
|
+
<span
|
|
68511
|
+
[attr.data-anim-id]="spec.animId"
|
|
68512
|
+
[ngStyle]="buildSpanStyle(spec)"
|
|
68513
|
+
>{{ paragraphText(para) }}</span
|
|
68514
|
+
>
|
|
68515
|
+
} @else {
|
|
68516
|
+
@for (span of spec.spans ?? []; track $index) {
|
|
68517
|
+
<span
|
|
68518
|
+
[attr.data-anim-id]="span.animId"
|
|
68519
|
+
[ngStyle]="buildSpanStyle(span)"
|
|
68520
|
+
>{{ span.text }}</span
|
|
68521
|
+
>
|
|
68522
|
+
}
|
|
68523
|
+
}
|
|
68524
|
+
} @else {
|
|
68279
68525
|
@for (run of para.runs; track $index) {
|
|
68280
68526
|
@if (run.equationXml) {
|
|
68281
68527
|
<pptx-equation-renderer
|
|
@@ -68302,6 +68548,7 @@ class ElementRendererComponent {
|
|
|
68302
68548
|
<span [ngStyle]="run.style">{{ run.text }}</span>
|
|
68303
68549
|
}
|
|
68304
68550
|
}
|
|
68551
|
+
}
|
|
68305
68552
|
</p>
|
|
68306
68553
|
}
|
|
68307
68554
|
</div>
|
|
@@ -68616,6 +68863,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
68616
68863
|
>{{ para.bulletMarker }} </span
|
|
68617
68864
|
>
|
|
68618
68865
|
}
|
|
68866
|
+
@if (textBuildSpecs()[$index]; as spec) {
|
|
68867
|
+
<!-- Staged text build: render the split pieces so each one
|
|
68868
|
+
carries its own sub-animation. -->
|
|
68869
|
+
@if (spec.granularity === 'paragraph') {
|
|
68870
|
+
<span
|
|
68871
|
+
[attr.data-anim-id]="spec.animId"
|
|
68872
|
+
[ngStyle]="buildSpanStyle(spec)"
|
|
68873
|
+
>{{ paragraphText(para) }}</span
|
|
68874
|
+
>
|
|
68875
|
+
} @else {
|
|
68876
|
+
@for (span of spec.spans ?? []; track $index) {
|
|
68877
|
+
<span
|
|
68878
|
+
[attr.data-anim-id]="span.animId"
|
|
68879
|
+
[ngStyle]="buildSpanStyle(span)"
|
|
68880
|
+
>{{ span.text }}</span
|
|
68881
|
+
>
|
|
68882
|
+
}
|
|
68883
|
+
}
|
|
68884
|
+
} @else {
|
|
68619
68885
|
@for (run of para.runs; track $index) {
|
|
68620
68886
|
@if (run.equationXml) {
|
|
68621
68887
|
<pptx-equation-renderer
|
|
@@ -68642,6 +68908,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
68642
68908
|
<span [ngStyle]="run.style">{{ run.text }}</span>
|
|
68643
68909
|
}
|
|
68644
68910
|
}
|
|
68911
|
+
}
|
|
68645
68912
|
</p>
|
|
68646
68913
|
}
|
|
68647
68914
|
</div>
|
|
@@ -78070,6 +78337,22 @@ function fitZoom(canvasW, canvasH, vw, vh) {
|
|
|
78070
78337
|
}
|
|
78071
78338
|
return Math.min(vw / canvasW, vh / canvasH);
|
|
78072
78339
|
}
|
|
78340
|
+
/**
|
|
78341
|
+
* Whether a visible (non-hidden) slide exists strictly AFTER `current`.
|
|
78342
|
+
*
|
|
78343
|
+
* `nextVisibleIndex` wraps modulo the deck length, which makes a show loop for
|
|
78344
|
+
* ever. PowerPoint only loops when "Loop continuously until Esc" is set;
|
|
78345
|
+
* otherwise running past the last slide ends the show. Callers use this to tell
|
|
78346
|
+
* "there is a next slide" from "we just wrapped".
|
|
78347
|
+
*/
|
|
78348
|
+
function hasVisibleSlideAfter(current, slides) {
|
|
78349
|
+
for (let index = current + 1; index < slides.length; index++) {
|
|
78350
|
+
if (!slides[index].hidden) {
|
|
78351
|
+
return true;
|
|
78352
|
+
}
|
|
78353
|
+
}
|
|
78354
|
+
return false;
|
|
78355
|
+
}
|
|
78073
78356
|
|
|
78074
78357
|
/** Compatibility barrel for shared live-caption helpers and structural types. */
|
|
78075
78358
|
|
|
@@ -78599,6 +78882,14 @@ class PresentationOverlayComponent {
|
|
|
78599
78882
|
/** PowerPoint's Ctrl+M: hide ink markup without discarding the strokes. */
|
|
78600
78883
|
inkMarkupVisible = signal(true, /* @ts-ignore */
|
|
78601
78884
|
...(ngDevMode ? [{ debugName: "inkMarkupVisible" }] : /* istanbul ignore next */ []));
|
|
78885
|
+
/**
|
|
78886
|
+
* True once the show has run past its last slide and the black "End of slide
|
|
78887
|
+
* show" screen is up. It MUST be surfaced: while it is up the next input
|
|
78888
|
+
* either goes nowhere (backward) or ends the show (forward), so a deck that
|
|
78889
|
+
* kept painting its last slide looked stuck and swallowed every advance.
|
|
78890
|
+
*/
|
|
78891
|
+
endOfShow = signal(false, /* @ts-ignore */
|
|
78892
|
+
...(ngDevMode ? [{ debugName: "endOfShow" }] : /* istanbul ignore next */ []));
|
|
78602
78893
|
syncExternalIndex = effect(() => {
|
|
78603
78894
|
const count = this.slides().length;
|
|
78604
78895
|
if (count === 0) {
|
|
@@ -79059,6 +79350,12 @@ class PresentationOverlayComponent {
|
|
|
79059
79350
|
}
|
|
79060
79351
|
this.navigate('next');
|
|
79061
79352
|
}
|
|
79353
|
+
/** Click on the end screen: exit the show, like PowerPoint's "click to exit". */
|
|
79354
|
+
onEndScreenClick(event) {
|
|
79355
|
+
event.stopPropagation();
|
|
79356
|
+
this.endOfShow.set(false);
|
|
79357
|
+
this.emitClosed();
|
|
79358
|
+
}
|
|
79062
79359
|
/** Toggle an annotation tool (clicking the active one disarms it). */
|
|
79063
79360
|
selectTool(tool) {
|
|
79064
79361
|
this.annotations.setTool(tool);
|
|
@@ -79110,6 +79407,15 @@ class PresentationOverlayComponent {
|
|
|
79110
79407
|
if (count === 0) {
|
|
79111
79408
|
return;
|
|
79112
79409
|
}
|
|
79410
|
+
// While the end screen is up a forward input ends the show (PowerPoint's
|
|
79411
|
+
// "click to exit") and a backward input just dismisses it.
|
|
79412
|
+
if (this.endOfShow()) {
|
|
79413
|
+
this.endOfShow.set(false);
|
|
79414
|
+
if (direction === 'next') {
|
|
79415
|
+
this.emitClosed();
|
|
79416
|
+
}
|
|
79417
|
+
return;
|
|
79418
|
+
}
|
|
79113
79419
|
// On forward navigation, first reveal the next click-group of element
|
|
79114
79420
|
// animations; only advance the slide once the slide's builds are exhausted.
|
|
79115
79421
|
if (direction === 'next' && this.playback.advance()) {
|
|
@@ -79131,6 +79437,13 @@ class PresentationOverlayComponent {
|
|
|
79131
79437
|
next = clampIndex(count - 1, count);
|
|
79132
79438
|
break;
|
|
79133
79439
|
}
|
|
79440
|
+
if (direction === 'next' && !hasVisibleSlideAfter(current, slides)) {
|
|
79441
|
+
// Nothing further to advance to. `nextVisibleIndex` would wrap back to
|
|
79442
|
+
// the first slide and loop for ever; PowerPoint only loops when "Loop
|
|
79443
|
+
// continuously until Esc" is set, so end the show instead.
|
|
79444
|
+
this.endOfShow.set(true);
|
|
79445
|
+
return;
|
|
79446
|
+
}
|
|
79134
79447
|
if (next !== current) {
|
|
79135
79448
|
// Play the incoming slide's transition (if any) over the new slide,
|
|
79136
79449
|
// animating the outgoing slide out. Forward navigation only, matching
|
|
@@ -79191,6 +79504,21 @@ class PresentationOverlayComponent {
|
|
|
79191
79504
|
{{ counterLabel() }}
|
|
79192
79505
|
</span>
|
|
79193
79506
|
|
|
79507
|
+
<!-- Black "End of slide show" screen: the show has run past its last
|
|
79508
|
+
slide. It MUST be visible - while it is up the next input either
|
|
79509
|
+
goes nowhere (backward) or ends the show (forward), so a deck that
|
|
79510
|
+
kept painting the last slide looked stuck and swallowed advances. -->
|
|
79511
|
+
@if (endOfShow()) {
|
|
79512
|
+
<button
|
|
79513
|
+
type="button"
|
|
79514
|
+
class="pptx-ng-presentation-end"
|
|
79515
|
+
data-pptx-end-of-show
|
|
79516
|
+
(click)="onEndScreenClick($event)"
|
|
79517
|
+
>
|
|
79518
|
+
<span>{{ 'pptx.presentation.endOfSlideShow' | translate }}</span>
|
|
79519
|
+
</button>
|
|
79520
|
+
}
|
|
79521
|
+
|
|
79194
79522
|
<div
|
|
79195
79523
|
#stage
|
|
79196
79524
|
class="pptx-ng-presentation-stage"
|
|
@@ -79333,7 +79661,7 @@ class PresentationOverlayComponent {
|
|
|
79333
79661
|
<svg lucideChevronRight class="h-6 w-6"></svg>
|
|
79334
79662
|
</button>
|
|
79335
79663
|
</div>
|
|
79336
|
-
`, 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}.presenter-blank{position:absolute;inset:0;z-index:75}.presenter-laser{position:absolute;z-index:76;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:#ef4444;box-shadow:0 0 20px 8px #ef444488;pointer-events:none}.presenter-caption{position:absolute;z-index:77;left:10%;right:10%;bottom:2rem;padding:.75rem 1.5rem;border-radius:.5rem;background:#000c;color:#fff;text-align:center;font-size:1.25rem;pointer-events: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", "snapToShape", "guideCommand", "spellCheck", "snapToGuides", "autoFit", "interactive", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "aiHighlights", "aiActive", "aiActiveSlideIndex", "aiChangeBatch", "aiPickMode", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textInput", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresentationTransitionOverlayComponent, selector: "pptx-presentation-transition-overlay", inputs: ["outgoingSlide", "canvasSize", "transition", "templateElements", "mediaDataUrls", "durationMs", "zoom"], 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 });
|
|
79664
|
+
`, 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}.presenter-blank{position:absolute;inset:0;z-index:75}.pptx-ng-presentation-end{position:absolute;inset:0;z-index:90;display:flex;align-items:flex-start;border:0;padding:0;background:#000;text-align:left;cursor:default}.pptx-ng-presentation-end span{padding:.75rem 1rem;color:#ffffffb3;font-size:12px}.presenter-laser{position:absolute;z-index:76;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:#ef4444;box-shadow:0 0 20px 8px #ef444488;pointer-events:none}.presenter-caption{position:absolute;z-index:77;left:10%;right:10%;bottom:2rem;padding:.75rem 1.5rem;border-radius:.5rem;background:#000c;color:#fff;text-align:center;font-size:1.25rem;pointer-events: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", "snapToShape", "guideCommand", "spellCheck", "snapToGuides", "autoFit", "interactive", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "aiHighlights", "aiActive", "aiActiveSlideIndex", "aiChangeBatch", "aiPickMode", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textInput", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresentationTransitionOverlayComponent, selector: "pptx-presentation-transition-overlay", inputs: ["outgoingSlide", "canvasSize", "transition", "templateElements", "mediaDataUrls", "durationMs", "zoom"], 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 });
|
|
79337
79665
|
}
|
|
79338
79666
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PresentationOverlayComponent, decorators: [{
|
|
79339
79667
|
type: Component,
|
|
@@ -79364,6 +79692,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
79364
79692
|
{{ counterLabel() }}
|
|
79365
79693
|
</span>
|
|
79366
79694
|
|
|
79695
|
+
<!-- Black "End of slide show" screen: the show has run past its last
|
|
79696
|
+
slide. It MUST be visible - while it is up the next input either
|
|
79697
|
+
goes nowhere (backward) or ends the show (forward), so a deck that
|
|
79698
|
+
kept painting the last slide looked stuck and swallowed advances. -->
|
|
79699
|
+
@if (endOfShow()) {
|
|
79700
|
+
<button
|
|
79701
|
+
type="button"
|
|
79702
|
+
class="pptx-ng-presentation-end"
|
|
79703
|
+
data-pptx-end-of-show
|
|
79704
|
+
(click)="onEndScreenClick($event)"
|
|
79705
|
+
>
|
|
79706
|
+
<span>{{ 'pptx.presentation.endOfSlideShow' | translate }}</span>
|
|
79707
|
+
</button>
|
|
79708
|
+
}
|
|
79709
|
+
|
|
79367
79710
|
<div
|
|
79368
79711
|
#stage
|
|
79369
79712
|
class="pptx-ng-presentation-stage"
|
|
@@ -79506,7 +79849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
79506
79849
|
<svg lucideChevronRight class="h-6 w-6"></svg>
|
|
79507
79850
|
</button>
|
|
79508
79851
|
</div>
|
|
79509
|
-
`, 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}.presenter-blank{position:absolute;inset:0;z-index:75}.presenter-laser{position:absolute;z-index:76;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:#ef4444;box-shadow:0 0 20px 8px #ef444488;pointer-events:none}.presenter-caption{position:absolute;z-index:77;left:10%;right:10%;bottom:2rem;padding:.75rem 1.5rem;border-radius:.5rem;background:#000c;color:#fff;text-align:center;font-size:1.25rem;pointer-events:none}\n"] }]
|
|
79852
|
+
`, 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}.presenter-blank{position:absolute;inset:0;z-index:75}.pptx-ng-presentation-end{position:absolute;inset:0;z-index:90;display:flex;align-items:flex-start;border:0;padding:0;background:#000;text-align:left;cursor:default}.pptx-ng-presentation-end span{padding:.75rem 1rem;color:#ffffffb3;font-size:12px}.presenter-laser{position:absolute;z-index:76;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:#ef4444;box-shadow:0 0 20px 8px #ef444488;pointer-events:none}.presenter-caption{position:absolute;z-index:77;left:10%;right:10%;bottom:2rem;padding:.75rem 1.5rem;border-radius:.5rem;background:#000c;color:#fff;text-align:center;font-size:1.25rem;pointer-events:none}\n"] }]
|
|
79510
79853
|
}], 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 }] }], showWithAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWithAnimation", required: false }] }], subtitlesVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitlesVisible", required: false }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], closed: [{ type: i0.Output, args: ["closed"] }], subtitlesChange: [{ type: i0.Output, args: ["subtitlesChange"] }], annotationsExit: [{ type: i0.Output, args: ["annotationsExit"] }], stageRef: [{ type: i0.ViewChild, args: ['stage', { isSignal: true }] }], rootRef: [{ type: i0.ViewChild, args: ['root', { isSignal: true }] }], onFullscreenChange: [{
|
|
79511
79854
|
type: HostListener,
|
|
79512
79855
|
args: ['document:fullscreenchange']
|
|
@@ -79697,6 +80040,20 @@ class PresenterViewComponent {
|
|
|
79697
80040
|
...(ngDevMode ? [{ debugName: "progressValue" }] : /* istanbul ignore next */ []));
|
|
79698
80041
|
slideBadge = computed(() => slideLabel(this.currentSlideIndex(), this.slides().length), /* @ts-ignore */
|
|
79699
80042
|
...(ngDevMode ? [{ debugName: "slideBadge" }] : /* istanbul ignore next */ []));
|
|
80043
|
+
/**
|
|
80044
|
+
* Clicking the current-slide pane advances the show, the way PowerPoint's
|
|
80045
|
+
* presenter console does: it is how presenters actually drive a deck, with
|
|
80046
|
+
* the Next button and the keyboard as fallbacks. A drawing tool owns the
|
|
80047
|
+
* pointer instead, so clicking then annotates rather than jumping the deck
|
|
80048
|
+
* out from under the stroke.
|
|
80049
|
+
*/
|
|
80050
|
+
paneAdvancesOnClick = computed(() => presenterPaneAdvancesOnClick(this.presenterWindow.snapshot().pointer?.tool), /* @ts-ignore */
|
|
80051
|
+
...(ngDevMode ? [{ debugName: "paneAdvancesOnClick" }] : /* istanbul ignore next */ []));
|
|
80052
|
+
onSlidePaneClick() {
|
|
80053
|
+
if (this.paneAdvancesOnClick()) {
|
|
80054
|
+
this.movePresentationSlide.emit(1);
|
|
80055
|
+
}
|
|
80056
|
+
}
|
|
79700
80057
|
counterLabel = computed(() => slideCounter(this.currentSlideIndex(), this.slides().length), /* @ts-ignore */
|
|
79701
80058
|
...(ngDevMode ? [{ debugName: "counterLabel" }] : /* istanbul ignore next */ []));
|
|
79702
80059
|
notesBodyStyle = computed(() => ({
|
|
@@ -79750,7 +80107,13 @@ class PresenterViewComponent {
|
|
|
79750
80107
|
/>
|
|
79751
80108
|
<div class="pptx-ng-presenter-body">
|
|
79752
80109
|
<!-- Current slide (≈70%) -->
|
|
79753
|
-
<div
|
|
80110
|
+
<div
|
|
80111
|
+
class="pptx-ng-presenter-current"
|
|
80112
|
+
[class.pptx-ng-presenter-current--advances]="paneAdvancesOnClick()"
|
|
80113
|
+
role="presentation"
|
|
80114
|
+
data-pptx-presenter-slide
|
|
80115
|
+
(click)="onSlidePaneClick()"
|
|
80116
|
+
>
|
|
79754
80117
|
<div class="pptx-ng-presenter-preview-stage">
|
|
79755
80118
|
<pptx-slide-canvas
|
|
79756
80119
|
[slide]="currentPreviewSlide()"
|
|
@@ -79919,7 +80282,7 @@ class PresenterViewComponent {
|
|
|
79919
80282
|
} @else {
|
|
79920
80283
|
<div class="pptx-ng-presenter-empty">{{ 'pptx.presenter.noSlides' | translate }}</div>
|
|
79921
80284
|
}
|
|
79922
|
-
`, isInline: true, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background
|
|
80285
|
+
`, isInline: true, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:var(--pptx-card, #0b0b0c);color:var(--pptx-foreground, #f5f5f5);font-family:system-ui,sans-serif}.pptx-ng-presenter-body{display:flex;flex:1 1 auto;min-height:0}.pptx-ng-presenter-current--advances{cursor:pointer}.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:var(--pptx-background, #18181b);border-left:1px solid var(--pptx-border, 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 var(--pptx-border, rgba(255, 255, 255, .12))}.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:var(--pptx-muted-foreground, rgba(255, 255, 255, .55))}.pptx-ng-presenter-clock{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:1.125rem}.pptx-ng-presenter-elapsed{color:var(--pptx-primary, #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:var(--pptx-foreground, rgba(255, 255, 255, .7));cursor:pointer;font-size:1rem;line-height:1}.pptx-ng-presenter-iconbtn:hover{background:var(--pptx-secondary, rgba(255, 255, 255, .1));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:var(--pptx-secondary, rgba(255, 255, 255, .08));color:var(--pptx-foreground, #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 var(--pptx-border, rgba(255, 255, 255, .12));border-radius:6px;background:var(--pptx-muted, rgba(255, 255, 255, .04));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:var(--pptx-muted-foreground, rgba(255, 255, 255, .55));-webkit-user-select:none;user-select:none}.pptx-ng-presenter-notes-body{flex:1 1 auto;overflow-y:auto;border:1px solid var(--pptx-border, rgba(255, 255, 255, .12));border-radius:6px;background:var(--pptx-muted, rgba(255, 255, 255, .04));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", "snapToShape", "guideCommand", "spellCheck", "snapToGuides", "autoFit", "interactive", "presenting", "selectedIds", "editingId", "editTemplateMode", "templateElements", "aiHighlights", "aiActive", "aiActiveSlideIndex", "aiChangeBatch", "aiPickMode", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textInput", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresenterControlsComponent, selector: "pptx-presenter-controls", inputs: ["snapshot", "audienceOpen", "slides", "current", "canvasSize", "mediaDataUrls"], outputs: ["patch", "navigate", "audience", "end"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
79923
80286
|
}
|
|
79924
80287
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PresenterViewComponent, decorators: [{
|
|
79925
80288
|
type: Component,
|
|
@@ -79939,7 +80302,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
79939
80302
|
/>
|
|
79940
80303
|
<div class="pptx-ng-presenter-body">
|
|
79941
80304
|
<!-- Current slide (≈70%) -->
|
|
79942
|
-
<div
|
|
80305
|
+
<div
|
|
80306
|
+
class="pptx-ng-presenter-current"
|
|
80307
|
+
[class.pptx-ng-presenter-current--advances]="paneAdvancesOnClick()"
|
|
80308
|
+
role="presentation"
|
|
80309
|
+
data-pptx-presenter-slide
|
|
80310
|
+
(click)="onSlidePaneClick()"
|
|
80311
|
+
>
|
|
79943
80312
|
<div class="pptx-ng-presenter-preview-stage">
|
|
79944
80313
|
<pptx-slide-canvas
|
|
79945
80314
|
[slide]="currentPreviewSlide()"
|
|
@@ -80108,7 +80477,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
80108
80477
|
} @else {
|
|
80109
80478
|
<div class="pptx-ng-presenter-empty">{{ 'pptx.presenter.noSlides' | translate }}</div>
|
|
80110
80479
|
}
|
|
80111
|
-
`, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background
|
|
80480
|
+
`, styles: [":host{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:var(--pptx-card, #0b0b0c);color:var(--pptx-foreground, #f5f5f5);font-family:system-ui,sans-serif}.pptx-ng-presenter-body{display:flex;flex:1 1 auto;min-height:0}.pptx-ng-presenter-current--advances{cursor:pointer}.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:var(--pptx-background, #18181b);border-left:1px solid var(--pptx-border, 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 var(--pptx-border, rgba(255, 255, 255, .12))}.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:var(--pptx-muted-foreground, rgba(255, 255, 255, .55))}.pptx-ng-presenter-clock{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:1.125rem}.pptx-ng-presenter-elapsed{color:var(--pptx-primary, #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:var(--pptx-foreground, rgba(255, 255, 255, .7));cursor:pointer;font-size:1rem;line-height:1}.pptx-ng-presenter-iconbtn:hover{background:var(--pptx-secondary, rgba(255, 255, 255, .1));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:var(--pptx-secondary, rgba(255, 255, 255, .08));color:var(--pptx-foreground, #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 var(--pptx-border, rgba(255, 255, 255, .12));border-radius:6px;background:var(--pptx-muted, rgba(255, 255, 255, .04));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:var(--pptx-muted-foreground, rgba(255, 255, 255, .55));-webkit-user-select:none;user-select:none}.pptx-ng-presenter-notes-body{flex:1 1 auto;overflow-y:auto;border:1px solid var(--pptx-border, rgba(255, 255, 255, .12));border-radius:6px;background:var(--pptx-muted, rgba(255, 255, 255, .04));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"] }]
|
|
80112
80481
|
}], ctorParameters: () => [], propDecorators: { slides: [{ type: i0.Input, args: [{ isSignal: true, alias: "slides", required: true }] }], currentSlideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSlideIndex", required: true }] }], canvasSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "canvasSize", required: true }] }], templateElements: [{ type: i0.Input, args: [{ isSignal: true, alias: "templateElements", required: false }] }], mediaDataUrls: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaDataUrls", required: false }] }], presentationStartTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "presentationStartTime", required: false }] }], isAudienceWindowOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAudienceWindowOpen", required: false }] }], movePresentationSlide: [{ type: i0.Output, args: ["movePresentationSlide"] }], exit: [{ type: i0.Output, args: ["exit"] }], openAudienceWindow: [{ type: i0.Output, args: ["openAudienceWindow"] }], closeAudienceWindow: [{ type: i0.Output, args: ["closeAudienceWindow"] }], navigateToSlide: [{ type: i0.Output, args: ["navigateToSlide"] }] } });
|
|
80113
80482
|
|
|
80114
80483
|
/**
|
|
@@ -84146,7 +84515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
84146
84515
|
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }] } });
|
|
84147
84516
|
|
|
84148
84517
|
// Generated by scripts/inline-shared.mjs from package.json. Do not edit.
|
|
84149
|
-
const PPTX_ANGULAR_VIEWER_VERSION = "2.
|
|
84518
|
+
const PPTX_ANGULAR_VIEWER_VERSION = "2.3.0";
|
|
84150
84519
|
|
|
84151
84520
|
/**
|
|
84152
84521
|
* account-page.component.ts: File > Account content.
|
|
@@ -112965,5 +113334,5 @@ function cn(...values) {
|
|
|
112965
113334
|
* Generated bundle index. Do not edit.
|
|
112966
113335
|
*/
|
|
112967
113336
|
|
|
112968
|
-
export { DATA_TABLE_KEY_W as $, ALIGN_OPTIONS as A, BroadcastDialogComponent as B, CHART_EDITOR_STYLES as C, ChartAxisOptionsComponent as D, ChartAxisStyleOptionsComponent as E, ChartComboTypeOptionsComponent as F, ChartDataEditorComponent as G, ChartDataLabelOptionsComponent as H, ChartDatapointOptionsComponent as I, ChartDisplayOptionsComponent as J, ChartElementViewComponent as K, ChartErrorBarOptionsComponent as L, ChartMarkerOptionsComponent as M, ChartPartSelectionService as N, ChartPrimitivesComponent as O, ChartRendererComponent as P, ChartTrendlineOptionsComponent as Q, CollaborationCursorsComponent as R, CollaborationService as S, ColorChangedImageComponent as T, CommentsPanelComponent as U, CommentsService as V, ComparePanelComponent as W, ConnectorRendererComponent as X, ConnectorTextOverlayComponent as Y, CustomShowsComponent as Z, DATA_TABLE_HEADER_H as _, AUDIENCE_HASH as a, MIN_ZOOM_SCALE as a$, DATA_TABLE_PADDING as a0, DATA_TABLE_ROW_H as a1, DEFAULT_BOUNDS as a2, DEFAULT_BROADCAST_SERVER_URL as a3, DEFAULT_CANVAS_HEIGHT as a4, DEFAULT_CANVAS_WIDTH as a5, DEFAULT_COLOR_SCHEME as a6, DEFAULT_FILL_COLOR as a7, DEFAULT_LAYOUT as a8, DEFAULT_PALETTE$1 as a9, ExportProgressModalComponent as aA, ExportService as aB, FieldContextService as aC, FindBarComponent as aD, FindReplaceBarComponent as aE, FollowModeBarComponent as aF, FontEmbeddingListComponent as aG, FontEmbeddingPanelComponent as aH, GALLERY_THEME_PRESETS as aI, GradientPickerComponent as aJ, HANDOUT_OPTIONS as aK, HeaderFooterDialogComponent as aL, HyperlinkDialogComponent as aM, ImagePropertiesPanelComponent as aN, InkDrawingService as aO, InkRendererComponent as aP, InsertSmartArtDialogComponent as aQ, InspectorPaneHeaderComponent as aR, InspectorPanelComponent as aS, IsMobileService as aT, KeepAnnotationsDialogComponent as aU, LOCALE_CATALOG as aV, LONG_PRESS_DURATION_MS as aW, LONG_PRESS_MOVE_TOLERANCE_PX as aX, LoadContentService as aY, LocalPresencePublisher as aZ, MAX_ZOOM_SCALE as a_, DEFAULT_PRINT_SETTINGS as aa, DEFAULT_SLIDE_BACKGROUND as ab, DEFAULT_STROKE_COLOR as ac, DEFAULT_STYLE as ad, DEFAULT_TABLE_ROW_HEIGHT as ae, DEFAULT_TEXT_COLOR$1 as af, DEFAULT_VIEWER_PROFILE as ag, DIRECTIONAL_PRESETS as ah, DIRECTION_OPTIONS as ai, DocumentPropertiesCardComponent as aj, EMBEDDED_FONTS_STYLE_ID as ak, EMPHASIS_PRESETS as al, ENTRANCE_PRESETS as am, TEMPLATES as an, EXIT_PRESETS as ao, EditorContextMenuComponent as ap, EditorHistory as aq, EditorStateService as ar, EditorToolbarComponent as as, EffectsPanelComponent as at, ElementRendererComponent as au, EmbeddedFontsService as av, EncryptedFileDialogComponent as aw, EquationEditorDialogComponent as ax, EquationRendererComponent as ay, EquationTemplateGalleryComponent as az, AUDIENCE_NONCE_KEY as b, SLIDE_PX_PER_INCH as b$, MediaPreviewComponent as b0, MediaPropertiesPanelComponent as b1, MediaRendererComponent as b2, MediaTrimTimelineComponent as b3, MobileBottomBarComponent as b4, MobileMenuSheetComponent as b5, MobilePresenterViewComponent as b6, MobileSheetComponent as b7, MobileSlidesSheetComponent as b8, MobileToolbarComponent as b9, RESIZE_HANDLES as bA, RULER_THICKNESS as bB, RemoteSelectionOverlayComponent as bC, RibbonAnimationsSectionComponent as bD, RibbonArrangeSectionComponent as bE, RibbonColorPopoverComponent as bF, RibbonComponent as bG, RibbonDesignSectionComponent as bH, RibbonDrawSectionComponent as bI, RibbonDrawingGroupComponent as bJ, RibbonEditingSectionComponent as bK, RibbonFileSectionComponent as bL, RibbonFontControlsComponent as bM, RibbonHomeSectionComponent as bN, RibbonInsertFieldsComponent as bO, RibbonInsertSectionComponent as bP, RibbonParagraphControlsComponent as bQ, RibbonPrimaryRowComponent as bR, RibbonReviewSectionComponent as bS, RibbonSlideshowSectionComponent as bT, RibbonTransitionsSectionComponent as bU, RibbonViewSectionComponent as bV, RulerGuidesService as bW, SEQUENCE_OPTIONS as bX, SEVERITY_GROUPS as bY, SEVERITY_LABELS as bZ, SHORTCUT_REFERENCE_ITEMS as b_, ModalDialogComponent as ba, Model3DRendererComponent as bb, NotesHandoutCardComponent as bc, NotesPanelComponent as bd, NotesToolbarComponent as be, OleRendererComponent as bf, POWER_POINT_VIEWER_PROVIDERS as bg, PRESENTER_CHANNEL_NAME as bh, PRESENTER_MSG_ORIGIN as bi, PasswordProtectionDialogComponent as bj, PasswordStrengthMeterComponent as bk, PowerPointViewerComponent as bl, PresentationAnnotationOverlayComponent as bm, PresentationAnnotationsService as bn, PresentationOverlayComponent as bo, PresentationPropertiesPanelComponent as bp, PresentationSettingsCardComponent as bq, PresentationSubtitleBarComponent as br, PresentationTransitionOverlayComponent as bs, PresenterViewComponent as bt, PresenterWindowService as bu, PrintDialogComponent as bv, PrintService as bw, PrintSettingsPanelComponent as bx, PropertiesDialogComponent as by, REPEAT_MODE_OPTIONS as bz, AVATAR_COLOR_SWATCHES as c, ViewerDocumentPropertiesService as c$, SLIDE_TRANSITION_KEYFRAMES as c0, DEFAULT_PALETTE as c1, PALETTES$1 as c2, SMART_ART_COLOR_SCHEMES as c3, SMART_ART_STYLE_OPTIONS as c4, SUB_ITEM_LABEL as c5, SVG_WARP_PRESETS as c6, SWIPE_MAX_VERTICAL_PX as c7, SWIPE_THRESHOLD_PX as c8, SelectionPaneComponent as c9, TABLE_STRUCTURE_TOGGLES as cA, TEXT_DIRECTION_OPTIONS$1 as cB, THEME_CATALOG as cC, TIMING_CURVE_OPTIONS as cD, TRIGGER_OPTIONS as cE, TYPE_LABELS as cF, TableCellAdvancedFillComponent as cG, TableCellFormattingComponent as cH, TableDataEditorComponent as cI, TablePropertiesComponent as cJ, TableRendererComponent as cK, TableResizeOverlayComponent as cL, TableSelectionService as cM, TextAdvancedPanelComponent as cN, ThemeEditorFieldsComponent as cO, ThemeGalleryComponent as cP, ThemeSelectorCardComponent as cQ, TitleBarComponent as cR, VALIGN_OPTIONS as cS, VIEWER_THEME as cT, VersionHistoryPanelComponent as cU, ViewerCanvasEditingService as cV, ViewerCollabCursorService as cW, ViewerCollaborationSessionService as cX, ViewerCompareService as cY, ViewerCustomShowsService as cZ, ViewerDialogsService as c_, SetUpSlideShowDialogComponent as ca, SettingsAppearanceTabComponent as cb, SettingsDialogComponent as cc, SettingsLanguageTabComponent as cd, ShareDialogComponent as ce, ShortcutPanelComponent as cf, ShowOptionsFieldsetComponent as cg, ShowSlidesFieldsetComponent as ch, SignatureStrippedDialogComponent as ci, SignaturesPanelComponent as cj, SignaturesService as ck, SlideCanvasComponent as cl, SlideDefaultInspectorComponent as cm, SlideDiffChangesComponent as cn, SlideDiffRowComponent as co, SlideDiffThumbnailsComponent as cp, SlideSizeCardComponent as cq, SlideSorterOverlayComponent as cr, SlideThemeOverridePanelComponent as cs, SlidesPanelComponent as ct, SmartArt3DRendererComponent as cu, SmartArt3DService as cv, SmartArtPreviewComponent as cw, SmartArtPropertiesComponent as cx, SmartArtRendererComponent as cy, StatusBarComponent as cz, AccessibilityPanelComponent as d, buildFallbackViewModel as d$, ViewerExportService as d0, ViewerExtraDialogsComponent as d1, ViewerFileIOService as d2, ViewerFindReplaceService as d3, ViewerFormatPainterService as d4, ViewerInspectorPanelService as d5, ViewerKeyboardService as d6, ViewerMobileSheetService as d7, ViewerPresentationModeService as d8, ViewerThemeGalleryService as d9, asMediaElement as dA, assignUserColor as dB, attachTouchGestures as dC, beginNodeEdit as dD, boolFromEvent as dE, bringForward as dF, bringToFront as dG, buildBarActions as dH, buildBroadcastConfig as dI, buildBroadcastViewerUrl as dJ, buildCategoryLabels as dK, buildCellParagraphs as dL, buildChartViewModel as dM, buildChatLogExport as dN, buildChatLogMarkdown as dO, buildChromeStyle as dP, buildClearHyperlinkPatch as dQ, buildClickGroups as dR, buildColStyles as dS, buildCollaborationConfig as dT, buildComboViewModel as dU, buildCssGradientFromShapeStyle as dV, buildDuotoneFilter as dW, buildDuotoneFilterId as dX, buildEmbeddedFontStyles as dY, buildEquationElement as dZ, buildEquationSegment as d_, ViewerTouchGesturesService as da, ViewerZoomService as db, WEBM_MIME_CANDIDATES as dc, WriteBackScheduler as dd, ZoomNavigationService as de, ZoomRendererComponent as df, ZoomTargetService as dg, addCategory as dh, addCommentToList as di, addGradientStopPatch as dj, addItem as dk, addSeries as dl, addSubItem as dm, advanceStep as dn, aiToggleVisible as dp, alignPatch as dq, animationFor as dr, annotationMapToInkInserts as ds, applyAcceptedDiff as dt, applyAnimationPreset as du, applyFindReplacements as dv, applyFormatToElement as dw, applyMove as dx, applyResize as dy, applyTableStylePreset as dz, AccessibilityService as e, computeDataTablePrimitives as e$, buildFontFaceRule as e0, buildGradientFillCss as e1, buildGridlinesAndLabels as e2, buildHyperlinkPatch as e3, buildInkContainerStyle as e4, buildInkStrokes as e5, buildLegend as e6, buildModel3DContainerStyle as e7, buildModel3DViewModel as e8, buildOleActionModel as e9, cellStyleToStyleMap as eA, cellTdStyle as eB, changeCountLabel as eC, changeIcon as eD, characterSpacingPatch as eE, checkFontAvailable as eF, clampCursorPosition as eG, clampGifDimensions as eH, clampIndex as eI, clampNotesFontSize as eJ, clampScale as eK, clampStep as eL, clearAllLocalViewerData as eM, clearAudienceContent as eN, cn as eO, collectAccessibilityIssues as eP, collectElementText as eQ, collectSlideText as eR, collectStoredChats as eS, collectUsedFontFamilies as eT, columnWidthStyle as eU, commitNodeText as eV, computeAlign as eW, computeAxisTitlePrimitives as eX, computeBarRects as eY, computeBubbleRadius as eZ, computeCornerHandle as e_, buildOleInfoRows as ea, buildPatternFillCss as eb, buildPrintHtmlDocument as ec, buildPropertiesPatch as ed, buildRegionMapViewModel as ee, buildSaveSlides as ef, buildShareUrl as eg, buildSmartArtInsertElement as eh, buildSmartArtNodes as ei, buildStockViewModel as ej, buildSurfaceViewModel as ek, buildTableViewModel as el, buildTreemapViewModel as em, buildTrimFragment as en, buildWaterfallViewModel as eo, buildZeroLine as ep, buildZoomContainerStyle as eq, buildZoomViewModel as er, bulletIndentPx as es, canAddTopLevelNode as et, canRemoveTopLevelNode as eu, canStartBroadcast as ev, canStartShare as ew, canUseClipboard as ex, captionDisplayText as ey, cellRunStyle as ez, AccountPageComponent as f, encodeGif as f$, computeDistribute as f0, computeDrawingViewBox as f1, computeErrorBarPrimitives as f2, computeFocusTargets as f3, computeHandleBoxes as f4, computeHandoutLayout as f5, computeIsMobile as f6, computeIsTablet as f7, computeLinePoints as f8, computeLinearRegression as f9, createWebsocketBundle as fA, cssObjectToStyleMap as fB, currentColorScheme as fC, currentLayout as fD, currentStyle as fE, defaultCssVars as fF, defaultRadius as fG, defaultThemeColors as fH, deleteElementsByIds as fI, deleteVersion as fJ, demoteNode as fK, deriveModel3DBlobUrl as fL, derivePresenceList as fM, describeSmartArtBounds as fN, disableGlowPatch as fO, disableInnerShadowPatch as fP, disableOuterShadowPatch as fQ, disableReflectionPatch as fR, disableSoftEdgePatch as fS, duplicateElementById as fT, durationOf as fU, effectsStateOf as fV, enableGlowPatch as fW, enableInnerShadowPatch as fX, enableOuterShadowPatch as fY, enableReflectionPatch as fZ, enableSoftEdgePatch as f_, computePageCount as fa, computePieLayout as fb, computePieSlicePath as fc, computePieSlices as fd, computePlotLayout as fe, computeRSquared as ff, computeRadarPoints as fg, computeScatterDots as fh, computeSelectionBoxes as fi, computeSingleSelected as fj, computeSlideIndices as fk, computeSnap as fl, computeStackedBarRects as fm, computeStackedValueRange as fn, computeTextLines as fo, computeTimerProgress as fp, computeTrendlinePrimitives as fq, computeValueRange as fr, convertOmmlToMathMl as fs, copyFormatFromElement as ft, countAccessibilityIssues as fu, countAnnotationStrokes as fv, createAngularAiBridge as fw, createCustomShow as fx, createSwipeDismissDrag as fy, createWebrtcBundle as fz, ActionSettingsPanelComponent as g, hasAnimation as g$, estimatePageCount as g0, evenColumnWidths as g1, evenRowHeights as g2, exitPresentationFullscreen as g3, exportAiChatLogs as g4, extractPathPoints as g5, eyedropperAvailable as g6, fillColorOf as g7, findInSlides as g8, findOwningSlideIndex as g9, getOleBadgeLabel as gA, getOleDisplayName as gB, getOleDownloadFileName as gC, getOleTypeColor as gD, getOleTypeLabel as gE, getPasswordStrength as gF, getPatternSvg as gG, getPlaceholderStyle as gH, getVersions as gI, getResolvedShapeClipPath as gJ, getResolvedShapeClipPathFor as gK, getShapeFillStrokeStyle as gL, getSlideBackgroundStyle as gM, getSlideTransitionAnimations as gN, getSmartArtNodeBounds as gO, getSpeechRecognitionCtor as gP, getTextBlockStyle as gQ, getTextWarp as gR, getTouchDistance as gS, getWarpCategory as gT, getWarpPath as gU, gradientStateFromStyle as gV, gradientStateOf as gW, gradientStatePatch as gX, gridColumns as gY, groupElements as gZ, groupIssuesBySeverity as g_, findSlideIndexByElementId as ga, fitPolynomial as gb, fitZoom as gc, focusTargetChips as gd, fontMimeForFormat as ge, fontSizeOf as gf, formatAutoNumber as gg, formatAxisValue as gh, formatBytes as gi, formatCursorLabel as gj, formatElapsed as gk, formatFileSize as gl, formatPropertyDate as gm, formatTime as gn, fpsToFrameIntervalMs as go, generateBroadcastRoomId as gp, generateCommentId as gq, generateCustomShowId as gr, generatePressureCircles as gs, generateRulerTicks as gt, getClrChangeParams as gu, getContainerStyle as gv, getDuotoneFilterDef as gw, getImageSrc as gx, getLocalStorageUsageSummary as gy, getOleAriaLabel as gz, AdvancedChartEditorComponent as h, numFromEvent as h$, hasCopyableFormat as h0, hasExistingLink as h1, hasExitedFullscreen as h2, hasGradientFill as h3, hasPressureVariation as h4, headerLabel as h5, inkViewBox as h6, insertColumn as h7, insertRow as h8, interpolateWidth as h9, mergeRight as hA, mergeSelection as hB, moveElementBy as hC, moveNodeDown as hD, moveNodeUp as hE, msToFrameDelayCs as hF, narrowToCircle as hG, narrowToPolygon as hH, narrowToRect as hI, newChartElement as hJ, newEquationElement as hK, newPresetShapeElement as hL, newShapeElement as hM, newSmartArtElement as hN, newTableElement as hO, newTextElement as hP, nextVisibleIndex as hQ, nodeBold as hR, nodeEditBox as hS, nodeFillColor as hT, nodeFontColor as hU, nodeIdFromKey as hV, nodeItalic as hW, nodeStyle as hX, normalizeFontFormat as hY, normalizeSlidesPerPage as hZ, normalizeValue as h_, isAudienceTab as ha, isBold as hb, isBrowserOpenableMime as hc, isChildNode as hd, isElementInteractive as he, isInjectableUrl as hf, isItalic as hg, isPpactionUrl as hh, isPresenterMessage as hi, isSigned as hj, isTextElement as hk, isTwoTableFocus as hl, isUnderline as hm, isUrlSafe as hn, isValidRoomId as ho, isViewportBackgroundPressTarget as hp, isZoomActivationKey as hq, issueTrackKey as hr, issueTypeLabel as hs, keyToLabel as ht, latexToMathml as hu, linePointsToSvgString as hv, lineSpacingPatch as hw, loadAudienceContent as hx, mergeCaptionResults as hy, mergeDown as hz, AiChangeOverlayComponent as i, routeOrthogonalConnector as i$, ommlToMathml as i0, ooxmlDashToCssBorderStyle as i1, openNativeEyeDropper as i2, overallStatus as i3, paletteColor as i4, parseAudienceNonce as i5, parseNodeTextarea as i6, partitionSlides as i7, patchChartData as i8, patchChartStyle as i9, removeElementAnimation as iA, removeGradientStopPatch as iB, removeNode as iC, removeRow as iD, removeSeries as iE, renderToCanvas as iF, reorderAnimationDown as iG, reorderAnimationUp as iH, replaceInSlides as iI, replaceMatch as iJ, requestPresentationFullscreen as iK, resizeElement as iL, resolveCaptionTracks as iM, resolveChartKind as iN, resolveFontVariant as iO, resolveHyperlinkHref as iP, resolveInteractiveElementId as iQ, resolveMediaSrc as iR, resolveOleType as iS, resolveParagraphBullet as iT, resolvePresenterNotes as iU, resolveProfileInitial as iV, resolveRegionCode as iW, resolvePalette as iX, resolveThemeCatalogEntry as iY, resolveTransitionDuration as iZ, revealedElementStyles as i_, patchTableData as ia, patchTextStyle as ib, pendingElementStyles as ic, pickColorByClickFallback as id, pickSupportedMimeType as ie, planGifFrames as ig, planVideoSegments as ih, pointsToSvgPathD as ii, presenceToCursors as ij, presetByLayout as ik, presetsForCategory as il, pressuresToWidths as im, prevVisibleIndex as io, projectDrawingShapes as ip, promoteNode as iq, provideViewerTheme as ir, radarAngle as is, radarRingPoints as it, recordWebm as iu, redistributeColumnWidth as iv, removeAnimation as iw, removeCategory as ix, removeColumn as iy, removeCommentFromList as iz, AiChatPanelComponent as j, signatureKey as j$, rowStyle as j0, sampleColorFromSlide as j1, sanitizeColor as j2, sanitizeSlideIndex as j3, sanitizeUserName as j4, saveViewerProfile as j5, scanAvailableFonts as j6, searchSlides as j7, seedBroadcastFields as j8, seedHyperlinkDraft as j9, setGridlineStyle as jA, setLayout as jB, setLegend as jC, setNodeStyle as jD, setNodeText as jE, setRepeatCount as jF, setRepeatMode as jG, setSequence as jH, setSeriesChartType as jI, setSeriesColor as jJ, setSeriesErrorBars as jK, setSeriesMarker as jL, setSeriesName as jM, setSeriesTrendline as jN, setSeriesValue as jO, setStyle as jP, setTimingCurve as jQ, setTitle as jR, setTrigger as jS, setTriggerShapeId as jT, shapeStylePatch as jU, sheetAfterNavigate as jV, shouldBlockClickAdvance as jW, shouldUseSvgWarp as jX, showDirectionPicker as jY, showsTemplateAffordance as jZ, signatureCountLabel as j_, seedPropertiesDraft as ja, seedShareFields as jb, segmentFrameCount as jc, selectValue$2 as jd, sendBackward as je, sendToBack as jf, sequentialColorScale as jg, serializeWriteBack as jh, seriesColor as ji, setAnimationEmphasis as jj, setAnimationEntrance as jk, setAnimationExit as jl, setAxis as jm, setAxisLogScale as jn, setAxisTitleStyle as jo, setCategoryLabel as jp, setCellText as jq, setColorScheme as jr, setDataLabels as js, setDataPointExplosion as jt, setDataPointFill as ju, setDataPointLabel as jv, setDelay as jw, setDirection as jx, setDuration as jy, setElementPosition as jz, AiChatService as k, signatureTimestamp as k0, signerName as k1, statusLabel as k2, slideNumberOf as k3, smartArtNodes as k4, paletteColour as k5, snapToGridStep as k6, splitCursorCell as k7, splitMergedCell as k8, statusKind as k9, updateGlowPatch as kA, updateGradientStopPatch as kB, updateInnerShadowPatch as kC, updateOuterShadowPatch as kD, updateReflectionPatch as kE, vAlignPatch as kF, validatePassword as kG, validatePrintSettings as kH, validateRoomId as kI, valueToY as kJ, vermilionDarkColors as kK, vermilionDarkTheme as kL, vermilionLightColors as kM, vermilionLightTheme as kN, vermilionRadius as kO, waypointsToPathD as kP, worstStatus as kQ, zoomTargetSlideIndex as kR, statusLabel$1 as ka, storeAudienceContent as kb, stringFromEvent$5 as kc, strokeColorOf as kd, strokeToInkElement as ke, styleShadowFilter as kf, textAdvancedPatch as kg, textAdvancedStateFromStyle as kh, textAdvancedStateOf as ki, textColorOf as kj, textDirectionPatch as kk, textStyleOf as kl, textStylePatch as km, themeStyle as kn, themeToCssVars as ko, thumbnailHeight as kp, thumbnailZoom as kq, toggleCommentResolvedInList as kr, toggleNodeBold as ks, toggleNodeItalic as kt, toggleSheet as ku, topLevelNodeCount as kv, transformSelectedTextCase as kw, translationsEn as kx, ungroupElements as ky, updateElementById as kz, AiComposerComponent as l, AiFocusBarComponent as m, AiFocusHighlightOverlayComponent as n, AiMessageListComponent as o, AiPanelStore as p, AiProposalCardComponent as q, AiSettingsSectionComponent as r, AiToolCallCardComponent as s, toChatSummary as t, AnimationAuthorPanelComponent as u, AnimationPanelComponent as v, AnimationPlaybackService as w, AutosaveService as x, CURSOR_PALETTE as y, CanvasFitService as z };
|
|
112969
|
-
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-
|
|
113337
|
+
export { DATA_TABLE_KEY_W as $, ALIGN_OPTIONS as A, BroadcastDialogComponent as B, CHART_EDITOR_STYLES as C, ChartAxisOptionsComponent as D, ChartAxisStyleOptionsComponent as E, ChartComboTypeOptionsComponent as F, ChartDataEditorComponent as G, ChartDataLabelOptionsComponent as H, ChartDatapointOptionsComponent as I, ChartDisplayOptionsComponent as J, ChartElementViewComponent as K, ChartErrorBarOptionsComponent as L, ChartMarkerOptionsComponent as M, ChartPartSelectionService as N, ChartPrimitivesComponent as O, ChartRendererComponent as P, ChartTrendlineOptionsComponent as Q, CollaborationCursorsComponent as R, CollaborationService as S, ColorChangedImageComponent as T, CommentsPanelComponent as U, CommentsService as V, ComparePanelComponent as W, ConnectorRendererComponent as X, ConnectorTextOverlayComponent as Y, CustomShowsComponent as Z, DATA_TABLE_HEADER_H as _, AUDIENCE_HASH as a, MIN_ZOOM_SCALE as a$, DATA_TABLE_PADDING as a0, DATA_TABLE_ROW_H as a1, DEFAULT_BOUNDS as a2, DEFAULT_BROADCAST_SERVER_URL as a3, DEFAULT_CANVAS_HEIGHT as a4, DEFAULT_CANVAS_WIDTH as a5, DEFAULT_COLOR_SCHEME as a6, DEFAULT_FILL_COLOR as a7, DEFAULT_LAYOUT as a8, DEFAULT_PALETTE$1 as a9, ExportProgressModalComponent as aA, ExportService as aB, FieldContextService as aC, FindBarComponent as aD, FindReplaceBarComponent as aE, FollowModeBarComponent as aF, FontEmbeddingListComponent as aG, FontEmbeddingPanelComponent as aH, GALLERY_THEME_PRESETS as aI, GradientPickerComponent as aJ, HANDOUT_OPTIONS as aK, HeaderFooterDialogComponent as aL, HyperlinkDialogComponent as aM, ImagePropertiesPanelComponent as aN, InkDrawingService as aO, InkRendererComponent as aP, InsertSmartArtDialogComponent as aQ, InspectorPaneHeaderComponent as aR, InspectorPanelComponent as aS, IsMobileService as aT, KeepAnnotationsDialogComponent as aU, LOCALE_CATALOG as aV, LONG_PRESS_DURATION_MS as aW, LONG_PRESS_MOVE_TOLERANCE_PX as aX, LoadContentService as aY, LocalPresencePublisher as aZ, MAX_ZOOM_SCALE as a_, DEFAULT_PRINT_SETTINGS as aa, DEFAULT_SLIDE_BACKGROUND as ab, DEFAULT_STROKE_COLOR as ac, DEFAULT_STYLE as ad, DEFAULT_TABLE_ROW_HEIGHT as ae, DEFAULT_TEXT_COLOR$1 as af, DEFAULT_VIEWER_PROFILE as ag, DIRECTIONAL_PRESETS as ah, DIRECTION_OPTIONS as ai, DocumentPropertiesCardComponent as aj, EMBEDDED_FONTS_STYLE_ID as ak, EMPHASIS_PRESETS as al, ENTRANCE_PRESETS as am, TEMPLATES as an, EXIT_PRESETS as ao, EditorContextMenuComponent as ap, EditorHistory as aq, EditorStateService as ar, EditorToolbarComponent as as, EffectsPanelComponent as at, ElementRendererComponent as au, EmbeddedFontsService as av, EncryptedFileDialogComponent as aw, EquationEditorDialogComponent as ax, EquationRendererComponent as ay, EquationTemplateGalleryComponent as az, AUDIENCE_NONCE_KEY as b, SLIDE_PX_PER_INCH as b$, MediaPreviewComponent as b0, MediaPropertiesPanelComponent as b1, MediaRendererComponent as b2, MediaTrimTimelineComponent as b3, MobileBottomBarComponent as b4, MobileMenuSheetComponent as b5, MobilePresenterViewComponent as b6, MobileSheetComponent as b7, MobileSlidesSheetComponent as b8, MobileToolbarComponent as b9, RESIZE_HANDLES as bA, RULER_THICKNESS as bB, RemoteSelectionOverlayComponent as bC, RibbonAnimationsSectionComponent as bD, RibbonArrangeSectionComponent as bE, RibbonColorPopoverComponent as bF, RibbonComponent as bG, RibbonDesignSectionComponent as bH, RibbonDrawSectionComponent as bI, RibbonDrawingGroupComponent as bJ, RibbonEditingSectionComponent as bK, RibbonFileSectionComponent as bL, RibbonFontControlsComponent as bM, RibbonHomeSectionComponent as bN, RibbonInsertFieldsComponent as bO, RibbonInsertSectionComponent as bP, RibbonParagraphControlsComponent as bQ, RibbonPrimaryRowComponent as bR, RibbonReviewSectionComponent as bS, RibbonSlideshowSectionComponent as bT, RibbonTransitionsSectionComponent as bU, RibbonViewSectionComponent as bV, RulerGuidesService as bW, SEQUENCE_OPTIONS as bX, SEVERITY_GROUPS as bY, SEVERITY_LABELS as bZ, SHORTCUT_REFERENCE_ITEMS as b_, ModalDialogComponent as ba, Model3DRendererComponent as bb, NotesHandoutCardComponent as bc, NotesPanelComponent as bd, NotesToolbarComponent as be, OleRendererComponent as bf, POWER_POINT_VIEWER_PROVIDERS as bg, PRESENTER_CHANNEL_NAME as bh, PRESENTER_MSG_ORIGIN as bi, PasswordProtectionDialogComponent as bj, PasswordStrengthMeterComponent as bk, PowerPointViewerComponent as bl, PresentationAnnotationOverlayComponent as bm, PresentationAnnotationsService as bn, PresentationOverlayComponent as bo, PresentationPropertiesPanelComponent as bp, PresentationSettingsCardComponent as bq, PresentationSubtitleBarComponent as br, PresentationTransitionOverlayComponent as bs, PresenterViewComponent as bt, PresenterWindowService as bu, PrintDialogComponent as bv, PrintService as bw, PrintSettingsPanelComponent as bx, PropertiesDialogComponent as by, REPEAT_MODE_OPTIONS as bz, AVATAR_COLOR_SWATCHES as c, ViewerDocumentPropertiesService as c$, SLIDE_TRANSITION_KEYFRAMES as c0, DEFAULT_PALETTE as c1, PALETTES$1 as c2, SMART_ART_COLOR_SCHEMES as c3, SMART_ART_STYLE_OPTIONS as c4, SUB_ITEM_LABEL as c5, SVG_WARP_PRESETS as c6, SWIPE_MAX_VERTICAL_PX as c7, SWIPE_THRESHOLD_PX as c8, SelectionPaneComponent as c9, TABLE_STRUCTURE_TOGGLES as cA, TEXT_DIRECTION_OPTIONS$1 as cB, THEME_CATALOG as cC, TIMING_CURVE_OPTIONS as cD, TRIGGER_OPTIONS as cE, TYPE_LABELS as cF, TableCellAdvancedFillComponent as cG, TableCellFormattingComponent as cH, TableDataEditorComponent as cI, TablePropertiesComponent as cJ, TableRendererComponent as cK, TableResizeOverlayComponent as cL, TableSelectionService as cM, TextAdvancedPanelComponent as cN, ThemeEditorFieldsComponent as cO, ThemeGalleryComponent as cP, ThemeSelectorCardComponent as cQ, TitleBarComponent as cR, VALIGN_OPTIONS as cS, VIEWER_THEME as cT, VersionHistoryPanelComponent as cU, ViewerCanvasEditingService as cV, ViewerCollabCursorService as cW, ViewerCollaborationSessionService as cX, ViewerCompareService as cY, ViewerCustomShowsService as cZ, ViewerDialogsService as c_, SetUpSlideShowDialogComponent as ca, SettingsAppearanceTabComponent as cb, SettingsDialogComponent as cc, SettingsLanguageTabComponent as cd, ShareDialogComponent as ce, ShortcutPanelComponent as cf, ShowOptionsFieldsetComponent as cg, ShowSlidesFieldsetComponent as ch, SignatureStrippedDialogComponent as ci, SignaturesPanelComponent as cj, SignaturesService as ck, SlideCanvasComponent as cl, SlideDefaultInspectorComponent as cm, SlideDiffChangesComponent as cn, SlideDiffRowComponent as co, SlideDiffThumbnailsComponent as cp, SlideSizeCardComponent as cq, SlideSorterOverlayComponent as cr, SlideThemeOverridePanelComponent as cs, SlidesPanelComponent as ct, SmartArt3DRendererComponent as cu, SmartArt3DService as cv, SmartArtPreviewComponent as cw, SmartArtPropertiesComponent as cx, SmartArtRendererComponent as cy, StatusBarComponent as cz, AccessibilityPanelComponent as d, buildFallbackViewModel as d$, ViewerExportService as d0, ViewerExtraDialogsComponent as d1, ViewerFileIOService as d2, ViewerFindReplaceService as d3, ViewerFormatPainterService as d4, ViewerInspectorPanelService as d5, ViewerKeyboardService as d6, ViewerMobileSheetService as d7, ViewerPresentationModeService as d8, ViewerThemeGalleryService as d9, asMediaElement as dA, assignUserColor as dB, attachTouchGestures as dC, beginNodeEdit as dD, boolFromEvent as dE, bringForward as dF, bringToFront as dG, buildBarActions as dH, buildBroadcastConfig as dI, buildBroadcastViewerUrl as dJ, buildCategoryLabels as dK, buildCellParagraphs as dL, buildChartViewModel as dM, buildChatLogExport as dN, buildChatLogMarkdown as dO, buildChromeStyle as dP, buildClearHyperlinkPatch as dQ, buildClickGroups as dR, buildColStyles as dS, buildCollaborationConfig as dT, buildComboViewModel as dU, buildCssGradientFromShapeStyle as dV, buildDuotoneFilter as dW, buildDuotoneFilterId as dX, buildEmbeddedFontStyles as dY, buildEquationElement as dZ, buildEquationSegment as d_, ViewerTouchGesturesService as da, ViewerZoomService as db, WEBM_MIME_CANDIDATES as dc, WriteBackScheduler as dd, ZoomNavigationService as de, ZoomRendererComponent as df, ZoomTargetService as dg, addCategory as dh, addCommentToList as di, addGradientStopPatch as dj, addItem as dk, addSeries as dl, addSubItem as dm, advanceStep as dn, aiToggleVisible as dp, alignPatch as dq, animationFor as dr, annotationMapToInkInserts as ds, applyAcceptedDiff as dt, applyAnimationPreset as du, applyFindReplacements as dv, applyFormatToElement as dw, applyMove as dx, applyResize as dy, applyTableStylePreset as dz, AccessibilityService as e, computeDataTablePrimitives as e$, buildFontFaceRule as e0, buildGradientFillCss as e1, buildGridlinesAndLabels as e2, buildHyperlinkPatch as e3, buildInkContainerStyle as e4, buildInkStrokes as e5, buildLegend as e6, buildModel3DContainerStyle as e7, buildModel3DViewModel as e8, buildOleActionModel as e9, cellStyleToStyleMap as eA, cellTdStyle as eB, changeCountLabel as eC, changeIcon as eD, characterSpacingPatch as eE, checkFontAvailable as eF, clampCursorPosition as eG, clampGifDimensions as eH, clampIndex as eI, clampNotesFontSize as eJ, clampScale as eK, clampStep as eL, clearAllLocalViewerData as eM, clearAudienceContent as eN, cn as eO, collectAccessibilityIssues as eP, collectElementText as eQ, collectSlideText as eR, collectStoredChats as eS, collectUsedFontFamilies as eT, columnWidthStyle as eU, commitNodeText as eV, computeAlign as eW, computeAxisTitlePrimitives as eX, computeBarRects as eY, computeBubbleRadius as eZ, computeCornerHandle as e_, buildOleInfoRows as ea, buildPatternFillCss as eb, buildPrintHtmlDocument as ec, buildPropertiesPatch as ed, buildRegionMapViewModel as ee, buildSaveSlides as ef, buildShareUrl as eg, buildSmartArtInsertElement as eh, buildSmartArtNodes as ei, buildStockViewModel as ej, buildSurfaceViewModel as ek, buildTableViewModel as el, buildTreemapViewModel as em, buildTrimFragment as en, buildWaterfallViewModel as eo, buildZeroLine as ep, buildZoomContainerStyle as eq, buildZoomViewModel as er, bulletIndentPx as es, canAddTopLevelNode as et, canRemoveTopLevelNode as eu, canStartBroadcast as ev, canStartShare as ew, canUseClipboard as ex, captionDisplayText as ey, cellRunStyle as ez, AccountPageComponent as f, encodeGif as f$, computeDistribute as f0, computeDrawingViewBox as f1, computeErrorBarPrimitives as f2, computeFocusTargets as f3, computeHandleBoxes as f4, computeHandoutLayout as f5, computeIsMobile as f6, computeIsTablet as f7, computeLinePoints as f8, computeLinearRegression as f9, createWebsocketBundle as fA, cssObjectToStyleMap as fB, currentColorScheme as fC, currentLayout as fD, currentStyle as fE, defaultCssVars as fF, defaultRadius as fG, defaultThemeColors as fH, deleteElementsByIds as fI, deleteVersion as fJ, demoteNode as fK, deriveModel3DBlobUrl as fL, derivePresenceList as fM, describeSmartArtBounds as fN, disableGlowPatch as fO, disableInnerShadowPatch as fP, disableOuterShadowPatch as fQ, disableReflectionPatch as fR, disableSoftEdgePatch as fS, duplicateElementById as fT, durationOf as fU, effectsStateOf as fV, enableGlowPatch as fW, enableInnerShadowPatch as fX, enableOuterShadowPatch as fY, enableReflectionPatch as fZ, enableSoftEdgePatch as f_, computePageCount as fa, computePieLayout as fb, computePieSlicePath as fc, computePieSlices as fd, computePlotLayout as fe, computeRSquared as ff, computeRadarPoints as fg, computeScatterDots as fh, computeSelectionBoxes as fi, computeSingleSelected as fj, computeSlideIndices as fk, computeSnap as fl, computeStackedBarRects as fm, computeStackedValueRange as fn, computeTextLines as fo, computeTimerProgress as fp, computeTrendlinePrimitives as fq, computeValueRange as fr, convertOmmlToMathMl as fs, copyFormatFromElement as ft, countAccessibilityIssues as fu, countAnnotationStrokes as fv, createAngularAiBridge as fw, createCustomShow as fx, createSwipeDismissDrag as fy, createWebrtcBundle as fz, ActionSettingsPanelComponent as g, hasAnimation as g$, estimatePageCount as g0, evenColumnWidths as g1, evenRowHeights as g2, exitPresentationFullscreen as g3, exportAiChatLogs as g4, extractPathPoints as g5, eyedropperAvailable as g6, fillColorOf as g7, findInSlides as g8, findOwningSlideIndex as g9, getOleBadgeLabel as gA, getOleDisplayName as gB, getOleDownloadFileName as gC, getOleTypeColor as gD, getOleTypeLabel as gE, getPasswordStrength as gF, getPatternSvg as gG, getPlaceholderStyle as gH, getVersions as gI, getResolvedShapeClipPath as gJ, getResolvedShapeClipPathFor as gK, getShapeFillStrokeStyle as gL, getSlideBackgroundStyle as gM, getSlideTransitionAnimations as gN, getSmartArtNodeBounds as gO, getSpeechRecognitionCtor as gP, getTextBlockStyle as gQ, getTextWarp as gR, getTouchDistance as gS, getWarpCategory as gT, getWarpPath as gU, gradientStateFromStyle as gV, gradientStateOf as gW, gradientStatePatch as gX, gridColumns as gY, groupElements as gZ, groupIssuesBySeverity as g_, findSlideIndexByElementId as ga, fitPolynomial as gb, fitZoom as gc, focusTargetChips as gd, fontMimeForFormat as ge, fontSizeOf as gf, formatAutoNumber as gg, formatAxisValue as gh, formatBytes as gi, formatCursorLabel as gj, formatElapsed as gk, formatFileSize as gl, formatPropertyDate as gm, formatTime as gn, fpsToFrameIntervalMs as go, generateBroadcastRoomId as gp, generateCommentId as gq, generateCustomShowId as gr, generatePressureCircles as gs, generateRulerTicks as gt, getClrChangeParams as gu, getContainerStyle as gv, getDuotoneFilterDef as gw, getImageSrc as gx, getLocalStorageUsageSummary as gy, getOleAriaLabel as gz, AdvancedChartEditorComponent as h, normalizeValue as h$, hasCopyableFormat as h0, hasExistingLink as h1, hasExitedFullscreen as h2, hasGradientFill as h3, hasPressureVariation as h4, hasVisibleSlideAfter as h5, headerLabel as h6, inkViewBox as h7, insertColumn as h8, insertRow as h9, mergeDown as hA, mergeRight as hB, mergeSelection as hC, moveElementBy as hD, moveNodeDown as hE, moveNodeUp as hF, msToFrameDelayCs as hG, narrowToCircle as hH, narrowToPolygon as hI, narrowToRect as hJ, newChartElement as hK, newEquationElement as hL, newPresetShapeElement as hM, newShapeElement as hN, newSmartArtElement as hO, newTableElement as hP, newTextElement as hQ, nextVisibleIndex as hR, nodeBold as hS, nodeEditBox as hT, nodeFillColor as hU, nodeFontColor as hV, nodeIdFromKey as hW, nodeItalic as hX, nodeStyle as hY, normalizeFontFormat as hZ, normalizeSlidesPerPage as h_, interpolateWidth as ha, isAudienceTab as hb, isBold as hc, isBrowserOpenableMime as hd, isChildNode as he, isElementInteractive as hf, isInjectableUrl as hg, isItalic as hh, isPpactionUrl as hi, isPresenterMessage as hj, isSigned as hk, isTextElement as hl, isTwoTableFocus as hm, isUnderline as hn, isUrlSafe as ho, isValidRoomId as hp, isViewportBackgroundPressTarget as hq, isZoomActivationKey as hr, issueTrackKey as hs, issueTypeLabel as ht, keyToLabel as hu, latexToMathml as hv, linePointsToSvgString as hw, lineSpacingPatch as hx, loadAudienceContent as hy, mergeCaptionResults as hz, AiChangeOverlayComponent as i, revealedElementStyles as i$, numFromEvent as i0, ommlToMathml as i1, ooxmlDashToCssBorderStyle as i2, openNativeEyeDropper as i3, overallStatus as i4, paletteColor as i5, parseAudienceNonce as i6, parseNodeTextarea as i7, partitionSlides as i8, patchChartData as i9, removeCommentFromList as iA, removeElementAnimation as iB, removeGradientStopPatch as iC, removeNode as iD, removeRow as iE, removeSeries as iF, renderToCanvas as iG, reorderAnimationDown as iH, reorderAnimationUp as iI, replaceInSlides as iJ, replaceMatch as iK, requestPresentationFullscreen as iL, resizeElement as iM, resolveCaptionTracks as iN, resolveChartKind as iO, resolveFontVariant as iP, resolveHyperlinkHref as iQ, resolveInteractiveElementId as iR, resolveMediaSrc as iS, resolveOleType as iT, resolveParagraphBullet as iU, resolvePresenterNotes as iV, resolveProfileInitial as iW, resolveRegionCode as iX, resolvePalette as iY, resolveThemeCatalogEntry as iZ, resolveTransitionDuration as i_, patchChartStyle as ia, patchTableData as ib, patchTextStyle as ic, pendingElementStyles as id, pickColorByClickFallback as ie, pickSupportedMimeType as ig, planGifFrames as ih, planVideoSegments as ii, pointsToSvgPathD as ij, presenceToCursors as ik, presetByLayout as il, presetsForCategory as im, pressuresToWidths as io, prevVisibleIndex as ip, projectDrawingShapes as iq, promoteNode as ir, provideViewerTheme as is, radarAngle as it, radarRingPoints as iu, recordWebm as iv, redistributeColumnWidth as iw, removeAnimation as ix, removeCategory as iy, removeColumn as iz, AiChatPanelComponent as j, signatureCountLabel as j$, routeOrthogonalConnector as j0, rowStyle as j1, sampleColorFromSlide as j2, sanitizeColor as j3, sanitizeSlideIndex as j4, sanitizeUserName as j5, saveViewerProfile as j6, scanAvailableFonts as j7, searchSlides as j8, seedBroadcastFields as j9, setElementPosition as jA, setGridlineStyle as jB, setLayout as jC, setLegend as jD, setNodeStyle as jE, setNodeText as jF, setRepeatCount as jG, setRepeatMode as jH, setSequence as jI, setSeriesChartType as jJ, setSeriesColor as jK, setSeriesErrorBars as jL, setSeriesMarker as jM, setSeriesName as jN, setSeriesTrendline as jO, setSeriesValue as jP, setStyle as jQ, setTimingCurve as jR, setTitle as jS, setTrigger as jT, setTriggerShapeId as jU, shapeStylePatch as jV, sheetAfterNavigate as jW, shouldBlockClickAdvance as jX, shouldUseSvgWarp as jY, showDirectionPicker as jZ, showsTemplateAffordance as j_, seedHyperlinkDraft as ja, seedPropertiesDraft as jb, seedShareFields as jc, segmentFrameCount as jd, selectValue$2 as je, sendBackward as jf, sendToBack as jg, sequentialColorScale as jh, serializeWriteBack as ji, seriesColor as jj, setAnimationEmphasis as jk, setAnimationEntrance as jl, setAnimationExit as jm, setAxis as jn, setAxisLogScale as jo, setAxisTitleStyle as jp, setCategoryLabel as jq, setCellText as jr, setColorScheme as js, setDataLabels as jt, setDataPointExplosion as ju, setDataPointFill as jv, setDataPointLabel as jw, setDelay as jx, setDirection as jy, setDuration as jz, AiChatService as k, signatureKey as k0, signatureTimestamp as k1, signerName as k2, statusLabel as k3, slideNumberOf as k4, smartArtNodes as k5, paletteColour as k6, snapToGridStep as k7, splitCursorCell as k8, splitMergedCell as k9, updateElementById as kA, updateGlowPatch as kB, updateGradientStopPatch as kC, updateInnerShadowPatch as kD, updateOuterShadowPatch as kE, updateReflectionPatch as kF, vAlignPatch as kG, validatePassword as kH, validatePrintSettings as kI, validateRoomId as kJ, valueToY as kK, vermilionDarkColors as kL, vermilionDarkTheme as kM, vermilionLightColors as kN, vermilionLightTheme as kO, vermilionRadius as kP, waypointsToPathD as kQ, worstStatus as kR, zoomTargetSlideIndex as kS, statusKind as ka, statusLabel$1 as kb, storeAudienceContent as kc, stringFromEvent$5 as kd, strokeColorOf as ke, strokeToInkElement as kf, styleShadowFilter as kg, textAdvancedPatch as kh, textAdvancedStateFromStyle as ki, textAdvancedStateOf as kj, textColorOf as kk, textDirectionPatch as kl, textStyleOf as km, textStylePatch as kn, themeStyle as ko, themeToCssVars as kp, thumbnailHeight as kq, thumbnailZoom as kr, toggleCommentResolvedInList as ks, toggleNodeBold as kt, toggleNodeItalic as ku, toggleSheet as kv, topLevelNodeCount as kw, transformSelectedTextCase as kx, translationsEn as ky, ungroupElements as kz, AiComposerComponent as l, AiFocusBarComponent as m, AiFocusHighlightOverlayComponent as n, AiMessageListComponent as o, AiPanelStore as p, AiProposalCardComponent as q, AiSettingsSectionComponent as r, AiToolCallCardComponent as s, toChatSummary as t, AnimationAuthorPanelComponent as u, AnimationPanelComponent as v, AnimationPlaybackService as w, AutosaveService as x, CURSOR_PALETTE as y, CanvasFitService as z };
|
|
113338
|
+
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-Dora2fol.mjs.map
|