From fa3d0c899cafc5cea5a2095e4df47d262ed6f6fa Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Sat, 10 Nov 2012 13:59:51 -0500 Subject: [PATCH] count vertical slides towards the progress bar (closes #150) --- js/reveal.js | 72 +++++++++++++++----- js/reveal.min.js | 174 ++++++++++++++++++++++++----------------------- 2 files changed, 143 insertions(+), 103 deletions(-) diff --git a/js/reveal.js b/js/reveal.js index b54536ea..97ee048a 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -1,5 +1,5 @@ /*! - * reveal.js 2.2 r39 + * reveal.js 2.2 r40 * http://lab.hakim.se/reveal-js * MIT licensed * @@ -9,7 +9,8 @@ var Reveal = (function(){ 'use strict'; - var HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section', + var SLIDES_SELECTOR = '.reveal .slides section', + HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section', VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section', // Configurations defaults, can be overridden at initialization time @@ -469,7 +470,7 @@ var Reveal = (function(){ */ function linkify() { if( supports3DTransforms && !( 'msPerspective' in document.body.style ) ) { - var nodes = document.querySelectorAll( '.reveal .slides section a:not(.image)' ); + var nodes = document.querySelectorAll( SLIDES_SELECTOR + ' a:not(.image)' ); for( var i = 0, len = nodes.length; i < len; i++ ) { var node = nodes[i]; @@ -491,7 +492,7 @@ var Reveal = (function(){ if( config.center ) { // Select all slides, vertical and horizontal - var slides = Array.prototype.slice.call( document.querySelectorAll( '.reveal .slides section' ) ); + var slides = toArray( document.querySelectorAll( SLIDES_SELECTOR ) ); // Determine the minimum top offset for slides var minTop = -dom.wrapper.offsetHeight / 2; @@ -583,7 +584,7 @@ var Reveal = (function(){ dom.wrapper.classList.remove( 'overview' ); // Select all slides - var slides = Array.prototype.slice.call( document.querySelectorAll( '.reveal .slides section' ) ); + var slides = toArray( document.querySelectorAll( SLIDES_SELECTOR ) ); for( var i = 0, len = slides.length; i < len; i++ ) { var element = slides[i]; @@ -732,18 +733,11 @@ var Reveal = (function(){ document.documentElement.classList.remove( stateBefore.pop() ); } - // Update progress if enabled - if( config.progress && dom.progress ) { - dom.progressbar.style.width = ( indexh / ( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ).length - 1 ) ) * window.innerWidth + 'px'; - } - // If the overview is active, re-activate it to update positions if( isOverviewActive() ) { activateOverview(); } - updateControls(); - // Update the URL hash after a delay since updating it mid-transition // is likely to cause visual lag clearTimeout( writeURLTimeout ); @@ -780,6 +774,9 @@ var Reveal = (function(){ if( previousSlide ) { previousSlide.classList.remove( 'present' ); } + + updateControls(); + updateProgress(); } /** @@ -798,7 +795,7 @@ var Reveal = (function(){ function updateSlides( selector, index ) { // Select all slides and convert the NodeList result to // an array - var slides = Array.prototype.slice.call( document.querySelectorAll( selector ) ), + var slides = toArray( document.querySelectorAll( selector ) ), slidesLength = slides.length; if( slidesLength ) { @@ -878,7 +875,48 @@ var Reveal = (function(){ } /** - * Updates the state and link pointers of the controls. + * Updates the progress bar to reflect the current slide. + */ + function updateProgress() { + // Update progress if enabled + if( config.progress && dom.progress ) { + + var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); + + // The number of past and total slides + var totalCount = document.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ).length; + var pastCount = 0; + + // Step through all slides and count the past ones + mainLoop: for( var i = 0; i < horizontalSlides.length; i++ ) { + + var horizontalSlide = horizontalSlides[i]; + var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) ); + + for( var j = 0; j < verticalSlides.length; j++ ) { + + // Stop as soon as we arrive at the present + if( verticalSlides[j].classList.contains( 'present' ) ) break mainLoop; + + pastCount++ + + } + + // Stop as soon as we arrive at the present + if( horizontalSlide.classList.contains( 'present' ) ) break; + + // Don't count the wrapping section for vertical slides + if( horizontalSlide.classList.contains( 'stack' ) === false ) pastCount++; + + } + + dom.progressbar.style.width = ( pastCount / ( totalCount - 1 ) ) * window.innerWidth + 'px'; + + } + } + + /** + * Updates the state of all control/navigation arrows. */ function updateControls() { if ( config.controls && dom.controls ) { @@ -1002,14 +1040,14 @@ var Reveal = (function(){ var slideh = isVertical ? slide.parentNode : slide; // Select all horizontal slides - var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); + var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); // Now that we know which the horizontal slide is, get its index h = Math.max( horizontalSlides.indexOf( slideh ), 0 ); // If this is a vertical slide, grab the vertical index if( isVertical ) { - v = Math.max( Array.prototype.slice.call( slide.parentNode.children ).indexOf( slide ), 0 ); + v = Math.max( toArray( slide.parentNode.children ).indexOf( slide ), 0 ); } } @@ -1356,7 +1394,7 @@ var Reveal = (function(){ * ( clickX / presentationWidth ) * numberOfSlides */ function onProgressClick( event ) { - var slidesTotal = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length; + var slidesTotal = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length; var slideIndex = Math.floor( ( event.clientX / dom.wrapper.offsetWidth ) * slidesTotal ); slide( slideIndex ); diff --git a/js/reveal.min.js b/js/reveal.min.js index 948c4119..16599e3c 100644 --- a/js/reveal.min.js +++ b/js/reveal.min.js @@ -1,93 +1,95 @@ /*! - * reveal.js 2.2 r39 + * reveal.js 2.2 r40 * http://lab.hakim.se/reveal-js * MIT licensed * * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se */ -var Reveal=(function(){var m=".reveal .slides>section",b=".reveal .slides>section.present>section",U={controls:true,progress:true,history:false,keyboard:true,overview:true,center:false,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:null,transition:"default",dependencies:[]},ab=U.autoSlide,n=0,e=0,z,I,ao=[],f={},W="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,o="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,A=0,l=0,E=0,ag={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:80}; -function j(ap){if((!o&&!W)){document.body.setAttribute("class","no-transforms");return;}u(U,ap);d();Y();}function R(){f.theme=document.querySelector("#theme"); -f.wrapper=document.querySelector(".reveal");if(!f.wrapper.querySelector(".progress")&&U.progress){var at=document.createElement("div");at.classList.add("progress"); -at.innerHTML="";f.wrapper.appendChild(at);}if(!f.wrapper.querySelector(".controls")&&U.controls){var ar=document.createElement("aside");ar.classList.add("controls"); -ar.innerHTML='';f.wrapper.appendChild(ar); -}if(!f.wrapper.querySelector(".state-background")){var aq=document.createElement("div");aq.classList.add("state-background");f.wrapper.appendChild(aq); -}if(!f.wrapper.querySelector(".pause-overlay")){var ap=document.createElement("div");ap.classList.add("pause-overlay");f.wrapper.appendChild(ap);}f.progress=document.querySelector(".reveal .progress"); -f.progressbar=document.querySelector(".reveal .progress span");if(U.controls){f.controls=document.querySelector(".reveal .controls");f.controlsLeft=H(document.querySelectorAll(".navigate-left")); -f.controlsRight=H(document.querySelectorAll(".navigate-right"));f.controlsUp=H(document.querySelectorAll(".navigate-up"));f.controlsDown=H(document.querySelectorAll(".navigate-down")); -f.controlsPrev=H(document.querySelectorAll(".navigate-prev"));f.controlsNext=H(document.querySelectorAll(".navigate-next"));}}function d(){if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll"; -document.body.style.height="120%";window.addEventListener("load",ah,false);window.addEventListener("orientationchange",ah,false);}}function Y(){var aq=[],av=[]; -for(var ar=0,ap=U.dependencies.length;ar'+at.innerHTML+"";}}}}function S(){if(U.center){var at=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section")); -var au=-f.wrapper.offsetHeight/2;for(var ar=0,aq=at.length;ar3?"none":"block"; -}aq[av].classList.remove("past");aq[av].classList.remove("present");aq[av].classList.remove("future");if(avay){aq[av].classList.add("future"); -}}if(aw.querySelector("section")){aq[av].classList.add("stack");}}aq[ay].classList.add("present");var ar=aq[ay].getAttribute("data-state");if(ar){ao=ao.concat(ar.split(" ")); -}var au=aq[ay].getAttribute("data-autoslide");if(au){ab=parseInt(au);}else{ab=U.autoSlide;}}else{ay=0;}return ay;}function t(){if(U.controls&&f.controls){var ap=h(); -f.controlsLeft.concat(f.controlsRight).concat(f.controlsUp).concat(f.controlsDown).concat(f.controlsPrev).concat(f.controlsNext).forEach(function(aq){aq.classList.remove("enabled"); -});if(ap.left){f.controlsLeft.forEach(function(aq){aq.classList.add("enabled");});}if(ap.right){f.controlsRight.forEach(function(aq){aq.classList.add("enabled"); -});}if(ap.up){f.controlsUp.forEach(function(aq){aq.classList.add("enabled");});}if(ap.down){f.controlsDown.forEach(function(aq){aq.classList.add("enabled"); -});}if(ap.left||ap.up){f.controlsPrev.forEach(function(aq){aq.classList.add("enabled");});}if(ap.right||ap.down){f.controlsNext.forEach(function(aq){aq.classList.add("enabled"); -});}}}function h(){var ap=document.querySelectorAll(m),aq=document.querySelectorAll(b);return{left:n>0,right:n0,down:e0||e>0){ap+=n;}if(e>0){ap+="/"+e;}}window.location.hash=ap;}}function O(ap){var au=n,ar=e;if(ap){var av=!!ap.parentNode.nodeName.match(/section/gi); -var at=av?ap.parentNode:ap;var aq=Array.prototype.slice.call(document.querySelectorAll(m));au=Math.max(aq.indexOf(at),0);if(av){ar=Math.max(Array.prototype.slice.call(ap.parentNode.children).indexOf(ap),0); -}}return{h:au,v:ar};}function w(){if(document.querySelector(b+".present")){var aq=document.querySelectorAll(b+".present .fragment:not(.visible)");if(aq.length){aq[0].classList.add("visible"); -s("fragmentshown",{fragment:aq[0]});return true;}}else{var ap=document.querySelectorAll(m+".present .fragment:not(.visible)");if(ap.length){ap[0].classList.add("visible"); -s("fragmentshown",{fragment:ap[0]});return true;}}return false;}function T(){if(document.querySelector(b+".present")){var aq=document.querySelectorAll(b+".present .fragment.visible"); -if(aq.length){aq[aq.length-1].classList.remove("visible");s("fragmenthidden",{fragment:aq[aq.length-1]});return true;}}else{var ap=document.querySelectorAll(m+".present .fragment.visible"); -if(ap.length){ap[ap.length-1].classList.remove("visible");s("fragmenthidden",{fragment:ap[ap.length-1]});return true;}}return false;}function Q(){clearTimeout(l); -if(ab){l=setTimeout(y,ab);}}function C(){if(h().left&&(N()||T()===false)){a(n-1,0);}}function k(){if(h().right&&(N()||w()===false)){a(n+1,0);}}function v(){if(h().up&&(N()||T()===false)){a(n,e-1); -}}function G(){if(h().down&&(N()||w()===false)){a(n,e+1);}}function ac(){if(T()===false){if(h().up){v();}else{var ap=document.querySelector(".reveal .slides>section.past:nth-child("+n+")"); -if(ap){e=(ap.querySelectorAll("section").length+1)||0;n--;a();}}}}function y(){if(w()===false){h().down?G():k();}Q();}function al(ar){var aq=document.activeElement; -var at=!!(document.activeElement&&(document.activeElement.type||document.activeElement.href||document.activeElement.contentEditable!=="inherit"));if(at||ar.shiftKey||ar.altKey||ar.ctrlKey||ar.metaKey){return; -}var ap=true;switch(ar.keyCode){case 80:case 33:ac();break;case 78:case 34:y();break;case 72:case 37:C();break;case 76:case 39:k();break;case 75:case 38:v(); -break;case 74:case 40:G();break;case 36:a(0);break;case 35:a(Number.MAX_VALUE);break;case 32:N()?ai():y();break;case 13:N()?ai():ap=false;break;case 66:case 190:ad(); -break;case 70:af();break;default:ap=false;}if(ap){ar.preventDefault();}else{if(ar.keyCode===27&&W){aa();ar.preventDefault();}}Q();}function B(ap){ag.startX=ap.touches[0].clientX; -ag.startY=ap.touches[0].clientY;ag.startCount=ap.touches.length;if(ap.touches.length===2&&U.overview){ag.startSpan=V({x:ap.touches[1].clientX,y:ap.touches[1].clientY},{x:ag.startX,y:ag.startY}); -}}function aj(av){if(!ag.handled){var at=av.touches[0].clientX;var ar=av.touches[0].clientY;if(av.touches.length===2&&ag.startCount===2&&U.overview){var au=V({x:av.touches[1].clientX,y:av.touches[1].clientY},{x:ag.startX,y:ag.startY}); -if(Math.abs(ag.startSpan-au)>ag.threshold){ag.handled=true;if(auag.threshold&&Math.abs(aq)>Math.abs(ap)){ag.handled=true;C();}else{if(aq<-ag.threshold&&Math.abs(aq)>Math.abs(ap)){ag.handled=true;k();}else{if(ap>ag.threshold){ag.handled=true; -v();}else{if(ap<-ag.threshold){ag.handled=true;G();}}}}av.preventDefault();}}}else{if(navigator.userAgent.match(/android/gi)){av.preventDefault();}}}function Z(ap){ag.handled=false; -}function p(ap){clearTimeout(A);A=setTimeout(function(){var aq=ap.detail||-ap.wheelDelta;if(aq>0){y();}else{ac();}},100);}function am(aq){var ap=Array.prototype.slice.call(document.querySelectorAll(m)).length; -var ar=Math.floor((aq.clientX/f.wrapper.offsetWidth)*ap);a(ar);}function x(ap){L();}function g(ap){S();}function D(ap){if(N()){ap.preventDefault();ai(); -n=this.getAttribute("data-index-h");e=this.getAttribute("data-index-v");a();}}return{initialize:j,slide:a,left:C,right:k,up:v,down:G,prev:ac,next:y,prevFragment:T,nextFragment:w,navigateTo:a,navigateLeft:C,navigateRight:k,navigateUp:v,navigateDown:G,navigatePrev:ac,navigateNext:y,toggleOverview:aa,addEventListeners:F,removeEventListeners:X,getIndices:O,getPreviousSlide:function(){return z; -},getCurrentSlide:function(){return I;},getQueryHash:function(){var ap={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(aq){ap[aq.split("=").shift()]=aq.split("=").pop(); -});return ap;},addEventListener:function(aq,ar,ap){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).addEventListener(aq,ar,ap); -}},removeEventListener:function(aq,ar,ap){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).removeEventListener(aq,ar,ap); +var Reveal=(function(){var ap=".reveal .slides section",m=".reveal .slides>section",b=".reveal .slides>section.present>section",V={controls:true,progress:true,history:false,keyboard:true,overview:true,center:false,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:null,transition:"default",dependencies:[]},ac=V.autoSlide,n=0,e=0,A,J,aq=[],f={},X="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,p="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,B=0,l=0,F=0,ah={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:80}; +function j(ar){if((!p&&!X)){document.body.setAttribute("class","no-transforms");return;}v(V,ar);d();Z();}function S(){f.theme=document.querySelector("#theme"); +f.wrapper=document.querySelector(".reveal");if(!f.wrapper.querySelector(".progress")&&V.progress){var av=document.createElement("div");av.classList.add("progress"); +av.innerHTML="";f.wrapper.appendChild(av);}if(!f.wrapper.querySelector(".controls")&&V.controls){var au=document.createElement("aside");au.classList.add("controls"); +au.innerHTML='';f.wrapper.appendChild(au); +}if(!f.wrapper.querySelector(".state-background")){var at=document.createElement("div");at.classList.add("state-background");f.wrapper.appendChild(at); +}if(!f.wrapper.querySelector(".pause-overlay")){var ar=document.createElement("div");ar.classList.add("pause-overlay");f.wrapper.appendChild(ar);}f.progress=document.querySelector(".reveal .progress"); +f.progressbar=document.querySelector(".reveal .progress span");if(V.controls){f.controls=document.querySelector(".reveal .controls");f.controlsLeft=I(document.querySelectorAll(".navigate-left")); +f.controlsRight=I(document.querySelectorAll(".navigate-right"));f.controlsUp=I(document.querySelectorAll(".navigate-up"));f.controlsDown=I(document.querySelectorAll(".navigate-down")); +f.controlsPrev=I(document.querySelectorAll(".navigate-prev"));f.controlsNext=I(document.querySelectorAll(".navigate-next"));}}function d(){if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll"; +document.body.style.height="120%";window.addEventListener("load",ai,false);window.addEventListener("orientationchange",ai,false);}}function Z(){var at=[],ax=[]; +for(var au=0,ar=V.dependencies.length;au'+av.innerHTML+"";}}}}function T(){if(V.center){var av=I(document.querySelectorAll(ap));var aw=-f.wrapper.offsetHeight/2; +for(var au=0,at=av.length;au3?"none":"block"; +}at[ax].classList.remove("past");at[ax].classList.remove("present");at[ax].classList.remove("future");if(axaA){at[ax].classList.add("future"); +}}if(ay.querySelector("section")){at[ax].classList.add("stack");}}at[aA].classList.add("present");var au=at[aA].getAttribute("data-state");if(au){aq=aq.concat(au.split(" ")); +}var aw=at[aA].getAttribute("data-autoslide");if(aw){ac=parseInt(aw);}else{ac=V.autoSlide;}}else{aA=0;}return aA;}function o(){if(V.progress&&f.progress){var au=I(document.querySelectorAll(m)); +var at=document.querySelectorAll(ap+":not(.stack)").length;var ar=0;mainLoop:for(var aw=0;aw0,right:n0,down:e0||e>0){ar+=n;}if(e>0){ar+="/"+e;}}window.location.hash=ar;}}function P(ar){var aw=n,au=e;if(ar){var ax=!!ar.parentNode.nodeName.match(/section/gi); +var av=ax?ar.parentNode:ar;var at=I(document.querySelectorAll(m));aw=Math.max(at.indexOf(av),0);if(ax){au=Math.max(I(ar.parentNode.children).indexOf(ar),0); +}}return{h:aw,v:au};}function x(){if(document.querySelector(b+".present")){var at=document.querySelectorAll(b+".present .fragment:not(.visible)");if(at.length){at[0].classList.add("visible"); +t("fragmentshown",{fragment:at[0]});return true;}}else{var ar=document.querySelectorAll(m+".present .fragment:not(.visible)");if(ar.length){ar[0].classList.add("visible"); +t("fragmentshown",{fragment:ar[0]});return true;}}return false;}function U(){if(document.querySelector(b+".present")){var at=document.querySelectorAll(b+".present .fragment.visible"); +if(at.length){at[at.length-1].classList.remove("visible");t("fragmenthidden",{fragment:at[at.length-1]});return true;}}else{var ar=document.querySelectorAll(m+".present .fragment.visible"); +if(ar.length){ar[ar.length-1].classList.remove("visible");t("fragmenthidden",{fragment:ar[ar.length-1]});return true;}}return false;}function R(){clearTimeout(l); +if(ac){l=setTimeout(z,ac);}}function D(){if(h().left&&(O()||U()===false)){a(n-1,0);}}function k(){if(h().right&&(O()||x()===false)){a(n+1,0);}}function w(){if(h().up&&(O()||U()===false)){a(n,e-1); +}}function H(){if(h().down&&(O()||x()===false)){a(n,e+1);}}function ad(){if(U()===false){if(h().up){w();}else{var ar=document.querySelector(".reveal .slides>section.past:nth-child("+n+")"); +if(ar){e=(ar.querySelectorAll("section").length+1)||0;n--;a();}}}}function z(){if(x()===false){h().down?H():k();}R();}function am(au){var at=document.activeElement; +var av=!!(document.activeElement&&(document.activeElement.type||document.activeElement.href||document.activeElement.contentEditable!=="inherit"));if(av||au.shiftKey||au.altKey||au.ctrlKey||au.metaKey){return; +}var ar=true;switch(au.keyCode){case 80:case 33:ad();break;case 78:case 34:z();break;case 72:case 37:D();break;case 76:case 39:k();break;case 75:case 38:w(); +break;case 74:case 40:H();break;case 36:a(0);break;case 35:a(Number.MAX_VALUE);break;case 32:O()?aj():z();break;case 13:O()?aj():ar=false;break;case 66:case 190:ae(); +break;case 70:ag();break;default:ar=false;}if(ar){au.preventDefault();}else{if(au.keyCode===27&&X){ab();au.preventDefault();}}R();}function C(ar){ah.startX=ar.touches[0].clientX; +ah.startY=ar.touches[0].clientY;ah.startCount=ar.touches.length;if(ar.touches.length===2&&V.overview){ah.startSpan=W({x:ar.touches[1].clientX,y:ar.touches[1].clientY},{x:ah.startX,y:ah.startY}); +}}function ak(ax){if(!ah.handled){var av=ax.touches[0].clientX;var au=ax.touches[0].clientY;if(ax.touches.length===2&&ah.startCount===2&&V.overview){var aw=W({x:ax.touches[1].clientX,y:ax.touches[1].clientY},{x:ah.startX,y:ah.startY}); +if(Math.abs(ah.startSpan-aw)>ah.threshold){ah.handled=true;if(awah.threshold&&Math.abs(at)>Math.abs(ar)){ah.handled=true;D();}else{if(at<-ah.threshold&&Math.abs(at)>Math.abs(ar)){ah.handled=true;k();}else{if(ar>ah.threshold){ah.handled=true; +w();}else{if(ar<-ah.threshold){ah.handled=true;H();}}}}ax.preventDefault();}}}else{if(navigator.userAgent.match(/android/gi)){ax.preventDefault();}}}function aa(ar){ah.handled=false; +}function q(ar){clearTimeout(B);B=setTimeout(function(){var at=ar.detail||-ar.wheelDelta;if(at>0){z();}else{ad();}},100);}function an(at){var ar=I(document.querySelectorAll(m)).length; +var au=Math.floor((at.clientX/f.wrapper.offsetWidth)*ar);a(au);}function y(ar){M();}function g(ar){T();}function E(ar){if(O()){ar.preventDefault();aj(); +n=this.getAttribute("data-index-h");e=this.getAttribute("data-index-v");a();}}return{initialize:j,slide:a,left:D,right:k,up:w,down:H,prev:ad,next:z,prevFragment:U,nextFragment:x,navigateTo:a,navigateLeft:D,navigateRight:k,navigateUp:w,navigateDown:H,navigatePrev:ad,navigateNext:z,toggleOverview:ab,addEventListeners:G,removeEventListeners:Y,getIndices:P,getPreviousSlide:function(){return A; +},getCurrentSlide:function(){return J;},getQueryHash:function(){var ar={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(at){ar[at.split("=").shift()]=at.split("=").pop(); +});return ar;},addEventListener:function(at,au,ar){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).addEventListener(at,au,ar); +}},removeEventListener:function(at,au,ar){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).removeEventListener(at,au,ar); }}};})(); \ No newline at end of file