Reveal.configure() now works pre-initialization

This commit is contained in:
Hakim El Hattab
2020-05-27 15:34:12 +02:00
parent 5e4c5c33a9
commit eb026f79b4
5 changed files with 18 additions and 6 deletions

View File

@ -45,7 +45,7 @@ Reveal.initialize = options => {
* queuing up premature API calls and invoking all
* of them when Reveal.initialize is called.
*/
[ 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin' ].forEach( method => {
[ 'configure', 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin' ].forEach( method => {
Reveal[method] = ( ...args ) => {
enqueuedAPICalls.push( deck => deck[method].call( null, ...args ) );
}

View File

@ -47,7 +47,7 @@ export default function( revealElement, options ) {
const Reveal = {};
// Configuration defaults, can be overridden at initialization time
let config,
let config = {},
// Flags if reveal.js is loaded (has dispatched the 'ready' event)
ready = false,
@ -125,8 +125,14 @@ export default function( revealElement, options ) {
dom.wrapper = revealElement;
dom.slides = revealElement.querySelector( '.slides' );
// Compose our config object
config = { ...defaultConfig, ...options, ...initOptions, ...Util.getQueryHash() };
// Compose our config object in order of increasing precedence:
// 1. Default reveal.js options
// 2. Options provided via Reveal.configure() prior to
// initialization
// 3. Options passed to the Reveal constructor
// 4. Options passed to Reveal.initialize
// 5. Query params
config = { ...defaultConfig, ...config, ...options, ...initOptions, ...Util.getQueryHash() };
setViewport();