pptx-angular-viewer 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-BfgImFmE.mjs → pptx-angular-viewer-chat-history-idb-CiJHyQZ_.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-BfgImFmE.mjs.map → pptx-angular-viewer-chat-history-idb-CiJHyQZ_.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-CuYqPeQk.mjs → pptx-angular-viewer-pptx-angular-viewer-BYT0JAxP.mjs} +394 -219
- package/fesm2022/pptx-angular-viewer-pptx-angular-viewer-BYT0JAxP.mjs.map +1 -0
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +2 -2
- package/types/pptx-angular-viewer.d.ts +26 -3
- package/fesm2022/pptx-angular-viewer-pptx-angular-viewer-CuYqPeQk.mjs.map +0 -1
|
@@ -26408,6 +26408,36 @@ function interpolateOutline(from, to, t) {
|
|
|
26408
26408
|
// ---------------------------------------------------------------------------
|
|
26409
26409
|
/** PowerPoint's morph transition uses a specific cubic-bezier easing. */
|
|
26410
26410
|
const MORPH_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';
|
|
26411
|
+
/**
|
|
26412
|
+
* When an unmatched OUTGOING shape has finished dissolving, as a percentage of
|
|
26413
|
+
* the morph's duration, and when it starts.
|
|
26414
|
+
*
|
|
26415
|
+
* PowerPoint does not simply cross-fade the two slides over the whole
|
|
26416
|
+
* transition: a shape with no counterpart is gone well before its replacement
|
|
26417
|
+
* appears, so the middle of a morph shows neither. Measured on PowerPoint 16
|
|
26418
|
+
* with a two-slide deck whose only shape exists on the first slide (a 1s
|
|
26419
|
+
* morph, frames sampled ~25ms apart, alpha read off the pixels of a pure-red
|
|
26420
|
+
* rectangle over white): alpha 0.98 at 3ms, 0.88 at 64ms, 0.62 at 112ms, 0.29
|
|
26421
|
+
* at 175ms, 0.13 at 210ms, gone by 238ms. That is a LINEAR ramp from 35ms to
|
|
26422
|
+
* 235ms (fit RMS 0.024, better than any eased curve). The box never moves or
|
|
26423
|
+
* changes size across those frames, which is why nothing here scales.
|
|
26424
|
+
*/
|
|
26425
|
+
const MORPH_FADE_OUT_HOLD_PERCENT = 4;
|
|
26426
|
+
/** @see MORPH_FADE_OUT_HOLD_PERCENT */
|
|
26427
|
+
const MORPH_FADE_OUT_END_PERCENT = 23;
|
|
26428
|
+
/**
|
|
26429
|
+
* When an unmatched INCOMING shape starts dissolving in, as a percentage of the
|
|
26430
|
+
* morph's duration, and the curve it follows from there to full opacity.
|
|
26431
|
+
*
|
|
26432
|
+
* Same measurement, with the shape only on the SECOND slide: nothing at all
|
|
26433
|
+
* until 401ms, then alpha 0.18 at 464ms, 0.48 at 561ms, 0.72 at 652ms, 0.90 at
|
|
26434
|
+
* 776ms, 0.99 at 935ms. Fitting start and duration jointly puts the ramp at
|
|
26435
|
+
* 425ms with a decelerating curve (`cubic-bezier(0, 0, 0.35, 1)`, fit RMS
|
|
26436
|
+
* 0.008); `linear` over the same window is 9x worse.
|
|
26437
|
+
*/
|
|
26438
|
+
const MORPH_FADE_IN_START_PERCENT = 42;
|
|
26439
|
+
/** @see MORPH_FADE_IN_START_PERCENT */
|
|
26440
|
+
const MORPH_FADE_IN_EASING = 'cubic-bezier(0, 0, 0.35, 1)';
|
|
26411
26441
|
/** Maximum pixel distance for proximity-based element matching. */
|
|
26412
26442
|
const PROXIMITY_THRESHOLD = 300;
|
|
26413
26443
|
/**
|
|
@@ -26493,27 +26523,81 @@ function generateGeometryMorphAnimation(pair, durationMs, pairIndex, steps = GEO
|
|
|
26493
26523
|
}
|
|
26494
26524
|
|
|
26495
26525
|
/**
|
|
26496
|
-
*
|
|
26497
|
-
*
|
|
26526
|
+
* The `!!` morph-name convention, in its own module.
|
|
26527
|
+
*
|
|
26528
|
+
* Both `morph-matching` (which pairs shapes by this name) and `morph-flatten`
|
|
26529
|
+
* (which decomposes a group that CONTAINS such a shape) need it. Leaving it on
|
|
26530
|
+
* `morph-matching` made the two import each other, and a cycle that dev ESM
|
|
26531
|
+
* tolerates can leave one side undefined at module-init time once the graph is
|
|
26532
|
+
* bundled - which took the morph code, and with it presentation mode, down in
|
|
26533
|
+
* every production build.
|
|
26534
|
+
*
|
|
26535
|
+
* @module render/morph-name
|
|
26536
|
+
*/
|
|
26537
|
+
/**
|
|
26538
|
+
* Extract the morph-matching name from an element.
|
|
26539
|
+
*
|
|
26540
|
+
* Priority:
|
|
26541
|
+
* 1. Element name property from `cNvPr/@name` starting with "!!"
|
|
26542
|
+
* 2. Text content starting with "!!" (explicit morph name convention)
|
|
26543
|
+
*
|
|
26544
|
+
* PowerPoint matches elements across slides when their Selection Pane name
|
|
26545
|
+
* (i.e. `cNvPr/@name`) starts with `!!`. Elements with identical `!!`-prefixed
|
|
26546
|
+
* names are paired for morph animation regardless of type or position.
|
|
26547
|
+
*
|
|
26548
|
+
* @param element - The element to extract a morph name from.
|
|
26549
|
+
* @returns The morph name string, or undefined if none found.
|
|
26550
|
+
*/
|
|
26551
|
+
function getElementMorphName(element) {
|
|
26552
|
+
// Check !! naming convention on element name (cNvPr/@name) - primary source
|
|
26553
|
+
if (element.name) {
|
|
26554
|
+
const name = element.name.trim();
|
|
26555
|
+
if (name.startsWith('!!')) {
|
|
26556
|
+
return name;
|
|
26557
|
+
}
|
|
26558
|
+
}
|
|
26559
|
+
// Check !! naming convention in text content - fallback
|
|
26560
|
+
if (hasTextProperties(element) && element.text) {
|
|
26561
|
+
const text = element.text.trim();
|
|
26562
|
+
if (text.startsWith('!!')) {
|
|
26563
|
+
return text;
|
|
26564
|
+
}
|
|
26565
|
+
}
|
|
26566
|
+
return undefined;
|
|
26567
|
+
}
|
|
26568
|
+
|
|
26569
|
+
/**
|
|
26570
|
+
* Decompose the groups that take part in a morph, so the shapes INSIDE two
|
|
26571
|
+
* corresponding groups can be paired with each other.
|
|
26572
|
+
*
|
|
26573
|
+
* PowerPoint matches a morph level by level: it pairs the two slides' top-level
|
|
26574
|
+
* objects first, and only looks inside a group once that group itself has been
|
|
26575
|
+
* paired. A group is one object until then, so a shape nested in a group on one
|
|
26576
|
+
* slide and sitting top-level on the other is NOT carried through, even under
|
|
26577
|
+
* the `!!` naming convention.
|
|
26578
|
+
*
|
|
26579
|
+
* That was measured, not assumed. Driving PowerPoint 16 through a windowed
|
|
26580
|
+
* slide show and sampling the rendered frames (25ms apart) over the issue #131
|
|
26581
|
+
* wheel deck shows the centre disc, which is `!!Content` top-level on the
|
|
26582
|
+
* overview slide and `!!Content` inside a `!!Circle` group on every topic
|
|
26583
|
+
* slide:
|
|
26498
26584
|
*
|
|
26499
|
-
*
|
|
26500
|
-
*
|
|
26501
|
-
*
|
|
26502
|
-
*
|
|
26503
|
-
*
|
|
26504
|
-
*
|
|
26505
|
-
* overview slide and wraps the identical artwork in a `!!Circle` group on every
|
|
26506
|
-
* topic slide).
|
|
26585
|
+
* - overview -> topic (3->4): the disc dissolves out and back in. The pixel
|
|
26586
|
+
* at the disc's centre reads RGB 39,40,42 (opaque) at 0ms, 174,194,204
|
|
26587
|
+
* (the artwork BEHIND it) from 324ms to 449ms, and 39,40,42 again by 983ms.
|
|
26588
|
+
* PowerPoint did not pair the two halves.
|
|
26589
|
+
* - topic -> topic (4->5, 5->9): the same pixel holds 39,40,42 for the whole
|
|
26590
|
+
* transition. The two `!!Circle` groups paired, so their contents did too.
|
|
26507
26591
|
*
|
|
26508
|
-
*
|
|
26509
|
-
*
|
|
26510
|
-
*
|
|
26511
|
-
* as a single unit exactly as before.
|
|
26592
|
+
* So a group is decomposed only when the OTHER slide has a group it would pair
|
|
26593
|
+
* with, which reproduces both halves of that measurement. Groups without a
|
|
26594
|
+
* counterpart stay whole and dissolve as one object, and ordinary grouped
|
|
26595
|
+
* artwork keeps animating as a single unit exactly as before.
|
|
26512
26596
|
*
|
|
26513
26597
|
* Decomposed children are returned with ABSOLUTE slide coordinates, because
|
|
26514
|
-
* that is the space every downstream geometry calculation (deltas, proximity
|
|
26515
|
-
*
|
|
26516
|
-
*
|
|
26598
|
+
* that is the space every downstream geometry calculation (deltas, proximity)
|
|
26599
|
+
* works in. A binding renders group children as absolutely positioned boxes
|
|
26600
|
+
* inside the group's own box, and the group carries no extra scale, so a
|
|
26517
26601
|
* translation delta in slide space is also correct inside the group - which is
|
|
26518
26602
|
* what lets the incoming half animate the child's own node in place.
|
|
26519
26603
|
*
|
|
@@ -26553,74 +26637,70 @@ function toAbsolute(child, offsetX, offsetY) {
|
|
|
26553
26637
|
}
|
|
26554
26638
|
return { ...child, x: child.x + offsetX, y: child.y + offsetY };
|
|
26555
26639
|
}
|
|
26640
|
+
/** Boxes agree on all four numbers to within a sub-pixel tolerance. */
|
|
26641
|
+
function sameBox(a, b) {
|
|
26642
|
+
return (Math.abs(a.x - b.x) <= 0.5 &&
|
|
26643
|
+
Math.abs(a.y - b.y) <= 0.5 &&
|
|
26644
|
+
Math.abs(a.width - b.width) <= 0.5 &&
|
|
26645
|
+
Math.abs(a.height - b.height) <= 0.5);
|
|
26646
|
+
}
|
|
26556
26647
|
/**
|
|
26557
|
-
* The
|
|
26648
|
+
* The group among `candidates` that a morph would pair `group` with, if any.
|
|
26558
26649
|
*
|
|
26559
|
-
*
|
|
26560
|
-
*
|
|
26561
|
-
*
|
|
26650
|
+
* Only signals strong enough to mean "the same container, restyled or moved"
|
|
26651
|
+
* count: the `!!` morph name, the Selection Pane name, or an identical box.
|
|
26652
|
+
* Proximity deliberately does not, because two unrelated groups that merely sit
|
|
26653
|
+
* near each other must keep animating as whole objects.
|
|
26562
26654
|
*/
|
|
26563
|
-
function
|
|
26655
|
+
function correspondingGroup(group, candidates) {
|
|
26656
|
+
const morphName = getElementMorphName(group);
|
|
26657
|
+
return candidates.find((candidate) => {
|
|
26658
|
+
if (candidate.type !== 'group') {
|
|
26659
|
+
return false;
|
|
26660
|
+
}
|
|
26661
|
+
if (morphName !== undefined && getElementMorphName(candidate) === morphName) {
|
|
26662
|
+
return true;
|
|
26663
|
+
}
|
|
26664
|
+
if (group.name && candidate.name === group.name) {
|
|
26665
|
+
return true;
|
|
26666
|
+
}
|
|
26667
|
+
return sameBox(group, candidate);
|
|
26668
|
+
});
|
|
26669
|
+
}
|
|
26670
|
+
/**
|
|
26671
|
+
* The elements of `elements` that a morph should treat as individual units,
|
|
26672
|
+
* given the `counterpart` slide's elements at the same level of the tree.
|
|
26673
|
+
*
|
|
26674
|
+
* A group is replaced by its children (in document order, recursively, in
|
|
26675
|
+
* absolute coordinates) when it holds a `!!`-named descendant AND `counterpart`
|
|
26676
|
+
* holds a group it would pair with; everything else is passed through
|
|
26677
|
+
* untouched. See the module comment for why both conditions are required.
|
|
26678
|
+
*/
|
|
26679
|
+
function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
|
|
26564
26680
|
const out = [];
|
|
26565
26681
|
for (const element of elements) {
|
|
26566
26682
|
const children = groupChildren(element);
|
|
26567
26683
|
if (children && containsMorphNamedDescendant(element)) {
|
|
26568
|
-
|
|
26569
|
-
|
|
26684
|
+
const twin = correspondingGroup(element, counterpart);
|
|
26685
|
+
const twinChildren = twin ? (groupChildren(twin) ?? []) : undefined;
|
|
26686
|
+
if (twinChildren) {
|
|
26687
|
+
out.push(...flattenMorphElements(children, twinChildren, offsetX + element.x, offsetY + element.y));
|
|
26688
|
+
continue;
|
|
26689
|
+
}
|
|
26570
26690
|
}
|
|
26571
26691
|
out.push(toAbsolute(element, offsetX, offsetY));
|
|
26572
26692
|
}
|
|
26573
26693
|
return out;
|
|
26574
26694
|
}
|
|
26575
26695
|
/**
|
|
26576
|
-
* True when `elements` holds a group that {@link flattenMorphElements}
|
|
26577
|
-
* decompose. Lets a caller skip the copy entirely for
|
|
26578
|
-
* case of a slide with no `!!`-named group content.
|
|
26696
|
+
* True when `elements` holds a group that {@link flattenMorphElements} could
|
|
26697
|
+
* decompose against some counterpart. Lets a caller skip the copy entirely for
|
|
26698
|
+
* the overwhelmingly common case of a slide with no `!!`-named group content.
|
|
26579
26699
|
*/
|
|
26580
26700
|
function needsMorphFlattening(elements) {
|
|
26581
26701
|
return elements.some((element) => containsMorphNamedDescendant(element));
|
|
26582
26702
|
}
|
|
26583
26703
|
|
|
26584
|
-
/**
|
|
26585
|
-
* Tolerance (px, slide coordinates) within which two boxes count as identical
|
|
26586
|
-
* for the same-box pass. Sub-pixel only: this pass ignores element type, so it
|
|
26587
|
-
* must never absorb a shape that merely sits close by.
|
|
26588
|
-
*/
|
|
26589
|
-
const SAME_BOX_TOLERANCE_PX = 0.5;
|
|
26590
|
-
// ---------------------------------------------------------------------------
|
|
26591
|
-
// Element name extraction
|
|
26592
|
-
// ---------------------------------------------------------------------------
|
|
26593
|
-
/**
|
|
26594
|
-
* Extract the morph-matching name from an element.
|
|
26595
|
-
*
|
|
26596
|
-
* Priority:
|
|
26597
|
-
* 1. Element name property from `cNvPr/@name` starting with "!!"
|
|
26598
|
-
* 2. Text content starting with "!!" (explicit morph name convention)
|
|
26599
|
-
*
|
|
26600
|
-
* PowerPoint matches elements across slides when their Selection Pane name
|
|
26601
|
-
* (i.e. `cNvPr/@name`) starts with `!!`. Elements with identical `!!`-prefixed
|
|
26602
|
-
* names are paired for morph animation regardless of type or position.
|
|
26603
|
-
*
|
|
26604
|
-
* @param element - The element to extract a morph name from.
|
|
26605
|
-
* @returns The morph name string, or undefined if none found.
|
|
26606
|
-
*/
|
|
26607
|
-
function getElementMorphName(element) {
|
|
26608
|
-
// Check !! naming convention on element name (cNvPr/@name) — primary source
|
|
26609
|
-
if (element.name) {
|
|
26610
|
-
const name = element.name.trim();
|
|
26611
|
-
if (name.startsWith('!!')) {
|
|
26612
|
-
return name;
|
|
26613
|
-
}
|
|
26614
|
-
}
|
|
26615
|
-
// Check !! naming convention in text content — fallback
|
|
26616
|
-
if (hasTextProperties(element) && element.text) {
|
|
26617
|
-
const text = element.text.trim();
|
|
26618
|
-
if (text.startsWith('!!')) {
|
|
26619
|
-
return text;
|
|
26620
|
-
}
|
|
26621
|
-
}
|
|
26622
|
-
return undefined;
|
|
26623
|
-
}
|
|
26624
26704
|
// ---------------------------------------------------------------------------
|
|
26625
26705
|
// Creation identity (`a16:creationId`)
|
|
26626
26706
|
// ---------------------------------------------------------------------------
|
|
@@ -26678,6 +26758,10 @@ function getElementCreationId(element) {
|
|
|
26678
26758
|
* 2b. Native shape id from `p:cNvPr/@id` (only when creationIds are absent)
|
|
26679
26759
|
* 3. Type + proximity + size matching (same type within 300px, similar box)
|
|
26680
26760
|
*
|
|
26761
|
+
* Matching is per level of the shape tree: two groups that pair are decomposed
|
|
26762
|
+
* so their contents can pair too, and a group with no counterpart stays one
|
|
26763
|
+
* object (see `morph-flatten`).
|
|
26764
|
+
*
|
|
26681
26765
|
* Returns only matched pairs (no unmatched elements).
|
|
26682
26766
|
*
|
|
26683
26767
|
* @param fromSlide - The outgoing slide.
|
|
@@ -26699,13 +26783,13 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
26699
26783
|
const pairs = [];
|
|
26700
26784
|
const usedFrom = new Set();
|
|
26701
26785
|
const usedTo = new Set();
|
|
26702
|
-
//
|
|
26703
|
-
// absolute coordinates) so
|
|
26704
|
-
//
|
|
26705
|
-
//
|
|
26706
|
-
//
|
|
26707
|
-
const fromElements = flattenMorphElements(fromSlide.elements);
|
|
26708
|
-
const toElements = flattenMorphElements(toSlide.elements);
|
|
26786
|
+
// Two groups that pair with each other are decomposed into their children
|
|
26787
|
+
// (in absolute coordinates) so the contents can pair too, which is how
|
|
26788
|
+
// PowerPoint descends a matched container. A group with no counterpart -
|
|
26789
|
+
// including one whose `!!`-named shape sits top-level on the other slide -
|
|
26790
|
+
// stays whole and animates (or dissolves) as one unit. See `morph-flatten`.
|
|
26791
|
+
const fromElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
|
|
26792
|
+
const toElements = flattenMorphElements(toSlide.elements, fromSlide.elements);
|
|
26709
26793
|
// Pass 1: match by !! naming convention
|
|
26710
26794
|
for (const fromEl of fromElements) {
|
|
26711
26795
|
const fromName = getElementMorphName(fromEl);
|
|
@@ -26836,36 +26920,17 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
26836
26920
|
usedTo.add(bestMatch.id);
|
|
26837
26921
|
}
|
|
26838
26922
|
}
|
|
26839
|
-
//
|
|
26840
|
-
//
|
|
26841
|
-
// issue #131 wheel
|
|
26842
|
-
//
|
|
26843
|
-
//
|
|
26844
|
-
//
|
|
26845
|
-
//
|
|
26923
|
+
// There is deliberately no further pass pairing leftovers that merely
|
|
26924
|
+
// occupy the same box across element types. One used to exist, to carry the
|
|
26925
|
+
// issue #131 wheel's centre through as one object where the overview slide
|
|
26926
|
+
// holds it as a bare `!!Content` shape and the topic slides wrap the same
|
|
26927
|
+
// artwork in a `!!Circle` group of the identical box. PowerPoint does not:
|
|
26928
|
+
// sampled frames of the real transition show that centre dissolving out to
|
|
26929
|
+
// the artwork behind it (RGB 39,40,42 -> 174,194,204 by 324ms) and back in,
|
|
26930
|
+
// which is what an UNMATCHED pair looks like. Pairing a shape with a group
|
|
26931
|
+
// held it solid instead, so the ghost never dissolved and the incoming half
|
|
26932
|
+
// popped.
|
|
26846
26933
|
//
|
|
26847
|
-
// The box must agree on all four numbers (within a sub-pixel tolerance),
|
|
26848
|
-
// which is a far stricter test than the proximity pass and cannot pull in a
|
|
26849
|
-
// merely nearby shape.
|
|
26850
|
-
for (const fromEl of fromElements) {
|
|
26851
|
-
if (usedFrom.has(fromEl.id)) {
|
|
26852
|
-
continue;
|
|
26853
|
-
}
|
|
26854
|
-
for (const toEl of toElements) {
|
|
26855
|
-
if (usedTo.has(toEl.id)) {
|
|
26856
|
-
continue;
|
|
26857
|
-
}
|
|
26858
|
-
if (Math.abs(fromEl.x - toEl.x) <= SAME_BOX_TOLERANCE_PX &&
|
|
26859
|
-
Math.abs(fromEl.y - toEl.y) <= SAME_BOX_TOLERANCE_PX &&
|
|
26860
|
-
Math.abs(fromEl.width - toEl.width) <= SAME_BOX_TOLERANCE_PX &&
|
|
26861
|
-
Math.abs(fromEl.height - toEl.height) <= SAME_BOX_TOLERANCE_PX) {
|
|
26862
|
-
pairs.push({ fromElement: fromEl, toElement: toEl });
|
|
26863
|
-
usedFrom.add(fromEl.id);
|
|
26864
|
-
usedTo.add(toEl.id);
|
|
26865
|
-
break;
|
|
26866
|
-
}
|
|
26867
|
-
}
|
|
26868
|
-
}
|
|
26869
26934
|
// Collect unmatched elements
|
|
26870
26935
|
const unmatchedFrom = fromElements.filter((el) => !usedFrom.has(el.id));
|
|
26871
26936
|
const unmatchedTo = toElements.filter((el) => !usedTo.has(el.id));
|
|
@@ -27458,17 +27523,29 @@ function generateMorphGhostAnimations(pairs, durationMs, startIndex) {
|
|
|
27458
27523
|
* in 45deg steps, so clicking the neighbouring wedge sent the arrow the long
|
|
27459
27524
|
* way around the dial.
|
|
27460
27525
|
*
|
|
27461
|
-
*
|
|
27462
|
-
*
|
|
27526
|
+
* An exact half turn has no shorter arc, and PowerPoint's choice there is not
|
|
27527
|
+
* a fixed sign: it turns CLOCKWISE when the shape starts anywhere in
|
|
27528
|
+
* [90, 270) and ANTI-clockwise otherwise. Measured on PowerPoint 16 by
|
|
27529
|
+
* sampling the rendered frames of a half-turn morph, both on the issue #131
|
|
27530
|
+
* wheel (0->180 anti, 45->225 anti, 90->270 clock, 135->315 clock, 180->360
|
|
27531
|
+
* clock, 270->90 anti) and on a synthetic two-slide deck built for the purpose
|
|
27532
|
+
* (0->180 anti, 45->225 anti, 90->270 clock, 270->90 anti), which agrees on
|
|
27533
|
+
* every case. Always taking +180 sent the wheel's arrow round the wrong side
|
|
27534
|
+
* for the wedge diametrically opposite the one on screen, so one click in
|
|
27535
|
+
* seven looked nothing like the others.
|
|
27463
27536
|
*/
|
|
27464
27537
|
function shortestRotationTarget(fromDeg, toDeg) {
|
|
27465
27538
|
let delta = (toDeg - fromDeg) % 360;
|
|
27466
27539
|
if (delta > 180) {
|
|
27467
27540
|
delta -= 360;
|
|
27468
27541
|
}
|
|
27469
|
-
else if (delta
|
|
27542
|
+
else if (delta < -180) {
|
|
27470
27543
|
delta += 360;
|
|
27471
27544
|
}
|
|
27545
|
+
if (Math.abs(Math.abs(delta) - 180) < 1e-9) {
|
|
27546
|
+
const start = ((fromDeg % 360) + 360) % 360;
|
|
27547
|
+
delta = start >= 90 && start < 270 ? 180 : -180;
|
|
27548
|
+
}
|
|
27472
27549
|
return fromDeg + delta;
|
|
27473
27550
|
}
|
|
27474
27551
|
/**
|
|
@@ -27484,6 +27561,15 @@ function staticTransformSuffix(el) {
|
|
|
27484
27561
|
/**
|
|
27485
27562
|
* Generate fade-out animations for elements that only exist on the outgoing slide.
|
|
27486
27563
|
*
|
|
27564
|
+
* The shape dissolves in the FIRST quarter of the morph rather than across the
|
|
27565
|
+
* whole of it, and holds at zero from there (see
|
|
27566
|
+
* {@link MORPH_FADE_OUT_END_PERCENT} for the frames that were measured). Fading
|
|
27567
|
+
* it over the full duration left it half-visible at the midpoint, on top of an
|
|
27568
|
+
* incoming replacement that was itself half-visible, so the middle of every
|
|
27569
|
+
* morph read as a double exposure where PowerPoint shows a clean gap.
|
|
27570
|
+
*
|
|
27571
|
+
* Nothing scales: PowerPoint's dissolve keeps the box exactly where it is.
|
|
27572
|
+
*
|
|
27487
27573
|
* @param elements - Unmatched elements from the outgoing slide.
|
|
27488
27574
|
* @param durationMs - Animation duration in milliseconds.
|
|
27489
27575
|
* @param startIndex - Index offset for unique keyframe naming.
|
|
@@ -27492,20 +27578,29 @@ function staticTransformSuffix(el) {
|
|
|
27492
27578
|
function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
27493
27579
|
return elements.map((el, i) => {
|
|
27494
27580
|
const safeName = `pptx-morph-fadeout-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, '')}`;
|
|
27581
|
+
const transform = `\t\ttransform: scale(1)${staticTransformSuffix(el)};`;
|
|
27495
27582
|
const keyframes = `
|
|
27496
27583
|
@keyframes ${safeName} {
|
|
27497
|
-
\
|
|
27584
|
+
\t0% {
|
|
27498
27585
|
\t\topacity: ${el.opacity ?? 1};
|
|
27499
|
-
|
|
27586
|
+
${transform}
|
|
27500
27587
|
\t}
|
|
27501
|
-
\
|
|
27588
|
+
\t${MORPH_FADE_OUT_HOLD_PERCENT}% {
|
|
27589
|
+
\t\topacity: ${el.opacity ?? 1};
|
|
27590
|
+
${transform}
|
|
27591
|
+
\t}
|
|
27592
|
+
\t${MORPH_FADE_OUT_END_PERCENT}% {
|
|
27502
27593
|
\t\topacity: 0;
|
|
27503
|
-
|
|
27594
|
+
${transform}
|
|
27595
|
+
\t}
|
|
27596
|
+
\t100% {
|
|
27597
|
+
\t\topacity: 0;
|
|
27598
|
+
${transform}
|
|
27504
27599
|
\t}
|
|
27505
27600
|
}`;
|
|
27506
27601
|
return {
|
|
27507
27602
|
elementId: el.id,
|
|
27508
|
-
animation: `${safeName} ${durationMs}ms
|
|
27603
|
+
animation: `${safeName} ${durationMs}ms linear forwards`,
|
|
27509
27604
|
keyframes,
|
|
27510
27605
|
};
|
|
27511
27606
|
});
|
|
@@ -27513,6 +27608,12 @@ function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
|
27513
27608
|
/**
|
|
27514
27609
|
* Generate fade-in animations for elements that only exist on the incoming slide.
|
|
27515
27610
|
*
|
|
27611
|
+
* The shape stays completely invisible until the morph is
|
|
27612
|
+
* {@link MORPH_FADE_IN_START_PERCENT}% through, then dissolves in on a
|
|
27613
|
+
* decelerating curve. See that constant for the frames that were measured.
|
|
27614
|
+
*
|
|
27615
|
+
* Nothing scales: PowerPoint's dissolve keeps the box exactly where it is.
|
|
27616
|
+
*
|
|
27516
27617
|
* @param elements - Unmatched elements from the incoming slide.
|
|
27517
27618
|
* @param durationMs - Animation duration in milliseconds.
|
|
27518
27619
|
* @param startIndex - Index offset for unique keyframe naming.
|
|
@@ -27521,20 +27622,26 @@ function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
|
27521
27622
|
function generateUnmatchedFadeInAnimations(elements, durationMs, startIndex) {
|
|
27522
27623
|
return elements.map((el, i) => {
|
|
27523
27624
|
const safeName = `pptx-morph-fadein-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, '')}`;
|
|
27625
|
+
const transform = `\t\ttransform: scale(1)${staticTransformSuffix(el)};`;
|
|
27524
27626
|
const keyframes = `
|
|
27525
27627
|
@keyframes ${safeName} {
|
|
27526
|
-
\
|
|
27628
|
+
\t0% {
|
|
27527
27629
|
\t\topacity: 0;
|
|
27528
|
-
|
|
27630
|
+
${transform}
|
|
27529
27631
|
\t}
|
|
27530
|
-
\
|
|
27632
|
+
\t${MORPH_FADE_IN_START_PERCENT}% {
|
|
27633
|
+
\t\topacity: 0;
|
|
27634
|
+
\t\tanimation-timing-function: ${MORPH_FADE_IN_EASING};
|
|
27635
|
+
${transform}
|
|
27636
|
+
\t}
|
|
27637
|
+
\t100% {
|
|
27531
27638
|
\t\topacity: ${el.opacity ?? 1};
|
|
27532
|
-
|
|
27639
|
+
${transform}
|
|
27533
27640
|
\t}
|
|
27534
27641
|
}`;
|
|
27535
27642
|
return {
|
|
27536
27643
|
elementId: el.id,
|
|
27537
|
-
animation: `${safeName} ${durationMs}ms
|
|
27644
|
+
animation: `${safeName} ${durationMs}ms linear forwards`,
|
|
27538
27645
|
keyframes,
|
|
27539
27646
|
};
|
|
27540
27647
|
});
|
|
@@ -27661,12 +27768,12 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = 'object
|
|
|
27661
27768
|
// implementation detail of core rather than an assumption here.
|
|
27662
27769
|
//
|
|
27663
27770
|
// The list is FLATTENED the same way the matcher flattens it (see
|
|
27664
|
-
// `morph-flatten`)
|
|
27665
|
-
//
|
|
27666
|
-
//
|
|
27667
|
-
//
|
|
27668
|
-
//
|
|
27669
|
-
const outgoingElements = flattenMorphElements(fromSlide.elements);
|
|
27771
|
+
// `morph-flatten`), against the SAME counterpart, so the two agree on which
|
|
27772
|
+
// groups were decomposed: the animations are keyed by the decomposed
|
|
27773
|
+
// children's ids. Painting the undecomposed group here instead would paint
|
|
27774
|
+
// the children twice over - once inside the group, once as their own ghosts
|
|
27775
|
+
// - and leave the group itself without an animation.
|
|
27776
|
+
const outgoingElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
|
|
27670
27777
|
const outgoingIds = new Set(outgoingElements.map((element) => element.id));
|
|
27671
27778
|
const incomingAnimations = new Map();
|
|
27672
27779
|
const outgoingAnimations = new Map();
|
|
@@ -44303,6 +44410,33 @@ function shouldLoopContinuously(input) {
|
|
|
44303
44410
|
function isClickAdvanceAllowed(slide) {
|
|
44304
44411
|
return slide?.transition?.advanceOnClick !== false;
|
|
44305
44412
|
}
|
|
44413
|
+
/**
|
|
44414
|
+
* PowerPoint's "After: <n>" timed advance (`p:transition/@advTm`, milliseconds).
|
|
44415
|
+
*
|
|
44416
|
+
* Returns the delay a slide show must wait before stepping to the next slide on
|
|
44417
|
+
* its own, or `undefined` when the slide waits for input instead. Timings are
|
|
44418
|
+
* honoured unless the show is explicitly set to manual advance
|
|
44419
|
+
* (`PptxPresentationProperties.advanceMode === 'manual'`, surfaced here as
|
|
44420
|
+
* `useTimings: false`); an unset flag keeps them, matching PowerPoint's default
|
|
44421
|
+
* "Using timings, if present".
|
|
44422
|
+
*
|
|
44423
|
+
* This pairs with {@link isClickAdvanceAllowed}: a slide authored with
|
|
44424
|
+
* `advClick="0" advTm="…"` is advanced ONLY by this timer, so a binding that
|
|
44425
|
+
* honours the click gate without also running the timer leaves the show
|
|
44426
|
+
* permanently stuck on that slide with no visible response to input.
|
|
44427
|
+
*/
|
|
44428
|
+
function resolveAutoAdvanceDelayMs(slide, options) {
|
|
44429
|
+
if (options?.useTimings === false) {
|
|
44430
|
+
return undefined;
|
|
44431
|
+
}
|
|
44432
|
+
const advanceAfterMs = slide?.transition?.advanceAfterMs;
|
|
44433
|
+
if (typeof advanceAfterMs !== 'number' ||
|
|
44434
|
+
!Number.isFinite(advanceAfterMs) ||
|
|
44435
|
+
advanceAfterMs < 0) {
|
|
44436
|
+
return undefined;
|
|
44437
|
+
}
|
|
44438
|
+
return advanceAfterMs;
|
|
44439
|
+
}
|
|
44306
44440
|
function applyRehearsalTimings(slides, timings) {
|
|
44307
44441
|
return slides.map((slide, index) => {
|
|
44308
44442
|
const advanceAfterMs = timings[index];
|
|
@@ -53049,7 +53183,7 @@ function createLocalStorageBackend(namespace) {
|
|
|
53049
53183
|
/** Try IndexedDB first; fall back to localStorage on any failure. */
|
|
53050
53184
|
async function resolveBackend(dbName, namespace) {
|
|
53051
53185
|
try {
|
|
53052
|
-
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-
|
|
53186
|
+
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-CiJHyQZ_.mjs');
|
|
53053
53187
|
const db = await openChatDb(dbName);
|
|
53054
53188
|
return createIdbBackend(db);
|
|
53055
53189
|
}
|
|
@@ -60623,46 +60757,6 @@ function parseNodeTextarea(value, fallback) {
|
|
|
60623
60757
|
return lines.length > 0 ? lines : [...fallback];
|
|
60624
60758
|
}
|
|
60625
60759
|
|
|
60626
|
-
/**
|
|
60627
|
-
* Gradient fill CSS builders.
|
|
60628
|
-
*
|
|
60629
|
-
* Thin re-export shim. The implementation now lives in the framework-agnostic
|
|
60630
|
-
* `pptx-viewer-shared` package (`render/fill-style.ts`), vendored into this
|
|
60631
|
-
* library via `../internal/shared`. This file preserves the historical
|
|
60632
|
-
* `./color-gradient` import surface so existing consumers and colocated tests
|
|
60633
|
-
* keep importing the same symbols unchanged.
|
|
60634
|
-
*
|
|
60635
|
-
* Gradient rendering follows ECMA-376 Part 1, §20.1.8.35 (gradFill) and
|
|
60636
|
-
* §20.1.8.49 (pathFill).
|
|
60637
|
-
*/
|
|
60638
|
-
|
|
60639
|
-
/**
|
|
60640
|
-
* SVG pattern generation for OOXML pattern fill presets.
|
|
60641
|
-
*
|
|
60642
|
-
* Thin re-export shim. The implementation now lives in the framework-agnostic
|
|
60643
|
-
* `pptx-viewer-shared` package (`render/fill-style.ts`), vendored into this
|
|
60644
|
-
* library via `../internal/shared`. This file preserves the historical
|
|
60645
|
-
* `./color-patterns` import surface.
|
|
60646
|
-
*
|
|
60647
|
-
* Deliberate divergence: shared `getPatternSvg` returns `string | null` for an
|
|
60648
|
-
* unknown preset, whereas the Angular binding's public contract (and its
|
|
60649
|
-
* colocated tests) expect `string | undefined`. This shim normalises `null` to
|
|
60650
|
-
* `undefined` so that contract is preserved.
|
|
60651
|
-
*
|
|
60652
|
-
* Reference: ECMA-376 Part 1, §20.1.10.33 (ST_PresetPatternVal).
|
|
60653
|
-
*/
|
|
60654
|
-
/**
|
|
60655
|
-
* Generate an inline SVG string for an OOXML preset pattern fill.
|
|
60656
|
-
*
|
|
60657
|
-
* @param preset - DrawingML `ST_PresetPatternVal` string (e.g. `"pct5"`).
|
|
60658
|
-
* @param fgColor - Foreground hex colour (e.g. `"#000000"`).
|
|
60659
|
-
* @param bgColor - Background hex colour (e.g. `"#ffffff"`).
|
|
60660
|
-
* @returns An SVG string, or `undefined` when the preset is not implemented.
|
|
60661
|
-
*/
|
|
60662
|
-
function getPatternSvg(preset, fgColor, bgColor) {
|
|
60663
|
-
return getPatternSvg$1(preset, fgColor, bgColor) ?? undefined;
|
|
60664
|
-
}
|
|
60665
|
-
|
|
60666
60760
|
/**
|
|
60667
60761
|
* Duotone SVG `<filter>` descriptor for Angular templates.
|
|
60668
60762
|
*
|
|
@@ -60908,55 +61002,35 @@ function getShapeFillStrokeStyle(el, parentGroupFill, animatesFill, animatesStro
|
|
|
60908
61002
|
const ss = el.shapeStyle;
|
|
60909
61003
|
const style = {};
|
|
60910
61004
|
if (ss) {
|
|
60911
|
-
//
|
|
60912
|
-
//
|
|
60913
|
-
//
|
|
60914
|
-
|
|
60915
|
-
|
|
60916
|
-
|
|
60917
|
-
//
|
|
60918
|
-
//
|
|
60919
|
-
//
|
|
60920
|
-
//
|
|
60921
|
-
|
|
60922
|
-
|
|
60923
|
-
const
|
|
60924
|
-
|
|
60925
|
-
|
|
60926
|
-
|
|
60927
|
-
|
|
60928
|
-
|
|
60929
|
-
|
|
60930
|
-
|
|
60931
|
-
|
|
60932
|
-
|
|
60933
|
-
|
|
60934
|
-
|
|
60935
|
-
|
|
60936
|
-
|
|
60937
|
-
|
|
60938
|
-
|
|
60939
|
-
|
|
60940
|
-
style['background-size'] = inheritedGroupFill.backgroundSize;
|
|
60941
|
-
}
|
|
60942
|
-
}
|
|
60943
|
-
else if (imageFillUrl) {
|
|
60944
|
-
style['background-color'] = 'transparent';
|
|
60945
|
-
style['background-image'] = `url(${imageFillUrl})`;
|
|
60946
|
-
style['background-repeat'] = ss.fillImageMode === 'tile' ? 'repeat' : 'no-repeat';
|
|
60947
|
-
style['background-size'] = ss.fillImageMode === 'tile' ? 'auto' : '100% 100%';
|
|
60948
|
-
}
|
|
60949
|
-
else if (patternCss) {
|
|
60950
|
-
style['background-image'] = patternCss.backgroundImage;
|
|
60951
|
-
style['background-color'] = patternCss.backgroundColor;
|
|
60952
|
-
style['background-repeat'] = 'repeat';
|
|
60953
|
-
style['background-size'] = 'auto';
|
|
60954
|
-
}
|
|
60955
|
-
else if (gradient) {
|
|
60956
|
-
style['background-image'] = gradient;
|
|
60957
|
-
}
|
|
60958
|
-
else if (ss.fillColor && ss.fillColor !== 'transparent' && ss.fillMode !== 'none') {
|
|
60959
|
-
style['background-color'] = ss.fillColor;
|
|
61005
|
+
// Fill: resolved entirely by the shared builder, in React's order
|
|
61006
|
+
// image → structured gradient (falling back to the parser's prebuilt
|
|
61007
|
+
// `fillGradient` string) → preset pattern → solid colour WITH
|
|
61008
|
+
// `fillOpacity` applied. A `a:grpFill` child (fillMode 'group') inherits
|
|
61009
|
+
// `parentGroupFill`, painted in this child's own box.
|
|
61010
|
+
//
|
|
61011
|
+
// This deliberately delegates instead of re-deriving the cascade locally:
|
|
61012
|
+
// the local copy dropped `ss.fillOpacity`, so a shape authored
|
|
61013
|
+
// `<a:solidFill><a:schemeClr …><a:alpha val="0"/></a:schemeClr></a:solidFill>`
|
|
61014
|
+
// (a fully TRANSPARENT overlay, common over a full-bleed background video)
|
|
61015
|
+
// painted as an opaque block of colour and hid everything beneath it.
|
|
61016
|
+
// Skipped entirely while a `p:animClr` fill animation owns the colour.
|
|
61017
|
+
const fill = animatesFill ? undefined : getComputedFillStyle(el, parentGroupFill);
|
|
61018
|
+
if (fill) {
|
|
61019
|
+
if (fill.backgroundColor !== undefined) {
|
|
61020
|
+
style['background-color'] = fill.backgroundColor;
|
|
61021
|
+
}
|
|
61022
|
+
if (fill.backgroundImage !== undefined) {
|
|
61023
|
+
style['background-image'] = fill.backgroundImage;
|
|
61024
|
+
}
|
|
61025
|
+
if (fill.backgroundRepeat !== undefined) {
|
|
61026
|
+
style['background-repeat'] = fill.backgroundRepeat;
|
|
61027
|
+
}
|
|
61028
|
+
if (fill.backgroundSize !== undefined) {
|
|
61029
|
+
style['background-size'] = fill.backgroundSize;
|
|
61030
|
+
}
|
|
61031
|
+
if (fill.backgroundPosition !== undefined) {
|
|
61032
|
+
style['background-position'] = fill.backgroundPosition;
|
|
61033
|
+
}
|
|
60960
61034
|
}
|
|
60961
61035
|
// Stroke.
|
|
60962
61036
|
const strokeWidth = Math.max(0, ss.strokeWidth ?? 0);
|
|
@@ -79367,6 +79441,23 @@ function createSlideKeyframesStyle() {
|
|
|
79367
79441
|
function shouldBlockClickAdvance(playbackComplete, slide) {
|
|
79368
79442
|
return playbackComplete && !isClickAdvanceAllowed(slide);
|
|
79369
79443
|
}
|
|
79444
|
+
/**
|
|
79445
|
+
* Delay in ms before the show steps to the next slide on its own, or
|
|
79446
|
+
* `undefined` when the current slide waits for input.
|
|
79447
|
+
*
|
|
79448
|
+
* The counterpart to {@link shouldBlockClickAdvance}: PowerPoint's
|
|
79449
|
+
* `p:transition/@advTm` ("Advance slide: After <n>"). A slide authored
|
|
79450
|
+
* `advClick="0" advTm="…"` is advanced ONLY by this timer, so honouring the
|
|
79451
|
+
* click gate without also arming the timer strands the show on that slide with
|
|
79452
|
+
* no visible response to any input. Nothing is scheduled once the end-of-show
|
|
79453
|
+
* screen is up, or when the show is set to advance manually.
|
|
79454
|
+
*/
|
|
79455
|
+
function resolveSlideAutoAdvanceMs(slide, useTimings, endOfShow) {
|
|
79456
|
+
if (endOfShow) {
|
|
79457
|
+
return undefined;
|
|
79458
|
+
}
|
|
79459
|
+
return resolveAutoAdvanceDelayMs(slide, { useTimings });
|
|
79460
|
+
}
|
|
79370
79461
|
/**
|
|
79371
79462
|
* Clamp `index` to the valid range [0, count - 1].
|
|
79372
79463
|
* Returns 0 when `count` is 0 to avoid -1 states.
|
|
@@ -80020,6 +80111,14 @@ class PresentationOverlayComponent {
|
|
|
80020
80111
|
...(ngDevMode ? [{ debugName: "startIndex" }] : /* istanbul ignore next */ []));
|
|
80021
80112
|
showWithAnimation = input(undefined, /* @ts-ignore */
|
|
80022
80113
|
...(ngDevMode ? [{ debugName: "showWithAnimation" }] : /* istanbul ignore next */ []));
|
|
80114
|
+
/**
|
|
80115
|
+
* Whether authored slide timings (`p:transition/@advTm`) advance the show on
|
|
80116
|
+
* their own. False is PowerPoint's "Advance slides: Manually"
|
|
80117
|
+
* (`PptxPresentationProperties.advanceMode === 'manual'`); the default keeps
|
|
80118
|
+
* timings, matching "Using timings, if present".
|
|
80119
|
+
*/
|
|
80120
|
+
useTimings = input(true, /* @ts-ignore */
|
|
80121
|
+
...(ngDevMode ? [{ debugName: "useTimings" }] : /* istanbul ignore next */ []));
|
|
80023
80122
|
subtitlesVisible = input(false, /* @ts-ignore */
|
|
80024
80123
|
...(ngDevMode ? [{ debugName: "subtitlesVisible" }] : /* istanbul ignore next */ []));
|
|
80025
80124
|
/**
|
|
@@ -80122,11 +80221,38 @@ class PresentationOverlayComponent {
|
|
|
80122
80221
|
slideKeyframes = createSlideKeyframesStyle();
|
|
80123
80222
|
/** The hover-trigger shape the pointer is currently over (fires a sequence once). */
|
|
80124
80223
|
currentHoverTriggerId;
|
|
80224
|
+
/** Pending `p:transition/@advTm` auto-advance timer for the current slide. */
|
|
80225
|
+
autoAdvanceTimer;
|
|
80125
80226
|
constructor() {
|
|
80126
80227
|
this.setupTouchGestures();
|
|
80127
80228
|
this.setupFullscreen();
|
|
80128
80229
|
ensurePresetAnimationKeyframes();
|
|
80129
|
-
inject(DestroyRef).onDestroy(() =>
|
|
80230
|
+
inject(DestroyRef).onDestroy(() => {
|
|
80231
|
+
this.slideKeyframes.dispose();
|
|
80232
|
+
this.clearAutoAdvanceTimer();
|
|
80233
|
+
});
|
|
80234
|
+
// PowerPoint's "Advance slide: After <n>" timing (`p:transition/@advTm`).
|
|
80235
|
+
// Re-armed on every slide change; the previous slide's pending timer is
|
|
80236
|
+
// always cancelled first so a manual advance can never leave a stale timer
|
|
80237
|
+
// running that skips the slide the presenter just moved to.
|
|
80238
|
+
//
|
|
80239
|
+
// Without this the show is not merely missing an auto-advance: a slide
|
|
80240
|
+
// authored `advClick="0" advTm="…"` (PowerPoint's "on click OFF, after N")
|
|
80241
|
+
// is advanced ONLY by this timer, and `shouldBlockClickAdvance` correctly
|
|
80242
|
+
// swallows every click on it. The show then sits on that slide for ever
|
|
80243
|
+
// with no visible response to input, which reads as "presentation mode
|
|
80244
|
+
// does nothing at all".
|
|
80245
|
+
effect(() => {
|
|
80246
|
+
const delayMs = resolveSlideAutoAdvanceMs(this.currentSlide(), this.useTimings(), this.endOfShow());
|
|
80247
|
+
this.clearAutoAdvanceTimer();
|
|
80248
|
+
if (delayMs === undefined) {
|
|
80249
|
+
return;
|
|
80250
|
+
}
|
|
80251
|
+
this.autoAdvanceTimer = setTimeout(() => {
|
|
80252
|
+
this.autoAdvanceTimer = undefined;
|
|
80253
|
+
this.navigate('next');
|
|
80254
|
+
}, delayMs);
|
|
80255
|
+
});
|
|
80130
80256
|
// Scope media-command (`p:cmd`) target lookups to the slide stage.
|
|
80131
80257
|
this.playback.setFrameRoot(() => this.stageRef()?.nativeElement ?? null);
|
|
80132
80258
|
// Wire the zoom-navigation context to this overlay's slide navigation so a
|
|
@@ -80593,6 +80719,13 @@ class PresentationOverlayComponent {
|
|
|
80593
80719
|
// ------------------------------------------------------------------
|
|
80594
80720
|
// Navigation helpers
|
|
80595
80721
|
// ------------------------------------------------------------------
|
|
80722
|
+
/** Cancel any pending timed auto-advance. */
|
|
80723
|
+
clearAutoAdvanceTimer() {
|
|
80724
|
+
if (this.autoAdvanceTimer !== undefined) {
|
|
80725
|
+
clearTimeout(this.autoAdvanceTimer);
|
|
80726
|
+
this.autoAdvanceTimer = undefined;
|
|
80727
|
+
}
|
|
80728
|
+
}
|
|
80596
80729
|
navigate(direction) {
|
|
80597
80730
|
const slides = this.slides();
|
|
80598
80731
|
const count = slides.length;
|
|
@@ -80701,7 +80834,7 @@ class PresentationOverlayComponent {
|
|
|
80701
80834
|
this.closed.emit();
|
|
80702
80835
|
}
|
|
80703
80836
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PresentationOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
80704
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: PresentationOverlayComponent, isStandalone: true, selector: "pptx-presentation-overlay", inputs: { slides: { classPropertyName: "slides", publicName: "slides", isSignal: true, isRequired: true, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, showWithAnimation: { classPropertyName: "showWithAnimation", publicName: "showWithAnimation", isSignal: true, isRequired: false, transformFunction: null }, subtitlesVisible: { classPropertyName: "subtitlesVisible", publicName: "subtitlesVisible", isSignal: true, isRequired: false, transformFunction: null }, sessionEnded: { classPropertyName: "sessionEnded", publicName: "sessionEnded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange", closed: "closed", subtitlesChange: "subtitlesChange", annotationsExit: "annotationsExit" }, host: { listeners: { "document:fullscreenchange": "onFullscreenChange()", "window:resize": "onWindowResize()", "document:keydown": "onKeyDown($event)" } }, providers: [AnimationPlaybackService, PresentationAnnotationsService, ZoomNavigationService], viewQueries: [{ propertyName: "stageRef", first: true, predicate: ["stage"], descendants: true, isSignal: true }, { propertyName: "rootRef", first: true, predicate: ["root"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
80837
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: PresentationOverlayComponent, isStandalone: true, selector: "pptx-presentation-overlay", inputs: { slides: { classPropertyName: "slides", publicName: "slides", isSignal: true, isRequired: true, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, showWithAnimation: { classPropertyName: "showWithAnimation", publicName: "showWithAnimation", isSignal: true, isRequired: false, transformFunction: null }, useTimings: { classPropertyName: "useTimings", publicName: "useTimings", isSignal: true, isRequired: false, transformFunction: null }, subtitlesVisible: { classPropertyName: "subtitlesVisible", publicName: "subtitlesVisible", isSignal: true, isRequired: false, transformFunction: null }, sessionEnded: { classPropertyName: "sessionEnded", publicName: "sessionEnded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange", closed: "closed", subtitlesChange: "subtitlesChange", annotationsExit: "annotationsExit" }, host: { listeners: { "document:fullscreenchange": "onFullscreenChange()", "window:resize": "onWindowResize()", "document:keydown": "onKeyDown($event)" } }, providers: [AnimationPlaybackService, PresentationAnnotationsService, ZoomNavigationService], viewQueries: [{ propertyName: "stageRef", first: true, predicate: ["stage"], descendants: true, isSignal: true }, { propertyName: "rootRef", first: true, predicate: ["root"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
80705
80838
|
<div #root class="pptx-ng-presentation-root">
|
|
80706
80839
|
<!--
|
|
80707
80840
|
Slide counter, rendered first in DOM (before slide content) so a
|
|
@@ -81061,7 +81194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
81061
81194
|
</button>
|
|
81062
81195
|
</div>
|
|
81063
81196
|
`, 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"] }]
|
|
81064
|
-
}], 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 }] }], sessionEnded: [{ type: i0.Input, args: [{ isSignal: true, alias: "sessionEnded", 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: [{
|
|
81197
|
+
}], 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 }] }], useTimings: [{ type: i0.Input, args: [{ isSignal: true, alias: "useTimings", required: false }] }], subtitlesVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitlesVisible", required: false }] }], sessionEnded: [{ type: i0.Input, args: [{ isSignal: true, alias: "sessionEnded", 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: [{
|
|
81065
81198
|
type: HostListener,
|
|
81066
81199
|
args: ['document:fullscreenchange']
|
|
81067
81200
|
}], onWindowResize: [{
|
|
@@ -85711,7 +85844,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
85711
85844
|
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }] } });
|
|
85712
85845
|
|
|
85713
85846
|
// Generated by scripts/inline-shared.mjs from package.json. Do not edit.
|
|
85714
|
-
const PPTX_ANGULAR_VIEWER_VERSION = "2.
|
|
85847
|
+
const PPTX_ANGULAR_VIEWER_VERSION = "2.7.0";
|
|
85715
85848
|
|
|
85716
85849
|
/**
|
|
85717
85850
|
* account-page.component.ts: File > Account content.
|
|
@@ -111636,6 +111769,7 @@ class PowerPointViewerComponent {
|
|
|
111636
111769
|
[mediaDataUrls]="loader.mediaDataUrls()"
|
|
111637
111770
|
[startIndex]="customShowsCtl.presentationStartIndex()"
|
|
111638
111771
|
[showWithAnimation]="loader.presentationProperties().showWithAnimation"
|
|
111772
|
+
[useTimings]="loader.presentationProperties().advanceMode !== 'manual'"
|
|
111639
111773
|
[subtitlesVisible]="presentationMode.subtitlesVisible()"
|
|
111640
111774
|
[sessionEnded]="audienceSessionEnded()"
|
|
111641
111775
|
(subtitlesChange)="presentationMode.subtitlesVisible.set($event)"
|
|
@@ -111916,7 +112050,7 @@ class PowerPointViewerComponent {
|
|
|
111916
112050
|
/>
|
|
111917
112051
|
}
|
|
111918
112052
|
</div>
|
|
111919
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "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: PresentationOverlayComponent, selector: "pptx-presentation-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "startIndex", "showWithAnimation", "subtitlesVisible", "sessionEnded"], outputs: ["indexChange", "closed", "subtitlesChange", "annotationsExit"] }, { kind: "component", type: PresenterViewComponent, selector: "pptx-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime", "isAudienceWindowOpen"], outputs: ["movePresentationSlide", "exit", "openAudienceWindow", "closeAudienceWindow", "navigateToSlide"] }, { kind: "component", type: MobilePresenterViewComponent, selector: "pptx-mobile-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime"], outputs: ["movePresentationSlide", "exit"] }, { kind: "component", type: SlideSorterOverlayComponent, selector: "pptx-slide-sorter-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select", "closed"] }, { kind: "component", type: SlideDefaultInspectorComponent, selector: "pptx-slide-default-inspector", inputs: ["slideIndex", "canEdit", "selectedElement", "comments"], outputs: ["commentAdd", "commentRemove", "commentResolve"] }, { kind: "component", type: FindBarComponent, selector: "pptx-find-bar", inputs: ["slides"], outputs: ["navigate", "closed"] }, { kind: "component", type: FindReplaceBarComponent, selector: "pptx-find-replace-bar", inputs: ["matchCount", "matchIndex"], outputs: ["find", "navigate", "replaceOne", "replaceAll", "close"] }, { kind: "component", type: SlidesPanelComponent, selector: "pptx-slides-panel", inputs: ["canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select"] }, { kind: "component", type: StatusBarComponent, selector: "pptx-status-bar", inputs: ["slideIndex", "slideCount", "canEdit", "dirty", "autosaveStatus", "notesOpen", "zoomPercent", "sorterActive", "presenting", "hiddenActions"], outputs: ["toggleNotes", "normalView", "openSorter", "slideShow", "zoomIn", "zoomOut", "zoomReset"] }, { kind: "component", type: EditorContextMenuComponent, selector: "pptx-editor-context-menu", inputs: ["x", "y", "slideIndex", "showAiActions"], outputs: ["closed", "askAi", "fixAi"] }, { kind: "component", type: ExportProgressModalComponent, selector: "pptx-export-progress-modal", inputs: ["open", "title", "progress", "statusMessage"], outputs: ["cancel"] }, { kind: "component", type: CommentsPanelComponent, selector: "pptx-comments-panel", inputs: ["comments", "authorName"], outputs: ["add", "remove", "resolve"] }, { kind: "component", type: SignaturesPanelComponent, selector: "pptx-signatures-panel", inputs: ["signatures"] }, { kind: "component", type: AccessibilityPanelComponent, selector: "pptx-accessibility-panel", inputs: ["issues"], outputs: ["selectSlide"] }, { kind: "component", type: CollaborationCursorsComponent, selector: "pptx-collaboration-cursors", inputs: ["cursors", "zoom"] }, { kind: "component", type: RemoteSelectionOverlayComponent, selector: "pptx-remote-selection-overlay", inputs: ["presences", "elements", "activeSlideIndex", "zoom"] }, { kind: "component", type: FollowModeBarComponent, selector: "pptx-follow-mode-bar", inputs: ["presences", "followedClientId"], outputs: ["follow"] }, { kind: "component", type: PropertiesDialogComponent, selector: "pptx-properties-dialog", inputs: ["open", "properties"], outputs: ["save", "close"] }, { kind: "component", type: HyperlinkDialogComponent, selector: "pptx-hyperlink-dialog", inputs: ["open", "element"], outputs: ["save", "close"] }, { kind: "component", type: PrintDialogComponent, selector: "pptx-print-dialog", inputs: ["slides", "activeSlideIndex", "defaultSlidesPerPage", "defaultFrameSlides"], outputs: ["print", "cancel"] }, { kind: "component", type: ShareDialogComponent, selector: "pptx-share-dialog", inputs: ["open", "defaults", "active", "connected", "userCount", "shareUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: BroadcastDialogComponent, selector: "pptx-broadcast-dialog", inputs: ["open", "defaults", "active", "connected", "viewerCount", "viewerUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: MobileBottomBarComponent, selector: "pptx-mobile-bottom-bar", inputs: ["slideCount", "commentCount", "activeSheet"], outputs: ["openSlides", "insert", "openFormat", "openComments", "notes"] }, { kind: "component", type: MobileMenuSheetComponent, selector: "pptx-mobile-menu-sheet", inputs: ["open", "slideCount", "exporting", "showNotes", "canEdit", "hiddenActions"], outputs: ["closed", "openFind", "openSorter", "toggleNotes", "insertText", "present", "openFile", "savePptx", "exportPng", "exportPdf", "exportGif", "exportVideo", "print"] }, { kind: "component", type: MobileSlidesSheetComponent, selector: "pptx-mobile-slides-sheet", inputs: ["open", "slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["closed", "jumpToSlide"] }, { kind: "component", type: MobileToolbarComponent, selector: "pptx-mobile-toolbar", inputs: ["canUndo", "canRedo", "canPresent", "canEdit", "menuOpen", "aiEnabled", "aiPanelOpen", "hiddenActions"], outputs: ["toggleMenu", "toggleAiPanel", "undo", "redo", "share", "save", "present"] }, { kind: "component", type: MasterViewCanvasComponent, selector: "pptx-master-view-canvas", inputs: ["tab", "slideMasters", "activeMasterIndex", "activeLayoutIndex", "notesMaster", "handoutMaster", "canvasSize", "notesCanvasSize", "mediaDataUrls", "editable"], outputs: ["notesMasterChange", "handoutMasterChange"] }, { kind: "component", type: MasterViewSidebarComponent, selector: "pptx-master-view-sidebar", inputs: ["tab", "slideMasters", "notesMaster", "handoutMaster", "activeMasterIndex", "activeLayoutIndex", "handoutSlidesPerPage"], outputs: ["tabChange", "selectMaster", "selectLayout", "slidesPerPageChange", "backgroundChange", "close"] }, { kind: "component", type: NotesPanelComponent, selector: "pptx-notes-panel", inputs: ["slide", "expanded"], outputs: ["update", "notesToggle"] }, { kind: "component", type: RibbonComponent, selector: "pptx-ribbon", inputs: ["slideIndex", "slideCount", "canEdit", "selectedElement", "zoomPercent", "formatPainterActive", "canActivateFormatPainter", "exporting", "hasMacros", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToShape", "eyedropperActive", "themeGalleryOpen", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount", "findOpen", "collabConnected", "connectedCount", "spellCheckEnabled", "showSubtitles", "hiddenActions", "aiEnabled", "aiPanelOpen", "accountAuth"], outputs: ["prev", "next", "zoomIn", "zoomOut", "zoomReset", "find", "present", "presenter", "record", "presentFromBeginning", "rehearseTimings", "toggleSubtitles", "openSubtitleSettings", "recordFromBeginning", "recordFromCurrent", "spellCheckChange", "share", "broadcast", "openFile", "openRecentFile", "createPresentation", "save", "savePpsx", "savePptm", "packageForSharing", "toggleSidebar", "toggleAiPanel", "signatures", "info", "print", "comments", "a11y", "link", "openSorter", "openMasterView", "toggleNotes", "toggleFormatPainter", "exportPng", "exportPdf", "exportGif", "exportVideo", "copySlideAsImage", "replace", "toggleInspector", "drawToolChange", "toggleThemeGallery", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "openCustomShows", "toggleSnapToGrid", "toggleSnapToShape", "addGuide", "zoomToFit", "toggleEyedropper", "openSmartArtDialog", "openEquationDialog", "openSetUpSlideShow", "openCompare", "openPassword", "openFontEmbedding", "openVersionHistory", "openShortcuts", "openSettings"] }, { kind: "component", type: TitleBarComponent, selector: "pptx-title-bar", inputs: ["canEdit", "fileName", "isDirty", "autosaveStatus", "autosaveEnabled", "canUndo", "canRedo", "undoLabel", "redoLabel", "findReplaceOpen", "hiddenActions", "quickAccess"], outputs: ["toggleAutosave", "save", "undo", "redo", "quickCommand", "toggleFindReplace", "commandSearch"] }, { kind: "component", type: ThemeGalleryComponent, selector: "pptx-theme-gallery", inputs: ["open", "activeName", "theme"], outputs: ["applyTheme", "applyCustomTheme", "close"] }, { kind: "component", type: SelectionPaneComponent, selector: "pptx-selection-pane", inputs: ["elements", "selectedIds"], outputs: ["selectElement", "bringForward", "sendBackward", "toggleHidden"] }, { kind: "component", type: CustomShowsComponent, selector: "pptx-custom-shows", inputs: ["open", "slides", "customShows", "activeCustomShowId"], outputs: ["create", "remove", "update", "setActive", "close"] }, { kind: "component", type: InsertSmartArtDialogComponent, selector: "pptx-insert-smart-art-dialog", inputs: ["open"], outputs: ["close", "insert"] }, { kind: "component", type: ViewerExtraDialogsComponent, selector: "pptx-viewer-extra-dialogs", inputs: ["activeSlideIndex", "selectedElementId", "filePath", "customShows", "themeKey", "availableThemes", "localeCode", "availableLocales", "aiExportVisible"], outputs: ["restoreContent", "themeKeySelect", "localeSelect"] }, { kind: "component", type: RehearseTimingsComponent, selector: "pptx-rehearse-timings", inputs: ["summary", "paused", "slideStartedAt", "presentationStartedAt", "timings"], outputs: ["togglePause", "save", "discard"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [/* @ts-ignore */
|
|
112053
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "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: PresentationOverlayComponent, selector: "pptx-presentation-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "startIndex", "showWithAnimation", "useTimings", "subtitlesVisible", "sessionEnded"], outputs: ["indexChange", "closed", "subtitlesChange", "annotationsExit"] }, { kind: "component", type: PresenterViewComponent, selector: "pptx-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime", "isAudienceWindowOpen"], outputs: ["movePresentationSlide", "exit", "openAudienceWindow", "closeAudienceWindow", "navigateToSlide"] }, { kind: "component", type: MobilePresenterViewComponent, selector: "pptx-mobile-presenter-view", inputs: ["slides", "currentSlideIndex", "canvasSize", "templateElements", "mediaDataUrls", "presentationStartTime"], outputs: ["movePresentationSlide", "exit"] }, { kind: "component", type: SlideSorterOverlayComponent, selector: "pptx-slide-sorter-overlay", inputs: ["slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select", "closed"] }, { kind: "component", type: SlideDefaultInspectorComponent, selector: "pptx-slide-default-inspector", inputs: ["slideIndex", "canEdit", "selectedElement", "comments"], outputs: ["commentAdd", "commentRemove", "commentResolve"] }, { kind: "component", type: FindBarComponent, selector: "pptx-find-bar", inputs: ["slides"], outputs: ["navigate", "closed"] }, { kind: "component", type: FindReplaceBarComponent, selector: "pptx-find-replace-bar", inputs: ["matchCount", "matchIndex"], outputs: ["find", "navigate", "replaceOne", "replaceAll", "close"] }, { kind: "component", type: SlidesPanelComponent, selector: "pptx-slides-panel", inputs: ["canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["select"] }, { kind: "component", type: StatusBarComponent, selector: "pptx-status-bar", inputs: ["slideIndex", "slideCount", "canEdit", "dirty", "autosaveStatus", "notesOpen", "zoomPercent", "sorterActive", "presenting", "hiddenActions"], outputs: ["toggleNotes", "normalView", "openSorter", "slideShow", "zoomIn", "zoomOut", "zoomReset"] }, { kind: "component", type: EditorContextMenuComponent, selector: "pptx-editor-context-menu", inputs: ["x", "y", "slideIndex", "showAiActions"], outputs: ["closed", "askAi", "fixAi"] }, { kind: "component", type: ExportProgressModalComponent, selector: "pptx-export-progress-modal", inputs: ["open", "title", "progress", "statusMessage"], outputs: ["cancel"] }, { kind: "component", type: CommentsPanelComponent, selector: "pptx-comments-panel", inputs: ["comments", "authorName"], outputs: ["add", "remove", "resolve"] }, { kind: "component", type: SignaturesPanelComponent, selector: "pptx-signatures-panel", inputs: ["signatures"] }, { kind: "component", type: AccessibilityPanelComponent, selector: "pptx-accessibility-panel", inputs: ["issues"], outputs: ["selectSlide"] }, { kind: "component", type: CollaborationCursorsComponent, selector: "pptx-collaboration-cursors", inputs: ["cursors", "zoom"] }, { kind: "component", type: RemoteSelectionOverlayComponent, selector: "pptx-remote-selection-overlay", inputs: ["presences", "elements", "activeSlideIndex", "zoom"] }, { kind: "component", type: FollowModeBarComponent, selector: "pptx-follow-mode-bar", inputs: ["presences", "followedClientId"], outputs: ["follow"] }, { kind: "component", type: PropertiesDialogComponent, selector: "pptx-properties-dialog", inputs: ["open", "properties"], outputs: ["save", "close"] }, { kind: "component", type: HyperlinkDialogComponent, selector: "pptx-hyperlink-dialog", inputs: ["open", "element"], outputs: ["save", "close"] }, { kind: "component", type: PrintDialogComponent, selector: "pptx-print-dialog", inputs: ["slides", "activeSlideIndex", "defaultSlidesPerPage", "defaultFrameSlides"], outputs: ["print", "cancel"] }, { kind: "component", type: ShareDialogComponent, selector: "pptx-share-dialog", inputs: ["open", "defaults", "active", "connected", "userCount", "shareUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: BroadcastDialogComponent, selector: "pptx-broadcast-dialog", inputs: ["open", "defaults", "active", "connected", "viewerCount", "viewerUrl", "p2p"], outputs: ["start", "stop", "close"] }, { kind: "component", type: MobileBottomBarComponent, selector: "pptx-mobile-bottom-bar", inputs: ["slideCount", "commentCount", "activeSheet"], outputs: ["openSlides", "insert", "openFormat", "openComments", "notes"] }, { kind: "component", type: MobileMenuSheetComponent, selector: "pptx-mobile-menu-sheet", inputs: ["open", "slideCount", "exporting", "showNotes", "canEdit", "hiddenActions"], outputs: ["closed", "openFind", "openSorter", "toggleNotes", "insertText", "present", "openFile", "savePptx", "exportPng", "exportPdf", "exportGif", "exportVideo", "print"] }, { kind: "component", type: MobileSlidesSheetComponent, selector: "pptx-mobile-slides-sheet", inputs: ["open", "slides", "canvasSize", "mediaDataUrls", "activeIndex"], outputs: ["closed", "jumpToSlide"] }, { kind: "component", type: MobileToolbarComponent, selector: "pptx-mobile-toolbar", inputs: ["canUndo", "canRedo", "canPresent", "canEdit", "menuOpen", "aiEnabled", "aiPanelOpen", "hiddenActions"], outputs: ["toggleMenu", "toggleAiPanel", "undo", "redo", "share", "save", "present"] }, { kind: "component", type: MasterViewCanvasComponent, selector: "pptx-master-view-canvas", inputs: ["tab", "slideMasters", "activeMasterIndex", "activeLayoutIndex", "notesMaster", "handoutMaster", "canvasSize", "notesCanvasSize", "mediaDataUrls", "editable"], outputs: ["notesMasterChange", "handoutMasterChange"] }, { kind: "component", type: MasterViewSidebarComponent, selector: "pptx-master-view-sidebar", inputs: ["tab", "slideMasters", "notesMaster", "handoutMaster", "activeMasterIndex", "activeLayoutIndex", "handoutSlidesPerPage"], outputs: ["tabChange", "selectMaster", "selectLayout", "slidesPerPageChange", "backgroundChange", "close"] }, { kind: "component", type: NotesPanelComponent, selector: "pptx-notes-panel", inputs: ["slide", "expanded"], outputs: ["update", "notesToggle"] }, { kind: "component", type: RibbonComponent, selector: "pptx-ribbon", inputs: ["slideIndex", "slideCount", "canEdit", "selectedElement", "zoomPercent", "formatPainterActive", "canActivateFormatPainter", "exporting", "hasMacros", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToShape", "eyedropperActive", "themeGalleryOpen", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount", "findOpen", "collabConnected", "connectedCount", "spellCheckEnabled", "showSubtitles", "hiddenActions", "aiEnabled", "aiPanelOpen", "accountAuth"], outputs: ["prev", "next", "zoomIn", "zoomOut", "zoomReset", "find", "present", "presenter", "record", "presentFromBeginning", "rehearseTimings", "toggleSubtitles", "openSubtitleSettings", "recordFromBeginning", "recordFromCurrent", "spellCheckChange", "share", "broadcast", "openFile", "openRecentFile", "createPresentation", "save", "savePpsx", "savePptm", "packageForSharing", "toggleSidebar", "toggleAiPanel", "signatures", "info", "print", "comments", "a11y", "link", "openSorter", "openMasterView", "toggleNotes", "toggleFormatPainter", "exportPng", "exportPdf", "exportGif", "exportVideo", "copySlideAsImage", "replace", "toggleInspector", "drawToolChange", "toggleThemeGallery", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "openCustomShows", "toggleSnapToGrid", "toggleSnapToShape", "addGuide", "zoomToFit", "toggleEyedropper", "openSmartArtDialog", "openEquationDialog", "openSetUpSlideShow", "openCompare", "openPassword", "openFontEmbedding", "openVersionHistory", "openShortcuts", "openSettings"] }, { kind: "component", type: TitleBarComponent, selector: "pptx-title-bar", inputs: ["canEdit", "fileName", "isDirty", "autosaveStatus", "autosaveEnabled", "canUndo", "canRedo", "undoLabel", "redoLabel", "findReplaceOpen", "hiddenActions", "quickAccess"], outputs: ["toggleAutosave", "save", "undo", "redo", "quickCommand", "toggleFindReplace", "commandSearch"] }, { kind: "component", type: ThemeGalleryComponent, selector: "pptx-theme-gallery", inputs: ["open", "activeName", "theme"], outputs: ["applyTheme", "applyCustomTheme", "close"] }, { kind: "component", type: SelectionPaneComponent, selector: "pptx-selection-pane", inputs: ["elements", "selectedIds"], outputs: ["selectElement", "bringForward", "sendBackward", "toggleHidden"] }, { kind: "component", type: CustomShowsComponent, selector: "pptx-custom-shows", inputs: ["open", "slides", "customShows", "activeCustomShowId"], outputs: ["create", "remove", "update", "setActive", "close"] }, { kind: "component", type: InsertSmartArtDialogComponent, selector: "pptx-insert-smart-art-dialog", inputs: ["open"], outputs: ["close", "insert"] }, { kind: "component", type: ViewerExtraDialogsComponent, selector: "pptx-viewer-extra-dialogs", inputs: ["activeSlideIndex", "selectedElementId", "filePath", "customShows", "themeKey", "availableThemes", "localeCode", "availableLocales", "aiExportVisible"], outputs: ["restoreContent", "themeKeySelect", "localeSelect"] }, { kind: "component", type: RehearseTimingsComponent, selector: "pptx-rehearse-timings", inputs: ["summary", "paused", "slideStartedAt", "presentationStartedAt", "timings"], outputs: ["togglePause", "save", "discard"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [/* @ts-ignore */
|
|
111920
112054
|
Promise.resolve().then(function () { return aiChatPanel_component; }).then(m => m.AiChatPanelComponent)]] });
|
|
111921
112055
|
}
|
|
111922
112056
|
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.8", ngImport: i0, type: PowerPointViewerComponent, resolveDeferredDeps: () => [/* @ts-ignore */
|
|
@@ -112431,6 +112565,7 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.8", ng
|
|
|
112431
112565
|
[mediaDataUrls]="loader.mediaDataUrls()"
|
|
112432
112566
|
[startIndex]="customShowsCtl.presentationStartIndex()"
|
|
112433
112567
|
[showWithAnimation]="loader.presentationProperties().showWithAnimation"
|
|
112568
|
+
[useTimings]="loader.presentationProperties().advanceMode !== 'manual'"
|
|
112434
112569
|
[subtitlesVisible]="presentationMode.subtitlesVisible()"
|
|
112435
112570
|
[sessionEnded]="audienceSessionEnded()"
|
|
112436
112571
|
(subtitlesChange)="presentationMode.subtitlesVisible.set($event)"
|
|
@@ -114496,6 +114631,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
114496
114631
|
* stateful service (signals + RAF/timers) stays Angular-local.
|
|
114497
114632
|
*/
|
|
114498
114633
|
|
|
114634
|
+
/**
|
|
114635
|
+
* Gradient fill CSS builders.
|
|
114636
|
+
*
|
|
114637
|
+
* Thin re-export shim. The implementation now lives in the framework-agnostic
|
|
114638
|
+
* `pptx-viewer-shared` package (`render/fill-style.ts`), vendored into this
|
|
114639
|
+
* library via `../internal/shared`. This file preserves the historical
|
|
114640
|
+
* `./color-gradient` import surface so existing consumers and colocated tests
|
|
114641
|
+
* keep importing the same symbols unchanged.
|
|
114642
|
+
*
|
|
114643
|
+
* Gradient rendering follows ECMA-376 Part 1, §20.1.8.35 (gradFill) and
|
|
114644
|
+
* §20.1.8.49 (pathFill).
|
|
114645
|
+
*/
|
|
114646
|
+
|
|
114647
|
+
/**
|
|
114648
|
+
* SVG pattern generation for OOXML pattern fill presets.
|
|
114649
|
+
*
|
|
114650
|
+
* Thin re-export shim. The implementation now lives in the framework-agnostic
|
|
114651
|
+
* `pptx-viewer-shared` package (`render/fill-style.ts`), vendored into this
|
|
114652
|
+
* library via `../internal/shared`. This file preserves the historical
|
|
114653
|
+
* `./color-patterns` import surface.
|
|
114654
|
+
*
|
|
114655
|
+
* Deliberate divergence: shared `getPatternSvg` returns `string | null` for an
|
|
114656
|
+
* unknown preset, whereas the Angular binding's public contract (and its
|
|
114657
|
+
* colocated tests) expect `string | undefined`. This shim normalises `null` to
|
|
114658
|
+
* `undefined` so that contract is preserved.
|
|
114659
|
+
*
|
|
114660
|
+
* Reference: ECMA-376 Part 1, §20.1.10.33 (ST_PresetPatternVal).
|
|
114661
|
+
*/
|
|
114662
|
+
/**
|
|
114663
|
+
* Generate an inline SVG string for an OOXML preset pattern fill.
|
|
114664
|
+
*
|
|
114665
|
+
* @param preset - DrawingML `ST_PresetPatternVal` string (e.g. `"pct5"`).
|
|
114666
|
+
* @param fgColor - Foreground hex colour (e.g. `"#000000"`).
|
|
114667
|
+
* @param bgColor - Background hex colour (e.g. `"#ffffff"`).
|
|
114668
|
+
* @returns An SVG string, or `undefined` when the preset is not implemented.
|
|
114669
|
+
*/
|
|
114670
|
+
function getPatternSvg(preset, fgColor, bgColor) {
|
|
114671
|
+
return getPatternSvg$1(preset, fgColor, bgColor) ?? undefined;
|
|
114672
|
+
}
|
|
114673
|
+
|
|
114499
114674
|
function cn(...values) {
|
|
114500
114675
|
return values.filter((v) => Boolean(v)).join(' ');
|
|
114501
114676
|
}
|
|
@@ -114564,5 +114739,5 @@ function cn(...values) {
|
|
|
114564
114739
|
* Generated bundle index. Do not edit.
|
|
114565
114740
|
*/
|
|
114566
114741
|
|
|
114567
|
-
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 };
|
|
114568
|
-
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-
|
|
114742
|
+
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, resolveTransitionDuration 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, resolveSlideAutoAdvanceMs as iY, resolvePalette as iZ, resolveThemeCatalogEntry 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, showsTemplateAffordance as j$, revealedElementStyles as j0, routeOrthogonalConnector as j1, rowStyle as j2, sampleColorFromSlide as j3, sanitizeColor as j4, sanitizeSlideIndex as j5, sanitizeUserName as j6, saveViewerProfile as j7, scanAvailableFonts as j8, searchSlides as j9, setDuration as jA, setElementPosition as jB, setGridlineStyle as jC, setLayout as jD, setLegend as jE, setNodeStyle as jF, setNodeText as jG, setRepeatCount as jH, setRepeatMode as jI, setSequence as jJ, setSeriesChartType as jK, setSeriesColor as jL, setSeriesErrorBars as jM, setSeriesMarker as jN, setSeriesName as jO, setSeriesTrendline as jP, setSeriesValue as jQ, setStyle as jR, setTimingCurve as jS, setTitle as jT, setTrigger as jU, setTriggerShapeId as jV, shapeStylePatch as jW, sheetAfterNavigate as jX, shouldBlockClickAdvance as jY, shouldUseSvgWarp as jZ, showDirectionPicker as j_, seedBroadcastFields as ja, seedHyperlinkDraft as jb, seedPropertiesDraft as jc, seedShareFields as jd, segmentFrameCount as je, selectValue$2 as jf, sendBackward as jg, sendToBack as jh, sequentialColorScale as ji, serializeWriteBack as jj, seriesColor as jk, setAnimationEmphasis as jl, setAnimationEntrance as jm, setAnimationExit as jn, setAxis as jo, setAxisLogScale as jp, setAxisTitleStyle as jq, setCategoryLabel as jr, setCellText as js, setColorScheme as jt, setDataLabels as ju, setDataPointExplosion as jv, setDataPointFill as jw, setDataPointLabel as jx, setDelay as jy, setDirection as jz, AiChatService as k, signatureCountLabel as k0, signatureKey as k1, signatureTimestamp as k2, signerName as k3, statusLabel as k4, slideNumberOf as k5, smartArtNodes as k6, paletteColour as k7, snapToGridStep as k8, splitCursorCell as k9, ungroupElements as kA, updateElementById as kB, updateGlowPatch as kC, updateGradientStopPatch as kD, updateInnerShadowPatch as kE, updateOuterShadowPatch as kF, updateReflectionPatch as kG, vAlignPatch as kH, validatePassword as kI, validatePrintSettings as kJ, validateRoomId as kK, valueToY as kL, vermilionDarkColors as kM, vermilionDarkTheme as kN, vermilionLightColors as kO, vermilionLightTheme as kP, vermilionRadius as kQ, waypointsToPathD as kR, worstStatus as kS, zoomTargetSlideIndex as kT, splitMergedCell as ka, statusKind as kb, statusLabel$1 as kc, storeAudienceContent as kd, stringFromEvent$5 as ke, strokeColorOf as kf, strokeToInkElement as kg, styleShadowFilter as kh, textAdvancedPatch as ki, textAdvancedStateFromStyle as kj, textAdvancedStateOf as kk, textColorOf as kl, textDirectionPatch as km, textStyleOf as kn, textStylePatch as ko, themeStyle as kp, themeToCssVars as kq, thumbnailHeight as kr, thumbnailZoom as ks, toggleCommentResolvedInList as kt, toggleNodeBold as ku, toggleNodeItalic as kv, toggleSheet as kw, topLevelNodeCount as kx, transformSelectedTextCase as ky, translationsEn 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 };
|
|
114743
|
+
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-BYT0JAxP.mjs.map
|