pptx-react-viewer 4.3.0 → 4.4.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 +106 -0
- package/dist/{AiChatPanel-UCEK3ZTD.mjs → AiChatPanel-QJHUDIWT.mjs} +4 -4
- package/dist/AiChatPanel-QJHUDIWT.mjs.br +0 -0
- package/dist/AiChatPanel-QJHUDIWT.mjs.gz +0 -0
- package/dist/{AiChatPanel-7UQA25FA.js → AiChatPanel-UFMSTNCB.js} +28 -28
- package/dist/AiChatPanel-UFMSTNCB.js.br +0 -0
- package/dist/AiChatPanel-UFMSTNCB.js.gz +0 -0
- package/dist/{Model3DScene-AI2JTBQM.mjs → Model3DScene-3GOC5HUS.mjs} +1 -1
- package/dist/Model3DScene-3GOC5HUS.mjs.br +0 -0
- package/dist/Model3DScene-3GOC5HUS.mjs.gz +0 -0
- package/dist/{Model3DScene-X3DS3ELB.js → Model3DScene-KXNJBAQD.js} +2 -2
- package/dist/{Model3DScene-X3DS3ELB.js.br → Model3DScene-KXNJBAQD.js.br} +0 -0
- package/dist/Model3DScene-KXNJBAQD.js.gz +0 -0
- package/dist/{chunk-UTI4CLYJ.js → chunk-7WWINBGF.js} +1133 -418
- package/dist/chunk-7WWINBGF.js.br +0 -0
- package/dist/chunk-7WWINBGF.js.gz +0 -0
- package/dist/{chunk-42XEZVUQ.js → chunk-AI6K5EAE.js} +1261 -1077
- package/dist/chunk-AI6K5EAE.js.br +0 -0
- package/dist/chunk-AI6K5EAE.js.gz +0 -0
- package/dist/{chunk-KAO5USPE.js → chunk-CSY422LU.js} +5 -5
- package/dist/chunk-CSY422LU.js.br +0 -0
- package/dist/chunk-CSY422LU.js.gz +0 -0
- package/dist/{chunk-3UWJWJCR.mjs → chunk-D3TZOCQP.mjs} +1118 -419
- package/dist/chunk-D3TZOCQP.mjs.br +0 -0
- package/dist/chunk-D3TZOCQP.mjs.gz +0 -0
- package/dist/{chunk-W5KLLGVH.js → chunk-I4D6JQOI.js} +25 -0
- package/dist/chunk-I4D6JQOI.js.br +0 -0
- package/dist/chunk-I4D6JQOI.js.gz +0 -0
- package/dist/{chunk-OBQ453H6.mjs → chunk-JQXN6PO7.mjs} +25 -0
- package/dist/chunk-JQXN6PO7.mjs.br +0 -0
- package/dist/chunk-JQXN6PO7.mjs.gz +0 -0
- package/dist/{chunk-RXYLPESV.mjs → chunk-LUHUYBGW.mjs} +201 -17
- package/dist/chunk-LUHUYBGW.mjs.br +0 -0
- package/dist/chunk-LUHUYBGW.mjs.gz +0 -0
- package/dist/{chunk-E7O4HTS5.js → chunk-OWTHF5N4.js} +197 -183
- package/dist/chunk-OWTHF5N4.js.br +0 -0
- package/dist/chunk-OWTHF5N4.js.gz +0 -0
- package/dist/{chunk-SKTZSG7Q.mjs → chunk-WCHKDZP6.mjs} +305 -47
- package/dist/chunk-WCHKDZP6.mjs.br +0 -0
- package/dist/chunk-WCHKDZP6.mjs.gz +0 -0
- package/dist/{chunk-PLDG3CXW.mjs → chunk-WNFHFFYE.mjs} +16 -2
- package/dist/chunk-WNFHFFYE.mjs.br +0 -0
- package/dist/chunk-WNFHFFYE.mjs.gz +0 -0
- package/dist/{chunk-YQJOCGOK.mjs → chunk-XMKLY2SE.mjs} +1 -1
- package/dist/chunk-XMKLY2SE.mjs.br +0 -0
- package/dist/chunk-XMKLY2SE.mjs.gz +0 -0
- package/dist/{chunk-Y7LI2JIR.js → chunk-YJKR7Z3X.js} +1103 -845
- package/dist/chunk-YJKR7Z3X.js.br +0 -0
- package/dist/chunk-YJKR7Z3X.js.gz +0 -0
- package/dist/i18n/de.cjs +23 -0
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +23 -0
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +23 -0
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +23 -0
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +23 -0
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +23 -0
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +23 -0
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +23 -0
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.mjs.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +71 -7
- package/dist/index.js +49 -49
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +173 -43
- package/dist/internals.js +105 -105
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/viewer/index.d.ts +49 -7
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-7UQA25FA.js.br +0 -0
- package/dist/AiChatPanel-7UQA25FA.js.gz +0 -0
- package/dist/AiChatPanel-UCEK3ZTD.mjs.br +0 -0
- package/dist/AiChatPanel-UCEK3ZTD.mjs.gz +0 -0
- package/dist/Model3DScene-AI2JTBQM.mjs.br +0 -0
- package/dist/Model3DScene-AI2JTBQM.mjs.gz +0 -0
- package/dist/Model3DScene-X3DS3ELB.js.gz +0 -0
- package/dist/chunk-3UWJWJCR.mjs.br +0 -0
- package/dist/chunk-3UWJWJCR.mjs.gz +0 -0
- package/dist/chunk-42XEZVUQ.js.br +0 -0
- package/dist/chunk-42XEZVUQ.js.gz +0 -0
- package/dist/chunk-E7O4HTS5.js.br +0 -0
- package/dist/chunk-E7O4HTS5.js.gz +0 -0
- package/dist/chunk-KAO5USPE.js.br +0 -0
- package/dist/chunk-KAO5USPE.js.gz +0 -0
- package/dist/chunk-OBQ453H6.mjs.br +0 -0
- package/dist/chunk-OBQ453H6.mjs.gz +0 -0
- package/dist/chunk-PLDG3CXW.mjs.br +0 -0
- package/dist/chunk-PLDG3CXW.mjs.gz +0 -0
- package/dist/chunk-RXYLPESV.mjs.br +0 -0
- package/dist/chunk-RXYLPESV.mjs.gz +0 -0
- package/dist/chunk-SKTZSG7Q.mjs.br +0 -0
- package/dist/chunk-SKTZSG7Q.mjs.gz +0 -0
- package/dist/chunk-UTI4CLYJ.js.br +0 -0
- package/dist/chunk-UTI4CLYJ.js.gz +0 -0
- package/dist/chunk-W5KLLGVH.js.br +0 -0
- package/dist/chunk-W5KLLGVH.js.gz +0 -0
- package/dist/chunk-Y7LI2JIR.js.br +0 -0
- package/dist/chunk-Y7LI2JIR.js.gz +0 -0
- package/dist/chunk-YQJOCGOK.mjs.br +0 -0
- package/dist/chunk-YQJOCGOK.mjs.gz +0 -0
|
@@ -8766,6 +8766,8 @@ var init_table_style_edit = __esm({
|
|
|
8766
8766
|
}
|
|
8767
8767
|
});
|
|
8768
8768
|
exports.TRANSITION_VALID_DIRECTIONS = void 0;
|
|
8769
|
+
exports.TRANSITION_PATTERN_OPTIONS = void 0;
|
|
8770
|
+
exports.TRANSITION_THRUBLK_TYPES = void 0;
|
|
8769
8771
|
var init_transition = __esm({
|
|
8770
8772
|
"src/core/types/transition.ts"() {
|
|
8771
8773
|
exports.TRANSITION_VALID_DIRECTIONS = {
|
|
@@ -8779,8 +8781,40 @@ var init_transition = __esm({
|
|
|
8779
8781
|
blinds: ["horz", "vert"],
|
|
8780
8782
|
checker: ["horz", "vert"],
|
|
8781
8783
|
comb: ["horz", "vert"],
|
|
8782
|
-
randomBar: ["horz", "vert"]
|
|
8783
|
-
|
|
8784
|
+
randomBar: ["horz", "vert"],
|
|
8785
|
+
// p14 (Office 2010+) extended transitions, COM-verified (see doc comment above).
|
|
8786
|
+
vortex: ["l", "u", "r", "d"],
|
|
8787
|
+
ripple: ["lu", "ld", "ru", "rd"],
|
|
8788
|
+
glitter: ["l", "u", "r", "d"],
|
|
8789
|
+
gallery: ["l", "r"],
|
|
8790
|
+
conveyor: ["l", "r"],
|
|
8791
|
+
ferris: ["l", "r"],
|
|
8792
|
+
switch: ["l", "r"],
|
|
8793
|
+
flip: ["l", "r"],
|
|
8794
|
+
shred: ["in", "out"],
|
|
8795
|
+
cube: ["l", "u", "r", "d"],
|
|
8796
|
+
rotate: ["l", "u", "r", "d"],
|
|
8797
|
+
box: ["l", "u", "r", "d"],
|
|
8798
|
+
orbit: ["l", "u", "r", "d"],
|
|
8799
|
+
pan: ["l", "u", "r", "d"],
|
|
8800
|
+
// p15 (Office 2013+) preset transitions: only the eight `P15_INVX_PRESETS`
|
|
8801
|
+
// (see `p15-transition-parser`) have an effect-options axis at all, and it
|
|
8802
|
+
// is a two-state `invX` toggle mapped onto `l`/`r` (curtains/prestige/
|
|
8803
|
+
// fracture/crush have no direction axis in PowerPoint at all).
|
|
8804
|
+
fallOver: ["l", "r"],
|
|
8805
|
+
drape: ["l", "r"],
|
|
8806
|
+
wind: ["l", "r"],
|
|
8807
|
+
peelOff: ["l", "r"],
|
|
8808
|
+
pageCurlSingle: ["l", "r"],
|
|
8809
|
+
pageCurlDouble: ["l", "r"],
|
|
8810
|
+
airplane: ["l", "r"],
|
|
8811
|
+
origami: ["l", "r"]
|
|
8812
|
+
};
|
|
8813
|
+
exports.TRANSITION_PATTERN_OPTIONS = {
|
|
8814
|
+
glitter: ["diamond", "hexagon"],
|
|
8815
|
+
shred: ["strip", "rectangle"]
|
|
8816
|
+
};
|
|
8817
|
+
exports.TRANSITION_THRUBLK_TYPES = /* @__PURE__ */ new Set(["cut", "fade"]);
|
|
8784
8818
|
}
|
|
8785
8819
|
});
|
|
8786
8820
|
var init_animation = __esm({
|
|
@@ -54567,7 +54601,11 @@ function readP14Details(localName29, value) {
|
|
|
54567
54601
|
if (detail) {
|
|
54568
54602
|
const rawDir = String(detail["@_dir"] || "").trim();
|
|
54569
54603
|
if (rawDir.length > 0) {
|
|
54570
|
-
|
|
54604
|
+
if (P14_DIR_IS_ORIENTATION_TYPE.has(localName29) && (rawDir === "horz" || rawDir === "vert")) {
|
|
54605
|
+
orient = rawDir;
|
|
54606
|
+
} else {
|
|
54607
|
+
direction = rawDir;
|
|
54608
|
+
}
|
|
54571
54609
|
}
|
|
54572
54610
|
const rawOrient = String(detail["@_orient"] || "").trim();
|
|
54573
54611
|
if (rawOrient === "horz" || rawOrient === "vert") {
|
|
@@ -54612,6 +54650,7 @@ function parseP14FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
|
54612
54650
|
return void 0;
|
|
54613
54651
|
}
|
|
54614
54652
|
var P14_TRANSITION_TYPES;
|
|
54653
|
+
var P14_DIR_IS_ORIENTATION_TYPE;
|
|
54615
54654
|
var init_p14_transition_parser = __esm({
|
|
54616
54655
|
"src/core/services/p14-transition-parser.ts"() {
|
|
54617
54656
|
init_p14_prism_family();
|
|
@@ -54643,6 +54682,7 @@ var init_p14_transition_parser = __esm({
|
|
|
54643
54682
|
// through the p14 path", so leaving it out would write `<p:box/>`.
|
|
54644
54683
|
"box"
|
|
54645
54684
|
]);
|
|
54685
|
+
P14_DIR_IS_ORIENTATION_TYPE = /* @__PURE__ */ new Set(["doors", "window"]);
|
|
54646
54686
|
}
|
|
54647
54687
|
});
|
|
54648
54688
|
function chartExPrefixCapabilities() {
|
|
@@ -76004,10 +76044,6 @@ var init_PptxDocumentPropertiesUpdater = __esm({
|
|
|
76004
76044
|
"#text": nowIso
|
|
76005
76045
|
};
|
|
76006
76046
|
}
|
|
76007
|
-
const lastModifiedBy = this.extractXmlNodeText(coreProps["cp:lastModifiedBy"]);
|
|
76008
|
-
if (!lastModifiedBy) {
|
|
76009
|
-
coreProps["cp:lastModifiedBy"] = "pptx";
|
|
76010
|
-
}
|
|
76011
76047
|
this.ensureDatePropertyNamespaces(coreProps);
|
|
76012
76048
|
coreData["cp:coreProperties"] = coreProps;
|
|
76013
76049
|
this.context.zip.file("docProps/core.xml", this.context.builder.build(coreData));
|
|
@@ -78908,6 +78944,7 @@ var init_PptxSlideLoaderService = __esm({
|
|
|
78908
78944
|
);
|
|
78909
78945
|
if (chartData) {
|
|
78910
78946
|
element.chartData = chartData;
|
|
78947
|
+
params.rememberChartDataBaseline(chartData);
|
|
78911
78948
|
}
|
|
78912
78949
|
} catch {
|
|
78913
78950
|
}
|
|
@@ -80260,6 +80297,97 @@ var init_native_animation_timing_walk = __esm({
|
|
|
80260
80297
|
init_native_animation_timing_node_extract();
|
|
80261
80298
|
}
|
|
80262
80299
|
});
|
|
80300
|
+
function optionalBoolean2(value) {
|
|
80301
|
+
const valueToken = value === void 0 || value === null ? "" : String(value).trim().toLowerCase();
|
|
80302
|
+
if (valueToken === "1" || valueToken === "true") {
|
|
80303
|
+
return true;
|
|
80304
|
+
}
|
|
80305
|
+
if (valueToken === "0" || valueToken === "false") {
|
|
80306
|
+
return false;
|
|
80307
|
+
}
|
|
80308
|
+
return void 0;
|
|
80309
|
+
}
|
|
80310
|
+
function readPrstTrans(value) {
|
|
80311
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
80312
|
+
return void 0;
|
|
80313
|
+
}
|
|
80314
|
+
const detail = value;
|
|
80315
|
+
const prst = String(detail["@_prst"] || "").trim();
|
|
80316
|
+
if (!P15_TRANSITION_PRESETS.has(prst)) {
|
|
80317
|
+
return void 0;
|
|
80318
|
+
}
|
|
80319
|
+
return {
|
|
80320
|
+
type: prst,
|
|
80321
|
+
invX: optionalBoolean2(detail["@_invX"]),
|
|
80322
|
+
invY: optionalBoolean2(detail["@_invY"])
|
|
80323
|
+
};
|
|
80324
|
+
}
|
|
80325
|
+
function parseP15DirectChild(transitionNode, getXmlLocalName) {
|
|
80326
|
+
for (const [key2, value] of Object.entries(transitionNode)) {
|
|
80327
|
+
if (key2.startsWith("@_")) {
|
|
80328
|
+
continue;
|
|
80329
|
+
}
|
|
80330
|
+
if (getXmlLocalName(key2) !== "prstTrans") {
|
|
80331
|
+
continue;
|
|
80332
|
+
}
|
|
80333
|
+
const result = readPrstTrans(value);
|
|
80334
|
+
if (result) {
|
|
80335
|
+
return result;
|
|
80336
|
+
}
|
|
80337
|
+
}
|
|
80338
|
+
return void 0;
|
|
80339
|
+
}
|
|
80340
|
+
function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
80341
|
+
const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
80342
|
+
for (const ext of extEntries) {
|
|
80343
|
+
if (!ext) {
|
|
80344
|
+
continue;
|
|
80345
|
+
}
|
|
80346
|
+
for (const [key2, value] of Object.entries(ext)) {
|
|
80347
|
+
if (key2.startsWith("@_")) {
|
|
80348
|
+
continue;
|
|
80349
|
+
}
|
|
80350
|
+
if (getXmlLocalName(key2) !== "prstTrans") {
|
|
80351
|
+
continue;
|
|
80352
|
+
}
|
|
80353
|
+
const result = readPrstTrans(value);
|
|
80354
|
+
if (result) {
|
|
80355
|
+
return result;
|
|
80356
|
+
}
|
|
80357
|
+
}
|
|
80358
|
+
}
|
|
80359
|
+
return void 0;
|
|
80360
|
+
}
|
|
80361
|
+
var P15_TRANSITION_PRESETS;
|
|
80362
|
+
var P15_INVX_PRESETS;
|
|
80363
|
+
var init_p15_transition_parser = __esm({
|
|
80364
|
+
"src/core/services/p15-transition-parser.ts"() {
|
|
80365
|
+
P15_TRANSITION_PRESETS = /* @__PURE__ */ new Set([
|
|
80366
|
+
"fallOver",
|
|
80367
|
+
"drape",
|
|
80368
|
+
"curtains",
|
|
80369
|
+
"wind",
|
|
80370
|
+
"prestige",
|
|
80371
|
+
"fracture",
|
|
80372
|
+
"crush",
|
|
80373
|
+
"peelOff",
|
|
80374
|
+
"pageCurlDouble",
|
|
80375
|
+
"pageCurlSingle",
|
|
80376
|
+
"airplane",
|
|
80377
|
+
"origami"
|
|
80378
|
+
]);
|
|
80379
|
+
P15_INVX_PRESETS = /* @__PURE__ */ new Set([
|
|
80380
|
+
"fallOver",
|
|
80381
|
+
"drape",
|
|
80382
|
+
"wind",
|
|
80383
|
+
"peelOff",
|
|
80384
|
+
"pageCurlSingle",
|
|
80385
|
+
"pageCurlDouble",
|
|
80386
|
+
"airplane",
|
|
80387
|
+
"origami"
|
|
80388
|
+
]);
|
|
80389
|
+
}
|
|
80390
|
+
});
|
|
80263
80391
|
function resolveSlideTimingNode(slideRoot) {
|
|
80264
80392
|
const direct = slideRoot?.["p:timing"];
|
|
80265
80393
|
if (direct && typeof direct === "object" && !Array.isArray(direct)) {
|
|
@@ -80317,7 +80445,8 @@ function preservedP14ChildKey(node, transitionType, getXmlLocalName) {
|
|
|
80317
80445
|
}
|
|
80318
80446
|
return void 0;
|
|
80319
80447
|
}
|
|
80320
|
-
function preservedP15ChildKey(node, transitionType, getXmlLocalName) {
|
|
80448
|
+
function preservedP15ChildKey(node, transitionType, getXmlLocalName, direction) {
|
|
80449
|
+
const wantsInvX = P15_INVX_PRESETS.has(transitionType) && direction === "r";
|
|
80321
80450
|
for (const [key2, value] of Object.entries(node)) {
|
|
80322
80451
|
if (key2.startsWith("@_") || getXmlLocalName(key2) !== "prstTrans") {
|
|
80323
80452
|
continue;
|
|
@@ -80325,7 +80454,12 @@ function preservedP15ChildKey(node, transitionType, getXmlLocalName) {
|
|
|
80325
80454
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
80326
80455
|
continue;
|
|
80327
80456
|
}
|
|
80328
|
-
|
|
80457
|
+
const detail = value;
|
|
80458
|
+
if (String(detail["@_prst"] || "").trim() !== transitionType) {
|
|
80459
|
+
continue;
|
|
80460
|
+
}
|
|
80461
|
+
const hasInvX = String(detail["@_invX"] || "").trim() === "1";
|
|
80462
|
+
if (hasInvX === wantsInvX) {
|
|
80329
80463
|
return key2;
|
|
80330
80464
|
}
|
|
80331
80465
|
}
|
|
@@ -80348,6 +80482,7 @@ var init_slide_transition_envelope = __esm({
|
|
|
80348
80482
|
init_mc_capabilities();
|
|
80349
80483
|
init_p14_prism_family();
|
|
80350
80484
|
init_p14_transition_parser();
|
|
80485
|
+
init_p15_transition_parser();
|
|
80351
80486
|
init_PptxXmlLookupService();
|
|
80352
80487
|
defaultLookup = new PptxXmlLookupService();
|
|
80353
80488
|
}
|
|
@@ -80445,86 +80580,6 @@ var init_PptxNativeAnimationService = __esm({
|
|
|
80445
80580
|
};
|
|
80446
80581
|
}
|
|
80447
80582
|
});
|
|
80448
|
-
function optionalBoolean2(value) {
|
|
80449
|
-
const valueToken = value === void 0 || value === null ? "" : String(value).trim().toLowerCase();
|
|
80450
|
-
if (valueToken === "1" || valueToken === "true") {
|
|
80451
|
-
return true;
|
|
80452
|
-
}
|
|
80453
|
-
if (valueToken === "0" || valueToken === "false") {
|
|
80454
|
-
return false;
|
|
80455
|
-
}
|
|
80456
|
-
return void 0;
|
|
80457
|
-
}
|
|
80458
|
-
function readPrstTrans(value) {
|
|
80459
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
80460
|
-
return void 0;
|
|
80461
|
-
}
|
|
80462
|
-
const detail = value;
|
|
80463
|
-
const prst = String(detail["@_prst"] || "").trim();
|
|
80464
|
-
if (!P15_TRANSITION_PRESETS.has(prst)) {
|
|
80465
|
-
return void 0;
|
|
80466
|
-
}
|
|
80467
|
-
return {
|
|
80468
|
-
type: prst,
|
|
80469
|
-
invX: optionalBoolean2(detail["@_invX"]),
|
|
80470
|
-
invY: optionalBoolean2(detail["@_invY"])
|
|
80471
|
-
};
|
|
80472
|
-
}
|
|
80473
|
-
function parseP15DirectChild(transitionNode, getXmlLocalName) {
|
|
80474
|
-
for (const [key2, value] of Object.entries(transitionNode)) {
|
|
80475
|
-
if (key2.startsWith("@_")) {
|
|
80476
|
-
continue;
|
|
80477
|
-
}
|
|
80478
|
-
if (getXmlLocalName(key2) !== "prstTrans") {
|
|
80479
|
-
continue;
|
|
80480
|
-
}
|
|
80481
|
-
const result = readPrstTrans(value);
|
|
80482
|
-
if (result) {
|
|
80483
|
-
return result;
|
|
80484
|
-
}
|
|
80485
|
-
}
|
|
80486
|
-
return void 0;
|
|
80487
|
-
}
|
|
80488
|
-
function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
|
|
80489
|
-
const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
|
|
80490
|
-
for (const ext of extEntries) {
|
|
80491
|
-
if (!ext) {
|
|
80492
|
-
continue;
|
|
80493
|
-
}
|
|
80494
|
-
for (const [key2, value] of Object.entries(ext)) {
|
|
80495
|
-
if (key2.startsWith("@_")) {
|
|
80496
|
-
continue;
|
|
80497
|
-
}
|
|
80498
|
-
if (getXmlLocalName(key2) !== "prstTrans") {
|
|
80499
|
-
continue;
|
|
80500
|
-
}
|
|
80501
|
-
const result = readPrstTrans(value);
|
|
80502
|
-
if (result) {
|
|
80503
|
-
return result;
|
|
80504
|
-
}
|
|
80505
|
-
}
|
|
80506
|
-
}
|
|
80507
|
-
return void 0;
|
|
80508
|
-
}
|
|
80509
|
-
var P15_TRANSITION_PRESETS;
|
|
80510
|
-
var init_p15_transition_parser = __esm({
|
|
80511
|
-
"src/core/services/p15-transition-parser.ts"() {
|
|
80512
|
-
P15_TRANSITION_PRESETS = /* @__PURE__ */ new Set([
|
|
80513
|
-
"fallOver",
|
|
80514
|
-
"drape",
|
|
80515
|
-
"curtains",
|
|
80516
|
-
"wind",
|
|
80517
|
-
"prestige",
|
|
80518
|
-
"fracture",
|
|
80519
|
-
"crush",
|
|
80520
|
-
"peelOff",
|
|
80521
|
-
"pageCurlDouble",
|
|
80522
|
-
"pageCurlSingle",
|
|
80523
|
-
"airplane",
|
|
80524
|
-
"origami"
|
|
80525
|
-
]);
|
|
80526
|
-
}
|
|
80527
|
-
});
|
|
80528
80583
|
function normalizeMorphOption(value) {
|
|
80529
80584
|
const candidate = token(value);
|
|
80530
80585
|
return MORPH_OPTIONS.has(candidate) ? candidate : void 0;
|
|
@@ -80556,9 +80611,13 @@ function parseTransitionDetails(node, localName29) {
|
|
|
80556
80611
|
continue;
|
|
80557
80612
|
}
|
|
80558
80613
|
const detail = value;
|
|
80559
|
-
const
|
|
80560
|
-
if (
|
|
80561
|
-
|
|
80614
|
+
const rawDir = token(detail["@_dir"]);
|
|
80615
|
+
if (rawDir) {
|
|
80616
|
+
if (DIR_IS_ORIENTATION_TYPE.has(name) && (rawDir === "horz" || rawDir === "vert")) {
|
|
80617
|
+
result.orient = rawDir;
|
|
80618
|
+
} else {
|
|
80619
|
+
result.direction = rawDir;
|
|
80620
|
+
}
|
|
80562
80621
|
}
|
|
80563
80622
|
const orient = token(detail["@_orient"]);
|
|
80564
80623
|
if (orient === "horz" || orient === "vert") {
|
|
@@ -80622,11 +80681,15 @@ function createPreservedTransitionNode(raw, localName29) {
|
|
|
80622
80681
|
}
|
|
80623
80682
|
function buildStandardTransitionChild(transition) {
|
|
80624
80683
|
const child262 = {};
|
|
80625
|
-
if (transition.
|
|
80626
|
-
child262["@_dir"] = transition.
|
|
80627
|
-
}
|
|
80628
|
-
|
|
80629
|
-
|
|
80684
|
+
if (DIR_IS_ORIENTATION_TYPE.has(transition.type) && transition.orient) {
|
|
80685
|
+
child262["@_dir"] = transition.orient;
|
|
80686
|
+
} else {
|
|
80687
|
+
if (transition.direction) {
|
|
80688
|
+
child262["@_dir"] = transition.direction;
|
|
80689
|
+
}
|
|
80690
|
+
if (transition.orient) {
|
|
80691
|
+
child262["@_orient"] = transition.orient;
|
|
80692
|
+
}
|
|
80630
80693
|
}
|
|
80631
80694
|
if (validUnsignedInteger(transition.spokes, 1)) {
|
|
80632
80695
|
child262["@_spokes"] = String(transition.spokes);
|
|
@@ -80733,6 +80796,7 @@ function validUnsignedInteger(value, min = 0) {
|
|
|
80733
80796
|
var STANDARD_TRANSITION_TYPES;
|
|
80734
80797
|
var SPEEDS;
|
|
80735
80798
|
var UINT_MAX2;
|
|
80799
|
+
var DIR_IS_ORIENTATION_TYPE;
|
|
80736
80800
|
var MORPH_OPTIONS;
|
|
80737
80801
|
var init_slide_transition_xml = __esm({
|
|
80738
80802
|
"src/core/services/slide-transition-xml.ts"() {
|
|
@@ -80762,6 +80826,7 @@ var init_slide_transition_xml = __esm({
|
|
|
80762
80826
|
]);
|
|
80763
80827
|
SPEEDS = /* @__PURE__ */ new Set(["slow", "med", "fast"]);
|
|
80764
80828
|
UINT_MAX2 = 4294967295;
|
|
80829
|
+
DIR_IS_ORIENTATION_TYPE = /* @__PURE__ */ new Set(["blinds", "checker", "comb", "randomBar"]);
|
|
80765
80830
|
MORPH_OPTIONS = /* @__PURE__ */ new Set(["byObject", "byWord", "byChar"]);
|
|
80766
80831
|
}
|
|
80767
80832
|
});
|
|
@@ -80848,13 +80913,17 @@ function buildP14DirectChild(transitionType, details, context) {
|
|
|
80848
80913
|
delete node["@_isInverted"];
|
|
80849
80914
|
}
|
|
80850
80915
|
const direction = String(details.direction ?? "").trim();
|
|
80851
|
-
if (
|
|
80852
|
-
node["@_dir"] =
|
|
80853
|
-
} else
|
|
80854
|
-
|
|
80855
|
-
|
|
80856
|
-
|
|
80857
|
-
|
|
80916
|
+
if (P14_DIR_IS_ORIENTATION_TYPE.has(elementName) && details.orient) {
|
|
80917
|
+
node["@_dir"] = details.orient;
|
|
80918
|
+
} else {
|
|
80919
|
+
if (P14_REQUIRED_LEFT_RIGHT.has(elementName)) {
|
|
80920
|
+
node["@_dir"] = direction === "r" ? "r" : "l";
|
|
80921
|
+
} else if (direction.length > 0) {
|
|
80922
|
+
node["@_dir"] = direction;
|
|
80923
|
+
}
|
|
80924
|
+
if (details.orient) {
|
|
80925
|
+
node["@_orient"] = details.orient;
|
|
80926
|
+
}
|
|
80858
80927
|
}
|
|
80859
80928
|
if (details.pattern) {
|
|
80860
80929
|
node["@_pattern"] = details.pattern;
|
|
@@ -80870,15 +80939,20 @@ function buildP14DirectChild(transitionType, details, context) {
|
|
|
80870
80939
|
}
|
|
80871
80940
|
return { key: `p14:${elementName}`, node };
|
|
80872
80941
|
}
|
|
80873
|
-
function buildP15DirectChild(transitionType, context) {
|
|
80874
|
-
|
|
80875
|
-
|
|
80876
|
-
|
|
80877
|
-
|
|
80878
|
-
...inheritedAttributes(findInExtensions(context, "prstTrans")),
|
|
80879
|
-
"@_prst": transitionType
|
|
80880
|
-
}
|
|
80942
|
+
function buildP15DirectChild(transitionType, context, direction) {
|
|
80943
|
+
const node = {
|
|
80944
|
+
"@_xmlns:p15": P15_NAMESPACE_URI2,
|
|
80945
|
+
...inheritedAttributes(findInExtensions(context, "prstTrans")),
|
|
80946
|
+
"@_prst": transitionType
|
|
80881
80947
|
};
|
|
80948
|
+
if (P15_INVX_PRESETS.has(transitionType)) {
|
|
80949
|
+
if (direction === "r") {
|
|
80950
|
+
node["@_invX"] = "1";
|
|
80951
|
+
} else {
|
|
80952
|
+
delete node["@_invX"];
|
|
80953
|
+
}
|
|
80954
|
+
}
|
|
80955
|
+
return { key: "p15:prstTrans", node };
|
|
80882
80956
|
}
|
|
80883
80957
|
function buildMorphDirectChild(morphOption, context) {
|
|
80884
80958
|
const node = {
|
|
@@ -80907,6 +80981,8 @@ var P14_REQUIRED_LEFT_RIGHT;
|
|
|
80907
80981
|
var init_transition_extension_child = __esm({
|
|
80908
80982
|
"src/core/services/transition-extension-child.ts"() {
|
|
80909
80983
|
init_p14_prism_family();
|
|
80984
|
+
init_p14_transition_parser();
|
|
80985
|
+
init_p15_transition_parser();
|
|
80910
80986
|
P14_NAMESPACE_URI = "http://schemas.microsoft.com/office/powerpoint/2010/main";
|
|
80911
80987
|
P15_NAMESPACE_URI2 = "http://schemas.microsoft.com/office/powerpoint/2012/main";
|
|
80912
80988
|
P159_NAMESPACE_URI = "http://schemas.microsoft.com/office/powerpoint/2015/09/main";
|
|
@@ -80954,11 +81030,14 @@ var init_PptxSlideTransitionService = __esm({
|
|
|
80954
81030
|
const p15Direct = p14Direct ? void 0 : parseP15DirectChild(transitionNode, this.getXmlLocalName);
|
|
80955
81031
|
if (p14Direct) {
|
|
80956
81032
|
transitionType = p14Direct.type;
|
|
80957
|
-
direction = p14Direct.direction
|
|
80958
|
-
orient = p14Direct.orient
|
|
80959
|
-
pattern = p14Direct.pattern
|
|
81033
|
+
direction = p14Direct.direction;
|
|
81034
|
+
orient = p14Direct.orient;
|
|
81035
|
+
pattern = p14Direct.pattern;
|
|
80960
81036
|
} else if (p15Direct) {
|
|
80961
81037
|
transitionType = p15Direct.type;
|
|
81038
|
+
if (p15Direct.invX) {
|
|
81039
|
+
direction = "r";
|
|
81040
|
+
}
|
|
80962
81041
|
}
|
|
80963
81042
|
}
|
|
80964
81043
|
if (rawExtLst && transitionType === "cut") {
|
|
@@ -80977,6 +81056,9 @@ var init_PptxSlideTransitionService = __esm({
|
|
|
80977
81056
|
}
|
|
80978
81057
|
} else if (p15Result) {
|
|
80979
81058
|
transitionType = p15Result.type;
|
|
81059
|
+
if (p15Result.invX) {
|
|
81060
|
+
direction = "r";
|
|
81061
|
+
}
|
|
80980
81062
|
} else {
|
|
80981
81063
|
const morphResult = parseMorphFromExtLst(
|
|
80982
81064
|
rawExtLst,
|
|
@@ -81016,7 +81098,7 @@ var init_PptxSlideTransitionService = __esm({
|
|
|
81016
81098
|
const isMorphType = transitionType === "morph";
|
|
81017
81099
|
const node = createPreservedTransitionNode(transition.rawTransition, this.getXmlLocalName);
|
|
81018
81100
|
const p14ChildKey = isP14Type ? preservedP14ChildKey(node, transitionType, this.getXmlLocalName) : void 0;
|
|
81019
|
-
const p15ChildKey = isP15Type ? preservedP15ChildKey(node, transitionType, this.getXmlLocalName) : void 0;
|
|
81101
|
+
const p15ChildKey = isP15Type ? preservedP15ChildKey(node, transitionType, this.getXmlLocalName, transition.direction) : void 0;
|
|
81020
81102
|
pruneDirectExtensionChildren(node, this.getXmlLocalName, p14ChildKey ?? p15ChildKey);
|
|
81021
81103
|
const extensionContext = {
|
|
81022
81104
|
rawExtLst: transition.rawExtLst,
|
|
@@ -81040,7 +81122,7 @@ var init_PptxSlideTransitionService = __esm({
|
|
|
81040
81122
|
}
|
|
81041
81123
|
} else if (isP15Type) {
|
|
81042
81124
|
if (!p15ChildKey) {
|
|
81043
|
-
const child262 = buildP15DirectChild(transitionType, extensionContext);
|
|
81125
|
+
const child262 = buildP15DirectChild(transitionType, extensionContext, transition.direction);
|
|
81044
81126
|
node[child262.key] = child262.node;
|
|
81045
81127
|
}
|
|
81046
81128
|
} else if (isMorphType) {
|
|
@@ -99439,9 +99521,19 @@ function applyBulletProperties(paragraphProps, bulletInfo) {
|
|
|
99439
99521
|
if (bulletInfo.fontInherit) {
|
|
99440
99522
|
paragraphProps["a:buFontTx"] = {};
|
|
99441
99523
|
} else if (bulletInfo.fontFamily) {
|
|
99442
|
-
|
|
99524
|
+
const buFont = {
|
|
99443
99525
|
"@_typeface": bulletInfo.fontFamily
|
|
99444
99526
|
};
|
|
99527
|
+
if (bulletInfo.fontPanose) {
|
|
99528
|
+
buFont["@_panose"] = bulletInfo.fontPanose;
|
|
99529
|
+
}
|
|
99530
|
+
if (bulletInfo.fontPitchFamily !== void 0) {
|
|
99531
|
+
buFont["@_pitchFamily"] = String(bulletInfo.fontPitchFamily);
|
|
99532
|
+
}
|
|
99533
|
+
if (bulletInfo.fontCharset !== void 0) {
|
|
99534
|
+
buFont["@_charset"] = String(bulletInfo.fontCharset);
|
|
99535
|
+
}
|
|
99536
|
+
paragraphProps["a:buFont"] = buFont;
|
|
99445
99537
|
}
|
|
99446
99538
|
if (bulletInfo.none) {
|
|
99447
99539
|
paragraphProps["a:buNone"] = {};
|
|
@@ -100876,6 +100968,20 @@ var init_PptxHandlerRuntimeState = __esm({
|
|
|
100876
100968
|
* @see fingerprintSlide in `./slide-fingerprint`
|
|
100877
100969
|
*/
|
|
100878
100970
|
savedSlideFingerprints = /* @__PURE__ */ new Map();
|
|
100971
|
+
/**
|
|
100972
|
+
* `chartData` exactly as it stood right after `enrichChartData` parsed it,
|
|
100973
|
+
* serialized to JSON and keyed by `chartPartPath`. The save pipeline used
|
|
100974
|
+
* to re-serialize EVERY chart part on any slide rewrite regardless of
|
|
100975
|
+
* whether the chart itself was touched, which materializes the load-time
|
|
100976
|
+
* resolved model back into the file: an inherited title font/color gets
|
|
100977
|
+
* pinned onto the title run, radar series colours that were following the
|
|
100978
|
+
* palette cycle get pinned per-point, and fields this engine does not
|
|
100979
|
+
* model on `PptxChartData` (e.g. a chartex series' `cx:f` formula or its
|
|
100980
|
+
* `uniqueId`) are silently dropped because the rebuild only knows what it
|
|
100981
|
+
* modeled. Comparing the current `chartData` against this baseline lets an
|
|
100982
|
+
* untouched chart part pass through byte-for-byte instead.
|
|
100983
|
+
*/
|
|
100984
|
+
chartDataBaselines = /* @__PURE__ */ new Map();
|
|
100879
100985
|
/** Per-slide relationship maps: slide path -> (rId -> target path). */
|
|
100880
100986
|
slideRelsMap = /* @__PURE__ */ new Map();
|
|
100881
100987
|
/** Tracks relationship IDs with TargetMode="External" per slide/part path. */
|
|
@@ -101762,9 +101868,7 @@ var init_PptxHandlerRuntimeElementActions = __esm({
|
|
|
101762
101868
|
);
|
|
101763
101869
|
rId = resolveHyperlinkRelationshipId(action.url, forceExternal) ?? void 0;
|
|
101764
101870
|
}
|
|
101765
|
-
|
|
101766
|
-
node["@_r:id"] = rId;
|
|
101767
|
-
}
|
|
101871
|
+
node["@_r:id"] = rId ?? "";
|
|
101768
101872
|
if (action.action) {
|
|
101769
101873
|
node["@_action"] = action.action;
|
|
101770
101874
|
}
|
|
@@ -103896,7 +104000,7 @@ var init_PptxHandlerRuntimeSaveSlideUtils = __esm({
|
|
|
103896
104000
|
};
|
|
103897
104001
|
}
|
|
103898
104002
|
});
|
|
103899
|
-
function buildTextRunEffectListXml(style) {
|
|
104003
|
+
function buildTextRunEffectListXml(style, parseColor) {
|
|
103900
104004
|
const hasTextShadow = Boolean(style.textShadowColor) || typeof style.textShadowBlur === "number" && style.textShadowBlur > 0;
|
|
103901
104005
|
const hasTextInnerShadow = Boolean(style.textInnerShadowColor) || typeof style.textInnerShadowBlur === "number" && style.textInnerShadowBlur > 0;
|
|
103902
104006
|
const hasTextPresetShadow = Boolean(style.textPresetShadowName);
|
|
@@ -103923,7 +104027,7 @@ function buildTextRunEffectListXml(style) {
|
|
|
103923
104027
|
effectLst["a:prstShdw"] = buildPresetShadowNode(style);
|
|
103924
104028
|
}
|
|
103925
104029
|
if (hasTextGlow) {
|
|
103926
|
-
effectLst["a:glow"] = buildGlowNode(style);
|
|
104030
|
+
effectLst["a:glow"] = buildGlowNode(style, parseColor);
|
|
103927
104031
|
}
|
|
103928
104032
|
if (hasTextReflection) {
|
|
103929
104033
|
effectLst["a:reflection"] = buildReflectionNode(style);
|
|
@@ -104010,10 +104114,18 @@ function buildPresetShadowNode(style) {
|
|
|
104010
104114
|
}
|
|
104011
104115
|
return node;
|
|
104012
104116
|
}
|
|
104013
|
-
function buildGlowNode(style) {
|
|
104117
|
+
function buildGlowNode(style, parseColor) {
|
|
104118
|
+
const fallbackHex = style.textGlowColor || "#ffff00";
|
|
104119
|
+
const resolvedOriginal = style.textGlowColorXml ? parseColor?.(style.textGlowColorXml) : void 0;
|
|
104014
104120
|
return {
|
|
104015
104121
|
"@_rad": String(Math.round((style.textGlowRadius ?? 6) * EMU_PER_PX9)),
|
|
104016
|
-
|
|
104122
|
+
...serializeColorChoiceWithRef(
|
|
104123
|
+
style.textGlowColorRef,
|
|
104124
|
+
style.textGlowColorXml,
|
|
104125
|
+
resolvedOriginal,
|
|
104126
|
+
fallbackHex,
|
|
104127
|
+
style.textGlowOpacity
|
|
104128
|
+
)
|
|
104017
104129
|
};
|
|
104018
104130
|
}
|
|
104019
104131
|
function buildReflectionNode(style) {
|
|
@@ -104083,6 +104195,7 @@ function buildClrChangeNode(style) {
|
|
|
104083
104195
|
var EMU_PER_PX9;
|
|
104084
104196
|
var init_text_run_effect_xml_builder = __esm({
|
|
104085
104197
|
"src/core/core/runtime/text-run-effect-xml-builder.ts"() {
|
|
104198
|
+
init_color_xml_preservation();
|
|
104086
104199
|
init_positive_fixed_angle();
|
|
104087
104200
|
EMU_PER_PX9 = 9525;
|
|
104088
104201
|
}
|
|
@@ -104283,7 +104396,10 @@ var init_PptxHandlerRuntimeSaveRunProperties = __esm({
|
|
|
104283
104396
|
}
|
|
104284
104397
|
runProps["a:pattFill"] = pattFill;
|
|
104285
104398
|
}
|
|
104286
|
-
const textEffectLst = buildTextRunEffectListXml(
|
|
104399
|
+
const textEffectLst = buildTextRunEffectListXml(
|
|
104400
|
+
style,
|
|
104401
|
+
(colorNode) => this.parseColor(colorNode)
|
|
104402
|
+
);
|
|
104287
104403
|
if (textEffectLst) {
|
|
104288
104404
|
runProps["a:effectLst"] = textEffectLst;
|
|
104289
104405
|
}
|
|
@@ -104421,6 +104537,9 @@ var init_PptxHandlerRuntimeSaveRunProperties = __esm({
|
|
|
104421
104537
|
if (style.hyperlinkSoundXml && typeof style.hyperlinkSoundXml === "object") {
|
|
104422
104538
|
hlinkNode["a:snd"] = style.hyperlinkSoundXml;
|
|
104423
104539
|
}
|
|
104540
|
+
if (style.hyperlinkExtensionXml && typeof style.hyperlinkExtensionXml === "object") {
|
|
104541
|
+
hlinkNode["a:extLst"] = style.hyperlinkExtensionXml;
|
|
104542
|
+
}
|
|
104424
104543
|
}
|
|
104425
104544
|
};
|
|
104426
104545
|
}
|
|
@@ -105566,6 +105685,10 @@ var init_PptxHandlerRuntimeSaveImageEffects = __esm({
|
|
|
105566
105685
|
if (!blipFill) {
|
|
105567
105686
|
return;
|
|
105568
105687
|
}
|
|
105688
|
+
const hasCropOpinion = element.cropLeft !== void 0 || element.cropTop !== void 0 || element.cropRight !== void 0 || element.cropBottom !== void 0;
|
|
105689
|
+
if (!hasCropOpinion) {
|
|
105690
|
+
return;
|
|
105691
|
+
}
|
|
105569
105692
|
const srcRect = buildSrcRectXml(element);
|
|
105570
105693
|
if (!srcRect) {
|
|
105571
105694
|
delete blipFill["a:srcRect"];
|
|
@@ -105874,7 +105997,56 @@ var init_PptxHandlerRuntimeTextStyleUtils = __esm({
|
|
|
105874
105997
|
"align",
|
|
105875
105998
|
"vAlign",
|
|
105876
105999
|
"textDirection",
|
|
105877
|
-
"columnCount"
|
|
106000
|
+
"columnCount",
|
|
106001
|
+
// Round-trip-only `a:rPr` attributes that carry no visual difference
|
|
106002
|
+
// but ARE distinct authored content: two adjacent runs differing only
|
|
106003
|
+
// in one of these were still "the same style" by the keys above, so
|
|
106004
|
+
// they were folded into a single merged run and every one of these
|
|
106005
|
+
// attributes on every run but the first was silently dropped.
|
|
106006
|
+
// Measured on `issue-132-hr-deck.pptx`: 34 authored runs (mixed
|
|
106007
|
+
// `lang`/`altLang` from pasted multi-language text) collapsed to 4 on
|
|
106008
|
+
// a no-edit round-trip.
|
|
106009
|
+
"language",
|
|
106010
|
+
"altLanguage",
|
|
106011
|
+
"dirty",
|
|
106012
|
+
"smartTagClean",
|
|
106013
|
+
"smartTagId",
|
|
106014
|
+
"bookmark",
|
|
106015
|
+
"kumimoji",
|
|
106016
|
+
"normalizeHeight",
|
|
106017
|
+
"noProof",
|
|
106018
|
+
"spellingError",
|
|
106019
|
+
"underlineColor",
|
|
106020
|
+
"underlineStyle",
|
|
106021
|
+
"underlineExplicitNone",
|
|
106022
|
+
"underlineLineFollowsText",
|
|
106023
|
+
"underlineFillFollowsText",
|
|
106024
|
+
"strikeType",
|
|
106025
|
+
"baseline",
|
|
106026
|
+
"characterSpacing",
|
|
106027
|
+
"kerning",
|
|
106028
|
+
"highlightColor",
|
|
106029
|
+
"textCaps",
|
|
106030
|
+
"textCapsExplicitNone",
|
|
106031
|
+
"hyperlinkRId",
|
|
106032
|
+
"hyperlinkTooltip",
|
|
106033
|
+
"hyperlinkAction",
|
|
106034
|
+
"hyperlinkTargetSlideIndex",
|
|
106035
|
+
"hyperlinkMouseOver",
|
|
106036
|
+
"hyperlinkInvalidUrl",
|
|
106037
|
+
"hyperlinkTargetFrame",
|
|
106038
|
+
"hyperlinkHistory",
|
|
106039
|
+
"hyperlinkHighlightClick",
|
|
106040
|
+
"hyperlinkEndSound",
|
|
106041
|
+
"hyperlinkExtensionXml",
|
|
106042
|
+
"textGlowColor",
|
|
106043
|
+
"textGlowRadius",
|
|
106044
|
+
"textGlowOpacity",
|
|
106045
|
+
"textShadowColor",
|
|
106046
|
+
"textShadowBlur",
|
|
106047
|
+
"textShadowOffsetX",
|
|
106048
|
+
"textShadowOffsetY",
|
|
106049
|
+
"textShadowOpacity"
|
|
105878
106050
|
];
|
|
105879
106051
|
return keys.every((key2) => left?.[key2] === right?.[key2]);
|
|
105880
106052
|
}
|
|
@@ -105996,6 +106168,8 @@ var init_PptxHandlerRuntimeTextStyleUtils = __esm({
|
|
|
105996
106168
|
var PptxHandlerRuntime18;
|
|
105997
106169
|
var init_PptxHandlerRuntimeTextRunEffects = __esm({
|
|
105998
106170
|
"src/core/core/runtime/PptxHandlerRuntimeTextRunEffects.ts"() {
|
|
106171
|
+
init_theme_color_ref();
|
|
106172
|
+
init_color_xml_preservation();
|
|
105999
106173
|
init_effect_dag_containers();
|
|
106000
106174
|
init_effect_style_extractor_reflection();
|
|
106001
106175
|
init_PptxHandlerRuntimeTextStyleUtils();
|
|
@@ -106048,6 +106222,10 @@ var init_PptxHandlerRuntimeTextRunEffects = __esm({
|
|
|
106048
106222
|
if (clickSnd && typeof clickSnd === "object") {
|
|
106049
106223
|
style.hyperlinkSoundXml = clickSnd;
|
|
106050
106224
|
}
|
|
106225
|
+
const extLst = hyperlinkNode["a:extLst"];
|
|
106226
|
+
if (extLst && typeof extLst === "object") {
|
|
106227
|
+
style.hyperlinkExtensionXml = extLst;
|
|
106228
|
+
}
|
|
106051
106229
|
}
|
|
106052
106230
|
const actionStr = String(hyperlinkNode?.["@_action"] || "").trim();
|
|
106053
106231
|
if (actionStr) {
|
|
@@ -106122,6 +106300,14 @@ var init_PptxHandlerRuntimeTextRunEffects = __esm({
|
|
|
106122
106300
|
if (glowColor) {
|
|
106123
106301
|
style.textGlowColor = glowColor;
|
|
106124
106302
|
}
|
|
106303
|
+
const glowColorXml = extractColorChoiceXml(glowNode);
|
|
106304
|
+
if (glowColorXml) {
|
|
106305
|
+
style.textGlowColorXml = glowColorXml;
|
|
106306
|
+
}
|
|
106307
|
+
const glowColorRef = themeColorRefFromColorChoice(glowNode);
|
|
106308
|
+
if (glowColorRef) {
|
|
106309
|
+
style.textGlowColorRef = glowColorRef;
|
|
106310
|
+
}
|
|
106125
106311
|
const glowOpacity = this.extractColorOpacity(glowNode);
|
|
106126
106312
|
if (glowOpacity !== void 0) {
|
|
106127
106313
|
style.textGlowOpacity = glowOpacity;
|
|
@@ -108944,6 +109130,16 @@ var init_PptxHandlerRuntimeSaveDataSerialization = __esm({
|
|
|
108944
109130
|
}
|
|
108945
109131
|
/** Pending chart data updates to process in the async save method. */
|
|
108946
109132
|
pendingChartUpdates;
|
|
109133
|
+
/**
|
|
109134
|
+
* Record `chartData` as parsed, straight off `enrichChartData`, as this
|
|
109135
|
+
* chart's load-time baseline. See {@link chartDataBaselines}.
|
|
109136
|
+
*/
|
|
109137
|
+
rememberChartDataBaseline(chartData) {
|
|
109138
|
+
if (!chartData.chartPartPath) {
|
|
109139
|
+
return;
|
|
109140
|
+
}
|
|
109141
|
+
this.chartDataBaselines.set(chartData.chartPartPath, JSON.stringify(chartData));
|
|
109142
|
+
}
|
|
108947
109143
|
/**
|
|
108948
109144
|
* Collect chart data for deferred async processing during save.
|
|
108949
109145
|
*/
|
|
@@ -108964,6 +109160,9 @@ var init_PptxHandlerRuntimeSaveDataSerialization = __esm({
|
|
|
108964
109160
|
return;
|
|
108965
109161
|
}
|
|
108966
109162
|
for (const { chartData, slidePath } of this.pendingChartUpdates) {
|
|
109163
|
+
if (chartData.chartPartPath && this.chartDataBaselines.get(chartData.chartPartPath) === JSON.stringify(chartData)) {
|
|
109164
|
+
continue;
|
|
109165
|
+
}
|
|
108967
109166
|
if (chartData.colorPalette && chartData.colorStylePartPath) {
|
|
108968
109167
|
const paletteChanged = JSON.stringify(chartData.colorPalette) !== JSON.stringify(chartData.colorStyleOriginalPalette);
|
|
108969
109168
|
const method = chartData.colorMethod ?? "cycle";
|
|
@@ -112018,6 +112217,9 @@ function writeShapeFill(spPr, shapeStyle, ctx) {
|
|
|
112018
112217
|
if (fillIsPurelyStyleMatrix(shapeStyle)) {
|
|
112019
112218
|
return;
|
|
112020
112219
|
}
|
|
112220
|
+
if (requestedFillMode === "image") {
|
|
112221
|
+
return;
|
|
112222
|
+
}
|
|
112021
112223
|
if (requestedFillMode === "none" || shapeStyle.fillColor === "transparent") {
|
|
112022
112224
|
setFillChoice(spPr, "a:noFill", {});
|
|
112023
112225
|
return;
|
|
@@ -119777,6 +119979,7 @@ var PptxHandlerRuntime61;
|
|
|
119777
119979
|
var init_PptxHandlerRuntimeShapeImageFill = __esm({
|
|
119778
119980
|
"src/core/core/runtime/PptxHandlerRuntimeShapeImageFill.ts"() {
|
|
119779
119981
|
init_xml_access();
|
|
119982
|
+
init_group_shape_geometry();
|
|
119780
119983
|
init_PptxHandlerRuntimeGeometryParsing();
|
|
119781
119984
|
PptxHandlerRuntime61 = class _PptxHandlerRuntime extends PptxHandlerRuntime60 {
|
|
119782
119985
|
/**
|
|
@@ -119799,12 +120002,14 @@ var init_PptxHandlerRuntimeShapeImageFill = __esm({
|
|
|
119799
120002
|
if (!off || !ext) {
|
|
119800
120003
|
return null;
|
|
119801
120004
|
}
|
|
119802
|
-
const
|
|
119803
|
-
const
|
|
119804
|
-
const
|
|
119805
|
-
const
|
|
119806
|
-
|
|
119807
|
-
);
|
|
120005
|
+
const xEmu = parseEmuInt(xmlAttr(off, "x"));
|
|
120006
|
+
const yEmu = parseEmuInt(xmlAttr(off, "y"));
|
|
120007
|
+
const widthEmu = parseEmuInt(xmlAttr(ext, "cx"));
|
|
120008
|
+
const heightEmu = parseEmuInt(xmlAttr(ext, "cy"));
|
|
120009
|
+
const x = Math.round(xEmu / _PptxHandlerRuntime.EMU_PER_PX);
|
|
120010
|
+
const y = Math.round(yEmu / _PptxHandlerRuntime.EMU_PER_PX);
|
|
120011
|
+
const width = Math.round(widthEmu / _PptxHandlerRuntime.EMU_PER_PX);
|
|
120012
|
+
const height = Math.round(heightEmu / _PptxHandlerRuntime.EMU_PER_PX);
|
|
119808
120013
|
const rotation = xfrm["@_rot"] ? parseInt(xfrm["@_rot"]) / 6e4 : void 0;
|
|
119809
120014
|
const skewX = xfrm["@_skewX"] ? parseInt(String(xfrm["@_skewX"]), 10) / 6e4 : void 0;
|
|
119810
120015
|
const skewY = xfrm["@_skewY"] ? parseInt(String(xfrm["@_skewY"]), 10) / 6e4 : void 0;
|
|
@@ -119913,6 +120118,10 @@ var init_PptxHandlerRuntimeShapeImageFill = __esm({
|
|
|
119913
120118
|
y,
|
|
119914
120119
|
width,
|
|
119915
120120
|
height,
|
|
120121
|
+
xEmu,
|
|
120122
|
+
yEmu,
|
|
120123
|
+
widthEmu,
|
|
120124
|
+
heightEmu,
|
|
119916
120125
|
imageData,
|
|
119917
120126
|
imagePath,
|
|
119918
120127
|
imageEffects: imageEffects || void 0,
|
|
@@ -120242,6 +120451,11 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
120242
120451
|
}
|
|
120243
120452
|
const buFont = resolvedBulletProps["a:buFont"];
|
|
120244
120453
|
const fontFamily = buFont?.["@_typeface"] ? String(buFont["@_typeface"]) : void 0;
|
|
120454
|
+
const fontPanose = buFont?.["@_panose"] ? String(buFont["@_panose"]) : void 0;
|
|
120455
|
+
const pitchFamilyRaw = Number.parseInt(String(buFont?.["@_pitchFamily"] ?? ""), 10);
|
|
120456
|
+
const fontPitchFamily = Number.isFinite(pitchFamilyRaw) ? pitchFamilyRaw : void 0;
|
|
120457
|
+
const charsetRaw = Number.parseInt(String(buFont?.["@_charset"] ?? ""), 10);
|
|
120458
|
+
const fontCharset = Number.isFinite(charsetRaw) ? charsetRaw : void 0;
|
|
120245
120459
|
const fontInherit = resolvedBulletProps["a:buFontTx"] !== void 0;
|
|
120246
120460
|
const sizePercent = parseBulletSizePercent(
|
|
120247
120461
|
resolvedBulletProps["a:buSzPct"]
|
|
@@ -120273,6 +120487,9 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
120273
120487
|
return {
|
|
120274
120488
|
char: bulletChar,
|
|
120275
120489
|
fontFamily,
|
|
120490
|
+
fontPanose,
|
|
120491
|
+
fontPitchFamily,
|
|
120492
|
+
fontCharset,
|
|
120276
120493
|
sizePercent,
|
|
120277
120494
|
sizePts,
|
|
120278
120495
|
color: color2,
|
|
@@ -120294,6 +120511,9 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
120294
120511
|
autoNumStartAt,
|
|
120295
120512
|
paragraphIndex,
|
|
120296
120513
|
fontFamily,
|
|
120514
|
+
fontPanose,
|
|
120515
|
+
fontPitchFamily,
|
|
120516
|
+
fontCharset,
|
|
120297
120517
|
sizePercent,
|
|
120298
120518
|
sizePts,
|
|
120299
120519
|
color: color2,
|
|
@@ -120330,6 +120550,9 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
120330
120550
|
imageDataUrl,
|
|
120331
120551
|
imageBlipFillXml,
|
|
120332
120552
|
fontFamily,
|
|
120553
|
+
fontPanose,
|
|
120554
|
+
fontPitchFamily,
|
|
120555
|
+
fontCharset,
|
|
120333
120556
|
sizePercent,
|
|
120334
120557
|
sizePts,
|
|
120335
120558
|
color: color2,
|
|
@@ -120341,6 +120564,9 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
120341
120564
|
return {
|
|
120342
120565
|
imageBlipFillXml,
|
|
120343
120566
|
fontFamily,
|
|
120567
|
+
fontPanose,
|
|
120568
|
+
fontPitchFamily,
|
|
120569
|
+
fontCharset,
|
|
120344
120570
|
sizePercent,
|
|
120345
120571
|
sizePts,
|
|
120346
120572
|
color: color2,
|
|
@@ -121101,9 +121327,9 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
121101
121327
|
if (fldGuidAttr) {
|
|
121102
121328
|
fieldSegment.fieldGuidAttr = fldGuidAttr;
|
|
121103
121329
|
}
|
|
121104
|
-
|
|
121105
|
-
|
|
121106
|
-
fieldSegment.fieldParagraphPropertiesXml = fieldPPr;
|
|
121330
|
+
if (field["a:pPr"] !== void 0) {
|
|
121331
|
+
const fieldPPr = field["a:pPr"];
|
|
121332
|
+
fieldSegment.fieldParagraphPropertiesXml = typeof fieldPPr === "object" && fieldPPr !== null ? fieldPPr : {};
|
|
121107
121333
|
}
|
|
121108
121334
|
segments.push(fieldSegment);
|
|
121109
121335
|
maybeSeed(fieldRunStyle);
|
|
@@ -121645,7 +121871,18 @@ var init_PptxHandlerRuntimeShapeParsing = __esm({
|
|
|
121645
121871
|
yEmu,
|
|
121646
121872
|
widthEmu,
|
|
121647
121873
|
heightEmu,
|
|
121648
|
-
|
|
121874
|
+
// A shape with no `p:txBody` at all (own or inherited) - a bare
|
|
121875
|
+
// decorative rectangle, say - has no textual capability, and
|
|
121876
|
+
// `text` must stay `undefined` to say so. `text` was unconditionally
|
|
121877
|
+
// initialized to `''` above and only ever reassigned when a txBody
|
|
121878
|
+
// WAS found, so a bare shape's `''` was indistinguishable from an
|
|
121879
|
+
// authored-but-empty text box; the save writer's
|
|
121880
|
+
// `typeof el.text === 'string'` check then created a brand-new empty
|
|
121881
|
+
// `<p:txBody/>` on that shape's `rawXml` the moment it was rewritten
|
|
121882
|
+
// (any edit on a slide master/layout element rewrites its whole
|
|
121883
|
+
// shape node), which real PowerPoint never authors on a shape with
|
|
121884
|
+
// no text.
|
|
121885
|
+
text: txBody !== void 0 ? text22 : void 0,
|
|
121649
121886
|
// A text-less shape (only an empty `a:endParaRPr`, or no `a:p` at
|
|
121650
121887
|
// all) still has its own `a:bodyPr`: PowerPoint applies the
|
|
121651
121888
|
// vertical anchor, insets and autofit of an EMPTY text box just
|
|
@@ -121772,6 +122009,8 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
121772
122009
|
const mediaCNvPr = pic?.["p:nvPicPr"]?.["p:cNvPr"];
|
|
121773
122010
|
const mediaAltText = String(mediaCNvPr?.["@_descr"] || "").trim() || void 0;
|
|
121774
122011
|
const mediaTitle = String(mediaCNvPr?.["@_title"] || "").trim() || void 0;
|
|
122012
|
+
const mediaSlideRels = this.slideRelsMap.get(slidePath);
|
|
122013
|
+
const { actionClick: mediaActionClick, actionHover: mediaActionHover } = this.parseElementActions(mediaCNvPr, mediaSlideRels, this.orderedSlidePaths);
|
|
121775
122014
|
this.compatibilityService.inspectMediaReferenceCompatibility(
|
|
121776
122015
|
mediaReference.kind,
|
|
121777
122016
|
slidePath,
|
|
@@ -121860,6 +122099,8 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
121860
122099
|
posterFrameData,
|
|
121861
122100
|
...mediaAltText !== void 0 ? { altText: mediaAltText } : {},
|
|
121862
122101
|
...mediaTitle !== void 0 ? { title: mediaTitle } : {},
|
|
122102
|
+
...mediaActionClick !== void 0 ? { actionClick: mediaActionClick } : {},
|
|
122103
|
+
...mediaActionHover !== void 0 ? { actionHover: mediaActionHover } : {},
|
|
121863
122104
|
...this.readImageCropFromBlipFill(posterBlipFill),
|
|
121864
122105
|
// Real PowerPoint media is `p:pic`-shaped even though the
|
|
121865
122106
|
// `media` type buckets as `p:graphicFrame`, so its locks live
|
|
@@ -129788,6 +130029,7 @@ var init_PptxHandlerRuntimeLoadSession = __esm({
|
|
|
129788
130029
|
this.externalRelsMap.clear();
|
|
129789
130030
|
this.slideMap.clear();
|
|
129790
130031
|
this.savedSlideFingerprints.clear();
|
|
130032
|
+
this.chartDataBaselines.clear();
|
|
129791
130033
|
this.layoutCache.clear();
|
|
129792
130034
|
this.masterCache.clear();
|
|
129793
130035
|
this.templateElementBaselines.reset();
|
|
@@ -130093,6 +130335,7 @@ var init_PptxHandlerRuntimeLoadSession = __esm({
|
|
|
130093
130335
|
parseNativeAnimations: (slideXml3, slidePath) => this.parseNativeAnimations(slideXml3, slidePath),
|
|
130094
130336
|
getSmartArtDataForGraphicFrame: (slidePath, graphicFrame) => this.getSmartArtDataForGraphicFrame(slidePath, graphicFrame),
|
|
130095
130337
|
getChartDataForGraphicFrame: (slidePath, graphicFrame) => this.getChartDataForGraphicFrame(slidePath, graphicFrame),
|
|
130338
|
+
rememberChartDataBaseline: (chartData) => this.rememberChartDataBaseline(chartData),
|
|
130096
130339
|
parseSlideCustomerData: (slideXml3, slidePath) => this.parseSlideCustomerData(slideXml3, slidePath),
|
|
130097
130340
|
parseSlideActiveXControls: (slideXml3) => this.parseSlideActiveXControls(slideXml3)
|
|
130098
130341
|
});
|
|
@@ -130273,6 +130516,7 @@ var init_PptxHandlerRuntimeLoadPipeline = __esm({
|
|
|
130273
130516
|
this.imageDataCache.clear();
|
|
130274
130517
|
this.slideMap.clear();
|
|
130275
130518
|
this.savedSlideFingerprints.clear();
|
|
130519
|
+
this.chartDataBaselines.clear();
|
|
130276
130520
|
this.slideRelsMap.clear();
|
|
130277
130521
|
this.externalRelsMap.clear();
|
|
130278
130522
|
this.layoutCache.clear();
|
|
@@ -148953,7 +149197,7 @@ var init_fill_style = __esm2({
|
|
|
148953
149197
|
}
|
|
148954
149198
|
});
|
|
148955
149199
|
function isTextOrientationMatrix2(value) {
|
|
148956
|
-
return Array.isArray(value) && value.length === 4 && value.every((
|
|
149200
|
+
return Array.isArray(value) && value.length === 4 && value.every((entry3) => typeof entry3 === "number" && Number.isFinite(entry3));
|
|
148957
149201
|
}
|
|
148958
149202
|
function multiplyTextOrientationMatrices2(left, right) {
|
|
148959
149203
|
return [
|
|
@@ -149681,11 +149925,11 @@ var init_chart_font = __esm2({
|
|
|
149681
149925
|
DEFAULT_CHART_DATA_LABEL_PX = chartFontPx(9);
|
|
149682
149926
|
}
|
|
149683
149927
|
});
|
|
149684
|
-
function sizePx(
|
|
149685
|
-
return
|
|
149928
|
+
function sizePx(entry3, fallbackPx) {
|
|
149929
|
+
return entry3?.fontSize !== void 0 ? chartFontPx(entry3.fontSize) : fallbackPx;
|
|
149686
149930
|
}
|
|
149687
|
-
function colorOr(
|
|
149688
|
-
return
|
|
149931
|
+
function colorOr(entry3, fallback) {
|
|
149932
|
+
return entry3?.color ?? fallback;
|
|
149689
149933
|
}
|
|
149690
149934
|
function resolveChartStyleDefaults(chartData) {
|
|
149691
149935
|
const def = chartData?.chartStyleDefinition;
|
|
@@ -150418,19 +150662,19 @@ var init_chart_bar3d_face_picture = __esm2({
|
|
|
150418
150662
|
});
|
|
150419
150663
|
function computeChartLegendLayout(vm) {
|
|
150420
150664
|
const vertical = vm.legendAnchor === "start";
|
|
150421
|
-
return vm.legend.map((
|
|
150422
|
-
const x = vertical ? vm.legendX : vm.legendX - vm.legend.length * LEGEND_ITEM_WIDTH / 2 + i2 * LEGEND_ITEM_WIDTH, y = vertical ? vm.legendY + i2 * LEGEND_ITEM_HEIGHT : vm.legendY, textStyle =
|
|
150665
|
+
return vm.legend.map((entry3, i2) => {
|
|
150666
|
+
const x = vertical ? vm.legendX : vm.legendX - vm.legend.length * LEGEND_ITEM_WIDTH / 2 + i2 * LEGEND_ITEM_WIDTH, y = vertical ? vm.legendY + i2 * LEGEND_ITEM_HEIGHT : vm.legendY, textStyle = entry3.textStyle;
|
|
150423
150667
|
return {
|
|
150424
150668
|
x,
|
|
150425
150669
|
y,
|
|
150426
|
-
color:
|
|
150427
|
-
label:
|
|
150670
|
+
color: entry3.color,
|
|
150671
|
+
label: entry3.label,
|
|
150428
150672
|
fontSize: textStyle?.fontSize !== void 0 ? chartFontPx(textStyle.fontSize) : DEFAULT_LEGEND_FONT_SIZE,
|
|
150429
150673
|
fill: textStyle?.color ?? DEFAULT_LEGEND_TEXT_COLOR,
|
|
150430
150674
|
fontWeight: textStyle?.bold ? "bold" : "normal",
|
|
150431
150675
|
fontStyle: textStyle?.italic ? "italic" : "normal",
|
|
150432
150676
|
fontFamily: textStyle?.fontFamily,
|
|
150433
|
-
...
|
|
150677
|
+
...entry3.lineSwatch ? { lineSwatch: entry3.lineSwatch } : {}
|
|
150434
150678
|
};
|
|
150435
150679
|
});
|
|
150436
150680
|
}
|
|
@@ -151451,7 +151695,7 @@ function buildDataLabelText(params) {
|
|
|
151451
151695
|
valueColor = formatted?.color;
|
|
151452
151696
|
}
|
|
151453
151697
|
if (content.showPercent) {
|
|
151454
|
-
const base = percentBase ?? series.values.reduce((total,
|
|
151698
|
+
const base = percentBase ?? series.values.reduce((total, entry3) => total + Math.abs(entry3), 0);
|
|
151455
151699
|
parts.push(base > 0 ? `${Math.round(Math.abs(value) / base * 100)}%` : "0%");
|
|
151456
151700
|
}
|
|
151457
151701
|
if (content.showBubbleSize) {
|
|
@@ -152217,9 +152461,9 @@ function categoryTotals(series, catCount) {
|
|
|
152217
152461
|
);
|
|
152218
152462
|
}
|
|
152219
152463
|
function buildPercentStackedBars(chartData, catCount, layout, primaryRange, sourceIndices2, invertNegativeFill2) {
|
|
152220
|
-
const primitives = [], dataLabels = [], series = chartData.series, palette = chartData.colorPalette, showLabels = chartData.style?.hasDataLabels, barGroupWidth = layout.plotWidth / Math.max(catCount, 1), barW = barGroupWidth * 0.6, barOffset = (barGroupWidth - barW) / 2, displaySeries = series.map((
|
|
152221
|
-
...
|
|
152222
|
-
values: sourceIndices2.map((sourceIndex) =>
|
|
152464
|
+
const primitives = [], dataLabels = [], series = chartData.series, palette = chartData.colorPalette, showLabels = chartData.style?.hasDataLabels, barGroupWidth = layout.plotWidth / Math.max(catCount, 1), barW = barGroupWidth * 0.6, barOffset = (barGroupWidth - barW) / 2, displaySeries = series.map((entry3) => ({
|
|
152465
|
+
...entry3,
|
|
152466
|
+
values: sourceIndices2.map((sourceIndex) => entry3.values[sourceIndex] ?? 0)
|
|
152223
152467
|
})), totals = categoryTotals(displaySeries, catCount);
|
|
152224
152468
|
for (let ci = 0; ci < catCount; ci++) {
|
|
152225
152469
|
let posRunning = 0, negRunning = 0;
|
|
@@ -152392,9 +152636,9 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
152392
152636
|
return { primitives, dataLabels };
|
|
152393
152637
|
}
|
|
152394
152638
|
if (grouping === "stacked") {
|
|
152395
|
-
const displaySeries = series.map((
|
|
152396
|
-
...
|
|
152397
|
-
values: sourceIndices2.map((sourceIndex) =>
|
|
152639
|
+
const displaySeries = series.map((entry3) => ({
|
|
152640
|
+
...entry3,
|
|
152641
|
+
values: sourceIndices2.map((sourceIndex) => entry3.values[sourceIndex] ?? 0)
|
|
152398
152642
|
})), rects = computeStackedBarRects(displaySeries, catCount, layout, primaryRange, palette);
|
|
152399
152643
|
for (const r of rects) {
|
|
152400
152644
|
let fill = r.fill, part, title;
|
|
@@ -152592,16 +152836,16 @@ function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, s
|
|
|
152592
152836
|
);
|
|
152593
152837
|
return { displayValues, visible };
|
|
152594
152838
|
}), stackedPlots = isStackedMode ? computeStackedSeriesPlots(
|
|
152595
|
-
resolved.map((
|
|
152839
|
+
resolved.map((entry3) => entry3?.displayValues ?? []),
|
|
152596
152840
|
catCount,
|
|
152597
152841
|
isPercent
|
|
152598
152842
|
) : void 0;
|
|
152599
152843
|
for (let si = 0; si < chartData.series.length; si++) {
|
|
152600
|
-
const series = chartData.series[si],
|
|
152601
|
-
if (!
|
|
152844
|
+
const series = chartData.series[si], entry3 = resolved[si];
|
|
152845
|
+
if (!entry3) {
|
|
152602
152846
|
continue;
|
|
152603
152847
|
}
|
|
152604
|
-
const { displayValues, visible } =
|
|
152848
|
+
const { displayValues, visible } = entry3, activeRange = isStackedMode ? primaryRange : secondaryIdx.has(si) && secondaryRange ? secondaryRange : primaryRange, plotValues = stackedPlots ? stackedPlots[si].cumulative : displayValues, pts = computeLinePoints(plotValues, catCount, layout, activeRange).map((point, index) => ({
|
|
152605
152849
|
...point,
|
|
152606
152850
|
x: xPositions?.[index] ?? point.x
|
|
152607
152851
|
})), c = seriesColor22(series, si, chartData.colorPalette), seriesPart = { role: "series", seriesIndex: si }, allVisible = visible.every(Boolean);
|
|
@@ -154608,7 +154852,7 @@ function computeStockCandlePrimitives(seriesSet, chartData, layout, range, catCo
|
|
|
154608
154852
|
return primitives;
|
|
154609
154853
|
}
|
|
154610
154854
|
function findComboStockSeries(series) {
|
|
154611
|
-
return series.map((s, index) => ({ series: s, index })).filter((
|
|
154855
|
+
return series.map((s, index) => ({ series: s, index })).filter((entry3) => entry3.series.seriesChartType === "stock");
|
|
154612
154856
|
}
|
|
154613
154857
|
function computeComboStockOverlay(stockEntries, chartData, layout, range, catCount, sourceIndices2, xPositions) {
|
|
154614
154858
|
if (stockEntries.length < 3) {
|
|
@@ -154688,8 +154932,8 @@ function groupComboSeriesIndices(series) {
|
|
|
154688
154932
|
const barIndices = [];
|
|
154689
154933
|
const lineIndices = [];
|
|
154690
154934
|
const areaIndices = [];
|
|
154691
|
-
series.forEach((
|
|
154692
|
-
const kind = classifyComboSeries(
|
|
154935
|
+
series.forEach((entry3, index) => {
|
|
154936
|
+
const kind = classifyComboSeries(entry3, index);
|
|
154693
154937
|
const target = kind === "bar" ? barIndices : kind === "area" ? areaIndices : lineIndices;
|
|
154694
154938
|
target.push(index);
|
|
154695
154939
|
});
|
|
@@ -154914,14 +155158,14 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
154914
155158
|
);
|
|
154915
155159
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
154916
155160
|
const { primary, secondary } = splitSeriesByAxis(chartData.series, chartData.axes);
|
|
154917
|
-
const secondaryIndexes = new Set(secondary.map((
|
|
154918
|
-
const primarySeries = primary.length > 0 ? primary.map((
|
|
155161
|
+
const secondaryIndexes = new Set(secondary.map((entry3) => entry3.index));
|
|
155162
|
+
const primarySeries = primary.length > 0 ? primary.map((entry3) => entry3.series) : chartData.series;
|
|
154919
155163
|
const primaryAxisId = getPrimaryValueAxisId(chartData.axes);
|
|
154920
155164
|
const primaryAxis = chartData.axes?.find((axis) => axis.axisId === primaryAxisId);
|
|
154921
155165
|
const secondaryAxisFormatting = getSecondaryValueAxis(chartData.axes);
|
|
154922
155166
|
const primaryRange = computeValueRangeForAxis(primarySeries, primaryAxis, layout.autoPlotHeight);
|
|
154923
155167
|
const secondaryRange = secondary.length > 0 ? computeValueRangeForAxis(
|
|
154924
|
-
secondary.map((
|
|
155168
|
+
secondary.map((entry3) => entry3.series),
|
|
154925
155169
|
secondaryAxisFormatting,
|
|
154926
155170
|
layout.autoPlotHeight
|
|
154927
155171
|
) : void 0;
|
|
@@ -154983,7 +155227,7 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
154983
155227
|
const dataLabels = [];
|
|
154984
155228
|
const stockEntries = findComboStockSeries(chartData.series);
|
|
154985
155229
|
const isStockCombo = stockEntries.length >= 3;
|
|
154986
|
-
const stockIndexes = new Set(stockEntries.map((
|
|
155230
|
+
const stockIndexes = new Set(stockEntries.map((entry3) => entry3.index));
|
|
154987
155231
|
if (!isStockCombo) {
|
|
154988
155232
|
const helperOpts = { mode: "line", xPositions: horizontalAxis.xPositions };
|
|
154989
155233
|
primitives.push(
|
|
@@ -155676,10 +155920,10 @@ function buildHistogramViewModel(element, chartData, categoryLabels) {
|
|
|
155676
155920
|
const baseEntries = (bins?.map((bin) => ({ value: bin.value, label: bin.label })) ?? (series?.values ?? []).map((value, index) => ({
|
|
155677
155921
|
value,
|
|
155678
155922
|
label: categoryLabels[index] ?? ""
|
|
155679
|
-
}))).map((
|
|
155923
|
+
}))).map((entry3, sourcePointIndex) => ({ ...entry3, sourcePointIndex }));
|
|
155680
155924
|
const entries = paretoIndex >= 0 ? orderParetoEntries(baseEntries) : baseEntries;
|
|
155681
|
-
const values = entries.map((
|
|
155682
|
-
const labels = entries.map((
|
|
155925
|
+
const values = entries.map((entry3) => entry3.value);
|
|
155926
|
+
const labels = entries.map((entry3) => entry3.label);
|
|
155683
155927
|
const range = distributionRange([{ name: series?.name ?? "", values }]);
|
|
155684
155928
|
const bars = computeHistogramBars(
|
|
155685
155929
|
values,
|
|
@@ -156030,7 +156274,7 @@ function applyLegendEntryOverrides(legend, entries, defaultTextStyle) {
|
|
|
156030
156274
|
if ((!entries || entries.length === 0) && !defaultTextStyle) {
|
|
156031
156275
|
return legend;
|
|
156032
156276
|
}
|
|
156033
|
-
const byIndex = new Map((entries ?? []).map((
|
|
156277
|
+
const byIndex = new Map((entries ?? []).map((entry3) => [entry3.index, entry3]));
|
|
156034
156278
|
const result = [];
|
|
156035
156279
|
legend.forEach((item, index) => {
|
|
156036
156280
|
const override = byIndex.get(index);
|
|
@@ -157376,7 +157620,7 @@ function buildPieViewModel(element, chartData, categoryLabels, isDoughnut) {
|
|
|
157376
157620
|
})
|
|
157377
157621
|
), dataLabels = [];
|
|
157378
157622
|
if (chartData.style?.hasDataLabels) {
|
|
157379
|
-
const percentBase = values.reduce((total,
|
|
157623
|
+
const percentBase = values.reduce((total, entry3) => total + Math.abs(entry3), 0), labelResult = buildPieDataLabels({
|
|
157380
157624
|
slices,
|
|
157381
157625
|
values,
|
|
157382
157626
|
cx,
|
|
@@ -158264,7 +158508,7 @@ function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
|
158264
158508
|
options,
|
|
158265
158509
|
resolveRegionCode
|
|
158266
158510
|
);
|
|
158267
|
-
const values = entries.map((
|
|
158511
|
+
const values = entries.map((entry3) => entry3.value);
|
|
158268
158512
|
const finiteVals = values.filter((v) => Number.isFinite(v));
|
|
158269
158513
|
const minVal = finiteVals.length > 0 ? Math.min(...finiteVals) : 0;
|
|
158270
158514
|
const maxVal = finiteVals.length > 0 ? Math.max(...finiteVals) : 1;
|
|
@@ -158277,15 +158521,15 @@ function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
|
158277
158521
|
const colorScale = valueColorStops ? buildValueColorScale(valueColorStops) : sequentialColorScale;
|
|
158278
158522
|
const regionValueMap = /* @__PURE__ */ new Map();
|
|
158279
158523
|
const unmatchedRows = [];
|
|
158280
|
-
for (const
|
|
158281
|
-
if (
|
|
158282
|
-
regionValueMap.set(
|
|
158283
|
-
value:
|
|
158284
|
-
label:
|
|
158285
|
-
sourceIndex:
|
|
158524
|
+
for (const entry3 of entries) {
|
|
158525
|
+
if (entry3.code !== void 0) {
|
|
158526
|
+
regionValueMap.set(entry3.code, {
|
|
158527
|
+
value: entry3.value,
|
|
158528
|
+
label: entry3.label,
|
|
158529
|
+
sourceIndex: entry3.sourceIndex
|
|
158286
158530
|
});
|
|
158287
158531
|
} else {
|
|
158288
|
-
unmatchedRows.push({ label:
|
|
158532
|
+
unmatchedRows.push({ label: entry3.label, value: entry3.value });
|
|
158289
158533
|
}
|
|
158290
158534
|
}
|
|
158291
158535
|
const legendHeight = 30;
|
|
@@ -158320,10 +158564,10 @@ function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
|
158320
158564
|
dominantBaseline: "auto"
|
|
158321
158565
|
} : void 0;
|
|
158322
158566
|
for (const region of WORLD_REGIONS) {
|
|
158323
|
-
const
|
|
158567
|
+
const entry3 = regionValueMap.get(region.code);
|
|
158324
158568
|
let fill = "#e2e8f0";
|
|
158325
|
-
if (
|
|
158326
|
-
const t = normalizeValue(
|
|
158569
|
+
if (entry3 !== void 0) {
|
|
158570
|
+
const t = normalizeValue(entry3.value, minVal, maxVal);
|
|
158327
158571
|
fill = colorScale(t);
|
|
158328
158572
|
}
|
|
158329
158573
|
const scaledPath = scalePathD(region.path, mapScale, mapOffsetX, mapOffsetY);
|
|
@@ -158336,17 +158580,17 @@ function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
|
158336
158580
|
// Hover tooltip. A choropleth prints only the value inside the shape
|
|
158337
158581
|
// (and only where the shape is big enough), so without this the reader
|
|
158338
158582
|
// has no way to find out WHICH country a patch of colour is.
|
|
158339
|
-
title:
|
|
158340
|
-
...
|
|
158583
|
+
title: entry3 ? `${region.name}: ${formatAxisValue2(entry3.value)}` : region.name,
|
|
158584
|
+
...entry3 ? {
|
|
158341
158585
|
part: {
|
|
158342
158586
|
role: "dataPoint",
|
|
158343
158587
|
seriesIndex: 0,
|
|
158344
|
-
pointIndex:
|
|
158588
|
+
pointIndex: entry3.sourceIndex
|
|
158345
158589
|
}
|
|
158346
158590
|
} : {}
|
|
158347
158591
|
});
|
|
158348
158592
|
const bounds = regionBounds(region);
|
|
158349
|
-
if (
|
|
158593
|
+
if (entry3 !== void 0 && shouldRenderRegionLabel(
|
|
158350
158594
|
options?.regionLabelLayout,
|
|
158351
158595
|
(bounds.maxX - bounds.minX) * mapScale,
|
|
158352
158596
|
(bounds.maxY - bounds.minY) * mapScale
|
|
@@ -158357,7 +158601,7 @@ function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
|
158357
158601
|
kind: "text",
|
|
158358
158602
|
x: lx,
|
|
158359
158603
|
y: ly,
|
|
158360
|
-
text: formatRegionMapValue(
|
|
158604
|
+
text: formatRegionMapValue(entry3.value, options?.cultureLanguage),
|
|
158361
158605
|
fontSize: Math.max(6, 7 * mapScale),
|
|
158362
158606
|
fill: "#1e293b",
|
|
158363
158607
|
textAnchor: "middle",
|
|
@@ -159104,18 +159348,18 @@ function orderParetoEntries(entries) {
|
|
|
159104
159348
|
);
|
|
159105
159349
|
}
|
|
159106
159350
|
function buildParetoPrimitives(entries, layout, series, seriesIndex) {
|
|
159107
|
-
const total = entries.reduce((sum,
|
|
159351
|
+
const total = entries.reduce((sum, entry3) => sum + Math.max(entry3.value, 0), 0);
|
|
159108
159352
|
if (total <= 0) {
|
|
159109
159353
|
return [];
|
|
159110
159354
|
}
|
|
159111
159355
|
let cumulative = 0;
|
|
159112
|
-
const points4 = entries.map((
|
|
159113
|
-
cumulative += Math.max(
|
|
159356
|
+
const points4 = entries.map((entry3, displayIndex) => {
|
|
159357
|
+
cumulative += Math.max(entry3.value, 0);
|
|
159114
159358
|
const percentage2 = displayIndex === entries.length - 1 ? 100 : cumulative / total * 100;
|
|
159115
159359
|
return {
|
|
159116
159360
|
x: layout.plotLeft + layout.plotWidth * (displayIndex + 0.5) / entries.length,
|
|
159117
159361
|
y: layout.plotBottom - layout.plotHeight * percentage2 / 100,
|
|
159118
|
-
pointIndex:
|
|
159362
|
+
pointIndex: entry3.sourcePointIndex
|
|
159119
159363
|
};
|
|
159120
159364
|
});
|
|
159121
159365
|
const color2 = series.color ?? "#ED7D31";
|
|
@@ -163753,7 +163997,7 @@ var THEME_CATALOG = [
|
|
|
163753
163997
|
}
|
|
163754
163998
|
];
|
|
163755
163999
|
function resolveThemeCatalogEntry(key2, catalog = THEME_CATALOG) {
|
|
163756
|
-
return catalog.find((
|
|
164000
|
+
return catalog.find((entry3) => entry3.key === key2)?.theme;
|
|
163757
164001
|
}
|
|
163758
164002
|
function corePreset(id) {
|
|
163759
164003
|
const preset = exports.THEME_PRESETS.find((p) => p.id === id);
|
|
@@ -164131,9 +164375,9 @@ function collectTableStyleImagePaths(tableStyleMap) {
|
|
|
164131
164375
|
if (!tableStyleMap) {
|
|
164132
164376
|
return { paths, refs };
|
|
164133
164377
|
}
|
|
164134
|
-
for (const [styleId,
|
|
164378
|
+
for (const [styleId, entry3] of Object.entries(tableStyleMap)) {
|
|
164135
164379
|
for (const fillKey of TABLE_STYLE_FILL_KEYS) {
|
|
164136
|
-
const fill =
|
|
164380
|
+
const fill = entry3[fillKey];
|
|
164137
164381
|
const path = fill?.image?.path;
|
|
164138
164382
|
if (path && !fill?.image?.data && !isExternalUrl2(path)) {
|
|
164139
164383
|
paths.add(path);
|
|
@@ -164159,11 +164403,11 @@ function applyTableStyleImagePatches(tableStyleMap, resolvedMap, refs) {
|
|
|
164159
164403
|
}
|
|
164160
164404
|
const next = { ...tableStyleMap };
|
|
164161
164405
|
for (const [styleId, patches] of patchesByStyleId) {
|
|
164162
|
-
const
|
|
164163
|
-
if (!
|
|
164406
|
+
const entry3 = next[styleId];
|
|
164407
|
+
if (!entry3) {
|
|
164164
164408
|
continue;
|
|
164165
164409
|
}
|
|
164166
|
-
const patchedEntry = { ...
|
|
164410
|
+
const patchedEntry = { ...entry3 };
|
|
164167
164411
|
for (const { fillKey, url } of patches) {
|
|
164168
164412
|
const fill = patchedEntry[fillKey];
|
|
164169
164413
|
if (!fill?.image) {
|
|
@@ -171622,7 +171866,7 @@ function ensureArr(val2) {
|
|
|
171622
171866
|
return [];
|
|
171623
171867
|
}
|
|
171624
171868
|
if (Array.isArray(val2)) {
|
|
171625
|
-
return val2.filter((
|
|
171869
|
+
return val2.filter((entry3) => Boolean(entry3) && typeof entry3 === "object");
|
|
171626
171870
|
}
|
|
171627
171871
|
if (typeof val2 === "object") {
|
|
171628
171872
|
return [val2];
|
|
@@ -171668,7 +171912,7 @@ function readRunText2(run) {
|
|
|
171668
171912
|
return String(t);
|
|
171669
171913
|
}
|
|
171670
171914
|
if (Array.isArray(t)) {
|
|
171671
|
-
return t.map((
|
|
171915
|
+
return t.map((entry3) => readRunText2({ "m:t": entry3 })).join("");
|
|
171672
171916
|
}
|
|
171673
171917
|
if (t && typeof t === "object") {
|
|
171674
171918
|
const inner = t["#text"];
|
|
@@ -171741,7 +171985,7 @@ function collectText2(node) {
|
|
|
171741
171985
|
return String(node);
|
|
171742
171986
|
}
|
|
171743
171987
|
if (Array.isArray(node)) {
|
|
171744
|
-
return node.map((
|
|
171988
|
+
return node.map((entry3) => collectText2(entry3)).join("");
|
|
171745
171989
|
}
|
|
171746
171990
|
if (typeof node !== "object") {
|
|
171747
171991
|
return "";
|
|
@@ -172401,7 +172645,7 @@ function buildParetoInsertData() {
|
|
|
172401
172645
|
},
|
|
172402
172646
|
{
|
|
172403
172647
|
name: "Cumulative %",
|
|
172404
|
-
values: cumulativePercentOfTotal(ordered4.map((
|
|
172648
|
+
values: cumulativePercentOfTotal(ordered4.map((entry3) => entry3.value)),
|
|
172405
172649
|
histogramOptions: { layout: "pareto" }
|
|
172406
172650
|
}
|
|
172407
172651
|
]
|
|
@@ -172848,8 +173092,8 @@ var BUTTON_ORDER = [
|
|
|
172848
173092
|
];
|
|
172849
173093
|
function buildButtons(selectionBox, showFilters) {
|
|
172850
173094
|
const x = selectionBox.x + selectionBox.width + OUTSIDE_GAP;
|
|
172851
|
-
return BUTTON_ORDER.filter((
|
|
172852
|
-
...
|
|
173095
|
+
return BUTTON_ORDER.filter((entry3) => entry3.id !== "filters" || showFilters).map((entry3, i2) => ({
|
|
173096
|
+
...entry3,
|
|
172853
173097
|
x,
|
|
172854
173098
|
y: selectionBox.y + i2 * (CHART_QUICK_ACTION_BUTTON_SIZE + BUTTON_GAP),
|
|
172855
173099
|
size: CHART_QUICK_ACTION_BUTTON_SIZE
|
|
@@ -172896,12 +173140,12 @@ function buildFilters(chartData) {
|
|
|
172896
173140
|
seriesIndex: index,
|
|
172897
173141
|
sortKey: series2.idx ?? index
|
|
172898
173142
|
}));
|
|
172899
|
-
const filtered = (chartData.filteredSeries ?? []).map((
|
|
173143
|
+
const filtered = (chartData.filteredSeries ?? []).map((entry3, index) => ({
|
|
172900
173144
|
key: `filtered-${index}`,
|
|
172901
|
-
name:
|
|
173145
|
+
name: entry3.name ?? chartData.filteredSeriesTitle ?? `Series ${index + 1}`,
|
|
172902
173146
|
visible: false,
|
|
172903
173147
|
filteredIndex: index,
|
|
172904
|
-
sortKey:
|
|
173148
|
+
sortKey: entry3.idx
|
|
172905
173149
|
}));
|
|
172906
173150
|
const series = [...visibleSeries, ...filtered].sort((a, b) => a.sortKey - b.sortKey).map(({ sortKey: _sortKey, ...rest }) => rest);
|
|
172907
173151
|
return { visible: series.length > 1, series };
|
|
@@ -173340,6 +173584,56 @@ init_chart_region_map_data();
|
|
|
173340
173584
|
init_chart_overlays();
|
|
173341
173585
|
init_chart_data_table_render();
|
|
173342
173586
|
init_chart_legend_entries();
|
|
173587
|
+
var SOLID = "linear-gradient(#000, #000)";
|
|
173588
|
+
var HOLE_IMAGE = {
|
|
173589
|
+
box: SOLID,
|
|
173590
|
+
// `mask-size: 100% 100%` on this gradient draws an ellipse inscribed
|
|
173591
|
+
// touching all four edge midpoints, matching the COM capture exactly.
|
|
173592
|
+
circle: "radial-gradient(circle, #000 0%, #000 100%)",
|
|
173593
|
+
// This polygon's points already touch the edge midpoints at 100% size
|
|
173594
|
+
// (no headroom needed, unlike `diamondOut`'s growing-past-corners variant).
|
|
173595
|
+
diamond: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,0 100,50 50,100 0,50' fill='%23000'/%3E%3C/svg%3E")`
|
|
173596
|
+
};
|
|
173597
|
+
function maskHoleDecl(shape, phase) {
|
|
173598
|
+
const holeSize = phase === "hidden" ? "100% 100%" : "0% 0%";
|
|
173599
|
+
return [
|
|
173600
|
+
`mask-image: ${HOLE_IMAGE[shape]}, ${SOLID};`,
|
|
173601
|
+
"mask-position: center, center;",
|
|
173602
|
+
"mask-repeat: no-repeat, no-repeat;",
|
|
173603
|
+
`mask-size: ${holeSize}, 100% 100%;`,
|
|
173604
|
+
"mask-composite: add, exclude;"
|
|
173605
|
+
].join(" ");
|
|
173606
|
+
}
|
|
173607
|
+
function maskHoleInitialStyle(shape) {
|
|
173608
|
+
return {
|
|
173609
|
+
maskImage: `${HOLE_IMAGE[shape]}, ${SOLID}`,
|
|
173610
|
+
maskPosition: "center, center",
|
|
173611
|
+
maskRepeat: "no-repeat, no-repeat",
|
|
173612
|
+
maskSize: "100% 100%, 100% 100%",
|
|
173613
|
+
maskComposite: "add, exclude",
|
|
173614
|
+
opacity: 1
|
|
173615
|
+
};
|
|
173616
|
+
}
|
|
173617
|
+
function maskPlusHoleDecl(phase) {
|
|
173618
|
+
const barSize = phase === "hidden" ? "100%" : "0%";
|
|
173619
|
+
return [
|
|
173620
|
+
`mask-image: ${SOLID}, ${SOLID}, ${SOLID};`,
|
|
173621
|
+
"mask-position: center, center, center;",
|
|
173622
|
+
"mask-repeat: no-repeat, no-repeat, no-repeat;",
|
|
173623
|
+
`mask-size: 100% ${barSize}, ${barSize} 100%, 100% 100%;`,
|
|
173624
|
+
"mask-composite: add, add, exclude;"
|
|
173625
|
+
].join(" ");
|
|
173626
|
+
}
|
|
173627
|
+
function maskPlusHoleInitialStyle() {
|
|
173628
|
+
return {
|
|
173629
|
+
maskImage: `${SOLID}, ${SOLID}, ${SOLID}`,
|
|
173630
|
+
maskPosition: "center, center, center",
|
|
173631
|
+
maskRepeat: "no-repeat, no-repeat, no-repeat",
|
|
173632
|
+
maskSize: "100% 100%, 100% 100%, 100% 100%",
|
|
173633
|
+
maskComposite: "add, add, exclude",
|
|
173634
|
+
opacity: 1
|
|
173635
|
+
};
|
|
173636
|
+
}
|
|
173343
173637
|
var HARD_STOP = "#000 50%, transparent 50%";
|
|
173344
173638
|
var EDGE_CONFIG = {
|
|
173345
173639
|
left: {
|
|
@@ -173371,38 +173665,38 @@ var EDGE_CONFIG = {
|
|
|
173371
173665
|
shownPos: "0% 100%"
|
|
173372
173666
|
}
|
|
173373
173667
|
};
|
|
173374
|
-
var
|
|
173668
|
+
var SOLID2 = "linear-gradient(#000, #000)";
|
|
173375
173669
|
var SHAPE_CONFIG = {
|
|
173376
173670
|
splitHorizontalIn: {
|
|
173377
|
-
image: `${
|
|
173671
|
+
image: `${SOLID2}, ${SOLID2}`,
|
|
173378
173672
|
position: "left top, left bottom",
|
|
173379
173673
|
repeat: "no-repeat, no-repeat",
|
|
173380
173674
|
hiddenSize: "100% 0%, 100% 0%",
|
|
173381
173675
|
shownSize: "100% 50.5%, 100% 50.5%"
|
|
173382
173676
|
},
|
|
173383
173677
|
splitHorizontalOut: {
|
|
173384
|
-
image:
|
|
173678
|
+
image: SOLID2,
|
|
173385
173679
|
position: "center",
|
|
173386
173680
|
repeat: "no-repeat",
|
|
173387
173681
|
hiddenSize: "100% 0%",
|
|
173388
173682
|
shownSize: "100% 101%"
|
|
173389
173683
|
},
|
|
173390
173684
|
splitVerticalIn: {
|
|
173391
|
-
image: `${
|
|
173685
|
+
image: `${SOLID2}, ${SOLID2}`,
|
|
173392
173686
|
position: "left top, right top",
|
|
173393
173687
|
repeat: "no-repeat, no-repeat",
|
|
173394
173688
|
hiddenSize: "0% 100%, 0% 100%",
|
|
173395
173689
|
shownSize: "50.5% 100%, 50.5% 100%"
|
|
173396
173690
|
},
|
|
173397
173691
|
splitVerticalOut: {
|
|
173398
|
-
image:
|
|
173692
|
+
image: SOLID2,
|
|
173399
173693
|
position: "center",
|
|
173400
173694
|
repeat: "no-repeat",
|
|
173401
173695
|
hiddenSize: "0% 100%",
|
|
173402
173696
|
shownSize: "101% 100%"
|
|
173403
173697
|
},
|
|
173404
173698
|
boxOut: {
|
|
173405
|
-
image:
|
|
173699
|
+
image: SOLID2,
|
|
173406
173700
|
position: "center",
|
|
173407
173701
|
repeat: "no-repeat",
|
|
173408
173702
|
hiddenSize: "0% 0%",
|
|
@@ -173430,7 +173724,7 @@ var SHAPE_CONFIG = {
|
|
|
173430
173724
|
// Two independent solid bars (mask layers composite by union): a
|
|
173431
173725
|
// full-width horizontal bar and a full-height vertical bar, both
|
|
173432
173726
|
// growing from a point at centre, so together they trace a cross.
|
|
173433
|
-
image: `${
|
|
173727
|
+
image: `${SOLID2}, ${SOLID2}`,
|
|
173434
173728
|
position: "center, center",
|
|
173435
173729
|
repeat: "no-repeat, no-repeat",
|
|
173436
173730
|
hiddenSize: "100% 0%, 0% 100%",
|
|
@@ -173573,8 +173867,8 @@ var KEYFRAME_PREFIX = "pptx-vue";
|
|
|
173573
173867
|
to { ${maskEdgeDecl("top", "shown")} opacity: 1; }
|
|
173574
173868
|
}
|
|
173575
173869
|
@keyframes ${KEYFRAME_PREFIX}-boxIn {
|
|
173576
|
-
from { ${
|
|
173577
|
-
to { ${
|
|
173870
|
+
from { ${maskHoleDecl("box", "hidden")} opacity: 1; }
|
|
173871
|
+
to { ${maskHoleDecl("box", "shown")} opacity: 1; }
|
|
173578
173872
|
}
|
|
173579
173873
|
@keyframes ${KEYFRAME_PREFIX}-floatIn {
|
|
173580
173874
|
from { opacity: 0; transform: translateY(40px); }
|
|
@@ -173755,6 +174049,15 @@ var EMPHASIS_PRESET_VALUES = [
|
|
|
173755
174049
|
"wave",
|
|
173756
174050
|
"boldFlash"
|
|
173757
174051
|
];
|
|
174052
|
+
var TRIGGER_VALUES = [
|
|
174053
|
+
"onClick",
|
|
174054
|
+
"onShapeClick",
|
|
174055
|
+
"onHover",
|
|
174056
|
+
"afterPrevious",
|
|
174057
|
+
"withPrevious",
|
|
174058
|
+
"afterDelay"
|
|
174059
|
+
];
|
|
174060
|
+
var TRIGGER_OPTIONS = TRIGGER_VALUES.map((value) => ({ value, labelKey: `pptx.animation.trigger.${value}` }));
|
|
173758
174061
|
var DIRECTIONAL_PRESETS = /* @__PURE__ */ new Set([
|
|
173759
174062
|
"flyIn",
|
|
173760
174063
|
"flyOut",
|
|
@@ -173871,9 +174174,9 @@ var EFFECT_SOUND_CATALOGUE = [
|
|
|
173871
174174
|
{ id: "whoosh", i18nKey: "pptx.animation.sound.whoosh", canonicalName: "WHOOSH.WAV" },
|
|
173872
174175
|
{ id: "wind", i18nKey: "pptx.animation.sound.wind", canonicalName: "WIND.WAV" }
|
|
173873
174176
|
];
|
|
173874
|
-
var BY_ID = new Map(EFFECT_SOUND_CATALOGUE.map((
|
|
174177
|
+
var BY_ID = new Map(EFFECT_SOUND_CATALOGUE.map((entry3) => [entry3.id, entry3]));
|
|
173875
174178
|
var BY_CANONICAL_NAME = new Map(
|
|
173876
|
-
EFFECT_SOUND_CATALOGUE.map((
|
|
174179
|
+
EFFECT_SOUND_CATALOGUE.map((entry3) => [entry3.canonicalName.toUpperCase(), entry3])
|
|
173877
174180
|
);
|
|
173878
174181
|
function effectSoundCatalogueEntry(id) {
|
|
173879
174182
|
return BY_ID.get(id);
|
|
@@ -174106,15 +174409,15 @@ function getEffectSoundAsset(id) {
|
|
|
174106
174409
|
if (cached) {
|
|
174107
174410
|
return cached;
|
|
174108
174411
|
}
|
|
174109
|
-
const
|
|
174412
|
+
const entry3 = effectSoundCatalogueEntry(id);
|
|
174110
174413
|
const generator = EFFECT_SOUND_GENERATORS[id];
|
|
174111
|
-
if (!
|
|
174414
|
+
if (!entry3 || !generator) {
|
|
174112
174415
|
return void 0;
|
|
174113
174416
|
}
|
|
174114
174417
|
const bytes = encodeWav(normalize(generator()));
|
|
174115
174418
|
const asset = {
|
|
174116
174419
|
id,
|
|
174117
|
-
fileName:
|
|
174420
|
+
fileName: entry3.canonicalName,
|
|
174118
174421
|
bytes,
|
|
174119
174422
|
dataUrl: wavDataUrl(bytes)
|
|
174120
174423
|
};
|
|
@@ -174122,16 +174425,16 @@ function getEffectSoundAsset(id) {
|
|
|
174122
174425
|
return asset;
|
|
174123
174426
|
}
|
|
174124
174427
|
function getEffectSoundState(slideAnimations, elementId) {
|
|
174125
|
-
const
|
|
174126
|
-
if (!
|
|
174428
|
+
const entry3 = animationFor(slideAnimations, elementId);
|
|
174429
|
+
if (!entry3) {
|
|
174127
174430
|
return { hasSound: false };
|
|
174128
174431
|
}
|
|
174129
|
-
const hasSound = Boolean(
|
|
174432
|
+
const hasSound = Boolean(entry3.soundData || entry3.soundRId);
|
|
174130
174433
|
if (!hasSound) {
|
|
174131
174434
|
return { hasSound: false };
|
|
174132
174435
|
}
|
|
174133
|
-
const fileName =
|
|
174134
|
-
const catalogueId = findEffectSoundCatalogueEntry(
|
|
174436
|
+
const fileName = entry3.soundFileName ?? lastPathSegment(entry3.soundPath);
|
|
174437
|
+
const catalogueId = findEffectSoundCatalogueEntry(entry3.soundName)?.id;
|
|
174135
174438
|
return catalogueId !== void 0 ? { hasSound: true, fileName, catalogueId } : { hasSound: true, fileName };
|
|
174136
174439
|
}
|
|
174137
174440
|
function setEffectStockSound(anims, elementId, catalogueId) {
|
|
@@ -174174,8 +174477,8 @@ function setAfterAnimation(anims, elementId, action) {
|
|
|
174174
174477
|
});
|
|
174175
174478
|
}
|
|
174176
174479
|
function setAfterAnimationColor(anims, elementId, color2) {
|
|
174177
|
-
const
|
|
174178
|
-
if (!
|
|
174480
|
+
const entry3 = animationFor(anims, elementId);
|
|
174481
|
+
if (!entry3 || entry3.afterAnimation !== "dimToColor") {
|
|
174179
174482
|
return [...anims];
|
|
174180
174483
|
}
|
|
174181
174484
|
return upsert(anims, elementId, (cur) => ({ ...cur, afterAnimationColor: color2 }));
|
|
@@ -174833,8 +175136,8 @@ function applyDecodedValue(descriptor, attrName, value) {
|
|
|
174833
175136
|
descriptor.color = value;
|
|
174834
175137
|
}
|
|
174835
175138
|
}
|
|
174836
|
-
function applySetAnimation(descriptor,
|
|
174837
|
-
applyDecodedValue(descriptor,
|
|
175139
|
+
function applySetAnimation(descriptor, entry3) {
|
|
175140
|
+
applyDecodedValue(descriptor, entry3.attrName, entry3.value);
|
|
174838
175141
|
}
|
|
174839
175142
|
function applyAttributeRamp(descriptor, component2) {
|
|
174840
175143
|
const stops = component2.keyframes;
|
|
@@ -174859,8 +175162,8 @@ function applyAttributeRamp(descriptor, component2) {
|
|
|
174859
175162
|
}
|
|
174860
175163
|
function resolveTextStyleAnimation(anim) {
|
|
174861
175164
|
const descriptor = {};
|
|
174862
|
-
for (const
|
|
174863
|
-
applySetAnimation(descriptor,
|
|
175165
|
+
for (const entry3 of anim.setAnimations ?? []) {
|
|
175166
|
+
applySetAnimation(descriptor, entry3);
|
|
174864
175167
|
}
|
|
174865
175168
|
for (const component2 of anim.attributeAnimations ?? []) {
|
|
174866
175169
|
if (RECOGNIZED_ATTRS.has(component2.attrName)) {
|
|
@@ -175345,12 +175648,12 @@ var ENTRANCE_KEYFRAME_DEFINITIONS = {
|
|
|
175345
175648
|
to { ${blindsDecl("horizontal", 1)} opacity: 1; }
|
|
175346
175649
|
}`,
|
|
175347
175650
|
boxIn: `@keyframes pptx-boxIn {
|
|
175348
|
-
from { ${
|
|
175349
|
-
to { ${
|
|
175651
|
+
from { ${maskHoleDecl("box", "hidden")} opacity: 1; }
|
|
175652
|
+
to { ${maskHoleDecl("box", "shown")} opacity: 1; }
|
|
175350
175653
|
}`,
|
|
175351
175654
|
circleIn: `@keyframes pptx-circleIn {
|
|
175352
|
-
from { ${
|
|
175353
|
-
to { ${
|
|
175655
|
+
from { ${maskHoleDecl("circle", "hidden")} opacity: 1; }
|
|
175656
|
+
to { ${maskHoleDecl("circle", "shown")} opacity: 1; }
|
|
175354
175657
|
}`,
|
|
175355
175658
|
floatIn: `@keyframes pptx-floatIn {
|
|
175356
175659
|
from { opacity: 0; transform: translateY(40px); }
|
|
@@ -175421,12 +175724,12 @@ var ENTRANCE_KEYFRAME_DEFINITIONS = {
|
|
|
175421
175724
|
to { opacity: 1; transform: rotate(0deg) scale(1); }
|
|
175422
175725
|
}`,
|
|
175423
175726
|
diamondIn: `@keyframes pptx-diamondIn {
|
|
175424
|
-
from { ${
|
|
175425
|
-
to { ${
|
|
175727
|
+
from { ${maskHoleDecl("diamond", "hidden")} opacity: 1; }
|
|
175728
|
+
to { ${maskHoleDecl("diamond", "shown")} opacity: 1; }
|
|
175426
175729
|
}`,
|
|
175427
175730
|
plusIn: `@keyframes pptx-plusIn {
|
|
175428
|
-
from { ${
|
|
175429
|
-
to { ${
|
|
175731
|
+
from { ${maskPlusHoleDecl("hidden")} opacity: 1; }
|
|
175732
|
+
to { ${maskPlusHoleDecl("shown")} opacity: 1; }
|
|
175430
175733
|
}`,
|
|
175431
175734
|
wedgeIn: `@keyframes pptx-wedgeIn {
|
|
175432
175735
|
from { ${maskShapeDecl("wedgeOut", "hidden")} opacity: 1; }
|
|
@@ -178605,6 +178908,8 @@ var ENTRANCE_EFFECTS = /* @__PURE__ */ new Set([
|
|
|
178605
178908
|
"blindsIn",
|
|
178606
178909
|
"boxIn",
|
|
178607
178910
|
"circleIn",
|
|
178911
|
+
"diamondIn",
|
|
178912
|
+
"plusIn",
|
|
178608
178913
|
"floatIn",
|
|
178609
178914
|
"riseUp",
|
|
178610
178915
|
"swivel",
|
|
@@ -178674,9 +178979,13 @@ function getInitialStyleForEffect(effect) {
|
|
|
178674
178979
|
case "blindsIn":
|
|
178675
178980
|
return maskEdgeInitialStyle("top");
|
|
178676
178981
|
case "boxIn":
|
|
178677
|
-
return
|
|
178982
|
+
return maskHoleInitialStyle("box");
|
|
178678
178983
|
case "circleIn":
|
|
178679
|
-
return
|
|
178984
|
+
return maskHoleInitialStyle("circle");
|
|
178985
|
+
case "diamondIn":
|
|
178986
|
+
return maskHoleInitialStyle("diamond");
|
|
178987
|
+
case "plusIn":
|
|
178988
|
+
return maskPlusHoleInitialStyle();
|
|
178680
178989
|
case "peekIn":
|
|
178681
178990
|
return maskEdgeInitialStyle("bottom");
|
|
178682
178991
|
case "randomBarsIn":
|
|
@@ -181996,12 +182305,12 @@ function getMeasuredPanelDepthSkew(preset, side) {
|
|
|
181996
182305
|
if (!preset) {
|
|
181997
182306
|
return void 0;
|
|
181998
182307
|
}
|
|
181999
|
-
const
|
|
182000
|
-
if (!
|
|
182308
|
+
const entry3 = PANEL_DEPTH_SKEW_MAP[preset];
|
|
182309
|
+
if (!entry3) {
|
|
182001
182310
|
return void 0;
|
|
182002
182311
|
}
|
|
182003
|
-
const sideSkew = side ?
|
|
182004
|
-
return sideSkew ?? { dx:
|
|
182312
|
+
const sideSkew = side ? entry3[side] : void 0;
|
|
182313
|
+
return sideSkew ?? { dx: entry3.dx, dy: entry3.dy };
|
|
182005
182314
|
}
|
|
182006
182315
|
function projectHomographyPoint(h2, u, v, width, height) {
|
|
182007
182316
|
const [h11, h12, h13, h21, h22, h23, h31, h32, h33] = h2;
|
|
@@ -182773,19 +183082,19 @@ function borderToCss(border, resolve2) {
|
|
|
182773
183082
|
const color2 = border.color ?? resolve2(border.fill) ?? "#000000";
|
|
182774
183083
|
return `${width}px ${dash} ${color2}`;
|
|
182775
183084
|
}
|
|
182776
|
-
function collectSections(
|
|
183085
|
+
function collectSections(entry3, tableData, pos2) {
|
|
182777
183086
|
const { rowIndex, cellIndex, rowCount, columnCount } = pos2;
|
|
182778
183087
|
const isTop = rowIndex === 0;
|
|
182779
183088
|
const isBottom = rowIndex === rowCount - 1;
|
|
182780
183089
|
const isLeft = cellIndex === 0;
|
|
182781
|
-
const
|
|
183090
|
+
const isRight2 = cellIndex === columnCount - 1;
|
|
182782
183091
|
const sections2 = [];
|
|
182783
183092
|
const push2 = (borders, regionTop, regionBottom, regionLeft, regionRight) => {
|
|
182784
183093
|
if (borders) {
|
|
182785
183094
|
sections2.push({ borders, regionTop, regionBottom, regionLeft, regionRight });
|
|
182786
183095
|
}
|
|
182787
183096
|
};
|
|
182788
|
-
push2(
|
|
183097
|
+
push2(entry3.wholeTblBorders, isTop, isBottom, isLeft, isRight2);
|
|
182789
183098
|
if (tableData.bandedRows) {
|
|
182790
183099
|
const bandStartRow = tableData.firstRowHeader ? 1 : 0;
|
|
182791
183100
|
const bandEndRow = tableData.lastRow ? rowCount - 1 : rowCount;
|
|
@@ -182793,11 +183102,11 @@ function collectSections(entry2, tableData, pos2) {
|
|
|
182793
183102
|
const rowCycle = Math.max(tableData.bandRowCycle ?? 1, 1);
|
|
182794
183103
|
const bandGroup = Math.floor((rowIndex - bandStartRow) / rowCycle) % 2;
|
|
182795
183104
|
push2(
|
|
182796
|
-
bandGroup === 0 ?
|
|
183105
|
+
bandGroup === 0 ? entry3.band1HBorders : entry3.band2HBorders,
|
|
182797
183106
|
true,
|
|
182798
183107
|
true,
|
|
182799
183108
|
isLeft,
|
|
182800
|
-
|
|
183109
|
+
isRight2
|
|
182801
183110
|
);
|
|
182802
183111
|
}
|
|
182803
183112
|
}
|
|
@@ -182807,42 +183116,42 @@ function collectSections(entry2, tableData, pos2) {
|
|
|
182807
183116
|
if (cellIndex >= colStart && cellIndex < colEnd) {
|
|
182808
183117
|
const colCycle = Math.max(tableData.bandColCycle ?? 1, 1);
|
|
182809
183118
|
const colGroup = Math.floor((cellIndex - colStart) / colCycle) % 2;
|
|
182810
|
-
push2(colGroup === 0 ?
|
|
183119
|
+
push2(colGroup === 0 ? entry3.band1VBorders : entry3.band2VBorders, isTop, isBottom, true, true);
|
|
182811
183120
|
}
|
|
182812
183121
|
}
|
|
182813
183122
|
const atTop = Boolean(tableData.firstRowHeader) && isTop;
|
|
182814
183123
|
const atBottom = Boolean(tableData.lastRow) && isBottom;
|
|
182815
183124
|
const atLeft = Boolean(tableData.firstCol) && isLeft;
|
|
182816
|
-
const atRight = Boolean(tableData.lastCol) &&
|
|
183125
|
+
const atRight = Boolean(tableData.lastCol) && isRight2;
|
|
182817
183126
|
if (atRight) {
|
|
182818
|
-
push2(
|
|
183127
|
+
push2(entry3.lastColBorders, isTop, isBottom, true, true);
|
|
182819
183128
|
}
|
|
182820
183129
|
if (atLeft) {
|
|
182821
|
-
push2(
|
|
183130
|
+
push2(entry3.firstColBorders, isTop, isBottom, true, true);
|
|
182822
183131
|
}
|
|
182823
183132
|
if (atBottom) {
|
|
182824
|
-
push2(
|
|
183133
|
+
push2(entry3.lastRowBorders, true, true, isLeft, isRight2);
|
|
182825
183134
|
}
|
|
182826
183135
|
if (atBottom && atRight) {
|
|
182827
|
-
push2(
|
|
183136
|
+
push2(entry3.seCellBorders, true, true, true, true);
|
|
182828
183137
|
}
|
|
182829
183138
|
if (atBottom && atLeft) {
|
|
182830
|
-
push2(
|
|
183139
|
+
push2(entry3.swCellBorders, true, true, true, true);
|
|
182831
183140
|
}
|
|
182832
183141
|
if (atTop) {
|
|
182833
|
-
push2(
|
|
183142
|
+
push2(entry3.firstRowBorders, true, true, isLeft, isRight2);
|
|
182834
183143
|
}
|
|
182835
183144
|
if (atTop && atRight) {
|
|
182836
|
-
push2(
|
|
183145
|
+
push2(entry3.neCellBorders, true, true, true, true);
|
|
182837
183146
|
}
|
|
182838
183147
|
if (atTop && atLeft) {
|
|
182839
|
-
push2(
|
|
183148
|
+
push2(entry3.nwCellBorders, true, true, true, true);
|
|
182840
183149
|
}
|
|
182841
183150
|
return sections2;
|
|
182842
183151
|
}
|
|
182843
|
-
function collectLayers(
|
|
183152
|
+
function collectLayers(entry3, tableData, pos2) {
|
|
182844
183153
|
const layers = [];
|
|
182845
|
-
for (const section of collectSections(
|
|
183154
|
+
for (const section of collectSections(entry3, tableData, pos2)) {
|
|
182846
183155
|
layers.push(
|
|
182847
183156
|
edgesFromSection(
|
|
182848
183157
|
section.borders,
|
|
@@ -182855,11 +183164,11 @@ function collectLayers(entry2, tableData, pos2) {
|
|
|
182855
183164
|
}
|
|
182856
183165
|
return layers.filter((layer) => layer !== void 0);
|
|
182857
183166
|
}
|
|
182858
|
-
function resolveCellBorderCss(
|
|
182859
|
-
if (!
|
|
183167
|
+
function resolveCellBorderCss(entry3, tableData, pos2, resolve2) {
|
|
183168
|
+
if (!entry3) {
|
|
182860
183169
|
return void 0;
|
|
182861
183170
|
}
|
|
182862
|
-
const layers = collectLayers(
|
|
183171
|
+
const layers = collectLayers(entry3, tableData, pos2);
|
|
182863
183172
|
if (layers.length === 0) {
|
|
182864
183173
|
return void 0;
|
|
182865
183174
|
}
|
|
@@ -182885,11 +183194,11 @@ function resolveCellBorderCss(entry2, tableData, pos2, resolve2) {
|
|
|
182885
183194
|
}
|
|
182886
183195
|
return applied ? css : void 0;
|
|
182887
183196
|
}
|
|
182888
|
-
function resolveStyleDiagonalBorders(
|
|
182889
|
-
if (!
|
|
183197
|
+
function resolveStyleDiagonalBorders(entry3, tableData, pos2, resolve2) {
|
|
183198
|
+
if (!entry3) {
|
|
182890
183199
|
return void 0;
|
|
182891
183200
|
}
|
|
182892
|
-
const sections2 = collectSections(
|
|
183201
|
+
const sections2 = collectSections(entry3, tableData, pos2);
|
|
182893
183202
|
if (sections2.length === 0) {
|
|
182894
183203
|
return void 0;
|
|
182895
183204
|
}
|
|
@@ -182939,20 +183248,20 @@ function builtinTableStyleMap() {
|
|
|
182939
183248
|
const data = JSON.parse(BUILTIN_TABLE_STYLE_JSON);
|
|
182940
183249
|
for (const family of data.families) {
|
|
182941
183250
|
for (const variant of family.variants) {
|
|
182942
|
-
const
|
|
183251
|
+
const entry3 = substituteAccent(
|
|
182943
183252
|
family.template,
|
|
182944
183253
|
family.baseAccent,
|
|
182945
183254
|
variant.a,
|
|
182946
183255
|
family.baseAccent2,
|
|
182947
183256
|
variant.b
|
|
182948
183257
|
);
|
|
182949
|
-
|
|
182950
|
-
|
|
182951
|
-
map[variant.id] =
|
|
183258
|
+
entry3.styleId = variant.id;
|
|
183259
|
+
entry3.styleName = variant.name;
|
|
183260
|
+
map[variant.id] = entry3;
|
|
182952
183261
|
}
|
|
182953
183262
|
}
|
|
182954
|
-
for (const
|
|
182955
|
-
map[
|
|
183263
|
+
for (const entry3 of data.standalone) {
|
|
183264
|
+
map[entry3.styleId] = entry3;
|
|
182956
183265
|
}
|
|
182957
183266
|
catalogue = map;
|
|
182958
183267
|
return map;
|
|
@@ -182965,19 +183274,19 @@ function getBuiltinTableStyle(styleId) {
|
|
|
182965
183274
|
const withBraces = normalised.startsWith("{") ? normalised : `{${normalised}}`;
|
|
182966
183275
|
return builtinTableStyleMap()[withBraces];
|
|
182967
183276
|
}
|
|
182968
|
-
function resolveTableStyleCell3D(
|
|
182969
|
-
if (!
|
|
183277
|
+
function resolveTableStyleCell3D(entry3, tableData, pos2) {
|
|
183278
|
+
if (!entry3) {
|
|
182970
183279
|
return void 0;
|
|
182971
183280
|
}
|
|
182972
183281
|
const { rowIndex, cellIndex, rowCount, columnCount } = pos2;
|
|
182973
|
-
let current =
|
|
183282
|
+
let current = entry3.wholeTblCell3D;
|
|
182974
183283
|
const bandStartRow = tableData.firstRowHeader ? 1 : 0;
|
|
182975
183284
|
const bandEndRow = tableData.lastRow ? rowCount - 1 : rowCount;
|
|
182976
183285
|
if (tableData.bandedRows && rowIndex >= bandStartRow && rowIndex < bandEndRow) {
|
|
182977
183286
|
const bandIndex = rowIndex - bandStartRow;
|
|
182978
183287
|
const rowCycle = Math.max(tableData.bandRowCycle ?? 1, 1);
|
|
182979
183288
|
const bandGroup = Math.floor(bandIndex / rowCycle) % 2;
|
|
182980
|
-
current = (bandGroup === 0 ?
|
|
183289
|
+
current = (bandGroup === 0 ? entry3.band1HCell3D : entry3.band2HCell3D) ?? current;
|
|
182981
183290
|
}
|
|
182982
183291
|
if (tableData.bandedColumns) {
|
|
182983
183292
|
const isFirstCol = tableData.firstCol;
|
|
@@ -182987,7 +183296,7 @@ function resolveTableStyleCell3D(entry2, tableData, pos2) {
|
|
|
182987
183296
|
if (!skipCol) {
|
|
182988
183297
|
const colCycle = Math.max(tableData.bandColCycle ?? 1, 1);
|
|
182989
183298
|
const colBandGroup = Math.floor(colBandIndex / colCycle) % 2;
|
|
182990
|
-
current = (colBandGroup === 0 ?
|
|
183299
|
+
current = (colBandGroup === 0 ? entry3.band1VCell3D : entry3.band2VCell3D) ?? current;
|
|
182991
183300
|
}
|
|
182992
183301
|
}
|
|
182993
183302
|
const atTop = Boolean(tableData.firstRowHeader) && rowIndex === 0;
|
|
@@ -182995,28 +183304,28 @@ function resolveTableStyleCell3D(entry2, tableData, pos2) {
|
|
|
182995
183304
|
const atLeft = Boolean(tableData.firstCol) && cellIndex === 0;
|
|
182996
183305
|
const atRight = Boolean(tableData.lastCol) && cellIndex === columnCount - 1;
|
|
182997
183306
|
if (atRight) {
|
|
182998
|
-
current =
|
|
183307
|
+
current = entry3.lastColCell3D ?? current;
|
|
182999
183308
|
}
|
|
183000
183309
|
if (atLeft) {
|
|
183001
|
-
current =
|
|
183310
|
+
current = entry3.firstColCell3D ?? current;
|
|
183002
183311
|
}
|
|
183003
183312
|
if (atBottom) {
|
|
183004
|
-
current =
|
|
183313
|
+
current = entry3.lastRowCell3D ?? current;
|
|
183005
183314
|
}
|
|
183006
183315
|
if (atBottom && atRight) {
|
|
183007
|
-
current =
|
|
183316
|
+
current = entry3.seCellCell3D ?? current;
|
|
183008
183317
|
}
|
|
183009
183318
|
if (atBottom && atLeft) {
|
|
183010
|
-
current =
|
|
183319
|
+
current = entry3.swCellCell3D ?? current;
|
|
183011
183320
|
}
|
|
183012
183321
|
if (atTop) {
|
|
183013
|
-
current =
|
|
183322
|
+
current = entry3.firstRowCell3D ?? current;
|
|
183014
183323
|
}
|
|
183015
183324
|
if (atTop && atRight) {
|
|
183016
|
-
current =
|
|
183325
|
+
current = entry3.neCellCell3D ?? current;
|
|
183017
183326
|
}
|
|
183018
183327
|
if (atTop && atLeft) {
|
|
183019
|
-
current =
|
|
183328
|
+
current = entry3.nwCellCell3D ?? current;
|
|
183020
183329
|
}
|
|
183021
183330
|
return current;
|
|
183022
183331
|
}
|
|
@@ -183500,9 +183809,9 @@ function getDiagonalBorders(style, styleDiagonals) {
|
|
|
183500
183809
|
function getCellDiagonalBorders(style, tableData, pos2, styleCtx) {
|
|
183501
183810
|
let styleDiagonals;
|
|
183502
183811
|
if (tableData) {
|
|
183503
|
-
const
|
|
183812
|
+
const entry3 = resolveTableStyleEntry(tableData.tableStyleId, styleCtx?.tableStyleMap);
|
|
183504
183813
|
styleDiagonals = resolveStyleDiagonalBorders(
|
|
183505
|
-
|
|
183814
|
+
entry3,
|
|
183506
183815
|
tableData,
|
|
183507
183816
|
pos2,
|
|
183508
183817
|
(fill) => resolveStyleFillColor(fill, styleCtx?.colorScheme)
|
|
@@ -187174,6 +187483,7 @@ var translationsEn = {
|
|
|
187174
187483
|
"pptx.media.startAutomatically": "Automatically",
|
|
187175
187484
|
"pptx.media.playAcrossSlides": "Play across slides",
|
|
187176
187485
|
"pptx.media.fullScreen": "Full screen",
|
|
187486
|
+
"pptx.media.onlineVideoTitle": "Online video",
|
|
187177
187487
|
"pptx.media.hideWhenNotPlaying": "Hide when not playing",
|
|
187178
187488
|
"pptx.media.bookmarks": "Bookmarks",
|
|
187179
187489
|
"pptx.media.bookmark": "Bookmark",
|
|
@@ -187249,6 +187559,12 @@ var translationsEn = {
|
|
|
187249
187559
|
"pptx.compare.noDifferences": "No differences",
|
|
187250
187560
|
"pptx.compare.summary": "{{added}} added, {{removed}} removed, {{changed}} changed",
|
|
187251
187561
|
"pptx.compare.title": "Compare",
|
|
187562
|
+
// Canvas context menu (empty slide right-click)
|
|
187563
|
+
"pptx.canvasContextMenu.formatBackground": "Format Background...",
|
|
187564
|
+
"pptx.canvasContextMenu.gridAndGuides": "Grid and Guides",
|
|
187565
|
+
"pptx.canvasContextMenu.layout": "Layout",
|
|
187566
|
+
"pptx.canvasContextMenu.resetSlide": "Reset Slide",
|
|
187567
|
+
"pptx.canvasContextMenu.ruler": "Ruler",
|
|
187252
187568
|
// Context menu
|
|
187253
187569
|
"pptx.contextMenu.addComment": "Add Comment",
|
|
187254
187570
|
"pptx.contextMenu.bringForward": "Bring Forward",
|
|
@@ -187259,7 +187575,10 @@ var translationsEn = {
|
|
|
187259
187575
|
"pptx.contextMenu.deleteColumn": "Delete Column",
|
|
187260
187576
|
"pptx.contextMenu.deleteRow": "Delete Row",
|
|
187261
187577
|
"pptx.contextMenu.duplicate": "Duplicate",
|
|
187578
|
+
"pptx.contextMenu.editAltText": "Edit Alt Text...",
|
|
187262
187579
|
"pptx.contextMenu.editHyperlink": "Edit Hyperlink",
|
|
187580
|
+
"pptx.contextMenu.editText": "Edit Text",
|
|
187581
|
+
"pptx.contextMenu.formatShape": "Format Shape...",
|
|
187263
187582
|
"pptx.contextMenu.group": "Group",
|
|
187264
187583
|
"pptx.contextMenu.insertColumnLeft": "Insert Column Left",
|
|
187265
187584
|
"pptx.contextMenu.insertColumnRight": "Insert Column Right",
|
|
@@ -187268,10 +187587,19 @@ var translationsEn = {
|
|
|
187268
187587
|
"pptx.contextMenu.mergeCells": "Merge Right",
|
|
187269
187588
|
"pptx.contextMenu.mergeSelectedCells": "Merge Selected Cells",
|
|
187270
187589
|
"pptx.contextMenu.paste": "Paste",
|
|
187590
|
+
"pptx.contextMenu.saveAsPicture": "Save as Picture...",
|
|
187271
187591
|
"pptx.contextMenu.sendBackward": "Send Backward",
|
|
187272
187592
|
"pptx.contextMenu.sendToBack": "Send to Back",
|
|
187593
|
+
"pptx.contextMenu.sizeAndPosition": "Size and Position...",
|
|
187273
187594
|
"pptx.contextMenu.splitCell": "Split Cell",
|
|
187274
187595
|
"pptx.contextMenu.ungroup": "Ungroup",
|
|
187596
|
+
// Paste Special (Ctrl+Alt+V) and the post-paste Paste Options toolbar
|
|
187597
|
+
"pptx.pasteSpecial.dialogTitle": "Paste Special",
|
|
187598
|
+
"pptx.pasteSpecial.keepSourceFormatting": "Keep Source Formatting",
|
|
187599
|
+
"pptx.pasteSpecial.keepTextOnly": "Keep Text Only",
|
|
187600
|
+
"pptx.pasteSpecial.optionsLabel": "Paste Options",
|
|
187601
|
+
"pptx.pasteSpecial.picture": "Picture",
|
|
187602
|
+
"pptx.pasteSpecial.useDestinationTheme": "Use Destination Theme",
|
|
187275
187603
|
// Digital signatures (additions)
|
|
187276
187604
|
"pptx.digitalSignatures.badge": "Signed",
|
|
187277
187605
|
"pptx.digitalSignatures.editWarning": "Editing this presentation will invalidate its digital signatures.",
|
|
@@ -187618,6 +187946,12 @@ var translationsEn = {
|
|
|
187618
187946
|
"pptx.transition.morphOption.byObject": "By Object",
|
|
187619
187947
|
"pptx.transition.morphOption.byWord": "By Word",
|
|
187620
187948
|
"pptx.transition.morphOption.byChar": "By Character",
|
|
187949
|
+
"pptx.transition.pattern": "Pattern",
|
|
187950
|
+
"pptx.transition.pattern.diamond": "Diamond",
|
|
187951
|
+
"pptx.transition.pattern.hexagon": "Hexagon",
|
|
187952
|
+
"pptx.transition.pattern.strip": "Strips",
|
|
187953
|
+
"pptx.transition.pattern.rectangle": "Rectangles",
|
|
187954
|
+
"pptx.transition.thruBlk": "Through black",
|
|
187621
187955
|
// Context menu / editor toolbar (Angular/Vue-specific additions)
|
|
187622
187956
|
"pptx.contextMenu.ariaLabel": "Context menu",
|
|
187623
187957
|
"pptx.editorToolbar.ariaLabel": "Editor toolbar",
|
|
@@ -190379,6 +190713,9 @@ function isBrowserOpenableMime(mime) {
|
|
|
190379
190713
|
}
|
|
190380
190714
|
return value === "application/pdf" || value === "application/json" || value === "application/xml" || value === "application/xhtml+xml";
|
|
190381
190715
|
}
|
|
190716
|
+
function oleActionsVisible(surface) {
|
|
190717
|
+
return !surface.presenting && !surface.preview;
|
|
190718
|
+
}
|
|
190382
190719
|
var TYPE_COLORS = {
|
|
190383
190720
|
excel: "#217346",
|
|
190384
190721
|
word: "#2B579A",
|
|
@@ -192195,14 +192532,14 @@ function resolveParagraphStrutFontSize(segments, bodyFontSize, fontScale = 1) {
|
|
|
192195
192532
|
return smallest * fontScale;
|
|
192196
192533
|
}
|
|
192197
192534
|
function resolveParagraphRtl(paraSegments, elementRtl) {
|
|
192198
|
-
for (const
|
|
192199
|
-
const segRtl =
|
|
192535
|
+
for (const entry3 of paraSegments) {
|
|
192536
|
+
const segRtl = entry3.segment.style?.rtl;
|
|
192200
192537
|
if (segRtl !== void 0) {
|
|
192201
192538
|
return segRtl;
|
|
192202
192539
|
}
|
|
192203
192540
|
}
|
|
192204
|
-
for (const
|
|
192205
|
-
const paraRtl =
|
|
192541
|
+
for (const entry3 of paraSegments) {
|
|
192542
|
+
const paraRtl = entry3.segment.paragraphProperties?.rtl;
|
|
192206
192543
|
if (paraRtl !== void 0) {
|
|
192207
192544
|
return paraRtl;
|
|
192208
192545
|
}
|
|
@@ -192210,8 +192547,8 @@ function resolveParagraphRtl(paraSegments, elementRtl) {
|
|
|
192210
192547
|
return elementRtl;
|
|
192211
192548
|
}
|
|
192212
192549
|
function resolveParagraphAlign(paraSegments, elementAlign) {
|
|
192213
|
-
for (const
|
|
192214
|
-
const segAlign =
|
|
192550
|
+
for (const entry3 of paraSegments) {
|
|
192551
|
+
const segAlign = entry3.segment.style?.align;
|
|
192215
192552
|
if (segAlign !== void 0) {
|
|
192216
192553
|
return segAlign;
|
|
192217
192554
|
}
|
|
@@ -193870,7 +194207,7 @@ function positions(segments) {
|
|
|
193870
194207
|
if (!marker) {
|
|
193871
194208
|
offset += segment.text.length;
|
|
193872
194209
|
}
|
|
193873
|
-
const
|
|
194210
|
+
const entry3 = {
|
|
193874
194211
|
start,
|
|
193875
194212
|
end: offset,
|
|
193876
194213
|
paragraph,
|
|
@@ -193880,19 +194217,19 @@ function positions(segments) {
|
|
|
193880
194217
|
if (first) {
|
|
193881
194218
|
paragraph += 1;
|
|
193882
194219
|
}
|
|
193883
|
-
return
|
|
194220
|
+
return entry3;
|
|
193884
194221
|
});
|
|
193885
194222
|
}
|
|
193886
194223
|
function restorePoint(segments, offset, preferRunStart = false) {
|
|
193887
194224
|
const entries = positions(segments);
|
|
193888
194225
|
let fallback = { index: 0, offset: 0 };
|
|
193889
|
-
for (const [index,
|
|
193890
|
-
if (!
|
|
194226
|
+
for (const [index, entry3] of entries.entries()) {
|
|
194227
|
+
if (!entry3.editable) {
|
|
193891
194228
|
continue;
|
|
193892
194229
|
}
|
|
193893
194230
|
fallback = { index, offset: segments[index].text.length };
|
|
193894
|
-
if (offset <
|
|
193895
|
-
return { index, offset: Math.max(0, offset -
|
|
194231
|
+
if (offset < entry3.end || offset === entry3.end && (!preferRunStart || entry3.start === entry3.end)) {
|
|
194232
|
+
return { index, offset: Math.max(0, offset - entry3.start) };
|
|
193896
194233
|
}
|
|
193897
194234
|
}
|
|
193898
194235
|
return fallback;
|
|
@@ -193963,7 +194300,7 @@ function applyListStyleUpdate(element, updates, selection) {
|
|
|
193963
194300
|
}
|
|
193964
194301
|
const startOffset = startEntry.start + workingSelection.startOffset;
|
|
193965
194302
|
const endOffset = endEntry.start + workingSelection.endOffset;
|
|
193966
|
-
const lastSelected = [...entries].reverse().find((
|
|
194303
|
+
const lastSelected = [...entries].reverse().find((entry3) => entry3.start < endOffset);
|
|
193967
194304
|
const patch = setElementBullets(working, listType, {
|
|
193968
194305
|
startParagraph: startEntry.paragraph,
|
|
193969
194306
|
endParagraph: Math.max(startEntry.paragraph, lastSelected?.paragraph ?? endEntry.paragraph)
|
|
@@ -195451,12 +195788,12 @@ function scaleFontSizes(root, fontFactor, lineFactor) {
|
|
|
195451
195788
|
lineHeight: Number.isFinite(lineHeight) ? lineHeight : void 0
|
|
195452
195789
|
};
|
|
195453
195790
|
});
|
|
195454
|
-
for (const
|
|
195455
|
-
if (
|
|
195456
|
-
|
|
195791
|
+
for (const entry3 of original) {
|
|
195792
|
+
if (entry3.fontSize !== void 0) {
|
|
195793
|
+
entry3.el.style.fontSize = `${entry3.fontSize * fontFactor}px`;
|
|
195457
195794
|
}
|
|
195458
|
-
if (
|
|
195459
|
-
|
|
195795
|
+
if (entry3.lineHeight !== void 0) {
|
|
195796
|
+
entry3.el.style.lineHeight = `${entry3.lineHeight * lineFactor}px`;
|
|
195460
195797
|
}
|
|
195461
195798
|
}
|
|
195462
195799
|
}
|
|
@@ -200323,11 +200660,11 @@ function reconcileElementYMap(ymap, element, factories, assets) {
|
|
|
200323
200660
|
reconcileAssetFields(rec.id, rec, ymap, assets);
|
|
200324
200661
|
}
|
|
200325
200662
|
function mapIdAt(arr, index) {
|
|
200326
|
-
const
|
|
200327
|
-
if (!
|
|
200663
|
+
const entry3 = arr.get(index);
|
|
200664
|
+
if (!entry3 || typeof entry3.get !== "function") {
|
|
200328
200665
|
return void 0;
|
|
200329
200666
|
}
|
|
200330
|
-
const id =
|
|
200667
|
+
const id = entry3.get("id");
|
|
200331
200668
|
return typeof id === "string" ? id : void 0;
|
|
200332
200669
|
}
|
|
200333
200670
|
function reconcileYArrayById(arr, items, adapter) {
|
|
@@ -200582,9 +200919,9 @@ function presenceListsEqual(a, b) {
|
|
|
200582
200919
|
if (a.length !== b.length) {
|
|
200583
200920
|
return false;
|
|
200584
200921
|
}
|
|
200585
|
-
return a.every((
|
|
200922
|
+
return a.every((entry3, index) => {
|
|
200586
200923
|
const other = b[index];
|
|
200587
|
-
return other !== void 0 && presenceEntriesEqual(
|
|
200924
|
+
return other !== void 0 && presenceEntriesEqual(entry3, other);
|
|
200588
200925
|
});
|
|
200589
200926
|
}
|
|
200590
200927
|
function createPresenceProjector() {
|
|
@@ -201334,12 +201671,12 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
201334
201671
|
return null;
|
|
201335
201672
|
}
|
|
201336
201673
|
const key2 = keyFor3(slideId, elementId);
|
|
201337
|
-
let
|
|
201338
|
-
if (!
|
|
201339
|
-
|
|
201340
|
-
pending.set(key2,
|
|
201674
|
+
let entry3 = pending.get(key2);
|
|
201675
|
+
if (!entry3) {
|
|
201676
|
+
entry3 = { slideId, elementId };
|
|
201677
|
+
pending.set(key2, entry3);
|
|
201341
201678
|
}
|
|
201342
|
-
return
|
|
201679
|
+
return entry3;
|
|
201343
201680
|
};
|
|
201344
201681
|
return {
|
|
201345
201682
|
beginTextEdit(slideId, elementId, onChange, ownsModel) {
|
|
@@ -201405,22 +201742,22 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
201405
201742
|
return doc !== null && factories !== null;
|
|
201406
201743
|
},
|
|
201407
201744
|
patchGeometry(slideId, elementId, geometry) {
|
|
201408
|
-
const
|
|
201409
|
-
if (!
|
|
201745
|
+
const entry3 = enqueue(slideId, elementId);
|
|
201746
|
+
if (!entry3) {
|
|
201410
201747
|
return;
|
|
201411
201748
|
}
|
|
201412
|
-
|
|
201749
|
+
entry3.geometry = { ...entry3.geometry, ...geometry };
|
|
201413
201750
|
schedule2();
|
|
201414
201751
|
},
|
|
201415
201752
|
patchText(slideId, elementId, text22, source) {
|
|
201416
201753
|
if (textOwners.has(keyFor3(slideId, elementId))) {
|
|
201417
201754
|
return;
|
|
201418
201755
|
}
|
|
201419
|
-
const
|
|
201420
|
-
if (!
|
|
201756
|
+
const entry3 = enqueue(slideId, elementId);
|
|
201757
|
+
if (!entry3) {
|
|
201421
201758
|
return;
|
|
201422
201759
|
}
|
|
201423
|
-
|
|
201760
|
+
entry3.text = { value: text22, source: source ?? entry3.text?.source ?? {} };
|
|
201424
201761
|
schedule2();
|
|
201425
201762
|
},
|
|
201426
201763
|
flush() {
|
|
@@ -202647,6 +202984,35 @@ function applyAcceptAllSlides(slides, compareResult) {
|
|
|
202647
202984
|
}
|
|
202648
202985
|
return next;
|
|
202649
202986
|
}
|
|
202987
|
+
var VORTEX_DIRECTIONAL_KEYFRAMES = `
|
|
202988
|
+
@keyframes pptx-tr-vortex-in-left { from { transform: translateX(-40%) rotate(720deg) scale(0); opacity: 0; } to { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } }
|
|
202989
|
+
@keyframes pptx-tr-vortex-out-left { from { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateX(-40%) rotate(-720deg) scale(0); opacity: 0; } }
|
|
202990
|
+
@keyframes pptx-tr-vortex-in-right { from { transform: translateX(40%) rotate(-720deg) scale(0); opacity: 0; } to { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } }
|
|
202991
|
+
@keyframes pptx-tr-vortex-out-right { from { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateX(40%) rotate(720deg) scale(0); opacity: 0; } }
|
|
202992
|
+
@keyframes pptx-tr-vortex-in-up { from { transform: translateY(-40%) rotate(720deg) scale(0); opacity: 0; } to { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } }
|
|
202993
|
+
@keyframes pptx-tr-vortex-out-up { from { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateY(-40%) rotate(-720deg) scale(0); opacity: 0; } }
|
|
202994
|
+
@keyframes pptx-tr-vortex-in-down { from { transform: translateY(40%) rotate(-720deg) scale(0); opacity: 0; } to { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } }
|
|
202995
|
+
@keyframes pptx-tr-vortex-out-down { from { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateY(40%) rotate(720deg) scale(0); opacity: 0; } }
|
|
202996
|
+
`;
|
|
202997
|
+
var RIPPLE_DIRECTIONAL_KEYFRAMES = `
|
|
202998
|
+
@keyframes pptx-tr-ripple-in-lu { from { clip-path: circle(0% at 0% 0%); opacity: 0.5; } 30% { clip-path: circle(20% at 0% 0%); opacity: 0.7; } 60% { clip-path: circle(55% at 0% 0%); opacity: 0.9; } to { clip-path: circle(150% at 0% 0%); opacity: 1; } }
|
|
202999
|
+
@keyframes pptx-tr-ripple-in-ru { from { clip-path: circle(0% at 100% 0%); opacity: 0.5; } 30% { clip-path: circle(20% at 100% 0%); opacity: 0.7; } 60% { clip-path: circle(55% at 100% 0%); opacity: 0.9; } to { clip-path: circle(150% at 100% 0%); opacity: 1; } }
|
|
203000
|
+
@keyframes pptx-tr-ripple-in-ld { from { clip-path: circle(0% at 0% 100%); opacity: 0.5; } 30% { clip-path: circle(20% at 0% 100%); opacity: 0.7; } 60% { clip-path: circle(55% at 0% 100%); opacity: 0.9; } to { clip-path: circle(150% at 0% 100%); opacity: 1; } }
|
|
203001
|
+
@keyframes pptx-tr-ripple-in-rd { from { clip-path: circle(0% at 100% 100%); opacity: 0.5; } 30% { clip-path: circle(20% at 100% 100%); opacity: 0.7; } 60% { clip-path: circle(55% at 100% 100%); opacity: 0.9; } to { clip-path: circle(150% at 100% 100%); opacity: 1; } }
|
|
203002
|
+
`;
|
|
203003
|
+
var GLITTER_DIRECTIONAL_KEYFRAMES = `
|
|
203004
|
+
@keyframes pptx-tr-glitter-diamond-in-l { from { opacity: 0; transform: translateX(-6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateX(-2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0); } }
|
|
203005
|
+
@keyframes pptx-tr-glitter-diamond-in-r { from { opacity: 0; transform: translateX(6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateX(2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0); } }
|
|
203006
|
+
@keyframes pptx-tr-glitter-diamond-in-u { from { opacity: 0; transform: translateY(-6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateY(-2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0); } }
|
|
203007
|
+
@keyframes pptx-tr-glitter-diamond-in-d { from { opacity: 0; transform: translateY(6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateY(2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0); } }
|
|
203008
|
+
@keyframes pptx-tr-glitter-hexagon-in-l { from { opacity: 0; transform: translateX(-6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateX(-2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }
|
|
203009
|
+
@keyframes pptx-tr-glitter-hexagon-in-r { from { opacity: 0; transform: translateX(6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateX(2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }
|
|
203010
|
+
@keyframes pptx-tr-glitter-hexagon-in-u { from { opacity: 0; transform: translateY(-6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateY(-2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }
|
|
203011
|
+
@keyframes pptx-tr-glitter-hexagon-in-d { from { opacity: 0; transform: translateY(6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateY(2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }
|
|
203012
|
+
`;
|
|
203013
|
+
var DIRECTIONAL_FX_KEYFRAMES = `${VORTEX_DIRECTIONAL_KEYFRAMES}
|
|
203014
|
+
${RIPPLE_DIRECTIONAL_KEYFRAMES}
|
|
203015
|
+
${GLITTER_DIRECTIONAL_KEYFRAMES}`;
|
|
202650
203016
|
var PRISM_TRANSITION_KEYFRAMES = `
|
|
202651
203017
|
@keyframes pptx-tr-prism-in-from-right {
|
|
202652
203018
|
from { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }
|
|
@@ -202968,7 +203334,8 @@ ${WARP_TRANSITION_KEYFRAMES}
|
|
|
202968
203334
|
}
|
|
202969
203335
|
`;
|
|
202970
203336
|
var P14_TRANSITION_KEYFRAMES_ALL = `${P14_TRANSITION_KEYFRAMES}
|
|
202971
|
-
${P14_TRANSITION_KEYFRAMES_2}
|
|
203337
|
+
${P14_TRANSITION_KEYFRAMES_2}
|
|
203338
|
+
${DIRECTIONAL_FX_KEYFRAMES}`;
|
|
202972
203339
|
function getBoxTransitionAnimations(durationMs, direction) {
|
|
202973
203340
|
const dur = `${durationMs}ms`;
|
|
202974
203341
|
const dir = resolveDirection(direction, "left");
|
|
@@ -202991,6 +203358,61 @@ function prismDepthPair(prefix, dir, axis, translateSign) {
|
|
|
202991
203358
|
var BOX_TRANSITION_KEYFRAMES = `
|
|
202992
203359
|
/* \u2500\u2500 Box (faces separate and recede in depth, unlike Cube's flush hinge) \u2500\u2500 */${prismDepthPair("box", "left", "X", -1)}${prismDepthPair("box", "right", "X", 1)}${prismDepthPair("box", "up", "Y", -1)}${prismDepthPair("box", "down", "Y", 1)}
|
|
202993
203360
|
`;
|
|
203361
|
+
var FALLOVER_RIGHT_KEYFRAMES = `
|
|
203362
|
+
@keyframes pptx-tr-fallover-out-right {
|
|
203363
|
+
0% { transform: perspective(1400px) rotate3d(1, -1, 0, 0deg) scale(1); transform-origin: bottom right; opacity: 1; }
|
|
203364
|
+
55% { transform: perspective(1400px) rotate3d(1, -1, 0, 45deg) scale(.92); transform-origin: bottom right; opacity: .85; }
|
|
203365
|
+
100% { transform: perspective(1400px) rotate3d(1, -1, 0, 85deg) scale(.7); transform-origin: bottom right; opacity: 0; }
|
|
203366
|
+
}
|
|
203367
|
+
`;
|
|
203368
|
+
var DRAPE_RIGHT_KEYFRAMES = `
|
|
203369
|
+
@keyframes pptx-tr-drape-in-right {
|
|
203370
|
+
from { transform: perspective(1600px) rotateX(-55deg) rotateZ(4deg) scale(1.15); transform-origin: top right; opacity: 0; }
|
|
203371
|
+
to { transform: perspective(1600px) rotateX(0deg) rotateZ(0deg) scale(1); transform-origin: top right; opacity: 1; }
|
|
203372
|
+
}
|
|
203373
|
+
`;
|
|
203374
|
+
var PEELOFF_RIGHT_KEYFRAMES = `
|
|
203375
|
+
@keyframes pptx-tr-peeloff-out-right {
|
|
203376
|
+
from { transform: perspective(1400px) rotate3d(1, -1, 0, 0deg); transform-origin: top left; opacity: 1; }
|
|
203377
|
+
to { transform: perspective(1400px) rotate3d(1, -1, 0, 110deg); transform-origin: top left; opacity: .15; }
|
|
203378
|
+
}
|
|
203379
|
+
`;
|
|
203380
|
+
var PAGECURL_RIGHT_KEYFRAMES = `
|
|
203381
|
+
@keyframes pptx-tr-pagecurl-out-right {
|
|
203382
|
+
from { transform: perspective(1600px) rotateY(0deg); transform-origin: left center; opacity: 1; }
|
|
203383
|
+
to { transform: perspective(1600px) rotateY(155deg); transform-origin: left center; opacity: .25; }
|
|
203384
|
+
}
|
|
203385
|
+
@keyframes pptx-tr-pagecurl-double-in-right {
|
|
203386
|
+
from { transform: perspective(1600px) rotateY(-155deg); transform-origin: right center; opacity: .25; }
|
|
203387
|
+
to { transform: perspective(1600px) rotateY(0deg); transform-origin: right center; opacity: 1; }
|
|
203388
|
+
}
|
|
203389
|
+
`;
|
|
203390
|
+
var AIRPLANE_RIGHT_KEYFRAMES = `
|
|
203391
|
+
@keyframes pptx-tr-airplane-out-right {
|
|
203392
|
+
0% { transform: perspective(1200px) translate3d(0, 0, 0) rotate3d(-1, -1, 0, 0deg) scale(1); opacity: 1; }
|
|
203393
|
+
40% { transform: perspective(1200px) translate3d(-10%, -10%, 0) rotate3d(-1, -1, 0, 25deg) scale(.85); opacity: 1; }
|
|
203394
|
+
100% { transform: perspective(1200px) translate3d(-150%, -70%, 0) rotate3d(-1, -1, 1, 70deg) scale(.05); opacity: 0; }
|
|
203395
|
+
}
|
|
203396
|
+
`;
|
|
203397
|
+
var ORIGAMI_RIGHT_KEYFRAMES = `
|
|
203398
|
+
@keyframes pptx-tr-origami-out-right {
|
|
203399
|
+
0% { transform: perspective(1400px) rotateX(0deg) rotateZ(0deg) translateY(0) scale(1); transform-origin: top right; opacity: 1; filter: brightness(1); }
|
|
203400
|
+
45% { transform: perspective(1400px) rotateX(-52deg) rotateZ(-3deg) translateY(2%) scale(.96); transform-origin: top right; opacity: 1; filter: brightness(.82); }
|
|
203401
|
+
70% { transform: perspective(1400px) rotateX(-84deg) rotateZ(-3deg) translateY(8%) scale(.88); transform-origin: top right; opacity: .8; filter: brightness(.68); }
|
|
203402
|
+
100% { transform: perspective(1400px) rotateX(-125deg) rotateZ(-3deg) translateY(30%) scale(.68); transform-origin: top right; opacity: 0; filter: brightness(.55); }
|
|
203403
|
+
}
|
|
203404
|
+
@keyframes pptx-tr-origami-in-right {
|
|
203405
|
+
0% { transform: perspective(1400px) rotateX(62deg) rotateZ(3deg) scale(.94); transform-origin: bottom left; opacity: 0; filter: brightness(.7); }
|
|
203406
|
+
30% { transform: perspective(1400px) rotateX(62deg) rotateZ(3deg) scale(.94); transform-origin: bottom left; opacity: .65; filter: brightness(.75); }
|
|
203407
|
+
100% { transform: perspective(1400px) rotateX(0deg) rotateZ(0deg) scale(1); transform-origin: bottom left; opacity: 1; filter: brightness(1); }
|
|
203408
|
+
}
|
|
203409
|
+
`;
|
|
203410
|
+
var CINEMATIC_MIRROR_KEYFRAMES = `${FALLOVER_RIGHT_KEYFRAMES}
|
|
203411
|
+
${DRAPE_RIGHT_KEYFRAMES}
|
|
203412
|
+
${PEELOFF_RIGHT_KEYFRAMES}
|
|
203413
|
+
${PAGECURL_RIGHT_KEYFRAMES}
|
|
203414
|
+
${AIRPLANE_RIGHT_KEYFRAMES}
|
|
203415
|
+
${ORIGAMI_RIGHT_KEYFRAMES}`;
|
|
202994
203416
|
var ROTATE_TRANSITION_KEYFRAMES = `
|
|
202995
203417
|
/* \u2500\u2500 Rotate (screen-flush hinge, like Cube, reached via \`isContent="1"\`
|
|
202996
203418
|
instead of Cube's bare element) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -203003,6 +203425,9 @@ var ROTATE_TRANSITION_KEYFRAMES = `
|
|
|
203003
203425
|
@keyframes pptx-tr-rotate-out-down { from { transform: perspective(1500px) translateY(0) rotateX(0deg); } to { transform: perspective(1500px) translateY(50%) rotateX(-90deg); opacity: .55; } }
|
|
203004
203426
|
@keyframes pptx-tr-rotate-in-down { from { transform: perspective(1500px) translateY(-50%) rotateX(90deg); opacity: .55; } to { transform: perspective(1500px) translateY(0) rotateX(0deg); opacity: 1; } }
|
|
203005
203427
|
`;
|
|
203428
|
+
function isRight(direction) {
|
|
203429
|
+
return resolveDirection(direction, "left") === "right";
|
|
203430
|
+
}
|
|
203006
203431
|
function threeDPair(prefix, dir, dur, outgoingOnTop) {
|
|
203007
203432
|
return {
|
|
203008
203433
|
outgoing: `${prefix}-out-${dir} ${dur} ${EASE} forwards`,
|
|
@@ -203032,14 +203457,14 @@ function getCinematicTransitionAnimations(type, durationMs, direction, orient) {
|
|
|
203032
203457
|
return threeDPair("pptx-tr-rotate", resolveDirection(direction, "left"), dur, false);
|
|
203033
203458
|
case "fallOver":
|
|
203034
203459
|
return {
|
|
203035
|
-
outgoing:
|
|
203460
|
+
outgoing: `${isRight(direction) ? "pptx-tr-fallover-out-right" : "pptx-tr-fallover-out"} ${dur} ${EASE} forwards`,
|
|
203036
203461
|
incoming: "none",
|
|
203037
203462
|
outgoingOnTop: true
|
|
203038
203463
|
};
|
|
203039
203464
|
case "drape":
|
|
203040
203465
|
return {
|
|
203041
203466
|
outgoing: "none",
|
|
203042
|
-
incoming:
|
|
203467
|
+
incoming: `${isRight(direction) ? "pptx-tr-drape-in-right" : "pptx-tr-drape-in"} ${dur} ${EASE} forwards`,
|
|
203043
203468
|
outgoingOnTop: false
|
|
203044
203469
|
};
|
|
203045
203470
|
case "curtains":
|
|
@@ -203075,36 +203500,46 @@ function getCinematicTransitionAnimations(type, durationMs, direction, orient) {
|
|
|
203075
203500
|
incoming: `pptx-tr-crush-in ${dur} ${EASE} forwards`,
|
|
203076
203501
|
outgoingOnTop: true
|
|
203077
203502
|
};
|
|
203078
|
-
case "peelOff":
|
|
203503
|
+
case "peelOff": {
|
|
203504
|
+
const right = isRight(direction);
|
|
203079
203505
|
return {
|
|
203080
|
-
outgoing:
|
|
203506
|
+
outgoing: `${right ? "pptx-tr-peeloff-out-right" : "pptx-tr-peeloff-out"} ${dur} ${EASE} forwards`,
|
|
203081
203507
|
incoming: "none",
|
|
203082
203508
|
outgoingOnTop: true
|
|
203083
203509
|
};
|
|
203084
|
-
|
|
203510
|
+
}
|
|
203511
|
+
case "pageCurlSingle": {
|
|
203512
|
+
const right = isRight(direction);
|
|
203085
203513
|
return {
|
|
203086
|
-
outgoing:
|
|
203514
|
+
outgoing: `${right ? "pptx-tr-pagecurl-out-right" : "pptx-tr-pagecurl-out"} ${dur} ${EASE} forwards`,
|
|
203087
203515
|
incoming: "none",
|
|
203088
203516
|
outgoingOnTop: true
|
|
203089
203517
|
};
|
|
203090
|
-
|
|
203518
|
+
}
|
|
203519
|
+
case "pageCurlDouble": {
|
|
203520
|
+
const right = isRight(direction);
|
|
203091
203521
|
return {
|
|
203092
|
-
outgoing:
|
|
203093
|
-
incoming:
|
|
203522
|
+
outgoing: `${right ? "pptx-tr-pagecurl-out-right" : "pptx-tr-pagecurl-out"} ${dur} ${EASE} forwards`,
|
|
203523
|
+
incoming: `${right ? "pptx-tr-pagecurl-double-in-right" : "pptx-tr-pagecurl-double-in"} ${dur} ${EASE} forwards`,
|
|
203094
203524
|
outgoingOnTop: true
|
|
203095
203525
|
};
|
|
203096
|
-
|
|
203526
|
+
}
|
|
203527
|
+
case "airplane": {
|
|
203528
|
+
const right = isRight(direction);
|
|
203097
203529
|
return {
|
|
203098
|
-
outgoing:
|
|
203530
|
+
outgoing: `${right ? "pptx-tr-airplane-out-right" : "pptx-tr-airplane-out"} ${dur} ${EASE} forwards`,
|
|
203099
203531
|
incoming: `pptx-tr-fade-in ${dur} ${EASE} forwards`,
|
|
203100
203532
|
outgoingOnTop: true
|
|
203101
203533
|
};
|
|
203102
|
-
|
|
203534
|
+
}
|
|
203535
|
+
case "origami": {
|
|
203536
|
+
const right = isRight(direction);
|
|
203103
203537
|
return {
|
|
203104
|
-
outgoing:
|
|
203105
|
-
incoming:
|
|
203538
|
+
outgoing: `${right ? "pptx-tr-origami-out-right" : "pptx-tr-origami-out"} ${dur} ${EASE} forwards`,
|
|
203539
|
+
incoming: `${right ? "pptx-tr-origami-in-right" : "pptx-tr-origami-in"} ${dur} ${EASE} forwards`,
|
|
203106
203540
|
outgoingOnTop: true
|
|
203107
203541
|
};
|
|
203542
|
+
}
|
|
203108
203543
|
default:
|
|
203109
203544
|
return void 0;
|
|
203110
203545
|
}
|
|
@@ -203192,6 +203627,7 @@ ${ROTATE_TRANSITION_KEYFRAMES}
|
|
|
203192
203627
|
moment is brief and already mid-fade, so no line artifact survives. */
|
|
203193
203628
|
@keyframes pptx-tr-origami-out { 0% { transform: perspective(1400px) rotateX(0deg) translateY(0) scale(1); transform-origin: top center; opacity: 1; filter: brightness(1); } 45% { transform: perspective(1400px) rotateX(-52deg) translateY(2%) scale(.96); transform-origin: top center; opacity: 1; filter: brightness(.82); } 70% { transform: perspective(1400px) rotateX(-84deg) translateY(8%) scale(.88); transform-origin: top center; opacity: .8; filter: brightness(.68); } 100% { transform: perspective(1400px) rotateX(-125deg) translateY(30%) scale(.68); transform-origin: top center; opacity: 0; filter: brightness(.55); } }
|
|
203194
203629
|
@keyframes pptx-tr-origami-in { 0% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: 0; filter: brightness(.7); } 30% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: .65; filter: brightness(.75); } 100% { transform: perspective(1400px) rotateX(0deg) scale(1); transform-origin: bottom center; opacity: 1; filter: brightness(1); } }
|
|
203630
|
+
${CINEMATIC_MIRROR_KEYFRAMES}
|
|
203195
203631
|
`;
|
|
203196
203632
|
function seededUnit(seed) {
|
|
203197
203633
|
const x = Math.sin(seed * 12.9898 + 78.233) * 43758.5453;
|
|
@@ -203996,6 +204432,36 @@ ${P14_TRANSITION_KEYFRAMES_ALL}
|
|
|
203996
204432
|
${CINEMATIC_TRANSITION_KEYFRAMES}
|
|
203997
204433
|
${FRAGMENT_TRANSITION_KEYFRAMES}`;
|
|
203998
204434
|
var SLIDE_TRANSITION_KEYFRAMES_CSS = SLIDE_TRANSITION_KEYFRAMES;
|
|
204435
|
+
function getVortexAnimations(durationMs, direction, ease) {
|
|
204436
|
+
const dur = `${durationMs}ms`;
|
|
204437
|
+
const dir = resolveDirection(direction, "left");
|
|
204438
|
+
return {
|
|
204439
|
+
outgoing: `pptx-tr-vortex-out-${dir} ${dur} ${ease} forwards`,
|
|
204440
|
+
incoming: `pptx-tr-vortex-in-${dir} ${dur} ${ease} forwards`,
|
|
204441
|
+
outgoingOnTop: true
|
|
204442
|
+
};
|
|
204443
|
+
}
|
|
204444
|
+
function getRippleAnimations(durationMs, direction, ease) {
|
|
204445
|
+
const dur = `${durationMs}ms`;
|
|
204446
|
+
const dir = resolveDirection8(direction, "left");
|
|
204447
|
+
const corner2 = dir === "lu" || dir === "ld" || dir === "ru" || dir === "rd" ? dir : void 0;
|
|
204448
|
+
return {
|
|
204449
|
+
outgoing: "none",
|
|
204450
|
+
incoming: corner2 ? `pptx-tr-ripple-in-${corner2} ${dur} ${ease} forwards` : `pptx-tr-ripple-in ${dur} ${ease} forwards`,
|
|
204451
|
+
outgoingOnTop: false
|
|
204452
|
+
};
|
|
204453
|
+
}
|
|
204454
|
+
function getGlitterAnimations(durationMs, direction, pattern, ease) {
|
|
204455
|
+
const dur = `${durationMs}ms`;
|
|
204456
|
+
const dir = resolveDirection(direction, "left");
|
|
204457
|
+
const dirToken = dir === "left" ? "l" : dir === "right" ? "r" : dir === "up" ? "u" : "d";
|
|
204458
|
+
const family = pattern === "hexagon" ? "hexagon" : "diamond";
|
|
204459
|
+
return {
|
|
204460
|
+
outgoing: `pptx-tr-fade-out ${dur} ${ease} forwards`,
|
|
204461
|
+
incoming: `pptx-tr-glitter-${family}-in-${dirToken} ${dur} ${ease} forwards`,
|
|
204462
|
+
outgoingOnTop: true
|
|
204463
|
+
};
|
|
204464
|
+
}
|
|
203999
204465
|
function resolveLR(direction) {
|
|
204000
204466
|
if (direction === "l" || direction === "r") {
|
|
204001
204467
|
return direction;
|
|
@@ -204134,11 +204600,7 @@ function getP14TransitionAnimations(type, durationMs, direction, orient, pattern
|
|
|
204134
204600
|
};
|
|
204135
204601
|
}
|
|
204136
204602
|
case "glitter":
|
|
204137
|
-
return
|
|
204138
|
-
outgoing: `pptx-tr-fade-out ${dur} ${ease} forwards`,
|
|
204139
|
-
incoming: `pptx-tr-glitter-in ${dur} ${ease} forwards`,
|
|
204140
|
-
outgoingOnTop: true
|
|
204141
|
-
};
|
|
204603
|
+
return getGlitterAnimations(durationMs, direction, pattern, ease);
|
|
204142
204604
|
case "honeycomb":
|
|
204143
204605
|
return {
|
|
204144
204606
|
outgoing: `pptx-tr-honeycomb-out ${dur} ${ease} forwards`,
|
|
@@ -204158,11 +204620,7 @@ function getP14TransitionAnimations(type, durationMs, direction, orient, pattern
|
|
|
204158
204620
|
};
|
|
204159
204621
|
}
|
|
204160
204622
|
case "ripple":
|
|
204161
|
-
return
|
|
204162
|
-
outgoing: "none",
|
|
204163
|
-
incoming: `pptx-tr-ripple-in ${dur} ${ease} forwards`,
|
|
204164
|
-
outgoingOnTop: false
|
|
204165
|
-
};
|
|
204623
|
+
return getRippleAnimations(durationMs, direction, ease);
|
|
204166
204624
|
case "shred": {
|
|
204167
204625
|
const isRectangles = pattern === "rectangle";
|
|
204168
204626
|
return {
|
|
@@ -204187,11 +204645,7 @@ function getP14TransitionAnimations(type, durationMs, direction, orient, pattern
|
|
|
204187
204645
|
};
|
|
204188
204646
|
}
|
|
204189
204647
|
case "vortex":
|
|
204190
|
-
return
|
|
204191
|
-
outgoing: `pptx-tr-vortex-out ${dur} ${ease} forwards`,
|
|
204192
|
-
incoming: `pptx-tr-vortex-in ${dur} ${ease} forwards`,
|
|
204193
|
-
outgoingOnTop: true
|
|
204194
|
-
};
|
|
204648
|
+
return getVortexAnimations(durationMs, direction, ease);
|
|
204195
204649
|
case "warp": {
|
|
204196
204650
|
const isOut = direction === "out";
|
|
204197
204651
|
if (isOut) {
|
|
@@ -204590,7 +205044,7 @@ var TRANSITION_MORPH_OPTIONS = [
|
|
|
204590
205044
|
{ value: "byWord", label: "By Word", i18nKey: "pptx.transition.morphOption.byWord" },
|
|
204591
205045
|
{ value: "byChar", label: "By Character", i18nKey: "pptx.transition.morphOption.byChar" }
|
|
204592
205046
|
];
|
|
204593
|
-
var TRANSITION_ORIENTATION_TYPES = /* @__PURE__ */ new Set(["blinds", "checker", "comb", "randomBar"]);
|
|
205047
|
+
var TRANSITION_ORIENTATION_TYPES = /* @__PURE__ */ new Set(["blinds", "checker", "comb", "randomBar", "doors", "window"]);
|
|
204594
205048
|
var TRANSITION_DIR_ARROWS = {
|
|
204595
205049
|
l: "\u2190",
|
|
204596
205050
|
r: "\u2192",
|
|
@@ -204649,8 +205103,8 @@ function transitionSoundOptions(transition) {
|
|
|
204649
205103
|
options.push({ value: TRANSITION_SOUND_CURRENT_VALUE, label: fileName });
|
|
204650
205104
|
}
|
|
204651
205105
|
options.push({ value: TRANSITION_SOUND_NONE_VALUE, i18nKey: "pptx.ribbon.soundNone" });
|
|
204652
|
-
for (const
|
|
204653
|
-
options.push({ value:
|
|
205106
|
+
for (const entry3 of EFFECT_SOUND_CATALOGUE) {
|
|
205107
|
+
options.push({ value: entry3.id, i18nKey: entry3.i18nKey });
|
|
204654
205108
|
}
|
|
204655
205109
|
options.push({ value: TRANSITION_SOUND_OTHER_VALUE, i18nKey: "pptx.ribbon.soundOther" });
|
|
204656
205110
|
return options;
|
|
@@ -207467,9 +207921,9 @@ function observeElementHeight(el, onHeight) {
|
|
|
207467
207921
|
return () => void 0;
|
|
207468
207922
|
}
|
|
207469
207923
|
const observer = new ResizeObserver((entries) => {
|
|
207470
|
-
const
|
|
207471
|
-
if (
|
|
207472
|
-
const box =
|
|
207924
|
+
const entry3 = entries[entries.length - 1];
|
|
207925
|
+
if (entry3) {
|
|
207926
|
+
const box = entry3.borderBoxSize?.[0]?.blockSize;
|
|
207473
207927
|
onHeight(box ?? el.getBoundingClientRect().height);
|
|
207474
207928
|
}
|
|
207475
207929
|
});
|
|
@@ -208749,7 +209203,7 @@ function buildJoinCollaborationConfig(fields) {
|
|
|
208749
209203
|
const serverUrl = (url?.searchParams.get("server") ?? fields.serverUrl).trim();
|
|
208750
209204
|
const transport = requestedTransport === "webrtc" ? "webrtc" : resolveTransportForServerUrl(serverUrl);
|
|
208751
209205
|
const signalingValue = url?.searchParams.get("signaling");
|
|
208752
|
-
const signaling = signalingValue?.split(",").map((
|
|
209206
|
+
const signaling = signalingValue?.split(",").map((entry3) => entry3.trim()).filter((entry3) => entry3.length > 0);
|
|
208753
209207
|
return {
|
|
208754
209208
|
roomId,
|
|
208755
209209
|
userName,
|
|
@@ -208902,11 +209356,11 @@ function buildTextBuildSpec(elementId, paraIndex, runs, states) {
|
|
|
208902
209356
|
);
|
|
208903
209357
|
if (hasCharBuild) {
|
|
208904
209358
|
const spans = characters.map(
|
|
208905
|
-
(
|
|
209359
|
+
(entry3, index) => stateSpan(
|
|
208906
209360
|
`${elementId}${TEXT_BUILD_ID_SEP}c${paraIndex}-${index}`,
|
|
208907
|
-
|
|
209361
|
+
entry3.ch,
|
|
208908
209362
|
states,
|
|
208909
|
-
|
|
209363
|
+
entry3.style
|
|
208910
209364
|
)
|
|
208911
209365
|
);
|
|
208912
209366
|
return { granularity: "char", spans };
|
|
@@ -209215,17 +209669,17 @@ function createViewerStore(initial) {
|
|
|
209215
209669
|
return;
|
|
209216
209670
|
}
|
|
209217
209671
|
notifiedState = state;
|
|
209218
|
-
for (const
|
|
209219
|
-
if (!selectors.has(
|
|
209672
|
+
for (const entry3 of [...selectors]) {
|
|
209673
|
+
if (!selectors.has(entry3)) {
|
|
209220
209674
|
continue;
|
|
209221
209675
|
}
|
|
209222
|
-
const next =
|
|
209223
|
-
const previous =
|
|
209224
|
-
if (
|
|
209676
|
+
const next = entry3.select(state);
|
|
209677
|
+
const previous = entry3.last;
|
|
209678
|
+
if (entry3.equal(previous, next)) {
|
|
209225
209679
|
continue;
|
|
209226
209680
|
}
|
|
209227
|
-
|
|
209228
|
-
|
|
209681
|
+
entry3.last = next;
|
|
209682
|
+
entry3.notify(next, previous);
|
|
209229
209683
|
}
|
|
209230
209684
|
for (const listener of [...listeners2]) {
|
|
209231
209685
|
if (listeners2.has(listener)) {
|
|
@@ -209250,15 +209704,15 @@ function createViewerStore(initial) {
|
|
|
209250
209704
|
};
|
|
209251
209705
|
},
|
|
209252
209706
|
subscribeSelector(selector, listener, isEqual) {
|
|
209253
|
-
const
|
|
209707
|
+
const entry3 = {
|
|
209254
209708
|
select: selector,
|
|
209255
209709
|
notify: listener,
|
|
209256
209710
|
equal: isEqual ?? defaultEqual,
|
|
209257
209711
|
last: selector(state)
|
|
209258
209712
|
};
|
|
209259
|
-
selectors.add(
|
|
209713
|
+
selectors.add(entry3);
|
|
209260
209714
|
return () => {
|
|
209261
|
-
selectors.delete(
|
|
209715
|
+
selectors.delete(entry3);
|
|
209262
209716
|
};
|
|
209263
209717
|
},
|
|
209264
209718
|
batch(write) {
|
|
@@ -210503,6 +210957,9 @@ function mapEditorKey(input, guard = {}) {
|
|
|
210503
210957
|
if (mod && !alt && key2.toLowerCase() === "h") {
|
|
210504
210958
|
return { action: "findReplace" };
|
|
210505
210959
|
}
|
|
210960
|
+
if (mod && alt && key2.toLowerCase() === "v" && !state.isTextInputTarget) {
|
|
210961
|
+
return state.canPaste === false ? NO_ACTION : { action: "pasteSpecial" };
|
|
210962
|
+
}
|
|
210506
210963
|
if (mod && !alt) {
|
|
210507
210964
|
const liveFormat = resolveLiveFormatChord(key2, Boolean(input.shiftKey));
|
|
210508
210965
|
if (liveFormat) {
|
|
@@ -210669,6 +211126,11 @@ var LABEL_KEYS = {
|
|
|
210669
211126
|
"table-split": "pptx.contextMenu.splitCell",
|
|
210670
211127
|
group: "pptx.contextMenu.group",
|
|
210671
211128
|
ungroup: "pptx.contextMenu.ungroup",
|
|
211129
|
+
"edit-text": "pptx.contextMenu.editText",
|
|
211130
|
+
"save-as-picture": "pptx.contextMenu.saveAsPicture",
|
|
211131
|
+
"edit-alt-text": "pptx.contextMenu.editAltText",
|
|
211132
|
+
"size-and-position": "pptx.contextMenu.sizeAndPosition",
|
|
211133
|
+
"format-shape": "pptx.contextMenu.formatShape",
|
|
210672
211134
|
delete: "pptx.contextMenu.delete"
|
|
210673
211135
|
};
|
|
210674
211136
|
function entry(id, extra = {}) {
|
|
@@ -210698,6 +211160,7 @@ function tableEntries(table2) {
|
|
|
210698
211160
|
entry("table-merge-down")
|
|
210699
211161
|
];
|
|
210700
211162
|
}
|
|
211163
|
+
var TEXT_EDITABLE_ELEMENT_TYPES = /* @__PURE__ */ new Set(["text", "shape"]);
|
|
210701
211164
|
function buildContextMenuEntries(context = {}) {
|
|
210702
211165
|
const { elementType, table: table2, hasMultiSelection, aiEnabled, hasClipboard, selectionGroupable } = context;
|
|
210703
211166
|
const lockedOut = selectionGroupable === false;
|
|
@@ -210705,12 +211168,17 @@ function buildContextMenuEntries(context = {}) {
|
|
|
210705
211168
|
entry("copy"),
|
|
210706
211169
|
entry("cut"),
|
|
210707
211170
|
entry("paste", hasClipboard === false ? { disabled: true } : {}),
|
|
210708
|
-
entry("duplicate")
|
|
211171
|
+
entry("duplicate")
|
|
211172
|
+
];
|
|
211173
|
+
if (elementType && TEXT_EDITABLE_ELEMENT_TYPES.has(elementType)) {
|
|
211174
|
+
entries.push(entry("edit-text"));
|
|
211175
|
+
}
|
|
211176
|
+
entries.push(
|
|
210709
211177
|
entry("bring-forward", { separatorBefore: true }),
|
|
210710
211178
|
entry("send-backward"),
|
|
210711
211179
|
entry("bring-front"),
|
|
210712
211180
|
entry("send-back")
|
|
210713
|
-
|
|
211181
|
+
);
|
|
210714
211182
|
if (aiEnabled) {
|
|
210715
211183
|
entries.push(entry("ai-ask", { separatorBefore: true }), entry("ai-fix"));
|
|
210716
211184
|
}
|
|
@@ -210730,13 +211198,108 @@ function buildContextMenuEntries(context = {}) {
|
|
|
210730
211198
|
);
|
|
210731
211199
|
}
|
|
210732
211200
|
entries.push(
|
|
210733
|
-
entry("
|
|
210734
|
-
|
|
210735
|
-
|
|
210736
|
-
|
|
211201
|
+
entry("save-as-picture", { separatorBefore: true }),
|
|
211202
|
+
entry("edit-alt-text"),
|
|
211203
|
+
entry("size-and-position"),
|
|
211204
|
+
entry("format-shape")
|
|
210737
211205
|
);
|
|
211206
|
+
entries.push(entry("delete", { separatorBefore: true, danger: true }));
|
|
210738
211207
|
return entries;
|
|
210739
211208
|
}
|
|
211209
|
+
var INSPECTOR_SECTION_ATTRIBUTE = "data-pptx-inspector-section";
|
|
211210
|
+
function contextMenuInspectorAnchor(id) {
|
|
211211
|
+
switch (id) {
|
|
211212
|
+
case "size-and-position":
|
|
211213
|
+
return "transform";
|
|
211214
|
+
case "format-shape":
|
|
211215
|
+
return "fill-stroke";
|
|
211216
|
+
case "edit-alt-text":
|
|
211217
|
+
return "alt-text";
|
|
211218
|
+
default:
|
|
211219
|
+
return null;
|
|
211220
|
+
}
|
|
211221
|
+
}
|
|
211222
|
+
function scrollInspectorSectionIntoView(doc, anchor) {
|
|
211223
|
+
const node = doc.querySelector(`[${INSPECTOR_SECTION_ATTRIBUTE}="${anchor}"]`);
|
|
211224
|
+
node?.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
211225
|
+
}
|
|
211226
|
+
var PASTE_SPECIAL_OPTIONS = [
|
|
211227
|
+
{ id: "keep-source-formatting", labelKey: "pptx.pasteSpecial.keepSourceFormatting" },
|
|
211228
|
+
{ id: "use-destination-theme", labelKey: "pptx.pasteSpecial.useDestinationTheme" },
|
|
211229
|
+
{ id: "picture", labelKey: "pptx.pasteSpecial.picture" },
|
|
211230
|
+
{ id: "keep-text-only", labelKey: "pptx.pasteSpecial.keepTextOnly" }
|
|
211231
|
+
];
|
|
211232
|
+
function pasteElementHasText(element) {
|
|
211233
|
+
return "text" in element && typeof element.text === "string" && element.text.trim().length > 0;
|
|
211234
|
+
}
|
|
211235
|
+
function stripSourceThemeOverrides(element) {
|
|
211236
|
+
const next = structuredClone(element);
|
|
211237
|
+
if ("shapeStyle" in next && next.shapeStyle) {
|
|
211238
|
+
const style = { ...next.shapeStyle };
|
|
211239
|
+
delete style.fillColor;
|
|
211240
|
+
delete style.fillColorRef;
|
|
211241
|
+
delete style.strokeColor;
|
|
211242
|
+
delete style.strokeColorRef;
|
|
211243
|
+
next.shapeStyle = style;
|
|
211244
|
+
}
|
|
211245
|
+
if ("textStyle" in next && next.textStyle) {
|
|
211246
|
+
const style = { ...next.textStyle };
|
|
211247
|
+
delete style.color;
|
|
211248
|
+
delete style.fontFamily;
|
|
211249
|
+
next.textStyle = style;
|
|
211250
|
+
}
|
|
211251
|
+
if ("textSegments" in next && Array.isArray(next.textSegments)) {
|
|
211252
|
+
next.textSegments = next.textSegments.map((segment) => {
|
|
211253
|
+
const style = segment.style ? { ...segment.style } : void 0;
|
|
211254
|
+
if (!style) {
|
|
211255
|
+
return segment;
|
|
211256
|
+
}
|
|
211257
|
+
delete style.color;
|
|
211258
|
+
delete style.fontFamily;
|
|
211259
|
+
return { ...segment, style };
|
|
211260
|
+
});
|
|
211261
|
+
}
|
|
211262
|
+
return next;
|
|
211263
|
+
}
|
|
211264
|
+
function toTextOnly(element) {
|
|
211265
|
+
if (!pasteElementHasText(element)) {
|
|
211266
|
+
return element;
|
|
211267
|
+
}
|
|
211268
|
+
return {
|
|
211269
|
+
type: "text",
|
|
211270
|
+
id: element.id,
|
|
211271
|
+
x: element.x,
|
|
211272
|
+
y: element.y,
|
|
211273
|
+
width: element.width,
|
|
211274
|
+
height: element.height,
|
|
211275
|
+
rotation: element.rotation,
|
|
211276
|
+
text: "text" in element ? element.text : void 0
|
|
211277
|
+
};
|
|
211278
|
+
}
|
|
211279
|
+
function applyPasteSpecialFormat(element, format) {
|
|
211280
|
+
switch (format) {
|
|
211281
|
+
case "use-destination-theme":
|
|
211282
|
+
return stripSourceThemeOverrides(element);
|
|
211283
|
+
case "keep-text-only":
|
|
211284
|
+
return toTextOnly(element);
|
|
211285
|
+
case "keep-source-formatting":
|
|
211286
|
+
case "picture":
|
|
211287
|
+
default:
|
|
211288
|
+
return element;
|
|
211289
|
+
}
|
|
211290
|
+
}
|
|
211291
|
+
function buildRasterPictureElement(element, dataUrl) {
|
|
211292
|
+
return {
|
|
211293
|
+
type: "picture",
|
|
211294
|
+
id: element.id,
|
|
211295
|
+
x: element.x,
|
|
211296
|
+
y: element.y,
|
|
211297
|
+
width: element.width,
|
|
211298
|
+
height: element.height,
|
|
211299
|
+
rotation: element.rotation,
|
|
211300
|
+
imageData: dataUrl
|
|
211301
|
+
};
|
|
211302
|
+
}
|
|
210740
211303
|
var ACTION_BUTTON_PRESETS = [
|
|
210741
211304
|
{
|
|
210742
211305
|
shapeType: "actionButtonBackPrevious",
|
|
@@ -212602,9 +213165,9 @@ var mentionMatchScore = (author, needle) => {
|
|
|
212602
213165
|
};
|
|
212603
213166
|
function matchCommentMentionAuthors(authors, query, limit = 6) {
|
|
212604
213167
|
const needle = String(query ?? "").trim().toLowerCase();
|
|
212605
|
-
const scored = authors.filter((author) => author.id && author.name).map((author) => ({ author, score: mentionMatchScore(author, needle) })).filter((
|
|
213168
|
+
const scored = authors.filter((author) => author.id && author.name).map((author) => ({ author, score: mentionMatchScore(author, needle) })).filter((entry3) => entry3.score >= 0);
|
|
212606
213169
|
scored.sort((a, b) => a.score - b.score || a.author.name.localeCompare(b.author.name));
|
|
212607
|
-
return scored.slice(0, limit).map((
|
|
213170
|
+
return scored.slice(0, limit).map((entry3) => entry3.author);
|
|
212608
213171
|
}
|
|
212609
213172
|
function defaultMentionId() {
|
|
212610
213173
|
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
@@ -212800,7 +213363,7 @@ var DEFAULT_CHART_POSITION = { x: 120, y: 120, width: 480, height: 320 };
|
|
|
212800
213363
|
var DEFAULT_CATEGORIES = ["Category 1", "Category 2", "Category 3"];
|
|
212801
213364
|
var DEFAULT_SERIES_VALUES = [4, 3, 5];
|
|
212802
213365
|
function createDefaultChartElement(chartKind = DEFAULT_INSERT_CHART_KIND, position2) {
|
|
212803
|
-
const option = INSERT_CHART_TYPES.find((
|
|
213366
|
+
const option = INSERT_CHART_TYPES.find((entry3) => entry3.id === chartKind);
|
|
212804
213367
|
const chartType = option?.type ?? chartKind;
|
|
212805
213368
|
const chartExData = buildChartExInsertData(option?.id ?? chartKind);
|
|
212806
213369
|
return createChartElement(
|
|
@@ -213029,6 +213592,71 @@ var MEDIA_FULLSCREEN_OVERLAY_STYLE = {
|
|
|
213029
213592
|
function shouldShowMediaFullscreenStopButton(input) {
|
|
213030
213593
|
return isMediaFullscreenActive(input);
|
|
213031
213594
|
}
|
|
213595
|
+
var ONLINE_VIDEO_IFRAME_ALLOW = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen";
|
|
213596
|
+
var ONLINE_VIDEO_IFRAME_SANDBOX = "allow-scripts allow-same-origin allow-popups allow-presentation";
|
|
213597
|
+
function youtubeVideoId(url) {
|
|
213598
|
+
const host = url.hostname.replace(/^www\./, "").toLowerCase();
|
|
213599
|
+
if (host === "youtu.be") {
|
|
213600
|
+
const id = url.pathname.split("/").filter(Boolean)[0];
|
|
213601
|
+
return id || void 0;
|
|
213602
|
+
}
|
|
213603
|
+
if (host !== "youtube.com" && host !== "m.youtube.com" && host !== "youtube-nocookie.com") {
|
|
213604
|
+
return void 0;
|
|
213605
|
+
}
|
|
213606
|
+
if (url.pathname.startsWith("/embed/")) {
|
|
213607
|
+
return url.pathname.slice("/embed/".length).split("/")[0] || void 0;
|
|
213608
|
+
}
|
|
213609
|
+
const watchId = url.searchParams.get("v");
|
|
213610
|
+
if (watchId) {
|
|
213611
|
+
return watchId;
|
|
213612
|
+
}
|
|
213613
|
+
const shortsMatch = /^\/shorts\/([^/]+)/.exec(url.pathname);
|
|
213614
|
+
if (shortsMatch) {
|
|
213615
|
+
return shortsMatch[1];
|
|
213616
|
+
}
|
|
213617
|
+
return void 0;
|
|
213618
|
+
}
|
|
213619
|
+
function vimeoVideoId(url) {
|
|
213620
|
+
const host = url.hostname.replace(/^www\./, "").toLowerCase();
|
|
213621
|
+
if (host === "player.vimeo.com") {
|
|
213622
|
+
const match2 = /^\/video\/(\d+)/.exec(url.pathname);
|
|
213623
|
+
return match2?.[1];
|
|
213624
|
+
}
|
|
213625
|
+
if (host !== "vimeo.com") {
|
|
213626
|
+
return void 0;
|
|
213627
|
+
}
|
|
213628
|
+
const match = /^\/(?:channels\/[^/]+\/|groups\/[^/]+\/videos\/)?(\d+)/.exec(url.pathname);
|
|
213629
|
+
return match?.[1];
|
|
213630
|
+
}
|
|
213631
|
+
function resolveOnlineVideoEmbed(mediaPath, isLinked) {
|
|
213632
|
+
if (!isLinked || !mediaPath) {
|
|
213633
|
+
return void 0;
|
|
213634
|
+
}
|
|
213635
|
+
let url;
|
|
213636
|
+
try {
|
|
213637
|
+
url = new URL(mediaPath);
|
|
213638
|
+
} catch {
|
|
213639
|
+
return void 0;
|
|
213640
|
+
}
|
|
213641
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
213642
|
+
return void 0;
|
|
213643
|
+
}
|
|
213644
|
+
const youtubeId = youtubeVideoId(url);
|
|
213645
|
+
if (youtubeId) {
|
|
213646
|
+
return { embedUrl: `https://www.youtube.com/embed/${youtubeId}` };
|
|
213647
|
+
}
|
|
213648
|
+
const vimeoId = vimeoVideoId(url);
|
|
213649
|
+
if (vimeoId) {
|
|
213650
|
+
return { embedUrl: `https://player.vimeo.com/video/${vimeoId}` };
|
|
213651
|
+
}
|
|
213652
|
+
return void 0;
|
|
213653
|
+
}
|
|
213654
|
+
function getOnlineVideoEmbed(element) {
|
|
213655
|
+
if (element.type !== "media" || element.mediaType !== "video") {
|
|
213656
|
+
return void 0;
|
|
213657
|
+
}
|
|
213658
|
+
return resolveOnlineVideoEmbed(element.mediaPath, element.isLinked);
|
|
213659
|
+
}
|
|
213032
213660
|
function scheduleMediaTrimAndFade(el, source) {
|
|
213033
213661
|
const trimStartSec = source.trimStartMs !== void 0 && source.trimStartMs > 0 ? source.trimStartMs / 1e3 : 0;
|
|
213034
213662
|
const trimEndDistanceSec = source.trimEndMs !== void 0 && source.trimEndMs > 0 ? source.trimEndMs / 1e3 : 0;
|
|
@@ -213182,25 +213810,25 @@ function registerPersistentAudio(elementId, dataUrl, mimetype, loop, volume, tri
|
|
|
213182
213810
|
});
|
|
213183
213811
|
}
|
|
213184
213812
|
function stopAllPersistentAudio() {
|
|
213185
|
-
for (const
|
|
213186
|
-
|
|
213187
|
-
|
|
213813
|
+
for (const entry3 of persistentAudioMap.values()) {
|
|
213814
|
+
entry3.audio.pause();
|
|
213815
|
+
entry3.audio.remove();
|
|
213188
213816
|
}
|
|
213189
213817
|
persistentAudioMap.clear();
|
|
213190
213818
|
}
|
|
213191
213819
|
function pauseAllPersistentAudio() {
|
|
213192
|
-
for (const
|
|
213193
|
-
if (!
|
|
213194
|
-
|
|
213195
|
-
|
|
213820
|
+
for (const entry3 of persistentAudioMap.values()) {
|
|
213821
|
+
if (!entry3.audio.paused) {
|
|
213822
|
+
entry3.pausedByVisibility = true;
|
|
213823
|
+
entry3.audio.pause();
|
|
213196
213824
|
}
|
|
213197
213825
|
}
|
|
213198
213826
|
}
|
|
213199
213827
|
function resumeAllPersistentAudio() {
|
|
213200
|
-
for (const
|
|
213201
|
-
if (
|
|
213202
|
-
|
|
213203
|
-
void
|
|
213828
|
+
for (const entry3 of persistentAudioMap.values()) {
|
|
213829
|
+
if (entry3.pausedByVisibility) {
|
|
213830
|
+
entry3.pausedByVisibility = false;
|
|
213831
|
+
void entry3.audio.play().catch(() => {
|
|
213204
213832
|
});
|
|
213205
213833
|
}
|
|
213206
213834
|
}
|
|
@@ -213317,7 +213945,12 @@ function buildSummaryZoomView(element, lookup, translate) {
|
|
|
213317
213945
|
ariaLabel: translate ? translate("pptx.zoom.ariaLabelSummaryTile", {
|
|
213318
213946
|
section: label,
|
|
213319
213947
|
number: String(slideNumber)
|
|
213320
|
-
}) : `Zoom to section ${label}, slide ${slideNumber}
|
|
213948
|
+
}) : `Zoom to section ${label}, slide ${slideNumber}`,
|
|
213949
|
+
// `CT_ZoomObjectProperties/@returnToParent`'s schema default is `true`
|
|
213950
|
+
// when absent (see `ZoomPptxElement.returnToParent`'s doc comment), so
|
|
213951
|
+
// this reads the effective value, not `Boolean(target.returnToParent)`.
|
|
213952
|
+
returnToParent: target.returnToParent !== false,
|
|
213953
|
+
transitionDurationMs: target.transitionDurationMs
|
|
213321
213954
|
};
|
|
213322
213955
|
});
|
|
213323
213956
|
return {
|
|
@@ -213983,7 +214616,7 @@ function imageFile(clipboard) {
|
|
|
213983
214616
|
if (!clipboard) {
|
|
213984
214617
|
return null;
|
|
213985
214618
|
}
|
|
213986
|
-
const file = Array.from(clipboard.files).find((
|
|
214619
|
+
const file = Array.from(clipboard.files).find((entry3) => entry3.type.startsWith("image/"));
|
|
213987
214620
|
if (file) {
|
|
213988
214621
|
return file;
|
|
213989
214622
|
}
|
|
@@ -214884,6 +215517,56 @@ function runProgramNoticeStackStyle() {
|
|
|
214884
215517
|
pointerEvents: "none"
|
|
214885
215518
|
};
|
|
214886
215519
|
}
|
|
215520
|
+
function resolveZoomNavigationTarget(element) {
|
|
215521
|
+
if (element.zoomType === "summary") {
|
|
215522
|
+
return void 0;
|
|
215523
|
+
}
|
|
215524
|
+
return {
|
|
215525
|
+
targetSlideIndex: element.targetSlideIndex,
|
|
215526
|
+
targetSectionId: element.targetSectionId,
|
|
215527
|
+
returnToParent: element.returnToParent !== false,
|
|
215528
|
+
transitionDurationMs: element.transitionDurationMs
|
|
215529
|
+
};
|
|
215530
|
+
}
|
|
215531
|
+
function resolveZoomExcursionEndIndex(target, slides) {
|
|
215532
|
+
if (!target.targetSectionId) {
|
|
215533
|
+
return target.targetSlideIndex;
|
|
215534
|
+
}
|
|
215535
|
+
let end = target.targetSlideIndex;
|
|
215536
|
+
for (let i2 = target.targetSlideIndex + 1; i2 < slides.length; i2++) {
|
|
215537
|
+
if (slides[i2]?.sectionId !== target.targetSectionId) {
|
|
215538
|
+
break;
|
|
215539
|
+
}
|
|
215540
|
+
end = i2;
|
|
215541
|
+
}
|
|
215542
|
+
return end;
|
|
215543
|
+
}
|
|
215544
|
+
function beginZoomExcursion(target, returnSlideIndex, slides) {
|
|
215545
|
+
if (!target.returnToParent) {
|
|
215546
|
+
return void 0;
|
|
215547
|
+
}
|
|
215548
|
+
return {
|
|
215549
|
+
returnSlideIndex,
|
|
215550
|
+
endSlideIndex: resolveZoomExcursionEndIndex(target, slides),
|
|
215551
|
+
transitionDurationMs: target.transitionDurationMs
|
|
215552
|
+
};
|
|
215553
|
+
}
|
|
215554
|
+
function resolveForwardSlideWithZoomReturn(currentSlideIndex, naturalNextIndex, excursion) {
|
|
215555
|
+
if (excursion && currentSlideIndex === excursion.endSlideIndex) {
|
|
215556
|
+
return {
|
|
215557
|
+
nextSlideIndex: excursion.returnSlideIndex,
|
|
215558
|
+
excursion: void 0,
|
|
215559
|
+
returnedToZoom: true
|
|
215560
|
+
};
|
|
215561
|
+
}
|
|
215562
|
+
return { nextSlideIndex: naturalNextIndex, excursion, returnedToZoom: false };
|
|
215563
|
+
}
|
|
215564
|
+
function buildZoomTransitionOverride(transitionDurationMs) {
|
|
215565
|
+
if (typeof transitionDurationMs !== "number" || transitionDurationMs <= 0) {
|
|
215566
|
+
return void 0;
|
|
215567
|
+
}
|
|
215568
|
+
return { type: "zoom", durationMs: transitionDurationMs };
|
|
215569
|
+
}
|
|
214887
215570
|
var COMMAND_SEARCH_ENTRIES = [
|
|
214888
215571
|
// Format
|
|
214889
215572
|
{ labelKey: "pptx.textPanel.bold", command: "format.bold", icon: "bold", category: "format" },
|
|
@@ -215059,7 +215742,7 @@ function filterCommands(query, resolveLabel) {
|
|
|
215059
215742
|
}
|
|
215060
215743
|
const lowerQuery = query.toLowerCase();
|
|
215061
215744
|
return COMMAND_SEARCH_ENTRIES.filter(
|
|
215062
|
-
(
|
|
215745
|
+
(entry3) => resolveLabel(entry3.labelKey).toLowerCase().includes(lowerQuery)
|
|
215063
215746
|
);
|
|
215064
215747
|
}
|
|
215065
215748
|
var sourceIdentities = /* @__PURE__ */ new WeakMap();
|
|
@@ -215977,7 +216660,7 @@ function resolveOleVerbTarget(slide, elementId, verb) {
|
|
|
215977
216660
|
if (!elementId || !slide) {
|
|
215978
216661
|
return void 0;
|
|
215979
216662
|
}
|
|
215980
|
-
const element = flattenSlideElements(slide.elements).find((
|
|
216663
|
+
const element = flattenSlideElements(slide.elements).find((entry3) => entry3.id === elementId);
|
|
215981
216664
|
if (!element || element.type !== "ole" || !element.oleEmbeddedData) {
|
|
215982
216665
|
return void 0;
|
|
215983
216666
|
}
|
|
@@ -216349,7 +217032,7 @@ var DEFAULT_QUICK_ACCESS_COMMAND_IDS = [
|
|
|
216349
217032
|
"presentFromStart"
|
|
216350
217033
|
];
|
|
216351
217034
|
function getQuickAccessCommand(id) {
|
|
216352
|
-
return QUICK_ACCESS_COMMAND_CATALOG.find((
|
|
217035
|
+
return QUICK_ACCESS_COMMAND_CATALOG.find((entry3) => entry3.id === id);
|
|
216353
217036
|
}
|
|
216354
217037
|
var DEDICATED_QUICK_ACCESS_IDS = /* @__PURE__ */ new Set(["save", "undo", "redo"]);
|
|
216355
217038
|
function extraQuickAccessCommands(commandIds) {
|
|
@@ -216368,7 +217051,7 @@ function extraQuickAccessCommands(commandIds) {
|
|
|
216368
217051
|
return extras;
|
|
216369
217052
|
}
|
|
216370
217053
|
function availableQuickAccessCommands(commandIds) {
|
|
216371
|
-
return QUICK_ACCESS_COMMAND_CATALOG.filter((
|
|
217054
|
+
return QUICK_ACCESS_COMMAND_CATALOG.filter((entry3) => !commandIds.includes(entry3.id));
|
|
216372
217055
|
}
|
|
216373
217056
|
function addQuickAccessCommand(commandIds, id) {
|
|
216374
217057
|
if (commandIds.includes(id) || !getQuickAccessCommand(id)) {
|
|
@@ -216377,7 +217060,7 @@ function addQuickAccessCommand(commandIds, id) {
|
|
|
216377
217060
|
return [...commandIds, id];
|
|
216378
217061
|
}
|
|
216379
217062
|
function removeQuickAccessCommand(commandIds, id) {
|
|
216380
|
-
return commandIds.filter((
|
|
217063
|
+
return commandIds.filter((entry3) => entry3 !== id);
|
|
216381
217064
|
}
|
|
216382
217065
|
function moveQuickAccessCommand(commandIds, id, direction) {
|
|
216383
217066
|
const index = commandIds.indexOf(id);
|
|
@@ -216561,7 +217244,7 @@ function mergeViewerOptions(stored) {
|
|
|
216561
217244
|
const defaultValue = defaults[key2];
|
|
216562
217245
|
if (Array.isArray(defaultValue)) {
|
|
216563
217246
|
if (Array.isArray(value)) {
|
|
216564
|
-
target[key2] = value.filter((
|
|
217247
|
+
target[key2] = value.filter((entry3) => typeof entry3 === "string");
|
|
216565
217248
|
}
|
|
216566
217249
|
} else if (typeof value === typeof defaultValue) {
|
|
216567
217250
|
target[key2] = value;
|
|
@@ -218357,19 +219040,19 @@ function describeCell3D(cell3D) {
|
|
|
218357
219040
|
isSet: cell3D !== void 0
|
|
218358
219041
|
};
|
|
218359
219042
|
}
|
|
218360
|
-
function describeTableStyleEditor(
|
|
218361
|
-
if (!
|
|
219043
|
+
function describeTableStyleEditor(entry3, selectedPart, themeColorMap) {
|
|
219044
|
+
if (!entry3) {
|
|
218362
219045
|
return void 0;
|
|
218363
219046
|
}
|
|
218364
|
-
const keyed =
|
|
219047
|
+
const keyed = entry3;
|
|
218365
219048
|
const hasTextAndBorders = isTableStylePartName(selectedPart);
|
|
218366
|
-
const fill = selectedPart === "background" ?
|
|
219049
|
+
const fill = selectedPart === "background" ? entry3.tableBackground?.fill : keyed[`${selectedPart}Fill`];
|
|
218367
219050
|
const text22 = hasTextAndBorders ? keyed[`${selectedPart}Text`] : void 0;
|
|
218368
219051
|
const borders = hasTextAndBorders ? keyed[`${selectedPart}Borders`] : void 0;
|
|
218369
219052
|
const cell3D = hasTextAndBorders ? keyed[`${selectedPart}Cell3D`] : void 0;
|
|
218370
219053
|
return {
|
|
218371
|
-
styleId:
|
|
218372
|
-
styleName:
|
|
219054
|
+
styleId: entry3.styleId,
|
|
219055
|
+
styleName: entry3.styleName ?? "",
|
|
218373
219056
|
selectedPart,
|
|
218374
219057
|
hasTextAndBorders,
|
|
218375
219058
|
fill: describeFill(fill, themeColorMap),
|
|
@@ -218382,11 +219065,11 @@ function patchBorderSide(borders, side, patch) {
|
|
|
218382
219065
|
const current = borders?.[side] ?? {};
|
|
218383
219066
|
return { ...borders, [side]: { ...current, ...patch } };
|
|
218384
219067
|
}
|
|
218385
|
-
function applyTableStyleFieldEdit(
|
|
219068
|
+
function applyTableStyleFieldEdit(entry3, part, edit) {
|
|
218386
219069
|
if (part === "background") {
|
|
218387
|
-
return applyBackgroundEdit(
|
|
219070
|
+
return applyBackgroundEdit(entry3, edit);
|
|
218388
219071
|
}
|
|
218389
|
-
const keyed =
|
|
219072
|
+
const keyed = entry3;
|
|
218390
219073
|
const fillKey = `${part}Fill`;
|
|
218391
219074
|
const textKey = `${part}Text`;
|
|
218392
219075
|
const bordersKey = `${part}Borders`;
|
|
@@ -218480,7 +219163,7 @@ function applyTableStyleFieldEdit(entry2, part, edit) {
|
|
|
218480
219163
|
return {
|
|
218481
219164
|
entry: nextEntry,
|
|
218482
219165
|
payload: {
|
|
218483
|
-
styleId:
|
|
219166
|
+
styleId: entry3.styleId,
|
|
218484
219167
|
section: part,
|
|
218485
219168
|
...isTableStylePartName(part) ? {
|
|
218486
219169
|
fill: keyed[fillKey],
|
|
@@ -218491,8 +219174,8 @@ function applyTableStyleFieldEdit(entry2, part, edit) {
|
|
|
218491
219174
|
}
|
|
218492
219175
|
};
|
|
218493
219176
|
}
|
|
218494
|
-
function applyBackgroundEdit(
|
|
218495
|
-
const current =
|
|
219177
|
+
function applyBackgroundEdit(entry3, edit) {
|
|
219178
|
+
const current = entry3.tableBackground;
|
|
218496
219179
|
let nextBackground = current;
|
|
218497
219180
|
if (edit.kind === "fillColor") {
|
|
218498
219181
|
nextBackground = { ...current, fill: colorToFill(edit.hex, edit.ref), fillRef: void 0 };
|
|
@@ -218506,10 +219189,10 @@ function applyBackgroundEdit(entry2, edit) {
|
|
|
218506
219189
|
}
|
|
218507
219190
|
};
|
|
218508
219191
|
}
|
|
218509
|
-
const nextEntry = { ...
|
|
219192
|
+
const nextEntry = { ...entry3, tableBackground: nextBackground };
|
|
218510
219193
|
return {
|
|
218511
219194
|
entry: nextEntry,
|
|
218512
|
-
payload: { styleId:
|
|
219195
|
+
payload: { styleId: entry3.styleId, section: "background" }
|
|
218513
219196
|
};
|
|
218514
219197
|
}
|
|
218515
219198
|
init_chart_title_runs();
|
|
@@ -219230,8 +219913,8 @@ function createElementClass() {
|
|
|
219230
219913
|
}
|
|
219231
219914
|
if (win && "IntersectionObserver" in win) {
|
|
219232
219915
|
this.#intersect = new win.IntersectionObserver((entries) => {
|
|
219233
|
-
const
|
|
219234
|
-
this.#visible =
|
|
219916
|
+
const entry3 = entries[entries.length - 1];
|
|
219917
|
+
this.#visible = entry3 ? entry3.isIntersecting : true;
|
|
219235
219918
|
if (this.#visible) {
|
|
219236
219919
|
this.#controller?.remeasure(true);
|
|
219237
219920
|
}
|
|
@@ -221137,8 +221820,8 @@ stream
|
|
|
221137
221820
|
endobj
|
|
221138
221821
|
`
|
|
221139
221822
|
);
|
|
221140
|
-
const contentStream = pageImages.map((
|
|
221141
|
-
const { x, y, width, height } =
|
|
221823
|
+
const contentStream = pageImages.map((entry3, idx) => {
|
|
221824
|
+
const { x, y, width, height } = entry3.placement;
|
|
221142
221825
|
const rawY = PAGE_H - y - height;
|
|
221143
221826
|
return `q ${width.toFixed(2)} 0 0 ${height.toFixed(2)} ${x.toFixed(2)} ${rawY.toFixed(2)} cm /Img${idx} Do Q`;
|
|
221144
221827
|
}).join(" ");
|
|
@@ -222144,6 +222827,22 @@ async function rasterResultToPngBlob(result) {
|
|
|
222144
222827
|
}, "image/png");
|
|
222145
222828
|
});
|
|
222146
222829
|
}
|
|
222830
|
+
async function rasterResultToPngDataUrl(result) {
|
|
222831
|
+
if (result.kind === "canvas") {
|
|
222832
|
+
return result.canvas.toDataURL("image/png");
|
|
222833
|
+
}
|
|
222834
|
+
const blob = await rasterResultToPngBlob(result);
|
|
222835
|
+
return new Promise((resolve2, reject) => {
|
|
222836
|
+
const reader = new FileReader();
|
|
222837
|
+
reader.onloadend = () => resolve2(reader.result);
|
|
222838
|
+
reader.onerror = reject;
|
|
222839
|
+
reader.readAsDataURL(blob);
|
|
222840
|
+
});
|
|
222841
|
+
}
|
|
222842
|
+
function elementPictureFilename(elementName, fallbackLabel) {
|
|
222843
|
+
const base = elementName?.trim() || fallbackLabel;
|
|
222844
|
+
return sanitizeDownloadFilename(`${base}.png`);
|
|
222845
|
+
}
|
|
222147
222846
|
registerPptxWebControls();
|
|
222148
222847
|
// `@preserve` (CT_SlideMaster, ECMA-376 §19.3.1.38): mirrors the
|
|
222149
222848
|
/**
|
|
@@ -222288,6 +222987,8 @@ exports.NOTES_FONT_SIZE_MIN = NOTES_FONT_SIZE_MIN;
|
|
|
222288
222987
|
exports.NOTES_FONT_SIZE_STEP = NOTES_FONT_SIZE_STEP;
|
|
222289
222988
|
exports.NUM = NUM;
|
|
222290
222989
|
exports.OFFICE_COLOR_SWATCHES = OFFICE_COLOR_SWATCHES;
|
|
222990
|
+
exports.ONLINE_VIDEO_IFRAME_ALLOW = ONLINE_VIDEO_IFRAME_ALLOW;
|
|
222991
|
+
exports.ONLINE_VIDEO_IFRAME_SANDBOX = ONLINE_VIDEO_IFRAME_SANDBOX;
|
|
222291
222992
|
exports.OUTLINE_LEVEL_ATTR = OUTLINE_LEVEL_ATTR;
|
|
222292
222993
|
exports.OUTLINE_ROW_ATTR = OUTLINE_ROW_ATTR;
|
|
222293
222994
|
exports.OUTLINE_SLIDE_ATTR = OUTLINE_SLIDE_ATTR;
|
|
@@ -222295,6 +222996,7 @@ exports.OUTLINE_VIEW_ATTR = OUTLINE_VIEW_ATTR;
|
|
|
222295
222996
|
exports.P14_TRANSITION_KEYFRAMES = P14_TRANSITION_KEYFRAMES;
|
|
222296
222997
|
exports.P14_TRANSITION_KEYFRAMES_2 = P14_TRANSITION_KEYFRAMES_2;
|
|
222297
222998
|
exports.P14_TRANSITION_KEYFRAMES_ALL = P14_TRANSITION_KEYFRAMES_ALL;
|
|
222999
|
+
exports.PASTE_SPECIAL_OPTIONS = PASTE_SPECIAL_OPTIONS;
|
|
222298
223000
|
exports.PATTERN_OPTIONS = PATTERN_OPTIONS;
|
|
222299
223001
|
exports.PATTERN_PRESET_OPTIONS = PATTERN_PRESET_OPTIONS;
|
|
222300
223002
|
exports.PDF_SLIDES_PAGE_HEIGHT_PT = PDF_SLIDES_PAGE_HEIGHT_PT;
|
|
@@ -222370,6 +223072,7 @@ exports.TRANSITION_SOUND_NONE_VALUE = TRANSITION_SOUND_NONE_VALUE;
|
|
|
222370
223072
|
exports.TRANSITION_SOUND_OTHER_VALUE = TRANSITION_SOUND_OTHER_VALUE;
|
|
222371
223073
|
exports.TRANSITION_SPEED_DURATION_MS = TRANSITION_SPEED_DURATION_MS;
|
|
222372
223074
|
exports.TRANSITION_SPEED_OPTIONS = TRANSITION_SPEED_OPTIONS;
|
|
223075
|
+
exports.TRIGGER_OPTIONS = TRIGGER_OPTIONS;
|
|
222373
223076
|
exports.ThemePresets = ThemePresets;
|
|
222374
223077
|
exports.VIEWER_OPTIONS_TABS = VIEWER_OPTIONS_TABS;
|
|
222375
223078
|
exports.VIEWER_PREFS_STORAGE_KEY = VIEWER_PREFS_STORAGE_KEY;
|
|
@@ -222424,6 +223127,7 @@ exports.applyOleDocumentParagraphEdit = applyOleDocumentParagraphEdit;
|
|
|
222424
223127
|
exports.applyOleNestedDeckElementTextEdit = applyOleNestedDeckElementTextEdit;
|
|
222425
223128
|
exports.applyOleSheetCellEdit = applyOleSheetCellEdit;
|
|
222426
223129
|
exports.applyOutlineEdit = applyOutlineEdit;
|
|
223130
|
+
exports.applyPasteSpecialFormat = applyPasteSpecialFormat;
|
|
222427
223131
|
exports.applyPreferenceToOptions = applyPreferenceToOptions;
|
|
222428
223132
|
exports.applyReadingViewCommand = applyReadingViewCommand;
|
|
222429
223133
|
exports.applyRehearsalTimings = applyRehearsalTimings;
|
|
@@ -222453,6 +223157,7 @@ exports.bar3DShapePatch = bar3DShapePatch;
|
|
|
222453
223157
|
exports.beginChartMarkDrag = beginChartMarkDrag;
|
|
222454
223158
|
exports.beginChartValueDrag = beginChartValueDrag;
|
|
222455
223159
|
exports.beginShapeAdjustment = beginShapeAdjustment;
|
|
223160
|
+
exports.beginZoomExcursion = beginZoomExcursion;
|
|
222456
223161
|
exports.bindInlineListParagraph = bindInlineListParagraph;
|
|
222457
223162
|
exports.bindInlineListRun = bindInlineListRun;
|
|
222458
223163
|
exports.borrowExternalCollaborationAwareness = borrowExternalCollaborationAwareness;
|
|
@@ -222509,6 +223214,7 @@ exports.buildPreviewAnimation = buildPreviewAnimation;
|
|
|
222509
223214
|
exports.buildPreviewElements = buildPreviewElements;
|
|
222510
223215
|
exports.buildPrintDocument = buildPrintDocument;
|
|
222511
223216
|
exports.buildPrintHtmlDocument = buildPrintHtmlDocument;
|
|
223217
|
+
exports.buildRasterPictureElement = buildRasterPictureElement;
|
|
222512
223218
|
exports.buildRectPathGradient = buildRectPathGradient;
|
|
222513
223219
|
exports.buildRunProgramNotice = buildRunProgramNotice;
|
|
222514
223220
|
exports.buildRunTabLines = buildRunTabLines;
|
|
@@ -222537,6 +223243,7 @@ exports.buildThemeColorMap = buildThemeColorMap;
|
|
|
222537
223243
|
exports.buildThemeColorSwatchGrid = buildThemeColorSwatchGrid;
|
|
222538
223244
|
exports.buildTiledSlidesPdfBytes = buildTiledSlidesPdfBytes;
|
|
222539
223245
|
exports.buildUserFontFaceStyles = buildUserFontFaceStyles;
|
|
223246
|
+
exports.buildZoomTransitionOverride = buildZoomTransitionOverride;
|
|
222540
223247
|
exports.calculateViewportFit = calculateViewportFit;
|
|
222541
223248
|
exports.canAddTopLevelNode = canAddTopLevelNode;
|
|
222542
223249
|
exports.canCommitActionType = canCommitActionType;
|
|
@@ -222620,6 +223327,7 @@ exports.computeSnapToShape = computeSnapToShape;
|
|
|
222620
223327
|
exports.computeSplitCell = computeSplitCell;
|
|
222621
223328
|
exports.computeVirtualRange = computeVirtualRange;
|
|
222622
223329
|
exports.connectorWrapperTransform = connectorWrapperTransform;
|
|
223330
|
+
exports.contextMenuInspectorAnchor = contextMenuInspectorAnchor;
|
|
222623
223331
|
exports.convertLatexToOmml = convertLatexToOmml;
|
|
222624
223332
|
exports.convertOmmlToLatex = convertOmmlToLatex;
|
|
222625
223333
|
exports.convertOmmlToMathMl = convertOmmlToMathMl;
|
|
@@ -222684,6 +223392,7 @@ exports.elementContainerHeightStyle = elementContainerHeightStyle;
|
|
|
222684
223392
|
exports.elementHitTargetStyle = elementHitTargetStyle;
|
|
222685
223393
|
exports.elementIdSelector = elementIdSelector;
|
|
222686
223394
|
exports.elementLockTogglePatch = elementLockTogglePatch;
|
|
223395
|
+
exports.elementPictureFilename = elementPictureFilename;
|
|
222687
223396
|
exports.encodeGif = encodeGif;
|
|
222688
223397
|
exports.endAudienceDisplay = endAudienceDisplay;
|
|
222689
223398
|
exports.ensureActionAffordanceStyles = ensureActionAffordanceStyles;
|
|
@@ -222785,6 +223494,7 @@ exports.getOleObjectTypeLabel = getOleObjectTypeLabel;
|
|
|
222785
223494
|
exports.getOleSheetGrid = getOleSheetGrid;
|
|
222786
223495
|
exports.getOleTypeColor = getOleTypeColor;
|
|
222787
223496
|
exports.getOleTypeLabel = getOleTypeLabel;
|
|
223497
|
+
exports.getOnlineVideoEmbed = getOnlineVideoEmbed;
|
|
222788
223498
|
exports.getOverflowSegments = getOverflowSegments;
|
|
222789
223499
|
exports.getP14TransitionAnimations = getP14TransitionAnimations;
|
|
222790
223500
|
exports.getPatternSvg = getPatternSvg;
|
|
@@ -222937,6 +223647,7 @@ exports.observeElementHeight = observeElementHeight;
|
|
|
222937
223647
|
exports.observeExternalCollaborationReadiness = observeExternalCollaborationReadiness;
|
|
222938
223648
|
exports.observeExternalCollaborationSession = observeExternalCollaborationSession;
|
|
222939
223649
|
exports.observeYDocSlides = observeYDocSlides;
|
|
223650
|
+
exports.oleActionsVisible = oleActionsVisible;
|
|
222940
223651
|
exports.ooxmlGradientAngleToCssDegrees = ooxmlGradientAngleToCssDegrees;
|
|
222941
223652
|
exports.openNativeEyeDropper = openNativeEyeDropper;
|
|
222942
223653
|
exports.openPendingPrintWindow = openPendingPrintWindow;
|
|
@@ -222991,6 +223702,7 @@ exports.pushRecentColor = pushRecentColor;
|
|
|
222991
223702
|
exports.quickStyleSwatchCss = quickStyleSwatchCss;
|
|
222992
223703
|
exports.radarStylePatch = radarStylePatch;
|
|
222993
223704
|
exports.rasterResultToPngBlob = rasterResultToPngBlob;
|
|
223705
|
+
exports.rasterResultToPngDataUrl = rasterResultToPngDataUrl;
|
|
222994
223706
|
exports.rasterizeElement = rasterizeElement;
|
|
222995
223707
|
exports.rasterizeElementTiledToCanvas = rasterizeElementTiledToCanvas;
|
|
222996
223708
|
exports.rasterizeElementTiles = rasterizeElementTiles;
|
|
@@ -223063,6 +223775,7 @@ exports.resolveElementInteractivity = resolveElementInteractivity;
|
|
|
223063
223775
|
exports.resolveExpiredAutosaveSnapshots = resolveExpiredAutosaveSnapshots;
|
|
223064
223776
|
exports.resolveExportCaptureDecision = resolveExportCaptureDecision;
|
|
223065
223777
|
exports.resolveFontKerning = resolveFontKerning;
|
|
223778
|
+
exports.resolveForwardSlideWithZoomReturn = resolveForwardSlideWithZoomReturn;
|
|
223066
223779
|
exports.resolveGoogleWebfontHref = resolveGoogleWebfontHref;
|
|
223067
223780
|
exports.resolveGroupChildFill = resolveGroupChildFill;
|
|
223068
223781
|
exports.resolveHistoryDepth = resolveHistoryDepth;
|
|
@@ -223105,6 +223818,7 @@ exports.resolveTransportForServerUrl = resolveTransportForServerUrl;
|
|
|
223105
223818
|
exports.resolveViewerAddinRows = resolveViewerAddinRows;
|
|
223106
223819
|
exports.resolveViewportFitOptions = resolveViewportFitOptions;
|
|
223107
223820
|
exports.resolveWheelSpokeCount = resolveWheelSpokeCount;
|
|
223821
|
+
exports.resolveZoomNavigationTarget = resolveZoomNavigationTarget;
|
|
223108
223822
|
exports.restoreFilteredSeries = restoreFilteredSeries;
|
|
223109
223823
|
exports.restoreInlineListBodySelection = restoreInlineListBodySelection;
|
|
223110
223824
|
exports.restoreSegmentSelection = restoreSegmentSelection;
|
|
@@ -223127,6 +223841,7 @@ exports.scheduleAutoAdvanceChain = scheduleAutoAdvanceChain;
|
|
|
223127
223841
|
exports.scheduleMediaTrimAndFade = scheduleMediaTrimAndFade;
|
|
223128
223842
|
exports.schemaLabel = schemaLabel;
|
|
223129
223843
|
exports.scopeLayoutOptionsToSlide = scopeLayoutOptionsToSlide;
|
|
223844
|
+
exports.scrollInspectorSectionIntoView = scrollInspectorSectionIntoView;
|
|
223130
223845
|
exports.seedRecentColors = seedRecentColors;
|
|
223131
223846
|
exports.segmentFrameCount = segmentFrameCount;
|
|
223132
223847
|
exports.segmentStyleToCss = segmentStyleToCss;
|