@office-open/pptx 0.7.1 → 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 -84
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1283 -198
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1,9 +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, toUint8Array, 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 { DefaultTheme } from "@office-open/core/theme";
|
|
7
8
|
export * from "@office-open/core/values";
|
|
8
9
|
//#region src/file/drawingml/effects.ts
|
|
9
10
|
/** Convert PPTX simple color to core SolidFillOptions. */
|
|
@@ -239,6 +240,10 @@ var SlideCommentList = class extends XmlComponent {
|
|
|
239
240
|
...comment.date != null ? { dt: {
|
|
240
241
|
key: "dt",
|
|
241
242
|
value: comment.date
|
|
243
|
+
} } : {},
|
|
244
|
+
...comment.modified !== void 0 ? { mod: {
|
|
245
|
+
key: "mod",
|
|
246
|
+
value: comment.modified ? "1" : "0"
|
|
242
247
|
} } : {}
|
|
243
248
|
},
|
|
244
249
|
children: [new BuilderElement({
|
|
@@ -270,6 +275,7 @@ const PPTX_SLIDE_LAYOUT = "application/vnd.openxmlformats-officedocument.present
|
|
|
270
275
|
const PPTX_THEME = "application/vnd.openxmlformats-officedocument.theme+xml";
|
|
271
276
|
const PPTX_NOTES = "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml";
|
|
272
277
|
const PPTX_NOTES_MASTER = "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml";
|
|
278
|
+
const PPTX_HANDOUT_MASTER = "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml";
|
|
273
279
|
const PPTX_COMMENTS = "application/vnd.openxmlformats-officedocument.presentationml.comments+xml";
|
|
274
280
|
const PPTX_COMMENT_AUTHORS = "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml";
|
|
275
281
|
const PPTX_CHART = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml";
|
|
@@ -371,6 +377,13 @@ var ContentTypes = class extends BaseXmlComponent {
|
|
|
371
377
|
key: "/ppt/notesMasters/notesMaster1.xml"
|
|
372
378
|
});
|
|
373
379
|
}
|
|
380
|
+
addHandoutMaster() {
|
|
381
|
+
this.dynamicEntries.push({
|
|
382
|
+
type: "Override",
|
|
383
|
+
contentType: PPTX_HANDOUT_MASTER,
|
|
384
|
+
key: "/ppt/handoutMasters/handoutMaster1.xml"
|
|
385
|
+
});
|
|
386
|
+
}
|
|
374
387
|
addComments(index) {
|
|
375
388
|
this.dynamicEntries.push({
|
|
376
389
|
type: "Override",
|
|
@@ -584,6 +597,7 @@ function buildParagraphProperties(options) {
|
|
|
584
597
|
if (options.marginIndent !== void 0) attrs.marL = options.marginIndent;
|
|
585
598
|
if (options.marginRight !== void 0) attrs.marR = options.marginRight;
|
|
586
599
|
if (options.defTabSize !== void 0) attrs.defTabSz = options.defTabSize;
|
|
600
|
+
if (options.fontAlignment) attrs.fontAlgn = options.fontAlignment;
|
|
587
601
|
if (Object.keys(attrs).length > 0) children.push({ _attr: attrs });
|
|
588
602
|
if (options.lineSpacing !== void 0) children.push({ "a:lnSpc": [{ "a:spcPct": { _attr: { val: options.lineSpacing * 1e3 } } }] });
|
|
589
603
|
if (options.lineSpacingPoints !== void 0) children.push({ "a:lnSpc": [{ "a:spcPts": { _attr: { val: options.lineSpacingPoints * 100 } } }] });
|
|
@@ -664,13 +678,18 @@ function buildAttrString(options) {
|
|
|
664
678
|
if (options.spacing !== void 0) attrs.push(`spc="${options.spacing}"`);
|
|
665
679
|
if (options.noProof !== void 0) attrs.push(`noProof="${options.noProof ? 1 : 0}"`);
|
|
666
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}"`);
|
|
667
686
|
return attrs.join(" ");
|
|
668
687
|
}
|
|
669
688
|
/**
|
|
670
689
|
* Checks if options have any settable properties.
|
|
671
690
|
*/
|
|
672
691
|
function hasRunProperties(options) {
|
|
673
|
-
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);
|
|
674
693
|
}
|
|
675
694
|
/**
|
|
676
695
|
* a:rPr — Run properties (font, size, color, etc.).
|
|
@@ -711,8 +730,14 @@ var RunProperties = class extends XmlComponent {
|
|
|
711
730
|
parts.push(`<a:ea typeface="${opts.font}"/>`);
|
|
712
731
|
}
|
|
713
732
|
if (opts.hyperlink && hyperlinkKey) {
|
|
714
|
-
const
|
|
715
|
-
|
|
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(" ")}/>`);
|
|
716
741
|
}
|
|
717
742
|
if (opts.rightToLeft !== void 0) parts.push(`<a:rtl val="${opts.rightToLeft ? 1 : 0}"/>`);
|
|
718
743
|
if (attrStr.length === 0 && parts.length === 0) return "";
|
|
@@ -787,6 +812,8 @@ function buildBodyPr(options) {
|
|
|
787
812
|
if (options.margins?.right !== void 0) attrs.rIns = options.margins.right;
|
|
788
813
|
if (options.columns !== void 0) attrs.numCol = options.columns;
|
|
789
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;
|
|
790
817
|
if (Object.keys(attrs).length > 0) bodyPrContent.push({ _attr: attrs });
|
|
791
818
|
bodyPrContent.push(...bodyPrChildren);
|
|
792
819
|
return { "a:bodyPr": bodyPrContent.length === 1 && "_attr" in bodyPrContent[0] ? bodyPrContent[0] : bodyPrContent.length > 0 ? bodyPrContent : {} };
|
|
@@ -1075,30 +1102,81 @@ var NotesBodyPlaceholder = class extends XmlComponent {
|
|
|
1075
1102
|
//#endregion
|
|
1076
1103
|
//#region src/file/presentation-properties.ts
|
|
1077
1104
|
init_xml_components();
|
|
1078
|
-
|
|
1079
|
-
|
|
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) {
|
|
1080
1133
|
const attrs = [];
|
|
1081
|
-
if (
|
|
1082
|
-
if (
|
|
1083
|
-
if (
|
|
1084
|
-
|
|
1085
|
-
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>`;
|
|
1086
1167
|
}
|
|
1087
1168
|
var PresentationProperties = class PresentationProperties extends ImportedXmlComponent {
|
|
1088
1169
|
static cache = /* @__PURE__ */ new Map();
|
|
1089
1170
|
key;
|
|
1090
|
-
constructor(
|
|
1171
|
+
constructor(opts) {
|
|
1091
1172
|
super("p:presentationPr");
|
|
1092
|
-
this.key =
|
|
1093
|
-
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)));
|
|
1094
1175
|
}
|
|
1095
1176
|
toXml(context) {
|
|
1096
1177
|
return PresentationProperties.cache.get(this.key).toXml(context);
|
|
1097
1178
|
}
|
|
1098
1179
|
};
|
|
1099
|
-
function presPropsKey(o) {
|
|
1100
|
-
return `l${o.loop ? 1 : 0}k${o.kiosk ? 1 : 0}n${o.showNarration ? 1 : 0}t${o.useTimings ? 1 : 0}`;
|
|
1101
|
-
}
|
|
1102
1180
|
//#endregion
|
|
1103
1181
|
//#region src/file/presentation/presentation.ts
|
|
1104
1182
|
init_xml_components();
|
|
@@ -1148,22 +1226,78 @@ var Presentation = class extends XmlComponent {
|
|
|
1148
1226
|
notesMasterRId: rId
|
|
1149
1227
|
};
|
|
1150
1228
|
}
|
|
1229
|
+
setHandoutMasterRId(rId) {
|
|
1230
|
+
this.options = {
|
|
1231
|
+
...this.options,
|
|
1232
|
+
handoutMasterRId: rId
|
|
1233
|
+
};
|
|
1234
|
+
}
|
|
1151
1235
|
toXml(_context) {
|
|
1152
1236
|
const opts = this.options;
|
|
1153
1237
|
const cx = opts.slideWidth ?? 12192e3;
|
|
1154
1238
|
const cy = opts.slideHeight ?? 6858e3;
|
|
1155
|
-
|
|
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("")}>`;
|
|
1156
1253
|
s += "<p:sldMasterIdLst>";
|
|
1157
1254
|
for (let mi = 0; mi < opts.masterCount; mi++) s += `<p:sldMasterId id="${2147483648 + mi * 12}" r:id="rId${mi + 1}"/>`;
|
|
1158
1255
|
s += "</p:sldMasterIdLst>";
|
|
1159
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>`;
|
|
1160
1258
|
s += "<p:sldIdLst>";
|
|
1161
1259
|
const sRidOff = opts.masterCount + 1;
|
|
1162
1260
|
for (let i = 0; i < opts.slideIds.length; i++) s += `<p:sldId id="${opts.slideIds[i]}" r:id="rId${sRidOff + i}"/>`;
|
|
1163
1261
|
s += "</p:sldIdLst>";
|
|
1164
1262
|
s += `<p:sldSz cx="${cx}" cy="${cy}"/>`;
|
|
1165
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
|
+
}
|
|
1166
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
|
+
}
|
|
1167
1301
|
s += "</p:presentation>";
|
|
1168
1302
|
return s;
|
|
1169
1303
|
}
|
|
@@ -1592,6 +1726,136 @@ var VideoFrame = class VideoFrame extends MediaFrameBase {
|
|
|
1592
1726
|
}
|
|
1593
1727
|
};
|
|
1594
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
|
|
1595
1859
|
//#region src/file/drawingml/blip-fill.ts
|
|
1596
1860
|
init_xml_components();
|
|
1597
1861
|
/**
|
|
@@ -2062,9 +2326,20 @@ var Shape = class Shape extends XmlComponent {
|
|
|
2062
2326
|
if (opts.placeholder) {
|
|
2063
2327
|
const phAttrs = [`type="${opts.placeholder}"`];
|
|
2064
2328
|
if (opts.placeholderIndex !== void 0) phAttrs.push(`idx="${opts.placeholderIndex}"`);
|
|
2329
|
+
if (opts.hasCustomPrompt) phAttrs.push("hasCustomPrompt=\"1\"");
|
|
2065
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>`;
|
|
2066
2341
|
}
|
|
2067
|
-
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>`);
|
|
2068
2343
|
const spPrXml = new ShapeProperties({
|
|
2069
2344
|
...emuPositionOptional(opts),
|
|
2070
2345
|
geometry: opts.geometry,
|
|
@@ -2077,9 +2352,33 @@ var Shape = class Shape extends XmlComponent {
|
|
|
2077
2352
|
if (spPrXml) parts.push(spPrXml);
|
|
2078
2353
|
const txBody = new TextBody(opts.textBody ?? {});
|
|
2079
2354
|
parts.push(txBody.toXml(context));
|
|
2080
|
-
|
|
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>`;
|
|
2081
2359
|
}
|
|
2082
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
|
+
}
|
|
2083
2382
|
//#endregion
|
|
2084
2383
|
//#region src/file/smartart/smartart-frame.ts
|
|
2085
2384
|
init_xml_components();
|
|
@@ -2271,7 +2570,9 @@ var TableProperties = class extends BaseXmlComponent {
|
|
|
2271
2570
|
if (opts.firstCol !== void 0) attrs.push(`firstCol="${opts.firstCol ? 1 : 0}"`);
|
|
2272
2571
|
if (opts.lastCol !== void 0) attrs.push(`lastCol="${opts.lastCol ? 1 : 0}"`);
|
|
2273
2572
|
if (opts.bandCol !== void 0) attrs.push(`bandCol="${opts.bandCol ? 1 : 0}"`);
|
|
2274
|
-
|
|
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>`;
|
|
2275
2576
|
}
|
|
2276
2577
|
};
|
|
2277
2578
|
//#endregion
|
|
@@ -2345,6 +2646,8 @@ var TableCell = class extends BaseXmlComponent {
|
|
|
2345
2646
|
const tcAttrs = [];
|
|
2346
2647
|
if (opts.columnSpan !== void 0 && opts.columnSpan > 1) tcAttrs.push(`gridSpan="${opts.columnSpan}"`);
|
|
2347
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"}"`);
|
|
2348
2651
|
const tcAttrStr = tcAttrs.length > 0 ? ` ${tcAttrs.join(" ")}` : "";
|
|
2349
2652
|
const txParts = [];
|
|
2350
2653
|
const margins = opts.margins;
|
|
@@ -2410,7 +2713,8 @@ var DrawingTable = class extends BaseXmlComponent {
|
|
|
2410
2713
|
bandRow: opts.bandRow,
|
|
2411
2714
|
firstCol: opts.firstCol,
|
|
2412
2715
|
lastCol: opts.lastCol,
|
|
2413
|
-
bandCol: opts.bandCol
|
|
2716
|
+
bandCol: opts.bandCol,
|
|
2717
|
+
tableStyleId: opts.tableStyleId
|
|
2414
2718
|
});
|
|
2415
2719
|
parts.push(tblPr.toXml(context));
|
|
2416
2720
|
const colWidths = opts.columnWidths && opts.columnWidths.length > 0 ? opts.columnWidths : Array.from({ length: opts.rows[0]?.cells.length ?? 1 }, () => 0);
|
|
@@ -2482,6 +2786,7 @@ function coerceChild(child) {
|
|
|
2482
2786
|
if ("audio" in child) return new AudioFrame(child.audio);
|
|
2483
2787
|
if ("group" in child) return new GroupShape(child.group);
|
|
2484
2788
|
if ("smartart" in child) return new SmartArt(child.smartart);
|
|
2789
|
+
if ("ole" in child) return new OleFrame(child.ole);
|
|
2485
2790
|
throw new Error("Unknown slide child type");
|
|
2486
2791
|
}
|
|
2487
2792
|
function coerceMasterChild(child) {
|
|
@@ -2689,7 +2994,7 @@ function buildCustomLayoutXml(def) {
|
|
|
2689
2994
|
const offset = nextId - 1;
|
|
2690
2995
|
shapes.push(childrenXml.replace(/ id="(\d+)"/g, (_, n) => ` id="${parseInt(n) + offset}"`));
|
|
2691
2996
|
}
|
|
2692
|
-
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>`;
|
|
2693
2998
|
}
|
|
2694
2999
|
var SlideLayout = class SlideLayout extends ImportedXmlComponent {
|
|
2695
3000
|
static cache = /* @__PURE__ */ new Map();
|
|
@@ -3100,19 +3405,23 @@ function buildEntrOrExitEffects(options, spid, ids) {
|
|
|
3100
3405
|
if (options.type === "wheel") filter = "wheel(4)";
|
|
3101
3406
|
else if (options.type === "split") filter = `split(${options.direction ?? "horizontal"})`;
|
|
3102
3407
|
else if (dirFilter) filter = `${filterBase}(${dirFilter})`;
|
|
3103
|
-
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
|
+
};
|
|
3104
3422
|
children.push(new BuilderElement({
|
|
3105
3423
|
name: "p:animEffect",
|
|
3106
|
-
attributes:
|
|
3107
|
-
transition: {
|
|
3108
|
-
key: "transition",
|
|
3109
|
-
value: transition
|
|
3110
|
-
},
|
|
3111
|
-
filter: {
|
|
3112
|
-
key: "filter",
|
|
3113
|
-
value: filter
|
|
3114
|
-
}
|
|
3115
|
-
},
|
|
3424
|
+
attributes: animEffectAttrs,
|
|
3116
3425
|
children: [new BuilderElement({
|
|
3117
3426
|
name: "p:cBhvr",
|
|
3118
3427
|
children: [new BuilderElement({
|
|
@@ -3388,18 +3697,23 @@ function buildEmphasisEffects(options, spid, ids) {
|
|
|
3388
3697
|
function buildPathEffects(options, spid, ids) {
|
|
3389
3698
|
const pathStr = options.path ?? PATH_STRINGS[options.pathType ?? "customPath"] ?? "";
|
|
3390
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
|
+
};
|
|
3391
3714
|
return [new BuilderElement({
|
|
3392
3715
|
name: "p:animMotion",
|
|
3393
|
-
attributes:
|
|
3394
|
-
origin: {
|
|
3395
|
-
key: "origin",
|
|
3396
|
-
value: "layout"
|
|
3397
|
-
},
|
|
3398
|
-
path: {
|
|
3399
|
-
key: "path",
|
|
3400
|
-
value: pathStr
|
|
3401
|
-
}
|
|
3402
|
-
},
|
|
3716
|
+
attributes: animMotionAttrs,
|
|
3403
3717
|
children: [new BuilderElement({
|
|
3404
3718
|
name: "p:cBhvr",
|
|
3405
3719
|
children: [new BuilderElement({
|
|
@@ -3472,6 +3786,128 @@ function buildMediaPlayCommand(options, spid, ids) {
|
|
|
3472
3786
|
});
|
|
3473
3787
|
}
|
|
3474
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
|
+
/**
|
|
3475
3911
|
* Build p:video/p:audio with p:cMediaNode (goes as sibling of p:seq).
|
|
3476
3912
|
* This is the media state controller, separate from the play command.
|
|
3477
3913
|
*/
|
|
@@ -3500,6 +3936,10 @@ function buildMediaStateNode(options, spid, ids) {
|
|
|
3500
3936
|
key: "mute",
|
|
3501
3937
|
value: 1
|
|
3502
3938
|
};
|
|
3939
|
+
if (options.numberOfSlides !== void 0) cMediaNodeAttrs.numSld = {
|
|
3940
|
+
key: "numSld",
|
|
3941
|
+
value: options.numberOfSlides
|
|
3942
|
+
};
|
|
3503
3943
|
return new BuilderElement({
|
|
3504
3944
|
name: elementName,
|
|
3505
3945
|
attributes: Object.keys(mediaAttrs).length > 0 ? mediaAttrs : void 0,
|
|
@@ -3558,6 +3998,18 @@ function buildPropertyAnimation(options, spid, ids) {
|
|
|
3558
3998
|
key: "by",
|
|
3559
3999
|
value: options.animBy
|
|
3560
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
|
+
};
|
|
3561
4013
|
const cBhvrChildren = [new BuilderElement({
|
|
3562
4014
|
name: "p:cTn",
|
|
3563
4015
|
attributes: {
|
|
@@ -3579,8 +4031,30 @@ function buildPropertyAnimation(options, spid, ids) {
|
|
|
3579
4031
|
name: "p:attrNameLst",
|
|
3580
4032
|
children: [stringContainerObj("p:attrName", options.attributeName)]
|
|
3581
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
|
+
};
|
|
3582
4055
|
const animChildren = [new BuilderElement({
|
|
3583
4056
|
name: "p:cBhvr",
|
|
4057
|
+
attributes: Object.keys(cBhvrAttrs).length > 0 ? cBhvrAttrs : void 0,
|
|
3584
4058
|
children: cBhvrChildren
|
|
3585
4059
|
})];
|
|
3586
4060
|
if (options.from !== void 0 || options.to !== void 0) {
|
|
@@ -3656,7 +4130,8 @@ var SlideTiming = class extends XmlComponent {
|
|
|
3656
4130
|
const presetClass = resolvePresetClass(options);
|
|
3657
4131
|
const presetSubtype = resolvePresetSubtype(options);
|
|
3658
4132
|
let effectChildren;
|
|
3659
|
-
if (options.
|
|
4133
|
+
if (options.commandType) effectChildren = [buildCommand(options, spid, { cmd: effectCtnId2 })];
|
|
4134
|
+
else if (options.mediaType) {
|
|
3660
4135
|
effectChildren = [buildMediaPlayCommand(options, spid, { cmd: effectCtnId2 })];
|
|
3661
4136
|
const mediaStateId = id++;
|
|
3662
4137
|
mediaStateNodes.push(buildMediaStateNode(options, spid, { mediaCtn: mediaStateId }));
|
|
@@ -3673,6 +4148,10 @@ var SlideTiming = class extends XmlComponent {
|
|
|
3673
4148
|
set: setCtnId,
|
|
3674
4149
|
effect: effectCtnId2
|
|
3675
4150
|
});
|
|
4151
|
+
if (options.setBehavior) {
|
|
4152
|
+
const setBehId = id++;
|
|
4153
|
+
effectChildren = [buildSetBehavior(options.setBehavior, spid, { set: setBehId }), ...effectChildren];
|
|
4154
|
+
}
|
|
3676
4155
|
const cTnAttrs = {
|
|
3677
4156
|
id: {
|
|
3678
4157
|
key: "id",
|
|
@@ -3727,24 +4206,91 @@ var SlideTiming = class extends XmlComponent {
|
|
|
3727
4206
|
key: "autoRev",
|
|
3728
4207
|
value: 1
|
|
3729
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
|
+
}));
|
|
3730
4288
|
const innerPar = new BuilderElement({
|
|
3731
4289
|
name: "p:par",
|
|
3732
4290
|
children: [new BuilderElement({
|
|
3733
4291
|
name: "p:cTn",
|
|
3734
4292
|
attributes: cTnAttrs,
|
|
3735
|
-
children:
|
|
3736
|
-
name: "p:stCondLst",
|
|
3737
|
-
children: [new BuilderElement({
|
|
3738
|
-
name: "p:cond",
|
|
3739
|
-
attributes: { delay: {
|
|
3740
|
-
key: "delay",
|
|
3741
|
-
value: String(options.delay ?? 0)
|
|
3742
|
-
} }
|
|
3743
|
-
})]
|
|
3744
|
-
}), new BuilderElement({
|
|
3745
|
-
name: "p:childTnLst",
|
|
3746
|
-
children: effectChildren
|
|
3747
|
-
})]
|
|
4293
|
+
children: effectCtnChildren
|
|
3748
4294
|
})]
|
|
3749
4295
|
});
|
|
3750
4296
|
const outerPar = new BuilderElement({
|
|
@@ -3977,16 +4523,23 @@ var Slide = class extends XmlComponent {
|
|
|
3977
4523
|
background;
|
|
3978
4524
|
transition;
|
|
3979
4525
|
HeaderFooter;
|
|
3980
|
-
|
|
4526
|
+
showMasterSp;
|
|
4527
|
+
showMasterPhAnim;
|
|
4528
|
+
constructor(children, background, transition, headerFooter, showMasterSp, showMasterPhAnim) {
|
|
3981
4529
|
super("p:sld");
|
|
3982
4530
|
this.children = children;
|
|
3983
4531
|
this.background = background;
|
|
3984
4532
|
this.transition = transition;
|
|
3985
4533
|
this.HeaderFooter = headerFooter;
|
|
4534
|
+
this.showMasterSp = showMasterSp;
|
|
4535
|
+
this.showMasterPhAnim = showMasterPhAnim;
|
|
3986
4536
|
}
|
|
3987
4537
|
toXml(context) {
|
|
3988
4538
|
const parts = [];
|
|
3989
|
-
|
|
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("")}>`);
|
|
3990
4543
|
parts.push("<p:cSld>");
|
|
3991
4544
|
if (this.background) parts.push(this.background.toXml(context));
|
|
3992
4545
|
parts.push("<p:spTree>");
|
|
@@ -4013,148 +4566,81 @@ var Slide = class extends XmlComponent {
|
|
|
4013
4566
|
//#endregion
|
|
4014
4567
|
//#region src/file/table-styles.ts
|
|
4015
4568
|
init_xml_components();
|
|
4016
|
-
const
|
|
4017
|
-
var TableStyles = class
|
|
4018
|
-
|
|
4019
|
-
constructor() {
|
|
4569
|
+
const DEFAULT_STYLE_ID = "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}";
|
|
4570
|
+
var TableStyles = class extends BaseXmlComponent {
|
|
4571
|
+
opts;
|
|
4572
|
+
constructor(opts) {
|
|
4020
4573
|
super("a:tblStyleLst");
|
|
4574
|
+
this.opts = opts;
|
|
4021
4575
|
}
|
|
4022
4576
|
toXml(context) {
|
|
4023
|
-
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);
|
|
4024
4579
|
}
|
|
4025
4580
|
};
|
|
4026
4581
|
//#endregion
|
|
4027
|
-
//#region src/file/
|
|
4582
|
+
//#region src/file/view-properties.ts
|
|
4028
4583
|
init_xml_components();
|
|
4029
|
-
const
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
accent3: "A5A5A5",
|
|
4037
|
-
accent4: "FFC000",
|
|
4038
|
-
accent5: "5B9BD5",
|
|
4039
|
-
accent6: "70AD47",
|
|
4040
|
-
hyperlink: "0563C1",
|
|
4041
|
-
followedHyperlink: "954F72"
|
|
4042
|
-
};
|
|
4043
|
-
function buildThemeXml(options) {
|
|
4044
|
-
const name = options?.name ?? "Office Theme";
|
|
4045
|
-
const c = {
|
|
4046
|
-
...DEFAULT_COLORS,
|
|
4047
|
-
...options?.colors
|
|
4048
|
-
};
|
|
4049
|
-
const f = options?.fonts;
|
|
4050
|
-
const majorFont = f?.majorFont ?? "Calibri Light";
|
|
4051
|
-
const minorFont = f?.minorFont ?? "Calibri";
|
|
4052
|
-
const majorFontAsian = f?.majorFontAsian ?? "";
|
|
4053
|
-
const minorFontAsian = f?.minorFontAsian ?? "";
|
|
4054
|
-
return `<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="${name}">
|
|
4055
|
-
<a:themeElements>
|
|
4056
|
-
<a:clrScheme name="${name}">
|
|
4057
|
-
<a:dk1>${options?.colors?.dark1 !== void 0 ? `<a:srgbClr val="${c.dark1}"/>` : `<a:sysClr val="windowText" lastClr="000000"/>`}</a:dk1>
|
|
4058
|
-
<a:lt1>${options?.colors?.light1 !== void 0 ? `<a:srgbClr val="${c.light1}"/>` : `<a:sysClr val="window" lastClr="FFFFFF"/>`}</a:lt1>
|
|
4059
|
-
<a:dk2><a:srgbClr val="${c.dark2}"/></a:dk2>
|
|
4060
|
-
<a:lt2><a:srgbClr val="${c.light2}"/></a:lt2>
|
|
4061
|
-
<a:accent1><a:srgbClr val="${c.accent1}"/></a:accent1>
|
|
4062
|
-
<a:accent2><a:srgbClr val="${c.accent2}"/></a:accent2>
|
|
4063
|
-
<a:accent3><a:srgbClr val="${c.accent3}"/></a:accent3>
|
|
4064
|
-
<a:accent4><a:srgbClr val="${c.accent4}"/></a:accent4>
|
|
4065
|
-
<a:accent5><a:srgbClr val="${c.accent5}"/></a:accent5>
|
|
4066
|
-
<a:accent6><a:srgbClr val="${c.accent6}"/></a:accent6>
|
|
4067
|
-
<a:hlink><a:srgbClr val="${c.hyperlink}"/></a:hlink>
|
|
4068
|
-
<a:folHlink><a:srgbClr val="${c.followedHyperlink}"/></a:folHlink>
|
|
4069
|
-
</a:clrScheme>
|
|
4070
|
-
<a:fontScheme name="${name}">
|
|
4071
|
-
<a:majorFont>
|
|
4072
|
-
<a:latin typeface="${majorFont}"/>
|
|
4073
|
-
<a:ea typeface="${majorFontAsian}"/>
|
|
4074
|
-
<a:cs typeface=""/>
|
|
4075
|
-
</a:majorFont>
|
|
4076
|
-
<a:minorFont>
|
|
4077
|
-
<a:latin typeface="${minorFont}"/>
|
|
4078
|
-
<a:ea typeface="${minorFontAsian}"/>
|
|
4079
|
-
<a:cs typeface=""/>
|
|
4080
|
-
</a:minorFont>
|
|
4081
|
-
</a:fontScheme>
|
|
4082
|
-
<a:fmtScheme name="Office">
|
|
4083
|
-
<a:fillStyleLst>
|
|
4084
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4085
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4086
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4087
|
-
</a:fillStyleLst>
|
|
4088
|
-
<a:lnStyleLst>
|
|
4089
|
-
<a:ln w="6350" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
|
|
4090
|
-
<a:ln w="12700" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
|
|
4091
|
-
<a:ln w="19050" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
|
|
4092
|
-
</a:lnStyleLst>
|
|
4093
|
-
<a:effectStyleLst>
|
|
4094
|
-
<a:effectStyle><a:effectLst/></a:effectStyle>
|
|
4095
|
-
<a:effectStyle><a:effectLst/></a:effectStyle>
|
|
4096
|
-
<a:effectStyle><a:effectLst/></a:effectStyle>
|
|
4097
|
-
</a:effectStyleLst>
|
|
4098
|
-
<a:bgFillStyleLst>
|
|
4099
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4100
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4101
|
-
<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
|
|
4102
|
-
</a:bgFillStyleLst>
|
|
4103
|
-
</a:fmtScheme>
|
|
4104
|
-
</a:themeElements>
|
|
4105
|
-
<a:objectDefaults/>
|
|
4106
|
-
<a:extraClrSchemeLst/>
|
|
4107
|
-
</a:theme>`;
|
|
4108
|
-
}
|
|
4109
|
-
var DefaultTheme = class DefaultTheme extends ImportedXmlComponent {
|
|
4110
|
-
static cache = /* @__PURE__ */ new Map();
|
|
4111
|
-
cacheKey;
|
|
4112
|
-
constructor(options) {
|
|
4113
|
-
super("a:theme");
|
|
4114
|
-
this.cacheKey = options ? themeKey(options) : "";
|
|
4115
|
-
if (!DefaultTheme.cache.has(this.cacheKey)) DefaultTheme.cache.set(this.cacheKey, ImportedXmlComponent.fromXmlString(buildThemeXml(options)));
|
|
4116
|
-
}
|
|
4117
|
-
toXml(context) {
|
|
4118
|
-
return DefaultTheme.cache.get(this.cacheKey).toXml(context);
|
|
4119
|
-
}
|
|
4584
|
+
const LAST_VIEW_XSD = {
|
|
4585
|
+
slideView: "sldView",
|
|
4586
|
+
slideMasterView: "sldMasterView",
|
|
4587
|
+
notesView: "notesView",
|
|
4588
|
+
handoutView: "handoutView",
|
|
4589
|
+
outlineView: "outlineView",
|
|
4590
|
+
slideSorterView: "sldSorterView"
|
|
4120
4591
|
};
|
|
4121
|
-
function
|
|
4122
|
-
const
|
|
4123
|
-
|
|
4124
|
-
|
|
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("");
|
|
4125
4633
|
}
|
|
4126
|
-
//#endregion
|
|
4127
|
-
//#region src/file/view-properties.ts
|
|
4128
|
-
init_xml_components();
|
|
4129
|
-
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">
|
|
4130
|
-
<p:normalViewPr>
|
|
4131
|
-
<p:restoredLeft sz="14996" autoAdjust="0"/>
|
|
4132
|
-
<p:restoredTop sz="94660"/>
|
|
4133
|
-
</p:normalViewPr>
|
|
4134
|
-
<p:slideViewPr>
|
|
4135
|
-
<p:cSldViewPr snapToGrid="0">
|
|
4136
|
-
<p:cViewPr varScale="1">
|
|
4137
|
-
<p:scale><a:sx n="90" d="100"/><a:sy n="90" d="100"/></p:scale>
|
|
4138
|
-
<p:origin x="1200" y="72"/>
|
|
4139
|
-
</p:cViewPr>
|
|
4140
|
-
<p:guideLst/>
|
|
4141
|
-
</p:cSldViewPr>
|
|
4142
|
-
</p:slideViewPr>
|
|
4143
|
-
<p:notesTextViewPr>
|
|
4144
|
-
<p:cViewPr>
|
|
4145
|
-
<p:scale><a:sx n="1" d="1"/><a:sy n="1" d="1"/></p:scale>
|
|
4146
|
-
<p:origin x="0" y="0"/>
|
|
4147
|
-
</p:cViewPr>
|
|
4148
|
-
</p:notesTextViewPr>
|
|
4149
|
-
<p:gridSpacing cx="72008" cy="72008"/>
|
|
4150
|
-
</p:viewPr>`;
|
|
4151
4634
|
var ViewProperties = class ViewProperties extends ImportedXmlComponent {
|
|
4152
|
-
static
|
|
4153
|
-
|
|
4635
|
+
static cache = /* @__PURE__ */ new Map();
|
|
4636
|
+
key;
|
|
4637
|
+
constructor(opts) {
|
|
4154
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)));
|
|
4155
4641
|
}
|
|
4156
4642
|
toXml(context) {
|
|
4157
|
-
return ViewProperties.
|
|
4643
|
+
return ViewProperties.cache.get(this.key).toXml(context);
|
|
4158
4644
|
}
|
|
4159
4645
|
};
|
|
4160
4646
|
//#endregion
|
|
@@ -4189,6 +4675,13 @@ var File = class {
|
|
|
4189
4675
|
slideWidthEmus;
|
|
4190
4676
|
slideHeightEmus;
|
|
4191
4677
|
masterDefs;
|
|
4678
|
+
includeHandout;
|
|
4679
|
+
tableStylesOpts;
|
|
4680
|
+
viewOpts;
|
|
4681
|
+
handoutMasterOpts;
|
|
4682
|
+
notesMasterOpts;
|
|
4683
|
+
presPropsFullOpts;
|
|
4684
|
+
presAttrOpts;
|
|
4192
4685
|
_coreProperties;
|
|
4193
4686
|
_appProperties;
|
|
4194
4687
|
_contentTypes;
|
|
@@ -4215,9 +4708,30 @@ var File = class {
|
|
|
4215
4708
|
this.corePropsOptions = options;
|
|
4216
4709
|
this.showOptions = options.show;
|
|
4217
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;
|
|
4218
4716
|
const sz = resolveSlideSize(options.size);
|
|
4219
4717
|
this.slideWidthEmus = sz.width;
|
|
4220
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
|
+
};
|
|
4221
4735
|
}
|
|
4222
4736
|
getMasterMap() {
|
|
4223
4737
|
if (this.masterMap) return this.masterMap;
|
|
@@ -4332,6 +4846,7 @@ var File = class {
|
|
|
4332
4846
|
}
|
|
4333
4847
|
if (notesSlideIdx > 0) this._contentTypes.addNotesMaster();
|
|
4334
4848
|
if (hasComments) this._contentTypes.addCommentAuthors();
|
|
4849
|
+
if (this.includeHandout) this._contentTypes.addHandoutMaster();
|
|
4335
4850
|
}
|
|
4336
4851
|
return this._contentTypes;
|
|
4337
4852
|
}
|
|
@@ -4374,7 +4889,8 @@ var File = class {
|
|
|
4374
4889
|
slideWidth: this.slideWidthEmus,
|
|
4375
4890
|
slideHeight: this.slideHeightEmus,
|
|
4376
4891
|
slideIds: this.slideOptions.map((_, i) => 256 + i),
|
|
4377
|
-
masterCount: masters.length
|
|
4892
|
+
masterCount: masters.length,
|
|
4893
|
+
...this.presAttrOpts
|
|
4378
4894
|
});
|
|
4379
4895
|
const presRels = this._presentationWrapper.relationships;
|
|
4380
4896
|
let rid = 1;
|
|
@@ -4391,13 +4907,18 @@ var File = class {
|
|
|
4391
4907
|
return this.getMasterMap().map((m) => m.theme);
|
|
4392
4908
|
}
|
|
4393
4909
|
get tableStyles() {
|
|
4394
|
-
return this._tableStyles ??= new TableStyles();
|
|
4910
|
+
return this._tableStyles ??= new TableStyles(this.tableStylesOpts);
|
|
4395
4911
|
}
|
|
4396
4912
|
get presProps() {
|
|
4397
|
-
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
|
+
});
|
|
4398
4919
|
}
|
|
4399
4920
|
get viewProps() {
|
|
4400
|
-
return this._viewProps ??= new ViewProperties();
|
|
4921
|
+
return this._viewProps ??= new ViewProperties(this.viewOpts);
|
|
4401
4922
|
}
|
|
4402
4923
|
get slideMasters() {
|
|
4403
4924
|
return this.getMasterMap().map((m) => m.master);
|
|
@@ -4416,7 +4937,7 @@ var File = class {
|
|
|
4416
4937
|
get slides() {
|
|
4417
4938
|
if (!this._slides) {
|
|
4418
4939
|
this._slides = [];
|
|
4419
|
-
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));
|
|
4420
4941
|
}
|
|
4421
4942
|
return this._slides;
|
|
4422
4943
|
}
|
|
@@ -4454,6 +4975,15 @@ var File = class {
|
|
|
4454
4975
|
get notesMasterRelationships() {
|
|
4455
4976
|
return this._notesMasterRels ??= new Relationships();
|
|
4456
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
|
+
}
|
|
4457
4987
|
get commentAuthorList() {
|
|
4458
4988
|
if (!this._commentAuthorList && !this._slideCommentLists) this.buildComments();
|
|
4459
4989
|
return this._commentAuthorList;
|
|
@@ -4653,6 +5183,7 @@ var ShapeTree = class extends XmlComponent {
|
|
|
4653
5183
|
//#endregion
|
|
4654
5184
|
//#region src/file/notes-master/notes-master.ts
|
|
4655
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\"";
|
|
4656
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">
|
|
4657
5188
|
<p:cSld>
|
|
4658
5189
|
<p:bg>
|
|
@@ -4677,6 +5208,7 @@ const NOTES_MASTER_XML = `<p:notesMaster xmlns:a="http://schemas.openxmlformats.
|
|
|
4677
5208
|
</p:spTree>
|
|
4678
5209
|
</p:cSld>
|
|
4679
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"/>
|
|
4680
5212
|
<p:notesStyle>
|
|
4681
5213
|
<a:lvl1pPr marL="0" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
|
|
4682
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>
|
|
@@ -4707,13 +5239,130 @@ const NOTES_MASTER_XML = `<p:notesMaster xmlns:a="http://schemas.openxmlformats.
|
|
|
4707
5239
|
</a:lvl9pPr>
|
|
4708
5240
|
</p:notesStyle>
|
|
4709
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
|
+
}
|
|
4710
5288
|
var DefaultNotesMaster = class DefaultNotesMaster extends ImportedXmlComponent {
|
|
4711
5289
|
static instance = ImportedXmlComponent.fromXmlString(NOTES_MASTER_XML);
|
|
4712
|
-
|
|
5290
|
+
options;
|
|
5291
|
+
constructor(options) {
|
|
4713
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;
|
|
4714
5362
|
}
|
|
4715
5363
|
toXml(context) {
|
|
4716
|
-
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>`;
|
|
4717
5366
|
}
|
|
4718
5367
|
};
|
|
4719
5368
|
//#endregion
|
|
@@ -4760,6 +5409,323 @@ var HeaderFooter = class extends XmlComponent {
|
|
|
4760
5409
|
}
|
|
4761
5410
|
};
|
|
4762
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
|
|
4763
5729
|
//#region src/file/index.ts
|
|
4764
5730
|
init_fill();
|
|
4765
5731
|
init_effects();
|
|
@@ -4878,7 +5844,7 @@ var Compiler = class {
|
|
|
4878
5844
|
file.presentationWrapper.view.setNotesMasterRId(notesMasterRId);
|
|
4879
5845
|
const notesMasterThemeIndex = themes.length + 1;
|
|
4880
5846
|
mapping["NotesMaster"] = {
|
|
4881
|
-
data: this.formatter.formatToXml(new DefaultNotesMaster(), context),
|
|
5847
|
+
data: this.formatter.formatToXml(new DefaultNotesMaster(file.notesMasterOptions), context),
|
|
4882
5848
|
path: "ppt/notesMasters/notesMaster1.xml"
|
|
4883
5849
|
};
|
|
4884
5850
|
const notesMasterTheme = new DefaultTheme();
|
|
@@ -4894,6 +5860,28 @@ var Compiler = class {
|
|
|
4894
5860
|
path: "ppt/notesMasters/_rels/notesMaster1.xml.rels"
|
|
4895
5861
|
};
|
|
4896
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
|
+
}
|
|
4897
5885
|
if (file.commentAuthorList) file.presentationWrapper.relationships.addRelationship(file.presentationWrapper.relationships.relationshipCount + 1, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors", "commentAuthors.xml");
|
|
4898
5886
|
const presentationXml = this.formatter.formatToXml(file.presentationWrapper.view, context);
|
|
4899
5887
|
let currentImageCount = 0;
|
|
@@ -7213,9 +8201,34 @@ const patchPresentation = async ({ outputType, data, patches, keepOriginalStyles
|
|
|
7213
8201
|
__reExport(/* @__PURE__ */ __exportAll({
|
|
7214
8202
|
AppProperties: () => AppProperties,
|
|
7215
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,
|
|
7216
8215
|
Background: () => Background,
|
|
7217
8216
|
BevelPresetType: () => BevelPresetType,
|
|
7218
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,
|
|
7219
8232
|
Chart: () => Chart,
|
|
7220
8233
|
ChartCollection: () => ChartCollection,
|
|
7221
8234
|
ChartSpace: () => ChartSpace,
|
|
@@ -7223,27 +8236,59 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7223
8236
|
ConnectorShape: () => ConnectorShape,
|
|
7224
8237
|
ContentTypes: () => ContentTypes,
|
|
7225
8238
|
CoreProperties: () => CoreProperties,
|
|
8239
|
+
DIAMOND: () => DIAMOND,
|
|
8240
|
+
DISSOLVE: () => DISSOLVE,
|
|
7226
8241
|
DateTimeField: () => DateTimeField,
|
|
8242
|
+
DefaultHandoutMaster: () => DefaultHandoutMaster,
|
|
7227
8243
|
DefaultNotesMaster: () => DefaultNotesMaster,
|
|
7228
8244
|
DefaultSlideLayout: () => DefaultSlideLayout,
|
|
7229
8245
|
DefaultSlideMaster: () => DefaultSlideMaster,
|
|
7230
8246
|
DefaultTheme: () => DefaultTheme,
|
|
7231
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,
|
|
7232
8254
|
EndParagraphRunProperties: () => EndParagraphRunProperties,
|
|
8255
|
+
FADE: () => FADE,
|
|
8256
|
+
FLT_VAL: () => FLT_VAL,
|
|
8257
|
+
FONT: () => FONT,
|
|
8258
|
+
FROM: () => FROM,
|
|
7233
8259
|
Field: () => Field,
|
|
7234
8260
|
File: () => File,
|
|
8261
|
+
GRAPHIC_EL: () => GRAPHIC_EL,
|
|
8262
|
+
GUIDE: () => GUIDE,
|
|
7235
8263
|
GroupShape: () => GroupShape,
|
|
7236
8264
|
GroupShapeProperties: () => GroupShapeProperties,
|
|
7237
8265
|
GroupTransform2D: () => GroupTransform2D,
|
|
8266
|
+
HSL: () => HSL,
|
|
8267
|
+
HTML_PUB_PR: () => HTML_PUB_PR,
|
|
7238
8268
|
HeaderFooter: () => HeaderFooter,
|
|
8269
|
+
INK_TGT: () => INK_TGT,
|
|
8270
|
+
INT_VAL: () => INT_VAL,
|
|
8271
|
+
ITALIC: () => ITALIC,
|
|
8272
|
+
KINSOKU: () => KINSOKU,
|
|
7239
8273
|
LineCap: () => LineCap,
|
|
7240
8274
|
LineJoin: () => LineJoin,
|
|
7241
8275
|
LineShape: () => LineShape,
|
|
8276
|
+
MODIFY_VERIFIER: () => MODIFY_VERIFIER,
|
|
7242
8277
|
Media: () => Media,
|
|
8278
|
+
NEWSFLASH: () => NEWSFLASH,
|
|
8279
|
+
NOTES_VIEW_PR: () => NOTES_VIEW_PR,
|
|
7243
8280
|
NonVisualDrawingProperties: () => NonVisualDrawingProperties,
|
|
7244
8281
|
NonVisualPictureProperties: () => NonVisualPictureProperties,
|
|
7245
8282
|
NonVisualShapeProperties: () => NonVisualShapeProperties,
|
|
7246
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,
|
|
7247
8292
|
Packer: () => Packer,
|
|
7248
8293
|
Paragraph: () => Paragraph,
|
|
7249
8294
|
ParagraphProperties: () => ParagraphProperties,
|
|
@@ -7256,9 +8301,28 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7256
8301
|
PresetDash: () => PresetDash,
|
|
7257
8302
|
PresetGeometry: () => PresetGeometry,
|
|
7258
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,
|
|
7259
8310
|
ReflectionAlignment: () => ReflectionAlignment,
|
|
7260
8311
|
Relationships: () => Relationships,
|
|
7261
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,
|
|
7262
8326
|
Shape: () => Shape,
|
|
7263
8327
|
ShapeProperties: () => ShapeProperties,
|
|
7264
8328
|
ShapeTree: () => ShapeTree,
|
|
@@ -7268,6 +8332,13 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7268
8332
|
SlideSizePreset: () => SlideSizePreset,
|
|
7269
8333
|
SmartArt: () => SmartArt,
|
|
7270
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,
|
|
7271
8342
|
Table: () => Table,
|
|
7272
8343
|
TableCell: () => TableCell,
|
|
7273
8344
|
TableCellProperties: () => TableCellProperties,
|
|
@@ -7282,6 +8353,11 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7282
8353
|
Transition: () => Transition,
|
|
7283
8354
|
UnderlineStyle: () => UnderlineStyle,
|
|
7284
8355
|
VideoFrame: () => VideoFrame,
|
|
8356
|
+
WEB_PR: () => WEB_PR,
|
|
8357
|
+
WEDGE: () => WEDGE,
|
|
8358
|
+
WHEEL: () => WHEEL,
|
|
8359
|
+
WIPE: () => WIPE,
|
|
8360
|
+
ZOOM: () => ZOOM,
|
|
7285
8361
|
buildFill: () => buildFill,
|
|
7286
8362
|
coerceChild: () => coerceChild,
|
|
7287
8363
|
convertEmuToInches: () => convertEmuToInches,
|
|
@@ -7292,16 +8368,25 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7292
8368
|
convertPointsToEmu: () => convertPointsToEmu,
|
|
7293
8369
|
createBevel: () => createBevel,
|
|
7294
8370
|
createBottomBevel: () => createBottomBevel,
|
|
8371
|
+
createBuildDiagram: () => createBuildDiagram,
|
|
8372
|
+
createBuildGraphic: () => createBuildGraphic,
|
|
8373
|
+
createBuildOleChart: () => createBuildOleChart,
|
|
8374
|
+
createBuildParagraph: () => createBuildParagraph,
|
|
7295
8375
|
createColorElement: () => createColorElement,
|
|
7296
8376
|
createColorTransforms: () => createColorTransforms,
|
|
7297
8377
|
createEffectList: () => createEffectList,
|
|
8378
|
+
createExclusiveTiming: () => createExclusiveTiming,
|
|
7298
8379
|
createGradientFill: () => createGradientFill,
|
|
7299
8380
|
createGradientStop: () => createGradientStop,
|
|
8381
|
+
createKinsoku: () => createKinsoku,
|
|
7300
8382
|
createOutline: () => createOutline,
|
|
7301
8383
|
createOutlineCompat: () => createOutlineCompat,
|
|
8384
|
+
createOutlineViewProperties: () => createOutlineViewProperties,
|
|
8385
|
+
createOutlineViewSlideEntry: () => createOutlineViewSlideEntry,
|
|
7302
8386
|
createPptxEffectList: () => createPptxEffectList,
|
|
7303
8387
|
createScene3D: () => createScene3D,
|
|
7304
8388
|
createShape3D: () => createShape3D,
|
|
8389
|
+
createSlideSyncProperties: () => createSlideSyncProperties,
|
|
7305
8390
|
createTransformation: () => createTransformation,
|
|
7306
8391
|
extractBlipFillMedia: () => extractBlipFillMedia,
|
|
7307
8392
|
hashedId: () => hashedId,
|
|
@@ -7315,6 +8400,6 @@ __reExport(/* @__PURE__ */ __exportAll({
|
|
|
7315
8400
|
uniqueUuid: () => uniqueUuid
|
|
7316
8401
|
}), util_exports);
|
|
7317
8402
|
//#endregion
|
|
7318
|
-
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 };
|
|
7319
8404
|
|
|
7320
8405
|
//# sourceMappingURL=index.mjs.map
|