| import Deck, { VERSION } from './reveal.js' |
| |
| /** |
| * Expose the Reveal class to the window. To create a |
| * new instance: |
| * let deck = new Reveal( document.querySelector( '.reveal' ), { |
| * controls: false |
| * } ); |
| * deck.initialize().then(() => { |
| * // reveal.js is ready |
| * }); |
| */ |
| let Reveal = Deck; |
| |
| |
| /** |
| * The below is a thin shell that mimics the pre 4.0 |
| * reveal.js API and ensures backwards compatibility. |
| * This API only allows for one Reveal instance per |
| * page, whereas the new API above lets you run many |
| * presentations on the same page. |
| * |
| * Reveal.initialize( { controls: false } ).then(() => { |
| * // reveal.js is ready |
| * }); |
| */ |
| |
| let enqueuedAPICalls = []; |
| |
| Reveal.initialize = options => { |
| |
| // Create our singleton reveal.js instance |
| Object.assign( Reveal, new Deck( document.querySelector( '.reveal' ), options ) ); |
| |
| // Invoke any enqueued API calls |
| enqueuedAPICalls.map( method => method( Reveal ) ); |
| |
| return Reveal.initialize(); |
| |
| } |
| |
| /** |
| * The pre 4.0 API let you add event listener before |
| * initializing. We maintain the same behavior by |
| * queuing up premature API calls and invoking all |
| * of them when Reveal.initialize is called. |
| */ |
| [ 'configure', 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin' ].forEach( method => { |
| Reveal[method] = ( ...args ) => { |
| enqueuedAPICalls.push( deck => deck[method].call( null, ...args ) ); |
| } |
| } ); |
| |
| Reveal.isReady = () => false; |
| |
| Reveal.VERSION = VERSION; |
| |
| export default Reveal; |