@@ -386,25 +386,26 @@ export class DeckdeckgoDeck {
386386
387387 @Listen ( 'slideDidLoad' )
388388 async slideDidLoad ( ) {
389- this . updateLength ( ) ;
389+ await this . updateLength ( ) ;
390390
391391 await this . emitSlidesDidLoad ( ) ;
392392 }
393393
394- private updateLength ( ) {
395- this . length = this . el . children ? this . el . children . length : 0 ;
394+ private async updateLength ( ) {
395+ const filteredSlides : Element [ ] = await this . getDefinedFilteredSlides ( ) ;
396+ this . length = filteredSlides ? filteredSlides . length : 0 ;
396397 }
397398
398399 private emitSlidesDidLoad ( ) : Promise < void > {
399400 return new Promise < void > ( async ( resolve ) => {
400- const definedSlides : HTMLCollection = this . el . children ;
401+ const filteredSlides : Element [ ] = await this . getDefinedFilteredSlides ( ) ;
402+
401403 const loadedSlides : NodeListOf < HTMLElement > = this . el . querySelectorAll ( '.deckgo-slide-container' ) ;
402404
403- const filteredSlides : Element [ ] = await this . filterSlides ( definedSlides ) ;
404405 const definedSlidesLength : number = filteredSlides ? filteredSlides . length : 0 ;
405406
406407 // Are all slides loaded?
407- if ( definedSlides && loadedSlides && loadedSlides . length === definedSlidesLength && definedSlidesLength === this . length ) {
408+ if ( filteredSlides && loadedSlides && loadedSlides . length === definedSlidesLength && definedSlidesLength === this . length ) {
408409 const orderedSlidesTagNames : DeckdeckgoSlideDefinition [ ] = [ ] ;
409410
410411 Array . from ( loadedSlides ) . forEach ( ( slide : HTMLElement ) => {
@@ -432,6 +433,15 @@ export class DeckdeckgoDeck {
432433 } ) ;
433434 }
434435
436+ private getDefinedFilteredSlides ( ) : Promise < Element [ ] > {
437+ return new Promise < Element [ ] > ( async ( resolve ) => {
438+ const definedSlides : HTMLCollection = this . el . children ;
439+ const filteredSlides : Element [ ] = await this . filterSlides ( definedSlides ) ;
440+
441+ resolve ( filteredSlides ) ;
442+ } ) ;
443+ }
444+
435445 private lazyLoadFirstSlides ( ) : Promise < void > {
436446 return new Promise < void > ( async ( resolve ) => {
437447 const lazyLoadContentFirstSlide = this . lazyLoadContent ( 0 ) ;
0 commit comments