mirror of
https://github.com/hakimel/reveal.js.git
synced 2025-08-28 08:50:24 +02:00
34 lines
110 KiB
JavaScript
34 lines
110 KiB
JavaScript
(function(z,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(z=typeof globalThis<"u"?globalThis:z||self,z.Reveal=b())})(this,function(){"use strict";var Ki=Object.defineProperty;var _i=(z,b,te)=>b in z?Ki(z,b,{enumerable:!0,configurable:!0,writable:!0,value:te}):z[b]=te;var Ht=(z,b,te)=>_i(z,typeof b!="symbol"?b+"":b,te);const z=(h,e)=>{for(let i in e)h[i]=e[i];return h},b=(h,e)=>Array.from(h.querySelectorAll(e)),te=(h,e,i)=>{i?h.classList.add(e):h.classList.remove(e)},he=h=>{if(typeof h=="string"){if(h==="null")return null;if(h==="true")return!0;if(h==="false")return!1;if(h.match(/^-?[\d\.]+$/))return parseFloat(h)}return h},ie=(h,e)=>{h.style.transform=e},ye=(h,e)=>{let i=h.matches||h.matchesSelector||h.msMatchesSelector;return!!(i&&i.call(h,e))},V=(h,e)=>{if(typeof h.closest=="function")return h.closest(e);for(;h;){if(ye(h,e))return h;h=h.parentNode}return null},Ke=h=>{h=h||document.documentElement;let e=h.requestFullscreen||h.webkitRequestFullscreen||h.webkitRequestFullScreen||h.mozRequestFullScreen||h.msRequestFullscreen;e&&e.apply(h)},Dt=(h,e,i,t="")=>{let s=h.querySelectorAll("."+i);for(let r=0;r<s.length;r++){let o=s[r];if(o.parentNode===h)return o}let n=document.createElement(e);return n.className=i,n.innerHTML=t,h.appendChild(n),n},Te=h=>{let e=document.createElement("style");return e.type="text/css",h&&h.length>0&&(e.styleSheet?e.styleSheet.cssText=h:e.appendChild(document.createTextNode(h))),document.head.appendChild(e),e},_e=()=>{let h={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,e=>{h[e.split("=").shift()]=e.split("=").pop()});for(let e in h){let i=h[e];h[e]=he(unescape(i))}return typeof h.dependencies<"u"&&delete h.dependencies,h},Ft=(h,e=0)=>{if(h){let i,t=h.style.height;return h.style.height="0px",h.parentNode.style.height="auto",i=e-h.parentNode.offsetHeight,h.style.height=t+"px",h.parentNode.style.removeProperty("height"),i}return e},zt={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},Vt=(h="")=>zt[h.split(".").pop()],Ot=(h="")=>encodeURI(h).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),$e=navigator.userAgent,ue=/(iphone|ipod|ipad|android)/gi.test($e)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,Xe=/android/gi.test($e);var qt=function(h){if(h){var e=function(f){return[].slice.call(f)},i=0,t=1,s=2,n=3,r=[],o=null,c="requestAnimationFrame"in h?function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};h.cancelAnimationFrame(o);var S=function(){return g(r.filter(function(x){return x.dirty&&x.active}))};if(f.sync)return S();o=h.requestAnimationFrame(S)}:function(){},u=function(f){return function(S){r.forEach(function(x){return x.dirty=f}),c(S)}},g=function(f){f.filter(function(x){return!x.styleComputed}).forEach(function(x){x.styleComputed=l(x)}),f.filter(R).forEach(M);var S=f.filter(w);S.forEach(m),S.forEach(function(x){M(x),p(x)}),S.forEach(q)},p=function(f){return f.dirty=i},m=function(f){f.availableWidth=f.element.parentNode.clientWidth,f.currentWidth=f.element.scrollWidth,f.previousFontSize=f.currentFontSize,f.currentFontSize=Math.min(Math.max(f.minSize,f.availableWidth/f.currentWidth*f.previousFontSize),f.maxSize),f.whiteSpace=f.multiLine&&f.currentFontSize===f.minSize?"normal":"nowrap"},w=function(f){return f.dirty!==s||f.dirty===s&&f.element.parentNode.clientWidth!==f.availableWidth},l=function(f){var S=h.getComputedStyle(f.element,null);return f.currentFontSize=parseFloat(S.getPropertyValue("font-size")),f.display=S.getPropertyValue("display"),f.whiteSpace=S.getPropertyValue("white-space"),!0},R=function(f){var S=!1;return!f.preStyleTestCompleted&&(/inline-/.test(f.display)||(S=!0,f.display="inline-block"),f.whiteSpace!=="nowrap"&&(S=!0,f.whiteSpace="nowrap"),f.preStyleTestCompleted=!0,S)},M=function(f){f.element.style.whiteSpace=f.whiteSpace,f.element.style.display=f.display,f.element.style.fontSize=f.currentFontSize+"px"},q=function(f){f.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:f.previousFontSize,newValue:f.currentFontSize,scaleFactor:f.currentFontSize/f.previousFontSize}}))},U=function(f,S){return function(x){f.dirty=S,f.active&&c(x)}},le=function(f){return function(){r=r.filter(function(S){return S.element!==f.element}),f.observeMutations&&f.observer.disconnect(),f.element.style.whiteSpace=f.originalStyle.whiteSpace,f.element.style.display=f.originalStyle.display,f.element.style.fontSize=f.originalStyle.fontSize}},O=function(f){return function(){f.active||(f.active=!0,c())}},k=function(f){return function(){return f.active=!1}},B=function(f){f.observeMutations&&(f.observer=new MutationObserver(U(f,t)),f.observer.observe(f.element,f.observeMutations))},W={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in h&&{subtree:!0,childList:!0,characterData:!0}},j=null,L=function(){h.clearTimeout(j),j=h.setTimeout(u(s),C.observeWindowDelay)},A=["resize","orientationchange"];return Object.defineProperty(C,"observeWindow",{set:function(f){var S="".concat(f?"add":"remove","EventListener");A.forEach(function(x){h[S](x,L)})}}),C.observeWindow=!0,C.observeWindowDelay=100,C.fitAll=u(n),C}function F(f,S){var x=Object.assign({},W,S),Y=f.map(function(K){var re=Object.assign({},x,{element:K,active:!0});return function(D){D.originalStyle={whiteSpace:D.element.style.whiteSpace,display:D.element.style.display,fontSize:D.element.style.fontSize},B(D),D.newbie=!0,D.dirty=!0,r.push(D)}(re),{element:K,fit:U(re,n),unfreeze:O(re),freeze:k(re),unsubscribe:le(re)}});return c(),Y}function C(f){var S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof f=="string"?F(e(document.querySelectorAll(f)),S):F([f],S)[0]}}(typeof window>"u"?null:window);class Ut{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}shouldPreload(e){if(this.Reveal.isScrollView())return!0;let i=this.Reveal.getConfig().preloadIframes;return typeof i!="boolean"&&(i=e.hasAttribute("data-preload")),i}load(e,i={}){e.style.display=this.Reveal.getConfig().display,b(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(s=>{(s.tagName!=="IFRAME"||this.shouldPreload(s))&&(s.setAttribute("src",s.getAttribute("data-src")),s.setAttribute("data-lazy-loaded",""),s.removeAttribute("data-src"))}),b(e,"video, audio").forEach(s=>{let n=0;b(s,"source[data-src]").forEach(r=>{r.setAttribute("src",r.getAttribute("data-src")),r.removeAttribute("data-src"),r.setAttribute("data-lazy-loaded",""),n+=1}),ue&&s.tagName==="VIDEO"&&s.setAttribute("playsinline",""),n>0&&s.load()});let t=e.slideBackgroundElement;if(t){t.style.display="block";let s=e.slideBackgroundContentElement,n=e.getAttribute("data-background-iframe");if(t.hasAttribute("data-loaded")===!1){t.setAttribute("data-loaded","true");let o=e.getAttribute("data-background-image"),c=e.getAttribute("data-background-video"),u=e.hasAttribute("data-background-video-loop"),g=e.hasAttribute("data-background-video-muted");if(o)/^data:/.test(o.trim())?s.style.backgroundImage=`url(${o.trim()})`:s.style.backgroundImage=o.split(",").map(p=>{let m=decodeURI(p.trim());return`url(${Ot(m)})`}).join(",");else if(c){let p=document.createElement("video");u&&p.setAttribute("loop",""),(g||this.Reveal.isSpeakerNotes())&&(p.muted=!0),ue&&(p.muted=!0,p.setAttribute("playsinline","")),c.split(",").forEach(m=>{const w=document.createElement("source");w.setAttribute("src",m);let l=Vt(m);l&&w.setAttribute("type",l),p.appendChild(w)}),s.appendChild(p)}else if(n&&i.excludeIframes!==!0){let p=document.createElement("iframe");p.setAttribute("allowfullscreen",""),p.setAttribute("mozallowfullscreen",""),p.setAttribute("webkitallowfullscreen",""),p.setAttribute("allow","autoplay"),p.setAttribute("data-src",n),p.style.width="100%",p.style.height="100%",p.style.maxHeight="100%",p.style.maxWidth="100%",s.appendChild(p)}}let r=s.querySelector("iframe[data-src]");r&&this.shouldPreload(t)&&!/autoplay=(1|true|yes)/gi.test(n)&&r.getAttribute("src")!==n&&r.setAttribute("src",n)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(".r-fit-text")).forEach(i=>{qt(i,{minSize:24,maxSize:this.Reveal.getConfig().height*.8,observeMutations:!1,observeWindow:!1})})}unload(e){e.style.display="none";let i=this.Reveal.getSlideBackground(e);i&&(i.style.display="none",b(i,"iframe[src]").forEach(t=>{t.removeAttribute("src")})),b(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach(t=>{t.setAttribute("data-src",t.getAttribute("src")),t.removeAttribute("src")}),b(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach(t=>{t.setAttribute("data-src",t.getAttribute("src")),t.removeAttribute("src")})}formatEmbeddedContent(){let e=(i,t,s)=>{b(this.Reveal.getSlidesElement(),"iframe["+i+'*="'+t+'"]').forEach(n=>{let r=n.getAttribute(i);r&&r.indexOf(s)===-1&&n.setAttribute(i,r+(/\?/.test(r)?"&":"?")+s)})};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(e){if(e){const i=this.Reveal.isSpeakerNotes();b(e,'img[src$=".gif"]').forEach(t=>{t.setAttribute("src",t.getAttribute("src"))}),b(e,"video, audio").forEach(t=>{if(V(t,".fragment")&&!V(t,".fragment.visible"))return;let s=this.Reveal.getConfig().autoPlayMedia;if(typeof s!="boolean"&&(s=t.hasAttribute("data-autoplay")||!!V(t,".slide-background")),s&&typeof t.play=="function"){if(i&&!t.muted)return;if(t.readyState>1)this.startEmbeddedMedia({target:t});else if(ue){let n=t.play();n&&typeof n.catch=="function"&&t.controls===!1&&n.catch(()=>{t.controls=!0,t.addEventListener("play",()=>{t.controls=!1})})}else t.removeEventListener("loadeddata",this.startEmbeddedMedia),t.addEventListener("loadeddata",this.startEmbeddedMedia)}}),i||(b(e,"iframe[src]").forEach(t=>{V(t,".fragment")&&!V(t,".fragment.visible")||this.startEmbeddedIframe({target:t})}),b(e,"iframe[data-src]").forEach(t=>{V(t,".fragment")&&!V(t,".fragment.visible")||t.getAttribute("src")!==t.getAttribute("data-src")&&(t.removeEventListener("load",this.startEmbeddedIframe),t.addEventListener("load",this.startEmbeddedIframe),t.setAttribute("src",t.getAttribute("data-src")))}))}}startEmbeddedMedia(e){let i=!!V(e.target,"html"),t=!!V(e.target,".present");i&&t&&(e.target.paused||e.target.ended)&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let i=e.target;if(i&&i.contentWindow){let t=!!V(e.target,"html"),s=!!V(e.target,".present");if(t&&s){let n=this.Reveal.getConfig().autoPlayMedia;typeof n!="boolean"&&(n=i.hasAttribute("data-autoplay")||!!V(i,".slide-background")),/youtube\.com\/embed\//.test(i.getAttribute("src"))&&n?i.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(i.getAttribute("src"))&&n?i.contentWindow.postMessage('{"method":"play"}',"*"):i.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e,i={}){i=z({unloadIframes:!0},i),e&&e.parentNode&&(b(e,"video, audio").forEach(t=>{!t.hasAttribute("data-ignore")&&typeof t.pause=="function"&&(t.setAttribute("data-paused-by-reveal",""),t.pause())}),b(e,"iframe").forEach(t=>{t.contentWindow&&t.contentWindow.postMessage("slide:stop","*"),t.removeEventListener("load",this.startEmbeddedIframe)}),b(e,'iframe[src*="youtube.com/embed/"]').forEach(t=>{!t.hasAttribute("data-ignore")&&t.contentWindow&&typeof t.contentWindow.postMessage=="function"&&t.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),b(e,'iframe[src*="player.vimeo.com/"]').forEach(t=>{!t.hasAttribute("data-ignore")&&t.contentWindow&&typeof t.contentWindow.postMessage=="function"&&t.contentWindow.postMessage('{"method":"pause"}',"*")}),i.unloadIframes===!0&&b(e,"iframe[data-src]").forEach(t=>{t.setAttribute("src","about:blank"),t.removeAttribute("src")}))}}const oe=".slides section",se=".slides>section",Ye=".slides>section.present>section",Wt=".backgrounds>.slide-background",jt=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,Kt="h.v",_t="h/v",Ie="c",Ge="c/t";class $t{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(e,i){let t="none";e.slideNumber&&!this.Reveal.isPrintView()&&(e.showSlideNumber==="all"||e.showSlideNumber==="speaker"&&this.Reveal.isSpeakerNotes())&&(t="block"),this.element.style.display=t}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(e=this.Reveal.getCurrentSlide()){let i=this.Reveal.getConfig(),t,s=Kt;if(typeof i.slideNumber=="function")t=i.slideNumber(e);else{typeof i.slideNumber=="string"&&(s=i.slideNumber),!/c/.test(s)&&this.Reveal.getHorizontalSlides().length===1&&(s=Ie);let r=e&&e.dataset.visibility==="uncounted"?0:1;switch(t=[],s){case Ie:t.push(this.Reveal.getSlidePastCount(e)+r);break;case Ge:t.push(this.Reveal.getSlidePastCount(e)+r,"/",this.Reveal.getTotalSlides());break;default:let o=this.Reveal.getIndices(e);t.push(o.h+r);let c=s===_t?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(c,o.v+1)}}let n="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],n)}formatNumber(e,i,t,s="#"+this.Reveal.location.getHash()){return typeof t=="number"&&!isNaN(t)?`<a href="${s}">
|
|
<span class="slide-number-a">${e}</span>
|
|
<span class="slide-number-delimiter">${i}</span>
|
|
<span class="slide-number-b">${t}</span>
|
|
</a>`:`<a href="${s}">
|
|
<span class="slide-number-a">${e}</span>
|
|
</a>`}destroy(){this.element.remove()}}class Xt{constructor(e){this.Reveal=e,this.onInput=this.onInput.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}render(){this.element=document.createElement("div"),this.element.className="jump-to-slide",this.jumpInput=document.createElement("input"),this.jumpInput.type="text",this.jumpInput.className="jump-to-slide-input",this.jumpInput.placeholder="Jump to slide",this.jumpInput.addEventListener("input",this.onInput),this.jumpInput.addEventListener("keydown",this.onKeyDown),this.jumpInput.addEventListener("blur",this.onBlur),this.element.appendChild(this.jumpInput)}show(){this.indicesOnShow=this.Reveal.getIndices(),this.Reveal.getRevealElement().appendChild(this.element),this.jumpInput.focus()}hide(){this.isVisible()&&(this.element.remove(),this.jumpInput.value="",clearTimeout(this.jumpTimeout),delete this.jumpTimeout)}isVisible(){return!!this.element.parentNode}jump(){clearTimeout(this.jumpTimeout),delete this.jumpTimeout;let e=this.jumpInput.value.trim(""),i;if(/^\d+$/.test(e)){const t=this.Reveal.getConfig().slideNumber;if(t===Ie||t===Ge){const s=this.Reveal.getSlides()[parseInt(e,10)-1];s&&(i=this.Reveal.getIndices(s))}}return i||(/^\d+\.\d+$/.test(e)&&(e=e.replace(".","/")),i=this.Reveal.location.getIndicesFromHash(e,{oneBasedIndex:!0})),!i&&/\S+/i.test(e)&&e.length>1&&(i=this.search(e)),i&&e!==""?(this.Reveal.slide(i.h,i.v,i.f),!0):(this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),!1)}jumpAfter(e){clearTimeout(this.jumpTimeout),this.jumpTimeout=setTimeout(()=>this.jump(),e)}search(e){const i=new RegExp("\\b"+e.trim()+"\\b","i"),t=this.Reveal.getSlides().find(s=>i.test(s.innerText));return t?this.Reveal.getIndices(t):null}cancel(){this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),this.hide()}confirm(){this.jump(),this.hide()}destroy(){this.jumpInput.removeEventListener("input",this.onInput),this.jumpInput.removeEventListener("keydown",this.onKeyDown),this.jumpInput.removeEventListener("blur",this.onBlur),this.element.remove()}onKeyDown(e){e.keyCode===13?this.confirm():e.keyCode===27&&(this.cancel(),e.stopImmediatePropagation())}onInput(e){this.jumpAfter(200)}onBlur(){setTimeout(()=>this.hide(),1)}}const Me=h=>{let e=h.match(/^#([0-9a-f]{3})$/i);if(e&&e[1])return e=e[1],{r:parseInt(e.charAt(0),16)*17,g:parseInt(e.charAt(1),16)*17,b:parseInt(e.charAt(2),16)*17};let i=h.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.slice(0,2),16),g:parseInt(i.slice(2,4),16),b:parseInt(i.slice(4,6),16)};let t=h.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(t)return{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)};let s=h.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return s?{r:parseInt(s[1],10),g:parseInt(s[2],10),b:parseInt(s[3],10),a:parseFloat(s[4])}:null},Yt=h=>(typeof h=="string"&&(h=Me(h)),h?(h.r*299+h.g*587+h.b*114)/1e3:null);class Gt{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}create(){this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach(e=>{let i=this.createBackground(e,this.element);b(e,"section").forEach(t=>{this.createBackground(t,i),i.classList.add("stack")})}),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout(()=>{this.Reveal.getRevealElement().classList.add("has-parallax-background")},1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}createBackground(e,i){let t=document.createElement("div");t.className="slide-background "+e.className.replace(/present|past|future/,"");let s=document.createElement("div");return s.className="slide-background-content",t.appendChild(s),i.appendChild(t),e.slideBackgroundElement=t,e.slideBackgroundContentElement=s,this.sync(e),t}sync(e){const i=e.slideBackgroundElement,t=e.slideBackgroundContentElement,s={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundGradient:e.getAttribute("data-background-gradient"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")},n=e.hasAttribute("data-preload");e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),i.removeAttribute("data-loaded"),i.removeAttribute("data-background-hash"),i.removeAttribute("data-background-size"),i.removeAttribute("data-background-transition"),i.style.backgroundColor="",t.style.backgroundSize="",t.style.backgroundRepeat="",t.style.backgroundPosition="",t.style.backgroundImage="",t.style.opacity="",t.innerHTML="",s.background&&(/^(http|file|\/\/)/gi.test(s.background)||/\.(svg|png|jpg|jpeg|gif|bmp|webp)([?#\s]|$)/gi.test(s.background)?e.setAttribute("data-background-image",s.background):i.style.background=s.background),(s.background||s.backgroundColor||s.backgroundGradient||s.backgroundImage||s.backgroundVideo||s.backgroundIframe)&&i.setAttribute("data-background-hash",s.background+s.backgroundSize+s.backgroundImage+s.backgroundVideo+s.backgroundIframe+s.backgroundColor+s.backgroundGradient+s.backgroundRepeat+s.backgroundPosition+s.backgroundTransition+s.backgroundOpacity),s.backgroundSize&&i.setAttribute("data-background-size",s.backgroundSize),s.backgroundColor&&(i.style.backgroundColor=s.backgroundColor),s.backgroundGradient&&(i.style.backgroundImage=s.backgroundGradient),s.backgroundTransition&&i.setAttribute("data-background-transition",s.backgroundTransition),n&&i.setAttribute("data-preload",""),s.backgroundSize&&(t.style.backgroundSize=s.backgroundSize),s.backgroundRepeat&&(t.style.backgroundRepeat=s.backgroundRepeat),s.backgroundPosition&&(t.style.backgroundPosition=s.backgroundPosition),s.backgroundOpacity&&(t.style.opacity=s.backgroundOpacity);const r=this.getContrastClass(e);typeof r=="string"&&e.classList.add(r)}getContrastClass(e){const i=e.slideBackgroundElement;let t=e.getAttribute("data-background-color");if(!t||!Me(t)){let s=window.getComputedStyle(i);s&&s.backgroundColor&&(t=s.backgroundColor)}if(t){const s=Me(t);if(s&&s.a!==0)return Yt(t)<128?"has-dark-background":"has-light-background"}return null}bubbleSlideContrastClassToElement(e,i){["has-light-background","has-dark-background"].forEach(t=>{e.classList.contains(t)?i.classList.add(t):i.classList.remove(t)},this)}update(e=!1){let i=this.Reveal.getConfig(),t=this.Reveal.getCurrentSlide(),s=this.Reveal.getIndices(),n=null,r=i.rtl?"future":"past",o=i.rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((u,g)=>{u.classList.remove("past","present","future"),g<s.h?u.classList.add(r):g>s.h?u.classList.add(o):(u.classList.add("present"),n=u),(e||g===s.h)&&b(u,".slide-background").forEach((p,m)=>{p.classList.remove("past","present","future");const w=typeof s.v=="number"?s.v:0;m<w?p.classList.add("past"):m>w?p.classList.add("future"):(p.classList.add("present"),g===s.h&&(n=p))})}),this.previousBackground&&!this.previousBackground.closest("body")&&(this.previousBackground=null),n&&this.previousBackground){let u=this.previousBackground.getAttribute("data-background-hash"),g=n.getAttribute("data-background-hash");if(g&&g===u&&n!==this.previousBackground){this.element.classList.add("no-transition");const p=n.querySelector("video"),m=this.previousBackground.querySelector("video");if(p&&m){const w=p.parentNode;m.parentNode.appendChild(p),w.appendChild(m)}}}const c=n!==this.previousBackground;if(c&&this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),c&&n){this.Reveal.slideContent.startEmbeddedContent(n);let u=n.querySelector(".slide-background-content");if(u){let g=u.style.backgroundImage||"";/\.gif/i.test(g)&&(u.style.backgroundImage="",window.getComputedStyle(u).opacity,u.style.backgroundImage=g)}this.previousBackground=n}t&&this.bubbleSlideContrastClassToElement(t,this.Reveal.getRevealElement()),setTimeout(()=>{this.element.classList.remove("no-transition")},10)}updateParallax(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let i=this.Reveal.getHorizontalSlides(),t=this.Reveal.getVerticalSlides(),s=this.element.style.backgroundSize.split(" "),n,r;s.length===1?n=r=parseInt(s[0],10):(n=parseInt(s[0],10),r=parseInt(s[1],10));let o=this.element.offsetWidth,c=i.length,u,g;typeof this.Reveal.getConfig().parallaxBackgroundHorizontal=="number"?u=this.Reveal.getConfig().parallaxBackgroundHorizontal:u=c>1?(n-o)/(c-1):0,g=u*e.h*-1;let p=this.element.offsetHeight,m=t.length,w,l;typeof this.Reveal.getConfig().parallaxBackgroundVertical=="number"?w=this.Reveal.getConfig().parallaxBackgroundVertical:w=(r-p)/(m-1),l=m>0?w*e.v:0,this.element.style.backgroundPosition=g+"px "+-l+"px"}}destroy(){this.element.remove()}}let Je=0;class Jt{constructor(e){this.Reveal=e}run(e,i){this.reset();let t=this.Reveal.getSlides(),s=t.indexOf(i),n=t.indexOf(e);if(e&&i&&e.hasAttribute("data-auto-animate")&&i.hasAttribute("data-auto-animate")&&e.getAttribute("data-auto-animate-id")===i.getAttribute("data-auto-animate-id")&&!(s>n?i:e).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||Te();let r=this.getAutoAnimateOptions(i);e.dataset.autoAnimate="pending",i.dataset.autoAnimate="pending",r.slideDirection=s>n?"forward":"backward";let o=e.style.display==="none";o&&(e.style.display=this.Reveal.getConfig().display);let c=this.getAutoAnimatableElements(e,i).map(u=>this.autoAnimateElements(u.from,u.to,u.options||{},r,Je++));if(o&&(e.style.display="none"),i.dataset.autoAnimateUnmatched!=="false"&&this.Reveal.getConfig().autoAnimateUnmatched===!0){let u=r.duration*.8,g=r.duration*.2;this.getUnmatchedAutoAnimateElements(i).forEach(p=>{let m=this.getAutoAnimateOptions(p,r),w="unmatched";(m.duration!==r.duration||m.delay!==r.delay)&&(w="unmatched-"+Je++,c.push(`[data-auto-animate="running"] [data-auto-animate-target="${w}"] { transition: opacity ${m.duration}s ease ${m.delay}s; }`)),p.dataset.autoAnimateTarget=w},this),c.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${u}s ease ${g}s; }`)}this.autoAnimateStyleSheet.innerHTML=c.join(""),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,i.dataset.autoAnimate="running")}),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:i,sheet:this.autoAnimateStyleSheet}})}}reset(){b(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach(e=>{e.dataset.autoAnimate=""}),b(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach(e=>{delete e.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,i,t,s,n){e.dataset.autoAnimateTarget="",i.dataset.autoAnimateTarget=n;let r=this.getAutoAnimateOptions(i,s);typeof t.delay<"u"&&(r.delay=t.delay),typeof t.duration<"u"&&(r.duration=t.duration),typeof t.easing<"u"&&(r.easing=t.easing);let o=this.getAutoAnimatableProperties("from",e,t),c=this.getAutoAnimatableProperties("to",i,t);if(i.classList.contains("fragment")&&delete c.styles.opacity,t.translate!==!1||t.scale!==!1){let p=this.Reveal.getScale(),m={x:(o.x-c.x)/p,y:(o.y-c.y)/p,scaleX:o.width/c.width,scaleY:o.height/c.height};m.x=Math.round(m.x*1e3)/1e3,m.y=Math.round(m.y*1e3)/1e3,m.scaleX=Math.round(m.scaleX*1e3)/1e3,m.scaleX=Math.round(m.scaleX*1e3)/1e3;let w=t.translate!==!1&&(m.x!==0||m.y!==0),l=t.scale!==!1&&(m.scaleX!==0||m.scaleY!==0);if(w||l){let R=[];w&&R.push(`translate(${m.x}px, ${m.y}px)`),l&&R.push(`scale(${m.scaleX}, ${m.scaleY})`),o.styles.transform=R.join(" "),o.styles["transform-origin"]="top left",c.styles.transform="none"}}for(let p in c.styles){const m=c.styles[p],w=o.styles[p];m===w?delete c.styles[p]:(m.explicitValue===!0&&(c.styles[p]=m.value),w.explicitValue===!0&&(o.styles[p]=w.value))}let u="",g=Object.keys(c.styles);if(g.length>0){o.styles.transition="none",c.styles.transition=`all ${r.duration}s ${r.easing} ${r.delay}s`,c.styles["transition-property"]=g.join(", "),c.styles["will-change"]=g.join(", ");let p=Object.keys(o.styles).map(w=>w+": "+o.styles[w]+" !important;").join(""),m=Object.keys(c.styles).map(w=>w+": "+c.styles[w]+" !important;").join("");u='[data-auto-animate-target="'+n+'"] {'+p+'}[data-auto-animate="running"] [data-auto-animate-target="'+n+'"] {'+m+"}"}return u}getAutoAnimateOptions(e,i){let t={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(t=z(t,i),e.parentNode){let s=V(e.parentNode,"[data-auto-animate-target]");s&&(t=this.getAutoAnimateOptions(s,t))}return e.dataset.autoAnimateEasing&&(t.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(t.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(t.delay=parseFloat(e.dataset.autoAnimateDelay)),t}getAutoAnimatableProperties(e,i,t){let s=this.Reveal.getConfig(),n={styles:[]};if(t.translate!==!1||t.scale!==!1){let o;if(typeof t.measure=="function")o=t.measure(i);else if(s.center)o=i.getBoundingClientRect();else{let c=this.Reveal.getScale();o={x:i.offsetLeft*c,y:i.offsetTop*c,width:i.offsetWidth*c,height:i.offsetHeight*c}}n.x=o.x,n.y=o.y,n.width=o.width,n.height=o.height}const r=getComputedStyle(i);return(t.styles||s.autoAnimateStyles).forEach(o=>{let c;typeof o=="string"&&(o={property:o}),typeof o.from<"u"&&e==="from"?c={value:o.from,explicitValue:!0}:typeof o.to<"u"&&e==="to"?c={value:o.to,explicitValue:!0}:(o.property==="line-height"&&(c=parseFloat(r["line-height"])/parseFloat(r["font-size"])),isNaN(c)&&(c=r[o.property])),c!==""&&(n.styles[o.property]=c)}),n}getAutoAnimatableElements(e,i){let s=(typeof this.Reveal.getConfig().autoAnimateMatcher=="function"?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,i),n=[];return s.filter((r,o)=>{if(n.indexOf(r.to)===-1)return n.push(r.to),!0})}getAutoAnimatePairs(e,i){let t=[];const s="pre",n="h1, h2, h3, h4, h5, h6, p, li",r="img, video, iframe";return this.findAutoAnimateMatches(t,e,i,"[data-id]",o=>o.nodeName+":::"+o.getAttribute("data-id")),this.findAutoAnimateMatches(t,e,i,n,o=>o.nodeName+":::"+o.textContent.trim()),this.findAutoAnimateMatches(t,e,i,r,o=>o.nodeName+":::"+(o.getAttribute("src")||o.getAttribute("data-src"))),this.findAutoAnimateMatches(t,e,i,s,o=>o.nodeName+":::"+o.textContent.trim()),t.forEach(o=>{ye(o.from,n)?o.options={scale:!1}:ye(o.from,s)&&(o.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(t,o.from,o.to,".hljs .hljs-ln-code",c=>c.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(t,o.from,o.to,".hljs .hljs-ln-numbers[data-line-number]",c=>c.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))},this),t}getLocalBoundingBox(e){const i=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*i*100)/100,y:Math.round(e.offsetTop*i*100)/100,width:Math.round(e.offsetWidth*i*100)/100,height:Math.round(e.offsetHeight*i*100)/100}}findAutoAnimateMatches(e,i,t,s,n,r){let o={},c={};[].slice.call(i.querySelectorAll(s)).forEach((u,g)=>{const p=n(u);typeof p=="string"&&p.length&&(o[p]=o[p]||[],o[p].push(u))}),[].slice.call(t.querySelectorAll(s)).forEach((u,g)=>{const p=n(u);c[p]=c[p]||[],c[p].push(u);let m;if(o[p]){const w=c[p].length-1,l=o[p].length-1;o[p][w]?(m=o[p][w],o[p][w]=null):o[p][l]&&(m=o[p][l],o[p][l]=null)}m&&e.push({from:m,to:u,options:r})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((i,t)=>{const s=t.querySelector("[data-auto-animate-target]");return!t.hasAttribute("data-auto-animate-target")&&!s&&i.push(t),t.querySelector("[data-auto-animate-target]")&&(i=i.concat(this.getUnmatchedAutoAnimateElements(t))),i},[])}}const Qt=500,Zt=4,ei=6,ti=8;class ii{constructor(e){this.Reveal=e,this.active=!1,this.activatedCallbacks=[],this.onScroll=this.onScroll.bind(this)}activate(){if(this.active)return;const e=this.Reveal.getState();this.active=!0,this.slideHTMLBeforeActivation=this.Reveal.getSlidesElement().innerHTML;const i=b(this.Reveal.getRevealElement(),se),t=b(this.Reveal.getRevealElement(),Wt);this.viewportElement.classList.add("loading-scroll-mode","reveal-scroll");let s;const n=window.getComputedStyle(this.viewportElement);n&&n.background&&(s=n.background);const r=[],o=i[0].parentNode;let c;const u=(g,p,m,w)=>{let l;if(c&&this.Reveal.shouldAutoAnimateBetween(c,g))l=document.createElement("div"),l.className="scroll-page-content scroll-auto-animate-page",l.style.display="none",c.closest(".scroll-page-content").parentNode.appendChild(l);else{const R=document.createElement("div");if(R.className="scroll-page",r.push(R),w&&t.length>p){const q=t[p],U=window.getComputedStyle(q);U&&U.background?R.style.background=U.background:s&&(R.style.background=s)}else s&&(R.style.background=s);const M=document.createElement("div");M.className="scroll-page-sticky",R.appendChild(M),l=document.createElement("div"),l.className="scroll-page-content",M.appendChild(l)}l.appendChild(g),g.classList.remove("past","future"),g.setAttribute("data-index-h",p),g.setAttribute("data-index-v",m),g.slideBackgroundElement&&(g.slideBackgroundElement.remove("past","future"),l.insertBefore(g.slideBackgroundElement,g)),c=g};i.forEach((g,p)=>{this.Reveal.isVerticalStack(g)?g.querySelectorAll("section").forEach((m,w)=>{u(m,p,w,!0)}):u(g,p,0)},this),this.createProgressBar(),b(this.Reveal.getRevealElement(),".stack").forEach(g=>g.remove()),r.forEach(g=>o.appendChild(g)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.layout(),this.Reveal.setState(e),this.activatedCallbacks.forEach(g=>g()),this.activatedCallbacks=[],this.restoreScrollPosition(),this.viewportElement.classList.remove("loading-scroll-mode"),this.viewportElement.addEventListener("scroll",this.onScroll,{passive:!0})}deactivate(){if(!this.active)return;const e=this.Reveal.getState();this.active=!1,this.viewportElement.removeEventListener("scroll",this.onScroll),this.viewportElement.classList.remove("reveal-scroll"),this.removeProgressBar(),this.Reveal.getSlidesElement().innerHTML=this.slideHTMLBeforeActivation,this.Reveal.sync(),this.Reveal.setState(e),this.slideHTMLBeforeActivation=null}toggle(e){typeof e=="boolean"?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}createProgressBar(){this.progressBar=document.createElement("div"),this.progressBar.className="scrollbar",this.progressBarInner=document.createElement("div"),this.progressBarInner.className="scrollbar-inner",this.progressBar.appendChild(this.progressBarInner),this.progressBarPlayhead=document.createElement("div"),this.progressBarPlayhead.className="scrollbar-playhead",this.progressBarInner.appendChild(this.progressBarPlayhead),this.viewportElement.insertBefore(this.progressBar,this.viewportElement.firstChild);const e=s=>{let n=(s.clientY-this.progressBarInner.getBoundingClientRect().top)/this.progressBarHeight;n=Math.max(Math.min(n,1),0),this.viewportElement.scrollTop=n*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight)},i=s=>{this.draggingProgressBar=!1,this.showProgressBar(),document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",i)},t=s=>{s.preventDefault(),this.draggingProgressBar=!0,document.addEventListener("mousemove",e),document.addEventListener("mouseup",i),e(s)};this.progressBarInner.addEventListener("mousedown",t)}removeProgressBar(){this.progressBar&&(this.progressBar.remove(),this.progressBar=null)}layout(){this.isActive()&&(this.syncPages(),this.syncScrollPosition())}syncPages(){const e=this.Reveal.getConfig(),i=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),t=this.Reveal.getScale(),s=e.scrollLayout==="compact",n=this.viewportElement.offsetHeight,r=i.height*t,o=s?r:n;this.scrollTriggerHeight=s?r:n,this.viewportElement.style.setProperty("--page-height",o+"px"),this.viewportElement.style.scrollSnapType=typeof e.scrollSnap=="string"?`y ${e.scrollSnap}`:"",this.slideTriggers=[];const c=Array.from(this.Reveal.getRevealElement().querySelectorAll(".scroll-page"));this.pages=c.map(u=>{const g=this.createPage({pageElement:u,slideElement:u.querySelector("section"),stickyElement:u.querySelector(".scroll-page-sticky"),contentElement:u.querySelector(".scroll-page-content"),backgroundElement:u.querySelector(".slide-background"),autoAnimateElements:u.querySelectorAll(".scroll-auto-animate-page"),autoAnimatePages:[]});g.pageElement.style.setProperty("--slide-height",e.center===!0?"auto":i.height+"px"),this.slideTriggers.push({page:g,activate:()=>this.activatePage(g),deactivate:()=>this.deactivatePage(g)}),this.createFragmentTriggersForPage(g),g.autoAnimateElements.length>0&&this.createAutoAnimateTriggersForPage(g);let p=Math.max(g.scrollTriggers.length-1,0);p+=g.autoAnimatePages.reduce((m,w)=>m+Math.max(w.scrollTriggers.length-1,0),g.autoAnimatePages.length),g.pageElement.querySelectorAll(".scroll-snap-point").forEach(m=>m.remove());for(let m=0;m<p+1;m++){const w=document.createElement("div");w.className="scroll-snap-point",w.style.height=this.scrollTriggerHeight+"px",w.style.scrollSnapAlign=s?"center":"start",g.pageElement.appendChild(w),m===0&&(w.style.marginTop=-this.scrollTriggerHeight+"px")}return s&&g.scrollTriggers.length>0?(g.pageHeight=n,g.pageElement.style.setProperty("--page-height",n+"px")):(g.pageHeight=o,g.pageElement.style.removeProperty("--page-height")),g.scrollPadding=this.scrollTriggerHeight*p,g.totalHeight=g.pageHeight+g.scrollPadding,g.pageElement.style.setProperty("--page-scroll-padding",g.scrollPadding+"px"),p>0?(g.stickyElement.style.position="sticky",g.stickyElement.style.top=Math.max((n-g.pageHeight)/2,0)+"px"):(g.stickyElement.style.position="relative",g.pageElement.style.scrollSnapAlign=g.pageHeight<n?"center":"start"),g}),this.setTriggerRanges(),this.viewportElement.setAttribute("data-scrollbar",e.scrollProgress),e.scrollProgress&&this.totalScrollTriggerCount>1?(this.progressBar||this.createProgressBar(),this.syncProgressBar()):this.removeProgressBar()}setTriggerRanges(){this.totalScrollTriggerCount=this.slideTriggers.reduce((i,t)=>i+Math.max(t.page.scrollTriggers.length,1),0);let e=0;this.slideTriggers.forEach((i,t)=>{i.range=[e,e+Math.max(i.page.scrollTriggers.length,1)/this.totalScrollTriggerCount];const s=(i.range[1]-i.range[0])/i.page.scrollTriggers.length;i.page.scrollTriggers.forEach((n,r)=>{n.range=[e+r*s,e+(r+1)*s]}),e=i.range[1]}),this.slideTriggers[this.slideTriggers.length-1].range[1]=1}createFragmentTriggersForPage(e,i){i=i||e.slideElement;const t=this.Reveal.fragments.sort(i.querySelectorAll(".fragment"),!0);return t.length&&(e.fragments=this.Reveal.fragments.sort(i.querySelectorAll(".fragment:not(.disabled)")),e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(-1,e.fragments,i)}}),t.forEach((s,n)=>{e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(n,e.fragments,i)}})})),e.scrollTriggers.length}createAutoAnimateTriggersForPage(e){e.autoAnimateElements.length>0&&this.slideTriggers.push(...Array.from(e.autoAnimateElements).map((i,t)=>{let s=this.createPage({slideElement:i.querySelector("section"),contentElement:i,backgroundElement:i.querySelector(".slide-background")});return this.createFragmentTriggersForPage(s,s.slideElement),e.autoAnimatePages.push(s),{page:s,activate:()=>this.activatePage(s),deactivate:()=>this.deactivatePage(s)}}))}createPage(e){return e.scrollTriggers=[],e.indexh=parseInt(e.slideElement.getAttribute("data-index-h"),10),e.indexv=parseInt(e.slideElement.getAttribute("data-index-v"),10),e}syncProgressBar(){this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach(r=>r.remove());const e=this.viewportElement.scrollHeight,i=this.viewportElement.offsetHeight,t=i/e;this.progressBarHeight=this.progressBarInner.offsetHeight,this.playheadHeight=Math.max(t*this.progressBarHeight,ti),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;const s=i/e*this.progressBarHeight,n=Math.min(s/8,Zt);this.progressBarPlayhead.style.height=this.playheadHeight-n+"px",s>ei?this.slideTriggers.forEach(r=>{const{page:o}=r;o.progressBarSlide=document.createElement("div"),o.progressBarSlide.className="scrollbar-slide",o.progressBarSlide.style.top=r.range[0]*this.progressBarHeight+"px",o.progressBarSlide.style.height=(r.range[1]-r.range[0])*this.progressBarHeight-n+"px",o.progressBarSlide.classList.toggle("has-triggers",o.scrollTriggers.length>0),this.progressBarInner.appendChild(o.progressBarSlide),o.scrollTriggerElements=o.scrollTriggers.map((c,u)=>{const g=document.createElement("div");return g.className="scrollbar-trigger",g.style.top=(c.range[0]-r.range[0])*this.progressBarHeight+"px",g.style.height=(c.range[1]-c.range[0])*this.progressBarHeight-n+"px",o.progressBarSlide.appendChild(g),u===0&&(g.style.display="none"),g})}):this.pages.forEach(r=>r.progressBarSlide=null)}syncScrollPosition(){const e=this.viewportElement.offsetHeight,i=e/this.viewportElement.scrollHeight,t=this.viewportElement.scrollTop,s=this.viewportElement.scrollHeight-e,n=Math.max(Math.min(t/s,1),0),r=Math.max(Math.min((t+e/2)/this.viewportElement.scrollHeight,1),0);let o;this.slideTriggers.forEach(c=>{const{page:u}=c;n>=c.range[0]-i*2&&n<=c.range[1]+i*2&&!u.loaded?(u.loaded=!0,this.Reveal.slideContent.load(u.slideElement)):u.loaded&&(u.loaded=!1,this.Reveal.slideContent.unload(u.slideElement)),n>=c.range[0]&&n<=c.range[1]?(this.activateTrigger(c),o=c.page):c.active&&this.deactivateTrigger(c)}),o&&o.scrollTriggers.forEach(c=>{r>=c.range[0]&&r<=c.range[1]?this.activateTrigger(c):c.active&&this.deactivateTrigger(c)}),this.setProgressBarValue(t/(this.viewportElement.scrollHeight-e))}setProgressBarValue(e){this.progressBar&&(this.progressBarPlayhead.style.transform=`translateY(${e*this.progressBarScrollableHeight}px)`,this.getAllPages().filter(i=>i.progressBarSlide).forEach(i=>{i.progressBarSlide.classList.toggle("active",i.active===!0),i.scrollTriggers.forEach((t,s)=>{i.scrollTriggerElements[s].classList.toggle("active",i.active===!0&&t.active===!0)})}),this.showProgressBar())}showProgressBar(){this.progressBar.classList.add("visible"),clearTimeout(this.hideProgressBarTimeout),this.Reveal.getConfig().scrollProgress==="auto"&&!this.draggingProgressBar&&(this.hideProgressBarTimeout=setTimeout(()=>{this.progressBar&&this.progressBar.classList.remove("visible")},Qt))}prev(){this.viewportElement.scrollTop-=this.scrollTriggerHeight}next(){this.viewportElement.scrollTop+=this.scrollTriggerHeight}scrollToSlide(e){if(!this.active)this.activatedCallbacks.push(()=>this.scrollToSlide(e));else{const i=this.getScrollTriggerBySlide(e);i&&(this.viewportElement.scrollTop=i.range[0]*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight))}}storeScrollPosition(){clearTimeout(this.storeScrollPositionTimeout),this.storeScrollPositionTimeout=setTimeout(()=>{sessionStorage.setItem("reveal-scroll-top",this.viewportElement.scrollTop),sessionStorage.setItem("reveal-scroll-origin",location.origin+location.pathname),this.storeScrollPositionTimeout=null},50)}restoreScrollPosition(){const e=sessionStorage.getItem("reveal-scroll-top"),i=sessionStorage.getItem("reveal-scroll-origin");e&&i===location.origin+location.pathname&&(this.viewportElement.scrollTop=parseInt(e,10))}activatePage(e){if(!e.active){e.active=!0;const{slideElement:i,backgroundElement:t,contentElement:s,indexh:n,indexv:r}=e;s.style.display="block",i.classList.add("present"),t&&t.classList.add("present"),this.Reveal.setCurrentScrollPage(i,n,r),this.Reveal.backgrounds.bubbleSlideContrastClassToElement(i,this.viewportElement),Array.from(s.parentNode.querySelectorAll(".scroll-page-content")).forEach(o=>{o!==s&&(o.style.display="none")})}}deactivatePage(e){e.active&&(e.active=!1,e.slideElement&&e.slideElement.classList.remove("present"),e.backgroundElement&&e.backgroundElement.classList.remove("present"))}activateTrigger(e){e.active||(e.active=!0,e.activate())}deactivateTrigger(e){e.active&&(e.active=!1,e.deactivate&&e.deactivate())}getSlideByIndices(e,i){const t=this.getAllPages().find(s=>s.indexh===e&&s.indexv===i);return t?t.slideElement:null}getScrollTriggerBySlide(e){return this.slideTriggers.find(i=>i.page.slideElement===e)}getAllPages(){return this.pages.flatMap(e=>[e,...e.autoAnimatePages||[]])}onScroll(){this.syncScrollPosition(),this.storeScrollPosition()}get viewportElement(){return this.Reveal.getViewportElement()}}class si{constructor(e){this.Reveal=e}async activate(){const e=this.Reveal.getConfig(),i=b(this.Reveal.getRevealElement(),oe),t=e.slideNumber&&/all|print/i.test(e.showSlideNumber),s=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),n=Math.floor(s.width*(1+e.margin)),r=Math.floor(s.height*(1+e.margin)),o=s.width,c=s.height;await new Promise(requestAnimationFrame),Te("@page{size:"+n+"px "+r+"px; margin: 0px;}"),Te(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+o+"px; max-height:"+c+"px}"),document.documentElement.classList.add("reveal-print","print-pdf"),document.body.style.width=n+"px",document.body.style.height=r+"px";const u=this.Reveal.getViewportElement();let g;if(u){const R=window.getComputedStyle(u);R&&R.background&&(g=R.background)}await new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(o,c),await new Promise(requestAnimationFrame);const p=i.map(R=>R.scrollHeight),m=[],w=i[0].parentNode;let l=1;i.forEach(function(R,M){if(R.classList.contains("stack")===!1){let q=(n-o)/2,U=(r-c)/2;const le=p[M];let O=Math.max(Math.ceil(le/r),1);O=Math.min(O,e.pdfMaxPagesPerSlide),(O===1&&e.center||R.classList.contains("center"))&&(U=Math.max((r-le)/2,0));const k=document.createElement("div");if(m.push(k),k.className="pdf-page",k.style.height=(r+e.pdfPageHeightOffset)*O+"px",g&&(k.style.background=g),k.appendChild(R),R.style.left=q+"px",R.style.top=U+"px",R.style.width=o+"px",this.Reveal.slideContent.layout(R),R.slideBackgroundElement&&k.insertBefore(R.slideBackgroundElement,R),e.showNotes){const B=this.Reveal.getSlideNotes(R);if(B){const j=typeof e.showNotes=="string"?e.showNotes:"inline",L=document.createElement("div");L.classList.add("speaker-notes"),L.classList.add("speaker-notes-pdf"),L.setAttribute("data-layout",j),L.innerHTML=B,j==="separate-page"?m.push(L):(L.style.left="8px",L.style.bottom="8px",L.style.width=n-8*2+"px",k.appendChild(L))}}if(t){const B=document.createElement("div");B.classList.add("slide-number"),B.classList.add("slide-number-pdf"),B.innerHTML=l++,k.appendChild(B)}if(e.pdfSeparateFragments){const B=this.Reveal.fragments.sort(k.querySelectorAll(".fragment"),!0);let W;B.forEach(function(j,L){W&&W.forEach(function(F){F.classList.remove("current-fragment")}),j.forEach(function(F){F.classList.add("visible","current-fragment")},this);const A=k.cloneNode(!0);if(t){const F=A.querySelector(".slide-number-pdf"),C=L+1;F.innerHTML+="."+C}m.push(A),W=j},this),B.forEach(function(j){j.forEach(function(L){L.classList.remove("visible","current-fragment")})})}else b(k,".fragment:not(.fade-out)").forEach(function(B){B.classList.add("visible")})}},this),await new Promise(requestAnimationFrame),m.forEach(R=>w.appendChild(R)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:"pdf-ready"}),u.classList.remove("loading-scroll-mode")}isActive(){return this.Reveal.getConfig().view==="print"}}class ai{constructor(e){this.Reveal=e}configure(e,i){e.fragments===!1?this.disable():i.fragments===!1&&this.enable()}disable(){b(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})}enable(){b(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.remove("visible"),e.classList.remove("current-fragment")})}availableRoutes(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let i=e.querySelectorAll(".fragment:not(.disabled)"),t=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:i.length-t.length>0,next:!!t.length}}else return{prev:!1,next:!1}}sort(e,i=!1){e=Array.from(e);let t=[],s=[],n=[];e.forEach(o=>{if(o.hasAttribute("data-fragment-index")){let c=parseInt(o.getAttribute("data-fragment-index"),10);t[c]||(t[c]=[]),t[c].push(o)}else s.push([o])}),t=t.concat(s);let r=0;return t.forEach(o=>{o.forEach(c=>{n.push(c),c.setAttribute("data-fragment-index",r)}),r++}),i===!0?t:n}sortAll(){this.Reveal.getHorizontalSlides().forEach(e=>{let i=b(e,"section");i.forEach((t,s)=>{this.sort(t.querySelectorAll(".fragment"))},this),i.length===0&&this.sort(e.querySelectorAll(".fragment"))})}update(e,i,t=this.Reveal.getCurrentSlide()){let s={shown:[],hidden:[]};if(t&&this.Reveal.getConfig().fragments&&(i=i||this.sort(t.querySelectorAll(".fragment")),i.length)){let n=0;if(typeof e!="number"){let r=this.sort(t.querySelectorAll(".fragment.visible")).pop();r&&(e=parseInt(r.getAttribute("data-fragment-index")||0,10))}Array.from(i).forEach((r,o)=>{if(r.hasAttribute("data-fragment-index")&&(o=parseInt(r.getAttribute("data-fragment-index"),10)),n=Math.max(n,o),o<=e){let c=r.classList.contains("visible");r.classList.add("visible"),r.classList.remove("current-fragment"),o===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(r)),r.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(r)),c||(s.shown.push(r),this.Reveal.dispatchEvent({target:r,type:"visible",bubbles:!1}))}else{let c=r.classList.contains("visible");r.classList.remove("visible"),r.classList.remove("current-fragment"),c&&(this.Reveal.slideContent.stopEmbeddedContent(r),s.hidden.push(r),this.Reveal.dispatchEvent({target:r,type:"hidden",bubbles:!1}))}}),e=typeof e=="number"?e:-1,e=Math.max(Math.min(e,n),-1),t.setAttribute("data-fragment",e)}return s.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:s.hidden[0],fragments:s.hidden}}),s.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:s.shown[0],fragments:s.shown}}),s}sync(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(".fragment"))}goto(e,i=0){let t=this.Reveal.getCurrentSlide();if(t&&this.Reveal.getConfig().fragments){let s=this.sort(t.querySelectorAll(".fragment:not(.disabled)"));if(s.length){if(typeof e!="number"){let r=this.sort(t.querySelectorAll(".fragment:not(.disabled).visible")).pop();r?e=parseInt(r.getAttribute("data-fragment-index")||0,10):e=-1}e+=i;let n=this.update(e,s);return this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!!(n.shown.length||n.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class ri{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.Reveal.isScrollView()&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),b(this.Reveal.getRevealElement(),oe).forEach(s=>{s.classList.contains("stack")||s.addEventListener("click",this.onSlideClicked,!0)});const e=70,i=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=i.width+e,this.overviewSlideHeight=i.height+e,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();const t=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,i)=>{e.setAttribute("data-index-h",i),ie(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),e.classList.contains("stack")&&b(e,"section").forEach((t,s)=>{t.setAttribute("data-index-h",i),t.setAttribute("data-index-v",s),ie(t,"translate3d(0, "+s*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,i)=>{ie(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),b(e,".slide-background").forEach((t,s)=>{ie(t,"translate3d(0, "+s*this.overviewSlideHeight+"px, 0)")})})}update(){const e=Math.min(window.innerWidth,window.innerHeight),i=Math.max(e/5,150)/e,t=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+i+")","translateX("+-t.h*this.overviewSlideWidth+"px)","translateY("+-t.v*this.overviewSlideHeight+"px)"].join(" ")})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout(()=>{this.Reveal.getRevealElement().classList.remove("overview-deactivating")},1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),b(this.Reveal.getRevealElement(),oe).forEach(i=>{ie(i,""),i.removeEventListener("click",this.onSlideClicked,!0)}),b(this.Reveal.getBackgroundsElement(),".slide-background").forEach(i=>{ie(i,"")}),this.Reveal.transformSlides({overview:""});const e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){typeof e=="boolean"?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();let i=e.target;for(;i&&!i.nodeName.match(/section/gi);)i=i.parentNode;if(i&&!i.classList.contains("disabled")&&(this.deactivate(),i.nodeName.match(/section/gi))){let t=parseInt(i.getAttribute("data-index-h"),10),s=parseInt(i.getAttribute("data-index-v"),10);this.Reveal.slide(t,s)}}}}class ni{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this)}configure(e,i){e.navigationMode==="linear"?(this.shortcuts["→ , ↓ , SPACE , N , L , J"]="Next slide",this.shortcuts["← , ↑ , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts["P , Shift SPACE"]="Previous slide",this.shortcuts["← , H"]="Navigate left",this.shortcuts["→ , L"]="Navigate right",this.shortcuts["↑ , K"]="Navigate up",this.shortcuts["↓ , J"]="Navigate down"),this.shortcuts["Alt + ←/↑/→/↓"]="Navigate without fragments",this.shortcuts["Shift + ←/↑/→/↓"]="Jump to first/last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts.G="Jump to slide",this.shortcuts["ESC, O"]="Slide overview"}bind(){document.addEventListener("keydown",this.onDocumentKeyDown,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1)}addKeyBinding(e,i){typeof e=="object"&&e.keyCode?this.bindings[e.keyCode]={callback:i,key:e.key,description:e.description}:this.bindings[e]={callback:i,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,i){this.shortcuts[e]=i}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyDown(e){let i=this.Reveal.getConfig();if(typeof i.keyboardCondition=="function"&&i.keyboardCondition(e)===!1||i.keyboardCondition==="focused"&&!this.Reveal.isFocused())return!0;let t=e.keyCode,s=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let n=document.activeElement&&document.activeElement.isContentEditable===!0,r=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),o=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),u=!([32,37,38,39,40,63,78,80,191].indexOf(e.keyCode)!==-1&&e.shiftKey||e.altKey)&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(n||r||o||u)return;let g=[66,86,190,191,112],p;if(typeof i.keyboard=="object")for(p in i.keyboard)i.keyboard[p]==="togglePause"&&g.push(parseInt(p,10));if(this.Reveal.isOverlayOpen()&&!["Escape","f","c","b","."].includes(e.key)||this.Reveal.isPaused()&&g.indexOf(t)===-1)return!1;let m=i.navigationMode==="linear"||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),w=!1;if(typeof i.keyboard=="object"){for(p in i.keyboard)if(parseInt(p,10)===t){let l=i.keyboard[p];typeof l=="function"?l.apply(null,[e]):typeof l=="string"&&typeof this.Reveal[l]=="function"&&this.Reveal[l].call(),w=!0}}if(w===!1){for(p in this.bindings)if(parseInt(p,10)===t){let l=this.bindings[p].callback;typeof l=="function"?l.apply(null,[e]):typeof l=="string"&&typeof this.Reveal[l]=="function"&&this.Reveal[l].call(),w=!0}}w===!1&&(w=!0,t===80||t===33?this.Reveal.prev({skipFragments:e.altKey}):t===78||t===34?this.Reveal.next({skipFragments:e.altKey}):t===72||t===37?e.shiftKey?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&m?i.rtl?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.left({skipFragments:e.altKey}):t===76||t===39?e.shiftKey?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):!this.Reveal.overview.isActive()&&m?i.rtl?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey}):this.Reveal.right({skipFragments:e.altKey}):t===75||t===38?e.shiftKey?this.Reveal.slide(void 0,0):!this.Reveal.overview.isActive()&&m?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.up({skipFragments:e.altKey}):t===74||t===40?e.shiftKey?this.Reveal.slide(void 0,Number.MAX_VALUE):!this.Reveal.overview.isActive()&&m?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.down({skipFragments:e.altKey}):t===36?this.Reveal.slide(0):t===35?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):t===32?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey})):[58,59,66,86,190].includes(t)||t===191&&!e.shiftKey?this.Reveal.togglePause():t===70?Ke(i.embedded?this.Reveal.getViewportElement():document.documentElement):t===65?i.autoSlideStoppable&&this.Reveal.toggleAutoSlide(s):t===71?i.jumpToSlide&&this.Reveal.toggleJumpToSlide():t===67&&this.Reveal.isOverlayOpen()?this.Reveal.closeOverlay():(t===63||t===191)&&e.shiftKey?this.Reveal.toggleHelp():t===112?this.Reveal.toggleHelp():w=!1),w?e.preventDefault&&e.preventDefault():t===27||t===79?(this.Reveal.closeOverlay()===!1&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()):t===13&&this.Reveal.overview.isActive()&&(this.Reveal.overview.deactivate(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class oi{constructor(e){Ht(this,"MAX_REPLACE_STATE_FREQUENCY",1e3);this.Reveal=e,this.writeURLTimeout=0,this.replaceStateTimestamp=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}unbind(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}getIndicesFromHash(e=window.location.hash,i={}){let t=e.replace(/^#\/?/,""),s=t.split("/");if(!/^[0-9]*$/.test(s[0])&&t.length){let n,r;/\/[-\d]+$/g.test(t)&&(r=parseInt(t.split("/").pop(),10),r=isNaN(r)?void 0:r,t=t.split("/").shift());try{n=document.getElementById(decodeURIComponent(t)).closest(".slides section")}catch{}if(n)return{...this.Reveal.getIndices(n),f:r}}else{const n=this.Reveal.getConfig();let r=n.hashOneBasedIndex||i.oneBasedIndex?1:0,o=parseInt(s[0],10)-r||0,c=parseInt(s[1],10)-r||0,u;return n.fragmentInURL&&(u=parseInt(s[2],10),isNaN(u)&&(u=void 0)),{h:o,v:c,f:u}}return null}readURL(){const e=this.Reveal.getIndices(),i=this.getIndicesFromHash();i?(i.h!==e.h||i.v!==e.v||i.f!==void 0)&&this.Reveal.slide(i.h,i.v,i.f):this.Reveal.slide(e.h||0,e.v||0)}writeURL(e){let i=this.Reveal.getConfig(),t=this.Reveal.getCurrentSlide();if(clearTimeout(this.writeURLTimeout),typeof e=="number")this.writeURLTimeout=setTimeout(this.writeURL,e);else if(t){let s=this.getHash();i.history?window.location.hash=s:i.hash&&(s==="/"?this.debouncedReplaceState(window.location.pathname+window.location.search):this.debouncedReplaceState("#"+s))}}replaceState(e){window.history.replaceState(null,null,e),this.replaceStateTimestamp=Date.now()}debouncedReplaceState(e){clearTimeout(this.replaceStateTimeout),Date.now()-this.replaceStateTimestamp>this.MAX_REPLACE_STATE_FREQUENCY?this.replaceState(e):this.replaceStateTimeout=setTimeout(()=>this.replaceState(e),this.MAX_REPLACE_STATE_FREQUENCY)}getHash(e){let i="/",t=e||this.Reveal.getCurrentSlide(),s=t?t.getAttribute("id"):null;s&&(s=encodeURIComponent(s));let n=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(n.f=void 0),typeof s=="string"&&s.length)i="/"+s,n.f>=0&&(i+="/"+n.f);else{let r=this.Reveal.getConfig().hashOneBasedIndex?1:0;(n.h>0||n.v>0||n.f>=0)&&(i+=n.h+r),(n.v>0||n.f>=0)&&(i+="/"+(n.v+r)),n.f>=0&&(i+="/"+n.f)}return i}onWindowHashChange(e){this.readURL()}}class li{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this),this.onEnterFullscreen=this.onEnterFullscreen.bind(this)}render(){const e=this.Reveal.getConfig().rtl,i=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=`<button class="navigate-left" aria-label="${e?"next slide":"previous slide"}"><div class="controls-arrow"></div></button>
|
|
<button class="navigate-right" aria-label="${e?"previous slide":"next slide"}"><div class="controls-arrow"></div></button>
|
|
<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>
|
|
<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>`,this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=b(i,".navigate-left"),this.controlsRight=b(i,".navigate-right"),this.controlsUp=b(i,".navigate-up"),this.controlsDown=b(i,".navigate-down"),this.controlsPrev=b(i,".navigate-prev"),this.controlsNext=b(i,".navigate-next"),this.controlsFullscreen=b(i,".enter-fullscreen"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(e,i){this.element.style.display=e.controls&&(e.controls!=="speaker-only"||this.Reveal.isSpeakerNotes())?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){let e=["touchstart","click"];Xe&&(e=["touchstart"]),e.forEach(i=>{this.controlsLeft.forEach(t=>t.addEventListener(i,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.addEventListener(i,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.addEventListener(i,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.addEventListener(i,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.addEventListener(i,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.addEventListener(i,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(t=>t.addEventListener(i,this.onEnterFullscreen,!1))})}unbind(){["touchstart","click"].forEach(e=>{this.controlsLeft.forEach(i=>i.removeEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(i=>i.removeEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(i=>i.removeEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(i=>i.removeEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(i=>i.removeEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(i=>i.removeEventListener(e,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(i=>i.removeEventListener(e,this.onEnterFullscreen,!1))})}update(){let e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(t=>{t.classList.remove("enabled","fragmented"),t.setAttribute("disabled","disabled")}),e.left&&this.controlsLeft.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),e.right&&this.controlsRight.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),e.up&&this.controlsUp.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),e.down&&this.controlsDown.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),(e.left||e.up)&&this.controlsPrev.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),(e.right||e.down)&&this.controlsNext.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")});let i=this.Reveal.getCurrentSlide();if(i){let t=this.Reveal.fragments.availableRoutes();t.prev&&this.controlsPrev.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}),t.next&&this.controlsNext.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")});const s=this.Reveal.isVerticalSlide(i),n=s&&i.parentElement&&i.parentElement.querySelectorAll(":scope > section").length>1;s&&n?(t.prev&&this.controlsUp.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}),t.next&&this.controlsDown.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")})):(t.prev&&this.controlsLeft.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}),t.next&&this.controlsRight.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){let t=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&t.v===0?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&t.v===0?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}destroy(){this.unbind(),this.element.remove()}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode==="linear"?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode==="linear"?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}onEnterFullscreen(e){const i=this.Reveal.getConfig(),t=this.Reveal.getViewportElement();Ke(i.embedded?t:t.parentElement)}}class di{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}configure(e,i){this.element.style.display=e.progress?"block":"none"}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}update(){if(this.Reveal.getConfig().progress&&this.bar){let e=this.Reveal.getProgress();this.Reveal.getTotalSlides()<2&&(e=0),this.bar.style.transform="scaleX("+e+")"}}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();let i=this.Reveal.getSlides(),t=i.length,s=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(s=t-s);let n=this.Reveal.getIndices(i[s]);this.Reveal.slide(n.h,n.v)}destroy(){this.element.remove()}}class ci{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,i){e.mouseWheel?document.addEventListener("wheel",this.onDocumentMouseScroll,!1):document.removeEventListener("wheel",this.onDocumentMouseScroll,!1),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}hideCursor(){this.cursorHidden===!1&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}destroy(){this.showCursor(),document.removeEventListener("wheel",this.onDocumentMouseScroll,!1),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1)}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();let i=e.detail||-e.wheelDelta;i>0?this.Reveal.next():i<0&&this.Reveal.prev()}}}const Qe=(h,e)=>{const i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=h,typeof e=="function"&&(i.onload=i.onreadystatechange=s=>{(s.type==="load"||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,e())},i.onerror=s=>{i.onload=i.onreadystatechange=i.onerror=null,e(new Error("Failed loading script: "+i.src+`
|
|
`+s))});const t=document.querySelector("head");t.insertBefore(i,t.lastChild)};class hi{constructor(e){this.Reveal=e,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e,i){return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise(t=>{let s=[],n=0;if(i.forEach(r=>{(!r.condition||r.condition())&&(r.async?this.asyncDependencies.push(r):s.push(r))}),s.length){n=s.length;const r=o=>{o&&typeof o.callback=="function"&&o.callback(),--n===0&&this.initPlugins().then(t)};s.forEach(o=>{typeof o.id=="string"?(this.registerPlugin(o),r(o)):typeof o.src=="string"?Qe(o.src,()=>r(o)):(console.warn("Unrecognized plugin format",o),r())})}else this.initPlugins().then(t)})}initPlugins(){return new Promise(e=>{let i=Object.values(this.registeredPlugins),t=i.length;if(t===0)this.loadAsync().then(e);else{let s,n=()=>{--t===0?this.loadAsync().then(e):s()},r=0;s=()=>{let o=i[r++];if(typeof o.init=="function"){let c=o.init(this.Reveal);c&&typeof c.then=="function"?c.then(n):n()}else n()},s()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{Qe(e.src,e.callback)}),Promise.resolve()}registerPlugin(e){arguments.length===2&&typeof arguments[0]=="string"?(e=arguments[1],e.id=arguments[0]):typeof e=="function"&&(e=e());let i=e.id;typeof i!="string"?console.warn("Unrecognized plugin format; can't find plugin.id",e):this.registeredPlugins[i]===void 0?(this.registeredPlugins[i]=e,this.state==="loaded"&&typeof e.init=="function"&&e.init(this.Reveal)):console.warn('reveal.js: "'+i+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}destroy(){Object.values(this.registeredPlugins).forEach(e=>{typeof e.destroy=="function"&&e.destroy()}),this.registeredPlugins={},this.asyncDependencies=[]}}class ui{constructor(e){this.Reveal=e,this.onSlidesClicked=this.onSlidesClicked.bind(this),this.iframeTriggerSelector=null,this.mediaTriggerSelector="[data-preview-image], [data-preview-video]",this.stateProps=["previewIframe","previewImage","previewVideo","previewFit"],this.state={}}update(){this.Reveal.getConfig().previewLinks?this.iframeTriggerSelector="a[href]:not([data-preview-link=false]), [data-preview-link]:not(a):not([data-preview-link=false])":this.iframeTriggerSelector="[data-preview-link]:not([data-preview-link=false])";const e=this.Reveal.getSlidesElement().querySelectorAll(this.iframeTriggerSelector).length>0,i=this.Reveal.getSlidesElement().querySelectorAll(this.mediaTriggerSelector).length>0;e||i?this.Reveal.getSlidesElement().addEventListener("click",this.onSlidesClicked,!1):this.Reveal.getSlidesElement().removeEventListener("click",this.onSlidesClicked,!1)}createOverlay(e){this.dom=document.createElement("div"),this.dom.classList.add("r-overlay"),this.dom.classList.add(e),this.viewport=document.createElement("div"),this.viewport.classList.add("r-overlay-viewport"),this.dom.appendChild(this.viewport),this.Reveal.getRevealElement().appendChild(this.dom)}previewIframe(e){this.close(),this.state={previewIframe:e},this.createOverlay("r-overlay-preview"),this.dom.dataset.state="loading",this.viewport.innerHTML=`<header class="r-overlay-header">
|
|
<a class="r-overlay-button r-overlay-external" href="${e}" target="_blank"><span class="icon"></span></a>
|
|
<button class="r-overlay-button r-overlay-close"><span class="icon"></span></button>
|
|
</header>
|
|
<div class="r-overlay-spinner"></div>
|
|
<div class="r-overlay-content">
|
|
<iframe src="${e}"></iframe>
|
|
<small class="r-overlay-content-inner">
|
|
<span class="r-overlay-error x-frame-error">Unable to load iframe. This is likely due to the site's policy (x-frame-options).</span>
|
|
</small>
|
|
</div>`,this.dom.querySelector("iframe").addEventListener("load",i=>{this.dom.dataset.state="loaded"},!1),this.dom.querySelector(".r-overlay-close").addEventListener("click",i=>{this.close(),i.preventDefault()},!1),this.dom.querySelector(".r-overlay-external").addEventListener("click",i=>{this.close()},!1),this.Reveal.dispatchEvent({type:"previewiframe",data:{url:e}})}previewMedia(e,i,t){if(i!=="image"&&i!=="video"){console.warn("Please specify a valid media type to preview (image|video)");return}this.close(),t=t||"scale-down",this.createOverlay("r-overlay-preview"),this.dom.dataset.state="loading",this.dom.dataset.previewFit=t,this.viewport.innerHTML=`<header class="r-overlay-header">
|
|
<button class="r-overlay-button r-overlay-close">Esc <span class="icon"></span></button>
|
|
</header>
|
|
<div class="r-overlay-spinner"></div>
|
|
<div class="r-overlay-content"></div>`;const s=this.dom.querySelector(".r-overlay-content");if(i==="image"){this.state={previewImage:e,previewFit:t};const n=document.createElement("img",{});n.src=e,s.appendChild(n),n.addEventListener("load",()=>{this.dom.dataset.state="loaded"},!1),n.addEventListener("error",()=>{this.dom.dataset.state="error",s.innerHTML='<span class="r-overlay-error">Unable to load image.</span>'},!1),this.dom.style.cursor="zoom-out",this.dom.addEventListener("click",r=>{this.close()},!1),this.Reveal.dispatchEvent({type:"previewimage",data:{url:e}})}else if(i==="video"){this.state={previewVideo:e,previewFit:t};const n=document.createElement("video");n.autoplay=this.dom.dataset.previewAutoplay!=="false",n.controls=this.dom.dataset.previewControls!=="false",n.loop=this.dom.dataset.previewLoop==="true",n.muted=this.dom.dataset.previewMuted==="true",n.playsInline=!0,n.src=e,s.appendChild(n),n.addEventListener("loadeddata",()=>{this.dom.dataset.state="loaded"},!1),n.addEventListener("error",()=>{this.dom.dataset.state="error",s.innerHTML='<span class="r-overlay-error">Unable to load video.</span>'},!1),this.Reveal.dispatchEvent({type:"previewvideo",data:{url:e}})}else throw new Error("Please specify a valid media type to preview");this.dom.querySelector(".r-overlay-close").addEventListener("click",n=>{this.close(),n.preventDefault()},!1)}previewImage(e,i){this.previewMedia(e,"image",i)}previewVideo(e,i){this.previewMedia(e,"video",i)}toggleHelp(e){typeof e=="boolean"?e?this.showHelp():this.close():this.dom?this.close():this.showHelp()}showHelp(){if(this.Reveal.getConfig().help){this.close(),this.createOverlay("r-overlay-help");let e='<p class="title">Keyboard Shortcuts</p>',i=this.Reveal.keyboard.getShortcuts(),t=this.Reveal.keyboard.getBindings();e+="<table><th>KEY</th><th>ACTION</th>";for(let s in i)e+=`<tr><td>${s}</td><td>${i[s]}</td></tr>`;for(let s in t)t[s].key&&t[s].description&&(e+=`<tr><td>${t[s].key}</td><td>${t[s].description}</td></tr>`);e+="</table>",this.viewport.innerHTML=`
|
|
<header class="r-overlay-header">
|
|
<button class="r-overlay-button r-overlay-close">Esc <span class="icon"></span></button>
|
|
</header>
|
|
<div class="r-overlay-content">
|
|
<div class="r-overlay-help-content">${e}</div>
|
|
</div>
|
|
`,this.dom.querySelector(".r-overlay-close").addEventListener("click",s=>{this.close(),s.preventDefault()},!1),this.Reveal.dispatchEvent({type:"showhelp"})}}isOpen(){return!!this.dom}close(){return this.dom?(this.dom.remove(),this.dom=null,this.state={},this.Reveal.dispatchEvent({type:"closeoverlay"}),!0):!1}getState(){return this.state}setState(e){this.stateProps.every(i=>this.state[i]===e[i])||(e.previewIframe?this.previewIframe(e.previewIframe):e.previewImage?this.previewImage(e.previewImage,e.previewFit):e.previewVideo?this.previewVideo(e.previewVideo,e.previewFit):this.close())}onSlidesClicked(e){const i=e.target,t=i.closest(this.iframeTriggerSelector),s=i.closest(this.mediaTriggerSelector);if(t){if(e.metaKey||e.shiftKey||e.altKey)return;let n=t.getAttribute("href")||t.getAttribute("data-preview-link");n&&(this.previewIframe(n),e.preventDefault())}else if(s){if(s.hasAttribute("data-preview-image")){let n=s.dataset.previewImage||s.getAttribute("src");n&&(this.previewImage(n,s.dataset.previewFit),e.preventDefault())}else if(s.hasAttribute("data-preview-video")){let n=s.dataset.previewVideo||s.getAttribute("src");if(!n){let r=s.querySelector("source");r&&(n=r.getAttribute("src"))}n&&(this.previewVideo(n,s.dataset.previewFit),e.preventDefault())}}}destroy(){this.close()}}const be=40;class fi{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){let e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){let e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(e){if(ye(e,"video[controls], audio[controls]"))return!0;for(;e&&typeof e.hasAttribute=="function";){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.touchCaptured=!1,this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;let i=this.Reveal.getConfig();if(this.touchCaptured)Xe&&e.preventDefault();else{this.Reveal.onUserInput(e);let t=e.touches[0].clientX,s=e.touches[0].clientY;if(e.touches.length===1&&this.touchStartCount!==2){let n=this.Reveal.availableRoutes({includeFragments:!0}),r=t-this.touchStartX,o=s-this.touchStartY;r>be&&Math.abs(r)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):r<-be&&Math.abs(r)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):o>be&&n.up?(this.touchCaptured=!0,i.navigationMode==="linear"?this.Reveal.prev():this.Reveal.up()):o<-be&&n.down&&(this.touchCaptured=!0,i.navigationMode==="linear"?this.Reveal.next():this.Reveal.down()),i.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured=!1}onPointerDown(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch")&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch")&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch")&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}const Ne="focus",Ze="blur";class gi{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,i){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}focus(){this.state!==Ne&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Ne}blur(){this.state!==Ze&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Ze}isFocused(){return this.state===Ne}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let i=V(e.target,".reveal");(!i||i!==this.Reveal.getRevealElement())&&this.blur()}}class pi{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,i){e.showNotes&&this.element.setAttribute("data-layout",typeof e.showNotes=="string"?e.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let i=e.querySelectorAll("aside.notes");return i?Array.from(i).map(t=>t.innerHTML).join(`
|
|
`):null}destroy(){this.element.remove()}}class vi{constructor(e,i){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=i,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}setPlaying(e){const i=this.playing;this.playing=e,!i&&this.playing?this.animate():this.render()}animate(){const e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){let e=this.playing?this.progress:0,i=this.diameter2-this.thickness,t=this.diameter2,s=this.diameter2,n=28;this.progressOffset+=(1-this.progressOffset)*.1;const r=-Math.PI/2+e*(Math.PI*2),o=-Math.PI/2+this.progressOffset*(Math.PI*2);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(t,s,i+4,0,Math.PI*2,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(t,s,i,0,Math.PI*2,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(t,s,i,o,r,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(t-n/2,s-n/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,n/2-4,n),this.context.fillRect(n/2+4,0,n/2-4,n)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(n-4,n/2),this.context.lineTo(0,n),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,i){this.canvas.addEventListener(e,i,!1)}off(e,i){this.canvas.removeEventListener(e,i,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}const mi={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,jumpToSlide:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,showHiddenSlides:!1,autoPlayMedia:null,preloadIframes:null,mouseWheel:!1,previewLinks:!1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,sortFragmentsOnSync:!0,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,view:null,scrollLayout:"full",scrollSnap:"mandatory",scrollProgress:"auto",scrollActivationWidth:435,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,dependencies:[],plugins:[]},et="6.0.0";function tt(h,e){arguments.length<2&&(e=arguments[0],h=document.querySelector(".reveal"));const i={};let t={},s=!1,n=!1,r,o,c,u,g={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},p=[],m=1,w={layout:"",overview:""},l={},R="idle",M=0,q,U=0,le=-1,O=!1,k=new Ut(i),B=new $t(i),W=new Xt(i),j=new Jt(i),L=new Gt(i),A=new ii(i),F=new si(i),C=new ai(i),f=new ri(i),S=new ni(i),x=new oi(i),Y=new li(i),K=new di(i),re=new ci(i),D=new hi(i),H=new ui(i),de=new gi(i),Be=new fi(i),$=new pi(i);function yi(a){if(!h)throw'Unable to find presentation root (<div class="reveal">).';if(s)throw"Reveal.js has already been initialized.";if(s=!0,l.wrapper=h,l.slides=h.querySelector(".slides"),!l.slides)throw'Unable to find slides container (<div class="slides">).';return t={...mi,...t,...e,...a,..._e()},/print-pdf/gi.test(window.location.search)&&(t.view="print"),bi(),window.addEventListener("load",fe,!1),D.load(t.plugins,t.dependencies).then(wi),new Promise(d=>i.on("ready",d))}function bi(){t.embedded===!0?l.viewport=V(h,".reveal-viewport")||h:(l.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),l.viewport.classList.add("reveal-viewport")}function wi(){s!==!1&&(n=!0,Si(),Ri(),Li(),ki(),Ci(),Di(),st(),L.update(!0),Ei(),x.readURL(),setTimeout(()=>{l.slides.classList.remove("no-transition"),l.wrapper.classList.add("ready"),_({type:"ready",data:{indexh:r,indexv:o,currentSlide:u}})},1))}function Ei(){const a=t.view==="print",d=t.view==="scroll"||t.view==="reader";(a||d)&&(a?Ee():Be.unbind(),l.viewport.classList.add("loading-scroll-mode"),a?document.readyState==="complete"?F.activate():window.addEventListener("load",()=>F.activate()):A.activate())}function Si(){t.showHiddenSlides||b(l.wrapper,'section[data-visibility="hidden"]').forEach(a=>{const d=a.parentNode;d.childElementCount===1&&/section/i.test(d.nodeName)?d.remove():a.remove()})}function Ri(){l.slides.classList.add("no-transition"),ue?l.wrapper.classList.add("no-hover"):l.wrapper.classList.remove("no-hover"),L.render(),B.render(),W.render(),Y.render(),K.render(),$.render(),l.pauseOverlay=Dt(l.wrapper,"div","pause-overlay",t.controls?'<button class="resume-button">Resume presentation</button>':null),l.statusElement=Ai(),l.wrapper.setAttribute("role","application")}function Ai(){let a=l.wrapper.querySelector(".aria-status");return a||(a=document.createElement("div"),a.style.position="absolute",a.style.height="1px",a.style.width="1px",a.style.overflow="hidden",a.style.clip="rect( 1px, 1px, 1px, 1px )",a.classList.add("aria-status"),a.setAttribute("aria-live","polite"),a.setAttribute("aria-atomic","true"),l.wrapper.appendChild(a)),a}function He(a){l.statusElement.textContent=a}function we(a){let d="";if(a.nodeType===3)d+=a.textContent;else if(a.nodeType===1){let v=a.getAttribute("aria-hidden"),y=window.getComputedStyle(a).display==="none";v!=="true"&&!y&&Array.from(a.childNodes).forEach(E=>{d+=we(E)})}return d=d.trim(),d===""?"":d+" "}function ki(){setInterval(()=>{(!A.isActive()&&l.wrapper.scrollTop!==0||l.wrapper.scrollLeft!==0)&&(l.wrapper.scrollTop=0,l.wrapper.scrollLeft=0)},1e3)}function Ci(){document.addEventListener("fullscreenchange",Pe),document.addEventListener("webkitfullscreenchange",Pe)}function Li(){t.postMessage&&window.addEventListener("message",xt,!1)}function st(a){const d={...t};if(typeof a=="object"&&z(t,a),i.isReady()===!1)return;const v=l.wrapper.querySelectorAll(oe).length;l.wrapper.classList.remove(d.transition),l.wrapper.classList.add(t.transition),l.wrapper.setAttribute("data-transition-speed",t.transitionSpeed),l.wrapper.setAttribute("data-background-transition",t.backgroundTransition),l.viewport.style.setProperty("--slide-width",typeof t.width=="string"?t.width:t.width+"px"),l.viewport.style.setProperty("--slide-height",typeof t.height=="string"?t.height:t.height+"px"),t.shuffle&&Ve(),te(l.wrapper,"embedded",t.embedded),te(l.wrapper,"rtl",t.rtl),te(l.wrapper,"center",t.center),t.pause===!1&&ve(),j.reset(),q&&(q.destroy(),q=null),v>1&&t.autoSlide&&t.autoSlideStoppable&&(q=new vi(l.wrapper,()=>Math.min(Math.max((Date.now()-le)/M,0),1)),q.on("click",Wi),O=!1),t.navigationMode!=="default"?l.wrapper.setAttribute("data-navigation-mode",t.navigationMode):l.wrapper.removeAttribute("data-navigation-mode"),$.configure(t,d),de.configure(t,d),re.configure(t,d),Y.configure(t,d),K.configure(t,d),S.configure(t,d),C.configure(t,d),B.configure(t,d),vt()}function at(){window.addEventListener("resize",Mt,!1),t.touch&&Be.bind(),t.keyboard&&S.bind(),t.progress&&K.bind(),t.respondToHashChanges&&x.bind(),Y.bind(),de.bind(),l.slides.addEventListener("click",It,!1),l.slides.addEventListener("transitionend",Tt,!1),l.pauseOverlay.addEventListener("click",ve,!1),t.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Nt,!1)}function Ee(){Be.unbind(),de.unbind(),S.unbind(),Y.unbind(),K.unbind(),x.unbind(),window.removeEventListener("resize",Mt,!1),l.slides.removeEventListener("click",It,!1),l.slides.removeEventListener("transitionend",Tt,!1),l.pauseOverlay.removeEventListener("click",ve,!1)}function Pi(){s=!1,n!==!1&&(Ee(),Re(),$.destroy(),de.destroy(),H.destroy(),D.destroy(),re.destroy(),Y.destroy(),K.destroy(),L.destroy(),B.destroy(),W.destroy(),document.removeEventListener("fullscreenchange",Pe),document.removeEventListener("webkitfullscreenchange",Pe),document.removeEventListener("visibilitychange",Nt,!1),window.removeEventListener("message",xt,!1),window.removeEventListener("load",fe,!1),l.pauseOverlay&&l.pauseOverlay.remove(),l.statusElement&&l.statusElement.remove(),document.documentElement.classList.remove("reveal-full-page"),l.wrapper.classList.remove("ready","center","has-horizontal-slides","has-vertical-slides"),l.wrapper.removeAttribute("data-transition-speed"),l.wrapper.removeAttribute("data-background-transition"),l.viewport.classList.remove("reveal-viewport"),l.viewport.style.removeProperty("--slide-width"),l.viewport.style.removeProperty("--slide-height"),l.slides.style.removeProperty("width"),l.slides.style.removeProperty("height"),l.slides.style.removeProperty("zoom"),l.slides.style.removeProperty("left"),l.slides.style.removeProperty("top"),l.slides.style.removeProperty("bottom"),l.slides.style.removeProperty("right"),l.slides.style.removeProperty("transform"),Array.from(l.wrapper.querySelectorAll(oe)).forEach(a=>{a.style.removeProperty("display"),a.style.removeProperty("top"),a.removeAttribute("hidden"),a.removeAttribute("aria-hidden")}))}function rt(a,d,v){h.addEventListener(a,d,v)}function nt(a,d,v){h.removeEventListener(a,d,v)}function De(a){typeof a.layout=="string"&&(w.layout=a.layout),typeof a.overview=="string"&&(w.overview=a.overview),w.layout?ie(l.slides,w.layout+" "+w.overview):ie(l.slides,w.overview)}function _({target:a=l.wrapper,type:d,data:v,bubbles:y=!0}){let E=document.createEvent("HTMLEvents",1,2);return E.initEvent(d,y,!0),z(E,v),a.dispatchEvent(E),a===l.wrapper&<(d),E}function ot(a){_({type:"slidechanged",data:{indexh:r,indexv:o,previousSlide:c,currentSlide:u,origin:a}})}function lt(a,d){if(t.postMessageEvents&&window.parent!==window.self){let v={namespace:"reveal",eventName:a,state:Lt()};z(v,d),window.parent.postMessage(JSON.stringify(v),"*")}}function fe(){if(l.wrapper&&!F.isActive()){const a=l.viewport.offsetWidth,d=l.viewport.offsetHeight;if(!t.disableLayout){ue&&!t.embedded&&document.documentElement.style.setProperty("--vh",window.innerHeight*.01+"px");const v=A.isActive()?Se(a,d):Se(),y=m;dt(t.width,t.height),l.slides.style.width=v.width+"px",l.slides.style.height=v.height+"px",m=Math.min(v.presentationWidth/v.width,v.presentationHeight/v.height),m=Math.max(m,t.minScale),m=Math.min(m,t.maxScale),m===1||A.isActive()?(l.slides.style.zoom="",l.slides.style.left="",l.slides.style.top="",l.slides.style.bottom="",l.slides.style.right="",De({layout:""})):(l.slides.style.zoom="",l.slides.style.left="50%",l.slides.style.top="50%",l.slides.style.bottom="auto",l.slides.style.right="auto",De({layout:"translate(-50%, -50%) scale("+m+")"}));const E=Array.from(l.wrapper.querySelectorAll(oe));for(let P=0,T=E.length;P<T;P++){const N=E[P];N.style.display!=="none"&&(t.center||N.classList.contains("center")?N.classList.contains("stack")?N.style.top=0:N.style.top=Math.max((v.height-N.scrollHeight)/2,0)+"px":N.style.top="")}y!==m&&_({type:"resize",data:{oldScale:y,scale:m,size:v}})}xi(),l.viewport.style.setProperty("--slide-scale",m),l.viewport.style.setProperty("--viewport-width",a+"px"),l.viewport.style.setProperty("--viewport-height",d+"px"),A.layout(),K.update(),L.updateParallax(),f.isActive()&&f.update()}}function dt(a,d){b(l.slides,"section > .stretch, section > .r-stretch").forEach(v=>{let y=Ft(v,d);if(/(img|video)/gi.test(v.nodeName)){const E=v.naturalWidth||v.videoWidth,P=v.naturalHeight||v.videoHeight,T=Math.min(a/E,y/P);v.style.width=E*T+"px",v.style.height=P*T+"px"}else v.style.width=a+"px",v.style.height=y+"px"})}function xi(){if(l.wrapper&&!t.disableLayout&&!F.isActive()&&typeof t.scrollActivationWidth=="number"&&t.view!=="scroll"){const a=Se();a.presentationWidth>0&&a.presentationWidth<=t.scrollActivationWidth?A.isActive()||(L.create(),A.activate()):A.isActive()&&A.deactivate()}}function Se(a,d){let v=t.width,y=t.height;t.disableLayout&&(v=l.slides.offsetWidth,y=l.slides.offsetHeight);const E={width:v,height:y,presentationWidth:a||l.wrapper.offsetWidth,presentationHeight:d||l.wrapper.offsetHeight};return E.presentationWidth-=E.presentationWidth*t.margin,E.presentationHeight-=E.presentationHeight*t.margin,typeof E.width=="string"&&/%$/.test(E.width)&&(E.width=parseInt(E.width,10)/100*E.presentationWidth),typeof E.height=="string"&&/%$/.test(E.height)&&(E.height=parseInt(E.height,10)/100*E.presentationHeight),E}function ct(a,d){typeof a=="object"&&typeof a.setAttribute=="function"&&a.setAttribute("data-previous-indexv",d||0)}function ht(a){if(typeof a=="object"&&typeof a.setAttribute=="function"&&a.classList.contains("stack")){const d=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(d)||0,10)}return 0}function pe(a=u){return a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function Ti(a=u){return a.classList.contains(".stack")||a.querySelector("section")!==null}function ut(){return u&&pe(u)?!u.nextElementSibling:!1}function ft(){return r===0&&o===0}function Fe(){return u?!(u.nextElementSibling||pe(u)&&u.parentNode.nextElementSibling):!1}function gt(){if(t.pause){const a=l.wrapper.classList.contains("paused");Re(),l.wrapper.classList.add("paused"),a===!1&&_({type:"paused"})}}function ve(){const a=l.wrapper.classList.contains("paused");l.wrapper.classList.remove("paused"),ge(),a&&_({type:"resumed"})}function pt(a){typeof a=="boolean"?a?gt():ve():me()?ve():gt()}function me(){return l.wrapper.classList.contains("paused")}function Ii(a){typeof a=="boolean"?a?W.show():W.hide():W.isVisible()?W.hide():W.show()}function Mi(a){typeof a=="boolean"?a?ke():Ae():O?ke():Ae()}function Ni(){return!!(M&&!O)}function G(a,d,v,y){if(_({type:"beforeslidechange",data:{indexh:a===void 0?r:a,indexv:d===void 0?o:d,origin:y}}).defaultPrevented)return;c=u;const P=l.wrapper.querySelectorAll(se);if(A.isActive()){const Q=A.getSlideByIndices(a,d);Q&&A.scrollToSlide(Q);return}if(P.length===0)return;d===void 0&&!f.isActive()&&(d=ht(P[a])),c&&c.parentNode&&c.parentNode.classList.contains("stack")&&ct(c.parentNode,o);const T=p.concat();p.length=0;let N=r||0,ce=o||0;r=mt(se,a===void 0?r:a),o=mt(Ye,d===void 0?o:d);let J=r!==N||o!==ce;J||(c=null);let X=P[r],I=X.querySelectorAll("section");h.classList.toggle("is-vertical-slide",I.length>1),u=I[o]||X;let ee=!1;J&&c&&u&&!f.isActive()&&(R="running",ee=ze(c,u,N,ce),ee&&l.slides.classList.add("disable-slide-transitions")),Oe(),fe(),f.isActive()&&f.update(),typeof v<"u"&&C.goto(v),c&&c!==u&&(c.classList.remove("present"),c.setAttribute("aria-hidden","true"),ft()&&setTimeout(()=>{zi().forEach(Q=>{ct(Q,0)})},0));e:for(let Q=0,ji=p.length;Q<ji;Q++){for(let xe=0;xe<T.length;xe++)if(T[xe]===p[Q]){T.splice(xe,1);continue e}l.viewport.classList.add(p[Q]),_({type:p[Q]})}for(;T.length;)l.viewport.classList.remove(T.pop());J&&ot(y),(J||!c)&&(k.stopEmbeddedContent(c),k.startEmbeddedContent(u)),requestAnimationFrame(()=>{He(we(u))}),K.update(),Y.update(),$.update(),L.update(),L.updateParallax(),B.update(),C.update(),x.writeURL(),ge(),ee&&(setTimeout(()=>{l.slides.classList.remove("disable-slide-transitions")},0),t.autoAnimate&&j.run(c,u))}function ze(a,d,v,y){return a.hasAttribute("data-auto-animate")&&d.hasAttribute("data-auto-animate")&&a.getAttribute("data-auto-animate-id")===d.getAttribute("data-auto-animate-id")&&!(r>v||o>y?d:a).hasAttribute("data-auto-animate-restart")}function Bi(a,d,v){let y=r||0;r=d,o=v;const E=u!==a;c=u,u=a,u&&c&&t.autoAnimate&&ze(c,u,y,o)&&j.run(c,u),E&&(c&&(k.stopEmbeddedContent(c),k.stopEmbeddedContent(c.slideBackgroundElement)),k.startEmbeddedContent(u),k.startEmbeddedContent(u.slideBackgroundElement)),requestAnimationFrame(()=>{He(we(u))}),ot()}function vt(){Ee(),at(),fe(),M=t.autoSlide,ge(),L.create(),x.writeURL(),t.sortFragmentsOnSync===!0&&C.sortAll(),Y.update(),K.update(),Oe(),$.update(),$.updateVisibility(),H.update(),L.update(!0),B.update(),k.formatEmbeddedContent(),t.autoPlayMedia===!1?k.stopEmbeddedContent(u,{unloadIframes:!1}):k.startEmbeddedContent(u),f.isActive()&&f.layout()}function Hi(a=u){L.sync(a),C.sync(a),k.load(a),L.update(),$.update()}function Di(){ne().forEach(a=>{b(a,"section").forEach((d,v)=>{v>0&&(d.classList.remove("present"),d.classList.remove("past"),d.classList.add("future"),d.setAttribute("aria-hidden","true"))})})}function Ve(a=ne()){a.forEach((d,v)=>{let y=a[Math.floor(Math.random()*a.length)];y.parentNode===d.parentNode&&d.parentNode.insertBefore(d,y);let E=d.querySelectorAll("section");E.length&&Ve(E)})}function mt(a,d){let v=b(l.wrapper,a),y=v.length,E=A.isActive()||F.isActive(),P=!1,T=!1;if(y){t.loop&&(d>=y&&(P=!0),d%=y,d<0&&(d=y+d,T=!0)),d=Math.max(Math.min(d,y-1),0);for(let X=0;X<y;X++){let I=v[X],ee=t.rtl&&!pe(I);if(I.classList.remove("past"),I.classList.remove("present"),I.classList.remove("future"),I.setAttribute("hidden",""),I.setAttribute("aria-hidden","true"),I.querySelector("section")&&I.classList.add("stack"),E){I.classList.add("present");continue}X<d?(I.classList.add(ee?"future":"past"),t.fragments&&yt(I)):X>d?(I.classList.add(ee?"past":"future"),t.fragments&&bt(I)):X===d&&t.fragments&&(P?bt(I):T&&yt(I))}let N=v[d],ce=N.classList.contains("present");N.classList.add("present"),N.removeAttribute("hidden"),N.removeAttribute("aria-hidden"),ce||_({target:N,type:"visible",bubbles:!1});let J=N.getAttribute("data-state");J&&(p=p.concat(J.split(" ")))}else d=0;return d}function yt(a){b(a,".fragment").forEach(d=>{d.classList.add("visible"),d.classList.remove("current-fragment")})}function bt(a){b(a,".fragment.visible").forEach(d=>{d.classList.remove("visible","current-fragment")})}function Oe(){let a=ne(),d=a.length,v,y;if(d&&typeof r<"u"){const E=f.isActive();let P=E?10:t.viewDistance;ue&&(P=E?6:t.mobileViewDistance),F.isActive()&&(P=Number.MAX_VALUE);for(let T=0;T<d;T++){let N=a[T],ce=b(N,"section"),J=ce.length;if(v=Math.abs((r||0)-T)||0,t.loop&&(v=Math.abs(((r||0)-T)%(d-P))||0),v<P?k.load(N):k.unload(N),J){let X=E?0:ht(N);for(let I=0;I<J;I++){let ee=ce[I];y=Math.abs(T===(r||0)?(o||0)-I:I-X),v+y<P?k.load(ee):k.unload(ee)}}}At()?l.wrapper.classList.add("has-vertical-slides"):l.wrapper.classList.remove("has-vertical-slides"),Rt()?l.wrapper.classList.add("has-horizontal-slides"):l.wrapper.classList.remove("has-horizontal-slides")}}function Z({includeFragments:a=!1}={}){let d=l.wrapper.querySelectorAll(se),v=l.wrapper.querySelectorAll(Ye),y={left:r>0,right:r<d.length-1,up:o>0,down:o<v.length-1};if(t.loop&&(d.length>1&&(y.left=!0,y.right=!0),v.length>1&&(y.up=!0,y.down=!0)),d.length>1&&t.navigationMode==="linear"&&(y.right=y.right||y.down,y.left=y.left||y.up),a===!0){let E=C.availableRoutes();y.left=y.left||E.prev,y.up=y.up||E.prev,y.down=y.down||E.next,y.right=y.right||E.next}if(t.rtl){let E=y.left;y.left=y.right,y.right=E}return y}function wt(a=u){let d=ne(),v=0;e:for(let y=0;y<d.length;y++){let E=d[y],P=E.querySelectorAll("section");for(let T=0;T<P.length;T++){if(P[T]===a)break e;P[T].dataset.visibility!=="uncounted"&&v++}if(E===a)break;E.classList.contains("stack")===!1&&E.dataset.visibility!=="uncounted"&&v++}return v}function Fi(){let a=kt(),d=wt();if(u){let v=u.querySelectorAll(".fragment");if(v.length>0){let y=u.querySelectorAll(".fragment.visible");d+=y.length/v.length*.9}}return Math.min(d/(a-1),1)}function Et(a){let d=r,v=o,y;if(a)if(A.isActive())d=parseInt(a.getAttribute("data-index-h"),10),a.getAttribute("data-index-v")&&(v=parseInt(a.getAttribute("data-index-v"),10));else{let E=pe(a),P=E?a.parentNode:a,T=ne();d=Math.max(T.indexOf(P),0),v=void 0,E&&(v=Math.max(b(a.parentNode,"section").indexOf(a),0))}if(!a&&u&&u.querySelectorAll(".fragment").length>0){let P=u.querySelector(".current-fragment");P&&P.hasAttribute("data-fragment-index")?y=parseInt(P.getAttribute("data-fragment-index"),10):y=u.querySelectorAll(".fragment.visible").length-1}return{h:d,v,f:y}}function qe(){return b(l.wrapper,oe+':not(.stack):not([data-visibility="uncounted"])')}function ne(){return b(l.wrapper,se)}function St(){return b(l.wrapper,".slides>section>section")}function zi(){return b(l.wrapper,se+".stack")}function Rt(){return ne().length>1}function At(){return St().length>1}function Vi(){return qe().map(a=>{let d={};for(let v=0;v<a.attributes.length;v++){let y=a.attributes[v];d[y.name]=y.value}return d})}function kt(){return qe().length}function Ct(a,d){let v=ne()[a],y=v&&v.querySelectorAll("section");return y&&y.length&&typeof d=="number"?y?y[d]:void 0:v}function Oi(a,d){let v=typeof a=="number"?Ct(a,d):a;if(v)return v.slideBackgroundElement}function Lt(){let a=Et();return{indexh:a.h,indexv:a.v,indexf:a.f,paused:me(),overview:f.isActive(),...H.getState()}}function qi(a){if(typeof a=="object"){G(he(a.indexh),he(a.indexv),he(a.indexf));let d=he(a.paused),v=he(a.overview);typeof d=="boolean"&&d!==me()&&pt(d),typeof v=="boolean"&&v!==f.isActive()&&f.toggle(v),H.setState(a)}}function ge(){if(Re(),u&&t.autoSlide!==!1){let a=u.querySelector(".current-fragment[data-autoslide]"),d=a?a.getAttribute("data-autoslide"):null,v=u.parentNode?u.parentNode.getAttribute("data-autoslide"):null,y=u.getAttribute("data-autoslide");d?M=parseInt(d,10):y?M=parseInt(y,10):v?M=parseInt(v,10):(M=t.autoSlide,u.querySelectorAll(".fragment").length===0&&b(u,"video, audio").forEach(E=>{E.hasAttribute("data-autoplay")&&M&&E.duration*1e3/E.playbackRate>M&&(M=E.duration*1e3/E.playbackRate+1e3)})),M&&!O&&!me()&&!f.isActive()&&(!Fe()||C.availableRoutes().next||t.loop===!0)&&(U=setTimeout(()=>{typeof t.autoSlideMethod=="function"?t.autoSlideMethod():je(),ge()},M),le=Date.now()),q&&q.setPlaying(U!==-1)}}function Re(){clearTimeout(U),U=-1}function Ae(){M&&!O&&(O=!0,_({type:"autoslidepaused"}),clearTimeout(U),q&&q.setPlaying(!1))}function ke(){M&&O&&(O=!1,_({type:"autoslideresumed"}),ge())}function Ce({skipFragments:a=!1}={}){if(g.hasNavigatedHorizontally=!0,A.isActive())return A.prev();t.rtl?(f.isActive()||a||C.next()===!1)&&Z().left&&G(r+1,t.navigationMode==="grid"?o:void 0):(f.isActive()||a||C.prev()===!1)&&Z().left&&G(r-1,t.navigationMode==="grid"?o:void 0)}function Le({skipFragments:a=!1}={}){if(g.hasNavigatedHorizontally=!0,A.isActive())return A.next();t.rtl?(f.isActive()||a||C.prev()===!1)&&Z().right&&G(r-1,t.navigationMode==="grid"?o:void 0):(f.isActive()||a||C.next()===!1)&&Z().right&&G(r+1,t.navigationMode==="grid"?o:void 0)}function Ue({skipFragments:a=!1}={}){if(A.isActive())return A.prev();(f.isActive()||a||C.prev()===!1)&&Z().up&&G(r,o-1)}function We({skipFragments:a=!1}={}){if(g.hasNavigatedVertically=!0,A.isActive())return A.next();(f.isActive()||a||C.next()===!1)&&Z().down&&G(r,o+1)}function Pt({skipFragments:a=!1}={}){if(A.isActive())return A.prev();if(a||C.prev()===!1)if(Z().up)Ue({skipFragments:a});else{let d;if(t.rtl?d=b(l.wrapper,se+".future").pop():d=b(l.wrapper,se+".past").pop(),d&&d.classList.contains("stack")){let v=d.querySelectorAll("section").length-1||void 0,y=r-1;G(y,v)}else t.rtl?Le({skipFragments:a}):Ce({skipFragments:a})}}function je({skipFragments:a=!1}={}){if(g.hasNavigatedHorizontally=!0,g.hasNavigatedVertically=!0,A.isActive())return A.next();if(a||C.next()===!1){let d=Z();d.down&&d.right&&t.loop&&ut()&&(d.down=!1),d.down?We({skipFragments:a}):t.rtl?Ce({skipFragments:a}):Le({skipFragments:a})}}function Ui(a){t.autoSlideStoppable&&Ae()}function xt(a){let d=a.data;if(typeof d=="string"&&d.charAt(0)==="{"&&d.charAt(d.length-1)==="}"&&(d=JSON.parse(d),d.method&&typeof i[d.method]=="function"))if(jt.test(d.method)===!1){const v=i[d.method].apply(i,d.args);lt("callback",{method:d.method,result:v})}else console.warn('reveal.js: "'+d.method+'" is is blacklisted from the postMessage API')}function Tt(a){R==="running"&&/section/gi.test(a.target.nodeName)&&(R="idle",_({type:"slidetransitionend",data:{indexh:r,indexv:o,previousSlide:c,currentSlide:u}}))}function It(a){const d=V(a.target,'a[href^="#"]');if(d){const v=d.getAttribute("href"),y=x.getIndicesFromHash(v);y&&(i.slide(y.h,y.v,y.f),a.preventDefault())}}function Mt(a){fe()}function Nt(a){document.hidden===!1&&document.activeElement!==document.body&&(typeof document.activeElement.blur=="function"&&document.activeElement.blur(),document.body.focus())}function Pe(a){(document.fullscreenElement||document.webkitFullscreenElement)===l.wrapper&&(a.stopImmediatePropagation(),setTimeout(()=>{i.layout(),i.focus.focus()},1))}function Wi(a){Fe()&&t.loop===!1?(G(0,0),ke()):O?ke():Ae()}const Bt={VERSION:et,initialize:yi,configure:st,destroy:Pi,sync:vt,syncSlide:Hi,syncFragments:C.sync.bind(C),slide:G,left:Ce,right:Le,up:Ue,down:We,prev:Pt,next:je,navigateLeft:Ce,navigateRight:Le,navigateUp:Ue,navigateDown:We,navigatePrev:Pt,navigateNext:je,navigateFragment:C.goto.bind(C),prevFragment:C.prev.bind(C),nextFragment:C.next.bind(C),on:rt,off:nt,addEventListener:rt,removeEventListener:nt,layout:fe,shuffle:Ve,availableRoutes:Z,availableFragments:C.availableRoutes.bind(C),toggleHelp:H.toggleHelp.bind(H),toggleOverview:f.toggle.bind(f),toggleScrollView:A.toggle.bind(A),togglePause:pt,toggleAutoSlide:Mi,toggleJumpToSlide:Ii,isFirstSlide:ft,isLastSlide:Fe,isLastVerticalSlide:ut,isVerticalSlide:pe,isVerticalStack:Ti,isPaused:me,isAutoSliding:Ni,isSpeakerNotes:$.isSpeakerNotesWindow.bind($),isOverview:f.isActive.bind(f),isFocused:de.isFocused.bind(de),isOverlayOpen:H.isOpen.bind(H),isScrollView:A.isActive.bind(A),isPrintView:F.isActive.bind(F),isReady:()=>n,loadSlide:k.load.bind(k),unloadSlide:k.unload.bind(k),startEmbeddedContent:()=>k.startEmbeddedContent(u),stopEmbeddedContent:()=>k.stopEmbeddedContent(u,{unloadIframes:!1}),previewIframe:H.previewIframe.bind(H),previewImage:H.previewImage.bind(H),previewVideo:H.previewVideo.bind(H),showPreview:H.previewIframe.bind(H),hidePreview:H.close.bind(H),addEventListeners:at,removeEventListeners:Ee,dispatchEvent:_,getState:Lt,setState:qi,getProgress:Fi,getIndices:Et,getSlidesAttributes:Vi,getSlidePastCount:wt,getTotalSlides:kt,getSlide:Ct,getPreviousSlide:()=>c,getCurrentSlide:()=>u,getSlideBackground:Oi,getSlideNotes:$.getSlideNotes.bind($),getSlides:qe,getHorizontalSlides:ne,getVerticalSlides:St,hasHorizontalSlides:Rt,hasVerticalSlides:At,hasNavigatedHorizontally:()=>g.hasNavigatedHorizontally,hasNavigatedVertically:()=>g.hasNavigatedVertically,shouldAutoAnimateBetween:ze,addKeyBinding:S.addKeyBinding.bind(S),removeKeyBinding:S.removeKeyBinding.bind(S),triggerKey:S.triggerKey.bind(S),registerKeyboardShortcut:S.registerKeyboardShortcut.bind(S),getComputedSlideSize:Se,setCurrentScrollPage:Bi,getScale:()=>m,getConfig:()=>t,getQueryHash:_e,getSlidePath:x.getHash.bind(x),getRevealElement:()=>h,getSlidesElement:()=>l.slides,getViewportElement:()=>l.viewport,getBackgroundsElement:()=>L.element,registerPlugin:D.registerPlugin.bind(D),hasPlugin:D.hasPlugin.bind(D),getPlugin:D.getPlugin.bind(D),getPlugins:D.getRegisteredPlugins.bind(D)};return z(i,{...Bt,announceStatus:He,getStatusText:we,focus:de,scroll:A,progress:K,controls:Y,location:x,overview:f,keyboard:S,fragments:C,backgrounds:L,slideContent:k,slideNumber:B,onUserInput:Ui,closeOverlay:H.close.bind(H),updateSlidesVisibility:Oe,layoutSlideContents:dt,transformSlides:De,cueAutoSlide:ge,cancelAutoSlide:Re}),Bt}const ae=tt,it=[];return ae.initialize=h=>(Object.assign(ae,new tt(document.querySelector(".reveal"),h)),it.map(e=>e(ae)),ae.initialize()),["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach(h=>{ae[h]=(...e)=>{it.push(i=>i[h].call(null,...e))}}),ae.isReady=()=>!1,ae.VERSION=et,ae});
|