@@ -2,11 +2,10 @@ import { randomUUID } from 'crypto';
22import PptxGenJS from 'pptxgenjs' ;
33import { ISlide } from '../../interfaces/islide' ;
44import Automizer from '../../automizer' ;
5- import { GenerateElements } from '../../types/types' ;
5+ import { AutomizerFile , GenerateElements } from '../../types/types' ;
66import { IGenerator } from '../../interfaces/igenerator' ;
77import { IPptxGenJSSlide } from '../../interfaces/ipptxgenjs-slide' ;
88import fs from 'fs' ;
9- import { vd } from '../general-helper' ;
109
1110/**
1211 * Using pptxGenJs on an automizer ISlide will create a temporary pptx template
@@ -37,32 +36,41 @@ export default class GeneratePptxGenJs implements IGenerator {
3736
3837 async generateSlides ( ) : Promise < void > {
3938 this . tmpFile = randomUUID ( ) + '.pptx' ;
40- const pgenSlide = this . appendPptxGenSlide ( ) ;
4139
4240 for ( const slide of this . slides ) {
4341 const generate = slide . getGeneratedElements ( ) ;
4442
4543 if ( generate . length ) {
4644 this . countSlides ++ ;
47- await this . generateElements ( generate , pgenSlide ) ;
45+ const pgenSlide = this . appendPptxGenSlide ( ) ;
46+ await this . generateElements ( generate , pgenSlide , this . countSlides ) ;
47+ }
48+ }
49+
50+ for ( const slide of this . slides ) {
51+ const generate = slide . getGeneratedElements ( ) ;
52+ if ( generate . length ) {
4853 this . addElements ( generate , slide ) ;
4954 }
5055 }
5156
5257 if ( this . countSlides > 0 ) {
53- await this . generator . writeFile ( {
54- fileName : this . automizer . templateDir + '/' + this . tmpFile ,
55- } ) ;
56- this . automizer . load ( this . tmpFile ) ;
58+ const data = ( await this . generator . stream ( ) ) as AutomizerFile ;
59+ this . automizer . load ( data , this . tmpFile ) ;
60+
61+ // await this.generator.writeFile({
62+ // fileName: this.automizer.templateDir + '/' + this.tmpFile,
63+ // });
5764 }
5865 }
5966
6067 async generateElements (
6168 generate : GenerateElements [ ] ,
6269 pgenSlide ,
70+ tmpSlideNumber ,
6371 ) : Promise < void > {
6472 for ( const generateElement of generate ) {
65- generateElement . tmpSlideNumber = 1 ;
73+ generateElement . tmpSlideNumber = tmpSlideNumber ;
6674 const addedObjects = < string [ ] > [ ] ;
6775 await generateElement . callback (
6876 this . addSlideItems ( pgenSlide , generateElement , addedObjects ) ,
@@ -75,7 +83,11 @@ export default class GeneratePptxGenJs implements IGenerator {
7583 addElements ( generate : GenerateElements [ ] , slide : ISlide ) {
7684 generate . forEach ( ( generateElement ) => {
7785 generateElement . addedObjects . forEach ( ( addedObjectName ) => {
78- slide . addElement ( this . tmpFile , 1 , addedObjectName ) ;
86+ slide . addElement (
87+ this . tmpFile ,
88+ generateElement . tmpSlideNumber ,
89+ addedObjectName ,
90+ ) ;
7991 } ) ;
8092 } ) ;
8193 }
@@ -150,8 +162,8 @@ export default class GeneratePptxGenJs implements IGenerator {
150162 }
151163
152164 async cleanup ( ) {
153- if ( this . countSlides > 0 ) {
154- fs . unlinkSync ( this . automizer . templateDir + '/' + this . tmpFile ) ;
155- }
165+ // if (this.countSlides > 0) {
166+ // fs.unlinkSync(this.automizer.templateDir + '/' + this.tmpFile);
167+ // }
156168 }
157169}
0 commit comments