pptx-react-viewer 2.13.0 → 2.13.2
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 +8 -0
- package/dist/{AiChatPanel-DEI3EQFM.js → AiChatPanel-F4E3A2DE.js} +35 -27
- package/dist/AiChatPanel-F4E3A2DE.js.br +0 -0
- package/dist/AiChatPanel-F4E3A2DE.js.gz +0 -0
- package/dist/{AiChatPanel-4YS6DEIT.mjs → AiChatPanel-VEULATXX.mjs} +15 -7
- package/dist/AiChatPanel-VEULATXX.mjs.br +0 -0
- package/dist/AiChatPanel-VEULATXX.mjs.gz +0 -0
- package/dist/{Model3DScene-JSNQCKCJ.mjs → Model3DScene-KIPEODEJ.mjs} +1 -1
- package/dist/Model3DScene-KIPEODEJ.mjs.br +0 -0
- package/dist/Model3DScene-KIPEODEJ.mjs.gz +0 -0
- package/dist/{Model3DScene-X4W7GZVY.js → Model3DScene-TD2LIHYP.js} +2 -2
- package/dist/Model3DScene-TD2LIHYP.js.br +0 -0
- package/dist/Model3DScene-TD2LIHYP.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-3MSU74YH.mjs → SurfaceChart3DScene-GRBWZ52S.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-3MSU74YH.mjs.br → SurfaceChart3DScene-GRBWZ52S.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-GRBWZ52S.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-IZLUWT27.js → SurfaceChart3DScene-OTKXQH5O.js} +2 -2
- package/dist/SurfaceChart3DScene-OTKXQH5O.js.br +0 -0
- package/dist/SurfaceChart3DScene-OTKXQH5O.js.gz +0 -0
- package/dist/{chunk-YA7VFYTW.mjs → chunk-3HWE6QZG.mjs} +16 -7
- package/dist/chunk-3HWE6QZG.mjs.br +0 -0
- package/dist/chunk-3HWE6QZG.mjs.gz +0 -0
- package/dist/{chunk-RWIQHVZQ.js → chunk-BNSCH4WT.js} +340 -326
- package/dist/chunk-BNSCH4WT.js.br +0 -0
- package/dist/chunk-BNSCH4WT.js.gz +0 -0
- package/dist/{chunk-IDW5UPXW.js → chunk-DOS7NY7C.js} +259 -295
- package/dist/chunk-DOS7NY7C.js.br +0 -0
- package/dist/chunk-DOS7NY7C.js.gz +0 -0
- package/dist/{chunk-SHZ3GWOD.js → chunk-EUQ2IER3.js} +1046 -1037
- package/dist/chunk-EUQ2IER3.js.br +0 -0
- package/dist/chunk-EUQ2IER3.js.gz +0 -0
- package/dist/{chunk-EFSQW6S5.js → chunk-FDR5W67L.js} +713 -349
- package/dist/chunk-FDR5W67L.js.br +0 -0
- package/dist/chunk-FDR5W67L.js.gz +0 -0
- package/dist/{chunk-4TD7EINA.mjs → chunk-GKOKCOXR.mjs} +709 -350
- package/dist/chunk-GKOKCOXR.mjs.br +0 -0
- package/dist/chunk-GKOKCOXR.mjs.gz +0 -0
- package/dist/{chunk-HRLF4REI.mjs → chunk-GZ6TXBEO.mjs} +21 -56
- package/dist/chunk-GZ6TXBEO.mjs.br +0 -0
- package/dist/chunk-GZ6TXBEO.mjs.gz +0 -0
- package/dist/{chunk-WEU5EMKK.mjs → chunk-L5YGPCQW.mjs} +1 -1
- package/dist/chunk-L5YGPCQW.mjs.br +0 -0
- package/dist/chunk-L5YGPCQW.mjs.gz +0 -0
- package/dist/{chunk-G2LZT5SV.js → chunk-VY3KLDJF.js} +3 -3
- package/dist/chunk-VY3KLDJF.js.br +0 -0
- package/dist/chunk-VY3KLDJF.js.gz +0 -0
- package/dist/{chunk-6KRNQ2KF.mjs → chunk-ZFRPPY2N.mjs} +16 -2
- package/dist/chunk-ZFRPPY2N.mjs.br +0 -0
- package/dist/chunk-ZFRPPY2N.mjs.gz +0 -0
- package/dist/index.d.ts +14 -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.d.ts +14 -0
- package/dist/internals.d.ts.map +1 -1
- 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.d.ts +14 -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-4YS6DEIT.mjs.br +0 -0
- package/dist/AiChatPanel-4YS6DEIT.mjs.gz +0 -0
- package/dist/AiChatPanel-DEI3EQFM.js.br +0 -0
- package/dist/AiChatPanel-DEI3EQFM.js.gz +0 -0
- package/dist/Model3DScene-JSNQCKCJ.mjs.br +0 -0
- package/dist/Model3DScene-JSNQCKCJ.mjs.gz +0 -0
- package/dist/Model3DScene-X4W7GZVY.js.br +0 -0
- package/dist/Model3DScene-X4W7GZVY.js.gz +0 -0
- package/dist/SurfaceChart3DScene-3MSU74YH.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-IZLUWT27.js.br +0 -0
- package/dist/SurfaceChart3DScene-IZLUWT27.js.gz +0 -0
- package/dist/chunk-4TD7EINA.mjs.br +0 -0
- package/dist/chunk-4TD7EINA.mjs.gz +0 -0
- package/dist/chunk-6KRNQ2KF.mjs.br +0 -0
- package/dist/chunk-6KRNQ2KF.mjs.gz +0 -0
- package/dist/chunk-EFSQW6S5.js.br +0 -0
- package/dist/chunk-EFSQW6S5.js.gz +0 -0
- package/dist/chunk-G2LZT5SV.js.br +0 -0
- package/dist/chunk-G2LZT5SV.js.gz +0 -0
- package/dist/chunk-HRLF4REI.mjs.br +0 -0
- package/dist/chunk-HRLF4REI.mjs.gz +0 -0
- package/dist/chunk-IDW5UPXW.js.br +0 -0
- package/dist/chunk-IDW5UPXW.js.gz +0 -0
- package/dist/chunk-RWIQHVZQ.js.br +0 -0
- package/dist/chunk-RWIQHVZQ.js.gz +0 -0
- package/dist/chunk-SHZ3GWOD.js.br +0 -0
- package/dist/chunk-SHZ3GWOD.js.gz +0 -0
- package/dist/chunk-WEU5EMKK.mjs.br +0 -0
- package/dist/chunk-WEU5EMKK.mjs.gz +0 -0
- package/dist/chunk-YA7VFYTW.mjs.br +0 -0
- package/dist/chunk-YA7VFYTW.mjs.gz +0 -0
|
@@ -15896,30 +15896,133 @@ var PptxCommentXmlFactoryProvider = class {
|
|
|
15896
15896
|
return new PptxCommentAuthorsXmlFactory();
|
|
15897
15897
|
}
|
|
15898
15898
|
};
|
|
15899
|
+
var P14_TRANSITION_TYPES = /* @__PURE__ */ new Set([
|
|
15900
|
+
"conveyor",
|
|
15901
|
+
"doors",
|
|
15902
|
+
"ferris",
|
|
15903
|
+
"flash",
|
|
15904
|
+
"flythrough",
|
|
15905
|
+
"gallery",
|
|
15906
|
+
"glitter",
|
|
15907
|
+
"honeycomb",
|
|
15908
|
+
"pan",
|
|
15909
|
+
"prism",
|
|
15910
|
+
"reveal",
|
|
15911
|
+
"ripple",
|
|
15912
|
+
"shred",
|
|
15913
|
+
"switch",
|
|
15914
|
+
"vortex",
|
|
15915
|
+
"warp",
|
|
15916
|
+
"wheelReverse",
|
|
15917
|
+
"window",
|
|
15918
|
+
"cube",
|
|
15919
|
+
"flip",
|
|
15920
|
+
"rotate",
|
|
15921
|
+
"orbit"
|
|
15922
|
+
]);
|
|
15923
|
+
function readP14Details(localName22, value) {
|
|
15924
|
+
const type = localName22;
|
|
15925
|
+
let direction;
|
|
15926
|
+
let orient;
|
|
15927
|
+
let pattern;
|
|
15928
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
15929
|
+
const detail = value;
|
|
15930
|
+
const rawDir = String(detail["@_dir"] || "").trim();
|
|
15931
|
+
if (rawDir.length > 0) {
|
|
15932
|
+
direction = rawDir;
|
|
15933
|
+
}
|
|
15934
|
+
const rawOrient = String(detail["@_orient"] || "").trim();
|
|
15935
|
+
if (rawOrient === "horz" || rawOrient === "vert") {
|
|
15936
|
+
orient = rawOrient;
|
|
15937
|
+
}
|
|
15938
|
+
const rawPattern = String(detail["@_pattern"] || "").trim();
|
|
15939
|
+
if (rawPattern.length > 0) {
|
|
15940
|
+
pattern = rawPattern;
|
|
15941
|
+
}
|
|
15942
|
+
}
|
|
15943
|
+
return { type, direction, orient, pattern };
|
|
15944
|
+
}
|
|
15945
|
+
function parseP14DirectChild(transitionNode, getXmlLocalName) {
|
|
15946
|
+
for (const [key, value] of Object.entries(transitionNode)) {
|
|
15947
|
+
if (key.startsWith("@_")) {
|
|
15948
|
+
continue;
|
|
15949
|
+
}
|
|
15950
|
+
const localName22 = getXmlLocalName(key);
|
|
15951
|
+
if (P14_TRANSITION_TYPES.has(localName22)) {
|
|
15952
|
+
return readP14Details(localName22, value);
|
|
15953
|
+
}
|
|
15954
|
+
}
|
|
15955
|
+
return void 0;
|
|
15956
|
+
}
|
|
15957
|
+
function parseP14FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
15958
|
+
const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
15959
|
+
for (const ext of extEntries) {
|
|
15960
|
+
if (!ext) {
|
|
15961
|
+
continue;
|
|
15962
|
+
}
|
|
15963
|
+
for (const [key, value] of Object.entries(ext)) {
|
|
15964
|
+
if (key.startsWith("@_")) {
|
|
15965
|
+
continue;
|
|
15966
|
+
}
|
|
15967
|
+
const localName22 = getXmlLocalName(key);
|
|
15968
|
+
if (!P14_TRANSITION_TYPES.has(localName22)) {
|
|
15969
|
+
continue;
|
|
15970
|
+
}
|
|
15971
|
+
return readP14Details(localName22, value);
|
|
15972
|
+
}
|
|
15973
|
+
}
|
|
15974
|
+
return void 0;
|
|
15975
|
+
}
|
|
15976
|
+
function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, xmlLookupService, getXmlLocalName) {
|
|
15977
|
+
const p14Child = {};
|
|
15978
|
+
const dir = String(direction || "").trim();
|
|
15979
|
+
if (dir.length > 0) {
|
|
15980
|
+
p14Child["@_dir"] = dir;
|
|
15981
|
+
}
|
|
15982
|
+
if (orient) {
|
|
15983
|
+
p14Child["@_orient"] = orient;
|
|
15984
|
+
}
|
|
15985
|
+
if (pattern) {
|
|
15986
|
+
p14Child["@_pattern"] = pattern;
|
|
15987
|
+
}
|
|
15988
|
+
const transitionExt = {
|
|
15989
|
+
"@_uri": "{CE6CE671-F284-4235-B8B7-4F3F06D5A82C}",
|
|
15990
|
+
[`p14:${transitionType}`]: p14Child
|
|
15991
|
+
};
|
|
15992
|
+
if (rawExtLst) {
|
|
15993
|
+
const existing = xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
|
|
15994
|
+
const otherExts = existing.filter((ext) => {
|
|
15995
|
+
if (!ext) {
|
|
15996
|
+
return false;
|
|
15997
|
+
}
|
|
15998
|
+
for (const key of Object.keys(ext)) {
|
|
15999
|
+
if (key.startsWith("@_")) {
|
|
16000
|
+
continue;
|
|
16001
|
+
}
|
|
16002
|
+
const localName22 = getXmlLocalName(key);
|
|
16003
|
+
if (P14_TRANSITION_TYPES.has(localName22)) {
|
|
16004
|
+
return false;
|
|
16005
|
+
}
|
|
16006
|
+
}
|
|
16007
|
+
return true;
|
|
16008
|
+
});
|
|
16009
|
+
const allExts = [transitionExt, ...otherExts];
|
|
16010
|
+
return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
|
|
16011
|
+
}
|
|
16012
|
+
return { "p:ext": transitionExt };
|
|
16013
|
+
}
|
|
15899
16014
|
var MC_NAMESPACE_CAPABILITIES = {
|
|
16015
|
+
// Office 2010 (p14) transitions are shared with the parser's canonical
|
|
16016
|
+
// list (`P14_TRANSITION_TYPES`) so the two can never drift apart again:
|
|
16017
|
+
// this set used to be a hand-copied subset that was missing `reveal` and
|
|
16018
|
+
// `ripple`, so every `mc:Choice Requires="p14"` carrying one of them
|
|
16019
|
+
// reported `UNSUPPORTED_ALTERNATE_CONTENT_CHOICE` and silently used the
|
|
16020
|
+
// fallback fade even though the parser handles both. The extra names are
|
|
16021
|
+
// the non-transition p14 features we also parse.
|
|
15900
16022
|
p14: /* @__PURE__ */ new Set([
|
|
16023
|
+
...P14_TRANSITION_TYPES,
|
|
15901
16024
|
"transition",
|
|
15902
|
-
"conveyor",
|
|
15903
|
-
"pan",
|
|
15904
|
-
"glitter",
|
|
15905
|
-
"prism",
|
|
15906
|
-
"vortex",
|
|
15907
|
-
"switch",
|
|
15908
|
-
"flip",
|
|
15909
|
-
"gallery",
|
|
15910
|
-
"honeycomb",
|
|
15911
|
-
"flash",
|
|
15912
|
-
"shred",
|
|
15913
|
-
"warp",
|
|
15914
|
-
"flythrough",
|
|
15915
|
-
"doors",
|
|
15916
|
-
"window",
|
|
15917
|
-
"ferris",
|
|
15918
16025
|
"newsflash",
|
|
15919
|
-
"wheelReverse",
|
|
15920
|
-
"rotate",
|
|
15921
|
-
"orbit",
|
|
15922
|
-
"cube",
|
|
15923
16026
|
"media",
|
|
15924
16027
|
"trim",
|
|
15925
16028
|
"fade",
|
|
@@ -15928,6 +16031,17 @@ var MC_NAMESPACE_CAPABILITIES = {
|
|
|
15928
16031
|
"hiddenFill",
|
|
15929
16032
|
"hiddenLine"
|
|
15930
16033
|
]),
|
|
16034
|
+
// PowerPoint 2013+ writes its preset transitions (Origami, Fracture, Peel
|
|
16035
|
+
// Off, Page Curl, ...) as `<p15:prstTrans prst="...">`, either inside an
|
|
16036
|
+
// `mc:Choice Requires="p15"` or in a `p:transition/p:extLst` extension.
|
|
16037
|
+
// Both forms are parsed (see `PptxSlideTransitionService`), so the choice
|
|
16038
|
+
// IS supported: without this entry every p15 slide reported
|
|
16039
|
+
// `UNSUPPORTED_ALTERNATE_CONTENT_CHOICE`, which reads as "the transition
|
|
16040
|
+
// was dropped and the fallback fade was used" when in fact the preset
|
|
16041
|
+
// plays. `prstTrans` alone is listed on purpose: any OTHER `p15:*`
|
|
16042
|
+
// element still makes the choice unsupported and falls back, which is
|
|
16043
|
+
// the honest answer.
|
|
16044
|
+
p15: /* @__PURE__ */ new Set(["prstTrans"]),
|
|
15931
16045
|
// PowerPoint 2016+ writes the Morph transition as `<p159:morph @option>`,
|
|
15932
16046
|
// either inside an `mc:Choice Requires="p159"` or in a `p:transition/p:extLst`
|
|
15933
16047
|
// extension. Both forms are parsed (see `PptxSlideTransitionService`), so the
|
|
@@ -19904,6 +20018,74 @@ function extractChildBehaviourDurationMs(cTn, toArray2) {
|
|
|
19904
20018
|
}
|
|
19905
20019
|
return longest;
|
|
19906
20020
|
}
|
|
20021
|
+
var defaultLookup = new PptxXmlLookupService();
|
|
20022
|
+
function resolveSlideTimingNode(slideRoot) {
|
|
20023
|
+
const direct = slideRoot?.["p:timing"];
|
|
20024
|
+
if (direct && typeof direct === "object" && !Array.isArray(direct)) {
|
|
20025
|
+
return direct;
|
|
20026
|
+
}
|
|
20027
|
+
return findEnvelopeChildByLocalName(slideRoot, "timing", defaultLookup);
|
|
20028
|
+
}
|
|
20029
|
+
function findTransitionInAlternateContent(slideRoot, lookup) {
|
|
20030
|
+
return findEnvelopeChildByLocalName(slideRoot, "transition", lookup);
|
|
20031
|
+
}
|
|
20032
|
+
function findEnvelopeChildByLocalName(slideRoot, localName22, lookup) {
|
|
20033
|
+
for (const envelope of lookup.getChildrenArrayByLocalName(slideRoot, "AlternateContent")) {
|
|
20034
|
+
let unsupportedChoiceNode;
|
|
20035
|
+
for (const choice of lookup.getChildrenArrayByLocalName(envelope, "Choice")) {
|
|
20036
|
+
const node = lookup.getChildByLocalName(choice, localName22);
|
|
20037
|
+
if (!node) {
|
|
20038
|
+
continue;
|
|
20039
|
+
}
|
|
20040
|
+
if (isAlternateContentChoiceSupported(choice)) {
|
|
20041
|
+
return node;
|
|
20042
|
+
}
|
|
20043
|
+
unsupportedChoiceNode ??= node;
|
|
20044
|
+
}
|
|
20045
|
+
const fallbackNode = lookup.getChildByLocalName(
|
|
20046
|
+
lookup.getChildByLocalName(envelope, "Fallback"),
|
|
20047
|
+
localName22
|
|
20048
|
+
);
|
|
20049
|
+
const found = fallbackNode ?? unsupportedChoiceNode;
|
|
20050
|
+
if (found) {
|
|
20051
|
+
return found;
|
|
20052
|
+
}
|
|
20053
|
+
}
|
|
20054
|
+
return void 0;
|
|
20055
|
+
}
|
|
20056
|
+
function preservedP14ChildKey(node, transitionType, getXmlLocalName) {
|
|
20057
|
+
for (const key of Object.keys(node)) {
|
|
20058
|
+
if (!key.startsWith("@_") && getXmlLocalName(key) === transitionType) {
|
|
20059
|
+
return key;
|
|
20060
|
+
}
|
|
20061
|
+
}
|
|
20062
|
+
return void 0;
|
|
20063
|
+
}
|
|
20064
|
+
function preservedP15ChildKey(node, transitionType, getXmlLocalName) {
|
|
20065
|
+
for (const [key, value] of Object.entries(node)) {
|
|
20066
|
+
if (key.startsWith("@_") || getXmlLocalName(key) !== "prstTrans") {
|
|
20067
|
+
continue;
|
|
20068
|
+
}
|
|
20069
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
20070
|
+
continue;
|
|
20071
|
+
}
|
|
20072
|
+
if (String(value["@_prst"] || "").trim() === transitionType) {
|
|
20073
|
+
return key;
|
|
20074
|
+
}
|
|
20075
|
+
}
|
|
20076
|
+
return void 0;
|
|
20077
|
+
}
|
|
20078
|
+
function pruneDirectExtensionChildren(node, getXmlLocalName, keepKey) {
|
|
20079
|
+
for (const key of Object.keys(node)) {
|
|
20080
|
+
if (key === keepKey || key.startsWith("@_")) {
|
|
20081
|
+
continue;
|
|
20082
|
+
}
|
|
20083
|
+
const localName22 = getXmlLocalName(key);
|
|
20084
|
+
if (P14_TRANSITION_TYPES.has(localName22) || localName22 === "prstTrans") {
|
|
20085
|
+
delete node[key];
|
|
20086
|
+
}
|
|
20087
|
+
}
|
|
20088
|
+
}
|
|
19907
20089
|
function isInteractiveSequence(seq) {
|
|
19908
20090
|
const cTn = seq["p:cTn"];
|
|
19909
20091
|
if (!cTn || String(cTn["@_nodeType"] || "") === "mainSeq") {
|
|
@@ -19925,7 +20107,7 @@ var PptxNativeAnimationService = class {
|
|
|
19925
20107
|
*/
|
|
19926
20108
|
parseNativeAnimations(slideXml2) {
|
|
19927
20109
|
try {
|
|
19928
|
-
const timing = slideXml2?.["p:sld"]
|
|
20110
|
+
const timing = resolveSlideTimingNode(slideXml2?.["p:sld"]);
|
|
19929
20111
|
if (!timing || typeof timing !== "object") {
|
|
19930
20112
|
return void 0;
|
|
19931
20113
|
}
|
|
@@ -20303,106 +20485,6 @@ var PptxNativeAnimationService = class {
|
|
|
20303
20485
|
}
|
|
20304
20486
|
}
|
|
20305
20487
|
};
|
|
20306
|
-
var P14_TRANSITION_TYPES = /* @__PURE__ */ new Set([
|
|
20307
|
-
"conveyor",
|
|
20308
|
-
"doors",
|
|
20309
|
-
"ferris",
|
|
20310
|
-
"flash",
|
|
20311
|
-
"flythrough",
|
|
20312
|
-
"gallery",
|
|
20313
|
-
"glitter",
|
|
20314
|
-
"honeycomb",
|
|
20315
|
-
"pan",
|
|
20316
|
-
"prism",
|
|
20317
|
-
"reveal",
|
|
20318
|
-
"ripple",
|
|
20319
|
-
"shred",
|
|
20320
|
-
"switch",
|
|
20321
|
-
"vortex",
|
|
20322
|
-
"warp",
|
|
20323
|
-
"wheelReverse",
|
|
20324
|
-
"window",
|
|
20325
|
-
"cube",
|
|
20326
|
-
"flip",
|
|
20327
|
-
"rotate",
|
|
20328
|
-
"orbit"
|
|
20329
|
-
]);
|
|
20330
|
-
function parseP14FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
20331
|
-
const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
20332
|
-
for (const ext of extEntries) {
|
|
20333
|
-
if (!ext) {
|
|
20334
|
-
continue;
|
|
20335
|
-
}
|
|
20336
|
-
for (const [key, value] of Object.entries(ext)) {
|
|
20337
|
-
if (key.startsWith("@_")) {
|
|
20338
|
-
continue;
|
|
20339
|
-
}
|
|
20340
|
-
const localName22 = getXmlLocalName(key);
|
|
20341
|
-
if (!P14_TRANSITION_TYPES.has(localName22)) {
|
|
20342
|
-
continue;
|
|
20343
|
-
}
|
|
20344
|
-
const type = localName22;
|
|
20345
|
-
let direction;
|
|
20346
|
-
let orient;
|
|
20347
|
-
let pattern;
|
|
20348
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
20349
|
-
const detail = value;
|
|
20350
|
-
const rawDir = String(detail["@_dir"] || "").trim();
|
|
20351
|
-
if (rawDir.length > 0) {
|
|
20352
|
-
direction = rawDir;
|
|
20353
|
-
}
|
|
20354
|
-
const rawOrient = String(detail["@_orient"] || "").trim();
|
|
20355
|
-
if (rawOrient === "horz" || rawOrient === "vert") {
|
|
20356
|
-
orient = rawOrient;
|
|
20357
|
-
}
|
|
20358
|
-
const rawPattern = String(detail["@_pattern"] || "").trim();
|
|
20359
|
-
if (rawPattern.length > 0) {
|
|
20360
|
-
pattern = rawPattern;
|
|
20361
|
-
}
|
|
20362
|
-
}
|
|
20363
|
-
return { type, direction, orient, pattern };
|
|
20364
|
-
}
|
|
20365
|
-
}
|
|
20366
|
-
return void 0;
|
|
20367
|
-
}
|
|
20368
|
-
function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, xmlLookupService, getXmlLocalName) {
|
|
20369
|
-
const p14Child = {};
|
|
20370
|
-
const dir = String(direction || "").trim();
|
|
20371
|
-
if (dir.length > 0) {
|
|
20372
|
-
p14Child["@_dir"] = dir;
|
|
20373
|
-
}
|
|
20374
|
-
if (orient) {
|
|
20375
|
-
p14Child["@_orient"] = orient;
|
|
20376
|
-
}
|
|
20377
|
-
if (pattern) {
|
|
20378
|
-
p14Child["@_pattern"] = pattern;
|
|
20379
|
-
}
|
|
20380
|
-
const transitionExt = {
|
|
20381
|
-
"@_uri": "{CE6CE671-F284-4235-B8B7-4F3F06D5A82C}",
|
|
20382
|
-
[`p14:${transitionType}`]: p14Child
|
|
20383
|
-
};
|
|
20384
|
-
if (rawExtLst) {
|
|
20385
|
-
const existing = xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
|
|
20386
|
-
const otherExts = existing.filter((ext) => {
|
|
20387
|
-
if (!ext) {
|
|
20388
|
-
return false;
|
|
20389
|
-
}
|
|
20390
|
-
for (const key of Object.keys(ext)) {
|
|
20391
|
-
if (key.startsWith("@_")) {
|
|
20392
|
-
continue;
|
|
20393
|
-
}
|
|
20394
|
-
const localName22 = getXmlLocalName(key);
|
|
20395
|
-
if (P14_TRANSITION_TYPES.has(localName22)) {
|
|
20396
|
-
return false;
|
|
20397
|
-
}
|
|
20398
|
-
}
|
|
20399
|
-
return true;
|
|
20400
|
-
});
|
|
20401
|
-
const allExts = [transitionExt, ...otherExts];
|
|
20402
|
-
return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
|
|
20403
|
-
}
|
|
20404
|
-
return { "p:ext": transitionExt };
|
|
20405
|
-
}
|
|
20406
20488
|
var P15_TRANSITION_PRESETS = /* @__PURE__ */ new Set([
|
|
20407
20489
|
"fallOver",
|
|
20408
20490
|
"drape",
|
|
@@ -20428,6 +20510,36 @@ function optionalBoolean(value) {
|
|
|
20428
20510
|
}
|
|
20429
20511
|
return void 0;
|
|
20430
20512
|
}
|
|
20513
|
+
function readPrstTrans(value) {
|
|
20514
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
20515
|
+
return void 0;
|
|
20516
|
+
}
|
|
20517
|
+
const detail = value;
|
|
20518
|
+
const prst = String(detail["@_prst"] || "").trim();
|
|
20519
|
+
if (!P15_TRANSITION_PRESETS.has(prst)) {
|
|
20520
|
+
return void 0;
|
|
20521
|
+
}
|
|
20522
|
+
return {
|
|
20523
|
+
type: prst,
|
|
20524
|
+
invX: optionalBoolean(detail["@_invX"]),
|
|
20525
|
+
invY: optionalBoolean(detail["@_invY"])
|
|
20526
|
+
};
|
|
20527
|
+
}
|
|
20528
|
+
function parseP15DirectChild(transitionNode, getXmlLocalName) {
|
|
20529
|
+
for (const [key, value] of Object.entries(transitionNode)) {
|
|
20530
|
+
if (key.startsWith("@_")) {
|
|
20531
|
+
continue;
|
|
20532
|
+
}
|
|
20533
|
+
if (getXmlLocalName(key) !== "prstTrans") {
|
|
20534
|
+
continue;
|
|
20535
|
+
}
|
|
20536
|
+
const result = readPrstTrans(value);
|
|
20537
|
+
if (result) {
|
|
20538
|
+
return result;
|
|
20539
|
+
}
|
|
20540
|
+
}
|
|
20541
|
+
return void 0;
|
|
20542
|
+
}
|
|
20431
20543
|
function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
20432
20544
|
const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
20433
20545
|
for (const ext of extEntries) {
|
|
@@ -20441,19 +20553,10 @@ function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
|
20441
20553
|
if (getXmlLocalName(key) !== "prstTrans") {
|
|
20442
20554
|
continue;
|
|
20443
20555
|
}
|
|
20444
|
-
|
|
20445
|
-
|
|
20446
|
-
|
|
20447
|
-
const detail = value;
|
|
20448
|
-
const prst = String(detail["@_prst"] || "").trim();
|
|
20449
|
-
if (!P15_TRANSITION_PRESETS.has(prst)) {
|
|
20450
|
-
continue;
|
|
20556
|
+
const result = readPrstTrans(value);
|
|
20557
|
+
if (result) {
|
|
20558
|
+
return result;
|
|
20451
20559
|
}
|
|
20452
|
-
return {
|
|
20453
|
-
type: prst,
|
|
20454
|
-
invX: optionalBoolean(detail["@_invX"]),
|
|
20455
|
-
invY: optionalBoolean(detail["@_invY"])
|
|
20456
|
-
};
|
|
20457
20560
|
}
|
|
20458
20561
|
}
|
|
20459
20562
|
return void 0;
|
|
@@ -20702,6 +20805,69 @@ function validUnsignedInteger(value, min = 0) {
|
|
|
20702
20805
|
return Number.isInteger(value) && Number(value) >= min && Number(value) <= UINT_MAX;
|
|
20703
20806
|
}
|
|
20704
20807
|
var MORPH_EXT_URI = "{C7C9D14B-FE2A-4D35-B620-AB07D5B017F4}";
|
|
20808
|
+
function parseMorphFromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
20809
|
+
const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
20810
|
+
for (const ext of extEntries) {
|
|
20811
|
+
if (!ext) {
|
|
20812
|
+
continue;
|
|
20813
|
+
}
|
|
20814
|
+
for (const [key, value] of Object.entries(ext)) {
|
|
20815
|
+
if (key.startsWith("@_")) {
|
|
20816
|
+
continue;
|
|
20817
|
+
}
|
|
20818
|
+
if (getXmlLocalName(key) === "morph") {
|
|
20819
|
+
return {
|
|
20820
|
+
morphOption: normalizeMorphOption(value?.["@_option"])
|
|
20821
|
+
};
|
|
20822
|
+
}
|
|
20823
|
+
}
|
|
20824
|
+
}
|
|
20825
|
+
return void 0;
|
|
20826
|
+
}
|
|
20827
|
+
function hasDirectMorphChild(node, getXmlLocalName) {
|
|
20828
|
+
for (const key of Object.keys(node)) {
|
|
20829
|
+
if (!key.startsWith("@_") && getXmlLocalName(key) === "morph") {
|
|
20830
|
+
return true;
|
|
20831
|
+
}
|
|
20832
|
+
}
|
|
20833
|
+
return false;
|
|
20834
|
+
}
|
|
20835
|
+
function buildMorphExtLst(rawExtLst, morphOption, xmlLookupService, getXmlLocalName) {
|
|
20836
|
+
const morphNode = {
|
|
20837
|
+
"@_xmlns:p159": "http://schemas.microsoft.com/office/powerpoint/2015/09/main"
|
|
20838
|
+
};
|
|
20839
|
+
if (morphOption) {
|
|
20840
|
+
morphNode["@_option"] = morphOption;
|
|
20841
|
+
}
|
|
20842
|
+
const morphExt = {
|
|
20843
|
+
"@_uri": MORPH_EXT_URI,
|
|
20844
|
+
"p159:morph": morphNode
|
|
20845
|
+
};
|
|
20846
|
+
if (!rawExtLst) {
|
|
20847
|
+
return { "p:ext": morphExt };
|
|
20848
|
+
}
|
|
20849
|
+
const existing = xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
|
|
20850
|
+
const otherExts = existing.filter((ext) => {
|
|
20851
|
+
if (!ext) {
|
|
20852
|
+
return false;
|
|
20853
|
+
}
|
|
20854
|
+
const uri = String(ext["@_uri"] || "").trim();
|
|
20855
|
+
if (uri.toUpperCase() === MORPH_EXT_URI.toUpperCase()) {
|
|
20856
|
+
return false;
|
|
20857
|
+
}
|
|
20858
|
+
for (const key of Object.keys(ext)) {
|
|
20859
|
+
if (key.startsWith("@_")) {
|
|
20860
|
+
continue;
|
|
20861
|
+
}
|
|
20862
|
+
if (getXmlLocalName(key) === "morph") {
|
|
20863
|
+
return false;
|
|
20864
|
+
}
|
|
20865
|
+
}
|
|
20866
|
+
return true;
|
|
20867
|
+
});
|
|
20868
|
+
const allExts = [morphExt, ...otherExts];
|
|
20869
|
+
return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
|
|
20870
|
+
}
|
|
20705
20871
|
var PptxSlideTransitionService = class {
|
|
20706
20872
|
xmlLookupService;
|
|
20707
20873
|
getXmlLocalName;
|
|
@@ -20711,7 +20877,7 @@ var PptxSlideTransitionService = class {
|
|
|
20711
20877
|
}
|
|
20712
20878
|
parseSlideTransition(slideXml2) {
|
|
20713
20879
|
const slideRoot = this.xmlLookupService.getChildByLocalName(slideXml2, "sld");
|
|
20714
|
-
const transitionNode = this.xmlLookupService.getChildByLocalName(slideRoot, "transition") ||
|
|
20880
|
+
const transitionNode = this.xmlLookupService.getChildByLocalName(slideRoot, "transition") || findTransitionInAlternateContent(slideRoot, this.xmlLookupService);
|
|
20715
20881
|
if (!transitionNode) {
|
|
20716
20882
|
return void 0;
|
|
20717
20883
|
}
|
|
@@ -20720,6 +20886,18 @@ var PptxSlideTransitionService = class {
|
|
|
20720
20886
|
let { direction, orient, pattern } = details;
|
|
20721
20887
|
const { spokes, thruBlk, rawSoundAction, rawExtLst } = details;
|
|
20722
20888
|
let { morphOption } = details;
|
|
20889
|
+
if (transitionType === "cut") {
|
|
20890
|
+
const p14Direct = parseP14DirectChild(transitionNode, this.getXmlLocalName);
|
|
20891
|
+
const p15Direct = p14Direct ? void 0 : parseP15DirectChild(transitionNode, this.getXmlLocalName);
|
|
20892
|
+
if (p14Direct) {
|
|
20893
|
+
transitionType = p14Direct.type;
|
|
20894
|
+
direction = p14Direct.direction ?? direction;
|
|
20895
|
+
orient = p14Direct.orient ?? orient;
|
|
20896
|
+
pattern = p14Direct.pattern ?? pattern;
|
|
20897
|
+
} else if (p15Direct) {
|
|
20898
|
+
transitionType = p15Direct.type;
|
|
20899
|
+
}
|
|
20900
|
+
}
|
|
20723
20901
|
if (rawExtLst && transitionType === "cut") {
|
|
20724
20902
|
const p14Result = parseP14FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
|
|
20725
20903
|
const p15Result = p14Result ? void 0 : parseP15FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
|
|
@@ -20737,7 +20915,11 @@ var PptxSlideTransitionService = class {
|
|
|
20737
20915
|
} else if (p15Result) {
|
|
20738
20916
|
transitionType = p15Result.type;
|
|
20739
20917
|
} else {
|
|
20740
|
-
const morphResult =
|
|
20918
|
+
const morphResult = parseMorphFromExtLst(
|
|
20919
|
+
rawExtLst,
|
|
20920
|
+
this.xmlLookupService,
|
|
20921
|
+
this.getXmlLocalName
|
|
20922
|
+
);
|
|
20741
20923
|
if (morphResult) {
|
|
20742
20924
|
transitionType = "morph";
|
|
20743
20925
|
morphOption = morphResult.morphOption;
|
|
@@ -20761,58 +20943,6 @@ var PptxSlideTransitionService = class {
|
|
|
20761
20943
|
rawTransition: transitionNode
|
|
20762
20944
|
};
|
|
20763
20945
|
}
|
|
20764
|
-
/**
|
|
20765
|
-
* Locate a `<p:transition>` wrapped in a slide-root `mc:AlternateContent`
|
|
20766
|
-
* envelope.
|
|
20767
|
-
*
|
|
20768
|
-
* Real PowerPoint (verified via COM-authored fixtures) wraps the
|
|
20769
|
-
* transition in `mc:AlternateContent` whenever it carries an Office
|
|
20770
|
-
* 2010+ attribute such as `p14:dur` (sub-second transition duration):
|
|
20771
|
-
* an `mc:Choice Requires="p14"` branch carries the richer transition,
|
|
20772
|
-
* and `mc:Fallback` carries a plain one for older readers. Without this
|
|
20773
|
-
* unwrap, `p:sld`'s direct-child lookup for `transition` finds nothing
|
|
20774
|
-
* and the whole transition (including plain ones falling back with no
|
|
20775
|
-
* p14 data) is silently dropped, even though `mc:Choice` is otherwise a
|
|
20776
|
-
* complete, directly usable `p:transition` node.
|
|
20777
|
-
*/
|
|
20778
|
-
findTransitionInAlternateContent(slideRoot) {
|
|
20779
|
-
const altContent = this.xmlLookupService.getChildByLocalName(slideRoot, "AlternateContent");
|
|
20780
|
-
if (!altContent) {
|
|
20781
|
-
return void 0;
|
|
20782
|
-
}
|
|
20783
|
-
const choices2 = this.xmlLookupService.getChildrenArrayByLocalName(altContent, "Choice");
|
|
20784
|
-
for (const choice of choices2) {
|
|
20785
|
-
const transitionNode = this.xmlLookupService.getChildByLocalName(choice, "transition");
|
|
20786
|
-
if (transitionNode) {
|
|
20787
|
-
return transitionNode;
|
|
20788
|
-
}
|
|
20789
|
-
}
|
|
20790
|
-
const fallback = this.xmlLookupService.getChildByLocalName(altContent, "Fallback");
|
|
20791
|
-
return this.xmlLookupService.getChildByLocalName(fallback, "transition");
|
|
20792
|
-
}
|
|
20793
|
-
/**
|
|
20794
|
-
* Detects the PowerPoint 2016+ `morph` transition stored as a p159 extension
|
|
20795
|
-
* inside the transition's extLst.
|
|
20796
|
-
*/
|
|
20797
|
-
parseMorphFromExtLst(extLstNode) {
|
|
20798
|
-
const extEntries = this.xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
20799
|
-
for (const ext of extEntries) {
|
|
20800
|
-
if (!ext) {
|
|
20801
|
-
continue;
|
|
20802
|
-
}
|
|
20803
|
-
for (const [key, value] of Object.entries(ext)) {
|
|
20804
|
-
if (key.startsWith("@_")) {
|
|
20805
|
-
continue;
|
|
20806
|
-
}
|
|
20807
|
-
if (this.getXmlLocalName(key) === "morph") {
|
|
20808
|
-
return {
|
|
20809
|
-
morphOption: normalizeMorphOption(value?.["@_option"])
|
|
20810
|
-
};
|
|
20811
|
-
}
|
|
20812
|
-
}
|
|
20813
|
-
}
|
|
20814
|
-
return void 0;
|
|
20815
|
-
}
|
|
20816
20946
|
buildSlideTransitionXml(transition) {
|
|
20817
20947
|
if (!transition || transition.type === "none") {
|
|
20818
20948
|
return void 0;
|
|
@@ -20822,21 +20952,33 @@ var PptxSlideTransitionService = class {
|
|
|
20822
20952
|
const isP15Type = P15_TRANSITION_PRESETS.has(transitionType);
|
|
20823
20953
|
const isMorphType = transitionType === "morph";
|
|
20824
20954
|
const node = createPreservedTransitionNode(transition.rawTransition, this.getXmlLocalName);
|
|
20955
|
+
const p14ChildKey = isP14Type ? preservedP14ChildKey(node, transitionType, this.getXmlLocalName) : void 0;
|
|
20956
|
+
const p15ChildKey = isP15Type ? preservedP15ChildKey(node, transitionType, this.getXmlLocalName) : void 0;
|
|
20957
|
+
pruneDirectExtensionChildren(node, this.getXmlLocalName, p14ChildKey ?? p15ChildKey);
|
|
20825
20958
|
if (isP14Type) {
|
|
20826
|
-
|
|
20827
|
-
|
|
20828
|
-
|
|
20829
|
-
|
|
20830
|
-
|
|
20831
|
-
|
|
20832
|
-
|
|
20833
|
-
|
|
20834
|
-
|
|
20959
|
+
if (!p14ChildKey) {
|
|
20960
|
+
node["p:extLst"] = buildP14ExtLst(
|
|
20961
|
+
transitionType,
|
|
20962
|
+
transition.direction,
|
|
20963
|
+
transition.orient,
|
|
20964
|
+
transition.pattern,
|
|
20965
|
+
transition.rawExtLst,
|
|
20966
|
+
this.xmlLookupService,
|
|
20967
|
+
this.getXmlLocalName
|
|
20968
|
+
);
|
|
20969
|
+
}
|
|
20835
20970
|
} else if (isP15Type) {
|
|
20836
|
-
|
|
20971
|
+
if (!p15ChildKey) {
|
|
20972
|
+
node["p:extLst"] = transition.rawExtLst ?? buildP15ExtLst(transitionType);
|
|
20973
|
+
}
|
|
20837
20974
|
} else if (isMorphType) {
|
|
20838
|
-
if (!
|
|
20839
|
-
node["p:extLst"] =
|
|
20975
|
+
if (!hasDirectMorphChild(node, this.getXmlLocalName)) {
|
|
20976
|
+
node["p:extLst"] = buildMorphExtLst(
|
|
20977
|
+
transition.rawExtLst,
|
|
20978
|
+
transition.morphOption,
|
|
20979
|
+
this.xmlLookupService,
|
|
20980
|
+
this.getXmlLocalName
|
|
20981
|
+
);
|
|
20840
20982
|
}
|
|
20841
20983
|
} else {
|
|
20842
20984
|
node[`p:${transitionType}`] = buildStandardTransitionChild(transition);
|
|
@@ -20851,58 +20993,6 @@ var PptxSlideTransitionService = class {
|
|
|
20851
20993
|
}
|
|
20852
20994
|
return node;
|
|
20853
20995
|
}
|
|
20854
|
-
/**
|
|
20855
|
-
* True when the (preserved) transition node already carries a `morph`
|
|
20856
|
-
* element as a direct child, in any namespace prefix.
|
|
20857
|
-
*/
|
|
20858
|
-
hasDirectMorphChild(node) {
|
|
20859
|
-
for (const key of Object.keys(node)) {
|
|
20860
|
-
if (!key.startsWith("@_") && this.getXmlLocalName(key) === "morph") {
|
|
20861
|
-
return true;
|
|
20862
|
-
}
|
|
20863
|
-
}
|
|
20864
|
-
return false;
|
|
20865
|
-
}
|
|
20866
|
-
/**
|
|
20867
|
-
* Build the extLst XML node for a morph (p159) transition, preserving any
|
|
20868
|
-
* non-morph extensions from rawExtLst.
|
|
20869
|
-
*/
|
|
20870
|
-
buildMorphExtLst(rawExtLst, morphOption) {
|
|
20871
|
-
const morphNode = {
|
|
20872
|
-
"@_xmlns:p159": "http://schemas.microsoft.com/office/powerpoint/2015/09/main"
|
|
20873
|
-
};
|
|
20874
|
-
if (morphOption) {
|
|
20875
|
-
morphNode["@_option"] = morphOption;
|
|
20876
|
-
}
|
|
20877
|
-
const morphExt = {
|
|
20878
|
-
"@_uri": MORPH_EXT_URI,
|
|
20879
|
-
"p159:morph": morphNode
|
|
20880
|
-
};
|
|
20881
|
-
if (!rawExtLst) {
|
|
20882
|
-
return { "p:ext": morphExt };
|
|
20883
|
-
}
|
|
20884
|
-
const existing = this.xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
|
|
20885
|
-
const otherExts = existing.filter((ext) => {
|
|
20886
|
-
if (!ext) {
|
|
20887
|
-
return false;
|
|
20888
|
-
}
|
|
20889
|
-
const uri = String(ext["@_uri"] || "").trim();
|
|
20890
|
-
if (uri.toUpperCase() === MORPH_EXT_URI.toUpperCase()) {
|
|
20891
|
-
return false;
|
|
20892
|
-
}
|
|
20893
|
-
for (const key of Object.keys(ext)) {
|
|
20894
|
-
if (key.startsWith("@_")) {
|
|
20895
|
-
continue;
|
|
20896
|
-
}
|
|
20897
|
-
if (this.getXmlLocalName(key) === "morph") {
|
|
20898
|
-
return false;
|
|
20899
|
-
}
|
|
20900
|
-
}
|
|
20901
|
-
return true;
|
|
20902
|
-
});
|
|
20903
|
-
const allExts = [morphExt, ...otherExts];
|
|
20904
|
-
return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
|
|
20905
|
-
}
|
|
20906
20996
|
};
|
|
20907
20997
|
var PRESET_TO_OOXML = {
|
|
20908
20998
|
// ---- Entrance effects (typed `PptxAnimationPreset` names) ----
|
|
@@ -41443,6 +41533,30 @@ var FONT_SUBSTITUTION_MAP = {
|
|
|
41443
41533
|
Gulim: ["Noto Sans CJK KR", "AppleGothic", "sans-serif"],
|
|
41444
41534
|
Malgun: ["Noto Sans CJK KR", "Apple SD Gothic Neo", "sans-serif"],
|
|
41445
41535
|
"Malgun Gothic": ["Noto Sans CJK KR", "Apple SD Gothic Neo", "sans-serif"],
|
|
41536
|
+
// Source Han Sans (Adobe/Google) ships the same glyphs as Noto Sans CJK;
|
|
41537
|
+
// the zh-CN name 思源黑体 is how decks authored in Chinese reference it.
|
|
41538
|
+
"\u601D\u6E90\u9ED1\u4F53 CN": [
|
|
41539
|
+
"Source Han Sans CN",
|
|
41540
|
+
"Noto Sans CJK SC",
|
|
41541
|
+
"Noto Sans SC",
|
|
41542
|
+
"Microsoft YaHei",
|
|
41543
|
+
"sans-serif"
|
|
41544
|
+
],
|
|
41545
|
+
\u601D\u6E90\u9ED1\u4F53: [
|
|
41546
|
+
"Source Han Sans SC",
|
|
41547
|
+
"Noto Sans CJK SC",
|
|
41548
|
+
"Noto Sans SC",
|
|
41549
|
+
"Microsoft YaHei",
|
|
41550
|
+
"sans-serif"
|
|
41551
|
+
],
|
|
41552
|
+
"Source Han Sans CN": [
|
|
41553
|
+
"\u601D\u6E90\u9ED1\u4F53 CN",
|
|
41554
|
+
"Noto Sans CJK SC",
|
|
41555
|
+
"Noto Sans SC",
|
|
41556
|
+
"Microsoft YaHei",
|
|
41557
|
+
"sans-serif"
|
|
41558
|
+
],
|
|
41559
|
+
\u5FAE\u8F6F\u96C5\u9ED1: ["Microsoft YaHei", "Noto Sans CJK SC", "PingFang SC", "sans-serif"],
|
|
41446
41560
|
// Complex script fonts
|
|
41447
41561
|
"Arabic Typesetting": ["Noto Naskh Arabic", "serif"],
|
|
41448
41562
|
"Simplified Arabic": ["Noto Sans Arabic", "sans-serif"],
|
|
@@ -41462,6 +41576,11 @@ var FONT_SUBSTITUTION_MAP = {
|
|
|
41462
41576
|
Nyala: ["Noto Sans Ethiopic", "sans-serif"],
|
|
41463
41577
|
MoolBoran: ["Noto Sans Khmer", "sans-serif"],
|
|
41464
41578
|
// Decorative / Display
|
|
41579
|
+
// Condensed display faces: decks often reference the FULL style name
|
|
41580
|
+
// ("Bebas Neue Regular"); the suffix-stripped base resolves here. The
|
|
41581
|
+
// fallbacks must stay condensed, or short numeric labels sized to the
|
|
41582
|
+
// narrow face overflow their text boxes and wrap (issue #132, "77%").
|
|
41583
|
+
"Bebas Neue": ["Oswald", "Arial Narrow", "Impact", "sans-serif"],
|
|
41465
41584
|
"Century Gothic": ["URW Gothic", "Futura", "sans-serif"],
|
|
41466
41585
|
Oswald: ["Agency FB", "Arial Narrow", "sans-serif"],
|
|
41467
41586
|
"Franklin Gothic": ["Liberation Sans", "Helvetica Neue", "sans-serif"],
|
|
@@ -41473,6 +41592,48 @@ var FONT_SUBSTITUTION_MAP = {
|
|
|
41473
41592
|
Constantia: ["Liberation Serif", "Palatino", "serif"],
|
|
41474
41593
|
Corbel: ["Liberation Sans", "Lucida Grande", "sans-serif"]
|
|
41475
41594
|
};
|
|
41595
|
+
var FONT_STYLE_SUFFIX_TOKENS = /* @__PURE__ */ new Set([
|
|
41596
|
+
"regular",
|
|
41597
|
+
"normal",
|
|
41598
|
+
"book",
|
|
41599
|
+
"roman",
|
|
41600
|
+
"thin",
|
|
41601
|
+
"hairline",
|
|
41602
|
+
"extralight",
|
|
41603
|
+
"ultralight",
|
|
41604
|
+
"demilight",
|
|
41605
|
+
"semilight",
|
|
41606
|
+
"light",
|
|
41607
|
+
"medium",
|
|
41608
|
+
"demibold",
|
|
41609
|
+
"semibold",
|
|
41610
|
+
"bold",
|
|
41611
|
+
"extrabold",
|
|
41612
|
+
"ultrabold",
|
|
41613
|
+
"heavy",
|
|
41614
|
+
"black",
|
|
41615
|
+
"extrablack",
|
|
41616
|
+
"ultra",
|
|
41617
|
+
"italic",
|
|
41618
|
+
"oblique"
|
|
41619
|
+
]);
|
|
41620
|
+
function stripFontStyleSuffix(fontName) {
|
|
41621
|
+
let name = fontName.trim();
|
|
41622
|
+
let stripped = false;
|
|
41623
|
+
for (let i = 0; i < 2; i++) {
|
|
41624
|
+
const idx = name.lastIndexOf(" ");
|
|
41625
|
+
if (idx <= 0) {
|
|
41626
|
+
break;
|
|
41627
|
+
}
|
|
41628
|
+
const token2 = name.slice(idx + 1).toLowerCase().replace(/-/g, "");
|
|
41629
|
+
if (!FONT_STYLE_SUFFIX_TOKENS.has(token2)) {
|
|
41630
|
+
break;
|
|
41631
|
+
}
|
|
41632
|
+
name = name.slice(0, idx).trim();
|
|
41633
|
+
stripped = true;
|
|
41634
|
+
}
|
|
41635
|
+
return stripped && name.length > 0 ? name : void 0;
|
|
41636
|
+
}
|
|
41476
41637
|
var PANOSE_FAMILY_MAP = {
|
|
41477
41638
|
0: "sans-serif",
|
|
41478
41639
|
// Any — default to sans-serif
|
|
@@ -41546,18 +41707,27 @@ function getSubstituteFontFamily(fontName, panose) {
|
|
|
41546
41707
|
if (!trimmed) {
|
|
41547
41708
|
return "sans-serif";
|
|
41548
41709
|
}
|
|
41549
|
-
|
|
41710
|
+
return buildFontFamilyString(trimmed, getSubstituteFonts(trimmed, panose));
|
|
41711
|
+
}
|
|
41712
|
+
function getSubstituteFonts(fontName, panose) {
|
|
41713
|
+
const trimmed = fontName.trim();
|
|
41714
|
+
if (!trimmed) {
|
|
41715
|
+
return ["sans-serif"];
|
|
41716
|
+
}
|
|
41717
|
+
const baseName = stripFontStyleSuffix(trimmed);
|
|
41718
|
+
const basePrefix = baseName ? [baseName] : [];
|
|
41719
|
+
const directSubs = FONT_SUBSTITUTION_MAP[trimmed] ?? (baseName ? FONT_SUBSTITUTION_MAP[baseName] : void 0);
|
|
41550
41720
|
if (directSubs) {
|
|
41551
|
-
return
|
|
41721
|
+
return [...basePrefix, ...directSubs];
|
|
41552
41722
|
}
|
|
41553
41723
|
if (panose && panose.length >= 4) {
|
|
41554
41724
|
const genericFamily = classifyPanose(panose);
|
|
41555
41725
|
const concreteFonts = GENERIC_FAMILY_CONCRETE_FONTS[genericFamily];
|
|
41556
41726
|
if (concreteFonts) {
|
|
41557
|
-
return
|
|
41727
|
+
return [...basePrefix, ...concreteFonts];
|
|
41558
41728
|
}
|
|
41559
41729
|
}
|
|
41560
|
-
return
|
|
41730
|
+
return [...basePrefix, "sans-serif"];
|
|
41561
41731
|
}
|
|
41562
41732
|
var CSS_GENERIC_FAMILIES = /* @__PURE__ */ new Set([
|
|
41563
41733
|
"serif",
|
|
@@ -47181,6 +47351,16 @@ function parseCtnMediaTiming(cTn, mediaTag) {
|
|
|
47181
47351
|
}
|
|
47182
47352
|
return { trimStartMs, trimEndMs, loop, autoPlay, playAcrossSlides };
|
|
47183
47353
|
}
|
|
47354
|
+
function resolvePlayAcrossSlides(cMediaNode, ctnPlayAcrossSlides, mediaTag) {
|
|
47355
|
+
if (ctnPlayAcrossSlides) {
|
|
47356
|
+
return true;
|
|
47357
|
+
}
|
|
47358
|
+
if (mediaTag !== "p:audio") {
|
|
47359
|
+
return false;
|
|
47360
|
+
}
|
|
47361
|
+
const numSld = Number.parseInt(String(cMediaNode["@_numSld"] ?? ""), 10);
|
|
47362
|
+
return Number.isFinite(numSld) && numSld > 1;
|
|
47363
|
+
}
|
|
47184
47364
|
function parseMediaExtensionData(mediaNode, cMediaNode, shapeId, ensureArray17) {
|
|
47185
47365
|
let fadeInDuration;
|
|
47186
47366
|
let fadeOutDuration;
|
|
@@ -48641,6 +48821,11 @@ var PptxHandlerRuntime6 = class extends PptxHandlerRuntime5 {
|
|
|
48641
48821
|
}
|
|
48642
48822
|
}
|
|
48643
48823
|
const hideWhenNotPlaying = cMediaNode["@_showWhenStopped"] === "0";
|
|
48824
|
+
const playAcrossSlides = resolvePlayAcrossSlides(
|
|
48825
|
+
cMediaNode,
|
|
48826
|
+
timing.playAcrossSlides,
|
|
48827
|
+
mediaTag
|
|
48828
|
+
);
|
|
48644
48829
|
let posterFramePath;
|
|
48645
48830
|
const posterRId = cMediaNode["@_posterFrame"];
|
|
48646
48831
|
if (posterRId) {
|
|
@@ -48665,7 +48850,7 @@ var PptxHandlerRuntime6 = class extends PptxHandlerRuntime5 {
|
|
|
48665
48850
|
fadeInDuration: extData.fadeInDuration,
|
|
48666
48851
|
fadeOutDuration: extData.fadeOutDuration,
|
|
48667
48852
|
autoPlay: timing.autoPlay || void 0,
|
|
48668
|
-
playAcrossSlides:
|
|
48853
|
+
playAcrossSlides: playAcrossSlides || void 0,
|
|
48669
48854
|
hideWhenNotPlaying: hideWhenNotPlaying || void 0,
|
|
48670
48855
|
bookmarks: extData.bookmarks.length > 0 ? extData.bookmarks : void 0,
|
|
48671
48856
|
playbackSpeed: extData.playbackSpeed,
|
|
@@ -48702,7 +48887,7 @@ var PptxHandlerRuntime6 = class extends PptxHandlerRuntime5 {
|
|
|
48702
48887
|
extractMediaTimingMap(slideXml2, slidePath) {
|
|
48703
48888
|
const result = /* @__PURE__ */ new Map();
|
|
48704
48889
|
try {
|
|
48705
|
-
const timing = slideXml2?.["p:sld"]
|
|
48890
|
+
const timing = resolveSlideTimingNode(slideXml2?.["p:sld"]);
|
|
48706
48891
|
if (!timing) {
|
|
48707
48892
|
return result;
|
|
48708
48893
|
}
|
|
@@ -62263,31 +62448,35 @@ var PptxHandlerRuntime57 = class _PptxHandlerRuntime23 extends PptxHandlerRuntim
|
|
|
62263
62448
|
return normalized;
|
|
62264
62449
|
}
|
|
62265
62450
|
readImageCropFromBlipFill(blipFill) {
|
|
62451
|
+
const result = {};
|
|
62266
62452
|
const sourceRect = blipFill?.["a:srcRect"];
|
|
62267
62453
|
if (sourceRect) {
|
|
62268
|
-
|
|
62269
|
-
|
|
62270
|
-
|
|
62271
|
-
|
|
62272
|
-
return { cropLeft, cropTop, cropRight, cropBottom };
|
|
62454
|
+
result.cropLeft = this.parseCropFraction(sourceRect["@_l"]);
|
|
62455
|
+
result.cropTop = this.parseCropFraction(sourceRect["@_t"]);
|
|
62456
|
+
result.cropRight = this.parseCropFraction(sourceRect["@_r"]);
|
|
62457
|
+
result.cropBottom = this.parseCropFraction(sourceRect["@_b"]);
|
|
62273
62458
|
}
|
|
62274
62459
|
const stretchNode = blipFill?.["a:stretch"];
|
|
62275
62460
|
const fillRect = stretchNode?.["a:fillRect"];
|
|
62276
62461
|
if (fillRect) {
|
|
62277
|
-
|
|
62278
|
-
|
|
62279
|
-
|
|
62280
|
-
|
|
62281
|
-
if (l !== void 0 || t !== void 0 || r !== void 0 || b !== void 0) {
|
|
62282
|
-
return {
|
|
62283
|
-
cropLeft: l,
|
|
62284
|
-
cropTop: t,
|
|
62285
|
-
cropRight: r,
|
|
62286
|
-
cropBottom: b
|
|
62287
|
-
};
|
|
62288
|
-
}
|
|
62462
|
+
result.fillRectLeft = this.parseSignedRectFraction(fillRect["@_l"]);
|
|
62463
|
+
result.fillRectTop = this.parseSignedRectFraction(fillRect["@_t"]);
|
|
62464
|
+
result.fillRectRight = this.parseSignedRectFraction(fillRect["@_r"]);
|
|
62465
|
+
result.fillRectBottom = this.parseSignedRectFraction(fillRect["@_b"]);
|
|
62289
62466
|
}
|
|
62290
|
-
return
|
|
62467
|
+
return result;
|
|
62468
|
+
}
|
|
62469
|
+
/**
|
|
62470
|
+
* Parse a signed ST_Percentage rect offset (thousandths of a percent) to a
|
|
62471
|
+
* fraction. Unlike {@link parseCropFraction} the sign is preserved; the
|
|
62472
|
+
* magnitude is capped at 10x the frame to bound hostile input.
|
|
62473
|
+
*/
|
|
62474
|
+
parseSignedRectFraction(value) {
|
|
62475
|
+
const raw = Number.parseInt(String(value ?? ""), 10);
|
|
62476
|
+
if (!Number.isFinite(raw)) {
|
|
62477
|
+
return void 0;
|
|
62478
|
+
}
|
|
62479
|
+
return Math.max(-1e6, Math.min(1e6, raw)) / 1e5;
|
|
62291
62480
|
}
|
|
62292
62481
|
extractShapeStyle(spPr, styleNode) {
|
|
62293
62482
|
return this.shapeStyleExtractor.extractShapeStyle(spPr, styleNode);
|
|
@@ -63126,6 +63315,19 @@ var PptxHandlerRuntime61 = class _PptxHandlerRuntime25 extends PptxHandlerRuntim
|
|
|
63126
63315
|
}
|
|
63127
63316
|
};
|
|
63128
63317
|
var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntime61 {
|
|
63318
|
+
/**
|
|
63319
|
+
* A copy of an `a:lstStyle` level entry without its `a:defRPr`: run
|
|
63320
|
+
* defaults follow their own precedence chain, so only the paragraph-level
|
|
63321
|
+
* keys (algn, lnSpc, spacing, margins, tabs) may join the pPr merge.
|
|
63322
|
+
*/
|
|
63323
|
+
withoutDefaultRunProperties(node) {
|
|
63324
|
+
if (!node || typeof node !== "object") {
|
|
63325
|
+
return void 0;
|
|
63326
|
+
}
|
|
63327
|
+
const copy2 = { ...node };
|
|
63328
|
+
delete copy2["a:defRPr"];
|
|
63329
|
+
return copy2;
|
|
63330
|
+
}
|
|
63129
63331
|
/**
|
|
63130
63332
|
* Extract a paragraph's OWN `a:pPr` geometry (align, spacing, margins,
|
|
63131
63333
|
* indent, tabs, rtl) as a partial {@link TextStyle} so per-paragraph
|
|
@@ -63189,10 +63391,26 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
|
|
|
63189
63391
|
*/
|
|
63190
63392
|
resolveShapeParagraphStyle(p, textStyle, ctx) {
|
|
63191
63393
|
const inheritedParagraph = this.ensureArray(ctx.inheritedTxBody?.["a:p"])[0];
|
|
63192
|
-
const
|
|
63394
|
+
const directPPr = this.mergeXmlObjects(
|
|
63193
63395
|
inheritedParagraph?.["a:pPr"],
|
|
63194
63396
|
p["a:pPr"]
|
|
63195
63397
|
);
|
|
63398
|
+
const parsedLevel = Number.parseInt(String(directPPr?.["@_lvl"] ?? "0"), 10);
|
|
63399
|
+
const level = Number.isFinite(parsedLevel) ? Math.min(Math.max(parsedLevel, 0), 8) : 0;
|
|
63400
|
+
const levelKey = `a:lvl${level + 1}pPr`;
|
|
63401
|
+
const ownLstStyle = ctx.txBody?.["a:lstStyle"];
|
|
63402
|
+
const inheritedLstStyle = ctx.inheritedTxBody?.["a:lstStyle"];
|
|
63403
|
+
const lstStyleParagraphDefaults = this.mergeXmlObjects(
|
|
63404
|
+
this.mergeXmlObjects(
|
|
63405
|
+
this.withoutDefaultRunProperties(inheritedLstStyle?.["a:defPPr"]),
|
|
63406
|
+
this.withoutDefaultRunProperties(inheritedLstStyle?.[levelKey])
|
|
63407
|
+
),
|
|
63408
|
+
this.mergeXmlObjects(
|
|
63409
|
+
this.withoutDefaultRunProperties(ownLstStyle?.["a:defPPr"]),
|
|
63410
|
+
this.withoutDefaultRunProperties(ownLstStyle?.[levelKey])
|
|
63411
|
+
)
|
|
63412
|
+
);
|
|
63413
|
+
const pPr = this.mergeXmlObjects(lstStyleParagraphDefaults, directPPr);
|
|
63196
63414
|
const paragraphRtl = this.parseOptionalBooleanAttr(pPr?.["@_rtl"]);
|
|
63197
63415
|
if (paragraphRtl !== void 0 && textStyle.rtl === void 0) {
|
|
63198
63416
|
textStyle.rtl = paragraphRtl;
|
|
@@ -63316,8 +63534,6 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
|
|
|
63316
63534
|
ctx.slideRelationshipMap,
|
|
63317
63535
|
false
|
|
63318
63536
|
);
|
|
63319
|
-
const level = pPr?.["@_lvl"] === void 0 ? -1 : Number.parseInt(String(pPr["@_lvl"]), 10);
|
|
63320
|
-
const levelKey = level === -1 ? "a:defPPr" : `a:lvl${Number.isFinite(level) ? Math.min(Math.max(level + 1, 1), 9) : 1}pPr`;
|
|
63321
63537
|
const inheritedLevelStyle = this.extractTextRunStyle(
|
|
63322
63538
|
ctx.inheritedTxBody?.["a:lstStyle"]?.[levelKey]?.["a:defRPr"],
|
|
63323
63539
|
paraAlign,
|
|
@@ -63350,12 +63566,16 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
|
|
|
63350
63566
|
mergedDefaultRunStyle.fontFamily = ctx.styleFontRefTypeface;
|
|
63351
63567
|
}
|
|
63352
63568
|
if (ctx.effectiveLevelStyles) {
|
|
63353
|
-
const
|
|
63354
|
-
const
|
|
63569
|
+
const phLevel = ctx.effectiveLevelStyles[level];
|
|
63570
|
+
const phBase = ctx.effectiveLevelStyles[-1];
|
|
63355
63571
|
if (phLevel) {
|
|
63356
63572
|
this.applyPlaceholderLevelDefaults(mergedDefaultRunStyle, phLevel);
|
|
63357
63573
|
this.applyPlaceholderLevelDefaults(textStyle, phLevel);
|
|
63358
63574
|
}
|
|
63575
|
+
if (phBase) {
|
|
63576
|
+
this.applyPlaceholderLevelDefaults(mergedDefaultRunStyle, phBase);
|
|
63577
|
+
this.applyPlaceholderLevelDefaults(textStyle, phBase);
|
|
63578
|
+
}
|
|
63359
63579
|
}
|
|
63360
63580
|
if (pPr?.["@_algn"] === void 0 && textStyle.align !== void 0) {
|
|
63361
63581
|
paraAlign = textStyle.align;
|
|
@@ -63365,15 +63585,13 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
|
|
|
63365
63585
|
let effectiveMarginLeft = parMarginLeft;
|
|
63366
63586
|
let effectiveIndent = parIndent;
|
|
63367
63587
|
if (ctx.effectiveLevelStyles) {
|
|
63368
|
-
const
|
|
63369
|
-
const
|
|
63370
|
-
if (
|
|
63371
|
-
|
|
63372
|
-
|
|
63373
|
-
|
|
63374
|
-
|
|
63375
|
-
effectiveIndent = phLevel.indent;
|
|
63376
|
-
}
|
|
63588
|
+
const phLevel = ctx.effectiveLevelStyles[level];
|
|
63589
|
+
const phBase = ctx.effectiveLevelStyles[-1];
|
|
63590
|
+
if (effectiveMarginLeft === void 0) {
|
|
63591
|
+
effectiveMarginLeft = phLevel?.marginLeft ?? phBase?.marginLeft;
|
|
63592
|
+
}
|
|
63593
|
+
if (effectiveIndent === void 0) {
|
|
63594
|
+
effectiveIndent = phLevel?.indent ?? phBase?.indent;
|
|
63377
63595
|
}
|
|
63378
63596
|
}
|
|
63379
63597
|
return {
|
|
@@ -87225,8 +87443,8 @@ function formatAxisValue(val2, formatCode) {
|
|
|
87225
87443
|
return val2.toFixed(1);
|
|
87226
87444
|
}
|
|
87227
87445
|
function computeLayout(elementWidth, elementHeight, style, hasAxes, legendPos, options) {
|
|
87228
|
-
const svgWidth = Math.max(
|
|
87229
|
-
const svgHeight = Math.max(
|
|
87446
|
+
const svgWidth = Math.max(1, elementWidth);
|
|
87447
|
+
const svgHeight = Math.max(1, elementHeight);
|
|
87230
87448
|
let plotLeft = hasAxes ? 48 : 8;
|
|
87231
87449
|
let plotTop = 8;
|
|
87232
87450
|
let plotRight = svgWidth - 8;
|
|
@@ -87281,6 +87499,12 @@ function chartAreaFill(chartData) {
|
|
|
87281
87499
|
function plotAreaFill(chartData) {
|
|
87282
87500
|
return resolve(chartData?.style?.plotAreaFill, void 0);
|
|
87283
87501
|
}
|
|
87502
|
+
var CHART_PX_PER_PT = 4 / 3;
|
|
87503
|
+
function chartFontPx(sizePt) {
|
|
87504
|
+
return sizePt * CHART_PX_PER_PT;
|
|
87505
|
+
}
|
|
87506
|
+
var DEFAULT_CHART_TEXT_PX = chartFontPx(10);
|
|
87507
|
+
var DEFAULT_CHART_DATA_LABEL_PX = chartFontPx(9);
|
|
87284
87508
|
var LOG_EXPONENT_TOLERANCE = 1e-12;
|
|
87285
87509
|
function computeLogValueRange(series, logBase) {
|
|
87286
87510
|
const allValues = series.flatMap((item) => item.values).filter((value) => value > 0);
|
|
@@ -87859,9 +88083,9 @@ function dashArray(style, width) {
|
|
|
87859
88083
|
}
|
|
87860
88084
|
return `${unit * 3} ${unit * 2}`;
|
|
87861
88085
|
}
|
|
87862
|
-
function chartAxisTextStyle(axis,
|
|
88086
|
+
function chartAxisTextStyle(axis, defaultFontSizePx = DEFAULT_CHART_TEXT_PX) {
|
|
87863
88087
|
return {
|
|
87864
|
-
fontSize: axis?.fontSize
|
|
88088
|
+
fontSize: axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : defaultFontSizePx,
|
|
87865
88089
|
fill: axis?.fontColor ?? DEFAULT_COLOR2,
|
|
87866
88090
|
...axis?.fontBold !== void 0 ? { fontWeight: axis.fontBold ? "bold" : "normal" } : {},
|
|
87867
88091
|
...axis?.fontFamily ? { fontFamily: axis.fontFamily } : {}
|
|
@@ -88008,7 +88232,7 @@ function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft) {
|
|
|
88008
88232
|
x: labelX,
|
|
88009
88233
|
y: midY,
|
|
88010
88234
|
text: unitLabel,
|
|
88011
|
-
...chartAxisTextStyle(axis
|
|
88235
|
+
...chartAxisTextStyle(axis),
|
|
88012
88236
|
textAnchor: "middle",
|
|
88013
88237
|
transform: `rotate(-90, ${labelX}, ${midY})`
|
|
88014
88238
|
});
|
|
@@ -88020,7 +88244,7 @@ function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight) {
|
|
|
88020
88244
|
const gridlines = [];
|
|
88021
88245
|
const axisLabels = [];
|
|
88022
88246
|
const textStyle = chartAxisTextStyle(axis);
|
|
88023
|
-
const captionStyle = chartAxisTextStyle(axis
|
|
88247
|
+
const captionStyle = chartAxisTextStyle(axis);
|
|
88024
88248
|
const axisLine = buildVerticalAxisLine(axis, axisX, layout);
|
|
88025
88249
|
if (axisLine) {
|
|
88026
88250
|
gridlines.push(axisLine);
|
|
@@ -88242,7 +88466,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
88242
88466
|
x: x + singleBarWidth / 2,
|
|
88243
88467
|
y: val2 >= 0 ? y - 4 : y + h + 10,
|
|
88244
88468
|
text: formatAxisValue2(val2, series[si].numberFormat),
|
|
88245
|
-
fontSize:
|
|
88469
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88246
88470
|
fill: "#334155",
|
|
88247
88471
|
textAnchor: "middle"
|
|
88248
88472
|
});
|
|
@@ -88314,7 +88538,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
88314
88538
|
x: x + barW / 2,
|
|
88315
88539
|
y: y + h / 2 + 3,
|
|
88316
88540
|
text: `${Math.round(val2)}%`,
|
|
88317
|
-
fontSize:
|
|
88541
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88318
88542
|
fill: "#ffffff",
|
|
88319
88543
|
textAnchor: "middle",
|
|
88320
88544
|
fontWeight: "bold"
|
|
@@ -88347,7 +88571,7 @@ function pushClusteredStackedLabels(series, sourceIndices2, catCount, layout, ra
|
|
|
88347
88571
|
x,
|
|
88348
88572
|
y: labelY,
|
|
88349
88573
|
text: formatAxisValue2(val2, series[si].numberFormat),
|
|
88350
|
-
fontSize:
|
|
88574
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88351
88575
|
fill: "#334155",
|
|
88352
88576
|
textAnchor: "middle"
|
|
88353
88577
|
});
|
|
@@ -88633,7 +88857,7 @@ function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, s
|
|
|
88633
88857
|
x: pt.x,
|
|
88634
88858
|
y: pt.y - 7,
|
|
88635
88859
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88636
|
-
fontSize:
|
|
88860
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88637
88861
|
fill: "#334155",
|
|
88638
88862
|
textAnchor: "middle"
|
|
88639
88863
|
});
|
|
@@ -88705,7 +88929,7 @@ function buildAreas(chartData, catCount, layout, range, sourceIndices2, xPositio
|
|
|
88705
88929
|
x: pt.x,
|
|
88706
88930
|
y: pt.y - 6,
|
|
88707
88931
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88708
|
-
fontSize:
|
|
88932
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88709
88933
|
fill: "#334155",
|
|
88710
88934
|
textAnchor: "middle"
|
|
88711
88935
|
});
|
|
@@ -88750,7 +88974,7 @@ function buildScatter(chartData, layout, range) {
|
|
|
88750
88974
|
x: dot.cx,
|
|
88751
88975
|
y: dot.cy - 6,
|
|
88752
88976
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88753
|
-
fontSize:
|
|
88977
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88754
88978
|
fill: "#334155",
|
|
88755
88979
|
textAnchor: "middle"
|
|
88756
88980
|
});
|
|
@@ -88797,7 +89021,7 @@ function buildBubbles(chartData, layout, range) {
|
|
|
88797
89021
|
x: dot.cx,
|
|
88798
89022
|
y: dot.cy - 10,
|
|
88799
89023
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88800
|
-
fontSize:
|
|
89024
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88801
89025
|
fill: "#334155",
|
|
88802
89026
|
textAnchor: "middle"
|
|
88803
89027
|
});
|
|
@@ -88947,7 +89171,8 @@ function buildMultiLevelCategoryLabels(categoryLabels, categoryLevels, sourceInd
|
|
|
88947
89171
|
const skip = Math.max(1, axis?.tickLabelSkip ?? 1);
|
|
88948
89172
|
const textAnchor = axis?.labelAlignment === "l" ? "start" : axis?.labelAlignment === "r" ? "end" : "middle";
|
|
88949
89173
|
const direction = labelsAbove ? -1 : 1;
|
|
88950
|
-
const
|
|
89174
|
+
const fontPx = axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : DEFAULT_CHART_TEXT_PX;
|
|
89175
|
+
const bandHeight = Math.max(fontPx, 8) + 4;
|
|
88951
89176
|
return levels.flatMap((level, levelIndex) => {
|
|
88952
89177
|
const values = sourceIndices2.map((sourceIndex) => level[sourceIndex] ?? "");
|
|
88953
89178
|
return groupedLabels(values).flatMap((group2) => {
|
|
@@ -89682,7 +89907,7 @@ function computeTrendlinePrimitives(chartData, catCount, layout, range, mode = "
|
|
|
89682
89907
|
x: last.x,
|
|
89683
89908
|
y: last.y - 6,
|
|
89684
89909
|
text: labelParts.join(" "),
|
|
89685
|
-
fontSize:
|
|
89910
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
89686
89911
|
fill: strokeColor,
|
|
89687
89912
|
textAnchor: "end"
|
|
89688
89913
|
};
|
|
@@ -89699,6 +89924,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
|
|
|
89699
89924
|
if (!axes || axes.length === 0) {
|
|
89700
89925
|
return out;
|
|
89701
89926
|
}
|
|
89927
|
+
const titleFontPx = (axis) => axis.fontSize !== void 0 ? chartFontPx(axis.fontSize) : DEFAULT_CHART_TEXT_PX;
|
|
89702
89928
|
const catAxis = axes.find((a) => a.axisType === "catAx" && a.axPos !== "r" && a.titleText);
|
|
89703
89929
|
if (catAxis?.titleText) {
|
|
89704
89930
|
const xTitle = {
|
|
@@ -89706,7 +89932,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
|
|
|
89706
89932
|
x: layout.plotLeft + layout.plotWidth / 2,
|
|
89707
89933
|
y: layout.plotBottom + 22,
|
|
89708
89934
|
text: catAxis.titleText,
|
|
89709
|
-
fontSize:
|
|
89935
|
+
fontSize: titleFontPx(catAxis),
|
|
89710
89936
|
fill: AXIS_TITLE_COLOR,
|
|
89711
89937
|
textAnchor: "middle",
|
|
89712
89938
|
fontWeight: "bold"
|
|
@@ -89722,7 +89948,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
|
|
|
89722
89948
|
x: yx,
|
|
89723
89949
|
y: yy,
|
|
89724
89950
|
text: valAxis.titleText,
|
|
89725
|
-
fontSize:
|
|
89951
|
+
fontSize: titleFontPx(valAxis),
|
|
89726
89952
|
fill: AXIS_TITLE_COLOR,
|
|
89727
89953
|
textAnchor: "middle",
|
|
89728
89954
|
fontWeight: "bold",
|
|
@@ -90207,7 +90433,7 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
90207
90433
|
x: point.x,
|
|
90208
90434
|
y: point.y - 7,
|
|
90209
90435
|
text: formatAxisValue2(point.value, series.numberFormat),
|
|
90210
|
-
fontSize:
|
|
90436
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90211
90437
|
fill: "#334155",
|
|
90212
90438
|
textAnchor: "middle"
|
|
90213
90439
|
});
|
|
@@ -90262,7 +90488,7 @@ function appendBarLabels(series, chartData, layout, catCount, range, sourceIndic
|
|
|
90262
90488
|
x: xPositions?.[displayIndex] ?? layout.plotLeft + groupWidth * displayIndex + offset + barWidth / 2,
|
|
90263
90489
|
y: value >= 0 ? Math.min(zeroY, valueY) - 4 : Math.max(zeroY, valueY) + 10,
|
|
90264
90490
|
text: formatAxisValue2(value, series.numberFormat),
|
|
90265
|
-
fontSize:
|
|
90491
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90266
90492
|
fill: "#334155",
|
|
90267
90493
|
textAnchor: "middle"
|
|
90268
90494
|
});
|
|
@@ -90363,7 +90589,7 @@ function buildStockViewModel(element, chartData, categoryLabels) {
|
|
|
90363
90589
|
x: cx,
|
|
90364
90590
|
y: highY - 4,
|
|
90365
90591
|
text: formatAxisValue2(close),
|
|
90366
|
-
fontSize:
|
|
90592
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90367
90593
|
fill: "#334155",
|
|
90368
90594
|
textAnchor: "middle"
|
|
90369
90595
|
});
|
|
@@ -90808,7 +91034,7 @@ function buildHistogramViewModel(element, chartData, categoryLabels) {
|
|
|
90808
91034
|
x: bar.x + bar.w / 2,
|
|
90809
91035
|
y: bar.y - 4,
|
|
90810
91036
|
text: formatAxisValue2(values[index]),
|
|
90811
|
-
fontSize:
|
|
91037
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90812
91038
|
fill: DATA_LABEL_COLOR,
|
|
90813
91039
|
textAnchor: "middle"
|
|
90814
91040
|
})) : [];
|
|
@@ -91117,8 +91343,8 @@ function sliceAngles(values) {
|
|
|
91117
91343
|
});
|
|
91118
91344
|
}
|
|
91119
91345
|
function computeOfPieGeom(element, secondPieSize) {
|
|
91120
|
-
const svgWidth = Math.max(element.width,
|
|
91121
|
-
const svgHeight = Math.max(element.height,
|
|
91346
|
+
const svgWidth = Math.max(element.width, 1);
|
|
91347
|
+
const svgHeight = Math.max(element.height, 1);
|
|
91122
91348
|
const primaryR = Math.max(Math.min(svgWidth * 0.28, svgHeight * 0.4), 4);
|
|
91123
91349
|
const secScale = Math.min(Math.max(secondPieSize / 100, 0.3), 1.4);
|
|
91124
91350
|
return {
|
|
@@ -91138,7 +91364,7 @@ function sliceLabel(x, y, value) {
|
|
|
91138
91364
|
x,
|
|
91139
91365
|
y,
|
|
91140
91366
|
text: formatAxisValue2(value),
|
|
91141
|
-
fontSize:
|
|
91367
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91142
91368
|
fill: "#ffffff",
|
|
91143
91369
|
textAnchor: "middle",
|
|
91144
91370
|
fontWeight: "bold",
|
|
@@ -91313,7 +91539,7 @@ function buildPieDataLabels(params) {
|
|
|
91313
91539
|
x: slice.labelX,
|
|
91314
91540
|
y: slice.labelY,
|
|
91315
91541
|
text: formatAxisValue2(val2, numberFormat),
|
|
91316
|
-
fontSize:
|
|
91542
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91317
91543
|
fill: "#ffffff",
|
|
91318
91544
|
textAnchor: "middle",
|
|
91319
91545
|
fontWeight: "bold",
|
|
@@ -91333,7 +91559,7 @@ function buildPieDataLabels(params) {
|
|
|
91333
91559
|
x: labelX + (cos >= 0 ? 2 : -2),
|
|
91334
91560
|
y: labelY,
|
|
91335
91561
|
text: formatAxisValue2(val2, numberFormat),
|
|
91336
|
-
fontSize:
|
|
91562
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91337
91563
|
fill: "#334155",
|
|
91338
91564
|
textAnchor: anchor,
|
|
91339
91565
|
dominantBaseline: "central"
|
|
@@ -91757,7 +91983,8 @@ function textPrimitives(shape, box) {
|
|
|
91757
91983
|
if (!shape.paragraphs || shape.paragraphs.length === 0) {
|
|
91758
91984
|
return [];
|
|
91759
91985
|
}
|
|
91760
|
-
const
|
|
91986
|
+
const fontPxOf = (para) => para.fontSize !== void 0 ? chartFontPx(para.fontSize) : DEFAULT_CHART_TEXT_PX;
|
|
91987
|
+
const lineH = Math.max(12, ...shape.paragraphs.map((para) => fontPxOf(para) * 1.2));
|
|
91761
91988
|
const totalH = shape.paragraphs.length * lineH;
|
|
91762
91989
|
let cursorY = box.y + Math.max((box.h - totalH) / 2, 0) + lineH * 0.75;
|
|
91763
91990
|
const out = [];
|
|
@@ -91774,7 +92001,7 @@ function textPrimitives(shape, box) {
|
|
|
91774
92001
|
x: tx,
|
|
91775
92002
|
y: cursorY,
|
|
91776
92003
|
text: para.text,
|
|
91777
|
-
fontSize: para
|
|
92004
|
+
fontSize: fontPxOf(para),
|
|
91778
92005
|
fill: para.color ?? "#1e293b",
|
|
91779
92006
|
textAnchor: anchor,
|
|
91780
92007
|
fontWeight: para.bold ? "bold" : "normal"
|
|
@@ -91970,7 +92197,7 @@ function buildWaterfallViewModel(element, chartData, categoryLabels) {
|
|
|
91970
92197
|
x: x + barWidth / 2,
|
|
91971
92198
|
y: y - 4,
|
|
91972
92199
|
text: formatAxisValue2(value),
|
|
91973
|
-
fontSize:
|
|
92200
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91974
92201
|
fill: "#334155",
|
|
91975
92202
|
textAnchor: "middle"
|
|
91976
92203
|
});
|
|
@@ -92292,8 +92519,8 @@ function regionViewBounds(viewedRegionType, regionValues) {
|
|
|
92292
92519
|
};
|
|
92293
92520
|
}
|
|
92294
92521
|
function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
92295
|
-
const svgWidth = Math.max(element.width,
|
|
92296
|
-
const svgHeight = Math.max(element.height,
|
|
92522
|
+
const svgWidth = Math.max(element.width, 1);
|
|
92523
|
+
const svgHeight = Math.max(element.height, 1);
|
|
92297
92524
|
const categories = categoryLabels.length > 0 ? categoryLabels : chartData.categories;
|
|
92298
92525
|
const series = chartData.series[0];
|
|
92299
92526
|
const options = series?.regionMapOptions;
|
|
@@ -92655,8 +92882,8 @@ function formatAxisValue2(val2, formatCode) {
|
|
|
92655
92882
|
return val2.toFixed(1);
|
|
92656
92883
|
}
|
|
92657
92884
|
function computePlotLayout(elementWidth, elementHeight, chartData, hasAxes, options) {
|
|
92658
|
-
const svgWidth = Math.max(
|
|
92659
|
-
const svgHeight = Math.max(
|
|
92885
|
+
const svgWidth = Math.max(1, elementWidth);
|
|
92886
|
+
const svgHeight = Math.max(1, elementHeight);
|
|
92660
92887
|
let plotLeft = hasAxes ? 48 : 8;
|
|
92661
92888
|
let plotTop = 8;
|
|
92662
92889
|
let plotRight = svgWidth - 8;
|
|
@@ -92736,7 +92963,7 @@ function buildGridlinesAndLabels(range, layout) {
|
|
|
92736
92963
|
x: layout.plotLeft - 4,
|
|
92737
92964
|
y,
|
|
92738
92965
|
text: formatAxisValue2(val2),
|
|
92739
|
-
fontSize:
|
|
92966
|
+
fontSize: DEFAULT_CHART_TEXT_PX,
|
|
92740
92967
|
fill: AXIS_LABEL_COLOR,
|
|
92741
92968
|
textAnchor: "end",
|
|
92742
92969
|
dominantBaseline: "central"
|
|
@@ -92768,7 +92995,7 @@ function buildCategoryLabels(categoryLabels, layout, catSpacing) {
|
|
|
92768
92995
|
x,
|
|
92769
92996
|
y: layout.plotBottom + 12,
|
|
92770
92997
|
text: label,
|
|
92771
|
-
fontSize:
|
|
92998
|
+
fontSize: DEFAULT_CHART_TEXT_PX,
|
|
92772
92999
|
fill: AXIS_LABEL_COLOR,
|
|
92773
93000
|
textAnchor: "middle"
|
|
92774
93001
|
};
|
|
@@ -93113,8 +93340,8 @@ function buildFlatViewModel(element, chartData, categoryLabels, kind) {
|
|
|
93113
93340
|
return buildCartesianViewModel(element, chartData, categoryLabels, kind);
|
|
93114
93341
|
}
|
|
93115
93342
|
function buildFallbackViewModel(width, height, label) {
|
|
93116
|
-
const svgWidth = Math.max(width,
|
|
93117
|
-
const svgHeight = Math.max(height,
|
|
93343
|
+
const svgWidth = Math.max(width, 1);
|
|
93344
|
+
const svgHeight = Math.max(height, 1);
|
|
93118
93345
|
return {
|
|
93119
93346
|
svgWidth,
|
|
93120
93347
|
svgHeight,
|
|
@@ -93268,7 +93495,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
|
|
|
93268
93495
|
x: cx + labelR * Math.cos(angle),
|
|
93269
93496
|
y: cy + labelR * Math.sin(angle),
|
|
93270
93497
|
text: categoryLabels[i] ?? "",
|
|
93271
|
-
fontSize:
|
|
93498
|
+
fontSize: DEFAULT_CHART_TEXT_PX,
|
|
93272
93499
|
fill: RADAR_LABEL_COLOR,
|
|
93273
93500
|
textAnchor: "middle",
|
|
93274
93501
|
dominantBaseline: "central"
|
|
@@ -93312,7 +93539,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
|
|
|
93312
93539
|
x: p.x,
|
|
93313
93540
|
y: p.y - 8,
|
|
93314
93541
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
93315
|
-
fontSize:
|
|
93542
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
93316
93543
|
fill: "#334155",
|
|
93317
93544
|
textAnchor: "middle"
|
|
93318
93545
|
});
|
|
@@ -98256,25 +98483,39 @@ function getImageFitStyle(el) {
|
|
|
98256
98483
|
if (!isImageLikeElement(el)) {
|
|
98257
98484
|
return uncropped;
|
|
98258
98485
|
}
|
|
98486
|
+
const frLeft = el.fillRectLeft ?? 0;
|
|
98487
|
+
const frTop = el.fillRectTop ?? 0;
|
|
98488
|
+
const frRight = el.fillRectRight ?? 0;
|
|
98489
|
+
const frBottom = el.fillRectBottom ?? 0;
|
|
98490
|
+
const hasFillRect = Math.abs(frLeft) + Math.abs(frTop) + Math.abs(frRight) + Math.abs(frBottom) > 1e-4;
|
|
98491
|
+
const placementTransform = hasFillRect ? `translate(${round2(frLeft * 100)}%, ${round2(frTop * 100)}%) scale(${round6(
|
|
98492
|
+
Math.max(0.01, 1 - frLeft - frRight)
|
|
98493
|
+
)}, ${round6(Math.max(0.01, 1 - frTop - frBottom))})` : "";
|
|
98259
98494
|
const cropLeft = clampCropValue(el.cropLeft);
|
|
98260
98495
|
const cropTop = clampCropValue(el.cropTop);
|
|
98261
98496
|
const cropRight = clampCropValue(el.cropRight);
|
|
98262
98497
|
const cropBottom = clampCropValue(el.cropBottom);
|
|
98263
|
-
|
|
98498
|
+
const hasCrop = cropLeft + cropRight > 1e-4 || cropTop + cropBottom > 1e-4;
|
|
98499
|
+
if (!hasCrop && !hasFillRect) {
|
|
98264
98500
|
return uncropped;
|
|
98265
98501
|
}
|
|
98266
|
-
|
|
98267
|
-
|
|
98268
|
-
|
|
98269
|
-
|
|
98270
|
-
|
|
98271
|
-
|
|
98272
|
-
|
|
98273
|
-
|
|
98274
|
-
|
|
98275
|
-
|
|
98276
|
-
|
|
98277
|
-
|
|
98502
|
+
let cropTransform = "";
|
|
98503
|
+
if (hasCrop) {
|
|
98504
|
+
const horizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
|
|
98505
|
+
const verticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
|
|
98506
|
+
const left = clampCropValue(cropLeft * horizontalScale);
|
|
98507
|
+
const right = clampCropValue(cropRight * horizontalScale);
|
|
98508
|
+
const top = clampCropValue(cropTop * verticalScale);
|
|
98509
|
+
const bottom = clampCropValue(cropBottom * verticalScale);
|
|
98510
|
+
const remainingWidth = Math.max(0.01, 1 - left - right);
|
|
98511
|
+
const remainingHeight = Math.max(0.01, 1 - top - bottom);
|
|
98512
|
+
const tx = Math.round(-left / remainingWidth * 1e4) / 100;
|
|
98513
|
+
const ty = Math.round(-top / remainingHeight * 1e4) / 100;
|
|
98514
|
+
const sx = Math.round(1 / remainingWidth * 1e6) / 1e6;
|
|
98515
|
+
const sy = Math.round(1 / remainingHeight * 1e6) / 1e6;
|
|
98516
|
+
cropTransform = `translate(${tx}%, ${ty}%) scale(${sx}, ${sy})`;
|
|
98517
|
+
}
|
|
98518
|
+
const transform = [placementTransform, cropTransform].filter(Boolean).join(" ");
|
|
98278
98519
|
return {
|
|
98279
98520
|
position: "absolute",
|
|
98280
98521
|
width: "100%",
|
|
@@ -98283,9 +98524,15 @@ function getImageFitStyle(el) {
|
|
|
98283
98524
|
maxHeight: "none",
|
|
98284
98525
|
objectFit: "fill",
|
|
98285
98526
|
transformOrigin: "top left",
|
|
98286
|
-
transform
|
|
98527
|
+
transform
|
|
98287
98528
|
};
|
|
98288
98529
|
}
|
|
98530
|
+
function round2(value) {
|
|
98531
|
+
return Math.round(value * 100) / 100;
|
|
98532
|
+
}
|
|
98533
|
+
function round6(value) {
|
|
98534
|
+
return Math.round(value * 1e6) / 1e6;
|
|
98535
|
+
}
|
|
98289
98536
|
function groupElements(elements, ids, groupId) {
|
|
98290
98537
|
const idSet = new Set(ids);
|
|
98291
98538
|
const gathered = [];
|
|
@@ -99071,7 +99318,10 @@ function resolveLineHeight(textStyle, hasItalicRuns2) {
|
|
|
99071
99318
|
if (typeof textStyle?.lineSpacingExactPt === "number" && textStyle.lineSpacingExactPt > 0) {
|
|
99072
99319
|
return `${textStyle.lineSpacingExactPt}pt`;
|
|
99073
99320
|
}
|
|
99074
|
-
return textStyle?.lineSpacing
|
|
99321
|
+
return proportionalLineHeight(textStyle?.lineSpacing);
|
|
99322
|
+
}
|
|
99323
|
+
function proportionalLineHeight(lineSpacing) {
|
|
99324
|
+
return typeof lineSpacing === "number" && lineSpacing > 0 ? lineSpacing * DEFAULT_LINE_HEIGHT : DEFAULT_LINE_HEIGHT;
|
|
99075
99325
|
}
|
|
99076
99326
|
function toCssWritingMode(textDirection) {
|
|
99077
99327
|
switch (textDirection) {
|
|
@@ -99122,7 +99372,7 @@ function computeAutoFitTextStyle(input) {
|
|
|
99122
99372
|
result.fontSize = Math.max(6, Math.round(baseFontSize * ts.autoFitFontScale));
|
|
99123
99373
|
} else if (ts.autoFitMode !== "normal") {
|
|
99124
99374
|
const textLength = text2.length;
|
|
99125
|
-
const lineHeight = ts.lineSpacingExactPt ? ts.lineSpacingExactPt / baseFontSize : ts.lineSpacing
|
|
99375
|
+
const lineHeight = ts.lineSpacingExactPt ? ts.lineSpacingExactPt / baseFontSize : proportionalLineHeight(ts.lineSpacing);
|
|
99126
99376
|
const approxCharsPerLine = Math.max(1, Math.floor(width / (baseFontSize * 0.6)));
|
|
99127
99377
|
const estimatedLines = Math.max(1, Math.ceil(textLength / approxCharsPerLine));
|
|
99128
99378
|
const requiredHeight = estimatedLines * baseFontSize * lineHeight;
|
|
@@ -99133,8 +99383,7 @@ function computeAutoFitTextStyle(input) {
|
|
|
99133
99383
|
}
|
|
99134
99384
|
}
|
|
99135
99385
|
if (ts.autoFitLineSpacingReduction !== void 0 && ts.autoFitLineSpacingReduction > 0) {
|
|
99136
|
-
|
|
99137
|
-
result.lineHeight = baseLineHeight * (1 - ts.autoFitLineSpacingReduction);
|
|
99386
|
+
result.lineHeight = proportionalLineHeight(ts.lineSpacing) * (1 - ts.autoFitLineSpacingReduction);
|
|
99138
99387
|
}
|
|
99139
99388
|
return result;
|
|
99140
99389
|
}
|
|
@@ -99954,6 +100203,8 @@ function buildTextRunFilterChain(style) {
|
|
|
99954
100203
|
}
|
|
99955
100204
|
return parts.length > 0 ? parts.join(" ") : void 0;
|
|
99956
100205
|
}
|
|
100206
|
+
var POWERPOINT_METRIC_TRACKING_EM = 3e-3;
|
|
100207
|
+
var POWERPOINT_METRIC_TRACKING = `${POWERPOINT_METRIC_TRACKING_EM}em`;
|
|
99957
100208
|
function resolveParagraphStrutFontSize(segments, bodyFontSize) {
|
|
99958
100209
|
let largest;
|
|
99959
100210
|
for (const segment of segments) {
|
|
@@ -102183,6 +102434,10 @@ var SCALAR_ELEMENT_KEYS = /* @__PURE__ */ new Set([
|
|
|
102183
102434
|
"cropTop",
|
|
102184
102435
|
"cropRight",
|
|
102185
102436
|
"cropBottom",
|
|
102437
|
+
"fillRectLeft",
|
|
102438
|
+
"fillRectTop",
|
|
102439
|
+
"fillRectRight",
|
|
102440
|
+
"fillRectBottom",
|
|
102186
102441
|
"tileOffsetX",
|
|
102187
102442
|
"tileOffsetY",
|
|
102188
102443
|
"tileScaleX",
|
|
@@ -103797,9 +104052,16 @@ var CINEMATIC_TRANSITION_KEYFRAMES = `
|
|
|
103797
104052
|
/* \u2500\u2500 Airplane (fly off like a paper plane) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
103798
104053
|
@keyframes pptx-tr-airplane-out { 0% { transform: perspective(1200px) translate3d(0, 0, 0) rotate3d(1, -1, 0, 0deg) scale(1); opacity: 1; } 40% { transform: perspective(1200px) translate3d(10%, -10%, 0) rotate3d(1, -1, 0, 25deg) scale(.85); opacity: 1; } 100% { transform: perspective(1200px) translate3d(150%, -70%, 0) rotate3d(1, -1, 1, 70deg) scale(.05); opacity: 0; } }
|
|
103799
104054
|
|
|
103800
|
-
/* \u2500\u2500 Origami (fold
|
|
103801
|
-
|
|
103802
|
-
|
|
104055
|
+
/* \u2500\u2500 Origami (fold the sheet over its top edge; the next unfolds up) \u2500\u2500
|
|
104056
|
+
The old single-phase rotateY + scaleX compressed the outgoing slide into a
|
|
104057
|
+
narrow vertical sliver for most of the (3+ second) duration, which read as
|
|
104058
|
+
"just a grey line" instead of paper folding (issue #132). The fold is now
|
|
104059
|
+
hinged like a real sheet: the outgoing slide creases over its TOP edge,
|
|
104060
|
+
dims as it tips through edge-on, and tumbles away shrinking; the incoming
|
|
104061
|
+
slide lies folded at its BOTTOM edge and rises into place. The edge-on
|
|
104062
|
+
moment is brief and already mid-fade, so no line artifact survives. */
|
|
104063
|
+
@keyframes pptx-tr-origami-out { 0% { transform: perspective(1400px) rotateX(0deg) translateY(0) scale(1); transform-origin: top center; opacity: 1; filter: brightness(1); } 45% { transform: perspective(1400px) rotateX(-52deg) translateY(2%) scale(.96); transform-origin: top center; opacity: 1; filter: brightness(.82); } 70% { transform: perspective(1400px) rotateX(-84deg) translateY(8%) scale(.88); transform-origin: top center; opacity: .8; filter: brightness(.68); } 100% { transform: perspective(1400px) rotateX(-125deg) translateY(30%) scale(.68); transform-origin: top center; opacity: 0; filter: brightness(.55); } }
|
|
104064
|
+
@keyframes pptx-tr-origami-in { 0% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: 0; filter: brightness(.7); } 30% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: .65; filter: brightness(.75); } 100% { transform: perspective(1400px) rotateX(0deg) scale(1); transform-origin: bottom center; opacity: 1; filter: brightness(1); } }
|
|
103803
104065
|
`;
|
|
103804
104066
|
var CORE_SLIDE_TRANSITION_KEYFRAMES = `
|
|
103805
104067
|
/* \u2500\u2500 Fade \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -110524,6 +110786,103 @@ function mediaTransportVisible(surface) {
|
|
|
110524
110786
|
}
|
|
110525
110787
|
return surface.canvasTransport;
|
|
110526
110788
|
}
|
|
110789
|
+
var persistentAudioMap = /* @__PURE__ */ new Map();
|
|
110790
|
+
function registerPersistentAudio(elementId, dataUrl, mimetype, loop, volume, trimStartSec) {
|
|
110791
|
+
if (persistentAudioMap.has(elementId) || typeof document === "undefined") {
|
|
110792
|
+
return;
|
|
110793
|
+
}
|
|
110794
|
+
const audio = document.createElement("audio");
|
|
110795
|
+
audio.src = dataUrl;
|
|
110796
|
+
if (mimetype) {
|
|
110797
|
+
const source = document.createElement("source");
|
|
110798
|
+
source.src = dataUrl;
|
|
110799
|
+
source.type = mimetype;
|
|
110800
|
+
audio.appendChild(source);
|
|
110801
|
+
}
|
|
110802
|
+
audio.loop = loop;
|
|
110803
|
+
audio.volume = Math.max(0, Math.min(1, volume));
|
|
110804
|
+
if (trimStartSec > 0) {
|
|
110805
|
+
try {
|
|
110806
|
+
audio.currentTime = trimStartSec;
|
|
110807
|
+
} catch {
|
|
110808
|
+
}
|
|
110809
|
+
}
|
|
110810
|
+
audio.style.display = "none";
|
|
110811
|
+
audio.setAttribute("data-pptx-persistent-audio", elementId);
|
|
110812
|
+
document.body.appendChild(audio);
|
|
110813
|
+
persistentAudioMap.set(elementId, { elementId, audio, loop, pausedByVisibility: false });
|
|
110814
|
+
void audio.play().catch(() => {
|
|
110815
|
+
});
|
|
110816
|
+
}
|
|
110817
|
+
function stopAllPersistentAudio() {
|
|
110818
|
+
for (const entry2 of persistentAudioMap.values()) {
|
|
110819
|
+
entry2.audio.pause();
|
|
110820
|
+
entry2.audio.remove();
|
|
110821
|
+
}
|
|
110822
|
+
persistentAudioMap.clear();
|
|
110823
|
+
}
|
|
110824
|
+
function pauseAllPersistentAudio() {
|
|
110825
|
+
for (const entry2 of persistentAudioMap.values()) {
|
|
110826
|
+
if (!entry2.audio.paused) {
|
|
110827
|
+
entry2.pausedByVisibility = true;
|
|
110828
|
+
entry2.audio.pause();
|
|
110829
|
+
}
|
|
110830
|
+
}
|
|
110831
|
+
}
|
|
110832
|
+
function resumeAllPersistentAudio() {
|
|
110833
|
+
for (const entry2 of persistentAudioMap.values()) {
|
|
110834
|
+
if (entry2.pausedByVisibility) {
|
|
110835
|
+
entry2.pausedByVisibility = false;
|
|
110836
|
+
void entry2.audio.play().catch(() => {
|
|
110837
|
+
});
|
|
110838
|
+
}
|
|
110839
|
+
}
|
|
110840
|
+
}
|
|
110841
|
+
function attachPresentationVisibilityPause(options = {}) {
|
|
110842
|
+
if (typeof document === "undefined") {
|
|
110843
|
+
return () => {
|
|
110844
|
+
};
|
|
110845
|
+
}
|
|
110846
|
+
const root = options.root ?? document;
|
|
110847
|
+
let pausedMedia = [];
|
|
110848
|
+
let suspended = false;
|
|
110849
|
+
const update = () => {
|
|
110850
|
+
const shouldSuspend = document.visibilityState === "hidden" || !document.hasFocus();
|
|
110851
|
+
if (shouldSuspend === suspended) {
|
|
110852
|
+
return;
|
|
110853
|
+
}
|
|
110854
|
+
suspended = shouldSuspend;
|
|
110855
|
+
if (shouldSuspend) {
|
|
110856
|
+
pausedMedia = [];
|
|
110857
|
+
for (const media of root.querySelectorAll("audio, video")) {
|
|
110858
|
+
if (!media.paused && !media.ended) {
|
|
110859
|
+
pausedMedia.push(media);
|
|
110860
|
+
media.pause();
|
|
110861
|
+
}
|
|
110862
|
+
}
|
|
110863
|
+
pauseAllPersistentAudio();
|
|
110864
|
+
options.onHidden?.();
|
|
110865
|
+
return;
|
|
110866
|
+
}
|
|
110867
|
+
for (const media of pausedMedia) {
|
|
110868
|
+
if (media.isConnected) {
|
|
110869
|
+
void media.play().catch(() => {
|
|
110870
|
+
});
|
|
110871
|
+
}
|
|
110872
|
+
}
|
|
110873
|
+
pausedMedia = [];
|
|
110874
|
+
resumeAllPersistentAudio();
|
|
110875
|
+
options.onVisible?.();
|
|
110876
|
+
};
|
|
110877
|
+
document.addEventListener("visibilitychange", update);
|
|
110878
|
+
window.addEventListener("blur", update);
|
|
110879
|
+
window.addEventListener("focus", update);
|
|
110880
|
+
return () => {
|
|
110881
|
+
document.removeEventListener("visibilitychange", update);
|
|
110882
|
+
window.removeEventListener("blur", update);
|
|
110883
|
+
window.removeEventListener("focus", update);
|
|
110884
|
+
};
|
|
110885
|
+
}
|
|
110527
110886
|
function buildSummaryZoomView(element, lookup) {
|
|
110528
110887
|
if (element.zoomType !== "summary" || !element.summaryTargets?.length) {
|
|
110529
110888
|
return void 0;
|
|
@@ -114794,4 +115153,4 @@ function segmentFrameCount(durationMs, fps) {
|
|
|
114794
115153
|
* `<p:extLst>` (optional)
|
|
114795
115154
|
*/
|
|
114796
115155
|
|
|
114797
|
-
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, COLOR_MAP_ALIAS_KEYS, COMMON_FONTS, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_INSERT_CHART_TYPE, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PEN_COLORS, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, STATUS_BAR_CLASSES, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_LABELS, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_ORIENTATION_TYPES, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addQuickAccessCommand, addSection, addSmartArtNode, addSmartArtNodeAsChild, addTagToCollections, alignElements, animationEffectLabel, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyCaseTransformToSegments, applyChartBuildReveal, applyColorChange, applyDuotone, applyFormatToElement, applyMotionPathPreset, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyThemeOverrideToSlide, applyThemeToData, availableQuickAccessCommands, backstageCardsFor, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartViewModel, buildCollaborationShareUrl, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildJoinCollaborationConfig, buildMorphTransitionPlan, buildMotionPathPreview, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutline, buildOutlineHtml, buildPatternFillCss, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildStrokeOutline, buildSummaryZoomView, buildSvgGradientDef, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBuildSpec, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildThemeColorMap, buildUserFontFaceStyles, canCommitActionType, canGoNext, canGoPrevious, canvasToJpegData, cell3DBevelCss, chartAreaFill, chartDataChangeType, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearStoredViewerPrefs, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, collectUsedFonts, colorWithOpacity, comparePresentation, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeColumnBoundaries, computeEntranceAnimationDelay, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout2 as computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, computeVirtualRange, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDepartureChannel, createInitialPresentationSnapshot, createPresentationKeyBuffer, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTouchGestureRecognizer, createViewerOptionsStore, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, deleteTagFromCollections, demoteSmartArtNode, derivePresenceList, deriveSlideFieldContext, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, elementActionToPptxAction, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, erasePresentationInkAt, evaluatePresetShape, extraQuickAccessCommands, extractPathPoints, filterCommands, filterRenderedElements, findChartPartTarget, findMediaElementByElementId, findSmartArtNodeText, firstShowSlideIndex, flattenTagCollections, formatAxisValue, formatAxisValueWithUnits, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePackageReadme, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getGradientTileFlipCss, getGradientTileRectCss, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getLocalStorageUsageSummary, getNotesPrintableArea, getOleBadgeLabel, getOleObjectTypeLabel, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeFilterId, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hexToRgbChannels2 as hexToRgbChannels, hiddenSlideCue, insertTableColumn, insertTableRow, isActionHidden, isBrowserOpenableMime, isCalloutShape, isCellInRect, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementRendered, isExportAbortError, isImageLikeElement, isInkElement, isKeyboardOpen, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isTemplateElement, isTemplateElementId2 as isTemplateElementId, isUrlSafe, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, loadAudienceContent, makeCloneId, makeSlideId, mapEditorKey, mapOutlineKey, mapPresentationKey, mayLeaveSlideShow, mediaPlaybackAttributes, mediaTransportVisible, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountModel3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPptxFile, openReadingView, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, pickSupportedMimeType, placeAudienceWindow, polygonsToSvgPath, pptxActionToElementAction, preprocessCssForCapture, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, pressuresToWidths, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, promoteSmartArtNode, publishLiveGeometry, publishLiveInlineText, quickStyleSwatchCss, reResolveSlideColors, readBackstageRecentFile, readSlidesFromYDoc, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, rebuildTableStructureInRawXml, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, registerCollaborationTeardown, remapTextToSegments, removeChartCategory, removeChartSeries, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorderSmartArtNode, rerouteConnectorsForMovedElements, resetPresenterTimer, resolveActionType, resolveAudienceScreenPlacement, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveElementActionAffordance, resolveFontForScript, resolveFontRefIdx, resolveGroupChildFill, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveParagraphStrutFontSize, resolvePictureBullet, resolveProfileInitial, resolveRegionCode, resolveShowSlideIndexes, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, resolveViewerAddinRows, restoreSegmentSelection, revealedSmartArtNodeCount, rulerDragToGuidePosition, runMediaCommand, runPresentationAction, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveViewerProfile, scanAvailableFontFamilies, schemaLabel, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor2 as seriesColor, setCachedResult, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDuotoneCachedResult, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shadeColor2, shouldAutoFollowBroadcaster, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldLoopContinuously, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, stepPresenterZoom, storeAudienceContent, substituteFieldText, suppressesCssBorder, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, themeColorSchemesEqual, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, togglePresenterTimer, toggleText3dExtrusion, transformTextCase, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewerOptionsToPreferences, warpPreviewPath, withChartPointValue, withChartTitle, withFrameSlides, withSlidesPerPage, writeStoredViewerPrefs, zoomInScale, zoomOutScale };
|
|
115156
|
+
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, COLOR_MAP_ALIAS_KEYS, COMMON_FONTS, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_INSERT_CHART_TYPE, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PEN_COLORS, POWERPOINT_METRIC_TRACKING, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, STATUS_BAR_CLASSES, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_LABELS, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_ORIENTATION_TYPES, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addQuickAccessCommand, addSection, addSmartArtNode, addSmartArtNodeAsChild, addTagToCollections, alignElements, animationEffectLabel, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyCaseTransformToSegments, applyChartBuildReveal, applyColorChange, applyDuotone, applyFormatToElement, applyMotionPathPreset, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyThemeOverrideToSlide, applyThemeToData, attachPresentationVisibilityPause, availableQuickAccessCommands, backstageCardsFor, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartViewModel, buildCollaborationShareUrl, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildJoinCollaborationConfig, buildMorphTransitionPlan, buildMotionPathPreview, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutline, buildOutlineHtml, buildPatternFillCss, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildStrokeOutline, buildSummaryZoomView, buildSvgGradientDef, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBuildSpec, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildThemeColorMap, buildUserFontFaceStyles, canCommitActionType, canGoNext, canGoPrevious, canvasToJpegData, cell3DBevelCss, chartAreaFill, chartDataChangeType, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearStoredViewerPrefs, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, collectUsedFonts, colorWithOpacity, comparePresentation, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeColumnBoundaries, computeEntranceAnimationDelay, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout2 as computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, computeVirtualRange, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDepartureChannel, createInitialPresentationSnapshot, createPresentationKeyBuffer, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTouchGestureRecognizer, createViewerOptionsStore, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, deleteTagFromCollections, demoteSmartArtNode, derivePresenceList, deriveSlideFieldContext, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, elementActionToPptxAction, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, erasePresentationInkAt, evaluatePresetShape, extraQuickAccessCommands, extractPathPoints, filterCommands, filterRenderedElements, findChartPartTarget, findMediaElementByElementId, findSmartArtNodeText, firstShowSlideIndex, flattenTagCollections, formatAxisValue, formatAxisValueWithUnits, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePackageReadme, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getGradientTileFlipCss, getGradientTileRectCss, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getLocalStorageUsageSummary, getNotesPrintableArea, getOleBadgeLabel, getOleObjectTypeLabel, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeFilterId, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hexToRgbChannels2 as hexToRgbChannels, hiddenSlideCue, insertTableColumn, insertTableRow, isActionHidden, isBrowserOpenableMime, isCalloutShape, isCellInRect, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementRendered, isExportAbortError, isImageLikeElement, isInkElement, isKeyboardOpen, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isTemplateElement, isTemplateElementId2 as isTemplateElementId, isUrlSafe, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, loadAudienceContent, makeCloneId, makeSlideId, mapEditorKey, mapOutlineKey, mapPresentationKey, mayLeaveSlideShow, mediaPlaybackAttributes, mediaTransportVisible, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountModel3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPptxFile, openReadingView, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, pickSupportedMimeType, placeAudienceWindow, polygonsToSvgPath, pptxActionToElementAction, preprocessCssForCapture, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, pressuresToWidths, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, promoteSmartArtNode, proportionalLineHeight, publishLiveGeometry, publishLiveInlineText, quickStyleSwatchCss, reResolveSlideColors, readBackstageRecentFile, readSlidesFromYDoc, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, rebuildTableStructureInRawXml, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, registerCollaborationTeardown, registerPersistentAudio, remapTextToSegments, removeChartCategory, removeChartSeries, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorderSmartArtNode, rerouteConnectorsForMovedElements, resetPresenterTimer, resolveActionType, resolveAudienceScreenPlacement, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveElementActionAffordance, resolveFontForScript, resolveFontRefIdx, resolveGroupChildFill, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveParagraphStrutFontSize, resolvePictureBullet, resolveProfileInitial, resolveRegionCode, resolveShowSlideIndexes, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, resolveViewerAddinRows, restoreSegmentSelection, revealedSmartArtNodeCount, rulerDragToGuidePosition, runMediaCommand, runPresentationAction, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveViewerProfile, scanAvailableFontFamilies, schemaLabel, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor2 as seriesColor, setCachedResult, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDuotoneCachedResult, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shadeColor2, shouldAutoFollowBroadcaster, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldLoopContinuously, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, stepPresenterZoom, stopAllPersistentAudio, storeAudienceContent, substituteFieldText, suppressesCssBorder, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, themeColorSchemesEqual, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, togglePresenterTimer, toggleText3dExtrusion, transformTextCase, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewerOptionsToPreferences, warpPreviewPath, withChartPointValue, withChartTitle, withFrameSlides, withSlidesPerPage, writeStoredViewerPrefs, zoomInScale, zoomOutScale };
|