pptx-react-viewer 2.6.7 → 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 +4 -0
- package/dist/{AiChatPanel-I22AHEBC.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-E5PVW4MN.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-UYOY6QJN.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-VC3HMMBO.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-PDULQ4DY.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-YMRRZC5V.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-CKERNV36.mjs → chunk-2UCJYJUS.mjs} +15 -9
- package/dist/chunk-2UCJYJUS.mjs.br +0 -0
- package/dist/chunk-2UCJYJUS.mjs.gz +0 -0
- package/dist/{chunk-5XXNNTE2.js → chunk-BVK7K74O.js} +851 -845
- package/dist/chunk-BVK7K74O.js.br +0 -0
- package/dist/chunk-BVK7K74O.js.gz +0 -0
- package/dist/{chunk-AB4WM3RK.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-LR546YFN.mjs → chunk-HEAJOHLJ.mjs} +178 -46
- package/dist/chunk-HEAJOHLJ.mjs.br +0 -0
- package/dist/chunk-HEAJOHLJ.mjs.gz +0 -0
- package/dist/{chunk-Y6WE6JJO.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-B7DXNZPM.mjs → chunk-IDK6XECR.mjs} +2 -2
- package/dist/chunk-IDK6XECR.mjs.br +0 -0
- package/dist/{chunk-B7DXNZPM.mjs.gz → chunk-IDK6XECR.mjs.gz} +0 -0
- package/dist/{chunk-C4JFU2XG.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-TJFZ7ZP6.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-QOWFOMZP.js → chunk-LYS44KMG.js} +178 -46
- package/dist/chunk-LYS44KMG.js.br +0 -0
- package/dist/chunk-LYS44KMG.js.gz +0 -0
- package/dist/{chunk-5QS6ANI7.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-E5PVW4MN.mjs.br +0 -0
- package/dist/AiChatPanel-E5PVW4MN.mjs.gz +0 -0
- package/dist/AiChatPanel-I22AHEBC.js.br +0 -0
- package/dist/AiChatPanel-I22AHEBC.js.gz +0 -0
- package/dist/Model3DScene-UYOY6QJN.mjs.br +0 -0
- package/dist/Model3DScene-UYOY6QJN.mjs.gz +0 -0
- package/dist/Model3DScene-VC3HMMBO.js.br +0 -0
- package/dist/Model3DScene-VC3HMMBO.js.gz +0 -0
- package/dist/SurfaceChart3DScene-PDULQ4DY.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-PDULQ4DY.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-YMRRZC5V.js.br +0 -0
- package/dist/SurfaceChart3DScene-YMRRZC5V.js.gz +0 -0
- package/dist/chunk-5QS6ANI7.mjs.br +0 -0
- package/dist/chunk-5QS6ANI7.mjs.gz +0 -0
- package/dist/chunk-5XXNNTE2.js.br +0 -0
- package/dist/chunk-5XXNNTE2.js.gz +0 -0
- package/dist/chunk-AB4WM3RK.js.br +0 -0
- package/dist/chunk-AB4WM3RK.js.gz +0 -0
- package/dist/chunk-B7DXNZPM.mjs.br +0 -0
- package/dist/chunk-C4JFU2XG.js.br +0 -0
- package/dist/chunk-C4JFU2XG.js.gz +0 -0
- package/dist/chunk-CKERNV36.mjs.br +0 -0
- package/dist/chunk-CKERNV36.mjs.gz +0 -0
- package/dist/chunk-LR546YFN.mjs.br +0 -0
- package/dist/chunk-LR546YFN.mjs.gz +0 -0
- package/dist/chunk-QOWFOMZP.js.br +0 -0
- package/dist/chunk-QOWFOMZP.js.gz +0 -0
- package/dist/chunk-TJFZ7ZP6.js.br +0 -0
- package/dist/chunk-TJFZ7ZP6.js.gz +0 -0
- package/dist/chunk-Y6WE6JJO.mjs.br +0 -0
- package/dist/chunk-Y6WE6JJO.mjs.gz +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
|
}
|
|
@@ -44631,7 +44660,7 @@ function applySeriesDataLabelsToXml(seriesNode, dataLabels, getLocalName2) {
|
|
|
44631
44660
|
const dLblsKey = findKey13(seriesNode, "dLbls", getLocalName2);
|
|
44632
44661
|
const labels = dataLabels ?? [];
|
|
44633
44662
|
const existingByIdx = /* @__PURE__ */ new Map();
|
|
44634
|
-
let
|
|
44663
|
+
let groupChildren2 = [];
|
|
44635
44664
|
if (dLblsKey) {
|
|
44636
44665
|
const dLbls = seriesNode[dLblsKey];
|
|
44637
44666
|
const dLblKey = findKey13(dLbls, "dLbl", getLocalName2);
|
|
@@ -44646,9 +44675,9 @@ function applySeriesDataLabelsToXml(seriesNode, dataLabels, getLocalName2) {
|
|
|
44646
44675
|
}
|
|
44647
44676
|
}
|
|
44648
44677
|
}
|
|
44649
|
-
|
|
44678
|
+
groupChildren2 = Object.keys(dLbls).filter((k) => getLocalName2(k) !== "dLbl").map((k) => [k, dLbls[k]]);
|
|
44650
44679
|
}
|
|
44651
|
-
if (labels.length === 0 &&
|
|
44680
|
+
if (labels.length === 0 && groupChildren2.length === 0) {
|
|
44652
44681
|
if (dLblsKey) {
|
|
44653
44682
|
delete seriesNode[dLblsKey];
|
|
44654
44683
|
}
|
|
@@ -44659,7 +44688,7 @@ function applySeriesDataLabelsToXml(seriesNode, dataLabels, getLocalName2) {
|
|
|
44659
44688
|
if (built.length > 0) {
|
|
44660
44689
|
newDLbls["c:dLbl"] = built.length === 1 ? built[0] : built;
|
|
44661
44690
|
}
|
|
44662
|
-
const ordered32 = [...
|
|
44691
|
+
const ordered32 = [...groupChildren2].sort((a, b) => {
|
|
44663
44692
|
const ai = DLBLS_GROUP_ORDER.indexOf(getLocalName2(a[0]));
|
|
44664
44693
|
const bi = DLBLS_GROUP_ORDER.indexOf(getLocalName2(b[0]));
|
|
44665
44694
|
return (ai === -1 ? DLBLS_GROUP_ORDER.length : ai) - (bi === -1 ? DLBLS_GROUP_ORDER.length : bi);
|
|
@@ -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;
|
|
@@ -98342,6 +98375,67 @@ function getElementMorphName(element) {
|
|
|
98342
98375
|
}
|
|
98343
98376
|
return void 0;
|
|
98344
98377
|
}
|
|
98378
|
+
function groupChildren(element) {
|
|
98379
|
+
if (element.type !== "group") {
|
|
98380
|
+
return void 0;
|
|
98381
|
+
}
|
|
98382
|
+
const children8 = element.children;
|
|
98383
|
+
return Array.isArray(children8) && children8.length > 0 ? children8 : void 0;
|
|
98384
|
+
}
|
|
98385
|
+
function containsMorphNamedDescendant(element) {
|
|
98386
|
+
const children8 = groupChildren(element);
|
|
98387
|
+
if (!children8) {
|
|
98388
|
+
return false;
|
|
98389
|
+
}
|
|
98390
|
+
for (const child22 of children8) {
|
|
98391
|
+
if (getElementMorphName(child22) !== void 0 || containsMorphNamedDescendant(child22)) {
|
|
98392
|
+
return true;
|
|
98393
|
+
}
|
|
98394
|
+
}
|
|
98395
|
+
return false;
|
|
98396
|
+
}
|
|
98397
|
+
function toAbsolute(child22, offsetX, offsetY) {
|
|
98398
|
+
if (offsetX === 0 && offsetY === 0) {
|
|
98399
|
+
return child22;
|
|
98400
|
+
}
|
|
98401
|
+
return { ...child22, x: child22.x + offsetX, y: child22.y + offsetY };
|
|
98402
|
+
}
|
|
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) {
|
|
98422
|
+
const out = [];
|
|
98423
|
+
for (const element of elements) {
|
|
98424
|
+
const children8 = groupChildren(element);
|
|
98425
|
+
if (children8 && containsMorphNamedDescendant(element)) {
|
|
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
|
+
}
|
|
98434
|
+
}
|
|
98435
|
+
out.push(toAbsolute(element, offsetX, offsetY));
|
|
98436
|
+
}
|
|
98437
|
+
return out;
|
|
98438
|
+
}
|
|
98345
98439
|
var NV_PR_KEYS = [
|
|
98346
98440
|
"p:nvSpPr",
|
|
98347
98441
|
"p:nvPicPr",
|
|
@@ -98377,12 +98471,14 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98377
98471
|
const pairs2 = [];
|
|
98378
98472
|
const usedFrom = /* @__PURE__ */ new Set();
|
|
98379
98473
|
const usedTo = /* @__PURE__ */ new Set();
|
|
98380
|
-
|
|
98474
|
+
const fromElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
|
|
98475
|
+
const toElements = flattenMorphElements(toSlide.elements, fromSlide.elements);
|
|
98476
|
+
for (const fromEl of fromElements) {
|
|
98381
98477
|
const fromName = getElementMorphName(fromEl);
|
|
98382
98478
|
if (!fromName) {
|
|
98383
98479
|
continue;
|
|
98384
98480
|
}
|
|
98385
|
-
for (const toEl of
|
|
98481
|
+
for (const toEl of toElements) {
|
|
98386
98482
|
if (usedTo.has(toEl.id)) {
|
|
98387
98483
|
continue;
|
|
98388
98484
|
}
|
|
@@ -98402,7 +98498,7 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98402
98498
|
}
|
|
98403
98499
|
return creationIds.get(el.id);
|
|
98404
98500
|
};
|
|
98405
|
-
for (const fromEl of
|
|
98501
|
+
for (const fromEl of fromElements) {
|
|
98406
98502
|
if (usedFrom.has(fromEl.id)) {
|
|
98407
98503
|
continue;
|
|
98408
98504
|
}
|
|
@@ -98410,7 +98506,7 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98410
98506
|
if (!fromGuid) {
|
|
98411
98507
|
continue;
|
|
98412
98508
|
}
|
|
98413
|
-
for (const toEl of
|
|
98509
|
+
for (const toEl of toElements) {
|
|
98414
98510
|
if (usedTo.has(toEl.id) || fromEl.type !== toEl.type) {
|
|
98415
98511
|
continue;
|
|
98416
98512
|
}
|
|
@@ -98422,11 +98518,11 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98422
98518
|
}
|
|
98423
98519
|
}
|
|
98424
98520
|
}
|
|
98425
|
-
for (const fromEl of
|
|
98521
|
+
for (const fromEl of fromElements) {
|
|
98426
98522
|
if (usedFrom.has(fromEl.id) || !fromEl.shapeId) {
|
|
98427
98523
|
continue;
|
|
98428
98524
|
}
|
|
98429
|
-
for (const toEl of
|
|
98525
|
+
for (const toEl of toElements) {
|
|
98430
98526
|
if (usedTo.has(toEl.id)) {
|
|
98431
98527
|
continue;
|
|
98432
98528
|
}
|
|
@@ -98441,13 +98537,13 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98441
98537
|
}
|
|
98442
98538
|
}
|
|
98443
98539
|
}
|
|
98444
|
-
for (const fromEl of
|
|
98540
|
+
for (const fromEl of fromElements) {
|
|
98445
98541
|
if (usedFrom.has(fromEl.id)) {
|
|
98446
98542
|
continue;
|
|
98447
98543
|
}
|
|
98448
98544
|
let bestMatch = null;
|
|
98449
98545
|
let bestDist = Infinity;
|
|
98450
|
-
for (const toEl of
|
|
98546
|
+
for (const toEl of toElements) {
|
|
98451
98547
|
if (usedTo.has(toEl.id)) {
|
|
98452
98548
|
continue;
|
|
98453
98549
|
}
|
|
@@ -98473,8 +98569,8 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
98473
98569
|
usedTo.add(bestMatch.id);
|
|
98474
98570
|
}
|
|
98475
98571
|
}
|
|
98476
|
-
const unmatchedFrom =
|
|
98477
|
-
const unmatchedTo =
|
|
98572
|
+
const unmatchedFrom = fromElements.filter((el) => !usedFrom.has(el.id));
|
|
98573
|
+
const unmatchedTo = toElements.filter((el) => !usedTo.has(el.id));
|
|
98478
98574
|
return { pairs: pairs2, unmatchedFrom, unmatchedTo };
|
|
98479
98575
|
}
|
|
98480
98576
|
function tokenizeText(element, mode) {
|
|
@@ -98721,13 +98817,12 @@ function generateMorphAnimations(pairs2, durationMs, _mode = "object") {
|
|
|
98721
98817
|
const sy = Math.max(fromElement.height, 1) / Math.max(toElement.height, 1);
|
|
98722
98818
|
const fromOpacity = fromElement.opacity ?? 1;
|
|
98723
98819
|
const toOpacity = toElement.opacity ?? 1;
|
|
98724
|
-
const fromRot = fromElement.rotation ?? 0;
|
|
98725
98820
|
const toRot = toElement.rotation ?? 0;
|
|
98821
|
+
const fromRot = shortestRotationTarget(toRot, fromElement.rotation ?? 0);
|
|
98726
98822
|
const flips = `${toElement.flipHorizontal ? " scaleX(-1)" : ""}${toElement.flipVertical ? " scaleY(-1)" : ""}`;
|
|
98727
|
-
const crossfades = morphPairNeedsCrossfade(fromElement, toElement);
|
|
98728
98823
|
const fromProps = [
|
|
98729
98824
|
` transform: translate(${dx}px, ${dy}px) scale(${sx}, ${sy}) rotate(${fromRot}deg)${flips};`,
|
|
98730
|
-
` opacity: ${
|
|
98825
|
+
` opacity: ${fromOpacity};`
|
|
98731
98826
|
];
|
|
98732
98827
|
const toProps = [
|
|
98733
98828
|
` transform: translate(0, 0) scale(1, 1) rotate(${toRot}deg)${flips};`,
|
|
@@ -98771,7 +98866,7 @@ function generateMorphGhostAnimations(pairs2, durationMs, startIndex) {
|
|
|
98771
98866
|
const sx = Math.max(toElement.width, 1) / Math.max(fromElement.width, 1);
|
|
98772
98867
|
const sy = Math.max(toElement.height, 1) / Math.max(fromElement.height, 1);
|
|
98773
98868
|
const fromRot = fromElement.rotation ?? 0;
|
|
98774
|
-
const toRot = toElement.rotation ?? 0;
|
|
98869
|
+
const toRot = shortestRotationTarget(fromRot, toElement.rotation ?? 0);
|
|
98775
98870
|
const flips = `${fromElement.flipHorizontal ? " scaleX(-1)" : ""}${fromElement.flipVertical ? " scaleY(-1)" : ""}`;
|
|
98776
98871
|
const keyframes = `
|
|
98777
98872
|
@keyframes ${safeName} {
|
|
@@ -98794,6 +98889,19 @@ function generateMorphGhostAnimations(pairs2, durationMs, startIndex) {
|
|
|
98794
98889
|
}
|
|
98795
98890
|
return animations;
|
|
98796
98891
|
}
|
|
98892
|
+
function shortestRotationTarget(fromDeg, toDeg) {
|
|
98893
|
+
let delta = (toDeg - fromDeg) % 360;
|
|
98894
|
+
if (delta > 180) {
|
|
98895
|
+
delta -= 360;
|
|
98896
|
+
} else if (delta < -180) {
|
|
98897
|
+
delta += 360;
|
|
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
|
+
}
|
|
98903
|
+
return fromDeg + delta;
|
|
98904
|
+
}
|
|
98797
98905
|
function staticTransformSuffix(el) {
|
|
98798
98906
|
const rot = el.rotation ?? 0;
|
|
98799
98907
|
return ` rotate(${rot}deg)${el.flipHorizontal ? " scaleX(-1)" : ""}${el.flipVertical ? " scaleY(-1)" : ""}`;
|
|
@@ -98801,20 +98909,29 @@ function staticTransformSuffix(el) {
|
|
|
98801
98909
|
function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
98802
98910
|
return elements.map((el, i) => {
|
|
98803
98911
|
const safeName = `pptx-morph-fadeout-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
|
|
98912
|
+
const transform = ` transform: scale(1)${staticTransformSuffix(el)};`;
|
|
98804
98913
|
const keyframes = `
|
|
98805
98914
|
@keyframes ${safeName} {
|
|
98806
|
-
|
|
98915
|
+
0% {
|
|
98807
98916
|
opacity: ${el.opacity ?? 1};
|
|
98808
|
-
|
|
98917
|
+
${transform}
|
|
98809
98918
|
}
|
|
98810
|
-
|
|
98919
|
+
${MORPH_FADE_OUT_HOLD_PERCENT}% {
|
|
98920
|
+
opacity: ${el.opacity ?? 1};
|
|
98921
|
+
${transform}
|
|
98922
|
+
}
|
|
98923
|
+
${MORPH_FADE_OUT_END_PERCENT}% {
|
|
98811
98924
|
opacity: 0;
|
|
98812
|
-
|
|
98925
|
+
${transform}
|
|
98926
|
+
}
|
|
98927
|
+
100% {
|
|
98928
|
+
opacity: 0;
|
|
98929
|
+
${transform}
|
|
98813
98930
|
}
|
|
98814
98931
|
}`;
|
|
98815
98932
|
return {
|
|
98816
98933
|
elementId: el.id,
|
|
98817
|
-
animation: `${safeName} ${durationMs}ms
|
|
98934
|
+
animation: `${safeName} ${durationMs}ms linear forwards`,
|
|
98818
98935
|
keyframes
|
|
98819
98936
|
};
|
|
98820
98937
|
});
|
|
@@ -98822,20 +98939,26 @@ function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
|
|
|
98822
98939
|
function generateUnmatchedFadeInAnimations(elements, durationMs, startIndex) {
|
|
98823
98940
|
return elements.map((el, i) => {
|
|
98824
98941
|
const safeName = `pptx-morph-fadein-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
|
|
98942
|
+
const transform = ` transform: scale(1)${staticTransformSuffix(el)};`;
|
|
98825
98943
|
const keyframes = `
|
|
98826
98944
|
@keyframes ${safeName} {
|
|
98827
|
-
|
|
98945
|
+
0% {
|
|
98828
98946
|
opacity: 0;
|
|
98829
|
-
|
|
98947
|
+
${transform}
|
|
98830
98948
|
}
|
|
98831
|
-
|
|
98949
|
+
${MORPH_FADE_IN_START_PERCENT}% {
|
|
98950
|
+
opacity: 0;
|
|
98951
|
+
animation-timing-function: ${MORPH_FADE_IN_EASING};
|
|
98952
|
+
${transform}
|
|
98953
|
+
}
|
|
98954
|
+
100% {
|
|
98832
98955
|
opacity: ${el.opacity ?? 1};
|
|
98833
|
-
|
|
98956
|
+
${transform}
|
|
98834
98957
|
}
|
|
98835
98958
|
}`;
|
|
98836
98959
|
return {
|
|
98837
98960
|
elementId: el.id,
|
|
98838
|
-
animation: `${safeName} ${durationMs}ms
|
|
98961
|
+
animation: `${safeName} ${durationMs}ms linear forwards`,
|
|
98839
98962
|
keyframes
|
|
98840
98963
|
};
|
|
98841
98964
|
});
|
|
@@ -98909,7 +99032,7 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
|
|
|
98909
99032
|
return void 0;
|
|
98910
99033
|
}
|
|
98911
99034
|
const animations = generateFullMorphTransition(fromSlide, toSlide, durationMs, mode);
|
|
98912
|
-
const outgoingElements =
|
|
99035
|
+
const outgoingElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
|
|
98913
99036
|
const outgoingIds = new Set(outgoingElements.map((element) => element.id));
|
|
98914
99037
|
const incomingAnimations = /* @__PURE__ */ new Map();
|
|
98915
99038
|
const outgoingAnimations = /* @__PURE__ */ new Map();
|
|
@@ -101287,6 +101410,11 @@ var INSTANT = {
|
|
|
101287
101410
|
};
|
|
101288
101411
|
var DEFAULT_TRANSITION_DURATION_MS = 1e3;
|
|
101289
101412
|
var DEFAULT_MORPH_DURATION_MS = 2e3;
|
|
101413
|
+
var TRANSITION_SPEED_DURATION_MS = {
|
|
101414
|
+
fast: 500,
|
|
101415
|
+
med: 750,
|
|
101416
|
+
slow: 1e3
|
|
101417
|
+
};
|
|
101290
101418
|
var EASE = "ease-in-out";
|
|
101291
101419
|
var P14_TRANSITION_KEYFRAMES = `
|
|
101292
101420
|
/* \u2500\u2500 Conveyor (translate X with staggered timing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -102497,6 +102625,10 @@ function resolveTransitionDurationMs(transition) {
|
|
|
102497
102625
|
if (typeof transition.durationMs === "number" && transition.durationMs > 0) {
|
|
102498
102626
|
return transition.durationMs;
|
|
102499
102627
|
}
|
|
102628
|
+
const speedMs = transition.speed ? TRANSITION_SPEED_DURATION_MS[transition.speed] : void 0;
|
|
102629
|
+
if (typeof speedMs === "number") {
|
|
102630
|
+
return speedMs;
|
|
102631
|
+
}
|
|
102500
102632
|
if (transition.type === "morph") {
|
|
102501
102633
|
return DEFAULT_MORPH_DURATION_MS;
|
|
102502
102634
|
}
|
|
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
|