move default config to separate module
This commit is contained in:
1 parent
bf45578ba1
commit
313ad46e30
3 files changed
+285
-283
No files matched your search
Vendored
+1
-1
@@ -5,4 +5,4 @@
|
|||||||
*
|
*
|
||||||
* Copyright (C) 2020 Hakim El Hattab, https://hakim.se
|
* 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&&"functLine truncated
|
!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&&"funLine truncated
|
||||||
+281
@@ -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: []
|
||||||
|
|
||||||
|
}
|
||||||
+3
-282
@@ -1,4 +1,5 @@
|
|||||||
import Playback from './components/playback.js'
|
import Playback from './components/playback.js'
|
||||||
|
import defaultConfig from './config.js'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reveal.js
|
* reveal.js
|
||||||
@@ -9,8 +10,6 @@ import Playback from './components/playback.js'
|
|||||||
*/
|
*/
|
||||||
export default function( revealElement, options ) {
|
export default function( revealElement, options ) {
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
let Reveal;
|
let Reveal;
|
||||||
|
|
||||||
// The reveal.js version
|
// The reveal.js version
|
||||||
@@ -27,284 +26,7 @@ export default function( revealElement, options ) {
|
|||||||
const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;
|
const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;
|
||||||
|
|
||||||
// Configuration defaults, can be overridden at initialization time
|
// Configuration defaults, can be overridden at initialization time
|
||||||
let config = {
|
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: []
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
// Flags if reveal.js is loaded (has dispatched the 'ready' event)
|
// Flags if reveal.js is loaded (has dispatched the 'ready' event)
|
||||||
loaded = false,
|
loaded = false,
|
||||||
@@ -432,8 +154,7 @@ export default function( revealElement, options ) {
|
|||||||
if( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];
|
if( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];
|
||||||
|
|
||||||
// Copy options over to our config object
|
// Copy options over to our config object
|
||||||
extend( config, options );
|
config = {...defaultConfig, ...options, ...query}
|
||||||
extend( config, query );
|
|
||||||
|
|
||||||
// Loads dependencies and continues to #start() once done
|
// Loads dependencies and continues to #start() once done
|
||||||
load();
|
load();
|
||||||
|
|||||||
Reference in new issue
Block a user