@@ -118,6 +118,7 @@ export class XmlSlideHelper {
118118 id : XmlSlideHelper . getElementCreationId ( slideElement ) ,
119119 type : XmlSlideHelper . getElementType ( slideElement ) ,
120120 position : XmlSlideHelper . parseShapeCoordinates ( slideElement ) ,
121+ placeholder : XmlSlideHelper . parsePlaceholderInfo ( slideElement ) ,
121122 hasTextBody : ! ! XmlSlideHelper . getTextBody ( slideElement ) ,
122123 getXmlElement : ( ) => slideElement ,
123124 getText : ( ) => XmlSlideHelper . parseTextFragments ( slideElement ) ,
@@ -433,6 +434,22 @@ export class XmlSlideHelper {
433434 return parseInt ( element . getAttribute ( attributeName ) , 10 ) ;
434435 } ;
435436
437+ static parsePlaceholderInfo = (
438+ element : XmlElement ,
439+ ) : ElementInfo [ 'placeholder' ] => {
440+ const info = element . getElementsByTagName ( 'p:ph' ) . item ( 0 )
441+
442+ if ( ! info ) {
443+ return
444+ }
445+
446+ return {
447+ type : info . getAttribute ( 'type' ) ,
448+ sz : info . getAttribute ( 'sz' ) ,
449+ idx : parseInt ( info . getAttribute ( 'idx' ) ) ,
450+ } ;
451+ } ;
452+
436453 /**
437454 * Asynchronously retrieves the dimensions of a slide.
438455 * Tries to find the dimensions from the slide XML, then from the layout, master, and presentation XMLs in order.
0 commit comments