Jelajahi Sumber

Reveal.configure() now works pre-initialization

Hakim El Hattab 5 tahun lalu
induk
melakukan
eb026f79b4
5 mengubah file dengan 16 tambahan dan 4 penghapusan
  1. 0 0
      dist/reveal.esm.js
  2. 0 0
      dist/reveal.js
  3. 1 1
      js/index.js
  4. 9 3
      js/reveal.js
  5. 6 0
      test/test.html

File diff ditekan karena terlalu besar
+ 0 - 0
dist/reveal.esm.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/reveal.js


+ 1 - 1
js/index.js

@@ -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 ) );
 	}

+ 9 - 3
js/reveal.js

@@ -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();
 

+ 6 - 0
test/test.html

@@ -81,6 +81,8 @@
 		<script>
 			window.location.hash = '';
 
+			Reveal.configure({maxScale: 1.11});
+
 			// These tests expect the DOM to contain a presentation
 			// with the following slide structure:
 			//
@@ -113,6 +115,10 @@
 
 				QUnit.module( 'API' );
 
+				QUnit.test( 'Reveal.configure before initialization', function( assert ) {
+					assert.strictEqual( Reveal.getConfig().maxScale, 1.11 );
+				});
+
 				QUnit.test( 'Reveal.isReady', function( assert ) {
 					assert.strictEqual( Reveal.isReady(), true, 'returns true' );
 				});

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini