pptx-react-viewer 4.13.0 → 4.15.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 +36 -0
- package/dist/{AiChatPanel-AQDB2BLO.mjs → AiChatPanel-7OVUGUKW.mjs} +4 -4
- package/dist/AiChatPanel-7OVUGUKW.mjs.br +0 -0
- package/dist/AiChatPanel-7OVUGUKW.mjs.gz +0 -0
- package/dist/{AiChatPanel-VXQUQNZ6.js → AiChatPanel-CDQWJTWL.js} +28 -28
- package/dist/AiChatPanel-CDQWJTWL.js.br +0 -0
- package/dist/AiChatPanel-CDQWJTWL.js.gz +0 -0
- package/dist/{Model3DScene-UHHKYZSK.mjs → Model3DScene-A3CPMFAO.mjs} +1 -1
- package/dist/Model3DScene-A3CPMFAO.mjs.br +0 -0
- package/dist/Model3DScene-A3CPMFAO.mjs.gz +0 -0
- package/dist/{Model3DScene-I6OVMXEE.js → Model3DScene-OLGB7Z7Q.js} +2 -2
- package/dist/{Model3DScene-I6OVMXEE.js.br → Model3DScene-OLGB7Z7Q.js.br} +0 -0
- package/dist/Model3DScene-OLGB7Z7Q.js.gz +0 -0
- package/dist/{chunk-UOS5HJLG.js → chunk-2CSRCH4H.js} +2487 -1321
- package/dist/chunk-2CSRCH4H.js.br +0 -0
- package/dist/chunk-2CSRCH4H.js.gz +0 -0
- package/dist/{chunk-KA24ZRTJ.js → chunk-6ZPXMS64.js} +1517 -1526
- package/dist/chunk-6ZPXMS64.js.br +0 -0
- package/dist/chunk-6ZPXMS64.js.gz +0 -0
- package/dist/{chunk-SLMDLVFV.mjs → chunk-AHJ4ND7Q.mjs} +1 -1
- package/dist/chunk-AHJ4ND7Q.mjs.br +0 -0
- package/dist/chunk-AHJ4ND7Q.mjs.gz +0 -0
- package/dist/{chunk-JUUI5DHB.mjs → chunk-AIWEM7VE.mjs} +2478 -1320
- package/dist/chunk-AIWEM7VE.mjs.br +0 -0
- package/dist/chunk-AIWEM7VE.mjs.gz +0 -0
- package/dist/{chunk-55OLQ7HS.mjs → chunk-CJSIEITL.mjs} +3 -0
- package/dist/chunk-CJSIEITL.mjs.br +0 -0
- package/dist/chunk-CJSIEITL.mjs.gz +0 -0
- package/dist/{chunk-5YW6N5KJ.js → chunk-CNXVOFUW.js} +197 -197
- package/dist/chunk-CNXVOFUW.js.br +0 -0
- package/dist/chunk-CNXVOFUW.js.gz +0 -0
- package/dist/{chunk-HJBTQ234.mjs → chunk-DNWIW75I.mjs} +6 -5
- package/dist/chunk-DNWIW75I.mjs.br +0 -0
- package/dist/chunk-DNWIW75I.mjs.gz +0 -0
- package/dist/{chunk-57RBEPPQ.js → chunk-HGO243GV.js} +818 -816
- package/dist/chunk-HGO243GV.js.br +0 -0
- package/dist/chunk-HGO243GV.js.gz +0 -0
- package/dist/{chunk-5DQNWKOF.mjs → chunk-Q5VQ53R3.mjs} +2 -2
- package/dist/chunk-Q5VQ53R3.mjs.br +0 -0
- package/dist/chunk-Q5VQ53R3.mjs.gz +0 -0
- package/dist/{chunk-C5ZJGQ2F.mjs → chunk-RQCAXUVQ.mjs} +342 -351
- package/dist/chunk-RQCAXUVQ.mjs.br +0 -0
- package/dist/chunk-RQCAXUVQ.mjs.gz +0 -0
- package/dist/{chunk-MXH7RMTF.js → chunk-UP6PJEHM.js} +5 -5
- package/dist/chunk-UP6PJEHM.js.br +0 -0
- package/dist/chunk-UP6PJEHM.js.gz +0 -0
- package/dist/{chunk-HIYK7HPX.js → chunk-XEYB25ZT.js} +3 -0
- package/dist/chunk-XEYB25ZT.js.br +0 -0
- package/dist/chunk-XEYB25ZT.js.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 +293 -268
- package/dist/index.js +63 -63
- 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 +600 -575
- 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 +161 -136
- 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-AQDB2BLO.mjs.br +0 -0
- package/dist/AiChatPanel-AQDB2BLO.mjs.gz +0 -0
- package/dist/AiChatPanel-VXQUQNZ6.js.br +0 -0
- package/dist/AiChatPanel-VXQUQNZ6.js.gz +0 -0
- package/dist/Model3DScene-I6OVMXEE.js.gz +0 -0
- package/dist/Model3DScene-UHHKYZSK.mjs.br +0 -0
- package/dist/Model3DScene-UHHKYZSK.mjs.gz +0 -0
- package/dist/chunk-55OLQ7HS.mjs.br +0 -0
- package/dist/chunk-55OLQ7HS.mjs.gz +0 -0
- package/dist/chunk-57RBEPPQ.js.br +0 -0
- package/dist/chunk-57RBEPPQ.js.gz +0 -0
- package/dist/chunk-5DQNWKOF.mjs.br +0 -0
- package/dist/chunk-5DQNWKOF.mjs.gz +0 -0
- package/dist/chunk-5YW6N5KJ.js.br +0 -0
- package/dist/chunk-5YW6N5KJ.js.gz +0 -0
- package/dist/chunk-C5ZJGQ2F.mjs.br +0 -0
- package/dist/chunk-C5ZJGQ2F.mjs.gz +0 -0
- package/dist/chunk-HIYK7HPX.js.br +0 -0
- package/dist/chunk-HIYK7HPX.js.gz +0 -0
- package/dist/chunk-HJBTQ234.mjs.br +0 -0
- package/dist/chunk-HJBTQ234.mjs.gz +0 -0
- package/dist/chunk-JUUI5DHB.mjs.br +0 -0
- package/dist/chunk-JUUI5DHB.mjs.gz +0 -0
- package/dist/chunk-KA24ZRTJ.js.br +0 -0
- package/dist/chunk-KA24ZRTJ.js.gz +0 -0
- package/dist/chunk-MXH7RMTF.js.br +0 -0
- package/dist/chunk-MXH7RMTF.js.gz +0 -0
- package/dist/chunk-SLMDLVFV.mjs.br +0 -0
- package/dist/chunk-SLMDLVFV.mjs.gz +0 -0
- package/dist/chunk-UOS5HJLG.js.br +0 -0
- package/dist/chunk-UOS5HJLG.js.gz +0 -0
|
@@ -28716,7 +28716,7 @@ var ENTRY_TYPE_ROOT;
|
|
|
28716
28716
|
var DIR_ENTRY_SIZE;
|
|
28717
28717
|
var Ole2ParseError;
|
|
28718
28718
|
var init_ole2_parser_types = __esm({
|
|
28719
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
28719
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole2-parser-types.js"() {
|
|
28720
28720
|
OLE_MAGIC = new Uint8Array([208, 207, 17, 224, 161, 177, 26, 225]);
|
|
28721
28721
|
ENDOFCHAIN = 4294967294;
|
|
28722
28722
|
FREESECT = 4294967295;
|
|
@@ -28912,7 +28912,7 @@ function parseOle2(buffer) {
|
|
|
28912
28912
|
return { entries: entries2, getStream };
|
|
28913
28913
|
}
|
|
28914
28914
|
var init_ole2_parser_read = __esm({
|
|
28915
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
28915
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole2-parser-read.js"() {
|
|
28916
28916
|
init_ole2_parser_types();
|
|
28917
28917
|
}
|
|
28918
28918
|
});
|
|
@@ -29091,7 +29091,7 @@ function writeInt32Sectors(outBytes, int32Data, firstSector, numSectors, sectorS
|
|
|
29091
29091
|
}
|
|
29092
29092
|
}
|
|
29093
29093
|
var init_ole2_parser_write_helpers = __esm({
|
|
29094
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
29094
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole2-parser-write-helpers.js"() {
|
|
29095
29095
|
init_ole2_parser_types();
|
|
29096
29096
|
}
|
|
29097
29097
|
});
|
|
@@ -29186,7 +29186,7 @@ function writeStreamSectors(outBytes, streamData, chain2, sectorSize) {
|
|
|
29186
29186
|
}
|
|
29187
29187
|
var HEADER_DIFAT_ENTRIES;
|
|
29188
29188
|
var init_ole2_parser_write_serialize = __esm({
|
|
29189
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
29189
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole2-parser-write-serialize.js"() {
|
|
29190
29190
|
init_ole2_parser_types();
|
|
29191
29191
|
init_ole2_parser_write_helpers();
|
|
29192
29192
|
HEADER_DIFAT_ENTRIES = 109;
|
|
@@ -29357,7 +29357,7 @@ function buildOle2(streams, rootClsid, miniStreamCutoff = 4096) {
|
|
|
29357
29357
|
return output;
|
|
29358
29358
|
}
|
|
29359
29359
|
var init_ole2_parser_write = __esm({
|
|
29360
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
29360
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole2-parser-write.js"() {
|
|
29361
29361
|
init_ole2_parser_types();
|
|
29362
29362
|
init_ole2_parser_write_helpers();
|
|
29363
29363
|
init_ole2_parser_write_serialize();
|
|
@@ -30321,7 +30321,7 @@ var MAX;
|
|
|
30321
30321
|
var NIL;
|
|
30322
30322
|
var SIZE;
|
|
30323
30323
|
var init_ole2_stream_edit = __esm({
|
|
30324
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
30324
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole2-stream-edit.js"() {
|
|
30325
30325
|
END = 4294967294;
|
|
30326
30326
|
MAX = 4294967290;
|
|
30327
30327
|
NIL = 4294967295;
|
|
@@ -30394,7 +30394,7 @@ function isCfb(bytes) {
|
|
|
30394
30394
|
}
|
|
30395
30395
|
var WORKBOOK_STREAM_NAMES;
|
|
30396
30396
|
var init_legacy_excel_cfb = __esm({
|
|
30397
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
30397
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-excel-cfb.js"() {
|
|
30398
30398
|
init_ole2_parser_read();
|
|
30399
30399
|
init_ole2_parser_types();
|
|
30400
30400
|
init_ole2_parser_write();
|
|
@@ -30621,7 +30621,7 @@ var WORKSHEET_DT;
|
|
|
30621
30621
|
var DEFAULT_MAX_ROWS2;
|
|
30622
30622
|
var DEFAULT_MAX_COLS2;
|
|
30623
30623
|
var init_legacy_excel_biff8 = __esm({
|
|
30624
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
30624
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-excel-biff8.js"() {
|
|
30625
30625
|
init_legacy_excel_cfb();
|
|
30626
30626
|
OPCODE_BOF = 2057;
|
|
30627
30627
|
OPCODE_EOF = 10;
|
|
@@ -30767,7 +30767,7 @@ function buildXlsRowCellRegion(grid) {
|
|
|
30767
30767
|
return Uint8Array.from(bytesOut);
|
|
30768
30768
|
}
|
|
30769
30769
|
var init_legacy_excel_biff8_grid = __esm({
|
|
30770
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
30770
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-excel-biff8-grid.js"() {
|
|
30771
30771
|
init_legacy_excel_biff8();
|
|
30772
30772
|
}
|
|
30773
30773
|
});
|
|
@@ -30888,7 +30888,7 @@ function writeOleXlsStringCellEdit(inputBytes, edit) {
|
|
|
30888
30888
|
}
|
|
30889
30889
|
}
|
|
30890
30890
|
var init_legacy_excel_biff8_writer = __esm({
|
|
30891
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
30891
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-excel-biff8-writer.js"() {
|
|
30892
30892
|
init_legacy_excel_biff8();
|
|
30893
30893
|
init_legacy_excel_biff8_grid();
|
|
30894
30894
|
init_legacy_excel_cfb();
|
|
@@ -31054,7 +31054,7 @@ function patchDocFib(wordDoc, fib, patch) {
|
|
|
31054
31054
|
var FC_LCB_INDEX;
|
|
31055
31055
|
var F_COMPLEX_BIT;
|
|
31056
31056
|
var init_ole_document_doc_fib = __esm({
|
|
31057
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31057
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole-document-doc-fib.js"() {
|
|
31058
31058
|
FC_LCB_INDEX = {
|
|
31059
31059
|
plcfbteChpx: 12,
|
|
31060
31060
|
plcfbtePapx: 13,
|
|
@@ -31104,7 +31104,7 @@ function unwrapDocBytes(bytes) {
|
|
|
31104
31104
|
}
|
|
31105
31105
|
}
|
|
31106
31106
|
var init_ole_document_doc_cfb = __esm({
|
|
31107
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31107
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole-document-doc-cfb.js"() {
|
|
31108
31108
|
init_ole_document_doc_fib();
|
|
31109
31109
|
init_ole2_parser_read();
|
|
31110
31110
|
init_ole2_parser_types();
|
|
@@ -31218,7 +31218,7 @@ function buildSingleRunChpxPage(fcStart, fcEnd, blob) {
|
|
|
31218
31218
|
}
|
|
31219
31219
|
var PAGE_SIZE;
|
|
31220
31220
|
var init_ole_document_doc_fkp = __esm({
|
|
31221
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31221
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole-document-doc-fkp.js"() {
|
|
31222
31222
|
PAGE_SIZE = 512;
|
|
31223
31223
|
}
|
|
31224
31224
|
});
|
|
@@ -31256,7 +31256,7 @@ function encodeCp1252(text22) {
|
|
|
31256
31256
|
var CP1252_HIGH_BLOCK;
|
|
31257
31257
|
var CP1252_HIGH_BLOCK_REVERSE;
|
|
31258
31258
|
var init_ole_document_doc_cp1252 = __esm({
|
|
31259
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31259
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole-document-doc-cp1252.js"() {
|
|
31260
31260
|
CP1252_HIGH_BLOCK = [
|
|
31261
31261
|
8364,
|
|
31262
31262
|
129,
|
|
@@ -31455,7 +31455,7 @@ function buildClxBytes(pieces) {
|
|
|
31455
31455
|
var CLXT_PRC;
|
|
31456
31456
|
var CLXT_PCDT;
|
|
31457
31457
|
var init_ole_document_doc_pieces = __esm({
|
|
31458
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31458
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole-document-doc-pieces.js"() {
|
|
31459
31459
|
init_ole_document_doc_cp1252();
|
|
31460
31460
|
CLXT_PRC = 1;
|
|
31461
31461
|
CLXT_PCDT = 2;
|
|
@@ -31615,7 +31615,7 @@ function writeOleDocParagraphEdit(docBytes, paragraphIndex, text22) {
|
|
|
31615
31615
|
var RISKY_PLCF_INDICES;
|
|
31616
31616
|
var RISKY_STTB_INDICES;
|
|
31617
31617
|
var init_ole_document_doc_editor = __esm({
|
|
31618
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31618
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ole-document-doc-editor.js"() {
|
|
31619
31619
|
init_ole_document_doc_cfb();
|
|
31620
31620
|
init_ole_document_doc_fib();
|
|
31621
31621
|
init_ole_document_doc_fkp();
|
|
@@ -31806,7 +31806,7 @@ function encodePng(width, height, rgba) {
|
|
|
31806
31806
|
var CRC_TABLE;
|
|
31807
31807
|
var PNG_SIGNATURE;
|
|
31808
31808
|
var init_png_encoder = __esm({
|
|
31809
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
31809
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/utils/png-encoder.js"() {
|
|
31810
31810
|
CRC_TABLE = (() => {
|
|
31811
31811
|
const table2 = new Uint32Array(256);
|
|
31812
31812
|
for (let n = 0; n < 256; n++) {
|
|
@@ -50714,7 +50714,7 @@ async function hmac(algorithm, key2, data) {
|
|
|
50714
50714
|
return new Uint8Array(result);
|
|
50715
50715
|
}
|
|
50716
50716
|
var init_ooxml_crypto_primitives = __esm({
|
|
50717
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
50717
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/utils/ooxml-crypto-primitives.js"() {
|
|
50718
50718
|
}
|
|
50719
50719
|
});
|
|
50720
50720
|
var init_ooxml_crypto_primitives2 = __esm({
|
|
@@ -51829,7 +51829,7 @@ function mdStyleDigest(message, initialState, transform6) {
|
|
|
51829
51829
|
return out;
|
|
51830
51830
|
}
|
|
51831
51831
|
var init_bit_ops = __esm({
|
|
51832
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
51832
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/utils/digests/bit-ops.js"() {
|
|
51833
51833
|
}
|
|
51834
51834
|
});
|
|
51835
51835
|
function f1(x, y, z) {
|
|
@@ -51860,7 +51860,7 @@ var ROUND1;
|
|
|
51860
51860
|
var ROUND2;
|
|
51861
51861
|
var ROUND3;
|
|
51862
51862
|
var init_md4 = __esm({
|
|
51863
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
51863
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/utils/digests/md4.js"() {
|
|
51864
51864
|
init_bit_ops();
|
|
51865
51865
|
INITIAL_STATE = [1732584193, 4023233417, 2562383102, 271733878];
|
|
51866
51866
|
K2 = 1518500249;
|
|
@@ -59217,9 +59217,9 @@ function ensureArray4(val2) {
|
|
|
59217
59217
|
}
|
|
59218
59218
|
return Array.isArray(val2) ? val2 : [val2];
|
|
59219
59219
|
}
|
|
59220
|
-
function collectControlNodes(
|
|
59221
|
-
const nodes = [...ensureArray4(
|
|
59222
|
-
const altContents = ensureArray4(
|
|
59220
|
+
function collectControlNodes(controls2) {
|
|
59221
|
+
const nodes = [...ensureArray4(controls2["p:control"])];
|
|
59222
|
+
const altContents = ensureArray4(controls2["mc:AlternateContent"]);
|
|
59223
59223
|
for (const alt of altContents) {
|
|
59224
59224
|
const fallback = alt["mc:Fallback"];
|
|
59225
59225
|
const fallbackControls = fallback ? ensureArray4(fallback["p:control"]) : [];
|
|
@@ -59276,11 +59276,11 @@ function parseActiveXControlsFromSlide(slideXml3) {
|
|
|
59276
59276
|
if (!cSld) {
|
|
59277
59277
|
return [];
|
|
59278
59278
|
}
|
|
59279
|
-
const
|
|
59280
|
-
if (!
|
|
59279
|
+
const controls2 = cSld["p:controls"];
|
|
59280
|
+
if (!controls2) {
|
|
59281
59281
|
return [];
|
|
59282
59282
|
}
|
|
59283
|
-
const controlEntries = collectControlNodes(
|
|
59283
|
+
const controlEntries = collectControlNodes(controls2);
|
|
59284
59284
|
if (controlEntries.length === 0) {
|
|
59285
59285
|
return [];
|
|
59286
59286
|
}
|
|
@@ -59371,17 +59371,17 @@ function buildActiveXControlNode(control) {
|
|
|
59371
59371
|
}
|
|
59372
59372
|
return node;
|
|
59373
59373
|
}
|
|
59374
|
-
function applyActiveXControlsToSlide(slideXml3,
|
|
59374
|
+
function applyActiveXControlsToSlide(slideXml3, controls2) {
|
|
59375
59375
|
const sld = slideXml3["p:sld"];
|
|
59376
59376
|
const cSld = sld?.["p:cSld"];
|
|
59377
59377
|
if (!cSld) {
|
|
59378
59378
|
return;
|
|
59379
59379
|
}
|
|
59380
|
-
if (!
|
|
59380
|
+
if (!controls2 || controls2.length === 0) {
|
|
59381
59381
|
delete cSld["p:controls"];
|
|
59382
59382
|
return;
|
|
59383
59383
|
}
|
|
59384
|
-
const nodes =
|
|
59384
|
+
const nodes = controls2.map(buildActiveXControlNode);
|
|
59385
59385
|
const container = cSld["p:controls"] ?? {};
|
|
59386
59386
|
const isNewContainer = cSld["p:controls"] === void 0;
|
|
59387
59387
|
container["p:control"] = nodes.length === 1 ? nodes[0] : nodes;
|
|
@@ -109771,7 +109771,7 @@ function record(recType, data, recInstance = 0, isContainer2 = false, recVer = 0
|
|
|
109771
109771
|
}
|
|
109772
109772
|
var ByteWriter;
|
|
109773
109773
|
var init_byte_writer = __esm({
|
|
109774
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
109774
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/byte-writer.js"() {
|
|
109775
109775
|
ByteWriter = class {
|
|
109776
109776
|
chunks = [];
|
|
109777
109777
|
length = 0;
|
|
@@ -109863,7 +109863,7 @@ var HEADER_TOKEN_PLAIN;
|
|
|
109863
109863
|
var HEADER_TOKEN_ENCRYPTED;
|
|
109864
109864
|
var EMU_PER_MASTER;
|
|
109865
109865
|
var init_legacy_ppt_record_types = __esm({
|
|
109866
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
109866
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-ppt-record-types.js"() {
|
|
109867
109867
|
RT = {
|
|
109868
109868
|
Document: 1e3,
|
|
109869
109869
|
DocumentAtom: 1001,
|
|
@@ -109992,7 +109992,7 @@ var init_legacy_ppt_record_types = __esm({
|
|
|
109992
109992
|
}
|
|
109993
109993
|
});
|
|
109994
109994
|
var init_record_types = __esm({
|
|
109995
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
109995
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/record-types.js"() {
|
|
109996
109996
|
init_legacy_ppt_record_types();
|
|
109997
109997
|
}
|
|
109998
109998
|
});
|
|
@@ -110010,7 +110010,7 @@ function buildCurrentUserStream(offsetToCurrentEdit, encrypted) {
|
|
|
110010
110010
|
var USER_NAME;
|
|
110011
110011
|
var CURRENT_USER_STREAM_SIZE;
|
|
110012
110012
|
var init_current_user_writer = __esm({
|
|
110013
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110013
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/current-user-writer.js"() {
|
|
110014
110014
|
init_record_types();
|
|
110015
110015
|
init_byte_writer();
|
|
110016
110016
|
USER_NAME = "pptx-viewer";
|
|
@@ -110040,7 +110040,7 @@ function buildFbse(picture, uid, foDelay, size) {
|
|
|
110040
110040
|
var MSOBLIP_PICT;
|
|
110041
110041
|
var BLIP_INFO;
|
|
110042
110042
|
var init_blip_writer = __esm({
|
|
110043
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110043
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/blip-writer.js"() {
|
|
110044
110044
|
init_md4();
|
|
110045
110045
|
init_png_encoder();
|
|
110046
110046
|
init_record_types();
|
|
@@ -110092,7 +110092,7 @@ var OPT;
|
|
|
110092
110092
|
var FBID_FLAG;
|
|
110093
110093
|
var METRO_BLOB_OPID;
|
|
110094
110094
|
var init_fopt_writer = __esm({
|
|
110095
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110095
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/fopt-writer.js"() {
|
|
110096
110096
|
init_record_types();
|
|
110097
110097
|
init_byte_writer();
|
|
110098
110098
|
OPT = {
|
|
@@ -110176,7 +110176,7 @@ function buildPictureStore(pictures, shapesPerDrawing) {
|
|
|
110176
110176
|
}
|
|
110177
110177
|
var SHAPE_ID_CLUSTER_SIZE;
|
|
110178
110178
|
var init_bstore_writer = __esm({
|
|
110179
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110179
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/bstore-writer.js"() {
|
|
110180
110180
|
init_record_types();
|
|
110181
110181
|
init_blip_writer();
|
|
110182
110182
|
init_byte_writer();
|
|
@@ -110211,7 +110211,7 @@ function buildEnvironment(fonts, otherTextStyle) {
|
|
|
110211
110211
|
}
|
|
110212
110212
|
var LF_FACE_NAME_BYTES;
|
|
110213
110213
|
var init_font_collection_writer = __esm({
|
|
110214
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110214
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/font-collection-writer.js"() {
|
|
110215
110215
|
init_record_types();
|
|
110216
110216
|
init_byte_writer();
|
|
110217
110217
|
LF_FACE_NAME_BYTES = 64;
|
|
@@ -110262,7 +110262,8 @@ function buildDocumentContainer(input) {
|
|
|
110262
110262
|
if (input.soundCollection) {
|
|
110263
110263
|
w.bytes(input.soundCollection);
|
|
110264
110264
|
}
|
|
110265
|
-
|
|
110265
|
+
const masterAtoms = input.masterPersistAtoms ?? (input.masterPersistAtom ? [input.masterPersistAtom] : []);
|
|
110266
|
+
w.bytes(drawingGroup).bytes(buildSlideListWithText(masterAtoms, 1));
|
|
110266
110267
|
if (input.paddingBytes) {
|
|
110267
110268
|
w.bytes(buildPaddingTag(input.paddingBytes));
|
|
110268
110269
|
}
|
|
@@ -110273,7 +110274,7 @@ var MASTER_SLIDE_ID_SENTINEL;
|
|
|
110273
110274
|
var RT_CSTRING;
|
|
110274
110275
|
var RT_BINARY_TAG_DATA_BLOB;
|
|
110275
110276
|
var init_document_writer = __esm({
|
|
110276
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110277
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/document-writer.js"() {
|
|
110277
110278
|
init_record_types();
|
|
110278
110279
|
init_byte_writer();
|
|
110279
110280
|
init_font_collection_writer();
|
|
@@ -110421,7 +110422,7 @@ var LT;
|
|
|
110421
110422
|
var FLAG_CUSTOM_SHOW_RETURN;
|
|
110422
110423
|
var HyperlinkCollector;
|
|
110423
110424
|
var init_hyperlink_writer = __esm({
|
|
110424
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110425
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/hyperlink-writer.js"() {
|
|
110425
110426
|
init_record_types();
|
|
110426
110427
|
init_byte_writer();
|
|
110427
110428
|
II_ACTION = {
|
|
@@ -110520,7 +110521,7 @@ var MediaCollector;
|
|
|
110520
110521
|
var SOUND_EXTENSION_WAV;
|
|
110521
110522
|
var SOUND_LENGTH_UNKNOWN;
|
|
110522
110523
|
var init_media_writer = __esm({
|
|
110523
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110524
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/media-writer.js"() {
|
|
110524
110525
|
init_record_types();
|
|
110525
110526
|
init_byte_writer();
|
|
110526
110527
|
MediaCollector = class {
|
|
@@ -110622,7 +110623,7 @@ var EX_OLE_SUB_DEFAULT;
|
|
|
110622
110623
|
var PACKAGER_MENU_NAME;
|
|
110623
110624
|
var OleCollector;
|
|
110624
110625
|
var init_ole_writer = __esm({
|
|
110625
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110626
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/ole-writer.js"() {
|
|
110626
110627
|
init_ole2_parser_write();
|
|
110627
110628
|
init_record_types();
|
|
110628
110629
|
init_byte_writer();
|
|
@@ -110707,7 +110708,7 @@ function buildExObjList(hyperlinks, ole, media) {
|
|
|
110707
110708
|
return record(RT.ExternalObjectList, w.toBytes(), 0, true);
|
|
110708
110709
|
}
|
|
110709
110710
|
var init_ex_obj_list_writer = __esm({
|
|
110710
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110711
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/ex-obj-list-writer.js"() {
|
|
110711
110712
|
init_record_types();
|
|
110712
110713
|
init_byte_writer();
|
|
110713
110714
|
init_hyperlink_writer();
|
|
@@ -110760,7 +110761,7 @@ function buildChildAnchor(rect22) {
|
|
|
110760
110761
|
var INT16_MIN2;
|
|
110761
110762
|
var INT16_MAX2;
|
|
110762
110763
|
var init_anchor_writer = __esm({
|
|
110763
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110764
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/anchor-writer.js"() {
|
|
110764
110765
|
init_record_types();
|
|
110765
110766
|
init_byte_writer();
|
|
110766
110767
|
INT16_MIN2 = -32768;
|
|
@@ -110788,7 +110789,7 @@ function encodeColorIndex(rgb2) {
|
|
|
110788
110789
|
}
|
|
110789
110790
|
var DEFAULT_RGB;
|
|
110790
110791
|
var init_colors = __esm({
|
|
110791
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110792
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/colors.js"() {
|
|
110792
110793
|
DEFAULT_RGB = "000000";
|
|
110793
110794
|
}
|
|
110794
110795
|
});
|
|
@@ -110882,7 +110883,7 @@ function writeCfException(w, run, fontIndex) {
|
|
|
110882
110883
|
var ALIGN_CODE;
|
|
110883
110884
|
var EMU_PER_MASTER_UNIT;
|
|
110884
110885
|
var init_text_exception_writer = __esm({
|
|
110885
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110886
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/text-exception-writer.js"() {
|
|
110886
110887
|
init_colors();
|
|
110887
110888
|
ALIGN_CODE = {
|
|
110888
110889
|
l: 0,
|
|
@@ -110953,7 +110954,7 @@ function buildTextAtoms(body, fonts, hyperlinks) {
|
|
|
110953
110954
|
return new ByteWriter().bytes(buildTextHeaderAtom(body.textType)).bytes(buildTextCharsAtom(text22)).bytes(buildStyleTextPropAtom(body, fontIndex)).bytes(buildRunHyperlinks(body, hyperlinks)).toBytes();
|
|
110954
110955
|
}
|
|
110955
110956
|
var init_text_atom_writer = __esm({
|
|
110956
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
110957
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/text-atom-writer.js"() {
|
|
110957
110958
|
init_record_types();
|
|
110958
110959
|
init_byte_writer();
|
|
110959
110960
|
init_hyperlink_writer();
|
|
@@ -111065,7 +111066,7 @@ var TITLE_PROMPT;
|
|
|
111065
111066
|
var BODY_PROMPT;
|
|
111066
111067
|
var DEFAULT_FRAMES;
|
|
111067
111068
|
var init_master_placeholders_writer = __esm({
|
|
111068
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111069
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/master-placeholders-writer.js"() {
|
|
111069
111070
|
init_record_types();
|
|
111070
111071
|
init_anchor_writer();
|
|
111071
111072
|
init_byte_writer();
|
|
@@ -111137,7 +111138,7 @@ function masterStyleFonts(styles) {
|
|
|
111137
111138
|
return [styles.title, styles.body, styles.other].flatMap((levels) => levels ?? []).map((level2) => level2.run.fontName).filter((name) => Boolean(name));
|
|
111138
111139
|
}
|
|
111139
111140
|
var init_master_style_fonts = __esm({
|
|
111140
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111141
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/master-style-fonts.js"() {
|
|
111141
111142
|
}
|
|
111142
111143
|
});
|
|
111143
111144
|
function buildMasterStyleAtom(recInstance, levels, fontIndex) {
|
|
@@ -111171,7 +111172,7 @@ function buildMasterTextStyles(styles, fontIndex) {
|
|
|
111171
111172
|
var EMPTY_LEVELS;
|
|
111172
111173
|
var FIXED_INSTANCE_DATA;
|
|
111173
111174
|
var init_master_text_styles_writer = __esm({
|
|
111174
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111175
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/master-text-styles-writer.js"() {
|
|
111175
111176
|
init_record_types();
|
|
111176
111177
|
init_byte_writer();
|
|
111177
111178
|
init_text_exception_writer();
|
|
@@ -111240,7 +111241,7 @@ function buildShapeFoptProps(input) {
|
|
|
111240
111241
|
}
|
|
111241
111242
|
var DASH_CODE;
|
|
111242
111243
|
var init_shape_props_writer = __esm({
|
|
111243
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111244
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/shape-props-writer.js"() {
|
|
111244
111245
|
init_colors();
|
|
111245
111246
|
init_fopt_writer();
|
|
111246
111247
|
DASH_CODE = {
|
|
@@ -111359,7 +111360,7 @@ var FSP_FLAG_OLE_SHAPE;
|
|
|
111359
111360
|
var FSP_FLAG_CHILD;
|
|
111360
111361
|
var PLACEHOLDER_ID;
|
|
111361
111362
|
var init_shape_writer = __esm({
|
|
111362
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111363
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/shape-writer.js"() {
|
|
111363
111364
|
init_record_types();
|
|
111364
111365
|
init_anchor_writer();
|
|
111365
111366
|
init_byte_writer();
|
|
@@ -111423,7 +111424,7 @@ var FSP_FLAG_PATRIARCH;
|
|
|
111423
111424
|
var FSP_FLAG_HAVE_ANCHOR;
|
|
111424
111425
|
var ZERO_RECT;
|
|
111425
111426
|
var init_group_writer = __esm({
|
|
111426
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111427
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/group-writer.js"() {
|
|
111427
111428
|
init_record_types();
|
|
111428
111429
|
init_anchor_writer();
|
|
111429
111430
|
init_byte_writer();
|
|
@@ -111436,7 +111437,7 @@ var init_group_writer = __esm({
|
|
|
111436
111437
|
});
|
|
111437
111438
|
var ShapeIdAllocator2;
|
|
111438
111439
|
var init_shape_id_allocator = __esm({
|
|
111439
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111440
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/shape-id-allocator.js"() {
|
|
111440
111441
|
ShapeIdAllocator2 = class {
|
|
111441
111442
|
current;
|
|
111442
111443
|
constructor(drawingId, clusterSize) {
|
|
@@ -111493,7 +111494,7 @@ var FSP_FLAG_BACKGROUND;
|
|
|
111493
111494
|
var BACKGROUND_RECT_SPT;
|
|
111494
111495
|
var SHAPE_ID_CLUSTER_SIZE2;
|
|
111495
111496
|
var init_drawing_writer = __esm({
|
|
111496
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111497
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/drawing-writer.js"() {
|
|
111497
111498
|
init_record_types();
|
|
111498
111499
|
init_byte_writer();
|
|
111499
111500
|
init_colors();
|
|
@@ -111522,7 +111523,7 @@ function buildNotesContainer(paragraphs2, notesRect, slidePersistIdRef, fonts, d
|
|
|
111522
111523
|
return record(RT.Notes, data, 0, true);
|
|
111523
111524
|
}
|
|
111524
111525
|
var init_notes_writer = __esm({
|
|
111525
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111526
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/notes-writer.js"() {
|
|
111526
111527
|
init_record_types();
|
|
111527
111528
|
init_byte_writer();
|
|
111528
111529
|
init_drawing_writer();
|
|
@@ -111602,7 +111603,7 @@ function recordBytes(data, rec) {
|
|
|
111602
111603
|
var PptParseError;
|
|
111603
111604
|
var RECORD_HEADER_SIZE;
|
|
111604
111605
|
var init_legacy_ppt_record_stream = __esm({
|
|
111605
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111606
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-ppt-record-stream.js"() {
|
|
111606
111607
|
PptParseError = class extends Error {
|
|
111607
111608
|
constructor(message) {
|
|
111608
111609
|
super(message);
|
|
@@ -111613,7 +111614,7 @@ var init_legacy_ppt_record_stream = __esm({
|
|
|
111613
111614
|
}
|
|
111614
111615
|
});
|
|
111615
111616
|
var init_record_stream = __esm({
|
|
111616
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111617
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/record-stream.js"() {
|
|
111617
111618
|
init_legacy_ppt_record_stream();
|
|
111618
111619
|
}
|
|
111619
111620
|
});
|
|
@@ -111668,7 +111669,7 @@ function resolveEscherColor(colorRef, scheme) {
|
|
|
111668
111669
|
var SCHEME;
|
|
111669
111670
|
var DEFAULT_SCHEME;
|
|
111670
111671
|
var init_color_scheme = __esm({
|
|
111671
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111672
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/color-scheme.js"() {
|
|
111672
111673
|
init_record_stream();
|
|
111673
111674
|
init_record_types();
|
|
111674
111675
|
SCHEME = {
|
|
@@ -111701,7 +111702,7 @@ function buildColorSchemeAtom(recInstance = 1, colors) {
|
|
|
111701
111702
|
return record(RT.ColorSchemeAtom, w.toBytes(), recInstance, false, 0);
|
|
111702
111703
|
}
|
|
111703
111704
|
var init_color_scheme_writer = __esm({
|
|
111704
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111705
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/color-scheme-writer.js"() {
|
|
111705
111706
|
init_color_scheme();
|
|
111706
111707
|
init_record_types();
|
|
111707
111708
|
init_byte_writer();
|
|
@@ -111722,8 +111723,14 @@ function buildSlideAtom(masterIdRef, notesIdRef, hasOwnBackground) {
|
|
|
111722
111723
|
function buildMasterSlideAtom() {
|
|
111723
111724
|
return buildSlideAtomRaw(0, 0, 0, SLIDE_FLAG_MASTER_SCHEME);
|
|
111724
111725
|
}
|
|
111725
|
-
function buildSlideContainer(slide, slideRect,
|
|
111726
|
-
const data = new ByteWriter().bytes(buildSlideAtom(
|
|
111726
|
+
function buildSlideContainer(slide, slideRect, masterIdRef, notesIdRef, fonts, drawingId, hyperlinks, oleEmbeds, mediaEmbeds) {
|
|
111727
|
+
const data = new ByteWriter().bytes(buildSlideAtom(
|
|
111728
|
+
// A master is named by its slide id (>= 0x80000000), never by a
|
|
111729
|
+
// persist id; anything smaller falls back to the first master.
|
|
111730
|
+
masterIdRef >= SLIDE_MASTER_ID_SENTINEL ? masterIdRef : SLIDE_MASTER_ID_SENTINEL,
|
|
111731
|
+
notesIdRef,
|
|
111732
|
+
Boolean(slide.backgroundRgb)
|
|
111733
|
+
)).bytes(buildDrawing(slideRect, slide.shapes, slide.backgroundRgb, fonts, drawingId, hyperlinks, oleEmbeds, mediaEmbeds)).bytes(buildColorSchemeAtom()).toBytes();
|
|
111727
111734
|
return record(RT.Slide, data, 0, true);
|
|
111728
111735
|
}
|
|
111729
111736
|
function buildMainMasterContainer(slideRect, drawingId, hyperlinks, oleEmbeds, mediaEmbeds, masterStyles, fonts, master) {
|
|
@@ -111742,7 +111749,7 @@ var SLIDE_FLAG_MASTER_BACKGROUND;
|
|
|
111742
111749
|
var SLIDE_MASTER_ID_SENTINEL;
|
|
111743
111750
|
var MASTER_FIRST_COLOR_SCHEME_INSTANCE;
|
|
111744
111751
|
var init_slide_writer = __esm({
|
|
111745
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111752
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/slide-writer.js"() {
|
|
111746
111753
|
init_record_types();
|
|
111747
111754
|
init_byte_writer();
|
|
111748
111755
|
init_color_scheme_writer();
|
|
@@ -111756,6 +111763,15 @@ var init_slide_writer = __esm({
|
|
|
111756
111763
|
MASTER_FIRST_COLOR_SCHEME_INSTANCE = 6;
|
|
111757
111764
|
}
|
|
111758
111765
|
});
|
|
111766
|
+
function masterSlideId(index) {
|
|
111767
|
+
return MASTER_SLIDE_ID_SENTINEL + index;
|
|
111768
|
+
}
|
|
111769
|
+
function resolveDeckMasters(deck) {
|
|
111770
|
+
return deck.masters && deck.masters.length > 0 ? deck.masters : [{ styles: deck.masterStyles, roundTrip: deck.master }];
|
|
111771
|
+
}
|
|
111772
|
+
function slideMasterIndex(masterIndex, masterCount) {
|
|
111773
|
+
return masterIndex !== void 0 && Number.isInteger(masterIndex) && masterIndex >= 0 && masterIndex < masterCount ? masterIndex : 0;
|
|
111774
|
+
}
|
|
111759
111775
|
function countDrawingShapes(shapes) {
|
|
111760
111776
|
let count = 1;
|
|
111761
111777
|
const walk3 = (list2) => {
|
|
@@ -111769,7 +111785,7 @@ function countDrawingShapes(shapes) {
|
|
|
111769
111785
|
walk3(shapes);
|
|
111770
111786
|
return count;
|
|
111771
111787
|
}
|
|
111772
|
-
function collectFonts(deck) {
|
|
111788
|
+
function collectFonts(deck, masters) {
|
|
111773
111789
|
const collect2 = (shape) => {
|
|
111774
111790
|
if (shape.kind === "group") {
|
|
111775
111791
|
return shape.children.flatMap(collect2);
|
|
@@ -111779,40 +111795,43 @@ function collectFonts(deck) {
|
|
|
111779
111795
|
}
|
|
111780
111796
|
return shape.text.paragraphs.flatMap((p) => p.runs.map((r) => r.fontName).filter((n) => Boolean(n)));
|
|
111781
111797
|
};
|
|
111782
|
-
const themeMinor =
|
|
111798
|
+
const themeMinor = masters[0]?.roundTrip?.themeFonts?.minor;
|
|
111783
111799
|
const fonts = Array.from(/* @__PURE__ */ new Set([
|
|
111784
111800
|
...themeMinor ? [themeMinor] : [],
|
|
111785
111801
|
...deck.slides.flatMap((slide) => slide.shapes.flatMap(collect2)),
|
|
111786
|
-
...masterStyleFonts(
|
|
111802
|
+
...masters.flatMap((master) => masterStyleFonts(master.styles))
|
|
111787
111803
|
]));
|
|
111788
111804
|
return fonts.length > 0 ? fonts : ["Calibri"];
|
|
111789
111805
|
}
|
|
111790
111806
|
function layoutDocumentStream(deck) {
|
|
111791
111807
|
const slideRect = { w: deck.widthEmu, h: deck.heightEmu };
|
|
111792
111808
|
const notesRect = { x: 0, y: 0, w: deck.heightEmu, h: deck.widthEmu };
|
|
111793
|
-
const
|
|
111794
|
-
|
|
111809
|
+
const masters = resolveDeckMasters(deck);
|
|
111810
|
+
const masterIds = masters.map((_, i2) => MASTER_ID + i2);
|
|
111811
|
+
const firstSlideId = MASTER_ID + masters.length;
|
|
111812
|
+
const slideIds = deck.slides.map((_, i2) => firstSlideId + i2);
|
|
111813
|
+
let nextId2 = firstSlideId + deck.slides.length;
|
|
111795
111814
|
const notesIds = deck.slides.map((slide) => slide.notesParagraphs?.length ? nextId2++ : 0);
|
|
111796
|
-
const
|
|
111797
|
-
const slideDrawingIds = deck.slides.map((_, i2) =>
|
|
111798
|
-
let nextDrawingId =
|
|
111815
|
+
const masterDrawingIds = masters.map((_, i2) => 1 + i2);
|
|
111816
|
+
const slideDrawingIds = deck.slides.map((_, i2) => 1 + masters.length + i2);
|
|
111817
|
+
let nextDrawingId = 1 + masters.length + deck.slides.length;
|
|
111799
111818
|
const notesDrawingIds = deck.slides.map((slide) => slide.notesParagraphs?.length ? nextDrawingId++ : 0);
|
|
111800
111819
|
const shapesPerDrawing = [
|
|
111801
|
-
1 + MASTER_PLACEHOLDER_ORDER.length,
|
|
111802
|
-
//
|
|
111820
|
+
...masters.map(() => 1 + MASTER_PLACEHOLDER_ORDER.length),
|
|
111821
|
+
// patriarch + placeholders
|
|
111803
111822
|
...deck.slides.map((slide) => countDrawingShapes(slide.shapes)),
|
|
111804
111823
|
...deck.slides.filter((s) => s.notesParagraphs?.length).map(() => 2)
|
|
111805
111824
|
// patriarch + body placeholder
|
|
111806
111825
|
];
|
|
111807
|
-
const fonts = collectFonts(deck);
|
|
111826
|
+
const fonts = collectFonts(deck, masters);
|
|
111808
111827
|
const { dggContainer, picturesStream } = buildPictureStore(deck.pictures, shapesPerDrawing);
|
|
111809
111828
|
const hyperlinks = new HyperlinkCollector();
|
|
111810
111829
|
const oleEmbeds = new OleCollector(hyperlinks);
|
|
111811
111830
|
const mediaEmbeds = new MediaCollector(hyperlinks);
|
|
111812
|
-
const slideContainers = deck.slides.map((slide, i2) => buildSlideContainer(slide, slideRect,
|
|
111831
|
+
const slideContainers = deck.slides.map((slide, i2) => buildSlideContainer(slide, slideRect, masterSlideId(slideMasterIndex(slide.masterIndex, masters.length)), notesIds[i2], fonts, slideDrawingIds[i2], hyperlinks, oleEmbeds, mediaEmbeds));
|
|
111813
111832
|
const notesContainers = deck.slides.map((slide, i2) => notesIds[i2] ? buildNotesContainer(slide.notesParagraphs, notesRect, slideIds[i2], fonts, notesDrawingIds[i2], hyperlinks, oleEmbeds, mediaEmbeds) : void 0).filter((c) => c !== void 0);
|
|
111814
|
-
const
|
|
111815
|
-
const
|
|
111833
|
+
const masterContainers = masters.map((master, i2) => buildMainMasterContainer(slideRect, masterDrawingIds[i2], hyperlinks, oleEmbeds, mediaEmbeds, master.styles, fonts, master.roundTrip));
|
|
111834
|
+
const masterPersistAtoms = masterIds.map((id, i2) => buildSlidePersistAtom(id, masterSlideId(i2)));
|
|
111816
111835
|
const slidePersistAtoms = slideIds.map((id, i2) => buildSlidePersistAtom(id, 256 + i2, 4));
|
|
111817
111836
|
const oleStgIds = oleEmbeds.all.map(() => nextId2++);
|
|
111818
111837
|
oleEmbeds.all.forEach((entry5, i2) => {
|
|
@@ -111825,18 +111844,18 @@ function layoutDocumentStream(deck) {
|
|
|
111825
111844
|
widthEmu: deck.widthEmu,
|
|
111826
111845
|
heightEmu: deck.heightEmu,
|
|
111827
111846
|
fonts,
|
|
111828
|
-
|
|
111847
|
+
masterPersistAtoms,
|
|
111829
111848
|
slidePersistAtoms,
|
|
111830
111849
|
dggContainer,
|
|
111831
111850
|
exObjList,
|
|
111832
111851
|
soundCollection,
|
|
111833
|
-
otherTextStyle: buildOtherTextStyle(
|
|
111852
|
+
otherTextStyle: buildOtherTextStyle(masters[0]?.styles, (name) => {
|
|
111834
111853
|
const idx = name ? fonts.indexOf(name) : -1;
|
|
111835
111854
|
return idx >= 0 ? idx : void 0;
|
|
111836
111855
|
})
|
|
111837
111856
|
};
|
|
111838
111857
|
const maxPersistId = nextId2 - 1;
|
|
111839
|
-
const contentSizeWithoutPadding = buildDocumentContainer(documentInput).length +
|
|
111858
|
+
const contentSizeWithoutPadding = buildDocumentContainer(documentInput).length + masterContainers.reduce((sum, c) => sum + c.length, 0) + slideContainers.reduce((sum, c) => sum + c.length, 0) + notesContainers.reduce((sum, c) => sum + c.length, 0) + oleStgRecords.reduce((sum, c) => sum + c.length, 0);
|
|
111840
111859
|
const paddingBytes = ensureMinimumDocumentStreamSize(contentSizeWithoutPadding, maxPersistId);
|
|
111841
111860
|
const documentContainer = buildDocumentContainer({ ...documentInput, paddingBytes });
|
|
111842
111861
|
const layout = new ByteWriter();
|
|
@@ -111846,7 +111865,7 @@ function layoutDocumentStream(deck) {
|
|
|
111846
111865
|
layout.bytes(bytes);
|
|
111847
111866
|
};
|
|
111848
111867
|
place(DOC_ID, documentContainer);
|
|
111849
|
-
place(
|
|
111868
|
+
masterIds.forEach((id, i2) => place(id, masterContainers[i2]));
|
|
111850
111869
|
slideIds.forEach((id, i2) => place(id, slideContainers[i2]));
|
|
111851
111870
|
let notesCursor = 0;
|
|
111852
111871
|
notesIds.forEach((id) => {
|
|
@@ -111868,7 +111887,7 @@ function ensureMinimumDocumentStreamSize(contentSizeWithoutPadding, maxPersistId
|
|
|
111868
111887
|
var DOC_ID;
|
|
111869
111888
|
var MASTER_ID;
|
|
111870
111889
|
var init_document_stream_layout = __esm({
|
|
111871
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111890
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/document-stream-layout.js"() {
|
|
111872
111891
|
init_bstore_writer();
|
|
111873
111892
|
init_byte_writer();
|
|
111874
111893
|
init_document_writer();
|
|
@@ -111887,7 +111906,7 @@ var init_document_stream_layout = __esm({
|
|
|
111887
111906
|
});
|
|
111888
111907
|
var RC4_ALG_ID2;
|
|
111889
111908
|
var init_crypto_constants = __esm({
|
|
111890
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111909
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/crypto-constants.js"() {
|
|
111891
111910
|
RC4_ALG_ID2 = 26625;
|
|
111892
111911
|
}
|
|
111893
111912
|
});
|
|
@@ -111921,7 +111940,7 @@ function rc4Cipher(key2, data) {
|
|
|
111921
111940
|
return out;
|
|
111922
111941
|
}
|
|
111923
111942
|
var init_rc4_cipher = __esm({
|
|
111924
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111943
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/utils/rc4-cipher.js"() {
|
|
111925
111944
|
}
|
|
111926
111945
|
});
|
|
111927
111946
|
async function rc4CryptoApiKeyBase(password, salt) {
|
|
@@ -111964,7 +111983,7 @@ async function rc4CryptoApiEncryptVerifier(key0, verifier) {
|
|
|
111964
111983
|
}
|
|
111965
111984
|
var PADDED_40_BIT_KEY_BYTES;
|
|
111966
111985
|
var init_rc4_cryptoapi_key = __esm({
|
|
111967
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
111986
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/rc4-cryptoapi-key.js"() {
|
|
111968
111987
|
init_ooxml_crypto_primitives();
|
|
111969
111988
|
init_rc4_cipher();
|
|
111970
111989
|
PADDED_40_BIT_KEY_BYTES = 16;
|
|
@@ -112042,7 +112061,7 @@ var BITMAP_TAG_SIZE;
|
|
|
112042
112061
|
var METAFILE_BLIPS;
|
|
112043
112062
|
var BITMAP_BLIPS;
|
|
112044
112063
|
var init_rc4_cryptoapi_streams = __esm({
|
|
112045
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112064
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/rc4-cryptoapi-streams.js"() {
|
|
112046
112065
|
init_rc4_cipher();
|
|
112047
112066
|
init_record_stream();
|
|
112048
112067
|
UID_SIZE = 16;
|
|
@@ -112084,7 +112103,7 @@ var VERIFIER_SIZE;
|
|
|
112084
112103
|
var VERIFIER_HASH_SIZE;
|
|
112085
112104
|
var ENCRYPTION_FLAGS;
|
|
112086
112105
|
var init_encrypt_writer = __esm({
|
|
112087
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112106
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/encrypt-writer.js"() {
|
|
112088
112107
|
init_crypto_constants();
|
|
112089
112108
|
init_rc4_cryptoapi_key();
|
|
112090
112109
|
init_rc4_cryptoapi_streams();
|
|
@@ -112163,7 +112182,7 @@ function withMasterRelativeRunStyles(deck) {
|
|
|
112163
112182
|
}
|
|
112164
112183
|
var STYLE_KEYS;
|
|
112165
112184
|
var init_master_relative_runs = __esm({
|
|
112166
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112185
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/master-relative-runs.js"() {
|
|
112167
112186
|
STYLE_KEYS = ["bold", "italic", "underline"];
|
|
112168
112187
|
}
|
|
112169
112188
|
});
|
|
@@ -112196,7 +112215,7 @@ function buildEncryptedUserEditAtom(input) {
|
|
|
112196
112215
|
}
|
|
112197
112216
|
var MAX_RUN;
|
|
112198
112217
|
var init_persist_writer = __esm({
|
|
112199
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112218
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/persist-writer.js"() {
|
|
112200
112219
|
init_record_types();
|
|
112201
112220
|
init_byte_writer();
|
|
112202
112221
|
MAX_RUN = 4095;
|
|
@@ -112204,7 +112223,7 @@ var init_persist_writer = __esm({
|
|
|
112204
112223
|
});
|
|
112205
112224
|
var PPT_STORAGE_CLSID;
|
|
112206
112225
|
var init_ppt_clsid = __esm({
|
|
112207
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112226
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/ppt-clsid.js"() {
|
|
112208
112227
|
PPT_STORAGE_CLSID = new Uint8Array([
|
|
112209
112228
|
16,
|
|
112210
112229
|
141,
|
|
@@ -112278,7 +112297,7 @@ async function buildPptFile(deck, options = {}) {
|
|
|
112278
112297
|
return new Uint8Array(buildOle2(streams, PPT_STORAGE_CLSID, 0));
|
|
112279
112298
|
}
|
|
112280
112299
|
var init_write_ppt = __esm({
|
|
112281
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112300
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/writer/write-ppt.js"() {
|
|
112282
112301
|
init_ole2_parser_write();
|
|
112283
112302
|
init_byte_writer();
|
|
112284
112303
|
init_current_user_writer();
|
|
@@ -112290,7 +112309,7 @@ var init_write_ppt = __esm({
|
|
|
112290
112309
|
}
|
|
112291
112310
|
});
|
|
112292
112311
|
var init_legacy_ppt_writer = __esm({
|
|
112293
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
112312
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/legacy-ppt-writer.js"() {
|
|
112294
112313
|
init_write_ppt();
|
|
112295
112314
|
init_master_style_fonts();
|
|
112296
112315
|
}
|
|
@@ -112394,16 +112413,21 @@ async function followRel(zip, from, type) {
|
|
|
112394
112413
|
const rel = rels ? parseRels(rels).find((r) => r.type === `${REL}/${type}`) : void 0;
|
|
112395
112414
|
return rel && !rel.external ? resolveTarget2(from, rel.target) : void 0;
|
|
112396
112415
|
}
|
|
112397
|
-
async function
|
|
112416
|
+
async function readSlideMasterPaths(zip) {
|
|
112398
112417
|
const presentation = "ppt/presentation.xml";
|
|
112399
112418
|
const xml = await readText(zip, presentation);
|
|
112400
|
-
const firstSlideRid = xml ? /<p:sldId\b[^>]*\br:id="([^"]+)"/u.exec(xml)?.[1] : void 0;
|
|
112401
112419
|
const rels = await readText(zip, relsPath(presentation));
|
|
112402
|
-
const
|
|
112403
|
-
const
|
|
112404
|
-
const
|
|
112405
|
-
const
|
|
112406
|
-
|
|
112420
|
+
const presentationRels = rels ? parseRels(rels) : [];
|
|
112421
|
+
const slideRids = xml ? [...xml.matchAll(/<p:sldId\b[^>]*\br:id="([^"]+)"/gu)].map((m) => m[1]) : [];
|
|
112422
|
+
const paths = [];
|
|
112423
|
+
for (const rid of slideRids) {
|
|
112424
|
+
const slideRel = presentationRels.find((r) => r.id === rid);
|
|
112425
|
+
const slide = slideRel ? resolveTarget2(presentation, slideRel.target) : void 0;
|
|
112426
|
+
const layout = slide ? await followRel(zip, slide, "slideLayout") : void 0;
|
|
112427
|
+
const master = layout ? await followRel(zip, layout, "slideMaster") : void 0;
|
|
112428
|
+
paths.push(master && zip.file(master) ? master : FALLBACK_MASTER);
|
|
112429
|
+
}
|
|
112430
|
+
return paths;
|
|
112407
112431
|
}
|
|
112408
112432
|
function num3(xml, pattern) {
|
|
112409
112433
|
const value = pattern.exec(xml)?.[1];
|
|
@@ -112467,8 +112491,8 @@ function latinFace(themeXml3, scheme) {
|
|
|
112467
112491
|
const body = close < 0 ? void 0 : themeXml3.slice(open, close);
|
|
112468
112492
|
return body && /<a:latin [^>]*typeface="([^"]+)"/u.exec(body)?.[1] || void 0;
|
|
112469
112493
|
}
|
|
112470
|
-
async function readMasterRoundTripSource(zip) {
|
|
112471
|
-
|
|
112494
|
+
async function readMasterRoundTripSource(zip, masterPath) {
|
|
112495
|
+
masterPath ??= (await readSlideMasterPaths(zip))[0] ?? FALLBACK_MASTER;
|
|
112472
112496
|
const masterXml = await readText(zip, masterPath);
|
|
112473
112497
|
if (!masterXml) {
|
|
112474
112498
|
return { placeholders: [], themeFonts: {} };
|
|
@@ -112566,8 +112590,27 @@ async function buildMasterRoundTrip(source) {
|
|
|
112566
112590
|
colorMapping: source.clrMapAttributes ? buildColorMapping(source.clrMapAttributes) : void 0
|
|
112567
112591
|
};
|
|
112568
112592
|
}
|
|
112569
|
-
async function
|
|
112570
|
-
|
|
112593
|
+
async function buildDeckMasterRoundTripsFromPptx(pptxBytes) {
|
|
112594
|
+
const zip = await JSZip3.loadAsync(pptxBytes);
|
|
112595
|
+
const slidePaths = await readSlideMasterPaths(zip);
|
|
112596
|
+
const masterPaths = [...new Set(slidePaths)];
|
|
112597
|
+
if (masterPaths.length === 0) {
|
|
112598
|
+
return {
|
|
112599
|
+
masterPaths: [],
|
|
112600
|
+
masters: [await buildMasterRoundTrip(await readMasterRoundTripSource(zip))],
|
|
112601
|
+
slideMasterIndex: []
|
|
112602
|
+
};
|
|
112603
|
+
}
|
|
112604
|
+
const masters = await Promise.all(
|
|
112605
|
+
masterPaths.map(
|
|
112606
|
+
async (path) => buildMasterRoundTrip(await readMasterRoundTripSource(zip, path))
|
|
112607
|
+
)
|
|
112608
|
+
);
|
|
112609
|
+
return {
|
|
112610
|
+
masterPaths,
|
|
112611
|
+
masters,
|
|
112612
|
+
slideMasterIndex: slidePaths.map((path) => masterPaths.indexOf(path))
|
|
112613
|
+
};
|
|
112571
112614
|
}
|
|
112572
112615
|
var XML_DECL2;
|
|
112573
112616
|
var CT_NS2;
|
|
@@ -135010,6 +135053,28 @@ var init_slide_fingerprint = __esm({
|
|
|
135010
135053
|
UNHASHABLE_COUNTER = 0;
|
|
135011
135054
|
}
|
|
135012
135055
|
});
|
|
135056
|
+
function updateSlideLayoutRelationship(relationships2, layoutPath, relationshipType) {
|
|
135057
|
+
if (!layoutPath) {
|
|
135058
|
+
return;
|
|
135059
|
+
}
|
|
135060
|
+
const target = `../${layoutPath.replace(/^\/?ppt\//, "")}`;
|
|
135061
|
+
const existing = relationships2.find((rel) => String(rel["@_Type"]).endsWith("/slideLayout"));
|
|
135062
|
+
if (existing) {
|
|
135063
|
+
existing["@_Target"] = target;
|
|
135064
|
+
delete existing["@_TargetMode"];
|
|
135065
|
+
return;
|
|
135066
|
+
}
|
|
135067
|
+
const ids = new Set(relationships2.map((rel) => String(rel["@_Id"])));
|
|
135068
|
+
let id = 1;
|
|
135069
|
+
while (ids.has(`rId${id}`)) {
|
|
135070
|
+
id++;
|
|
135071
|
+
}
|
|
135072
|
+
relationships2.push({ "@_Id": `rId${id}`, "@_Type": relationshipType, "@_Target": target });
|
|
135073
|
+
}
|
|
135074
|
+
var init_slide_layout_relationship = __esm({
|
|
135075
|
+
"src/core/core/runtime/slide-layout-relationship.ts"() {
|
|
135076
|
+
}
|
|
135077
|
+
});
|
|
135013
135078
|
function isXmlObject7(value) {
|
|
135014
135079
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
135015
135080
|
}
|
|
@@ -135662,6 +135727,7 @@ var init_PptxHandlerRuntimeSaveSlideWriter = __esm({
|
|
|
135662
135727
|
init_PptxHandlerRuntimeSaveElementWriter();
|
|
135663
135728
|
init_save_structural_id_gate();
|
|
135664
135729
|
init_slide_fingerprint();
|
|
135730
|
+
init_slide_layout_relationship();
|
|
135665
135731
|
init_slide_save_xml_order();
|
|
135666
135732
|
init_slide_timing_reconcile();
|
|
135667
135733
|
init_slide_transition_reconcile();
|
|
@@ -135829,9 +135895,15 @@ var init_PptxHandlerRuntimeSaveSlideWriter = __esm({
|
|
|
135829
135895
|
slideRelsRoot["@_xmlns"] = constants.relationshipsNamespace;
|
|
135830
135896
|
}
|
|
135831
135897
|
const slideRelationships = this.ensureArray(slideRelsRoot["Relationship"]);
|
|
135898
|
+
updateSlideLayoutRelationship(
|
|
135899
|
+
slideRelationships,
|
|
135900
|
+
slide.layoutPath,
|
|
135901
|
+
constants.slideLayoutRelationshipType
|
|
135902
|
+
);
|
|
135832
135903
|
const slideRelationshipRegistry = new PptxSlideRelationshipRegistry({
|
|
135833
135904
|
relationships: slideRelationships
|
|
135834
135905
|
});
|
|
135906
|
+
this.slideRelsMap.set(slide.id, slideRelationshipRegistry.toRelationshipMap());
|
|
135835
135907
|
const existingCommentRelationship = slideRelationshipRegistry.removeCommentRelationships(
|
|
135836
135908
|
constants.slideCommentRelationshipType
|
|
135837
135909
|
);
|
|
@@ -136850,12 +136922,12 @@ function orderedTemplatePartXml(options) {
|
|
|
136850
136922
|
const rebuilt = positionsByRuntime.get(runtime)?.get(partPath);
|
|
136851
136923
|
const ordered4 = rebuilt ? orderShapeTreeChildren(rewrapped, (node) => rebuilt.get(node), getLocalName2) : orderContainer(rewrapped, sourceXml ? scanSpTreeDocumentOrder(sourceXml) : [], getLocalName2);
|
|
136852
136924
|
if (ordered4 === spTree) {
|
|
136853
|
-
return withOrderedTableParagraphs(xmlObj);
|
|
136925
|
+
return withOrderedTableParagraphs(xmlObj, true);
|
|
136854
136926
|
}
|
|
136855
136927
|
const nextRoot = { ...root, "p:cSld": { ...commonSlideData, "p:spTree": ordered4 } };
|
|
136856
136928
|
const nextPart = { ...xmlObj };
|
|
136857
136929
|
setOwnXmlProperty(nextPart, rootTag2, nextRoot);
|
|
136858
|
-
return withOrderedTableParagraphs(nextPart);
|
|
136930
|
+
return withOrderedTableParagraphs(nextPart, true);
|
|
136859
136931
|
}
|
|
136860
136932
|
var ALTERNATE_CONTENT_TAG3;
|
|
136861
136933
|
var positionsByRuntime;
|
|
@@ -138033,19 +138105,18 @@ var init_PptxHandlerRuntimeSaveLegacyPpt = __esm({
|
|
|
138033
138105
|
return buildMetroBlobs(pptxBytes, slides);
|
|
138034
138106
|
}
|
|
138035
138107
|
/**
|
|
138036
|
-
* The
|
|
138037
|
-
*
|
|
138038
|
-
*
|
|
138039
|
-
* the styles parsed at load.
|
|
138108
|
+
* The text styles of the master at `masterPath` (the first slide's master
|
|
138109
|
+
* when omitted), preferring an edited copy passed in `options.slideMasters`
|
|
138110
|
+
* over the styles parsed at load.
|
|
138040
138111
|
*/
|
|
138041
|
-
legacyMasterTextStyles(slides, options) {
|
|
138112
|
+
legacyMasterTextStyles(slides, options, masterPath) {
|
|
138042
138113
|
const layoutPath = slides[0]?.layoutPath;
|
|
138043
|
-
const
|
|
138044
|
-
if (!
|
|
138114
|
+
const path = (masterPath && this.masterTxStylesCache.has(masterPath) ? masterPath : void 0) ?? (layoutPath ? this.resolveMasterPathForLayout(layoutPath) : void 0) ?? this.masterTxStylesCache.keys().next().value;
|
|
138115
|
+
if (!path) {
|
|
138045
138116
|
return void 0;
|
|
138046
138117
|
}
|
|
138047
|
-
const edited = options?.slideMasters?.find((master) => master.path ===
|
|
138048
|
-
return edited ?? this.masterTxStylesCache.get(
|
|
138118
|
+
const edited = options?.slideMasters?.find((master) => master.path === path)?.txStyles;
|
|
138119
|
+
return edited ?? this.masterTxStylesCache.get(path);
|
|
138049
138120
|
}
|
|
138050
138121
|
/**
|
|
138051
138122
|
* Serialise `slides` to a legacy binary PowerPoint 97-2003 (`.ppt`) file.
|
|
@@ -138062,7 +138133,7 @@ var init_PptxHandlerRuntimeSaveLegacyPpt = __esm({
|
|
|
138062
138133
|
async saveAsLegacyPpt(slides, options, saveAsPptx) {
|
|
138063
138134
|
const pptxBytes = saveAsPptx ? await saveAsPptx() : void 0;
|
|
138064
138135
|
const metroBlobs = await this.resolveMetroBlobs(slides, pptxBytes);
|
|
138065
|
-
const
|
|
138136
|
+
const deckMasters = pptxBytes ? await buildDeckMasterRoundTripsFromPptx(pptxBytes) : void 0;
|
|
138066
138137
|
this.compatibilityService.resetWarnings();
|
|
138067
138138
|
const resolvedMedia = await this.resolveAudioMediaBytes(slides);
|
|
138068
138139
|
const resolvedPictures = await resolvePictureSources(
|
|
@@ -138079,11 +138150,25 @@ var init_PptxHandlerRuntimeSaveLegacyPpt = __esm({
|
|
|
138079
138150
|
metroBlobs,
|
|
138080
138151
|
resolvedPictures
|
|
138081
138152
|
);
|
|
138082
|
-
|
|
138083
|
-
|
|
138084
|
-
|
|
138085
|
-
|
|
138086
|
-
|
|
138153
|
+
if (deckMasters && deckMasters.masterPaths.length > 1) {
|
|
138154
|
+
deck.masters = deckMasters.masters.map((roundTrip, i2) => ({
|
|
138155
|
+
roundTrip,
|
|
138156
|
+
styles: convertMasterTextStyles(
|
|
138157
|
+
this.legacyMasterTextStyles(slides, options, deckMasters.masterPaths[i2]),
|
|
138158
|
+
roundTrip.themeFonts
|
|
138159
|
+
)
|
|
138160
|
+
}));
|
|
138161
|
+
deck.slides.forEach((slide, i2) => {
|
|
138162
|
+
slide.masterIndex = deckMasters.slideMasterIndex[i2];
|
|
138163
|
+
});
|
|
138164
|
+
} else {
|
|
138165
|
+
const master = deckMasters?.masters[0];
|
|
138166
|
+
deck.masterStyles = convertMasterTextStyles(
|
|
138167
|
+
this.legacyMasterTextStyles(slides, options, deckMasters?.masterPaths[0]),
|
|
138168
|
+
master?.themeFonts
|
|
138169
|
+
);
|
|
138170
|
+
deck.master = master;
|
|
138171
|
+
}
|
|
138087
138172
|
return buildPptFile(deck, { password: options?.pptPassword });
|
|
138088
138173
|
}
|
|
138089
138174
|
};
|
|
@@ -151597,7 +151682,7 @@ function readPersistRecord(view, directory, persistId) {
|
|
|
151597
151682
|
return readRecordOrThrow(view, offset);
|
|
151598
151683
|
}
|
|
151599
151684
|
var init_persist_directory = __esm({
|
|
151600
|
-
"../../node_modules/.bun/@christophervr+ole2@0.
|
|
151685
|
+
"../../node_modules/.bun/@christophervr+ole2@0.3.0/node_modules/@christophervr/ole2/dist/ppt/persist-directory.js"() {
|
|
151601
151686
|
init_record_stream();
|
|
151602
151687
|
init_record_types();
|
|
151603
151688
|
}
|
|
@@ -185513,6 +185598,250 @@ pptx-ui-checkbox[checked] { border-color: var(--pptx-primary, #6366f1); }
|
|
|
185513
185598
|
}
|
|
185514
185599
|
}
|
|
185515
185600
|
`;
|
|
185601
|
+
var CONTRACT_REVISION = 1;
|
|
185602
|
+
var CONTRACT_KEY = /* @__PURE__ */ Symbol.for("pptx-viewer.web-control-contract");
|
|
185603
|
+
function assertWebControlContract(registry, names) {
|
|
185604
|
+
for (const name of names) {
|
|
185605
|
+
const ctor = registry.get(name);
|
|
185606
|
+
const revision = ctor?.[CONTRACT_KEY];
|
|
185607
|
+
if (revision !== void 0 && revision !== CONTRACT_REVISION) {
|
|
185608
|
+
throw new Error(
|
|
185609
|
+
`Incompatible ${name} contract (${revision}; expected ${CONTRACT_REVISION}). Use matching viewer bindings in this window.`
|
|
185610
|
+
);
|
|
185611
|
+
}
|
|
185612
|
+
}
|
|
185613
|
+
}
|
|
185614
|
+
function markWebControlContract(ctor) {
|
|
185615
|
+
Object.defineProperty(ctor, CONTRACT_KEY, { value: CONTRACT_REVISION });
|
|
185616
|
+
}
|
|
185617
|
+
var RIBBON_COMMAND_STYLES = `
|
|
185618
|
+
:host { display: inline-flex; flex: none; }
|
|
185619
|
+
button {
|
|
185620
|
+
box-sizing: border-box; display: inline-flex; flex-direction: column; align-items: center;
|
|
185621
|
+
justify-content: flex-start; gap: 2px; min-width: 54px; max-width: 78px; height: 58px;
|
|
185622
|
+
padding: 4px; border: 0; border-radius: 4px; background: transparent;
|
|
185623
|
+
color: var(--pptx-foreground, #f9fafb); cursor: pointer; font: inherit;
|
|
185624
|
+
font-size: 9px; line-height: 11px; text-align: center;
|
|
185625
|
+
}
|
|
185626
|
+
svg { width: 24px; height: 24px; flex: none; color: var(--pptx-primary, #6366f1);
|
|
185627
|
+
fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
|
|
185628
|
+
:host([compact]) button { flex-direction: row; align-items: center; justify-content: flex-start;
|
|
185629
|
+
gap: 6px; min-width: 88px; max-width: none; height: 26px; padding: 0 4px; font-size: 10px; text-align: left; }
|
|
185630
|
+
:host([compact]) svg { width: 16px; height: 16px; }
|
|
185631
|
+
button:hover:not(:disabled) { background: var(--pptx-accent, #33334d); }
|
|
185632
|
+
:host([active]) button { background: color-mix(in srgb, var(--pptx-primary, #6366f1) 15%, transparent); color: var(--pptx-primary, #6366f1); }
|
|
185633
|
+
button:disabled { opacity: .35; cursor: not-allowed; }
|
|
185634
|
+
button:focus-visible { outline: 2px solid var(--pptx-ring, #6366f1); outline-offset: 2px; }
|
|
185635
|
+
@media (pointer: coarse), (max-width: 767px) { :host([compact]) button { min-height: 44px; } }
|
|
185636
|
+
@media (forced-colors: active) {
|
|
185637
|
+
button { color: ButtonText; } svg { color: ButtonText; }
|
|
185638
|
+
button:disabled { color: GrayText; opacity: 1; }
|
|
185639
|
+
button:focus-visible { outline-color: Highlight; }
|
|
185640
|
+
:host([active]) button { border: 1px solid Highlight; }
|
|
185641
|
+
}
|
|
185642
|
+
`;
|
|
185643
|
+
var RIBBON_ICON_PATHS = {
|
|
185644
|
+
camera: "M2 6h4l2-3h4l2 3h4v11H2ZM7 11a3 3 0 1 0 6 0 3 3 0 1 0-6 0",
|
|
185645
|
+
eraser: "M3 12l8-8 6 6-7 7H7ZM3 17h14M7 8l6 6",
|
|
185646
|
+
reset: "M4 10a6 6 0 1 1 1.8 4.2M4 6v4h4",
|
|
185647
|
+
help: "M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M8 7a2 2 0 1 1 3 1.8c-.7.3-1 .8-1 1.7M10 14v.1",
|
|
185648
|
+
"play-start": "M4 3 15 10 4 17ZM17 3v14",
|
|
185649
|
+
play: "M5 3 16 10 5 17Z",
|
|
185650
|
+
presentation: "M2 3h16v11H2ZM7 18h6M10 14v4",
|
|
185651
|
+
list: "M4 4h12v12H4ZM7 8h6M7 11h6",
|
|
185652
|
+
broadcast: "M7 7a4.2 4.2 0 0 0 0 6M13 7a4.2 4.2 0 0 1 0 6M4.5 4.5a7.8 7.8 0 0 0 0 11M15.5 4.5a7.8 7.8 0 0 1 0 11M8.5 10a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0-3 0",
|
|
185653
|
+
video: "M2 5h11v10H2ZM13 10l5-3v6Z",
|
|
185654
|
+
settings: "M3 5h14M6 10h8M8 15h4M6 3v4M12 8v4M10 13v4",
|
|
185655
|
+
"eye-off": "M2.5 10S5.5 5 10 5s7.5 5 7.5 5-3 5-7.5 5-7.5-5-7.5-5ZM4 4l12 12",
|
|
185656
|
+
clock: "M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M10 6v4l3 2",
|
|
185657
|
+
record: "M5 10a5 5 0 1 0 10 0 5 5 0 1 0-10 0",
|
|
185658
|
+
captions: "M2 4h16v12H2ZM5 9h4M11 9h4M5 12h3M10 12h5",
|
|
185659
|
+
keyboard: "M2 5h16v10H2ZM5 8h1M9 8h1M13 8h1M5 11h1M9 11h5",
|
|
185660
|
+
accessibility: "M8 3a2 2 0 1 0 4 0 2 2 0 1 0-4 0M3 7l7 2 7-2M10 9v4M10 13l-4 5M10 13l4 5"
|
|
185661
|
+
};
|
|
185662
|
+
function definePptxRibbonCommand(registry) {
|
|
185663
|
+
if (registry.get("pptx-ui-ribbon-command")) {
|
|
185664
|
+
return;
|
|
185665
|
+
}
|
|
185666
|
+
class RibbonCommand extends HTMLElement {
|
|
185667
|
+
static observedAttributes = [
|
|
185668
|
+
"label",
|
|
185669
|
+
"icon",
|
|
185670
|
+
"disabled",
|
|
185671
|
+
"active",
|
|
185672
|
+
"compact",
|
|
185673
|
+
"pressed",
|
|
185674
|
+
"expanded",
|
|
185675
|
+
"title",
|
|
185676
|
+
"data-ribbon-control"
|
|
185677
|
+
];
|
|
185678
|
+
button;
|
|
185679
|
+
text;
|
|
185680
|
+
path;
|
|
185681
|
+
constructor() {
|
|
185682
|
+
super();
|
|
185683
|
+
const root = this.attachShadow({ mode: "open" });
|
|
185684
|
+
attachControlStyles(root, RIBBON_COMMAND_STYLES);
|
|
185685
|
+
this.button = document.createElement("button");
|
|
185686
|
+
this.button.type = "button";
|
|
185687
|
+
this.button.setAttribute("part", "button");
|
|
185688
|
+
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
185689
|
+
svg.setAttribute("viewBox", "0 0 20 20");
|
|
185690
|
+
svg.setAttribute("aria-hidden", "true");
|
|
185691
|
+
this.path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
185692
|
+
svg.append(this.path);
|
|
185693
|
+
this.text = document.createElement("span");
|
|
185694
|
+
this.button.append(svg, this.text);
|
|
185695
|
+
root.append(this.button);
|
|
185696
|
+
this.button.addEventListener("keydown", (event) => {
|
|
185697
|
+
if ((event.key === " " || event.key === "Enter") && !event.ctrlKey && !event.metaKey && !event.altKey) {
|
|
185698
|
+
event.stopPropagation();
|
|
185699
|
+
}
|
|
185700
|
+
});
|
|
185701
|
+
this.button.addEventListener("click", () => {
|
|
185702
|
+
const id = this.getAttribute("data-ribbon-control");
|
|
185703
|
+
if (!this.button.disabled && id) {
|
|
185704
|
+
this.dispatchEvent(
|
|
185705
|
+
new CustomEvent("command-request", { detail: { id }, bubbles: true, composed: true })
|
|
185706
|
+
);
|
|
185707
|
+
}
|
|
185708
|
+
});
|
|
185709
|
+
}
|
|
185710
|
+
connectedCallback() {
|
|
185711
|
+
this.sync();
|
|
185712
|
+
}
|
|
185713
|
+
attributeChangedCallback() {
|
|
185714
|
+
this.sync();
|
|
185715
|
+
}
|
|
185716
|
+
sync() {
|
|
185717
|
+
this.text.textContent = this.getAttribute("label") ?? "";
|
|
185718
|
+
this.button.title = this.getAttribute("title") ?? this.text.textContent;
|
|
185719
|
+
this.button.disabled = this.hasAttribute("disabled");
|
|
185720
|
+
this.path.setAttribute("d", RIBBON_ICON_PATHS[this.getAttribute("icon") ?? ""] ?? "");
|
|
185721
|
+
for (const attr22 of ["pressed", "expanded"]) {
|
|
185722
|
+
const value = this.getAttribute(attr22);
|
|
185723
|
+
if (value === null) {
|
|
185724
|
+
this.button.removeAttribute(`aria-${attr22}`);
|
|
185725
|
+
} else {
|
|
185726
|
+
this.button.setAttribute(`aria-${attr22}`, value);
|
|
185727
|
+
}
|
|
185728
|
+
}
|
|
185729
|
+
}
|
|
185730
|
+
}
|
|
185731
|
+
registry.define("pptx-ui-ribbon-command", RibbonCommand);
|
|
185732
|
+
}
|
|
185733
|
+
var STYLES = `
|
|
185734
|
+
:host { display: inline-flex; flex: none; align-self: stretch; }
|
|
185735
|
+
.group { box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between;
|
|
185736
|
+
min-height: 78px; padding: 4px 8px 2px; border-right: 1px solid color-mix(in srgb, var(--pptx-border, #33334d) 60%, transparent); }
|
|
185737
|
+
:host(:last-child) .group { border-right: 0; }
|
|
185738
|
+
.row { display: flex; align-items: flex-start; gap: 4px; }
|
|
185739
|
+
::slotted(*) { flex-shrink: 0; }
|
|
185740
|
+
.caption { padding-top: 2px; color: var(--pptx-muted-foreground, #94a3b8); font: inherit;
|
|
185741
|
+
font-size: 9px; line-height: 12px; text-align: center; white-space: nowrap; }
|
|
185742
|
+
`;
|
|
185743
|
+
function definePptxRibbonGroup(registry) {
|
|
185744
|
+
if (registry.get("pptx-ui-ribbon-group")) {
|
|
185745
|
+
return;
|
|
185746
|
+
}
|
|
185747
|
+
class RibbonGroup extends HTMLElement {
|
|
185748
|
+
static observedAttributes = ["label"];
|
|
185749
|
+
caption;
|
|
185750
|
+
constructor() {
|
|
185751
|
+
super();
|
|
185752
|
+
const root = this.attachShadow({ mode: "open" });
|
|
185753
|
+
attachControlStyles(root, STYLES);
|
|
185754
|
+
const group2 = document.createElement("div");
|
|
185755
|
+
group2.className = "group";
|
|
185756
|
+
const row = document.createElement("div");
|
|
185757
|
+
row.className = "row";
|
|
185758
|
+
row.append(document.createElement("slot"));
|
|
185759
|
+
this.caption = document.createElement("span");
|
|
185760
|
+
this.caption.className = "caption";
|
|
185761
|
+
group2.append(row, this.caption);
|
|
185762
|
+
root.append(group2);
|
|
185763
|
+
}
|
|
185764
|
+
connectedCallback() {
|
|
185765
|
+
this.setAttribute("role", "group");
|
|
185766
|
+
this.sync();
|
|
185767
|
+
}
|
|
185768
|
+
attributeChangedCallback() {
|
|
185769
|
+
this.sync();
|
|
185770
|
+
}
|
|
185771
|
+
sync() {
|
|
185772
|
+
const label = this.getAttribute("label") ?? "";
|
|
185773
|
+
this.caption.textContent = label;
|
|
185774
|
+
this.setAttribute("aria-label", label);
|
|
185775
|
+
}
|
|
185776
|
+
}
|
|
185777
|
+
registry.define("pptx-ui-ribbon-group", RibbonGroup);
|
|
185778
|
+
}
|
|
185779
|
+
function definePptxRibbonToggle(registry) {
|
|
185780
|
+
if (registry.get("pptx-ui-ribbon-toggle")) {
|
|
185781
|
+
return;
|
|
185782
|
+
}
|
|
185783
|
+
class RibbonToggle extends HTMLElement {
|
|
185784
|
+
static observedAttributes = ["label", "checked", "disabled", "title"];
|
|
185785
|
+
checkbox;
|
|
185786
|
+
text;
|
|
185787
|
+
constructor() {
|
|
185788
|
+
super();
|
|
185789
|
+
const root = this.attachShadow({ mode: "open" });
|
|
185790
|
+
attachControlStyles(
|
|
185791
|
+
root,
|
|
185792
|
+
`
|
|
185793
|
+
:host { display: block; }
|
|
185794
|
+
label { display: flex; align-items: center; gap: 4px; min-height: 22px; padding: 0 4px;
|
|
185795
|
+
color: var(--pptx-foreground, #f9fafb); font: inherit; font-size: 10px; white-space: nowrap; cursor: pointer; }
|
|
185796
|
+
:host([disabled]) label { color: var(--pptx-muted-foreground, #9ca3af); cursor: not-allowed; }
|
|
185797
|
+
@media (pointer: coarse), (max-width: 767px) { label { min-height: 44px; font-size: 12px; } }
|
|
185798
|
+
`
|
|
185799
|
+
);
|
|
185800
|
+
const label = document.createElement("label");
|
|
185801
|
+
this.checkbox = document.createElement("pptx-ui-checkbox");
|
|
185802
|
+
this.text = document.createTextNode("");
|
|
185803
|
+
label.append(this.checkbox, this.text);
|
|
185804
|
+
label.addEventListener("click", (event) => {
|
|
185805
|
+
event.preventDefault();
|
|
185806
|
+
if (event.target !== this.checkbox) {
|
|
185807
|
+
this.checkbox.click();
|
|
185808
|
+
}
|
|
185809
|
+
});
|
|
185810
|
+
this.checkbox.addEventListener("input", (event) => event.stopPropagation());
|
|
185811
|
+
this.checkbox.addEventListener("change", (event) => {
|
|
185812
|
+
event.stopPropagation();
|
|
185813
|
+
const checked = this.checkbox.checked;
|
|
185814
|
+
this.sync();
|
|
185815
|
+
const id = this.getAttribute("data-ribbon-control");
|
|
185816
|
+
if (!this.hasAttribute("disabled") && id) {
|
|
185817
|
+
this.dispatchEvent(
|
|
185818
|
+
new CustomEvent("toggle-request", {
|
|
185819
|
+
detail: { id, checked },
|
|
185820
|
+
bubbles: true,
|
|
185821
|
+
composed: true
|
|
185822
|
+
})
|
|
185823
|
+
);
|
|
185824
|
+
}
|
|
185825
|
+
});
|
|
185826
|
+
root.append(label);
|
|
185827
|
+
}
|
|
185828
|
+
connectedCallback() {
|
|
185829
|
+
this.sync();
|
|
185830
|
+
}
|
|
185831
|
+
attributeChangedCallback() {
|
|
185832
|
+
this.sync();
|
|
185833
|
+
}
|
|
185834
|
+
sync() {
|
|
185835
|
+
const label = this.getAttribute("label") ?? "";
|
|
185836
|
+
this.text.textContent = label;
|
|
185837
|
+
this.checkbox.setAttribute("aria-label", label);
|
|
185838
|
+
this.checkbox.title = this.getAttribute("title") ?? label;
|
|
185839
|
+
this.checkbox.checked = this.hasAttribute("checked");
|
|
185840
|
+
this.checkbox.disabled = this.hasAttribute("disabled");
|
|
185841
|
+
}
|
|
185842
|
+
}
|
|
185843
|
+
registry.define("pptx-ui-ribbon-toggle", RibbonToggle);
|
|
185844
|
+
}
|
|
185516
185845
|
var SEARCH_STYLES = `
|
|
185517
185846
|
:host {
|
|
185518
185847
|
display: flex;
|
|
@@ -185952,6 +186281,9 @@ function definePptxSelect(registry) {
|
|
|
185952
186281
|
}
|
|
185953
186282
|
disconnectedCallback() {
|
|
185954
186283
|
this.close();
|
|
186284
|
+
window.clearTimeout(this.searchTimer);
|
|
186285
|
+
this.searchTimer = 0;
|
|
186286
|
+
this.search = "";
|
|
185955
186287
|
this.observer.disconnect();
|
|
185956
186288
|
cancelAnimationFrame(this.refreshFrame);
|
|
185957
186289
|
this.refreshFrame = 0;
|
|
@@ -186123,796 +186455,6 @@ function definePptxSelect(registry) {
|
|
|
186123
186455
|
}
|
|
186124
186456
|
registry.define("pptx-ui-select", PptxSelect);
|
|
186125
186457
|
}
|
|
186126
|
-
function registerPptxWebControls() {
|
|
186127
|
-
if (typeof window === "undefined" || !window.customElements) {
|
|
186128
|
-
return;
|
|
186129
|
-
}
|
|
186130
|
-
if (!document.getElementById("pptx-ui-control-hosts")) {
|
|
186131
|
-
const style = document.createElement("style");
|
|
186132
|
-
style.id = "pptx-ui-control-hosts";
|
|
186133
|
-
style.textContent = HOST_STYLES;
|
|
186134
|
-
document.head.append(style);
|
|
186135
|
-
}
|
|
186136
|
-
definePptxSearchField(window.customElements);
|
|
186137
|
-
definePptxCheckbox(window.customElements);
|
|
186138
|
-
definePptxSelect(window.customElements);
|
|
186139
|
-
}
|
|
186140
|
-
var defaultThemeColors = {
|
|
186141
|
-
background: "#030712",
|
|
186142
|
-
// gray-950
|
|
186143
|
-
foreground: "#f3f4f6",
|
|
186144
|
-
// gray-100
|
|
186145
|
-
card: "#111827",
|
|
186146
|
-
// gray-900
|
|
186147
|
-
cardForeground: "#f3f4f6",
|
|
186148
|
-
// gray-100
|
|
186149
|
-
popover: "#111827",
|
|
186150
|
-
// gray-900
|
|
186151
|
-
popoverForeground: "#f3f4f6",
|
|
186152
|
-
// gray-100
|
|
186153
|
-
primary: "#6366f1",
|
|
186154
|
-
// indigo-500
|
|
186155
|
-
primaryForeground: "#ffffff",
|
|
186156
|
-
// white
|
|
186157
|
-
secondary: "#1f2937",
|
|
186158
|
-
// gray-800
|
|
186159
|
-
secondaryForeground: "#f3f4f6",
|
|
186160
|
-
// gray-100
|
|
186161
|
-
muted: "#1f2937",
|
|
186162
|
-
// gray-800
|
|
186163
|
-
mutedForeground: "#9ca3af",
|
|
186164
|
-
// gray-400
|
|
186165
|
-
accent: "#1f2937",
|
|
186166
|
-
// gray-800
|
|
186167
|
-
accentForeground: "#f3f4f6",
|
|
186168
|
-
// gray-100
|
|
186169
|
-
destructive: "#ef4444",
|
|
186170
|
-
// red-500
|
|
186171
|
-
destructiveForeground: "#ffffff",
|
|
186172
|
-
// white
|
|
186173
|
-
border: "#374151",
|
|
186174
|
-
// gray-700
|
|
186175
|
-
input: "#374151",
|
|
186176
|
-
// gray-700
|
|
186177
|
-
ring: "#6366f1"
|
|
186178
|
-
// indigo-500
|
|
186179
|
-
};
|
|
186180
|
-
var defaultRadius = "0.5rem";
|
|
186181
|
-
var lightThemeColors = {
|
|
186182
|
-
background: "#f8fafc",
|
|
186183
|
-
// slate-50
|
|
186184
|
-
foreground: "#0f172a",
|
|
186185
|
-
// slate-900
|
|
186186
|
-
card: "#ffffff",
|
|
186187
|
-
cardForeground: "#0f172a",
|
|
186188
|
-
// slate-900
|
|
186189
|
-
popover: "#ffffff",
|
|
186190
|
-
popoverForeground: "#0f172a",
|
|
186191
|
-
// slate-900
|
|
186192
|
-
primary: "#4f46e5",
|
|
186193
|
-
// indigo-600
|
|
186194
|
-
primaryForeground: "#ffffff",
|
|
186195
|
-
secondary: "#f1f5f9",
|
|
186196
|
-
// slate-100
|
|
186197
|
-
secondaryForeground: "#0f172a",
|
|
186198
|
-
// slate-900
|
|
186199
|
-
muted: "#f1f5f9",
|
|
186200
|
-
// slate-100
|
|
186201
|
-
mutedForeground: "#64748b",
|
|
186202
|
-
// slate-500
|
|
186203
|
-
accent: "#f1f5f9",
|
|
186204
|
-
// slate-100
|
|
186205
|
-
accentForeground: "#0f172a",
|
|
186206
|
-
// slate-900
|
|
186207
|
-
destructive: "#dc2626",
|
|
186208
|
-
// red-600
|
|
186209
|
-
destructiveForeground: "#ffffff",
|
|
186210
|
-
border: "#e2e8f0",
|
|
186211
|
-
// slate-200
|
|
186212
|
-
input: "#e2e8f0",
|
|
186213
|
-
// slate-200
|
|
186214
|
-
ring: "#4f46e5"
|
|
186215
|
-
// indigo-600
|
|
186216
|
-
};
|
|
186217
|
-
var lightTheme = {
|
|
186218
|
-
colors: lightThemeColors
|
|
186219
|
-
};
|
|
186220
|
-
var COLOR_KEY_TO_CSS = {
|
|
186221
|
-
background: "background",
|
|
186222
|
-
foreground: "foreground",
|
|
186223
|
-
card: "card",
|
|
186224
|
-
cardForeground: "card-foreground",
|
|
186225
|
-
popover: "popover",
|
|
186226
|
-
popoverForeground: "popover-foreground",
|
|
186227
|
-
primary: "primary",
|
|
186228
|
-
primaryForeground: "primary-foreground",
|
|
186229
|
-
secondary: "secondary",
|
|
186230
|
-
secondaryForeground: "secondary-foreground",
|
|
186231
|
-
muted: "muted",
|
|
186232
|
-
mutedForeground: "muted-foreground",
|
|
186233
|
-
accent: "accent",
|
|
186234
|
-
accentForeground: "accent-foreground",
|
|
186235
|
-
destructive: "destructive",
|
|
186236
|
-
destructiveForeground: "destructive-foreground",
|
|
186237
|
-
border: "border",
|
|
186238
|
-
input: "input",
|
|
186239
|
-
ring: "ring"
|
|
186240
|
-
};
|
|
186241
|
-
var DERIVED_COLOR_TOKENS = [
|
|
186242
|
-
{ source: "primary", cssSuffix: "inspector-active" },
|
|
186243
|
-
{ source: "border", cssSuffix: "inspector-border" }
|
|
186244
|
-
];
|
|
186245
|
-
function themeToCssVars(theme, omitDefaults = false) {
|
|
186246
|
-
const vars = {};
|
|
186247
|
-
if (!theme) {
|
|
186248
|
-
return vars;
|
|
186249
|
-
}
|
|
186250
|
-
const colors = theme.colors;
|
|
186251
|
-
if (colors) {
|
|
186252
|
-
for (const [key2, cssSuffix] of Object.entries(COLOR_KEY_TO_CSS)) {
|
|
186253
|
-
const value = colors[key2];
|
|
186254
|
-
if (value === void 0) {
|
|
186255
|
-
continue;
|
|
186256
|
-
}
|
|
186257
|
-
if (omitDefaults && value === defaultThemeColors[key2]) {
|
|
186258
|
-
continue;
|
|
186259
|
-
}
|
|
186260
|
-
vars[`--pptx-${cssSuffix}`] = value;
|
|
186261
|
-
vars[`--color-${cssSuffix}`] = value;
|
|
186262
|
-
}
|
|
186263
|
-
for (const { source, cssSuffix } of DERIVED_COLOR_TOKENS) {
|
|
186264
|
-
const value = colors[source];
|
|
186265
|
-
if (value === void 0) {
|
|
186266
|
-
continue;
|
|
186267
|
-
}
|
|
186268
|
-
if (omitDefaults && value === defaultThemeColors[source]) {
|
|
186269
|
-
continue;
|
|
186270
|
-
}
|
|
186271
|
-
vars[`--pptx-${cssSuffix}`] = value;
|
|
186272
|
-
}
|
|
186273
|
-
}
|
|
186274
|
-
if (theme.radius !== void 0) {
|
|
186275
|
-
if (!omitDefaults || theme.radius !== defaultRadius) {
|
|
186276
|
-
vars["--pptx-radius"] = theme.radius;
|
|
186277
|
-
const r = theme.radius;
|
|
186278
|
-
vars["--radius-sm"] = `calc(${r} - 4px)`;
|
|
186279
|
-
vars["--radius-md"] = `calc(${r} - 2px)`;
|
|
186280
|
-
vars["--radius-lg"] = r;
|
|
186281
|
-
vars["--radius-xl"] = `calc(${r} + 4px)`;
|
|
186282
|
-
}
|
|
186283
|
-
}
|
|
186284
|
-
if (theme.cssVars) {
|
|
186285
|
-
for (const [key2, value] of Object.entries(theme.cssVars)) {
|
|
186286
|
-
vars[key2] = value;
|
|
186287
|
-
}
|
|
186288
|
-
}
|
|
186289
|
-
return vars;
|
|
186290
|
-
}
|
|
186291
|
-
function defaultCssVars() {
|
|
186292
|
-
const vars = {};
|
|
186293
|
-
for (const [key2, cssSuffix] of Object.entries(COLOR_KEY_TO_CSS)) {
|
|
186294
|
-
vars[`--pptx-${cssSuffix}`] = defaultThemeColors[key2];
|
|
186295
|
-
}
|
|
186296
|
-
for (const { source, cssSuffix } of DERIVED_COLOR_TOKENS) {
|
|
186297
|
-
vars[`--pptx-${cssSuffix}`] = defaultThemeColors[source];
|
|
186298
|
-
}
|
|
186299
|
-
vars["--pptx-radius"] = defaultRadius;
|
|
186300
|
-
return vars;
|
|
186301
|
-
}
|
|
186302
|
-
var vermilionLightColors = {
|
|
186303
|
-
background: "#fbfaf7",
|
|
186304
|
-
foreground: "#1a1d21",
|
|
186305
|
-
card: "#ffffff",
|
|
186306
|
-
cardForeground: "#1a1d21",
|
|
186307
|
-
popover: "#ffffff",
|
|
186308
|
-
popoverForeground: "#1a1d21",
|
|
186309
|
-
primary: "#c2431f",
|
|
186310
|
-
primaryForeground: "#ffffff",
|
|
186311
|
-
secondary: "#f2efe8",
|
|
186312
|
-
secondaryForeground: "#1a1d21",
|
|
186313
|
-
muted: "#f2efe8",
|
|
186314
|
-
mutedForeground: "#5a626e",
|
|
186315
|
-
accent: "rgba(194, 67, 31, 0.08)",
|
|
186316
|
-
accentForeground: "#1a1d21",
|
|
186317
|
-
destructive: "#dc2626",
|
|
186318
|
-
destructiveForeground: "#ffffff",
|
|
186319
|
-
border: "#e6e2d9",
|
|
186320
|
-
input: "#e6e2d9",
|
|
186321
|
-
ring: "#c2431f"
|
|
186322
|
-
};
|
|
186323
|
-
var vermilionDarkColors = {
|
|
186324
|
-
background: "#0f1113",
|
|
186325
|
-
foreground: "#f0efec",
|
|
186326
|
-
card: "#171a1e",
|
|
186327
|
-
cardForeground: "#f0efec",
|
|
186328
|
-
popover: "#171a1e",
|
|
186329
|
-
popoverForeground: "#f0efec",
|
|
186330
|
-
primary: "#e86a40",
|
|
186331
|
-
primaryForeground: "#ffffff",
|
|
186332
|
-
secondary: "#1f242b",
|
|
186333
|
-
secondaryForeground: "#f0efec",
|
|
186334
|
-
muted: "#1f242b",
|
|
186335
|
-
mutedForeground: "#9aa1ab",
|
|
186336
|
-
accent: "rgba(232, 106, 64, 0.1)",
|
|
186337
|
-
accentForeground: "#f0efec",
|
|
186338
|
-
destructive: "#ef4444",
|
|
186339
|
-
destructiveForeground: "#ffffff",
|
|
186340
|
-
border: "#272c33",
|
|
186341
|
-
input: "#272c33",
|
|
186342
|
-
ring: "#e86a40"
|
|
186343
|
-
};
|
|
186344
|
-
var vermilionRadius = "0.375rem";
|
|
186345
|
-
var vermilionLightTheme = {
|
|
186346
|
-
colors: vermilionLightColors,
|
|
186347
|
-
radius: vermilionRadius
|
|
186348
|
-
};
|
|
186349
|
-
var vermilionDarkTheme = {
|
|
186350
|
-
colors: vermilionDarkColors,
|
|
186351
|
-
radius: vermilionRadius
|
|
186352
|
-
};
|
|
186353
|
-
var THEME_CATALOG = [
|
|
186354
|
-
{ key: "default", labelKey: "pptx.settings.theme.default", theme: void 0 },
|
|
186355
|
-
{ key: "light", labelKey: "pptx.settings.theme.light", theme: lightTheme },
|
|
186356
|
-
{
|
|
186357
|
-
key: "vermilionLight",
|
|
186358
|
-
labelKey: "pptx.settings.theme.vermilionLight",
|
|
186359
|
-
theme: vermilionLightTheme
|
|
186360
|
-
},
|
|
186361
|
-
{
|
|
186362
|
-
key: "vermilionDark",
|
|
186363
|
-
labelKey: "pptx.settings.theme.vermilionDark",
|
|
186364
|
-
theme: vermilionDarkTheme
|
|
186365
|
-
}
|
|
186366
|
-
];
|
|
186367
|
-
function resolveThemeCatalogEntry(key2, catalog = THEME_CATALOG) {
|
|
186368
|
-
return catalog.find((entry5) => entry5.key === key2)?.theme;
|
|
186369
|
-
}
|
|
186370
|
-
function corePreset(id) {
|
|
186371
|
-
const preset22 = THEME_PRESETS.find((p) => p.id === id);
|
|
186372
|
-
if (!preset22) {
|
|
186373
|
-
throw new Error(`theme-gallery-presets: core THEME_PRESETS is missing "${id}"`);
|
|
186374
|
-
}
|
|
186375
|
-
return preset22;
|
|
186376
|
-
}
|
|
186377
|
-
var WISP_PRESET = {
|
|
186378
|
-
id: "wisp",
|
|
186379
|
-
name: "Wisp",
|
|
186380
|
-
colorScheme: {
|
|
186381
|
-
dk1: "#000000",
|
|
186382
|
-
lt1: "#FFFFFF",
|
|
186383
|
-
dk2: "#46393B",
|
|
186384
|
-
lt2: "#E8DCD8",
|
|
186385
|
-
accent1: "#A53010",
|
|
186386
|
-
accent2: "#DE7E18",
|
|
186387
|
-
accent3: "#9F8351",
|
|
186388
|
-
accent4: "#728653",
|
|
186389
|
-
accent5: "#92AA4C",
|
|
186390
|
-
accent6: "#6AAC91",
|
|
186391
|
-
hlink: "#FB4F14",
|
|
186392
|
-
folHlink: "#E25839"
|
|
186393
|
-
},
|
|
186394
|
-
fontScheme: {
|
|
186395
|
-
majorFont: { latin: "Century Gothic" },
|
|
186396
|
-
minorFont: { latin: "Century Gothic" }
|
|
186397
|
-
}
|
|
186398
|
-
};
|
|
186399
|
-
var BERLIN_PRESET = {
|
|
186400
|
-
id: "berlin",
|
|
186401
|
-
name: "Berlin",
|
|
186402
|
-
colorScheme: {
|
|
186403
|
-
dk1: "#000000",
|
|
186404
|
-
lt1: "#FFFFFF",
|
|
186405
|
-
dk2: "#3E5C61",
|
|
186406
|
-
lt2: "#D5E0D0",
|
|
186407
|
-
accent1: "#F09415",
|
|
186408
|
-
accent2: "#C1B56B",
|
|
186409
|
-
accent3: "#89C2A3",
|
|
186410
|
-
accent4: "#729BBE",
|
|
186411
|
-
accent5: "#9A90C2",
|
|
186412
|
-
accent6: "#BE8DBE",
|
|
186413
|
-
hlink: "#25A0DA",
|
|
186414
|
-
folHlink: "#FF7F00"
|
|
186415
|
-
},
|
|
186416
|
-
fontScheme: {
|
|
186417
|
-
majorFont: { latin: "Trebuchet MS" },
|
|
186418
|
-
minorFont: { latin: "Trebuchet MS" }
|
|
186419
|
-
}
|
|
186420
|
-
};
|
|
186421
|
-
var SLICE_PRESET = {
|
|
186422
|
-
id: "slice",
|
|
186423
|
-
name: "Slice",
|
|
186424
|
-
colorScheme: {
|
|
186425
|
-
dk1: "#000000",
|
|
186426
|
-
lt1: "#FFFFFF",
|
|
186427
|
-
dk2: "#2E3B4C",
|
|
186428
|
-
lt2: "#C7CDD3",
|
|
186429
|
-
accent1: "#E2751D",
|
|
186430
|
-
accent2: "#C53B23",
|
|
186431
|
-
accent3: "#A13D69",
|
|
186432
|
-
accent4: "#58599E",
|
|
186433
|
-
accent5: "#36749D",
|
|
186434
|
-
accent6: "#4EA39A",
|
|
186435
|
-
hlink: "#FD6B32",
|
|
186436
|
-
folHlink: "#D14D0F"
|
|
186437
|
-
},
|
|
186438
|
-
fontScheme: {
|
|
186439
|
-
majorFont: { latin: "Century Gothic" },
|
|
186440
|
-
minorFont: { latin: "Century Gothic" }
|
|
186441
|
-
}
|
|
186442
|
-
};
|
|
186443
|
-
var DIVIDEND_PRESET = {
|
|
186444
|
-
id: "dividend",
|
|
186445
|
-
name: "Dividend",
|
|
186446
|
-
colorScheme: {
|
|
186447
|
-
dk1: "#000000",
|
|
186448
|
-
lt1: "#FFFFFF",
|
|
186449
|
-
dk2: "#3D3D3D",
|
|
186450
|
-
lt2: "#E1E1E1",
|
|
186451
|
-
accent1: "#4D1434",
|
|
186452
|
-
accent2: "#903163",
|
|
186453
|
-
accent3: "#B2324B",
|
|
186454
|
-
accent4: "#D34817",
|
|
186455
|
-
accent5: "#E8971C",
|
|
186456
|
-
accent6: "#FDCB00",
|
|
186457
|
-
hlink: "#A03068",
|
|
186458
|
-
folHlink: "#C34882"
|
|
186459
|
-
},
|
|
186460
|
-
fontScheme: {
|
|
186461
|
-
majorFont: { latin: "Gill Sans MT" },
|
|
186462
|
-
minorFont: { latin: "Gill Sans MT" }
|
|
186463
|
-
}
|
|
186464
|
-
};
|
|
186465
|
-
[
|
|
186466
|
-
corePreset("office"),
|
|
186467
|
-
corePreset("facet"),
|
|
186468
|
-
corePreset("integral"),
|
|
186469
|
-
corePreset("ion"),
|
|
186470
|
-
corePreset("retrospect"),
|
|
186471
|
-
corePreset("organic"),
|
|
186472
|
-
WISP_PRESET,
|
|
186473
|
-
BERLIN_PRESET,
|
|
186474
|
-
SLICE_PRESET,
|
|
186475
|
-
DIVIDEND_PRESET
|
|
186476
|
-
];
|
|
186477
|
-
function createPresentationLoadResources(handler) {
|
|
186478
|
-
const blobUrls = [];
|
|
186479
|
-
let committed = false;
|
|
186480
|
-
let released = false;
|
|
186481
|
-
return {
|
|
186482
|
-
blobUrls,
|
|
186483
|
-
/** The live viewer now owns the handler and media URLs. */
|
|
186484
|
-
commit() {
|
|
186485
|
-
committed = true;
|
|
186486
|
-
},
|
|
186487
|
-
/** Call in finally, after pending asset reads have settled. */
|
|
186488
|
-
releaseIfUncommitted() {
|
|
186489
|
-
if (committed || released) {
|
|
186490
|
-
return;
|
|
186491
|
-
}
|
|
186492
|
-
released = true;
|
|
186493
|
-
handler.dispose();
|
|
186494
|
-
for (const url of blobUrls) {
|
|
186495
|
-
if (url.startsWith("blob:")) {
|
|
186496
|
-
URL.revokeObjectURL(url);
|
|
186497
|
-
}
|
|
186498
|
-
}
|
|
186499
|
-
}
|
|
186500
|
-
};
|
|
186501
|
-
}
|
|
186502
|
-
function walkAndPatchElements(elements, patch) {
|
|
186503
|
-
let mutated = false;
|
|
186504
|
-
const next = elements.map((el) => {
|
|
186505
|
-
let updated = patch(el);
|
|
186506
|
-
if (updated.type === "group" && updated.children?.length) {
|
|
186507
|
-
const newChildren = walkAndPatchElements(updated.children, patch);
|
|
186508
|
-
if (newChildren !== updated.children) {
|
|
186509
|
-
updated = { ...updated, children: newChildren };
|
|
186510
|
-
}
|
|
186511
|
-
}
|
|
186512
|
-
if (updated !== el) {
|
|
186513
|
-
mutated = true;
|
|
186514
|
-
}
|
|
186515
|
-
return updated;
|
|
186516
|
-
});
|
|
186517
|
-
return mutated ? next : elements;
|
|
186518
|
-
}
|
|
186519
|
-
function applyImagePathPatches(elements, resolvedMap, refs) {
|
|
186520
|
-
const elementPatches = /* @__PURE__ */ new Map();
|
|
186521
|
-
for (const ref of refs) {
|
|
186522
|
-
const url = resolvedMap.get(ref.path);
|
|
186523
|
-
if (!url) {
|
|
186524
|
-
continue;
|
|
186525
|
-
}
|
|
186526
|
-
const existing = elementPatches.get(ref.element.id) ?? {};
|
|
186527
|
-
existing[ref.field] = url;
|
|
186528
|
-
elementPatches.set(ref.element.id, existing);
|
|
186529
|
-
}
|
|
186530
|
-
if (elementPatches.size === 0) {
|
|
186531
|
-
return elements;
|
|
186532
|
-
}
|
|
186533
|
-
return walkAndPatchElements(elements, (el) => {
|
|
186534
|
-
const patch = elementPatches.get(el.id);
|
|
186535
|
-
return patch ? { ...el, ...patch } : el;
|
|
186536
|
-
});
|
|
186537
|
-
}
|
|
186538
|
-
function isExternalUrl(path) {
|
|
186539
|
-
return path.startsWith("http://") || path.startsWith("https://") || path.startsWith("data:") || path.startsWith("blob:");
|
|
186540
|
-
}
|
|
186541
|
-
function collectMediaElements(elements, collector) {
|
|
186542
|
-
for (const element of elements) {
|
|
186543
|
-
if (element.type === "media") {
|
|
186544
|
-
collector.push(element);
|
|
186545
|
-
continue;
|
|
186546
|
-
}
|
|
186547
|
-
if (element.type === "group" && element.children?.length) {
|
|
186548
|
-
collectMediaElements(element.children, collector);
|
|
186549
|
-
}
|
|
186550
|
-
}
|
|
186551
|
-
}
|
|
186552
|
-
function collectImagePaths(slides) {
|
|
186553
|
-
const paths = /* @__PURE__ */ new Set();
|
|
186554
|
-
const refs = [];
|
|
186555
|
-
const walkElements = (elements) => {
|
|
186556
|
-
for (const el of elements) {
|
|
186557
|
-
if (el.type === "picture" || el.type === "image") {
|
|
186558
|
-
const pic = el;
|
|
186559
|
-
if (pic.imagePath && !pic.imageData && !isExternalUrl(pic.imagePath)) {
|
|
186560
|
-
paths.add(pic.imagePath);
|
|
186561
|
-
refs.push({ element: el, field: "imageData", path: pic.imagePath });
|
|
186562
|
-
}
|
|
186563
|
-
if (pic.svgPath && !pic.svgData && !isExternalUrl(pic.svgPath)) {
|
|
186564
|
-
paths.add(pic.svgPath);
|
|
186565
|
-
refs.push({ element: el, field: "svgData", path: pic.svgPath });
|
|
186566
|
-
}
|
|
186567
|
-
}
|
|
186568
|
-
if (el.type === "media") {
|
|
186569
|
-
const media = el;
|
|
186570
|
-
if (media.posterFramePath && !media.posterFrameData && !isExternalUrl(media.posterFramePath)) {
|
|
186571
|
-
paths.add(media.posterFramePath);
|
|
186572
|
-
refs.push({
|
|
186573
|
-
element: el,
|
|
186574
|
-
field: "posterFrameData",
|
|
186575
|
-
path: media.posterFramePath
|
|
186576
|
-
});
|
|
186577
|
-
}
|
|
186578
|
-
}
|
|
186579
|
-
if (el.type === "model3d") {
|
|
186580
|
-
const model = el;
|
|
186581
|
-
if (model.modelPath && !model.modelData && !isExternalUrl(model.modelPath)) {
|
|
186582
|
-
paths.add(model.modelPath);
|
|
186583
|
-
refs.push({ element: el, field: "modelData", path: model.modelPath });
|
|
186584
|
-
}
|
|
186585
|
-
const posterNeedsResolution = model.posterImage ? !isExternalUrl(model.posterImage) : !model.imageData;
|
|
186586
|
-
if (model.imagePath && posterNeedsResolution && !isExternalUrl(model.imagePath)) {
|
|
186587
|
-
paths.add(model.imagePath);
|
|
186588
|
-
refs.push({ element: el, field: "posterImage", path: model.imagePath });
|
|
186589
|
-
}
|
|
186590
|
-
}
|
|
186591
|
-
if (el.type === "group" && el.children?.length) {
|
|
186592
|
-
walkElements(el.children);
|
|
186593
|
-
}
|
|
186594
|
-
}
|
|
186595
|
-
};
|
|
186596
|
-
for (const slide of slides) {
|
|
186597
|
-
walkElements(slide.elements);
|
|
186598
|
-
}
|
|
186599
|
-
return { paths, refs };
|
|
186600
|
-
}
|
|
186601
|
-
function collectTableCellImagePaths(slides) {
|
|
186602
|
-
const paths = /* @__PURE__ */ new Set();
|
|
186603
|
-
const refs = [];
|
|
186604
|
-
const walkElements = (elements) => {
|
|
186605
|
-
for (const el of elements) {
|
|
186606
|
-
if (el.type === "table") {
|
|
186607
|
-
const rows = el.tableData?.rows ?? [];
|
|
186608
|
-
rows.forEach((row, rowIndex) => {
|
|
186609
|
-
row.cells.forEach((cell, cellIndex) => {
|
|
186610
|
-
const path = cell.style?.backgroundImageFillPath;
|
|
186611
|
-
if (path && !cell.style?.backgroundImageFillData && !isExternalUrl(path)) {
|
|
186612
|
-
paths.add(path);
|
|
186613
|
-
refs.push({ element: el, rowIndex, cellIndex, path });
|
|
186614
|
-
}
|
|
186615
|
-
});
|
|
186616
|
-
});
|
|
186617
|
-
}
|
|
186618
|
-
if (el.type === "group" && el.children?.length) {
|
|
186619
|
-
walkElements(el.children);
|
|
186620
|
-
}
|
|
186621
|
-
}
|
|
186622
|
-
};
|
|
186623
|
-
for (const slide of slides) {
|
|
186624
|
-
walkElements(slide.elements);
|
|
186625
|
-
}
|
|
186626
|
-
return { paths, refs };
|
|
186627
|
-
}
|
|
186628
|
-
function applyTableCellImagePatches(elements, resolvedMap, refs) {
|
|
186629
|
-
const patchesByElementId = /* @__PURE__ */ new Map();
|
|
186630
|
-
for (const ref of refs) {
|
|
186631
|
-
const url = resolvedMap.get(ref.path);
|
|
186632
|
-
if (!url) {
|
|
186633
|
-
continue;
|
|
186634
|
-
}
|
|
186635
|
-
const list2 = patchesByElementId.get(ref.element.id) ?? [];
|
|
186636
|
-
list2.push({ rowIndex: ref.rowIndex, cellIndex: ref.cellIndex, url });
|
|
186637
|
-
patchesByElementId.set(ref.element.id, list2);
|
|
186638
|
-
}
|
|
186639
|
-
if (patchesByElementId.size === 0) {
|
|
186640
|
-
return elements;
|
|
186641
|
-
}
|
|
186642
|
-
return walkAndPatchElements(elements, (el) => {
|
|
186643
|
-
const cellPatches = patchesByElementId.get(el.id);
|
|
186644
|
-
if (!cellPatches || el.type !== "table") {
|
|
186645
|
-
return el;
|
|
186646
|
-
}
|
|
186647
|
-
const table2 = el;
|
|
186648
|
-
const tableData = table2.tableData;
|
|
186649
|
-
if (!tableData) {
|
|
186650
|
-
return el;
|
|
186651
|
-
}
|
|
186652
|
-
const newRows = tableData.rows.map((row, rowIndex) => {
|
|
186653
|
-
const rowPatches = cellPatches.filter((p) => p.rowIndex === rowIndex);
|
|
186654
|
-
if (rowPatches.length === 0) {
|
|
186655
|
-
return row;
|
|
186656
|
-
}
|
|
186657
|
-
const newCells = row.cells.map((cell, cellIndex) => {
|
|
186658
|
-
const patch = rowPatches.find((p) => p.cellIndex === cellIndex);
|
|
186659
|
-
if (!patch || !cell.style) {
|
|
186660
|
-
return cell;
|
|
186661
|
-
}
|
|
186662
|
-
return {
|
|
186663
|
-
...cell,
|
|
186664
|
-
style: { ...cell.style, backgroundImageFillData: patch.url }
|
|
186665
|
-
};
|
|
186666
|
-
});
|
|
186667
|
-
return { ...row, cells: newCells };
|
|
186668
|
-
});
|
|
186669
|
-
return { ...table2, tableData: { ...tableData, rows: newRows } };
|
|
186670
|
-
});
|
|
186671
|
-
}
|
|
186672
|
-
function buildInitialGuides(presentationGuides, firstSlideGuides) {
|
|
186673
|
-
const guides = [];
|
|
186674
|
-
if (presentationGuides) {
|
|
186675
|
-
for (const g2 of presentationGuides) {
|
|
186676
|
-
guides.push({
|
|
186677
|
-
id: g2.id,
|
|
186678
|
-
axis: g2.orientation === "horz" ? "h" : "v",
|
|
186679
|
-
position: guideEmuToPx(g2.positionEmu)
|
|
186680
|
-
});
|
|
186681
|
-
}
|
|
186682
|
-
}
|
|
186683
|
-
if (firstSlideGuides) {
|
|
186684
|
-
for (const g2 of firstSlideGuides) {
|
|
186685
|
-
guides.push({
|
|
186686
|
-
id: g2.id,
|
|
186687
|
-
axis: g2.orientation === "horz" ? "h" : "v",
|
|
186688
|
-
position: guideEmuToPx(g2.positionEmu)
|
|
186689
|
-
});
|
|
186690
|
-
}
|
|
186691
|
-
}
|
|
186692
|
-
return guides;
|
|
186693
|
-
}
|
|
186694
|
-
async function resolveMediaElementSource(mediaElement, handler) {
|
|
186695
|
-
const mediaPath = mediaElement.mediaPath;
|
|
186696
|
-
if (!mediaPath) {
|
|
186697
|
-
return { mediaPath: void 0, url: void 0, isBlobUrl: false, missing: true };
|
|
186698
|
-
}
|
|
186699
|
-
if (isExternalUrl(mediaPath)) {
|
|
186700
|
-
return { mediaPath, url: mediaPath, isBlobUrl: false, missing: false };
|
|
186701
|
-
}
|
|
186702
|
-
try {
|
|
186703
|
-
const isAudioVideo = mediaElement.mediaType === "audio" || mediaElement.mediaType === "video";
|
|
186704
|
-
if (isAudioVideo) {
|
|
186705
|
-
const arrayBuffer = await handler.getMediaArrayBuffer(mediaPath);
|
|
186706
|
-
if (!arrayBuffer) {
|
|
186707
|
-
return { mediaPath, url: void 0, isBlobUrl: false, missing: true };
|
|
186708
|
-
}
|
|
186709
|
-
const mimeType = mediaElement.mediaMimeType || "application/octet-stream";
|
|
186710
|
-
const blobUrl = URL.createObjectURL(new Blob([arrayBuffer], { type: mimeType }));
|
|
186711
|
-
return { mediaPath, url: blobUrl, isBlobUrl: true, missing: false };
|
|
186712
|
-
}
|
|
186713
|
-
const dataUrl = await handler.getImageData(mediaPath);
|
|
186714
|
-
if (!dataUrl) {
|
|
186715
|
-
return { mediaPath, url: void 0, isBlobUrl: false, missing: true };
|
|
186716
|
-
}
|
|
186717
|
-
return { mediaPath, url: dataUrl, isBlobUrl: false, missing: false };
|
|
186718
|
-
} catch {
|
|
186719
|
-
return { mediaPath, url: void 0, isBlobUrl: false, missing: true };
|
|
186720
|
-
}
|
|
186721
|
-
}
|
|
186722
|
-
var TABLE_STYLE_FILL_KEYS = [
|
|
186723
|
-
"wholeTblFill",
|
|
186724
|
-
"band1HFill",
|
|
186725
|
-
"band2HFill",
|
|
186726
|
-
"band1VFill",
|
|
186727
|
-
"band2VFill",
|
|
186728
|
-
"lastColFill",
|
|
186729
|
-
"firstColFill",
|
|
186730
|
-
"lastRowFill",
|
|
186731
|
-
"seCellFill",
|
|
186732
|
-
"swCellFill",
|
|
186733
|
-
"firstRowFill",
|
|
186734
|
-
"neCellFill",
|
|
186735
|
-
"nwCellFill"
|
|
186736
|
-
];
|
|
186737
|
-
function isExternalUrl2(path) {
|
|
186738
|
-
return path.startsWith("http://") || path.startsWith("https://") || path.startsWith("data:") || path.startsWith("blob:");
|
|
186739
|
-
}
|
|
186740
|
-
function collectTableStyleImagePaths(tableStyleMap) {
|
|
186741
|
-
const paths = /* @__PURE__ */ new Set();
|
|
186742
|
-
const refs = [];
|
|
186743
|
-
if (!tableStyleMap) {
|
|
186744
|
-
return { paths, refs };
|
|
186745
|
-
}
|
|
186746
|
-
for (const [styleId, entry5] of Object.entries(tableStyleMap)) {
|
|
186747
|
-
for (const fillKey of TABLE_STYLE_FILL_KEYS) {
|
|
186748
|
-
const fill = entry5[fillKey];
|
|
186749
|
-
const path = fill?.image?.path;
|
|
186750
|
-
if (path && !fill?.image?.data && !isExternalUrl2(path)) {
|
|
186751
|
-
paths.add(path);
|
|
186752
|
-
refs.push({ styleId, fillKey, path });
|
|
186753
|
-
}
|
|
186754
|
-
}
|
|
186755
|
-
}
|
|
186756
|
-
return { paths, refs };
|
|
186757
|
-
}
|
|
186758
|
-
function applyTableStyleImagePatches(tableStyleMap, resolvedMap, refs) {
|
|
186759
|
-
const patchesByStyleId = /* @__PURE__ */ new Map();
|
|
186760
|
-
for (const ref of refs) {
|
|
186761
|
-
const url = resolvedMap.get(ref.path);
|
|
186762
|
-
if (!url) {
|
|
186763
|
-
continue;
|
|
186764
|
-
}
|
|
186765
|
-
const list2 = patchesByStyleId.get(ref.styleId) ?? [];
|
|
186766
|
-
list2.push({ fillKey: ref.fillKey, url });
|
|
186767
|
-
patchesByStyleId.set(ref.styleId, list2);
|
|
186768
|
-
}
|
|
186769
|
-
if (patchesByStyleId.size === 0) {
|
|
186770
|
-
return tableStyleMap;
|
|
186771
|
-
}
|
|
186772
|
-
const next = { ...tableStyleMap };
|
|
186773
|
-
for (const [styleId, patches] of patchesByStyleId) {
|
|
186774
|
-
const entry5 = next[styleId];
|
|
186775
|
-
if (!entry5) {
|
|
186776
|
-
continue;
|
|
186777
|
-
}
|
|
186778
|
-
const patchedEntry = { ...entry5 };
|
|
186779
|
-
for (const { fillKey, url } of patches) {
|
|
186780
|
-
const fill = patchedEntry[fillKey];
|
|
186781
|
-
if (!fill?.image) {
|
|
186782
|
-
continue;
|
|
186783
|
-
}
|
|
186784
|
-
patchedEntry[fillKey] = { ...fill, image: { ...fill.image, data: url } };
|
|
186785
|
-
}
|
|
186786
|
-
next[styleId] = patchedEntry;
|
|
186787
|
-
}
|
|
186788
|
-
return next;
|
|
186789
|
-
}
|
|
186790
|
-
function collectTextFillBlipPaths(slides) {
|
|
186791
|
-
const paths = /* @__PURE__ */ new Set();
|
|
186792
|
-
const refs = [];
|
|
186793
|
-
const walkElements = (elements) => {
|
|
186794
|
-
for (const el of elements) {
|
|
186795
|
-
if (hasTextProperties(el) && el.textSegments) {
|
|
186796
|
-
el.textSegments.forEach((segment, segmentIndex) => {
|
|
186797
|
-
const path = segment.style?.textFillBlipUrl;
|
|
186798
|
-
if (path && !isExternalUrl(path)) {
|
|
186799
|
-
paths.add(path);
|
|
186800
|
-
refs.push({ element: el, segmentIndex, path });
|
|
186801
|
-
}
|
|
186802
|
-
});
|
|
186803
|
-
}
|
|
186804
|
-
if (el.type === "group" && el.children?.length) {
|
|
186805
|
-
walkElements(el.children);
|
|
186806
|
-
}
|
|
186807
|
-
}
|
|
186808
|
-
};
|
|
186809
|
-
for (const slide of slides) {
|
|
186810
|
-
walkElements(slide.elements);
|
|
186811
|
-
}
|
|
186812
|
-
return { paths, refs };
|
|
186813
|
-
}
|
|
186814
|
-
function applyTextFillBlipPatches(elements, resolvedMap, refs) {
|
|
186815
|
-
const patchesByElementId = /* @__PURE__ */ new Map();
|
|
186816
|
-
for (const ref of refs) {
|
|
186817
|
-
const url = resolvedMap.get(ref.path);
|
|
186818
|
-
if (!url) {
|
|
186819
|
-
continue;
|
|
186820
|
-
}
|
|
186821
|
-
const list2 = patchesByElementId.get(ref.element.id) ?? [];
|
|
186822
|
-
list2.push({ segmentIndex: ref.segmentIndex, url });
|
|
186823
|
-
patchesByElementId.set(ref.element.id, list2);
|
|
186824
|
-
}
|
|
186825
|
-
if (patchesByElementId.size === 0) {
|
|
186826
|
-
return elements;
|
|
186827
|
-
}
|
|
186828
|
-
return walkAndPatchElements(elements, (el) => {
|
|
186829
|
-
const segmentPatches = patchesByElementId.get(el.id);
|
|
186830
|
-
if (!segmentPatches || !hasTextProperties(el) || !el.textSegments) {
|
|
186831
|
-
return el;
|
|
186832
|
-
}
|
|
186833
|
-
const newSegments = el.textSegments.map((segment, segmentIndex) => {
|
|
186834
|
-
const patch = segmentPatches.find((p) => p.segmentIndex === segmentIndex);
|
|
186835
|
-
if (!patch || !segment.style) {
|
|
186836
|
-
return segment;
|
|
186837
|
-
}
|
|
186838
|
-
return { ...segment, style: { ...segment.style, textFillBlipUrl: patch.url } };
|
|
186839
|
-
});
|
|
186840
|
-
return { ...el, textSegments: newSegments };
|
|
186841
|
-
});
|
|
186842
|
-
}
|
|
186843
|
-
async function resolveTableCellImageUrls(slides, getImageData) {
|
|
186844
|
-
const { paths, refs } = collectTableCellImagePaths(slides);
|
|
186845
|
-
if (paths.size === 0) {
|
|
186846
|
-
return slides;
|
|
186847
|
-
}
|
|
186848
|
-
const resolvedMap = /* @__PURE__ */ new Map();
|
|
186849
|
-
await Promise.all(
|
|
186850
|
-
Array.from(paths).map(async (path) => {
|
|
186851
|
-
try {
|
|
186852
|
-
const url = await getImageData(path);
|
|
186853
|
-
if (url) {
|
|
186854
|
-
resolvedMap.set(path, url);
|
|
186855
|
-
}
|
|
186856
|
-
} catch {
|
|
186857
|
-
}
|
|
186858
|
-
})
|
|
186859
|
-
);
|
|
186860
|
-
if (resolvedMap.size === 0) {
|
|
186861
|
-
return slides;
|
|
186862
|
-
}
|
|
186863
|
-
return slides.map((slide) => {
|
|
186864
|
-
const newElements = applyTableCellImagePatches(slide.elements, resolvedMap, refs);
|
|
186865
|
-
return newElements === slide.elements ? slide : { ...slide, elements: newElements };
|
|
186866
|
-
});
|
|
186867
|
-
}
|
|
186868
|
-
async function resolveTableStyleImageUrls(tableStyleMap, getImageData) {
|
|
186869
|
-
const { paths, refs } = collectTableStyleImagePaths(tableStyleMap);
|
|
186870
|
-
if (paths.size === 0 || !tableStyleMap) {
|
|
186871
|
-
return tableStyleMap;
|
|
186872
|
-
}
|
|
186873
|
-
const resolvedMap = /* @__PURE__ */ new Map();
|
|
186874
|
-
await Promise.all(
|
|
186875
|
-
Array.from(paths).map(async (path) => {
|
|
186876
|
-
try {
|
|
186877
|
-
const url = await getImageData(path);
|
|
186878
|
-
if (url) {
|
|
186879
|
-
resolvedMap.set(path, url);
|
|
186880
|
-
}
|
|
186881
|
-
} catch {
|
|
186882
|
-
}
|
|
186883
|
-
})
|
|
186884
|
-
);
|
|
186885
|
-
if (resolvedMap.size === 0) {
|
|
186886
|
-
return tableStyleMap;
|
|
186887
|
-
}
|
|
186888
|
-
return applyTableStyleImagePatches(tableStyleMap, resolvedMap, refs);
|
|
186889
|
-
}
|
|
186890
|
-
async function resolveTextFillBlipUrls(slides, getImageData) {
|
|
186891
|
-
const { paths, refs } = collectTextFillBlipPaths(slides);
|
|
186892
|
-
if (paths.size === 0) {
|
|
186893
|
-
return slides;
|
|
186894
|
-
}
|
|
186895
|
-
const resolvedMap = /* @__PURE__ */ new Map();
|
|
186896
|
-
await Promise.all(
|
|
186897
|
-
Array.from(paths).map(async (path) => {
|
|
186898
|
-
try {
|
|
186899
|
-
const url = await getImageData(path);
|
|
186900
|
-
if (url) {
|
|
186901
|
-
resolvedMap.set(path, url);
|
|
186902
|
-
}
|
|
186903
|
-
} catch {
|
|
186904
|
-
}
|
|
186905
|
-
})
|
|
186906
|
-
);
|
|
186907
|
-
if (resolvedMap.size === 0) {
|
|
186908
|
-
return slides;
|
|
186909
|
-
}
|
|
186910
|
-
return slides.map((slide) => {
|
|
186911
|
-
const newElements = applyTextFillBlipPatches(slide.elements, resolvedMap, refs);
|
|
186912
|
-
return newElements === slide.elements ? slide : { ...slide, elements: newElements };
|
|
186913
|
-
});
|
|
186914
|
-
}
|
|
186915
|
-
init_constants2();
|
|
186916
186458
|
function resolveLiveCustomGeometryPath(element) {
|
|
186917
186459
|
const el = element;
|
|
186918
186460
|
if (!el.pathData || !el.pathWidth || !el.pathHeight) {
|
|
@@ -196815,7 +196357,7 @@ function resolveAutoAdvanceDelayMs(slide, options) {
|
|
|
196815
196357
|
}
|
|
196816
196358
|
return advanceAfterMs;
|
|
196817
196359
|
}
|
|
196818
|
-
var PRESENTATION_INERT_CLICK_SELECTOR = 'a, button, input, select, textarea, video, audio, [data-pptx-action], [role="dialog"]';
|
|
196360
|
+
var PRESENTATION_INERT_CLICK_SELECTOR = 'a, button, input, select, textarea, video, audio, [data-pptx-action], [data-pptx-anim-trigger], [role="dialog"]';
|
|
196819
196361
|
function isInertMedia(node) {
|
|
196820
196362
|
return (node.tagName === "VIDEO" || node.tagName === "AUDIO") && !node.controls;
|
|
196821
196363
|
}
|
|
@@ -199979,6 +199521,269 @@ function collectDiagramBuildInfo(timeline) {
|
|
|
199979
199521
|
}
|
|
199980
199522
|
return info;
|
|
199981
199523
|
}
|
|
199524
|
+
var CLICK_EVENTS = /* @__PURE__ */ new Set(["onClick", "onNext"]);
|
|
199525
|
+
var TIMENODE_EVENTS = /* @__PURE__ */ new Set([
|
|
199526
|
+
"onBegin",
|
|
199527
|
+
"onEnd",
|
|
199528
|
+
"begin",
|
|
199529
|
+
"end",
|
|
199530
|
+
"onStopAudio"
|
|
199531
|
+
]);
|
|
199532
|
+
function normalizeDelay(delay) {
|
|
199533
|
+
if (delay === void 0) {
|
|
199534
|
+
return { ms: 0, indefinite: false };
|
|
199535
|
+
}
|
|
199536
|
+
if (delay < 0) {
|
|
199537
|
+
return { ms: 0, indefinite: true };
|
|
199538
|
+
}
|
|
199539
|
+
return { ms: delay, indefinite: false };
|
|
199540
|
+
}
|
|
199541
|
+
function resolveEffectiveEndCondition(conditions) {
|
|
199542
|
+
if (!conditions || conditions.length === 0) {
|
|
199543
|
+
return void 0;
|
|
199544
|
+
}
|
|
199545
|
+
const result = {
|
|
199546
|
+
endsOnMouseOut: false,
|
|
199547
|
+
endsOnClick: false,
|
|
199548
|
+
indefinite: false
|
|
199549
|
+
};
|
|
199550
|
+
for (const cond of conditions) {
|
|
199551
|
+
const evt = cond.event;
|
|
199552
|
+
if (evt === "onMouseOut") {
|
|
199553
|
+
result.endsOnMouseOut = true;
|
|
199554
|
+
} else if (evt && CLICK_EVENTS.has(evt)) {
|
|
199555
|
+
result.endsOnClick = true;
|
|
199556
|
+
if (cond.targetShapeId) {
|
|
199557
|
+
result.clickTargetShapeId = cond.targetShapeId;
|
|
199558
|
+
}
|
|
199559
|
+
} else if (evt && TIMENODE_EVENTS.has(evt) && cond.targetTimeNodeId !== void 0) {
|
|
199560
|
+
result.endsWithTimeNodeId = cond.targetTimeNodeId;
|
|
199561
|
+
}
|
|
199562
|
+
const { ms, indefinite } = normalizeDelay(cond.delay);
|
|
199563
|
+
if (indefinite) {
|
|
199564
|
+
result.indefinite = true;
|
|
199565
|
+
} else if (ms > 0 && result.delayMs === void 0) {
|
|
199566
|
+
result.delayMs = ms;
|
|
199567
|
+
}
|
|
199568
|
+
}
|
|
199569
|
+
return result;
|
|
199570
|
+
}
|
|
199571
|
+
function resolveAnimationEnd(anim) {
|
|
199572
|
+
return resolveEffectiveEndCondition(anim.endConditions);
|
|
199573
|
+
}
|
|
199574
|
+
var HOVER_EVENTS = /* @__PURE__ */ new Set(["onMouseOver"]);
|
|
199575
|
+
function isInteractiveTrigger(trigger) {
|
|
199576
|
+
return trigger === "onClick" || trigger === "onShapeClick" || trigger === "onHover";
|
|
199577
|
+
}
|
|
199578
|
+
function classifyCondition(cond) {
|
|
199579
|
+
const evt = cond.event;
|
|
199580
|
+
if (evt && CLICK_EVENTS.has(evt)) {
|
|
199581
|
+
return "click";
|
|
199582
|
+
}
|
|
199583
|
+
if (evt && HOVER_EVENTS.has(evt)) {
|
|
199584
|
+
return "hover";
|
|
199585
|
+
}
|
|
199586
|
+
if (evt === "onMediaBookmark" && cond.bookmarkTarget) {
|
|
199587
|
+
return "bookmark";
|
|
199588
|
+
}
|
|
199589
|
+
if (evt && TIMENODE_EVENTS.has(evt)) {
|
|
199590
|
+
if (cond.targetTimeNodeId !== void 0) {
|
|
199591
|
+
return "timenode";
|
|
199592
|
+
}
|
|
199593
|
+
if (evt === "onStopAudio" && cond.targetShapeId !== void 0) {
|
|
199594
|
+
return "timenode";
|
|
199595
|
+
}
|
|
199596
|
+
}
|
|
199597
|
+
return "delay";
|
|
199598
|
+
}
|
|
199599
|
+
function resolveEffectiveStartCondition(conditions, fallbackTrigger) {
|
|
199600
|
+
const base = {
|
|
199601
|
+
trigger: fallbackTrigger,
|
|
199602
|
+
delayMs: 0,
|
|
199603
|
+
hasClickAlternative: false,
|
|
199604
|
+
hasHoverAlternative: false,
|
|
199605
|
+
indefinite: false,
|
|
199606
|
+
requiresInteraction: isInteractiveTrigger(fallbackTrigger)
|
|
199607
|
+
};
|
|
199608
|
+
if (!conditions || conditions.length === 0) {
|
|
199609
|
+
return base;
|
|
199610
|
+
}
|
|
199611
|
+
let timenode;
|
|
199612
|
+
let bookmarkCond;
|
|
199613
|
+
let delayCond;
|
|
199614
|
+
let clickCond;
|
|
199615
|
+
let hoverCond;
|
|
199616
|
+
for (const cond of conditions) {
|
|
199617
|
+
switch (classifyCondition(cond)) {
|
|
199618
|
+
case "timenode":
|
|
199619
|
+
if (!timenode) {
|
|
199620
|
+
timenode = cond;
|
|
199621
|
+
} else if (cond.targetTimeNodeId !== void 0) {
|
|
199622
|
+
if (timenode.targetTimeNodeId === void 0 || cond.targetTimeNodeId < timenode.targetTimeNodeId) {
|
|
199623
|
+
timenode = cond;
|
|
199624
|
+
}
|
|
199625
|
+
}
|
|
199626
|
+
break;
|
|
199627
|
+
case "bookmark":
|
|
199628
|
+
if (!bookmarkCond) {
|
|
199629
|
+
bookmarkCond = cond;
|
|
199630
|
+
}
|
|
199631
|
+
break;
|
|
199632
|
+
case "delay":
|
|
199633
|
+
if (!delayCond || (cond.delay ?? 0) < (delayCond.delay ?? 0)) {
|
|
199634
|
+
delayCond = cond;
|
|
199635
|
+
}
|
|
199636
|
+
break;
|
|
199637
|
+
case "click":
|
|
199638
|
+
if (!clickCond) {
|
|
199639
|
+
clickCond = cond;
|
|
199640
|
+
}
|
|
199641
|
+
break;
|
|
199642
|
+
case "hover":
|
|
199643
|
+
if (!hoverCond) {
|
|
199644
|
+
hoverCond = cond;
|
|
199645
|
+
}
|
|
199646
|
+
break;
|
|
199647
|
+
}
|
|
199648
|
+
}
|
|
199649
|
+
base.hasClickAlternative = clickCond !== void 0;
|
|
199650
|
+
base.hasHoverAlternative = hoverCond !== void 0;
|
|
199651
|
+
if (clickCond?.targetShapeId) {
|
|
199652
|
+
base.clickTargetShapeId = clickCond.targetShapeId;
|
|
199653
|
+
}
|
|
199654
|
+
if (timenode) {
|
|
199655
|
+
const { ms, indefinite } = normalizeDelay(timenode.delay);
|
|
199656
|
+
base.trigger = timenode.event === "onBegin" || timenode.event === "begin" ? "withPrevious" : "afterPrevious";
|
|
199657
|
+
base.delayMs = ms;
|
|
199658
|
+
base.indefinite = indefinite;
|
|
199659
|
+
base.dependsOnTimeNodeId = timenode.targetTimeNodeId;
|
|
199660
|
+
base.dependsOnShapeId = timenode.targetTimeNodeId === void 0 ? timenode.targetShapeId : void 0;
|
|
199661
|
+
base.dependsOnEvent = timenode.event;
|
|
199662
|
+
base.requiresInteraction = false;
|
|
199663
|
+
return base;
|
|
199664
|
+
}
|
|
199665
|
+
if (bookmarkCond?.bookmarkTarget) {
|
|
199666
|
+
base.trigger = "afterPrevious";
|
|
199667
|
+
base.delayMs = 0;
|
|
199668
|
+
base.dependsOnShapeId = bookmarkCond.bookmarkTarget.shapeId;
|
|
199669
|
+
base.dependsOnEvent = "onMediaBookmark";
|
|
199670
|
+
base.dependsOnBookmarkName = bookmarkCond.bookmarkTarget.bookmarkName;
|
|
199671
|
+
base.requiresInteraction = false;
|
|
199672
|
+
return base;
|
|
199673
|
+
}
|
|
199674
|
+
if (delayCond && (delayCond.delay ?? 0) !== 0) {
|
|
199675
|
+
const { ms, indefinite } = normalizeDelay(delayCond.delay);
|
|
199676
|
+
base.trigger = clickCond ? "onClick" : "afterDelay";
|
|
199677
|
+
base.delayMs = ms;
|
|
199678
|
+
base.indefinite = indefinite;
|
|
199679
|
+
base.requiresInteraction = indefinite;
|
|
199680
|
+
return base;
|
|
199681
|
+
}
|
|
199682
|
+
if (clickCond) {
|
|
199683
|
+
base.trigger = clickCond.targetShapeId ? "onShapeClick" : "onClick";
|
|
199684
|
+
base.requiresInteraction = true;
|
|
199685
|
+
return base;
|
|
199686
|
+
}
|
|
199687
|
+
if (hoverCond) {
|
|
199688
|
+
base.trigger = "onHover";
|
|
199689
|
+
base.requiresInteraction = true;
|
|
199690
|
+
return base;
|
|
199691
|
+
}
|
|
199692
|
+
if (delayCond) {
|
|
199693
|
+
base.trigger = fallbackTrigger;
|
|
199694
|
+
base.delayMs = 0;
|
|
199695
|
+
base.requiresInteraction = false;
|
|
199696
|
+
}
|
|
199697
|
+
return base;
|
|
199698
|
+
}
|
|
199699
|
+
function resolveAnimationStart(anim) {
|
|
199700
|
+
return resolveEffectiveStartCondition(anim.startConditions, anim.trigger ?? "onClick");
|
|
199701
|
+
}
|
|
199702
|
+
var BEZIER_SAMPLES = 8;
|
|
199703
|
+
function cubicAt(p0, c1, c2, p3, t) {
|
|
199704
|
+
const mt = 1 - t;
|
|
199705
|
+
return mt * mt * mt * p0 + 3 * mt * mt * t * c1 + 3 * mt * t * t * c2 + t * t * t * p3;
|
|
199706
|
+
}
|
|
199707
|
+
function allFinite(values) {
|
|
199708
|
+
return values.every((v) => Number.isFinite(v));
|
|
199709
|
+
}
|
|
199710
|
+
function parseMotionPathPoints(motionPath) {
|
|
199711
|
+
const tokens = motionPath.match(/[MLCZmlcz]|-?\d*\.?\d+(?:[eE][-+]?\d+)?/gu);
|
|
199712
|
+
if (!tokens) {
|
|
199713
|
+
return [];
|
|
199714
|
+
}
|
|
199715
|
+
const points4 = [];
|
|
199716
|
+
let curX = 0;
|
|
199717
|
+
let curY = 0;
|
|
199718
|
+
let startX = 0;
|
|
199719
|
+
let startY = 0;
|
|
199720
|
+
let i2 = 0;
|
|
199721
|
+
let cmd = "";
|
|
199722
|
+
const nextNum = () => Number(tokens[i2++]);
|
|
199723
|
+
const push2 = (x, y) => {
|
|
199724
|
+
points4.push({ x: x * 100, y: y * 100 });
|
|
199725
|
+
};
|
|
199726
|
+
while (i2 < tokens.length) {
|
|
199727
|
+
const tok = tokens[i2];
|
|
199728
|
+
if (/^[MLCZmlcz]$/u.test(tok)) {
|
|
199729
|
+
cmd = tok;
|
|
199730
|
+
i2++;
|
|
199731
|
+
if (cmd === "Z" || cmd === "z") {
|
|
199732
|
+
curX = startX;
|
|
199733
|
+
curY = startY;
|
|
199734
|
+
}
|
|
199735
|
+
continue;
|
|
199736
|
+
}
|
|
199737
|
+
const rel = cmd === cmd.toLowerCase();
|
|
199738
|
+
const upper = cmd.toUpperCase();
|
|
199739
|
+
if (upper === "M" || upper === "L") {
|
|
199740
|
+
let x = nextNum();
|
|
199741
|
+
let y = nextNum();
|
|
199742
|
+
if (!allFinite([x, y])) {
|
|
199743
|
+
break;
|
|
199744
|
+
}
|
|
199745
|
+
if (rel) {
|
|
199746
|
+
x += curX;
|
|
199747
|
+
y += curY;
|
|
199748
|
+
}
|
|
199749
|
+
curX = x;
|
|
199750
|
+
curY = y;
|
|
199751
|
+
if (upper === "M") {
|
|
199752
|
+
startX = x;
|
|
199753
|
+
startY = y;
|
|
199754
|
+
cmd = rel ? "l" : "L";
|
|
199755
|
+
}
|
|
199756
|
+
push2(x, y);
|
|
199757
|
+
} else if (upper === "C") {
|
|
199758
|
+
let c1x = nextNum();
|
|
199759
|
+
let c1y = nextNum();
|
|
199760
|
+
let c2x = nextNum();
|
|
199761
|
+
let c2y = nextNum();
|
|
199762
|
+
let ex = nextNum();
|
|
199763
|
+
let ey = nextNum();
|
|
199764
|
+
if (!allFinite([c1x, c1y, c2x, c2y, ex, ey])) {
|
|
199765
|
+
break;
|
|
199766
|
+
}
|
|
199767
|
+
if (rel) {
|
|
199768
|
+
c1x += curX;
|
|
199769
|
+
c1y += curY;
|
|
199770
|
+
c2x += curX;
|
|
199771
|
+
c2y += curY;
|
|
199772
|
+
ex += curX;
|
|
199773
|
+
ey += curY;
|
|
199774
|
+
}
|
|
199775
|
+
for (let s = 1; s <= BEZIER_SAMPLES; s++) {
|
|
199776
|
+
const t = s / BEZIER_SAMPLES;
|
|
199777
|
+
push2(cubicAt(curX, c1x, c2x, ex, t), cubicAt(curY, c1y, c2y, ey, t));
|
|
199778
|
+
}
|
|
199779
|
+
curX = ex;
|
|
199780
|
+
curY = ey;
|
|
199781
|
+
} else {
|
|
199782
|
+
i2++;
|
|
199783
|
+
}
|
|
199784
|
+
}
|
|
199785
|
+
return points4;
|
|
199786
|
+
}
|
|
199982
199787
|
var BACKGROUND_ANIMATION_ID_SUFFIX = "::pptx-bg";
|
|
199983
199788
|
function resolveAnimationTargetId(animation) {
|
|
199984
199789
|
const targetId = (animation.target?.type === "shape" ? animation.target.subShapeId : void 0) ?? animation.targetId ?? "";
|
|
@@ -199987,6 +199792,42 @@ function resolveAnimationTargetId(animation) {
|
|
|
199987
199792
|
}
|
|
199988
199793
|
return targetId;
|
|
199989
199794
|
}
|
|
199795
|
+
var DEFAULT_SLIDE_ASPECT = 16 / 9;
|
|
199796
|
+
function pacedFractions(points4, aspect = DEFAULT_SLIDE_ASPECT) {
|
|
199797
|
+
const lengths = [0];
|
|
199798
|
+
let total = 0;
|
|
199799
|
+
for (let i2 = 1; i2 < points4.length; i2++) {
|
|
199800
|
+
const dx = (points4[i2].x - points4[i2 - 1].x) * aspect;
|
|
199801
|
+
const dy = points4[i2].y - points4[i2 - 1].y;
|
|
199802
|
+
total += Math.hypot(dx, dy);
|
|
199803
|
+
lengths.push(total);
|
|
199804
|
+
}
|
|
199805
|
+
if (total <= 0) {
|
|
199806
|
+
return points4.map((_, i2) => points4.length > 1 ? i2 / (points4.length - 1) : 0);
|
|
199807
|
+
}
|
|
199808
|
+
return lengths.map((length) => length / total);
|
|
199809
|
+
}
|
|
199810
|
+
function pacedPointAt(points4, fractions, progress) {
|
|
199811
|
+
if (points4.length === 0) {
|
|
199812
|
+
return { x: 0, y: 0 };
|
|
199813
|
+
}
|
|
199814
|
+
if (points4.length === 1 || progress <= 0) {
|
|
199815
|
+
return points4[0];
|
|
199816
|
+
}
|
|
199817
|
+
if (progress >= 1) {
|
|
199818
|
+
return points4[points4.length - 1];
|
|
199819
|
+
}
|
|
199820
|
+
let i2 = 1;
|
|
199821
|
+
while (i2 < points4.length - 1 && fractions[i2] < progress) {
|
|
199822
|
+
i2++;
|
|
199823
|
+
}
|
|
199824
|
+
const span = fractions[i2] - fractions[i2 - 1];
|
|
199825
|
+
const ratio2 = span > 0 ? (progress - fractions[i2 - 1]) / span : 1;
|
|
199826
|
+
return {
|
|
199827
|
+
x: points4[i2 - 1].x + (points4[i2].x - points4[i2 - 1].x) * ratio2,
|
|
199828
|
+
y: points4[i2 - 1].y + (points4[i2].y - points4[i2 - 1].y) * ratio2
|
|
199829
|
+
};
|
|
199830
|
+
}
|
|
199990
199831
|
var IDENT_RE = /^[#a-zA-Z_$][a-zA-Z0-9_]*/u;
|
|
199991
199832
|
var NUMBER_RE = /^\d+(\.\d+)?|^\.\d+/u;
|
|
199992
199833
|
function tokenize2(formula) {
|
|
@@ -200521,127 +200362,6 @@ function createAttributeTransformModel(anim, box) {
|
|
|
200521
200362
|
}
|
|
200522
200363
|
};
|
|
200523
200364
|
}
|
|
200524
|
-
var BEZIER_SAMPLES = 8;
|
|
200525
|
-
function cubicAt(p0, c1, c2, p3, t) {
|
|
200526
|
-
const mt = 1 - t;
|
|
200527
|
-
return mt * mt * mt * p0 + 3 * mt * mt * t * c1 + 3 * mt * t * t * c2 + t * t * t * p3;
|
|
200528
|
-
}
|
|
200529
|
-
function allFinite(values) {
|
|
200530
|
-
return values.every((v) => Number.isFinite(v));
|
|
200531
|
-
}
|
|
200532
|
-
function parseMotionPathPoints(motionPath) {
|
|
200533
|
-
const tokens = motionPath.match(/[MLCZmlcz]|-?\d*\.?\d+(?:[eE][-+]?\d+)?/gu);
|
|
200534
|
-
if (!tokens) {
|
|
200535
|
-
return [];
|
|
200536
|
-
}
|
|
200537
|
-
const points4 = [];
|
|
200538
|
-
let curX = 0;
|
|
200539
|
-
let curY = 0;
|
|
200540
|
-
let startX = 0;
|
|
200541
|
-
let startY = 0;
|
|
200542
|
-
let i2 = 0;
|
|
200543
|
-
let cmd = "";
|
|
200544
|
-
const nextNum = () => Number(tokens[i2++]);
|
|
200545
|
-
const push2 = (x, y) => {
|
|
200546
|
-
points4.push({ x: x * 100, y: y * 100 });
|
|
200547
|
-
};
|
|
200548
|
-
while (i2 < tokens.length) {
|
|
200549
|
-
const tok = tokens[i2];
|
|
200550
|
-
if (/^[MLCZmlcz]$/u.test(tok)) {
|
|
200551
|
-
cmd = tok;
|
|
200552
|
-
i2++;
|
|
200553
|
-
if (cmd === "Z" || cmd === "z") {
|
|
200554
|
-
curX = startX;
|
|
200555
|
-
curY = startY;
|
|
200556
|
-
}
|
|
200557
|
-
continue;
|
|
200558
|
-
}
|
|
200559
|
-
const rel = cmd === cmd.toLowerCase();
|
|
200560
|
-
const upper = cmd.toUpperCase();
|
|
200561
|
-
if (upper === "M" || upper === "L") {
|
|
200562
|
-
let x = nextNum();
|
|
200563
|
-
let y = nextNum();
|
|
200564
|
-
if (!allFinite([x, y])) {
|
|
200565
|
-
break;
|
|
200566
|
-
}
|
|
200567
|
-
if (rel) {
|
|
200568
|
-
x += curX;
|
|
200569
|
-
y += curY;
|
|
200570
|
-
}
|
|
200571
|
-
curX = x;
|
|
200572
|
-
curY = y;
|
|
200573
|
-
if (upper === "M") {
|
|
200574
|
-
startX = x;
|
|
200575
|
-
startY = y;
|
|
200576
|
-
cmd = rel ? "l" : "L";
|
|
200577
|
-
}
|
|
200578
|
-
push2(x, y);
|
|
200579
|
-
} else if (upper === "C") {
|
|
200580
|
-
let c1x = nextNum();
|
|
200581
|
-
let c1y = nextNum();
|
|
200582
|
-
let c2x = nextNum();
|
|
200583
|
-
let c2y = nextNum();
|
|
200584
|
-
let ex = nextNum();
|
|
200585
|
-
let ey = nextNum();
|
|
200586
|
-
if (!allFinite([c1x, c1y, c2x, c2y, ex, ey])) {
|
|
200587
|
-
break;
|
|
200588
|
-
}
|
|
200589
|
-
if (rel) {
|
|
200590
|
-
c1x += curX;
|
|
200591
|
-
c1y += curY;
|
|
200592
|
-
c2x += curX;
|
|
200593
|
-
c2y += curY;
|
|
200594
|
-
ex += curX;
|
|
200595
|
-
ey += curY;
|
|
200596
|
-
}
|
|
200597
|
-
for (let s = 1; s <= BEZIER_SAMPLES; s++) {
|
|
200598
|
-
const t = s / BEZIER_SAMPLES;
|
|
200599
|
-
push2(cubicAt(curX, c1x, c2x, ex, t), cubicAt(curY, c1y, c2y, ey, t));
|
|
200600
|
-
}
|
|
200601
|
-
curX = ex;
|
|
200602
|
-
curY = ey;
|
|
200603
|
-
} else {
|
|
200604
|
-
i2++;
|
|
200605
|
-
}
|
|
200606
|
-
}
|
|
200607
|
-
return points4;
|
|
200608
|
-
}
|
|
200609
|
-
var DEFAULT_SLIDE_ASPECT = 16 / 9;
|
|
200610
|
-
function pacedFractions(points4, aspect = DEFAULT_SLIDE_ASPECT) {
|
|
200611
|
-
const lengths = [0];
|
|
200612
|
-
let total = 0;
|
|
200613
|
-
for (let i2 = 1; i2 < points4.length; i2++) {
|
|
200614
|
-
const dx = (points4[i2].x - points4[i2 - 1].x) * aspect;
|
|
200615
|
-
const dy = points4[i2].y - points4[i2 - 1].y;
|
|
200616
|
-
total += Math.hypot(dx, dy);
|
|
200617
|
-
lengths.push(total);
|
|
200618
|
-
}
|
|
200619
|
-
if (total <= 0) {
|
|
200620
|
-
return points4.map((_, i2) => points4.length > 1 ? i2 / (points4.length - 1) : 0);
|
|
200621
|
-
}
|
|
200622
|
-
return lengths.map((length) => length / total);
|
|
200623
|
-
}
|
|
200624
|
-
function pacedPointAt(points4, fractions, progress) {
|
|
200625
|
-
if (points4.length === 0) {
|
|
200626
|
-
return { x: 0, y: 0 };
|
|
200627
|
-
}
|
|
200628
|
-
if (points4.length === 1 || progress <= 0) {
|
|
200629
|
-
return points4[0];
|
|
200630
|
-
}
|
|
200631
|
-
if (progress >= 1) {
|
|
200632
|
-
return points4[points4.length - 1];
|
|
200633
|
-
}
|
|
200634
|
-
let i2 = 1;
|
|
200635
|
-
while (i2 < points4.length - 1 && fractions[i2] < progress) {
|
|
200636
|
-
i2++;
|
|
200637
|
-
}
|
|
200638
|
-
const span = fractions[i2] - fractions[i2 - 1];
|
|
200639
|
-
const ratio2 = span > 0 ? (progress - fractions[i2 - 1]) / span : 1;
|
|
200640
|
-
return {
|
|
200641
|
-
x: points4[i2 - 1].x + (points4[i2].x - points4[i2 - 1].x) * ratio2,
|
|
200642
|
-
y: points4[i2 - 1].y + (points4[i2].y - points4[i2 - 1].y) * ratio2
|
|
200643
|
-
};
|
|
200644
|
-
}
|
|
200645
200365
|
function slideOffset(percent4, axis, origin) {
|
|
200646
200366
|
const fallback = axis === "w" ? "1280px" : "720px";
|
|
200647
200367
|
const varName = origin === "parent" ? `--pptx-parent-${axis}` : `--pptx-slide-${axis}`;
|
|
@@ -200788,6 +200508,217 @@ function buildTransformKeyframes(anim, uid, prefixes, box) {
|
|
|
200788
200508
|
${lines.join("\n")}
|
|
200789
200509
|
}` };
|
|
200790
200510
|
}
|
|
200511
|
+
function buildChainedMotionKeyframes(anim, uid, prefixes, box) {
|
|
200512
|
+
const chain2 = anim.motionChain;
|
|
200513
|
+
if (!chain2 || chain2.length < 2) {
|
|
200514
|
+
return void 0;
|
|
200515
|
+
}
|
|
200516
|
+
const totalMs = anim.durationMs ?? chain2.reduce((sum, segment) => sum + segment.durationMs, 0);
|
|
200517
|
+
if (totalMs <= 0) {
|
|
200518
|
+
return void 0;
|
|
200519
|
+
}
|
|
200520
|
+
const keyframes = [];
|
|
200521
|
+
for (const segment of chain2) {
|
|
200522
|
+
const fractions = pacedFractions(segment.points, box?.slideAspect);
|
|
200523
|
+
const segStartPct = segment.startMs / totalMs * 100;
|
|
200524
|
+
const segSpanPct = segment.durationMs / totalMs * 100;
|
|
200525
|
+
for (let j = 0; j < segment.points.length; j++) {
|
|
200526
|
+
const fraction = fractions[j];
|
|
200527
|
+
const point2 = pacedPointAt(segment.points, fractions, fraction);
|
|
200528
|
+
const progress = Number((segStartPct + fraction * segSpanPct).toFixed(4));
|
|
200529
|
+
const transform6 = `transform: translate(${slideOffset(point2.x, "w", anim.motionOrigin)}, ${slideOffset(point2.y, "h", anim.motionOrigin)})`;
|
|
200530
|
+
const easing = j === 0 ? segment.easing : void 0;
|
|
200531
|
+
const previous = keyframes[keyframes.length - 1];
|
|
200532
|
+
if (previous && previous.progress === progress) {
|
|
200533
|
+
previous.transform = transform6;
|
|
200534
|
+
previous.easing = easing ?? previous.easing;
|
|
200535
|
+
continue;
|
|
200536
|
+
}
|
|
200537
|
+
keyframes.push({ progress, transform: transform6, easing });
|
|
200538
|
+
}
|
|
200539
|
+
}
|
|
200540
|
+
const hideUntilStart = anim.motionChainHideUntilStart === true;
|
|
200541
|
+
if (hideUntilStart && keyframes.length > 0) {
|
|
200542
|
+
keyframes.splice(1, 0, { ...keyframes[0], progress: 0.01 });
|
|
200543
|
+
}
|
|
200544
|
+
const lines = keyframes.map((keyframe, index) => {
|
|
200545
|
+
const easing = keyframe.easing ? `animation-timing-function: ${keyframe.easing}; ` : "";
|
|
200546
|
+
const opacity2 = hideUntilStart && index === 0 ? "opacity: 0; " : hideUntilStart && index === 1 ? "opacity: 1; " : "";
|
|
200547
|
+
return ` ${formatNumber(keyframe.progress, 2)}% { ${easing}${opacity2}${keyframe.transform}; }`;
|
|
200548
|
+
});
|
|
200549
|
+
const name = `${prefixes.transform}-${uid}${hideUntilStart ? "-visibility" : ""}`;
|
|
200550
|
+
return {
|
|
200551
|
+
keyframeName: name,
|
|
200552
|
+
css: `@keyframes ${name} {
|
|
200553
|
+
${lines.join("\n")}
|
|
200554
|
+
}`
|
|
200555
|
+
};
|
|
200556
|
+
}
|
|
200557
|
+
function isChainedMotionAnimation(anim) {
|
|
200558
|
+
return anim.motionChain !== void 0;
|
|
200559
|
+
}
|
|
200560
|
+
function isChainedMotionSwallowed(anim) {
|
|
200561
|
+
return anim.motionChainSwallowed === true;
|
|
200562
|
+
}
|
|
200563
|
+
function hasChainBlockingExtras(anim) {
|
|
200564
|
+
return Boolean(
|
|
200565
|
+
anim.rotationBy !== void 0 || anim.rotationFrom !== void 0 || anim.rotationTo !== void 0 || anim.scaleByX !== void 0 || anim.scaleByY !== void 0 || anim.scaleFromX !== void 0 || anim.scaleFromY !== void 0 || anim.scaleToX !== void 0 || anim.scaleToY !== void 0 || anim.colorAnimation || anim.attributeAnimations?.length || anim.setAnimations?.length || anim.repeatCount !== void 0 || anim.repeatDurMs !== void 0 || anim.autoReverse || anim.graphicBuildProperties || anim.iterate || anim.speedPct !== void 0 || anim.afterAnimationAction || anim.startConditions?.some(
|
|
200566
|
+
(condition) => condition.targetTimeNodeId !== void 0 || condition.event !== void 0 && condition.event !== "onClick" && condition.event !== "onMouseOver"
|
|
200567
|
+
)
|
|
200568
|
+
);
|
|
200569
|
+
}
|
|
200570
|
+
function authoredStartMs(anim) {
|
|
200571
|
+
return (anim.parGroupDelayMs ?? 0) + Math.max(anim.delayMs ?? 0, anim.triggerDelayMs ?? 0);
|
|
200572
|
+
}
|
|
200573
|
+
function mergeChainedMotionPathAnims(anims) {
|
|
200574
|
+
const candidates = /* @__PURE__ */ new Map();
|
|
200575
|
+
let clickGroup = 0;
|
|
200576
|
+
const clickGroups = [];
|
|
200577
|
+
for (let index = 0; index < anims.length; index++) {
|
|
200578
|
+
const anim = anims[index];
|
|
200579
|
+
if (resolveAnimationStart(anim).trigger === "onClick") {
|
|
200580
|
+
clickGroup++;
|
|
200581
|
+
}
|
|
200582
|
+
clickGroups[index] = clickGroup;
|
|
200583
|
+
if (anim.presetClass !== "path" || !anim.motionPath || anim.parGroupIndex === void 0 || !Number.isFinite(anim.parGroupDelayMs) || !Number.isFinite(anim.durationMs) || (anim.durationMs ?? 0) <= 0) {
|
|
200584
|
+
continue;
|
|
200585
|
+
}
|
|
200586
|
+
if (hasChainBlockingExtras(anim)) {
|
|
200587
|
+
continue;
|
|
200588
|
+
}
|
|
200589
|
+
const targetId = resolveAnimationTargetId(anim);
|
|
200590
|
+
if (!targetId) {
|
|
200591
|
+
continue;
|
|
200592
|
+
}
|
|
200593
|
+
const startMs = authoredStartMs(anim);
|
|
200594
|
+
const candidateKey = JSON.stringify([
|
|
200595
|
+
clickGroup,
|
|
200596
|
+
anim.triggerShapeId,
|
|
200597
|
+
targetId,
|
|
200598
|
+
anim.motionOrigin
|
|
200599
|
+
]);
|
|
200600
|
+
const run = candidates.get(candidateKey) ?? [];
|
|
200601
|
+
run.push({ index, anim, startMs, endMs: startMs + (anim.durationMs ?? 0) });
|
|
200602
|
+
candidates.set(candidateKey, run);
|
|
200603
|
+
}
|
|
200604
|
+
const swallowedIndices = /* @__PURE__ */ new Set();
|
|
200605
|
+
const replacements = /* @__PURE__ */ new Map();
|
|
200606
|
+
for (const [, run] of candidates) {
|
|
200607
|
+
if (run.length < 2) {
|
|
200608
|
+
continue;
|
|
200609
|
+
}
|
|
200610
|
+
const ordered4 = [...run].sort((left, right) => left.startMs - right.startMs);
|
|
200611
|
+
if (ordered4.slice(1).some((member) => member.anim.trigger === "onClick")) {
|
|
200612
|
+
continue;
|
|
200613
|
+
}
|
|
200614
|
+
if (ordered4.some((member, i2) => i2 > 0 && member.startMs < ordered4[i2 - 1].endMs)) {
|
|
200615
|
+
continue;
|
|
200616
|
+
}
|
|
200617
|
+
const segments = [];
|
|
200618
|
+
const points4 = [];
|
|
200619
|
+
const windowStartMs = ordered4[0].startMs;
|
|
200620
|
+
let windowEndMs = ordered4[0].endMs;
|
|
200621
|
+
let viable = true;
|
|
200622
|
+
for (const member of ordered4) {
|
|
200623
|
+
const segmentPoints = parseMotionPathPoints(member.anim.motionPath ?? "");
|
|
200624
|
+
if (segmentPoints.length < 2) {
|
|
200625
|
+
viable = false;
|
|
200626
|
+
break;
|
|
200627
|
+
}
|
|
200628
|
+
points4.push(...segmentPoints);
|
|
200629
|
+
segments.push({
|
|
200630
|
+
points: segmentPoints,
|
|
200631
|
+
startMs: member.startMs - windowStartMs,
|
|
200632
|
+
durationMs: member.anim.durationMs ?? 0,
|
|
200633
|
+
easing: cssEasingForAccelDecel(member.anim.accel, member.anim.decel)
|
|
200634
|
+
});
|
|
200635
|
+
windowEndMs = Math.max(windowEndMs, member.endMs);
|
|
200636
|
+
}
|
|
200637
|
+
if (!viable) {
|
|
200638
|
+
continue;
|
|
200639
|
+
}
|
|
200640
|
+
const head = ordered4[0];
|
|
200641
|
+
const windowStartMsAbs = windowStartMs;
|
|
200642
|
+
const hasPreChainExit = anims.some(
|
|
200643
|
+
(other, index) => index < head.index && clickGroups[index] === clickGroups[head.index] && other !== head.anim && other.presetClass === "exit" && resolveAnimationTargetId(other) === resolveAnimationTargetId(head.anim) && authoredStartMs(other) + (other.durationMs ?? 0) <= windowStartMsAbs
|
|
200644
|
+
);
|
|
200645
|
+
const synthetic = {
|
|
200646
|
+
...head.anim,
|
|
200647
|
+
motionPath: pointsToPathString(points4),
|
|
200648
|
+
// The window includes any authored gaps between segments.
|
|
200649
|
+
durationMs: Math.max(1, windowEndMs - windowStartMs),
|
|
200650
|
+
motionChain: segments,
|
|
200651
|
+
motionChainHideUntilStart: hasPreChainExit
|
|
200652
|
+
};
|
|
200653
|
+
replacements.set(head.index, synthetic);
|
|
200654
|
+
for (const member of ordered4.slice(1)) {
|
|
200655
|
+
swallowedIndices.add(member.index);
|
|
200656
|
+
}
|
|
200657
|
+
}
|
|
200658
|
+
if (replacements.size === 0) {
|
|
200659
|
+
return [...anims];
|
|
200660
|
+
}
|
|
200661
|
+
return anims.map((anim, index) => {
|
|
200662
|
+
if (swallowedIndices.has(index)) {
|
|
200663
|
+
return { ...anim, motionChainSwallowed: true };
|
|
200664
|
+
}
|
|
200665
|
+
return replacements.get(index) ?? anim;
|
|
200666
|
+
});
|
|
200667
|
+
}
|
|
200668
|
+
function pointsToPathString(points4) {
|
|
200669
|
+
return points4.map((point2, index) => `${index === 0 ? "M" : "L"} ${point2.x / 100} ${point2.y / 100} `).join("");
|
|
200670
|
+
}
|
|
200671
|
+
function cssKeyframeName(effect) {
|
|
200672
|
+
return `pptx-${effect}`;
|
|
200673
|
+
}
|
|
200674
|
+
function defaultDuration(presetClass) {
|
|
200675
|
+
switch (presetClass) {
|
|
200676
|
+
case "entr":
|
|
200677
|
+
return 500;
|
|
200678
|
+
case "exit":
|
|
200679
|
+
return 500;
|
|
200680
|
+
case "emph":
|
|
200681
|
+
return 800;
|
|
200682
|
+
case "path":
|
|
200683
|
+
return 1e3;
|
|
200684
|
+
default:
|
|
200685
|
+
return 500;
|
|
200686
|
+
}
|
|
200687
|
+
}
|
|
200688
|
+
function fillModeForClass(presetClass) {
|
|
200689
|
+
switch (presetClass) {
|
|
200690
|
+
case "entr":
|
|
200691
|
+
return "both";
|
|
200692
|
+
case "exit":
|
|
200693
|
+
return "forwards";
|
|
200694
|
+
case "emph":
|
|
200695
|
+
return "both";
|
|
200696
|
+
default:
|
|
200697
|
+
return "both";
|
|
200698
|
+
}
|
|
200699
|
+
}
|
|
200700
|
+
function finalizeClickGroup(steps, options) {
|
|
200701
|
+
let maxEnd = 0;
|
|
200702
|
+
for (const step of steps) {
|
|
200703
|
+
const end = step.delayMs + step.durationMs;
|
|
200704
|
+
if (end > maxEnd) {
|
|
200705
|
+
maxEnd = end;
|
|
200706
|
+
}
|
|
200707
|
+
}
|
|
200708
|
+
const group2 = { steps, totalDurationMs: maxEnd };
|
|
200709
|
+
for (const step of steps) {
|
|
200710
|
+
if (group2.seqConcurrent === void 0 && step.seqConcurrent !== void 0) {
|
|
200711
|
+
group2.seqConcurrent = step.seqConcurrent;
|
|
200712
|
+
}
|
|
200713
|
+
if (group2.seqNextAction === void 0 && step.seqNextAction !== void 0) {
|
|
200714
|
+
group2.seqNextAction = step.seqNextAction;
|
|
200715
|
+
}
|
|
200716
|
+
if (group2.seqPrevAction === void 0 && step.seqPrevAction !== void 0) {
|
|
200717
|
+
group2.seqPrevAction = step.seqPrevAction;
|
|
200718
|
+
}
|
|
200719
|
+
}
|
|
200720
|
+
return group2;
|
|
200721
|
+
}
|
|
200791
200722
|
function resolveEffect(anim, pixelateMosaic) {
|
|
200792
200723
|
const cls = anim.presetClass;
|
|
200793
200724
|
const id = anim.presetId;
|
|
@@ -200857,6 +200788,15 @@ function boxForAnimation(anim, renderContext) {
|
|
|
200857
200788
|
return targetId ? renderContext.getElementBox(targetId) : void 0;
|
|
200858
200789
|
}
|
|
200859
200790
|
function buildDynamicKeyframe(anim, uid, renderContext) {
|
|
200791
|
+
const chained = isChainedMotionAnimation(anim) ? buildChainedMotionKeyframes(
|
|
200792
|
+
anim,
|
|
200793
|
+
uid,
|
|
200794
|
+
TIMELINE_TRANSFORM_PREFIXES,
|
|
200795
|
+
boxForAnimation(anim, renderContext)
|
|
200796
|
+
) : void 0;
|
|
200797
|
+
if (chained) {
|
|
200798
|
+
return chained;
|
|
200799
|
+
}
|
|
200860
200800
|
const transform6 = buildTransformKeyframes(
|
|
200861
200801
|
anim,
|
|
200862
200802
|
uid,
|
|
@@ -200887,57 +200827,6 @@ function buildDynamicKeyframe(anim, uid, renderContext) {
|
|
|
200887
200827
|
}
|
|
200888
200828
|
return void 0;
|
|
200889
200829
|
}
|
|
200890
|
-
function cssKeyframeName(effect) {
|
|
200891
|
-
return `pptx-${effect}`;
|
|
200892
|
-
}
|
|
200893
|
-
function defaultDuration(presetClass) {
|
|
200894
|
-
switch (presetClass) {
|
|
200895
|
-
case "entr":
|
|
200896
|
-
return 500;
|
|
200897
|
-
case "exit":
|
|
200898
|
-
return 500;
|
|
200899
|
-
case "emph":
|
|
200900
|
-
return 800;
|
|
200901
|
-
case "path":
|
|
200902
|
-
return 1e3;
|
|
200903
|
-
default:
|
|
200904
|
-
return 500;
|
|
200905
|
-
}
|
|
200906
|
-
}
|
|
200907
|
-
function fillModeForClass(presetClass) {
|
|
200908
|
-
switch (presetClass) {
|
|
200909
|
-
case "entr":
|
|
200910
|
-
return "both";
|
|
200911
|
-
case "exit":
|
|
200912
|
-
return "forwards";
|
|
200913
|
-
case "emph":
|
|
200914
|
-
return "both";
|
|
200915
|
-
default:
|
|
200916
|
-
return "both";
|
|
200917
|
-
}
|
|
200918
|
-
}
|
|
200919
|
-
function finalizeClickGroup(steps, options) {
|
|
200920
|
-
let maxEnd = 0;
|
|
200921
|
-
for (const step of steps) {
|
|
200922
|
-
const end = step.delayMs + step.durationMs;
|
|
200923
|
-
if (end > maxEnd) {
|
|
200924
|
-
maxEnd = end;
|
|
200925
|
-
}
|
|
200926
|
-
}
|
|
200927
|
-
const group2 = { steps, totalDurationMs: maxEnd };
|
|
200928
|
-
for (const step of steps) {
|
|
200929
|
-
if (group2.seqConcurrent === void 0 && step.seqConcurrent !== void 0) {
|
|
200930
|
-
group2.seqConcurrent = step.seqConcurrent;
|
|
200931
|
-
}
|
|
200932
|
-
if (group2.seqNextAction === void 0 && step.seqNextAction !== void 0) {
|
|
200933
|
-
group2.seqNextAction = step.seqNextAction;
|
|
200934
|
-
}
|
|
200935
|
-
if (group2.seqPrevAction === void 0 && step.seqPrevAction !== void 0) {
|
|
200936
|
-
group2.seqPrevAction = step.seqPrevAction;
|
|
200937
|
-
}
|
|
200938
|
-
}
|
|
200939
|
-
return group2;
|
|
200940
|
-
}
|
|
200941
200830
|
function clamp015(value) {
|
|
200942
200831
|
return Math.max(0, Math.min(1, value));
|
|
200943
200832
|
}
|
|
@@ -201074,184 +200963,6 @@ function resolveEffectTiming(anim, baseDurationMs) {
|
|
|
201074
200963
|
holdEndState: shouldHoldEndState(anim)
|
|
201075
200964
|
};
|
|
201076
200965
|
}
|
|
201077
|
-
var CLICK_EVENTS = /* @__PURE__ */ new Set(["onClick", "onNext"]);
|
|
201078
|
-
var TIMENODE_EVENTS = /* @__PURE__ */ new Set([
|
|
201079
|
-
"onBegin",
|
|
201080
|
-
"onEnd",
|
|
201081
|
-
"begin",
|
|
201082
|
-
"end",
|
|
201083
|
-
"onStopAudio"
|
|
201084
|
-
]);
|
|
201085
|
-
function normalizeDelay(delay) {
|
|
201086
|
-
if (delay === void 0) {
|
|
201087
|
-
return { ms: 0, indefinite: false };
|
|
201088
|
-
}
|
|
201089
|
-
if (delay < 0) {
|
|
201090
|
-
return { ms: 0, indefinite: true };
|
|
201091
|
-
}
|
|
201092
|
-
return { ms: delay, indefinite: false };
|
|
201093
|
-
}
|
|
201094
|
-
function resolveEffectiveEndCondition(conditions) {
|
|
201095
|
-
if (!conditions || conditions.length === 0) {
|
|
201096
|
-
return void 0;
|
|
201097
|
-
}
|
|
201098
|
-
const result = {
|
|
201099
|
-
endsOnMouseOut: false,
|
|
201100
|
-
endsOnClick: false,
|
|
201101
|
-
indefinite: false
|
|
201102
|
-
};
|
|
201103
|
-
for (const cond of conditions) {
|
|
201104
|
-
const evt = cond.event;
|
|
201105
|
-
if (evt === "onMouseOut") {
|
|
201106
|
-
result.endsOnMouseOut = true;
|
|
201107
|
-
} else if (evt && CLICK_EVENTS.has(evt)) {
|
|
201108
|
-
result.endsOnClick = true;
|
|
201109
|
-
if (cond.targetShapeId) {
|
|
201110
|
-
result.clickTargetShapeId = cond.targetShapeId;
|
|
201111
|
-
}
|
|
201112
|
-
} else if (evt && TIMENODE_EVENTS.has(evt) && cond.targetTimeNodeId !== void 0) {
|
|
201113
|
-
result.endsWithTimeNodeId = cond.targetTimeNodeId;
|
|
201114
|
-
}
|
|
201115
|
-
const { ms, indefinite } = normalizeDelay(cond.delay);
|
|
201116
|
-
if (indefinite) {
|
|
201117
|
-
result.indefinite = true;
|
|
201118
|
-
} else if (ms > 0 && result.delayMs === void 0) {
|
|
201119
|
-
result.delayMs = ms;
|
|
201120
|
-
}
|
|
201121
|
-
}
|
|
201122
|
-
return result;
|
|
201123
|
-
}
|
|
201124
|
-
function resolveAnimationEnd(anim) {
|
|
201125
|
-
return resolveEffectiveEndCondition(anim.endConditions);
|
|
201126
|
-
}
|
|
201127
|
-
var HOVER_EVENTS = /* @__PURE__ */ new Set(["onMouseOver"]);
|
|
201128
|
-
function isInteractiveTrigger(trigger) {
|
|
201129
|
-
return trigger === "onClick" || trigger === "onShapeClick" || trigger === "onHover";
|
|
201130
|
-
}
|
|
201131
|
-
function classifyCondition(cond) {
|
|
201132
|
-
const evt = cond.event;
|
|
201133
|
-
if (evt && CLICK_EVENTS.has(evt)) {
|
|
201134
|
-
return "click";
|
|
201135
|
-
}
|
|
201136
|
-
if (evt && HOVER_EVENTS.has(evt)) {
|
|
201137
|
-
return "hover";
|
|
201138
|
-
}
|
|
201139
|
-
if (evt === "onMediaBookmark" && cond.bookmarkTarget) {
|
|
201140
|
-
return "bookmark";
|
|
201141
|
-
}
|
|
201142
|
-
if (evt && TIMENODE_EVENTS.has(evt)) {
|
|
201143
|
-
if (cond.targetTimeNodeId !== void 0) {
|
|
201144
|
-
return "timenode";
|
|
201145
|
-
}
|
|
201146
|
-
if (evt === "onStopAudio" && cond.targetShapeId !== void 0) {
|
|
201147
|
-
return "timenode";
|
|
201148
|
-
}
|
|
201149
|
-
}
|
|
201150
|
-
return "delay";
|
|
201151
|
-
}
|
|
201152
|
-
function resolveEffectiveStartCondition(conditions, fallbackTrigger) {
|
|
201153
|
-
const base = {
|
|
201154
|
-
trigger: fallbackTrigger,
|
|
201155
|
-
delayMs: 0,
|
|
201156
|
-
hasClickAlternative: false,
|
|
201157
|
-
hasHoverAlternative: false,
|
|
201158
|
-
indefinite: false,
|
|
201159
|
-
requiresInteraction: isInteractiveTrigger(fallbackTrigger)
|
|
201160
|
-
};
|
|
201161
|
-
if (!conditions || conditions.length === 0) {
|
|
201162
|
-
return base;
|
|
201163
|
-
}
|
|
201164
|
-
let timenode;
|
|
201165
|
-
let bookmarkCond;
|
|
201166
|
-
let delayCond;
|
|
201167
|
-
let clickCond;
|
|
201168
|
-
let hoverCond;
|
|
201169
|
-
for (const cond of conditions) {
|
|
201170
|
-
switch (classifyCondition(cond)) {
|
|
201171
|
-
case "timenode":
|
|
201172
|
-
if (!timenode) {
|
|
201173
|
-
timenode = cond;
|
|
201174
|
-
} else if (cond.targetTimeNodeId !== void 0) {
|
|
201175
|
-
if (timenode.targetTimeNodeId === void 0 || cond.targetTimeNodeId < timenode.targetTimeNodeId) {
|
|
201176
|
-
timenode = cond;
|
|
201177
|
-
}
|
|
201178
|
-
}
|
|
201179
|
-
break;
|
|
201180
|
-
case "bookmark":
|
|
201181
|
-
if (!bookmarkCond) {
|
|
201182
|
-
bookmarkCond = cond;
|
|
201183
|
-
}
|
|
201184
|
-
break;
|
|
201185
|
-
case "delay":
|
|
201186
|
-
if (!delayCond || (cond.delay ?? 0) < (delayCond.delay ?? 0)) {
|
|
201187
|
-
delayCond = cond;
|
|
201188
|
-
}
|
|
201189
|
-
break;
|
|
201190
|
-
case "click":
|
|
201191
|
-
if (!clickCond) {
|
|
201192
|
-
clickCond = cond;
|
|
201193
|
-
}
|
|
201194
|
-
break;
|
|
201195
|
-
case "hover":
|
|
201196
|
-
if (!hoverCond) {
|
|
201197
|
-
hoverCond = cond;
|
|
201198
|
-
}
|
|
201199
|
-
break;
|
|
201200
|
-
}
|
|
201201
|
-
}
|
|
201202
|
-
base.hasClickAlternative = clickCond !== void 0;
|
|
201203
|
-
base.hasHoverAlternative = hoverCond !== void 0;
|
|
201204
|
-
if (clickCond?.targetShapeId) {
|
|
201205
|
-
base.clickTargetShapeId = clickCond.targetShapeId;
|
|
201206
|
-
}
|
|
201207
|
-
if (timenode) {
|
|
201208
|
-
const { ms, indefinite } = normalizeDelay(timenode.delay);
|
|
201209
|
-
base.trigger = timenode.event === "onBegin" || timenode.event === "begin" ? "withPrevious" : "afterPrevious";
|
|
201210
|
-
base.delayMs = ms;
|
|
201211
|
-
base.indefinite = indefinite;
|
|
201212
|
-
base.dependsOnTimeNodeId = timenode.targetTimeNodeId;
|
|
201213
|
-
base.dependsOnShapeId = timenode.targetTimeNodeId === void 0 ? timenode.targetShapeId : void 0;
|
|
201214
|
-
base.dependsOnEvent = timenode.event;
|
|
201215
|
-
base.requiresInteraction = false;
|
|
201216
|
-
return base;
|
|
201217
|
-
}
|
|
201218
|
-
if (bookmarkCond?.bookmarkTarget) {
|
|
201219
|
-
base.trigger = "afterPrevious";
|
|
201220
|
-
base.delayMs = 0;
|
|
201221
|
-
base.dependsOnShapeId = bookmarkCond.bookmarkTarget.shapeId;
|
|
201222
|
-
base.dependsOnEvent = "onMediaBookmark";
|
|
201223
|
-
base.dependsOnBookmarkName = bookmarkCond.bookmarkTarget.bookmarkName;
|
|
201224
|
-
base.requiresInteraction = false;
|
|
201225
|
-
return base;
|
|
201226
|
-
}
|
|
201227
|
-
if (delayCond && (delayCond.delay ?? 0) !== 0) {
|
|
201228
|
-
const { ms, indefinite } = normalizeDelay(delayCond.delay);
|
|
201229
|
-
base.trigger = clickCond ? "onClick" : "afterDelay";
|
|
201230
|
-
base.delayMs = ms;
|
|
201231
|
-
base.indefinite = indefinite;
|
|
201232
|
-
base.requiresInteraction = indefinite;
|
|
201233
|
-
return base;
|
|
201234
|
-
}
|
|
201235
|
-
if (clickCond) {
|
|
201236
|
-
base.trigger = clickCond.targetShapeId ? "onShapeClick" : "onClick";
|
|
201237
|
-
base.requiresInteraction = true;
|
|
201238
|
-
return base;
|
|
201239
|
-
}
|
|
201240
|
-
if (hoverCond) {
|
|
201241
|
-
base.trigger = "onHover";
|
|
201242
|
-
base.requiresInteraction = true;
|
|
201243
|
-
return base;
|
|
201244
|
-
}
|
|
201245
|
-
if (delayCond) {
|
|
201246
|
-
base.trigger = fallbackTrigger;
|
|
201247
|
-
base.delayMs = 0;
|
|
201248
|
-
base.requiresInteraction = false;
|
|
201249
|
-
}
|
|
201250
|
-
return base;
|
|
201251
|
-
}
|
|
201252
|
-
function resolveAnimationStart(anim) {
|
|
201253
|
-
return resolveEffectiveStartCondition(anim.startConditions, anim.trigger ?? "onClick");
|
|
201254
|
-
}
|
|
201255
200966
|
function isMediaCommandAnimation(anim) {
|
|
201256
200967
|
return typeof anim.commandString === "string" && anim.commandString.trim().length > 0;
|
|
201257
200968
|
}
|
|
@@ -202245,6 +201956,49 @@ function composeParallelSteps(left, right) {
|
|
|
202245
201956
|
colorTargets: colorTargets.length > 0 ? colorTargets : void 0
|
|
202246
201957
|
};
|
|
202247
201958
|
}
|
|
201959
|
+
var TRANSFORM_KEYFRAME_NAME = /^pptx-(?:tl-)?(?:motion|rotate(?:Abs)?|scale(?:Abs)?|transform)-/u;
|
|
201960
|
+
var COLOR_KEYFRAME_NAME = /^pptx-(?:tl-)?(?:color|tavclr)-/u;
|
|
201961
|
+
var FILTER_KEYFRAME_NAME = /^pptx-(?:tl-)?emph-/u;
|
|
201962
|
+
var animatedPropertyCache = /* @__PURE__ */ new Map();
|
|
201963
|
+
function keyframeAnimatedProperties(keyframeName2) {
|
|
201964
|
+
let props = animatedPropertyCache.get(keyframeName2);
|
|
201965
|
+
if (props) {
|
|
201966
|
+
return props;
|
|
201967
|
+
}
|
|
201968
|
+
props = /* @__PURE__ */ new Set();
|
|
201969
|
+
if (TRANSFORM_KEYFRAME_NAME.test(keyframeName2)) {
|
|
201970
|
+
props.add("transform");
|
|
201971
|
+
if (keyframeName2.endsWith("-visibility")) {
|
|
201972
|
+
props.add("opacity");
|
|
201973
|
+
}
|
|
201974
|
+
} else if (COLOR_KEYFRAME_NAME.test(keyframeName2)) {
|
|
201975
|
+
props.add("color");
|
|
201976
|
+
} else if (FILTER_KEYFRAME_NAME.test(keyframeName2)) {
|
|
201977
|
+
props.add("filter");
|
|
201978
|
+
} else {
|
|
201979
|
+
const css = getEffectKeyframes(keyframeName2.replace(/^pptx-/u, ""));
|
|
201980
|
+
if (css) {
|
|
201981
|
+
if (/(?:^|[^-])\btransform\s*:/u.test(css)) {
|
|
201982
|
+
props.add("transform");
|
|
201983
|
+
}
|
|
201984
|
+
if (/(?:^|[^-])\bopacity\s*:/u.test(css)) {
|
|
201985
|
+
props.add("opacity");
|
|
201986
|
+
}
|
|
201987
|
+
if (/(?:^|[^-])\bfilter\s*:/u.test(css)) {
|
|
201988
|
+
props.add("filter");
|
|
201989
|
+
}
|
|
201990
|
+
if (/(?:^|[^-])\b(?:color|fill|stroke)\s*:/u.test(css)) {
|
|
201991
|
+
props.add("color");
|
|
201992
|
+
}
|
|
201993
|
+
} else {
|
|
201994
|
+
props.add("unknown");
|
|
201995
|
+
}
|
|
201996
|
+
}
|
|
201997
|
+
if (!/^pptx-(?:tl-)?(?:motion|rotate|scale|transform|color|tavclr|emph)-/u.test(keyframeName2)) {
|
|
201998
|
+
animatedPropertyCache.set(keyframeName2, props);
|
|
201999
|
+
}
|
|
202000
|
+
return props;
|
|
202001
|
+
}
|
|
202248
202002
|
function parseTmFilter(raw) {
|
|
202249
202003
|
if (!raw) {
|
|
202250
202004
|
return void 0;
|
|
@@ -202946,6 +202700,23 @@ function expandIterateAnimation(anim) {
|
|
|
202946
202700
|
function processRegularAnimation(state, anim, renderContext, pixelateMosaic) {
|
|
202947
202701
|
const expandedSteps = expandIterateAnimation(anim);
|
|
202948
202702
|
for (const singleAnim of expandedSteps) {
|
|
202703
|
+
if (isChainedMotionSwallowed(singleAnim)) {
|
|
202704
|
+
if (singleAnim.soundPath || singleAnim.stopSound) {
|
|
202705
|
+
state.currentGroup.push({
|
|
202706
|
+
elementId: "",
|
|
202707
|
+
cssAnimation: "",
|
|
202708
|
+
keyframeName: "",
|
|
202709
|
+
trigger: singleAnim.trigger ?? "onClick",
|
|
202710
|
+
delayMs: (singleAnim.parGroupDelayMs ?? 0) + Math.max(singleAnim.delayMs ?? 0, singleAnim.triggerDelayMs ?? 0),
|
|
202711
|
+
durationMs: singleAnim.durationMs ?? 0,
|
|
202712
|
+
fillMode: "forwards",
|
|
202713
|
+
presetClass: "emph",
|
|
202714
|
+
soundPath: singleAnim.soundPath,
|
|
202715
|
+
stopSound: singleAnim.stopSound
|
|
202716
|
+
});
|
|
202717
|
+
}
|
|
202718
|
+
continue;
|
|
202719
|
+
}
|
|
202949
202720
|
const resolved = resolveStepEffect(
|
|
202950
202721
|
singleAnim,
|
|
202951
202722
|
renderContext,
|
|
@@ -203056,6 +202827,9 @@ function countDynamicUids(interactiveAnims) {
|
|
|
203056
202827
|
let count = 0;
|
|
203057
202828
|
for (const [, anims] of interactiveAnims) {
|
|
203058
202829
|
for (const anim of anims) {
|
|
202830
|
+
if (isChainedMotionSwallowed(anim)) {
|
|
202831
|
+
continue;
|
|
202832
|
+
}
|
|
203059
202833
|
const effect = resolveEffect(anim);
|
|
203060
202834
|
if (!effect) {
|
|
203061
202835
|
count++;
|
|
@@ -203074,6 +202848,23 @@ function buildSequenceGroups(animsByKey, entranceIds, neededKeyframes, dynamicBl
|
|
|
203074
202848
|
let subGroupIndex;
|
|
203075
202849
|
let subGroupStartMs = 0;
|
|
203076
202850
|
for (const anim of anims) {
|
|
202851
|
+
if (isChainedMotionSwallowed(anim)) {
|
|
202852
|
+
if (anim.soundPath || anim.stopSound) {
|
|
202853
|
+
seqGroup.push({
|
|
202854
|
+
elementId: "",
|
|
202855
|
+
cssAnimation: "",
|
|
202856
|
+
keyframeName: "",
|
|
202857
|
+
trigger: anim.trigger ?? "onShapeClick",
|
|
202858
|
+
delayMs: (anim.parGroupDelayMs ?? 0) + Math.max(anim.delayMs ?? 0, anim.triggerDelayMs ?? 0),
|
|
202859
|
+
durationMs: anim.durationMs ?? 0,
|
|
202860
|
+
fillMode: "forwards",
|
|
202861
|
+
presetClass: "emph",
|
|
202862
|
+
soundPath: anim.soundPath,
|
|
202863
|
+
stopSound: anim.stopSound
|
|
202864
|
+
});
|
|
202865
|
+
}
|
|
202866
|
+
continue;
|
|
202867
|
+
}
|
|
203077
202868
|
const resolved = resolveStepEffect(anim, renderContext, dynamicUid, false, pixelateMosaic);
|
|
203078
202869
|
dynamicUid = resolved.nextDynamicUid;
|
|
203079
202870
|
if (resolved.skip) {
|
|
@@ -203264,7 +203055,12 @@ function buildTimeline(nativeAnimations, renderContext, pixelateMosaic) {
|
|
|
203264
203055
|
regularAnims.push(anim);
|
|
203265
203056
|
}
|
|
203266
203057
|
}
|
|
203267
|
-
const
|
|
203058
|
+
const mergedRegularAnims = mergeChainedMotionPathAnims(regularAnims);
|
|
203059
|
+
for (const [shapeId, anims] of interactiveAnims) {
|
|
203060
|
+
interactiveAnims.set(shapeId, mergeChainedMotionPathAnims(anims));
|
|
203061
|
+
}
|
|
203062
|
+
const mergedHoverAnims = mergeChainedMotionPathAnims(hoverAnims);
|
|
203063
|
+
const { clickGroups, entranceIds, neededKeyframes, dynamicBlocks, dynamicUid } = buildRegularClickGroups(mergedRegularAnims, renderContext, pixelateMosaic);
|
|
203268
203064
|
const interactiveSequences = buildSequenceGroups(
|
|
203269
203065
|
interactiveAnims,
|
|
203270
203066
|
entranceIds,
|
|
@@ -203275,7 +203071,7 @@ function buildTimeline(nativeAnimations, renderContext, pixelateMosaic) {
|
|
|
203275
203071
|
pixelateMosaic
|
|
203276
203072
|
);
|
|
203277
203073
|
const { hoverSequences } = buildHoverSequences(
|
|
203278
|
-
|
|
203074
|
+
mergedHoverAnims,
|
|
203279
203075
|
entranceIds,
|
|
203280
203076
|
neededKeyframes,
|
|
203281
203077
|
dynamicBlocks,
|
|
@@ -208695,17 +208491,17 @@ function attachRotateHandlePlacement(button, options = {}) {
|
|
|
208695
208491
|
for (const node of ancestors) {
|
|
208696
208492
|
mutations.observe(node, { attributes: true, attributeFilter: ["style", "class", "hidden"] });
|
|
208697
208493
|
}
|
|
208698
|
-
const
|
|
208699
|
-
if (
|
|
208700
|
-
mutations.observe(
|
|
208494
|
+
const controls2 = options.getObstacleRoot ? options.getObstacleRoot() : button.parentElement;
|
|
208495
|
+
if (controls2) {
|
|
208496
|
+
mutations.observe(controls2, {
|
|
208701
208497
|
attributes: true,
|
|
208702
208498
|
attributeFilter: ["style", "class", "hidden"],
|
|
208703
208499
|
childList: true
|
|
208704
208500
|
});
|
|
208705
|
-
observed.add(
|
|
208501
|
+
observed.add(controls2);
|
|
208706
208502
|
for (const control of [
|
|
208707
208503
|
button,
|
|
208708
|
-
...
|
|
208504
|
+
...controls2.querySelectorAll("[data-pptx-handle-kind]")
|
|
208709
208505
|
]) {
|
|
208710
208506
|
observeControl(control);
|
|
208711
208507
|
}
|
|
@@ -211410,6 +211206,9 @@ var translationsEn = {
|
|
|
211410
211206
|
// Live captions
|
|
211411
211207
|
"pptx.subtitles.listening": "Listening\u2026",
|
|
211412
211208
|
"pptx.subtitles.notSupported": "Subtitles are not supported in this browser.",
|
|
211209
|
+
"pptx.subtitles.spokenLanguage": "Spoken language",
|
|
211210
|
+
"pptx.subtitles.browserLanguage": "Browser language",
|
|
211211
|
+
"pptx.subtitles.settingsDescription": "Choose the language you will speak. Captions use browser speech recognition; translation is not available.",
|
|
211413
211212
|
// Table (additions)
|
|
211414
211213
|
"pptx.table.background": "Background",
|
|
211415
211214
|
"pptx.table.bandColCycle": "Column band size",
|
|
@@ -229127,6 +228926,89 @@ function slideShowOptionChange(id, checked) {
|
|
|
229127
228926
|
return null;
|
|
229128
228927
|
}
|
|
229129
228928
|
}
|
|
228929
|
+
var SLIDE_SHOW_COMMAND_GROUPS = [
|
|
228930
|
+
{
|
|
228931
|
+
id: "slideShow.startSlideShow",
|
|
228932
|
+
labelKey: "pptx.slideShow.start",
|
|
228933
|
+
commands: [
|
|
228934
|
+
{
|
|
228935
|
+
id: "slideShow.startSlideShow.fromBeginning",
|
|
228936
|
+
labelKey: "pptx.slideShow.fromBeginning",
|
|
228937
|
+
icon: "play-start",
|
|
228938
|
+
tooltipKey: "pptx.slideShow.fromBeginningTooltip"
|
|
228939
|
+
},
|
|
228940
|
+
{
|
|
228941
|
+
id: "slideShow.startSlideShow.fromCurrent",
|
|
228942
|
+
labelKey: "pptx.slideShow.fromCurrent",
|
|
228943
|
+
icon: "play",
|
|
228944
|
+
tooltipKey: "pptx.slideShow.fromCurrentTooltip"
|
|
228945
|
+
}
|
|
228946
|
+
]
|
|
228947
|
+
},
|
|
228948
|
+
{
|
|
228949
|
+
id: "slideShow.present",
|
|
228950
|
+
labelKey: "pptx.slideShow.present",
|
|
228951
|
+
commands: [
|
|
228952
|
+
{
|
|
228953
|
+
id: "slideShow.present.presenterView",
|
|
228954
|
+
labelKey: "pptx.slideShow.presenterView",
|
|
228955
|
+
icon: "presentation",
|
|
228956
|
+
tooltipKey: "pptx.slideShow.presenterViewTooltip"
|
|
228957
|
+
},
|
|
228958
|
+
{
|
|
228959
|
+
id: "slideShow.startSlideShow.customShow",
|
|
228960
|
+
labelKey: "pptx.slideShow.customShow",
|
|
228961
|
+
icon: "list",
|
|
228962
|
+
tooltipKey: "pptx.customShows.customShowTooltip"
|
|
228963
|
+
},
|
|
228964
|
+
{
|
|
228965
|
+
id: "slideShow.present.broadcast",
|
|
228966
|
+
labelKey: "pptx.slideShow.broadcast",
|
|
228967
|
+
icon: "broadcast",
|
|
228968
|
+
tooltipKey: "pptx.slideShow.broadcastTooltip"
|
|
228969
|
+
}
|
|
228970
|
+
]
|
|
228971
|
+
},
|
|
228972
|
+
{
|
|
228973
|
+
id: "slideShow.setUp",
|
|
228974
|
+
labelKey: "pptx.slideShow.setUpGroup",
|
|
228975
|
+
commands: [
|
|
228976
|
+
{
|
|
228977
|
+
id: "slideShow.setUp.rehearseWithCoach",
|
|
228978
|
+
labelKey: "pptx.slideShow.rehearseCoach",
|
|
228979
|
+
icon: "video",
|
|
228980
|
+
unsupported: true
|
|
228981
|
+
},
|
|
228982
|
+
{
|
|
228983
|
+
id: "slideShow.setUp.setUpSlideShow",
|
|
228984
|
+
labelKey: "pptx.slideShow.setUp",
|
|
228985
|
+
icon: "settings",
|
|
228986
|
+
tooltipKey: "pptx.slideShow.setUpTooltip"
|
|
228987
|
+
},
|
|
228988
|
+
{ id: "slideShow.setUp.hideSlide", labelKey: "pptx.slideShow.hideSlide", icon: "eye-off" },
|
|
228989
|
+
{
|
|
228990
|
+
id: "slideShow.setUp.rehearseTimings",
|
|
228991
|
+
labelKey: "pptx.slideShow.rehearseTimings",
|
|
228992
|
+
icon: "clock",
|
|
228993
|
+
tooltipKey: "pptx.slideShow.rehearseTimingsTooltip"
|
|
228994
|
+
},
|
|
228995
|
+
{ id: "slideShow.setUp.record", labelKey: "pptx.titleBar.record", icon: "record" }
|
|
228996
|
+
]
|
|
228997
|
+
}
|
|
228998
|
+
];
|
|
228999
|
+
var HELP_RIBBON_COMMANDS = [
|
|
229000
|
+
{ id: "help.help.options", labelKey: "pptx.settings.title", icon: "settings" },
|
|
229001
|
+
{
|
|
229002
|
+
id: "help.help.keyboardShortcuts",
|
|
229003
|
+
labelKey: "pptx.settings.keyboardShortcuts",
|
|
229004
|
+
icon: "keyboard"
|
|
229005
|
+
},
|
|
229006
|
+
{
|
|
229007
|
+
id: "help.help.accessibility",
|
|
229008
|
+
labelKey: "pptx.ribbon.accessibilityCheck",
|
|
229009
|
+
icon: "accessibility"
|
|
229010
|
+
}
|
|
229011
|
+
];
|
|
229130
229012
|
function resetSlideLayoutPath(slide) {
|
|
229131
229013
|
const path = slide?.layoutPath;
|
|
229132
229014
|
return typeof path === "string" && path !== "" ? path : void 0;
|
|
@@ -232358,20 +232240,20 @@ async function mountModel3D(container, modelUrl, options) {
|
|
|
232358
232240
|
scene.add(light);
|
|
232359
232241
|
}
|
|
232360
232242
|
scene.add(rig.placeModel(model));
|
|
232361
|
-
let
|
|
232243
|
+
let controls2 = null;
|
|
232362
232244
|
const OrbitCtrlCtor = await loadOrbitControlsCtor();
|
|
232363
232245
|
const enableControls = (on) => {
|
|
232364
|
-
if (on && !
|
|
232365
|
-
|
|
232366
|
-
|
|
232367
|
-
|
|
232368
|
-
|
|
232369
|
-
|
|
232370
|
-
|
|
232371
|
-
|
|
232372
|
-
} else if (!on &&
|
|
232373
|
-
|
|
232374
|
-
|
|
232246
|
+
if (on && !controls2 && OrbitCtrlCtor) {
|
|
232247
|
+
controls2 = new OrbitCtrlCtor(camera, canvas);
|
|
232248
|
+
controls2.enablePan = false;
|
|
232249
|
+
controls2.enableZoom = true;
|
|
232250
|
+
controls2.enableRotate = true;
|
|
232251
|
+
controls2.minDistance = descriptor.authored ? rig.distance * 0.2 : 2;
|
|
232252
|
+
controls2.maxDistance = descriptor.authored ? rig.distance * 4 : 20;
|
|
232253
|
+
controls2.update();
|
|
232254
|
+
} else if (!on && controls2) {
|
|
232255
|
+
controls2.dispose();
|
|
232256
|
+
controls2 = null;
|
|
232375
232257
|
}
|
|
232376
232258
|
};
|
|
232377
232259
|
enableControls(options.interactive ?? true);
|
|
@@ -232382,7 +232264,7 @@ async function mountModel3D(container, modelUrl, options) {
|
|
|
232382
232264
|
return;
|
|
232383
232265
|
}
|
|
232384
232266
|
frame2 = requestAnimationFrame(renderLoop);
|
|
232385
|
-
|
|
232267
|
+
controls2?.update();
|
|
232386
232268
|
renderer.render(scene, camera);
|
|
232387
232269
|
};
|
|
232388
232270
|
frame2 = requestAnimationFrame(renderLoop);
|
|
@@ -232419,7 +232301,7 @@ async function mountModel3D(container, modelUrl, options) {
|
|
|
232419
232301
|
}
|
|
232420
232302
|
disposed = true;
|
|
232421
232303
|
cancelAnimationFrame(frame2);
|
|
232422
|
-
|
|
232304
|
+
controls2?.dispose();
|
|
232423
232305
|
disposeModel();
|
|
232424
232306
|
scene.clear();
|
|
232425
232307
|
renderer.dispose();
|
|
@@ -237329,11 +237211,13 @@ function resolveElementAriaAttributes(element, options) {
|
|
|
237329
237211
|
};
|
|
237330
237212
|
}
|
|
237331
237213
|
var PRESENTATION_STAGE_ATTRIBUTE = "data-pptx-presenting";
|
|
237214
|
+
var PRESENTATION_ANIM_TRIGGER_ATTRIBUTE = "data-pptx-anim-trigger";
|
|
237332
237215
|
var PRESENTATION_HIT_TEST_CSS = `
|
|
237333
237216
|
[${PRESENTATION_STAGE_ATTRIBUTE}] [data-element-id] {
|
|
237334
237217
|
pointer-events: none;
|
|
237335
237218
|
}
|
|
237336
237219
|
[${PRESENTATION_STAGE_ATTRIBUTE}] [data-pptx-action],
|
|
237220
|
+
[${PRESENTATION_STAGE_ATTRIBUTE}] [${PRESENTATION_ANIM_TRIGGER_ATTRIBUTE}],
|
|
237337
237221
|
[${PRESENTATION_STAGE_ATTRIBUTE}] [data-element-id] a[href],
|
|
237338
237222
|
[${PRESENTATION_STAGE_ATTRIBUTE}] [data-element-id] video[controls],
|
|
237339
237223
|
[${PRESENTATION_STAGE_ATTRIBUTE}] [data-element-id] audio[controls] {
|
|
@@ -237418,7 +237302,11 @@ function focusableElements(panel2) {
|
|
|
237418
237302
|
}
|
|
237419
237303
|
function activateModalFocus(panel2, options = {}) {
|
|
237420
237304
|
const doc = panel2.ownerDocument;
|
|
237421
|
-
|
|
237305
|
+
let activeElement = doc.activeElement;
|
|
237306
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
237307
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
237308
|
+
}
|
|
237309
|
+
const opener = activeElement instanceof HTMLElement ? activeElement : null;
|
|
237422
237310
|
const restoreFocus = options.restoreFocus ?? true;
|
|
237423
237311
|
function focusInitial() {
|
|
237424
237312
|
const candidate = options.initialFocus ?? focusableElements(panel2)[0] ?? panel2;
|
|
@@ -241764,6 +241652,73 @@ function hiddenSlideCue(hidden, surface, slideIndex) {
|
|
|
241764
241652
|
}
|
|
241765
241653
|
return { hidden: true, labelId: hiddenSlideLabelId(surface, slideIndex), marker: "true" };
|
|
241766
241654
|
}
|
|
241655
|
+
function mergeCaptionResults(resultIndex, results) {
|
|
241656
|
+
let finalText = "";
|
|
241657
|
+
let interimText = "";
|
|
241658
|
+
for (let index = resultIndex; index < results.length; index++) {
|
|
241659
|
+
const result = results[index];
|
|
241660
|
+
const fragment = result?.[0]?.transcript ?? "";
|
|
241661
|
+
if (result?.isFinal) {
|
|
241662
|
+
finalText += fragment;
|
|
241663
|
+
} else {
|
|
241664
|
+
interimText += fragment;
|
|
241665
|
+
}
|
|
241666
|
+
}
|
|
241667
|
+
return `${finalText} ${interimText}`.trim();
|
|
241668
|
+
}
|
|
241669
|
+
function getSpeechRecognitionCtor() {
|
|
241670
|
+
const source = globalThis;
|
|
241671
|
+
return source["SpeechRecognition"] ?? source["webkitSpeechRecognition"] ?? null;
|
|
241672
|
+
}
|
|
241673
|
+
var SUBTITLE_LANGUAGES = [
|
|
241674
|
+
"auto",
|
|
241675
|
+
"en-US",
|
|
241676
|
+
"en-GB",
|
|
241677
|
+
"fr-FR",
|
|
241678
|
+
"de-DE",
|
|
241679
|
+
"es-ES",
|
|
241680
|
+
"pt-BR",
|
|
241681
|
+
"it-IT",
|
|
241682
|
+
"ja-JP",
|
|
241683
|
+
"ko-KR",
|
|
241684
|
+
"zh-CN"
|
|
241685
|
+
];
|
|
241686
|
+
function subtitleLanguageLabel(language) {
|
|
241687
|
+
try {
|
|
241688
|
+
return new Intl.DisplayNames(void 0, { type: "language" }).of(language) ?? language;
|
|
241689
|
+
} catch {
|
|
241690
|
+
return language;
|
|
241691
|
+
}
|
|
241692
|
+
}
|
|
241693
|
+
function normalizeSubtitleSettings(settings) {
|
|
241694
|
+
const spokenLanguage = settings?.spokenLanguage ?? "auto";
|
|
241695
|
+
return {
|
|
241696
|
+
spokenLanguage: SUBTITLE_LANGUAGES.includes(spokenLanguage) ? spokenLanguage : "auto"
|
|
241697
|
+
};
|
|
241698
|
+
}
|
|
241699
|
+
function subtitleSettingsFromOptions(options) {
|
|
241700
|
+
return normalizeSubtitleSettings({ spokenLanguage: options?.accessibility.subtitleLanguage });
|
|
241701
|
+
}
|
|
241702
|
+
function updateSubtitleSettings(store, settings) {
|
|
241703
|
+
store.setValue(
|
|
241704
|
+
"accessibility",
|
|
241705
|
+
"subtitleLanguage",
|
|
241706
|
+
normalizeSubtitleSettings(settings).spokenLanguage
|
|
241707
|
+
);
|
|
241708
|
+
}
|
|
241709
|
+
function subtitleRecognitionLanguage(settings, browserLanguage = "en-US") {
|
|
241710
|
+
return settings.spokenLanguage === "auto" ? browserLanguage || "en-US" : settings.spokenLanguage;
|
|
241711
|
+
}
|
|
241712
|
+
function subtitleSettingsLabels(t) {
|
|
241713
|
+
return {
|
|
241714
|
+
title: t("pptx.slideShow.subtitleSettings"),
|
|
241715
|
+
language: t("pptx.subtitles.spokenLanguage"),
|
|
241716
|
+
browserLanguage: t("pptx.subtitles.browserLanguage"),
|
|
241717
|
+
description: t("pptx.subtitles.settingsDescription"),
|
|
241718
|
+
apply: t("pptx.common.apply"),
|
|
241719
|
+
cancel: t("pptx.common.cancel")
|
|
241720
|
+
};
|
|
241721
|
+
}
|
|
241767
241722
|
var VIEWER_PREFS_STORAGE_KEY = "pptx-viewer-prefs";
|
|
241768
241723
|
function hasLocalStorage() {
|
|
241769
241724
|
return typeof localStorage !== "undefined";
|
|
@@ -242128,6 +242083,7 @@ var DEFAULT_VIEWER_OPTIONS = {
|
|
|
242128
242083
|
clearCacheOnClose: false
|
|
242129
242084
|
},
|
|
242130
242085
|
accessibility: {
|
|
242086
|
+
subtitleLanguage: "auto",
|
|
242131
242087
|
showAccessibilityStatus: true,
|
|
242132
242088
|
feedbackWithSound: false,
|
|
242133
242089
|
soundScheme: "modern",
|
|
@@ -243767,7 +243723,7 @@ function resolveRibbonCustomization(ribbon3) {
|
|
|
243767
243723
|
const actions = /* @__PURE__ */ new Set();
|
|
243768
243724
|
const contextualTabs = /* @__PURE__ */ new Set();
|
|
243769
243725
|
const groups = /* @__PURE__ */ new Set();
|
|
243770
|
-
const
|
|
243726
|
+
const controls2 = /* @__PURE__ */ new Set();
|
|
243771
243727
|
for (const tab of ribbon3?.hiddenTabs ?? []) {
|
|
243772
243728
|
if (CONTEXTUAL_TAB_IDS.has(tab)) {
|
|
243773
243729
|
contextualTabs.add(tab);
|
|
@@ -243782,19 +243738,19 @@ function resolveRibbonCustomization(ribbon3) {
|
|
|
243782
243738
|
}
|
|
243783
243739
|
for (const button of ribbon3?.hiddenButtons ?? []) {
|
|
243784
243740
|
if (isRibbonControlId(button)) {
|
|
243785
|
-
|
|
243741
|
+
controls2.add(button);
|
|
243786
243742
|
} else {
|
|
243787
243743
|
actions.add(button);
|
|
243788
243744
|
}
|
|
243789
243745
|
}
|
|
243790
243746
|
for (const [action, control] of BUTTON_CONTROL_ALIASES) {
|
|
243791
243747
|
if (actions.has(action)) {
|
|
243792
|
-
|
|
243793
|
-
} else if (
|
|
243748
|
+
controls2.add(control);
|
|
243749
|
+
} else if (controls2.has(control)) {
|
|
243794
243750
|
actions.add(action);
|
|
243795
243751
|
}
|
|
243796
243752
|
}
|
|
243797
|
-
return { actions, contextualTabs, groups, controls };
|
|
243753
|
+
return { actions, contextualTabs, groups, controls: controls2 };
|
|
243798
243754
|
}
|
|
243799
243755
|
var DIALOG_ENTRY_POINTS = {
|
|
243800
243756
|
options: { actions: [], pages: ["options"], cards: [] },
|
|
@@ -243997,13 +243953,13 @@ function customizeSection(tabId, section, resolved) {
|
|
|
243997
243953
|
if (resolved.hiddenOptionsSections.has(`${tabId}.${section.id}`)) {
|
|
243998
243954
|
return null;
|
|
243999
243955
|
}
|
|
244000
|
-
const
|
|
243956
|
+
const controls2 = section.controls.filter((control) => isSettingVisible(resolved, optionsSettingIdOf(control))).map(
|
|
244001
243957
|
(control) => isSettingLocked(resolved, optionsSettingIdOf(control)) ? { ...control, readOnly: true } : control
|
|
244002
243958
|
);
|
|
244003
|
-
if (
|
|
243959
|
+
if (controls2.length === 0 && section.controls.length > 0 && !section.special) {
|
|
244004
243960
|
return null;
|
|
244005
243961
|
}
|
|
244006
|
-
return { ...section, controls };
|
|
243962
|
+
return { ...section, controls: controls2 };
|
|
244007
243963
|
}
|
|
244008
243964
|
function customizeOptionsTabs(tabs, resolved) {
|
|
244009
243965
|
if (resolved.hiddenOptionsPages.size === 0 && resolved.hiddenOptionsSections.size === 0 && resolved.hiddenSettings.size === 0 && Object.keys(resolved.lockedSettings).length === 0) {
|
|
@@ -248908,28 +248864,19 @@ function cursorForTool(tool) {
|
|
|
248908
248864
|
return "default";
|
|
248909
248865
|
}
|
|
248910
248866
|
}
|
|
248911
|
-
|
|
248912
|
-
if (!state) {
|
|
248913
|
-
return {};
|
|
248914
|
-
}
|
|
248915
|
-
const carried = {};
|
|
248916
|
-
if (state.build) {
|
|
248917
|
-
carried.build = state.build;
|
|
248918
|
-
}
|
|
248919
|
-
if (state.chartReveal) {
|
|
248920
|
-
carried.chartReveal = state.chartReveal;
|
|
248921
|
-
}
|
|
248922
|
-
if (state.diagramReveal) {
|
|
248923
|
-
carried.diagramReveal = state.diagramReveal;
|
|
248924
|
-
}
|
|
248925
|
-
if (state.textStyle) {
|
|
248926
|
-
carried.textStyle = state.textStyle;
|
|
248927
|
-
}
|
|
248928
|
-
return carried;
|
|
248929
|
-
}
|
|
248867
|
+
var playbackOwners = /* @__PURE__ */ new WeakMap();
|
|
248930
248868
|
function applyAnimationGroupSteps(group2, ctx) {
|
|
248931
248869
|
wireMediaEndedSteps(group2, ctx);
|
|
248932
248870
|
wireMediaBookmarkSteps(group2, ctx);
|
|
248871
|
+
const ownedAnimations = /* @__PURE__ */ new Map();
|
|
248872
|
+
const owner = /* @__PURE__ */ Symbol("animation group");
|
|
248873
|
+
const owners = playbackOwners.get(ctx.setStates) ?? /* @__PURE__ */ new Map();
|
|
248874
|
+
playbackOwners.set(ctx.setStates, owners);
|
|
248875
|
+
for (const step of group2.steps) {
|
|
248876
|
+
if (step.elementId && !step.command) {
|
|
248877
|
+
owners.set(step.elementId, owner);
|
|
248878
|
+
}
|
|
248879
|
+
}
|
|
248933
248880
|
for (const step of group2.steps) {
|
|
248934
248881
|
if (step.command) {
|
|
248935
248882
|
const command = step.command;
|
|
@@ -248943,46 +248890,101 @@ function applyAnimationGroupSteps(group2, ctx) {
|
|
|
248943
248890
|
continue;
|
|
248944
248891
|
}
|
|
248945
248892
|
if (step.stopSound) {
|
|
248946
|
-
|
|
248893
|
+
if (step.delayMs > 0) {
|
|
248894
|
+
const stopTimer = window.setTimeout(() => {
|
|
248895
|
+
ctx.stopSound();
|
|
248896
|
+
}, step.delayMs);
|
|
248897
|
+
ctx.timers.push(stopTimer);
|
|
248898
|
+
} else {
|
|
248899
|
+
ctx.stopSound();
|
|
248900
|
+
}
|
|
248947
248901
|
} else if (step.soundPath) {
|
|
248948
|
-
|
|
248902
|
+
const soundPath = step.soundPath;
|
|
248903
|
+
if (step.delayMs > 0) {
|
|
248904
|
+
const soundTimer = window.setTimeout(() => {
|
|
248905
|
+
(ctx.onPlayActionSound ?? ctx.playSound)(soundPath);
|
|
248906
|
+
}, step.delayMs);
|
|
248907
|
+
ctx.timers.push(soundTimer);
|
|
248908
|
+
} else {
|
|
248909
|
+
(ctx.onPlayActionSound ?? ctx.playSound)(soundPath);
|
|
248910
|
+
}
|
|
248949
248911
|
}
|
|
248950
248912
|
}
|
|
248951
248913
|
ctx.setStates((previous) => {
|
|
248952
248914
|
const next = new Map(previous);
|
|
248915
|
+
const componentsByElement = /* @__PURE__ */ new Map();
|
|
248953
248916
|
for (const step of group2.steps) {
|
|
248954
|
-
if (step.command) {
|
|
248917
|
+
if (step.command || !step.elementId) {
|
|
248955
248918
|
continue;
|
|
248956
248919
|
}
|
|
248957
248920
|
const current = next.get(step.elementId);
|
|
248958
248921
|
const shouldBeVisible = step.presetClass === "exit" ? current?.visible ?? true : true;
|
|
248959
248922
|
const carried = carryBuildState(current);
|
|
248923
|
+
let components = componentsByElement.get(step.elementId);
|
|
248924
|
+
if (!components) {
|
|
248925
|
+
components = [];
|
|
248926
|
+
componentsByElement.set(step.elementId, components);
|
|
248927
|
+
}
|
|
248928
|
+
if (step.cssAnimation) {
|
|
248929
|
+
const names = [...step.cssAnimation.matchAll(/(?:^|,\s*)([\w-]+)\s+[\d.]+m?s\b/gu)].map(
|
|
248930
|
+
(match) => match[1]
|
|
248931
|
+
);
|
|
248932
|
+
const stepProperties = new Set(
|
|
248933
|
+
(names.length ? names : [step.keyframeName]).flatMap((name) => [
|
|
248934
|
+
...keyframeAnimatedProperties(name)
|
|
248935
|
+
])
|
|
248936
|
+
);
|
|
248937
|
+
const takesOverEverything = stepProperties.has("unknown");
|
|
248938
|
+
for (let index = components.length - 1; index >= 0; index--) {
|
|
248939
|
+
const component2 = components[index];
|
|
248940
|
+
const collides = takesOverEverything || component2.properties.has("unknown") || [...stepProperties].some((property) => component2.properties.has(property));
|
|
248941
|
+
if (collides) {
|
|
248942
|
+
components.splice(index, 1);
|
|
248943
|
+
}
|
|
248944
|
+
}
|
|
248945
|
+
components.push({
|
|
248946
|
+
animation: step.cssAnimation,
|
|
248947
|
+
properties: stepProperties,
|
|
248948
|
+
colorTargets: step.colorTargets
|
|
248949
|
+
});
|
|
248950
|
+
ownedAnimations.set(
|
|
248951
|
+
step.elementId,
|
|
248952
|
+
components.map((component2) => component2.animation)
|
|
248953
|
+
);
|
|
248954
|
+
}
|
|
248960
248955
|
next.set(step.elementId, {
|
|
248961
248956
|
...carried,
|
|
248962
248957
|
visible: shouldBeVisible,
|
|
248963
|
-
cssAnimation:
|
|
248964
|
-
animatesFill:
|
|
248965
|
-
animatesStroke:
|
|
248958
|
+
cssAnimation: components.map((component2) => component2.animation).join(", ") || void 0,
|
|
248959
|
+
animatesFill: components.some((component2) => component2.colorTargets?.includes("fill")) || void 0,
|
|
248960
|
+
animatesStroke: components.some((component2) => component2.colorTargets?.includes("stroke")) || void 0,
|
|
248966
248961
|
textStyle: mergeTextStyleOnStart(carried.textStyle, step.textStyle)
|
|
248967
248962
|
});
|
|
248968
248963
|
}
|
|
248969
248964
|
return next;
|
|
248970
248965
|
});
|
|
248971
248966
|
for (const step of group2.steps) {
|
|
248972
|
-
if (step.command) {
|
|
248967
|
+
if (step.command || !step.elementId) {
|
|
248973
248968
|
continue;
|
|
248974
248969
|
}
|
|
248975
248970
|
const timer = window.setTimeout(
|
|
248976
248971
|
() => {
|
|
248972
|
+
const components = ownedAnimations.get(step.elementId) ?? [];
|
|
248973
|
+
const remaining = step.holdEndState ? components : components.filter((animation) => animation !== step.cssAnimation);
|
|
248977
248974
|
ctx.setStates((previous) => {
|
|
248978
248975
|
const next = new Map(previous);
|
|
248979
248976
|
const current = next.get(step.elementId);
|
|
248977
|
+
if (owners.get(step.elementId) !== owner || current?.cssAnimation !== (components.join(", ") || void 0) || step.cssAnimation && !components.includes(step.cssAnimation)) {
|
|
248978
|
+
return next;
|
|
248979
|
+
}
|
|
248980
248980
|
const visibleAfter = step.presetClass === "exit" || step.hideAfterEffect ? false : current?.visible ?? true;
|
|
248981
248981
|
const carried = carryBuildState(current);
|
|
248982
248982
|
next.set(step.elementId, {
|
|
248983
248983
|
...carried,
|
|
248984
248984
|
visible: visibleAfter,
|
|
248985
|
-
cssAnimation:
|
|
248985
|
+
cssAnimation: remaining.join(", ") || void 0,
|
|
248986
|
+
animatesFill: step.colorTargets ? void 0 : current?.animatesFill,
|
|
248987
|
+
animatesStroke: step.colorTargets ? void 0 : current?.animatesStroke,
|
|
248986
248988
|
textStyle: resolveTextStyleOnCleanup(
|
|
248987
248989
|
carried.textStyle,
|
|
248988
248990
|
step.textStyle,
|
|
@@ -248991,12 +248993,32 @@ function applyAnimationGroupSteps(group2, ctx) {
|
|
|
248991
248993
|
});
|
|
248992
248994
|
return next;
|
|
248993
248995
|
});
|
|
248996
|
+
ownedAnimations.set(step.elementId, remaining);
|
|
248994
248997
|
},
|
|
248995
248998
|
Math.max(0, step.delayMs + step.durationMs + 8)
|
|
248996
248999
|
);
|
|
248997
249000
|
ctx.timers.push(timer);
|
|
248998
249001
|
}
|
|
248999
249002
|
}
|
|
249003
|
+
function carryBuildState(state) {
|
|
249004
|
+
if (!state) {
|
|
249005
|
+
return {};
|
|
249006
|
+
}
|
|
249007
|
+
const carried = {};
|
|
249008
|
+
if (state.build) {
|
|
249009
|
+
carried.build = state.build;
|
|
249010
|
+
}
|
|
249011
|
+
if (state.chartReveal) {
|
|
249012
|
+
carried.chartReveal = state.chartReveal;
|
|
249013
|
+
}
|
|
249014
|
+
if (state.diagramReveal) {
|
|
249015
|
+
carried.diagramReveal = state.diagramReveal;
|
|
249016
|
+
}
|
|
249017
|
+
if (state.textStyle) {
|
|
249018
|
+
carried.textStyle = state.textStyle;
|
|
249019
|
+
}
|
|
249020
|
+
return carried;
|
|
249021
|
+
}
|
|
249000
249022
|
function cancelBuildReveal(handle) {
|
|
249001
249023
|
if (handle.current !== null && typeof cancelAnimationFrame === "function") {
|
|
249002
249024
|
cancelAnimationFrame(handle.current);
|
|
@@ -253282,6 +253304,1142 @@ function prepareElementUpdateBatch(slides, updates) {
|
|
|
253282
253304
|
});
|
|
253283
253305
|
return changed ? next : null;
|
|
253284
253306
|
}
|
|
253307
|
+
var RECORD_COMMAND_GROUPS = [
|
|
253308
|
+
{
|
|
253309
|
+
id: "record.camera",
|
|
253310
|
+
labelKey: "pptx.record.camera",
|
|
253311
|
+
commands: [
|
|
253312
|
+
{
|
|
253313
|
+
id: "record.camera.cameo",
|
|
253314
|
+
labelKey: "pptx.record.cameo",
|
|
253315
|
+
icon: "camera",
|
|
253316
|
+
unsupported: true
|
|
253317
|
+
}
|
|
253318
|
+
]
|
|
253319
|
+
},
|
|
253320
|
+
{
|
|
253321
|
+
id: "record.record",
|
|
253322
|
+
labelKey: "pptx.ribbon.tab.record",
|
|
253323
|
+
commands: [
|
|
253324
|
+
{
|
|
253325
|
+
id: "record.record.fromBeginning",
|
|
253326
|
+
labelKey: "pptx.slideShow.fromBeginning",
|
|
253327
|
+
icon: "video"
|
|
253328
|
+
},
|
|
253329
|
+
{ id: "record.record.fromCurrent", labelKey: "pptx.slideShow.fromCurrent", icon: "play" }
|
|
253330
|
+
]
|
|
253331
|
+
},
|
|
253332
|
+
{
|
|
253333
|
+
id: "record.manage",
|
|
253334
|
+
labelKey: "pptx.record.manage",
|
|
253335
|
+
commands: [
|
|
253336
|
+
{
|
|
253337
|
+
id: "record.manage.clear",
|
|
253338
|
+
labelKey: "pptx.record.clear",
|
|
253339
|
+
icon: "eraser",
|
|
253340
|
+
unsupported: true
|
|
253341
|
+
},
|
|
253342
|
+
{
|
|
253343
|
+
id: "record.manage.reset",
|
|
253344
|
+
labelKey: "pptx.record.resetToCameo",
|
|
253345
|
+
icon: "reset",
|
|
253346
|
+
unsupported: true
|
|
253347
|
+
}
|
|
253348
|
+
]
|
|
253349
|
+
},
|
|
253350
|
+
{
|
|
253351
|
+
id: "record.help",
|
|
253352
|
+
labelKey: "pptx.ribbon.tab.help",
|
|
253353
|
+
commands: [
|
|
253354
|
+
{
|
|
253355
|
+
id: "record.help.learnMore",
|
|
253356
|
+
labelKey: "pptx.record.learnMore",
|
|
253357
|
+
icon: "help",
|
|
253358
|
+
unsupported: true
|
|
253359
|
+
}
|
|
253360
|
+
]
|
|
253361
|
+
}
|
|
253362
|
+
];
|
|
253363
|
+
var SLIDE_SHOW_OPTIONS_STYLES = `
|
|
253364
|
+
:host {
|
|
253365
|
+
display: inline-flex;
|
|
253366
|
+
flex: none;
|
|
253367
|
+
align-items: flex-start;
|
|
253368
|
+
gap: 8px;
|
|
253369
|
+
color: var(--pptx-foreground, #f9fafb);
|
|
253370
|
+
font: inherit;
|
|
253371
|
+
}
|
|
253372
|
+
.column { display: flex; flex-direction: column; gap: 2px; }
|
|
253373
|
+
label {
|
|
253374
|
+
display: flex;
|
|
253375
|
+
align-items: center;
|
|
253376
|
+
gap: 4px;
|
|
253377
|
+
min-height: 22px;
|
|
253378
|
+
padding: 0 4px;
|
|
253379
|
+
font-size: 10px;
|
|
253380
|
+
white-space: nowrap;
|
|
253381
|
+
cursor: pointer;
|
|
253382
|
+
}
|
|
253383
|
+
label:has([disabled]) { color: var(--pptx-muted-foreground, #9ca3af); cursor: not-allowed; }
|
|
253384
|
+
@media (pointer: coarse), (max-width: 767px) {
|
|
253385
|
+
label { min-height: 44px; font-size: 12px; }
|
|
253386
|
+
}
|
|
253387
|
+
`;
|
|
253388
|
+
function definePptxSlideShowOptions(registry) {
|
|
253389
|
+
if (registry.get("pptx-ui-slide-show-options")) {
|
|
253390
|
+
return;
|
|
253391
|
+
}
|
|
253392
|
+
class SlideShowOptions extends HTMLElement {
|
|
253393
|
+
static observedAttributes = ["disabled"];
|
|
253394
|
+
properties;
|
|
253395
|
+
optionLabels = {};
|
|
253396
|
+
rows = /* @__PURE__ */ new Map();
|
|
253397
|
+
constructor() {
|
|
253398
|
+
super();
|
|
253399
|
+
const root = this.attachShadow({ mode: "open" });
|
|
253400
|
+
attachControlStyles(root, SLIDE_SHOW_OPTIONS_STYLES);
|
|
253401
|
+
const columns = [document.createElement("div"), document.createElement("div")];
|
|
253402
|
+
for (const column of columns) {
|
|
253403
|
+
column.className = "column";
|
|
253404
|
+
}
|
|
253405
|
+
SLIDE_SHOW_OPTIONS.forEach((option, index) => {
|
|
253406
|
+
const label = document.createElement("label");
|
|
253407
|
+
const checkbox = document.createElement("pptx-ui-checkbox");
|
|
253408
|
+
const text22 = document.createTextNode("");
|
|
253409
|
+
label.append(checkbox, text22);
|
|
253410
|
+
label.addEventListener("click", (event) => {
|
|
253411
|
+
event.preventDefault();
|
|
253412
|
+
if (event.target !== checkbox) {
|
|
253413
|
+
checkbox.click();
|
|
253414
|
+
}
|
|
253415
|
+
});
|
|
253416
|
+
columns[index < 3 ? 0 : 1].append(label);
|
|
253417
|
+
this.rows.set(option.id, { checkbox, text: text22 });
|
|
253418
|
+
checkbox.addEventListener("change", (event) => {
|
|
253419
|
+
event.stopPropagation();
|
|
253420
|
+
const change = slideShowOptionChange(option.id, checkbox.checked);
|
|
253421
|
+
this.sync();
|
|
253422
|
+
if (!this.disabled && !option.unsupported && change) {
|
|
253423
|
+
this.dispatchEvent(
|
|
253424
|
+
new CustomEvent("show-options-change", {
|
|
253425
|
+
detail: change,
|
|
253426
|
+
bubbles: true,
|
|
253427
|
+
composed: true
|
|
253428
|
+
})
|
|
253429
|
+
);
|
|
253430
|
+
}
|
|
253431
|
+
});
|
|
253432
|
+
checkbox.addEventListener("input", (event) => event.stopPropagation());
|
|
253433
|
+
});
|
|
253434
|
+
columns[1].append(document.createElement("slot"));
|
|
253435
|
+
root.append(...columns);
|
|
253436
|
+
}
|
|
253437
|
+
connectedCallback() {
|
|
253438
|
+
this.sync();
|
|
253439
|
+
}
|
|
253440
|
+
attributeChangedCallback() {
|
|
253441
|
+
this.sync();
|
|
253442
|
+
}
|
|
253443
|
+
get presentationProperties() {
|
|
253444
|
+
return this.properties;
|
|
253445
|
+
}
|
|
253446
|
+
set presentationProperties(value) {
|
|
253447
|
+
this.properties = value;
|
|
253448
|
+
this.sync();
|
|
253449
|
+
}
|
|
253450
|
+
get labels() {
|
|
253451
|
+
return this.optionLabels;
|
|
253452
|
+
}
|
|
253453
|
+
set labels(value) {
|
|
253454
|
+
this.optionLabels = value ?? {};
|
|
253455
|
+
this.sync();
|
|
253456
|
+
}
|
|
253457
|
+
get disabled() {
|
|
253458
|
+
return this.hasAttribute("disabled");
|
|
253459
|
+
}
|
|
253460
|
+
set disabled(value) {
|
|
253461
|
+
this.toggleAttribute("disabled", Boolean(value));
|
|
253462
|
+
}
|
|
253463
|
+
sync() {
|
|
253464
|
+
for (const option of SLIDE_SHOW_OPTIONS) {
|
|
253465
|
+
const row = this.rows.get(option.id);
|
|
253466
|
+
const label = this.optionLabels[option.id] ?? option.labelKey;
|
|
253467
|
+
row.text.textContent = label;
|
|
253468
|
+
row.checkbox.setAttribute("aria-label", label);
|
|
253469
|
+
row.checkbox.checked = readSlideShowOption(this.properties, option.id);
|
|
253470
|
+
row.checkbox.disabled = this.disabled || option.unsupported;
|
|
253471
|
+
}
|
|
253472
|
+
}
|
|
253473
|
+
}
|
|
253474
|
+
registry.define("pptx-ui-slide-show-options", SlideShowOptions);
|
|
253475
|
+
}
|
|
253476
|
+
var SUBTITLE_SETTINGS_STYLES = `
|
|
253477
|
+
:host { display: inline-flex; }
|
|
253478
|
+
dialog { box-sizing: border-box; width: min(440px, calc(100vw - 32px)); max-height: calc(100vh - 32px);
|
|
253479
|
+
margin: auto; padding: 24px; border: 1px solid var(--pptx-border, #374151); border-radius: 10px;
|
|
253480
|
+
background: var(--pptx-background, #181b20); color: var(--pptx-foreground, #f9fafb); font: 14px/1.5 system-ui; }
|
|
253481
|
+
dialog::backdrop { background: #0008; }
|
|
253482
|
+
h2 { margin: 0 0 12px; font-size: 18px; } p { margin: 0 0 20px; }
|
|
253483
|
+
label { display: block; margin-bottom: 8px; }
|
|
253484
|
+
pptx-ui-select { display: block; width: 100%; }
|
|
253485
|
+
footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 24px; }
|
|
253486
|
+
footer button { padding: 8px 16px; min-height: 44px; border: 1px solid var(--pptx-border, #374151);
|
|
253487
|
+
border-radius: 6px; background: var(--pptx-secondary, #252830); color: inherit; font: inherit; cursor: pointer; }
|
|
253488
|
+
footer button:last-child { background: var(--pptx-primary, #6366f1); color: var(--pptx-primary-foreground, #fff); }
|
|
253489
|
+
footer button:focus-visible { outline: 2px solid var(--pptx-ring, #6366f1); outline-offset: 2px; }
|
|
253490
|
+
@media (forced-colors: active) { dialog { background: Canvas; color: CanvasText; } footer button { color: ButtonText; } }
|
|
253491
|
+
`;
|
|
253492
|
+
function definePptxSubtitleSettings(registry) {
|
|
253493
|
+
if (registry.get("pptx-ui-subtitle-settings")) {
|
|
253494
|
+
return;
|
|
253495
|
+
}
|
|
253496
|
+
class SubtitleSettingsElement extends HTMLElement {
|
|
253497
|
+
current = normalizeSubtitleSettings();
|
|
253498
|
+
text = {
|
|
253499
|
+
title: "Subtitle Settings",
|
|
253500
|
+
language: "Spoken language",
|
|
253501
|
+
browserLanguage: "Browser language",
|
|
253502
|
+
description: "",
|
|
253503
|
+
apply: "Apply",
|
|
253504
|
+
cancel: "Cancel"
|
|
253505
|
+
};
|
|
253506
|
+
command;
|
|
253507
|
+
dialog;
|
|
253508
|
+
heading;
|
|
253509
|
+
description;
|
|
253510
|
+
languageLabel;
|
|
253511
|
+
language;
|
|
253512
|
+
apply;
|
|
253513
|
+
cancel;
|
|
253514
|
+
constructor() {
|
|
253515
|
+
super();
|
|
253516
|
+
const root = this.attachShadow({ mode: "open" });
|
|
253517
|
+
attachControlStyles(root, SUBTITLE_SETTINGS_STYLES);
|
|
253518
|
+
this.command = document.createElement("pptx-ui-ribbon-command");
|
|
253519
|
+
this.command.setAttribute("data-ribbon-control", "slideShow.captions.subtitleSettings");
|
|
253520
|
+
this.command.setAttribute("icon", "captions");
|
|
253521
|
+
this.command.setAttribute("compact", "");
|
|
253522
|
+
this.dialog = document.createElement("dialog");
|
|
253523
|
+
this.heading = document.createElement("h2");
|
|
253524
|
+
this.description = document.createElement("p");
|
|
253525
|
+
this.languageLabel = document.createElement("label");
|
|
253526
|
+
this.language = document.createElement("pptx-ui-select");
|
|
253527
|
+
this.language.id = "spoken-language";
|
|
253528
|
+
this.languageLabel.htmlFor = this.language.id;
|
|
253529
|
+
const footer = document.createElement("footer");
|
|
253530
|
+
this.cancel = document.createElement("button");
|
|
253531
|
+
this.cancel.type = "button";
|
|
253532
|
+
this.apply = document.createElement("button");
|
|
253533
|
+
this.apply.type = "button";
|
|
253534
|
+
footer.append(this.cancel, this.apply);
|
|
253535
|
+
this.dialog.append(this.heading, this.description, this.languageLabel, this.language, footer);
|
|
253536
|
+
root.append(this.command, this.dialog);
|
|
253537
|
+
this.command.addEventListener("command-request", () => this.open());
|
|
253538
|
+
this.cancel.addEventListener("click", () => this.close());
|
|
253539
|
+
this.dialog.addEventListener("cancel", (event) => {
|
|
253540
|
+
event.preventDefault();
|
|
253541
|
+
this.close();
|
|
253542
|
+
});
|
|
253543
|
+
this.dialog.addEventListener("keydown", (event) => {
|
|
253544
|
+
event.stopPropagation();
|
|
253545
|
+
if (event.key === "Tab") {
|
|
253546
|
+
const picker = this.language.shadowRoot?.querySelector("button");
|
|
253547
|
+
const controls2 = [
|
|
253548
|
+
...picker && !picker.disabled ? [picker] : [],
|
|
253549
|
+
this.cancel,
|
|
253550
|
+
this.apply
|
|
253551
|
+
];
|
|
253552
|
+
const active2 = event.composedPath()[0];
|
|
253553
|
+
const index = controls2.findIndex((control) => control === active2);
|
|
253554
|
+
event.preventDefault();
|
|
253555
|
+
controls2[(index + (event.shiftKey ? controls2.length - 1 : 1)) % controls2.length].focus();
|
|
253556
|
+
}
|
|
253557
|
+
if (event.key === "Escape") {
|
|
253558
|
+
event.preventDefault();
|
|
253559
|
+
this.close();
|
|
253560
|
+
}
|
|
253561
|
+
});
|
|
253562
|
+
this.apply.addEventListener("click", () => {
|
|
253563
|
+
const settings = normalizeSubtitleSettings({ spokenLanguage: this.language.value });
|
|
253564
|
+
this.dispatchEvent(
|
|
253565
|
+
new CustomEvent("subtitle-settings-change", {
|
|
253566
|
+
detail: settings,
|
|
253567
|
+
bubbles: true,
|
|
253568
|
+
composed: true
|
|
253569
|
+
})
|
|
253570
|
+
);
|
|
253571
|
+
this.close();
|
|
253572
|
+
});
|
|
253573
|
+
}
|
|
253574
|
+
get settings() {
|
|
253575
|
+
return { ...this.current };
|
|
253576
|
+
}
|
|
253577
|
+
set settings(value) {
|
|
253578
|
+
this.current = normalizeSubtitleSettings(value);
|
|
253579
|
+
}
|
|
253580
|
+
get labels() {
|
|
253581
|
+
return this.text;
|
|
253582
|
+
}
|
|
253583
|
+
set labels(value) {
|
|
253584
|
+
this.text = { ...this.text, ...value };
|
|
253585
|
+
this.sync();
|
|
253586
|
+
}
|
|
253587
|
+
get languageDisabled() {
|
|
253588
|
+
return this.language.disabled;
|
|
253589
|
+
}
|
|
253590
|
+
set languageDisabled(value) {
|
|
253591
|
+
this.language.disabled = value;
|
|
253592
|
+
}
|
|
253593
|
+
connectedCallback() {
|
|
253594
|
+
this.sync();
|
|
253595
|
+
}
|
|
253596
|
+
disconnectedCallback() {
|
|
253597
|
+
if (this.dialog.open) {
|
|
253598
|
+
this.dialog.close();
|
|
253599
|
+
}
|
|
253600
|
+
}
|
|
253601
|
+
open() {
|
|
253602
|
+
if (this.dialog.open) {
|
|
253603
|
+
return;
|
|
253604
|
+
}
|
|
253605
|
+
this.sync();
|
|
253606
|
+
this.language.value = this.current.spokenLanguage;
|
|
253607
|
+
this.dialog.showModal();
|
|
253608
|
+
this.language.shadowRoot?.querySelector("button")?.focus();
|
|
253609
|
+
}
|
|
253610
|
+
close() {
|
|
253611
|
+
this.dialog.close();
|
|
253612
|
+
this.command.shadowRoot?.querySelector("button")?.focus();
|
|
253613
|
+
}
|
|
253614
|
+
sync() {
|
|
253615
|
+
this.command.setAttribute("label", this.text.title);
|
|
253616
|
+
this.dialog.setAttribute("aria-label", this.text.title);
|
|
253617
|
+
this.heading.textContent = this.text.title;
|
|
253618
|
+
this.description.textContent = this.text.description;
|
|
253619
|
+
this.languageLabel.textContent = this.text.language;
|
|
253620
|
+
this.language.setAttribute("aria-label", this.text.language);
|
|
253621
|
+
this.cancel.textContent = this.text.cancel;
|
|
253622
|
+
this.apply.textContent = this.text.apply;
|
|
253623
|
+
this.language.replaceChildren(
|
|
253624
|
+
...SUBTITLE_LANGUAGES.map((value) => {
|
|
253625
|
+
const option = document.createElement("option");
|
|
253626
|
+
option.value = value;
|
|
253627
|
+
option.textContent = value === "auto" ? this.text.browserLanguage : subtitleLanguageLabel(value);
|
|
253628
|
+
return option;
|
|
253629
|
+
})
|
|
253630
|
+
);
|
|
253631
|
+
}
|
|
253632
|
+
}
|
|
253633
|
+
registry.define("pptx-ui-subtitle-settings", SubtitleSettingsElement);
|
|
253634
|
+
}
|
|
253635
|
+
var controls = [
|
|
253636
|
+
["pptx-ui-search", definePptxSearchField],
|
|
253637
|
+
["pptx-ui-checkbox", definePptxCheckbox],
|
|
253638
|
+
["pptx-ui-select", definePptxSelect],
|
|
253639
|
+
["pptx-ui-slide-show-options", definePptxSlideShowOptions],
|
|
253640
|
+
["pptx-ui-ribbon-command", definePptxRibbonCommand],
|
|
253641
|
+
["pptx-ui-ribbon-group", definePptxRibbonGroup],
|
|
253642
|
+
["pptx-ui-ribbon-toggle", definePptxRibbonToggle],
|
|
253643
|
+
["pptx-ui-subtitle-settings", definePptxSubtitleSettings]
|
|
253644
|
+
];
|
|
253645
|
+
function registerPptxWebControls() {
|
|
253646
|
+
if (typeof window === "undefined" || !window.customElements) {
|
|
253647
|
+
return;
|
|
253648
|
+
}
|
|
253649
|
+
const registry = window.customElements;
|
|
253650
|
+
assertWebControlContract(
|
|
253651
|
+
registry,
|
|
253652
|
+
controls.map(([name]) => name)
|
|
253653
|
+
);
|
|
253654
|
+
if (!document.getElementById("pptx-ui-control-hosts")) {
|
|
253655
|
+
const style = document.createElement("style");
|
|
253656
|
+
style.id = "pptx-ui-control-hosts";
|
|
253657
|
+
style.textContent = HOST_STYLES;
|
|
253658
|
+
document.head.append(style);
|
|
253659
|
+
}
|
|
253660
|
+
for (const [name, define] of controls) {
|
|
253661
|
+
if (!registry.get(name)) {
|
|
253662
|
+
define(registry);
|
|
253663
|
+
markWebControlContract(registry.get(name));
|
|
253664
|
+
}
|
|
253665
|
+
}
|
|
253666
|
+
}
|
|
253667
|
+
var defaultThemeColors = {
|
|
253668
|
+
background: "#030712",
|
|
253669
|
+
// gray-950
|
|
253670
|
+
foreground: "#f3f4f6",
|
|
253671
|
+
// gray-100
|
|
253672
|
+
card: "#111827",
|
|
253673
|
+
// gray-900
|
|
253674
|
+
cardForeground: "#f3f4f6",
|
|
253675
|
+
// gray-100
|
|
253676
|
+
popover: "#111827",
|
|
253677
|
+
// gray-900
|
|
253678
|
+
popoverForeground: "#f3f4f6",
|
|
253679
|
+
// gray-100
|
|
253680
|
+
primary: "#6366f1",
|
|
253681
|
+
// indigo-500
|
|
253682
|
+
primaryForeground: "#ffffff",
|
|
253683
|
+
// white
|
|
253684
|
+
secondary: "#1f2937",
|
|
253685
|
+
// gray-800
|
|
253686
|
+
secondaryForeground: "#f3f4f6",
|
|
253687
|
+
// gray-100
|
|
253688
|
+
muted: "#1f2937",
|
|
253689
|
+
// gray-800
|
|
253690
|
+
mutedForeground: "#9ca3af",
|
|
253691
|
+
// gray-400
|
|
253692
|
+
accent: "#1f2937",
|
|
253693
|
+
// gray-800
|
|
253694
|
+
accentForeground: "#f3f4f6",
|
|
253695
|
+
// gray-100
|
|
253696
|
+
destructive: "#ef4444",
|
|
253697
|
+
// red-500
|
|
253698
|
+
destructiveForeground: "#ffffff",
|
|
253699
|
+
// white
|
|
253700
|
+
border: "#374151",
|
|
253701
|
+
// gray-700
|
|
253702
|
+
input: "#374151",
|
|
253703
|
+
// gray-700
|
|
253704
|
+
ring: "#6366f1"
|
|
253705
|
+
// indigo-500
|
|
253706
|
+
};
|
|
253707
|
+
var defaultRadius = "0.5rem";
|
|
253708
|
+
var lightThemeColors = {
|
|
253709
|
+
background: "#f8fafc",
|
|
253710
|
+
// slate-50
|
|
253711
|
+
foreground: "#0f172a",
|
|
253712
|
+
// slate-900
|
|
253713
|
+
card: "#ffffff",
|
|
253714
|
+
cardForeground: "#0f172a",
|
|
253715
|
+
// slate-900
|
|
253716
|
+
popover: "#ffffff",
|
|
253717
|
+
popoverForeground: "#0f172a",
|
|
253718
|
+
// slate-900
|
|
253719
|
+
primary: "#4f46e5",
|
|
253720
|
+
// indigo-600
|
|
253721
|
+
primaryForeground: "#ffffff",
|
|
253722
|
+
secondary: "#f1f5f9",
|
|
253723
|
+
// slate-100
|
|
253724
|
+
secondaryForeground: "#0f172a",
|
|
253725
|
+
// slate-900
|
|
253726
|
+
muted: "#f1f5f9",
|
|
253727
|
+
// slate-100
|
|
253728
|
+
mutedForeground: "#64748b",
|
|
253729
|
+
// slate-500
|
|
253730
|
+
accent: "#f1f5f9",
|
|
253731
|
+
// slate-100
|
|
253732
|
+
accentForeground: "#0f172a",
|
|
253733
|
+
// slate-900
|
|
253734
|
+
destructive: "#dc2626",
|
|
253735
|
+
// red-600
|
|
253736
|
+
destructiveForeground: "#ffffff",
|
|
253737
|
+
border: "#e2e8f0",
|
|
253738
|
+
// slate-200
|
|
253739
|
+
input: "#e2e8f0",
|
|
253740
|
+
// slate-200
|
|
253741
|
+
ring: "#4f46e5"
|
|
253742
|
+
// indigo-600
|
|
253743
|
+
};
|
|
253744
|
+
var lightTheme = {
|
|
253745
|
+
colors: lightThemeColors
|
|
253746
|
+
};
|
|
253747
|
+
var COLOR_KEY_TO_CSS = {
|
|
253748
|
+
background: "background",
|
|
253749
|
+
foreground: "foreground",
|
|
253750
|
+
card: "card",
|
|
253751
|
+
cardForeground: "card-foreground",
|
|
253752
|
+
popover: "popover",
|
|
253753
|
+
popoverForeground: "popover-foreground",
|
|
253754
|
+
primary: "primary",
|
|
253755
|
+
primaryForeground: "primary-foreground",
|
|
253756
|
+
secondary: "secondary",
|
|
253757
|
+
secondaryForeground: "secondary-foreground",
|
|
253758
|
+
muted: "muted",
|
|
253759
|
+
mutedForeground: "muted-foreground",
|
|
253760
|
+
accent: "accent",
|
|
253761
|
+
accentForeground: "accent-foreground",
|
|
253762
|
+
destructive: "destructive",
|
|
253763
|
+
destructiveForeground: "destructive-foreground",
|
|
253764
|
+
border: "border",
|
|
253765
|
+
input: "input",
|
|
253766
|
+
ring: "ring"
|
|
253767
|
+
};
|
|
253768
|
+
var DERIVED_COLOR_TOKENS = [
|
|
253769
|
+
{ source: "primary", cssSuffix: "inspector-active" },
|
|
253770
|
+
{ source: "border", cssSuffix: "inspector-border" }
|
|
253771
|
+
];
|
|
253772
|
+
function themeToCssVars(theme, omitDefaults = false) {
|
|
253773
|
+
const vars = {};
|
|
253774
|
+
if (!theme) {
|
|
253775
|
+
return vars;
|
|
253776
|
+
}
|
|
253777
|
+
const colors = theme.colors;
|
|
253778
|
+
if (colors) {
|
|
253779
|
+
for (const [key2, cssSuffix] of Object.entries(COLOR_KEY_TO_CSS)) {
|
|
253780
|
+
const value = colors[key2];
|
|
253781
|
+
if (value === void 0) {
|
|
253782
|
+
continue;
|
|
253783
|
+
}
|
|
253784
|
+
if (omitDefaults && value === defaultThemeColors[key2]) {
|
|
253785
|
+
continue;
|
|
253786
|
+
}
|
|
253787
|
+
vars[`--pptx-${cssSuffix}`] = value;
|
|
253788
|
+
vars[`--color-${cssSuffix}`] = value;
|
|
253789
|
+
}
|
|
253790
|
+
for (const { source, cssSuffix } of DERIVED_COLOR_TOKENS) {
|
|
253791
|
+
const value = colors[source];
|
|
253792
|
+
if (value === void 0) {
|
|
253793
|
+
continue;
|
|
253794
|
+
}
|
|
253795
|
+
if (omitDefaults && value === defaultThemeColors[source]) {
|
|
253796
|
+
continue;
|
|
253797
|
+
}
|
|
253798
|
+
vars[`--pptx-${cssSuffix}`] = value;
|
|
253799
|
+
}
|
|
253800
|
+
}
|
|
253801
|
+
if (theme.radius !== void 0) {
|
|
253802
|
+
if (!omitDefaults || theme.radius !== defaultRadius) {
|
|
253803
|
+
vars["--pptx-radius"] = theme.radius;
|
|
253804
|
+
const r = theme.radius;
|
|
253805
|
+
vars["--radius-sm"] = `calc(${r} - 4px)`;
|
|
253806
|
+
vars["--radius-md"] = `calc(${r} - 2px)`;
|
|
253807
|
+
vars["--radius-lg"] = r;
|
|
253808
|
+
vars["--radius-xl"] = `calc(${r} + 4px)`;
|
|
253809
|
+
}
|
|
253810
|
+
}
|
|
253811
|
+
if (theme.cssVars) {
|
|
253812
|
+
for (const [key2, value] of Object.entries(theme.cssVars)) {
|
|
253813
|
+
vars[key2] = value;
|
|
253814
|
+
}
|
|
253815
|
+
}
|
|
253816
|
+
return vars;
|
|
253817
|
+
}
|
|
253818
|
+
function defaultCssVars() {
|
|
253819
|
+
const vars = {};
|
|
253820
|
+
for (const [key2, cssSuffix] of Object.entries(COLOR_KEY_TO_CSS)) {
|
|
253821
|
+
vars[`--pptx-${cssSuffix}`] = defaultThemeColors[key2];
|
|
253822
|
+
}
|
|
253823
|
+
for (const { source, cssSuffix } of DERIVED_COLOR_TOKENS) {
|
|
253824
|
+
vars[`--pptx-${cssSuffix}`] = defaultThemeColors[source];
|
|
253825
|
+
}
|
|
253826
|
+
vars["--pptx-radius"] = defaultRadius;
|
|
253827
|
+
return vars;
|
|
253828
|
+
}
|
|
253829
|
+
var vermilionLightColors = {
|
|
253830
|
+
background: "#fbfaf7",
|
|
253831
|
+
foreground: "#1a1d21",
|
|
253832
|
+
card: "#ffffff",
|
|
253833
|
+
cardForeground: "#1a1d21",
|
|
253834
|
+
popover: "#ffffff",
|
|
253835
|
+
popoverForeground: "#1a1d21",
|
|
253836
|
+
primary: "#c2431f",
|
|
253837
|
+
primaryForeground: "#ffffff",
|
|
253838
|
+
secondary: "#f2efe8",
|
|
253839
|
+
secondaryForeground: "#1a1d21",
|
|
253840
|
+
muted: "#f2efe8",
|
|
253841
|
+
mutedForeground: "#5a626e",
|
|
253842
|
+
accent: "rgba(194, 67, 31, 0.08)",
|
|
253843
|
+
accentForeground: "#1a1d21",
|
|
253844
|
+
destructive: "#dc2626",
|
|
253845
|
+
destructiveForeground: "#ffffff",
|
|
253846
|
+
border: "#e6e2d9",
|
|
253847
|
+
input: "#e6e2d9",
|
|
253848
|
+
ring: "#c2431f"
|
|
253849
|
+
};
|
|
253850
|
+
var vermilionDarkColors = {
|
|
253851
|
+
background: "#0f1113",
|
|
253852
|
+
foreground: "#f0efec",
|
|
253853
|
+
card: "#171a1e",
|
|
253854
|
+
cardForeground: "#f0efec",
|
|
253855
|
+
popover: "#171a1e",
|
|
253856
|
+
popoverForeground: "#f0efec",
|
|
253857
|
+
primary: "#e86a40",
|
|
253858
|
+
primaryForeground: "#ffffff",
|
|
253859
|
+
secondary: "#1f242b",
|
|
253860
|
+
secondaryForeground: "#f0efec",
|
|
253861
|
+
muted: "#1f242b",
|
|
253862
|
+
mutedForeground: "#9aa1ab",
|
|
253863
|
+
accent: "rgba(232, 106, 64, 0.1)",
|
|
253864
|
+
accentForeground: "#f0efec",
|
|
253865
|
+
destructive: "#ef4444",
|
|
253866
|
+
destructiveForeground: "#ffffff",
|
|
253867
|
+
border: "#272c33",
|
|
253868
|
+
input: "#272c33",
|
|
253869
|
+
ring: "#e86a40"
|
|
253870
|
+
};
|
|
253871
|
+
var vermilionRadius = "0.375rem";
|
|
253872
|
+
var vermilionLightTheme = {
|
|
253873
|
+
colors: vermilionLightColors,
|
|
253874
|
+
radius: vermilionRadius
|
|
253875
|
+
};
|
|
253876
|
+
var vermilionDarkTheme = {
|
|
253877
|
+
colors: vermilionDarkColors,
|
|
253878
|
+
radius: vermilionRadius
|
|
253879
|
+
};
|
|
253880
|
+
var THEME_CATALOG = [
|
|
253881
|
+
{ key: "default", labelKey: "pptx.settings.theme.default", theme: void 0 },
|
|
253882
|
+
{ key: "light", labelKey: "pptx.settings.theme.light", theme: lightTheme },
|
|
253883
|
+
{
|
|
253884
|
+
key: "vermilionLight",
|
|
253885
|
+
labelKey: "pptx.settings.theme.vermilionLight",
|
|
253886
|
+
theme: vermilionLightTheme
|
|
253887
|
+
},
|
|
253888
|
+
{
|
|
253889
|
+
key: "vermilionDark",
|
|
253890
|
+
labelKey: "pptx.settings.theme.vermilionDark",
|
|
253891
|
+
theme: vermilionDarkTheme
|
|
253892
|
+
}
|
|
253893
|
+
];
|
|
253894
|
+
function resolveThemeCatalogEntry(key2, catalog = THEME_CATALOG) {
|
|
253895
|
+
return catalog.find((entry5) => entry5.key === key2)?.theme;
|
|
253896
|
+
}
|
|
253897
|
+
function corePreset(id) {
|
|
253898
|
+
const preset22 = THEME_PRESETS.find((p) => p.id === id);
|
|
253899
|
+
if (!preset22) {
|
|
253900
|
+
throw new Error(`theme-gallery-presets: core THEME_PRESETS is missing "${id}"`);
|
|
253901
|
+
}
|
|
253902
|
+
return preset22;
|
|
253903
|
+
}
|
|
253904
|
+
var WISP_PRESET = {
|
|
253905
|
+
id: "wisp",
|
|
253906
|
+
name: "Wisp",
|
|
253907
|
+
colorScheme: {
|
|
253908
|
+
dk1: "#000000",
|
|
253909
|
+
lt1: "#FFFFFF",
|
|
253910
|
+
dk2: "#46393B",
|
|
253911
|
+
lt2: "#E8DCD8",
|
|
253912
|
+
accent1: "#A53010",
|
|
253913
|
+
accent2: "#DE7E18",
|
|
253914
|
+
accent3: "#9F8351",
|
|
253915
|
+
accent4: "#728653",
|
|
253916
|
+
accent5: "#92AA4C",
|
|
253917
|
+
accent6: "#6AAC91",
|
|
253918
|
+
hlink: "#FB4F14",
|
|
253919
|
+
folHlink: "#E25839"
|
|
253920
|
+
},
|
|
253921
|
+
fontScheme: {
|
|
253922
|
+
majorFont: { latin: "Century Gothic" },
|
|
253923
|
+
minorFont: { latin: "Century Gothic" }
|
|
253924
|
+
}
|
|
253925
|
+
};
|
|
253926
|
+
var BERLIN_PRESET = {
|
|
253927
|
+
id: "berlin",
|
|
253928
|
+
name: "Berlin",
|
|
253929
|
+
colorScheme: {
|
|
253930
|
+
dk1: "#000000",
|
|
253931
|
+
lt1: "#FFFFFF",
|
|
253932
|
+
dk2: "#3E5C61",
|
|
253933
|
+
lt2: "#D5E0D0",
|
|
253934
|
+
accent1: "#F09415",
|
|
253935
|
+
accent2: "#C1B56B",
|
|
253936
|
+
accent3: "#89C2A3",
|
|
253937
|
+
accent4: "#729BBE",
|
|
253938
|
+
accent5: "#9A90C2",
|
|
253939
|
+
accent6: "#BE8DBE",
|
|
253940
|
+
hlink: "#25A0DA",
|
|
253941
|
+
folHlink: "#FF7F00"
|
|
253942
|
+
},
|
|
253943
|
+
fontScheme: {
|
|
253944
|
+
majorFont: { latin: "Trebuchet MS" },
|
|
253945
|
+
minorFont: { latin: "Trebuchet MS" }
|
|
253946
|
+
}
|
|
253947
|
+
};
|
|
253948
|
+
var SLICE_PRESET = {
|
|
253949
|
+
id: "slice",
|
|
253950
|
+
name: "Slice",
|
|
253951
|
+
colorScheme: {
|
|
253952
|
+
dk1: "#000000",
|
|
253953
|
+
lt1: "#FFFFFF",
|
|
253954
|
+
dk2: "#2E3B4C",
|
|
253955
|
+
lt2: "#C7CDD3",
|
|
253956
|
+
accent1: "#E2751D",
|
|
253957
|
+
accent2: "#C53B23",
|
|
253958
|
+
accent3: "#A13D69",
|
|
253959
|
+
accent4: "#58599E",
|
|
253960
|
+
accent5: "#36749D",
|
|
253961
|
+
accent6: "#4EA39A",
|
|
253962
|
+
hlink: "#FD6B32",
|
|
253963
|
+
folHlink: "#D14D0F"
|
|
253964
|
+
},
|
|
253965
|
+
fontScheme: {
|
|
253966
|
+
majorFont: { latin: "Century Gothic" },
|
|
253967
|
+
minorFont: { latin: "Century Gothic" }
|
|
253968
|
+
}
|
|
253969
|
+
};
|
|
253970
|
+
var DIVIDEND_PRESET = {
|
|
253971
|
+
id: "dividend",
|
|
253972
|
+
name: "Dividend",
|
|
253973
|
+
colorScheme: {
|
|
253974
|
+
dk1: "#000000",
|
|
253975
|
+
lt1: "#FFFFFF",
|
|
253976
|
+
dk2: "#3D3D3D",
|
|
253977
|
+
lt2: "#E1E1E1",
|
|
253978
|
+
accent1: "#4D1434",
|
|
253979
|
+
accent2: "#903163",
|
|
253980
|
+
accent3: "#B2324B",
|
|
253981
|
+
accent4: "#D34817",
|
|
253982
|
+
accent5: "#E8971C",
|
|
253983
|
+
accent6: "#FDCB00",
|
|
253984
|
+
hlink: "#A03068",
|
|
253985
|
+
folHlink: "#C34882"
|
|
253986
|
+
},
|
|
253987
|
+
fontScheme: {
|
|
253988
|
+
majorFont: { latin: "Gill Sans MT" },
|
|
253989
|
+
minorFont: { latin: "Gill Sans MT" }
|
|
253990
|
+
}
|
|
253991
|
+
};
|
|
253992
|
+
[
|
|
253993
|
+
corePreset("office"),
|
|
253994
|
+
corePreset("facet"),
|
|
253995
|
+
corePreset("integral"),
|
|
253996
|
+
corePreset("ion"),
|
|
253997
|
+
corePreset("retrospect"),
|
|
253998
|
+
corePreset("organic"),
|
|
253999
|
+
WISP_PRESET,
|
|
254000
|
+
BERLIN_PRESET,
|
|
254001
|
+
SLICE_PRESET,
|
|
254002
|
+
DIVIDEND_PRESET
|
|
254003
|
+
];
|
|
254004
|
+
function createPresentationLoadResources(handler) {
|
|
254005
|
+
const blobUrls = [];
|
|
254006
|
+
let committed = false;
|
|
254007
|
+
let released = false;
|
|
254008
|
+
return {
|
|
254009
|
+
blobUrls,
|
|
254010
|
+
/** The live viewer now owns the handler and media URLs. */
|
|
254011
|
+
commit() {
|
|
254012
|
+
committed = true;
|
|
254013
|
+
},
|
|
254014
|
+
/** Call in finally, after pending asset reads have settled. */
|
|
254015
|
+
releaseIfUncommitted() {
|
|
254016
|
+
if (committed || released) {
|
|
254017
|
+
return;
|
|
254018
|
+
}
|
|
254019
|
+
released = true;
|
|
254020
|
+
handler.dispose();
|
|
254021
|
+
for (const url of blobUrls) {
|
|
254022
|
+
if (url.startsWith("blob:")) {
|
|
254023
|
+
URL.revokeObjectURL(url);
|
|
254024
|
+
}
|
|
254025
|
+
}
|
|
254026
|
+
}
|
|
254027
|
+
};
|
|
254028
|
+
}
|
|
254029
|
+
function walkAndPatchElements(elements, patch) {
|
|
254030
|
+
let mutated = false;
|
|
254031
|
+
const next = elements.map((el) => {
|
|
254032
|
+
let updated = patch(el);
|
|
254033
|
+
if (updated.type === "group" && updated.children?.length) {
|
|
254034
|
+
const newChildren = walkAndPatchElements(updated.children, patch);
|
|
254035
|
+
if (newChildren !== updated.children) {
|
|
254036
|
+
updated = { ...updated, children: newChildren };
|
|
254037
|
+
}
|
|
254038
|
+
}
|
|
254039
|
+
if (updated !== el) {
|
|
254040
|
+
mutated = true;
|
|
254041
|
+
}
|
|
254042
|
+
return updated;
|
|
254043
|
+
});
|
|
254044
|
+
return mutated ? next : elements;
|
|
254045
|
+
}
|
|
254046
|
+
function applyImagePathPatches(elements, resolvedMap, refs) {
|
|
254047
|
+
const elementPatches = /* @__PURE__ */ new Map();
|
|
254048
|
+
for (const ref of refs) {
|
|
254049
|
+
const url = resolvedMap.get(ref.path);
|
|
254050
|
+
if (!url) {
|
|
254051
|
+
continue;
|
|
254052
|
+
}
|
|
254053
|
+
const existing = elementPatches.get(ref.element.id) ?? {};
|
|
254054
|
+
existing[ref.field] = url;
|
|
254055
|
+
elementPatches.set(ref.element.id, existing);
|
|
254056
|
+
}
|
|
254057
|
+
if (elementPatches.size === 0) {
|
|
254058
|
+
return elements;
|
|
254059
|
+
}
|
|
254060
|
+
return walkAndPatchElements(elements, (el) => {
|
|
254061
|
+
const patch = elementPatches.get(el.id);
|
|
254062
|
+
return patch ? { ...el, ...patch } : el;
|
|
254063
|
+
});
|
|
254064
|
+
}
|
|
254065
|
+
function isExternalUrl(path) {
|
|
254066
|
+
return path.startsWith("http://") || path.startsWith("https://") || path.startsWith("data:") || path.startsWith("blob:");
|
|
254067
|
+
}
|
|
254068
|
+
function collectMediaElements(elements, collector) {
|
|
254069
|
+
for (const element of elements) {
|
|
254070
|
+
if (element.type === "media") {
|
|
254071
|
+
collector.push(element);
|
|
254072
|
+
continue;
|
|
254073
|
+
}
|
|
254074
|
+
if (element.type === "group" && element.children?.length) {
|
|
254075
|
+
collectMediaElements(element.children, collector);
|
|
254076
|
+
}
|
|
254077
|
+
}
|
|
254078
|
+
}
|
|
254079
|
+
function collectImagePaths(slides) {
|
|
254080
|
+
const paths = /* @__PURE__ */ new Set();
|
|
254081
|
+
const refs = [];
|
|
254082
|
+
const walkElements = (elements) => {
|
|
254083
|
+
for (const el of elements) {
|
|
254084
|
+
if (el.type === "picture" || el.type === "image") {
|
|
254085
|
+
const pic = el;
|
|
254086
|
+
if (pic.imagePath && !pic.imageData && !isExternalUrl(pic.imagePath)) {
|
|
254087
|
+
paths.add(pic.imagePath);
|
|
254088
|
+
refs.push({ element: el, field: "imageData", path: pic.imagePath });
|
|
254089
|
+
}
|
|
254090
|
+
if (pic.svgPath && !pic.svgData && !isExternalUrl(pic.svgPath)) {
|
|
254091
|
+
paths.add(pic.svgPath);
|
|
254092
|
+
refs.push({ element: el, field: "svgData", path: pic.svgPath });
|
|
254093
|
+
}
|
|
254094
|
+
}
|
|
254095
|
+
if (el.type === "media") {
|
|
254096
|
+
const media = el;
|
|
254097
|
+
if (media.posterFramePath && !media.posterFrameData && !isExternalUrl(media.posterFramePath)) {
|
|
254098
|
+
paths.add(media.posterFramePath);
|
|
254099
|
+
refs.push({
|
|
254100
|
+
element: el,
|
|
254101
|
+
field: "posterFrameData",
|
|
254102
|
+
path: media.posterFramePath
|
|
254103
|
+
});
|
|
254104
|
+
}
|
|
254105
|
+
}
|
|
254106
|
+
if (el.type === "model3d") {
|
|
254107
|
+
const model = el;
|
|
254108
|
+
if (model.modelPath && !model.modelData && !isExternalUrl(model.modelPath)) {
|
|
254109
|
+
paths.add(model.modelPath);
|
|
254110
|
+
refs.push({ element: el, field: "modelData", path: model.modelPath });
|
|
254111
|
+
}
|
|
254112
|
+
const posterNeedsResolution = model.posterImage ? !isExternalUrl(model.posterImage) : !model.imageData;
|
|
254113
|
+
if (model.imagePath && posterNeedsResolution && !isExternalUrl(model.imagePath)) {
|
|
254114
|
+
paths.add(model.imagePath);
|
|
254115
|
+
refs.push({ element: el, field: "posterImage", path: model.imagePath });
|
|
254116
|
+
}
|
|
254117
|
+
}
|
|
254118
|
+
if (el.type === "group" && el.children?.length) {
|
|
254119
|
+
walkElements(el.children);
|
|
254120
|
+
}
|
|
254121
|
+
}
|
|
254122
|
+
};
|
|
254123
|
+
for (const slide of slides) {
|
|
254124
|
+
walkElements(slide.elements);
|
|
254125
|
+
}
|
|
254126
|
+
return { paths, refs };
|
|
254127
|
+
}
|
|
254128
|
+
function collectTableCellImagePaths(slides) {
|
|
254129
|
+
const paths = /* @__PURE__ */ new Set();
|
|
254130
|
+
const refs = [];
|
|
254131
|
+
const walkElements = (elements) => {
|
|
254132
|
+
for (const el of elements) {
|
|
254133
|
+
if (el.type === "table") {
|
|
254134
|
+
const rows = el.tableData?.rows ?? [];
|
|
254135
|
+
rows.forEach((row, rowIndex) => {
|
|
254136
|
+
row.cells.forEach((cell, cellIndex) => {
|
|
254137
|
+
const path = cell.style?.backgroundImageFillPath;
|
|
254138
|
+
if (path && !cell.style?.backgroundImageFillData && !isExternalUrl(path)) {
|
|
254139
|
+
paths.add(path);
|
|
254140
|
+
refs.push({ element: el, rowIndex, cellIndex, path });
|
|
254141
|
+
}
|
|
254142
|
+
});
|
|
254143
|
+
});
|
|
254144
|
+
}
|
|
254145
|
+
if (el.type === "group" && el.children?.length) {
|
|
254146
|
+
walkElements(el.children);
|
|
254147
|
+
}
|
|
254148
|
+
}
|
|
254149
|
+
};
|
|
254150
|
+
for (const slide of slides) {
|
|
254151
|
+
walkElements(slide.elements);
|
|
254152
|
+
}
|
|
254153
|
+
return { paths, refs };
|
|
254154
|
+
}
|
|
254155
|
+
function applyTableCellImagePatches(elements, resolvedMap, refs) {
|
|
254156
|
+
const patchesByElementId = /* @__PURE__ */ new Map();
|
|
254157
|
+
for (const ref of refs) {
|
|
254158
|
+
const url = resolvedMap.get(ref.path);
|
|
254159
|
+
if (!url) {
|
|
254160
|
+
continue;
|
|
254161
|
+
}
|
|
254162
|
+
const list2 = patchesByElementId.get(ref.element.id) ?? [];
|
|
254163
|
+
list2.push({ rowIndex: ref.rowIndex, cellIndex: ref.cellIndex, url });
|
|
254164
|
+
patchesByElementId.set(ref.element.id, list2);
|
|
254165
|
+
}
|
|
254166
|
+
if (patchesByElementId.size === 0) {
|
|
254167
|
+
return elements;
|
|
254168
|
+
}
|
|
254169
|
+
return walkAndPatchElements(elements, (el) => {
|
|
254170
|
+
const cellPatches = patchesByElementId.get(el.id);
|
|
254171
|
+
if (!cellPatches || el.type !== "table") {
|
|
254172
|
+
return el;
|
|
254173
|
+
}
|
|
254174
|
+
const table2 = el;
|
|
254175
|
+
const tableData = table2.tableData;
|
|
254176
|
+
if (!tableData) {
|
|
254177
|
+
return el;
|
|
254178
|
+
}
|
|
254179
|
+
const newRows = tableData.rows.map((row, rowIndex) => {
|
|
254180
|
+
const rowPatches = cellPatches.filter((p) => p.rowIndex === rowIndex);
|
|
254181
|
+
if (rowPatches.length === 0) {
|
|
254182
|
+
return row;
|
|
254183
|
+
}
|
|
254184
|
+
const newCells = row.cells.map((cell, cellIndex) => {
|
|
254185
|
+
const patch = rowPatches.find((p) => p.cellIndex === cellIndex);
|
|
254186
|
+
if (!patch || !cell.style) {
|
|
254187
|
+
return cell;
|
|
254188
|
+
}
|
|
254189
|
+
return {
|
|
254190
|
+
...cell,
|
|
254191
|
+
style: { ...cell.style, backgroundImageFillData: patch.url }
|
|
254192
|
+
};
|
|
254193
|
+
});
|
|
254194
|
+
return { ...row, cells: newCells };
|
|
254195
|
+
});
|
|
254196
|
+
return { ...table2, tableData: { ...tableData, rows: newRows } };
|
|
254197
|
+
});
|
|
254198
|
+
}
|
|
254199
|
+
function buildInitialGuides(presentationGuides, firstSlideGuides) {
|
|
254200
|
+
const guides = [];
|
|
254201
|
+
if (presentationGuides) {
|
|
254202
|
+
for (const g2 of presentationGuides) {
|
|
254203
|
+
guides.push({
|
|
254204
|
+
id: g2.id,
|
|
254205
|
+
axis: g2.orientation === "horz" ? "h" : "v",
|
|
254206
|
+
position: guideEmuToPx(g2.positionEmu)
|
|
254207
|
+
});
|
|
254208
|
+
}
|
|
254209
|
+
}
|
|
254210
|
+
if (firstSlideGuides) {
|
|
254211
|
+
for (const g2 of firstSlideGuides) {
|
|
254212
|
+
guides.push({
|
|
254213
|
+
id: g2.id,
|
|
254214
|
+
axis: g2.orientation === "horz" ? "h" : "v",
|
|
254215
|
+
position: guideEmuToPx(g2.positionEmu)
|
|
254216
|
+
});
|
|
254217
|
+
}
|
|
254218
|
+
}
|
|
254219
|
+
return guides;
|
|
254220
|
+
}
|
|
254221
|
+
async function resolveMediaElementSource(mediaElement, handler) {
|
|
254222
|
+
const mediaPath = mediaElement.mediaPath;
|
|
254223
|
+
if (!mediaPath) {
|
|
254224
|
+
return { mediaPath: void 0, url: void 0, isBlobUrl: false, missing: true };
|
|
254225
|
+
}
|
|
254226
|
+
if (isExternalUrl(mediaPath)) {
|
|
254227
|
+
return { mediaPath, url: mediaPath, isBlobUrl: false, missing: false };
|
|
254228
|
+
}
|
|
254229
|
+
try {
|
|
254230
|
+
const isAudioVideo = mediaElement.mediaType === "audio" || mediaElement.mediaType === "video";
|
|
254231
|
+
if (isAudioVideo) {
|
|
254232
|
+
const arrayBuffer = await handler.getMediaArrayBuffer(mediaPath);
|
|
254233
|
+
if (!arrayBuffer) {
|
|
254234
|
+
return { mediaPath, url: void 0, isBlobUrl: false, missing: true };
|
|
254235
|
+
}
|
|
254236
|
+
const mimeType = mediaElement.mediaMimeType || "application/octet-stream";
|
|
254237
|
+
const blobUrl = URL.createObjectURL(new Blob([arrayBuffer], { type: mimeType }));
|
|
254238
|
+
return { mediaPath, url: blobUrl, isBlobUrl: true, missing: false };
|
|
254239
|
+
}
|
|
254240
|
+
const dataUrl = await handler.getImageData(mediaPath);
|
|
254241
|
+
if (!dataUrl) {
|
|
254242
|
+
return { mediaPath, url: void 0, isBlobUrl: false, missing: true };
|
|
254243
|
+
}
|
|
254244
|
+
return { mediaPath, url: dataUrl, isBlobUrl: false, missing: false };
|
|
254245
|
+
} catch {
|
|
254246
|
+
return { mediaPath, url: void 0, isBlobUrl: false, missing: true };
|
|
254247
|
+
}
|
|
254248
|
+
}
|
|
254249
|
+
var TABLE_STYLE_FILL_KEYS = [
|
|
254250
|
+
"wholeTblFill",
|
|
254251
|
+
"band1HFill",
|
|
254252
|
+
"band2HFill",
|
|
254253
|
+
"band1VFill",
|
|
254254
|
+
"band2VFill",
|
|
254255
|
+
"lastColFill",
|
|
254256
|
+
"firstColFill",
|
|
254257
|
+
"lastRowFill",
|
|
254258
|
+
"seCellFill",
|
|
254259
|
+
"swCellFill",
|
|
254260
|
+
"firstRowFill",
|
|
254261
|
+
"neCellFill",
|
|
254262
|
+
"nwCellFill"
|
|
254263
|
+
];
|
|
254264
|
+
function isExternalUrl2(path) {
|
|
254265
|
+
return path.startsWith("http://") || path.startsWith("https://") || path.startsWith("data:") || path.startsWith("blob:");
|
|
254266
|
+
}
|
|
254267
|
+
function collectTableStyleImagePaths(tableStyleMap) {
|
|
254268
|
+
const paths = /* @__PURE__ */ new Set();
|
|
254269
|
+
const refs = [];
|
|
254270
|
+
if (!tableStyleMap) {
|
|
254271
|
+
return { paths, refs };
|
|
254272
|
+
}
|
|
254273
|
+
for (const [styleId, entry5] of Object.entries(tableStyleMap)) {
|
|
254274
|
+
for (const fillKey of TABLE_STYLE_FILL_KEYS) {
|
|
254275
|
+
const fill = entry5[fillKey];
|
|
254276
|
+
const path = fill?.image?.path;
|
|
254277
|
+
if (path && !fill?.image?.data && !isExternalUrl2(path)) {
|
|
254278
|
+
paths.add(path);
|
|
254279
|
+
refs.push({ styleId, fillKey, path });
|
|
254280
|
+
}
|
|
254281
|
+
}
|
|
254282
|
+
}
|
|
254283
|
+
return { paths, refs };
|
|
254284
|
+
}
|
|
254285
|
+
function applyTableStyleImagePatches(tableStyleMap, resolvedMap, refs) {
|
|
254286
|
+
const patchesByStyleId = /* @__PURE__ */ new Map();
|
|
254287
|
+
for (const ref of refs) {
|
|
254288
|
+
const url = resolvedMap.get(ref.path);
|
|
254289
|
+
if (!url) {
|
|
254290
|
+
continue;
|
|
254291
|
+
}
|
|
254292
|
+
const list2 = patchesByStyleId.get(ref.styleId) ?? [];
|
|
254293
|
+
list2.push({ fillKey: ref.fillKey, url });
|
|
254294
|
+
patchesByStyleId.set(ref.styleId, list2);
|
|
254295
|
+
}
|
|
254296
|
+
if (patchesByStyleId.size === 0) {
|
|
254297
|
+
return tableStyleMap;
|
|
254298
|
+
}
|
|
254299
|
+
const next = { ...tableStyleMap };
|
|
254300
|
+
for (const [styleId, patches] of patchesByStyleId) {
|
|
254301
|
+
const entry5 = next[styleId];
|
|
254302
|
+
if (!entry5) {
|
|
254303
|
+
continue;
|
|
254304
|
+
}
|
|
254305
|
+
const patchedEntry = { ...entry5 };
|
|
254306
|
+
for (const { fillKey, url } of patches) {
|
|
254307
|
+
const fill = patchedEntry[fillKey];
|
|
254308
|
+
if (!fill?.image) {
|
|
254309
|
+
continue;
|
|
254310
|
+
}
|
|
254311
|
+
patchedEntry[fillKey] = { ...fill, image: { ...fill.image, data: url } };
|
|
254312
|
+
}
|
|
254313
|
+
next[styleId] = patchedEntry;
|
|
254314
|
+
}
|
|
254315
|
+
return next;
|
|
254316
|
+
}
|
|
254317
|
+
function collectTextFillBlipPaths(slides) {
|
|
254318
|
+
const paths = /* @__PURE__ */ new Set();
|
|
254319
|
+
const refs = [];
|
|
254320
|
+
const walkElements = (elements) => {
|
|
254321
|
+
for (const el of elements) {
|
|
254322
|
+
if (hasTextProperties(el) && el.textSegments) {
|
|
254323
|
+
el.textSegments.forEach((segment, segmentIndex) => {
|
|
254324
|
+
const path = segment.style?.textFillBlipUrl;
|
|
254325
|
+
if (path && !isExternalUrl(path)) {
|
|
254326
|
+
paths.add(path);
|
|
254327
|
+
refs.push({ element: el, segmentIndex, path });
|
|
254328
|
+
}
|
|
254329
|
+
});
|
|
254330
|
+
}
|
|
254331
|
+
if (el.type === "group" && el.children?.length) {
|
|
254332
|
+
walkElements(el.children);
|
|
254333
|
+
}
|
|
254334
|
+
}
|
|
254335
|
+
};
|
|
254336
|
+
for (const slide of slides) {
|
|
254337
|
+
walkElements(slide.elements);
|
|
254338
|
+
}
|
|
254339
|
+
return { paths, refs };
|
|
254340
|
+
}
|
|
254341
|
+
function applyTextFillBlipPatches(elements, resolvedMap, refs) {
|
|
254342
|
+
const patchesByElementId = /* @__PURE__ */ new Map();
|
|
254343
|
+
for (const ref of refs) {
|
|
254344
|
+
const url = resolvedMap.get(ref.path);
|
|
254345
|
+
if (!url) {
|
|
254346
|
+
continue;
|
|
254347
|
+
}
|
|
254348
|
+
const list2 = patchesByElementId.get(ref.element.id) ?? [];
|
|
254349
|
+
list2.push({ segmentIndex: ref.segmentIndex, url });
|
|
254350
|
+
patchesByElementId.set(ref.element.id, list2);
|
|
254351
|
+
}
|
|
254352
|
+
if (patchesByElementId.size === 0) {
|
|
254353
|
+
return elements;
|
|
254354
|
+
}
|
|
254355
|
+
return walkAndPatchElements(elements, (el) => {
|
|
254356
|
+
const segmentPatches = patchesByElementId.get(el.id);
|
|
254357
|
+
if (!segmentPatches || !hasTextProperties(el) || !el.textSegments) {
|
|
254358
|
+
return el;
|
|
254359
|
+
}
|
|
254360
|
+
const newSegments = el.textSegments.map((segment, segmentIndex) => {
|
|
254361
|
+
const patch = segmentPatches.find((p) => p.segmentIndex === segmentIndex);
|
|
254362
|
+
if (!patch || !segment.style) {
|
|
254363
|
+
return segment;
|
|
254364
|
+
}
|
|
254365
|
+
return { ...segment, style: { ...segment.style, textFillBlipUrl: patch.url } };
|
|
254366
|
+
});
|
|
254367
|
+
return { ...el, textSegments: newSegments };
|
|
254368
|
+
});
|
|
254369
|
+
}
|
|
254370
|
+
async function resolveTableCellImageUrls(slides, getImageData) {
|
|
254371
|
+
const { paths, refs } = collectTableCellImagePaths(slides);
|
|
254372
|
+
if (paths.size === 0) {
|
|
254373
|
+
return slides;
|
|
254374
|
+
}
|
|
254375
|
+
const resolvedMap = /* @__PURE__ */ new Map();
|
|
254376
|
+
await Promise.all(
|
|
254377
|
+
Array.from(paths).map(async (path) => {
|
|
254378
|
+
try {
|
|
254379
|
+
const url = await getImageData(path);
|
|
254380
|
+
if (url) {
|
|
254381
|
+
resolvedMap.set(path, url);
|
|
254382
|
+
}
|
|
254383
|
+
} catch {
|
|
254384
|
+
}
|
|
254385
|
+
})
|
|
254386
|
+
);
|
|
254387
|
+
if (resolvedMap.size === 0) {
|
|
254388
|
+
return slides;
|
|
254389
|
+
}
|
|
254390
|
+
return slides.map((slide) => {
|
|
254391
|
+
const newElements = applyTableCellImagePatches(slide.elements, resolvedMap, refs);
|
|
254392
|
+
return newElements === slide.elements ? slide : { ...slide, elements: newElements };
|
|
254393
|
+
});
|
|
254394
|
+
}
|
|
254395
|
+
async function resolveTableStyleImageUrls(tableStyleMap, getImageData) {
|
|
254396
|
+
const { paths, refs } = collectTableStyleImagePaths(tableStyleMap);
|
|
254397
|
+
if (paths.size === 0 || !tableStyleMap) {
|
|
254398
|
+
return tableStyleMap;
|
|
254399
|
+
}
|
|
254400
|
+
const resolvedMap = /* @__PURE__ */ new Map();
|
|
254401
|
+
await Promise.all(
|
|
254402
|
+
Array.from(paths).map(async (path) => {
|
|
254403
|
+
try {
|
|
254404
|
+
const url = await getImageData(path);
|
|
254405
|
+
if (url) {
|
|
254406
|
+
resolvedMap.set(path, url);
|
|
254407
|
+
}
|
|
254408
|
+
} catch {
|
|
254409
|
+
}
|
|
254410
|
+
})
|
|
254411
|
+
);
|
|
254412
|
+
if (resolvedMap.size === 0) {
|
|
254413
|
+
return tableStyleMap;
|
|
254414
|
+
}
|
|
254415
|
+
return applyTableStyleImagePatches(tableStyleMap, resolvedMap, refs);
|
|
254416
|
+
}
|
|
254417
|
+
async function resolveTextFillBlipUrls(slides, getImageData) {
|
|
254418
|
+
const { paths, refs } = collectTextFillBlipPaths(slides);
|
|
254419
|
+
if (paths.size === 0) {
|
|
254420
|
+
return slides;
|
|
254421
|
+
}
|
|
254422
|
+
const resolvedMap = /* @__PURE__ */ new Map();
|
|
254423
|
+
await Promise.all(
|
|
254424
|
+
Array.from(paths).map(async (path) => {
|
|
254425
|
+
try {
|
|
254426
|
+
const url = await getImageData(path);
|
|
254427
|
+
if (url) {
|
|
254428
|
+
resolvedMap.set(path, url);
|
|
254429
|
+
}
|
|
254430
|
+
} catch {
|
|
254431
|
+
}
|
|
254432
|
+
})
|
|
254433
|
+
);
|
|
254434
|
+
if (resolvedMap.size === 0) {
|
|
254435
|
+
return slides;
|
|
254436
|
+
}
|
|
254437
|
+
return slides.map((slide) => {
|
|
254438
|
+
const newElements = applyTextFillBlipPatches(slide.elements, resolvedMap, refs);
|
|
254439
|
+
return newElements === slide.elements ? slide : { ...slide, elements: newElements };
|
|
254440
|
+
});
|
|
254441
|
+
}
|
|
254442
|
+
init_constants2();
|
|
253285
254443
|
function isChart3DViewEnabled(flags, chartType) {
|
|
253286
254444
|
if (!flags || !chartType) {
|
|
253287
254445
|
return false;
|
|
@@ -255810,4 +256968,4 @@ registerPptxWebControls();
|
|
|
255810
256968
|
* `<p:extLst>` (optional)
|
|
255811
256969
|
*/
|
|
255812
256970
|
|
|
255813
|
-
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ANIMATION_DIRECTION_LABEL_KEYS, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_BACK_CLASSES, BACKSTAGE_CARD_IDS, BACKSTAGE_NAV, BACKSTAGE_NAV_CLASSES, BACKSTAGE_PAGE_IDS, BACKSTAGE_TEMPLATES, BAR3D_SHAPE_OPTIONS, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CANVAS_CONTEXT_MENU_COMMAND_IDS, CATEGORIES, CHARACTER_SPACING_OPTIONS, CHART_QUICK_ACTION_BUTTON_SIZE, CHART_TYPE_OPTIONS, CINEMATIC_TRANSITION_KEYFRAMES, COLOR_MAP_ALIAS_KEYS, COMMENT_MARKER_SIZE, COMMENT_MENTION_ATTRIBUTE, COMMENT_MENTION_CLASS, COMMON_FONTS, COMMON_FONT_SIZES, COMPOUND_LINE_OPTIONS, CONNECTION_TIMEOUT_MS, CONNECTOR_SITE_SNAP_PX, CONTEXTUAL_TAB_GROUPS, CROP_ASPECT_GROUP_LABEL_KEYS, CROP_ASPECT_LABEL_KEY, CROP_ASPECT_PRESETS, CROP_FILL_LABEL_KEY, CROP_FIT_LABEL_KEY, CROP_HANDLE_ARIA_KEY, CROP_LABEL_KEY, CUSTOM_FONT_ACCEPT, DEBOUNCE_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_INSERT_CHART_KIND, DEFAULT_MORPH_DURATION_MS, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_PALETTE2, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_TRANSITION_DURATION_MS, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PREFERENCES, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DUOTONE_PRESETS, EASE, EDITOR_SHORTCUT_ACTION_IDS, EDIT_POINTS_STYLE, EDIT_POINTS_TARGET_ATTR, EFFECT_SOUND_CATALOGUE, ELEMENT_ACTION_TYPE_OPTIONS, ELEMENT_CONTEXT_MENU_COMMAND_IDS, EMPHASIS_PRESET_VALUES, EMPTY_RESOLVED_CUSTOMIZATION, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPANDED_MAX_HEIGHT, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EditPointsSession, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, FIXED_TAB_GALLERIES, FREEFORM_TOOL_IDS, FREEFORM_TOOL_LABEL_KEYS, FreeformToolSession, GIF_POST_CAPTURE_MAX_SIDE, GRADIENT_TYPE_OPTIONS, GlyphOutlineFontCache, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INDENT_PX, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, INSTANT, LBL, LINE_CAP_OPTIONS, LINE_JOIN_OPTIONS, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_INDENT_LEVEL, MAX_ZOOM_SCALE, MEDIA_CHROME_ATTRIBUTE, MEDIA_FULLSCREEN_OVERLAY_STYLE, MERGE_SHAPES_HINT_KEY, MERGE_SHAPES_LABEL_KEY, MERGE_SHAPES_MENU_ITEMS, MIN_TOUCH_TARGET_PX, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OFFICE_COLOR_SWATCHES, ONLINE_VIDEO_IFRAME_ALLOW, ONLINE_VIDEO_IFRAME_SANDBOX, OPTIONS_PAGE_IDS, OPTIONS_SECTION_IDS, OPTIONS_SETTING_IDS, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, P14_TRANSITION_KEYFRAMES, P14_TRANSITION_KEYFRAMES_2, P14_TRANSITION_KEYFRAMES_ALL, PASTE_SPECIAL_OPTIONS, PATTERN_OPTIONS, PATTERN_PRESET_OPTIONS, PDF_SLIDES_PAGE_HEIGHT_PT, PDF_SLIDES_PAGE_WIDTH_PT, PEN_COLORS, PPTX_OPEN_ACCEPT, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_HIT_TEST_CSS, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTATION_OPEN_EXTENSIONS, PRESENTATION_STAGE_ATTRIBUTE, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RADAR_STYLE_OPTIONS, RANDOM_ELIGIBLE_TYPES, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RIBBON_CONTEXTUAL_TAB_ATTR, RIBBON_CONTROL_ATTR, RIBBON_GALLERY_ATTR, RIBBON_GALLERY_ITEM_ATTR, RIBBON_GALLERY_POPUP_ATTR, RIBBON_GROUP_ATTR, RIBBON_SCOPE_ATTR, RIBBON_SHAPE_SWATCHES, RIBBON_TAB_IDS, RIBBON_TRANSITION_PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_SHOW_OPTIONS, SLIDE_SIZE_PRESETS, SLIDE_TEMPLATES, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_KEYFRAMES_CSS, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, SMARTART_STYLE_LABEL_KEYS, SORTER_MAX_ZOOM, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, STATUS_BAR_CLASSES, STROKE_DASH_OPTIONS2 as STROKE_DASH_OPTIONS, SURFACE_WIREFRAME_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_BORDER_SIDES, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, TABLE_STYLE_EDITOR_PARTS, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_DECORATION_FLAGS, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_BUTTON_IDS, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_MORPH_OPTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_PATTERN_OPTIONS, TRANSITION_SOUND_NONE_VALUE, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SPEED_DURATION_MS, TRANSITION_SPEED_OPTIONS, TRANSITION_THRUBLK_TYPES, TRANSITION_VALID_DIRECTIONS, TRIGGER_OPTIONS, ThemePresets, VIEWER_DIALOG_IDS, VIEWER_EXPORT_FORMAT_IDS, VIEWER_FEATURE_IDS, VIEWER_OPTIONS_TABS, VIEWER_PANEL_IDS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, WHEEL_SPOKE_COUNTS, acceptAutosaveRecovery, acceptsPresentationInput, acknowledgeAutosaveRecovery, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addCommentToList, addQuickAccessCommand, addSection, addSiblingAfter, addSmartArtNodeAsChild, addTableStyleToMap, addTagToCollections, advanceChartMarkDrag, advanceChartValueDrag, advanceMainSequence, alignElements, animationEffectLabel, annotationOverlayZIndex, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyActiveInlineListFormatting, applyAnimationTimelineOrder, applyAutoCorrect, applyCaseTransformToSegments, applyChart3DDrag, applyChart3DSelect, applyChartElementToggle, applyChartPartHighlight, applyChartStylePreset, applyColorChange, applyDuotone, applyFindReplacements, applyFormatToElement, applyHighlightClickStyle, applyImagePathPatches, applyListStyleUpdate, applyMasterViewCrudAction, applyMergeShapesPlan, applyMotionPathPreset, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applyOutlineEdit, applyPasteSpecialFormat, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyRibbonGalleryItem, applyTableStyleDelete, applyTableStyleFieldEdit, applyTableStyleMapChange, applyTableStylePreset, applyTextStyleUpdate, applyThemeOverrideToSlide, applyThemeToData, applyTransitionSoundFile, applyTransitionStockSound, applyUnderlineVariant, assertElementUpdateTarget, attachCollaborationInlineEditor, attachEditorImagePaste, attachInlineListController, attachOverlayKeyboard, attachPresentationVisibilityPause, attachRotateHandlePlacement, authorConnectorBetweenSites, authoredLetterSpacingPx, autosaveSnapshotMark, availableQuickAccessCommands, backstageCardsFor, bar3DShapePatch, beginChartMarkDrag, beginChartValueDrag, beginCropDrag, beginShapeAdjustment, beginZoomExcursion, bindInlineListParagraph, bindInlineListRun, borrowExternalCollaborationAwareness, bringForward, bringToFront, build3DExtrusionData, buildActiveSessionUsers, buildAnimationTimelineBars, buildAnimationTimelineRows, buildBarActions, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildCanvasContextMenuEntries, buildChartMarkDragGeometry, buildChartQuickActionsDescriptor, buildChartViewModel, buildChromeStyle, buildCollaborationShareUrl, buildCommentMarkers, buildContentPartStrokes, buildContextMenuEntries, buildCreateCollaborationConfig, buildCropOverlay, buildCssGradientFromShapeStyle, buildDeckSaveOptions, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildFontCatalog, buildFreeformShapeElement, buildGlyphEnvelopeBlock, buildHandoutsHtml, buildHollowHitOutline, buildInitialGuides, buildInkGroupStrokes, buildInlineListStylePatch, buildInlineTextCommitPatch, buildJoinCollaborationConfig, buildLayoutPreviewGeometry, buildLiveInkStrokeView, buildMorphAnimationRules, buildMorphTransitionPlan, buildMotionPathPreview, buildNotesHtml, buildNotesPdfBytes, buildNotesPrintHtml, buildOleContentUpdatePatch, buildOleEditDialogDescriptor, buildOleObjectNamePatch, buildOutline, buildOutlineHtml, buildParagraphs, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildRasterPictureElement, buildRectPathGradient, buildRibbonGallery, buildRunProgramNotice, buildRunTabLines, buildSaveSlides, buildSlidePaneContextMenuEntries, buildSlideTemplateContent, buildSlideTemplateSlide, buildSlidesHtml, buildSmartArtA11y, buildSmartArtPresetData, buildSmartArtPreviewElement, buildStrokeOutline, buildStrokePathD, buildSubpathFillOverlay, buildSubpathPaints, buildSummaryZoomView, buildSvgGradientDef, buildTabContext, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBodyLayoutStyle, buildTextBuildSpec, buildTextStyleOverrideCss, buildThemeColorGrid, buildThemeColorMap, buildThemeColorSwatchGrid, buildTiledSlidesPdfBytes, buildUserFontFaceStyles, buildZoomTransitionOverride, calculateViewportFit, canAddTopLevelNode, canCommitActionType, canCropElement, canDrillDown, canEditElementPoints, canGoNext, canGoPrevious, canGroupSelection, canInteractWithElement, canMergeShapes, canRemoveTopLevelNode, canSetStrokeWidth, canUngroupSelection, canUseClipboard, cancelBuildReveal, cancelCropUpdate, canvasToJpegData, cellRunStyle, cellStyleToCss, centeredSvgTextLines, chartDataLabelsTogglePatch, chartGridlinesPatch, chartGridlinesState, chartPartToAttrs, chartPreserveAspectRatio, checkModifyPassword, clampCropValue, clampFlyoutPosition, clampGifDimensions, clampNotesFontSize, clampOptionNumber, clampPercent2, clampSorterZoom, clampTransitionNumber, clampZoomScale, classifyExtraConnections, classifyMediaType, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearPlaybackTimers, clearStoredViewerPrefs, clearTransitionSound, clientToSlidePoint, cloneElementForPaste, cloneElementUpdates, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collapseChartTitleRunsForEdit, collectConnectorSiteCandidates, collectImagePaths, collectMediaElements, collectReferencedFontFamilies, collectUsedFonts, colorWithOpacity, commentMentionQuery, commentTextSegments, comparePresentation, compatToastStackStyle, compatibilityWarningToasts, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeAnchoredPopupPosition, computeChartLegendLayout, computeColorFilter, computeColumnBoundaries, computeDrawingViewBox, computeEntranceAnimationDelay, computeGridSpacingPx, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSlideIndices, computeSmartArtElementLayout, computeSnapToShape, computeSplitCell, computeVirtualRange, connectorWrapperTransform, contextMenuInspectorAnchor, contextualTabLabelKey, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createActiveAnimationGroup, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createCustomizationController, createDefaultChartElement, createDefaultChartUserShape, createDefaultChartUserShapeGroupChild, createDepartureChannel, createGlyphOutlineLookup, createImageElementFromFile, createInitialPresentationSnapshot, createInlineListModelObserver, createInlineListSeed, createPlainNotesSegments, createPresenceProjector, createPresentationKeyBuffer, createPresentationLoadResources, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createRotationDrag, createSnapshotTextPositions, createSyncGate, createTableStyleEntry, createTouchGestureRecognizer, createViewerOptionsStore, createViewerZoomStore, createWheelStepBuffer, createWriteBackScheduler, cropFill, cropFit, cropModeKeyAction, cropSessionChanged, cropToAspectRatio, cursorForTool, customGeometryPathsToSvgSubpaths, customizeBackstageCards, customizeBackstageNav, customizeCanvasContextMenuEntries, customizeContextMenuEntries, customizeOptionsTabs, cycleSelectableElement, defaultCssVars, defaultRadius, defaultThemeColors, defineThreeViewElement, deleteAutosaveSnapshot, deleteSection, deleteTableStyleFromMap, deleteTagFromCollections, demote, deriveSlideFieldContext, deriveViewportBreakpoints, describeCollaborationShellState, describeFontEmbedding, describeSmartArtBounds, describeTableStyleEditor, detectOrientation, detectTouchDevice, directionValuesFor, discardAutosaveRecovery, distributeElements, downloadBlob, downloadDataUrl, dragCropHandle, editCommentInList, effectiveDirection, effectiveTimingCurve, elementActionToPptxAction, elementBulletKind, elementContainerHeightStyle, elementHitTargetStyle, elementIdSelector, elementLockTogglePatch, elementPictureFilename, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, ensureChartInteractionStyles, erasePresentationInkAt, evenColumnWidths, evenRowHeights, exportDeckJson, extraQuickAccessCommands, fetchGoogleWebfontOutlineBytes, filterCommands, filterHiddenSlideIndices, filterInteractableIds, filterRenderedElements, findChartPartTarget, findConnectorSiteNear, findEraserHitElementId, findInSlides, findSelectedThemeSwatch, findSmartArtNodeText, finishPrintWindow, firstShowSlideIndex, flattenNodes, flattenTagCollections, followingText, forgetSessionDeck, formatAxisValue, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, galleryHasItems, galleryItemLabel, generateBroadcastRoomId, generateElementId, generateNoteLineCount, generateTicks, getActiveXControlOverlayView, getAnimationColorBaseStyle, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getBarFacePicturePixelSampleVersion, getBevelLightingSvgFilter, getCachedNativeImageSize, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getChartUserShapeGroupTransform, getChartUserShapeRowChartBox, getCinematicTransitionAnimations, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getComputedFillStyle, getComputedStrokeStyle, getConnectorEndpointHandles, getConnectorPathGeometry, getContentPartReplayStyles, getCropShapeClipPath, getCurrentParagraphIndex, getDenseGridLayoutPlan, getDensePanelTouchTargetPx, getDraggedShapeAdjustments, getDuotoneCachedResult, getEffectSoundAsset, getEffectSoundState, getEffectStyleSource, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getFragmentedTransitionDescriptor, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFillCounterTransform, getImageFitStyle, getImageSvgFilters, getImageTilingStyle, getInkReplayStyles, getInlineEditorSelectionResult, getLocalStorageUsageSummary, getNonVisualDescriptionFields, getNotesPrintableArea, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDocumentParagraphs, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getOleTypeColor, getOleTypeLabel, getOnlineVideoEmbed, getOverflowSegments, getP14TransitionAnimations, getPatternSvg, getPendingSelectionRestore, getPresetShapeVectorGeometry, getPrintableArea, getResizeHandleHitAreaStyle, getSelectionControlArtworkStyle, getSelectionOutlineColor, getSelectionTextStyleFlags, getSessionTabId, getShapeAdjustmentHandleDescriptors, getShapeConnectionSites, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTableCellBandStyle, getTextBodyRotationTransform, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasGlyphEnvelope, hasMultipleSelectedTableCells, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hasTiltData, hexToRgbUnit, hiddenSlideCue, hideChartSeries, hollowTextFillStyle, inlineElementPointerEvents, inlineGalleryItems, inlineListBodyText, insertCommentMention, insertTableElementColumn, insertTableElementRow, isActionHidden, isBlackboardActive, isBrowserOpenableMime, isBulletMarkerSegment, isCalloutShape, isCellInRect, isCurrentLayout, isDialogAvailable, isDrawingToolVisible, isEditPointsEnabled, isEditableMotionPath, isEditableTextElement, isEditorControlTarget, isEditorTextInputTarget, isElementActionable, isElementLocked, isElementRendered, isExportAbortError, isFeatureEnabled, isHeaderFooterDateTextVisible, isHeaderFooterFooterTextVisible, isHeaderFooterHeaderTextVisible, isHollowShapeElement, isImageLikeElement, isImageTiled, isInkElement, isKeyboardOpen, isLegacyBinaryPresentation, isLinkedTextBox, isMediaFullscreenActive, isMixedContentBlocked, isMobileViewport, isOptionsPageVisible, isPanelVisible, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isSeriesUsingSecondaryAxis, isStrokeOnlyPresetElement, isSupportedPresentationFile, isTemplateElementId3 as isTemplateElementId, isUrlSafe, isWedgeCalloutPresetShape, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, listChartUserShapeRows, listMediaBookmarkOptions, loadAudienceContent, loadSessionDeck, lockResizeAspect, makeCloneId, makeSlideId, mapCustomizedEditorKey, mapEditingWheel, mapInlineTextFormatKey, mapOutlineKey, mapPresentationKey, mapPresentationWheel, mapSlideShowStartKey, mapSlideSorterKey, masterViewBackgroundColor, masterViewCrudActions, masterViewCrudFailureKey, masterViewElements, masterViewPseudoSlide, matchCommentMentionAuthors, mayLeaveSlideShow, measurePreviewGeometry, measureSvgViewportRect, mediaFallbackIcon, mediaFallbackLabelKey, mediaFallbackVisual, mediaPlaybackAttributes, mediaTransportVisible, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, mediaTrimEndMsFromSeconds, mediaTrimEndSeconds, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, modelDataToBlobUrl, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountModel3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, mruColorsPatch, nestedTextDecorationStyle, newTableElement, nextPresentedSlide, nextShowSlideIndex, nextToggleValue, normalizeHexColor2 as normalizeHexColor, normalizeStrokeDashType, normalizeTableStyleGuid, notesSegmentsToSpans, observeElementHeight, observeExternalCollaborationReadiness, observeExternalCollaborationSession, observeYDocSlides, oleActionsVisible, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPendingPrintWindow, openPptxFile, openReadingView, openUrlInNewTab, overlayInlineTextSnapshot, overlayMasterViewInlineSnapshot, overlayPointerInput, paintedElementSize, paintedStrokeWidth, panCropImage, paragraphsToSegments, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, parseSegmentsFromRichEditor, partitionTemplateElements, patchChartData, pickSupportedMimeType, pieceLetterSpacing, placeAudienceWindow, placeCaretAtEnd, placeTileOnPage, placeholderPromptDescriptor, planMergeShapes, playAnimationRibbonPreview, playFeedbackSound, playGroup, playSlideTransitionPreview, pptxActionToElementAction, prepareElementForInsertion, prepareElementUpdateBatch, prepareHtml2CanvasClone, presentationBaseName, presentationEntrySlideIndex, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, probeAutosaveRecovery, probeNativeImageSize, projectDrawingShapes, promote, publishLiveGeometry, publishLiveInlineText, pushRecentColor, quickStyleSwatchCss, radarStylePatch, rasterResultToPngBlob, rasterResultToPngDataUrl, rasterizeElement, rasterizeElementTiledToCanvas, rasterizeElementTiles, reResolveElementColors, reResolveSlideColors, readBackstageRecentFile, readEditableText, readListActivationSelection, readOnlyRecommendation, readRibbonTransitionDraft, readSlideShowOption, readSlidesFromYDoc, readSoundFileAsDataUrl, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, redistributeColumnWidth, registerCollaborationTeardown, registerCrossSlideAudio, registerCustomFont, remapTextToSegments, rememberSessionDeck, removeChartCategory, removeChartSeries, removeCommentFromList, removeEmptyNode, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorder2 as reorder, reorderAnimationTimelineRows, replaceMasterViewElements, replaceOleFile, replyToCommentInList, rerouteConnectorsForMovedElements, resetPresenterTimer, resetSlideLayoutPath, resolve3DRenderingFlags, resolveActionType, resolveActiveRibbonTab, resolveAudienceScreenPlacement, resolveAuthoredCustomShowId, resolveAuthoredSlideRange, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveAutosaveActivation, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, resolveChartKind, resolveChartThreeViewSpec, resolveCollaborationShellEditability, resolveCollaborationShellState, resolveConnectorEndpointUpdate, resolveDefaultFontFamily, resolveDefaultPrintSettings, resolveDirection, resolveDirection8, resolveDisplayedChartType, resolveEditPointsAvailability, resolveEffectiveHiddenActions, resolveElementActionAffordance, resolveElementAriaAttributes, resolveElementHighlightClick, resolveElementInteractivity, resolveExpiredAutosaveSnapshots, resolveExportCaptureDecision, resolveFontKerning, resolveForwardSlideWithZoomReturn, resolveGoogleWebfontHref, resolveGroupChildFill, resolveHistoryDepth, resolveImageResolutionScale, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, resolveMediaBookmarkTimesMs, resolveMediaElementSource, resolveMediaTimeNodeElementIds, resolveMetricTrackingPx, resolveNotesSchematicBodyFontSizePx, resolveNotesSegments, resolveOleType, resolveOleVerbTarget, resolveOptionRootClasses, resolveOrientation, resolvePalette, resolvePresentationAction, resolveProfileInitial, resolveRevealedChartData, resolveRevealedDrawingShapeNodeIds, resolveRevealedDrawingShapes, resolveRevealedSmartArtNodes, resolveScreenTip, resolveScriptFontSet, resolveSelectionPaneRename, resolveShapeGeometry, resolveShowSlideIndexes, resolveSlidePaneClick, resolveSlideSizeSelection, resolveSlideTransition, resolveSmartArtThreeViewSpec, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTemplateBackgroundRows, resolveTextFillBlipUrls, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransitionSoundAction, resolveTransportForServerUrl, resolveViewerAddinRows, resolveViewportFitOptions, resolveWheelSpokeCount, resolveZoomNavigationTarget, restoreFilteredSeries, restoreInlineListBodySelection, restoreSegmentSelection, restoreSessionDeck, ribbonCustomizationCss, ribbonTransitionUpdates, rulerDragToGuidePosition, runPresentationAction, runProgramNoticeStackStyle, safeOpenUrl, sanitizeColor, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveDeckWithPassword, saveViewerProfile, savedPresentationFileName, scaleFontSizeForAutoFit, scaleSlidesForSizeChange, scanAvailableFontFamilies, scheduleAutoAdvanceChain, scheduleMediaTrimAndFade, schemaLabel, scopeLayoutOptionsToSlide, scrollInspectorSectionIntoView, seedRecentColors, segmentFrameCount, segmentStyleToCss, segmentsToEditorHtml, segmentsToParagraphs, segmentsToPlainText, selectGoogleWebfontFamilies, selectedBookmarkOptionValue, selectedParagraphBulletKind, selectionBulletKind, sendBackward, sendToBack, seriesSecondaryAxisPatch, setAfterAnimation, setAfterAnimationColor, setCachedResult, setCellText, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDataLabelsRangeCache, setDuotoneCachedResult, setEffectSound, setEffectStockSound, setMasterViewBackgroundColor, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, setTrigger, setTriggerBookmark, shapeFillChange, shapeOutlineChange, shouldAutoFollowBroadcaster, shouldClearAutosaveCacheOnClose, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldDiscardAutosaveOnSuccessfulSave, shouldLoopContinuously, shouldProbeAutosaveRecovery, shouldRenderHitTarget, shouldRoomSlidesReplaceLoad, shouldShowAccessibilitySection, shouldShowAutosaveRecoveryPrompt, shouldShowElementHandles, shouldShowMediaFullscreenStopButton, shouldStickyActionRow, shouldUseSvgWarp, shouldWriteAutosaveSnapshot, siblingCount, siblingIndex, slideProgressPercent, slideShowOptionChange, slideSizeFromPreset, slideSizeToCanvasPx, slideStatusLabel, snapBoxToGrid, splitCell, splitEastAsianBreaks, splitRunByScriptFont, splitRunForMetrics, splitWordsForUnderline, splitsUnderlineIntoWords, startCropSession, stepFontSizePt, stepPresenterZoom, stopAllPersistentAudio, stopCaptureStream, storeAudienceContent, stripUnderlineDecoration, strokeOutlineViewBox, strokeWidthOf, styleShadowFilter, subscribeBarFacePicturePixelSamples, substituteFieldText, surfaceWireframePatch, svgGradientFillRef, svgLineCap, swapPresentationWindows, switchSmartArtLayout, syncGoogleWebfontStylesheet, tableCellCss, tableContainerCss, tableStyleAssignmentUpdate, templateSchemeFromTheme, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, textFontSizePtToPx, textFontSizePxToPt, themeColorLabel, themeColorSchemesEqual, themeColorSwatchRows, themeSwatchCommit, themeToCssVars, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toElementAxes, toSlideIndex, toggleBlackboard, toggleCommentResolvedInList, togglePresenterTimer, toggleSelectionBullets, toggleSheet, toggleStageElementMedia, toggleText3dExtrusion, transformInlineListCase, transformTextCase, transitionSoundOptions, transitionSoundSelectedValue, transitionStockSoundId, trimmedMediaDurationMs, ungroupElements, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateElement, updateMasterViewElement, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateMediaTrimRange, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewPropertiesPatchFromPreferences, viewerOptionsToPreferences, viewerPreferencesFromViewProperties, visibleContextualTabs, visibleTemplateElements, warpPreviewPath, withChartTitle, withChartUserShapeAdded, withChartUserShapeGroupChildAdded, withChartUserShapeRowChartBoxUpdated, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRemoved, withChartUserShapeRowRotationUpdated, withChartUserShapeRowTextUpdated, withChartUserShapeRowUpdated, withConnectorEndpointUpdate, withFrameSlides, withInlineListDecorationDefaults, withSlideSizeOrientation, withSlidesPerPage, writeStoredViewerPrefs, xmlText };
|
|
256971
|
+
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ANIMATION_DIRECTION_LABEL_KEYS, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_BACK_CLASSES, BACKSTAGE_CARD_IDS, BACKSTAGE_NAV, BACKSTAGE_NAV_CLASSES, BACKSTAGE_PAGE_IDS, BACKSTAGE_TEMPLATES, BAR3D_SHAPE_OPTIONS, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CANVAS_CONTEXT_MENU_COMMAND_IDS, CATEGORIES, CHARACTER_SPACING_OPTIONS, CHART_QUICK_ACTION_BUTTON_SIZE, CHART_TYPE_OPTIONS, CINEMATIC_TRANSITION_KEYFRAMES, COLOR_MAP_ALIAS_KEYS, COMMENT_MARKER_SIZE, COMMENT_MENTION_ATTRIBUTE, COMMENT_MENTION_CLASS, COMMON_FONTS, COMMON_FONT_SIZES, COMPOUND_LINE_OPTIONS, CONNECTION_TIMEOUT_MS, CONNECTOR_SITE_SNAP_PX, CONTEXTUAL_TAB_GROUPS, CROP_ASPECT_GROUP_LABEL_KEYS, CROP_ASPECT_LABEL_KEY, CROP_ASPECT_PRESETS, CROP_FILL_LABEL_KEY, CROP_FIT_LABEL_KEY, CROP_HANDLE_ARIA_KEY, CROP_LABEL_KEY, CUSTOM_FONT_ACCEPT, DEBOUNCE_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_INSERT_CHART_KIND, DEFAULT_MORPH_DURATION_MS, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_PALETTE2, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_TRANSITION_DURATION_MS, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PREFERENCES, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DUOTONE_PRESETS, EASE, EDITOR_SHORTCUT_ACTION_IDS, EDIT_POINTS_STYLE, EDIT_POINTS_TARGET_ATTR, EFFECT_SOUND_CATALOGUE, ELEMENT_ACTION_TYPE_OPTIONS, ELEMENT_CONTEXT_MENU_COMMAND_IDS, EMPHASIS_PRESET_VALUES, EMPTY_RESOLVED_CUSTOMIZATION, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPANDED_MAX_HEIGHT, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EditPointsSession, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, FIXED_TAB_GALLERIES, FREEFORM_TOOL_IDS, FREEFORM_TOOL_LABEL_KEYS, FreeformToolSession, GIF_POST_CAPTURE_MAX_SIDE, GRADIENT_TYPE_OPTIONS, GlyphOutlineFontCache, HANDOUT_OPTIONS, HELP_RIBBON_COMMANDS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INDENT_PX, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, INSTANT, LBL, LINE_CAP_OPTIONS, LINE_JOIN_OPTIONS, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_INDENT_LEVEL, MAX_ZOOM_SCALE, MEDIA_CHROME_ATTRIBUTE, MEDIA_FULLSCREEN_OVERLAY_STYLE, MERGE_SHAPES_HINT_KEY, MERGE_SHAPES_LABEL_KEY, MERGE_SHAPES_MENU_ITEMS, MIN_TOUCH_TARGET_PX, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OFFICE_COLOR_SWATCHES, ONLINE_VIDEO_IFRAME_ALLOW, ONLINE_VIDEO_IFRAME_SANDBOX, OPTIONS_PAGE_IDS, OPTIONS_SECTION_IDS, OPTIONS_SETTING_IDS, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, P14_TRANSITION_KEYFRAMES, P14_TRANSITION_KEYFRAMES_2, P14_TRANSITION_KEYFRAMES_ALL, PASTE_SPECIAL_OPTIONS, PATTERN_OPTIONS, PATTERN_PRESET_OPTIONS, PDF_SLIDES_PAGE_HEIGHT_PT, PDF_SLIDES_PAGE_WIDTH_PT, PEN_COLORS, PPTX_OPEN_ACCEPT, PRESENTATION_ANIM_TRIGGER_ATTRIBUTE, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_HIT_TEST_CSS, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTATION_OPEN_EXTENSIONS, PRESENTATION_STAGE_ATTRIBUTE, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RADAR_STYLE_OPTIONS, RANDOM_ELIGIBLE_TYPES, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RECORD_COMMAND_GROUPS, RIBBON_CONTEXTUAL_TAB_ATTR, RIBBON_CONTROL_ATTR, RIBBON_GALLERY_ATTR, RIBBON_GALLERY_ITEM_ATTR, RIBBON_GALLERY_POPUP_ATTR, RIBBON_GROUP_ATTR, RIBBON_SCOPE_ATTR, RIBBON_SHAPE_SWATCHES, RIBBON_TAB_IDS, RIBBON_TRANSITION_PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_SHOW_COMMAND_GROUPS, SLIDE_SHOW_OPTIONS, SLIDE_SIZE_PRESETS, SLIDE_TEMPLATES, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_KEYFRAMES_CSS, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, SMARTART_STYLE_LABEL_KEYS, SORTER_MAX_ZOOM, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, STATUS_BAR_CLASSES, STROKE_DASH_OPTIONS2 as STROKE_DASH_OPTIONS, SURFACE_WIREFRAME_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_BORDER_SIDES, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, TABLE_STYLE_EDITOR_PARTS, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_DECORATION_FLAGS, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_BUTTON_IDS, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_MORPH_OPTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_PATTERN_OPTIONS, TRANSITION_SOUND_NONE_VALUE, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SPEED_DURATION_MS, TRANSITION_SPEED_OPTIONS, TRANSITION_THRUBLK_TYPES, TRANSITION_VALID_DIRECTIONS, TRIGGER_OPTIONS, ThemePresets, VIEWER_DIALOG_IDS, VIEWER_EXPORT_FORMAT_IDS, VIEWER_FEATURE_IDS, VIEWER_OPTIONS_TABS, VIEWER_PANEL_IDS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, WHEEL_SPOKE_COUNTS, acceptAutosaveRecovery, acceptsPresentationInput, acknowledgeAutosaveRecovery, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addCommentToList, addQuickAccessCommand, addSection, addSiblingAfter, addSmartArtNodeAsChild, addTableStyleToMap, addTagToCollections, advanceChartMarkDrag, advanceChartValueDrag, advanceMainSequence, alignElements, animationEffectLabel, annotationOverlayZIndex, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyActiveInlineListFormatting, applyAnimationTimelineOrder, applyAutoCorrect, applyCaseTransformToSegments, applyChart3DDrag, applyChart3DSelect, applyChartElementToggle, applyChartPartHighlight, applyChartStylePreset, applyColorChange, applyDuotone, applyFindReplacements, applyFormatToElement, applyHighlightClickStyle, applyImagePathPatches, applyListStyleUpdate, applyMasterViewCrudAction, applyMergeShapesPlan, applyMotionPathPreset, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applyOutlineEdit, applyPasteSpecialFormat, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyRibbonGalleryItem, applyTableStyleDelete, applyTableStyleFieldEdit, applyTableStyleMapChange, applyTableStylePreset, applyTextStyleUpdate, applyThemeOverrideToSlide, applyThemeToData, applyTransitionSoundFile, applyTransitionStockSound, applyUnderlineVariant, assertElementUpdateTarget, attachCollaborationInlineEditor, attachEditorImagePaste, attachInlineListController, attachOverlayKeyboard, attachPresentationVisibilityPause, attachRotateHandlePlacement, authorConnectorBetweenSites, authoredLetterSpacingPx, autosaveSnapshotMark, availableQuickAccessCommands, backstageCardsFor, bar3DShapePatch, beginChartMarkDrag, beginChartValueDrag, beginCropDrag, beginShapeAdjustment, beginZoomExcursion, bindInlineListParagraph, bindInlineListRun, borrowExternalCollaborationAwareness, bringForward, bringToFront, build3DExtrusionData, buildActiveSessionUsers, buildAnimationTimelineBars, buildAnimationTimelineRows, buildBarActions, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildCanvasContextMenuEntries, buildChartMarkDragGeometry, buildChartQuickActionsDescriptor, buildChartViewModel, buildChromeStyle, buildCollaborationShareUrl, buildCommentMarkers, buildContentPartStrokes, buildContextMenuEntries, buildCreateCollaborationConfig, buildCropOverlay, buildCssGradientFromShapeStyle, buildDeckSaveOptions, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildFontCatalog, buildFreeformShapeElement, buildGlyphEnvelopeBlock, buildHandoutsHtml, buildHollowHitOutline, buildInitialGuides, buildInkGroupStrokes, buildInlineListStylePatch, buildInlineTextCommitPatch, buildJoinCollaborationConfig, buildLayoutPreviewGeometry, buildLiveInkStrokeView, buildMorphAnimationRules, buildMorphTransitionPlan, buildMotionPathPreview, buildNotesHtml, buildNotesPdfBytes, buildNotesPrintHtml, buildOleContentUpdatePatch, buildOleEditDialogDescriptor, buildOleObjectNamePatch, buildOutline, buildOutlineHtml, buildParagraphs, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildRasterPictureElement, buildRectPathGradient, buildRibbonGallery, buildRunProgramNotice, buildRunTabLines, buildSaveSlides, buildSlidePaneContextMenuEntries, buildSlideTemplateContent, buildSlideTemplateSlide, buildSlidesHtml, buildSmartArtA11y, buildSmartArtPresetData, buildSmartArtPreviewElement, buildStrokeOutline, buildStrokePathD, buildSubpathFillOverlay, buildSubpathPaints, buildSummaryZoomView, buildSvgGradientDef, buildTabContext, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBodyLayoutStyle, buildTextBuildSpec, buildTextStyleOverrideCss, buildThemeColorGrid, buildThemeColorMap, buildThemeColorSwatchGrid, buildTiledSlidesPdfBytes, buildUserFontFaceStyles, buildZoomTransitionOverride, calculateViewportFit, canAddTopLevelNode, canCommitActionType, canCropElement, canDrillDown, canEditElementPoints, canGoNext, canGoPrevious, canGroupSelection, canInteractWithElement, canMergeShapes, canRemoveTopLevelNode, canSetStrokeWidth, canUngroupSelection, canUseClipboard, cancelBuildReveal, cancelCropUpdate, canvasToJpegData, cellRunStyle, cellStyleToCss, centeredSvgTextLines, chartDataLabelsTogglePatch, chartGridlinesPatch, chartGridlinesState, chartPartToAttrs, chartPreserveAspectRatio, checkModifyPassword, clampCropValue, clampFlyoutPosition, clampGifDimensions, clampNotesFontSize, clampOptionNumber, clampPercent2, clampSorterZoom, clampTransitionNumber, clampZoomScale, classifyExtraConnections, classifyMediaType, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearPlaybackTimers, clearStoredViewerPrefs, clearTransitionSound, clientToSlidePoint, cloneElementForPaste, cloneElementUpdates, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collapseChartTitleRunsForEdit, collectConnectorSiteCandidates, collectImagePaths, collectMediaElements, collectReferencedFontFamilies, collectUsedFonts, colorWithOpacity, commentMentionQuery, commentTextSegments, comparePresentation, compatToastStackStyle, compatibilityWarningToasts, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeAnchoredPopupPosition, computeChartLegendLayout, computeColorFilter, computeColumnBoundaries, computeDrawingViewBox, computeEntranceAnimationDelay, computeGridSpacingPx, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSlideIndices, computeSmartArtElementLayout, computeSnapToShape, computeSplitCell, computeVirtualRange, connectorWrapperTransform, contextMenuInspectorAnchor, contextualTabLabelKey, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createActiveAnimationGroup, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createCustomizationController, createDefaultChartElement, createDefaultChartUserShape, createDefaultChartUserShapeGroupChild, createDepartureChannel, createGlyphOutlineLookup, createImageElementFromFile, createInitialPresentationSnapshot, createInlineListModelObserver, createInlineListSeed, createPlainNotesSegments, createPresenceProjector, createPresentationKeyBuffer, createPresentationLoadResources, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createRotationDrag, createSnapshotTextPositions, createSyncGate, createTableStyleEntry, createTouchGestureRecognizer, createViewerOptionsStore, createViewerZoomStore, createWheelStepBuffer, createWriteBackScheduler, cropFill, cropFit, cropModeKeyAction, cropSessionChanged, cropToAspectRatio, cursorForTool, customGeometryPathsToSvgSubpaths, customizeBackstageCards, customizeBackstageNav, customizeCanvasContextMenuEntries, customizeContextMenuEntries, customizeOptionsTabs, cycleSelectableElement, defaultCssVars, defaultRadius, defaultThemeColors, defineThreeViewElement, deleteAutosaveSnapshot, deleteSection, deleteTableStyleFromMap, deleteTagFromCollections, demote, deriveSlideFieldContext, deriveViewportBreakpoints, describeCollaborationShellState, describeFontEmbedding, describeSmartArtBounds, describeTableStyleEditor, detectOrientation, detectTouchDevice, directionValuesFor, discardAutosaveRecovery, distributeElements, downloadBlob, downloadDataUrl, dragCropHandle, editCommentInList, effectiveDirection, effectiveTimingCurve, elementActionToPptxAction, elementBulletKind, elementContainerHeightStyle, elementHitTargetStyle, elementIdSelector, elementLockTogglePatch, elementPictureFilename, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, ensureChartInteractionStyles, erasePresentationInkAt, evenColumnWidths, evenRowHeights, exportDeckJson, extraQuickAccessCommands, fetchGoogleWebfontOutlineBytes, filterCommands, filterHiddenSlideIndices, filterInteractableIds, filterRenderedElements, findChartPartTarget, findConnectorSiteNear, findEraserHitElementId, findInSlides, findSelectedThemeSwatch, findSmartArtNodeText, finishPrintWindow, firstShowSlideIndex, flattenNodes, flattenTagCollections, followingText, forgetSessionDeck, formatAxisValue, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, galleryHasItems, galleryItemLabel, generateBroadcastRoomId, generateElementId, generateNoteLineCount, generateTicks, getActiveXControlOverlayView, getAnimationColorBaseStyle, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getBarFacePicturePixelSampleVersion, getBevelLightingSvgFilter, getCachedNativeImageSize, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getChartUserShapeGroupTransform, getChartUserShapeRowChartBox, getCinematicTransitionAnimations, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getComputedFillStyle, getComputedStrokeStyle, getConnectorEndpointHandles, getConnectorPathGeometry, getContentPartReplayStyles, getCropShapeClipPath, getCurrentParagraphIndex, getDenseGridLayoutPlan, getDensePanelTouchTargetPx, getDraggedShapeAdjustments, getDuotoneCachedResult, getEffectSoundAsset, getEffectSoundState, getEffectStyleSource, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getFragmentedTransitionDescriptor, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFillCounterTransform, getImageFitStyle, getImageSvgFilters, getImageTilingStyle, getInkReplayStyles, getInlineEditorSelectionResult, getLocalStorageUsageSummary, getNonVisualDescriptionFields, getNotesPrintableArea, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDocumentParagraphs, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getOleTypeColor, getOleTypeLabel, getOnlineVideoEmbed, getOverflowSegments, getP14TransitionAnimations, getPatternSvg, getPendingSelectionRestore, getPresetShapeVectorGeometry, getPrintableArea, getResizeHandleHitAreaStyle, getSelectionControlArtworkStyle, getSelectionOutlineColor, getSelectionTextStyleFlags, getSessionTabId, getShapeAdjustmentHandleDescriptors, getShapeConnectionSites, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeSvgFilter, getSpeechRecognitionCtor, getSubstituteFontFamily, getSvgStrokeDasharray, getTableCellBandStyle, getTextBodyRotationTransform, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasGlyphEnvelope, hasMultipleSelectedTableCells, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hasTiltData, hexToRgbUnit, hiddenSlideCue, hideChartSeries, hollowTextFillStyle, inlineElementPointerEvents, inlineGalleryItems, inlineListBodyText, insertCommentMention, insertTableElementColumn, insertTableElementRow, isActionHidden, isBlackboardActive, isBrowserOpenableMime, isBulletMarkerSegment, isCalloutShape, isCellInRect, isCurrentLayout, isDialogAvailable, isDrawingToolVisible, isEditPointsEnabled, isEditableMotionPath, isEditableTextElement, isEditorControlTarget, isEditorTextInputTarget, isElementActionable, isElementLocked, isElementRendered, isExportAbortError, isFeatureEnabled, isHeaderFooterDateTextVisible, isHeaderFooterFooterTextVisible, isHeaderFooterHeaderTextVisible, isHollowShapeElement, isImageLikeElement, isImageTiled, isInkElement, isKeyboardOpen, isLegacyBinaryPresentation, isLinkedTextBox, isMediaFullscreenActive, isMixedContentBlocked, isMobileViewport, isOptionsPageVisible, isPanelVisible, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isSeriesUsingSecondaryAxis, isStrokeOnlyPresetElement, isSupportedPresentationFile, isTemplateElementId3 as isTemplateElementId, isUrlSafe, isWedgeCalloutPresetShape, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, listChartUserShapeRows, listMediaBookmarkOptions, loadAudienceContent, loadSessionDeck, lockResizeAspect, makeCloneId, makeSlideId, mapCustomizedEditorKey, mapEditingWheel, mapInlineTextFormatKey, mapOutlineKey, mapPresentationKey, mapPresentationWheel, mapSlideShowStartKey, mapSlideSorterKey, masterViewBackgroundColor, masterViewCrudActions, masterViewCrudFailureKey, masterViewElements, masterViewPseudoSlide, matchCommentMentionAuthors, mayLeaveSlideShow, measurePreviewGeometry, measureSvgViewportRect, mediaFallbackIcon, mediaFallbackLabelKey, mediaFallbackVisual, mediaPlaybackAttributes, mediaTransportVisible, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, mediaTrimEndMsFromSeconds, mediaTrimEndSeconds, mergeAdditiveSelection, mergeCaptionResults, mergeCells, mergePresentationSnapshot, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, modelDataToBlobUrl, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountModel3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, mruColorsPatch, nestedTextDecorationStyle, newTableElement, nextPresentedSlide, nextShowSlideIndex, nextToggleValue, normalizeHexColor2 as normalizeHexColor, normalizeStrokeDashType, normalizeTableStyleGuid, notesSegmentsToSpans, observeElementHeight, observeExternalCollaborationReadiness, observeExternalCollaborationSession, observeYDocSlides, oleActionsVisible, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPendingPrintWindow, openPptxFile, openReadingView, openUrlInNewTab, overlayInlineTextSnapshot, overlayMasterViewInlineSnapshot, overlayPointerInput, paintedElementSize, paintedStrokeWidth, panCropImage, paragraphsToSegments, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, parseSegmentsFromRichEditor, partitionTemplateElements, patchChartData, pickSupportedMimeType, pieceLetterSpacing, placeAudienceWindow, placeCaretAtEnd, placeTileOnPage, placeholderPromptDescriptor, planMergeShapes, playAnimationRibbonPreview, playFeedbackSound, playGroup, playSlideTransitionPreview, pptxActionToElementAction, prepareElementForInsertion, prepareElementUpdateBatch, prepareHtml2CanvasClone, presentationBaseName, presentationEntrySlideIndex, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, probeAutosaveRecovery, probeNativeImageSize, projectDrawingShapes, promote, publishLiveGeometry, publishLiveInlineText, pushRecentColor, quickStyleSwatchCss, radarStylePatch, rasterResultToPngBlob, rasterResultToPngDataUrl, rasterizeElement, rasterizeElementTiledToCanvas, rasterizeElementTiles, reResolveElementColors, reResolveSlideColors, readBackstageRecentFile, readEditableText, readListActivationSelection, readOnlyRecommendation, readRibbonTransitionDraft, readSlidesFromYDoc, readSoundFileAsDataUrl, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, redistributeColumnWidth, registerCollaborationTeardown, registerCrossSlideAudio, registerCustomFont, remapTextToSegments, rememberSessionDeck, removeChartCategory, removeChartSeries, removeCommentFromList, removeEmptyNode, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorder2 as reorder, reorderAnimationTimelineRows, replaceMasterViewElements, replaceOleFile, replyToCommentInList, rerouteConnectorsForMovedElements, resetPresenterTimer, resetSlideLayoutPath, resolve3DRenderingFlags, resolveActionType, resolveActiveRibbonTab, resolveAudienceScreenPlacement, resolveAuthoredCustomShowId, resolveAuthoredSlideRange, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveAutosaveActivation, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, resolveChartKind, resolveChartThreeViewSpec, resolveCollaborationShellEditability, resolveCollaborationShellState, resolveConnectorEndpointUpdate, resolveDefaultFontFamily, resolveDefaultPrintSettings, resolveDirection, resolveDirection8, resolveDisplayedChartType, resolveEditPointsAvailability, resolveEffectiveHiddenActions, resolveElementActionAffordance, resolveElementAriaAttributes, resolveElementHighlightClick, resolveElementInteractivity, resolveExpiredAutosaveSnapshots, resolveExportCaptureDecision, resolveFontKerning, resolveForwardSlideWithZoomReturn, resolveGoogleWebfontHref, resolveGroupChildFill, resolveHistoryDepth, resolveImageResolutionScale, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, resolveMediaBookmarkTimesMs, resolveMediaElementSource, resolveMediaTimeNodeElementIds, resolveMetricTrackingPx, resolveNotesSchematicBodyFontSizePx, resolveNotesSegments, resolveOleType, resolveOleVerbTarget, resolveOptionRootClasses, resolveOrientation, resolvePalette, resolvePresentationAction, resolveProfileInitial, resolveRevealedChartData, resolveRevealedDrawingShapeNodeIds, resolveRevealedDrawingShapes, resolveRevealedSmartArtNodes, resolveScreenTip, resolveScriptFontSet, resolveSelectionPaneRename, resolveShapeGeometry, resolveShowSlideIndexes, resolveSlidePaneClick, resolveSlideSizeSelection, resolveSlideTransition, resolveSmartArtThreeViewSpec, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTemplateBackgroundRows, resolveTextFillBlipUrls, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransitionSoundAction, resolveTransportForServerUrl, resolveViewerAddinRows, resolveViewportFitOptions, resolveWheelSpokeCount, resolveZoomNavigationTarget, restoreFilteredSeries, restoreInlineListBodySelection, restoreSegmentSelection, restoreSessionDeck, ribbonCustomizationCss, ribbonTransitionUpdates, rulerDragToGuidePosition, runPresentationAction, runProgramNoticeStackStyle, safeOpenUrl, sanitizeColor, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveDeckWithPassword, saveViewerProfile, savedPresentationFileName, scaleFontSizeForAutoFit, scaleSlidesForSizeChange, scanAvailableFontFamilies, scheduleAutoAdvanceChain, scheduleMediaTrimAndFade, schemaLabel, scopeLayoutOptionsToSlide, scrollInspectorSectionIntoView, seedRecentColors, segmentFrameCount, segmentStyleToCss, segmentsToEditorHtml, segmentsToParagraphs, segmentsToPlainText, selectGoogleWebfontFamilies, selectedBookmarkOptionValue, selectedParagraphBulletKind, selectionBulletKind, sendBackward, sendToBack, seriesSecondaryAxisPatch, setAfterAnimation, setAfterAnimationColor, setCachedResult, setCellText, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDataLabelsRangeCache, setDuotoneCachedResult, setEffectSound, setEffectStockSound, setMasterViewBackgroundColor, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, setTrigger, setTriggerBookmark, shapeFillChange, shapeOutlineChange, shouldAutoFollowBroadcaster, shouldClearAutosaveCacheOnClose, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldDiscardAutosaveOnSuccessfulSave, shouldLoopContinuously, shouldProbeAutosaveRecovery, shouldRenderHitTarget, shouldRoomSlidesReplaceLoad, shouldShowAccessibilitySection, shouldShowAutosaveRecoveryPrompt, shouldShowElementHandles, shouldShowMediaFullscreenStopButton, shouldStickyActionRow, shouldUseSvgWarp, shouldWriteAutosaveSnapshot, siblingCount, siblingIndex, slideProgressPercent, slideSizeFromPreset, slideSizeToCanvasPx, slideStatusLabel, snapBoxToGrid, splitCell, splitEastAsianBreaks, splitRunByScriptFont, splitRunForMetrics, splitWordsForUnderline, splitsUnderlineIntoWords, startCropSession, stepFontSizePt, stepPresenterZoom, stopAllPersistentAudio, stopCaptureStream, storeAudienceContent, stripUnderlineDecoration, strokeOutlineViewBox, strokeWidthOf, styleShadowFilter, subscribeBarFacePicturePixelSamples, substituteFieldText, subtitleRecognitionLanguage, subtitleSettingsFromOptions, subtitleSettingsLabels, surfaceWireframePatch, svgGradientFillRef, svgLineCap, swapPresentationWindows, switchSmartArtLayout, syncGoogleWebfontStylesheet, tableCellCss, tableContainerCss, tableStyleAssignmentUpdate, templateSchemeFromTheme, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, textFontSizePtToPx, textFontSizePxToPt, themeColorLabel, themeColorSchemesEqual, themeColorSwatchRows, themeSwatchCommit, themeToCssVars, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toElementAxes, toSlideIndex, toggleBlackboard, toggleCommentResolvedInList, togglePresenterTimer, toggleSelectionBullets, toggleSheet, toggleStageElementMedia, toggleText3dExtrusion, transformInlineListCase, transformTextCase, transitionSoundOptions, transitionSoundSelectedValue, transitionStockSoundId, trimmedMediaDurationMs, ungroupElements, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateElement, updateMasterViewElement, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateSubtitleSettings, updateTagInCollections, validateMediaTrimRange, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewPropertiesPatchFromPreferences, viewerOptionsToPreferences, viewerPreferencesFromViewProperties, visibleContextualTabs, visibleTemplateElements, warpPreviewPath, withChartTitle, withChartUserShapeAdded, withChartUserShapeGroupChildAdded, withChartUserShapeRowChartBoxUpdated, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRemoved, withChartUserShapeRowRotationUpdated, withChartUserShapeRowTextUpdated, withChartUserShapeRowUpdated, withConnectorEndpointUpdate, withFrameSlides, withInlineListDecorationDefaults, withSlideSizeOrientation, withSlidesPerPage, writeStoredViewerPrefs, xmlText };
|