77 ImportedElement ,
88 ImportElement ,
99 SlideModificationCallback ,
10- ShapeModificationCallback ,
10+ ShapeModificationCallback , SourceSlideIdentifier ,
1111} from '../types/types' ;
1212import { ISlide } from '../interfaces/islide' ;
1313import { IPresentationProps } from '../interfaces/ipresentation-props' ;
@@ -99,13 +99,12 @@ export class Slide implements ISlide {
9999 constructor ( params : {
100100 presentation : IPresentationProps ;
101101 template : PresTemplate ;
102- slideNumber : number ;
102+ slideIdentifier : SourceSlideIdentifier ;
103103 } ) {
104104 this . sourceTemplate = params . template ;
105- this . sourceNumber = params . slideNumber ;
106105 this . sourceNumber = this . getSlideNumber (
107106 params . template ,
108- params . slideNumber ,
107+ params . slideIdentifier ,
109108 ) ;
110109
111110 this . sourcePath = `ppt/slides/slide${ this . sourceNumber } .xml` ;
@@ -115,13 +114,27 @@ export class Slide implements ISlide {
115114 this . importElements = [ ] ;
116115 }
117116
118- getSlideNumber ( template , slideNumber ) {
117+ /**
118+ * Try to convert a given slide's creationId to corresponding slide number.
119+ * Used if automizer is run with useCreationIds: true
120+ * @internal
121+ * @param PresTemplate
122+ * @slideNumber SourceSlideIdentifier
123+ * @returns number
124+ */
125+ getSlideNumber ( template : PresTemplate , slideIdentifier : SourceSlideIdentifier ) : number {
119126 if ( template . creationIds !== undefined ) {
120- return template . creationIds . find (
121- ( slideInfo ) => slideInfo . id === slideNumber ,
122- ) . number ;
127+ const matchCreationId = template . creationIds . find (
128+ ( slideInfo ) => slideInfo . id === Number ( slideIdentifier ) ,
129+ )
130+
131+ if ( matchCreationId ) {
132+ return matchCreationId . number
133+ }
134+
135+ throw ( 'Could not find slide number for creationId: ' + slideIdentifier + '@' + template . name )
123136 }
124- return slideNumber ;
137+ return slideIdentifier as number ;
125138 }
126139
127140 /**
0 commit comments