pptx-react-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/dist/{AiChatPanel-G6DKXSM3.js → AiChatPanel-SRKOMEW6.js} +22 -22
- package/dist/AiChatPanel-SRKOMEW6.js.br +0 -0
- package/dist/AiChatPanel-SRKOMEW6.js.gz +0 -0
- package/dist/{AiChatPanel-J5IGSCYA.mjs → AiChatPanel-YAYQ5KUT.mjs} +3 -3
- package/dist/AiChatPanel-YAYQ5KUT.mjs.br +0 -0
- package/dist/AiChatPanel-YAYQ5KUT.mjs.gz +0 -0
- package/dist/{Model3DScene-ID6CQKEJ.mjs → Model3DScene-HYMOPMAM.mjs} +1 -1
- package/dist/Model3DScene-HYMOPMAM.mjs.br +0 -0
- package/dist/Model3DScene-HYMOPMAM.mjs.gz +0 -0
- package/dist/{Model3DScene-S7LKZ6IA.js → Model3DScene-ONKC5Z6A.js} +2 -2
- package/dist/Model3DScene-ONKC5Z6A.js.br +0 -0
- package/dist/Model3DScene-ONKC5Z6A.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-V5H6MXYW.mjs → SurfaceChart3DScene-B3FK4Q2U.mjs} +1 -1
- package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-XSJXJM6H.js → SurfaceChart3DScene-YJFWGG5L.js} +2 -2
- package/dist/SurfaceChart3DScene-YJFWGG5L.js.br +0 -0
- package/dist/SurfaceChart3DScene-YJFWGG5L.js.gz +0 -0
- package/dist/{chunk-Y4EB65WB.mjs → chunk-2UCJYJUS.mjs} +7 -7
- package/dist/chunk-2UCJYJUS.mjs.br +0 -0
- package/dist/chunk-2UCJYJUS.mjs.gz +0 -0
- package/dist/{chunk-GLQFRVAN.js → chunk-BVK7K74O.js} +843 -843
- package/dist/chunk-BVK7K74O.js.br +0 -0
- package/dist/chunk-BVK7K74O.js.gz +0 -0
- package/dist/{chunk-B4XJTZR4.js → chunk-GRW7HM6X.js} +236 -236
- package/dist/chunk-GRW7HM6X.js.br +0 -0
- package/dist/chunk-GRW7HM6X.js.gz +0 -0
- package/dist/{chunk-WH46JCNF.mjs → chunk-HEAJOHLJ.mjs} +125 -66
- package/dist/chunk-HEAJOHLJ.mjs.br +0 -0
- package/dist/chunk-HEAJOHLJ.mjs.gz +0 -0
- package/dist/{chunk-IGKLB7NQ.mjs → chunk-HQGLKAIY.mjs} +2 -2
- package/dist/chunk-HQGLKAIY.mjs.br +0 -0
- package/dist/chunk-HQGLKAIY.mjs.gz +0 -0
- package/dist/{chunk-YUHEJWUN.mjs → chunk-IDK6XECR.mjs} +2 -2
- package/dist/chunk-IDK6XECR.mjs.br +0 -0
- package/dist/{chunk-YUHEJWUN.mjs.gz → chunk-IDK6XECR.mjs.gz} +0 -0
- package/dist/{chunk-4KMTZLNS.js → chunk-JEIMWRKF.js} +315 -315
- package/dist/chunk-JEIMWRKF.js.br +0 -0
- package/dist/chunk-JEIMWRKF.js.gz +0 -0
- package/dist/{chunk-6C4UY7GX.js → chunk-JVE7BZ25.js} +3 -3
- package/dist/chunk-JVE7BZ25.js.br +0 -0
- package/dist/chunk-JVE7BZ25.js.gz +0 -0
- package/dist/{chunk-2LOBDOTK.js → chunk-LYS44KMG.js} +125 -66
- package/dist/chunk-LYS44KMG.js.br +0 -0
- package/dist/chunk-LYS44KMG.js.gz +0 -0
- package/dist/{chunk-SOLHDKNK.mjs → chunk-N7EZIKF4.mjs} +1 -1
- package/dist/chunk-N7EZIKF4.mjs.br +0 -0
- package/dist/chunk-N7EZIKF4.mjs.gz +0 -0
- package/dist/index.js +34 -34
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +21 -21
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-G6DKXSM3.js.br +0 -0
- package/dist/AiChatPanel-G6DKXSM3.js.gz +0 -0
- package/dist/AiChatPanel-J5IGSCYA.mjs.br +0 -0
- package/dist/AiChatPanel-J5IGSCYA.mjs.gz +0 -0
- package/dist/Model3DScene-ID6CQKEJ.mjs.br +0 -0
- package/dist/Model3DScene-ID6CQKEJ.mjs.gz +0 -0
- package/dist/Model3DScene-S7LKZ6IA.js.br +0 -0
- package/dist/Model3DScene-S7LKZ6IA.js.gz +0 -0
- package/dist/SurfaceChart3DScene-V5H6MXYW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-V5H6MXYW.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-XSJXJM6H.js.br +0 -0
- package/dist/SurfaceChart3DScene-XSJXJM6H.js.gz +0 -0
- package/dist/chunk-2LOBDOTK.js.br +0 -0
- package/dist/chunk-2LOBDOTK.js.gz +0 -0
- package/dist/chunk-4KMTZLNS.js.br +0 -0
- package/dist/chunk-4KMTZLNS.js.gz +0 -0
- package/dist/chunk-6C4UY7GX.js.br +0 -0
- package/dist/chunk-6C4UY7GX.js.gz +0 -0
- package/dist/chunk-B4XJTZR4.js.br +0 -0
- package/dist/chunk-B4XJTZR4.js.gz +0 -0
- package/dist/chunk-GLQFRVAN.js.br +0 -0
- package/dist/chunk-GLQFRVAN.js.gz +0 -0
- package/dist/chunk-IGKLB7NQ.mjs.br +0 -0
- package/dist/chunk-IGKLB7NQ.mjs.gz +0 -0
- package/dist/chunk-SOLHDKNK.mjs.br +0 -0
- package/dist/chunk-SOLHDKNK.mjs.gz +0 -0
- package/dist/chunk-WH46JCNF.mjs.br +0 -0
- package/dist/chunk-WH46JCNF.mjs.gz +0 -0
- package/dist/chunk-Y4EB65WB.mjs.br +0 -0
- package/dist/chunk-Y4EB65WB.mjs.gz +0 -0
- package/dist/chunk-YUHEJWUN.mjs.br +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -19822,6 +19822,13 @@ function extractChildBehaviourDurationMs(cTn, toArray2) {
|
|
|
19822
19822
|
}
|
|
19823
19823
|
return longest;
|
|
19824
19824
|
}
|
|
19825
|
+
function isInteractiveSequence(seq) {
|
|
19826
|
+
const cTn = seq["p:cTn"];
|
|
19827
|
+
if (!cTn || String(cTn["@_nodeType"] || "") === "mainSeq") {
|
|
19828
|
+
return false;
|
|
19829
|
+
}
|
|
19830
|
+
return extractTriggerShapeId(cTn) !== void 0;
|
|
19831
|
+
}
|
|
19825
19832
|
var PptxNativeAnimationService = class {
|
|
19826
19833
|
/**
|
|
19827
19834
|
* Parse native OOXML animations from a slide's timing tree.
|
|
@@ -20022,6 +20029,9 @@ var PptxNativeAnimationService = class {
|
|
|
20022
20029
|
);
|
|
20023
20030
|
}
|
|
20024
20031
|
for (const sequence of sequences) {
|
|
20032
|
+
if (isInteractiveSequence(sequence)) {
|
|
20033
|
+
continue;
|
|
20034
|
+
}
|
|
20025
20035
|
this.walkTimingTree(sequence, animations, trigger, group);
|
|
20026
20036
|
}
|
|
20027
20037
|
for (const excl of exclusives) {
|
|
@@ -20047,6 +20057,9 @@ var PptxNativeAnimationService = class {
|
|
|
20047
20057
|
);
|
|
20048
20058
|
}
|
|
20049
20059
|
for (const sequence of directSequences) {
|
|
20060
|
+
if (isInteractiveSequence(sequence)) {
|
|
20061
|
+
continue;
|
|
20062
|
+
}
|
|
20050
20063
|
this.walkTimingTree(sequence, animations, currentTrigger, group);
|
|
20051
20064
|
}
|
|
20052
20065
|
}
|
|
@@ -20150,6 +20163,36 @@ var PptxNativeAnimationService = class {
|
|
|
20150
20163
|
}
|
|
20151
20164
|
return void 0;
|
|
20152
20165
|
}
|
|
20166
|
+
/**
|
|
20167
|
+
* Collect every interactive `p:seq` reachable from `node`.
|
|
20168
|
+
*
|
|
20169
|
+
* Interactive sequences are normally siblings of the main sequence under the
|
|
20170
|
+
* root `p:par`, but a deck may nest one deeper. The generic walk skips every
|
|
20171
|
+
* sequence {@link isInteractiveSequence} matches, so this collector has to
|
|
20172
|
+
* reach exactly the same set or those effects would be dropped entirely.
|
|
20173
|
+
* Collection stops at an interactive sequence: its own subtree is walked by
|
|
20174
|
+
* {@link parseInteractiveSequences} under that sequence's trigger shape.
|
|
20175
|
+
*/
|
|
20176
|
+
collectInteractiveSequences(node, found) {
|
|
20177
|
+
const containers = [];
|
|
20178
|
+
const cTn = node["p:cTn"];
|
|
20179
|
+
const childTnList = cTn?.["p:childTnLst"];
|
|
20180
|
+
if (childTnList) {
|
|
20181
|
+
containers.push(
|
|
20182
|
+
...ensureArray5(childTnList["p:par"]),
|
|
20183
|
+
...ensureArray5(childTnList["p:seq"]),
|
|
20184
|
+
...ensureArray5(childTnList["p:excl"])
|
|
20185
|
+
);
|
|
20186
|
+
}
|
|
20187
|
+
containers.push(...ensureArray5(node["p:par"]), ...ensureArray5(node["p:seq"]));
|
|
20188
|
+
for (const container of containers) {
|
|
20189
|
+
if (isInteractiveSequence(container)) {
|
|
20190
|
+
found.push(container);
|
|
20191
|
+
continue;
|
|
20192
|
+
}
|
|
20193
|
+
this.collectInteractiveSequences(container, found);
|
|
20194
|
+
}
|
|
20195
|
+
}
|
|
20153
20196
|
/**
|
|
20154
20197
|
* Parse interactive sequences from the root `p:par` node.
|
|
20155
20198
|
*
|
|
@@ -20160,25 +20203,11 @@ var PptxNativeAnimationService = class {
|
|
|
20160
20203
|
* See ISO/IEC 29500-1 S19.5.60 (CT_TLTimeNodeSequence).
|
|
20161
20204
|
*/
|
|
20162
20205
|
parseInteractiveSequences(rootPar, animations) {
|
|
20163
|
-
const
|
|
20164
|
-
|
|
20165
|
-
return;
|
|
20166
|
-
}
|
|
20167
|
-
const childTnList = rootCTn["p:childTnLst"];
|
|
20168
|
-
if (!childTnList) {
|
|
20169
|
-
return;
|
|
20170
|
-
}
|
|
20171
|
-
const sequences = ensureArray5(childTnList["p:seq"]);
|
|
20206
|
+
const sequences = [];
|
|
20207
|
+
this.collectInteractiveSequences(rootPar, sequences);
|
|
20172
20208
|
for (const seq of sequences) {
|
|
20173
20209
|
const seqCTn = seq["p:cTn"];
|
|
20174
|
-
|
|
20175
|
-
continue;
|
|
20176
|
-
}
|
|
20177
|
-
const nodeType = String(seqCTn["@_nodeType"] || "");
|
|
20178
|
-
if (nodeType === "mainSeq") {
|
|
20179
|
-
continue;
|
|
20180
|
-
}
|
|
20181
|
-
const triggerShapeId = extractTriggerShapeId(seqCTn);
|
|
20210
|
+
const triggerShapeId = seqCTn ? extractTriggerShapeId(seqCTn) : void 0;
|
|
20182
20211
|
if (!triggerShapeId) {
|
|
20183
20212
|
continue;
|
|
20184
20213
|
}
|
|
@@ -98266,6 +98295,10 @@ function interpolateOutline(from, to, t) {
|
|
|
98266
98295
|
return parts.join(" ");
|
|
98267
98296
|
}
|
|
98268
98297
|
var MORPH_EASING = "cubic-bezier(0.4, 0, 0.2, 1)";
|
|
98298
|
+
var MORPH_FADE_OUT_HOLD_PERCENT = 4;
|
|
98299
|
+
var MORPH_FADE_OUT_END_PERCENT = 23;
|
|
98300
|
+
var MORPH_FADE_IN_START_PERCENT = 42;
|
|
98301
|
+
var MORPH_FADE_IN_EASING = "cubic-bezier(0, 0, 0.35, 1)";
|
|
98269
98302
|
var PROXIMITY_THRESHOLD = 300;
|
|
98270
98303
|
var PROXIMITY_SIZE_RATIO_LIMIT = 2;
|
|
98271
98304
|
var GEOMETRY_MORPH_STEPS = 8;
|
|
@@ -98327,6 +98360,21 @@ ${body}
|
|
|
98327
98360
|
keyframes
|
|
98328
98361
|
};
|
|
98329
98362
|
}
|
|
98363
|
+
function getElementMorphName(element) {
|
|
98364
|
+
if (element.name) {
|
|
98365
|
+
const name = element.name.trim();
|
|
98366
|
+
if (name.startsWith("!!")) {
|
|
98367
|
+
return name;
|
|
98368
|
+
}
|
|
98369
|
+
}
|
|
98370
|
+
if (hasTextProperties(element) && element.text) {
|
|
98371
|
+
const text2 = element.text.trim();
|
|
98372
|
+
if (text2.startsWith("!!")) {
|
|
98373
|
+
return text2;
|
|
98374
|
+
}
|
|
98375
|
+
}
|
|
98376
|
+
return void 0;
|
|
98377
|
+
}
|
|
98330
98378
|
function groupChildren(element) {
|
|
98331
98379
|
if (element.type !== "group") {
|
|
98332
98380
|
return void 0;
|
|
@@ -98352,34 +98400,42 @@ function toAbsolute(child22, offsetX, offsetY) {
|
|
|
98352
98400
|
}
|
|
98353
98401
|
return { ...child22, x: child22.x + offsetX, y: child22.y + offsetY };
|
|
98354
98402
|
}
|
|
98355
|
-
function
|
|
98403
|
+
function sameBox(a, b) {
|
|
98404
|
+
return Math.abs(a.x - b.x) <= 0.5 && Math.abs(a.y - b.y) <= 0.5 && Math.abs(a.width - b.width) <= 0.5 && Math.abs(a.height - b.height) <= 0.5;
|
|
98405
|
+
}
|
|
98406
|
+
function correspondingGroup(group, candidates) {
|
|
98407
|
+
const morphName = getElementMorphName(group);
|
|
98408
|
+
return candidates.find((candidate) => {
|
|
98409
|
+
if (candidate.type !== "group") {
|
|
98410
|
+
return false;
|
|
98411
|
+
}
|
|
98412
|
+
if (morphName !== void 0 && getElementMorphName(candidate) === morphName) {
|
|
98413
|
+
return true;
|
|
98414
|
+
}
|
|
98415
|
+
if (group.name && candidate.name === group.name) {
|
|
98416
|
+
return true;
|
|
98417
|
+
}
|
|
98418
|
+
return sameBox(group, candidate);
|
|
98419
|
+
});
|
|
98420
|
+
}
|
|
98421
|
+
function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
|
|
98356
98422
|
const out = [];
|
|
98357
98423
|
for (const element of elements) {
|
|
98358
98424
|
const children8 = groupChildren(element);
|
|
98359
98425
|
if (children8 && containsMorphNamedDescendant(element)) {
|
|
98360
|
-
|
|
98361
|
-
|
|
98426
|
+
const twin = correspondingGroup(element, counterpart);
|
|
98427
|
+
const twinChildren = twin ? groupChildren(twin) ?? [] : void 0;
|
|
98428
|
+
if (twinChildren) {
|
|
98429
|
+
out.push(
|
|
98430
|
+
...flattenMorphElements(children8, twinChildren, offsetX + element.x, offsetY + element.y)
|
|
98431
|
+
);
|
|
98432
|
+
continue;
|
|
98433
|
+
}
|
|
98362
98434
|
}
|
|
98363
98435
|
out.push(toAbsolute(element, offsetX, offsetY));
|
|
98364
98436
|
}
|
|
98365
98437
|
return out;
|
|
98366
98438
|
}
|
|
98367
|
-
var SAME_BOX_TOLERANCE_PX = 0.5;
|
|
98368
|
-
function getElementMorphName(element) {
|
|
98369
|
-
if (element.name) {
|
|
98370
|
-
const name = element.name.trim();
|
|
98371
|
-
if (name.startsWith("!!")) {
|
|
98372
|
-
return name;
|
|
98373
|
-
}
|
|
98374
|
-
}
|
|
98375
|
-
if (hasTextProperties(element) && element.text) {
|
|
98376
|
-
const text2 = element.text.trim();
|
|
98377
|
-
if (text2.startsWith("!!")) {
|
|
98378
|
-
return text2;
|
|
98379
|
-
}
|
|
98380
|
-
}
|
|
98381
|
-
return void 0;
|
|
98382
|
-
}
|
|
98383
98439
|
var NV_PR_KEYS = [
|
|
98384
98440
|
"p:nvSpPr",
|
|
98385
98441
|
"p:nvPicPr",
|
|
@@ -98415,8 +98471,8 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98415
98471
|
const pairs2 = [];
|
|
98416
98472
|
const usedFrom = /* @__PURE__ */ new Set();
|
|
98417
98473
|
const usedTo = /* @__PURE__ */ new Set();
|
|
98418
|
-
const fromElements = flattenMorphElements(fromSlide.elements);
|
|
98419
|
-
const toElements = flattenMorphElements(toSlide.elements);
|
|
98474
|
+
const fromElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
|
|
98475
|
+
const toElements = flattenMorphElements(toSlide.elements, fromSlide.elements);
|
|
98420
98476
|
for (const fromEl of fromElements) {
|
|
98421
98477
|
const fromName = getElementMorphName(fromEl);
|
|
98422
98478
|
if (!fromName) {
|
|
@@ -98513,22 +98569,6 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98513
98569
|
usedTo.add(bestMatch.id);
|
|
98514
98570
|
}
|
|
98515
98571
|
}
|
|
98516
|
-
for (const fromEl of fromElements) {
|
|
98517
|
-
if (usedFrom.has(fromEl.id)) {
|
|
98518
|
-
continue;
|
|
98519
|
-
}
|
|
98520
|
-
for (const toEl of toElements) {
|
|
98521
|
-
if (usedTo.has(toEl.id)) {
|
|
98522
|
-
continue;
|
|
98523
|
-
}
|
|
98524
|
-
if (Math.abs(fromEl.x - toEl.x) <= SAME_BOX_TOLERANCE_PX && Math.abs(fromEl.y - toEl.y) <= SAME_BOX_TOLERANCE_PX && Math.abs(fromEl.width - toEl.width) <= SAME_BOX_TOLERANCE_PX && Math.abs(fromEl.height - toEl.height) <= SAME_BOX_TOLERANCE_PX) {
|
|
98525
|
-
pairs2.push({ fromElement: fromEl, toElement: toEl });
|
|
98526
|
-
usedFrom.add(fromEl.id);
|
|
98527
|
-
usedTo.add(toEl.id);
|
|
98528
|
-
break;
|
|
98529
|
-
}
|
|
98530
|
-
}
|
|
98531
|
-
}
|
|
98532
98572
|
const unmatchedFrom = fromElements.filter((el) => !usedFrom.has(el.id));
|
|
98533
98573
|
const unmatchedTo = toElements.filter((el) => !usedTo.has(el.id));
|
|
98534
98574
|
return { pairs: pairs2, unmatchedFrom, unmatchedTo };
|
|
@@ -98853,9 +98893,13 @@ function shortestRotationTarget(fromDeg, toDeg) {
|
|
|
98853
98893
|
let delta = (toDeg - fromDeg) % 360;
|
|
98854
98894
|
if (delta > 180) {
|
|
98855
98895
|
delta -= 360;
|
|
98856
|
-
} else if (delta
|
|
98896
|
+
} else if (delta < -180) {
|
|
98857
98897
|
delta += 360;
|
|
98858
98898
|
}
|
|
98899
|
+
if (Math.abs(Math.abs(delta) - 180) < 1e-9) {
|
|
98900
|
+
const start = (fromDeg % 360 + 360) % 360;
|
|
98901
|
+
delta = start >= 90 && start < 270 ? 180 : -180;
|
|
98902
|
+
}
|
|
98859
98903
|
return fromDeg + delta;
|
|
98860
98904
|
}
|
|
98861
98905
|
function staticTransformSuffix(el) {
|
|
@@ -98865,20 +98909,29 @@ function staticTransformSuffix(el) {
|
|
|
98865
98909
|
function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
98866
98910
|
return elements.map((el, i) => {
|
|
98867
98911
|
const safeName = `pptx-morph-fadeout-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
|
|
98912
|
+
const transform = ` transform: scale(1)${staticTransformSuffix(el)};`;
|
|
98868
98913
|
const keyframes = `
|
|
98869
98914
|
@keyframes ${safeName} {
|
|
98870
|
-
|
|
98915
|
+
0% {
|
|
98871
98916
|
opacity: ${el.opacity ?? 1};
|
|
98872
|
-
|
|
98917
|
+
${transform}
|
|
98873
98918
|
}
|
|
98874
|
-
|
|
98919
|
+
${MORPH_FADE_OUT_HOLD_PERCENT}% {
|
|
98920
|
+
opacity: ${el.opacity ?? 1};
|
|
98921
|
+
${transform}
|
|
98922
|
+
}
|
|
98923
|
+
${MORPH_FADE_OUT_END_PERCENT}% {
|
|
98924
|
+
opacity: 0;
|
|
98925
|
+
${transform}
|
|
98926
|
+
}
|
|
98927
|
+
100% {
|
|
98875
98928
|
opacity: 0;
|
|
98876
|
-
|
|
98929
|
+
${transform}
|
|
98877
98930
|
}
|
|
98878
98931
|
}`;
|
|
98879
98932
|
return {
|
|
98880
98933
|
elementId: el.id,
|
|
98881
|
-
animation: `${safeName} ${durationMs}ms
|
|
98934
|
+
animation: `${safeName} ${durationMs}ms linear forwards`,
|
|
98882
98935
|
keyframes
|
|
98883
98936
|
};
|
|
98884
98937
|
});
|
|
@@ -98886,20 +98939,26 @@ function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
|
98886
98939
|
function generateUnmatchedFadeInAnimations(elements, durationMs, startIndex) {
|
|
98887
98940
|
return elements.map((el, i) => {
|
|
98888
98941
|
const safeName = `pptx-morph-fadein-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
|
|
98942
|
+
const transform = ` transform: scale(1)${staticTransformSuffix(el)};`;
|
|
98889
98943
|
const keyframes = `
|
|
98890
98944
|
@keyframes ${safeName} {
|
|
98891
|
-
|
|
98945
|
+
0% {
|
|
98892
98946
|
opacity: 0;
|
|
98893
|
-
|
|
98947
|
+
${transform}
|
|
98894
98948
|
}
|
|
98895
|
-
|
|
98949
|
+
${MORPH_FADE_IN_START_PERCENT}% {
|
|
98950
|
+
opacity: 0;
|
|
98951
|
+
animation-timing-function: ${MORPH_FADE_IN_EASING};
|
|
98952
|
+
${transform}
|
|
98953
|
+
}
|
|
98954
|
+
100% {
|
|
98896
98955
|
opacity: ${el.opacity ?? 1};
|
|
98897
|
-
|
|
98956
|
+
${transform}
|
|
98898
98957
|
}
|
|
98899
98958
|
}`;
|
|
98900
98959
|
return {
|
|
98901
98960
|
elementId: el.id,
|
|
98902
|
-
animation: `${safeName} ${durationMs}ms
|
|
98961
|
+
animation: `${safeName} ${durationMs}ms linear forwards`,
|
|
98903
98962
|
keyframes
|
|
98904
98963
|
};
|
|
98905
98964
|
});
|
|
@@ -98973,7 +99032,7 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
|
|
|
98973
99032
|
return void 0;
|
|
98974
99033
|
}
|
|
98975
99034
|
const animations = generateFullMorphTransition(fromSlide, toSlide, durationMs, mode);
|
|
98976
|
-
const outgoingElements = flattenMorphElements(fromSlide.elements);
|
|
99035
|
+
const outgoingElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
|
|
98977
99036
|
const outgoingIds = new Set(outgoingElements.map((element) => element.id));
|
|
98978
99037
|
const incomingAnimations = /* @__PURE__ */ new Map();
|
|
98979
99038
|
const outgoingAnimations = /* @__PURE__ */ new Map();
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { translationsEn } from './chunk-Z6HIZWIQ.mjs';
|
|
2
|
-
import { SHAPE_PRESET_DEFS, computeValueRangeForChart, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, isTemplateElement, isImageLikeElement, clampCropValue, parseMediaCommand, hasTextProperties, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphStrutFontSize, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, getRoundRectRadiusPx, substituteFieldText, resolveUnderlineDecorationStyle, getSubstituteFontFamily, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, evaluatePresetShape, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, ooxmlGradientAngleToCssDegrees, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, hexToRgbChannels, chartPartToAttrs } from './chunk-
|
|
2
|
+
import { SHAPE_PRESET_DEFS, computeValueRangeForChart, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, isTemplateElement, isImageLikeElement, clampCropValue, parseMediaCommand, hasTextProperties, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphStrutFontSize, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, getRoundRectRadiusPx, substituteFieldText, resolveUnderlineDecorationStyle, getSubstituteFontFamily, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, evaluatePresetShape, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, ooxmlGradientAngleToCssDegrees, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, hexToRgbChannels, chartPartToAttrs } from './chunk-HEAJOHLJ.mjs';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import React6, { useState, useEffect, useMemo, Suspense, useRef, useCallback, useLayoutEffect } from 'react';
|
|
@@ -6287,7 +6287,7 @@ function FailedToLoad() {
|
|
|
6287
6287
|
var LazySurfaceChart3DScene = React6.lazy(
|
|
6288
6288
|
async () => {
|
|
6289
6289
|
try {
|
|
6290
|
-
return await import('./SurfaceChart3DScene-
|
|
6290
|
+
return await import('./SurfaceChart3DScene-B3FK4Q2U.mjs');
|
|
6291
6291
|
} catch {
|
|
6292
6292
|
return { default: FailedToLoad };
|
|
6293
6293
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cloneHistorySnapshot, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-
|
|
1
|
+
import { cloneHistorySnapshot, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-HQGLKAIY.mjs';
|
|
2
2
|
import { translationsEn } from './chunk-Z6HIZWIQ.mjs';
|
|
3
|
-
import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid } from './chunk-
|
|
3
|
+
import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid } from './chunk-HEAJOHLJ.mjs';
|
|
4
4
|
import { useRef, useState, useEffect, useCallback, useMemo, useSyncExternalStore, useImperativeHandle } from 'react';
|
|
5
5
|
import JSZip from 'jszip';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
Binary file
|
|
Binary file
|