@@ -112,7 +112,7 @@ export class Master implements IMaster {
112112 */
113113 unsupportedTags = [
114114 'p:custDataLst' ,
115- // 'mc:AlternateContent',
115+ 'mc:AlternateContent' ,
116116 //'a14:imgProps',
117117 ] ;
118118
@@ -195,7 +195,7 @@ export class Master implements IMaster {
195195 this . targetRelsPath = `ppt/slideMasters/_rels/slideMaster${ this . targetNumber } .xml.rels` ;
196196 this . sourceArchive = await this . sourceTemplate . archive ;
197197
198- this . status . info = 'Appending slideMaster ' + this . targetNumber ;
198+ console . log ( 'Importing slideMaster ' + this . targetNumber ) ;
199199
200200 await this . copySlideFiles ( ) ;
201201 await this . copyRelatedLayouts ( ) ;
@@ -208,18 +208,27 @@ export class Master implements IMaster {
208208 }
209209
210210 await this . applyModifications ( ) ;
211- await this . cleanSlide ( ) ;
212-
213- this . status . increment ( ) ;
211+ await this . cleanSlide ( this . targetPath ) ;
212+
213+ /**
214+ * ToDo: Integrity checks could be used in many places
215+ * to log warnings in case we have skipped out related contents from copying
216+ * to the target archive.
217+ *
218+ * By now, this is disabled because appendToSlideRels() could leave some
219+ * artifacts from unused relations.
220+ */
221+ // await this.checkIntegrity();
214222 }
215223
216224 async copyRelatedLayouts ( ) : Promise < Target [ ] > {
217- const targetHelper = await new XmlRelationshipHelper ( ) . initialize (
225+ const masterToLayout = await new XmlRelationshipHelper ( ) . initialize (
218226 this . targetArchive ,
219- `ppt/slideMasters/_rels/slideMaster${ this . targetNumber } .xml.rels` ,
227+ `slideMaster${ this . targetNumber } .xml.rels` ,
228+ `ppt/slideMasters/_rels` ,
220229 ) ;
221230
222- const targets = targetHelper . getTargetsByPrefix (
231+ const targets = masterToLayout . getTargetsByPrefix (
223232 '../slideLayouts/slideLayout' ,
224233 ) ;
225234
@@ -245,12 +254,18 @@ export class Master implements IMaster {
245254
246255 const layoutTargetHelper = await new XmlRelationshipHelper ( ) . initialize (
247256 this . targetArchive ,
248- `ppt/slideLayouts/_rels/slideLayout${ nextSlideLayoutNumber } .xml.rels` ,
257+ `slideLayout${ nextSlideLayoutNumber } .xml.rels` ,
258+ `ppt/slideLayouts/_rels` ,
249259 ) ;
250260 const layoutToMaster = layoutTargetHelper . getTargetsByPrefix (
251261 '../slideMasters/slideMaster' ,
252262 ) ;
253263 layoutToMaster [ 0 ] . updateTargetIndex ( this . targetNumber ) ;
264+ await layoutTargetHelper . checkTargets ( this . sourceArchive ) ;
265+
266+ await this . cleanSlide (
267+ `ppt/slideLayouts/slideLayout${ nextSlideLayoutNumber } .xml` ,
268+ ) ;
254269
255270 await this . appendSlideLayoutToContentType (
256271 this . targetArchive ,
@@ -261,6 +276,15 @@ export class Master implements IMaster {
261276 return targets ;
262277 }
263278
279+ async checkIntegrity ( ) : Promise < void > {
280+ const masterToLayout = await new XmlRelationshipHelper ( ) . initialize (
281+ this . targetArchive ,
282+ `slideMaster${ this . targetNumber } .xml.rels` ,
283+ `ppt/slideMasters/_rels` ,
284+ ) ;
285+ await masterToLayout . checkTargets ( this . sourceArchive ) ;
286+ }
287+
264288 async copyThemeFiles ( ) {
265289 const targets = await XmlHelper . getRelationshipTargetsByPrefix (
266290 this . targetArchive ,
@@ -665,17 +689,17 @@ export class Master implements IMaster {
665689 }
666690
667691 /**
668- * ToDo: This equals the corresponding method in slide.ts
692+ * ToDo: This *almost* equals the corresponding method in slide.ts
669693 *
670694 * Removes all unsupported tags from slide xml.
671695 * E.g. added relations & tags by Thinkcell cannot
672696 * be processed by pptx-automizer at the moment.
673697 * @internal
674698 */
675- async cleanSlide ( ) : Promise < void > {
699+ async cleanSlide ( targetPath : string ) : Promise < void > {
676700 const xml = await XmlHelper . getXmlFromArchive (
677701 this . targetArchive ,
678- this . targetPath ,
702+ targetPath ,
679703 ) ;
680704
681705 this . unsupportedTags . forEach ( ( tag ) => {
@@ -685,7 +709,7 @@ export class Master implements IMaster {
685709 XmlHelper . sliceCollection ( drop , 0 ) ;
686710 }
687711 } ) ;
688- XmlHelper . writeXmlToArchive ( this . targetArchive , this . targetPath , xml ) ;
712+ XmlHelper . writeXmlToArchive ( this . targetArchive , targetPath , xml ) ;
689713 }
690714
691715 /**
0 commit comments