summaryrefslogtreecommitdiff
path: root/2024-06-18-guix-social/reveal.js/js/index.js
diff options
context:
space:
mode:
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.js58
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