From 313ad46e30f54b3f459518a7a04f5825033d40d3 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Sat, 7 Mar 2020 11:00:06 +0100 Subject: [PATCH] move default config to separate module --- dist/reveal.min.js | 2 +- js/config.js | 281 ++++++++++++++++++++++++++++++++++++++++++++ js/reveal.js | 285 +-------------------------------------------- 3 files changed, 285 insertions(+), 283 deletions(-) create mode 100644 js/config.js diff --git a/dist/reveal.min.js b/dist/reveal.min.js index b957ef1..98333f7 100644 --- a/dist/reveal.min.js +++ b/dist/reveal.min.js @@ -5,4 +5,4 @@ * * Copyright (C) 2020 Hakim El Hattab, https://hakim.se */ -!function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,a){"use strict";a.r(t);class n{constructor(e,t){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=t,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 t=this.playing;this.playing=e,!t&&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,t=this.diameter2-this.thickness,a=this.diameter2,n=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);const r=-Math.PI/2+e*(2*Math.PI),i=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(a,n,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(a,n,t,0,2*Math.PI,!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(a,n,t,i,r,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(a-14,n-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var r=function(e,t){let a;const r=navigator.userAgent,i=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;let o,s,l,d,c,u,p,f,h,g={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,history:!1,keyboard:!0,keyboardCondition:null,overview:!0,disableLayout:!1,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!1,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,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,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[]},m=!1,v=!1,b=null,y=null,w=!1,A=!1,k=[],E=1,S={layout:"",overview:""},L={},x={},M=[],N={},q=0,I=0,P=!1,T=0,C=!1,O=0,R=0,D=0,B=-1,H=!1,z={startX:0,startY:0,startCount:0,captured:!1,threshold:40},j={},$={};function W(){let e=Object.keys(x).length;if(0===e)F();else{let t=()=>{0==--e&&F()};for(let e in x){let a=x[e];if("function"==typeof a.init){let e=a.init();e&&"function"==typeof e.then?e.then(t):t()}else t()}}}function F(){M.length&&M.forEach(e=>{U(e.src,e.callback)}),m=!0,L.slides.classList.add("no-transition"),u?L.wrapper.classList.add("no-hover"):L.wrapper.classList.remove("no-hover"),/iphone/gi.test(r)?L.wrapper.classList.add("ua-iphone"):L.wrapper.classList.remove("ua-iphone"),L.background=Y(L.wrapper,"div","backgrounds",null),L.progress=Y(L.wrapper,"div","progress",""),L.progressbar=L.progress.querySelector("span"),L.controls=Y(L.wrapper,"aside","controls",`\n\t\t\t\n\t\t\t\n\t\t\t`),L.slideNumber=Y(L.wrapper,"div","slide-number",""),L.speakerNotes=Y(L.wrapper,"div","speaker-notes",null),L.speakerNotes.setAttribute("data-prevent-swipe",""),L.speakerNotes.setAttribute("tabindex","0"),L.pauseOverlay=Y(L.wrapper,"div","pause-overlay",g.controls?'':null),L.wrapper.setAttribute("role","application"),L.controlsLeft=ee(document.querySelectorAll(".navigate-left")),L.controlsRight=ee(document.querySelectorAll(".navigate-right")),L.controlsUp=ee(document.querySelectorAll(".navigate-up")),L.controlsDown=ee(document.querySelectorAll(".navigate-down")),L.controlsPrev=ee(document.querySelectorAll(".navigate-prev")),L.controlsNext=ee(document.querySelectorAll(".navigate-next")),L.controlsRightArrow=L.controls.querySelector(".navigate-right"),L.controlsLeftArrow=L.controls.querySelector(".navigate-left"),L.controlsDownArrow=L.controls.querySelector(".navigate-down"),L.statusDiv=function(){let e=document.getElementById("aria-status-div");return e||(e=document.createElement("div"),e.style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.setAttribute("id","aria-status-div"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),L.wrapper.appendChild(e)),e}(),g.postMessage&&window.addEventListener("message",e=>{const t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t),t.method&&"function"==typeof a[t.method]))if(!1===i.test(t.method)){var n=a[t.method].apply(a,t.args);de("callback",{method:t.method,result:n})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')},!1),setInterval(()=>{0===L.wrapper.scrollTop&&0===L.wrapper.scrollLeft||(L.wrapper.scrollTop=0,L.wrapper.scrollLeft=0)},1e3),mt().forEach((function(e){ee(e.querySelectorAll("section")).forEach((e,t)=>{t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))})})),J(),pt(),Xe(!0),setTimeout(()=>{L.slides.classList.remove("no-transition"),L.wrapper.classList.add("ready"),le("ready",{indexh:o,indexv:s,currentSlide:d})},1),se()&&(Z(),"complete"===document.readyState?X():window.addEventListener("load",X))}function U(e,t){const a=document.createElement("script");a.type="text/javascript",a.async=!1,a.defer=!1,a.src=e,t&&(a.onload=a.onreadystatechange=e=>{("load"===e.type||/loaded|complete/.test(a.readyState))&&(a.onload=a.onreadystatechange=a.onerror=null,t())},a.onerror=e=>{a.onload=a.onreadystatechange=a.onerror=null,t(new Error("Failed loading script: "+a.src+"\n"+e))});const n=document.querySelector("head");n.insertBefore(a,n.lastChild)}function V(e){let t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){let a=e.getAttribute("aria-hidden"),n="none"===window.getComputedStyle(e).display;"true"===a||n||ee(e.childNodes).forEach(e=>{t+=V(e)})}return t.trim()}function X(){var e=ve(window.innerWidth,window.innerHeight),t=Math.floor(e.width*(1+g.margin)),a=Math.floor(e.height*(1+g.margin)),n=e.width,r=e.height;re("@page{size:"+t+"px "+a+"px; margin: 0px;}"),re(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+n+"px; max-height:"+r+"px}"),document.body.classList.add("print-pdf"),document.body.style.width=t+"px",document.body.style.height=a+"px",me(n,r);var i=g.slideNumber&&/all|print/i.test(g.showSlideNumber);ee(L.wrapper.querySelectorAll(".slides section")).forEach((function(e){e.setAttribute("data-slide-number",Ue(e))})),ee(L.wrapper.querySelectorAll(".slides section")).forEach((function(e){if(!1===e.classList.contains("stack")){var o=(t-n)/2,s=(a-r)/2,l=e.scrollHeight,d=Math.max(Math.ceil(l/a),1);(1===(d=Math.min(d,g.pdfMaxPagesPerSlide))&&g.center||e.classList.contains("center"))&&(s=Math.max((a-l)/2,0));var c=document.createElement("div");if(c.className="pdf-page",c.style.height=(a+g.pdfPageHeightOffset)*d+"px",e.parentNode.insertBefore(c,e),c.appendChild(e),e.style.left=o+"px",e.style.top=s+"px",e.style.width=n+"px",e.slideBackgroundElement&&c.insertBefore(e.slideBackgroundElement,e),g.showNotes){var u=Et(e);if(u){var p="string"==typeof g.showNotes?g.showNotes:"inline",f=document.createElement("div");f.classList.add("speaker-notes"),f.classList.add("speaker-notes-pdf"),f.setAttribute("data-layout",p),f.innerHTML=u,"separate-page"===p?c.parentNode.insertBefore(f,c.nextSibling):(f.style.left="8px",f.style.bottom="8px",f.style.width=t-16+"px",c.appendChild(f))}}if(i){var h=document.createElement("div");h.classList.add("slide-number"),h.classList.add("slide-number-pdf"),h.innerHTML=e.getAttribute("data-slide-number"),c.appendChild(h)}if(g.pdfSeparateFragments){var m,v,b=Lt(c.querySelectorAll(".fragment"),!0);b.forEach((function(e){m&&m.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}));var t=c.cloneNode(!0);c.parentNode.insertBefore(t,(v||c).nextSibling),m=e,v=t})),b.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else ee(c.querySelectorAll(".fragment:not(.fade-out)")).forEach((function(e){e.classList.add("visible")}))}})),le("pdf-ready")}function Y(e,t,a,n=""){let r=e.querySelectorAll("."+a);for(let t=0;t1&&g.autoSlide&&g.autoSlideStoppable&&(h=new n(L.wrapper,()=>Math.min(Math.max((Date.now()-B)/R,0),1)),h.on("click",ca),H=!1),!1===g.fragments&&ee(L.slides.querySelectorAll(".fragment")).forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")});let r="none";g.slideNumber&&!se()&&("all"===g.showSlideNumber||"speaker"===g.showSlideNumber&&ut())&&(r="block"),L.slideNumber.style.display=r,"default"!==g.navigationMode?L.wrapper.setAttribute("data-navigation-mode",g.navigationMode):L.wrapper.removeAttribute("data-navigation-mode"),"linear"===g.navigationMode?(j["→ , ↓ , SPACE , N , L , J"]="Next slide",j["← , ↑ , P , H , K"]="Previous slide"):(j["N , SPACE"]="Next slide",j.P="Previous slide",j["← , H"]="Navigate left",j["→ , L"]="Navigate right",j["↑ , K"]="Navigate up",j["↓ , J"]="Navigate down"),j["Home , Shift ←"]="First slide",j["End , Shift →"]="Last slide",j["B , ."]="Pause",j.F="Fullscreen",j["ESC, O"]="Slide overview",De()}function Q(){C=!0,window.addEventListener("hashchange",ia,!1),window.addEventListener("resize",oa,!1),g.touch&&("onpointerdown"in window?(L.wrapper.addEventListener("pointerdown",Kt,!1),L.wrapper.addEventListener("pointermove",_t,!1),L.wrapper.addEventListener("pointerup",Jt,!1)):window.navigator.msPointerEnabled?(L.wrapper.addEventListener("MSPointerDown",Kt,!1),L.wrapper.addEventListener("MSPointerMove",_t,!1),L.wrapper.addEventListener("MSPointerUp",Jt,!1)):(L.wrapper.addEventListener("touchstart",Vt,!1),L.wrapper.addEventListener("touchmove",Xt,!1),L.wrapper.addEventListener("touchend",Yt,!1))),g.keyboard&&(document.addEventListener("keydown",Ut,!1),document.addEventListener("keypress",Ft,!1)),g.progress&&L.progress&&L.progress.addEventListener("click",Zt,!1),L.pauseOverlay.addEventListener("click",Pe,!1),g.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",sa,!1);let e=["touchstart","click"];r.match(/android/gi)&&(e=["touchstart"]),e.forEach((function(e){L.controlsLeft.forEach((function(t){t.addEventListener(e,Gt,!1)})),L.controlsRight.forEach((function(t){t.addEventListener(e,ea,!1)})),L.controlsUp.forEach((function(t){t.addEventListener(e,ta,!1)})),L.controlsDown.forEach((function(t){t.addEventListener(e,aa,!1)})),L.controlsPrev.forEach((function(t){t.addEventListener(e,na,!1)})),L.controlsNext.forEach((function(t){t.addEventListener(e,ra,!1)}))}))}function Z(){C=!1,document.removeEventListener("keydown",Ut,!1),document.removeEventListener("keypress",Ft,!1),window.removeEventListener("hashchange",ia,!1),window.removeEventListener("resize",oa,!1),L.wrapper.removeEventListener("pointerdown",Kt,!1),L.wrapper.removeEventListener("pointermove",_t,!1),L.wrapper.removeEventListener("pointerup",Jt,!1),L.wrapper.removeEventListener("MSPointerDown",Kt,!1),L.wrapper.removeEventListener("MSPointerMove",_t,!1),L.wrapper.removeEventListener("MSPointerUp",Jt,!1),L.wrapper.removeEventListener("touchstart",Vt,!1),L.wrapper.removeEventListener("touchmove",Xt,!1),L.wrapper.removeEventListener("touchend",Yt,!1),L.pauseOverlay.removeEventListener("click",Pe,!1),g.progress&&L.progress&&L.progress.removeEventListener("click",Zt,!1),["touchstart","click"].forEach((function(e){L.controlsLeft.forEach((function(t){t.removeEventListener(e,Gt,!1)})),L.controlsRight.forEach((function(t){t.removeEventListener(e,ea,!1)})),L.controlsUp.forEach((function(t){t.removeEventListener(e,ta,!1)})),L.controlsDown.forEach((function(t){t.removeEventListener(e,aa,!1)})),L.controlsPrev.forEach((function(t){t.removeEventListener(e,na,!1)})),L.controlsNext.forEach((function(t){t.removeEventListener(e,ra,!1)}))}))}function G(e,t){for(var a in t)e[a]=t[a];return e}function ee(e){return Array.prototype.slice.call(e)}function te(e){if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e}function ae(e,t){e.style.transform=t}function ne(e){"string"==typeof e.layout&&(S.layout=e.layout),"string"==typeof e.overview&&(S.overview=e.overview),S.layout?ae(L.slides,S.layout+" "+S.overview):ae(L.slides,S.overview)}function re(e){let t=document.createElement("style");t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),document.getElementsByTagName("head")[0].appendChild(t)}function ie(e,t){let a=e.parentNode;for(;a;){let e=a.matches||a.matchesSelector||a.msMatchesSelector;if(e&&e.call(a,t))return a;a=a.parentNode}return null}function oe(e){let t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};let a=e.match(/^#([0-9a-f]{6})$/i);if(a&&a[1])return a=a[1],{r:parseInt(a.substr(0,2),16),g:parseInt(a.substr(2,2),16),b:parseInt(a.substr(4,2),16)};let n=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(n)return{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)};let r=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return r?{r:parseInt(r[1],10),g:parseInt(r[2],10),b:parseInt(r[3],10),a:parseFloat(r[4])}:null}function se(){return/print-pdf/gi.test(window.location.search)}function le(e,t){let a=document.createEvent("HTMLEvents",1,2);a.initEvent(e,!0,!0),G(a,t),L.wrapper.dispatchEvent(a),de(e)}function de(e,t){if(g.postMessageEvents&&window.parent!==window.self){let a={namespace:"reveal",eventName:e,state:St()};G(a,t),window.parent.postMessage(JSON.stringify(a),"*")}}function ce(e="a"){ee(document.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",da,!1)})}function ue(e="a"){ee(document.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",da,!1)})}function pe(e){"boolean"==typeof e?e?fe():he():L.overlay?he():fe()}function fe(){if(g.help){he(),L.overlay=document.createElement("div"),L.overlay.classList.add("overlay"),L.overlay.classList.add("overlay-help"),L.wrapper.appendChild(L.overlay);let a='

Keyboard Shortcuts


';for(var e in a+="",j)a+=``;for(var t in $)$[t].key&&$[t].description&&(a+=``);a+="
KEYACTION
${e}${j[e]}
${$[t].key}${$[t].description}
",L.overlay.innerHTML=`\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${a}
\n\t\t\t\t
\n\t\t\t`,L.overlay.querySelector(".close").addEventListener("click",(function(e){he(),e.preventDefault()}),!1)}}function he(){L.overlay&&(L.overlay.parentNode.removeChild(L.overlay),L.overlay=null)}function ge(){if(L.wrapper&&!se()){if(!g.disableLayout){u&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");const a=ve(),n=E;me(g.width,g.height),L.slides.style.width=a.width+"px",L.slides.style.height=a.height+"px",E=Math.min(a.presentationWidth/a.width,a.presentationHeight/a.height),E=Math.max(E,g.minScale),E=Math.min(E,g.maxScale),1===E?(L.slides.style.zoom="",L.slides.style.left="",L.slides.style.top="",L.slides.style.bottom="",L.slides.style.right="",ne({layout:""})):E>1&&N.zoom&&window.devicePixelRatio<2?(L.slides.style.zoom=E,L.slides.style.left="",L.slides.style.top="",L.slides.style.bottom="",L.slides.style.right="",ne({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",ne({layout:"translate(-50%, -50%) scale("+E+")"}));const r=ee(L.wrapper.querySelectorAll(".slides section"));for(var e=0,t=r.length;e .stretch")).forEach(a=>{var n=function(e,t=0){if(e){let a,n=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",a=t-e.parentNode.offsetHeight,e.style.height=n+"px",e.parentNode.style.removeProperty("height"),a}return t}(a,t);if(/(img|video)/gi.test(a.nodeName)){const t=a.naturalWidth||a.videoWidth,r=a.naturalHeight||a.videoHeight,i=Math.min(e/t,n/r);a.style.width=t*i+"px",a.style.height=r*i+"px"}else a.style.width=e+"px",a.style.height=n+"px"})}function ve(e,t){const a={width:g.width,height:g.height,presentationWidth:e||L.wrapper.offsetWidth,presentationHeight:t||L.wrapper.offsetHeight};return a.presentationWidth-=a.presentationWidth*g.margin,a.presentationHeight-=a.presentationHeight*g.margin,"string"==typeof a.width&&/%$/.test(a.width)&&(a.width=parseInt(a.width,10)/100*a.presentationWidth),"string"==typeof a.height&&/%$/.test(a.height)&&(a.height=parseInt(a.height,10)/100*a.presentationHeight),a}function be(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function ye(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){const t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function we(){if(g.overview&&!Le()){v=!0,L.wrapper.classList.add("overview"),Pt(),L.slides.appendChild(L.background),ee(L.wrapper.querySelectorAll(".slides section")).forEach(e=>{e.classList.contains("stack")||e.addEventListener("click",la,!0)});const e=70,t=ve();b=t.width+e,y=t.height+e,g.rtl&&(b=-b),je(),Ae(),ke(),ge(),le("overviewshown",{indexh:o,indexv:s,currentSlide:d})}}function Ae(){ee(L.wrapper.querySelectorAll(".slides>section")).forEach((e,t)=>{e.setAttribute("data-index-h",t),ae(e,"translate3d("+t*b+"px, 0, 0)"),e.classList.contains("stack")&&ee(e.querySelectorAll("section")).forEach((e,a)=>{e.setAttribute("data-index-h",t),e.setAttribute("data-index-v",a),ae(e,"translate3d(0, "+a*y+"px, 0)")})}),ee(L.background.childNodes).forEach((e,t)=>{ae(e,"translate3d("+t*b+"px, 0, 0)"),ee(e.querySelectorAll(".slide-background")).forEach((e,t)=>{ae(e,"translate3d(0, "+t*y+"px, 0)")})})}function ke(){const e=Math.min(window.innerWidth,window.innerHeight);ne({overview:["scale("+Math.max(e/5,150)/e+")","translateX("+-o*b+"px)","translateY("+-s*y+"px)"].join(" ")})}function Ee(){g.overview&&(v=!1,L.wrapper.classList.remove("overview"),L.wrapper.classList.add("overview-deactivating"),setTimeout(()=>{L.wrapper.classList.remove("overview-deactivating")},1),L.wrapper.appendChild(L.background),ee(L.wrapper.querySelectorAll(".slides section")).forEach(e=>{ae(e,""),e.removeEventListener("click",la,!0)}),ee(L.background.querySelectorAll(".slide-background")).forEach(e=>{ae(e,"")}),ne({overview:""}),Re(o,s),ge(),It(),le("overviewhidden",{indexh:o,indexv:s,currentSlide:d}))}function Se(e){"boolean"==typeof e?e?we():Ee():Le()?Ee():we()}function Le(){return v}function xe(e){let t="/",a=e||d,n=a?a.getAttribute("id"):null;n&&(n=encodeURIComponent(n));let r=ht(e);if(g.fragmentInURL||(r.f=void 0),"string"==typeof n&&n.length&&void 0===r.f)t="/"+n;else{let e=g.hashOneBasedIndex?1:0;(r.h>0||r.v>0||void 0!==r.f)&&(t+=r.h+e),(r.v>0||void 0!==r.f)&&(t+="/"+(r.v+e)),void 0!==r.f&&(t+="/"+r.f)}return t}function Me(e=d){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Ne(){P&&(P=!1,L.wrapper.style.cursor="")}function qe(){!1===P&&(P=!0,L.wrapper.style.cursor="none")}function Ie(){if(g.pause){const e=L.wrapper.classList.contains("paused");Pt(),L.wrapper.classList.add("paused"),!1===e&&le("paused")}}function Pe(){const e=L.wrapper.classList.contains("paused");L.wrapper.classList.remove("paused"),It(),e&&le("resumed")}function Te(e){"boolean"==typeof e?e?Ie():Pe():Ce()?Pe():Ie()}function Ce(){return L.wrapper.classList.contains("paused")}function Oe(e){"boolean"==typeof e?e?Ct():Tt():H?Ct():Tt()}function Re(e,t,n,r){l=d;const i=L.wrapper.querySelectorAll(".slides>section");if(0===i.length)return;void 0!==t||Le()||(t=ye(i[e])),l&&l.parentNode&&l.parentNode.classList.contains("stack")&&be(l.parentNode,s);const c=k.concat();k.length=0;let u=o||0,p=s||0;o=ze(".slides>section",void 0===e?o:e),s=ze(".slides>section.present>section",void 0===t?s:t),je(),ge(),Le()&&ke();let h=i[o],m=h.querySelectorAll("section");d=m[s]||h,void 0!==n&&Mt(n);let v=o!==u||s!==p;v||(l=null),l&&l!==d&&(l.classList.remove("present"),l.setAttribute("aria-hidden","true"),a.isFirstSlide()&&setTimeout(()=>{ee(L.wrapper.querySelectorAll(".slides>section.stack")).forEach(e=>{be(e,0)})},0));e:for(let e=0,t=k.length;e{L.slides.classList.remove("disable-slide-transitions")},0),g.autoAnimate&&function(e,t){Ke(),f&&f.parentNode&&(f.parentNode.removeChild(f),f=null);if(e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")){f=f||document.createElement("style"),f.type="text/css",document.head.appendChild(f);let n=_e(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";let r=function(e,t){let a=("function"==typeof g.autoAnimateMatcher?g.autoAnimateMatcher:Qe)(e,t),n=[];return a.filter((e,t)=>{if(-1===n.indexOf(e.to))return n.push(e.to),!0})}(e,t).map((function(e){return function(e,t,n,r,i){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=i;let o=_e(t,r);void 0!==n.delay&&(o.delay=n.delay);void 0!==n.duration&&(o.duration=n.duration);void 0!==n.easing&&(o.easing=n.easing);let s=Je("from",e,n),l=Je("to",t,n);if(!1!==n.translate||!1!==n.scale){let e=a.getScale(),t={x:(s.x-l.x)/e,y:(s.y-l.y)/e,scaleX:s.width/l.width,scaleY:s.height/l.height};t.x=Math.round(1e3*t.x)/1e3,t.y=Math.round(1e3*t.y)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3;let r=!1!==n.translate&&(0!==t.x||0!==t.y),i=!1!==n.scale&&(0!==t.scaleX||0!==t.scaleY);if(r||i){let e=[];r&&e.push(`translate(${t.x}px, ${t.y}px)`),i&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),s.styles.transform=e.join(" "),s.styles["transform-origin"]="top left",l.styles.transform="none"}}for(let e in l.styles){const t=l.styles[e],a=s.styles[e];t===a?delete l.styles[e]:(!0===t.explicitValue&&(l.styles[e]=t.value),!0===a.explicitValue&&(s.styles[e]=a.value))}let d="",c=Object.keys(l.styles);if(c.length>0){s.styles.transition="none",l.styles.transition=`all ${o.duration}s ${o.easing} ${o.delay}s`,l.styles["transition-property"]=c.join(", "),l.styles["will-change"]=c.join(", ");let e=Object.keys(s.styles).map((function(e){return e+": "+s.styles[e]+" !important;"})).join(""),t=Object.keys(l.styles).map((function(e){return e+": "+l.styles[e]+" !important;"})).join("");d='[data-auto-animate-target="'+i+'"] {'+e+'}[data-auto-animate="running"] [data-auto-animate-target="'+i+'"] {'+t+"}"}return d}(e.from,e.to,e.options||{},n,O++)}));"false"!==t.dataset.autoAnimateUnmatched&&!0===g.autoAnimateUnmatched&&(function e(t){return[].slice.call(t.children).reduce((t,a)=>{const n=a.querySelector("[data-auto-animate-target]");return a.hasAttribute("data-auto-animate-target")||n||t.push(a),a.querySelector("[data-auto-animate-target]")&&(t=t.concat(e(a))),t},[])}(t).forEach((function(e){e.dataset.autoAnimateTarget="unmatched"})),r.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${.8*n.duration}s ease ${.2*n.duration}s; }`)),f.innerHTML=r.join(""),requestAnimationFrame(()=>{f&&(getComputedStyle(f).fontWeight,t.dataset.autoAnimate="running")}),le("autoanimate",{fromSlide:e,toSlide:t,sheet:f})}}(l,d))}function De(){Z(),Q(),ge(),R=g.autoSlide,It(),se(),L.background.innerHTML="",L.background.classList.add("no-transition"),ee(L.wrapper.querySelectorAll(".slides>section")).forEach(e=>{let t=K(e,L.background);ee(e.querySelectorAll("section")).forEach(e=>{K(e,t),t.classList.add("stack")})}),g.parallaxBackgroundImage?(L.background.style.backgroundImage='url("'+g.parallaxBackgroundImage+'")',L.background.style.backgroundSize=g.parallaxBackgroundSize,L.background.style.backgroundRepeat=g.parallaxBackgroundRepeat,L.background.style.backgroundPosition=g.parallaxBackgroundPosition,setTimeout(()=>{L.wrapper.classList.add("has-parallax-background")},1)):(L.background.style.backgroundImage="",L.wrapper.classList.remove("has-parallax-background")),ft(),mt().forEach(e=>{let t=ee(e.querySelectorAll("section"));t.forEach((e,t)=>{Lt(e.querySelectorAll(".fragment"))}),0===t.length&&Lt(e.querySelectorAll(".fragment"))}),Ve(),We(),Fe(),je(),Xe(!0),g.showNotes&&L.slides.querySelectorAll("[data-notes], aside.notes").length>0?L.wrapper.classList.add("show-notes"):L.wrapper.classList.remove("show-notes"),$e(),function(){let e=(e,t,a)=>{ee(L.slides.querySelectorAll("iframe["+e+'*="'+t+'"]')).forEach(t=>{var n=t.getAttribute(e);n&&-1===n.indexOf(a)&&t.setAttribute(e,n+(/\?/.test(n)?"&":"?")+a)})};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")}(),!1===g.autoPlayMedia?lt(d,{unloadIframes:!1}):it(d),Le()&&Ae()}function Be(e=d){return Lt(e.querySelectorAll(".fragment"))}function He(){mt().forEach((e,t,a)=>{L.slides.insertBefore(e,a[Math.floor(Math.random()*a.length)])})}function ze(e,t){let a=ee(L.wrapper.querySelectorAll(e)),n=a.length,r=se();if(n){g.loop&&(t%=n)<0&&(t=n+t),t=Math.max(Math.min(t,n-1),0);for(let e=0;e{e.classList.add("visible"),e.classList.remove("current-fragment")})):e>t&&(n.classList.add(i?"past":"future"),g.fragments&&ee(n.querySelectorAll(".fragment.visible")).forEach(e=>{e.classList.remove("visible","current-fragment")}))}a[t].classList.add("present"),a[t].removeAttribute("hidden"),a[t].removeAttribute("aria-hidden");let e=a[t].getAttribute("data-state");e&&(k=k.concat(e.split(" ")))}else t=0;return t}function je(){let e,t,a=mt(),n=a.length;if(n&&void 0!==o){let r=Le()?10:g.viewDistance;u&&(r=Le()?6:g.mobileViewDistance),se()&&(r=Number.MAX_VALUE);for(let i=0;iNo notes on this slide.')}function We(){g.progress&&L.progressbar&&(L.progressbar.style.width=ct()*L.wrapper.offsetWidth+"px")}function Fe(){g.slideNumber&&L.slideNumber&&(L.slideNumber.innerHTML=Ue())}function Ue(e=d){let t,a="h.v";if("function"==typeof g.slideNumber)t=g.slideNumber(e);else switch("string"==typeof g.slideNumber&&(a=g.slideNumber),/c/.test(a)||1!==L.wrapper.querySelectorAll(".slides>section").length||(a="c"),t=[],a){case"c":t.push(dt(e)+1);break;case"c/t":t.push(dt(e)+1,"/",wt());break;default:let n=ht(e);t.push(n.h+1);let r="h/v"===a?"/":".";Me(e)&&t.push(r,n.v+1)}let n="#"+xe(e);return function(e,t,a,n="#"+xe()){return"number"!=typeof a||isNaN(a)?`\n\t\t\t\t\t${e}\n\t\t\t\t\t`:`\n\t\t\t\t\t${e}\n\t\t\t\t\t${t}\n\t\t\t\t\t${a}\n\t\t\t\t\t`}(t[0],t[1],t[2],n)}function Ve(){let e=nt(),t=rt();[...L.controlsLeft,...L.controlsRight,...L.controlsUp,...L.controlsDown,...L.controlsPrev,...L.controlsNext].forEach(e=>{e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")}),e.left&&L.controlsLeft.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&L.controlsRight.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&L.controlsUp.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&L.controlsDown.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&L.controlsPrev.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&L.controlsNext.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),d&&(t.prev&&L.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&L.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),Me(d)?(t.prev&&L.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&L.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(t.prev&&L.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&L.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))),g.controlsTutorial&&(!A&&e.down?L.controlsDownArrow.classList.add("highlight"):(L.controlsDownArrow.classList.remove("highlight"),g.rtl?!w&&e.left&&0===s?L.controlsLeftArrow.classList.add("highlight"):L.controlsLeftArrow.classList.remove("highlight"):!w&&e.right&&0===s?L.controlsRightArrow.classList.add("highlight"):L.controlsRightArrow.classList.remove("highlight")))}function Xe(e=!1){let t=null,a=g.rtl?"future":"past",n=g.rtl?"past":"future";if(ee(L.background.childNodes).forEach((r,i)=>{r.classList.remove("past","present","future"),io?r.classList.add(n):(r.classList.add("present"),t=r),(e||i===o)&&ee(r.querySelectorAll(".slide-background")).forEach((e,a)=>{e.classList.remove("past","present","future"),as?e.classList.add("future"):(e.classList.add("present"),i===o&&(t=e))})}),c&<(c,{unloadIframes:!et(c)}),t){it(t);let e=t.querySelector(".slide-background-content");if(e){let t=e.style.backgroundImage||"";/\.gif/i.test(t)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}let a=c?c.getAttribute("data-background-hash"):null,n=t.getAttribute("data-background-hash");n&&n===a&&t!==c&&L.background.classList.add("no-transition"),c=t}d&&["has-light-background","has-dark-background"].forEach(e=>{d.classList.contains(e)?L.wrapper.classList.add(e):L.wrapper.classList.remove(e)}),setTimeout(()=>{L.background.classList.remove("no-transition")},1)}function Ye(){if(g.parallaxBackgroundImage){let e,t,a=mt(),n=vt(),r=L.background.style.backgroundSize.split(" ");1===r.length?e=t=parseInt(r[0],10):(e=parseInt(r[0],10),t=parseInt(r[1],10));let i,l,d=L.background.offsetWidth,c=a.length;i="number"==typeof g.parallaxBackgroundHorizontal?g.parallaxBackgroundHorizontal:c>1?(e-d)/(c-1):0,l=i*o*-1;let u,p,f=L.background.offsetHeight,h=n.length;u="number"==typeof g.parallaxBackgroundVertical?g.parallaxBackgroundVertical:(t-f)/(h-1),p=h>0?u*s:0,L.background.style.backgroundPosition=l+"px "+-p+"px"}}function Ke(){ee(L.wrapper.querySelectorAll("[data-auto-animate-target]")).forEach(e=>{delete e.dataset.autoAnimateTarget})}function _e(e,t){let a={easing:g.autoAnimateEasing,duration:g.autoAnimateDuration,delay:0};if(a=G(a,t),e.closest&&e.parentNode){let t=e.parentNode.closest("[data-auto-animate-target]");t&&(a=_e(t,a))}return e.dataset.autoAnimateEasing&&(a.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(a.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(a.delay=parseFloat(e.dataset.autoAnimateDelay)),a}function Je(e,t,a){let n={styles:[]};if(!1!==a.translate||!1!==a.scale){let e;e="function"==typeof a.measure?a.measure(t):t.getBoundingClientRect(),n.x=e.x,n.y=e.y,n.width=e.width,n.height=e.height}const r=getComputedStyle(t);return(a.styles||g.autoAnimateStyles).forEach(t=>{let a;"string"==typeof t&&(t={property:t}),a=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:r[t.property],""!==a&&(n.styles[t.property]=a)}),n}function Qe(e,t){let a=[];const n="h1, h2, h3, h4, h5, h6, p, li";return Ge(a,e,t,"[data-id]",e=>e.nodeName+":::"+e.getAttribute("data-id")),Ge(a,e,t,n,e=>e.nodeName+":::"+e.innerText),Ge(a,e,t,"img, video, iframe",e=>e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))),Ge(a,e,t,"pre",e=>e.nodeName+":::"+e.innerText),a.forEach(e=>{e.from.matches(n)?e.options={scale:!1}:e.from.matches("pre")&&(e.options={scale:!1,styles:["width","height"]},Ge(a,e.from,e.to,".hljs .hljs-ln-code",e=>e.textContent,{scale:!1,styles:[],measure:Ze}),Ge(a,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",e=>e.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:Ze}))}),a}function Ze(e){const t=a.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}function Ge(e,t,a,n,r,i){let o={},s={};[].slice.call(t.querySelectorAll(n)).forEach((e,t)=>{const a=r(e);"string"==typeof a&&a.length&&(o[a]=o[a]||[],o[a].push(e))}),[].slice.call(a.querySelectorAll(n)).forEach((t,a)=>{const n=r(t);let l;if(s[n]=s[n]||[],s[n].push(t),o[n]){const e=s[n].length-1,t=o[n].length-1;o[n][e]?(l=o[n][e],o[n][e]=null):o[n][t]&&(l=o[n][t],o[n][t]=null)}l&&e.push({from:l,to:t,options:i})})}function et(e){let t=g.preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}function tt(e,t={}){e.style.display=g.display,ee(e.querySelectorAll("img[data-src], video[data-src], audio[data-src], iframe[data-src]")).forEach(e=>{("IFRAME"!==e.tagName||et(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))}),ee(e.querySelectorAll("video, audio")).forEach(e=>{var t=0;ee(e.querySelectorAll("source[data-src]")).forEach(e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1}),t>0&&e.load()});let a=e.slideBackgroundElement;if(a){a.style.display="block";let n=e.slideBackgroundContentElement,r=e.getAttribute("data-background-iframe");if(!1===a.hasAttribute("data-loaded")){a.setAttribute("data-loaded","true");let i=e.getAttribute("data-background-image"),o=e.getAttribute("data-background-video"),s=e.hasAttribute("data-background-video-loop"),l=e.hasAttribute("data-background-video-muted");if(i)n.style.backgroundImage="url("+encodeURI(i)+")";else if(o&&!ut()){let e=document.createElement("video");s&&e.setAttribute("loop",""),l&&(e.muted=!0),u&&(e.muted=!0,e.autoplay=!0,e.setAttribute("playsinline","")),o.split(",").forEach(t=>{e.innerHTML+=''}),n.appendChild(e)}else if(r&&!0!==t.excludeIframes){let e=document.createElement("iframe");e.setAttribute("allowfullscreen",""),e.setAttribute("mozallowfullscreen",""),e.setAttribute("webkitallowfullscreen",""),e.setAttribute("allow","autoplay"),e.setAttribute("data-src",r),e.style.width="100%",e.style.height="100%",e.style.maxHeight="100%",e.style.maxWidth="100%",n.appendChild(e)}}let i=n.querySelector("iframe[data-src]");i&&et(a)&&!/autoplay=(1|true|yes)/gi.test(r)&&i.getAttribute("src")!==r&&i.setAttribute("src",r)}}function at(e){e.style.display="none";let t=kt(e);t&&(t.style.display="none",ee(t.querySelectorAll("iframe[src]")).forEach(e=>{e.removeAttribute("src")})),ee(e.querySelectorAll("video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]")).forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),ee(e.querySelectorAll("video[data-lazy-loaded] source[src], audio source[src]")).forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}function nt(){var e=L.wrapper.querySelectorAll(".slides>section"),t=L.wrapper.querySelectorAll(".slides>section.present>section");let a={left:o>0,right:o0,down:s1&&(a.left=!0,a.right=!0),t.length>1&&(a.up=!0,a.down=!0)),g.rtl){let e=a.left;a.left=a.right,a.right=e}return a}function rt(){if(d&&g.fragments){let e=d.querySelectorAll(".fragment"),t=d.querySelectorAll(".fragment:not(.visible)");return{prev:e.length-t.length>0,next:!!t.length}}return{prev:!1,next:!1}}function it(e){e&&!ut()&&(ee(e.querySelectorAll('img[src$=".gif"]')).forEach(e=>{e.setAttribute("src",e.getAttribute("src"))}),ee(e.querySelectorAll("video, audio")).forEach(e=>{if(ie(e,".fragment")&&!ie(e,".fragment.visible"))return;let t=g.autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!ie(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)ot({target:e});else if(u){let t=e.play();t&&"function"==typeof t.catch&&!1===e.controls&&t.catch((function(){e.controls=!0,e.addEventListener("play",()=>{e.controls=!1})}))}else e.removeEventListener("loadeddata",ot),e.addEventListener("loadeddata",ot)}),ee(e.querySelectorAll("iframe[src]")).forEach(e=>{ie(e,".fragment")&&!ie(e,".fragment.visible")||st({target:e})}),ee(e.querySelectorAll("iframe[data-src]")).forEach(e=>{ie(e,".fragment")&&!ie(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",st),e.addEventListener("load",st),e.setAttribute("src",e.getAttribute("data-src")))}))}function ot(e){let t=!!ie(e.target,"html"),a=!!ie(e.target,".present");t&&a&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",ot)}function st(e){let t=e.target;if(t&&t.contentWindow){let a=!!ie(e.target,"html"),n=!!ie(e.target,".present");if(a&&n){let e=g.autoPlayMedia;"boolean"!=typeof e&&(e=t.hasAttribute("data-autoplay")||!!ie(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}function lt(e,t={}){t=G({unloadIframes:!0},t),e&&e.parentNode&&(ee(e.querySelectorAll("video, audio")).forEach(e=>{e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())}),ee(e.querySelectorAll("iframe")).forEach(e=>{e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",st)}),ee(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),ee(e.querySelectorAll('iframe[src*="player.vimeo.com/"]')).forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")}),!0===t.unloadIframes&&ee(e.querySelectorAll("iframe[data-src]")).forEach(e=>{e.setAttribute("src","about:blank"),e.removeAttribute("src")}))}function dt(e=d){let t=mt(),a=0;e:for(let n=0;n0){let a=.9;t+=d.querySelectorAll(".fragment.visible").length/e.length*a}}return Math.min(t/(e-1),1)}function ut(){return!!window.location.search.match(/receiver/gi)}function pt(){let e=window.location.hash,t=e.slice(2).split("/"),n=e.replace(/#|\//gi,"");if(!/^[0-9]*$/.test(t[0])&&n.length){let e;try{e=document.getElementById(decodeURIComponent(n))}catch(e){}let t=!!d&&d.getAttribute("id")===n;if(e){if(!t){let t=a.getIndices(e);Re(t.h,t.v)}}else Re(o||0,s||0)}else{let e,a=g.hashOneBasedIndex?1:0,n=parseInt(t[0],10)-a||0,r=parseInt(t[1],10)-a||0;g.fragmentInURL&&(e=parseInt(t[2],10),isNaN(e)&&(e=void 0)),n===o&&r===s&&void 0===e||Re(n,r,e)}}function ft(e){clearTimeout(I),"number"==typeof e?I=setTimeout(ft,e):d&&(g.history||!window.history?window.location.hash=xe():g.hash?window.history.replaceState(null,null,"#"+xe()):window.history.replaceState(null,null,window.location.pathname+window.location.search))}function ht(e){let t,a=o,n=s;if(e){let t=Me(e),r=t?e.parentNode:e,i=ee(L.wrapper.querySelectorAll(".slides>section"));a=Math.max(i.indexOf(r),0),n=void 0,t&&(n=Math.max(ee(e.parentNode.querySelectorAll("section")).indexOf(e),0))}if(!e&&d){if(d.querySelectorAll(".fragment").length>0){let e=d.querySelector(".current-fragment");t=e&&e.hasAttribute("data-fragment-index")?parseInt(e.getAttribute("data-fragment-index"),10):d.querySelectorAll(".fragment.visible").length-1}}return{h:a,v:n,f:t}}function gt(){return ee(L.wrapper.querySelectorAll('.slides section:not(.stack):not([data-visibility="uncounted"])'))}function mt(){return ee(L.wrapper.querySelectorAll(".slides>section"))}function vt(){return ee(L.wrapper.querySelectorAll(".slides>section>section"))}function bt(){return mt().length>1}function yt(){return vt().length>1}function wt(){return gt().length}function At(e,t){let a=mt()[e],n=a&&a.querySelectorAll("section");return n&&n.length&&"number"==typeof t?n?n[t]:void 0:a}function kt(e,t){let a="number"==typeof e?At(e,t):e;if(a)return a.slideBackgroundElement}function Et(e=d){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let t=e.querySelector("aside.notes");return t?t.innerHTML:null}function St(){let e=ht();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:Ce(),overview:Le()}}function Lt(e,t=!1){e=ee(e);let a=[],n=[],r=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){let t=parseInt(e.getAttribute("data-fragment-index"),10);a[t]||(a[t]=[]),a[t].push(e)}else n.push([e])}),a=a.concat(n);let i=0;return a.forEach(e=>{e.forEach(e=>{r.push(e),e.setAttribute("data-fragment-index",i)}),i++}),!0===t?a:r}function xt(e,t){let a={shown:[],hidden:[]};if(d&&g.fragments&&(t=t||Lt(d.querySelectorAll(".fragment"))).length){let n=0;if("number"!=typeof e){let t=Lt(d.querySelectorAll(".fragment.visible")).pop();t&&(e=parseInt(t.getAttribute("data-fragment-index")||0,10))}ee(t).forEach((t,r)=>{t.hasAttribute("data-fragment-index")&&(r=parseInt(t.getAttribute("data-fragment-index"),10)),n=Math.max(n,r),r<=e?(t.classList.contains("visible")||a.shown.push(t),t.classList.add("visible"),t.classList.remove("current-fragment"),L.statusDiv.textContent=V(t),r===e&&(t.classList.add("current-fragment"),it(t))):(t.classList.contains("visible")&&a.hidden.push(t),t.classList.remove("visible"),t.classList.remove("current-fragment"))}),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,n),-1),d.setAttribute("data-fragment",e)}return a}function Mt(e,t=0){if(d&&g.fragments){let a=Lt(d.querySelectorAll(".fragment"));if(a.length){if("number"!=typeof e){let t=Lt(d.querySelectorAll(".fragment.visible")).pop();e=t?parseInt(t.getAttribute("data-fragment-index")||0,10):-1}let n=xt(e+=t,a);return n.hidden.length&&le("fragmenthidden",{fragment:n.hidden[0],fragments:n.hidden}),n.shown.length&&le("fragmentshown",{fragment:n.shown[0],fragments:n.shown}),Ve(),We(),g.fragmentInURL&&ft(),!(!n.shown.length&&!n.hidden.length)}}return!1}function Nt(){return Mt(null,1)}function qt(){return Mt(null,-1)}function It(){if(Pt(),d&&!1!==g.autoSlide){let e=d.querySelector(".current-fragment");e||(e=d.querySelector(".fragment"));let t=e?e.getAttribute("data-autoslide"):null,n=d.parentNode?d.parentNode.getAttribute("data-autoslide"):null,r=d.getAttribute("data-autoslide");R=t?parseInt(t,10):r?parseInt(r,10):n?parseInt(n,10):g.autoSlide,0===d.querySelectorAll(".fragment").length&&ee(d.querySelectorAll("video, audio")).forEach(e=>{e.hasAttribute("data-autoplay")&&R&&1e3*e.duration/e.playbackRate>R&&(R=1e3*e.duration/e.playbackRate+1e3)}),!R||H||Ce()||Le()||a.isLastSlide()&&!rt().next&&!0!==g.loop||(D=setTimeout(()=>{"function"==typeof g.autoSlideMethod?g.autoSlideMethod():zt(),It()},R),B=Date.now()),h&&h.setPlaying(-1!==D)}}function Pt(){clearTimeout(D),D=-1}function Tt(){R&&!H&&(H=!0,le("autoslidepaused"),clearTimeout(D),h&&h.setPlaying(!1))}function Ct(){R&&H&&(H=!1,le("autoslideresumed"),It())}function Ot(){w=!0,g.rtl?(Le()||!1===Nt())&&nt().left&&Re(o+1,"grid"===g.navigationMode?s:void 0):(Le()||!1===qt())&&nt().left&&Re(o-1,"grid"===g.navigationMode?s:void 0)}function Rt(){w=!0,g.rtl?(Le()||!1===qt())&&nt().right&&Re(o-1,"grid"===g.navigationMode?s:void 0):(Le()||!1===Nt())&&nt().right&&Re(o+1,"grid"===g.navigationMode?s:void 0)}function Dt(){(Le()||!1===qt())&&nt().up&&Re(o,s-1)}function Bt(){A=!0,(Le()||!1===Nt())&&nt().down&&Re(o,s+1)}function Ht(){if(!1===qt())if(nt().up)Dt();else{let e;if(e=g.rtl?ee(L.wrapper.querySelectorAll(".slides>section.future")).pop():ee(L.wrapper.querySelectorAll(".slides>section.past")).pop(),e){let t=e.querySelectorAll("section").length-1||void 0;Re(o-1,t)}}}function zt(){if(w=!0,A=!0,!1===Nt()){let e=nt();e.down&&e.right&&g.loop&&a.isLastVerticalSlide(d)&&(e.down=!1),e.down?Bt():g.rtl?Ot():Rt()}}function jt(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}function $t(e){g.autoSlideStoppable&&Tt()}function Wt(e){Ne(),clearTimeout(T),T=setTimeout(qe,g.hideCursorTime)}function Ft(e){e.shiftKey&&63===e.charCode&&pe()}function Ut(e){if("function"==typeof g.keyboardCondition&&!1===g.keyboardCondition(e))return!0;let t=e.keyCode,n=H;$t();let r=document.activeElement&&"inherit"!==document.activeElement.contentEditable,i=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),s=e.shiftKey&&32===e.keyCode,l=e.shiftKey&&37===t,d=e.shiftKey&&39===t,c=!s&&!l&&!d&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(r||i||o||c)return;let u,p=[66,86,190,191];if("object"==typeof g.keyboard)for(u in g.keyboard)"togglePause"===g.keyboard[u]&&p.push(parseInt(u,10));if(Ce()&&-1===p.indexOf(t))return!1;let f="linear"===g.navigationMode||!bt()||!yt(),h=!1;if("object"==typeof g.keyboard)for(u in g.keyboard)if(parseInt(u,10)===t){var m=g.keyboard[u];"function"==typeof m?m.apply(null,[e]):"string"==typeof m&&"function"==typeof a[m]&&a[m].call(),h=!0}if(!1===h)for(u in $)if(parseInt(u,10)===t){let t=$[u].callback;"function"==typeof t?t.apply(null,[e]):"string"==typeof t&&"function"==typeof a[t]&&a[t].call(),h=!0}!1===h&&(h=!0,80===t||33===t?Ht():78===t||34===t?zt():72===t||37===t?l?Re(0):!Le()&&f?Ht():Ot():76===t||39===t?d?Re(Number.MAX_VALUE):!Le()&&f?zt():Rt():75===t||38===t?!Le()&&f?Ht():Dt():74===t||40===t?!Le()&&f?zt():Bt():36===t?Re(0):35===t?Re(Number.MAX_VALUE):32===t?(Le()&&Ee(),e.shiftKey?Ht():zt()):58===t||59===t||66===t||86===t||190===t||191===t?Te():70===t?function(){let e=document.documentElement,t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)}():65===t?g.autoSlideStoppable&&Oe(n):h=!1),h?e.preventDefault&&e.preventDefault():27!==t&&79!==t||(L.overlay?he():Se(),e.preventDefault&&e.preventDefault()),It()}function Vt(e){if(jt(e.target))return!0;z.startX=e.touches[0].clientX,z.startY=e.touches[0].clientY,z.startCount=e.touches.length}function Xt(e){if(jt(e.target))return!0;if(z.captured)r.match(/android/gi)&&e.preventDefault();else{$t();let t=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==z.startCount){let n=t-z.startX,r=a-z.startY;n>z.threshold&&Math.abs(n)>Math.abs(r)?(z.captured=!0,"linear"===g.navigationMode?g.rtl?zt():Ht():Ot()):n<-z.threshold&&Math.abs(n)>Math.abs(r)?(z.captured=!0,"linear"===g.navigationMode?g.rtl?Ht():zt():Rt()):r>z.threshold?(z.captured=!0,"linear"===g.navigationMode?Ht():Dt()):r<-z.threshold&&(z.captured=!0,"linear"===g.navigationMode?zt():Bt()),g.embedded?(z.captured||Me(d))&&e.preventDefault():e.preventDefault()}}}function Yt(e){z.captured=!1}function Kt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Vt(e))}function _t(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Xt(e))}function Jt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Yt())}function Qt(e){if(Date.now()-q>600){q=Date.now();let t=e.detail||-e.wheelDelta;t>0?zt():t<0&&Ht()}}function Zt(e){$t(),e.preventDefault();let t=mt().length,a=Math.floor(e.clientX/L.wrapper.offsetWidth*t);g.rtl&&(a=t-a),Re(a)}function Gt(e){e.preventDefault(),$t(),"linear"===g.navigationMode?Ht():Ot()}function ea(e){e.preventDefault(),$t(),"linear"===g.navigationMode?zt():Rt()}function ta(e){e.preventDefault(),$t(),Dt()}function aa(e){e.preventDefault(),$t(),Bt()}function na(e){e.preventDefault(),$t(),Ht()}function ra(e){e.preventDefault(),$t(),zt()}function ia(e){pt()}function oa(e){ge()}function sa(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function la(e){if(C&&Le()){e.preventDefault();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled"))if(Ee(),t.nodeName.match(/section/gi))Re(parseInt(t.getAttribute("data-index-h"),10),parseInt(t.getAttribute("data-index-v"),10))}}function da(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){let t=e.currentTarget.getAttribute("href");t&&(!function(e){he(),L.overlay=document.createElement("div"),L.overlay.classList.add("overlay"),L.overlay.classList.add("overlay-preview"),L.wrapper.appendChild(L.overlay),L.overlay.innerHTML=`
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
`,L.overlay.querySelector("iframe").addEventListener("load",e=>{L.overlay.classList.add("loaded")},!1),L.overlay.querySelector(".close").addEventListener("click",e=>{he(),e.preventDefault()},!1),L.overlay.querySelector(".external").addEventListener("click",e=>{he()},!1)}(t),e.preventDefault())}}function ca(e){a.isLastSlide()&&!1===g.loop?(Re(0,0),Ct()):H?Ct():Tt()}return a={VERSION:"4.0.0-dev",configure:J,sync:De,syncSlide:function(e=d){_(e),Be(e),tt(e),Xe(),$e()},syncFragments:Be,slide:Re,left:Ot,right:Rt,up:Dt,down:Bt,prev:Ht,next:zt,navigateTo:Re,navigateLeft:Ot,navigateRight:Rt,navigateUp:Dt,navigateDown:Bt,navigatePrev:Ht,navigateNext:zt,navigateFragment:Mt,prevFragment:qt,nextFragment:Nt,layout:ge,shuffle:He,availableRoutes:nt,availableFragments:rt,toggleHelp:pe,toggleOverview:Se,togglePause:Te,toggleAutoSlide:Oe,isOverview:Le,isPaused:Ce,isAutoSliding:function(){return!(!R||H)},isSpeakerNotes:ut,loadSlide:tt,unloadSlide:at,addEventListeners:Q,removeEventListeners:Z,getState:St,setState:function(e){if("object"==typeof e){Re(te(e.indexh),te(e.indexv),te(e.indexf));var t=te(e.paused),a=te(e.overview);"boolean"==typeof t&&t!==Ce()&&Te(t),"boolean"==typeof a&&a!==Le()&&Se(a)}},getSlidePastCount:dt,getProgress:ct,getIndices:ht,getSlides:gt,getSlidesAttributes:function(){return gt().map((function(e){let t={};for(let a=0;al,getCurrentSlide:()=>d,getScale:()=>E,getConfig:()=>g,getQueryHash:()=>{let e={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()});for(let t in e){let a=e[t];e[t]=te(unescape(a))}return e},getRevealElement:()=>L.wrapper||document.querySelector(".reveal"),getPlugins:()=>x,isFirstSlide:()=>0===o&&0===s,isLastSlide:()=>!!d&&(!d.nextElementSibling&&(!Me(d)||!d.parentNode.nextElementSibling)),isLastVerticalSlide:()=>!(!d||!Me(d))&&!d.nextElementSibling,isReady:()=>m,addEventListener:(e,t,n)=>{"addEventListener"in window&&a.getRevealElement().addEventListener(e,t,n)},removeEventListener:(e,t,n)=>{"addEventListener"in window&&a.getRevealElement().removeEventListener(e,t,n)},triggerKey:e=>{Ut({keyCode:e})},registerKeyboardShortcut:(e,t)=>{j[e]=t}},function(){if(!e)return void console.warn("reveal.js must be instantiated with a valid .reveal element");!function(){u=/(iphone|ipod|ipad|android)/gi.test(r)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,p=/chrome/i.test(r)&&!/edge/i.test(r);let e=document.createElement("div");N.zoom="zoom"in e.style&&!u&&(p||/Version\/[\d\.]+.*Safari/.test(r))}(),L.wrapper=e,L.slides=e.querySelector(".slides"),window.addEventListener("load",ge,!1);let n=a.getQueryHash();var i,o;return void 0!==n.dependencies&&delete n.dependencies,G(g,t),G(g,n),i=[],o=0,g.dependencies.forEach(e=>{e.condition&&!e.condition()||(e.async?M.push(e):i.push(e))}),i.length?(o=i.length,i.forEach(e=>{U(e.src,(function(){"function"==typeof e.callback&&e.callback(),0==--o&&W()}))})):W(),a}()};window.Reveal=r,window.Reveal.initialize=e=>{window.Reveal=new r(document.querySelector(".reveal"),e)}}]); \ No newline at end of file +!function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,a){"use strict";a.r(t);class n{constructor(e,t){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=t,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 t=this.playing;this.playing=e,!t&&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,t=this.diameter2-this.thickness,a=this.diameter2,n=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);const r=-Math.PI/2+e*(2*Math.PI),i=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(a,n,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(a,n,t,0,2*Math.PI,!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(a,n,t,i,r,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(a-14,n-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var r={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,history:!1,keyboard:!0,keyboardCondition:null,overview:!0,disableLayout:!1,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!1,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,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,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[]},i=function(e,t){let a;const i=navigator.userAgent,o=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;let s,l,d,c,u,p,f,h,g,m,v=!1,b=!1,y=null,w=null,A=!1,k=!1,E=[],S=1,L={layout:"",overview:""},x={},M={},N=[],q={},I=0,P=0,T=!1,C=0,O=!1,R=0,D=0,B=0,H=-1,z=!1,j={startX:0,startY:0,startCount:0,captured:!1,threshold:40},$={},W={};function F(){let e=Object.keys(M).length;if(0===e)U();else{let t=()=>{0==--e&&U()};for(let e in M){let a=M[e];if("function"==typeof a.init){let e=a.init();e&&"function"==typeof e.then?e.then(t):t()}else t()}}}function U(){N.length&&N.forEach(e=>{V(e.src,e.callback)}),v=!0,x.slides.classList.add("no-transition"),f?x.wrapper.classList.add("no-hover"):x.wrapper.classList.remove("no-hover"),/iphone/gi.test(i)?x.wrapper.classList.add("ua-iphone"):x.wrapper.classList.remove("ua-iphone"),x.background=K(x.wrapper,"div","backgrounds",null),x.progress=K(x.wrapper,"div","progress",""),x.progressbar=x.progress.querySelector("span"),x.controls=K(x.wrapper,"aside","controls",`\n\t\t\t\n\t\t\t\n\t\t\t`),x.slideNumber=K(x.wrapper,"div","slide-number",""),x.speakerNotes=K(x.wrapper,"div","speaker-notes",null),x.speakerNotes.setAttribute("data-prevent-swipe",""),x.speakerNotes.setAttribute("tabindex","0"),x.pauseOverlay=K(x.wrapper,"div","pause-overlay",s.controls?'':null),x.wrapper.setAttribute("role","application"),x.controlsLeft=te(document.querySelectorAll(".navigate-left")),x.controlsRight=te(document.querySelectorAll(".navigate-right")),x.controlsUp=te(document.querySelectorAll(".navigate-up")),x.controlsDown=te(document.querySelectorAll(".navigate-down")),x.controlsPrev=te(document.querySelectorAll(".navigate-prev")),x.controlsNext=te(document.querySelectorAll(".navigate-next")),x.controlsRightArrow=x.controls.querySelector(".navigate-right"),x.controlsLeftArrow=x.controls.querySelector(".navigate-left"),x.controlsDownArrow=x.controls.querySelector(".navigate-down"),x.statusDiv=function(){let e=document.getElementById("aria-status-div");return e||(e=document.createElement("div"),e.style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.setAttribute("id","aria-status-div"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),x.wrapper.appendChild(e)),e}(),s.postMessage&&window.addEventListener("message",e=>{const t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t),t.method&&"function"==typeof a[t.method]))if(!1===o.test(t.method)){var n=a[t.method].apply(a,t.args);ce("callback",{method:t.method,result:n})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')},!1),setInterval(()=>{0===x.wrapper.scrollTop&&0===x.wrapper.scrollLeft||(x.wrapper.scrollTop=0,x.wrapper.scrollLeft=0)},1e3),vt().forEach((function(e){te(e.querySelectorAll("section")).forEach((e,t)=>{t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))})})),Q(),ft(),Ye(!0),setTimeout(()=>{x.slides.classList.remove("no-transition"),x.wrapper.classList.add("ready"),de("ready",{indexh:l,indexv:d,currentSlide:u})},1),le()&&(G(),"complete"===document.readyState?Y():window.addEventListener("load",Y))}function V(e,t){const a=document.createElement("script");a.type="text/javascript",a.async=!1,a.defer=!1,a.src=e,t&&(a.onload=a.onreadystatechange=e=>{("load"===e.type||/loaded|complete/.test(a.readyState))&&(a.onload=a.onreadystatechange=a.onerror=null,t())},a.onerror=e=>{a.onload=a.onreadystatechange=a.onerror=null,t(new Error("Failed loading script: "+a.src+"\n"+e))});const n=document.querySelector("head");n.insertBefore(a,n.lastChild)}function X(e){let t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){let a=e.getAttribute("aria-hidden"),n="none"===window.getComputedStyle(e).display;"true"===a||n||te(e.childNodes).forEach(e=>{t+=X(e)})}return t.trim()}function Y(){var e=be(window.innerWidth,window.innerHeight),t=Math.floor(e.width*(1+s.margin)),a=Math.floor(e.height*(1+s.margin)),n=e.width,r=e.height;ie("@page{size:"+t+"px "+a+"px; margin: 0px;}"),ie(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+n+"px; max-height:"+r+"px}"),document.body.classList.add("print-pdf"),document.body.style.width=t+"px",document.body.style.height=a+"px",ve(n,r);var i=s.slideNumber&&/all|print/i.test(s.showSlideNumber);te(x.wrapper.querySelectorAll(".slides section")).forEach((function(e){e.setAttribute("data-slide-number",Ve(e))})),te(x.wrapper.querySelectorAll(".slides section")).forEach((function(e){if(!1===e.classList.contains("stack")){var o=(t-n)/2,l=(a-r)/2,d=e.scrollHeight,c=Math.max(Math.ceil(d/a),1);(1===(c=Math.min(c,s.pdfMaxPagesPerSlide))&&s.center||e.classList.contains("center"))&&(l=Math.max((a-d)/2,0));var u=document.createElement("div");if(u.className="pdf-page",u.style.height=(a+s.pdfPageHeightOffset)*c+"px",e.parentNode.insertBefore(u,e),u.appendChild(e),e.style.left=o+"px",e.style.top=l+"px",e.style.width=n+"px",e.slideBackgroundElement&&u.insertBefore(e.slideBackgroundElement,e),s.showNotes){var p=St(e);if(p){var f="string"==typeof s.showNotes?s.showNotes:"inline",h=document.createElement("div");h.classList.add("speaker-notes"),h.classList.add("speaker-notes-pdf"),h.setAttribute("data-layout",f),h.innerHTML=p,"separate-page"===f?u.parentNode.insertBefore(h,u.nextSibling):(h.style.left="8px",h.style.bottom="8px",h.style.width=t-16+"px",u.appendChild(h))}}if(i){var g=document.createElement("div");g.classList.add("slide-number"),g.classList.add("slide-number-pdf"),g.innerHTML=e.getAttribute("data-slide-number"),u.appendChild(g)}if(s.pdfSeparateFragments){var m,v,b=xt(u.querySelectorAll(".fragment"),!0);b.forEach((function(e){m&&m.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}));var t=u.cloneNode(!0);u.parentNode.insertBefore(t,(v||u).nextSibling),m=e,v=t})),b.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else te(u.querySelectorAll(".fragment:not(.fade-out)")).forEach((function(e){e.classList.add("visible")}))}})),de("pdf-ready")}function K(e,t,a,n=""){let r=e.querySelectorAll("."+a);for(let t=0;t1&&s.autoSlide&&s.autoSlideStoppable&&(m=new n(x.wrapper,()=>Math.min(Math.max((Date.now()-H)/D,0),1)),m.on("click",ua),z=!1),!1===s.fragments&&te(x.slides.querySelectorAll(".fragment")).forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")});let r="none";s.slideNumber&&!le()&&("all"===s.showSlideNumber||"speaker"===s.showSlideNumber&&pt())&&(r="block"),x.slideNumber.style.display=r,"default"!==s.navigationMode?x.wrapper.setAttribute("data-navigation-mode",s.navigationMode):x.wrapper.removeAttribute("data-navigation-mode"),"linear"===s.navigationMode?($["→ , ↓ , SPACE , N , L , J"]="Next slide",$["← , ↑ , P , H , K"]="Previous slide"):($["N , SPACE"]="Next slide",$.P="Previous slide",$["← , H"]="Navigate left",$["→ , L"]="Navigate right",$["↑ , K"]="Navigate up",$["↓ , J"]="Navigate down"),$["Home , Shift ←"]="First slide",$["End , Shift →"]="Last slide",$["B , ."]="Pause",$.F="Fullscreen",$["ESC, O"]="Slide overview",Be()}function Z(){O=!0,window.addEventListener("hashchange",oa,!1),window.addEventListener("resize",sa,!1),s.touch&&("onpointerdown"in window?(x.wrapper.addEventListener("pointerdown",_t,!1),x.wrapper.addEventListener("pointermove",Jt,!1),x.wrapper.addEventListener("pointerup",Qt,!1)):window.navigator.msPointerEnabled?(x.wrapper.addEventListener("MSPointerDown",_t,!1),x.wrapper.addEventListener("MSPointerMove",Jt,!1),x.wrapper.addEventListener("MSPointerUp",Qt,!1)):(x.wrapper.addEventListener("touchstart",Xt,!1),x.wrapper.addEventListener("touchmove",Yt,!1),x.wrapper.addEventListener("touchend",Kt,!1))),s.keyboard&&(document.addEventListener("keydown",Vt,!1),document.addEventListener("keypress",Ut,!1)),s.progress&&x.progress&&x.progress.addEventListener("click",Gt,!1),x.pauseOverlay.addEventListener("click",Te,!1),s.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",la,!1);let e=["touchstart","click"];i.match(/android/gi)&&(e=["touchstart"]),e.forEach((function(e){x.controlsLeft.forEach((function(t){t.addEventListener(e,ea,!1)})),x.controlsRight.forEach((function(t){t.addEventListener(e,ta,!1)})),x.controlsUp.forEach((function(t){t.addEventListener(e,aa,!1)})),x.controlsDown.forEach((function(t){t.addEventListener(e,na,!1)})),x.controlsPrev.forEach((function(t){t.addEventListener(e,ra,!1)})),x.controlsNext.forEach((function(t){t.addEventListener(e,ia,!1)}))}))}function G(){O=!1,document.removeEventListener("keydown",Vt,!1),document.removeEventListener("keypress",Ut,!1),window.removeEventListener("hashchange",oa,!1),window.removeEventListener("resize",sa,!1),x.wrapper.removeEventListener("pointerdown",_t,!1),x.wrapper.removeEventListener("pointermove",Jt,!1),x.wrapper.removeEventListener("pointerup",Qt,!1),x.wrapper.removeEventListener("MSPointerDown",_t,!1),x.wrapper.removeEventListener("MSPointerMove",Jt,!1),x.wrapper.removeEventListener("MSPointerUp",Qt,!1),x.wrapper.removeEventListener("touchstart",Xt,!1),x.wrapper.removeEventListener("touchmove",Yt,!1),x.wrapper.removeEventListener("touchend",Kt,!1),x.pauseOverlay.removeEventListener("click",Te,!1),s.progress&&x.progress&&x.progress.removeEventListener("click",Gt,!1),["touchstart","click"].forEach((function(e){x.controlsLeft.forEach((function(t){t.removeEventListener(e,ea,!1)})),x.controlsRight.forEach((function(t){t.removeEventListener(e,ta,!1)})),x.controlsUp.forEach((function(t){t.removeEventListener(e,aa,!1)})),x.controlsDown.forEach((function(t){t.removeEventListener(e,na,!1)})),x.controlsPrev.forEach((function(t){t.removeEventListener(e,ra,!1)})),x.controlsNext.forEach((function(t){t.removeEventListener(e,ia,!1)}))}))}function ee(e,t){for(var a in t)e[a]=t[a];return e}function te(e){return Array.prototype.slice.call(e)}function ae(e){if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e}function ne(e,t){e.style.transform=t}function re(e){"string"==typeof e.layout&&(L.layout=e.layout),"string"==typeof e.overview&&(L.overview=e.overview),L.layout?ne(x.slides,L.layout+" "+L.overview):ne(x.slides,L.overview)}function ie(e){let t=document.createElement("style");t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),document.getElementsByTagName("head")[0].appendChild(t)}function oe(e,t){let a=e.parentNode;for(;a;){let e=a.matches||a.matchesSelector||a.msMatchesSelector;if(e&&e.call(a,t))return a;a=a.parentNode}return null}function se(e){let t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};let a=e.match(/^#([0-9a-f]{6})$/i);if(a&&a[1])return a=a[1],{r:parseInt(a.substr(0,2),16),g:parseInt(a.substr(2,2),16),b:parseInt(a.substr(4,2),16)};let n=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(n)return{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)};let r=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return r?{r:parseInt(r[1],10),g:parseInt(r[2],10),b:parseInt(r[3],10),a:parseFloat(r[4])}:null}function le(){return/print-pdf/gi.test(window.location.search)}function de(e,t){let a=document.createEvent("HTMLEvents",1,2);a.initEvent(e,!0,!0),ee(a,t),x.wrapper.dispatchEvent(a),ce(e)}function ce(e,t){if(s.postMessageEvents&&window.parent!==window.self){let a={namespace:"reveal",eventName:e,state:Lt()};ee(a,t),window.parent.postMessage(JSON.stringify(a),"*")}}function ue(e="a"){te(document.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",ca,!1)})}function pe(e="a"){te(document.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",ca,!1)})}function fe(e){"boolean"==typeof e?e?he():ge():x.overlay?ge():he()}function he(){if(s.help){ge(),x.overlay=document.createElement("div"),x.overlay.classList.add("overlay"),x.overlay.classList.add("overlay-help"),x.wrapper.appendChild(x.overlay);let a='

Keyboard Shortcuts


';for(var e in a+="",$)a+=``;for(var t in W)W[t].key&&W[t].description&&(a+=``);a+="
KEYACTION
${e}${$[e]}
${W[t].key}${W[t].description}
",x.overlay.innerHTML=`\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${a}
\n\t\t\t\t
\n\t\t\t`,x.overlay.querySelector(".close").addEventListener("click",(function(e){ge(),e.preventDefault()}),!1)}}function ge(){x.overlay&&(x.overlay.parentNode.removeChild(x.overlay),x.overlay=null)}function me(){if(x.wrapper&&!le()){if(!s.disableLayout){f&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");const a=be(),n=S;ve(s.width,s.height),x.slides.style.width=a.width+"px",x.slides.style.height=a.height+"px",S=Math.min(a.presentationWidth/a.width,a.presentationHeight/a.height),S=Math.max(S,s.minScale),S=Math.min(S,s.maxScale),1===S?(x.slides.style.zoom="",x.slides.style.left="",x.slides.style.top="",x.slides.style.bottom="",x.slides.style.right="",re({layout:""})):S>1&&q.zoom&&window.devicePixelRatio<2?(x.slides.style.zoom=S,x.slides.style.left="",x.slides.style.top="",x.slides.style.bottom="",x.slides.style.right="",re({layout:""})):(x.slides.style.zoom="",x.slides.style.left="50%",x.slides.style.top="50%",x.slides.style.bottom="auto",x.slides.style.right="auto",re({layout:"translate(-50%, -50%) scale("+S+")"}));const r=te(x.wrapper.querySelectorAll(".slides section"));for(var e=0,t=r.length;e .stretch")).forEach(a=>{var n=function(e,t=0){if(e){let a,n=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",a=t-e.parentNode.offsetHeight,e.style.height=n+"px",e.parentNode.style.removeProperty("height"),a}return t}(a,t);if(/(img|video)/gi.test(a.nodeName)){const t=a.naturalWidth||a.videoWidth,r=a.naturalHeight||a.videoHeight,i=Math.min(e/t,n/r);a.style.width=t*i+"px",a.style.height=r*i+"px"}else a.style.width=e+"px",a.style.height=n+"px"})}function be(e,t){const a={width:s.width,height:s.height,presentationWidth:e||x.wrapper.offsetWidth,presentationHeight:t||x.wrapper.offsetHeight};return a.presentationWidth-=a.presentationWidth*s.margin,a.presentationHeight-=a.presentationHeight*s.margin,"string"==typeof a.width&&/%$/.test(a.width)&&(a.width=parseInt(a.width,10)/100*a.presentationWidth),"string"==typeof a.height&&/%$/.test(a.height)&&(a.height=parseInt(a.height,10)/100*a.presentationHeight),a}function ye(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function we(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){const t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function Ae(){if(s.overview&&!xe()){b=!0,x.wrapper.classList.add("overview"),Tt(),x.slides.appendChild(x.background),te(x.wrapper.querySelectorAll(".slides section")).forEach(e=>{e.classList.contains("stack")||e.addEventListener("click",da,!0)});const e=70,t=be();y=t.width+e,w=t.height+e,s.rtl&&(y=-y),$e(),ke(),Ee(),me(),de("overviewshown",{indexh:l,indexv:d,currentSlide:u})}}function ke(){te(x.wrapper.querySelectorAll(".slides>section")).forEach((e,t)=>{e.setAttribute("data-index-h",t),ne(e,"translate3d("+t*y+"px, 0, 0)"),e.classList.contains("stack")&&te(e.querySelectorAll("section")).forEach((e,a)=>{e.setAttribute("data-index-h",t),e.setAttribute("data-index-v",a),ne(e,"translate3d(0, "+a*w+"px, 0)")})}),te(x.background.childNodes).forEach((e,t)=>{ne(e,"translate3d("+t*y+"px, 0, 0)"),te(e.querySelectorAll(".slide-background")).forEach((e,t)=>{ne(e,"translate3d(0, "+t*w+"px, 0)")})})}function Ee(){const e=Math.min(window.innerWidth,window.innerHeight);re({overview:["scale("+Math.max(e/5,150)/e+")","translateX("+-l*y+"px)","translateY("+-d*w+"px)"].join(" ")})}function Se(){s.overview&&(b=!1,x.wrapper.classList.remove("overview"),x.wrapper.classList.add("overview-deactivating"),setTimeout(()=>{x.wrapper.classList.remove("overview-deactivating")},1),x.wrapper.appendChild(x.background),te(x.wrapper.querySelectorAll(".slides section")).forEach(e=>{ne(e,""),e.removeEventListener("click",da,!0)}),te(x.background.querySelectorAll(".slide-background")).forEach(e=>{ne(e,"")}),re({overview:""}),De(l,d),me(),Pt(),de("overviewhidden",{indexh:l,indexv:d,currentSlide:u}))}function Le(e){"boolean"==typeof e?e?Ae():Se():xe()?Se():Ae()}function xe(){return b}function Me(e){let t="/",a=e||u,n=a?a.getAttribute("id"):null;n&&(n=encodeURIComponent(n));let r=gt(e);if(s.fragmentInURL||(r.f=void 0),"string"==typeof n&&n.length&&void 0===r.f)t="/"+n;else{let e=s.hashOneBasedIndex?1:0;(r.h>0||r.v>0||void 0!==r.f)&&(t+=r.h+e),(r.v>0||void 0!==r.f)&&(t+="/"+(r.v+e)),void 0!==r.f&&(t+="/"+r.f)}return t}function Ne(e=u){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function qe(){T&&(T=!1,x.wrapper.style.cursor="")}function Ie(){!1===T&&(T=!0,x.wrapper.style.cursor="none")}function Pe(){if(s.pause){const e=x.wrapper.classList.contains("paused");Tt(),x.wrapper.classList.add("paused"),!1===e&&de("paused")}}function Te(){const e=x.wrapper.classList.contains("paused");x.wrapper.classList.remove("paused"),Pt(),e&&de("resumed")}function Ce(e){"boolean"==typeof e?e?Pe():Te():Oe()?Te():Pe()}function Oe(){return x.wrapper.classList.contains("paused")}function Re(e){"boolean"==typeof e?e?Ot():Ct():z?Ot():Ct()}function De(e,t,n,r){c=u;const i=x.wrapper.querySelectorAll(".slides>section");if(0===i.length)return;void 0!==t||xe()||(t=we(i[e])),c&&c.parentNode&&c.parentNode.classList.contains("stack")&&ye(c.parentNode,d);const o=E.concat();E.length=0;let p=l||0,f=d||0;l=je(".slides>section",void 0===e?l:e),d=je(".slides>section.present>section",void 0===t?d:t),$e(),me(),xe()&&Ee();let h=i[l],m=h.querySelectorAll("section");u=m[d]||h,void 0!==n&&Nt(n);let v=l!==p||d!==f;v||(c=null),c&&c!==u&&(c.classList.remove("present"),c.setAttribute("aria-hidden","true"),a.isFirstSlide()&&setTimeout(()=>{te(x.wrapper.querySelectorAll(".slides>section.stack")).forEach(e=>{ye(e,0)})},0));e:for(let e=0,t=E.length;e{x.slides.classList.remove("disable-slide-transitions")},0),s.autoAnimate&&function(e,t){_e(),g&&g.parentNode&&(g.parentNode.removeChild(g),g=null);if(e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")){g=g||document.createElement("style"),g.type="text/css",document.head.appendChild(g);let n=Je(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";let r=function(e,t){let a=("function"==typeof s.autoAnimateMatcher?s.autoAnimateMatcher:Ze)(e,t),n=[];return a.filter((e,t)=>{if(-1===n.indexOf(e.to))return n.push(e.to),!0})}(e,t).map((function(e){return function(e,t,n,r,i){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=i;let o=Je(t,r);void 0!==n.delay&&(o.delay=n.delay);void 0!==n.duration&&(o.duration=n.duration);void 0!==n.easing&&(o.easing=n.easing);let s=Qe("from",e,n),l=Qe("to",t,n);if(!1!==n.translate||!1!==n.scale){let e=a.getScale(),t={x:(s.x-l.x)/e,y:(s.y-l.y)/e,scaleX:s.width/l.width,scaleY:s.height/l.height};t.x=Math.round(1e3*t.x)/1e3,t.y=Math.round(1e3*t.y)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3;let r=!1!==n.translate&&(0!==t.x||0!==t.y),i=!1!==n.scale&&(0!==t.scaleX||0!==t.scaleY);if(r||i){let e=[];r&&e.push(`translate(${t.x}px, ${t.y}px)`),i&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),s.styles.transform=e.join(" "),s.styles["transform-origin"]="top left",l.styles.transform="none"}}for(let e in l.styles){const t=l.styles[e],a=s.styles[e];t===a?delete l.styles[e]:(!0===t.explicitValue&&(l.styles[e]=t.value),!0===a.explicitValue&&(s.styles[e]=a.value))}let d="",c=Object.keys(l.styles);if(c.length>0){s.styles.transition="none",l.styles.transition=`all ${o.duration}s ${o.easing} ${o.delay}s`,l.styles["transition-property"]=c.join(", "),l.styles["will-change"]=c.join(", ");let e=Object.keys(s.styles).map((function(e){return e+": "+s.styles[e]+" !important;"})).join(""),t=Object.keys(l.styles).map((function(e){return e+": "+l.styles[e]+" !important;"})).join("");d='[data-auto-animate-target="'+i+'"] {'+e+'}[data-auto-animate="running"] [data-auto-animate-target="'+i+'"] {'+t+"}"}return d}(e.from,e.to,e.options||{},n,R++)}));"false"!==t.dataset.autoAnimateUnmatched&&!0===s.autoAnimateUnmatched&&(function e(t){return[].slice.call(t.children).reduce((t,a)=>{const n=a.querySelector("[data-auto-animate-target]");return a.hasAttribute("data-auto-animate-target")||n||t.push(a),a.querySelector("[data-auto-animate-target]")&&(t=t.concat(e(a))),t},[])}(t).forEach((function(e){e.dataset.autoAnimateTarget="unmatched"})),r.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${.8*n.duration}s ease ${.2*n.duration}s; }`)),g.innerHTML=r.join(""),requestAnimationFrame(()=>{g&&(getComputedStyle(g).fontWeight,t.dataset.autoAnimate="running")}),de("autoanimate",{fromSlide:e,toSlide:t,sheet:g})}}(c,u))}function Be(){G(),Z(),me(),D=s.autoSlide,Pt(),le(),x.background.innerHTML="",x.background.classList.add("no-transition"),te(x.wrapper.querySelectorAll(".slides>section")).forEach(e=>{let t=_(e,x.background);te(e.querySelectorAll("section")).forEach(e=>{_(e,t),t.classList.add("stack")})}),s.parallaxBackgroundImage?(x.background.style.backgroundImage='url("'+s.parallaxBackgroundImage+'")',x.background.style.backgroundSize=s.parallaxBackgroundSize,x.background.style.backgroundRepeat=s.parallaxBackgroundRepeat,x.background.style.backgroundPosition=s.parallaxBackgroundPosition,setTimeout(()=>{x.wrapper.classList.add("has-parallax-background")},1)):(x.background.style.backgroundImage="",x.wrapper.classList.remove("has-parallax-background")),ht(),vt().forEach(e=>{let t=te(e.querySelectorAll("section"));t.forEach((e,t)=>{xt(e.querySelectorAll(".fragment"))}),0===t.length&&xt(e.querySelectorAll(".fragment"))}),Xe(),Fe(),Ue(),$e(),Ye(!0),s.showNotes&&x.slides.querySelectorAll("[data-notes], aside.notes").length>0?x.wrapper.classList.add("show-notes"):x.wrapper.classList.remove("show-notes"),We(),function(){let e=(e,t,a)=>{te(x.slides.querySelectorAll("iframe["+e+'*="'+t+'"]')).forEach(t=>{var n=t.getAttribute(e);n&&-1===n.indexOf(a)&&t.setAttribute(e,n+(/\?/.test(n)?"&":"?")+a)})};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")}(),!1===s.autoPlayMedia?dt(u,{unloadIframes:!1}):ot(u),xe()&&ke()}function He(e=u){return xt(e.querySelectorAll(".fragment"))}function ze(){vt().forEach((e,t,a)=>{x.slides.insertBefore(e,a[Math.floor(Math.random()*a.length)])})}function je(e,t){let a=te(x.wrapper.querySelectorAll(e)),n=a.length,r=le();if(n){s.loop&&(t%=n)<0&&(t=n+t),t=Math.max(Math.min(t,n-1),0);for(let e=0;e{e.classList.add("visible"),e.classList.remove("current-fragment")})):e>t&&(n.classList.add(i?"past":"future"),s.fragments&&te(n.querySelectorAll(".fragment.visible")).forEach(e=>{e.classList.remove("visible","current-fragment")}))}a[t].classList.add("present"),a[t].removeAttribute("hidden"),a[t].removeAttribute("aria-hidden");let e=a[t].getAttribute("data-state");e&&(E=E.concat(e.split(" ")))}else t=0;return t}function $e(){let e,t,a=vt(),n=a.length;if(n&&void 0!==l){let r=xe()?10:s.viewDistance;f&&(r=xe()?6:s.mobileViewDistance),le()&&(r=Number.MAX_VALUE);for(let i=0;iNo notes on this slide.')}function Fe(){s.progress&&x.progressbar&&(x.progressbar.style.width=ut()*x.wrapper.offsetWidth+"px")}function Ue(){s.slideNumber&&x.slideNumber&&(x.slideNumber.innerHTML=Ve())}function Ve(e=u){let t,a="h.v";if("function"==typeof s.slideNumber)t=s.slideNumber(e);else switch("string"==typeof s.slideNumber&&(a=s.slideNumber),/c/.test(a)||1!==x.wrapper.querySelectorAll(".slides>section").length||(a="c"),t=[],a){case"c":t.push(ct(e)+1);break;case"c/t":t.push(ct(e)+1,"/",At());break;default:let n=gt(e);t.push(n.h+1);let r="h/v"===a?"/":".";Ne(e)&&t.push(r,n.v+1)}let n="#"+Me(e);return function(e,t,a,n="#"+Me()){return"number"!=typeof a||isNaN(a)?`\n\t\t\t\t\t${e}\n\t\t\t\t\t`:`\n\t\t\t\t\t${e}\n\t\t\t\t\t${t}\n\t\t\t\t\t${a}\n\t\t\t\t\t`}(t[0],t[1],t[2],n)}function Xe(){let e=rt(),t=it();[...x.controlsLeft,...x.controlsRight,...x.controlsUp,...x.controlsDown,...x.controlsPrev,...x.controlsNext].forEach(e=>{e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")}),e.left&&x.controlsLeft.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&x.controlsRight.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&x.controlsUp.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&x.controlsDown.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&x.controlsPrev.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&x.controlsNext.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),u&&(t.prev&&x.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),Ne(u)?(t.prev&&x.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(t.prev&&x.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))),s.controlsTutorial&&(!k&&e.down?x.controlsDownArrow.classList.add("highlight"):(x.controlsDownArrow.classList.remove("highlight"),s.rtl?!A&&e.left&&0===d?x.controlsLeftArrow.classList.add("highlight"):x.controlsLeftArrow.classList.remove("highlight"):!A&&e.right&&0===d?x.controlsRightArrow.classList.add("highlight"):x.controlsRightArrow.classList.remove("highlight")))}function Ye(e=!1){let t=null,a=s.rtl?"future":"past",n=s.rtl?"past":"future";if(te(x.background.childNodes).forEach((r,i)=>{r.classList.remove("past","present","future"),il?r.classList.add(n):(r.classList.add("present"),t=r),(e||i===l)&&te(r.querySelectorAll(".slide-background")).forEach((e,a)=>{e.classList.remove("past","present","future"),ad?e.classList.add("future"):(e.classList.add("present"),i===l&&(t=e))})}),p&&dt(p,{unloadIframes:!tt(p)}),t){ot(t);let e=t.querySelector(".slide-background-content");if(e){let t=e.style.backgroundImage||"";/\.gif/i.test(t)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}let a=p?p.getAttribute("data-background-hash"):null,n=t.getAttribute("data-background-hash");n&&n===a&&t!==p&&x.background.classList.add("no-transition"),p=t}u&&["has-light-background","has-dark-background"].forEach(e=>{u.classList.contains(e)?x.wrapper.classList.add(e):x.wrapper.classList.remove(e)}),setTimeout(()=>{x.background.classList.remove("no-transition")},1)}function Ke(){if(s.parallaxBackgroundImage){let e,t,a=vt(),n=bt(),r=x.background.style.backgroundSize.split(" ");1===r.length?e=t=parseInt(r[0],10):(e=parseInt(r[0],10),t=parseInt(r[1],10));let i,o,c=x.background.offsetWidth,u=a.length;i="number"==typeof s.parallaxBackgroundHorizontal?s.parallaxBackgroundHorizontal:u>1?(e-c)/(u-1):0,o=i*l*-1;let p,f,h=x.background.offsetHeight,g=n.length;p="number"==typeof s.parallaxBackgroundVertical?s.parallaxBackgroundVertical:(t-h)/(g-1),f=g>0?p*d:0,x.background.style.backgroundPosition=o+"px "+-f+"px"}}function _e(){te(x.wrapper.querySelectorAll("[data-auto-animate-target]")).forEach(e=>{delete e.dataset.autoAnimateTarget})}function Je(e,t){let a={easing:s.autoAnimateEasing,duration:s.autoAnimateDuration,delay:0};if(a=ee(a,t),e.closest&&e.parentNode){let t=e.parentNode.closest("[data-auto-animate-target]");t&&(a=Je(t,a))}return e.dataset.autoAnimateEasing&&(a.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(a.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(a.delay=parseFloat(e.dataset.autoAnimateDelay)),a}function Qe(e,t,a){let n={styles:[]};if(!1!==a.translate||!1!==a.scale){let e;e="function"==typeof a.measure?a.measure(t):t.getBoundingClientRect(),n.x=e.x,n.y=e.y,n.width=e.width,n.height=e.height}const r=getComputedStyle(t);return(a.styles||s.autoAnimateStyles).forEach(t=>{let a;"string"==typeof t&&(t={property:t}),a=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:r[t.property],""!==a&&(n.styles[t.property]=a)}),n}function Ze(e,t){let a=[];const n="h1, h2, h3, h4, h5, h6, p, li";return et(a,e,t,"[data-id]",e=>e.nodeName+":::"+e.getAttribute("data-id")),et(a,e,t,n,e=>e.nodeName+":::"+e.innerText),et(a,e,t,"img, video, iframe",e=>e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))),et(a,e,t,"pre",e=>e.nodeName+":::"+e.innerText),a.forEach(e=>{e.from.matches(n)?e.options={scale:!1}:e.from.matches("pre")&&(e.options={scale:!1,styles:["width","height"]},et(a,e.from,e.to,".hljs .hljs-ln-code",e=>e.textContent,{scale:!1,styles:[],measure:Ge}),et(a,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",e=>e.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:Ge}))}),a}function Ge(e){const t=a.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}function et(e,t,a,n,r,i){let o={},s={};[].slice.call(t.querySelectorAll(n)).forEach((e,t)=>{const a=r(e);"string"==typeof a&&a.length&&(o[a]=o[a]||[],o[a].push(e))}),[].slice.call(a.querySelectorAll(n)).forEach((t,a)=>{const n=r(t);let l;if(s[n]=s[n]||[],s[n].push(t),o[n]){const e=s[n].length-1,t=o[n].length-1;o[n][e]?(l=o[n][e],o[n][e]=null):o[n][t]&&(l=o[n][t],o[n][t]=null)}l&&e.push({from:l,to:t,options:i})})}function tt(e){let t=s.preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}function at(e,t={}){e.style.display=s.display,te(e.querySelectorAll("img[data-src], video[data-src], audio[data-src], iframe[data-src]")).forEach(e=>{("IFRAME"!==e.tagName||tt(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))}),te(e.querySelectorAll("video, audio")).forEach(e=>{var t=0;te(e.querySelectorAll("source[data-src]")).forEach(e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1}),t>0&&e.load()});let a=e.slideBackgroundElement;if(a){a.style.display="block";let n=e.slideBackgroundContentElement,r=e.getAttribute("data-background-iframe");if(!1===a.hasAttribute("data-loaded")){a.setAttribute("data-loaded","true");let i=e.getAttribute("data-background-image"),o=e.getAttribute("data-background-video"),s=e.hasAttribute("data-background-video-loop"),l=e.hasAttribute("data-background-video-muted");if(i)n.style.backgroundImage="url("+encodeURI(i)+")";else if(o&&!pt()){let e=document.createElement("video");s&&e.setAttribute("loop",""),l&&(e.muted=!0),f&&(e.muted=!0,e.autoplay=!0,e.setAttribute("playsinline","")),o.split(",").forEach(t=>{e.innerHTML+=''}),n.appendChild(e)}else if(r&&!0!==t.excludeIframes){let e=document.createElement("iframe");e.setAttribute("allowfullscreen",""),e.setAttribute("mozallowfullscreen",""),e.setAttribute("webkitallowfullscreen",""),e.setAttribute("allow","autoplay"),e.setAttribute("data-src",r),e.style.width="100%",e.style.height="100%",e.style.maxHeight="100%",e.style.maxWidth="100%",n.appendChild(e)}}let i=n.querySelector("iframe[data-src]");i&&tt(a)&&!/autoplay=(1|true|yes)/gi.test(r)&&i.getAttribute("src")!==r&&i.setAttribute("src",r)}}function nt(e){e.style.display="none";let t=Et(e);t&&(t.style.display="none",te(t.querySelectorAll("iframe[src]")).forEach(e=>{e.removeAttribute("src")})),te(e.querySelectorAll("video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]")).forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),te(e.querySelectorAll("video[data-lazy-loaded] source[src], audio source[src]")).forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}function rt(){var e=x.wrapper.querySelectorAll(".slides>section"),t=x.wrapper.querySelectorAll(".slides>section.present>section");let a={left:l>0,right:l0,down:d1&&(a.left=!0,a.right=!0),t.length>1&&(a.up=!0,a.down=!0)),s.rtl){let e=a.left;a.left=a.right,a.right=e}return a}function it(){if(u&&s.fragments){let e=u.querySelectorAll(".fragment"),t=u.querySelectorAll(".fragment:not(.visible)");return{prev:e.length-t.length>0,next:!!t.length}}return{prev:!1,next:!1}}function ot(e){e&&!pt()&&(te(e.querySelectorAll('img[src$=".gif"]')).forEach(e=>{e.setAttribute("src",e.getAttribute("src"))}),te(e.querySelectorAll("video, audio")).forEach(e=>{if(oe(e,".fragment")&&!oe(e,".fragment.visible"))return;let t=s.autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!oe(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)st({target:e});else if(f){let t=e.play();t&&"function"==typeof t.catch&&!1===e.controls&&t.catch((function(){e.controls=!0,e.addEventListener("play",()=>{e.controls=!1})}))}else e.removeEventListener("loadeddata",st),e.addEventListener("loadeddata",st)}),te(e.querySelectorAll("iframe[src]")).forEach(e=>{oe(e,".fragment")&&!oe(e,".fragment.visible")||lt({target:e})}),te(e.querySelectorAll("iframe[data-src]")).forEach(e=>{oe(e,".fragment")&&!oe(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",lt),e.addEventListener("load",lt),e.setAttribute("src",e.getAttribute("data-src")))}))}function st(e){let t=!!oe(e.target,"html"),a=!!oe(e.target,".present");t&&a&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",st)}function lt(e){let t=e.target;if(t&&t.contentWindow){let a=!!oe(e.target,"html"),n=!!oe(e.target,".present");if(a&&n){let e=s.autoPlayMedia;"boolean"!=typeof e&&(e=t.hasAttribute("data-autoplay")||!!oe(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}function dt(e,t={}){t=ee({unloadIframes:!0},t),e&&e.parentNode&&(te(e.querySelectorAll("video, audio")).forEach(e=>{e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())}),te(e.querySelectorAll("iframe")).forEach(e=>{e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",lt)}),te(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),te(e.querySelectorAll('iframe[src*="player.vimeo.com/"]')).forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")}),!0===t.unloadIframes&&te(e.querySelectorAll("iframe[data-src]")).forEach(e=>{e.setAttribute("src","about:blank"),e.removeAttribute("src")}))}function ct(e=u){let t=vt(),a=0;e:for(let n=0;n0){let a=.9;t+=u.querySelectorAll(".fragment.visible").length/e.length*a}}return Math.min(t/(e-1),1)}function pt(){return!!window.location.search.match(/receiver/gi)}function ft(){let e=window.location.hash,t=e.slice(2).split("/"),n=e.replace(/#|\//gi,"");if(!/^[0-9]*$/.test(t[0])&&n.length){let e;try{e=document.getElementById(decodeURIComponent(n))}catch(e){}let t=!!u&&u.getAttribute("id")===n;if(e){if(!t){let t=a.getIndices(e);De(t.h,t.v)}}else De(l||0,d||0)}else{let e,a=s.hashOneBasedIndex?1:0,n=parseInt(t[0],10)-a||0,r=parseInt(t[1],10)-a||0;s.fragmentInURL&&(e=parseInt(t[2],10),isNaN(e)&&(e=void 0)),n===l&&r===d&&void 0===e||De(n,r,e)}}function ht(e){clearTimeout(P),"number"==typeof e?P=setTimeout(ht,e):u&&(s.history||!window.history?window.location.hash=Me():s.hash?window.history.replaceState(null,null,"#"+Me()):window.history.replaceState(null,null,window.location.pathname+window.location.search))}function gt(e){let t,a=l,n=d;if(e){let t=Ne(e),r=t?e.parentNode:e,i=te(x.wrapper.querySelectorAll(".slides>section"));a=Math.max(i.indexOf(r),0),n=void 0,t&&(n=Math.max(te(e.parentNode.querySelectorAll("section")).indexOf(e),0))}if(!e&&u){if(u.querySelectorAll(".fragment").length>0){let e=u.querySelector(".current-fragment");t=e&&e.hasAttribute("data-fragment-index")?parseInt(e.getAttribute("data-fragment-index"),10):u.querySelectorAll(".fragment.visible").length-1}}return{h:a,v:n,f:t}}function mt(){return te(x.wrapper.querySelectorAll('.slides section:not(.stack):not([data-visibility="uncounted"])'))}function vt(){return te(x.wrapper.querySelectorAll(".slides>section"))}function bt(){return te(x.wrapper.querySelectorAll(".slides>section>section"))}function yt(){return vt().length>1}function wt(){return bt().length>1}function At(){return mt().length}function kt(e,t){let a=vt()[e],n=a&&a.querySelectorAll("section");return n&&n.length&&"number"==typeof t?n?n[t]:void 0:a}function Et(e,t){let a="number"==typeof e?kt(e,t):e;if(a)return a.slideBackgroundElement}function St(e=u){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let t=e.querySelector("aside.notes");return t?t.innerHTML:null}function Lt(){let e=gt();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:Oe(),overview:xe()}}function xt(e,t=!1){e=te(e);let a=[],n=[],r=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){let t=parseInt(e.getAttribute("data-fragment-index"),10);a[t]||(a[t]=[]),a[t].push(e)}else n.push([e])}),a=a.concat(n);let i=0;return a.forEach(e=>{e.forEach(e=>{r.push(e),e.setAttribute("data-fragment-index",i)}),i++}),!0===t?a:r}function Mt(e,t){let a={shown:[],hidden:[]};if(u&&s.fragments&&(t=t||xt(u.querySelectorAll(".fragment"))).length){let n=0;if("number"!=typeof e){let t=xt(u.querySelectorAll(".fragment.visible")).pop();t&&(e=parseInt(t.getAttribute("data-fragment-index")||0,10))}te(t).forEach((t,r)=>{t.hasAttribute("data-fragment-index")&&(r=parseInt(t.getAttribute("data-fragment-index"),10)),n=Math.max(n,r),r<=e?(t.classList.contains("visible")||a.shown.push(t),t.classList.add("visible"),t.classList.remove("current-fragment"),x.statusDiv.textContent=X(t),r===e&&(t.classList.add("current-fragment"),ot(t))):(t.classList.contains("visible")&&a.hidden.push(t),t.classList.remove("visible"),t.classList.remove("current-fragment"))}),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,n),-1),u.setAttribute("data-fragment",e)}return a}function Nt(e,t=0){if(u&&s.fragments){let a=xt(u.querySelectorAll(".fragment"));if(a.length){if("number"!=typeof e){let t=xt(u.querySelectorAll(".fragment.visible")).pop();e=t?parseInt(t.getAttribute("data-fragment-index")||0,10):-1}let n=Mt(e+=t,a);return n.hidden.length&&de("fragmenthidden",{fragment:n.hidden[0],fragments:n.hidden}),n.shown.length&&de("fragmentshown",{fragment:n.shown[0],fragments:n.shown}),Xe(),Fe(),s.fragmentInURL&&ht(),!(!n.shown.length&&!n.hidden.length)}}return!1}function qt(){return Nt(null,1)}function It(){return Nt(null,-1)}function Pt(){if(Tt(),u&&!1!==s.autoSlide){let e=u.querySelector(".current-fragment");e||(e=u.querySelector(".fragment"));let t=e?e.getAttribute("data-autoslide"):null,n=u.parentNode?u.parentNode.getAttribute("data-autoslide"):null,r=u.getAttribute("data-autoslide");D=t?parseInt(t,10):r?parseInt(r,10):n?parseInt(n,10):s.autoSlide,0===u.querySelectorAll(".fragment").length&&te(u.querySelectorAll("video, audio")).forEach(e=>{e.hasAttribute("data-autoplay")&&D&&1e3*e.duration/e.playbackRate>D&&(D=1e3*e.duration/e.playbackRate+1e3)}),!D||z||Oe()||xe()||a.isLastSlide()&&!it().next&&!0!==s.loop||(B=setTimeout(()=>{"function"==typeof s.autoSlideMethod?s.autoSlideMethod():jt(),Pt()},D),H=Date.now()),m&&m.setPlaying(-1!==B)}}function Tt(){clearTimeout(B),B=-1}function Ct(){D&&!z&&(z=!0,de("autoslidepaused"),clearTimeout(B),m&&m.setPlaying(!1))}function Ot(){D&&z&&(z=!1,de("autoslideresumed"),Pt())}function Rt(){A=!0,s.rtl?(xe()||!1===qt())&&rt().left&&De(l+1,"grid"===s.navigationMode?d:void 0):(xe()||!1===It())&&rt().left&&De(l-1,"grid"===s.navigationMode?d:void 0)}function Dt(){A=!0,s.rtl?(xe()||!1===It())&&rt().right&&De(l-1,"grid"===s.navigationMode?d:void 0):(xe()||!1===qt())&&rt().right&&De(l+1,"grid"===s.navigationMode?d:void 0)}function Bt(){(xe()||!1===It())&&rt().up&&De(l,d-1)}function Ht(){k=!0,(xe()||!1===qt())&&rt().down&&De(l,d+1)}function zt(){if(!1===It())if(rt().up)Bt();else{let e;if(e=s.rtl?te(x.wrapper.querySelectorAll(".slides>section.future")).pop():te(x.wrapper.querySelectorAll(".slides>section.past")).pop(),e){let t=e.querySelectorAll("section").length-1||void 0;De(l-1,t)}}}function jt(){if(A=!0,k=!0,!1===qt()){let e=rt();e.down&&e.right&&s.loop&&a.isLastVerticalSlide(u)&&(e.down=!1),e.down?Ht():s.rtl?Rt():Dt()}}function $t(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}function Wt(e){s.autoSlideStoppable&&Ct()}function Ft(e){qe(),clearTimeout(C),C=setTimeout(Ie,s.hideCursorTime)}function Ut(e){e.shiftKey&&63===e.charCode&&fe()}function Vt(e){if("function"==typeof s.keyboardCondition&&!1===s.keyboardCondition(e))return!0;let t=e.keyCode,n=z;Wt();let r=document.activeElement&&"inherit"!==document.activeElement.contentEditable,i=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),l=e.shiftKey&&32===e.keyCode,d=e.shiftKey&&37===t,c=e.shiftKey&&39===t,u=!l&&!d&&!c&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(r||i||o||u)return;let p,f=[66,86,190,191];if("object"==typeof s.keyboard)for(p in s.keyboard)"togglePause"===s.keyboard[p]&&f.push(parseInt(p,10));if(Oe()&&-1===f.indexOf(t))return!1;let h="linear"===s.navigationMode||!yt()||!wt(),g=!1;if("object"==typeof s.keyboard)for(p in s.keyboard)if(parseInt(p,10)===t){var m=s.keyboard[p];"function"==typeof m?m.apply(null,[e]):"string"==typeof m&&"function"==typeof a[m]&&a[m].call(),g=!0}if(!1===g)for(p in W)if(parseInt(p,10)===t){let t=W[p].callback;"function"==typeof t?t.apply(null,[e]):"string"==typeof t&&"function"==typeof a[t]&&a[t].call(),g=!0}!1===g&&(g=!0,80===t||33===t?zt():78===t||34===t?jt():72===t||37===t?d?De(0):!xe()&&h?zt():Rt():76===t||39===t?c?De(Number.MAX_VALUE):!xe()&&h?jt():Dt():75===t||38===t?!xe()&&h?zt():Bt():74===t||40===t?!xe()&&h?jt():Ht():36===t?De(0):35===t?De(Number.MAX_VALUE):32===t?(xe()&&Se(),e.shiftKey?zt():jt()):58===t||59===t||66===t||86===t||190===t||191===t?Ce():70===t?function(){let e=document.documentElement,t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)}():65===t?s.autoSlideStoppable&&Re(n):g=!1),g?e.preventDefault&&e.preventDefault():27!==t&&79!==t||(x.overlay?ge():Le(),e.preventDefault&&e.preventDefault()),Pt()}function Xt(e){if($t(e.target))return!0;j.startX=e.touches[0].clientX,j.startY=e.touches[0].clientY,j.startCount=e.touches.length}function Yt(e){if($t(e.target))return!0;if(j.captured)i.match(/android/gi)&&e.preventDefault();else{Wt();let t=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==j.startCount){let n=t-j.startX,r=a-j.startY;n>j.threshold&&Math.abs(n)>Math.abs(r)?(j.captured=!0,"linear"===s.navigationMode?s.rtl?jt():zt():Rt()):n<-j.threshold&&Math.abs(n)>Math.abs(r)?(j.captured=!0,"linear"===s.navigationMode?s.rtl?zt():jt():Dt()):r>j.threshold?(j.captured=!0,"linear"===s.navigationMode?zt():Bt()):r<-j.threshold&&(j.captured=!0,"linear"===s.navigationMode?jt():Ht()),s.embedded?(j.captured||Ne(u))&&e.preventDefault():e.preventDefault()}}}function Kt(e){j.captured=!1}function _t(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Xt(e))}function Jt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Yt(e))}function Qt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Kt())}function Zt(e){if(Date.now()-I>600){I=Date.now();let t=e.detail||-e.wheelDelta;t>0?jt():t<0&&zt()}}function Gt(e){Wt(),e.preventDefault();let t=vt().length,a=Math.floor(e.clientX/x.wrapper.offsetWidth*t);s.rtl&&(a=t-a),De(a)}function ea(e){e.preventDefault(),Wt(),"linear"===s.navigationMode?zt():Rt()}function ta(e){e.preventDefault(),Wt(),"linear"===s.navigationMode?jt():Dt()}function aa(e){e.preventDefault(),Wt(),Bt()}function na(e){e.preventDefault(),Wt(),Ht()}function ra(e){e.preventDefault(),Wt(),zt()}function ia(e){e.preventDefault(),Wt(),jt()}function oa(e){ft()}function sa(e){me()}function la(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function da(e){if(O&&xe()){e.preventDefault();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled"))if(Se(),t.nodeName.match(/section/gi))De(parseInt(t.getAttribute("data-index-h"),10),parseInt(t.getAttribute("data-index-v"),10))}}function ca(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){let t=e.currentTarget.getAttribute("href");t&&(!function(e){ge(),x.overlay=document.createElement("div"),x.overlay.classList.add("overlay"),x.overlay.classList.add("overlay-preview"),x.wrapper.appendChild(x.overlay),x.overlay.innerHTML=`
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
`,x.overlay.querySelector("iframe").addEventListener("load",e=>{x.overlay.classList.add("loaded")},!1),x.overlay.querySelector(".close").addEventListener("click",e=>{ge(),e.preventDefault()},!1),x.overlay.querySelector(".external").addEventListener("click",e=>{ge()},!1)}(t),e.preventDefault())}}function ua(e){a.isLastSlide()&&!1===s.loop?(De(0,0),Ot()):z?Ot():Ct()}return a={VERSION:"4.0.0-dev",configure:Q,sync:Be,syncSlide:function(e=u){J(e),He(e),at(e),Ye(),We()},syncFragments:He,slide:De,left:Rt,right:Dt,up:Bt,down:Ht,prev:zt,next:jt,navigateTo:De,navigateLeft:Rt,navigateRight:Dt,navigateUp:Bt,navigateDown:Ht,navigatePrev:zt,navigateNext:jt,navigateFragment:Nt,prevFragment:It,nextFragment:qt,layout:me,shuffle:ze,availableRoutes:rt,availableFragments:it,toggleHelp:fe,toggleOverview:Le,togglePause:Ce,toggleAutoSlide:Re,isOverview:xe,isPaused:Oe,isAutoSliding:function(){return!(!D||z)},isSpeakerNotes:pt,loadSlide:at,unloadSlide:nt,addEventListeners:Z,removeEventListeners:G,getState:Lt,setState:function(e){if("object"==typeof e){De(ae(e.indexh),ae(e.indexv),ae(e.indexf));var t=ae(e.paused),a=ae(e.overview);"boolean"==typeof t&&t!==Oe()&&Ce(t),"boolean"==typeof a&&a!==xe()&&Le(a)}},getSlidePastCount:ct,getProgress:ut,getIndices:gt,getSlides:mt,getSlidesAttributes:function(){return mt().map((function(e){let t={};for(let a=0;ac,getCurrentSlide:()=>u,getScale:()=>S,getConfig:()=>s,getQueryHash:()=>{let e={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()});for(let t in e){let a=e[t];e[t]=ae(unescape(a))}return e},getRevealElement:()=>x.wrapper||document.querySelector(".reveal"),getPlugins:()=>M,isFirstSlide:()=>0===l&&0===d,isLastSlide:()=>!!u&&(!u.nextElementSibling&&(!Ne(u)||!u.parentNode.nextElementSibling)),isLastVerticalSlide:()=>!(!u||!Ne(u))&&!u.nextElementSibling,isReady:()=>v,addEventListener:(e,t,n)=>{"addEventListener"in window&&a.getRevealElement().addEventListener(e,t,n)},removeEventListener:(e,t,n)=>{"addEventListener"in window&&a.getRevealElement().removeEventListener(e,t,n)},triggerKey:e=>{Vt({keyCode:e})},registerKeyboardShortcut:(e,t)=>{$[e]=t}},function(){if(!e)return void console.warn("reveal.js must be instantiated with a valid .reveal element");!function(){f=/(iphone|ipod|ipad|android)/gi.test(i)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,h=/chrome/i.test(i)&&!/edge/i.test(i);let e=document.createElement("div");q.zoom="zoom"in e.style&&!f&&(h||/Version\/[\d\.]+.*Safari/.test(i))}(),x.wrapper=e,x.slides=e.querySelector(".slides"),window.addEventListener("load",me,!1);let n=a.getQueryHash();var o,l;return void 0!==n.dependencies&&delete n.dependencies,s={...r,...t,...n},o=[],l=0,s.dependencies.forEach(e=>{e.condition&&!e.condition()||(e.async?N.push(e):o.push(e))}),o.length?(l=o.length,o.forEach(e=>{V(e.src,(function(){"function"==typeof e.callback&&e.callback(),0==--l&&F()}))})):F(),a}()};window.Reveal=i,window.Reveal.initialize=e=>{window.Reveal=new i(document.querySelector(".reveal"),e)}}]); \ No newline at end of file diff --git a/js/config.js b/js/config.js new file mode 100644 index 0000000..78c77c0 --- /dev/null +++ b/js/config.js @@ -0,0 +1,281 @@ +/** + * The default reveal.js config object. + */ +export default { + + // The "normal" size of the presentation, aspect ratio will be preserved + // when the presentation is scaled to fit different resolutions + width: 960, + height: 700, + + // Factor of the display size that should remain empty around the content + margin: 0.04, + + // Bounds for smallest/largest possible scale to apply to content + minScale: 0.2, + maxScale: 2.0, + + // Display presentation control arrows + controls: true, + + // Help the user learn the controls by providing hints, for example by + // bouncing the down arrow when they first encounter a vertical slide + controlsTutorial: true, + + // Determines where controls appear, "edges" or "bottom-right" + controlsLayout: 'bottom-right', + + // Visibility rule for backwards navigation arrows; "faded", "hidden" + // or "visible" + controlsBackArrows: 'faded', + + // Display a presentation progress bar + progress: true, + + // Display the page number of the current slide + // - true: Show slide number + // - false: Hide slide number + // + // Can optionally be set as a string that specifies the number formatting: + // - "h.v": Horizontal . vertical slide number (default) + // - "h/v": Horizontal / vertical slide number + // - "c": Flattened slide number + // - "c/t": Flattened slide number / total slides + // + // Alternatively, you can provide a function that returns the slide + // number for the current slide. The function should take in a slide + // object and return an array with one string [slideNumber] or + // three strings [n1,delimiter,n2]. See #formatSlideNumber(). + slideNumber: false, + + // Can be used to limit the contexts in which the slide number appears + // - "all": Always show the slide number + // - "print": Only when printing to PDF + // - "speaker": Only in the speaker view + showSlideNumber: 'all', + + // Use 1 based indexing for # links to match slide number (default is zero + // based) + hashOneBasedIndex: false, + + // Add the current slide number to the URL hash so that reloading the + // page/copying the URL will return you to the same slide + hash: false, + + // Push each slide change to the browser history. Implies `hash: true` + history: false, + + // Enable keyboard shortcuts for navigation + keyboard: true, + + // Optional function that blocks keyboard events when retuning false + keyboardCondition: null, + + // Enable the slide overview mode + overview: true, + + // Disables the default reveal.js slide layout so that you can use + // custom CSS layout + disableLayout: false, + + // Vertical centering of slides + center: true, + + // Enables touch navigation on devices with touch input + touch: true, + + // Loop the presentation + loop: false, + + // Change the presentation direction to be RTL + rtl: false, + + // Changes the behavior of our navigation directions. + // + // "default" + // Left/right arrow keys step between horizontal slides, up/down + // arrow keys step between vertical slides. Space key steps through + // all slides (both horizontal and vertical). + // + // "linear" + // Removes the up/down arrows. Left/right arrows step through all + // slides (both horizontal and vertical). + // + // "grid" + // When this is enabled, stepping left/right from a vertical stack + // to an adjacent vertical stack will land you at the same vertical + // index. + // + // Consider a deck with six slides ordered in two vertical stacks: + // 1.1 2.1 + // 1.2 2.2 + // 1.3 2.3 + // + // If you're on slide 1.3 and navigate right, you will normally move + // from 1.3 -> 2.1. If "grid" is used, the same navigation takes you + // from 1.3 -> 2.3. + navigationMode: 'default', + + // Randomizes the order of slides each time the presentation loads + shuffle: false, + + // Turns fragments on and off globally + fragments: true, + + // Flags whether to include the current fragment in the URL, + // so that reloading brings you to the same fragment position + fragmentInURL: false, + + // Flags if the presentation is running in an embedded mode, + // i.e. contained within a limited portion of the screen + embedded: false, + + // Flags if we should show a help overlay when the question-mark + // key is pressed + help: true, + + // Flags if it should be possible to pause the presentation (blackout) + pause: true, + + // Flags if speaker notes should be visible to all viewers + showNotes: false, + + // Global override for autolaying embedded media (video/audio/iframe) + // - null: Media will only autoplay if data-autoplay is present + // - true: All media will autoplay, regardless of individual setting + // - false: No media will autoplay, regardless of individual setting + autoPlayMedia: null, + + // Global override for preloading lazy-loaded iframes + // - null: Iframes with data-src AND data-preload will be loaded when within + // the viewDistance, iframes with only data-src will be loaded when visible + // - true: All iframes with data-src will be loaded when within the viewDistance + // - false: All iframes with data-src will be loaded only when visible + preloadIframes: null, + + // Can be used to globally disable auto-animation + autoAnimate: true, + + // Optionally provide a custom element matcher that will be + // used to dictate which elements we can animate between. + autoAnimateMatcher: null, + + // Default settings for our auto-animate transitions, can be + // overridden per-slide or per-element via data arguments + autoAnimateEasing: 'ease', + autoAnimateDuration: 1.0, + autoAnimateUnmatched: true, + + // CSS properties that can be auto-animated. Position & scale + // is matched separately so there's no need to include styles + // like top/right/bottom/left, width/height or margin. + autoAnimateStyles: [ + 'opacity', + 'color', + 'background-color', + 'padding', + 'font-size', + 'line-height', + 'letter-spacing', + 'border-width', + 'border-color', + 'border-radius', + 'outline', + 'outline-offset' + ], + + // Controls automatic progression to the next slide + // - 0: Auto-sliding only happens if the data-autoslide HTML attribute + // is present on the current slide or fragment + // - 1+: All slides will progress automatically at the given interval + // - false: No auto-sliding, even if data-autoslide is present + autoSlide: 0, + + // Stop auto-sliding after user input + autoSlideStoppable: true, + + // Use this method for navigation when auto-sliding (defaults to navigateNext) + autoSlideMethod: null, + + // Specify the average time in seconds that you think you will spend + // presenting each slide. This is used to show a pacing timer in the + // speaker view + defaultTiming: null, + + // Enable slide navigation via mouse wheel + mouseWheel: false, + + // Opens links in an iframe preview overlay + // Add `data-preview-link` and `data-preview-link="false"` to customise each link + // individually + previewLinks: false, + + // Exposes the reveal.js API through window.postMessage + postMessage: true, + + // Dispatches all reveal.js events to the parent window through postMessage + postMessageEvents: false, + + // Focuses body when page changes visibility to ensure keyboard shortcuts work + focusBodyOnPageVisibilityChange: true, + + // Transition style + transition: 'slide', // none/fade/slide/convex/concave/zoom + + // Transition speed + transitionSpeed: 'default', // default/fast/slow + + // Transition style for full page slide backgrounds + backgroundTransition: 'fade', // none/fade/slide/convex/concave/zoom + + // Parallax background image + parallaxBackgroundImage: '', // CSS syntax, e.g. "a.jpg" + + // Parallax background size + parallaxBackgroundSize: '', // CSS syntax, e.g. "3000px 2000px" + + // Parallax background repeat + parallaxBackgroundRepeat: '', // repeat/repeat-x/repeat-y/no-repeat/initial/inherit + + // Parallax background position + parallaxBackgroundPosition: '', // CSS syntax, e.g. "top left" + + // Amount of pixels to move the parallax background per slide step + parallaxBackgroundHorizontal: null, + parallaxBackgroundVertical: null, + + // The maximum number of pages a single slide can expand onto when printing + // to PDF, unlimited by default + pdfMaxPagesPerSlide: Number.POSITIVE_INFINITY, + + // Prints each fragment on a separate slide + pdfSeparateFragments: true, + + // Offset used to reduce the height of content within exported PDF pages. + // This exists to account for environment differences based on how you + // print to PDF. CLI printing options, like phantomjs and wkpdf, can end + // on precisely the total height of the document whereas in-browser + // printing has to end one pixel before. + pdfPageHeightOffset: -1, + + // Number of slides away from the current that are visible + viewDistance: 3, + + // Number of slides away from the current that are visible on mobile + // devices. It is advisable to set this to a lower number than + // viewDistance in order to save resources. + mobileViewDistance: 2, + + // The display mode that will be used to show slides + display: 'block', + + // Hide cursor if inactive + hideInactiveCursor: true, + + // Time before the cursor is hidden (in ms) + hideCursorTime: 5000, + + // Script dependencies to load + dependencies: [] + +} \ No newline at end of file diff --git a/js/reveal.js b/js/reveal.js index afa3567..e73cca9 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -1,4 +1,5 @@ import Playback from './components/playback.js' +import defaultConfig from './config.js' /** * reveal.js @@ -9,8 +10,6 @@ import Playback from './components/playback.js' */ export default function( revealElement, options ) { - 'use strict'; - let Reveal; // The reveal.js version @@ -27,284 +26,7 @@ export default function( revealElement, options ) { const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/; // Configuration defaults, can be overridden at initialization time - let config = { - - // The "normal" size of the presentation, aspect ratio will be preserved - // when the presentation is scaled to fit different resolutions - width: 960, - height: 700, - - // Factor of the display size that should remain empty around the content - margin: 0.04, - - // Bounds for smallest/largest possible scale to apply to content - minScale: 0.2, - maxScale: 2.0, - - // Display presentation control arrows - controls: true, - - // Help the user learn the controls by providing hints, for example by - // bouncing the down arrow when they first encounter a vertical slide - controlsTutorial: true, - - // Determines where controls appear, "edges" or "bottom-right" - controlsLayout: 'bottom-right', - - // Visibility rule for backwards navigation arrows; "faded", "hidden" - // or "visible" - controlsBackArrows: 'faded', - - // Display a presentation progress bar - progress: true, - - // Display the page number of the current slide - // - true: Show slide number - // - false: Hide slide number - // - // Can optionally be set as a string that specifies the number formatting: - // - "h.v": Horizontal . vertical slide number (default) - // - "h/v": Horizontal / vertical slide number - // - "c": Flattened slide number - // - "c/t": Flattened slide number / total slides - // - // Alternatively, you can provide a function that returns the slide - // number for the current slide. The function should take in a slide - // object and return an array with one string [slideNumber] or - // three strings [n1,delimiter,n2]. See #formatSlideNumber(). - slideNumber: false, - - // Can be used to limit the contexts in which the slide number appears - // - "all": Always show the slide number - // - "print": Only when printing to PDF - // - "speaker": Only in the speaker view - showSlideNumber: 'all', - - // Use 1 based indexing for # links to match slide number (default is zero - // based) - hashOneBasedIndex: false, - - // Add the current slide number to the URL hash so that reloading the - // page/copying the URL will return you to the same slide - hash: false, - - // Push each slide change to the browser history. Implies `hash: true` - history: false, - - // Enable keyboard shortcuts for navigation - keyboard: true, - - // Optional function that blocks keyboard events when retuning false - keyboardCondition: null, - - // Enable the slide overview mode - overview: true, - - // Disables the default reveal.js slide layout so that you can use - // custom CSS layout - disableLayout: false, - - // Vertical centering of slides - center: true, - - // Enables touch navigation on devices with touch input - touch: true, - - // Loop the presentation - loop: false, - - // Change the presentation direction to be RTL - rtl: false, - - // Changes the behavior of our navigation directions. - // - // "default" - // Left/right arrow keys step between horizontal slides, up/down - // arrow keys step between vertical slides. Space key steps through - // all slides (both horizontal and vertical). - // - // "linear" - // Removes the up/down arrows. Left/right arrows step through all - // slides (both horizontal and vertical). - // - // "grid" - // When this is enabled, stepping left/right from a vertical stack - // to an adjacent vertical stack will land you at the same vertical - // index. - // - // Consider a deck with six slides ordered in two vertical stacks: - // 1.1 2.1 - // 1.2 2.2 - // 1.3 2.3 - // - // If you're on slide 1.3 and navigate right, you will normally move - // from 1.3 -> 2.1. If "grid" is used, the same navigation takes you - // from 1.3 -> 2.3. - navigationMode: 'default', - - // Randomizes the order of slides each time the presentation loads - shuffle: false, - - // Turns fragments on and off globally - fragments: true, - - // Flags whether to include the current fragment in the URL, - // so that reloading brings you to the same fragment position - fragmentInURL: false, - - // Flags if the presentation is running in an embedded mode, - // i.e. contained within a limited portion of the screen - embedded: false, - - // Flags if we should show a help overlay when the question-mark - // key is pressed - help: true, - - // Flags if it should be possible to pause the presentation (blackout) - pause: true, - - // Flags if speaker notes should be visible to all viewers - showNotes: false, - - // Global override for autolaying embedded media (video/audio/iframe) - // - null: Media will only autoplay if data-autoplay is present - // - true: All media will autoplay, regardless of individual setting - // - false: No media will autoplay, regardless of individual setting - autoPlayMedia: null, - - // Global override for preloading lazy-loaded iframes - // - null: Iframes with data-src AND data-preload will be loaded when within - // the viewDistance, iframes with only data-src will be loaded when visible - // - true: All iframes with data-src will be loaded when within the viewDistance - // - false: All iframes with data-src will be loaded only when visible - preloadIframes: null, - - // Can be used to globally disable auto-animation - autoAnimate: true, - - // Optionally provide a custom element matcher that will be - // used to dictate which elements we can animate between. - autoAnimateMatcher: null, - - // Default settings for our auto-animate transitions, can be - // overridden per-slide or per-element via data arguments - autoAnimateEasing: 'ease', - autoAnimateDuration: 1.0, - autoAnimateUnmatched: true, - - // CSS properties that can be auto-animated. Position & scale - // is matched separately so there's no need to include styles - // like top/right/bottom/left, width/height or margin. - autoAnimateStyles: [ - 'opacity', - 'color', - 'background-color', - 'padding', - 'font-size', - 'line-height', - 'letter-spacing', - 'border-width', - 'border-color', - 'border-radius', - 'outline', - 'outline-offset' - ], - - // Controls automatic progression to the next slide - // - 0: Auto-sliding only happens if the data-autoslide HTML attribute - // is present on the current slide or fragment - // - 1+: All slides will progress automatically at the given interval - // - false: No auto-sliding, even if data-autoslide is present - autoSlide: 0, - - // Stop auto-sliding after user input - autoSlideStoppable: true, - - // Use this method for navigation when auto-sliding (defaults to navigateNext) - autoSlideMethod: null, - - // Specify the average time in seconds that you think you will spend - // presenting each slide. This is used to show a pacing timer in the - // speaker view - defaultTiming: null, - - // Enable slide navigation via mouse wheel - mouseWheel: false, - - // Opens links in an iframe preview overlay - // Add `data-preview-link` and `data-preview-link="false"` to customise each link - // individually - previewLinks: false, - - // Exposes the reveal.js API through window.postMessage - postMessage: true, - - // Dispatches all reveal.js events to the parent window through postMessage - postMessageEvents: false, - - // Focuses body when page changes visibility to ensure keyboard shortcuts work - focusBodyOnPageVisibilityChange: true, - - // Transition style - transition: 'slide', // none/fade/slide/convex/concave/zoom - - // Transition speed - transitionSpeed: 'default', // default/fast/slow - - // Transition style for full page slide backgrounds - backgroundTransition: 'fade', // none/fade/slide/convex/concave/zoom - - // Parallax background image - parallaxBackgroundImage: '', // CSS syntax, e.g. "a.jpg" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "3000px 2000px" - - // Parallax background repeat - parallaxBackgroundRepeat: '', // repeat/repeat-x/repeat-y/no-repeat/initial/inherit - - // Parallax background position - parallaxBackgroundPosition: '', // CSS syntax, e.g. "top left" - - // Amount of pixels to move the parallax background per slide step - parallaxBackgroundHorizontal: null, - parallaxBackgroundVertical: null, - - // The maximum number of pages a single slide can expand onto when printing - // to PDF, unlimited by default - pdfMaxPagesPerSlide: Number.POSITIVE_INFINITY, - - // Prints each fragment on a separate slide - pdfSeparateFragments: true, - - // Offset used to reduce the height of content within exported PDF pages. - // This exists to account for environment differences based on how you - // print to PDF. CLI printing options, like phantomjs and wkpdf, can end - // on precisely the total height of the document whereas in-browser - // printing has to end one pixel before. - pdfPageHeightOffset: -1, - - // Number of slides away from the current that are visible - viewDistance: 3, - - // Number of slides away from the current that are visible on mobile - // devices. It is advisable to set this to a lower number than - // viewDistance in order to save resources. - mobileViewDistance: 2, - - // The display mode that will be used to show slides - display: 'block', - - // Hide cursor if inactive - hideInactiveCursor: true, - - // Time before the cursor is hidden (in ms) - hideCursorTime: 5000, - - // Script dependencies to load - dependencies: [] - - }, + let config, // Flags if reveal.js is loaded (has dispatched the 'ready' event) loaded = false, @@ -432,8 +154,7 @@ export default function( revealElement, options ) { if( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies']; // Copy options over to our config object - extend( config, options ); - extend( config, query ); + config = {...defaultConfig, ...options, ...query} // Loads dependencies and continues to #start() once done load();