@@ -33,6 +33,7 @@ import { ElementType } from '../enums/element-type';
3333import { GenericShape } from '../shapes/generic' ;
3434import { XmlSlideHelper } from '../helper/xml-slide-helper' ;
3535import { vd } from '../helper/general-helper' ;
36+ import { OLEObject } from '../shapes/ole' ;
3637
3738export default class HasShapes {
3839 /**
@@ -113,7 +114,7 @@ export default class HasShapes {
113114 */
114115 unsupportedTags = [
115116 'p:custDataLst' ,
116- 'p:oleObj' ,
117+ // 'p:oleObj',
117118 // 'mc:AlternateContent',
118119 //'a14:imgProps',
119120 ] ;
@@ -122,7 +123,7 @@ export default class HasShapes {
122123 * @internal
123124 */
124125 unsupportedRelationTypes = [
125- 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject' ,
126+ // 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject',
126127 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing' ,
127128 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/tags' ,
128129 ] ;
@@ -387,6 +388,13 @@ export default class HasShapes {
387388 this . targetType ,
388389 ) ;
389390 break ;
391+ case ElementType . OLEObject :
392+ await new OLEObject ( info , this . targetType , this . sourceArchive ) [ info . mode ] (
393+ this . targetTemplate ,
394+ this . targetNumber ,
395+ this . targetType ,
396+ ) ;
397+ break ;
390398 default :
391399 break ;
392400 }
@@ -746,7 +754,6 @@ export default class HasShapes {
746754 */
747755 async copyRelatedContent ( ) : Promise < void > {
748756 const charts = await Chart . getAllOnSlide ( this . sourceArchive , this . relsPath ) ;
749-
750757 for ( const chart of charts ) {
751758 await new Chart (
752759 {
@@ -755,22 +762,37 @@ export default class HasShapes {
755762 sourceArchive : this . sourceArchive ,
756763 sourceSlideNumber : this . sourceNumber ,
757764 } ,
758- this . targetType ,
765+ this . targetType
759766 ) . modifyOnAddedSlide ( this . targetTemplate , this . targetNumber ) ;
760767 }
761768
762769 const images = await Image . getAllOnSlide ( this . sourceArchive , this . relsPath ) ;
763770 for ( const image of images ) {
771+
764772 await new Image (
765773 {
766774 mode : 'append' ,
767775 target : image ,
768776 sourceArchive : this . sourceArchive ,
769777 sourceSlideNumber : this . sourceNumber ,
770778 } ,
771- this . targetType ,
779+ this . targetType
772780 ) . modifyOnAddedSlide ( this . targetTemplate , this . targetNumber ) ;
773781 }
782+
783+ const oleObjects = await OLEObject . getAllOnSlide ( this . sourceArchive , this . relsPath ) ;
784+ for ( const oleObject of oleObjects ) {
785+ await new OLEObject (
786+ {
787+ mode : 'append' ,
788+ target : oleObject ,
789+ sourceArchive : this . sourceArchive ,
790+ sourceSlideNumber : this . sourceNumber ,
791+ } ,
792+ this . targetType ,
793+ this . sourceArchive
794+ ) . modifyOnAddedSlide ( this . targetTemplate , this . targetNumber , oleObjects ) ;
795+ }
774796 }
775797
776798 /**
@@ -829,6 +851,21 @@ export default class HasShapes {
829851 } as AnalyzedElementType ;
830852 }
831853
854+ const isOLEObject = sourceElement . getElementsByTagName ( 'p:oleObj' ) ;
855+ if ( isOLEObject . length ) {
856+ const target = await XmlHelper . getTargetByRelId (
857+ sourceArchive ,
858+ relsPath ,
859+ sourceElement ,
860+ 'oleObject'
861+ ) ;
862+
863+ return {
864+ type : ElementType . OLEObject ,
865+ target : target ,
866+ } as AnalyzedElementType ;
867+ }
868+
832869 return {
833870 type : ElementType . Shape ,
834871 } as AnalyzedElementType ;
0 commit comments