).';\n\n\t\t// Cache references to key DOM elements\n\t\tdom.wrapper = revealElement;\n\t\tdom.slides = revealElement.querySelector( '.slides' );\n\n\t\tif( !dom.slides ) throw 'Unable to find slides container (
).';\n\n\t\t// Compose our config object in order of increasing precedence:\n\t\t// 1. Default reveal.js options\n\t\t// 2. Options provided via Reveal.configure() prior to\n\t\t// initialization\n\t\t// 3. Options passed to the Reveal constructor\n\t\t// 4. Options passed to Reveal.initialize\n\t\t// 5. Query params\n\t\tconfig = { ...defaultConfig, ...config, ...options, ...initOptions, ...Util.getQueryHash() };\n\n\t\t// Legacy support for the ?print-pdf query\n\t\tif( /print-pdf/gi.test( window.location.search ) ) {\n\t\t\tconfig.view = 'print';\n\t\t}\n\n\t\tsetViewport();\n\n\t\t// Force a layout when the whole page, incl fonts, has loaded\n\t\twindow.addEventListener( 'load', layout, false );\n\n\t\t// Register plugins and load dependencies, then move on to #start()\n\t\tplugins.load( config.plugins, config.dependencies ).then( start );\n\n\t\treturn new Promise( resolve => Reveal.on( 'ready', resolve ) );\n\n\t}\n\n\t/**\n\t * Encase the presentation in a reveal.js viewport. The\n\t * extent of the viewport differs based on configuration.\n\t */\n\tfunction setViewport() {\n\n\t\t// Embedded decks use the reveal element as their viewport\n\t\tif( config.embedded === true ) {\n\t\t\tdom.viewport = Util.closest( revealElement, '.reveal-viewport' ) || revealElement;\n\t\t}\n\t\t// Full-page decks use the body as their viewport\n\t\telse {\n\t\t\tdom.viewport = document.body;\n\t\t\tdocument.documentElement.classList.add( 'reveal-full-page' );\n\t\t}\n\n\t\tdom.viewport.classList.add( 'reveal-viewport' );\n\n\t}\n\n\t/**\n\t * Starts up reveal.js by binding input events and navigating\n\t * to the current URL deeplink if there is one.\n\t */\n\tfunction start() {\n\n\t\tready = true;\n\n\t\t// Remove slides hidden with data-visibility\n\t\tremoveHiddenSlides();\n\n\t\t// Make sure we've got all the DOM elements we need\n\t\tsetupDOM();\n\n\t\t// Listen to messages posted to this window\n\t\tsetupPostMessage();\n\n\t\t// Prevent the slides from being scrolled out of view\n\t\tsetupScrollPrevention();\n\n\t\t// Adds bindings for fullscreen mode\n\t\tsetupFullscreen();\n\n\t\t// Resets all vertical slides so that only the first is visible\n\t\tresetVerticalSlides();\n\n\t\t// Updates the presentation to match the current configuration values\n\t\tconfigure();\n\n\t\t// Create slide backgrounds\n\t\tbackgrounds.update( true );\n\n\t\t// Activate the print/scroll view if configured\n\t\tactivateInitialView();\n\n\t\t// Read the initial hash\n\t\tlocation.readURL();\n\n\t\t// Notify listeners that the presentation is ready but use a 1ms\n\t\t// timeout to ensure it's not fired synchronously after #initialize()\n\t\tsetTimeout( () => {\n\t\t\t// Enable transitions now that we're loaded\n\t\t\tdom.slides.classList.remove( 'no-transition' );\n\n\t\t\tdom.wrapper.classList.add( 'ready' );\n\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'ready',\n\t\t\t\tdata: {\n\t\t\t\t\tindexh,\n\t\t\t\t\tindexv,\n\t\t\t\t\tcurrentSlide\n\t\t\t\t}\n\t\t\t});\n\t\t}, 1 );\n\n\t}\n\n\t/**\n\t * Activates the correct reveal.js view based on our config.\n\t * This is only invoked once during initialization.\n\t */\n\tfunction activateInitialView() {\n\n\t\tconst activatePrintView = config.view === 'print';\n\t\tconst activateScrollView = config.view === 'scroll' || config.view === 'reader';\n\n\t\tif( activatePrintView || activateScrollView ) {\n\n\t\t\tif( activatePrintView ) {\n\t\t\t\tremoveEventListeners();\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttouch.unbind();\n\t\t\t}\n\n\t\t\t// Avoid content flickering during layout\n\t\t\tdom.viewport.classList.add( 'loading-scroll-mode' );\n\n\t\t\tif( activatePrintView ) {\n\t\t\t\t// The document needs to have loaded for the PDF layout\n\t\t\t\t// measurements to be accurate\n\t\t\t\tif( document.readyState === 'complete' ) {\n\t\t\t\t\tprintView.activate();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\twindow.addEventListener( 'load', () => printView.activate() );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tscrollView.activate();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Removes all slides with data-visibility=\"hidden\". This\n\t * is done right before the rest of the presentation is\n\t * initialized.\n\t *\n\t * If you want to show all hidden slides, initialize\n\t * reveal.js with showHiddenSlides set to true.\n\t */\n\tfunction removeHiddenSlides() {\n\n\t\tif( !config.showHiddenSlides ) {\n\t\t\tUtil.queryAll( dom.wrapper, 'section[data-visibility=\"hidden\"]' ).forEach( slide => {\n\t\t\t\tconst parent = slide.parentNode;\n\n\t\t\t\t// If this slide is part of a stack and that stack will be\n\t\t\t\t// empty after removing the hidden slide, remove the entire\n\t\t\t\t// stack\n\t\t\t\tif( parent.childElementCount === 1 && /section/i.test( parent.nodeName ) ) {\n\t\t\t\t\tparent.remove();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslide.remove();\n\t\t\t\t}\n\n\t\t\t} );\n\t\t}\n\n\t}\n\n\t/**\n\t * Finds and stores references to DOM elements which are\n\t * required by the presentation. If a required element is\n\t * not found, it is created.\n\t */\n\tfunction setupDOM() {\n\n\t\t// Prevent transitions while we're loading\n\t\tdom.slides.classList.add( 'no-transition' );\n\n\t\tif( Device.isMobile ) {\n\t\t\tdom.wrapper.classList.add( 'no-hover' );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.classList.remove( 'no-hover' );\n\t\t}\n\n\t\tbackgrounds.render();\n\t\tslideNumber.render();\n\t\tjumpToSlide.render();\n\t\tcontrols.render();\n\t\tprogress.render();\n\t\tnotes.render();\n\n\t\t// Overlay graphic which is displayed during the paused mode\n\t\tdom.pauseOverlay = Util.createSingletonNode( dom.wrapper, 'div', 'pause-overlay', config.controls ? '
' : null );\n\n\t\tdom.statusElement = createStatusElement();\n\n\t\tdom.wrapper.setAttribute( 'role', 'application' );\n\t}\n\n\t/**\n\t * Creates a hidden div with role aria-live to announce the\n\t * current slide content. Hide the div off-screen to make it\n\t * available only to Assistive Technologies.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction createStatusElement() {\n\n\t\tlet statusElement = dom.wrapper.querySelector( '.aria-status' );\n\t\tif( !statusElement ) {\n\t\t\tstatusElement = document.createElement( 'div' );\n\t\t\tstatusElement.style.position = 'absolute';\n\t\t\tstatusElement.style.height = '1px';\n\t\t\tstatusElement.style.width = '1px';\n\t\t\tstatusElement.style.overflow = 'hidden';\n\t\t\tstatusElement.style.clip = 'rect( 1px, 1px, 1px, 1px )';\n\t\t\tstatusElement.classList.add( 'aria-status' );\n\t\t\tstatusElement.setAttribute( 'aria-live', 'polite' );\n\t\t\tstatusElement.setAttribute( 'aria-atomic','true' );\n\t\t\tdom.wrapper.appendChild( statusElement );\n\t\t}\n\t\treturn statusElement;\n\n\t}\n\n\t/**\n\t * Announces the given text to screen readers.\n\t */\n\tfunction announceStatus( value ) {\n\n\t\tdom.statusElement.textContent = value;\n\n\t}\n\n\t/**\n\t * Converts the given HTML element into a string of text\n\t * that can be announced to a screen reader. Hidden\n\t * elements are excluded.\n\t */\n\tfunction getStatusText( node ) {\n\n\t\tlet text = '';\n\n\t\t// Text node\n\t\tif( node.nodeType === 3 ) {\n\t\t\ttext += node.textContent;\n\t\t}\n\t\t// Element node\n\t\telse if( node.nodeType === 1 ) {\n\n\t\t\tlet isAriaHidden = node.getAttribute( 'aria-hidden' );\n\t\t\tlet isDisplayHidden = window.getComputedStyle( node )['display'] === 'none';\n\t\t\tif( isAriaHidden !== 'true' && !isDisplayHidden ) {\n\n\t\t\t\tArray.from( node.childNodes ).forEach( child => {\n\t\t\t\t\ttext += getStatusText( child );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t\ttext = text.trim();\n\n\t\treturn text === '' ? '' : text + ' ';\n\n\t}\n\n\t/**\n\t * This is an unfortunate necessity. Some actions – such as\n\t * an input field being focused in an iframe or using the\n\t * keyboard to expand text selection beyond the bounds of\n\t * a slide – can trigger our content to be pushed out of view.\n\t * This scrolling can not be prevented by hiding overflow in\n\t * CSS (we already do) so we have to resort to repeatedly\n\t * checking if the slides have been offset :(\n\t */\n\tfunction setupScrollPrevention() {\n\n\t\tsetInterval( () => {\n\t\t\tif( !scrollView.isActive() && dom.wrapper.scrollTop !== 0 || dom.wrapper.scrollLeft !== 0 ) {\n\t\t\t\tdom.wrapper.scrollTop = 0;\n\t\t\t\tdom.wrapper.scrollLeft = 0;\n\t\t\t}\n\t\t}, 1000 );\n\n\t}\n\n\t/**\n\t * After entering fullscreen we need to force a layout to\n\t * get our presentations to scale correctly. This behavior\n\t * is inconsistent across browsers but a force layout seems\n\t * to normalize it.\n\t */\n\tfunction setupFullscreen() {\n\n\t\tdocument.addEventListener( 'fullscreenchange', onFullscreenChange );\n\t\tdocument.addEventListener( 'webkitfullscreenchange', onFullscreenChange );\n\n\t}\n\n\t/**\n\t * Registers a listener to postMessage events, this makes it\n\t * possible to call all reveal.js API methods from another\n\t * window. For example:\n\t *\n\t * revealWindow.postMessage( JSON.stringify({\n\t * method: 'slide',\n\t * args: [ 2 ]\n\t * }), '*' );\n\t */\n\tfunction setupPostMessage() {\n\n\t\tif( config.postMessage ) {\n\t\t\twindow.addEventListener( 'message', onPostMessage, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies the configuration settings from the config\n\t * object. May be called multiple times.\n\t *\n\t * @param {object} options\n\t */\n\tfunction configure( options ) {\n\n\t\tconst oldConfig = { ...config }\n\n\t\t// New config options may be passed when this method\n\t\t// is invoked through the API after initialization\n\t\tif( typeof options === 'object' ) Util.extend( config, options );\n\n\t\t// Abort if reveal.js hasn't finished loading, config\n\t\t// changes will be applied automatically once ready\n\t\tif( Reveal.isReady() === false ) return;\n\n\t\tconst numberOfSlides = dom.wrapper.querySelectorAll( SLIDES_SELECTOR ).length;\n\n\t\t// The transition is added as a class on the .reveal element\n\t\tdom.wrapper.classList.remove( oldConfig.transition );\n\t\tdom.wrapper.classList.add( config.transition );\n\n\t\tdom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );\n\t\tdom.wrapper.setAttribute( 'data-background-transition', config.backgroundTransition );\n\n\t\t// Expose our configured slide dimensions as custom props\n\t\tdom.viewport.style.setProperty( '--slide-width', typeof config.width === 'string' ? config.width : config.width + 'px' );\n\t\tdom.viewport.style.setProperty( '--slide-height', typeof config.height === 'string' ? config.height : config.height + 'px' );\n\n\t\tif( config.shuffle ) {\n\t\t\tshuffle();\n\t\t}\n\n\t\tUtil.toggleClass( dom.wrapper, 'embedded', config.embedded );\n\t\tUtil.toggleClass( dom.wrapper, 'rtl', config.rtl );\n\t\tUtil.toggleClass( dom.wrapper, 'center', config.center );\n\n\t\t// Exit the paused mode if it was configured off\n\t\tif( config.pause === false ) {\n\t\t\tresume();\n\t\t}\n\n\t\t// Iframe link previews\n\t\tif( config.previewLinks ) {\n\t\t\tenablePreviewLinks();\n\t\t\tdisablePreviewLinks( '[data-preview-link=false]' );\n\t\t}\n\t\telse {\n\t\t\tdisablePreviewLinks();\n\t\t\tenablePreviewLinks( '[data-preview-link]:not([data-preview-link=false])' );\n\t\t}\n\n\t\t// Reset all changes made by auto-animations\n\t\tautoAnimate.reset();\n\n\t\t// Remove existing auto-slide controls\n\t\tif( autoSlidePlayer ) {\n\t\t\tautoSlidePlayer.destroy();\n\t\t\tautoSlidePlayer = null;\n\t\t}\n\n\t\t// Generate auto-slide controls if needed\n\t\tif( numberOfSlides > 1 && config.autoSlide && config.autoSlideStoppable ) {\n\t\t\tautoSlidePlayer = new Playback( dom.wrapper, () => {\n\t\t\t\treturn Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );\n\t\t\t} );\n\n\t\t\tautoSlidePlayer.on( 'click', onAutoSlidePlayerClick );\n\t\t\tautoSlidePaused = false;\n\t\t}\n\n\t\t// Add the navigation mode to the DOM so we can adjust styling\n\t\tif( config.navigationMode !== 'default' ) {\n\t\t\tdom.wrapper.setAttribute( 'data-navigation-mode', config.navigationMode );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.removeAttribute( 'data-navigation-mode' );\n\t\t}\n\n\t\tnotes.configure( config, oldConfig );\n\t\tfocus.configure( config, oldConfig );\n\t\tpointer.configure( config, oldConfig );\n\t\tcontrols.configure( config, oldConfig );\n\t\tprogress.configure( config, oldConfig );\n\t\tkeyboard.configure( config, oldConfig );\n\t\tfragments.configure( config, oldConfig );\n\t\tslideNumber.configure( config, oldConfig );\n\n\t\tsync();\n\n\t}\n\n\t/**\n\t * Binds all event listeners.\n\t */\n\tfunction addEventListeners() {\n\n\t\teventsAreBound = true;\n\n\t\twindow.addEventListener( 'resize', onWindowResize, false );\n\n\t\tif( config.touch ) touch.bind();\n\t\tif( config.keyboard ) keyboard.bind();\n\t\tif( config.progress ) progress.bind();\n\t\tif( config.respondToHashChanges ) location.bind();\n\t\tcontrols.bind();\n\t\tfocus.bind();\n\n\t\tdom.slides.addEventListener( 'click', onSlidesClicked, false );\n\t\tdom.slides.addEventListener( 'transitionend', onTransitionEnd, false );\n\t\tdom.pauseOverlay.addEventListener( 'click', resume, false );\n\n\t\tif( config.focusBodyOnPageVisibilityChange ) {\n\t\t\tdocument.addEventListener( 'visibilitychange', onPageVisibilityChange, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Unbinds all event listeners.\n\t */\n\tfunction removeEventListeners() {\n\n\t\teventsAreBound = false;\n\n\t\ttouch.unbind();\n\t\tfocus.unbind();\n\t\tkeyboard.unbind();\n\t\tcontrols.unbind();\n\t\tprogress.unbind();\n\t\tlocation.unbind();\n\n\t\twindow.removeEventListener( 'resize', onWindowResize, false );\n\n\t\tdom.slides.removeEventListener( 'click', onSlidesClicked, false );\n\t\tdom.slides.removeEventListener( 'transitionend', onTransitionEnd, false );\n\t\tdom.pauseOverlay.removeEventListener( 'click', resume, false );\n\n\t}\n\n\t/**\n\t * Uninitializes reveal.js by undoing changes made to the\n\t * DOM and removing all event listeners.\n\t */\n\tfunction destroy() {\n\n\t\tremoveEventListeners();\n\t\tcancelAutoSlide();\n\t\tdisablePreviewLinks();\n\n\t\t// Destroy controllers\n\t\tnotes.destroy();\n\t\tfocus.destroy();\n\t\tplugins.destroy();\n\t\tpointer.destroy();\n\t\tcontrols.destroy();\n\t\tprogress.destroy();\n\t\tbackgrounds.destroy();\n\t\tslideNumber.destroy();\n\t\tjumpToSlide.destroy();\n\n\t\t// Remove event listeners\n\t\tdocument.removeEventListener( 'fullscreenchange', onFullscreenChange );\n\t\tdocument.removeEventListener( 'webkitfullscreenchange', onFullscreenChange );\n\t\tdocument.removeEventListener( 'visibilitychange', onPageVisibilityChange, false );\n\t\twindow.removeEventListener( 'message', onPostMessage, false );\n\t\twindow.removeEventListener( 'load', layout, false );\n\n\t\t// Undo DOM changes\n\t\tif( dom.pauseOverlay ) dom.pauseOverlay.remove();\n\t\tif( dom.statusElement ) dom.statusElement.remove();\n\n\t\tdocument.documentElement.classList.remove( 'reveal-full-page' );\n\n\t\tdom.wrapper.classList.remove( 'ready', 'center', 'has-horizontal-slides', 'has-vertical-slides' );\n\t\tdom.wrapper.removeAttribute( 'data-transition-speed' );\n\t\tdom.wrapper.removeAttribute( 'data-background-transition' );\n\n\t\tdom.viewport.classList.remove( 'reveal-viewport' );\n\t\tdom.viewport.style.removeProperty( '--slide-width' );\n\t\tdom.viewport.style.removeProperty( '--slide-height' );\n\n\t\tdom.slides.style.removeProperty( 'width' );\n\t\tdom.slides.style.removeProperty( 'height' );\n\t\tdom.slides.style.removeProperty( 'zoom' );\n\t\tdom.slides.style.removeProperty( 'left' );\n\t\tdom.slides.style.removeProperty( 'top' );\n\t\tdom.slides.style.removeProperty( 'bottom' );\n\t\tdom.slides.style.removeProperty( 'right' );\n\t\tdom.slides.style.removeProperty( 'transform' );\n\n\t\tArray.from( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) ).forEach( slide => {\n\t\t\tslide.style.removeProperty( 'display' );\n\t\t\tslide.style.removeProperty( 'top' );\n\t\t\tslide.removeAttribute( 'hidden' );\n\t\t\tslide.removeAttribute( 'aria-hidden' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Adds a listener to one of our custom reveal.js events,\n\t * like slidechanged.\n\t */\n\tfunction on( type, listener, useCapture ) {\n\n\t\trevealElement.addEventListener( type, listener, useCapture );\n\n\t}\n\n\t/**\n\t * Unsubscribes from a reveal.js event.\n\t */\n\tfunction off( type, listener, useCapture ) {\n\n\t\trevealElement.removeEventListener( type, listener, useCapture );\n\n\t}\n\n\t/**\n\t * Applies CSS transforms to the slides container. The container\n\t * is transformed from two separate sources: layout and the overview\n\t * mode.\n\t *\n\t * @param {object} transforms\n\t */\n\tfunction transformSlides( transforms ) {\n\n\t\t// Pick up new transforms from arguments\n\t\tif( typeof transforms.layout === 'string' ) slidesTransform.layout = transforms.layout;\n\t\tif( typeof transforms.overview === 'string' ) slidesTransform.overview = transforms.overview;\n\n\t\t// Apply the transforms to the slides container\n\t\tif( slidesTransform.layout ) {\n\t\t\tUtil.transformElement( dom.slides, slidesTransform.layout + ' ' + slidesTransform.overview );\n\t\t}\n\t\telse {\n\t\t\tUtil.transformElement( dom.slides, slidesTransform.overview );\n\t\t}\n\n\t}\n\n\t/**\n\t * Dispatches an event of the specified type from the\n\t * reveal DOM element.\n\t */\n\tfunction dispatchEvent({ target=dom.wrapper, type, data, bubbles=true }) {\n\n\t\tlet event = document.createEvent( 'HTMLEvents', 1, 2 );\n\t\tevent.initEvent( type, bubbles, true );\n\t\tUtil.extend( event, data );\n\t\ttarget.dispatchEvent( event );\n\n\t\tif( target === dom.wrapper ) {\n\t\t\t// If we're in an iframe, post each reveal.js event to the\n\t\t\t// parent window. Used by the notes plugin\n\t\t\tdispatchPostMessage( type );\n\t\t}\n\n\t\treturn event;\n\n\t}\n\n\t/**\n\t * Dispatches a slidechanged event.\n\t *\n\t * @param {string} origin Used to identify multiplex clients\n\t */\n\tfunction dispatchSlideChanged( origin ) {\n\n\t\tdispatchEvent({\n\t\t\ttype: 'slidechanged',\n\t\t\tdata: {\n\t\t\t\tindexh,\n\t\t\t\tindexv,\n\t\t\t\tpreviousSlide,\n\t\t\t\tcurrentSlide,\n\t\t\t\torigin\n\t\t\t}\n\t\t});\n\n\t}\n\n\t/**\n\t * Dispatched a postMessage of the given type from our window.\n\t */\n\tfunction dispatchPostMessage( type, data ) {\n\n\t\tif( config.postMessageEvents && window.parent !== window.self ) {\n\t\t\tlet message = {\n\t\t\t\tnamespace: 'reveal',\n\t\t\t\teventName: type,\n\t\t\t\tstate: getState()\n\t\t\t};\n\n\t\t\tUtil.extend( message, data );\n\n\t\t\twindow.parent.postMessage( JSON.stringify( message ), '*' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Bind preview frame links.\n\t *\n\t * @param {string} [selector=a] - selector for anchors\n\t */\n\tfunction enablePreviewLinks( selector = 'a' ) {\n\n\t\tArray.from( dom.wrapper.querySelectorAll( selector ) ).forEach( element => {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.addEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Unbind preview frame links.\n\t */\n\tfunction disablePreviewLinks( selector = 'a' ) {\n\n\t\tArray.from( dom.wrapper.querySelectorAll( selector ) ).forEach( element => {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.removeEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Opens a preview window for the target URL.\n\t *\n\t * @param {string} url - url for preview iframe src\n\t */\n\tfunction showPreview( url ) {\n\n\t\tcloseOverlay();\n\n\t\tdom.overlay = document.createElement( 'div' );\n\t\tdom.overlay.classList.add( 'overlay' );\n\t\tdom.overlay.classList.add( 'overlay-preview' );\n\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\tdom.overlay.innerHTML =\n\t\t\t`
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
`;\n\n\t\tdom.overlay.querySelector( 'iframe' ).addEventListener( 'load', event => {\n\t\t\tdom.overlay.classList.add( 'loaded' );\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', event => {\n\t\t\tcloseOverlay();\n\t\t\tevent.preventDefault();\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.external' ).addEventListener( 'click', event => {\n\t\t\tcloseOverlay();\n\t\t}, false );\n\n\t}\n\n\t/**\n\t * Open or close help overlay window.\n\t *\n\t * @param {Boolean} [override] Flag which overrides the\n\t * toggle logic and forcibly sets the desired state. True means\n\t * help is open, false means it's closed.\n\t */\n\tfunction toggleHelp( override ){\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? showHelp() : closeOverlay();\n\t\t}\n\t\telse {\n\t\t\tif( dom.overlay ) {\n\t\t\t\tcloseOverlay();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tshowHelp();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Opens an overlay window with help material.\n\t */\n\tfunction showHelp() {\n\n\t\tif( config.help ) {\n\n\t\t\tcloseOverlay();\n\n\t\t\tdom.overlay = document.createElement( 'div' );\n\t\t\tdom.overlay.classList.add( 'overlay' );\n\t\t\tdom.overlay.classList.add( 'overlay-help' );\n\t\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\t\tlet html = '
Keyboard Shortcuts
';\n\n\t\t\tlet shortcuts = keyboard.getShortcuts(),\n\t\t\t\tbindings = keyboard.getBindings();\n\n\t\t\thtml += '
KEY | ACTION | ';\n\t\t\tfor( let key in shortcuts ) {\n\t\t\t\thtml += `${key} | ${shortcuts[ key ]} |
`;\n\t\t\t}\n\n\t\t\t// Add custom key bindings that have associated descriptions\n\t\t\tfor( let binding in bindings ) {\n\t\t\t\tif( bindings[binding].key && bindings[binding].description ) {\n\t\t\t\t\thtml += `${bindings[binding].key} | ${bindings[binding].description} |
`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml += '
';\n\n\t\t\tdom.overlay.innerHTML = `\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${html}
\n\t\t\t\t
\n\t\t\t`;\n\n\t\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', event => {\n\t\t\t\tcloseOverlay();\n\t\t\t\tevent.preventDefault();\n\t\t\t}, false );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Closes any currently open overlay.\n\t */\n\tfunction closeOverlay() {\n\n\t\tif( dom.overlay ) {\n\t\t\tdom.overlay.parentNode.removeChild( dom.overlay );\n\t\t\tdom.overlay = null;\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Applies JavaScript-controlled layout rules to the\n\t * presentation.\n\t */\n\tfunction layout() {\n\n\t\tif( dom.wrapper && !printView.isActive() ) {\n\n\t\t\tconst viewportWidth = dom.viewport.offsetWidth;\n\t\t\tconst viewportHeight = dom.viewport.offsetHeight;\n\n\t\t\tif( !config.disableLayout ) {\n\n\t\t\t\t// On some mobile devices '100vh' is taller than the visible\n\t\t\t\t// viewport which leads to part of the presentation being\n\t\t\t\t// cut off. To work around this we define our own '--vh' custom\n\t\t\t\t// property where 100x adds up to the correct height.\n\t\t\t\t//\n\t\t\t\t// https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n\t\t\t\tif( Device.isMobile && !config.embedded ) {\n\t\t\t\t\tdocument.documentElement.style.setProperty( '--vh', ( window.innerHeight * 0.01 ) + 'px' );\n\t\t\t\t}\n\n\t\t\t\tconst size = scrollView.isActive() ?\n\t\t\t\t\t\t\t getComputedSlideSize( viewportWidth, viewportHeight ) :\n\t\t\t\t\t\t\t getComputedSlideSize();\n\n\t\t\t\tconst oldScale = scale;\n\n\t\t\t\t// Layout the contents of the slides\n\t\t\t\tlayoutSlideContents( config.width, config.height );\n\n\t\t\t\tdom.slides.style.width = size.width + 'px';\n\t\t\t\tdom.slides.style.height = size.height + 'px';\n\n\t\t\t\t// Determine scale of content to fit within available space\n\t\t\t\tscale = Math.min( size.presentationWidth / size.width, size.presentationHeight / size.height );\n\n\t\t\t\t// Respect max/min scale settings\n\t\t\t\tscale = Math.max( scale, config.minScale );\n\t\t\t\tscale = Math.min( scale, config.maxScale );\n\n\t\t\t\t// Don't apply any scaling styles if scale is 1 or we're\n\t\t\t\t// in the scroll view\n\t\t\t\tif( scale === 1 || scrollView.isActive() ) {\n\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\tdom.slides.style.left = '';\n\t\t\t\t\tdom.slides.style.top = '';\n\t\t\t\t\tdom.slides.style.bottom = '';\n\t\t\t\t\tdom.slides.style.right = '';\n\t\t\t\t\ttransformSlides( { layout: '' } );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\tdom.slides.style.left = '50%';\n\t\t\t\t\tdom.slides.style.top = '50%';\n\t\t\t\t\tdom.slides.style.bottom = 'auto';\n\t\t\t\t\tdom.slides.style.right = 'auto';\n\t\t\t\t\ttransformSlides( { layout: 'translate(-50%, -50%) scale('+ scale +')' } );\n\t\t\t\t}\n\n\t\t\t\t// Select all slides, vertical and horizontal\n\t\t\t\tconst slides = Array.from( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) );\n\n\t\t\t\tfor( let i = 0, len = slides.length; i < len; i++ ) {\n\t\t\t\t\tconst slide = slides[ i ];\n\n\t\t\t\t\t// Don't bother updating invisible slides\n\t\t\t\t\tif( slide.style.display === 'none' ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( ( config.center || slide.classList.contains( 'center' ) ) ) {\n\t\t\t\t\t\t// Vertical stacks are not centred since their section\n\t\t\t\t\t\t// children will be\n\t\t\t\t\t\tif( slide.classList.contains( 'stack' ) ) {\n\t\t\t\t\t\t\tslide.style.top = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tslide.style.top = Math.max( ( size.height - slide.scrollHeight ) / 2, 0 ) + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tslide.style.top = '';\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif( oldScale !== scale ) {\n\t\t\t\t\tdispatchEvent({\n\t\t\t\t\t\ttype: 'resize',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\toldScale,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\tsize\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcheckResponsiveScrollView();\n\n\t\t\tdom.viewport.style.setProperty( '--slide-scale', scale );\n\t\t\tdom.viewport.style.setProperty( '--viewport-width', viewportWidth + 'px' );\n\t\t\tdom.viewport.style.setProperty( '--viewport-height', viewportHeight + 'px' );\n\n\t\t\tscrollView.layout();\n\n\t\t\tprogress.update();\n\t\t\tbackgrounds.updateParallax();\n\n\t\t\tif( overview.isActive() ) {\n\t\t\t\toverview.update();\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies layout logic to the contents of all slides in\n\t * the presentation.\n\t *\n\t * @param {string|number} width\n\t * @param {string|number} height\n\t */\n\tfunction layoutSlideContents( width, height ) {\n\t\t// Handle sizing of elements with the 'r-stretch' class\n\t\tUtil.queryAll( dom.slides, 'section > .stretch, section > .r-stretch' ).forEach( element => {\n\n\t\t\t// Determine how much vertical space we can use\n\t\t\tlet remainingHeight = Util.getRemainingHeight( element, height );\n\n\t\t\t// Consider the aspect ratio of media elements\n\t\t\tif( /(img|video)/gi.test( element.nodeName ) ) {\n\t\t\t\tconst nw = element.naturalWidth || element.videoWidth,\n\t\t\t\t\t nh = element.naturalHeight || element.videoHeight;\n\n\t\t\t\tconst es = Math.min( width / nw, remainingHeight / nh );\n\n\t\t\t\telement.style.width = ( nw * es ) + 'px';\n\t\t\t\telement.style.height = ( nh * es ) + 'px';\n\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.style.width = width + 'px';\n\t\t\t\telement.style.height = remainingHeight + 'px';\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Responsively activates the scroll mode when we reach the configured\n\t * activation width.\n\t */\n\tfunction checkResponsiveScrollView() {\n\n\t\t// Only proceed if...\n\t\t// 1. The DOM is ready\n\t\t// 2. Layouts aren't disabled via config\n\t\t// 3. We're not currently printing\n\t\t// 4. There is a scrollActivationWidth set\n\t\t// 5. The deck isn't configured to always use the scroll view\n\t\tif(\n\t\t\tdom.wrapper &&\n\t\t\t!config.disableLayout &&\n\t\t\t!printView.isActive() &&\n\t\t\ttypeof config.scrollActivationWidth === 'number' &&\n\t\t\tconfig.view !== 'scroll'\n\t\t) {\n\t\t\tconst size = getComputedSlideSize();\n\n\t\t\tif( size.presentationWidth > 0 && size.presentationWidth <= config.scrollActivationWidth ) {\n\t\t\t\tif( !scrollView.isActive() ) {\n\t\t\t\t\tbackgrounds.create();\n\t\t\t\t\tscrollView.activate()\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif( scrollView.isActive() ) scrollView.deactivate();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Calculates the computed pixel size of our slides. These\n\t * values are based on the width and height configuration\n\t * options.\n\t *\n\t * @param {number} [presentationWidth=dom.wrapper.offsetWidth]\n\t * @param {number} [presentationHeight=dom.wrapper.offsetHeight]\n\t */\n\tfunction getComputedSlideSize( presentationWidth, presentationHeight ) {\n\n\t\tlet width = config.width;\n\t\tlet height = config.height;\n\n\t\tif( config.disableLayout ) {\n\t\t\twidth = dom.slides.offsetWidth;\n\t\t\theight = dom.slides.offsetHeight;\n\t\t}\n\n\t\tconst size = {\n\t\t\t// Slide size\n\t\t\twidth: width,\n\t\t\theight: height,\n\n\t\t\t// Presentation size\n\t\t\tpresentationWidth: presentationWidth || dom.wrapper.offsetWidth,\n\t\t\tpresentationHeight: presentationHeight || dom.wrapper.offsetHeight\n\t\t};\n\n\t\t// Reduce available space by margin\n\t\tsize.presentationWidth -= ( size.presentationWidth * config.margin );\n\t\tsize.presentationHeight -= ( size.presentationHeight * config.margin );\n\n\t\t// Slide width may be a percentage of available width\n\t\tif( typeof size.width === 'string' && /%$/.test( size.width ) ) {\n\t\t\tsize.width = parseInt( size.width, 10 ) / 100 * size.presentationWidth;\n\t\t}\n\n\t\t// Slide height may be a percentage of available height\n\t\tif( typeof size.height === 'string' && /%$/.test( size.height ) ) {\n\t\t\tsize.height = parseInt( size.height, 10 ) / 100 * size.presentationHeight;\n\t\t}\n\n\t\treturn size;\n\n\t}\n\n\t/**\n\t * Stores the vertical index of a stack so that the same\n\t * vertical slide can be selected when navigating to and\n\t * from the stack.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t * @param {string|number} [v=0] Index to memorize\n\t */\n\tfunction setPreviousVerticalIndex( stack, v ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) {\n\t\t\tstack.setAttribute( 'data-previous-indexv', v || 0 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Retrieves the vertical index which was stored using\n\t * #setPreviousVerticalIndex() or 0 if no previous index\n\t * exists.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t */\n\tfunction getPreviousVerticalIndex( stack ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) {\n\t\t\t// Prefer manually defined start-indexv\n\t\t\tconst attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv';\n\n\t\t\treturn parseInt( stack.getAttribute( attributeName ) || 0, 10 );\n\t\t}\n\n\t\treturn 0;\n\n\t}\n\n\t/**\n\t * Checks if the current or specified slide is vertical\n\t * (nested within another slide).\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide to check\n\t * orientation of\n\t * @return {Boolean}\n\t */\n\tfunction isVerticalSlide( slide = currentSlide ) {\n\n\t\treturn slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i );\n\n\t}\n\n\t/**\n\t * Checks if the current or specified slide is a stack containing\n\t * vertical slides.\n\t *\n\t * @param {HTMLElement} [slide=currentSlide]\n\t * @return {Boolean}\n\t */\n\tfunction isVerticalStack( slide = currentSlide ) {\n\n\t\treturn slide.classList.contains( '.stack' ) || slide.querySelector( 'section' ) !== null;\n\n\t}\n\n\t/**\n\t * Returns true if we're on the last slide in the current\n\t * vertical stack.\n\t */\n\tfunction isLastVerticalSlide() {\n\n\t\tif( currentSlide && isVerticalSlide( currentSlide ) ) {\n\t\t\t// Does this slide have a next sibling?\n\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Returns true if we're currently on the first slide in\n\t * the presentation.\n\t */\n\tfunction isFirstSlide() {\n\n\t\treturn indexh === 0 && indexv === 0;\n\n\t}\n\n\t/**\n\t * Returns true if we're currently on the last slide in\n\t * the presenation. If the last slide is a stack, we only\n\t * consider this the last slide if it's at the end of the\n\t * stack.\n\t */\n\tfunction isLastSlide() {\n\n\t\tif( currentSlide ) {\n\t\t\t// Does this slide have a next sibling?\n\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\t// If it's vertical, does its parent have a next sibling?\n\t\t\tif( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Enters the paused mode which fades everything on screen to\n\t * black.\n\t */\n\tfunction pause() {\n\n\t\tif( config.pause ) {\n\t\t\tconst wasPaused = dom.wrapper.classList.contains( 'paused' );\n\n\t\t\tcancelAutoSlide();\n\t\t\tdom.wrapper.classList.add( 'paused' );\n\n\t\t\tif( wasPaused === false ) {\n\t\t\t\tdispatchEvent({ type: 'paused' });\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Exits from the paused mode.\n\t */\n\tfunction resume() {\n\n\t\tconst wasPaused = dom.wrapper.classList.contains( 'paused' );\n\t\tdom.wrapper.classList.remove( 'paused' );\n\n\t\tcueAutoSlide();\n\n\t\tif( wasPaused ) {\n\t\t\tdispatchEvent({ type: 'resumed' });\n\t\t}\n\n\t}\n\n\t/**\n\t * Toggles the paused mode on and off.\n\t */\n\tfunction togglePause( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? pause() : resume();\n\t\t}\n\t\telse {\n\t\t\tisPaused() ? resume() : pause();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if we are currently in the paused mode.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isPaused() {\n\n\t\treturn dom.wrapper.classList.contains( 'paused' );\n\n\t}\n\n\t/**\n\t * Toggles visibility of the jump-to-slide UI.\n\t */\n\tfunction toggleJumpToSlide( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? jumpToSlide.show() : jumpToSlide.hide();\n\t\t}\n\t\telse {\n\t\t\tjumpToSlide.isVisible() ? jumpToSlide.hide() : jumpToSlide.show();\n\t\t}\n\n\t}\n\n\t/**\n\t * Toggles the auto slide mode on and off.\n\t *\n\t * @param {Boolean} [override] Flag which sets the desired state.\n\t * True means autoplay starts, false means it stops.\n\t */\n\n\tfunction toggleAutoSlide( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t\telse {\n\t\t\tautoSlidePaused ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the auto slide mode is currently on.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isAutoSliding() {\n\n\t\treturn !!( autoSlide && !autoSlidePaused );\n\n\t}\n\n\t/**\n\t * Steps from the current point in the presentation to the\n\t * slide which matches the specified horizontal and vertical\n\t * indices.\n\t *\n\t * @param {number} [h=indexh] Horizontal index of the target slide\n\t * @param {number} [v=indexv] Vertical index of the target slide\n\t * @param {number} [f] Index of a fragment within the\n\t * target slide to activate\n\t * @param {number} [origin] Origin for use in multimaster environments\n\t */\n\tfunction slide( h, v, f, origin ) {\n\n\t\t// Dispatch an event before the slide\n\t\tconst slidechange = dispatchEvent({\n\t\t\ttype: 'beforeslidechange',\n\t\t\tdata: {\n\t\t\t\tindexh: h === undefined ? indexh : h,\n\t\t\t\tindexv: v === undefined ? indexv : v,\n\t\t\t\torigin\n\t\t\t}\n\t\t});\n\n\t\t// Abort if this slide change was prevented by an event listener\n\t\tif( slidechange.defaultPrevented ) return;\n\n\t\t// Remember where we were at before\n\t\tpreviousSlide = currentSlide;\n\n\t\t// Query all horizontal slides in the deck\n\t\tconst horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );\n\n\t\t// If we're in scroll mode, we scroll the target slide into view\n\t\t// instead of running our standard slide transition\n\t\tif( scrollView.isActive() ) {\n\t\t\tconst scrollToSlide = scrollView.getSlideByIndices( h, v );\n\t\t\tif( scrollToSlide ) scrollView.scrollToSlide( scrollToSlide );\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort if there are no slides\n\t\tif( horizontalSlides.length === 0 ) return;\n\n\t\t// If no vertical index is specified and the upcoming slide is a\n\t\t// stack, resume at its previous vertical index\n\t\tif( v === undefined && !overview.isActive() ) {\n\t\t\tv = getPreviousVerticalIndex( horizontalSlides[ h ] );\n\t\t}\n\n\t\t// If we were on a vertical stack, remember what vertical index\n\t\t// it was on so we can resume at the same position when returning\n\t\tif( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) {\n\t\t\tsetPreviousVerticalIndex( previousSlide.parentNode, indexv );\n\t\t}\n\n\t\t// Remember the state before this slide\n\t\tconst stateBefore = state.concat();\n\n\t\t// Reset the state array\n\t\tstate.length = 0;\n\n\t\tlet indexhBefore = indexh || 0,\n\t\t\tindexvBefore = indexv || 0;\n\n\t\t// Activate and transition to the new slide\n\t\tindexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );\n\t\tindexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );\n\n\t\t// Dispatch an event if the slide changed\n\t\tlet slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore );\n\n\t\t// Ensure that the previous slide is never the same as the current\n\t\tif( !slideChanged ) previousSlide = null;\n\n\t\t// Find the current horizontal slide and any possible vertical slides\n\t\t// within it\n\t\tlet currentHorizontalSlide = horizontalSlides[ indexh ],\n\t\t\tcurrentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );\n\n\t\t// Store references to the previous and current slides\n\t\tcurrentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;\n\n\t\tlet autoAnimateTransition = false;\n\n\t\t// Detect if we're moving between two auto-animated slides\n\t\tif( slideChanged && previousSlide && currentSlide && !overview.isActive() ) {\n\t\t\ttransition = 'running';\n\n\t\t\tautoAnimateTransition = shouldAutoAnimateBetween( previousSlide, currentSlide, indexhBefore, indexvBefore );\n\n\t\t\t// If this is an auto-animated transition, we disable the\n\t\t\t// regular slide transition\n\t\t\t//\n\t\t\t// Note 20-03-2020:\n\t\t\t// This needs to happen before we update slide visibility,\n\t\t\t// otherwise transitions will still run in Safari.\n\t\t\tif( autoAnimateTransition ) {\n\t\t\t\tdom.slides.classList.add( 'disable-slide-transitions' )\n\t\t\t}\n\t\t}\n\n\t\t// Update the visibility of slides now that the indices have changed\n\t\tupdateSlidesVisibility();\n\n\t\tlayout();\n\n\t\t// Update the overview if it's currently active\n\t\tif( overview.isActive() ) {\n\t\t\toverview.update();\n\t\t}\n\n\t\t// Show fragment, if specified\n\t\tif( typeof f !== 'undefined' ) {\n\t\t\tfragments.goto( f );\n\t\t}\n\n\t\t// Solves an edge case where the previous slide maintains the\n\t\t// 'present' class when navigating between adjacent vertical\n\t\t// stacks\n\t\tif( previousSlide && previousSlide !== currentSlide ) {\n\t\t\tpreviousSlide.classList.remove( 'present' );\n\t\t\tpreviousSlide.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t// Reset all slides upon navigate to home\n\t\t\tif( isFirstSlide() ) {\n\t\t\t\t// Launch async task\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tgetVerticalStacks().forEach( slide => {\n\t\t\t\t\t\tsetPreviousVerticalIndex( slide, 0 );\n\t\t\t\t\t} );\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t}\n\n\t\t// Apply the new state\n\t\tstateLoop: for( let i = 0, len = state.length; i < len; i++ ) {\n\t\t\t// Check if this state existed on the previous slide. If it\n\t\t\t// did, we will avoid adding it repeatedly\n\t\t\tfor( let j = 0; j < stateBefore.length; j++ ) {\n\t\t\t\tif( stateBefore[j] === state[i] ) {\n\t\t\t\t\tstateBefore.splice( j, 1 );\n\t\t\t\t\tcontinue stateLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdom.viewport.classList.add( state[i] );\n\n\t\t\t// Dispatch custom event matching the state's name\n\t\t\tdispatchEvent({ type: state[i] });\n\t\t}\n\n\t\t// Clean up the remains of the previous state\n\t\twhile( stateBefore.length ) {\n\t\t\tdom.viewport.classList.remove( stateBefore.pop() );\n\t\t}\n\n\t\tif( slideChanged ) {\n\t\t\tdispatchSlideChanged( origin );\n\t\t}\n\n\t\t// Handle embedded content\n\t\tif( slideChanged || !previousSlide ) {\n\t\t\tslideContent.stopEmbeddedContent( previousSlide );\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t}\n\n\t\t// Announce the current slide contents to screen readers\n\t\t// Use animation frame to prevent getComputedStyle in getStatusText\n\t\t// from triggering layout mid-frame\n\t\trequestAnimationFrame( () => {\n\t\t\tannounceStatus( getStatusText( currentSlide ) );\n\t\t});\n\n\t\tprogress.update();\n\t\tcontrols.update();\n\t\tnotes.update();\n\t\tbackgrounds.update();\n\t\tbackgrounds.updateParallax();\n\t\tslideNumber.update();\n\t\tfragments.update();\n\n\t\t// Update the URL hash\n\t\tlocation.writeURL();\n\n\t\tcueAutoSlide();\n\n\t\t// Auto-animation\n\t\tif( autoAnimateTransition ) {\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tdom.slides.classList.remove( 'disable-slide-transitions' );\n\t\t\t}, 0 );\n\n\t\t\tif( config.autoAnimate ) {\n\t\t\t\t// Run the auto-animation between our slides\n\t\t\t\tautoAnimate.run( previousSlide, currentSlide );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks whether or not an auto-animation should take place between\n\t * the two given slides.\n\t *\n\t * @param {HTMLElement} fromSlide\n\t * @param {HTMLElement} toSlide\n\t * @param {number} indexhBefore\n\t * @param {number} indexvBefore\n\t *\n\t * @returns {boolean}\n\t */\n\tfunction shouldAutoAnimateBetween( fromSlide, toSlide, indexhBefore, indexvBefore ) {\n\n\t\treturn \tfromSlide.hasAttribute( 'data-auto-animate' ) && toSlide.hasAttribute( 'data-auto-animate' ) &&\n\t\t\t\tfromSlide.getAttribute( 'data-auto-animate-id' ) === toSlide.getAttribute( 'data-auto-animate-id' ) &&\n\t\t\t\t!( ( indexh > indexhBefore || indexv > indexvBefore ) ? toSlide : fromSlide ).hasAttribute( 'data-auto-animate-restart' );\n\n\t}\n\n\t/**\n\t * Called anytime a new slide should be activated while in the scroll\n\t * view. The active slide is the page that occupies the most space in\n\t * the scrollable viewport.\n\t *\n\t * @param {number} pageIndex\n\t * @param {HTMLElement} slideElement\n\t */\n\tfunction setCurrentScrollPage( slideElement, h, v ) {\n\n\t\tlet indexhBefore = indexh || 0;\n\n\t\tindexh = h;\n\t\tindexv = v;\n\n\t\tconst slideChanged = currentSlide !== slideElement;\n\n\t\tpreviousSlide = currentSlide;\n\t\tcurrentSlide = slideElement;\n\n\t\tif( currentSlide && previousSlide ) {\n\t\t\tif( config.autoAnimate && shouldAutoAnimateBetween( previousSlide, currentSlide, indexhBefore, indexv ) ) {\n\t\t\t\t// Run the auto-animation between our slides\n\t\t\t\tautoAnimate.run( previousSlide, currentSlide );\n\t\t\t}\n\t\t}\n\n\t\t// Start or stop embedded content like videos and iframes\n\t\tif( slideChanged ) {\n\t\t\tif( previousSlide ) {\n\t\t\t\tslideContent.stopEmbeddedContent( previousSlide );\n\t\t\t\tslideContent.stopEmbeddedContent( previousSlide.slideBackgroundElement );\n\t\t\t}\n\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t\tslideContent.startEmbeddedContent( currentSlide.slideBackgroundElement );\n\t\t}\n\n\t\trequestAnimationFrame( () => {\n\t\t\tannounceStatus( getStatusText( currentSlide ) );\n\t\t});\n\n\t\tdispatchSlideChanged();\n\n\t}\n\n\t/**\n\t * Syncs the presentation with the current DOM. Useful\n\t * when new slides or control elements are added or when\n\t * the configuration has changed.\n\t */\n\tfunction sync() {\n\n\t\t// Subscribe to input\n\t\tremoveEventListeners();\n\t\taddEventListeners();\n\n\t\t// Force a layout to make sure the current config is accounted for\n\t\tlayout();\n\n\t\t// Reflect the current autoSlide value\n\t\tautoSlide = config.autoSlide;\n\n\t\t// Start auto-sliding if it's enabled\n\t\tcueAutoSlide();\n\n\t\t// Re-create all slide backgrounds\n\t\tbackgrounds.create();\n\n\t\t// Write the current hash to the URL\n\t\tlocation.writeURL();\n\n\t\tif( config.sortFragmentsOnSync === true ) {\n\t\t\tfragments.sortAll();\n\t\t}\n\n\t\tcontrols.update();\n\t\tprogress.update();\n\n\t\tupdateSlidesVisibility();\n\n\t\tnotes.update();\n\t\tnotes.updateVisibility();\n\t\tbackgrounds.update( true );\n\t\tslideNumber.update();\n\t\tslideContent.formatEmbeddedContent();\n\n\t\t// Start or stop embedded content depending on global config\n\t\tif( config.autoPlayMedia === false ) {\n\t\t\tslideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } );\n\t\t}\n\t\telse {\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t}\n\n\t\tif( overview.isActive() ) {\n\t\t\toverview.layout();\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates reveal.js to keep in sync with new slide attributes. For\n\t * example, if you add a new `data-background-image` you can call\n\t * this to have reveal.js render the new background image.\n\t *\n\t * Similar to #sync() but more efficient when you only need to\n\t * refresh a specific slide.\n\t *\n\t * @param {HTMLElement} slide\n\t */\n\tfunction syncSlide( slide = currentSlide ) {\n\n\t\tbackgrounds.sync( slide );\n\t\tfragments.sync( slide );\n\n\t\tslideContent.load( slide );\n\n\t\tbackgrounds.update();\n\t\tnotes.update();\n\n\t}\n\n\t/**\n\t * Resets all vertical slides so that only the first\n\t * is visible.\n\t */\n\tfunction resetVerticalSlides() {\n\n\t\tgetHorizontalSlides().forEach( horizontalSlide => {\n\n\t\t\tUtil.queryAll( horizontalSlide, 'section' ).forEach( ( verticalSlide, y ) => {\n\n\t\t\t\tif( y > 0 ) {\n\t\t\t\t\tverticalSlide.classList.remove( 'present' );\n\t\t\t\t\tverticalSlide.classList.remove( 'past' );\n\t\t\t\t\tverticalSlide.classList.add( 'future' );\n\t\t\t\t\tverticalSlide.setAttribute( 'aria-hidden', 'true' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Randomly shuffles all slides in the deck.\n\t */\n\tfunction shuffle( slides = getHorizontalSlides() ) {\n\n\t\tslides.forEach( ( slide, i ) => {\n\n\t\t\t// Insert the slide next to a randomly picked sibling slide\n\t\t\t// slide. This may cause the slide to insert before itself,\n\t\t\t// but that's not an issue.\n\t\t\tlet beforeSlide = slides[ Math.floor( Math.random() * slides.length ) ];\n\t\t\tif( beforeSlide.parentNode === slide.parentNode ) {\n\t\t\t\tslide.parentNode.insertBefore( slide, beforeSlide );\n\t\t\t}\n\n\t\t\t// Randomize the order of vertical slides (if there are any)\n\t\t\tlet verticalSlides = slide.querySelectorAll( 'section' );\n\t\t\tif( verticalSlides.length ) {\n\t\t\t\tshuffle( verticalSlides );\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Updates one dimension of slides by showing the slide\n\t * with the specified index.\n\t *\n\t * @param {string} selector A CSS selector that will fetch\n\t * the group of slides we are working with\n\t * @param {number} index The index of the slide that should be\n\t * shown\n\t *\n\t * @return {number} The index of the slide that is now shown,\n\t * might differ from the passed in index if it was out of\n\t * bounds.\n\t */\n\tfunction updateSlides( selector, index ) {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tlet slides = Util.queryAll( dom.wrapper, selector ),\n\t\t\tslidesLength = slides.length;\n\n\t\tlet printMode = scrollView.isActive() || printView.isActive();\n\t\tlet loopedForwards = false;\n\t\tlet loopedBackwards = false;\n\n\t\tif( slidesLength ) {\n\n\t\t\t// Should the index loop?\n\t\t\tif( config.loop ) {\n\t\t\t\tif( index >= slidesLength ) loopedForwards = true;\n\n\t\t\t\tindex %= slidesLength;\n\n\t\t\t\tif( index < 0 ) {\n\t\t\t\t\tindex = slidesLength + index;\n\t\t\t\t\tloopedBackwards = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Enforce max and minimum index bounds\n\t\t\tindex = Math.max( Math.min( index, slidesLength - 1 ), 0 );\n\n\t\t\tfor( let i = 0; i < slidesLength; i++ ) {\n\t\t\t\tlet element = slides[i];\n\n\t\t\t\tlet reverse = config.rtl && !isVerticalSlide( element );\n\n\t\t\t\t// Avoid .remove() with multiple args for IE11 support\n\t\t\t\telement.classList.remove( 'past' );\n\t\t\t\telement.classList.remove( 'present' );\n\t\t\t\telement.classList.remove( 'future' );\n\n\t\t\t\t// http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute\n\t\t\t\telement.setAttribute( 'hidden', '' );\n\t\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t\t// If this element contains vertical slides\n\t\t\t\tif( element.querySelector( 'section' ) ) {\n\t\t\t\t\telement.classList.add( 'stack' );\n\t\t\t\t}\n\n\t\t\t\t// If we're printing static slides, all slides are \"present\"\n\t\t\t\tif( printMode ) {\n\t\t\t\t\telement.classList.add( 'present' );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif( i < index ) {\n\t\t\t\t\t// Any element previous to index is given the 'past' class\n\t\t\t\t\telement.classList.add( reverse ? 'future' : 'past' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\t// Show all fragments in prior slides\n\t\t\t\t\t\tshowFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( i > index ) {\n\t\t\t\t\t// Any element subsequent to index is given the 'future' class\n\t\t\t\t\telement.classList.add( reverse ? 'past' : 'future' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\t// Hide all fragments in future slides\n\t\t\t\t\t\thideFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Update the visibility of fragments when a presentation loops\n\t\t\t\t// in either direction\n\t\t\t\telse if( i === index && config.fragments ) {\n\t\t\t\t\tif( loopedForwards ) {\n\t\t\t\t\t\thideFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t\telse if( loopedBackwards ) {\n\t\t\t\t\t\tshowFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet slide = slides[index];\n\t\t\tlet wasPresent = slide.classList.contains( 'present' );\n\n\t\t\t// Mark the current slide as present\n\t\t\tslide.classList.add( 'present' );\n\t\t\tslide.removeAttribute( 'hidden' );\n\t\t\tslide.removeAttribute( 'aria-hidden' );\n\n\t\t\tif( !wasPresent ) {\n\t\t\t\t// Dispatch an event indicating the slide is now visible\n\t\t\t\tdispatchEvent({\n\t\t\t\t\ttarget: slide,\n\t\t\t\t\ttype: 'visible',\n\t\t\t\t\tbubbles: false\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If this slide has a state associated with it, add it\n\t\t\t// onto the current state of the deck\n\t\t\tlet slideState = slide.getAttribute( 'data-state' );\n\t\t\tif( slideState ) {\n\t\t\t\tstate = state.concat( slideState.split( ' ' ) );\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\t// Since there are no slides we can't be anywhere beyond the\n\t\t\t// zeroth index\n\t\t\tindex = 0;\n\t\t}\n\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Shows all fragment elements within the given container.\n\t */\n\tfunction showFragmentsIn( container ) {\n\n\t\tUtil.queryAll( container, '.fragment' ).forEach( fragment => {\n\t\t\tfragment.classList.add( 'visible' );\n\t\t\tfragment.classList.remove( 'current-fragment' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Hides all fragment elements within the given container.\n\t */\n\tfunction hideFragmentsIn( container ) {\n\n\t\tUtil.queryAll( container, '.fragment.visible' ).forEach( fragment => {\n\t\t\tfragment.classList.remove( 'visible', 'current-fragment' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Optimization method; hide all slides that are far away\n\t * from the present slide.\n\t */\n\tfunction updateSlidesVisibility() {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tlet horizontalSlides = getHorizontalSlides(),\n\t\t\thorizontalSlidesLength = horizontalSlides.length,\n\t\t\tdistanceX,\n\t\t\tdistanceY;\n\n\t\tif( horizontalSlidesLength && typeof indexh !== 'undefined' ) {\n\n\t\t\t// The number of steps away from the present slide that will\n\t\t\t// be visible\n\t\t\tlet viewDistance = overview.isActive() ? 10 : config.viewDistance;\n\n\t\t\t// Shorten the view distance on devices that typically have\n\t\t\t// less resources\n\t\t\tif( Device.isMobile ) {\n\t\t\t\tviewDistance = overview.isActive() ? 6 : config.mobileViewDistance;\n\t\t\t}\n\n\t\t\t// All slides need to be visible when exporting to PDF\n\t\t\tif( printView.isActive() ) {\n\t\t\t\tviewDistance = Number.MAX_VALUE;\n\t\t\t}\n\n\t\t\tfor( let x = 0; x < horizontalSlidesLength; x++ ) {\n\t\t\t\tlet horizontalSlide = horizontalSlides[x];\n\n\t\t\t\tlet verticalSlides = Util.queryAll( horizontalSlide, 'section' ),\n\t\t\t\t\tverticalSlidesLength = verticalSlides.length;\n\n\t\t\t\t// Determine how far away this slide is from the present\n\t\t\t\tdistanceX = Math.abs( ( indexh || 0 ) - x ) || 0;\n\n\t\t\t\t// If the presentation is looped, distance should measure\n\t\t\t\t// 1 between the first and last slides\n\t\t\t\tif( config.loop ) {\n\t\t\t\t\tdistanceX = Math.abs( ( ( indexh || 0 ) - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;\n\t\t\t\t}\n\n\t\t\t\t// Show the horizontal slide if it's within the view distance\n\t\t\t\tif( distanceX < viewDistance ) {\n\t\t\t\t\tslideContent.load( horizontalSlide );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslideContent.unload( horizontalSlide );\n\t\t\t\t}\n\n\t\t\t\tif( verticalSlidesLength ) {\n\n\t\t\t\t\tlet oy = getPreviousVerticalIndex( horizontalSlide );\n\n\t\t\t\t\tfor( let y = 0; y < verticalSlidesLength; y++ ) {\n\t\t\t\t\t\tlet verticalSlide = verticalSlides[y];\n\n\t\t\t\t\t\tdistanceY = x === ( indexh || 0 ) ? Math.abs( ( indexv || 0 ) - y ) : Math.abs( y - oy );\n\n\t\t\t\t\t\tif( distanceX + distanceY < viewDistance ) {\n\t\t\t\t\t\t\tslideContent.load( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tslideContent.unload( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Flag if there are ANY vertical slides, anywhere in the deck\n\t\t\tif( hasVerticalSlides() ) {\n\t\t\t\tdom.wrapper.classList.add( 'has-vertical-slides' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.wrapper.classList.remove( 'has-vertical-slides' );\n\t\t\t}\n\n\t\t\t// Flag if there are ANY horizontal slides, anywhere in the deck\n\t\t\tif( hasHorizontalSlides() ) {\n\t\t\t\tdom.wrapper.classList.add( 'has-horizontal-slides' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.wrapper.classList.remove( 'has-horizontal-slides' );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Determine what available routes there are for navigation.\n\t *\n\t * @return {{left: boolean, right: boolean, up: boolean, down: boolean}}\n\t */\n\tfunction availableRoutes({ includeFragments = false } = {}) {\n\n\t\tlet horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),\n\t\t\tverticalSlides = dom.wrapper.querySelectorAll( VERTICAL_SLIDES_SELECTOR );\n\n\t\tlet routes = {\n\t\t\tleft: indexh > 0,\n\t\t\tright: indexh < horizontalSlides.length - 1,\n\t\t\tup: indexv > 0,\n\t\t\tdown: indexv < verticalSlides.length - 1\n\t\t};\n\n\t\t// Looped presentations can always be navigated as long as\n\t\t// there are slides available\n\t\tif( config.loop ) {\n\t\t\tif( horizontalSlides.length > 1 ) {\n\t\t\t\troutes.left = true;\n\t\t\t\troutes.right = true;\n\t\t\t}\n\n\t\t\tif( verticalSlides.length > 1 ) {\n\t\t\t\troutes.up = true;\n\t\t\t\troutes.down = true;\n\t\t\t}\n\t\t}\n\n\t\tif ( horizontalSlides.length > 1 && config.navigationMode === 'linear' ) {\n\t\t\troutes.right = routes.right || routes.down;\n\t\t\troutes.left = routes.left || routes.up;\n\t\t}\n\n\t\t// If includeFragments is set, a route will be considered\n\t\t// available if either a slid OR fragment is available in\n\t\t// the given direction\n\t\tif( includeFragments === true ) {\n\t\t\tlet fragmentRoutes = fragments.availableRoutes();\n\t\t\troutes.left = routes.left || fragmentRoutes.prev;\n\t\t\troutes.up = routes.up || fragmentRoutes.prev;\n\t\t\troutes.down = routes.down || fragmentRoutes.next;\n\t\t\troutes.right = routes.right || fragmentRoutes.next;\n\t\t}\n\n\t\t// Reverse horizontal controls for rtl\n\t\tif( config.rtl ) {\n\t\t\tlet left = routes.left;\n\t\t\troutes.left = routes.right;\n\t\t\troutes.right = left;\n\t\t}\n\n\t\treturn routes;\n\n\t}\n\n\t/**\n\t * Returns the number of past slides. This can be used as a global\n\t * flattened index for slides.\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide we're counting before\n\t *\n\t * @return {number} Past slide count\n\t */\n\tfunction getSlidePastCount( slide = currentSlide ) {\n\n\t\tlet horizontalSlides = getHorizontalSlides();\n\n\t\t// The number of past slides\n\t\tlet pastCount = 0;\n\n\t\t// Step through all slides and count the past ones\n\t\tmainLoop: for( let i = 0; i < horizontalSlides.length; i++ ) {\n\n\t\t\tlet horizontalSlide = horizontalSlides[i];\n\t\t\tlet verticalSlides = horizontalSlide.querySelectorAll( 'section' );\n\n\t\t\tfor( let j = 0; j < verticalSlides.length; j++ ) {\n\n\t\t\t\t// Stop as soon as we arrive at the present\n\t\t\t\tif( verticalSlides[j] === slide ) {\n\t\t\t\t\tbreak mainLoop;\n\t\t\t\t}\n\n\t\t\t\t// Don't count slides with the \"uncounted\" class\n\t\t\t\tif( verticalSlides[j].dataset.visibility !== 'uncounted' ) {\n\t\t\t\t\tpastCount++;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Stop as soon as we arrive at the present\n\t\t\tif( horizontalSlide === slide ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Don't count the wrapping section for vertical slides and\n\t\t\t// slides marked as uncounted\n\t\t\tif( horizontalSlide.classList.contains( 'stack' ) === false && horizontalSlide.dataset.visibility !== 'uncounted' ) {\n\t\t\t\tpastCount++;\n\t\t\t}\n\n\t\t}\n\n\t\treturn pastCount;\n\n\t}\n\n\t/**\n\t * Returns a value ranging from 0-1 that represents\n\t * how far into the presentation we have navigated.\n\t *\n\t * @return {number}\n\t */\n\tfunction getProgress() {\n\n\t\t// The number of past and total slides\n\t\tlet totalCount = getTotalSlides();\n\t\tlet pastCount = getSlidePastCount();\n\n\t\tif( currentSlide ) {\n\n\t\t\tlet allFragments = currentSlide.querySelectorAll( '.fragment' );\n\n\t\t\t// If there are fragments in the current slide those should be\n\t\t\t// accounted for in the progress.\n\t\t\tif( allFragments.length > 0 ) {\n\t\t\t\tlet visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );\n\n\t\t\t\t// This value represents how big a portion of the slide progress\n\t\t\t\t// that is made up by its fragments (0-1)\n\t\t\t\tlet fragmentWeight = 0.9;\n\n\t\t\t\t// Add fragment progress to the past slide count\n\t\t\t\tpastCount += ( visibleFragments.length / allFragments.length ) * fragmentWeight;\n\t\t\t}\n\n\t\t}\n\n\t\treturn Math.min( pastCount / ( totalCount - 1 ), 1 );\n\n\t}\n\n\t/**\n\t * Retrieves the h/v location and fragment of the current,\n\t * or specified, slide.\n\t *\n\t * @param {HTMLElement} [slide] If specified, the returned\n\t * index will be for this slide rather than the currently\n\t * active one\n\t *\n\t * @return {{h: number, v: number, f: number}}\n\t */\n\tfunction getIndices( slide ) {\n\n\t\t// By default, return the current indices\n\t\tlet h = indexh,\n\t\t\tv = indexv,\n\t\t\tf;\n\n\t\t// If a slide is specified, return the indices of that slide\n\t\tif( slide ) {\n\t\t\t// In scroll mode the original h/x index is stored on the slide\n\t\t\tif( scrollView.isActive() ) {\n\t\t\t\th = parseInt( slide.getAttribute( 'data-index-h' ), 10 );\n\n\t\t\t\tif( slide.getAttribute( 'data-index-v' ) ) {\n\t\t\t\t\tv = parseInt( slide.getAttribute( 'data-index-v' ), 10 );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet isVertical = isVerticalSlide( slide );\n\t\t\t\tlet slideh = isVertical ? slide.parentNode : slide;\n\n\t\t\t\t// Select all horizontal slides\n\t\t\t\tlet horizontalSlides = getHorizontalSlides();\n\n\t\t\t\t// Now that we know which the horizontal slide is, get its index\n\t\t\t\th = Math.max( horizontalSlides.indexOf( slideh ), 0 );\n\n\t\t\t\t// Assume we're not vertical\n\t\t\t\tv = undefined;\n\n\t\t\t\t// If this is a vertical slide, grab the vertical index\n\t\t\t\tif( isVertical ) {\n\t\t\t\t\tv = Math.max( Util.queryAll( slide.parentNode, 'section' ).indexOf( slide ), 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( !slide && currentSlide ) {\n\t\t\tlet hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;\n\t\t\tif( hasFragments ) {\n\t\t\t\tlet currentFragment = currentSlide.querySelector( '.current-fragment' );\n\t\t\t\tif( currentFragment && currentFragment.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\t\tf = parseInt( currentFragment.getAttribute( 'data-fragment-index' ), 10 );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf = currentSlide.querySelectorAll( '.fragment.visible' ).length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { h, v, f };\n\n\t}\n\n\t/**\n\t * Retrieves all slides in this presentation.\n\t */\n\tfunction getSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, SLIDES_SELECTOR + ':not(.stack):not([data-visibility=\"uncounted\"])' );\n\n\t}\n\n\t/**\n\t * Returns a list of all horizontal slides in the deck. Each\n\t * vertical stack is included as one horizontal slide in the\n\t * resulting array.\n\t */\n\tfunction getHorizontalSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR );\n\n\t}\n\n\t/**\n\t * Returns all vertical slides that exist within this deck.\n\t */\n\tfunction getVerticalSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, '.slides>section>section' );\n\n\t}\n\n\t/**\n\t * Returns all vertical stacks (each stack can contain multiple slides).\n\t */\n\tfunction getVerticalStacks() {\n\n\t\treturn Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.stack');\n\n\t}\n\n\t/**\n\t * Returns true if there are at least two horizontal slides.\n\t */\n\tfunction hasHorizontalSlides() {\n\n\t\treturn getHorizontalSlides().length > 1;\n\t}\n\n\t/**\n\t * Returns true if there are at least two vertical slides.\n\t */\n\tfunction hasVerticalSlides() {\n\n\t\treturn getVerticalSlides().length > 1;\n\n\t}\n\n\t/**\n\t * Returns an array of objects where each object represents the\n\t * attributes on its respective slide.\n\t */\n\tfunction getSlidesAttributes() {\n\n\t\treturn getSlides().map( slide => {\n\n\t\t\tlet attributes = {};\n\t\t\tfor( let i = 0; i < slide.attributes.length; i++ ) {\n\t\t\t\tlet attribute = slide.attributes[ i ];\n\t\t\t\tattributes[ attribute.name ] = attribute.value;\n\t\t\t}\n\t\t\treturn attributes;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Retrieves the total number of slides in this presentation.\n\t *\n\t * @return {number}\n\t */\n\tfunction getTotalSlides() {\n\n\t\treturn getSlides().length;\n\n\t}\n\n\t/**\n\t * Returns the slide element matching the specified index.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction getSlide( x, y ) {\n\n\t\tlet horizontalSlide = getHorizontalSlides()[ x ];\n\t\tlet verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' );\n\n\t\tif( verticalSlides && verticalSlides.length && typeof y === 'number' ) {\n\t\t\treturn verticalSlides ? verticalSlides[ y ] : undefined;\n\t\t}\n\n\t\treturn horizontalSlide;\n\n\t}\n\n\t/**\n\t * Returns the background element for the given slide.\n\t * All slides, even the ones with no background properties\n\t * defined, have a background element so as long as the\n\t * index is valid an element will be returned.\n\t *\n\t * @param {mixed} x Horizontal background index OR a slide\n\t * HTML element\n\t * @param {number} y Vertical background index\n\t * @return {(HTMLElement[]|*)}\n\t */\n\tfunction getSlideBackground( x, y ) {\n\n\t\tlet slide = typeof x === 'number' ? getSlide( x, y ) : x;\n\t\tif( slide ) {\n\t\t\treturn slide.slideBackgroundElement;\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\t/**\n\t * Retrieves the current state of the presentation as\n\t * an object. This state can then be restored at any\n\t * time.\n\t *\n\t * @return {{indexh: number, indexv: number, indexf: number, paused: boolean, overview: boolean}}\n\t */\n\tfunction getState() {\n\n\t\tlet indices = getIndices();\n\n\t\treturn {\n\t\t\tindexh: indices.h,\n\t\t\tindexv: indices.v,\n\t\t\tindexf: indices.f,\n\t\t\tpaused: isPaused(),\n\t\t\toverview: overview.isActive()\n\t\t};\n\n\t}\n\n\t/**\n\t * Restores the presentation to the given state.\n\t *\n\t * @param {object} state As generated by getState()\n\t * @see {@link getState} generates the parameter `state`\n\t */\n\tfunction setState( state ) {\n\n\t\tif( typeof state === 'object' ) {\n\t\t\tslide( Util.deserialize( state.indexh ), Util.deserialize( state.indexv ), Util.deserialize( state.indexf ) );\n\n\t\t\tlet pausedFlag = Util.deserialize( state.paused ),\n\t\t\t\toverviewFlag = Util.deserialize( state.overview );\n\n\t\t\tif( typeof pausedFlag === 'boolean' && pausedFlag !== isPaused() ) {\n\t\t\t\ttogglePause( pausedFlag );\n\t\t\t}\n\n\t\t\tif( typeof overviewFlag === 'boolean' && overviewFlag !== overview.isActive() ) {\n\t\t\t\toverview.toggle( overviewFlag );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Cues a new automated slide if enabled in the config.\n\t */\n\tfunction cueAutoSlide() {\n\n\t\tcancelAutoSlide();\n\n\t\tif( currentSlide && config.autoSlide !== false ) {\n\n\t\t\tlet fragment = currentSlide.querySelector( '.current-fragment[data-autoslide]' );\n\n\t\t\tlet fragmentAutoSlide = fragment ? fragment.getAttribute( 'data-autoslide' ) : null;\n\t\t\tlet parentAutoSlide = currentSlide.parentNode ? currentSlide.parentNode.getAttribute( 'data-autoslide' ) : null;\n\t\t\tlet slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );\n\n\t\t\t// Pick value in the following priority order:\n\t\t\t// 1. Current fragment's data-autoslide\n\t\t\t// 2. Current slide's data-autoslide\n\t\t\t// 3. Parent slide's data-autoslide\n\t\t\t// 4. Global autoSlide setting\n\t\t\tif( fragmentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( fragmentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( slideAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( slideAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( parentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( parentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tautoSlide = config.autoSlide;\n\n\t\t\t\t// If there are media elements with data-autoplay,\n\t\t\t\t// automatically set the autoSlide duration to the\n\t\t\t\t// length of that media. Not applicable if the slide\n\t\t\t\t// is divided up into fragments.\n\t\t\t\t// playbackRate is accounted for in the duration.\n\t\t\t\tif( currentSlide.querySelectorAll( '.fragment' ).length === 0 ) {\n\t\t\t\t\tUtil.queryAll( currentSlide, 'video, audio' ).forEach( el => {\n\t\t\t\t\t\tif( el.hasAttribute( 'data-autoplay' ) ) {\n\t\t\t\t\t\t\tif( autoSlide && (el.duration * 1000 / el.playbackRate ) > autoSlide ) {\n\t\t\t\t\t\t\t\tautoSlide = ( el.duration * 1000 / el.playbackRate ) + 1000;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Cue the next auto-slide if:\n\t\t\t// - There is an autoSlide value\n\t\t\t// - Auto-sliding isn't paused by the user\n\t\t\t// - The presentation isn't paused\n\t\t\t// - The overview isn't active\n\t\t\t// - The presentation isn't over\n\t\t\tif( autoSlide && !autoSlidePaused && !isPaused() && !overview.isActive() && ( !isLastSlide() || fragments.availableRoutes().next || config.loop === true ) ) {\n\t\t\t\tautoSlideTimeout = setTimeout( () => {\n\t\t\t\t\tif( typeof config.autoSlideMethod === 'function' ) {\n\t\t\t\t\t\tconfig.autoSlideMethod()\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnavigateNext();\n\t\t\t\t\t}\n\t\t\t\t\tcueAutoSlide();\n\t\t\t\t}, autoSlide );\n\t\t\t\tautoSlideStartTime = Date.now();\n\t\t\t}\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Cancels any ongoing request to auto-slide.\n\t */\n\tfunction cancelAutoSlide() {\n\n\t\tclearTimeout( autoSlideTimeout );\n\t\tautoSlideTimeout = -1;\n\n\t}\n\n\tfunction pauseAutoSlide() {\n\n\t\tif( autoSlide && !autoSlidePaused ) {\n\t\t\tautoSlidePaused = true;\n\t\t\tdispatchEvent({ type: 'autoslidepaused' });\n\t\t\tclearTimeout( autoSlideTimeout );\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( false );\n\t\t\t}\n\t\t}\n\n\t}\n\n\tfunction resumeAutoSlide() {\n\n\t\tif( autoSlide && autoSlidePaused ) {\n\t\t\tautoSlidePaused = false;\n\t\t\tdispatchEvent({ type: 'autoslideresumed' });\n\t\t\tcueAutoSlide();\n\t\t}\n\n\t}\n\n\tfunction navigateLeft({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.prev();\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().left ) {\n\t\t\t\tslide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().left ) {\n\t\t\tslide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t}\n\n\t}\n\n\tfunction navigateRight({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.next();\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().right ) {\n\t\t\t\tslide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().right ) {\n\t\t\tslide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t}\n\n\t}\n\n\tfunction navigateUp({skipFragments=false}={}) {\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.prev();\n\n\t\t// Prioritize hiding fragments\n\t\tif( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().up ) {\n\t\t\tslide( indexh, indexv - 1 );\n\t\t}\n\n\t}\n\n\tfunction navigateDown({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedVertically = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.next();\n\n\t\t// Prioritize revealing fragments\n\t\tif( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().down ) {\n\t\t\tslide( indexh, indexv + 1 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Navigates backwards, prioritized in the following order:\n\t * 1) Previous fragment\n\t * 2) Previous vertical slide\n\t * 3) Previous horizontal slide\n\t */\n\tfunction navigatePrev({skipFragments=false}={}) {\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.prev();\n\n\t\t// Prioritize revealing fragments\n\t\tif( skipFragments || fragments.prev() === false ) {\n\t\t\tif( availableRoutes().up ) {\n\t\t\t\tnavigateUp({skipFragments});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Fetch the previous horizontal slide, if there is one\n\t\t\t\tlet previousSlide;\n\n\t\t\t\tif( config.rtl ) {\n\t\t\t\t\tpreviousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.future' ).pop();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpreviousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.past' ).pop();\n\t\t\t\t}\n\n\t\t\t\t// When going backwards and arriving on a stack we start\n\t\t\t\t// at the bottom of the stack\n\t\t\t\tif( previousSlide && previousSlide.classList.contains( 'stack' ) ) {\n\t\t\t\t\tlet v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;\n\t\t\t\t\tlet h = indexh - 1;\n\t\t\t\t\tslide( h, v );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnavigateLeft({skipFragments});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * The reverse of #navigatePrev().\n\t */\n\tfunction navigateNext({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\t\tnavigationHistory.hasNavigatedVertically = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.next();\n\n\t\t// Prioritize revealing fragments\n\t\tif( skipFragments || fragments.next() === false ) {\n\n\t\t\tlet routes = availableRoutes();\n\n\t\t\t// When looping is enabled `routes.down` is always available\n\t\t\t// so we need a separate check for when we've reached the\n\t\t\t// end of a stack and should move horizontally\n\t\t\tif( routes.down && routes.right && config.loop && isLastVerticalSlide() ) {\n\t\t\t\troutes.down = false;\n\t\t\t}\n\n\t\t\tif( routes.down ) {\n\t\t\t\tnavigateDown({skipFragments});\n\t\t\t}\n\t\t\telse if( config.rtl ) {\n\t\t\t\tnavigateLeft({skipFragments});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnavigateRight({skipFragments});\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ----------------------------- EVENTS -------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t/**\n\t * Called by all event handlers that are based on user\n\t * input.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onUserInput( event ) {\n\n\t\tif( config.autoSlideStoppable ) {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t* Listener for post message events posted to this window.\n\t*/\n\tfunction onPostMessage( event ) {\n\n\t\tlet data = event.data;\n\n\t\t// Make sure we're dealing with JSON\n\t\tif( typeof data === 'string' && data.charAt( 0 ) === '{' && data.charAt( data.length - 1 ) === '}' ) {\n\t\t\tdata = JSON.parse( data );\n\n\t\t\t// Check if the requested method can be found\n\t\t\tif( data.method && typeof Reveal[data.method] === 'function' ) {\n\n\t\t\t\tif( POST_MESSAGE_METHOD_BLACKLIST.test( data.method ) === false ) {\n\n\t\t\t\t\tconst result = Reveal[data.method].apply( Reveal, data.args );\n\n\t\t\t\t\t// Dispatch a postMessage event with the returned value from\n\t\t\t\t\t// our method invocation for getter functions\n\t\t\t\t\tdispatchPostMessage( 'callback', { method: data.method, result: result } );\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.warn( 'reveal.js: \"'+ data.method +'\" is is blacklisted from the postMessage API' );\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Event listener for transition end on the current slide.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onTransitionEnd( event ) {\n\n\t\tif( transition === 'running' && /section/gi.test( event.target.nodeName ) ) {\n\t\t\ttransition = 'idle';\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'slidetransitionend',\n\t\t\t\tdata: { indexh, indexv, previousSlide, currentSlide }\n\t\t\t});\n\t\t}\n\n\t}\n\n\t/**\n\t * A global listener for all click events inside of the\n\t * .slides container.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onSlidesClicked( event ) {\n\n\t\tconst anchor = Util.closest( event.target, 'a[href^=\"#\"]' );\n\n\t\t// If a hash link is clicked, we find the target slide\n\t\t// and navigate to it. We previously relied on 'hashchange'\n\t\t// for links like these but that prevented media with\n\t\t// audio tracks from playing in mobile browsers since it\n\t\t// wasn't considered a direct interaction with the document.\n\t\tif( anchor ) {\n\t\t\tconst hash = anchor.getAttribute( 'href' );\n\t\t\tconst indices = location.getIndicesFromHash( hash );\n\n\t\t\tif( indices ) {\n\t\t\t\tReveal.slide( indices.h, indices.v, indices.f );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the window level 'resize' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onWindowResize( event ) {\n\n\t\tlayout();\n\t}\n\n\t/**\n\t * Handle for the window level 'visibilitychange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onPageVisibilityChange( event ) {\n\n\t\t// If, after clicking a link or similar and we're coming back,\n\t\t// focus the document.body to ensure we can use keyboard shortcuts\n\t\tif( document.hidden === false && document.activeElement !== document.body ) {\n\t\t\t// Not all elements support .blur() - SVGs among them.\n\t\t\tif( typeof document.activeElement.blur === 'function' ) {\n\t\t\t\tdocument.activeElement.blur();\n\t\t\t}\n\t\t\tdocument.body.focus();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the document level 'fullscreenchange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onFullscreenChange( event ) {\n\n\t\tlet element = document.fullscreenElement || document.webkitFullscreenElement;\n\t\tif( element === dom.wrapper ) {\n\t\t\tevent.stopImmediatePropagation();\n\n\t\t\t// Timeout to avoid layout shift in Safari\n\t\t\tsetTimeout( () => {\n\t\t\t\tReveal.layout();\n\t\t\t\tReveal.focus.focus(); // focus.focus :'(\n\t\t\t}, 1 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles clicks on links that are set to preview in the\n\t * iframe overlay.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPreviewLinkClicked( event ) {\n\n\t\tif( event.currentTarget && event.currentTarget.hasAttribute( 'href' ) ) {\n\t\t\tlet url = event.currentTarget.getAttribute( 'href' );\n\t\t\tif( url ) {\n\t\t\t\tshowPreview( url );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles click on the auto-sliding controls element.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onAutoSlidePlayerClick( event ) {\n\n\t\t// Replay\n\t\tif( isLastSlide() && config.loop === false ) {\n\t\t\tslide( 0, 0 );\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Resume\n\t\telse if( autoSlidePaused ) {\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Pause\n\t\telse {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ------------------------------- API --------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t// The public reveal.js API\n\tconst API = {\n\t\tVERSION,\n\n\t\tinitialize,\n\t\tconfigure,\n\t\tdestroy,\n\n\t\tsync,\n\t\tsyncSlide,\n\t\tsyncFragments: fragments.sync.bind( fragments ),\n\n\t\t// Navigation methods\n\t\tslide,\n\t\tleft: navigateLeft,\n\t\tright: navigateRight,\n\t\tup: navigateUp,\n\t\tdown: navigateDown,\n\t\tprev: navigatePrev,\n\t\tnext: navigateNext,\n\n\t\t// Navigation aliases\n\t\tnavigateLeft, navigateRight, navigateUp, navigateDown, navigatePrev, navigateNext,\n\n\t\t// Fragment methods\n\t\tnavigateFragment: fragments.goto.bind( fragments ),\n\t\tprevFragment: fragments.prev.bind( fragments ),\n\t\tnextFragment: fragments.next.bind( fragments ),\n\n\t\t// Event binding\n\t\ton,\n\t\toff,\n\n\t\t// Legacy event binding methods left in for backwards compatibility\n\t\taddEventListener: on,\n\t\tremoveEventListener: off,\n\n\t\t// Forces an update in slide layout\n\t\tlayout,\n\n\t\t// Randomizes the order of slides\n\t\tshuffle,\n\n\t\t// Returns an object with the available routes as booleans (left/right/top/bottom)\n\t\tavailableRoutes,\n\n\t\t// Returns an object with the available fragments as booleans (prev/next)\n\t\tavailableFragments: fragments.availableRoutes.bind( fragments ),\n\n\t\t// Toggles a help overlay with keyboard shortcuts\n\t\ttoggleHelp,\n\n\t\t// Toggles the overview mode on/off\n\t\ttoggleOverview: overview.toggle.bind( overview ),\n\n\t\t// Toggles the scroll view on/off\n\t\ttoggleScrollView: scrollView.toggle.bind( scrollView ),\n\n\t\t// Toggles the \"black screen\" mode on/off\n\t\ttogglePause,\n\n\t\t// Toggles the auto slide mode on/off\n\t\ttoggleAutoSlide,\n\n\t\t// Toggles visibility of the jump-to-slide UI\n\t\ttoggleJumpToSlide,\n\n\t\t// Slide navigation checks\n\t\tisFirstSlide,\n\t\tisLastSlide,\n\t\tisLastVerticalSlide,\n\t\tisVerticalSlide,\n\t\tisVerticalStack,\n\n\t\t// State checks\n\t\tisPaused,\n\t\tisAutoSliding,\n\t\tisSpeakerNotes: notes.isSpeakerNotesWindow.bind( notes ),\n\t\tisOverview: overview.isActive.bind( overview ),\n\t\tisFocused: focus.isFocused.bind( focus ),\n\n\t\tisScrollView: scrollView.isActive.bind( scrollView ),\n\t\tisPrintView: printView.isActive.bind( printView ),\n\n\t\t// Checks if reveal.js has been loaded and is ready for use\n\t\tisReady: () => ready,\n\n\t\t// Slide preloading\n\t\tloadSlide: slideContent.load.bind( slideContent ),\n\t\tunloadSlide: slideContent.unload.bind( slideContent ),\n\n\t\t// Media playback\n\t\tstartEmbeddedContent: () => slideContent.startEmbeddedContent( currentSlide ),\n\t\tstopEmbeddedContent: () => slideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } ),\n\n\t\t// Preview management\n\t\tshowPreview,\n\t\thidePreview: closeOverlay,\n\n\t\t// Adds or removes all internal event listeners\n\t\taddEventListeners,\n\t\tremoveEventListeners,\n\t\tdispatchEvent,\n\n\t\t// Facility for persisting and restoring the presentation state\n\t\tgetState,\n\t\tsetState,\n\n\t\t// Presentation progress on range of 0-1\n\t\tgetProgress,\n\n\t\t// Returns the indices of the current, or specified, slide\n\t\tgetIndices,\n\n\t\t// Returns an Array of key:value maps of the attributes of each\n\t\t// slide in the deck\n\t\tgetSlidesAttributes,\n\n\t\t// Returns the number of slides that we have passed\n\t\tgetSlidePastCount,\n\n\t\t// Returns the total number of slides\n\t\tgetTotalSlides,\n\n\t\t// Returns the slide element at the specified index\n\t\tgetSlide,\n\n\t\t// Returns the previous slide element, may be null\n\t\tgetPreviousSlide: () => previousSlide,\n\n\t\t// Returns the current slide element\n\t\tgetCurrentSlide: () => currentSlide,\n\n\t\t// Returns the slide background element at the specified index\n\t\tgetSlideBackground,\n\n\t\t// Returns the speaker notes string for a slide, or null\n\t\tgetSlideNotes: notes.getSlideNotes.bind( notes ),\n\n\t\t// Returns an Array of all slides\n\t\tgetSlides,\n\n\t\t// Returns an array with all horizontal/vertical slides in the deck\n\t\tgetHorizontalSlides,\n\t\tgetVerticalSlides,\n\n\t\t// Checks if the presentation contains two or more horizontal\n\t\t// and vertical slides\n\t\thasHorizontalSlides,\n\t\thasVerticalSlides,\n\n\t\t// Checks if the deck has navigated on either axis at least once\n\t\thasNavigatedHorizontally: () => navigationHistory.hasNavigatedHorizontally,\n\t\thasNavigatedVertically: () => navigationHistory.hasNavigatedVertically,\n\n\t\tshouldAutoAnimateBetween,\n\n\t\t// Adds/removes a custom key binding\n\t\taddKeyBinding: keyboard.addKeyBinding.bind( keyboard ),\n\t\tremoveKeyBinding: keyboard.removeKeyBinding.bind( keyboard ),\n\n\t\t// Programmatically triggers a keyboard event\n\t\ttriggerKey: keyboard.triggerKey.bind( keyboard ),\n\n\t\t// Registers a new shortcut to include in the help overlay\n\t\tregisterKeyboardShortcut: keyboard.registerKeyboardShortcut.bind( keyboard ),\n\n\t\tgetComputedSlideSize,\n\t\tsetCurrentScrollPage,\n\n\t\t// Returns the current scale of the presentation content\n\t\tgetScale: () => scale,\n\n\t\t// Returns the current configuration object\n\t\tgetConfig: () => config,\n\n\t\t// Helper method, retrieves query string as a key:value map\n\t\tgetQueryHash: Util.getQueryHash,\n\n\t\t// Returns the path to the current slide as represented in the URL\n\t\tgetSlidePath: location.getHash.bind( location ),\n\n\t\t// Returns reveal.js DOM elements\n\t\tgetRevealElement: () => revealElement,\n\t\tgetSlidesElement: () => dom.slides,\n\t\tgetViewportElement: () => dom.viewport,\n\t\tgetBackgroundsElement: () => backgrounds.element,\n\n\t\t// API for registering and retrieving plugins\n\t\tregisterPlugin: plugins.registerPlugin.bind( plugins ),\n\t\thasPlugin: plugins.hasPlugin.bind( plugins ),\n\t\tgetPlugin: plugins.getPlugin.bind( plugins ),\n\t\tgetPlugins: plugins.getRegisteredPlugins.bind( plugins )\n\n\t};\n\n\t// Our internal API which controllers have access to\n\tUtil.extend( Reveal, {\n\t\t...API,\n\n\t\t// Methods for announcing content to screen readers\n\t\tannounceStatus,\n\t\tgetStatusText,\n\n\t\t// Controllers\n\t\tfocus,\n\t\tscroll: scrollView,\n\t\tprogress,\n\t\tcontrols,\n\t\tlocation,\n\t\toverview,\n\t\tfragments,\n\t\tbackgrounds,\n\t\tslideContent,\n\t\tslideNumber,\n\n\t\tonUserInput,\n\t\tcloseOverlay,\n\t\tupdateSlidesVisibility,\n\t\tlayoutSlideContents,\n\t\ttransformSlides,\n\t\tcueAutoSlide,\n\t\tcancelAutoSlide\n\t} );\n\n\treturn API;\n\n};\n","import Deck, { VERSION } from './reveal.js'\n\n/**\n * Expose the Reveal class to the window. To create a\n * new instance:\n * let deck = new Reveal( document.querySelector( '.reveal' ), {\n * controls: false\n * } );\n * deck.initialize().then(() => {\n * // reveal.js is ready\n * });\n */\nlet Reveal = Deck;\n\n\n/**\n * The below is a thin shell that mimics the pre 4.0\n * reveal.js API and ensures backwards compatibility.\n * This API only allows for one Reveal instance per\n * page, whereas the new API above lets you run many\n * presentations on the same page.\n *\n * Reveal.initialize( { controls: false } ).then(() => {\n * // reveal.js is ready\n * });\n */\n\nlet enqueuedAPICalls = [];\n\nReveal.initialize = options => {\n\n\t// Create our singleton reveal.js instance\n\tObject.assign( Reveal, new Deck( document.querySelector( '.reveal' ), options ) );\n\n\t// Invoke any enqueued API calls\n\tenqueuedAPICalls.map( method => method( Reveal ) );\n\n\treturn Reveal.initialize();\n\n}\n\n/**\n * The pre 4.0 API let you add event listener before\n * initializing. We maintain the same behavior by\n * queuing up premature API calls and invoking all\n * of them when Reveal.initialize is called.\n */\n[ 'configure', 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin' ].forEach( method => {\n\tReveal[method] = ( ...args ) => {\n\t\tenqueuedAPICalls.push( deck => deck[method].call( null, ...args ) );\n\t}\n} );\n\nReveal.isReady = () => false;\n\nReveal.VERSION = VERSION;\n\nexport default Reveal;"],"names":["extend","a","b","i","queryAll","el","selector","Array","from","querySelectorAll","toggleClass","className","value","classList","add","remove","deserialize","match","parseFloat","transformElement","element","transform","style","matches","target","matchesMethod","matchesSelector","msMatchesSelector","call","closest","parentNode","enterFullscreen","requestMethod","document","documentElement","requestFullscreen","webkitRequestFullscreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","apply","createStyleSheet","tag","createElement","type","length","styleSheet","cssText","appendChild","createTextNode","head","getQueryHash","query","location","search","replace","split","shift","pop","unescape","fileExtensionToMimeMap","mp4","m4a","ogv","mpeg","webm","UA","navigator","userAgent","isMobile","test","platform","maxTouchPoints","isAndroid","e","t","slice","o","l","u","cancelAnimationFrame","requestAnimationFrame","s","filter","dirty","active","c","forEach","styleComputed","m","y","v","p","d","f","S","availableWidth","clientWidth","currentWidth","scrollWidth","previousFontSize","currentFontSize","Math","min","max","minSize","maxSize","whiteSpace","multiLine","n","getComputedStyle","getPropertyValue","display","preStyleTestCompleted","fontSize","dispatchEvent","CustomEvent","detail","oldValue","newValue","scaleFactor","h","w","observeMutations","observer","disconnect","originalStyle","z","F","MutationObserver","observe","g","subtree","childList","characterData","W","E","clearTimeout","setTimeout","x","observeWindowDelay","M","Object","defineProperty","set","concat","observeWindow","fitAll","C","assign","map","newbie","push","fit","unfreeze","freeze","unsubscribe","arguments","window","SlideContent","constructor","Reveal","this","startEmbeddedIframe","bind","shouldPreload","isScrollView","preload","getConfig","preloadIframes","hasAttribute","load","slide","options","tagName","setAttribute","getAttribute","removeAttribute","media","sources","source","background","slideBackgroundElement","backgroundContent","slideBackgroundContentElement","backgroundIframe","backgroundImage","backgroundVideo","backgroundVideoLoop","backgroundVideoMuted","trim","encodeRFC3986URI","url","encodeURI","charCodeAt","toString","toUpperCase","decodeURI","join","isSpeakerNotes","video","muted","sourceElement","getMimeTypeFromFile","filename","excludeIframes","iframe","width","height","maxHeight","maxWidth","backgroundIframeElement","querySelector","layout","scopeElement","fitty","unload","getSlideBackground","formatEmbeddedContent","_appendParamToIframeSource","sourceAttribute","sourceURL","param","getSlidesElement","src","indexOf","startEmbeddedContent","autoplay","autoPlayMedia","play","readyState","startEmbeddedMedia","promise","catch","controls","addEventListener","removeEventListener","event","isAttachedToDOM","isVisible","currentTime","contentWindow","postMessage","stopEmbeddedContent","unloadIframes","pause","SLIDES_SELECTOR","HORIZONTAL_SLIDES_SELECTOR","VERTICAL_SLIDES_SELECTOR","POST_MESSAGE_METHOD_BLACKLIST","FRAGMENT_STYLE_REGEX","SlideNumber","render","getRevealElement","configure","config","oldConfig","slideNumberDisplay","slideNumber","isPrintView","showSlideNumber","update","innerHTML","getSlideNumber","getCurrentSlide","format","getHorizontalSlides","horizontalOffset","dataset","visibility","getSlidePastCount","getTotalSlides","indices","getIndices","sep","isVerticalSlide","getHash","formatNumber","delimiter","isNaN","destroy","JumpToSlide","onInput","onBlur","onKeyDown","jumpInput","placeholder","show","indicesOnShow","focus","hide","jumpTimeout","jump","slideNumberFormat","getSlides","parseInt","getIndicesFromHash","oneBasedIndex","jumpAfter","delay","regex","RegExp","find","innerText","cancel","confirm","keyCode","stopImmediatePropagation","colorToRgb","color","hex3","r","charAt","hex6","rgb","rgba","Backgrounds","create","slideh","backgroundStack","createBackground","slidev","parallaxBackgroundImage","backgroundSize","parallaxBackgroundSize","backgroundRepeat","parallaxBackgroundRepeat","backgroundPosition","parallaxBackgroundPosition","container","contentElement","sync","data","backgroundColor","backgroundGradient","backgroundTransition","backgroundOpacity","dataPreload","opacity","contrastClass","getContrastClass","contrastColor","computedBackgroundStyle","bubbleSlideContrastClassToElement","classToBubble","contains","includeAll","currentSlide","currentBackground","horizontalPast","rtl","horizontalFuture","childNodes","backgroundh","backgroundv","indexv","previousBackground","slideContent","currentBackgroundContent","backgroundImageURL","previousBackgroundHash","currentBackgroundHash","updateParallax","backgroundWidth","backgroundHeight","horizontalSlides","verticalSlides","getVerticalSlides","horizontalOffsetMultiplier","slideWidth","offsetWidth","horizontalSlideCount","parallaxBackgroundHorizontal","verticalOffsetMultiplier","verticalOffset","slideHeight","offsetHeight","verticalSlideCount","parallaxBackgroundVertical","autoAnimateCounter","AutoAnimate","run","fromSlide","toSlide","reset","allSlides","toSlideIndex","fromSlideIndex","autoAnimateStyleSheet","animationOptions","getAutoAnimateOptions","autoAnimate","slideDirection","fromSlideIsHidden","css","getAutoAnimatableElements","elements","autoAnimateElements","to","autoAnimateUnmatched","defaultUnmatchedDuration","duration","defaultUnmatchedDelay","getUnmatchedAutoAnimateElements","unmatchedElement","unmatchedOptions","id","autoAnimateTarget","fontWeight","sheet","removeChild","elementOptions","easing","fromProps","getAutoAnimatableProperties","toProps","styles","translate","scale","presentationScale","getScale","delta","scaleX","scaleY","round","propertyName","toValue","fromValue","explicitValue","toStyleProperties","keys","inheritedOptions","autoAnimateEasing","autoAnimateDuration","autoAnimatedParent","autoAnimateDelay","direction","properties","bounds","measure","center","getBoundingClientRect","offsetLeft","offsetTop","computedStyles","autoAnimateStyles","property","pairs","autoAnimateMatcher","getAutoAnimatePairs","reserved","pair","index","textNodes","findAutoAnimateMatches","node","nodeName","textContent","getLocalBoundingBox","fromScope","toScope","serializer","fromMatches","toMatches","key","fromElement","primaryIndex","secondaryIndex","rootElement","children","reduce","result","containsAnimatedElements","ScrollView","activatedCallbacks","onScroll","activate","stateBeforeActivation","getState","slideHTMLBeforeActivation","horizontalBackgrounds","presentationBackground","viewportElement","viewportStyles","pageElements","pageContainer","previousSlide","createPageElement","isVertical","contentContainer","shouldAutoAnimateBetween","page","slideBackground","pageBackground","stickyContainer","insertBefore","horizontalSlide","isVerticalStack","verticalSlide","createProgressBar","stack","setState","callback","restoreScrollPosition","passive","deactivate","stateBeforeDeactivation","removeProgressBar","toggle","override","isActive","progressBar","progressBarInner","progressBarPlayhead","firstChild","handleDocumentMouseMove","progress","clientY","top","progressBarHeight","scrollTop","scrollHeight","handleDocumentMouseUp","draggingProgressBar","showProgressBar","preventDefault","syncPages","syncScrollPosition","slideSize","getComputedSlideSize","innerWidth","innerHeight","useCompactLayout","scrollLayout","viewportHeight","compactHeight","pageHeight","scrollTriggerHeight","setProperty","scrollSnapType","scrollSnap","slideTriggers","pages","pageElement","createPage","slideElement","stickyElement","backgroundElement","autoAnimatePages","activatePage","deactivatePage","createFragmentTriggersForPage","createAutoAnimateTriggersForPage","totalScrollTriggerCount","scrollTriggers","total","triggerStick","scrollSnapAlign","marginTop","removeProperty","scrollPadding","totalHeight","position","setTriggerRanges","scrollProgress","syncProgressBar","trigger","rangeStart","range","scrollTriggerSegmentSize","scrollTrigger","fragmentGroups","fragments","sort","autoAnimateElement","autoAnimatePage","indexh","viewportHeightFactor","playheadHeight","progressBarScrollableHeight","progressSegmentHeight","spacing","slideTrigger","progressBarSlide","scrollTriggerElements","triggerElement","scrollProgressMid","activePage","loaded","activateTrigger","deactivateTrigger","setProgressBarValue","getAllPages","hideProgressBarTimeout","prev","next","scrollToSlide","getScrollTriggerBySlide","storeScrollPosition","storeScrollPositionTimeout","sessionStorage","setItem","origin","pathname","scrollPosition","getItem","scrollOrigin","setCurrentScrollPage","backgrounds","sibling","getSlideByIndices","flatMap","getViewportElement","PrintView","slides","injectPageNumbers","pageWidth","floor","margin","Promise","body","layoutSlideContents","slideScrollHeights","left","contentHeight","numberOfPages","ceil","pdfMaxPagesPerSlide","pdfPageHeightOffset","showNotes","notes","getSlideNotes","notesSpacing","notesLayout","notesElement","bottom","numberElement","pdfSeparateFragments","previousFragmentStep","fragment","clonedPage","cloneNode","fragmentNumber","view","Fragments","disable","enable","availableRoutes","hiddenFragments","grouped","ordered","unordered","sorted","group","sortAll","changedFragments","shown","hidden","maxIndex","currentFragment","wasVisible","announceStatus","getStatusText","bubbles","goto","offset","lastVisibleFragment","fragmentInURL","writeURL","Overview","onSlideClicked","overview","cancelAutoSlide","getBackgroundsElement","overviewSlideWidth","overviewSlideHeight","updateSlidesVisibility","hslide","vslide","hbackground","vbackground","vmin","transformSlides","cueAutoSlide","Keyboard","shortcuts","bindings","onDocumentKeyDown","navigationMode","unbind","addKeyBinding","binding","description","removeKeyBinding","triggerKey","registerKeyboardShortcut","getShortcuts","getBindings","keyboardCondition","isFocused","autoSlideWasPaused","isAutoSliding","onUserInput","activeElementIsCE","activeElement","isContentEditable","activeElementIsInput","activeElementIsNotes","unusedModifier","shiftKey","altKey","ctrlKey","metaKey","resumeKeyCodes","keyboard","isPaused","useLinearMode","hasHorizontalSlides","hasVerticalSlides","triggered","action","skipFragments","right","undefined","up","Number","MAX_VALUE","down","includes","togglePause","embedded","autoSlideStoppable","toggleAutoSlide","jumpToSlide","toggleJumpToSlide","toggleHelp","closeOverlay","Location","MAX_REPLACE_STATE_FREQUENCY","writeURLTimeout","replaceStateTimestamp","onWindowHashChange","hash","name","bits","hashIndexBase","hashOneBasedIndex","getElementById","decodeURIComponent","error","readURL","currentIndices","newIndices","history","debouncedReplaceState","replaceState","Date","now","replaceStateTimeout","encodeURIComponent","Controls","onNavigateLeftClicked","onNavigateRightClicked","onNavigateUpClicked","onNavigateDownClicked","onNavigatePrevClicked","onNavigateNextClicked","onEnterFullscreen","revealElement","controlsLeft","controlsRight","controlsUp","controlsDown","controlsPrev","controlsNext","controlsFullscreen","controlsRightArrow","controlsLeftArrow","controlsDownArrow","controlsLayout","controlsBackArrows","pointerEvents","eventName","routes","fragmentsRoutes","controlsTutorial","hasNavigatedVertically","hasNavigatedHorizontally","viewport","parentElement","Progress","onProgressClicked","bar","getProgress","getMaxWidth","slidesTotal","slideIndex","clientX","targetIndices","Pointer","lastMouseWheelStep","cursorHidden","cursorInactiveTimeout","onDocumentCursorActive","onDocumentMouseScroll","mouseWheel","hideInactiveCursor","showCursor","cursor","hideCursor","hideCursorTime","wheelDelta","loadScript","script","async","defer","onload","onreadystatechange","onerror","err","Error","lastChild","Plugins","reveal","state","registeredPlugins","asyncDependencies","plugins","dependencies","registerPlugin","resolve","scripts","scriptsToLoad","condition","scriptLoadedCallback","initPlugins","then","console","warn","pluginValues","values","pluginsToInitialize","loadAsync","initNextPlugin","afterPlugInitialized","plugin","init","hasPlugin","getPlugin","getRegisteredPlugins","Touch","touchStartX","touchStartY","touchStartCount","touchCaptured","onPointerDown","onPointerMove","onPointerUp","onTouchStart","onTouchMove","onTouchEnd","msPointerEnabled","isSwipePrevented","touches","currentX","currentY","includeFragments","deltaX","deltaY","abs","pointerType","MSPOINTER_TYPE_TOUCH","STATE_FOCUS","STATE_BLUR","Focus","onRevealPointerDown","onDocumentPointerDown","blur","Notes","updateVisibility","hasNotes","isSpeakerNotesWindow","notesElements","Playback","progressCheck","diameter","diameter2","thickness","playing","progressOffset","canvas","context","getContext","setPlaying","wasPlaying","animate","progressBefore","radius","iconSize","endAngle","PI","startAngle","save","clearRect","beginPath","arc","fillStyle","fill","lineWidth","strokeStyle","stroke","fillRect","moveTo","lineTo","restore","on","listener","off","defaultConfig","minScale","maxScale","respondToHashChanges","disableLayout","touch","loop","shuffle","help","showHiddenSlides","autoSlide","autoSlideMethod","defaultTiming","previewLinks","postMessageEvents","focusBodyOnPageVisibilityChange","transition","transitionSpeed","scrollActivationWidth","POSITIVE_INFINITY","viewDistance","mobileViewDistance","sortFragmentsOnSync","VERSION","Deck","autoSlidePlayer","ready","navigationHistory","slidesTransform","dom","autoSlideTimeout","autoSlideStartTime","autoSlidePaused","scrollView","printView","pointer","start","Util","wrapper","parent","childElementCount","Device","pauseOverlay","createSingletonNode","tagname","classname","nodes","testNode","statusElement","overflow","clip","createStatusElement","setupDOM","onPostMessage","setInterval","scrollLeft","onFullscreenChange","activatePrintView","activateScrollView","removeEventListeners","activateInitialView","text","nodeType","isAriaHidden","isDisplayHidden","child","isReady","numberOfSlides","resume","enablePreviewLinks","disablePreviewLinks","onAutoSlidePlayerClick","addEventListeners","onWindowResize","onSlidesClicked","onTransitionEnd","onPageVisibilityChange","useCapture","transforms","createEvent","initEvent","dispatchPostMessage","dispatchSlideChanged","self","message","namespace","JSON","stringify","onPreviewLinkClicked","showPreview","overlay","showHelp","html","viewportWidth","size","oldScale","presentationWidth","presentationHeight","zoom","len","checkResponsiveScrollView","remainingHeight","getRemainingHeight","newHeight","oldHeight","nw","naturalWidth","videoWidth","nh","naturalHeight","videoHeight","es","setPreviousVerticalIndex","getPreviousVerticalIndex","attributeName","isLastVerticalSlide","nextElementSibling","isFirstSlide","isLastSlide","wasPaused","defaultPrevented","stateBefore","indexhBefore","indexvBefore","updateSlides","slideChanged","currentHorizontalSlide","currentVerticalSlides","autoAnimateTransition","stateLoop","j","splice","beforeSlide","random","slidesLength","printMode","loopedForwards","loopedBackwards","reverse","showFragmentsIn","hideFragmentsIn","wasPresent","slideState","distanceX","distanceY","horizontalSlidesLength","verticalSlidesLength","oy","fragmentRoutes","pastCount","mainLoop","getSlide","indexf","paused","fragmentAutoSlide","parentAutoSlide","slideAutoSlide","playbackRate","navigateNext","pauseAutoSlide","resumeAutoSlide","navigateLeft","navigateRight","navigateUp","navigateDown","navigatePrev","parse","method","args","anchor","fullscreenElement","webkitFullscreenElement","currentTarget","API","initialize","initOptions","setViewport","syncSlide","syncFragments","navigateFragment","prevFragment","nextFragment","availableFragments","toggleOverview","toggleScrollView","isOverview","loadSlide","unloadSlide","hidePreview","pausedFlag","overviewFlag","totalCount","allFragments","fragmentWeight","getSlidesAttributes","attributes","attribute","getPreviousSlide","getSlidePath","getPlugins","scroll","enqueuedAPICalls","deck"],"mappings":"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","x_google_ignoreList":[2]}
\ No newline at end of file
diff --git a/js/controllers/controls.js b/js/controllers/controls.js
index 734eb17a7c4..3d150dabd03 100644
--- a/js/controllers/controls.js
+++ b/js/controllers/controls.js
@@ -1,4 +1,4 @@
-import { queryAll } from '../utils/util.js'
+import { queryAll, enterFullscreen } from '../utils/util.js'
import { isAndroid } from '../utils/device.js'
/**
@@ -12,6 +12,7 @@ import { isAndroid } from '../utils/device.js'
* - .navigate-left
* - .navigate-next
* - .navigate-prev
+ * - .enter-fullscreen
*/
export default class Controls {
@@ -25,6 +26,7 @@ export default class Controls {
this.onNavigateDownClicked = this.onNavigateDownClicked.bind( this );
this.onNavigatePrevClicked = this.onNavigatePrevClicked.bind( this );
this.onNavigateNextClicked = this.onNavigateNextClicked.bind( this );
+ this.onEnterFullscreen = this.onEnterFullscreen.bind( this );
}
@@ -50,6 +52,7 @@ export default class Controls {
this.controlsDown = queryAll( revealElement, '.navigate-down' );
this.controlsPrev = queryAll( revealElement, '.navigate-prev' );
this.controlsNext = queryAll( revealElement, '.navigate-next' );
+ this.controlsFullscreen = queryAll( revealElement, '.enter-fullscreen' );
// The left, right and down arrows in the standard reveal.js controls
this.controlsRightArrow = this.element.querySelector( '.navigate-right' );
@@ -89,6 +92,7 @@ export default class Controls {
this.controlsDown.forEach( el => el.addEventListener( eventName, this.onNavigateDownClicked, false ) );
this.controlsPrev.forEach( el => el.addEventListener( eventName, this.onNavigatePrevClicked, false ) );
this.controlsNext.forEach( el => el.addEventListener( eventName, this.onNavigateNextClicked, false ) );
+ this.controlsFullscreen.forEach( el => el.addEventListener( eventName, this.onEnterFullscreen, false ) );
} );
}
@@ -102,6 +106,7 @@ export default class Controls {
this.controlsDown.forEach( el => el.removeEventListener( eventName, this.onNavigateDownClicked, false ) );
this.controlsPrev.forEach( el => el.removeEventListener( eventName, this.onNavigatePrevClicked, false ) );
this.controlsNext.forEach( el => el.removeEventListener( eventName, this.onNavigateNextClicked, false ) );
+ this.controlsFullscreen.forEach( el => el.removeEventListener( eventName, this.onEnterFullscreen, false ) );
} );
}
@@ -262,5 +267,13 @@ export default class Controls {
}
+ onEnterFullscreen( event ) {
+
+ const config = this.Reveal.getConfig();
+ const viewport = this.Reveal.getViewportElement();
+
+ enterFullscreen( config.embedded ? viewport : viewport.parentElement );
+
+ }
}
\ No newline at end of file