@@ -32,6 +32,7 @@ import { Image } from '../shapes/image';
3232import { ElementType } from '../enums/element-type' ;
3333import { GenericShape } from '../shapes/generic' ;
3434import { XmlSlideHelper } from '../helper/xml-slide-helper' ;
35+ import { vd } from '../helper/general-helper' ;
3536
3637export default class HasShapes {
3738 /**
@@ -387,17 +388,27 @@ export default class HasShapes {
387388 ? this . getSlideNumber ( template , importElement . slideNumber )
388389 : importElement . slideNumber ;
389390
390- let sourcePath = `ppt/slides/slide${ slideNumber } .xml` ;
391-
391+ let currentMode = 'slideToSlide' ;
392392 if ( this . targetType === 'slideMaster' ) {
393- // It is possible to import shapes from loaded presentations,
394- // as well as to modify an existing shape on current slideMaster
395- sourcePath =
396- importElement . mode === 'append'
397- ? `ppt/slides/slide${ slideNumber } .xml`
398- : `ppt/slideMasters/slideMaster${ slideNumber } .xml` ;
393+ if ( importElement . mode === 'append' ) {
394+ currentMode = 'slideToMaster' ;
395+ } else {
396+ currentMode = 'onMaster' ;
397+ }
399398 }
400399
400+ // It is possible to import shapes from loaded slides to slideMaster,
401+ // as well as to modify an existing shape on current slideMaster
402+ const sourcePath =
403+ currentMode === 'onMaster'
404+ ? `ppt/slideMasters/slideMaster${ slideNumber } .xml`
405+ : `ppt/slides/slide${ slideNumber } .xml` ;
406+
407+ const sourceRelPath =
408+ currentMode === 'onMaster'
409+ ? `ppt/slideMasters/_rels/slideMaster${ slideNumber } .xml.rels`
410+ : `ppt/slides/_rels/slide${ slideNumber } .xml.rels` ;
411+
401412 const sourceArchive = await template . archive ;
402413 const useCreationIds =
403414 template . useCreationIds === true && template . creationIds !== undefined ;
@@ -420,7 +431,7 @@ export default class HasShapes {
420431 const appendElementParams = await this . analyzeElement (
421432 sourceElement ,
422433 sourceArchive ,
423- slideNumber ,
434+ sourceRelPath ,
424435 ) ;
425436
426437 return {
@@ -754,13 +765,13 @@ export default class HasShapes {
754765 async analyzeElement (
755766 sourceElement : XmlElement ,
756767 sourceArchive : IArchive ,
757- slideNumber : number ,
768+ relsPath : string ,
758769 ) : Promise < AnalyzedElementType > {
759770 const isChart = sourceElement . getElementsByTagName ( 'c:chart' ) ;
760771 if ( isChart . length ) {
761772 const target = await XmlHelper . getTargetByRelId (
762773 sourceArchive ,
763- slideNumber ,
774+ relsPath ,
764775 sourceElement ,
765776 'chart' ,
766777 ) ;
@@ -775,7 +786,7 @@ export default class HasShapes {
775786 if ( isChartEx . length ) {
776787 const target = await XmlHelper . getTargetByRelId (
777788 sourceArchive ,
778- slideNumber ,
789+ relsPath ,
779790 sourceElement ,
780791 'chartEx' ,
781792 ) ;
@@ -792,7 +803,7 @@ export default class HasShapes {
792803 type : ElementType . Image ,
793804 target : await XmlHelper . getTargetByRelId (
794805 sourceArchive ,
795- slideNumber ,
806+ relsPath ,
796807 sourceElement ,
797808 'image' ,
798809 ) ,
0 commit comments