@@ -103,13 +103,24 @@ export class Slide implements ISlide {
103103 } ) {
104104 this . sourceTemplate = params . template ;
105105 this . sourceNumber = params . slideNumber ;
106+ this . sourceNumber = this . getSlideNumber ( params . template , params . slideNumber ) ;
107+
106108 this . sourcePath = `ppt/slides/slide${ this . sourceNumber } .xml` ;
107109 this . relsPath = `ppt/slides/_rels/slide${ this . sourceNumber } .xml.rels` ;
108110
109111 this . modifications = [ ] ;
110112 this . importElements = [ ] ;
111113 }
112114
115+ getSlideNumber ( template , slideNumber ) {
116+ if ( template . creationIds !== undefined ) {
117+ return template . creationIds
118+ . find ( slideInfo => slideInfo . id === slideNumber )
119+ . number
120+ }
121+ return slideNumber
122+ }
123+
113124 /**
114125 * Appends slide
115126 * @internal
@@ -283,7 +294,12 @@ export class Slide implements ISlide {
283294 */
284295 async getElementInfo ( importElement : ImportElement ) : Promise < ImportedElement > {
285296 const template = this . root . getTemplate ( importElement . presName ) ;
286- const sourcePath = `ppt/slides/slide${ importElement . slideNumber } .xml` ;
297+
298+ const slideNumber = ( importElement . mode === 'append' )
299+ ? this . getSlideNumber ( template , importElement . slideNumber ) : importElement . slideNumber
300+
301+ const sourcePath = `ppt/slides/slide${ slideNumber } .xml` ;
302+
287303 const sourceArchive = await template . archive ;
288304 const hasCreationId = ( template . creationIds !== undefined )
289305 const method = ( hasCreationId )
@@ -298,22 +314,22 @@ export class Slide implements ISlide {
298314
299315 if ( ! sourceElement ) {
300316 throw new Error (
301- `Can't find ${ importElement . selector } on slide ${ importElement . slideNumber } in ${ importElement . presName } ` ,
317+ `Can't find ${ importElement . selector } on slide ${ slideNumber } in ${ importElement . presName } ` ,
302318 ) ;
303319 }
304320
305321 const appendElementParams = await this . analyzeElement (
306322 sourceElement ,
307323 sourceArchive ,
308- importElement . slideNumber ,
324+ slideNumber ,
309325 ) ;
310326
311327 return {
312328 mode : importElement . mode ,
313329 name : importElement . selector ,
314330 hasCreationId : hasCreationId ,
315331 sourceArchive,
316- sourceSlideNumber : importElement . slideNumber ,
332+ sourceSlideNumber : slideNumber ,
317333 sourceElement,
318334 callback : importElement . callback ,
319335 target : appendElementParams . target ,
0 commit comments