@office-open/pptx 0.7.0 → 0.8.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/README.md +14 -8
- package/dist/index.d.mts +462 -85
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1283 -199
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -5
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { i as __toCommonJS, n as __exportAll, r as __reExport, t as __esmMin } from "./chunk-DHfcOUro.mjs";
|
|
2
|
-
import { AppProperties, BaseXmlComponent, BuilderElement, EmptyElement, Formatter, Formatter as Formatter$1, ImportedXmlComponent, OoxmlMimeType, PPTX_NS, Relationships, XmlComponent, addSmartArtRelationships, appendContentType, buildAttrObject, buildCorePropertiesXmlString, collectPlaceholderKeys, compileMapping, convertEmuToInches, convertEmuToPixels, convertEmuToPixels as convertEmuToPixels$1, convertEmuToPoints, convertInchesToEmu, convertPixelsToEmu, convertPixelsToEmu as convertPixelsToEmu$1, convertPointsToEmu, createPacker, createReplacer, formatId, getReferencedMedia, hasPlaceholders, hashedId, parseArchive, parseCorePropsElement, replaceChartPlaceholders, replaceImagePlaceholders, replaceSmartArtPlaceholders, strFromU8, stringContainerObj, toJson, uniqueId, uniqueNumericIdCreator, uniqueUuid, unzipSync, xsdLineEndSize, xsdRectAlignment, xsdStrikeStyle, xsdTextAlign, xsdTextAnchor, xsdTextCaps, xsdUnderlineStyle, zipAndConvert } from "@office-open/core";
|
|
2
|
+
import { AppProperties, BaseXmlComponent, BuilderElement, EmptyElement, Formatter, Formatter as Formatter$1, ImportedXmlComponent, OoxmlMimeType, PPTX_NS, Relationships, XmlComponent, addSmartArtRelationships, appendContentType, buildAttrObject, buildCorePropertiesXmlString, collectPlaceholderKeys, compileMapping, convertEmuToInches, convertEmuToPixels, convertEmuToPixels as convertEmuToPixels$1, convertEmuToPoints, convertInchesToEmu, convertPixelsToEmu, convertPixelsToEmu as convertPixelsToEmu$1, convertPointsToEmu, createPacker, createReplacer, createTableStyleList, derivePasswordHash, formatId, getReferencedMedia, hasPlaceholders, hashedId, parseArchive, parseCorePropsElement, replaceChartPlaceholders, replaceImagePlaceholders, replaceSmartArtPlaceholders, strFromU8, stringContainerObj, toJson, toUint8Array, uniqueId, uniqueNumericIdCreator, uniqueUuid, unzipSync, xsdLineEndSize, xsdRectAlignment, xsdStrikeStyle, xsdTextAlign, xsdTextAnchor, xsdTextCaps, xsdUnderlineStyle, zipAndConvert } from "@office-open/core";
|
|
3
3
|
import { BevelPresetType, CompoundLine, LineCap, LineJoin, PathShadeType, PenAlignment, PresetDash, PresetGeometry, PresetMaterialType, Stretch, TileFlipMode, buildFill, createBevel, createBlip, createBottomBevel, createColorElement, createColorTransforms, createEffectList, createEffectList as createEffectList$1, createGradientFill, createGradientStop, createGroupTransform2D, createOutline, createOutline as createOutline$1, createScene3D, createScene3D as createScene3D$1, createShape3D, createShape3D as createShape3D$1, createTransform2D, extractBlipFillMedia } from "@office-open/core/drawingml";
|
|
4
4
|
import { ChartCollection, ChartSpace } from "@office-open/core/chart";
|
|
5
5
|
import { attr, attrBool, attrNum, children, colorAttr, escapeXml, findChild, findDeep, js2xml, textOf, xml, xml2js } from "@office-open/xml";
|
|
6
6
|
import { DEFAULT_DRAWING_XML, SmartArtCollection, createDataModel, getColorXml, getLayoutXml, getStyleXml } from "@office-open/core/smartart";
|
|
7
|
-
import {
|
|
7
|
+
import { DefaultTheme } from "@office-open/core/theme";
|
|
8
8
|
export * from "@office-open/core/values";
|
|
9
9
|
//#region src/file/drawingml/effects.ts
|
|
10
10
|
/** Convert PPTX simple color to core SolidFillOptions. */
|
|
@@ -240,6 +240,10 @@ var SlideCommentList = class extends XmlComponent {
|
|
|
240
240
|
...comment.date != null ? { dt: {
|
|
241
241
|
key: "dt",
|
|
242
242
|
value: comment.date
|
|
243
|
+
} } : {},
|
|
244
|
+
...comment.modified !== void 0 ? { mod: {
|
|
245
|
+
key: "mod",
|
|
246
|
+
value: comment.modified ? "1" : "0"
|
|
243
247
|
} } : {}
|
|
244
248
|
},
|
|
245
249
|
children: [new BuilderElement({
|
|
@@ -271,6 +275,7 @@ const PPTX_SLIDE_LAYOUT = "application/vnd.openxmlformats-officedocument.present
|
|
|
271
275
|
const PPTX_THEME = "application/vnd.openxmlformats-officedocument.theme+xml";
|
|
272
276
|
const PPTX_NOTES = "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml";
|
|
273
277
|
const PPTX_NOTES_MASTER = "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml";
|
|
278
|
+
const PPTX_HANDOUT_MASTER = "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml";
|
|
274
279
|
const PPTX_COMMENTS = "application/vnd.openxmlformats-officedocument.presentationml.comments+xml";
|
|
275
280
|
const PPTX_COMMENT_AUTHORS = "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml";
|
|
276
281
|
const PPTX_CHART = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml";
|
|
@@ -372,6 +377,13 @@ var ContentTypes = class extends BaseXmlComponent {
|
|
|
372
377
|
key: "/ppt/notesMasters/notesMaster1.xml"
|
|
373
378
|
});
|
|
374
379
|
}
|
|
380
|
+
addHandoutMaster() {
|
|
381
|
+
this.dynamicEntries.push({
|
|
382
|
+
type: "Override",
|
|
383
|
+
contentType: PPTX_HANDOUT_MASTER,
|
|
384
|
+
key: "/ppt/handoutMasters/handoutMaster1.xml"
|
|
385
|
+
});
|
|
386
|
+
}
|
|
375
387
|
addComments(index) {
|
|
376
388
|
this.dynamicEntries.push({
|
|
377
389
|
type: "Override",
|
|
@@ -585,6 +597,7 @@ function buildParagraphProperties(options) {
|
|
|
585
597
|
if (options.marginIndent !== void 0) attrs.marL = options.marginIndent;
|
|
586
598
|
if (options.marginRight !== void 0) attrs.marR = options.marginRight;
|
|
587
599
|
if (options.defTabSize !== void 0) attrs.defTabSz = options.defTabSize;
|
|
600
|
+
if (options.fontAlignment) attrs.fontAlgn = options.fontAlignment;
|
|
588
601
|
if (Object.keys(attrs).length > 0) children.push({ _attr: attrs });
|
|
589
602
|
if (options.lineSpacing !== void 0) children.push({ "a:lnSpc": [{ "a:spcPct": { _attr: { val: options.lineSpacing * 1e3 } } }] });
|
|
590
603
|
if (options.lineSpacingPoints !== void 0) children.push({ "a:lnSpc": [{ "a:spcPts": { _attr: { val: options.lineSpacingPoints * 100 } } }] });
|
|
@@ -665,13 +678,18 @@ function buildAttrString(options) {
|
|
|
665
678
|
if (options.spacing !== void 0) attrs.push(`spc="${options.spacing}"`);
|
|
666
679
|
if (options.noProof !== void 0) attrs.push(`noProof="${options.noProof ? 1 : 0}"`);
|
|
667
680
|
if (options.dirty !== void 0) attrs.push(`dirty="${options.dirty ? 1 : 0}"`);
|
|
681
|
+
if (options.kumimoji !== void 0) attrs.push(`kumimoji="${options.kumimoji ? 1 : 0}"`);
|
|
682
|
+
if (options.alternateLanguage) attrs.push(`altLang="${options.alternateLanguage}"`);
|
|
683
|
+
if (options.normalizeHeight !== void 0) attrs.push(`normalizeH="${options.normalizeHeight ? 1 : 0}"`);
|
|
684
|
+
if (options.bookmarkMark) attrs.push(`bmk="${options.bookmarkMark}"`);
|
|
685
|
+
if (options.smartTagId) attrs.push(`smtId="${options.smartTagId}"`);
|
|
668
686
|
return attrs.join(" ");
|
|
669
687
|
}
|
|
670
688
|
/**
|
|
671
689
|
* Checks if options have any settable properties.
|
|
672
690
|
*/
|
|
673
691
|
function hasRunProperties(options) {
|
|
674
|
-
return !!(options.fontSize || options.bold !== void 0 || options.italic !== void 0 || options.underline || options.font || options.lang || options.fill || options.hyperlink || options.strike || options.baseline !== void 0 || options.spacing !== void 0 || options.capitalization || options.shadow !== void 0 || options.outline !== void 0 || options.rightToLeft !== void 0 || options.noProof !== void 0 || options.dirty !== void 0);
|
|
692
|
+
return !!(options.fontSize || options.bold !== void 0 || options.italic !== void 0 || options.underline || options.font || options.lang || options.fill || options.hyperlink || options.strike || options.baseline !== void 0 || options.spacing !== void 0 || options.capitalization || options.shadow !== void 0 || options.outline !== void 0 || options.rightToLeft !== void 0 || options.noProof !== void 0 || options.dirty !== void 0 || options.kumimoji !== void 0 || options.alternateLanguage !== void 0 || options.normalizeHeight !== void 0 || options.bookmarkMark !== void 0 || options.smartTagId !== void 0);
|
|
675
693
|
}
|
|
676
694
|
/**
|
|
677
695
|
* a:rPr — Run properties (font, size, color, etc.).
|
|
@@ -712,8 +730,14 @@ var RunProperties = class extends XmlComponent {
|
|
|
712
730
|
parts.push(`<a:ea typeface="${opts.font}"/>`);
|
|
713
731
|
}
|
|
714
732
|
if (opts.hyperlink && hyperlinkKey) {
|
|
715
|
-
const
|
|
716
|
-
|
|
733
|
+
const hl = opts.hyperlink;
|
|
734
|
+
const hlAttrs = [`r:id="{hlink:${hyperlinkKey}}"`];
|
|
735
|
+
if (hl.tooltip) hlAttrs.push(`tooltip="${hl.tooltip}"`);
|
|
736
|
+
if (hl.action) hlAttrs.push(`action="${hl.action}"`);
|
|
737
|
+
if (hl.highlightClick) hlAttrs.push("highlightClick=\"1\"");
|
|
738
|
+
if (hl.endSound) hlAttrs.push("endSnd=\"1\"");
|
|
739
|
+
if (hl.invalidUrl) hlAttrs.push("invalidUrl=\"1\"");
|
|
740
|
+
parts.push(`<a:hlinkClick ${hlAttrs.join(" ")}/>`);
|
|
717
741
|
}
|
|
718
742
|
if (opts.rightToLeft !== void 0) parts.push(`<a:rtl val="${opts.rightToLeft ? 1 : 0}"/>`);
|
|
719
743
|
if (attrStr.length === 0 && parts.length === 0) return "";
|
|
@@ -788,6 +812,8 @@ function buildBodyPr(options) {
|
|
|
788
812
|
if (options.margins?.right !== void 0) attrs.rIns = options.margins.right;
|
|
789
813
|
if (options.columns !== void 0) attrs.numCol = options.columns;
|
|
790
814
|
if (options.columnSpacing !== void 0) attrs.spcCol = options.columnSpacing * 100;
|
|
815
|
+
if (options.marginTop !== void 0) attrs.marT = options.marginTop;
|
|
816
|
+
if (options.marginBottom !== void 0) attrs.marB = options.marginBottom;
|
|
791
817
|
if (Object.keys(attrs).length > 0) bodyPrContent.push({ _attr: attrs });
|
|
792
818
|
bodyPrContent.push(...bodyPrChildren);
|
|
793
819
|
return { "a:bodyPr": bodyPrContent.length === 1 && "_attr" in bodyPrContent[0] ? bodyPrContent[0] : bodyPrContent.length > 0 ? bodyPrContent : {} };
|
|
@@ -1076,30 +1102,81 @@ var NotesBodyPlaceholder = class extends XmlComponent {
|
|
|
1076
1102
|
//#endregion
|
|
1077
1103
|
//#region src/file/presentation-properties.ts
|
|
1078
1104
|
init_xml_components();
|
|
1079
|
-
|
|
1080
|
-
|
|
1105
|
+
const COLOR_MODE_XSD = {
|
|
1106
|
+
blackWhite: "bw",
|
|
1107
|
+
gray: "gray",
|
|
1108
|
+
color: "clr"
|
|
1109
|
+
};
|
|
1110
|
+
function buildWebPrXml(opts) {
|
|
1111
|
+
const attrs = [];
|
|
1112
|
+
if (opts.showAnimation) attrs.push(" showAnimation=\"1\"");
|
|
1113
|
+
if (opts.resizeGraphics === false) attrs.push(" resizeGraphics=\"0\"");
|
|
1114
|
+
if (opts.allowPng) attrs.push(" allowPng=\"1\"");
|
|
1115
|
+
if (opts.relyOnVml) attrs.push(" relyOnVml=\"1\"");
|
|
1116
|
+
if (opts.organizeInFolders === false) attrs.push(" organizeInFolders=\"0\"");
|
|
1117
|
+
if (opts.useLongFilenames === false) attrs.push(" useLongFilenames=\"0\"");
|
|
1118
|
+
if (opts.imageSize) attrs.push(` imgSz="${opts.imageSize}"`);
|
|
1119
|
+
if (opts.encoding) attrs.push(` encoding="${opts.encoding}"`);
|
|
1120
|
+
if (opts.color) attrs.push(` clr="${opts.color}"`);
|
|
1121
|
+
return `<p:webPr${attrs.join("")}/>`;
|
|
1122
|
+
}
|
|
1123
|
+
function buildPrnPrXml(opts) {
|
|
1124
|
+
const attrs = [];
|
|
1125
|
+
if (opts.printWhat) attrs.push(` prnWhat="${opts.printWhat}"`);
|
|
1126
|
+
if (opts.colorMode) attrs.push(` clrMode="${COLOR_MODE_XSD[opts.colorMode]}"`);
|
|
1127
|
+
if (opts.hiddenSlides) attrs.push(" hiddenSlides=\"1\"");
|
|
1128
|
+
if (opts.scaleToFitPaper) attrs.push(" scaleToFitPaper=\"1\"");
|
|
1129
|
+
if (opts.frameSlides) attrs.push(" frameSlides=\"1\"");
|
|
1130
|
+
return `<p:prnPr${attrs.join("")}/>`;
|
|
1131
|
+
}
|
|
1132
|
+
function buildHtmlPubPrXml(opts) {
|
|
1081
1133
|
const attrs = [];
|
|
1082
|
-
if (
|
|
1083
|
-
if (
|
|
1084
|
-
if (
|
|
1085
|
-
|
|
1086
|
-
return `<p:
|
|
1134
|
+
if (opts.showSpeakerNotes === false) attrs.push(" showSpeakerNotes=\"0\"");
|
|
1135
|
+
if (opts.target) attrs.push(` target="${opts.target}"`);
|
|
1136
|
+
if (opts.title) attrs.push(` title="${opts.title}"`);
|
|
1137
|
+
if (opts.rId) attrs.push(` r:id="${opts.rId}"`);
|
|
1138
|
+
return `<p:htmlPubPr${attrs.join("")}><p:sldAll/></p:htmlPubPr>`;
|
|
1139
|
+
}
|
|
1140
|
+
function buildShowPrXml(showOptions) {
|
|
1141
|
+
const showPrAttrs = [];
|
|
1142
|
+
if (showOptions.loop) showPrAttrs.push(" loop=\"1\"");
|
|
1143
|
+
if (showOptions.showNarration === false) showPrAttrs.push(" showNarration=\"0\"");
|
|
1144
|
+
if (showOptions.showAnimation === false) showPrAttrs.push(" showAnimation=\"0\"");
|
|
1145
|
+
if (showOptions.useTimings) showPrAttrs.push(" useTimings=\"1\"");
|
|
1146
|
+
const showType = showOptions.type ?? "present";
|
|
1147
|
+
let showTypeXml;
|
|
1148
|
+
if (showType === "kiosk") showTypeXml = `<p:kiosk${showOptions.restart !== void 0 ? ` restart="${showOptions.restart}"` : ""}/>`;
|
|
1149
|
+
else if (showType === "browse") showTypeXml = `<p:browse${showOptions.showScrollbar === false ? " showScrollbar=\"0\"" : ""}/>`;
|
|
1150
|
+
else showTypeXml = "<p:present/>";
|
|
1151
|
+
let slideListXml = "<p:sldAll/>";
|
|
1152
|
+
if (showOptions.slideRange) slideListXml = `<p:sldRg st="${showOptions.slideRange.start}" end="${showOptions.slideRange.end}"/>`;
|
|
1153
|
+
let penClrXml = "";
|
|
1154
|
+
if (showOptions.penColor) penClrXml = `<p:penClr><a:srgbClr val="${showOptions.penColor}"/></p:penClr>`;
|
|
1155
|
+
return `<p:showPr${showPrAttrs.join("")}>${showTypeXml}${slideListXml}${penClrXml}</p:showPr>`;
|
|
1156
|
+
}
|
|
1157
|
+
function buildPresPropsXml(opts) {
|
|
1158
|
+
const ns = "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\"";
|
|
1159
|
+
if (!opts) return `<p:presentationPr ${ns}/>`;
|
|
1160
|
+
const children = [];
|
|
1161
|
+
if (opts.htmlPublish) children.push(buildHtmlPubPrXml(opts.htmlPublish));
|
|
1162
|
+
if (opts.web) children.push(buildWebPrXml(opts.web));
|
|
1163
|
+
if (opts.print) children.push(buildPrnPrXml(opts.print));
|
|
1164
|
+
if (opts.show) children.push(buildShowPrXml(opts.show));
|
|
1165
|
+
if (children.length === 0) return `<p:presentationPr ${ns}/>`;
|
|
1166
|
+
return `<p:presentationPr ${ns}>${children.join("")}</p:presentationPr>`;
|
|
1087
1167
|
}
|
|
1088
1168
|
var PresentationProperties = class PresentationProperties extends ImportedXmlComponent {
|
|
1089
1169
|
static cache = /* @__PURE__ */ new Map();
|
|
1090
1170
|
key;
|
|
1091
|
-
constructor(
|
|
1171
|
+
constructor(opts) {
|
|
1092
1172
|
super("p:presentationPr");
|
|
1093
|
-
this.key =
|
|
1094
|
-
if (!PresentationProperties.cache.has(this.key)) PresentationProperties.cache.set(this.key, ImportedXmlComponent.fromXmlString(buildPresPropsXml(
|
|
1173
|
+
this.key = opts ? JSON.stringify(opts) : "";
|
|
1174
|
+
if (!PresentationProperties.cache.has(this.key)) PresentationProperties.cache.set(this.key, ImportedXmlComponent.fromXmlString(buildPresPropsXml(opts)));
|
|
1095
1175
|
}
|
|
1096
1176
|
toXml(context) {
|
|
1097
1177
|
return PresentationProperties.cache.get(this.key).toXml(context);
|
|
1098
1178
|
}
|
|
1099
1179
|
};
|
|
1100
|
-
function presPropsKey(o) {
|
|
1101
|
-
return `l${o.loop ? 1 : 0}k${o.kiosk ? 1 : 0}n${o.showNarration ? 1 : 0}t${o.useTimings ? 1 : 0}`;
|
|
1102
|
-
}
|
|
1103
1180
|
//#endregion
|
|
1104
1181
|
//#region src/file/presentation/presentation.ts
|
|
1105
1182
|
init_xml_components();
|
|
@@ -1149,22 +1226,78 @@ var Presentation = class extends XmlComponent {
|
|
|
1149
1226
|
notesMasterRId: rId
|
|
1150
1227
|
};
|
|
1151
1228
|
}
|
|
1229
|
+
setHandoutMasterRId(rId) {
|
|
1230
|
+
this.options = {
|
|
1231
|
+
...this.options,
|
|
1232
|
+
handoutMasterRId: rId
|
|
1233
|
+
};
|
|
1234
|
+
}
|
|
1152
1235
|
toXml(_context) {
|
|
1153
1236
|
const opts = this.options;
|
|
1154
1237
|
const cx = opts.slideWidth ?? 12192e3;
|
|
1155
1238
|
const cy = opts.slideHeight ?? 6858e3;
|
|
1156
|
-
|
|
1239
|
+
const rootAttrs = [];
|
|
1240
|
+
if (opts.serverZoom) rootAttrs.push(` serverZoom="${opts.serverZoom}"`);
|
|
1241
|
+
if (opts.firstSlideNum !== void 0) rootAttrs.push(` firstSlideNum="${opts.firstSlideNum}"`);
|
|
1242
|
+
if (opts.showSpecialPlsOnTitleSld === false) rootAttrs.push(" showSpecialPlsOnTitleSld=\"0\"");
|
|
1243
|
+
if (opts.rtl) rootAttrs.push(" rtl=\"1\"");
|
|
1244
|
+
if (opts.removePersonalInfoOnSave) rootAttrs.push(" removePersonalInfoOnSave=\"1\"");
|
|
1245
|
+
if (opts.compatMode) rootAttrs.push(" compatMode=\"1\"");
|
|
1246
|
+
if (opts.strictFirstAndLastChars === false) rootAttrs.push(" strictFirstAndLastChars=\"0\"");
|
|
1247
|
+
if (opts.embedTrueTypeFonts) rootAttrs.push(" embedTrueTypeFonts=\"1\"");
|
|
1248
|
+
if (opts.saveSubsetFonts) rootAttrs.push(" saveSubsetFonts=\"1\"");
|
|
1249
|
+
if (opts.autoCompressPictures === false) rootAttrs.push(" autoCompressPictures=\"0\"");
|
|
1250
|
+
if (opts.bookmarkIdSeed !== void 0) rootAttrs.push(` bookmarkIdSeed="${opts.bookmarkIdSeed}"`);
|
|
1251
|
+
if (opts.conformance) rootAttrs.push(` conformance="${opts.conformance}"`);
|
|
1252
|
+
let s = `<p:presentation xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"${rootAttrs.join("")}>`;
|
|
1157
1253
|
s += "<p:sldMasterIdLst>";
|
|
1158
1254
|
for (let mi = 0; mi < opts.masterCount; mi++) s += `<p:sldMasterId id="${2147483648 + mi * 12}" r:id="rId${mi + 1}"/>`;
|
|
1159
1255
|
s += "</p:sldMasterIdLst>";
|
|
1160
1256
|
if (opts.notesMasterRId) s += `<p:notesMasterIdLst><p:notesMasterId r:id="rId${opts.notesMasterRId}"/></p:notesMasterIdLst>`;
|
|
1257
|
+
if (opts.handoutMasterRId) s += `<p:handoutMasterIdLst><p:handoutMasterId r:id="rId${opts.handoutMasterRId}"/></p:handoutMasterIdLst>`;
|
|
1161
1258
|
s += "<p:sldIdLst>";
|
|
1162
1259
|
const sRidOff = opts.masterCount + 1;
|
|
1163
1260
|
for (let i = 0; i < opts.slideIds.length; i++) s += `<p:sldId id="${opts.slideIds[i]}" r:id="rId${sRidOff + i}"/>`;
|
|
1164
1261
|
s += "</p:sldIdLst>";
|
|
1165
1262
|
s += `<p:sldSz cx="${cx}" cy="${cy}"/>`;
|
|
1166
1263
|
s += "<p:notesSz cx=\"6858000\" cy=\"9144000\"/>";
|
|
1264
|
+
if (opts.photoAlbum) {
|
|
1265
|
+
const pa = opts.photoAlbum;
|
|
1266
|
+
const paAttrs = [];
|
|
1267
|
+
if (pa.blackWhite) paAttrs.push(" bw=\"1\"");
|
|
1268
|
+
if (pa.showCaptions) paAttrs.push(" showCaptions=\"1\"");
|
|
1269
|
+
if (pa.layout) paAttrs.push(` layout="${pa.layout}"`);
|
|
1270
|
+
if (pa.frame) paAttrs.push(` frame="${pa.frame}"`);
|
|
1271
|
+
s += `<p:photoAlbum${paAttrs.join("")}/>`;
|
|
1272
|
+
}
|
|
1167
1273
|
s += DEFAULT_TEXT_STYLE_XML;
|
|
1274
|
+
if (opts.modifyVerifier) {
|
|
1275
|
+
const mv = opts.modifyVerifier;
|
|
1276
|
+
let derived;
|
|
1277
|
+
if (mv.password !== void 0 && mv.hashValue === void 0) derived = derivePasswordHash(mv.password);
|
|
1278
|
+
const hashValue = mv.hashValue ?? derived?.hashValue;
|
|
1279
|
+
const saltValue = mv.saltValue ?? derived?.saltValue;
|
|
1280
|
+
const spinCount = mv.spinCount ?? derived?.spinCount;
|
|
1281
|
+
const algorithmName = mv.algorithmName ?? derived?.algorithmName;
|
|
1282
|
+
const mvAttrs = [];
|
|
1283
|
+
if (algorithmName) mvAttrs.push(` algorithmName="${algorithmName}"`);
|
|
1284
|
+
if (hashValue) mvAttrs.push(` hashValue="${hashValue}"`);
|
|
1285
|
+
if (saltValue) mvAttrs.push(` saltValue="${saltValue}"`);
|
|
1286
|
+
if (mv.spinValue !== void 0) mvAttrs.push(` spinValue="${mv.spinValue}"`);
|
|
1287
|
+
if (mv.cryptoProviderType) mvAttrs.push(` cryptProviderType="${mv.cryptoProviderType}"`);
|
|
1288
|
+
if (mv.cryptoAlgorithmClass) mvAttrs.push(` cryptAlgorithmClass="${mv.cryptoAlgorithmClass}"`);
|
|
1289
|
+
if (mv.cryptoAlgorithmType) mvAttrs.push(` cryptAlgorithmType="${mv.cryptoAlgorithmType}"`);
|
|
1290
|
+
if (mv.cryptoAlgorithmSid !== void 0) mvAttrs.push(` cryptAlgorithmSid="${mv.cryptoAlgorithmSid}"`);
|
|
1291
|
+
if (spinCount !== void 0) mvAttrs.push(` spinCount="${spinCount}"`);
|
|
1292
|
+
if (mv.saltData) mvAttrs.push(` saltData="${mv.saltData}"`);
|
|
1293
|
+
if (mv.hashData) mvAttrs.push(` hashData="${mv.hashData}"`);
|
|
1294
|
+
if (mv.cryptoProvider) mvAttrs.push(` cryptProvider="${mv.cryptoProvider}"`);
|
|
1295
|
+
if (mv.algorithmExtensionId !== void 0) mvAttrs.push(` algIdExt="${mv.algorithmExtensionId}"`);
|
|
1296
|
+
if (mv.algorithmExtensionSource) mvAttrs.push(` algIdExtSource="${mv.algorithmExtensionSource}"`);
|
|
1297
|
+
if (mv.cryptoProviderTypeExtension !== void 0) mvAttrs.push(` cryptProviderTypeExt="${mv.cryptoProviderTypeExtension}"`);
|
|
1298
|
+
if (mv.cryptoProviderTypeExtensionSource) mvAttrs.push(` cryptProviderTypeExtSource="${mv.cryptoProviderTypeExtensionSource}"`);
|
|
1299
|
+
s += `<p:modifyVerifier${mvAttrs.join("")}/>`;
|
|
1300
|
+
}
|
|
1168
1301
|
s += "</p:presentation>";
|
|
1169
1302
|
return s;
|
|
1170
1303
|
}
|
|
@@ -1593,6 +1726,136 @@ var VideoFrame = class VideoFrame extends MediaFrameBase {
|
|
|
1593
1726
|
}
|
|
1594
1727
|
};
|
|
1595
1728
|
//#endregion
|
|
1729
|
+
//#region src/file/ole/ole-frame.ts
|
|
1730
|
+
/**
|
|
1731
|
+
* OLE Object frame for PresentationML — p:graphicFrame with p:oleObj.
|
|
1732
|
+
*
|
|
1733
|
+
* Embeds an OLE object (e.g., Excel worksheet, Word document) on a slide.
|
|
1734
|
+
*
|
|
1735
|
+
* Reference: OOXML transitional, pml.xsd, CT_OleObject
|
|
1736
|
+
*
|
|
1737
|
+
* @module
|
|
1738
|
+
*/
|
|
1739
|
+
init_xml_components();
|
|
1740
|
+
let nextOleId = 2048;
|
|
1741
|
+
/**
|
|
1742
|
+
* p:graphicFrame — Slide-level graphic frame wrapping an OLE object.
|
|
1743
|
+
*
|
|
1744
|
+
* Produces the AlternateContent wrapper needed by PowerPoint to render OLE objects.
|
|
1745
|
+
*/
|
|
1746
|
+
var OleFrame = class extends XmlComponent {
|
|
1747
|
+
options;
|
|
1748
|
+
constructor(options) {
|
|
1749
|
+
super("p:graphicFrame");
|
|
1750
|
+
this.options = options;
|
|
1751
|
+
const id = nextOleId++;
|
|
1752
|
+
const name = options.name ?? `Object ${id}`;
|
|
1753
|
+
this.root.push(new OleGraphicFrameNonVisual(id, name));
|
|
1754
|
+
this.root.push(new Transform2D({ ...emuPosition(options) }, "p"));
|
|
1755
|
+
this.root.push(new OleGraphic(options));
|
|
1756
|
+
}
|
|
1757
|
+
toXml(context) {
|
|
1758
|
+
const file = context.fileData;
|
|
1759
|
+
if (file?.oleObjects) file.oleObjects.push({
|
|
1760
|
+
key: `ole_${this.options.spid ?? "1"}`,
|
|
1761
|
+
rId: this.options.embed?.rId ?? this.options.link?.rId ?? "",
|
|
1762
|
+
progId: this.options.progId
|
|
1763
|
+
});
|
|
1764
|
+
return super.toXml(context);
|
|
1765
|
+
}
|
|
1766
|
+
};
|
|
1767
|
+
var OleGraphicFrameNonVisual = class extends XmlComponent {
|
|
1768
|
+
constructor(id, name) {
|
|
1769
|
+
super("p:nvGraphicFramePr");
|
|
1770
|
+
this.root.push(new BuilderElement({
|
|
1771
|
+
name: "p:cNvPr",
|
|
1772
|
+
attributes: {
|
|
1773
|
+
id: {
|
|
1774
|
+
key: "id",
|
|
1775
|
+
value: id
|
|
1776
|
+
},
|
|
1777
|
+
name: {
|
|
1778
|
+
key: "name",
|
|
1779
|
+
value: name
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
}));
|
|
1783
|
+
this.root.push(new BuilderElement({
|
|
1784
|
+
name: "p:cNvGraphicFramePr",
|
|
1785
|
+
children: [new BuilderElement({
|
|
1786
|
+
name: "a:graphicFrameLocks",
|
|
1787
|
+
attributes: { noGrp: {
|
|
1788
|
+
key: "noGrp",
|
|
1789
|
+
value: 1
|
|
1790
|
+
} }
|
|
1791
|
+
})]
|
|
1792
|
+
}));
|
|
1793
|
+
this.root.push(new BuilderElement({ name: "p:nvPr" }));
|
|
1794
|
+
}
|
|
1795
|
+
};
|
|
1796
|
+
var OleGraphic = class extends XmlComponent {
|
|
1797
|
+
constructor(options) {
|
|
1798
|
+
super("a:graphic");
|
|
1799
|
+
this.root.push(new OleGraphicData(options));
|
|
1800
|
+
}
|
|
1801
|
+
};
|
|
1802
|
+
var OleGraphicData = class extends XmlComponent {
|
|
1803
|
+
constructor(options) {
|
|
1804
|
+
super("a:graphicData");
|
|
1805
|
+
this.root.push(buildAttrObject({ uri: "http://schemas.openxmlformats.org/presentationml/2006/ole" }));
|
|
1806
|
+
this.root.push(new OleObjectElement(options));
|
|
1807
|
+
}
|
|
1808
|
+
};
|
|
1809
|
+
var OleObjectElement = class extends XmlComponent {
|
|
1810
|
+
constructor(options) {
|
|
1811
|
+
super("p:oleObj");
|
|
1812
|
+
const attrs = { name: options.name ?? "OLE Object" };
|
|
1813
|
+
if (options.spid) attrs.spid = options.spid;
|
|
1814
|
+
if (options.showAsIcon) attrs.showAsIcon = 1;
|
|
1815
|
+
if (options.imgW) attrs.imgW = options.imgW;
|
|
1816
|
+
if (options.imgH) attrs.imgH = options.imgH;
|
|
1817
|
+
if (options.progId) attrs.progId = options.progId;
|
|
1818
|
+
if (options.followColorScheme) attrs.followColorScheme = options.followColorScheme;
|
|
1819
|
+
const rId = options.embed?.rId ?? options.link?.rId;
|
|
1820
|
+
if (rId) attrs["r:id"] = rId;
|
|
1821
|
+
this.root.push(buildAttrObject(attrs));
|
|
1822
|
+
if (options.embed) this.root.push(new BuilderElement({ name: "p:embed" }));
|
|
1823
|
+
else if (options.link) this.root.push(new BuilderElement({
|
|
1824
|
+
name: "p:link",
|
|
1825
|
+
attributes: options.link.autoUpdate ? { updateAutomatic: {
|
|
1826
|
+
key: "updateAutomatic",
|
|
1827
|
+
value: 1
|
|
1828
|
+
} } : void 0
|
|
1829
|
+
}));
|
|
1830
|
+
if (options.imgRId) this.root.push(new OlePic(options));
|
|
1831
|
+
}
|
|
1832
|
+
};
|
|
1833
|
+
var OlePic = class extends XmlComponent {
|
|
1834
|
+
constructor(options) {
|
|
1835
|
+
super("p:pic");
|
|
1836
|
+
this.root.push(new BuilderElement({
|
|
1837
|
+
name: "p:nvPicPr",
|
|
1838
|
+
children: [
|
|
1839
|
+
new BuilderElement({
|
|
1840
|
+
name: "p:cNvPr",
|
|
1841
|
+
attributes: {
|
|
1842
|
+
id: {
|
|
1843
|
+
key: "id",
|
|
1844
|
+
value: 2
|
|
1845
|
+
},
|
|
1846
|
+
name: {
|
|
1847
|
+
key: "name",
|
|
1848
|
+
value: options.name ?? "OLE Preview"
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
}),
|
|
1852
|
+
new BuilderElement({ name: "p:cNvPicPr" }),
|
|
1853
|
+
new BuilderElement({ name: "p:nvPr" })
|
|
1854
|
+
]
|
|
1855
|
+
}));
|
|
1856
|
+
}
|
|
1857
|
+
};
|
|
1858
|
+
//#endregion
|
|
1596
1859
|
//#region src/file/drawingml/blip-fill.ts
|
|
1597
1860
|
init_xml_components();
|
|
1598
1861
|
/**
|
|
@@ -2063,9 +2326,20 @@ var Shape = class Shape extends XmlComponent {
|
|
|
2063
2326
|
if (opts.placeholder) {
|
|
2064
2327
|
const phAttrs = [`type="${opts.placeholder}"`];
|
|
2065
2328
|
if (opts.placeholderIndex !== void 0) phAttrs.push(`idx="${opts.placeholderIndex}"`);
|
|
2329
|
+
if (opts.hasCustomPrompt) phAttrs.push("hasCustomPrompt=\"1\"");
|
|
2066
2330
|
nvPrContent = `<p:nvPr><p:ph ${phAttrs.join(" ")}/></p:nvPr>`;
|
|
2331
|
+
} else if (opts.isPhoto || opts.userDrawn) {
|
|
2332
|
+
const nvPrAttrs = [];
|
|
2333
|
+
if (opts.isPhoto) nvPrAttrs.push("isPhoto=\"1\"");
|
|
2334
|
+
if (opts.userDrawn) nvPrAttrs.push("userDrawn=\"1\"");
|
|
2335
|
+
nvPrContent = `<p:nvPr ${nvPrAttrs.join(" ")}/>`;
|
|
2336
|
+
}
|
|
2337
|
+
let cNvSpPrContent = "<p:cNvSpPr/>";
|
|
2338
|
+
if (opts.locking) {
|
|
2339
|
+
const lockAttrs = buildLockAttrs(opts.locking);
|
|
2340
|
+
if (lockAttrs.length > 0) cNvSpPrContent = `<p:cNvSpPr><a:spLocks ${lockAttrs.join(" ")}/></p:cNvSpPr>`;
|
|
2067
2341
|
}
|
|
2068
|
-
parts.push(`<p:nvSpPr><p:cNvPr id="${id}" name="${escapeXml(name)}"
|
|
2342
|
+
parts.push(`<p:nvSpPr><p:cNvPr id="${id}" name="${escapeXml(name)}"/>${cNvSpPrContent}${nvPrContent}</p:nvSpPr>`);
|
|
2069
2343
|
const spPrXml = new ShapeProperties({
|
|
2070
2344
|
...emuPositionOptional(opts),
|
|
2071
2345
|
geometry: opts.geometry,
|
|
@@ -2078,9 +2352,33 @@ var Shape = class Shape extends XmlComponent {
|
|
|
2078
2352
|
if (spPrXml) parts.push(spPrXml);
|
|
2079
2353
|
const txBody = new TextBody(opts.textBody ?? {});
|
|
2080
2354
|
parts.push(txBody.toXml(context));
|
|
2081
|
-
|
|
2355
|
+
const spAttrs = [];
|
|
2356
|
+
if (opts.useBackgroundFill) spAttrs.push(" useBgFill=\"1\"");
|
|
2357
|
+
if (opts.blackWhiteMode) spAttrs.push(` bwMode="${opts.blackWhiteMode}"`);
|
|
2358
|
+
return `<p:sp${spAttrs.join("")}>${parts.join("")}</p:sp>`;
|
|
2082
2359
|
}
|
|
2083
2360
|
};
|
|
2361
|
+
/** Build locking attribute string[] from ShapeLockingOptions. */
|
|
2362
|
+
function buildLockAttrs(opts) {
|
|
2363
|
+
const attrs = [];
|
|
2364
|
+
for (const key of [
|
|
2365
|
+
"noGrp",
|
|
2366
|
+
"noSelect",
|
|
2367
|
+
"noRot",
|
|
2368
|
+
"noChangeAspect",
|
|
2369
|
+
"noMove",
|
|
2370
|
+
"noResize",
|
|
2371
|
+
"noEditPoints",
|
|
2372
|
+
"noAdjustHandles",
|
|
2373
|
+
"noChangeArrowheads",
|
|
2374
|
+
"noChangeShapeType",
|
|
2375
|
+
"noTextEdit"
|
|
2376
|
+
]) {
|
|
2377
|
+
const val = opts[key];
|
|
2378
|
+
if (val !== void 0) attrs.push(`${key}="${val ? 1 : 0}"`);
|
|
2379
|
+
}
|
|
2380
|
+
return attrs;
|
|
2381
|
+
}
|
|
2084
2382
|
//#endregion
|
|
2085
2383
|
//#region src/file/smartart/smartart-frame.ts
|
|
2086
2384
|
init_xml_components();
|
|
@@ -2272,7 +2570,9 @@ var TableProperties = class extends BaseXmlComponent {
|
|
|
2272
2570
|
if (opts.firstCol !== void 0) attrs.push(`firstCol="${opts.firstCol ? 1 : 0}"`);
|
|
2273
2571
|
if (opts.lastCol !== void 0) attrs.push(`lastCol="${opts.lastCol ? 1 : 0}"`);
|
|
2274
2572
|
if (opts.bandCol !== void 0) attrs.push(`bandCol="${opts.bandCol ? 1 : 0}"`);
|
|
2275
|
-
|
|
2573
|
+
if (attrs.length === 0 && !opts.tableStyleId) return "<a:tblPr/>";
|
|
2574
|
+
const styleId = opts.tableStyleId ? `<a:tableStyleId>${opts.tableStyleId}</a:tableStyleId>` : "";
|
|
2575
|
+
return `<a:tblPr ${attrs.join(" ")}>${styleId}</a:tblPr>`;
|
|
2276
2576
|
}
|
|
2277
2577
|
};
|
|
2278
2578
|
//#endregion
|
|
@@ -2346,6 +2646,8 @@ var TableCell = class extends BaseXmlComponent {
|
|
|
2346
2646
|
const tcAttrs = [];
|
|
2347
2647
|
if (opts.columnSpan !== void 0 && opts.columnSpan > 1) tcAttrs.push(`gridSpan="${opts.columnSpan}"`);
|
|
2348
2648
|
if (opts.rowSpan !== void 0 && opts.rowSpan > 1) tcAttrs.push(`rowSpan="${opts.rowSpan}"`);
|
|
2649
|
+
if (opts.horizontalMerge) tcAttrs.push(`hMerge="${opts.horizontalMerge === "restart" ? "1" : "0"}"`);
|
|
2650
|
+
if (opts.verticalMerge) tcAttrs.push(`vMerge="${opts.verticalMerge === "restart" ? "1" : "0"}"`);
|
|
2349
2651
|
const tcAttrStr = tcAttrs.length > 0 ? ` ${tcAttrs.join(" ")}` : "";
|
|
2350
2652
|
const txParts = [];
|
|
2351
2653
|
const margins = opts.margins;
|
|
@@ -2411,7 +2713,8 @@ var DrawingTable = class extends BaseXmlComponent {
|
|
|
2411
2713
|
bandRow: opts.bandRow,
|
|
2412
2714
|
firstCol: opts.firstCol,
|
|
2413
2715
|
lastCol: opts.lastCol,
|
|
2414
|
-
bandCol: opts.bandCol
|
|
2716
|
+
bandCol: opts.bandCol,
|
|
2717
|
+
tableStyleId: opts.tableStyleId
|
|
2415
2718
|
});
|
|
2416
2719
|
parts.push(tblPr.toXml(context));
|
|
2417
2720
|
const colWidths = opts.columnWidths && opts.columnWidths.length > 0 ? opts.columnWidths : Array.from({ length: opts.rows[0]?.cells.length ?? 1 }, () => 0);
|
|
@@ -2483,6 +2786,7 @@ function coerceChild(child) {
|
|
|
2483
2786
|
if ("audio" in child) return new AudioFrame(child.audio);
|
|
2484
2787
|
if ("group" in child) return new GroupShape(child.group);
|
|
2485
2788
|
if ("smartart" in child) return new SmartArt(child.smartart);
|
|
2789
|
+
if ("ole" in child) return new OleFrame(child.ole);
|
|
2486
2790
|
throw new Error("Unknown slide child type");
|
|
2487
2791
|
}
|
|
2488
2792
|
function coerceMasterChild(child) {
|
|
@@ -2690,7 +2994,7 @@ function buildCustomLayoutXml(def) {
|
|
|
2690
2994
|
const offset = nextId - 1;
|
|
2691
2995
|
shapes.push(childrenXml.replace(/ id="(\d+)"/g, (_, n) => ` id="${parseInt(n) + offset}"`));
|
|
2692
2996
|
}
|
|
2693
|
-
return `<p:sldLayout ${NS} type="${layoutType}" preserve="1"><p:cSld name="${displayName}"><p:spTree>${SP_TREE_HEADER}${shapes.join("")}</p:spTree></p:cSld><p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr></p:sldLayout>`;
|
|
2997
|
+
return `<p:sldLayout ${NS} type="${layoutType}" preserve="1"${def.matchingName !== void 0 ? ` matchingName="${def.matchingName}"` : ""}><p:cSld name="${displayName}"><p:spTree>${SP_TREE_HEADER}${shapes.join("")}</p:spTree></p:cSld><p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr></p:sldLayout>`;
|
|
2694
2998
|
}
|
|
2695
2999
|
var SlideLayout = class SlideLayout extends ImportedXmlComponent {
|
|
2696
3000
|
static cache = /* @__PURE__ */ new Map();
|
|
@@ -3101,19 +3405,23 @@ function buildEntrOrExitEffects(options, spid, ids) {
|
|
|
3101
3405
|
if (options.type === "wheel") filter = "wheel(4)";
|
|
3102
3406
|
else if (options.type === "split") filter = `split(${options.direction ?? "horizontal"})`;
|
|
3103
3407
|
else if (dirFilter) filter = `${filterBase}(${dirFilter})`;
|
|
3104
|
-
const
|
|
3408
|
+
const animEffectAttrs = {
|
|
3409
|
+
transition: {
|
|
3410
|
+
key: "transition",
|
|
3411
|
+
value: cls === "exit" ? "out" : "in"
|
|
3412
|
+
},
|
|
3413
|
+
filter: {
|
|
3414
|
+
key: "filter",
|
|
3415
|
+
value: filter
|
|
3416
|
+
}
|
|
3417
|
+
};
|
|
3418
|
+
if (options.propertyList) animEffectAttrs.prLst = {
|
|
3419
|
+
key: "prLst",
|
|
3420
|
+
value: options.propertyList
|
|
3421
|
+
};
|
|
3105
3422
|
children.push(new BuilderElement({
|
|
3106
3423
|
name: "p:animEffect",
|
|
3107
|
-
attributes:
|
|
3108
|
-
transition: {
|
|
3109
|
-
key: "transition",
|
|
3110
|
-
value: transition
|
|
3111
|
-
},
|
|
3112
|
-
filter: {
|
|
3113
|
-
key: "filter",
|
|
3114
|
-
value: filter
|
|
3115
|
-
}
|
|
3116
|
-
},
|
|
3424
|
+
attributes: animEffectAttrs,
|
|
3117
3425
|
children: [new BuilderElement({
|
|
3118
3426
|
name: "p:cBhvr",
|
|
3119
3427
|
children: [new BuilderElement({
|
|
@@ -3389,18 +3697,23 @@ function buildEmphasisEffects(options, spid, ids) {
|
|
|
3389
3697
|
function buildPathEffects(options, spid, ids) {
|
|
3390
3698
|
const pathStr = options.path ?? PATH_STRINGS[options.pathType ?? "customPath"] ?? "";
|
|
3391
3699
|
const dur = String(options.duration ?? 1e3);
|
|
3700
|
+
const animMotionAttrs = {
|
|
3701
|
+
origin: {
|
|
3702
|
+
key: "origin",
|
|
3703
|
+
value: "layout"
|
|
3704
|
+
},
|
|
3705
|
+
path: {
|
|
3706
|
+
key: "path",
|
|
3707
|
+
value: pathStr
|
|
3708
|
+
}
|
|
3709
|
+
};
|
|
3710
|
+
if (options.pointsTypes) animMotionAttrs.ptsTypes = {
|
|
3711
|
+
key: "ptsTypes",
|
|
3712
|
+
value: options.pointsTypes
|
|
3713
|
+
};
|
|
3392
3714
|
return [new BuilderElement({
|
|
3393
3715
|
name: "p:animMotion",
|
|
3394
|
-
attributes:
|
|
3395
|
-
origin: {
|
|
3396
|
-
key: "origin",
|
|
3397
|
-
value: "layout"
|
|
3398
|
-
},
|
|
3399
|
-
path: {
|
|
3400
|
-
key: "path",
|
|
3401
|
-
value: pathStr
|
|
3402
|
-
}
|
|
3403
|
-
},
|
|
3716
|
+
attributes: animMotionAttrs,
|
|
3404
3717
|
children: [new BuilderElement({
|
|
3405
3718
|
name: "p:cBhvr",
|
|
3406
3719
|
children: [new BuilderElement({
|
|
@@ -3473,6 +3786,128 @@ function buildMediaPlayCommand(options, spid, ids) {
|
|
|
3473
3786
|
});
|
|
3474
3787
|
}
|
|
3475
3788
|
/**
|
|
3789
|
+
* Build generic p:cmd with configurable type (call/evt/verb).
|
|
3790
|
+
*/
|
|
3791
|
+
function buildCommand(options, spid, ids) {
|
|
3792
|
+
const cmdType = options.commandType ?? "call";
|
|
3793
|
+
const cmdStr = options.command ?? "";
|
|
3794
|
+
return new BuilderElement({
|
|
3795
|
+
name: "p:cmd",
|
|
3796
|
+
attributes: {
|
|
3797
|
+
type: {
|
|
3798
|
+
key: "type",
|
|
3799
|
+
value: cmdType
|
|
3800
|
+
},
|
|
3801
|
+
cmd: {
|
|
3802
|
+
key: "cmd",
|
|
3803
|
+
value: cmdStr
|
|
3804
|
+
}
|
|
3805
|
+
},
|
|
3806
|
+
children: [new BuilderElement({
|
|
3807
|
+
name: "p:cBhvr",
|
|
3808
|
+
children: [new BuilderElement({
|
|
3809
|
+
name: "p:cTn",
|
|
3810
|
+
attributes: {
|
|
3811
|
+
id: {
|
|
3812
|
+
key: "id",
|
|
3813
|
+
value: ids.cmd
|
|
3814
|
+
},
|
|
3815
|
+
dur: {
|
|
3816
|
+
key: "dur",
|
|
3817
|
+
value: String(options.duration ?? 1e3)
|
|
3818
|
+
},
|
|
3819
|
+
fill: {
|
|
3820
|
+
key: "fill",
|
|
3821
|
+
value: "hold"
|
|
3822
|
+
}
|
|
3823
|
+
}
|
|
3824
|
+
}), buildTargetElement(spid)]
|
|
3825
|
+
})]
|
|
3826
|
+
});
|
|
3827
|
+
}
|
|
3828
|
+
/**
|
|
3829
|
+
* Build p:set for an instant property change (setBehavior).
|
|
3830
|
+
*/
|
|
3831
|
+
function buildSetBehavior(setOptions, spid, ids) {
|
|
3832
|
+
const toValName = setOptions.toType === "number" ? "p:numVal" : "p:strVal";
|
|
3833
|
+
return new BuilderElement({
|
|
3834
|
+
name: "p:set",
|
|
3835
|
+
children: [new BuilderElement({
|
|
3836
|
+
name: "p:cBhvr",
|
|
3837
|
+
children: [
|
|
3838
|
+
new BuilderElement({
|
|
3839
|
+
name: "p:cTn",
|
|
3840
|
+
attributes: {
|
|
3841
|
+
id: {
|
|
3842
|
+
key: "id",
|
|
3843
|
+
value: ids.set
|
|
3844
|
+
},
|
|
3845
|
+
dur: {
|
|
3846
|
+
key: "dur",
|
|
3847
|
+
value: "1"
|
|
3848
|
+
},
|
|
3849
|
+
fill: {
|
|
3850
|
+
key: "fill",
|
|
3851
|
+
value: "hold"
|
|
3852
|
+
}
|
|
3853
|
+
},
|
|
3854
|
+
children: [new BuilderElement({
|
|
3855
|
+
name: "p:stCondLst",
|
|
3856
|
+
children: [new BuilderElement({
|
|
3857
|
+
name: "p:cond",
|
|
3858
|
+
attributes: { delay: {
|
|
3859
|
+
key: "delay",
|
|
3860
|
+
value: "0"
|
|
3861
|
+
} }
|
|
3862
|
+
})]
|
|
3863
|
+
})]
|
|
3864
|
+
}),
|
|
3865
|
+
buildTargetElement(spid),
|
|
3866
|
+
new BuilderElement({
|
|
3867
|
+
name: "p:attrNameLst",
|
|
3868
|
+
children: [stringContainerObj("p:attrName", setOptions.attributeName)]
|
|
3869
|
+
})
|
|
3870
|
+
]
|
|
3871
|
+
}), new BuilderElement({
|
|
3872
|
+
name: "p:to",
|
|
3873
|
+
children: [new BuilderElement({
|
|
3874
|
+
name: toValName,
|
|
3875
|
+
attributes: { val: {
|
|
3876
|
+
key: "val",
|
|
3877
|
+
value: setOptions.toValue
|
|
3878
|
+
} }
|
|
3879
|
+
})]
|
|
3880
|
+
})]
|
|
3881
|
+
});
|
|
3882
|
+
}
|
|
3883
|
+
/**
|
|
3884
|
+
* Build p:iterate for text-level animation iteration.
|
|
3885
|
+
*/
|
|
3886
|
+
function buildIterate(iterate) {
|
|
3887
|
+
const attrs = {};
|
|
3888
|
+
if (iterate.type) attrs.type = {
|
|
3889
|
+
key: "type",
|
|
3890
|
+
value: iterate.type
|
|
3891
|
+
};
|
|
3892
|
+
if (iterate.backwards) attrs.backwards = {
|
|
3893
|
+
key: "backwards",
|
|
3894
|
+
value: 1
|
|
3895
|
+
};
|
|
3896
|
+
const iterChildren = [];
|
|
3897
|
+
if (iterate.interval !== void 0) iterChildren.push(new BuilderElement({
|
|
3898
|
+
name: "p:tmAbs",
|
|
3899
|
+
attributes: { val: {
|
|
3900
|
+
key: "val",
|
|
3901
|
+
value: iterate.interval
|
|
3902
|
+
} }
|
|
3903
|
+
}));
|
|
3904
|
+
return new BuilderElement({
|
|
3905
|
+
name: "p:iterate",
|
|
3906
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0,
|
|
3907
|
+
children: iterChildren.length > 0 ? iterChildren : void 0
|
|
3908
|
+
});
|
|
3909
|
+
}
|
|
3910
|
+
/**
|
|
3476
3911
|
* Build p:video/p:audio with p:cMediaNode (goes as sibling of p:seq).
|
|
3477
3912
|
* This is the media state controller, separate from the play command.
|
|
3478
3913
|
*/
|
|
@@ -3501,6 +3936,10 @@ function buildMediaStateNode(options, spid, ids) {
|
|
|
3501
3936
|
key: "mute",
|
|
3502
3937
|
value: 1
|
|
3503
3938
|
};
|
|
3939
|
+
if (options.numberOfSlides !== void 0) cMediaNodeAttrs.numSld = {
|
|
3940
|
+
key: "numSld",
|
|
3941
|
+
value: options.numberOfSlides
|
|
3942
|
+
};
|
|
3504
3943
|
return new BuilderElement({
|
|
3505
3944
|
name: elementName,
|
|
3506
3945
|
attributes: Object.keys(mediaAttrs).length > 0 ? mediaAttrs : void 0,
|
|
@@ -3559,6 +3998,18 @@ function buildPropertyAnimation(options, spid, ids) {
|
|
|
3559
3998
|
key: "by",
|
|
3560
3999
|
value: options.animBy
|
|
3561
4000
|
};
|
|
4001
|
+
if (options.formula !== void 0) attrs.fmla = {
|
|
4002
|
+
key: "fmla",
|
|
4003
|
+
value: options.formula
|
|
4004
|
+
};
|
|
4005
|
+
if (options.colorSpace !== void 0) attrs.clrSpc = {
|
|
4006
|
+
key: "clrSpc",
|
|
4007
|
+
value: options.colorSpace
|
|
4008
|
+
};
|
|
4009
|
+
if (options.rotationAngle !== void 0) attrs.rAng = {
|
|
4010
|
+
key: "rAng",
|
|
4011
|
+
value: String(options.rotationAngle)
|
|
4012
|
+
};
|
|
3562
4013
|
const cBhvrChildren = [new BuilderElement({
|
|
3563
4014
|
name: "p:cTn",
|
|
3564
4015
|
attributes: {
|
|
@@ -3580,8 +4031,30 @@ function buildPropertyAnimation(options, spid, ids) {
|
|
|
3580
4031
|
name: "p:attrNameLst",
|
|
3581
4032
|
children: [stringContainerObj("p:attrName", options.attributeName)]
|
|
3582
4033
|
}));
|
|
4034
|
+
const cBhvrAttrs = {};
|
|
4035
|
+
if (options.additive !== void 0) cBhvrAttrs.additive = {
|
|
4036
|
+
key: "additive",
|
|
4037
|
+
value: options.additive
|
|
4038
|
+
};
|
|
4039
|
+
if (options.accumulate !== void 0) cBhvrAttrs.accumulate = {
|
|
4040
|
+
key: "accumulate",
|
|
4041
|
+
value: options.accumulate
|
|
4042
|
+
};
|
|
4043
|
+
if (options.transformType !== void 0) cBhvrAttrs.xfrmType = {
|
|
4044
|
+
key: "xfrmType",
|
|
4045
|
+
value: options.transformType
|
|
4046
|
+
};
|
|
4047
|
+
if (options.runtimeContext !== void 0) cBhvrAttrs.rctx = {
|
|
4048
|
+
key: "rctx",
|
|
4049
|
+
value: options.runtimeContext
|
|
4050
|
+
};
|
|
4051
|
+
if (options.override !== void 0) cBhvrAttrs.override = {
|
|
4052
|
+
key: "override",
|
|
4053
|
+
value: options.override
|
|
4054
|
+
};
|
|
3583
4055
|
const animChildren = [new BuilderElement({
|
|
3584
4056
|
name: "p:cBhvr",
|
|
4057
|
+
attributes: Object.keys(cBhvrAttrs).length > 0 ? cBhvrAttrs : void 0,
|
|
3585
4058
|
children: cBhvrChildren
|
|
3586
4059
|
})];
|
|
3587
4060
|
if (options.from !== void 0 || options.to !== void 0) {
|
|
@@ -3657,7 +4130,8 @@ var SlideTiming = class extends XmlComponent {
|
|
|
3657
4130
|
const presetClass = resolvePresetClass(options);
|
|
3658
4131
|
const presetSubtype = resolvePresetSubtype(options);
|
|
3659
4132
|
let effectChildren;
|
|
3660
|
-
if (options.
|
|
4133
|
+
if (options.commandType) effectChildren = [buildCommand(options, spid, { cmd: effectCtnId2 })];
|
|
4134
|
+
else if (options.mediaType) {
|
|
3661
4135
|
effectChildren = [buildMediaPlayCommand(options, spid, { cmd: effectCtnId2 })];
|
|
3662
4136
|
const mediaStateId = id++;
|
|
3663
4137
|
mediaStateNodes.push(buildMediaStateNode(options, spid, { mediaCtn: mediaStateId }));
|
|
@@ -3674,6 +4148,10 @@ var SlideTiming = class extends XmlComponent {
|
|
|
3674
4148
|
set: setCtnId,
|
|
3675
4149
|
effect: effectCtnId2
|
|
3676
4150
|
});
|
|
4151
|
+
if (options.setBehavior) {
|
|
4152
|
+
const setBehId = id++;
|
|
4153
|
+
effectChildren = [buildSetBehavior(options.setBehavior, spid, { set: setBehId }), ...effectChildren];
|
|
4154
|
+
}
|
|
3677
4155
|
const cTnAttrs = {
|
|
3678
4156
|
id: {
|
|
3679
4157
|
key: "id",
|
|
@@ -3728,24 +4206,91 @@ var SlideTiming = class extends XmlComponent {
|
|
|
3728
4206
|
key: "autoRev",
|
|
3729
4207
|
value: 1
|
|
3730
4208
|
};
|
|
4209
|
+
if (options.repeatDuration !== void 0) cTnAttrs.repeatDur = {
|
|
4210
|
+
key: "repeatDur",
|
|
4211
|
+
value: options.repeatDuration
|
|
4212
|
+
};
|
|
4213
|
+
if (options.acceleration !== void 0) cTnAttrs.accel = {
|
|
4214
|
+
key: "accel",
|
|
4215
|
+
value: options.acceleration
|
|
4216
|
+
};
|
|
4217
|
+
if (options.deceleration !== void 0) cTnAttrs.decel = {
|
|
4218
|
+
key: "decel",
|
|
4219
|
+
value: options.deceleration
|
|
4220
|
+
};
|
|
4221
|
+
if (options.restart !== void 0) cTnAttrs.restart = {
|
|
4222
|
+
key: "restart",
|
|
4223
|
+
value: options.restart
|
|
4224
|
+
};
|
|
4225
|
+
if (options.syncBehavior !== void 0) cTnAttrs.syncBehavior = {
|
|
4226
|
+
key: "syncBehavior",
|
|
4227
|
+
value: options.syncBehavior
|
|
4228
|
+
};
|
|
4229
|
+
if (options.timeFilter !== void 0) cTnAttrs.tmFilter = {
|
|
4230
|
+
key: "tmFilter",
|
|
4231
|
+
value: options.timeFilter
|
|
4232
|
+
};
|
|
4233
|
+
if (options.eventFilter !== void 0) cTnAttrs.evtFilter = {
|
|
4234
|
+
key: "evtFilter",
|
|
4235
|
+
value: options.eventFilter
|
|
4236
|
+
};
|
|
4237
|
+
if (options.display !== void 0) cTnAttrs.display = {
|
|
4238
|
+
key: "display",
|
|
4239
|
+
value: options.display ? 1 : 0
|
|
4240
|
+
};
|
|
4241
|
+
if (options.masterRelation !== void 0) cTnAttrs.masterRel = {
|
|
4242
|
+
key: "masterRel",
|
|
4243
|
+
value: options.masterRelation
|
|
4244
|
+
};
|
|
4245
|
+
if (options.buildLevel !== void 0) cTnAttrs.bldLvl = {
|
|
4246
|
+
key: "bldLvl",
|
|
4247
|
+
value: options.buildLevel
|
|
4248
|
+
};
|
|
4249
|
+
if (options.groupId !== void 0) cTnAttrs.grpId = {
|
|
4250
|
+
key: "grpId",
|
|
4251
|
+
value: options.groupId
|
|
4252
|
+
};
|
|
4253
|
+
if (options.afterEffect !== void 0) cTnAttrs.afterEffect = {
|
|
4254
|
+
key: "afterEffect",
|
|
4255
|
+
value: options.afterEffect ? 1 : 0
|
|
4256
|
+
};
|
|
4257
|
+
if (options.nodePlaceholder !== void 0) cTnAttrs.nodePh = {
|
|
4258
|
+
key: "nodePh",
|
|
4259
|
+
value: options.nodePlaceholder ? 1 : 0
|
|
4260
|
+
};
|
|
4261
|
+
if (options.advanceAfterTime !== void 0) cTnAttrs.advAuto = {
|
|
4262
|
+
key: "advAuto",
|
|
4263
|
+
value: options.advanceAfterTime
|
|
4264
|
+
};
|
|
4265
|
+
if (options.animateBackground !== void 0) cTnAttrs.animBg = {
|
|
4266
|
+
key: "animBg",
|
|
4267
|
+
value: options.animateBackground ? 1 : 0
|
|
4268
|
+
};
|
|
4269
|
+
if (options.autoUpdateAnimationBackground !== void 0) cTnAttrs.autoUpdateAnimBg = {
|
|
4270
|
+
key: "autoUpdateAnimBg",
|
|
4271
|
+
value: options.autoUpdateAnimationBackground ? 1 : 0
|
|
4272
|
+
};
|
|
4273
|
+
const effectCtnChildren = [new BuilderElement({
|
|
4274
|
+
name: "p:stCondLst",
|
|
4275
|
+
children: [new BuilderElement({
|
|
4276
|
+
name: "p:cond",
|
|
4277
|
+
attributes: { delay: {
|
|
4278
|
+
key: "delay",
|
|
4279
|
+
value: String(options.delay ?? 0)
|
|
4280
|
+
} }
|
|
4281
|
+
})]
|
|
4282
|
+
})];
|
|
4283
|
+
if (options.iterate) effectCtnChildren.push(buildIterate(options.iterate));
|
|
4284
|
+
effectCtnChildren.push(new BuilderElement({
|
|
4285
|
+
name: "p:childTnLst",
|
|
4286
|
+
children: effectChildren
|
|
4287
|
+
}));
|
|
3731
4288
|
const innerPar = new BuilderElement({
|
|
3732
4289
|
name: "p:par",
|
|
3733
4290
|
children: [new BuilderElement({
|
|
3734
4291
|
name: "p:cTn",
|
|
3735
4292
|
attributes: cTnAttrs,
|
|
3736
|
-
children:
|
|
3737
|
-
name: "p:stCondLst",
|
|
3738
|
-
children: [new BuilderElement({
|
|
3739
|
-
name: "p:cond",
|
|
3740
|
-
attributes: { delay: {
|
|
3741
|
-
key: "delay",
|
|
3742
|
-
value: String(options.delay ?? 0)
|
|
3743
|
-
} }
|
|
3744
|
-
})]
|
|
3745
|
-
}), new BuilderElement({
|
|
3746
|
-
name: "p:childTnLst",
|
|
3747
|
-
children: effectChildren
|
|
3748
|
-
})]
|
|
4293
|
+
children: effectCtnChildren
|
|
3749
4294
|
})]
|
|
3750
4295
|
});
|
|
3751
4296
|
const outerPar = new BuilderElement({
|
|
@@ -3978,16 +4523,23 @@ var Slide = class extends XmlComponent {
|
|
|
3978
4523
|
background;
|
|
3979
4524
|
transition;
|
|
3980
4525
|
HeaderFooter;
|
|
3981
|
-
|
|
4526
|
+
showMasterSp;
|
|
4527
|
+
showMasterPhAnim;
|
|
4528
|
+
constructor(children, background, transition, headerFooter, showMasterSp, showMasterPhAnim) {
|
|
3982
4529
|
super("p:sld");
|
|
3983
4530
|
this.children = children;
|
|
3984
4531
|
this.background = background;
|
|
3985
4532
|
this.transition = transition;
|
|
3986
4533
|
this.HeaderFooter = headerFooter;
|
|
4534
|
+
this.showMasterSp = showMasterSp;
|
|
4535
|
+
this.showMasterPhAnim = showMasterPhAnim;
|
|
3987
4536
|
}
|
|
3988
4537
|
toXml(context) {
|
|
3989
4538
|
const parts = [];
|
|
3990
|
-
|
|
4539
|
+
const sldAttrs = [];
|
|
4540
|
+
if (this.showMasterSp === false) sldAttrs.push(" showMasterSp=\"0\"");
|
|
4541
|
+
if (this.showMasterPhAnim === false) sldAttrs.push(" showMasterPhAnim=\"0\"");
|
|
4542
|
+
parts.push(`<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"${sldAttrs.join("")}>`);
|
|
3991
4543
|
parts.push("<p:cSld>");
|
|
3992
4544
|
if (this.background) parts.push(this.background.toXml(context));
|
|
3993
4545
|
parts.push("<p:spTree>");
|
|
@@ -4014,148 +4566,81 @@ var Slide = class extends XmlComponent {
|
|
|
4014
4566
|
//#endregion
|
|
4015
4567
|
//#region src/file/table-styles.ts
|
|
4016
4568
|
init_xml_components();
|
|
4017
|
-
const
|
|
4018
|
-
var TableStyles = class
|
|
4019
|
-
|
|
4020
|
-
constructor() {
|
|
4569
|
+
const DEFAULT_STYLE_ID = "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}";
|
|
4570
|
+
var TableStyles = class extends BaseXmlComponent {
|
|
4571
|
+
opts;
|
|
4572
|
+
constructor(opts) {
|
|
4021
4573
|
super("a:tblStyleLst");
|
|
4574
|
+
this.opts = opts;
|
|
4022
4575
|
}
|
|
4023
4576
|
toXml(context) {
|
|
4024
|
-
return
|
|
4577
|
+
if (!this.opts) return `<a:tblStyleLst xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" def="${DEFAULT_STYLE_ID}"/>`;
|
|
4578
|
+
return createTableStyleList(this.opts).toXml(context);
|
|
4025
4579
|
}
|
|
4026
4580
|
};
|
|
4027
4581
|
//#endregion
|
|
4028
|
-
//#region src/file/
|
|
4582
|
+
//#region src/file/view-properties.ts
|
|
4029
4583
|
init_xml_components();
|
|
4030
|
-
const
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
accent3: "A5A5A5",
|
|
4038
|
-
accent4: "FFC000",
|
|
4039
|
-
accent5: "5B9BD5",
|
|
4040
|
-
accent6: "70AD47",
|
|
4041
|
-
hyperlink: "0563C1",
|
|
4042
|
-
followedHyperlink: "954F72"
|
|
4043
|
-
};
|
|
4044
|
-
function buildThemeXml(options) {
|
|
4045
|
-
const name = options?.name ?? "Office Theme";
|
|
4046
|
-
const c = {
|
|
4047
|
-
...DEFAULT_COLORS,
|
|
4048
|
-
...options?.colors
|
|
4049
|
-
};
|
|
4050
|
-
const f = options?.fonts;
|
|
4051
|
-
const majorFont = f?.majorFont ?? "Calibri Light";
|
|
4052
|
-
const minorFont = f?.minorFont ?? "Calibri";
|
|
4053
|
-
const majorFontAsian = f?.majorFontAsian ?? "";
|
|
4054
|
-
const minorFontAsian = f?.minorFontAsian ?? "";
|
|
4055
|
-
return `<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="${name}">
|
|
4056
|
-
<a:themeElements>
|
|
4057
|
-
<a:clrScheme name="${name}">
|
|
4058
|
-
<a:dk1>${options?.colors?.dark1 !== void 0 ? `<a:srgbClr val="${c.dark1}"/>` : `<a:sysClr val="windowText" lastClr="000000"/>`}</a:dk1>
|
|
4059
|
-
<a:lt1>${options?.colors?.light1 !== void 0 ? `<a:srgbClr val="${c.light1}"/>` : `<a:sysClr val="window" lastClr="FFFFFF"/>`}</a:lt1>
|
|
4060
|
-
<a:dk2><a:srgbClr val="${c.dark2}"/></a:dk2>
|
|
4061
|
-
<a:lt2><a:srgbClr val="${c.light2}"/></a:lt2>
|
|
4062
|
-
<a:accent1><a:srgbClr val="${c.accent1}"/></a:accent1>
|
|
4063
|
-
<a:accent2><a:srgbClr val="${c.accent2}"/></a:accent2>
|
|
4064
|
-
<a:accent3><a:srgbClr val="${c.accent3}"/></a:accent3>
|
|
4065
|
-
<a:accent4><a:srgbClr val="${c.accent4}"/></a:accent4>
|
|
4066
|
-
<a:accent5><a:srgbClr val="${c.accent5}"/></a:accent5>
|
|
4067
|
-
<a:accent6><a:srgbClr val="${c.accent6}"/></a:accent6>
|
|
4068
|
-
<a:hlink><a:srgbClr val="${c.hyperlink}"/></a:hlink>
|
|
4069
|
-
<a:folHlink><a:srgbClr val="${c.followedHyperlink}"/></a:folHlink>
|
|
4070
|
-
</a:clrScheme>
|
|
4071
|
-
<a:fontScheme name="${name}">
|
|
4072
|
-
<a:majorFont>
|
|
4073
|
-
<a:latin typeface="${majorFont}"/>
|
|
4074
|
-
<a:ea typeface="${majorFontAsian}"/>
|
|
4075
|
-
<a:cs typeface=""/>
|
|
4076
|
-
</a:majorFont>
|
|
4077
|
-
<a:minorFont>
|
|
4078
|
-
<a:latin typeface="${minorFont}"/>
|
|
4079
|
-
<a:ea typeface="${minorFontAsian}"/>
|
|
4080
|
-
<a:cs typeface=""/>
|
|
4081
|
-
</a:minorFont>
|
|
4082
|
-
</a:fontScheme>
|
|
4083
|
-
<a:fmtScheme name="Office">
|
|
4084
|
-
<a:fillStyleLst>
|
|
4085
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4086
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4087
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4088
|
-
</a:fillStyleLst>
|
|
4089
|
-
<a:lnStyleLst>
|
|
4090
|
-
<a:ln w="6350" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
|
|
4091
|
-
<a:ln w="12700" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
|
|
4092
|
-
<a:ln w="19050" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
|
|
4093
|
-
</a:lnStyleLst>
|
|
4094
|
-
<a:effectStyleLst>
|
|
4095
|
-
<a:effectStyle><a:effectLst/></a:effectStyle>
|
|
4096
|
-
<a:effectStyle><a:effectLst/></a:effectStyle>
|
|
4097
|
-
<a:effectStyle><a:effectLst/></a:effectStyle>
|
|
4098
|
-
</a:effectStyleLst>
|
|
4099
|
-
<a:bgFillStyleLst>
|
|
4100
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4101
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4102
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4103
|
-
</a:bgFillStyleLst>
|
|
4104
|
-
</a:fmtScheme>
|
|
4105
|
-
</a:themeElements>
|
|
4106
|
-
<a:objectDefaults/>
|
|
4107
|
-
<a:extraClrSchemeLst/>
|
|
4108
|
-
</a:theme>`;
|
|
4109
|
-
}
|
|
4110
|
-
var DefaultTheme = class DefaultTheme extends ImportedXmlComponent {
|
|
4111
|
-
static cache = /* @__PURE__ */ new Map();
|
|
4112
|
-
cacheKey;
|
|
4113
|
-
constructor(options) {
|
|
4114
|
-
super("a:theme");
|
|
4115
|
-
this.cacheKey = options ? themeKey(options) : "";
|
|
4116
|
-
if (!DefaultTheme.cache.has(this.cacheKey)) DefaultTheme.cache.set(this.cacheKey, ImportedXmlComponent.fromXmlString(buildThemeXml(options)));
|
|
4117
|
-
}
|
|
4118
|
-
toXml(context) {
|
|
4119
|
-
return DefaultTheme.cache.get(this.cacheKey).toXml(context);
|
|
4120
|
-
}
|
|
4584
|
+
const LAST_VIEW_XSD = {
|
|
4585
|
+
slideView: "sldView",
|
|
4586
|
+
slideMasterView: "sldMasterView",
|
|
4587
|
+
notesView: "notesView",
|
|
4588
|
+
handoutView: "handoutView",
|
|
4589
|
+
outlineView: "outlineView",
|
|
4590
|
+
slideSorterView: "sldSorterView"
|
|
4121
4591
|
};
|
|
4122
|
-
function
|
|
4123
|
-
const
|
|
4124
|
-
|
|
4125
|
-
|
|
4592
|
+
function buildNormalViewPrXml(opts) {
|
|
4593
|
+
const attrs = [];
|
|
4594
|
+
if (opts?.showOutlineIcons === false) attrs.push(" showOutlineIcons=\"0\"");
|
|
4595
|
+
if (opts?.snapVertSplitter) attrs.push(" snapVertSplitter=\"1\"");
|
|
4596
|
+
if (opts?.vertBarState) attrs.push(` vertBarState="${opts.vertBarState}"`);
|
|
4597
|
+
if (opts?.horzBarState) attrs.push(` horzBarState="${opts.horzBarState}"`);
|
|
4598
|
+
if (opts?.preferSingleView) attrs.push(" preferSingleView=\"1\"");
|
|
4599
|
+
return `<p:normalViewPr${attrs.join("")}><p:restoredLeft sz="14996" autoAdjust="0"/><p:restoredTop sz="94660"/></p:normalViewPr>`;
|
|
4600
|
+
}
|
|
4601
|
+
function buildCSldViewPrXml(opts, zoomN = 90, zoomD = 100) {
|
|
4602
|
+
const attrs = [];
|
|
4603
|
+
if (opts?.snapToGrid === false) attrs.push(" snapToGrid=\"0\"");
|
|
4604
|
+
if (opts?.snapToObjects) attrs.push(" snapToObjects=\"1\"");
|
|
4605
|
+
if (opts?.showGuides) attrs.push(" showGuides=\"1\"");
|
|
4606
|
+
const cViewPrAttr = opts?.varScale !== false ? " varScale=\"1\"" : "";
|
|
4607
|
+
return `<p:cSldViewPr${attrs.join("")}><p:cViewPr${cViewPrAttr}><p:scale><a:sx n="${zoomN}" d="${zoomD}"/><a:sy n="${zoomN}" d="${zoomD}"/></p:scale><p:origin x="1200" y="72"/></p:cViewPr><p:guideLst/></p:cSldViewPr>`;
|
|
4608
|
+
}
|
|
4609
|
+
function buildViewPropsXml(opts) {
|
|
4610
|
+
const ns = "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\"";
|
|
4611
|
+
const zoomN = opts?.zoomScaleNumerator ?? 90;
|
|
4612
|
+
const zoomD = opts?.zoomScaleDenominator ?? 100;
|
|
4613
|
+
const gridCx = opts?.gridSpacing?.cx ?? 72008;
|
|
4614
|
+
const gridCy = opts?.gridSpacing?.cy ?? 72008;
|
|
4615
|
+
const parts = [];
|
|
4616
|
+
let rootAttrs = "";
|
|
4617
|
+
if (opts?.lastView) rootAttrs += ` lastView="${LAST_VIEW_XSD[opts.lastView]}"`;
|
|
4618
|
+
if (opts?.showComments === false) rootAttrs += " showComments=\"0\"";
|
|
4619
|
+
parts.push(`<p:viewPr ${ns}${rootAttrs}>`);
|
|
4620
|
+
parts.push(buildNormalViewPrXml(opts?.normalView));
|
|
4621
|
+
parts.push("<p:slideViewPr>");
|
|
4622
|
+
parts.push(buildCSldViewPrXml(opts?.slideView, zoomN, zoomD));
|
|
4623
|
+
parts.push("</p:slideViewPr>");
|
|
4624
|
+
parts.push("<p:notesTextViewPr>");
|
|
4625
|
+
parts.push("<p:cViewPr>");
|
|
4626
|
+
parts.push("<p:scale><a:sx n=\"1\" d=\"1\"/><a:sy n=\"1\" d=\"1\"/></p:scale>");
|
|
4627
|
+
parts.push("<p:origin x=\"0\" y=\"0\"/>");
|
|
4628
|
+
parts.push("</p:cViewPr>");
|
|
4629
|
+
parts.push("</p:notesTextViewPr>");
|
|
4630
|
+
parts.push(`<p:gridSpacing cx="${gridCx}" cy="${gridCy}"/>`);
|
|
4631
|
+
parts.push("</p:viewPr>");
|
|
4632
|
+
return parts.join("");
|
|
4126
4633
|
}
|
|
4127
|
-
//#endregion
|
|
4128
|
-
//#region src/file/view-properties.ts
|
|
4129
|
-
init_xml_components();
|
|
4130
|
-
const VIEW_PROPS_XML = `<p:viewPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
|
|
4131
|
-
<p:normalViewPr>
|
|
4132
|
-
<p:restoredLeft sz="14996" autoAdjust="0"/>
|
|
4133
|
-
<p:restoredTop sz="94660"/>
|
|
4134
|
-
</p:normalViewPr>
|
|
4135
|
-
<p:slideViewPr>
|
|
4136
|
-
<p:cSldViewPr snapToGrid="0">
|
|
4137
|
-
<p:cViewPr varScale="1">
|
|
4138
|
-
<p:scale><a:sx n="90" d="100"/><a:sy n="90" d="100"/></p:scale>
|
|
4139
|
-
<p:origin x="1200" y="72"/>
|
|
4140
|
-
</p:cViewPr>
|
|
4141
|
-
<p:guideLst/>
|
|
4142
|
-
</p:cSldViewPr>
|
|
4143
|
-
</p:slideViewPr>
|
|
4144
|
-
<p:notesTextViewPr>
|
|
4145
|
-
<p:cViewPr>
|
|
4146
|
-
<p:scale><a:sx n="1" d="1"/><a:sy n="1" d="1"/></p:scale>
|
|
4147
|
-
<p:origin x="0" y="0"/>
|
|
4148
|
-
</p:cViewPr>
|
|
4149
|
-
</p:notesTextViewPr>
|
|
4150
|
-
<p:gridSpacing cx="72008" cy="72008"/>
|
|
4151
|
-
</p:viewPr>`;
|
|
4152
4634
|
var ViewProperties = class ViewProperties extends ImportedXmlComponent {
|
|
4153
|
-
static
|
|
4154
|
-
|
|
4635
|
+
static cache = /* @__PURE__ */ new Map();
|
|
4636
|
+
key;
|
|
4637
|
+
constructor(opts) {
|
|
4155
4638
|
super("p:viewPr");
|
|
4639
|
+
this.key = opts ? JSON.stringify(opts) : "";
|
|
4640
|
+
if (!ViewProperties.cache.has(this.key)) ViewProperties.cache.set(this.key, ImportedXmlComponent.fromXmlString(buildViewPropsXml(opts)));
|
|
4156
4641
|
}
|
|
4157
4642
|
toXml(context) {
|
|
4158
|
-
return ViewProperties.
|
|
4643
|
+
return ViewProperties.cache.get(this.key).toXml(context);
|
|
4159
4644
|
}
|
|
4160
4645
|
};
|
|
4161
4646
|
//#endregion
|
|
@@ -4190,6 +4675,13 @@ var File = class {
|
|
|
4190
4675
|
slideWidthEmus;
|
|
4191
4676
|
slideHeightEmus;
|
|
4192
4677
|
masterDefs;
|
|
4678
|
+
includeHandout;
|
|
4679
|
+
tableStylesOpts;
|
|
4680
|
+
viewOpts;
|
|
4681
|
+
handoutMasterOpts;
|
|
4682
|
+
notesMasterOpts;
|
|
4683
|
+
presPropsFullOpts;
|
|
4684
|
+
presAttrOpts;
|
|
4193
4685
|
_coreProperties;
|
|
4194
4686
|
_appProperties;
|
|
4195
4687
|
_contentTypes;
|
|
@@ -4216,9 +4708,30 @@ var File = class {
|
|
|
4216
4708
|
this.corePropsOptions = options;
|
|
4217
4709
|
this.showOptions = options.show;
|
|
4218
4710
|
this.masterDefs = options.masters ?? [];
|
|
4711
|
+
this.includeHandout = options.includeHandoutMaster ?? false;
|
|
4712
|
+
this.tableStylesOpts = options.tableStyles;
|
|
4713
|
+
this.viewOpts = options.view;
|
|
4714
|
+
this.handoutMasterOpts = options.handoutMasterOptions;
|
|
4715
|
+
this.notesMasterOpts = options.notesMasterOptions;
|
|
4219
4716
|
const sz = resolveSlideSize(options.size);
|
|
4220
4717
|
this.slideWidthEmus = sz.width;
|
|
4221
4718
|
this.slideHeightEmus = sz.height;
|
|
4719
|
+
if (options.serverZoom || options.firstSlideNum !== void 0 || options.showSpecialPlsOnTitleSld !== void 0 || options.rtl !== void 0 || options.removePersonalInfoOnSave !== void 0 || options.compatMode !== void 0 || options.strictFirstAndLastChars !== void 0 || options.embedTrueTypeFonts !== void 0 || options.saveSubsetFonts !== void 0 || options.autoCompressPictures !== void 0 || options.bookmarkIdSeed !== void 0 || options.conformance !== void 0 || options.photoAlbum !== void 0 || options.modifyVerifier !== void 0) this.presAttrOpts = {
|
|
4720
|
+
serverZoom: options.serverZoom,
|
|
4721
|
+
firstSlideNum: options.firstSlideNum,
|
|
4722
|
+
showSpecialPlsOnTitleSld: options.showSpecialPlsOnTitleSld,
|
|
4723
|
+
rtl: options.rtl,
|
|
4724
|
+
removePersonalInfoOnSave: options.removePersonalInfoOnSave,
|
|
4725
|
+
compatMode: options.compatMode,
|
|
4726
|
+
strictFirstAndLastChars: options.strictFirstAndLastChars,
|
|
4727
|
+
embedTrueTypeFonts: options.embedTrueTypeFonts,
|
|
4728
|
+
saveSubsetFonts: options.saveSubsetFonts,
|
|
4729
|
+
autoCompressPictures: options.autoCompressPictures,
|
|
4730
|
+
bookmarkIdSeed: options.bookmarkIdSeed,
|
|
4731
|
+
conformance: options.conformance,
|
|
4732
|
+
photoAlbum: options.photoAlbum,
|
|
4733
|
+
modifyVerifier: options.modifyVerifier
|
|
4734
|
+
};
|
|
4222
4735
|
}
|
|
4223
4736
|
getMasterMap() {
|
|
4224
4737
|
if (this.masterMap) return this.masterMap;
|
|
@@ -4333,6 +4846,7 @@ var File = class {
|
|
|
4333
4846
|
}
|
|
4334
4847
|
if (notesSlideIdx > 0) this._contentTypes.addNotesMaster();
|
|
4335
4848
|
if (hasComments) this._contentTypes.addCommentAuthors();
|
|
4849
|
+
if (this.includeHandout) this._contentTypes.addHandoutMaster();
|
|
4336
4850
|
}
|
|
4337
4851
|
return this._contentTypes;
|
|
4338
4852
|
}
|
|
@@ -4375,7 +4889,8 @@ var File = class {
|
|
|
4375
4889
|
slideWidth: this.slideWidthEmus,
|
|
4376
4890
|
slideHeight: this.slideHeightEmus,
|
|
4377
4891
|
slideIds: this.slideOptions.map((_, i) => 256 + i),
|
|
4378
|
-
masterCount: masters.length
|
|
4892
|
+
masterCount: masters.length,
|
|
4893
|
+
...this.presAttrOpts
|
|
4379
4894
|
});
|
|
4380
4895
|
const presRels = this._presentationWrapper.relationships;
|
|
4381
4896
|
let rid = 1;
|
|
@@ -4392,13 +4907,18 @@ var File = class {
|
|
|
4392
4907
|
return this.getMasterMap().map((m) => m.theme);
|
|
4393
4908
|
}
|
|
4394
4909
|
get tableStyles() {
|
|
4395
|
-
return this._tableStyles ??= new TableStyles();
|
|
4910
|
+
return this._tableStyles ??= new TableStyles(this.tableStylesOpts);
|
|
4396
4911
|
}
|
|
4397
4912
|
get presProps() {
|
|
4398
|
-
return this._presProps ??= new PresentationProperties(
|
|
4913
|
+
return this._presProps ??= new PresentationProperties({
|
|
4914
|
+
show: this.showOptions,
|
|
4915
|
+
web: this.presPropsFullOpts?.web,
|
|
4916
|
+
print: this.presPropsFullOpts?.print,
|
|
4917
|
+
htmlPublish: this.presPropsFullOpts?.htmlPublish
|
|
4918
|
+
});
|
|
4399
4919
|
}
|
|
4400
4920
|
get viewProps() {
|
|
4401
|
-
return this._viewProps ??= new ViewProperties();
|
|
4921
|
+
return this._viewProps ??= new ViewProperties(this.viewOpts);
|
|
4402
4922
|
}
|
|
4403
4923
|
get slideMasters() {
|
|
4404
4924
|
return this.getMasterMap().map((m) => m.master);
|
|
@@ -4417,7 +4937,7 @@ var File = class {
|
|
|
4417
4937
|
get slides() {
|
|
4418
4938
|
if (!this._slides) {
|
|
4419
4939
|
this._slides = [];
|
|
4420
|
-
for (const s of this.slideOptions) this._slides.push(new Slide(s.children ?? [], s.background ? new Background(s.background) : void 0, s.transition, s.headerFooter));
|
|
4940
|
+
for (const s of this.slideOptions) this._slides.push(new Slide(s.children ?? [], s.background ? new Background(s.background) : void 0, s.transition, s.headerFooter, s.showMasterShapes, s.showMasterPlaceholderAnimations));
|
|
4421
4941
|
}
|
|
4422
4942
|
return this._slides;
|
|
4423
4943
|
}
|
|
@@ -4455,6 +4975,15 @@ var File = class {
|
|
|
4455
4975
|
get notesMasterRelationships() {
|
|
4456
4976
|
return this._notesMasterRels ??= new Relationships();
|
|
4457
4977
|
}
|
|
4978
|
+
get hasHandoutMaster() {
|
|
4979
|
+
return this.includeHandout;
|
|
4980
|
+
}
|
|
4981
|
+
get handoutMasterOptions() {
|
|
4982
|
+
return this.handoutMasterOpts;
|
|
4983
|
+
}
|
|
4984
|
+
get notesMasterOptions() {
|
|
4985
|
+
return this.notesMasterOpts;
|
|
4986
|
+
}
|
|
4458
4987
|
get commentAuthorList() {
|
|
4459
4988
|
if (!this._commentAuthorList && !this._slideCommentLists) this.buildComments();
|
|
4460
4989
|
return this._commentAuthorList;
|
|
@@ -4654,6 +5183,7 @@ var ShapeTree = class extends XmlComponent {
|
|
|
4654
5183
|
//#endregion
|
|
4655
5184
|
//#region src/file/notes-master/notes-master.ts
|
|
4656
5185
|
init_xml_components();
|
|
5186
|
+
const DEFAULT_COLOR_MAP$1 = "bg1=\"lt1\" tx1=\"dk1\" bg2=\"lt2\" tx2=\"dk2\" accent1=\"accent1\" accent2=\"accent2\" accent3=\"accent3\" accent4=\"accent4\" accent5=\"accent5\" accent6=\"accent6\" hlink=\"hlink\" folHlink=\"folHlink\"";
|
|
4657
5187
|
const NOTES_MASTER_XML = `<p:notesMaster xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
|
|
4658
5188
|
<p:cSld>
|
|
4659
5189
|
<p:bg>
|
|
@@ -4678,6 +5208,7 @@ const NOTES_MASTER_XML = `<p:notesMaster xmlns:a="http://schemas.openxmlformats.
|
|
|
4678
5208
|
</p:spTree>
|
|
4679
5209
|
</p:cSld>
|
|
4680
5210
|
<p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>
|
|
5211
|
+
<p:hf dt="0" hdr="0" ftr="0" sldNum="0"/>
|
|
4681
5212
|
<p:notesStyle>
|
|
4682
5213
|
<a:lvl1pPr marL="0" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
|
|
4683
5214
|
<a:defRPr sz="1200" kern="1200"><a:solidFill><a:schemeClr val="tx1"/></a:solidFill><a:latin typeface="+mn-lt"/><a:ea typeface="+mn-ea"/><a:cs typeface="+mn-cs"/></a:defRPr>
|
|
@@ -4708,13 +5239,130 @@ const NOTES_MASTER_XML = `<p:notesMaster xmlns:a="http://schemas.openxmlformats.
|
|
|
4708
5239
|
</a:lvl9pPr>
|
|
4709
5240
|
</p:notesStyle>
|
|
4710
5241
|
</p:notesMaster>`;
|
|
5242
|
+
const DEFAULT_LEVEL_MARGINS = [
|
|
5243
|
+
0,
|
|
5244
|
+
457200,
|
|
5245
|
+
914400,
|
|
5246
|
+
1371600,
|
|
5247
|
+
1828800,
|
|
5248
|
+
2286e3,
|
|
5249
|
+
2743200,
|
|
5250
|
+
3200400,
|
|
5251
|
+
3657600
|
|
5252
|
+
];
|
|
5253
|
+
function buildColorMapAttrs$1(opts) {
|
|
5254
|
+
if (!opts) return DEFAULT_COLOR_MAP$1;
|
|
5255
|
+
const merged = {
|
|
5256
|
+
bg1: "lt1",
|
|
5257
|
+
tx1: "dk1",
|
|
5258
|
+
bg2: "lt2",
|
|
5259
|
+
tx2: "dk2",
|
|
5260
|
+
accent1: "accent1",
|
|
5261
|
+
accent2: "accent2",
|
|
5262
|
+
accent3: "accent3",
|
|
5263
|
+
accent4: "accent4",
|
|
5264
|
+
accent5: "accent5",
|
|
5265
|
+
accent6: "accent6",
|
|
5266
|
+
hlink: "hlink",
|
|
5267
|
+
folHlink: "folHlink",
|
|
5268
|
+
...opts
|
|
5269
|
+
};
|
|
5270
|
+
return Object.entries(merged).map(([k, v]) => `${k}="${v}"`).join(" ");
|
|
5271
|
+
}
|
|
5272
|
+
function buildHfAttrs$1(opts) {
|
|
5273
|
+
if (!opts) return "dt=\"0\" hdr=\"0\" ftr=\"0\" sldNum=\"0\"";
|
|
5274
|
+
return `dt="${opts.date ? 1 : 0}" hdr="${opts.header ? 1 : 0}" ftr="${opts.footer ? 1 : 0}" sldNum="${opts.slideNumber ? 1 : 0}"`;
|
|
5275
|
+
}
|
|
5276
|
+
function buildNotesStyleXml(levels) {
|
|
5277
|
+
const parts = ["<p:notesStyle>"];
|
|
5278
|
+
for (let i = 0; i < 9; i++) {
|
|
5279
|
+
const level = levels?.[i];
|
|
5280
|
+
const marL = level?.marginLeft ?? DEFAULT_LEVEL_MARGINS[i];
|
|
5281
|
+
const algn = level?.alignment ?? "l";
|
|
5282
|
+
const sz = level?.fontSize ?? 1200;
|
|
5283
|
+
parts.push(`<a:lvl${i + 1}pPr marL="${marL}" algn="${algn}" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1"><a:defRPr sz="${sz}" kern="1200"><a:solidFill><a:schemeClr val="tx1"/></a:solidFill><a:latin typeface="+mn-lt"/><a:ea typeface="+mn-ea"/><a:cs typeface="+mn-cs"/></a:defRPr></a:lvl${i + 1}pPr>`);
|
|
5284
|
+
}
|
|
5285
|
+
parts.push("</p:notesStyle>");
|
|
5286
|
+
return parts.join("");
|
|
5287
|
+
}
|
|
4711
5288
|
var DefaultNotesMaster = class DefaultNotesMaster extends ImportedXmlComponent {
|
|
4712
5289
|
static instance = ImportedXmlComponent.fromXmlString(NOTES_MASTER_XML);
|
|
4713
|
-
|
|
5290
|
+
options;
|
|
5291
|
+
constructor(options) {
|
|
4714
5292
|
super("p:notesMaster");
|
|
5293
|
+
this.options = options;
|
|
5294
|
+
}
|
|
5295
|
+
toXml(context) {
|
|
5296
|
+
if (!this.options) return DefaultNotesMaster.instance.toXml(context);
|
|
5297
|
+
const colorMap = buildColorMapAttrs$1(this.options.colorMap);
|
|
5298
|
+
const hf = buildHfAttrs$1(this.options.headerFooter);
|
|
5299
|
+
const notesStyle = buildNotesStyleXml(this.options.notesStyle);
|
|
5300
|
+
return `<p:notesMaster xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"><p:cSld><p:bg><p:bgRef idx="1001"><a:schemeClr val="bg1"/></p:bgRef></p:bg><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr></p:spTree></p:cSld><p:clrMap ${colorMap}/><p:hf ${hf}/>` + notesStyle + "</p:notesMaster>";
|
|
5301
|
+
}
|
|
5302
|
+
};
|
|
5303
|
+
//#endregion
|
|
5304
|
+
//#region src/file/handout-master/handout-master.ts
|
|
5305
|
+
init_xml_components();
|
|
5306
|
+
const DEFAULT_COLOR_MAP = "bg1=\"lt1\" tx1=\"dk1\" bg2=\"lt2\" tx2=\"dk2\" accent1=\"accent1\" accent2=\"accent2\" accent3=\"accent3\" accent4=\"accent4\" accent5=\"accent5\" accent6=\"accent6\" hlink=\"hlink\" folHlink=\"folHlink\"";
|
|
5307
|
+
const HANDOUT_MASTER_XML = `<p:handoutMaster xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
|
|
5308
|
+
<p:cSld>
|
|
5309
|
+
<p:bg>
|
|
5310
|
+
<p:bgRef idx="1001">
|
|
5311
|
+
<a:schemeClr val="bg1"/>
|
|
5312
|
+
</p:bgRef>
|
|
5313
|
+
</p:bg>
|
|
5314
|
+
<p:spTree>
|
|
5315
|
+
<p:nvGrpSpPr>
|
|
5316
|
+
<p:cNvPr id="1" name=""/>
|
|
5317
|
+
<p:cNvGrpSpPr/>
|
|
5318
|
+
<p:nvPr/>
|
|
5319
|
+
</p:nvGrpSpPr>
|
|
5320
|
+
<p:grpSpPr>
|
|
5321
|
+
<a:xfrm>
|
|
5322
|
+
<a:off x="0" y="0"/>
|
|
5323
|
+
<a:ext cx="0" cy="0"/>
|
|
5324
|
+
<a:chOff x="0" y="0"/>
|
|
5325
|
+
<a:chExt cx="0" cy="0"/>
|
|
5326
|
+
</a:xfrm>
|
|
5327
|
+
</p:grpSpPr>
|
|
5328
|
+
</p:spTree>
|
|
5329
|
+
</p:cSld>
|
|
5330
|
+
<p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>
|
|
5331
|
+
<p:hf dt="0" hdr="0" ftr="0" sldNum="0"/>
|
|
5332
|
+
</p:handoutMaster>`;
|
|
5333
|
+
function buildColorMapAttrs(opts) {
|
|
5334
|
+
if (!opts) return DEFAULT_COLOR_MAP;
|
|
5335
|
+
const merged = {
|
|
5336
|
+
bg1: "lt1",
|
|
5337
|
+
tx1: "dk1",
|
|
5338
|
+
bg2: "lt2",
|
|
5339
|
+
tx2: "dk2",
|
|
5340
|
+
accent1: "accent1",
|
|
5341
|
+
accent2: "accent2",
|
|
5342
|
+
accent3: "accent3",
|
|
5343
|
+
accent4: "accent4",
|
|
5344
|
+
accent5: "accent5",
|
|
5345
|
+
accent6: "accent6",
|
|
5346
|
+
hlink: "hlink",
|
|
5347
|
+
folHlink: "folHlink",
|
|
5348
|
+
...opts
|
|
5349
|
+
};
|
|
5350
|
+
return Object.entries(merged).map(([k, v]) => `${k}="${v}"`).join(" ");
|
|
5351
|
+
}
|
|
5352
|
+
function buildHfAttrs(opts) {
|
|
5353
|
+
if (!opts) return "dt=\"0\" hdr=\"0\" ftr=\"0\" sldNum=\"0\"";
|
|
5354
|
+
return `dt="${opts.date ? 1 : 0}" hdr="${opts.header ? 1 : 0}" ftr="${opts.footer ? 1 : 0}" sldNum="${opts.slideNumber ? 1 : 0}"`;
|
|
5355
|
+
}
|
|
5356
|
+
var DefaultHandoutMaster = class DefaultHandoutMaster extends ImportedXmlComponent {
|
|
5357
|
+
static instance = ImportedXmlComponent.fromXmlString(HANDOUT_MASTER_XML);
|
|
5358
|
+
options;
|
|
5359
|
+
constructor(options) {
|
|
5360
|
+
super("p:handoutMaster");
|
|
5361
|
+
this.options = options;
|
|
4715
5362
|
}
|
|
4716
5363
|
toXml(context) {
|
|
4717
|
-
return
|
|
5364
|
+
if (!this.options) return DefaultHandoutMaster.instance.toXml(context);
|
|
5365
|
+
return `<p:handoutMaster xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"><p:cSld><p:bg><p:bgRef idx="1001"><a:schemeClr val="bg1"/></p:bgRef></p:bg><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr></p:spTree></p:cSld><p:clrMap ${buildColorMapAttrs(this.options.colorMap)}/><p:hf ${buildHfAttrs(this.options.headerFooter)}/></p:handoutMaster>`;
|
|
4718
5366
|
}
|
|
4719
5367
|
};
|
|
4720
5368
|
//#endregion
|
|
@@ -4761,6 +5409,323 @@ var HeaderFooter = class extends XmlComponent {
|
|
|
4761
5409
|
}
|
|
4762
5410
|
};
|
|
4763
5411
|
//#endregion
|
|
5412
|
+
//#region src/file/pml-elements.ts
|
|
5413
|
+
init_xml_components();
|
|
5414
|
+
/**
|
|
5415
|
+
* PresentationML (p:) element name constants.
|
|
5416
|
+
*
|
|
5417
|
+
* Covers all pml.xsd elements that are not referenced by existing component classes.
|
|
5418
|
+
* Used for XSD coverage tracking — each constant holds the literal element name string.
|
|
5419
|
+
*
|
|
5420
|
+
* @module
|
|
5421
|
+
*/
|
|
5422
|
+
/** p:blinds — Blinds slide transition */
|
|
5423
|
+
const BLINDS = "p:blinds";
|
|
5424
|
+
/** p:checker — Checker slide transition */
|
|
5425
|
+
const CHECKER = "p:checker";
|
|
5426
|
+
/** p:circle — Circle slide transition */
|
|
5427
|
+
const CIRCLE = "p:circle";
|
|
5428
|
+
/** p:comb — Comb slide transition */
|
|
5429
|
+
const COMB = "p:comb";
|
|
5430
|
+
/** p:cover — Cover slide transition */
|
|
5431
|
+
const COVER = "p:cover";
|
|
5432
|
+
/** p:cut — Cut slide transition */
|
|
5433
|
+
const CUT = "p:cut";
|
|
5434
|
+
/** p:diamond — Diamond slide transition */
|
|
5435
|
+
const DIAMOND = "p:diamond";
|
|
5436
|
+
/** p:dissolve — Dissolve slide transition */
|
|
5437
|
+
const DISSOLVE = "p:dissolve";
|
|
5438
|
+
/** p:fade — Fade slide transition */
|
|
5439
|
+
const FADE = "p:fade";
|
|
5440
|
+
/** p:newsflash — Newsflash slide transition */
|
|
5441
|
+
const NEWSFLASH = "p:newsflash";
|
|
5442
|
+
/** p:plus — Plus slide transition */
|
|
5443
|
+
const PLUS = "p:plus";
|
|
5444
|
+
/** p:pull — Pull slide transition */
|
|
5445
|
+
const PULL = "p:pull";
|
|
5446
|
+
/** p:push — Push slide transition */
|
|
5447
|
+
const PUSH = "p:push";
|
|
5448
|
+
/** p:random — Random slide transition */
|
|
5449
|
+
const RANDOM = "p:random";
|
|
5450
|
+
/** p:randomBar — Random bar slide transition */
|
|
5451
|
+
const RANDOM_BAR = "p:randomBar";
|
|
5452
|
+
/** p:split — Split slide transition */
|
|
5453
|
+
const SPLIT = "p:split";
|
|
5454
|
+
/** p:strips — Strips slide transition */
|
|
5455
|
+
const STRIPS = "p:strips";
|
|
5456
|
+
/** p:wedge — Wedge slide transition */
|
|
5457
|
+
const WEDGE = "p:wedge";
|
|
5458
|
+
/** p:wheel — Wheel slide transition */
|
|
5459
|
+
const WHEEL = "p:wheel";
|
|
5460
|
+
/** p:wipe — Wipe slide transition */
|
|
5461
|
+
const WIPE = "p:wipe";
|
|
5462
|
+
/** p:zoom — Zoom slide transition */
|
|
5463
|
+
const ZOOM = "p:zoom";
|
|
5464
|
+
/** p:stSnd — Start sound action for transition */
|
|
5465
|
+
const ST_SND = "p:stSnd";
|
|
5466
|
+
/** p:endSnd — End sound action for transition */
|
|
5467
|
+
const END_SND = "p:endSnd";
|
|
5468
|
+
/** p:sndAc — Sound action container for transition */
|
|
5469
|
+
const SND_AC = "p:sndAc";
|
|
5470
|
+
/** p:bldLst — Build list for slide animations */
|
|
5471
|
+
const BLD_LST = "p:bldLst";
|
|
5472
|
+
/** p:bldP — Build paragraph animation */
|
|
5473
|
+
const BLD_P = "p:bldP";
|
|
5474
|
+
/** p:bldDgm — Build diagram animation */
|
|
5475
|
+
const BLD_DGM = "p:bldDgm";
|
|
5476
|
+
/** p:bldOleChart — Build OLE chart animation */
|
|
5477
|
+
const BLD_OLE_CHART = "p:bldOleChart";
|
|
5478
|
+
/** p:bldGraphic — Build graphic element animation */
|
|
5479
|
+
const BLD_GRAPHIC = "p:bldGraphic";
|
|
5480
|
+
/** p:bldAsOne — Build as one animation */
|
|
5481
|
+
const BLD_AS_ONE = "p:bldAsOne";
|
|
5482
|
+
/** p:bldSub — Build sub-element animation */
|
|
5483
|
+
const BLD_SUB = "p:bldSub";
|
|
5484
|
+
/** p:tn — Timeline node */
|
|
5485
|
+
const TN = "p:tn";
|
|
5486
|
+
/** p:subTnLst — Sub-timeline node list */
|
|
5487
|
+
const SUB_TN_LST = "p:subTnLst";
|
|
5488
|
+
/** p:endCondLst — End condition list */
|
|
5489
|
+
const END_COND_LST = "p:endCondLst";
|
|
5490
|
+
/** p:endSync — End synchronization */
|
|
5491
|
+
const END_SYNC = "p:endSync";
|
|
5492
|
+
/** p:tmpl — Animation template */
|
|
5493
|
+
const TMPL = "p:tmpl";
|
|
5494
|
+
/** p:tmplLst — Animation template list */
|
|
5495
|
+
const TMPL_LST = "p:tmplLst";
|
|
5496
|
+
/** p:tmPct — Timeline percentage */
|
|
5497
|
+
const TM_PCT = "p:tmPct";
|
|
5498
|
+
/** p:excl — Exclusive timing node */
|
|
5499
|
+
const EXCL = "p:excl";
|
|
5500
|
+
/** p:inkTgt — Ink target element */
|
|
5501
|
+
const INK_TGT = "p:inkTgt";
|
|
5502
|
+
/** p:sndTgt — Sound target element */
|
|
5503
|
+
const SND_TGT = "p:sndTgt";
|
|
5504
|
+
/** p:spTgt sub-elements — sub-shape target */
|
|
5505
|
+
const SUB_SP = "p:subSp";
|
|
5506
|
+
/** p:graphicEl — Graphic element target */
|
|
5507
|
+
const GRAPHIC_EL = "p:graphicEl";
|
|
5508
|
+
/** p:oleChartEl — OLE chart element target */
|
|
5509
|
+
const OLE_CHART_EL = "p:oleChartEl";
|
|
5510
|
+
/** p:rCtr — Runtime context */
|
|
5511
|
+
const R_CTR = "p:rCtr";
|
|
5512
|
+
/** p:boolVal — Boolean animation value */
|
|
5513
|
+
const BOOL_VAL = "p:boolVal";
|
|
5514
|
+
/** p:intVal — Integer animation value */
|
|
5515
|
+
const INT_VAL = "p:intVal";
|
|
5516
|
+
/** p:fltVal — Float animation value */
|
|
5517
|
+
const FLT_VAL = "p:fltVal";
|
|
5518
|
+
/** p:strVal note: already referenced in timing.ts, included for completeness */
|
|
5519
|
+
const STR_VAL = "p:strVal";
|
|
5520
|
+
/** p:clrVal — Color animation value */
|
|
5521
|
+
const CLR_VAL = "p:clrVal";
|
|
5522
|
+
/** p:from — Animation from value */
|
|
5523
|
+
const FROM = "p:from";
|
|
5524
|
+
/** p:rgb — RGB color value for animation */
|
|
5525
|
+
const RGB = "p:rgb";
|
|
5526
|
+
/** p:hsl — HSL color value for animation */
|
|
5527
|
+
const HSL = "p:hsl";
|
|
5528
|
+
/** p:rtn — Rotation transform */
|
|
5529
|
+
const RTN = "p:rtn";
|
|
5530
|
+
/** p:bold — Bold text build style */
|
|
5531
|
+
const BOLD = "p:bold";
|
|
5532
|
+
/** p:italic — Italic text build style */
|
|
5533
|
+
const ITALIC = "p:italic";
|
|
5534
|
+
/** p:boldItalic — Bold-italic text build style */
|
|
5535
|
+
const BOLD_ITALIC = "p:boldItalic";
|
|
5536
|
+
/** p:regular — Regular text build style */
|
|
5537
|
+
const REGULAR = "p:regular";
|
|
5538
|
+
/** p:style — Text style reference */
|
|
5539
|
+
const STYLE = "p:style";
|
|
5540
|
+
/** p:font — Font element */
|
|
5541
|
+
const FONT = "p:font";
|
|
5542
|
+
/** p:contentPart — Content part reference */
|
|
5543
|
+
const CONTENT_PART = "p:contentPart";
|
|
5544
|
+
/** p:sldLst — Slide list */
|
|
5545
|
+
const SLD_LST = "p:sldLst";
|
|
5546
|
+
/** p:photoAlbum — Photo album settings */
|
|
5547
|
+
const PHOTO_ALBUM = "p:photoAlbum";
|
|
5548
|
+
/** p:control — Embedded control */
|
|
5549
|
+
const CONTROL = "p:control";
|
|
5550
|
+
/** p:controls — Controls container */
|
|
5551
|
+
const CONTROLS = "p:controls";
|
|
5552
|
+
/** p:custData — Custom data element */
|
|
5553
|
+
const CUST_DATA = "p:custData";
|
|
5554
|
+
/** p:custDataLst — Custom data list */
|
|
5555
|
+
const CUST_DATA_LST = "p:custDataLst";
|
|
5556
|
+
/** p:custShow — Custom show */
|
|
5557
|
+
const CUST_SHOW = "p:custShow";
|
|
5558
|
+
/** p:custShowLst — Custom show list */
|
|
5559
|
+
const CUST_SHOW_LST = "p:custShowLst";
|
|
5560
|
+
/** p:tag — Tag element */
|
|
5561
|
+
const TAG = "p:tag";
|
|
5562
|
+
/** p:tagLst — Tag list */
|
|
5563
|
+
const TAG_LST = "p:tagLst";
|
|
5564
|
+
/** p:tags — Tags container */
|
|
5565
|
+
const TAGS = "p:tags";
|
|
5566
|
+
/** p:embeddedFont — Embedded font */
|
|
5567
|
+
const EMBEDDED_FONT = "p:embeddedFont";
|
|
5568
|
+
/** p:embeddedFontLst — Embedded font list */
|
|
5569
|
+
const EMBEDDED_FONT_LST = "p:embeddedFontLst";
|
|
5570
|
+
/** p:htmlPubPr — HTML publish properties */
|
|
5571
|
+
const HTML_PUB_PR = "p:htmlPubPr";
|
|
5572
|
+
/** p:webPr — Web properties */
|
|
5573
|
+
const WEB_PR = "p:webPr";
|
|
5574
|
+
/** p:prnPr — Print properties */
|
|
5575
|
+
const PRN_PR = "p:prnPr";
|
|
5576
|
+
/** p:modifyVerifier — Modification verifier */
|
|
5577
|
+
const MODIFY_VERIFIER = "p:modifyVerifier";
|
|
5578
|
+
/** p:smartTags — Smart tags */
|
|
5579
|
+
const SMART_TAGS = "p:smartTags";
|
|
5580
|
+
/** p:sldSyncPr — Slide synchronization properties */
|
|
5581
|
+
const SLD_SYNC_PR = "p:sldSyncPr";
|
|
5582
|
+
/** p:notesViewPr — Notes view properties */
|
|
5583
|
+
const NOTES_VIEW_PR = "p:notesViewPr";
|
|
5584
|
+
/** p:outlineViewPr — Outline view properties */
|
|
5585
|
+
const OUTLINE_VIEW_PR = "p:outlineViewPr";
|
|
5586
|
+
/** p:sorterViewPr — Sorter view properties */
|
|
5587
|
+
const SORTER_VIEW_PR = "p:sorterViewPr";
|
|
5588
|
+
/** p:clrMru — Color most-recently-used */
|
|
5589
|
+
const CLR_MRU = "p:clrMru";
|
|
5590
|
+
/** p:guide — Drawing guide */
|
|
5591
|
+
const GUIDE = "p:guide";
|
|
5592
|
+
/** p:kinsoku — Kinsoku line breaking settings */
|
|
5593
|
+
const KINSOKU = "p:kinsoku";
|
|
5594
|
+
/** p:progress — Progress element */
|
|
5595
|
+
const PROGRESS = "p:progress";
|
|
5596
|
+
/** Creates a p:sldSyncPr element (Slide Sync Properties). */
|
|
5597
|
+
const createSlideSyncProperties = (options) => {
|
|
5598
|
+
const attrs = {};
|
|
5599
|
+
if (options?.serverSlideId !== void 0) attrs.serverSlideId = {
|
|
5600
|
+
key: "serverSldId",
|
|
5601
|
+
value: options.serverSlideId
|
|
5602
|
+
};
|
|
5603
|
+
if (options?.serverSlideModifiedTime !== void 0) attrs.serverSlideModifiedTime = {
|
|
5604
|
+
key: "serverSldModifiedTime",
|
|
5605
|
+
value: options.serverSlideModifiedTime
|
|
5606
|
+
};
|
|
5607
|
+
if (options?.clientInsertedTime !== void 0) attrs.clientInsertedTime = {
|
|
5608
|
+
key: "clientInsertedTime",
|
|
5609
|
+
value: options.clientInsertedTime
|
|
5610
|
+
};
|
|
5611
|
+
return new BuilderElement({
|
|
5612
|
+
name: "p:sldSyncPr",
|
|
5613
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5614
|
+
});
|
|
5615
|
+
};
|
|
5616
|
+
/** Creates a p:outlineViewPr element (Outline View Properties). */
|
|
5617
|
+
const createOutlineViewProperties = (options) => {
|
|
5618
|
+
const attrs = {};
|
|
5619
|
+
if (options?.showFormatting !== void 0) attrs.showFormatting = {
|
|
5620
|
+
key: "showFormatting",
|
|
5621
|
+
value: options.showFormatting ? "1" : "0"
|
|
5622
|
+
};
|
|
5623
|
+
return new BuilderElement({
|
|
5624
|
+
name: "p:outlineViewPr",
|
|
5625
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5626
|
+
});
|
|
5627
|
+
};
|
|
5628
|
+
/** Creates a p:sld element for outline view (OutlineViewSlideEntry). */
|
|
5629
|
+
const createOutlineViewSlideEntry = (options) => {
|
|
5630
|
+
const attrs = {};
|
|
5631
|
+
if (options?.collapse !== void 0) attrs.collapse = {
|
|
5632
|
+
key: "collapse",
|
|
5633
|
+
value: options.collapse ? "1" : "0"
|
|
5634
|
+
};
|
|
5635
|
+
return new BuilderElement({
|
|
5636
|
+
name: "p:sld",
|
|
5637
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5638
|
+
});
|
|
5639
|
+
};
|
|
5640
|
+
/** Creates a p:kinsoku element (Kinsoku Line Breaking). */
|
|
5641
|
+
const createKinsoku = (options) => {
|
|
5642
|
+
const attrs = {};
|
|
5643
|
+
if (options?.invalidStartCharacters !== void 0) attrs.invalidStartCharacters = {
|
|
5644
|
+
key: "invalStChars",
|
|
5645
|
+
value: options.invalidStartCharacters
|
|
5646
|
+
};
|
|
5647
|
+
if (options?.invalidEndCharacters !== void 0) attrs.invalidEndCharacters = {
|
|
5648
|
+
key: "invalEndChars",
|
|
5649
|
+
value: options.invalidEndCharacters
|
|
5650
|
+
};
|
|
5651
|
+
return new BuilderElement({
|
|
5652
|
+
name: "p:kinsoku",
|
|
5653
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5654
|
+
});
|
|
5655
|
+
};
|
|
5656
|
+
/** Creates a p:excl element (Exclusive Timing). */
|
|
5657
|
+
const createExclusiveTiming = (options) => {
|
|
5658
|
+
const attrs = {};
|
|
5659
|
+
if (options?.previousAction !== void 0) attrs.previousAction = {
|
|
5660
|
+
key: "prevAc",
|
|
5661
|
+
value: options.previousAction
|
|
5662
|
+
};
|
|
5663
|
+
return new BuilderElement({
|
|
5664
|
+
name: "p:excl",
|
|
5665
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5666
|
+
});
|
|
5667
|
+
};
|
|
5668
|
+
/** Creates a p:bldP element (Build Paragraph). */
|
|
5669
|
+
const createBuildParagraph = (options) => {
|
|
5670
|
+
const attrs = {};
|
|
5671
|
+
if (options?.build !== void 0) attrs.build = {
|
|
5672
|
+
key: "build",
|
|
5673
|
+
value: options.build
|
|
5674
|
+
};
|
|
5675
|
+
if (options?.uiExpand !== void 0) attrs.uiExpand = {
|
|
5676
|
+
key: "uiExpand",
|
|
5677
|
+
value: options.uiExpand ? "1" : "0"
|
|
5678
|
+
};
|
|
5679
|
+
return new BuilderElement({
|
|
5680
|
+
name: "p:bldP",
|
|
5681
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5682
|
+
});
|
|
5683
|
+
};
|
|
5684
|
+
/** Creates a p:bldDgm element (Build Diagram). */
|
|
5685
|
+
const createBuildDiagram = (options) => {
|
|
5686
|
+
const attrs = {};
|
|
5687
|
+
if (options?.build !== void 0) attrs.build = {
|
|
5688
|
+
key: "bld",
|
|
5689
|
+
value: options.build
|
|
5690
|
+
};
|
|
5691
|
+
if (options?.uiExpand !== void 0) attrs.uiExpand = {
|
|
5692
|
+
key: "uiExpand",
|
|
5693
|
+
value: options.uiExpand ? "1" : "0"
|
|
5694
|
+
};
|
|
5695
|
+
return new BuilderElement({
|
|
5696
|
+
name: "p:bldDgm",
|
|
5697
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5698
|
+
});
|
|
5699
|
+
};
|
|
5700
|
+
/** Creates a p:bldOleChart element (Build OLE Chart). */
|
|
5701
|
+
const createBuildOleChart = (options) => {
|
|
5702
|
+
const attrs = {};
|
|
5703
|
+
if (options?.build !== void 0) attrs.build = {
|
|
5704
|
+
key: "bld",
|
|
5705
|
+
value: options.build
|
|
5706
|
+
};
|
|
5707
|
+
if (options?.uiExpand !== void 0) attrs.uiExpand = {
|
|
5708
|
+
key: "uiExpand",
|
|
5709
|
+
value: options.uiExpand ? "1" : "0"
|
|
5710
|
+
};
|
|
5711
|
+
return new BuilderElement({
|
|
5712
|
+
name: "p:bldOleChart",
|
|
5713
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5714
|
+
});
|
|
5715
|
+
};
|
|
5716
|
+
/** Creates a p:bldGraphic element (Build Graphic). */
|
|
5717
|
+
const createBuildGraphic = (options) => {
|
|
5718
|
+
const attrs = {};
|
|
5719
|
+
if (options?.uiExpand !== void 0) attrs.uiExpand = {
|
|
5720
|
+
key: "uiExpand",
|
|
5721
|
+
value: options.uiExpand ? "1" : "0"
|
|
5722
|
+
};
|
|
5723
|
+
return new BuilderElement({
|
|
5724
|
+
name: "p:bldGraphic",
|
|
5725
|
+
attributes: Object.keys(attrs).length > 0 ? attrs : void 0
|
|
5726
|
+
});
|
|
5727
|
+
};
|
|
5728
|
+
//#endregion
|
|
4764
5729
|
//#region src/file/index.ts
|
|
4765
5730
|
init_fill();
|
|
4766
5731
|
init_effects();
|
|
@@ -4879,7 +5844,7 @@ var Compiler = class {
|
|
|
4879
5844
|
file.presentationWrapper.view.setNotesMasterRId(notesMasterRId);
|
|
4880
5845
|
const notesMasterThemeIndex = themes.length + 1;
|
|
4881
5846
|
mapping["NotesMaster"] = {
|
|
4882
|
-
data: this.formatter.formatToXml(new DefaultNotesMaster(), context),
|
|
5847
|
+
data: this.formatter.formatToXml(new DefaultNotesMaster(file.notesMasterOptions), context),
|
|
4883
5848
|
path: "ppt/notesMasters/notesMaster1.xml"
|
|
4884
5849
|
};
|
|
4885
5850
|
const notesMasterTheme = new DefaultTheme();
|
|
@@ -4895,6 +5860,28 @@ var Compiler = class {
|
|
|
4895
5860
|
path: "ppt/notesMasters/_rels/notesMaster1.xml.rels"
|
|
4896
5861
|
};
|
|
4897
5862
|
}
|
|
5863
|
+
if (file.hasHandoutMaster) {
|
|
5864
|
+
const handoutMasterRId = file.presentationWrapper.relationships.relationshipCount + 1;
|
|
5865
|
+
file.presentationWrapper.relationships.addRelationship(handoutMasterRId, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/handoutMaster", "handoutMasters/handoutMaster1.xml");
|
|
5866
|
+
file.presentationWrapper.view.setHandoutMasterRId(handoutMasterRId);
|
|
5867
|
+
const handoutMasterThemeIndex = themes.length + (file.notesSlides.length > 0 ? 2 : 1);
|
|
5868
|
+
mapping["HandoutMaster"] = {
|
|
5869
|
+
data: this.formatter.formatToXml(new DefaultHandoutMaster(file.handoutMasterOptions), context),
|
|
5870
|
+
path: "ppt/handoutMasters/handoutMaster1.xml"
|
|
5871
|
+
};
|
|
5872
|
+
const handoutMasterTheme = new DefaultTheme();
|
|
5873
|
+
mapping["HandoutMasterTheme"] = {
|
|
5874
|
+
data: this.formatter.formatToXml(handoutMasterTheme, context),
|
|
5875
|
+
path: `ppt/theme/theme${handoutMasterThemeIndex}.xml`
|
|
5876
|
+
};
|
|
5877
|
+
file.contentTypes.addTheme(handoutMasterThemeIndex);
|
|
5878
|
+
const handoutMasterRels = new Relationships();
|
|
5879
|
+
handoutMasterRels.addRelationship(1, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme", `../theme/theme${handoutMasterThemeIndex}.xml`);
|
|
5880
|
+
mapping["HandoutMasterRelationships"] = {
|
|
5881
|
+
data: this.formatter.formatToXml(handoutMasterRels, context),
|
|
5882
|
+
path: "ppt/handoutMasters/_rels/handoutMaster1.xml.rels"
|
|
5883
|
+
};
|
|
5884
|
+
}
|
|
4898
5885
|
if (file.commentAuthorList) file.presentationWrapper.relationships.addRelationship(file.presentationWrapper.relationships.relationshipCount + 1, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors", "commentAuthors.xml");
|
|
4899
5886
|
const presentationXml = this.formatter.formatToXml(file.presentationWrapper.view, context);
|
|
4900
5887
|
let currentImageCount = 0;
|
|
@@ -7214,9 +8201,34 @@ const patchPresentation = async ({ outputType, data, patches, keepOriginalStyles
|
|
|
7214
8201
|
__reExport(/* @__PURE__ */ __exportAll({
|
|
7215
8202
|
AppProperties: () => AppProperties,
|
|
7216
8203
|
AudioFrame: () => AudioFrame,
|
|
8204
|
+
BLD_AS_ONE: () => BLD_AS_ONE,
|
|
8205
|
+
BLD_DGM: () => BLD_DGM,
|
|
8206
|
+
BLD_GRAPHIC: () => BLD_GRAPHIC,
|
|
8207
|
+
BLD_LST: () => BLD_LST,
|
|
8208
|
+
BLD_OLE_CHART: () => BLD_OLE_CHART,
|
|
8209
|
+
BLD_P: () => BLD_P,
|
|
8210
|
+
BLD_SUB: () => BLD_SUB,
|
|
8211
|
+
BLINDS: () => BLINDS,
|
|
8212
|
+
BOLD: () => BOLD,
|
|
8213
|
+
BOLD_ITALIC: () => BOLD_ITALIC,
|
|
8214
|
+
BOOL_VAL: () => BOOL_VAL,
|
|
7217
8215
|
Background: () => Background,
|
|
7218
8216
|
BevelPresetType: () => BevelPresetType,
|
|
7219
8217
|
BlipFill: () => BlipFill,
|
|
8218
|
+
CHECKER: () => CHECKER,
|
|
8219
|
+
CIRCLE: () => CIRCLE,
|
|
8220
|
+
CLR_MRU: () => CLR_MRU,
|
|
8221
|
+
CLR_VAL: () => CLR_VAL,
|
|
8222
|
+
COMB: () => COMB,
|
|
8223
|
+
CONTENT_PART: () => CONTENT_PART,
|
|
8224
|
+
CONTROL: () => CONTROL,
|
|
8225
|
+
CONTROLS: () => CONTROLS,
|
|
8226
|
+
COVER: () => COVER,
|
|
8227
|
+
CUST_DATA: () => CUST_DATA,
|
|
8228
|
+
CUST_DATA_LST: () => CUST_DATA_LST,
|
|
8229
|
+
CUST_SHOW: () => CUST_SHOW,
|
|
8230
|
+
CUST_SHOW_LST: () => CUST_SHOW_LST,
|
|
8231
|
+
CUT: () => CUT,
|
|
7220
8232
|
Chart: () => Chart,
|
|
7221
8233
|
ChartCollection: () => ChartCollection,
|
|
7222
8234
|
ChartSpace: () => ChartSpace,
|
|
@@ -7224,27 +8236,59 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7224
8236
|
ConnectorShape: () => ConnectorShape,
|
|
7225
8237
|
ContentTypes: () => ContentTypes,
|
|
7226
8238
|
CoreProperties: () => CoreProperties,
|
|
8239
|
+
DIAMOND: () => DIAMOND,
|
|
8240
|
+
DISSOLVE: () => DISSOLVE,
|
|
7227
8241
|
DateTimeField: () => DateTimeField,
|
|
8242
|
+
DefaultHandoutMaster: () => DefaultHandoutMaster,
|
|
7228
8243
|
DefaultNotesMaster: () => DefaultNotesMaster,
|
|
7229
8244
|
DefaultSlideLayout: () => DefaultSlideLayout,
|
|
7230
8245
|
DefaultSlideMaster: () => DefaultSlideMaster,
|
|
7231
8246
|
DefaultTheme: () => DefaultTheme,
|
|
7232
8247
|
DrawingTable: () => DrawingTable,
|
|
8248
|
+
EMBEDDED_FONT: () => EMBEDDED_FONT,
|
|
8249
|
+
EMBEDDED_FONT_LST: () => EMBEDDED_FONT_LST,
|
|
8250
|
+
END_COND_LST: () => END_COND_LST,
|
|
8251
|
+
END_SND: () => END_SND,
|
|
8252
|
+
END_SYNC: () => END_SYNC,
|
|
8253
|
+
EXCL: () => EXCL,
|
|
7233
8254
|
EndParagraphRunProperties: () => EndParagraphRunProperties,
|
|
8255
|
+
FADE: () => FADE,
|
|
8256
|
+
FLT_VAL: () => FLT_VAL,
|
|
8257
|
+
FONT: () => FONT,
|
|
8258
|
+
FROM: () => FROM,
|
|
7234
8259
|
Field: () => Field,
|
|
7235
8260
|
File: () => File,
|
|
8261
|
+
GRAPHIC_EL: () => GRAPHIC_EL,
|
|
8262
|
+
GUIDE: () => GUIDE,
|
|
7236
8263
|
GroupShape: () => GroupShape,
|
|
7237
8264
|
GroupShapeProperties: () => GroupShapeProperties,
|
|
7238
8265
|
GroupTransform2D: () => GroupTransform2D,
|
|
8266
|
+
HSL: () => HSL,
|
|
8267
|
+
HTML_PUB_PR: () => HTML_PUB_PR,
|
|
7239
8268
|
HeaderFooter: () => HeaderFooter,
|
|
8269
|
+
INK_TGT: () => INK_TGT,
|
|
8270
|
+
INT_VAL: () => INT_VAL,
|
|
8271
|
+
ITALIC: () => ITALIC,
|
|
8272
|
+
KINSOKU: () => KINSOKU,
|
|
7240
8273
|
LineCap: () => LineCap,
|
|
7241
8274
|
LineJoin: () => LineJoin,
|
|
7242
8275
|
LineShape: () => LineShape,
|
|
8276
|
+
MODIFY_VERIFIER: () => MODIFY_VERIFIER,
|
|
7243
8277
|
Media: () => Media,
|
|
8278
|
+
NEWSFLASH: () => NEWSFLASH,
|
|
8279
|
+
NOTES_VIEW_PR: () => NOTES_VIEW_PR,
|
|
7244
8280
|
NonVisualDrawingProperties: () => NonVisualDrawingProperties,
|
|
7245
8281
|
NonVisualPictureProperties: () => NonVisualPictureProperties,
|
|
7246
8282
|
NonVisualShapeProperties: () => NonVisualShapeProperties,
|
|
7247
8283
|
NotesSlide: () => NotesSlide,
|
|
8284
|
+
OLE_CHART_EL: () => OLE_CHART_EL,
|
|
8285
|
+
OUTLINE_VIEW_PR: () => OUTLINE_VIEW_PR,
|
|
8286
|
+
PHOTO_ALBUM: () => PHOTO_ALBUM,
|
|
8287
|
+
PLUS: () => PLUS,
|
|
8288
|
+
PRN_PR: () => PRN_PR,
|
|
8289
|
+
PROGRESS: () => PROGRESS,
|
|
8290
|
+
PULL: () => PULL,
|
|
8291
|
+
PUSH: () => PUSH,
|
|
7248
8292
|
Packer: () => Packer,
|
|
7249
8293
|
Paragraph: () => Paragraph,
|
|
7250
8294
|
ParagraphProperties: () => ParagraphProperties,
|
|
@@ -7257,9 +8301,28 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7257
8301
|
PresetDash: () => PresetDash,
|
|
7258
8302
|
PresetGeometry: () => PresetGeometry,
|
|
7259
8303
|
PresetMaterialType: () => PresetMaterialType,
|
|
8304
|
+
RANDOM: () => RANDOM,
|
|
8305
|
+
RANDOM_BAR: () => RANDOM_BAR,
|
|
8306
|
+
REGULAR: () => REGULAR,
|
|
8307
|
+
RGB: () => RGB,
|
|
8308
|
+
RTN: () => RTN,
|
|
8309
|
+
R_CTR: () => R_CTR,
|
|
7260
8310
|
ReflectionAlignment: () => ReflectionAlignment,
|
|
7261
8311
|
Relationships: () => Relationships,
|
|
7262
8312
|
RunProperties: () => RunProperties,
|
|
8313
|
+
SLD_LST: () => SLD_LST,
|
|
8314
|
+
SLD_SYNC_PR: () => SLD_SYNC_PR,
|
|
8315
|
+
SMART_TAGS: () => SMART_TAGS,
|
|
8316
|
+
SND_AC: () => SND_AC,
|
|
8317
|
+
SND_TGT: () => SND_TGT,
|
|
8318
|
+
SORTER_VIEW_PR: () => SORTER_VIEW_PR,
|
|
8319
|
+
SPLIT: () => SPLIT,
|
|
8320
|
+
STRIPS: () => STRIPS,
|
|
8321
|
+
STR_VAL: () => STR_VAL,
|
|
8322
|
+
STYLE: () => STYLE,
|
|
8323
|
+
ST_SND: () => ST_SND,
|
|
8324
|
+
SUB_SP: () => SUB_SP,
|
|
8325
|
+
SUB_TN_LST: () => SUB_TN_LST,
|
|
7263
8326
|
Shape: () => Shape,
|
|
7264
8327
|
ShapeProperties: () => ShapeProperties,
|
|
7265
8328
|
ShapeTree: () => ShapeTree,
|
|
@@ -7269,6 +8332,13 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7269
8332
|
SlideSizePreset: () => SlideSizePreset,
|
|
7270
8333
|
SmartArt: () => SmartArt,
|
|
7271
8334
|
StrikeStyle: () => StrikeStyle,
|
|
8335
|
+
TAG: () => TAG,
|
|
8336
|
+
TAGS: () => TAGS,
|
|
8337
|
+
TAG_LST: () => TAG_LST,
|
|
8338
|
+
TMPL: () => TMPL,
|
|
8339
|
+
TMPL_LST: () => TMPL_LST,
|
|
8340
|
+
TM_PCT: () => TM_PCT,
|
|
8341
|
+
TN: () => TN,
|
|
7272
8342
|
Table: () => Table,
|
|
7273
8343
|
TableCell: () => TableCell,
|
|
7274
8344
|
TableCellProperties: () => TableCellProperties,
|
|
@@ -7283,6 +8353,11 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7283
8353
|
Transition: () => Transition,
|
|
7284
8354
|
UnderlineStyle: () => UnderlineStyle,
|
|
7285
8355
|
VideoFrame: () => VideoFrame,
|
|
8356
|
+
WEB_PR: () => WEB_PR,
|
|
8357
|
+
WEDGE: () => WEDGE,
|
|
8358
|
+
WHEEL: () => WHEEL,
|
|
8359
|
+
WIPE: () => WIPE,
|
|
8360
|
+
ZOOM: () => ZOOM,
|
|
7286
8361
|
buildFill: () => buildFill,
|
|
7287
8362
|
coerceChild: () => coerceChild,
|
|
7288
8363
|
convertEmuToInches: () => convertEmuToInches,
|
|
@@ -7293,16 +8368,25 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7293
8368
|
convertPointsToEmu: () => convertPointsToEmu,
|
|
7294
8369
|
createBevel: () => createBevel,
|
|
7295
8370
|
createBottomBevel: () => createBottomBevel,
|
|
8371
|
+
createBuildDiagram: () => createBuildDiagram,
|
|
8372
|
+
createBuildGraphic: () => createBuildGraphic,
|
|
8373
|
+
createBuildOleChart: () => createBuildOleChart,
|
|
8374
|
+
createBuildParagraph: () => createBuildParagraph,
|
|
7296
8375
|
createColorElement: () => createColorElement,
|
|
7297
8376
|
createColorTransforms: () => createColorTransforms,
|
|
7298
8377
|
createEffectList: () => createEffectList,
|
|
8378
|
+
createExclusiveTiming: () => createExclusiveTiming,
|
|
7299
8379
|
createGradientFill: () => createGradientFill,
|
|
7300
8380
|
createGradientStop: () => createGradientStop,
|
|
8381
|
+
createKinsoku: () => createKinsoku,
|
|
7301
8382
|
createOutline: () => createOutline,
|
|
7302
8383
|
createOutlineCompat: () => createOutlineCompat,
|
|
8384
|
+
createOutlineViewProperties: () => createOutlineViewProperties,
|
|
8385
|
+
createOutlineViewSlideEntry: () => createOutlineViewSlideEntry,
|
|
7303
8386
|
createPptxEffectList: () => createPptxEffectList,
|
|
7304
8387
|
createScene3D: () => createScene3D,
|
|
7305
8388
|
createShape3D: () => createShape3D,
|
|
8389
|
+
createSlideSyncProperties: () => createSlideSyncProperties,
|
|
7306
8390
|
createTransformation: () => createTransformation,
|
|
7307
8391
|
extractBlipFillMedia: () => extractBlipFillMedia,
|
|
7308
8392
|
hashedId: () => hashedId,
|
|
@@ -7316,6 +8400,6 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7316
8400
|
uniqueUuid: () => uniqueUuid
|
|
7317
8401
|
}), util_exports);
|
|
7318
8402
|
//#endregion
|
|
7319
|
-
export { AppProperties, AudioFrame, Background, BevelPresetType, BlipFill, Chart, ChartCollection, ChartSpace, CompoundLine, ConnectorShape, ContentTypes, CoreProperties, DateTimeField, DefaultNotesMaster, DefaultSlideLayout, DefaultSlideMaster, DefaultTheme, DrawingTable, EndParagraphRunProperties, Field, File, File as Presentation, GroupShape, GroupShapeProperties, GroupTransform2D, HeaderFooter, LineCap, LineJoin, LineShape, Media, NonVisualDrawingProperties, NonVisualPictureProperties, NonVisualShapeProperties, NotesSlide, Packer, Paragraph, ParagraphProperties, PatchType, PathShadeType, PenAlignment, Picture, PresentationWrapper, PresetDash, PresetGeometry, PresetMaterialType, ReflectionAlignment, Relationships, RunProperties, Shape, ShapeProperties, ShapeTree, Slide, SlideLayout, SlideNumberField, SlideSizePreset, SmartArt, StrikeStyle, Table, TableCell, TableCellProperties, TableProperties, TableRow, Text, TextBody, TextCapitalization, TextRun, TileFlipMode, Transform2D, Transition, UnderlineStyle, VideoFrame, buildFill, coerceChild, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertInchesToEmu, convertPixelsToEmu, convertPointsToEmu, createBevel, createBottomBevel, createColorElement, createColorTransforms, createEffectList, createGradientFill, createGradientStop, createOutline, createOutlineCompat, createPptxEffectList, createScene3D, createShape3D, createTransformation, extractBlipFillMedia, hashedId, parseArchive, parsePptx, parsePresentation, patchPresentation, percentToTHousandths, uniqueId, uniqueNumericIdCreator, uniqueUuid };
|
|
8403
|
+
export { AppProperties, AudioFrame, BLD_AS_ONE, BLD_DGM, BLD_GRAPHIC, BLD_LST, BLD_OLE_CHART, BLD_P, BLD_SUB, BLINDS, BOLD, BOLD_ITALIC, BOOL_VAL, Background, BevelPresetType, BlipFill, CHECKER, CIRCLE, CLR_MRU, CLR_VAL, COMB, CONTENT_PART, CONTROL, CONTROLS, COVER, CUST_DATA, CUST_DATA_LST, CUST_SHOW, CUST_SHOW_LST, CUT, Chart, ChartCollection, ChartSpace, CompoundLine, ConnectorShape, ContentTypes, CoreProperties, DIAMOND, DISSOLVE, DateTimeField, DefaultHandoutMaster, DefaultNotesMaster, DefaultSlideLayout, DefaultSlideMaster, DefaultTheme, DrawingTable, EMBEDDED_FONT, EMBEDDED_FONT_LST, END_COND_LST, END_SND, END_SYNC, EXCL, EndParagraphRunProperties, FADE, FLT_VAL, FONT, FROM, Field, File, File as Presentation, GRAPHIC_EL, GUIDE, GroupShape, GroupShapeProperties, GroupTransform2D, HSL, HTML_PUB_PR, HeaderFooter, INK_TGT, INT_VAL, ITALIC, KINSOKU, LineCap, LineJoin, LineShape, MODIFY_VERIFIER, Media, NEWSFLASH, NOTES_VIEW_PR, NonVisualDrawingProperties, NonVisualPictureProperties, NonVisualShapeProperties, NotesSlide, OLE_CHART_EL, OUTLINE_VIEW_PR, PHOTO_ALBUM, PLUS, PRN_PR, PROGRESS, PULL, PUSH, Packer, Paragraph, ParagraphProperties, PatchType, PathShadeType, PenAlignment, Picture, PresentationWrapper, PresetDash, PresetGeometry, PresetMaterialType, RANDOM, RANDOM_BAR, REGULAR, RGB, RTN, R_CTR, ReflectionAlignment, Relationships, RunProperties, SLD_LST, SLD_SYNC_PR, SMART_TAGS, SND_AC, SND_TGT, SORTER_VIEW_PR, SPLIT, STRIPS, STR_VAL, STYLE, ST_SND, SUB_SP, SUB_TN_LST, Shape, ShapeProperties, ShapeTree, Slide, SlideLayout, SlideNumberField, SlideSizePreset, SmartArt, StrikeStyle, TAG, TAGS, TAG_LST, TMPL, TMPL_LST, TM_PCT, TN, Table, TableCell, TableCellProperties, TableProperties, TableRow, Text, TextBody, TextCapitalization, TextRun, TileFlipMode, Transform2D, Transition, UnderlineStyle, VideoFrame, WEB_PR, WEDGE, WHEEL, WIPE, ZOOM, buildFill, coerceChild, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertInchesToEmu, convertPixelsToEmu, convertPointsToEmu, createBevel, createBottomBevel, createBuildDiagram, createBuildGraphic, createBuildOleChart, createBuildParagraph, createColorElement, createColorTransforms, createEffectList, createExclusiveTiming, createGradientFill, createGradientStop, createKinsoku, createOutline, createOutlineCompat, createOutlineViewProperties, createOutlineViewSlideEntry, createPptxEffectList, createScene3D, createShape3D, createSlideSyncProperties, createTransformation, extractBlipFillMedia, hashedId, parseArchive, parsePptx, parsePresentation, patchPresentation, percentToTHousandths, uniqueId, uniqueNumericIdCreator, uniqueUuid };
|
|
7320
8404
|
|
|
7321
8405
|
//# sourceMappingURL=index.mjs.map
|