diff options
author | David Thompson <dthompson2@worcester.edu> | 2024-06-24 13:49:08 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2024-06-24 13:52:17 -0400 |
commit | d283f7e661e14d6ae1881fe803e5b4f1ed0689ff (patch) | |
tree | 84d3811c6dcb7d7f02aecadad7b2dfacce83bd4f /2024-06-18-guix-social/reveal.js/js/index.js | |
parent | 3d9dcd3099fb252fa35697148fbbd541eb9eecc9 (diff) |
Diffstat (limited to '2024-06-18-guix-social/reveal.js/js/index.js')
-rw-r--r-- | 2024-06-18-guix-social/reveal.js/js/index.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/2024-06-18-guix-social/reveal.js/js/index.js b/2024-06-18-guix-social/reveal.js/js/index.js new file mode 100644 index 0000000..57be501 --- /dev/null +++ b/2024-06-18-guix-social/reveal.js/js/index.js @@ -0,0 +1,58 @@ +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;
\ No newline at end of file |