Add bundler-friendly dependency injection
This commit is contained in:
@ -48,17 +48,22 @@ export default class Plugins {
|
||||
if( scripts.length ) {
|
||||
scriptsToLoad = scripts.length;
|
||||
|
||||
const scriptLoadedCallback = (s) => {
|
||||
if( typeof s.callback === 'function' ) s.callback();
|
||||
|
||||
if( --scriptsToLoad === 0 ) {
|
||||
this.initPlugins().then( resolve );
|
||||
}
|
||||
};
|
||||
|
||||
// Load synchronous scripts
|
||||
scripts.forEach( s => {
|
||||
loadScript( s.src, () => {
|
||||
|
||||
if( typeof s.callback === 'function' ) s.callback();
|
||||
|
||||
if( --scriptsToLoad === 0 ) {
|
||||
this.initPlugins().then( resolve );
|
||||
}
|
||||
|
||||
} );
|
||||
if (s.id) {
|
||||
this.registerPlugin(s.id, s.plugin);
|
||||
scriptLoadedCallback(s);
|
||||
} else {
|
||||
loadScript( s.src, () => scriptLoadedCallback(s));
|
||||
}
|
||||
} );
|
||||
}
|
||||
else {
|
||||
@ -129,7 +134,13 @@ export default class Plugins {
|
||||
|
||||
if( this.asyncDependencies.length ) {
|
||||
this.asyncDependencies.forEach( s => {
|
||||
loadScript( s.src, s.callback );
|
||||
if (s.id) {
|
||||
this.registerPlugin(s.id, s.plugin);
|
||||
if (typeof s.plugin.init === 'function') { s.plugin.init(); }
|
||||
if (typeof s.callback === 'function') { s.callback(); }
|
||||
} else {
|
||||
loadScript( s.src, s.callback );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
@ -190,4 +201,4 @@ export default class Plugins {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ export default function( revealElement, options ) {
|
||||
|
||||
// Flags if we should use zoom instead of transform to scale
|
||||
// up slides. Zoom produces crisper results but has a lot of
|
||||
// xbrowser quirks so we only use it in whitelsited browsers.
|
||||
// xbrowser quirks so we only use it in white-listed browsers.
|
||||
features.zoom = 'zoom' in testElement.style && !isMobileDevice &&
|
||||
( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );
|
||||
|
||||
@ -5675,4 +5675,4 @@ export default function( revealElement, options ) {
|
||||
|
||||
return Reveal;
|
||||
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user