' )
// Dark overlay should stay dark in dark mode
.addClass( 'mw-mmv-overlay mw-no-invert' );
this.$loadBar = $( '
' )
.addClass( 'cdx-progress-bar' )
.attr( {
role: 'progressbar',
'aria-label': mw.msg( 'multimediaviewer-loading' )
} ).append( $( '
' ).addClass( 'cdx-progress-bar__bar' ) );
this.$overlay.append( this.$loadBar );
}
this.savedScrollTop = $( window ).scrollTop();
$body.addClass( 'mw-mmv-lightbox-open' )
.append( this.$overlay );
}
/**
* Cleans up the overlay
*/
cleanupOverlay() {
$( document.body ).removeClass( 'mw-mmv-lightbox-open' );
if ( this.$overlay ) {
this.$overlay.remove();
}
if ( this.savedScrollTop !== undefined ) {
// setTimeout because otherwise Chrome will scroll back to top after the popstate event handlers run
setTimeout( () => {
$( window ).scrollTop( this.savedScrollTop );
this.savedScrollTop = undefined;
} );
}
}
whenThumbsReady() {
return this.thumbsReadyDeferred.promise();
}
}
module.exports = MultimediaViewerBootstrap;