pptx-react-viewer 2.12.1 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/dist/{AiChatPanel-CGGUPVQX.mjs → AiChatPanel-4YS6DEIT.mjs} +3 -3
- package/dist/AiChatPanel-4YS6DEIT.mjs.br +0 -0
- package/dist/AiChatPanel-4YS6DEIT.mjs.gz +0 -0
- package/dist/{AiChatPanel-UEFYTUJN.js → AiChatPanel-DEI3EQFM.js} +22 -22
- package/dist/AiChatPanel-DEI3EQFM.js.br +0 -0
- package/dist/AiChatPanel-DEI3EQFM.js.gz +0 -0
- package/dist/{Model3DScene-TU4NTHRM.mjs → Model3DScene-JSNQCKCJ.mjs} +1 -1
- package/dist/Model3DScene-JSNQCKCJ.mjs.br +0 -0
- package/dist/Model3DScene-JSNQCKCJ.mjs.gz +0 -0
- package/dist/{Model3DScene-QYXJNALP.js → Model3DScene-X4W7GZVY.js} +2 -2
- package/dist/Model3DScene-X4W7GZVY.js.br +0 -0
- package/dist/Model3DScene-X4W7GZVY.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-VTJBKUQY.mjs → SurfaceChart3DScene-3MSU74YH.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-VTJBKUQY.mjs.br → SurfaceChart3DScene-3MSU74YH.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-3MSU74YH.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-4VCO3DRP.js → SurfaceChart3DScene-IZLUWT27.js} +2 -2
- package/dist/SurfaceChart3DScene-IZLUWT27.js.br +0 -0
- package/dist/SurfaceChart3DScene-IZLUWT27.js.gz +0 -0
- package/dist/{chunk-CABQXGPI.mjs → chunk-4TD7EINA.mjs} +770 -358
- package/dist/chunk-4TD7EINA.mjs.br +0 -0
- package/dist/chunk-4TD7EINA.mjs.gz +0 -0
- package/dist/{chunk-4GYNTY2G.mjs → chunk-6KRNQ2KF.mjs} +2 -2
- package/dist/chunk-6KRNQ2KF.mjs.br +0 -0
- package/dist/chunk-6KRNQ2KF.mjs.gz +0 -0
- package/dist/{chunk-TDUDH7S4.js → chunk-EFSQW6S5.js} +771 -357
- package/dist/chunk-EFSQW6S5.js.br +0 -0
- package/dist/chunk-EFSQW6S5.js.gz +0 -0
- package/dist/{chunk-UIWY4XJT.js → chunk-G2LZT5SV.js} +3 -3
- package/dist/chunk-G2LZT5SV.js.br +0 -0
- package/dist/chunk-G2LZT5SV.js.gz +0 -0
- package/dist/{chunk-YIPR3GKG.mjs → chunk-HRLF4REI.mjs} +34 -15
- package/dist/chunk-HRLF4REI.mjs.br +0 -0
- package/dist/chunk-HRLF4REI.mjs.gz +0 -0
- package/dist/{chunk-LE6YA5WB.js → chunk-IDW5UPXW.js} +264 -245
- package/dist/chunk-IDW5UPXW.js.br +0 -0
- package/dist/chunk-IDW5UPXW.js.gz +0 -0
- package/dist/{chunk-NUDH7TI2.js → chunk-RWIQHVZQ.js} +326 -326
- package/dist/chunk-RWIQHVZQ.js.br +0 -0
- package/dist/chunk-RWIQHVZQ.js.gz +0 -0
- package/dist/{chunk-GBKIWNW6.js → chunk-SHZ3GWOD.js} +1045 -1042
- package/dist/chunk-SHZ3GWOD.js.br +0 -0
- package/dist/chunk-SHZ3GWOD.js.gz +0 -0
- package/dist/{chunk-N3NKU7SC.mjs → chunk-WEU5EMKK.mjs} +1 -1
- package/dist/chunk-WEU5EMKK.mjs.br +0 -0
- package/dist/chunk-WEU5EMKK.mjs.gz +0 -0
- package/dist/{chunk-4SGXEGVL.mjs → chunk-YA7VFYTW.mjs} +17 -14
- package/dist/chunk-YA7VFYTW.mjs.br +0 -0
- package/dist/chunk-YA7VFYTW.mjs.gz +0 -0
- package/dist/index.d.ts +18 -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 +18 -0
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +18 -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-CGGUPVQX.mjs.br +0 -0
- package/dist/AiChatPanel-CGGUPVQX.mjs.gz +0 -0
- package/dist/AiChatPanel-UEFYTUJN.js.br +0 -0
- package/dist/AiChatPanel-UEFYTUJN.js.gz +0 -0
- package/dist/Model3DScene-QYXJNALP.js.br +0 -0
- package/dist/Model3DScene-QYXJNALP.js.gz +0 -0
- package/dist/Model3DScene-TU4NTHRM.mjs.br +0 -0
- package/dist/Model3DScene-TU4NTHRM.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-4VCO3DRP.js.br +0 -0
- package/dist/SurfaceChart3DScene-4VCO3DRP.js.gz +0 -0
- package/dist/SurfaceChart3DScene-VTJBKUQY.mjs.gz +0 -0
- package/dist/chunk-4GYNTY2G.mjs.br +0 -0
- package/dist/chunk-4GYNTY2G.mjs.gz +0 -0
- package/dist/chunk-4SGXEGVL.mjs.br +0 -0
- package/dist/chunk-4SGXEGVL.mjs.gz +0 -0
- package/dist/chunk-CABQXGPI.mjs.br +0 -0
- package/dist/chunk-CABQXGPI.mjs.gz +0 -0
- package/dist/chunk-GBKIWNW6.js.br +0 -0
- package/dist/chunk-GBKIWNW6.js.gz +0 -0
- package/dist/chunk-LE6YA5WB.js.br +0 -0
- package/dist/chunk-LE6YA5WB.js.gz +0 -0
- package/dist/chunk-N3NKU7SC.mjs.br +0 -0
- package/dist/chunk-N3NKU7SC.mjs.gz +0 -0
- package/dist/chunk-NUDH7TI2.js.br +0 -0
- package/dist/chunk-NUDH7TI2.js.gz +0 -0
- package/dist/chunk-TDUDH7S4.js.br +0 -0
- package/dist/chunk-TDUDH7S4.js.gz +0 -0
- package/dist/chunk-UIWY4XJT.js.br +0 -0
- package/dist/chunk-UIWY4XJT.js.gz +0 -0
- package/dist/chunk-YIPR3GKG.mjs.br +0 -0
- package/dist/chunk-YIPR3GKG.mjs.gz +0 -0
|
@@ -2152,9 +2152,9 @@ function getStockObject(index) {
|
|
|
2152
2152
|
}
|
|
2153
2153
|
}
|
|
2154
2154
|
async function blobToDataUrl(blob) {
|
|
2155
|
-
return new Promise((
|
|
2155
|
+
return new Promise((resolve2, reject) => {
|
|
2156
2156
|
const reader = new FileReader();
|
|
2157
|
-
reader.onload = () =>
|
|
2157
|
+
reader.onload = () => resolve2(reader.result);
|
|
2158
2158
|
reader.onerror = () => reject(reader.error);
|
|
2159
2159
|
reader.readAsDataURL(blob);
|
|
2160
2160
|
});
|
|
@@ -9757,12 +9757,12 @@ function updateSection(section) {
|
|
|
9757
9757
|
}
|
|
9758
9758
|
return node;
|
|
9759
9759
|
}
|
|
9760
|
-
function applySections(presentation,
|
|
9761
|
-
if (
|
|
9760
|
+
function applySections(presentation, sections2, lookup, remap) {
|
|
9761
|
+
if (sections2 === void 0) {
|
|
9762
9762
|
return;
|
|
9763
9763
|
}
|
|
9764
9764
|
let location = findSectionList(presentation, lookup);
|
|
9765
|
-
if (
|
|
9765
|
+
if (sections2.length === 0) {
|
|
9766
9766
|
if (location) {
|
|
9767
9767
|
delete location.parent[location.key];
|
|
9768
9768
|
}
|
|
@@ -9779,14 +9779,14 @@ function applySections(presentation, sections, lookup, remap) {
|
|
|
9779
9779
|
location = { parent: ext, key: "p14:sectionLst", list: ext["p14:sectionLst"] };
|
|
9780
9780
|
}
|
|
9781
9781
|
const list = cloneXmlObject(location.list) ?? {};
|
|
9782
|
-
const effectiveSections = remap && remap.changed ?
|
|
9782
|
+
const effectiveSections = remap && remap.changed ? sections2.map((section) => ({
|
|
9783
9783
|
...section,
|
|
9784
9784
|
slideIds: remapReferenceList(
|
|
9785
9785
|
section.slideIds,
|
|
9786
9786
|
remap.sldIdByOldSldId,
|
|
9787
9787
|
remap.removedSldIds
|
|
9788
9788
|
)
|
|
9789
|
-
})) :
|
|
9789
|
+
})) : sections2;
|
|
9790
9790
|
replaceChildren(list, "section", effectiveSections.map(updateSection), "p14:section");
|
|
9791
9791
|
location.parent[location.key] = list;
|
|
9792
9792
|
}
|
|
@@ -13830,10 +13830,11 @@ var PptxShapeStyleExtractor = class {
|
|
|
13830
13830
|
this.context.resolveThemeFillRef(styleNode["a:fillRef"], style);
|
|
13831
13831
|
}
|
|
13832
13832
|
const lineNode = shapeProps["a:ln"];
|
|
13833
|
+
if (styleNode?.["a:lnRef"]) {
|
|
13834
|
+
this.context.resolveThemeLineRef(styleNode["a:lnRef"], style);
|
|
13835
|
+
}
|
|
13833
13836
|
if (lineNode) {
|
|
13834
13837
|
applyLineProperties(lineNode, style, this.context);
|
|
13835
|
-
} else if (styleNode?.["a:lnRef"]) {
|
|
13836
|
-
this.context.resolveThemeLineRef(styleNode["a:lnRef"], style);
|
|
13837
13838
|
}
|
|
13838
13839
|
Object.assign(style, this.context.extractShadowStyle(shapeProps));
|
|
13839
13840
|
Object.assign(style, this.context.extractInnerShadowStyle(shapeProps));
|
|
@@ -15159,7 +15160,10 @@ var PptxConnectorParser = class {
|
|
|
15159
15160
|
const skewY = transform["@_skewY"] ? parseInt(String(transform["@_skewY"]), 10) / 6e4 : void 0;
|
|
15160
15161
|
const { flipHorizontal, flipVertical } = this.context.readFlipState(transform);
|
|
15161
15162
|
const cNvConnectionShapeProperties = connector2?.["p:nvCxnSpPr"]?.["p:cNvCxnSpPr"];
|
|
15162
|
-
const shapeStyle = this.context.extractShapeStyle(
|
|
15163
|
+
const shapeStyle = this.context.extractShapeStyle(
|
|
15164
|
+
shapeProperties,
|
|
15165
|
+
connector2["p:style"]
|
|
15166
|
+
);
|
|
15163
15167
|
const startConnectionNode = cNvConnectionShapeProperties?.["a:stCxn"];
|
|
15164
15168
|
if (startConnectionNode) {
|
|
15165
15169
|
const startConnection = {};
|
|
@@ -15309,8 +15313,8 @@ var PptxLoadDataBuilder = class {
|
|
|
15309
15313
|
this.customShows = customShows;
|
|
15310
15314
|
return this;
|
|
15311
15315
|
}
|
|
15312
|
-
withSections(
|
|
15313
|
-
this.sections =
|
|
15316
|
+
withSections(sections2) {
|
|
15317
|
+
this.sections = sections2;
|
|
15314
15318
|
return this;
|
|
15315
15319
|
}
|
|
15316
15320
|
withWarnings(warnings) {
|
|
@@ -18972,7 +18976,7 @@ function remapEditorAnimationsToShapeIds(elements2, animations, reservedMaxId =
|
|
|
18972
18976
|
byId.set(el.id, el);
|
|
18973
18977
|
}
|
|
18974
18978
|
let nextId2 = Math.max(maxShapeId(flat), reservedMaxId) + 1;
|
|
18975
|
-
const
|
|
18979
|
+
const resolve2 = (elementId) => {
|
|
18976
18980
|
const el = byId.get(elementId);
|
|
18977
18981
|
if (!el) {
|
|
18978
18982
|
return void 0;
|
|
@@ -18984,8 +18988,8 @@ function remapEditorAnimationsToShapeIds(elements2, animations, reservedMaxId =
|
|
|
18984
18988
|
return el.shapeId;
|
|
18985
18989
|
};
|
|
18986
18990
|
return animations.map((anim) => {
|
|
18987
|
-
const resolvedElement =
|
|
18988
|
-
const resolvedTrigger = anim.triggerShapeId !== void 0 ?
|
|
18991
|
+
const resolvedElement = resolve2(anim.elementId);
|
|
18992
|
+
const resolvedTrigger = anim.triggerShapeId !== void 0 ? resolve2(anim.triggerShapeId) : void 0;
|
|
18989
18993
|
if (resolvedElement === void 0 && resolvedTrigger === void 0) {
|
|
18990
18994
|
return anim;
|
|
18991
18995
|
}
|
|
@@ -19987,7 +19991,7 @@ var PptxNativeAnimationService = class {
|
|
|
19987
19991
|
* parent node. See `animation-group-context` for why the flat list
|
|
19988
19992
|
* needs it.
|
|
19989
19993
|
*/
|
|
19990
|
-
walkTimingTree(node, animations, currentTrigger,
|
|
19994
|
+
walkTimingTree(node, animations, currentTrigger, group2 = createGroupContext()) {
|
|
19991
19995
|
if (!node) {
|
|
19992
19996
|
return;
|
|
19993
19997
|
}
|
|
@@ -20086,8 +20090,8 @@ var PptxNativeAnimationService = class {
|
|
|
20086
20090
|
textTarget: textTarget ?? void 0,
|
|
20087
20091
|
cTnAttributes: roundTripAttrs,
|
|
20088
20092
|
afterEffect: afterEffectFlag,
|
|
20089
|
-
groupAutoStart:
|
|
20090
|
-
parGroupIndex:
|
|
20093
|
+
groupAutoStart: group2.groupAutoStart,
|
|
20094
|
+
parGroupIndex: group2.parGroupIndex
|
|
20091
20095
|
});
|
|
20092
20096
|
}
|
|
20093
20097
|
const childTnList = cTn["p:childTnLst"];
|
|
@@ -20101,7 +20105,7 @@ var PptxNativeAnimationService = class {
|
|
|
20101
20105
|
parallel,
|
|
20102
20106
|
animations,
|
|
20103
20107
|
trigger,
|
|
20104
|
-
childGroupContext(
|
|
20108
|
+
childGroupContext(group2, parallel["p:cTn"], {
|
|
20105
20109
|
isClickLevelGroup: isClickLevel
|
|
20106
20110
|
})
|
|
20107
20111
|
);
|
|
@@ -20110,11 +20114,11 @@ var PptxNativeAnimationService = class {
|
|
|
20110
20114
|
if (isInteractiveSequence(sequence)) {
|
|
20111
20115
|
continue;
|
|
20112
20116
|
}
|
|
20113
|
-
this.walkTimingTree(sequence, animations, trigger,
|
|
20117
|
+
this.walkTimingTree(sequence, animations, trigger, group2);
|
|
20114
20118
|
}
|
|
20115
20119
|
for (const excl of exclusives) {
|
|
20116
20120
|
const exclAnims = [];
|
|
20117
|
-
this.walkTimingTree(excl, exclAnims, trigger,
|
|
20121
|
+
this.walkTimingTree(excl, exclAnims, trigger, group2);
|
|
20118
20122
|
for (const a of exclAnims) {
|
|
20119
20123
|
a.exclusive = true;
|
|
20120
20124
|
animations.push(a);
|
|
@@ -20129,7 +20133,7 @@ var PptxNativeAnimationService = class {
|
|
|
20129
20133
|
parallel,
|
|
20130
20134
|
animations,
|
|
20131
20135
|
currentTrigger,
|
|
20132
|
-
childGroupContext(
|
|
20136
|
+
childGroupContext(group2, parallel["p:cTn"], {
|
|
20133
20137
|
isClickLevelGroup: false
|
|
20134
20138
|
})
|
|
20135
20139
|
);
|
|
@@ -20138,7 +20142,7 @@ var PptxNativeAnimationService = class {
|
|
|
20138
20142
|
if (isInteractiveSequence(sequence)) {
|
|
20139
20143
|
continue;
|
|
20140
20144
|
}
|
|
20141
|
-
this.walkTimingTree(sequence, animations, currentTrigger,
|
|
20145
|
+
this.walkTimingTree(sequence, animations, currentTrigger, group2);
|
|
20142
20146
|
}
|
|
20143
20147
|
}
|
|
20144
20148
|
/**
|
|
@@ -22041,7 +22045,7 @@ var PptxAnimationWriteService = class {
|
|
|
22041
22045
|
if (currentGroup.length > 0) {
|
|
22042
22046
|
clickGroups.push(currentGroup);
|
|
22043
22047
|
}
|
|
22044
|
-
const nodes = clickGroups.map((
|
|
22048
|
+
const nodes = clickGroups.map((group2) => {
|
|
22045
22049
|
const groupId = this.allocateId();
|
|
22046
22050
|
return {
|
|
22047
22051
|
"p:cTn": {
|
|
@@ -22053,7 +22057,7 @@ var PptxAnimationWriteService = class {
|
|
|
22053
22057
|
}
|
|
22054
22058
|
},
|
|
22055
22059
|
"p:childTnLst": {
|
|
22056
|
-
"p:par":
|
|
22060
|
+
"p:par": group2.length === 1 ? group2[0] : group2
|
|
22057
22061
|
}
|
|
22058
22062
|
}
|
|
22059
22063
|
};
|
|
@@ -23844,17 +23848,20 @@ var stripedRightArrow = {
|
|
|
23844
23848
|
name: "stripedRightArrow",
|
|
23845
23849
|
avLst: { adj1: 5e4, adj2: 5e4 },
|
|
23846
23850
|
gdLst: [
|
|
23851
|
+
// Head length runs off `ss`, the short side, not `w`. See the note on
|
|
23852
|
+
// `rightArrow` in `preset-shape-definitions-table.ts`.
|
|
23853
|
+
gd3("maxAdj2", "*/ 84375 w ss"),
|
|
23847
23854
|
gd3("a1", "pin 0 adj1 100000"),
|
|
23848
|
-
gd3("a2", "pin 0 adj2
|
|
23855
|
+
gd3("a2", "pin 0 adj2 maxAdj2"),
|
|
23849
23856
|
gd3("y1", "*/ hd2 a1 100000"),
|
|
23850
23857
|
gd3("y2", "+- vc 0 y1"),
|
|
23851
23858
|
gd3("y3", "+- vc y1 0"),
|
|
23852
23859
|
gd3("x2", "*/ ss 1 32"),
|
|
23853
23860
|
gd3("x3", "*/ ss 2 32"),
|
|
23854
23861
|
gd3("x4", "*/ ss 5 32"),
|
|
23855
|
-
gd3("x5", "*/
|
|
23862
|
+
gd3("x5", "*/ ss a2 100000"),
|
|
23856
23863
|
gd3("x6", "+- r 0 x5"),
|
|
23857
|
-
gd3("dx", "*/
|
|
23864
|
+
gd3("dx", "*/ y1 x5 hd2"),
|
|
23858
23865
|
gd3("x7", "+- x6 dx 0")
|
|
23859
23866
|
],
|
|
23860
23867
|
rect: { l: "x4", t: "y2", r: "x7", b: "y3" },
|
|
@@ -23889,14 +23896,17 @@ var notchedRightArrow = {
|
|
|
23889
23896
|
name: "notchedRightArrow",
|
|
23890
23897
|
avLst: { adj1: 5e4, adj2: 5e4 },
|
|
23891
23898
|
gdLst: [
|
|
23899
|
+
// Head length runs off `ss`, the short side, not `w`. See the note on
|
|
23900
|
+
// `rightArrow` in `preset-shape-definitions-table.ts`.
|
|
23901
|
+
gd3("maxAdj2", "*/ 100000 w ss"),
|
|
23892
23902
|
gd3("a1", "pin 0 adj1 100000"),
|
|
23893
|
-
gd3("a2", "pin 0 adj2
|
|
23903
|
+
gd3("a2", "pin 0 adj2 maxAdj2"),
|
|
23894
23904
|
gd3("y1", "*/ hd2 a1 100000"),
|
|
23895
23905
|
gd3("y2", "+- vc 0 y1"),
|
|
23896
23906
|
gd3("y3", "+- vc y1 0"),
|
|
23897
|
-
gd3("x2", "*/
|
|
23907
|
+
gd3("x2", "*/ ss a2 100000"),
|
|
23898
23908
|
gd3("x1", "+- r 0 x2"),
|
|
23899
|
-
gd3("dx2", "*/
|
|
23909
|
+
gd3("dx2", "*/ y1 x2 hd2"),
|
|
23900
23910
|
gd3("x3", "+- x1 dx2 0"),
|
|
23901
23911
|
gd3("nx", "*/ y1 1 1")
|
|
23902
23912
|
],
|
|
@@ -23920,7 +23930,12 @@ var notchedRightArrow = {
|
|
|
23920
23930
|
var homePlate = {
|
|
23921
23931
|
name: "homePlate",
|
|
23922
23932
|
avLst: { adj: 5e4 },
|
|
23923
|
-
gdLst: [
|
|
23933
|
+
gdLst: [
|
|
23934
|
+
gd3("maxAdj", "*/ 100000 w ss"),
|
|
23935
|
+
gd3("a", "pin 0 adj maxAdj"),
|
|
23936
|
+
gd3("dx1", "*/ ss a 100000"),
|
|
23937
|
+
gd3("x1", "+- r 0 dx1")
|
|
23938
|
+
],
|
|
23924
23939
|
rect: { l: "l", t: "t", r: "x1", b: "b" },
|
|
23925
23940
|
pathLst: [
|
|
23926
23941
|
{
|
|
@@ -23938,8 +23953,13 @@ var homePlate = {
|
|
|
23938
23953
|
var chevron = {
|
|
23939
23954
|
name: "chevron",
|
|
23940
23955
|
avLst: { adj: 5e4 },
|
|
23941
|
-
gdLst: [
|
|
23942
|
-
|
|
23956
|
+
gdLst: [
|
|
23957
|
+
gd3("maxAdj", "*/ 100000 w ss"),
|
|
23958
|
+
gd3("a", "pin 0 adj maxAdj"),
|
|
23959
|
+
gd3("x1", "*/ ss a 100000"),
|
|
23960
|
+
gd3("x2", "+- r 0 x1")
|
|
23961
|
+
],
|
|
23962
|
+
rect: { l: "x1", t: "t", r: "x2", b: "b" },
|
|
23943
23963
|
pathLst: [
|
|
23944
23964
|
{
|
|
23945
23965
|
commands: [
|
|
@@ -29025,27 +29045,28 @@ var rightArrow = {
|
|
|
29025
29045
|
name: "rightArrow",
|
|
29026
29046
|
avLst: { adj1: 5e4, adj2: 5e4 },
|
|
29027
29047
|
gdLst: [
|
|
29048
|
+
gd13("maxAdj2", "*/ 100000 w ss"),
|
|
29028
29049
|
gd13("a1", "pin 0 adj1 100000"),
|
|
29029
|
-
gd13("a2", "pin 0 adj2
|
|
29030
|
-
gd13("
|
|
29031
|
-
gd13("
|
|
29032
|
-
gd13("
|
|
29033
|
-
gd13("
|
|
29034
|
-
gd13("
|
|
29035
|
-
gd13("dx2", "*/
|
|
29036
|
-
gd13("
|
|
29050
|
+
gd13("a2", "pin 0 adj2 maxAdj2"),
|
|
29051
|
+
gd13("dx1", "*/ ss a2 100000"),
|
|
29052
|
+
gd13("x1", "+- r 0 dx1"),
|
|
29053
|
+
gd13("dy1", "*/ h a1 200000"),
|
|
29054
|
+
gd13("y1", "+- vc 0 dy1"),
|
|
29055
|
+
gd13("y2", "+- vc dy1 0"),
|
|
29056
|
+
gd13("dx2", "*/ y1 dx1 hd2"),
|
|
29057
|
+
gd13("x2", "+- x1 dx2 0")
|
|
29037
29058
|
],
|
|
29038
|
-
rect: { l: "l", t: "
|
|
29059
|
+
rect: { l: "l", t: "y1", r: "x2", b: "y2" },
|
|
29039
29060
|
pathLst: [
|
|
29040
29061
|
{
|
|
29041
29062
|
commands: [
|
|
29042
|
-
{ kind: "moveTo", x: "l", y: "
|
|
29043
|
-
{ kind: "lnTo", x: "x1", y: "
|
|
29063
|
+
{ kind: "moveTo", x: "l", y: "y1" },
|
|
29064
|
+
{ kind: "lnTo", x: "x1", y: "y1" },
|
|
29044
29065
|
{ kind: "lnTo", x: "x1", y: "t" },
|
|
29045
29066
|
{ kind: "lnTo", x: "r", y: "vc" },
|
|
29046
29067
|
{ kind: "lnTo", x: "x1", y: "b" },
|
|
29047
|
-
{ kind: "lnTo", x: "x1", y: "
|
|
29048
|
-
{ kind: "lnTo", x: "l", y: "
|
|
29068
|
+
{ kind: "lnTo", x: "x1", y: "y2" },
|
|
29069
|
+
{ kind: "lnTo", x: "l", y: "y2" },
|
|
29049
29070
|
{ kind: "close" }
|
|
29050
29071
|
]
|
|
29051
29072
|
}
|
|
@@ -29055,26 +29076,28 @@ var leftArrow = {
|
|
|
29055
29076
|
name: "leftArrow",
|
|
29056
29077
|
avLst: { adj1: 5e4, adj2: 5e4 },
|
|
29057
29078
|
gdLst: [
|
|
29079
|
+
gd13("maxAdj2", "*/ 100000 w ss"),
|
|
29058
29080
|
gd13("a1", "pin 0 adj1 100000"),
|
|
29059
|
-
gd13("a2", "pin 0 adj2
|
|
29060
|
-
gd13("
|
|
29061
|
-
gd13("
|
|
29062
|
-
gd13("
|
|
29063
|
-
gd13("
|
|
29064
|
-
gd13("
|
|
29065
|
-
gd13("
|
|
29081
|
+
gd13("a2", "pin 0 adj2 maxAdj2"),
|
|
29082
|
+
gd13("dx2", "*/ ss a2 100000"),
|
|
29083
|
+
gd13("x2", "+- l dx2 0"),
|
|
29084
|
+
gd13("dy1", "*/ h a1 200000"),
|
|
29085
|
+
gd13("y1", "+- vc 0 dy1"),
|
|
29086
|
+
gd13("y2", "+- vc dy1 0"),
|
|
29087
|
+
gd13("dx1", "*/ y1 dx2 hd2"),
|
|
29088
|
+
gd13("x1", "+- dx2 0 dx1")
|
|
29066
29089
|
],
|
|
29067
|
-
rect: { l: "
|
|
29090
|
+
rect: { l: "x1", t: "y1", r: "r", b: "y2" },
|
|
29068
29091
|
pathLst: [
|
|
29069
29092
|
{
|
|
29070
29093
|
commands: [
|
|
29071
29094
|
{ kind: "moveTo", x: "l", y: "vc" },
|
|
29072
|
-
{ kind: "lnTo", x: "
|
|
29073
|
-
{ kind: "lnTo", x: "
|
|
29095
|
+
{ kind: "lnTo", x: "x2", y: "t" },
|
|
29096
|
+
{ kind: "lnTo", x: "x2", y: "y1" },
|
|
29097
|
+
{ kind: "lnTo", x: "r", y: "y1" },
|
|
29074
29098
|
{ kind: "lnTo", x: "r", y: "y2" },
|
|
29075
|
-
{ kind: "lnTo", x: "
|
|
29076
|
-
{ kind: "lnTo", x: "
|
|
29077
|
-
{ kind: "lnTo", x: "x1", y: "b" },
|
|
29099
|
+
{ kind: "lnTo", x: "x2", y: "y2" },
|
|
29100
|
+
{ kind: "lnTo", x: "x2", y: "b" },
|
|
29078
29101
|
{ kind: "close" }
|
|
29079
29102
|
]
|
|
29080
29103
|
}
|
|
@@ -29084,26 +29107,28 @@ var upArrow = {
|
|
|
29084
29107
|
name: "upArrow",
|
|
29085
29108
|
avLst: { adj1: 5e4, adj2: 5e4 },
|
|
29086
29109
|
gdLst: [
|
|
29110
|
+
gd13("maxAdj2", "*/ 100000 h ss"),
|
|
29087
29111
|
gd13("a1", "pin 0 adj1 100000"),
|
|
29088
|
-
gd13("a2", "pin 0 adj2
|
|
29089
|
-
gd13("
|
|
29090
|
-
gd13("
|
|
29091
|
-
gd13("
|
|
29092
|
-
gd13("
|
|
29093
|
-
gd13("
|
|
29094
|
-
gd13("
|
|
29112
|
+
gd13("a2", "pin 0 adj2 maxAdj2"),
|
|
29113
|
+
gd13("dy2", "*/ ss a2 100000"),
|
|
29114
|
+
gd13("y2", "+- t dy2 0"),
|
|
29115
|
+
gd13("dx1", "*/ w a1 200000"),
|
|
29116
|
+
gd13("x1", "+- hc 0 dx1"),
|
|
29117
|
+
gd13("x2", "+- hc dx1 0"),
|
|
29118
|
+
gd13("dy1", "*/ x1 dy2 wd2"),
|
|
29119
|
+
gd13("y1", "+- y2 0 dy1")
|
|
29095
29120
|
],
|
|
29096
|
-
rect: { l: "
|
|
29121
|
+
rect: { l: "x1", t: "y1", r: "x2", b: "b" },
|
|
29097
29122
|
pathLst: [
|
|
29098
29123
|
{
|
|
29099
29124
|
commands: [
|
|
29100
|
-
{ kind: "moveTo", x: "
|
|
29125
|
+
{ kind: "moveTo", x: "l", y: "y2" },
|
|
29126
|
+
{ kind: "lnTo", x: "hc", y: "t" },
|
|
29101
29127
|
{ kind: "lnTo", x: "r", y: "y2" },
|
|
29102
|
-
{ kind: "lnTo", x: "x3", y: "y2" },
|
|
29103
|
-
{ kind: "lnTo", x: "x3", y: "b" },
|
|
29104
|
-
{ kind: "lnTo", x: "x2", y: "b" },
|
|
29105
29128
|
{ kind: "lnTo", x: "x2", y: "y2" },
|
|
29106
|
-
{ kind: "lnTo", x: "
|
|
29129
|
+
{ kind: "lnTo", x: "x2", y: "b" },
|
|
29130
|
+
{ kind: "lnTo", x: "x1", y: "b" },
|
|
29131
|
+
{ kind: "lnTo", x: "x1", y: "y2" },
|
|
29107
29132
|
{ kind: "close" }
|
|
29108
29133
|
]
|
|
29109
29134
|
}
|
|
@@ -29113,26 +29138,27 @@ var downArrow = {
|
|
|
29113
29138
|
name: "downArrow",
|
|
29114
29139
|
avLst: { adj1: 5e4, adj2: 5e4 },
|
|
29115
29140
|
gdLst: [
|
|
29141
|
+
gd13("maxAdj2", "*/ 100000 h ss"),
|
|
29116
29142
|
gd13("a1", "pin 0 adj1 100000"),
|
|
29117
|
-
gd13("a2", "pin 0 adj2
|
|
29118
|
-
gd13("
|
|
29119
|
-
gd13("
|
|
29120
|
-
gd13("
|
|
29121
|
-
gd13("
|
|
29122
|
-
gd13("
|
|
29123
|
-
gd13("dy2", "*/
|
|
29124
|
-
gd13("
|
|
29143
|
+
gd13("a2", "pin 0 adj2 maxAdj2"),
|
|
29144
|
+
gd13("dy1", "*/ ss a2 100000"),
|
|
29145
|
+
gd13("y1", "+- b 0 dy1"),
|
|
29146
|
+
gd13("dx1", "*/ w a1 200000"),
|
|
29147
|
+
gd13("x1", "+- hc 0 dx1"),
|
|
29148
|
+
gd13("x2", "+- hc dx1 0"),
|
|
29149
|
+
gd13("dy2", "*/ x1 dy1 wd2"),
|
|
29150
|
+
gd13("y2", "+- b 0 dy2")
|
|
29125
29151
|
],
|
|
29126
|
-
rect: { l: "
|
|
29152
|
+
rect: { l: "x1", t: "t", r: "x2", b: "y2" },
|
|
29127
29153
|
pathLst: [
|
|
29128
29154
|
{
|
|
29129
29155
|
commands: [
|
|
29130
|
-
{ kind: "moveTo", x: "l", y: "
|
|
29131
|
-
{ kind: "lnTo", x: "
|
|
29156
|
+
{ kind: "moveTo", x: "l", y: "y1" },
|
|
29157
|
+
{ kind: "lnTo", x: "x1", y: "y1" },
|
|
29158
|
+
{ kind: "lnTo", x: "x1", y: "t" },
|
|
29132
29159
|
{ kind: "lnTo", x: "x2", y: "t" },
|
|
29133
|
-
{ kind: "lnTo", x: "
|
|
29134
|
-
{ kind: "lnTo", x: "
|
|
29135
|
-
{ kind: "lnTo", x: "r", y: "y2" },
|
|
29160
|
+
{ kind: "lnTo", x: "x2", y: "y1" },
|
|
29161
|
+
{ kind: "lnTo", x: "r", y: "y1" },
|
|
29136
29162
|
{ kind: "lnTo", x: "hc", y: "b" },
|
|
29137
29163
|
{ kind: "close" }
|
|
29138
29164
|
]
|
|
@@ -32312,8 +32338,8 @@ function extractSectionMap(presentationData, lookup) {
|
|
|
32312
32338
|
const orderedSections = [];
|
|
32313
32339
|
const presentation = presentationData ? lookup.getChildByLocalName(presentationData, "presentation") : void 0;
|
|
32314
32340
|
const sectionList = findSectionList2(presentation, lookup);
|
|
32315
|
-
const
|
|
32316
|
-
|
|
32341
|
+
const sections2 = lookup.getChildrenArrayByLocalName(sectionList, "section");
|
|
32342
|
+
sections2.forEach((section, index) => {
|
|
32317
32343
|
const sectionId = String(section["@_id"] || `section-${index + 1}`);
|
|
32318
32344
|
const rawName = String(section["@_name"] || "").trim();
|
|
32319
32345
|
const sectionName = rawName || `Section ${index + 1}`;
|
|
@@ -32788,8 +32814,8 @@ function scalar(parent, name, xmlLookup) {
|
|
|
32788
32814
|
return node?.["#text"] === void 0 ? void 0 : String(node["#text"]);
|
|
32789
32815
|
}
|
|
32790
32816
|
function parseSeriesDataLabels(seriesNode, xmlLookup) {
|
|
32791
|
-
const
|
|
32792
|
-
const nodes =
|
|
32817
|
+
const group2 = xmlLookup.getChildByLocalName(seriesNode, "dLbls");
|
|
32818
|
+
const nodes = group2 ? xmlLookup.getChildrenArrayByLocalName(group2, "dLbl") : xmlLookup.getChildrenArrayByLocalName(seriesNode, "dLbl");
|
|
32793
32819
|
return nodes.flatMap((node) => {
|
|
32794
32820
|
const idx = uint32(xmlLookup.getChildByLocalName(node, "idx")?.["@_val"]);
|
|
32795
32821
|
if (idx === void 0) {
|
|
@@ -32834,7 +32860,7 @@ function parseSeriesDataLabels(seriesNode, xmlLookup) {
|
|
|
32834
32860
|
return [result];
|
|
32835
32861
|
});
|
|
32836
32862
|
}
|
|
32837
|
-
function parseChartDataLabelOptions(
|
|
32863
|
+
function parseChartDataLabelOptions(group2, xmlLookup) {
|
|
32838
32864
|
const result = {};
|
|
32839
32865
|
const fields = [
|
|
32840
32866
|
["showVal", "showValue"],
|
|
@@ -32846,16 +32872,16 @@ function parseChartDataLabelOptions(group, xmlLookup) {
|
|
|
32846
32872
|
["showLeaderLines", "showLeaderLines"]
|
|
32847
32873
|
];
|
|
32848
32874
|
for (const [xmlName, property] of fields) {
|
|
32849
|
-
const value = bool(xmlLookup.getChildByLocalName(
|
|
32875
|
+
const value = bool(xmlLookup.getChildByLocalName(group2, xmlName));
|
|
32850
32876
|
if (value !== void 0) {
|
|
32851
32877
|
result[property] = value;
|
|
32852
32878
|
}
|
|
32853
32879
|
}
|
|
32854
|
-
const pos2 = position(xmlLookup.getChildByLocalName(
|
|
32880
|
+
const pos2 = position(xmlLookup.getChildByLocalName(group2, "dLblPos"));
|
|
32855
32881
|
if (pos2) {
|
|
32856
32882
|
result.position = pos2;
|
|
32857
32883
|
}
|
|
32858
|
-
const separator = scalar(
|
|
32884
|
+
const separator = scalar(group2, "separator", xmlLookup);
|
|
32859
32885
|
if (separator !== void 0) {
|
|
32860
32886
|
result.separator = separator;
|
|
32861
32887
|
}
|
|
@@ -38175,12 +38201,12 @@ function layoutGroupedList(nodes, bounds, themeColorMap) {
|
|
|
38175
38201
|
const usableW = bounds.width - padding * 2;
|
|
38176
38202
|
const groupW = (usableW - gap * (groups.length - 1)) / groups.length;
|
|
38177
38203
|
const usableH = bounds.height - padding * 2;
|
|
38178
|
-
groups.forEach((
|
|
38204
|
+
groups.forEach((group2, gi) => {
|
|
38179
38205
|
const fill = accentColor(gi, themeColorMap);
|
|
38180
38206
|
const gx = bounds.x + padding + gi * (groupW + gap);
|
|
38181
38207
|
const headerH = usableH * 0.2;
|
|
38182
38208
|
const subItemGap = 3;
|
|
38183
|
-
const subItemH = (usableH - headerH - 4 - subItemGap * (
|
|
38209
|
+
const subItemH = (usableH - headerH - 4 - subItemGap * (group2.length - 1)) / group2.length;
|
|
38184
38210
|
elements2.push(
|
|
38185
38211
|
makeShapeElement(
|
|
38186
38212
|
nextId("sa-grp-header"),
|
|
@@ -38198,7 +38224,7 @@ function layoutGroupedList(nodes, bounds, themeColorMap) {
|
|
|
38198
38224
|
}
|
|
38199
38225
|
)
|
|
38200
38226
|
);
|
|
38201
|
-
|
|
38227
|
+
group2.forEach((node, si) => {
|
|
38202
38228
|
const sy = bounds.y + padding + headerH + 4 + si * (subItemH + subItemGap);
|
|
38203
38229
|
elements2.push(
|
|
38204
38230
|
makeShapeElement(
|
|
@@ -41479,6 +41505,23 @@ var GENERIC_FAMILY_CONCRETE_FONTS = {
|
|
|
41479
41505
|
cursive: ["Comic Sans MS", "cursive"],
|
|
41480
41506
|
fantasy: ["Impact", "fantasy"]
|
|
41481
41507
|
};
|
|
41508
|
+
function parsePanoseString(panoseStr) {
|
|
41509
|
+
if (!panoseStr) {
|
|
41510
|
+
return void 0;
|
|
41511
|
+
}
|
|
41512
|
+
const cleaned = panoseStr.trim();
|
|
41513
|
+
if (cleaned.length !== 20) {
|
|
41514
|
+
return void 0;
|
|
41515
|
+
}
|
|
41516
|
+
if (!/^[0-9a-fA-F]{20}$/.test(cleaned)) {
|
|
41517
|
+
return void 0;
|
|
41518
|
+
}
|
|
41519
|
+
const bytes = [];
|
|
41520
|
+
for (let i = 0; i < 20; i += 2) {
|
|
41521
|
+
bytes.push(parseInt(cleaned.substring(i, i + 2), 16));
|
|
41522
|
+
}
|
|
41523
|
+
return bytes;
|
|
41524
|
+
}
|
|
41482
41525
|
function classifyPanose(panose) {
|
|
41483
41526
|
if (!panose || panose.length < 4) {
|
|
41484
41527
|
return "sans-serif";
|
|
@@ -49646,6 +49689,29 @@ var PptxHandlerRuntime10 = class extends PptxHandlerRuntime9 {
|
|
|
49646
49689
|
return void 0;
|
|
49647
49690
|
}
|
|
49648
49691
|
}
|
|
49692
|
+
/**
|
|
49693
|
+
* Resolve the `c:spPr` fill of a chart container (`c:chartSpace` or
|
|
49694
|
+
* `c:plotArea`) to a colour string, or the literal `'none'` for
|
|
49695
|
+
* `<a:noFill/>`. Returns `undefined` when the container declares no fill at
|
|
49696
|
+
* all, which leaves the choice to the renderer.
|
|
49697
|
+
*
|
|
49698
|
+
* `<a:noFill/>` parses to the empty STRING, so presence - not truthiness -
|
|
49699
|
+
* has to decide.
|
|
49700
|
+
*/
|
|
49701
|
+
parseChartContainerFill(container) {
|
|
49702
|
+
const shapeProperties = this.xmlLookupService.getChildByLocalName(container, "spPr");
|
|
49703
|
+
if (!shapeProperties) {
|
|
49704
|
+
return void 0;
|
|
49705
|
+
}
|
|
49706
|
+
const hasNoFill = Object.keys(shapeProperties).some(
|
|
49707
|
+
(key) => this.compatibilityService.getXmlLocalName(key) === "noFill"
|
|
49708
|
+
);
|
|
49709
|
+
if (hasNoFill) {
|
|
49710
|
+
return "none";
|
|
49711
|
+
}
|
|
49712
|
+
const solidFill2 = this.xmlLookupService.getChildByLocalName(shapeProperties, "solidFill");
|
|
49713
|
+
return solidFill2 ? this.parseColor(solidFill2) : void 0;
|
|
49714
|
+
}
|
|
49649
49715
|
/**
|
|
49650
49716
|
* Extract chart style metadata from chart XML.
|
|
49651
49717
|
*/
|
|
@@ -49660,6 +49726,11 @@ var PptxHandlerRuntime10 = class extends PptxHandlerRuntime9 {
|
|
|
49660
49726
|
style.styleId = parseInt(String(styleNode["@_val"]));
|
|
49661
49727
|
hasStyle = true;
|
|
49662
49728
|
}
|
|
49729
|
+
const chartAreaFill2 = this.parseChartContainerFill(chartSpace);
|
|
49730
|
+
if (chartAreaFill2) {
|
|
49731
|
+
style.chartAreaFill = chartAreaFill2;
|
|
49732
|
+
hasStyle = true;
|
|
49733
|
+
}
|
|
49663
49734
|
if (chartRoot) {
|
|
49664
49735
|
const legend = this.xmlLookupService.getChildByLocalName(chartRoot, "legend");
|
|
49665
49736
|
if (legend) {
|
|
@@ -49685,6 +49756,11 @@ var PptxHandlerRuntime10 = class extends PptxHandlerRuntime9 {
|
|
|
49685
49756
|
}
|
|
49686
49757
|
const plotArea = this.xmlLookupService.getChildByLocalName(chartRoot, "plotArea");
|
|
49687
49758
|
if (plotArea) {
|
|
49759
|
+
const plotAreaFill2 = this.parseChartContainerFill(plotArea);
|
|
49760
|
+
if (plotAreaFill2) {
|
|
49761
|
+
style.plotAreaFill = plotAreaFill2;
|
|
49762
|
+
hasStyle = true;
|
|
49763
|
+
}
|
|
49688
49764
|
const valAx = this.xmlLookupService.getChildByLocalName(plotArea, "valAx");
|
|
49689
49765
|
if (valAx) {
|
|
49690
49766
|
const majorGridlines = this.xmlLookupService.getChildByLocalName(valAx, "majorGridlines");
|
|
@@ -51018,32 +51094,32 @@ var PptxHandlerRuntime15 = class _PptxHandlerRuntime3 extends PptxHandlerRuntime
|
|
|
51018
51094
|
* Build a p:grpSp XML object from a GroupPptxElement.
|
|
51019
51095
|
* Children are stored with coordinates relative to the group origin.
|
|
51020
51096
|
*/
|
|
51021
|
-
buildGroupShapeXml(
|
|
51022
|
-
if (
|
|
51023
|
-
return
|
|
51097
|
+
buildGroupShapeXml(group2) {
|
|
51098
|
+
if (group2.rawXml && group2.children.length === 0) {
|
|
51099
|
+
return group2.rawXml;
|
|
51024
51100
|
}
|
|
51025
51101
|
const EMU = _PptxHandlerRuntime3.EMU_PER_PX;
|
|
51026
|
-
const offX = Math.round(
|
|
51027
|
-
const offY = Math.round(
|
|
51028
|
-
const extCx = Math.round(
|
|
51029
|
-
const extCy = Math.round(
|
|
51102
|
+
const offX = Math.round(group2.x * EMU);
|
|
51103
|
+
const offY = Math.round(group2.y * EMU);
|
|
51104
|
+
const extCx = Math.round(group2.width * EMU);
|
|
51105
|
+
const extCy = Math.round(group2.height * EMU);
|
|
51030
51106
|
const chOffX = 0;
|
|
51031
51107
|
const chOffY = 0;
|
|
51032
51108
|
const chExtCx = extCx;
|
|
51033
51109
|
const chExtCy = extCy;
|
|
51034
51110
|
const xfrmAttrs = {};
|
|
51035
|
-
if (typeof
|
|
51036
|
-
xfrmAttrs["@_rot"] = String(Math.round(
|
|
51111
|
+
if (typeof group2.rotation === "number" && group2.rotation !== 0) {
|
|
51112
|
+
xfrmAttrs["@_rot"] = String(Math.round(group2.rotation * 6e4));
|
|
51037
51113
|
}
|
|
51038
|
-
if (
|
|
51114
|
+
if (group2.flipHorizontal) {
|
|
51039
51115
|
xfrmAttrs["@_flipH"] = "1";
|
|
51040
51116
|
}
|
|
51041
|
-
if (
|
|
51117
|
+
if (group2.flipVertical) {
|
|
51042
51118
|
xfrmAttrs["@_flipV"] = "1";
|
|
51043
51119
|
}
|
|
51044
51120
|
const grpXml = {
|
|
51045
51121
|
"p:nvGrpSpPr": {
|
|
51046
|
-
"p:cNvPr": { "@_id": "0", "@_name":
|
|
51122
|
+
"p:cNvPr": { "@_id": "0", "@_name": group2.id },
|
|
51047
51123
|
"p:cNvGrpSpPr": {},
|
|
51048
51124
|
"p:nvPr": {}
|
|
51049
51125
|
},
|
|
@@ -51072,7 +51148,7 @@ var PptxHandlerRuntime15 = class _PptxHandlerRuntime3 extends PptxHandlerRuntime
|
|
|
51072
51148
|
const childShapes = [];
|
|
51073
51149
|
const childPics = [];
|
|
51074
51150
|
const childConnectors = [];
|
|
51075
|
-
for (const child202 of
|
|
51151
|
+
for (const child202 of group2.children) {
|
|
51076
51152
|
let xml = child202.rawXml;
|
|
51077
51153
|
if (!xml && (child202.type === "text" || child202.type === "shape")) {
|
|
51078
51154
|
xml = this.createElementXml(child202);
|
|
@@ -58594,12 +58670,12 @@ var PptxHandlerRuntime37 = class _PptxHandlerRuntime13 extends PptxHandlerRuntim
|
|
|
58594
58670
|
updateSummaryFallback(shape, el, targets, relationships) {
|
|
58595
58671
|
const block = this.alternateContentBlockByRawXml.get(shape);
|
|
58596
58672
|
const fallback = block?.rawAc["mc:Fallback"];
|
|
58597
|
-
const
|
|
58598
|
-
if (!
|
|
58673
|
+
const group2 = fallback?.["p:grpSp"];
|
|
58674
|
+
if (!group2) {
|
|
58599
58675
|
return;
|
|
58600
58676
|
}
|
|
58601
|
-
const existing = this.ensureArray(
|
|
58602
|
-
|
|
58677
|
+
const existing = this.ensureArray(group2["p:pic"]);
|
|
58678
|
+
group2["p:pic"] = targets.map((target, index) => {
|
|
58603
58679
|
const tile = this.summaryTileElement(el, target, index);
|
|
58604
58680
|
const picture = existing[index] ?? this.buildZoomFallbackPicture(tile, relationships[index]);
|
|
58605
58681
|
this.applyZoomTransform(picture["p:spPr"] ??= {}, tile);
|
|
@@ -59985,7 +60061,7 @@ var PptxHandlerRuntime42 = class extends PptxHandlerRuntime41 {
|
|
|
59985
60061
|
*/
|
|
59986
60062
|
buildFontSchemeObject(schemeName, fontMap, majorScripts, minorScripts) {
|
|
59987
60063
|
const buildFontGroup = (latinKey, eaKey, csKey, scripts) => {
|
|
59988
|
-
const
|
|
60064
|
+
const group2 = {
|
|
59989
60065
|
"a:latin": { "@_typeface": fontMap[latinKey] || "Calibri" },
|
|
59990
60066
|
"a:ea": { "@_typeface": fontMap[eaKey] || "" },
|
|
59991
60067
|
"a:cs": { "@_typeface": fontMap[csKey] || "" }
|
|
@@ -59996,9 +60072,9 @@ var PptxHandlerRuntime42 = class extends PptxHandlerRuntime41 {
|
|
|
59996
60072
|
"@_script": script,
|
|
59997
60073
|
"@_typeface": scripts[script]
|
|
59998
60074
|
}));
|
|
59999
|
-
|
|
60075
|
+
group2["a:font"] = fontEntries.length === 1 ? fontEntries[0] : fontEntries;
|
|
60000
60076
|
}
|
|
60001
|
-
return
|
|
60077
|
+
return group2;
|
|
60002
60078
|
};
|
|
60003
60079
|
return {
|
|
60004
60080
|
"@_name": schemeName,
|
|
@@ -64631,7 +64707,7 @@ function parseEmuInt2(value) {
|
|
|
64631
64707
|
return parsed;
|
|
64632
64708
|
}
|
|
64633
64709
|
var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntime66 {
|
|
64634
|
-
async parseGroupShape(
|
|
64710
|
+
async parseGroupShape(group2, baseId, slidePath, rawXmlStr, depth = 0) {
|
|
64635
64711
|
if (depth > MAX_GROUP_DEPTH) {
|
|
64636
64712
|
this.compatibilityService.reportWarning({
|
|
64637
64713
|
code: "group-depth-exceeded",
|
|
@@ -64643,7 +64719,7 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64643
64719
|
});
|
|
64644
64720
|
return [];
|
|
64645
64721
|
}
|
|
64646
|
-
const grpSpPr =
|
|
64722
|
+
const grpSpPr = group2["p:grpSpPr"];
|
|
64647
64723
|
const xfrm = grpSpPr?.["a:xfrm"];
|
|
64648
64724
|
const EMU_PX = _PptxHandlerRuntime30.EMU_PER_PX;
|
|
64649
64725
|
let parentX = 0, parentY = 0, parentW = 0, parentH = 0;
|
|
@@ -64708,16 +64784,16 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64708
64784
|
}
|
|
64709
64785
|
return el;
|
|
64710
64786
|
};
|
|
64711
|
-
this.unwrapAlternateContent(
|
|
64787
|
+
this.unwrapAlternateContent(group2);
|
|
64712
64788
|
const childOrder3 = this.extractSpTreeChildOrder(
|
|
64713
64789
|
void 0,
|
|
64714
|
-
|
|
64790
|
+
group2,
|
|
64715
64791
|
"p:grpSp"
|
|
64716
64792
|
);
|
|
64717
64793
|
const elements2 = [];
|
|
64718
64794
|
for (const entry2 of childOrder3) {
|
|
64719
64795
|
if (entry2.tag === "p:grpSp") {
|
|
64720
|
-
const subArr = this.ensureArray(
|
|
64796
|
+
const subArr = this.ensureArray(group2["p:grpSp"]);
|
|
64721
64797
|
const subGroup = subArr[entry2.indexInType];
|
|
64722
64798
|
if (!subGroup) {
|
|
64723
64799
|
continue;
|
|
@@ -64735,12 +64811,12 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64735
64811
|
const element = await this.parseSpTreeChild(
|
|
64736
64812
|
entry2.tag,
|
|
64737
64813
|
entry2.indexInType,
|
|
64738
|
-
|
|
64814
|
+
group2,
|
|
64739
64815
|
slidePath,
|
|
64740
64816
|
`${baseId}-`
|
|
64741
64817
|
);
|
|
64742
64818
|
if (element) {
|
|
64743
|
-
const childNode2 = this.ensureArray(
|
|
64819
|
+
const childNode2 = this.ensureArray(group2[entry2.tag])[entry2.indexInType];
|
|
64744
64820
|
applyRawChildGeometry(element, childNode2);
|
|
64745
64821
|
transformElement(element);
|
|
64746
64822
|
elements2.push(element);
|
|
@@ -64753,8 +64829,8 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64753
64829
|
* Parse a p:grpSp element into a GroupPptxElement with children.
|
|
64754
64830
|
* Children have coordinates relative to the group's position.
|
|
64755
64831
|
*/
|
|
64756
|
-
async parseGroupShapeAsGroup(
|
|
64757
|
-
const grpSpPr =
|
|
64832
|
+
async parseGroupShapeAsGroup(group2, baseId, slidePath, rawXmlStr) {
|
|
64833
|
+
const grpSpPr = group2["p:grpSpPr"];
|
|
64758
64834
|
const xfrm = grpSpPr?.["a:xfrm"];
|
|
64759
64835
|
let parentX = 0, parentY = 0, parentW = 0, parentH = 0;
|
|
64760
64836
|
let groupRotation;
|
|
@@ -64780,7 +64856,7 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64780
64856
|
}
|
|
64781
64857
|
const grpFillStyle = grpSpPr ? this.extractShapeStyle(grpSpPr) : void 0;
|
|
64782
64858
|
const hasGroupFill = grpFillStyle && grpFillStyle.fillMode && grpFillStyle.fillMode !== "none";
|
|
64783
|
-
const children10 = await this.parseGroupShape(
|
|
64859
|
+
const children10 = await this.parseGroupShape(group2, baseId, slidePath, rawXmlStr);
|
|
64784
64860
|
if (children10.length === 0) {
|
|
64785
64861
|
return null;
|
|
64786
64862
|
}
|
|
@@ -64806,7 +64882,7 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64806
64882
|
child202.x -= parentX;
|
|
64807
64883
|
child202.y -= parentY;
|
|
64808
64884
|
}
|
|
64809
|
-
const grpCNvPr =
|
|
64885
|
+
const grpCNvPr = group2?.["p:nvGrpSpPr"]?.["p:cNvPr"];
|
|
64810
64886
|
const grpSlideRels = this.slideRelsMap.get(slidePath);
|
|
64811
64887
|
const { actionClick: grpActionClick, actionHover: grpActionHover } = this.parseElementActions(
|
|
64812
64888
|
grpCNvPr,
|
|
@@ -64826,7 +64902,7 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
|
|
|
64826
64902
|
flipHorizontal: flipHorizontal || void 0,
|
|
64827
64903
|
flipVertical: flipVertical || void 0,
|
|
64828
64904
|
children: children10,
|
|
64829
|
-
rawXml:
|
|
64905
|
+
rawXml: group2,
|
|
64830
64906
|
actionClick: grpActionClick,
|
|
64831
64907
|
actionHover: grpActionHover,
|
|
64832
64908
|
groupFill: hasGroupFill ? grpFillStyle : void 0
|
|
@@ -66293,12 +66369,12 @@ var PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
|
|
|
66293
66369
|
}
|
|
66294
66370
|
} else if (entry2.tag === "p:grpSp") {
|
|
66295
66371
|
const groups = this.ensureArray(spTree["p:grpSp"]);
|
|
66296
|
-
const
|
|
66297
|
-
if (!
|
|
66372
|
+
const group2 = groups[entry2.indexInType];
|
|
66373
|
+
if (!group2) {
|
|
66298
66374
|
continue;
|
|
66299
66375
|
}
|
|
66300
66376
|
const element = await this.parseGroupShapeAsGroup(
|
|
66301
|
-
|
|
66377
|
+
group2,
|
|
66302
66378
|
`master-group-${masterToken}-${entry2.indexInType}`,
|
|
66303
66379
|
masterPath
|
|
66304
66380
|
);
|
|
@@ -66515,12 +66591,12 @@ var PptxHandlerRuntime76 = class extends PptxHandlerRuntime75 {
|
|
|
66515
66591
|
}
|
|
66516
66592
|
} else if (entry2.tag === "p:grpSp") {
|
|
66517
66593
|
const groups = this.ensureArray(spTree["p:grpSp"]);
|
|
66518
|
-
const
|
|
66519
|
-
if (!
|
|
66594
|
+
const group2 = groups[entry2.indexInType];
|
|
66595
|
+
if (!group2) {
|
|
66520
66596
|
continue;
|
|
66521
66597
|
}
|
|
66522
66598
|
const element = await this.parseGroupShapeAsGroup(
|
|
66523
|
-
|
|
66599
|
+
group2,
|
|
66524
66600
|
`layout-group-${layoutToken}-${entry2.indexInType}`,
|
|
66525
66601
|
layoutPath
|
|
66526
66602
|
);
|
|
@@ -68397,16 +68473,16 @@ function extractDrawingShapeTextStyle(txBody, deps) {
|
|
|
68397
68473
|
}
|
|
68398
68474
|
return { fontSize, fontColor };
|
|
68399
68475
|
}
|
|
68400
|
-
function resolveSmartArtTextStyles(paragraphs,
|
|
68476
|
+
function resolveSmartArtTextStyles(paragraphs, resolve2) {
|
|
68401
68477
|
for (const paragraph of paragraphs ?? []) {
|
|
68402
68478
|
if (paragraph.endParaRPr) {
|
|
68403
|
-
paragraph.endParaStyle =
|
|
68479
|
+
paragraph.endParaStyle = resolve2(paragraph.endParaRPr);
|
|
68404
68480
|
}
|
|
68405
68481
|
for (const item of paragraph.items) {
|
|
68406
68482
|
if (item.kind === "run" && item.run.rPr) {
|
|
68407
|
-
item.run.style =
|
|
68483
|
+
item.run.style = resolve2(item.run.rPr);
|
|
68408
68484
|
} else if ((item.kind === "field" || item.kind === "break") && item.rPr) {
|
|
68409
|
-
item.style =
|
|
68485
|
+
item.style = resolve2(item.rPr);
|
|
68410
68486
|
}
|
|
68411
68487
|
}
|
|
68412
68488
|
}
|
|
@@ -69915,6 +69991,20 @@ var PptxHandlerRuntime90 = class extends PptxHandlerRuntime89 {
|
|
|
69915
69991
|
const hasBlanks = expanded.some((value) => value === null);
|
|
69916
69992
|
const values = hasBlanks ? expanded.map((value) => value ?? 0) : this.extractChartPointValues(valNode, true).map((value) => Number.parseFloat(value)).filter((value) => Number.isFinite(value));
|
|
69917
69993
|
const blanks = hasBlanks ? expanded.map((value) => value === null) : void 0;
|
|
69994
|
+
const seriesNumberFormat = String(
|
|
69995
|
+
this.xmlLookupService.getChildByLocalName(
|
|
69996
|
+
this.xmlLookupService.getChildByLocalName(seriesNode, "dLbls"),
|
|
69997
|
+
"numFmt"
|
|
69998
|
+
)?.["@_formatCode"] ?? ""
|
|
69999
|
+
).trim() || String(
|
|
70000
|
+
this.xmlLookupService.getScalarChildByLocalName(
|
|
70001
|
+
this.xmlLookupService.getChildByLocalName(
|
|
70002
|
+
this.xmlLookupService.getChildByLocalName(valNode, "numRef") ?? valNode,
|
|
70003
|
+
"numCache"
|
|
70004
|
+
),
|
|
70005
|
+
"formatCode"
|
|
70006
|
+
) ?? ""
|
|
70007
|
+
).trim();
|
|
69918
70008
|
const seriesShapeProperties = this.xmlLookupService.getChildByLocalName(seriesNode, "spPr");
|
|
69919
70009
|
const seriesColor23 = this.parseColor(
|
|
69920
70010
|
this.xmlLookupService.getChildByLocalName(seriesShapeProperties, "solidFill")
|
|
@@ -69946,6 +70036,7 @@ var PptxHandlerRuntime90 = class extends PptxHandlerRuntime89 {
|
|
|
69946
70036
|
name: seriesName.trim().length > 0 ? seriesName : `Series ${seriesIndex + 1}`,
|
|
69947
70037
|
values: fallbackValues,
|
|
69948
70038
|
...blanks ? { blanks } : {},
|
|
70039
|
+
...seriesNumberFormat ? { numberFormat: seriesNumberFormat } : {},
|
|
69949
70040
|
color: seriesColor23,
|
|
69950
70041
|
...trendlines.length > 0 ? { trendlines } : {},
|
|
69951
70042
|
...errBars.length > 0 ? { errBars } : {},
|
|
@@ -79972,9 +80063,9 @@ var SlideMetadataRenderer = class {
|
|
|
79972
80063
|
const clickGroups = this.groupByClickSequence(items);
|
|
79973
80064
|
const lines = ["### Animations"];
|
|
79974
80065
|
for (let gi = 0; gi < clickGroups.length; gi += 1) {
|
|
79975
|
-
const
|
|
80066
|
+
const group2 = clickGroups[gi];
|
|
79976
80067
|
lines.push(`- **Click ${gi + 1}:**`);
|
|
79977
|
-
for (const anim of
|
|
80068
|
+
for (const anim of group2) {
|
|
79978
80069
|
lines.push(` - ${this.summariseAnimation(anim)}`);
|
|
79979
80070
|
}
|
|
79980
80071
|
}
|
|
@@ -80870,7 +80961,7 @@ var TextSegmentRenderer = class {
|
|
|
80870
80961
|
return "";
|
|
80871
80962
|
}
|
|
80872
80963
|
const paragraphs = this.groupParagraphs(segments);
|
|
80873
|
-
const renderedParagraphs = paragraphs.map((
|
|
80964
|
+
const renderedParagraphs = paragraphs.map((group2) => this.renderParagraph(group2, options)).filter((paragraph) => paragraph.text.length > 0);
|
|
80874
80965
|
if (renderedParagraphs.length === 0) {
|
|
80875
80966
|
return "";
|
|
80876
80967
|
}
|
|
@@ -80902,7 +80993,7 @@ var TextSegmentRenderer = class {
|
|
|
80902
80993
|
plainText(segments, options = {}) {
|
|
80903
80994
|
const paragraphs = this.groupParagraphs(segments);
|
|
80904
80995
|
const rendered = paragraphs.map(
|
|
80905
|
-
(
|
|
80996
|
+
(group2) => group2.segments.map((segment) => {
|
|
80906
80997
|
const base = this.resolvePlainSegmentText(segment, options);
|
|
80907
80998
|
if (segment.rubyText) {
|
|
80908
80999
|
return `${base}(${segment.rubyText})`;
|
|
@@ -80932,8 +81023,8 @@ var TextSegmentRenderer = class {
|
|
|
80932
81023
|
}
|
|
80933
81024
|
return groups;
|
|
80934
81025
|
}
|
|
80935
|
-
renderParagraph(
|
|
80936
|
-
let rawText =
|
|
81026
|
+
renderParagraph(group2, options) {
|
|
81027
|
+
let rawText = group2.segments.map((segment) => this.renderSegment(segment, options)).join("");
|
|
80937
81028
|
if (options.htmlFormatting) {
|
|
80938
81029
|
rawText = rawText.replace(/<\/strong><strong>/g, "").replace(/<\/em><em>/g, "").replace(/<\/s><s>/g, "");
|
|
80939
81030
|
} else {
|
|
@@ -80947,10 +81038,10 @@ var TextSegmentRenderer = class {
|
|
|
80947
81038
|
return { text: "", isListItem: false };
|
|
80948
81039
|
}
|
|
80949
81040
|
if (!options.disableLists && !options.inlineMode) {
|
|
80950
|
-
const bullet =
|
|
81041
|
+
const bullet = group2.segments.find((segment) => Boolean(segment.bulletInfo))?.bulletInfo;
|
|
80951
81042
|
if (bullet && !bullet.none) {
|
|
80952
|
-
const level = resolveListLevel(bullet,
|
|
80953
|
-
const marker = resolveListMarker(bullet,
|
|
81043
|
+
const level = resolveListLevel(bullet, group2.index, options.paragraphIndents);
|
|
81044
|
+
const marker = resolveListMarker(bullet, group2.index);
|
|
80954
81045
|
const alreadyNumbered = bullet.autoNumType && /^\d+[.)]\s/.test(rawText);
|
|
80955
81046
|
const prefix = alreadyNumbered ? "" : `${marker} `;
|
|
80956
81047
|
if (options.htmlFormatting) {
|
|
@@ -80966,7 +81057,7 @@ var TextSegmentRenderer = class {
|
|
|
80966
81057
|
};
|
|
80967
81058
|
}
|
|
80968
81059
|
}
|
|
80969
|
-
const align =
|
|
81060
|
+
const align = group2.segments[0]?.style.align;
|
|
80970
81061
|
if (!options.disableAlignment && !options.inlineMode && align && align !== "left") {
|
|
80971
81062
|
return {
|
|
80972
81063
|
text: `<p align="${align}">${rawText}</p>`,
|
|
@@ -83815,8 +83906,8 @@ function buildStrokeOutline(element) {
|
|
|
83815
83906
|
function suppressesCssBorder(element) {
|
|
83816
83907
|
return buildStrokeOutline(element) !== void 0;
|
|
83817
83908
|
}
|
|
83818
|
-
function getGroupChildParentFill(
|
|
83819
|
-
return
|
|
83909
|
+
function getGroupChildParentFill(group2) {
|
|
83910
|
+
return group2.type === "group" ? group2.groupFill : void 0;
|
|
83820
83911
|
}
|
|
83821
83912
|
function resolveGroupChildFill(child22, parentGroupFill) {
|
|
83822
83913
|
if (!parentGroupFill || !hasShapeProperties(child22) || child22.shapeStyle?.fillMode !== "group") {
|
|
@@ -86288,11 +86379,11 @@ var LatexParser = class {
|
|
|
86288
86379
|
return tryParseScripts(this, base);
|
|
86289
86380
|
}
|
|
86290
86381
|
if (tok.type === "group_start") {
|
|
86291
|
-
const
|
|
86292
|
-
if (
|
|
86382
|
+
const group2 = this.parseGroup();
|
|
86383
|
+
if (group2.length === 0) {
|
|
86293
86384
|
return null;
|
|
86294
86385
|
}
|
|
86295
|
-
const base =
|
|
86386
|
+
const base = group2.length === 1 ? group2[0] : this.wrapE(group2);
|
|
86296
86387
|
return tryParseScripts(this, base);
|
|
86297
86388
|
}
|
|
86298
86389
|
if (tok.type === "command") {
|
|
@@ -86700,6 +86791,273 @@ function latexToMathMl(source) {
|
|
|
86700
86791
|
function compileEquationTemplateMathMl() {
|
|
86701
86792
|
return EQUATION_TEMPLATES.map((tmpl) => latexToMathMl(tmpl.latex));
|
|
86702
86793
|
}
|
|
86794
|
+
var NICE_STEPS = [1, 2, 2.5, 5, 10];
|
|
86795
|
+
var HEADROOM = 0.05;
|
|
86796
|
+
var ZERO_ANCHOR_RATIO = 5 / 6;
|
|
86797
|
+
function niceAxisStep(value) {
|
|
86798
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
86799
|
+
return 1;
|
|
86800
|
+
}
|
|
86801
|
+
const exponent = Math.floor(Math.log10(value));
|
|
86802
|
+
const power = 10 ** exponent;
|
|
86803
|
+
const mantissa = value / power;
|
|
86804
|
+
const step = NICE_STEPS.find((candidate) => mantissa <= candidate + 1e-12) ?? 10;
|
|
86805
|
+
return step * power;
|
|
86806
|
+
}
|
|
86807
|
+
function snap(value, unit, direction) {
|
|
86808
|
+
const scaled = value / unit;
|
|
86809
|
+
const rounded = direction === "up" ? Math.ceil(scaled - 1e-9) : Math.floor(scaled + 1e-9);
|
|
86810
|
+
return rounded * unit;
|
|
86811
|
+
}
|
|
86812
|
+
function niceValueAxisBounds(dataMin, dataMax, targetIntervals = 4) {
|
|
86813
|
+
if (!Number.isFinite(dataMin) || !Number.isFinite(dataMax)) {
|
|
86814
|
+
return { min: 0, max: 1, majorUnit: 0.5 };
|
|
86815
|
+
}
|
|
86816
|
+
const low = Math.min(dataMin, dataMax);
|
|
86817
|
+
const high = Math.max(dataMin, dataMax);
|
|
86818
|
+
const intervals = Math.max(1, Math.round(targetIntervals));
|
|
86819
|
+
if (low === high) {
|
|
86820
|
+
if (low === 0) {
|
|
86821
|
+
return { min: 0, max: 1, majorUnit: 1 / intervals };
|
|
86822
|
+
}
|
|
86823
|
+
const unit2 = niceAxisStep(Math.abs(low) / intervals);
|
|
86824
|
+
return low > 0 ? { min: 0, max: snap(low, unit2, "up") || unit2, majorUnit: unit2 } : { min: snap(low, unit2, "down"), max: 0, majorUnit: unit2 };
|
|
86825
|
+
}
|
|
86826
|
+
const dataSpan = high - low;
|
|
86827
|
+
const padding = dataSpan * HEADROOM;
|
|
86828
|
+
let paddedMin;
|
|
86829
|
+
let paddedMax;
|
|
86830
|
+
if (low >= 0) {
|
|
86831
|
+
paddedMin = low < high * ZERO_ANCHOR_RATIO ? 0 : low - padding;
|
|
86832
|
+
paddedMax = high + padding;
|
|
86833
|
+
} else if (high <= 0) {
|
|
86834
|
+
paddedMax = high > low * ZERO_ANCHOR_RATIO ? 0 : high + padding;
|
|
86835
|
+
paddedMin = low - padding;
|
|
86836
|
+
} else {
|
|
86837
|
+
paddedMin = low - padding;
|
|
86838
|
+
paddedMax = high + padding;
|
|
86839
|
+
}
|
|
86840
|
+
const unit = niceAxisStep((paddedMax - paddedMin) / intervals);
|
|
86841
|
+
const min = paddedMin === 0 ? 0 : snap(paddedMin, unit, "down");
|
|
86842
|
+
let max = paddedMax === 0 ? 0 : snap(paddedMax, unit, "up");
|
|
86843
|
+
if (max <= min) {
|
|
86844
|
+
max = min + unit;
|
|
86845
|
+
}
|
|
86846
|
+
return { min, max, majorUnit: unit };
|
|
86847
|
+
}
|
|
86848
|
+
var GENERAL = /* @__PURE__ */ new Set(["", "general", "@"]);
|
|
86849
|
+
function sections(code) {
|
|
86850
|
+
const out = [];
|
|
86851
|
+
let current = "";
|
|
86852
|
+
let inQuotes = false;
|
|
86853
|
+
for (let i = 0; i < code.length; i += 1) {
|
|
86854
|
+
const ch = code[i];
|
|
86855
|
+
if (ch === '"') {
|
|
86856
|
+
inQuotes = !inQuotes;
|
|
86857
|
+
current += ch;
|
|
86858
|
+
continue;
|
|
86859
|
+
}
|
|
86860
|
+
if (ch === "\\") {
|
|
86861
|
+
current += ch + (code[i + 1] ?? "");
|
|
86862
|
+
i += 1;
|
|
86863
|
+
continue;
|
|
86864
|
+
}
|
|
86865
|
+
if (ch === ";" && !inQuotes) {
|
|
86866
|
+
out.push(current);
|
|
86867
|
+
current = "";
|
|
86868
|
+
continue;
|
|
86869
|
+
}
|
|
86870
|
+
current += ch;
|
|
86871
|
+
}
|
|
86872
|
+
out.push(current);
|
|
86873
|
+
return out;
|
|
86874
|
+
}
|
|
86875
|
+
function sectionFor(value, parts) {
|
|
86876
|
+
if (parts.length === 1) {
|
|
86877
|
+
return { code: parts[0], forcePositive: false };
|
|
86878
|
+
}
|
|
86879
|
+
if (value < 0 && parts[1] !== void 0) {
|
|
86880
|
+
return { code: parts[1], forcePositive: true };
|
|
86881
|
+
}
|
|
86882
|
+
if (value === 0 && parts[2] !== void 0) {
|
|
86883
|
+
return { code: parts[2], forcePositive: false };
|
|
86884
|
+
}
|
|
86885
|
+
return { code: parts[0], forcePositive: false };
|
|
86886
|
+
}
|
|
86887
|
+
var PLACEHOLDER = /[0#?]/u;
|
|
86888
|
+
function parsePattern(code) {
|
|
86889
|
+
let scale = 1;
|
|
86890
|
+
let scientific = false;
|
|
86891
|
+
const chars = [];
|
|
86892
|
+
let inQuotes = false;
|
|
86893
|
+
for (let i = 0; i < code.length; i += 1) {
|
|
86894
|
+
const ch = code[i];
|
|
86895
|
+
if (ch === '"') {
|
|
86896
|
+
inQuotes = !inQuotes;
|
|
86897
|
+
continue;
|
|
86898
|
+
}
|
|
86899
|
+
if (inQuotes) {
|
|
86900
|
+
chars.push({ ch, literal: true });
|
|
86901
|
+
continue;
|
|
86902
|
+
}
|
|
86903
|
+
if (ch === "\\" || ch === "*" || ch === "_") {
|
|
86904
|
+
const next = code[i + 1];
|
|
86905
|
+
i += 1;
|
|
86906
|
+
if (ch === "\\" && next !== void 0) {
|
|
86907
|
+
chars.push({ ch: next, literal: true });
|
|
86908
|
+
}
|
|
86909
|
+
continue;
|
|
86910
|
+
}
|
|
86911
|
+
if (ch === "%") {
|
|
86912
|
+
scale *= 100;
|
|
86913
|
+
chars.push({ ch, literal: true });
|
|
86914
|
+
continue;
|
|
86915
|
+
}
|
|
86916
|
+
if (ch === "E" && (code[i + 1] === "+" || code[i + 1] === "-")) {
|
|
86917
|
+
scientific = true;
|
|
86918
|
+
chars.push({ ch: "E", literal: false });
|
|
86919
|
+
i += 1;
|
|
86920
|
+
continue;
|
|
86921
|
+
}
|
|
86922
|
+
if (ch === "[") {
|
|
86923
|
+
const close = code.indexOf("]", i);
|
|
86924
|
+
i = close === -1 ? code.length : close;
|
|
86925
|
+
continue;
|
|
86926
|
+
}
|
|
86927
|
+
chars.push({ ch, literal: false });
|
|
86928
|
+
}
|
|
86929
|
+
const firstDigit = chars.findIndex((c) => !c.literal && PLACEHOLDER.test(c.ch));
|
|
86930
|
+
if (firstDigit === -1) {
|
|
86931
|
+
return void 0;
|
|
86932
|
+
}
|
|
86933
|
+
let lastDigit = firstDigit;
|
|
86934
|
+
for (let i = chars.length - 1; i >= firstDigit; i -= 1) {
|
|
86935
|
+
const c = chars[i];
|
|
86936
|
+
if (!c.literal && (PLACEHOLDER.test(c.ch) || c.ch === "." || c.ch === "," || c.ch === "E")) {
|
|
86937
|
+
lastDigit = i;
|
|
86938
|
+
break;
|
|
86939
|
+
}
|
|
86940
|
+
}
|
|
86941
|
+
const numeric = chars.slice(firstDigit, lastDigit + 1);
|
|
86942
|
+
const prefix = chars.slice(0, firstDigit).map((c) => c.ch).join("");
|
|
86943
|
+
const suffix = chars.slice(lastDigit + 1).map((c) => c.ch).join("");
|
|
86944
|
+
let grouped = false;
|
|
86945
|
+
let intDigits = 0;
|
|
86946
|
+
let required = 0;
|
|
86947
|
+
let optional = 0;
|
|
86948
|
+
let afterPoint = false;
|
|
86949
|
+
let inExponent = false;
|
|
86950
|
+
for (let i = 0; i < numeric.length; i += 1) {
|
|
86951
|
+
const { ch, literal } = numeric[i];
|
|
86952
|
+
if (literal) {
|
|
86953
|
+
continue;
|
|
86954
|
+
}
|
|
86955
|
+
if (ch === "E") {
|
|
86956
|
+
inExponent = true;
|
|
86957
|
+
continue;
|
|
86958
|
+
}
|
|
86959
|
+
if (inExponent) {
|
|
86960
|
+
continue;
|
|
86961
|
+
}
|
|
86962
|
+
if (ch === ".") {
|
|
86963
|
+
afterPoint = true;
|
|
86964
|
+
continue;
|
|
86965
|
+
}
|
|
86966
|
+
if (ch === ",") {
|
|
86967
|
+
const next = numeric.slice(i + 1).find((c) => !c.literal);
|
|
86968
|
+
if (!next || next.ch === "." || !PLACEHOLDER.test(next.ch)) {
|
|
86969
|
+
scale /= 1e3;
|
|
86970
|
+
} else {
|
|
86971
|
+
grouped = true;
|
|
86972
|
+
}
|
|
86973
|
+
continue;
|
|
86974
|
+
}
|
|
86975
|
+
if (!PLACEHOLDER.test(ch)) {
|
|
86976
|
+
continue;
|
|
86977
|
+
}
|
|
86978
|
+
if (afterPoint) {
|
|
86979
|
+
if (ch === "0") {
|
|
86980
|
+
required += 1;
|
|
86981
|
+
} else {
|
|
86982
|
+
optional += 1;
|
|
86983
|
+
}
|
|
86984
|
+
} else if (ch === "0") {
|
|
86985
|
+
intDigits += 1;
|
|
86986
|
+
}
|
|
86987
|
+
}
|
|
86988
|
+
return {
|
|
86989
|
+
prefix,
|
|
86990
|
+
suffix,
|
|
86991
|
+
intDigits,
|
|
86992
|
+
decimals: { required, optional },
|
|
86993
|
+
grouped,
|
|
86994
|
+
scale,
|
|
86995
|
+
scientific
|
|
86996
|
+
};
|
|
86997
|
+
}
|
|
86998
|
+
function group(intPart) {
|
|
86999
|
+
return intPart.replace(/\B(?=(\d{3})+(?!\d))/gu, ",");
|
|
87000
|
+
}
|
|
87001
|
+
function applyPattern(value, pattern, forcePositive) {
|
|
87002
|
+
const scaled = value * pattern.scale;
|
|
87003
|
+
const magnitude = forcePositive ? Math.abs(scaled) : scaled;
|
|
87004
|
+
if (pattern.scientific) {
|
|
87005
|
+
const digits = pattern.decimals.required + pattern.decimals.optional;
|
|
87006
|
+
const exponential = magnitude.toExponential(digits);
|
|
87007
|
+
const [mantissa, exponent] = exponential.split("e");
|
|
87008
|
+
const sign = exponent.startsWith("-") ? "-" : "+";
|
|
87009
|
+
const power = Math.abs(Number(exponent)).toString().padStart(2, "0");
|
|
87010
|
+
return `${pattern.prefix}${mantissa}E${sign}${power}${pattern.suffix}`;
|
|
87011
|
+
}
|
|
87012
|
+
const maxDecimals = pattern.decimals.required + pattern.decimals.optional;
|
|
87013
|
+
let body = magnitude.toFixed(maxDecimals);
|
|
87014
|
+
if (pattern.decimals.optional > 0) {
|
|
87015
|
+
body = body.replace(/(\.\d*?)0+$/u, "$1").replace(/\.$/u, "");
|
|
87016
|
+
const [, frac = ""] = body.split(".");
|
|
87017
|
+
if (frac.length < pattern.decimals.required) {
|
|
87018
|
+
body = Number(body).toFixed(pattern.decimals.required);
|
|
87019
|
+
}
|
|
87020
|
+
}
|
|
87021
|
+
const [rawIntPart, fracPart] = body.split(".");
|
|
87022
|
+
let intPart = rawIntPart;
|
|
87023
|
+
const negative = intPart.startsWith("-");
|
|
87024
|
+
if (negative) {
|
|
87025
|
+
intPart = intPart.slice(1);
|
|
87026
|
+
}
|
|
87027
|
+
if (intPart.length < pattern.intDigits) {
|
|
87028
|
+
intPart = intPart.padStart(pattern.intDigits, "0");
|
|
87029
|
+
}
|
|
87030
|
+
if (pattern.intDigits === 0 && intPart === "0" && fracPart !== void 0) {
|
|
87031
|
+
intPart = "";
|
|
87032
|
+
}
|
|
87033
|
+
if (pattern.grouped) {
|
|
87034
|
+
intPart = group(intPart);
|
|
87035
|
+
}
|
|
87036
|
+
const number = fracPart === void 0 ? intPart : `${intPart}.${fracPart}`;
|
|
87037
|
+
return `${negative ? "-" : ""}${pattern.prefix}${number}${pattern.suffix}`;
|
|
87038
|
+
}
|
|
87039
|
+
function formatChartNumber(value, formatCode) {
|
|
87040
|
+
if (!Number.isFinite(value)) {
|
|
87041
|
+
return void 0;
|
|
87042
|
+
}
|
|
87043
|
+
const code = (formatCode ?? "").trim();
|
|
87044
|
+
if (GENERAL.has(code.toLowerCase())) {
|
|
87045
|
+
return void 0;
|
|
87046
|
+
}
|
|
87047
|
+
if (/(?:^|[^\\"])(?:yy|mm?m|dd?|hh|ss)/iu.test(code) && !/[0#?]/u.test(code)) {
|
|
87048
|
+
return void 0;
|
|
87049
|
+
}
|
|
87050
|
+
const { code: section, forcePositive } = sectionFor(value, sections(code));
|
|
87051
|
+
const pattern = parsePattern(section);
|
|
87052
|
+
if (!pattern) {
|
|
87053
|
+
return void 0;
|
|
87054
|
+
}
|
|
87055
|
+
try {
|
|
87056
|
+
return applyPattern(value, pattern, forcePositive);
|
|
87057
|
+
} catch {
|
|
87058
|
+
return void 0;
|
|
87059
|
+
}
|
|
87060
|
+
}
|
|
86703
87061
|
var ACCENT1 = "#4472C4";
|
|
86704
87062
|
var ACCENT2 = "#ED7D31";
|
|
86705
87063
|
var ACCENT3 = "#A5A5A5";
|
|
@@ -86830,12 +87188,11 @@ function computeValueRange(series) {
|
|
|
86830
87188
|
if (allValues.length === 0) {
|
|
86831
87189
|
return { min: 0, max: 1, span: 1 };
|
|
86832
87190
|
}
|
|
86833
|
-
const
|
|
86834
|
-
|
|
86835
|
-
|
|
86836
|
-
|
|
86837
|
-
|
|
86838
|
-
return { min, max, span };
|
|
87191
|
+
const { min, max, majorUnit } = niceValueAxisBounds(
|
|
87192
|
+
Math.min(...allValues),
|
|
87193
|
+
Math.max(...allValues)
|
|
87194
|
+
);
|
|
87195
|
+
return { min, max, span: Math.max(max - min, Number.EPSILON), majorUnit };
|
|
86839
87196
|
}
|
|
86840
87197
|
function valueToY(val2, range, topY, bottomY) {
|
|
86841
87198
|
const usable = bottomY - topY;
|
|
@@ -86851,7 +87208,11 @@ function valueToY(val2, range, topY, bottomY) {
|
|
|
86851
87208
|
}
|
|
86852
87209
|
return range.reverseOrder ? topY + ratio * usable : bottomY - ratio * usable;
|
|
86853
87210
|
}
|
|
86854
|
-
function formatAxisValue(val2) {
|
|
87211
|
+
function formatAxisValue(val2, formatCode) {
|
|
87212
|
+
const formatted = formatChartNumber(val2, formatCode);
|
|
87213
|
+
if (formatted !== void 0) {
|
|
87214
|
+
return formatted;
|
|
87215
|
+
}
|
|
86855
87216
|
if (Math.abs(val2) >= 1e6) {
|
|
86856
87217
|
return `${(val2 / 1e6).toFixed(1)}M`;
|
|
86857
87218
|
}
|
|
@@ -86907,6 +87268,19 @@ function computeLayout(elementWidth, elementHeight, style, hasAxes, legendPos, o
|
|
|
86907
87268
|
svgHeight
|
|
86908
87269
|
};
|
|
86909
87270
|
}
|
|
87271
|
+
var DEFAULT_CHART_AREA_FILL = "#0f172a11";
|
|
87272
|
+
function resolve(fill, fallback) {
|
|
87273
|
+
if (fill === "none") {
|
|
87274
|
+
return void 0;
|
|
87275
|
+
}
|
|
87276
|
+
return fill ?? fallback;
|
|
87277
|
+
}
|
|
87278
|
+
function chartAreaFill(chartData) {
|
|
87279
|
+
return resolve(chartData?.style?.chartAreaFill, DEFAULT_CHART_AREA_FILL);
|
|
87280
|
+
}
|
|
87281
|
+
function plotAreaFill(chartData) {
|
|
87282
|
+
return resolve(chartData?.style?.plotAreaFill, void 0);
|
|
87283
|
+
}
|
|
86910
87284
|
var LOG_EXPONENT_TOLERANCE = 1e-12;
|
|
86911
87285
|
function computeLogValueRange(series, logBase) {
|
|
86912
87286
|
const allValues = series.flatMap((item) => item.values).filter((value) => value > 0);
|
|
@@ -86935,6 +87309,7 @@ function computeValueRangeForAxis(series, axis) {
|
|
|
86935
87309
|
const validMax = typeof axis?.max === "number" && Number.isFinite(axis.max) && (!logBase || axis.max > 0) ? axis.max : void 0;
|
|
86936
87310
|
const min = validMin ?? automatic.min;
|
|
86937
87311
|
let max = validMax ?? automatic.max;
|
|
87312
|
+
const majorUnit = validMin === void 0 && validMax === void 0 ? automatic.majorUnit : void 0;
|
|
86938
87313
|
if (max <= min) {
|
|
86939
87314
|
max = logBase ? min * logBase : min + 1;
|
|
86940
87315
|
}
|
|
@@ -86943,6 +87318,7 @@ function computeValueRangeForAxis(series, axis) {
|
|
|
86943
87318
|
min,
|
|
86944
87319
|
max,
|
|
86945
87320
|
span: Math.max(span, Number.EPSILON),
|
|
87321
|
+
...majorUnit !== void 0 ? { majorUnit } : {},
|
|
86946
87322
|
...logBase ? { logScale: true, logBase } : {},
|
|
86947
87323
|
...axis?.orientation === "maxMin" ? { reverseOrder: true } : {}
|
|
86948
87324
|
};
|
|
@@ -86982,6 +87358,10 @@ function generateAxisTicks(range, axis, defaultIntervals) {
|
|
|
86982
87358
|
if (explicit.length > 0) {
|
|
86983
87359
|
return explicit;
|
|
86984
87360
|
}
|
|
87361
|
+
const automatic = generateIntervalTicks(range, range.majorUnit ?? 0);
|
|
87362
|
+
if (automatic.length > 0) {
|
|
87363
|
+
return automatic;
|
|
87364
|
+
}
|
|
86985
87365
|
return Array.from(
|
|
86986
87366
|
{ length: defaultIntervals + 1 },
|
|
86987
87367
|
(_, index) => range.min + range.span / defaultIntervals * index
|
|
@@ -87550,7 +87930,7 @@ function formatTick(val2, axis) {
|
|
|
87550
87930
|
if (axis?.displayUnits) {
|
|
87551
87931
|
return formatAxisValueWithUnits(val2, axis);
|
|
87552
87932
|
}
|
|
87553
|
-
return formatAxisValue2(val2);
|
|
87933
|
+
return formatAxisValue2(val2, axis?.numFmt?.formatCode);
|
|
87554
87934
|
}
|
|
87555
87935
|
function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft) {
|
|
87556
87936
|
const gridlines = [];
|
|
@@ -87747,7 +88127,11 @@ function hasRicherAxisFeatures(chartData) {
|
|
|
87747
88127
|
return Boolean(
|
|
87748
88128
|
chartData.dataTable || chartData.axes?.some(
|
|
87749
88129
|
(axis) => axis.crosses !== void 0 || axis.crossesAt !== void 0 || axis.crossBetween !== void 0 || axis.axisType === "valAx" && Boolean(
|
|
87750
|
-
axis.logScale || axis.displayUnits ||
|
|
88130
|
+
axis.logScale || axis.displayUnits || // A `c:numFmt` is only honoured on the `buildPrimaryAxis`
|
|
88131
|
+
// path; the fast path has no axis to read it from. The two
|
|
88132
|
+
// agree tick-for-tick when no log scale or display unit is
|
|
88133
|
+
// in play, so routing a formatted axis here costs nothing.
|
|
88134
|
+
axis.numFmt?.formatCode || axis.axPos === "r" || axis.orientation === "maxMin" || axis.majorUnit !== void 0 || axis.minorUnit !== void 0 || axis.minorGridlines || axis.majorTickMark !== void 0 || axis.minorTickMark !== void 0 || axis.tickLblPos !== void 0
|
|
87751
88135
|
)
|
|
87752
88136
|
)
|
|
87753
88137
|
);
|
|
@@ -87857,7 +88241,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
87857
88241
|
kind: "text",
|
|
87858
88242
|
x: x + singleBarWidth / 2,
|
|
87859
88243
|
y: val2 >= 0 ? y - 4 : y + h + 10,
|
|
87860
|
-
text: formatAxisValue2(val2),
|
|
88244
|
+
text: formatAxisValue2(val2, series[si].numberFormat),
|
|
87861
88245
|
fontSize: 7,
|
|
87862
88246
|
fill: "#334155",
|
|
87863
88247
|
textAnchor: "middle"
|
|
@@ -87962,7 +88346,7 @@ function pushClusteredStackedLabels(series, sourceIndices2, catCount, layout, ra
|
|
|
87962
88346
|
kind: "text",
|
|
87963
88347
|
x,
|
|
87964
88348
|
y: labelY,
|
|
87965
|
-
text: formatAxisValue2(val2),
|
|
88349
|
+
text: formatAxisValue2(val2, series[si].numberFormat),
|
|
87966
88350
|
fontSize: 7,
|
|
87967
88351
|
fill: "#334155",
|
|
87968
88352
|
textAnchor: "middle"
|
|
@@ -88248,7 +88632,7 @@ function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, s
|
|
|
88248
88632
|
kind: "text",
|
|
88249
88633
|
x: pt.x,
|
|
88250
88634
|
y: pt.y - 7,
|
|
88251
|
-
text: formatAxisValue2(val2),
|
|
88635
|
+
text: formatAxisValue2(val2, series.numberFormat),
|
|
88252
88636
|
fontSize: 7,
|
|
88253
88637
|
fill: "#334155",
|
|
88254
88638
|
textAnchor: "middle"
|
|
@@ -88320,7 +88704,7 @@ function buildAreas(chartData, catCount, layout, range, sourceIndices2, xPositio
|
|
|
88320
88704
|
kind: "text",
|
|
88321
88705
|
x: pt.x,
|
|
88322
88706
|
y: pt.y - 6,
|
|
88323
|
-
text: formatAxisValue2(val2),
|
|
88707
|
+
text: formatAxisValue2(val2, series.numberFormat),
|
|
88324
88708
|
fontSize: 7,
|
|
88325
88709
|
fill: "#334155",
|
|
88326
88710
|
textAnchor: "middle"
|
|
@@ -88365,7 +88749,7 @@ function buildScatter(chartData, layout, range) {
|
|
|
88365
88749
|
kind: "text",
|
|
88366
88750
|
x: dot.cx,
|
|
88367
88751
|
y: dot.cy - 6,
|
|
88368
|
-
text: formatAxisValue2(val2),
|
|
88752
|
+
text: formatAxisValue2(val2, series.numberFormat),
|
|
88369
88753
|
fontSize: 7,
|
|
88370
88754
|
fill: "#334155",
|
|
88371
88755
|
textAnchor: "middle"
|
|
@@ -88412,7 +88796,7 @@ function buildBubbles(chartData, layout, range) {
|
|
|
88412
88796
|
kind: "text",
|
|
88413
88797
|
x: dot.cx,
|
|
88414
88798
|
y: dot.cy - 10,
|
|
88415
|
-
text: formatAxisValue2(val2),
|
|
88799
|
+
text: formatAxisValue2(val2, series.numberFormat),
|
|
88416
88800
|
fontSize: 7,
|
|
88417
88801
|
fill: "#334155",
|
|
88418
88802
|
textAnchor: "middle"
|
|
@@ -88566,18 +88950,18 @@ function buildMultiLevelCategoryLabels(categoryLabels, categoryLevels, sourceInd
|
|
|
88566
88950
|
const bandHeight = Math.max(axis?.fontSize ?? 8, 8) + 4;
|
|
88567
88951
|
return levels.flatMap((level, levelIndex) => {
|
|
88568
88952
|
const values = sourceIndices2.map((sourceIndex) => level[sourceIndex] ?? "");
|
|
88569
|
-
return groupedLabels(values).flatMap((
|
|
88570
|
-
if (!
|
|
88953
|
+
return groupedLabels(values).flatMap((group2) => {
|
|
88954
|
+
if (!group2.text || group2.start % skip !== 0) {
|
|
88571
88955
|
return [];
|
|
88572
88956
|
}
|
|
88573
|
-
const startX = categoryX2(
|
|
88574
|
-
const endX = categoryX2(
|
|
88957
|
+
const startX = categoryX2(group2.start, sourceIndices2.length, layout, spacing);
|
|
88958
|
+
const endX = categoryX2(group2.end, sourceIndices2.length, layout, spacing);
|
|
88575
88959
|
return [
|
|
88576
88960
|
{
|
|
88577
88961
|
kind: "text",
|
|
88578
88962
|
x: (startX + endX) / 2,
|
|
88579
88963
|
y: labelY + direction * (offset + levelIndex * bandHeight),
|
|
88580
|
-
text:
|
|
88964
|
+
text: group2.text,
|
|
88581
88965
|
textAnchor,
|
|
88582
88966
|
...chartAxisTextStyle(axis)
|
|
88583
88967
|
}
|
|
@@ -89822,7 +90206,7 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
89822
90206
|
kind: "text",
|
|
89823
90207
|
x: point.x,
|
|
89824
90208
|
y: point.y - 7,
|
|
89825
|
-
text: formatAxisValue2(point.value),
|
|
90209
|
+
text: formatAxisValue2(point.value, series.numberFormat),
|
|
89826
90210
|
fontSize: 7,
|
|
89827
90211
|
fill: "#334155",
|
|
89828
90212
|
textAnchor: "middle"
|
|
@@ -89877,7 +90261,7 @@ function appendBarLabels(series, chartData, layout, catCount, range, sourceIndic
|
|
|
89877
90261
|
kind: "text",
|
|
89878
90262
|
x: xPositions?.[displayIndex] ?? layout.plotLeft + groupWidth * displayIndex + offset + barWidth / 2,
|
|
89879
90263
|
y: value >= 0 ? Math.min(zeroY, valueY) - 4 : Math.max(zeroY, valueY) + 10,
|
|
89880
|
-
text: formatAxisValue2(value),
|
|
90264
|
+
text: formatAxisValue2(value, series.numberFormat),
|
|
89881
90265
|
fontSize: 7,
|
|
89882
90266
|
fill: "#334155",
|
|
89883
90267
|
textAnchor: "middle"
|
|
@@ -90914,7 +91298,7 @@ function isOutsidePosition(position2) {
|
|
|
90914
91298
|
return position2 === "outEnd" || position2 === "bestFit";
|
|
90915
91299
|
}
|
|
90916
91300
|
function buildPieDataLabels(params) {
|
|
90917
|
-
const { slices, values, cx, cy, outerR, position: position2, showLeaderLines } = params;
|
|
91301
|
+
const { slices, values, cx, cy, outerR, position: position2, showLeaderLines, numberFormat } = params;
|
|
90918
91302
|
const outside = isOutsidePosition(position2);
|
|
90919
91303
|
const labels = [];
|
|
90920
91304
|
const leaderLines = [];
|
|
@@ -90928,7 +91312,7 @@ function buildPieDataLabels(params) {
|
|
|
90928
91312
|
kind: "text",
|
|
90929
91313
|
x: slice.labelX,
|
|
90930
91314
|
y: slice.labelY,
|
|
90931
|
-
text: formatAxisValue2(val2),
|
|
91315
|
+
text: formatAxisValue2(val2, numberFormat),
|
|
90932
91316
|
fontSize: 8,
|
|
90933
91317
|
fill: "#ffffff",
|
|
90934
91318
|
textAnchor: "middle",
|
|
@@ -90948,7 +91332,7 @@ function buildPieDataLabels(params) {
|
|
|
90948
91332
|
kind: "text",
|
|
90949
91333
|
x: labelX + (cos >= 0 ? 2 : -2),
|
|
90950
91334
|
y: labelY,
|
|
90951
|
-
text: formatAxisValue2(val2),
|
|
91335
|
+
text: formatAxisValue2(val2, numberFormat),
|
|
90952
91336
|
fontSize: 8,
|
|
90953
91337
|
fill: "#334155",
|
|
90954
91338
|
textAnchor: anchor,
|
|
@@ -92217,10 +92601,8 @@ function computeValueRange2(series) {
|
|
|
92217
92601
|
if (dataMin === Number.POSITIVE_INFINITY) {
|
|
92218
92602
|
return { min: 0, max: 1, span: 1 };
|
|
92219
92603
|
}
|
|
92220
|
-
const min =
|
|
92221
|
-
|
|
92222
|
-
const span = Math.max(max - min, 1);
|
|
92223
|
-
return { min, max, span };
|
|
92604
|
+
const { min, max, majorUnit } = niceValueAxisBounds(dataMin, dataMax);
|
|
92605
|
+
return { min, max, span: Math.max(max - min, Number.EPSILON), majorUnit };
|
|
92224
92606
|
}
|
|
92225
92607
|
function computeStackedValueRange(series, catCount) {
|
|
92226
92608
|
let maxSum = 0;
|
|
@@ -92239,10 +92621,8 @@ function computeStackedValueRange(series, catCount) {
|
|
|
92239
92621
|
maxSum = Math.max(maxSum, pos2);
|
|
92240
92622
|
minSum = Math.min(minSum, neg);
|
|
92241
92623
|
}
|
|
92242
|
-
const min = Math.min(minSum, 0);
|
|
92243
|
-
|
|
92244
|
-
const span = Math.max(max - min, 1);
|
|
92245
|
-
return { min, max, span };
|
|
92624
|
+
const { min, max, majorUnit } = niceValueAxisBounds(Math.min(minSum, 0), Math.max(maxSum, 0));
|
|
92625
|
+
return { min, max, span: Math.max(max - min, Number.EPSILON), majorUnit };
|
|
92246
92626
|
}
|
|
92247
92627
|
function valueToY2(val2, range, topY, bottomY) {
|
|
92248
92628
|
const usable = bottomY - topY;
|
|
@@ -92258,7 +92638,11 @@ function valueToY2(val2, range, topY, bottomY) {
|
|
|
92258
92638
|
}
|
|
92259
92639
|
return range.reverseOrder ? topY + ratio * usable : bottomY - ratio * usable;
|
|
92260
92640
|
}
|
|
92261
|
-
function formatAxisValue2(val2) {
|
|
92641
|
+
function formatAxisValue2(val2, formatCode) {
|
|
92642
|
+
const formatted = formatChartNumber(val2, formatCode);
|
|
92643
|
+
if (formatted !== void 0) {
|
|
92644
|
+
return formatted;
|
|
92645
|
+
}
|
|
92262
92646
|
if (Math.abs(val2) >= 1e6) {
|
|
92263
92647
|
return `${(val2 / 1e6).toFixed(1)}M`;
|
|
92264
92648
|
}
|
|
@@ -92320,11 +92704,23 @@ var GRIDLINE_COLOR2 = "#e2e8f0";
|
|
|
92320
92704
|
var AXIS_LABEL_COLOR = "#64748b";
|
|
92321
92705
|
var ZERO_LINE_COLOR = "#94a3b8";
|
|
92322
92706
|
var TICK_COUNT2 = 5;
|
|
92707
|
+
function axisTickValues(range) {
|
|
92708
|
+
const unit = range.majorUnit;
|
|
92709
|
+
if (unit !== void 0 && Number.isFinite(unit) && unit > 0 && !range.logScale) {
|
|
92710
|
+
const steps = Math.round((range.max - range.min) / unit);
|
|
92711
|
+
if (steps >= 1 && steps <= 100) {
|
|
92712
|
+
return Array.from({ length: steps + 1 }, (_unused, index) => range.min + unit * index);
|
|
92713
|
+
}
|
|
92714
|
+
}
|
|
92715
|
+
return Array.from(
|
|
92716
|
+
{ length: TICK_COUNT2 + 1 },
|
|
92717
|
+
(_unused, index) => range.min + range.span / TICK_COUNT2 * index
|
|
92718
|
+
);
|
|
92719
|
+
}
|
|
92323
92720
|
function buildGridlinesAndLabels(range, layout) {
|
|
92324
92721
|
const gridlines = [];
|
|
92325
92722
|
const axisLabels = [];
|
|
92326
|
-
for (
|
|
92327
|
-
const val2 = range.min + range.span / TICK_COUNT2 * i;
|
|
92723
|
+
for (const val2 of axisTickValues(range)) {
|
|
92328
92724
|
const y = valueToY2(val2, range, layout.plotTop, layout.plotBottom);
|
|
92329
92725
|
gridlines.push({
|
|
92330
92726
|
kind: "line",
|
|
@@ -92642,13 +93038,26 @@ function buildChartViewModel(element) {
|
|
|
92642
93038
|
const longestLen = chartData.series.reduce((m, s) => Math.max(m, s.values.length), 0);
|
|
92643
93039
|
const categoryLabels = chartData.categories.length > 0 ? chartData.categories : Array.from({ length: longestLen }, (_, i) => String(i + 1));
|
|
92644
93040
|
if (chartType === "ofPie") {
|
|
92645
|
-
return
|
|
93041
|
+
return withChartAreaFill(
|
|
93042
|
+
withUserShapeOverlay(buildOfPieViewModel(element, chartData, categoryLabels), chartData),
|
|
93043
|
+
chartData
|
|
93044
|
+
);
|
|
92646
93045
|
}
|
|
92647
93046
|
const flat = buildFlatViewModel(element, chartData, categoryLabels, kind);
|
|
92648
93047
|
if (is3DChartType(chartType)) {
|
|
92649
|
-
return
|
|
93048
|
+
return withChartAreaFill(
|
|
93049
|
+
withUserShapeOverlay(applyChart3DDepth(flat, chartType, chartData.view3D), chartData),
|
|
93050
|
+
chartData
|
|
93051
|
+
);
|
|
92650
93052
|
}
|
|
92651
|
-
return withUserShapeOverlay(flat, chartData);
|
|
93053
|
+
return withChartAreaFill(withUserShapeOverlay(flat, chartData), chartData);
|
|
93054
|
+
}
|
|
93055
|
+
function withChartAreaFill(vm, chartData) {
|
|
93056
|
+
return {
|
|
93057
|
+
...vm,
|
|
93058
|
+
areaFill: chartAreaFill(chartData),
|
|
93059
|
+
plotFill: plotAreaFill(chartData)
|
|
93060
|
+
};
|
|
92652
93061
|
}
|
|
92653
93062
|
function withUserShapeOverlay(vm, chartData) {
|
|
92654
93063
|
const overlay = buildChartUserShapeOverlay(chartData.userShapes, vm.svgWidth, vm.svgHeight);
|
|
@@ -92709,6 +93118,8 @@ function buildFallbackViewModel(width, height, label) {
|
|
|
92709
93118
|
return {
|
|
92710
93119
|
svgWidth,
|
|
92711
93120
|
svgHeight,
|
|
93121
|
+
// No chart data to read a fill from, so the historical wash stands.
|
|
93122
|
+
areaFill: DEFAULT_CHART_AREA_FILL,
|
|
92712
93123
|
title: void 0,
|
|
92713
93124
|
titleX: svgWidth / 2,
|
|
92714
93125
|
titleY: 14,
|
|
@@ -92780,7 +93191,8 @@ function buildPieViewModel(element, chartData, categoryLabels, isDoughnut) {
|
|
|
92780
93191
|
cy,
|
|
92781
93192
|
outerR,
|
|
92782
93193
|
position: chartData.style.dataLabels?.position,
|
|
92783
|
-
showLeaderLines: chartData.style.dataLabels?.showLeaderLines
|
|
93194
|
+
showLeaderLines: chartData.style.dataLabels?.showLeaderLines,
|
|
93195
|
+
numberFormat: chartData.series[0]?.numberFormat
|
|
92784
93196
|
});
|
|
92785
93197
|
dataLabels.push(...labelResult.labels);
|
|
92786
93198
|
primitives.push(...labelResult.leaderLines);
|
|
@@ -92899,7 +93311,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
|
|
|
92899
93311
|
kind: "text",
|
|
92900
93312
|
x: p.x,
|
|
92901
93313
|
y: p.y - 8,
|
|
92902
|
-
text: formatAxisValue2(val2),
|
|
93314
|
+
text: formatAxisValue2(val2, series.numberFormat),
|
|
92903
93315
|
fontSize: 7,
|
|
92904
93316
|
fill: "#334155",
|
|
92905
93317
|
textAnchor: "middle"
|
|
@@ -93949,8 +94361,8 @@ function finalizeClickGroup(steps, options) {
|
|
|
93949
94361
|
maxEnd = end;
|
|
93950
94362
|
}
|
|
93951
94363
|
}
|
|
93952
|
-
const
|
|
93953
|
-
return
|
|
94364
|
+
const group2 = { steps, totalDurationMs: maxEnd };
|
|
94365
|
+
return group2;
|
|
93954
94366
|
}
|
|
93955
94367
|
var CLICK_EVENTS = /* @__PURE__ */ new Set(["onClick", "onNext"]);
|
|
93956
94368
|
var HOVER_EVENTS = /* @__PURE__ */ new Set(["onMouseOver"]);
|
|
@@ -94524,11 +94936,11 @@ function buildTimeline(nativeAnimations) {
|
|
|
94524
94936
|
const isFirstAnimation = clickGroups.length === 0 && currentGroup.length === 0;
|
|
94525
94937
|
if (isOnClick || isFirstAnimation) {
|
|
94526
94938
|
if (currentGroup.length > 0) {
|
|
94527
|
-
const
|
|
94939
|
+
const group2 = finalizeClickGroup(currentGroup);
|
|
94528
94940
|
if (currentGroupAutoStart || !currentGroupIsClick && clickGroups.length > 0) {
|
|
94529
|
-
|
|
94941
|
+
group2.autoAdvance = true;
|
|
94530
94942
|
}
|
|
94531
|
-
clickGroups.push(
|
|
94943
|
+
clickGroups.push(group2);
|
|
94532
94944
|
}
|
|
94533
94945
|
currentGroup = [];
|
|
94534
94946
|
currentGroupIsClick = isOnClick || isFirstAnimation;
|
|
@@ -94572,15 +94984,15 @@ function buildTimeline(nativeAnimations) {
|
|
|
94572
94984
|
}
|
|
94573
94985
|
}
|
|
94574
94986
|
if (currentGroup.length > 0) {
|
|
94575
|
-
const
|
|
94987
|
+
const group2 = finalizeClickGroup(currentGroup);
|
|
94576
94988
|
if (currentGroupAutoStart || !currentGroupIsClick && clickGroups.length > 0) {
|
|
94577
|
-
|
|
94989
|
+
group2.autoAdvance = true;
|
|
94578
94990
|
}
|
|
94579
|
-
clickGroups.push(
|
|
94991
|
+
clickGroups.push(group2);
|
|
94580
94992
|
}
|
|
94581
|
-
for (const
|
|
94582
|
-
if (
|
|
94583
|
-
|
|
94993
|
+
for (const group2 of clickGroups) {
|
|
94994
|
+
if (group2.autoAdvance) {
|
|
94995
|
+
group2.autoAdvanceDelayMs = 0;
|
|
94584
94996
|
}
|
|
94585
94997
|
}
|
|
94586
94998
|
const interactiveSequences = buildSequenceGroups(
|
|
@@ -94808,9 +95220,9 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
94808
95220
|
return null;
|
|
94809
95221
|
}
|
|
94810
95222
|
this.currentGroupIndex++;
|
|
94811
|
-
const
|
|
94812
|
-
this.applyGroupSteps(
|
|
94813
|
-
return
|
|
95223
|
+
const group2 = this.timeline.clickGroups[this.currentGroupIndex];
|
|
95224
|
+
this.applyGroupSteps(group2);
|
|
95225
|
+
return group2;
|
|
94814
95226
|
}
|
|
94815
95227
|
/**
|
|
94816
95228
|
* Peek at the next click-group without advancing.
|
|
@@ -94922,9 +95334,9 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
94922
95334
|
return null;
|
|
94923
95335
|
}
|
|
94924
95336
|
this.interactiveGroupIndexes.set(triggerShapeId, nextIdx);
|
|
94925
|
-
const
|
|
94926
|
-
this.applyGroupSteps(
|
|
94927
|
-
return
|
|
95337
|
+
const group2 = groups[nextIdx];
|
|
95338
|
+
this.applyGroupSteps(group2);
|
|
95339
|
+
return group2;
|
|
94928
95340
|
}
|
|
94929
95341
|
/**
|
|
94930
95342
|
* Advance the hover sequence for a given trigger shape.
|
|
@@ -94941,9 +95353,9 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
94941
95353
|
return null;
|
|
94942
95354
|
}
|
|
94943
95355
|
this.hoverGroupIndexes.set(triggerShapeId, nextIdx);
|
|
94944
|
-
const
|
|
94945
|
-
this.applyGroupSteps(
|
|
94946
|
-
return
|
|
95356
|
+
const group2 = groups[nextIdx];
|
|
95357
|
+
this.applyGroupSteps(group2);
|
|
95358
|
+
return group2;
|
|
94947
95359
|
}
|
|
94948
95360
|
/**
|
|
94949
95361
|
* Reset the hover sequence for a given trigger shape so it can replay
|
|
@@ -94965,8 +95377,8 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
94965
95377
|
*/
|
|
94966
95378
|
completeAll() {
|
|
94967
95379
|
this.reset();
|
|
94968
|
-
for (const
|
|
94969
|
-
for (const step of
|
|
95380
|
+
for (const group2 of this.timeline.clickGroups) {
|
|
95381
|
+
for (const step of group2.steps) {
|
|
94970
95382
|
if (step.build || step.colorTargets) {
|
|
94971
95383
|
this.activeSteps.set(step.elementId, step);
|
|
94972
95384
|
}
|
|
@@ -94995,8 +95407,8 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
94995
95407
|
/**
|
|
94996
95408
|
* Apply a group's steps to the internal tracking state.
|
|
94997
95409
|
*/
|
|
94998
|
-
applyGroupSteps(
|
|
94999
|
-
for (const step of
|
|
95410
|
+
applyGroupSteps(group2) {
|
|
95411
|
+
for (const step of group2.steps) {
|
|
95000
95412
|
this.activeAnimations.set(step.elementId, step.cssAnimation);
|
|
95001
95413
|
if (step.build || step.colorTargets) {
|
|
95002
95414
|
this.activeSteps.set(step.elementId, step);
|
|
@@ -95569,9 +95981,9 @@ var PresentationAnimationController = class _PresentationAnimationController {
|
|
|
95569
95981
|
* binding the group needs a requestAnimationFrame reveal loop; an empty result
|
|
95570
95982
|
* means ordinary discrete click-advance is enough.
|
|
95571
95983
|
*/
|
|
95572
|
-
static collectBuildStepIds(
|
|
95984
|
+
static collectBuildStepIds(group2) {
|
|
95573
95985
|
const ids = [];
|
|
95574
|
-
for (const step of
|
|
95986
|
+
for (const step of group2.steps) {
|
|
95575
95987
|
if (step.build) {
|
|
95576
95988
|
ids.push(step.elementId);
|
|
95577
95989
|
}
|
|
@@ -95638,8 +96050,8 @@ function findMediaElementByElementId(targetId, root) {
|
|
|
95638
96050
|
}
|
|
95639
96051
|
return void 0;
|
|
95640
96052
|
}
|
|
95641
|
-
function runMediaCommand(command,
|
|
95642
|
-
const el =
|
|
96053
|
+
function runMediaCommand(command, resolve2) {
|
|
96054
|
+
const el = resolve2(command.targetId);
|
|
95643
96055
|
if (!el) {
|
|
95644
96056
|
return false;
|
|
95645
96057
|
}
|
|
@@ -96442,10 +96854,10 @@ function collectSections(entry2, tableData, pos2) {
|
|
|
96442
96854
|
const isBottom = rowIndex === rowCount - 1;
|
|
96443
96855
|
const isLeft = cellIndex === 0;
|
|
96444
96856
|
const isRight = cellIndex === columnCount - 1;
|
|
96445
|
-
const
|
|
96857
|
+
const sections2 = [];
|
|
96446
96858
|
const push2 = (borders, regionTop, regionBottom, regionLeft, regionRight) => {
|
|
96447
96859
|
if (borders) {
|
|
96448
|
-
|
|
96860
|
+
sections2.push({ borders, regionTop, regionBottom, regionLeft, regionRight });
|
|
96449
96861
|
}
|
|
96450
96862
|
};
|
|
96451
96863
|
push2(entry2.wholeTblBorders, isTop, isBottom, isLeft, isRight);
|
|
@@ -96485,19 +96897,19 @@ function collectSections(entry2, tableData, pos2) {
|
|
|
96485
96897
|
if (tableData.lastCol && isRight) {
|
|
96486
96898
|
push2(entry2.lastColBorders, isTop, isBottom, true, true);
|
|
96487
96899
|
}
|
|
96488
|
-
return
|
|
96900
|
+
return sections2;
|
|
96489
96901
|
}
|
|
96490
|
-
function resolveStyleDiagonalBorders(entry2, tableData, pos2,
|
|
96902
|
+
function resolveStyleDiagonalBorders(entry2, tableData, pos2, resolve2) {
|
|
96491
96903
|
if (!entry2) {
|
|
96492
96904
|
return void 0;
|
|
96493
96905
|
}
|
|
96494
|
-
const
|
|
96495
|
-
if (
|
|
96906
|
+
const sections2 = collectSections(entry2, tableData, pos2);
|
|
96907
|
+
if (sections2.length === 0) {
|
|
96496
96908
|
return void 0;
|
|
96497
96909
|
}
|
|
96498
96910
|
let tl2br;
|
|
96499
96911
|
let bl2tr;
|
|
96500
|
-
for (const section of
|
|
96912
|
+
for (const section of sections2) {
|
|
96501
96913
|
if (section.borders.tl2br) {
|
|
96502
96914
|
tl2br = section.borders.tl2br;
|
|
96503
96915
|
}
|
|
@@ -96508,12 +96920,12 @@ function resolveStyleDiagonalBorders(entry2, tableData, pos2, resolve) {
|
|
|
96508
96920
|
const info = {};
|
|
96509
96921
|
let applied = false;
|
|
96510
96922
|
if (tl2br && !tl2br.noFill) {
|
|
96511
|
-
info.diagDownColor = tl2br.color ??
|
|
96923
|
+
info.diagDownColor = tl2br.color ?? resolve2(tl2br.fill) ?? "#000000";
|
|
96512
96924
|
info.diagDownWidth = tl2br.width ?? 1;
|
|
96513
96925
|
applied = true;
|
|
96514
96926
|
}
|
|
96515
96927
|
if (bl2tr && !bl2tr.noFill) {
|
|
96516
|
-
info.diagUpColor = bl2tr.color ??
|
|
96928
|
+
info.diagUpColor = bl2tr.color ?? resolve2(bl2tr.fill) ?? "#000000";
|
|
96517
96929
|
info.diagUpWidth = bl2tr.width ?? 1;
|
|
96518
96930
|
applied = true;
|
|
96519
96931
|
}
|
|
@@ -97920,7 +98332,7 @@ function groupElements(elements, ids, groupId) {
|
|
|
97920
98332
|
x: el.x - groupX,
|
|
97921
98333
|
y: el.y - groupY
|
|
97922
98334
|
}));
|
|
97923
|
-
const
|
|
98335
|
+
const group2 = {
|
|
97924
98336
|
type: "group",
|
|
97925
98337
|
id: groupId,
|
|
97926
98338
|
name: "Group",
|
|
@@ -97939,7 +98351,7 @@ function groupElements(elements, ids, groupId) {
|
|
|
97939
98351
|
}
|
|
97940
98352
|
const result = [
|
|
97941
98353
|
...remaining.slice(0, adjustedIndex),
|
|
97942
|
-
|
|
98354
|
+
group2,
|
|
97943
98355
|
...remaining.slice(adjustedIndex)
|
|
97944
98356
|
];
|
|
97945
98357
|
return { elements: result, groupId };
|
|
@@ -98171,38 +98583,38 @@ function resolveSlideId(slide, index) {
|
|
|
98171
98583
|
const cSld = rawXml?.["p:sld"];
|
|
98172
98584
|
return String(cSld?.["@_id"] || slide?.slideNumber || index + 1);
|
|
98173
98585
|
}
|
|
98174
|
-
function groupSlidesBySection(
|
|
98586
|
+
function groupSlidesBySection(sections2, slides) {
|
|
98175
98587
|
if (slides.length === 0) {
|
|
98176
98588
|
return [];
|
|
98177
98589
|
}
|
|
98178
|
-
if (
|
|
98590
|
+
if (sections2.length === 0) {
|
|
98179
98591
|
return [
|
|
98180
98592
|
{ section: void 0, slides: [...slides], slideIndexes: slides.map((_slide, i) => i) }
|
|
98181
98593
|
];
|
|
98182
98594
|
}
|
|
98183
|
-
const sectionById = new Map(
|
|
98595
|
+
const sectionById = new Map(sections2.map((section) => [section.id, section]));
|
|
98184
98596
|
const grouped = /* @__PURE__ */ new Map();
|
|
98185
98597
|
const ungrouped = {
|
|
98186
98598
|
section: void 0,
|
|
98187
98599
|
slides: [],
|
|
98188
98600
|
slideIndexes: []
|
|
98189
98601
|
};
|
|
98190
|
-
for (const section of
|
|
98602
|
+
for (const section of sections2) {
|
|
98191
98603
|
grouped.set(section.id, { section, slides: [], slideIndexes: [] });
|
|
98192
98604
|
}
|
|
98193
98605
|
slides.forEach((slide, index) => {
|
|
98194
|
-
const
|
|
98195
|
-
const target =
|
|
98606
|
+
const group2 = slide.sectionId ? grouped.get(slide.sectionId) : void 0;
|
|
98607
|
+
const target = group2 && sectionById.has(slide.sectionId ?? "") ? group2 : ungrouped;
|
|
98196
98608
|
target.slides.push(slide);
|
|
98197
98609
|
target.slideIndexes.push(index);
|
|
98198
98610
|
});
|
|
98199
|
-
const result =
|
|
98611
|
+
const result = sections2.map((section) => grouped.get(section.id)).filter((group2) => group2.slides.length > 0);
|
|
98200
98612
|
if (ungrouped.slides.length > 0) {
|
|
98201
98613
|
result.push(ungrouped);
|
|
98202
98614
|
}
|
|
98203
98615
|
return result;
|
|
98204
98616
|
}
|
|
98205
|
-
function addSection(
|
|
98617
|
+
function addSection(sections2, slides, name, afterSlideIndex, idGenerator = generateSectionId) {
|
|
98206
98618
|
const newId = idGenerator();
|
|
98207
98619
|
const slideAtIndex = slides[afterSlideIndex];
|
|
98208
98620
|
const currentSectionId = slideAtIndex?.sectionId;
|
|
@@ -98217,9 +98629,9 @@ function addSection(sections, slides, name, afterSlideIndex, idGenerator = gener
|
|
|
98217
98629
|
const nextSlides = slides.map(
|
|
98218
98630
|
(s, i) => claimedSlideIndexes.includes(i) ? { ...s, sectionId: newId, sectionName: name } : s
|
|
98219
98631
|
);
|
|
98220
|
-
const insertIndex = currentSectionId !== void 0 ?
|
|
98632
|
+
const insertIndex = currentSectionId !== void 0 ? sections2.findIndex((sec) => sec.id === currentSectionId) + 1 : sections2.length;
|
|
98221
98633
|
const newSectionSlideIds = claimedSlideIndexes.map((i) => resolveSlideId(slides[i], i));
|
|
98222
|
-
const updated =
|
|
98634
|
+
const updated = sections2.map(
|
|
98223
98635
|
(sec) => sec.id === currentSectionId ? { ...sec, slideIds: sec.slideIds.filter((sid) => !newSectionSlideIds.includes(sid)) } : sec
|
|
98224
98636
|
);
|
|
98225
98637
|
const newSection = { id: newId, name, slideIds: newSectionSlideIds };
|
|
@@ -98227,20 +98639,20 @@ function addSection(sections, slides, name, afterSlideIndex, idGenerator = gener
|
|
|
98227
98639
|
nextSections.splice(insertIndex, 0, newSection);
|
|
98228
98640
|
return { sections: nextSections, slides: nextSlides };
|
|
98229
98641
|
}
|
|
98230
|
-
function renameSection(
|
|
98642
|
+
function renameSection(sections2, slides, sectionId, newName) {
|
|
98231
98643
|
return {
|
|
98232
|
-
sections:
|
|
98644
|
+
sections: sections2.map((sec) => sec.id === sectionId ? { ...sec, name: newName } : sec),
|
|
98233
98645
|
slides: slides.map((s) => s.sectionId === sectionId ? { ...s, sectionName: newName } : s)
|
|
98234
98646
|
};
|
|
98235
98647
|
}
|
|
98236
|
-
function deleteSection(
|
|
98237
|
-
const idx =
|
|
98648
|
+
function deleteSection(sections2, slides, sectionId) {
|
|
98649
|
+
const idx = sections2.findIndex((sec) => sec.id === sectionId);
|
|
98238
98650
|
if (idx === -1) {
|
|
98239
|
-
return { sections, slides };
|
|
98651
|
+
return { sections: sections2, slides };
|
|
98240
98652
|
}
|
|
98241
|
-
const deletedSection =
|
|
98242
|
-
const prevSection = idx > 0 ?
|
|
98243
|
-
const filtered =
|
|
98653
|
+
const deletedSection = sections2[idx];
|
|
98654
|
+
const prevSection = idx > 0 ? sections2[idx - 1] : void 0;
|
|
98655
|
+
const filtered = sections2.filter((sec) => sec.id !== sectionId);
|
|
98244
98656
|
const nextSections = prevSection !== void 0 ? filtered.map(
|
|
98245
98657
|
(sec) => sec.id === prevSection.id ? { ...sec, slideIds: [...sec.slideIds, ...deletedSection.slideIds] } : sec
|
|
98246
98658
|
) : filtered;
|
|
@@ -98255,34 +98667,34 @@ function deleteSection(sections, slides, sectionId) {
|
|
|
98255
98667
|
});
|
|
98256
98668
|
return { sections: nextSections, slides: nextSlides };
|
|
98257
98669
|
}
|
|
98258
|
-
function moveSectionUp(
|
|
98259
|
-
const idx =
|
|
98670
|
+
function moveSectionUp(sections2, sectionId) {
|
|
98671
|
+
const idx = sections2.findIndex((sec) => sec.id === sectionId);
|
|
98260
98672
|
if (idx <= 0) {
|
|
98261
|
-
return
|
|
98673
|
+
return sections2;
|
|
98262
98674
|
}
|
|
98263
|
-
const next = [...
|
|
98675
|
+
const next = [...sections2];
|
|
98264
98676
|
[next[idx - 1], next[idx]] = [next[idx], next[idx - 1]];
|
|
98265
98677
|
return next;
|
|
98266
98678
|
}
|
|
98267
|
-
function moveSectionDown(
|
|
98268
|
-
const idx =
|
|
98269
|
-
if (idx === -1 || idx >=
|
|
98270
|
-
return
|
|
98679
|
+
function moveSectionDown(sections2, sectionId) {
|
|
98680
|
+
const idx = sections2.findIndex((sec) => sec.id === sectionId);
|
|
98681
|
+
if (idx === -1 || idx >= sections2.length - 1) {
|
|
98682
|
+
return sections2;
|
|
98271
98683
|
}
|
|
98272
|
-
const next = [...
|
|
98684
|
+
const next = [...sections2];
|
|
98273
98685
|
[next[idx], next[idx + 1]] = [next[idx + 1], next[idx]];
|
|
98274
98686
|
return next;
|
|
98275
98687
|
}
|
|
98276
|
-
function moveSlidesToSection(
|
|
98277
|
-
const targetSection =
|
|
98688
|
+
function moveSlidesToSection(sections2, slides, slideIndexes, targetSectionId) {
|
|
98689
|
+
const targetSection = sections2.find((sec) => sec.id === targetSectionId);
|
|
98278
98690
|
if (!targetSection) {
|
|
98279
|
-
return { sections, slides };
|
|
98691
|
+
return { sections: sections2, slides };
|
|
98280
98692
|
}
|
|
98281
98693
|
const nextSlides = slides.map(
|
|
98282
98694
|
(s, i) => slideIndexes.includes(i) ? { ...s, sectionId: targetSectionId, sectionName: targetSection.name } : s
|
|
98283
98695
|
);
|
|
98284
98696
|
const movedSlideIds = slideIndexes.map((i) => resolveSlideId(slides[i], i));
|
|
98285
|
-
const nextSections =
|
|
98697
|
+
const nextSections = sections2.map((sec) => {
|
|
98286
98698
|
if (sec.id === targetSectionId) {
|
|
98287
98699
|
return {
|
|
98288
98700
|
...sec,
|
|
@@ -98857,7 +99269,7 @@ function buildTextBlockStyle(element, options = {}) {
|
|
|
98857
99269
|
style.unicodeBidi = "plaintext";
|
|
98858
99270
|
}
|
|
98859
99271
|
style.fontSize = ts?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
98860
|
-
style.fontFamily = ts?.fontFamily
|
|
99272
|
+
style.fontFamily = ts?.fontFamily ? getSubstituteFontFamily(ts.fontFamily, parsePanoseString(ts.latinFontPanose)) : DEFAULT_FONT_FAMILY;
|
|
98861
99273
|
style.fontWeight = ts?.bold ? 700 : 400;
|
|
98862
99274
|
style.fontStyle = ts?.italic ? "italic" : "normal";
|
|
98863
99275
|
style.textDecorationLine = decorations.length > 0 ? decorations.join(" ") : "none";
|
|
@@ -99911,8 +100323,8 @@ function toAbsolute(child22, offsetX, offsetY) {
|
|
|
99911
100323
|
function sameBox(a, b) {
|
|
99912
100324
|
return Math.abs(a.x - b.x) <= 0.5 && Math.abs(a.y - b.y) <= 0.5 && Math.abs(a.width - b.width) <= 0.5 && Math.abs(a.height - b.height) <= 0.5;
|
|
99913
100325
|
}
|
|
99914
|
-
function correspondingGroup(
|
|
99915
|
-
const morphName = getElementMorphName(
|
|
100326
|
+
function correspondingGroup(group2, candidates) {
|
|
100327
|
+
const morphName = getElementMorphName(group2);
|
|
99916
100328
|
return candidates.find((candidate) => {
|
|
99917
100329
|
if (candidate.type !== "group") {
|
|
99918
100330
|
return false;
|
|
@@ -99920,10 +100332,10 @@ function correspondingGroup(group, candidates) {
|
|
|
99920
100332
|
if (morphName !== void 0 && getElementMorphName(candidate) === morphName) {
|
|
99921
100333
|
return true;
|
|
99922
100334
|
}
|
|
99923
|
-
if (
|
|
100335
|
+
if (group2.name && candidate.name === group2.name) {
|
|
99924
100336
|
return true;
|
|
99925
100337
|
}
|
|
99926
|
-
return sameBox(
|
|
100338
|
+
return sameBox(group2, candidate);
|
|
99927
100339
|
});
|
|
99928
100340
|
}
|
|
99929
100341
|
function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
|
|
@@ -106315,8 +106727,8 @@ async function loadOrbitControlsCtor() {
|
|
|
106315
106727
|
}
|
|
106316
106728
|
}
|
|
106317
106729
|
function loadGltf(loader, url) {
|
|
106318
|
-
return new Promise((
|
|
106319
|
-
loader.load(url,
|
|
106730
|
+
return new Promise((resolve2, reject) => {
|
|
106731
|
+
loader.load(url, resolve2, void 0, reject);
|
|
106320
106732
|
});
|
|
106321
106733
|
}
|
|
106322
106734
|
function centerAndFit(three, root) {
|
|
@@ -106783,9 +107195,9 @@ function isExportAbortError(err) {
|
|
|
106783
107195
|
}
|
|
106784
107196
|
var PPTX_OPEN_ACCEPT = ".pptx,.ppsx,.pptm,.potx";
|
|
106785
107197
|
function openFilePicker(options = {}) {
|
|
106786
|
-
return new Promise((
|
|
107198
|
+
return new Promise((resolve2) => {
|
|
106787
107199
|
if (typeof document === "undefined") {
|
|
106788
|
-
|
|
107200
|
+
resolve2(null);
|
|
106789
107201
|
return;
|
|
106790
107202
|
}
|
|
106791
107203
|
const input = document.createElement("input");
|
|
@@ -106801,7 +107213,7 @@ function openFilePicker(options = {}) {
|
|
|
106801
107213
|
}
|
|
106802
107214
|
settled = true;
|
|
106803
107215
|
input.remove();
|
|
106804
|
-
|
|
107216
|
+
resolve2(file);
|
|
106805
107217
|
};
|
|
106806
107218
|
input.addEventListener("change", () => finish(input.files?.[0] ?? null));
|
|
106807
107219
|
input.addEventListener("cancel", () => finish(null));
|
|
@@ -107368,7 +107780,7 @@ async function swapPresentationWindows(presenter, audience) {
|
|
|
107368
107780
|
}
|
|
107369
107781
|
}
|
|
107370
107782
|
function openDeckDb() {
|
|
107371
|
-
return new Promise((
|
|
107783
|
+
return new Promise((resolve2, reject) => {
|
|
107372
107784
|
const request = indexedDB.open(DB_NAME, DB_VERSION);
|
|
107373
107785
|
request.onupgradeneeded = () => {
|
|
107374
107786
|
const db = request.result;
|
|
@@ -107376,13 +107788,13 @@ function openDeckDb() {
|
|
|
107376
107788
|
db.createObjectStore(STORE_NAME);
|
|
107377
107789
|
}
|
|
107378
107790
|
};
|
|
107379
|
-
request.onsuccess = () =>
|
|
107791
|
+
request.onsuccess = () => resolve2(request.result);
|
|
107380
107792
|
request.onerror = () => reject(request.error);
|
|
107381
107793
|
});
|
|
107382
107794
|
}
|
|
107383
107795
|
async function storePresentationDeck(sessionId, content) {
|
|
107384
107796
|
const db = await openDeckDb();
|
|
107385
|
-
return new Promise((
|
|
107797
|
+
return new Promise((resolve2, reject) => {
|
|
107386
107798
|
const tx = db.transaction(STORE_NAME, "readwrite");
|
|
107387
107799
|
const bytes = content instanceof Uint8Array ? content : new Uint8Array(content);
|
|
107388
107800
|
tx.objectStore(STORE_NAME).put(
|
|
@@ -107391,7 +107803,7 @@ async function storePresentationDeck(sessionId, content) {
|
|
|
107391
107803
|
);
|
|
107392
107804
|
tx.oncomplete = () => {
|
|
107393
107805
|
db.close();
|
|
107394
|
-
|
|
107806
|
+
resolve2();
|
|
107395
107807
|
};
|
|
107396
107808
|
tx.onerror = () => {
|
|
107397
107809
|
db.close();
|
|
@@ -107402,17 +107814,17 @@ async function storePresentationDeck(sessionId, content) {
|
|
|
107402
107814
|
async function loadPresentationDeck(sessionId) {
|
|
107403
107815
|
try {
|
|
107404
107816
|
const db = await openDeckDb();
|
|
107405
|
-
return await new Promise((
|
|
107817
|
+
return await new Promise((resolve2, reject) => {
|
|
107406
107818
|
const request = db.transaction(STORE_NAME, "readonly").objectStore(STORE_NAME).get(sessionId);
|
|
107407
107819
|
request.onsuccess = () => {
|
|
107408
107820
|
db.close();
|
|
107409
107821
|
const record = request.result;
|
|
107410
107822
|
if (!record || Date.now() - record.createdAt > MAX_DECK_AGE_MS) {
|
|
107411
|
-
|
|
107823
|
+
resolve2(null);
|
|
107412
107824
|
return;
|
|
107413
107825
|
}
|
|
107414
107826
|
const raw = record.bytes;
|
|
107415
|
-
|
|
107827
|
+
resolve2(
|
|
107416
107828
|
raw instanceof Uint8Array ? raw : raw instanceof ArrayBuffer ? new Uint8Array(raw) : null
|
|
107417
107829
|
);
|
|
107418
107830
|
};
|
|
@@ -107428,16 +107840,16 @@ async function loadPresentationDeck(sessionId) {
|
|
|
107428
107840
|
async function clearPresentationDeck(sessionId) {
|
|
107429
107841
|
try {
|
|
107430
107842
|
const db = await openDeckDb();
|
|
107431
|
-
await new Promise((
|
|
107843
|
+
await new Promise((resolve2) => {
|
|
107432
107844
|
const tx = db.transaction(STORE_NAME, "readwrite");
|
|
107433
107845
|
tx.objectStore(STORE_NAME).delete(sessionId);
|
|
107434
107846
|
tx.oncomplete = () => {
|
|
107435
107847
|
db.close();
|
|
107436
|
-
|
|
107848
|
+
resolve2();
|
|
107437
107849
|
};
|
|
107438
107850
|
tx.onerror = () => {
|
|
107439
107851
|
db.close();
|
|
107440
|
-
|
|
107852
|
+
resolve2();
|
|
107441
107853
|
};
|
|
107442
107854
|
});
|
|
107443
107855
|
} catch {
|
|
@@ -107449,7 +107861,7 @@ var STORE_NAME2 = "content";
|
|
|
107449
107861
|
var CONTENT_KEY = "pptx-bytes";
|
|
107450
107862
|
var MAX_CONTENT_AGE_MS = 5 * 60 * 1e3;
|
|
107451
107863
|
function openDb() {
|
|
107452
|
-
return new Promise((
|
|
107864
|
+
return new Promise((resolve2, reject) => {
|
|
107453
107865
|
const request = indexedDB.open(DB_NAME2, DB_VERSION2);
|
|
107454
107866
|
request.onupgradeneeded = () => {
|
|
107455
107867
|
const db = request.result;
|
|
@@ -107457,7 +107869,7 @@ function openDb() {
|
|
|
107457
107869
|
db.createObjectStore(STORE_NAME2);
|
|
107458
107870
|
}
|
|
107459
107871
|
};
|
|
107460
|
-
request.onsuccess = () =>
|
|
107872
|
+
request.onsuccess = () => resolve2(request.result);
|
|
107461
107873
|
request.onerror = () => reject(request.error);
|
|
107462
107874
|
});
|
|
107463
107875
|
}
|
|
@@ -107466,7 +107878,7 @@ async function storeAudienceContent(content, sessionId) {
|
|
|
107466
107878
|
return storePresentationDeck(sessionId, content);
|
|
107467
107879
|
}
|
|
107468
107880
|
const db = await openDb();
|
|
107469
|
-
return new Promise((
|
|
107881
|
+
return new Promise((resolve2, reject) => {
|
|
107470
107882
|
const tx = db.transaction(STORE_NAME2, "readwrite");
|
|
107471
107883
|
const store = tx.objectStore(STORE_NAME2);
|
|
107472
107884
|
const bytes = content instanceof Uint8Array ? content : new Uint8Array(content);
|
|
@@ -107474,7 +107886,7 @@ async function storeAudienceContent(content, sessionId) {
|
|
|
107474
107886
|
store.put(record, CONTENT_KEY);
|
|
107475
107887
|
tx.oncomplete = () => {
|
|
107476
107888
|
db.close();
|
|
107477
|
-
|
|
107889
|
+
resolve2();
|
|
107478
107890
|
};
|
|
107479
107891
|
tx.onerror = () => {
|
|
107480
107892
|
db.close();
|
|
@@ -107488,7 +107900,7 @@ async function loadAudienceContent(sessionId) {
|
|
|
107488
107900
|
}
|
|
107489
107901
|
try {
|
|
107490
107902
|
const db = await openDb();
|
|
107491
|
-
return new Promise((
|
|
107903
|
+
return new Promise((resolve2, reject) => {
|
|
107492
107904
|
const tx = db.transaction(STORE_NAME2, "readonly");
|
|
107493
107905
|
const store = tx.objectStore(STORE_NAME2);
|
|
107494
107906
|
const request = store.get(CONTENT_KEY);
|
|
@@ -107499,20 +107911,20 @@ async function loadAudienceContent(sessionId) {
|
|
|
107499
107911
|
const record = result;
|
|
107500
107912
|
const age = Date.now() - record.createdAt;
|
|
107501
107913
|
if (age > MAX_CONTENT_AGE_MS) {
|
|
107502
|
-
|
|
107914
|
+
resolve2(null);
|
|
107503
107915
|
return;
|
|
107504
107916
|
}
|
|
107505
107917
|
const raw = record.bytes;
|
|
107506
107918
|
if (raw instanceof Uint8Array) {
|
|
107507
|
-
|
|
107919
|
+
resolve2(raw);
|
|
107508
107920
|
} else if (raw instanceof ArrayBuffer) {
|
|
107509
|
-
|
|
107921
|
+
resolve2(new Uint8Array(raw));
|
|
107510
107922
|
} else {
|
|
107511
|
-
|
|
107923
|
+
resolve2(null);
|
|
107512
107924
|
}
|
|
107513
107925
|
return;
|
|
107514
107926
|
}
|
|
107515
|
-
|
|
107927
|
+
resolve2(null);
|
|
107516
107928
|
};
|
|
107517
107929
|
request.onerror = () => {
|
|
107518
107930
|
db.close();
|
|
@@ -107529,17 +107941,17 @@ async function clearAudienceContent(sessionId) {
|
|
|
107529
107941
|
}
|
|
107530
107942
|
try {
|
|
107531
107943
|
const db = await openDb();
|
|
107532
|
-
return new Promise((
|
|
107944
|
+
return new Promise((resolve2) => {
|
|
107533
107945
|
const tx = db.transaction(STORE_NAME2, "readwrite");
|
|
107534
107946
|
const store = tx.objectStore(STORE_NAME2);
|
|
107535
107947
|
store.delete(CONTENT_KEY);
|
|
107536
107948
|
tx.oncomplete = () => {
|
|
107537
107949
|
db.close();
|
|
107538
|
-
|
|
107950
|
+
resolve2();
|
|
107539
107951
|
};
|
|
107540
107952
|
tx.onerror = () => {
|
|
107541
107953
|
db.close();
|
|
107542
|
-
|
|
107954
|
+
resolve2();
|
|
107543
107955
|
};
|
|
107544
107956
|
});
|
|
107545
107957
|
} catch {
|
|
@@ -108094,19 +108506,19 @@ function groupElementParagraphs(element) {
|
|
|
108094
108506
|
}
|
|
108095
108507
|
return groups;
|
|
108096
108508
|
}
|
|
108097
|
-
function paragraphGroupText(
|
|
108098
|
-
return
|
|
108509
|
+
function paragraphGroupText(group2) {
|
|
108510
|
+
return group2.content.map((segment) => segment.isLineBreak ? " " : segment.text).join("");
|
|
108099
108511
|
}
|
|
108100
|
-
function paragraphGroupLevel(
|
|
108101
|
-
const first =
|
|
108512
|
+
function paragraphGroupLevel(group2) {
|
|
108513
|
+
const first = group2.marker ?? group2.content[0];
|
|
108102
108514
|
const level = first?.paragraphLevel;
|
|
108103
108515
|
return typeof level === "number" && level > 0 ? Math.min(level, MAX_PARAGRAPH_LEVEL) : 0;
|
|
108104
108516
|
}
|
|
108105
108517
|
function readElementParagraphs(element) {
|
|
108106
108518
|
const groups = groupElementParagraphs(element);
|
|
108107
|
-
const paragraphs = groups.map((
|
|
108108
|
-
text: paragraphGroupText(
|
|
108109
|
-
level: paragraphGroupLevel(
|
|
108519
|
+
const paragraphs = groups.map((group2) => ({
|
|
108520
|
+
text: paragraphGroupText(group2),
|
|
108521
|
+
level: paragraphGroupLevel(group2)
|
|
108110
108522
|
}));
|
|
108111
108523
|
let last = paragraphs.length - 1;
|
|
108112
108524
|
while (last >= 0 && paragraphs[last].text.length === 0) {
|
|
@@ -108221,11 +108633,11 @@ function withLevel(segments, level) {
|
|
|
108221
108633
|
return next;
|
|
108222
108634
|
});
|
|
108223
108635
|
}
|
|
108224
|
-
function rebuildParagraph(
|
|
108225
|
-
if (
|
|
108226
|
-
return [...
|
|
108636
|
+
function rebuildParagraph(group2, donor, text2, elementStyle) {
|
|
108637
|
+
if (group2 && paragraphGroupText(group2) === text2) {
|
|
108638
|
+
return [...group2.marker ? [group2.marker] : [], ...group2.content];
|
|
108227
108639
|
}
|
|
108228
|
-
const source =
|
|
108640
|
+
const source = group2 ?? donor;
|
|
108229
108641
|
const marker = source?.marker ? [source.marker] : [];
|
|
108230
108642
|
const content = remapTextToSegments(text2, source?.content, elementStyle);
|
|
108231
108643
|
return [...marker, ...content];
|
|
@@ -109008,7 +109420,7 @@ function replacePixels(data, fromColor, toColor, threshold, toTransparent) {
|
|
|
109008
109420
|
}
|
|
109009
109421
|
var DEFAULT_COLOR_CHANGE_TOLERANCE = 12;
|
|
109010
109422
|
function applyColorChange(imageDataUrl, fromHex, toHex22, tolerancePct = DEFAULT_COLOR_CHANGE_TOLERANCE, toTransparent = false) {
|
|
109011
|
-
return new Promise((
|
|
109423
|
+
return new Promise((resolve2, reject) => {
|
|
109012
109424
|
const fromColor = parseHexToRgb(fromHex);
|
|
109013
109425
|
const toColor = parseHexToRgb(toHex22);
|
|
109014
109426
|
if (!fromColor || !toColor) {
|
|
@@ -109036,7 +109448,7 @@ function applyColorChange(imageDataUrl, fromHex, toHex22, tolerancePct = DEFAULT
|
|
|
109036
109448
|
const threshold = toleranceToThreshold(tolerancePct);
|
|
109037
109449
|
replacePixels(imageData.data, fromColor, toColor, threshold, toTransparent);
|
|
109038
109450
|
ctx.putImageData(imageData, 0, 0);
|
|
109039
|
-
|
|
109451
|
+
resolve2({
|
|
109040
109452
|
dataUrl: canvas.toDataURL("image/png"),
|
|
109041
109453
|
width: w,
|
|
109042
109454
|
height: h
|
|
@@ -109087,7 +109499,7 @@ function mapDuotonePixels(data, shadow, highlight) {
|
|
|
109087
109499
|
}
|
|
109088
109500
|
}
|
|
109089
109501
|
function applyDuotone(imageDataUrl, shadowHex, highlightHex) {
|
|
109090
|
-
return new Promise((
|
|
109502
|
+
return new Promise((resolve2, reject) => {
|
|
109091
109503
|
const shadow = parseHexToRgb(shadowHex);
|
|
109092
109504
|
const highlight = parseHexToRgb(highlightHex);
|
|
109093
109505
|
if (!shadow || !highlight) {
|
|
@@ -109114,7 +109526,7 @@ function applyDuotone(imageDataUrl, shadowHex, highlightHex) {
|
|
|
109114
109526
|
const imageData = ctx.getImageData(0, 0, w, h);
|
|
109115
109527
|
mapDuotonePixels(imageData.data, shadow, highlight);
|
|
109116
109528
|
ctx.putImageData(imageData, 0, 0);
|
|
109117
|
-
|
|
109529
|
+
resolve2({
|
|
109118
109530
|
dataUrl: canvas.toDataURL("image/png"),
|
|
109119
109531
|
width: w,
|
|
109120
109532
|
height: h
|
|
@@ -111203,7 +111615,7 @@ var AUTOSAVE_DB_NAME = "pptx-viewer-autosave";
|
|
|
111203
111615
|
var AUTOSAVE_DB_VERSION = 1;
|
|
111204
111616
|
var AUTOSAVE_STORE_NAME = "recoveryVersions";
|
|
111205
111617
|
function openAutosaveDb() {
|
|
111206
|
-
return new Promise((
|
|
111618
|
+
return new Promise((resolve2, reject) => {
|
|
111207
111619
|
const req = indexedDB.open(AUTOSAVE_DB_NAME, AUTOSAVE_DB_VERSION);
|
|
111208
111620
|
req.onupgradeneeded = () => {
|
|
111209
111621
|
const db = req.result;
|
|
@@ -111211,13 +111623,13 @@ function openAutosaveDb() {
|
|
|
111211
111623
|
db.createObjectStore(AUTOSAVE_STORE_NAME, { keyPath: "key" });
|
|
111212
111624
|
}
|
|
111213
111625
|
};
|
|
111214
|
-
req.onsuccess = () =>
|
|
111626
|
+
req.onsuccess = () => resolve2(req.result);
|
|
111215
111627
|
req.onerror = () => reject(req.error);
|
|
111216
111628
|
});
|
|
111217
111629
|
}
|
|
111218
111630
|
async function deleteOldestAutosaveEntry() {
|
|
111219
111631
|
const db = await openAutosaveDb();
|
|
111220
|
-
return new Promise((
|
|
111632
|
+
return new Promise((resolve2) => {
|
|
111221
111633
|
try {
|
|
111222
111634
|
const tx = db.transaction(AUTOSAVE_STORE_NAME, "readwrite");
|
|
111223
111635
|
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
@@ -111239,24 +111651,24 @@ async function deleteOldestAutosaveEntry() {
|
|
|
111239
111651
|
};
|
|
111240
111652
|
tx.oncomplete = () => {
|
|
111241
111653
|
db.close();
|
|
111242
|
-
|
|
111654
|
+
resolve2(oldestKey !== null);
|
|
111243
111655
|
};
|
|
111244
111656
|
tx.onerror = () => {
|
|
111245
111657
|
db.close();
|
|
111246
|
-
|
|
111658
|
+
resolve2(false);
|
|
111247
111659
|
};
|
|
111248
111660
|
} catch {
|
|
111249
111661
|
try {
|
|
111250
111662
|
db.close();
|
|
111251
111663
|
} catch {
|
|
111252
111664
|
}
|
|
111253
|
-
|
|
111665
|
+
resolve2(false);
|
|
111254
111666
|
}
|
|
111255
111667
|
});
|
|
111256
111668
|
}
|
|
111257
111669
|
function putAutosaveRecord(filePath, data) {
|
|
111258
111670
|
return openAutosaveDb().then(
|
|
111259
|
-
(db) => new Promise((
|
|
111671
|
+
(db) => new Promise((resolve2, reject) => {
|
|
111260
111672
|
const tx = db.transaction(AUTOSAVE_STORE_NAME, "readwrite");
|
|
111261
111673
|
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
111262
111674
|
store.put({
|
|
@@ -111267,7 +111679,7 @@ function putAutosaveRecord(filePath, data) {
|
|
|
111267
111679
|
});
|
|
111268
111680
|
tx.oncomplete = () => {
|
|
111269
111681
|
db.close();
|
|
111270
|
-
|
|
111682
|
+
resolve2(true);
|
|
111271
111683
|
};
|
|
111272
111684
|
tx.onerror = () => {
|
|
111273
111685
|
db.close();
|
|
@@ -111278,23 +111690,23 @@ function putAutosaveRecord(filePath, data) {
|
|
|
111278
111690
|
}
|
|
111279
111691
|
async function getAutosaveSnapshot(filePath) {
|
|
111280
111692
|
const db = await openAutosaveDb();
|
|
111281
|
-
return new Promise((
|
|
111693
|
+
return new Promise((resolve2) => {
|
|
111282
111694
|
const tx = db.transaction(AUTOSAVE_STORE_NAME, "readonly");
|
|
111283
111695
|
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
111284
111696
|
const req = store.get(filePath);
|
|
111285
111697
|
req.onsuccess = () => {
|
|
111286
111698
|
db.close();
|
|
111287
|
-
|
|
111699
|
+
resolve2(req.result);
|
|
111288
111700
|
};
|
|
111289
111701
|
req.onerror = () => {
|
|
111290
111702
|
db.close();
|
|
111291
|
-
|
|
111703
|
+
resolve2(void 0);
|
|
111292
111704
|
};
|
|
111293
111705
|
});
|
|
111294
111706
|
}
|
|
111295
111707
|
async function listAutosaveSnapshots() {
|
|
111296
111708
|
const db = await openAutosaveDb();
|
|
111297
|
-
return new Promise((
|
|
111709
|
+
return new Promise((resolve2) => {
|
|
111298
111710
|
const results = [];
|
|
111299
111711
|
try {
|
|
111300
111712
|
const tx = db.transaction(AUTOSAVE_STORE_NAME, "readonly");
|
|
@@ -111310,42 +111722,42 @@ async function listAutosaveSnapshots() {
|
|
|
111310
111722
|
};
|
|
111311
111723
|
tx.oncomplete = () => {
|
|
111312
111724
|
db.close();
|
|
111313
|
-
|
|
111725
|
+
resolve2(results);
|
|
111314
111726
|
};
|
|
111315
111727
|
tx.onerror = () => {
|
|
111316
111728
|
db.close();
|
|
111317
|
-
|
|
111729
|
+
resolve2([]);
|
|
111318
111730
|
};
|
|
111319
111731
|
} catch {
|
|
111320
111732
|
try {
|
|
111321
111733
|
db.close();
|
|
111322
111734
|
} catch {
|
|
111323
111735
|
}
|
|
111324
|
-
|
|
111736
|
+
resolve2([]);
|
|
111325
111737
|
}
|
|
111326
111738
|
});
|
|
111327
111739
|
}
|
|
111328
111740
|
async function deleteAutosaveSnapshot(filePath) {
|
|
111329
111741
|
const db = await openAutosaveDb();
|
|
111330
|
-
return new Promise((
|
|
111742
|
+
return new Promise((resolve2) => {
|
|
111331
111743
|
try {
|
|
111332
111744
|
const tx = db.transaction(AUTOSAVE_STORE_NAME, "readwrite");
|
|
111333
111745
|
const store = tx.objectStore(AUTOSAVE_STORE_NAME);
|
|
111334
111746
|
store.delete(filePath);
|
|
111335
111747
|
tx.oncomplete = () => {
|
|
111336
111748
|
db.close();
|
|
111337
|
-
|
|
111749
|
+
resolve2(true);
|
|
111338
111750
|
};
|
|
111339
111751
|
tx.onerror = () => {
|
|
111340
111752
|
db.close();
|
|
111341
|
-
|
|
111753
|
+
resolve2(false);
|
|
111342
111754
|
};
|
|
111343
111755
|
} catch {
|
|
111344
111756
|
try {
|
|
111345
111757
|
db.close();
|
|
111346
111758
|
} catch {
|
|
111347
111759
|
}
|
|
111348
|
-
|
|
111760
|
+
resolve2(false);
|
|
111349
111761
|
}
|
|
111350
111762
|
});
|
|
111351
111763
|
}
|
|
@@ -112178,17 +112590,17 @@ function shouldConfirmExternalHyperlink(options, href) {
|
|
|
112178
112590
|
}
|
|
112179
112591
|
return /^https?:/i.test(href);
|
|
112180
112592
|
}
|
|
112181
|
-
function toggle(
|
|
112182
|
-
return { kind: "toggle", group, key, labelKey, ...extra };
|
|
112593
|
+
function toggle(group2, key, labelKey, extra) {
|
|
112594
|
+
return { kind: "toggle", group: group2, key, labelKey, ...extra };
|
|
112183
112595
|
}
|
|
112184
|
-
function select(
|
|
112185
|
-
return { kind: "select", group, key, labelKey, choices: choiceList };
|
|
112596
|
+
function select(group2, key, labelKey, choiceList) {
|
|
112597
|
+
return { kind: "select", group: group2, key, labelKey, choices: choiceList };
|
|
112186
112598
|
}
|
|
112187
|
-
function numberControl(
|
|
112188
|
-
return { kind: "number", group, key, labelKey, min, max, unitKey };
|
|
112599
|
+
function numberControl(group2, key, labelKey, min, max, unitKey) {
|
|
112600
|
+
return { kind: "number", group: group2, key, labelKey, min, max, unitKey };
|
|
112189
112601
|
}
|
|
112190
|
-
function textControl(
|
|
112191
|
-
return { kind: "text", group, key, labelKey, maxLength: 64 };
|
|
112602
|
+
function textControl(group2, key, labelKey) {
|
|
112603
|
+
return { kind: "text", group: group2, key, labelKey, maxLength: 64 };
|
|
112192
112604
|
}
|
|
112193
112605
|
function choices(prefix, values) {
|
|
112194
112606
|
return values.map((value) => ({ value, labelKey: `${prefix}.${value}` }));
|
|
@@ -112670,17 +113082,17 @@ function createViewerOptionsStore(init) {
|
|
|
112670
113082
|
return {
|
|
112671
113083
|
getOptions: () => options,
|
|
112672
113084
|
setOptions: (next) => commit(cloneOptions(next)),
|
|
112673
|
-
setValue: (
|
|
112674
|
-
const defaults = DEFAULT_VIEWER_OPTIONS[
|
|
113085
|
+
setValue: (group2, key, value) => {
|
|
113086
|
+
const defaults = DEFAULT_VIEWER_OPTIONS[group2];
|
|
112675
113087
|
if (!(key in defaults) || typeof defaults[key] !== typeof value) {
|
|
112676
113088
|
return;
|
|
112677
113089
|
}
|
|
112678
113090
|
const next = cloneOptions(options);
|
|
112679
|
-
next[
|
|
113091
|
+
next[group2][key] = value;
|
|
112680
113092
|
commit(next);
|
|
112681
113093
|
},
|
|
112682
|
-
getValue: (
|
|
112683
|
-
const record = options[
|
|
113094
|
+
getValue: (group2, key) => {
|
|
113095
|
+
const record = options[group2];
|
|
112684
113096
|
const value = record[key];
|
|
112685
113097
|
return typeof value === "boolean" || typeof value === "number" || typeof value === "string" ? value : void 0;
|
|
112686
113098
|
},
|
|
@@ -112702,14 +113114,14 @@ function createViewerOptionsStore(init) {
|
|
|
112702
113114
|
next.quickAccess.commandIds = [...commandIds];
|
|
112703
113115
|
commit(next);
|
|
112704
113116
|
},
|
|
112705
|
-
reset: (
|
|
112706
|
-
if (!
|
|
113117
|
+
reset: (group2) => {
|
|
113118
|
+
if (!group2) {
|
|
112707
113119
|
commit(cloneOptions(DEFAULT_VIEWER_OPTIONS));
|
|
112708
113120
|
return;
|
|
112709
113121
|
}
|
|
112710
113122
|
const next = cloneOptions(options);
|
|
112711
113123
|
const defaults = cloneOptions(DEFAULT_VIEWER_OPTIONS);
|
|
112712
|
-
next[
|
|
113124
|
+
next[group2] = defaults[group2];
|
|
112713
113125
|
commit(next);
|
|
112714
113126
|
},
|
|
112715
113127
|
subscribe: (listener) => {
|
|
@@ -113659,7 +114071,7 @@ var VAR_DEPENDENT_PROPERTIES = [
|
|
|
113659
114071
|
function resolveCustomProperties(root) {
|
|
113660
114072
|
const elements = root.querySelectorAll("*");
|
|
113661
114073
|
const view = root.ownerDocument?.defaultView ?? window;
|
|
113662
|
-
const
|
|
114074
|
+
const resolve2 = (el) => {
|
|
113663
114075
|
const htmlEl = el;
|
|
113664
114076
|
if (!htmlEl.style) {
|
|
113665
114077
|
return;
|
|
@@ -113675,8 +114087,8 @@ function resolveCustomProperties(root) {
|
|
|
113675
114087
|
}
|
|
113676
114088
|
}
|
|
113677
114089
|
};
|
|
113678
|
-
|
|
113679
|
-
elements.forEach(
|
|
114090
|
+
resolve2(root);
|
|
114091
|
+
elements.forEach(resolve2);
|
|
113680
114092
|
}
|
|
113681
114093
|
function preprocessCssForCapture(root, options = {}) {
|
|
113682
114094
|
const {
|
|
@@ -113714,9 +114126,9 @@ async function blobUrlToDataUrl(blobUrl) {
|
|
|
113714
114126
|
try {
|
|
113715
114127
|
const response = await fetch(blobUrl);
|
|
113716
114128
|
const blob = await response.blob();
|
|
113717
|
-
return await new Promise((
|
|
114129
|
+
return await new Promise((resolve2, reject) => {
|
|
113718
114130
|
const reader = new FileReader();
|
|
113719
|
-
reader.onloadend = () =>
|
|
114131
|
+
reader.onloadend = () => resolve2(reader.result);
|
|
113720
114132
|
reader.onerror = reject;
|
|
113721
114133
|
reader.readAsDataURL(blob);
|
|
113722
114134
|
});
|
|
@@ -113835,7 +114247,7 @@ var COMPLEX_COLOR_PROPERTIES = [
|
|
|
113835
114247
|
];
|
|
113836
114248
|
function resolveUnsupportedColours(root) {
|
|
113837
114249
|
const elements = root.querySelectorAll("*");
|
|
113838
|
-
const
|
|
114250
|
+
const resolve2 = (el) => {
|
|
113839
114251
|
const htmlEl = el;
|
|
113840
114252
|
if (!htmlEl.style) {
|
|
113841
114253
|
return;
|
|
@@ -113865,8 +114277,8 @@ function resolveUnsupportedColours(root) {
|
|
|
113865
114277
|
}
|
|
113866
114278
|
}
|
|
113867
114279
|
};
|
|
113868
|
-
|
|
113869
|
-
elements.forEach(
|
|
114280
|
+
resolve2(root);
|
|
114281
|
+
elements.forEach(resolve2);
|
|
113870
114282
|
}
|
|
113871
114283
|
function resolveRootCustomProperties(doc) {
|
|
113872
114284
|
const targets = [doc.documentElement, doc.body];
|
|
@@ -114382,4 +114794,4 @@ function segmentFrameCount(durationMs, fps) {
|
|
|
114382
114794
|
* `<p:extLst>` (optional)
|
|
114383
114795
|
*/
|
|
114384
114796
|
|
|
114385
|
-
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, 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, 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 };
|
|
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 };
|