BeamerReveal

 view release on metacpan or  search on metacpan

#TODO.org#  view on Meta::CPAN

  <section>
  <h2>Slide with delayed media</h2>

  <audio data-autoplay-after="3000" src="audio/clip.mp3" preload="auto"></audio>

  <video data-autoplay-after="1500" src="video/clip.mp4" preload="metadata" controls></video>
</section>


(function () {
  // Keep timers per slide so we can cancel them cleanly
  const slideTimers = new WeakMap();

  function clearTimers(slide) {
    const timers = slideTimers.get(slide);
    if (timers) timers.forEach(id => clearTimeout(id));
    slideTimers.delete(slide);
  }

  function stopMedia(slide) {
    slide.querySelectorAll('audio,video').forEach(m => {
      try { m.pause(); } catch {}
      // Optional: reset to start when leaving
      // m.currentTime = 0;
    });
  }

  function scheduleDelayedMedia(slide) {
    clearTimers(slide);

    const timers = [];
    slide.querySelectorAll('audio[data-autoplay-after], video[data-autoplay-after]').forEach(media => {
      const delay = parseInt(media.getAttribute('data-autoplay-after'), 10);
      if (Number.isNaN(delay)) return;

      const id = setTimeout(() => {
        // Only play if this slide is still current
        if (Reveal.getCurrentSlide() !== slide) return;

        // Play may be blocked unless user has interacted
        const p = media.play();
        if (p && typeof p.catch === "function") p.catch(() => {});
      }, delay);

      timers.push(id);
    });

    slideTimers.set(slide, timers);
  }

  Reveal.on('ready', () => {
    scheduleDelayedMedia(Reveal.getCurrentSlide());
  });

  Reveal.on('slidechanged', (e) => {
    // cleanup old slide
    clearTimers(e.previousSlide);
    stopMedia(e.previousSlide);

beamer-reveal-example.html  view on Meta::CPAN

          // by using a data-autoslide attribute on your slides
          autoSlide: 4000,

          // Stop auto-sliding after user input
          autoSlideStoppable: true,

          // Use this method for navigation when auto-sliding
          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,

          // The display mode that will be used to show slides
          display: 'block',

          // Hide cursor if inactive

beamer-reveal-example_files/libs/revealjs/dist/reveal.esm.js.map  view on Meta::CPAN

{"version":3,"file":"reveal.esm.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/utils/constants.js","../js/controllers/slidenumber.js","../js/control...

beamer-reveal-example_files/libs/revealjs/dist/reveal.js.map  view on Meta::CPAN

{"version":3,"file":"reveal.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/utils/constants.js","../js/controllers/slidenumber.js","../js/controllers...

beamer-reveal-example_files/libs/revealjs/plugin/highlight/highlight.esm.js  view on Meta::CPAN

function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete...
/*!
 * reveal.js plugin that adds syntax highlight support.
 */
const Rs={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:fs,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,...

beamer-reveal-example_files/libs/revealjs/plugin/highlight/highlight.js  view on Meta::CPAN

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealHighlight=t()}(this,(function(){"use strict";function e...
/*!
	 * reveal.js plugin that adds syntax highlight support.
	 */
const Rs={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:fs,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,...

beamer-reveal-example_files/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

      .speaker-controls-time .reset-button {
	  opacity: 0;
	  float: right;
	  color: #666;
	  text-decoration: none;
      }
      .speaker-controls-time:hover .reset-button {
	  opacity: 1;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock {
	  width: 50%;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock,
      .speaker-controls-time .pacing .hours-value,
      .speaker-controls-time .pacing .minutes-value,
      .speaker-controls-time .pacing .seconds-value {
	  font-size: 1.9em;
      }

      .speaker-controls-time .timer {
	  float: left;
      }

      .speaker-controls-time .clock {
	  float: right;
	  text-align: right;
      }

      .speaker-controls-time span.mute {
	  opacity: 0.3;

beamer-reveal-example_files/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

    <div id="connection-status">Loading speaker view...</div>

    <div id="current-slide"></div>
    <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
    <div id="speaker-controls">
      <div class="speaker-controls-time">
	<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
	<div class="clock">
	  <span class="clock-value">0:00 AM</span>
	</div>
	<div class="timer">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
	<div class="clear"></div>

	<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
	<div class="pacing" style="display: none">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
      </div>

beamer-reveal-example_files/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

		  var allocated = 0;
		  for (var i in timings.slice(0, currentSlide + 1)) {
		      allocated += timings[i];
		  }
		  callback( allocated );
	      } );

	  }

	  /**
	   * Create the timer and clock and start updating them
	   * at an interval.
	   */
	  function setupTimer() {

	      var start = new Date(),
		  timeEl = document.querySelector( '.speaker-controls-time' ),
		  clockEl = timeEl.querySelector( '.clock-value' ),
		  hoursEl = timeEl.querySelector( '.hours-value' ),
		  minutesEl = timeEl.querySelector( '.minutes-value' ),
		  secondsEl = timeEl.querySelector( '.seconds-value' ),

beamer-reveal-example_files/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

	      } );


	      function _resetTimer() {

		  if (timings == null) {
		      start = new Date();
		      _updateTimer();
		  }
		  else {
		      // Reset timer to beginning of current slide
		      getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
			  var slideEndTiming = slideEndTimingSeconds * 1000;
			  callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
			      var currentSlideTiming = timings[currentSlide] * 1000;
			      var previousSlidesTiming = slideEndTiming - currentSlideTiming;
			      var now = new Date();
			      start = new Date(now.getTime() - previousSlidesTiming);
			      _updateTimer();
			  } );
		      } );

beamer-reveal-example_files/libs/revealjs/plugin/notes/notes.esm.js  view on Meta::CPAN

function e(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer...

beamer-reveal-example_files/libs/revealjs/plugin/notes/notes.js  view on Meta::CPAN

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealNotes=t()}(this,(function(){"use strict";function e(){r...

beamer-reveal-example_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

      .speaker-controls-time .reset-button {
	  opacity: 0;
	  float: right;
	  color: #666;
	  text-decoration: none;
      }
      .speaker-controls-time:hover .reset-button {
	  opacity: 1;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock {
	  width: 50%;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock,
      .speaker-controls-time .pacing .hours-value,
      .speaker-controls-time .pacing .minutes-value,
      .speaker-controls-time .pacing .seconds-value {
	  font-size: 1.9em;
      }

      .speaker-controls-time .timer {
	  float: left;
      }

      .speaker-controls-time .clock {
	  float: right;
	  text-align: right;
      }

      .speaker-controls-time span.mute {
	  opacity: 0.3;

beamer-reveal-example_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

    <div id="connection-status">Loading speaker view...</div>

    <div id="current-slide"></div>
    <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
    <div id="speaker-controls">
      <div class="speaker-controls-time">
	<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
	<div class="clock">
	  <span class="clock-value">0:00 AM</span>
	</div>
	<div class="timer">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
	<div class="clear"></div>

	<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
	<div class="pacing" style="display: none">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
      </div>

beamer-reveal-example_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

		  var allocated = 0;
		  for (var i in timings.slice(0, currentSlide + 1)) {
		      allocated += timings[i];
		  }
		  callback( allocated );
	      } );

	  }

	  /**
	   * Create the timer and clock and start updating them
	   * at an interval.
	   */
	  function setupTimer() {

	      var start = new Date(),
		  timeEl = document.querySelector( '.speaker-controls-time' ),
		  clockEl = timeEl.querySelector( '.clock-value' ),
		  hoursEl = timeEl.querySelector( '.hours-value' ),
		  minutesEl = timeEl.querySelector( '.minutes-value' ),
		  secondsEl = timeEl.querySelector( '.seconds-value' ),

beamer-reveal-example_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

	      } );


	      function _resetTimer() {

		  if (timings == null) {
		      start = new Date();
		      _updateTimer();
		  }
		  else {
		      // Reset timer to beginning of current slide
		      getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
			  var slideEndTiming = slideEndTimingSeconds * 1000;
			  callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
			      var currentSlideTiming = timings[currentSlide] * 1000;
			      var previousSlidesTiming = slideEndTiming - currentSlideTiming;
			      var now = new Date();
			      start = new Date(now.getTime() - previousSlidesTiming);
			      _updateTimer();
			  } );
		      } );

index.html  view on Meta::CPAN

          // by using a data-autoslide attribute on your slides
          autoSlide: 4000,

          // Stop auto-sliding after user input
          autoSlideStoppable: true,

          // Use this method for navigation when auto-sliding
          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,

          // The display mode that will be used to show slides
          display: 'block',

          // Hide cursor if inactive

quarto/hello.html  view on Meta::CPAN

        "resize",
        throttle(() => {
          elRect = undefined;
          if (selectedAnnoteEl) {
            selectCodeLines(selectedAnnoteEl);
          }
        }, 10)
      );
      function throttle(fn, ms) {
      let throttle = false;
      let timer;
        return (...args) => {
          if(!throttle) { // first call gets through
              fn.apply(this, args);
              throttle = true;
          } else { // all the others get throttled
              if(timer) clearTimeout(timer); // cancel #2
              timer = setTimeout(() => {
                fn.apply(this, args);
                timer = throttle = false;
              }, ms);
          }
        };
      }
        // Attach click handler to the DT
        const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
        for (const annoteDlNode of annoteDls) {
          annoteDlNode.addEventListener('click', (event) => {
            const clickedEl = event.target;
            if (clickedEl !== selectedAnnoteEl) {

quarto/preso.html  view on Meta::CPAN

        // by using a data-autoslide attribute on your slides
        autoSlide: 0,

        // Stop auto-sliding after user input
        autoSlideStoppable: true,

        // Use this method for navigation when auto-sliding
        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,

        // The display mode that will be used to show slides
        display: 'block',

        // Hide cursor if inactive

quarto/preso_files/libs/revealjs/dist/reveal.esm.js.map  view on Meta::CPAN

{"version":3,"file":"reveal.esm.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/utils/constants.js","../js/controllers/slidenumber.js","../js/control...

quarto/preso_files/libs/revealjs/dist/reveal.js.map  view on Meta::CPAN

{"version":3,"file":"reveal.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/utils/constants.js","../js/controllers/slidenumber.js","../js/controllers...

quarto/preso_files/libs/revealjs/plugin/highlight/highlight.esm.js  view on Meta::CPAN

function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete...
/*!
 * reveal.js plugin that adds syntax highlight support.
 */
const Rs={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:fs,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,...

quarto/preso_files/libs/revealjs/plugin/highlight/highlight.js  view on Meta::CPAN

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealHighlight=t()}(this,(function(){"use strict";function e...
/*!
	 * reveal.js plugin that adds syntax highlight support.
	 */
const Rs={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:fs,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,...

quarto/preso_files/libs/revealjs/plugin/notes/notes.esm.js  view on Meta::CPAN

function e(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer...

quarto/preso_files/libs/revealjs/plugin/notes/notes.js  view on Meta::CPAN

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealNotes=t()}(this,(function(){"use strict";function e(){r...

quarto/preso_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

      .speaker-controls-time .reset-button {
	  opacity: 0;
	  float: right;
	  color: #666;
	  text-decoration: none;
      }
      .speaker-controls-time:hover .reset-button {
	  opacity: 1;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock {
	  width: 50%;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock,
      .speaker-controls-time .pacing .hours-value,
      .speaker-controls-time .pacing .minutes-value,
      .speaker-controls-time .pacing .seconds-value {
	  font-size: 1.9em;
      }

      .speaker-controls-time .timer {
	  float: left;
      }

      .speaker-controls-time .clock {
	  float: right;
	  text-align: right;
      }

      .speaker-controls-time span.mute {
	  opacity: 0.3;

quarto/preso_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

    <div id="connection-status">Loading speaker view...</div>

    <div id="current-slide"></div>
    <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
    <div id="speaker-controls">
      <div class="speaker-controls-time">
	<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
	<div class="clock">
	  <span class="clock-value">0:00 AM</span>
	</div>
	<div class="timer">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
	<div class="clear"></div>

	<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
	<div class="pacing" style="display: none">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
      </div>

quarto/preso_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

		  var allocated = 0;
		  for (var i in timings.slice(0, currentSlide + 1)) {
		      allocated += timings[i];
		  }
		  callback( allocated );
	      } );

	  }

	  /**
	   * Create the timer and clock and start updating them
	   * at an interval.
	   */
	  function setupTimer() {

	      var start = new Date(),
		  timeEl = document.querySelector( '.speaker-controls-time' ),
		  clockEl = timeEl.querySelector( '.clock-value' ),
		  hoursEl = timeEl.querySelector( '.hours-value' ),
		  minutesEl = timeEl.querySelector( '.minutes-value' ),
		  secondsEl = timeEl.querySelector( '.seconds-value' ),

quarto/preso_files/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

	      } );


	      function _resetTimer() {

		  if (timings == null) {
		      start = new Date();
		      _updateTimer();
		  }
		  else {
		      // Reset timer to beginning of current slide
		      getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
			  var slideEndTiming = slideEndTimingSeconds * 1000;
			  callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
			      var currentSlideTiming = timings[currentSlide] * 1000;
			      var previousSlidesTiming = slideEndTiming - currentSlideTiming;
			      var now = new Date();
			      start = new Date(now.getTime() - previousSlidesTiming);
			      _updateTimer();
			  } );
		      } );

share/libs/revealjs/dist/reveal.esm.js.map  view on Meta::CPAN

{"version":3,"file":"reveal.esm.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/utils/constants.js","../js/controllers/slidenumber.js","../js/control...

share/libs/revealjs/dist/reveal.js.map  view on Meta::CPAN

{"version":3,"file":"reveal.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/utils/constants.js","../js/controllers/slidenumber.js","../js/controllers...

share/libs/revealjs/plugin/highlight/highlight.esm.js  view on Meta::CPAN

function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete...
/*!
 * reveal.js plugin that adds syntax highlight support.
 */
const Rs={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:fs,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,...

share/libs/revealjs/plugin/highlight/highlight.js  view on Meta::CPAN

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealHighlight=t()}(this,(function(){"use strict";function e...
/*!
	 * reveal.js plugin that adds syntax highlight support.
	 */
const Rs={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:fs,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,...

share/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

      .speaker-controls-time .reset-button {
	  opacity: 0;
	  float: right;
	  color: #666;
	  text-decoration: none;
      }
      .speaker-controls-time:hover .reset-button {
	  opacity: 1;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock {
	  width: 50%;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock,
      .speaker-controls-time .pacing .hours-value,
      .speaker-controls-time .pacing .minutes-value,
      .speaker-controls-time .pacing .seconds-value {
	  font-size: 1.9em;
      }

      .speaker-controls-time .timer {
	  float: left;
      }

      .speaker-controls-time .clock {
	  float: right;
	  text-align: right;
      }

      .speaker-controls-time span.mute {
	  opacity: 0.3;

share/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

    <div id="connection-status">Loading speaker view...</div>

    <div id="current-slide"></div>
    <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
    <div id="speaker-controls">
      <div class="speaker-controls-time">
	<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
	<div class="clock">
	  <span class="clock-value">0:00 AM</span>
	</div>
	<div class="timer">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
	<div class="clear"></div>

	<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
	<div class="pacing" style="display: none">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
      </div>

share/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

		  var allocated = 0;
		  for (var i in timings.slice(0, currentSlide + 1)) {
		      allocated += timings[i];
		  }
		  callback( allocated );
	      } );

	  }

	  /**
	   * Create the timer and clock and start updating them
	   * at an interval.
	   */
	  function setupTimer() {

	      var start = new Date(),
		  timeEl = document.querySelector( '.speaker-controls-time' ),
		  clockEl = timeEl.querySelector( '.clock-value' ),
		  hoursEl = timeEl.querySelector( '.hours-value' ),
		  minutesEl = timeEl.querySelector( '.minutes-value' ),
		  secondsEl = timeEl.querySelector( '.seconds-value' ),

share/libs/revealjs/plugin/notes/jojo.html  view on Meta::CPAN

	      } );


	      function _resetTimer() {

		  if (timings == null) {
		      start = new Date();
		      _updateTimer();
		  }
		  else {
		      // Reset timer to beginning of current slide
		      getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
			  var slideEndTiming = slideEndTimingSeconds * 1000;
			  callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
			      var currentSlideTiming = timings[currentSlide] * 1000;
			      var previousSlidesTiming = slideEndTiming - currentSlideTiming;
			      var now = new Date();
			      start = new Date(now.getTime() - previousSlidesTiming);
			      _updateTimer();
			  } );
		      } );

share/libs/revealjs/plugin/notes/notes.esm.js  view on Meta::CPAN

function e(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer...

share/libs/revealjs/plugin/notes/notes.js  view on Meta::CPAN

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealNotes=t()}(this,(function(){"use strict";function e(){r...

share/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

      .speaker-controls-time .reset-button {
	  opacity: 0;
	  float: right;
	  color: #666;
	  text-decoration: none;
      }
      .speaker-controls-time:hover .reset-button {
	  opacity: 1;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock {
	  width: 50%;
      }

      .speaker-controls-time .timer,
      .speaker-controls-time .clock,
      .speaker-controls-time .pacing .hours-value,
      .speaker-controls-time .pacing .minutes-value,
      .speaker-controls-time .pacing .seconds-value {
	  font-size: 1.9em;
      }

      .speaker-controls-time .timer {
	  float: left;
      }

      .speaker-controls-time .clock {
	  float: right;
	  text-align: right;
      }

      .speaker-controls-time span.mute {
	  opacity: 0.3;

share/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

    <div id="connection-status">Loading speaker view...</div>

    <div id="current-slide"></div>
    <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
    <div id="speaker-controls">
      <div class="speaker-controls-time">
	<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
	<div class="clock">
	  <span class="clock-value">0:00 AM</span>
	</div>
	<div class="timer">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
	<div class="clear"></div>

	<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
	<div class="pacing" style="display: none">
	  <span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
	</div>
      </div>

share/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

		  var allocated = 0;
		  for (var i in timings.slice(0, currentSlide + 1)) {
		      allocated += timings[i];
		  }
		  callback( allocated );
	      } );

	  }

	  /**
	   * Create the timer and clock and start updating them
	   * at an interval.
	   */
	  function setupTimer() {

	      var start = new Date(),
		  timeEl = document.querySelector( '.speaker-controls-time' ),
		  clockEl = timeEl.querySelector( '.clock-value' ),
		  hoursEl = timeEl.querySelector( '.hours-value' ),
		  minutesEl = timeEl.querySelector( '.minutes-value' ),
		  secondsEl = timeEl.querySelector( '.seconds-value' ),

share/libs/revealjs/plugin/notes/speaker-view.html  view on Meta::CPAN

	      } );


	      function _resetTimer() {

		  if (timings == null) {
		      start = new Date();
		      _updateTimer();
		  }
		  else {
		      // Reset timer to beginning of current slide
		      getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
			  var slideEndTiming = slideEndTimingSeconds * 1000;
			  callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
			      var currentSlideTiming = timings[currentSlide] * 1000;
			      var previousSlidesTiming = slideEndTiming - currentSlideTiming;
			      var now = new Date();
			      start = new Date(now.getTime() - previousSlidesTiming);
			      _updateTimer();
			  } );
		      } );

share/templates/html/main.html  view on Meta::CPAN

          // by using a data-autoslide attribute on your slides
          autoSlide: ---AUTOSLIDE---,

          // Stop auto-sliding after user input
          autoSlideStoppable: true,

          // Use this method for navigation when auto-sliding
          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,

          // The display mode that will be used to show slides
          display: 'block',

          // Hide cursor if inactive

t/02-bin/rvl/singleslide-no-anim.html.golden  view on Meta::CPAN

          // by using a data-autoslide attribute on your slides
          autoSlide: 0,

          // Stop auto-sliding after user input
          autoSlideStoppable: true,

          // Use this method for navigation when auto-sliding
          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,

          // The display mode that will be used to show slides
          display: 'block',

          // Hide cursor if inactive



( run in 5.642 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )