tidying up
This commit is contained in:
parent
6ff28af1b3
commit
d22c7bfad1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
114
js/reveal.js
114
js/reveal.js
|
@ -15,22 +15,14 @@ import Touch from './controllers/touch.js'
|
|||
import Notes from './controllers/notes.js'
|
||||
import Playback from './components/playback.js'
|
||||
import defaultConfig from './config.js'
|
||||
import { isMobile, isChrome, supportsZoom } from './utils/device.js'
|
||||
import * as Util from './utils/util.js'
|
||||
import * as Device from './utils/device.js'
|
||||
import {
|
||||
SLIDES_SELECTOR,
|
||||
HORIZONTAL_SLIDES_SELECTOR,
|
||||
VERTICAL_SLIDES_SELECTOR,
|
||||
POST_MESSAGE_METHOD_BLACKLIST
|
||||
} from './utils/constants.js'
|
||||
import {
|
||||
extend,
|
||||
queryAll,
|
||||
deserialize,
|
||||
transformElement,
|
||||
createSingletonNode,
|
||||
getQueryHash,
|
||||
getRemainingHeight
|
||||
} from './utils/util.js'
|
||||
|
||||
/**
|
||||
* reveal.js
|
||||
|
@ -80,25 +72,6 @@ export default function( revealElement, options ) {
|
|||
// The current scale of the presentation (see width/height config)
|
||||
scale = 1,
|
||||
|
||||
// Controllers for different aspects of our presentation. They're
|
||||
// all given direct references to this Reveal instance since there
|
||||
// may be multiple presentations running in parallel.
|
||||
slideContent = new SlideContent( Reveal ),
|
||||
slideNumber = new SlideNumber( Reveal ),
|
||||
autoAnimate = new AutoAnimate( Reveal ),
|
||||
backgrounds = new Backgrounds( Reveal ),
|
||||
fragments = new Fragments( Reveal ),
|
||||
overview = new Overview( Reveal ),
|
||||
keyboard = new Keyboard( Reveal ),
|
||||
location = new Location( Reveal ),
|
||||
controls = new Controls( Reveal ),
|
||||
progress = new Progress( Reveal ),
|
||||
pointer = new Pointer( Reveal ),
|
||||
plugins = new Plugins( Reveal ),
|
||||
print = new Print( Reveal ),
|
||||
touch = new Touch( Reveal ),
|
||||
notes = new Notes( Reveal ),
|
||||
|
||||
// CSS transform that is currently applied to the slides container,
|
||||
// split into two groups
|
||||
slidesTransform = { layout: '', overview: '' },
|
||||
|
@ -116,7 +89,26 @@ export default function( revealElement, options ) {
|
|||
autoSlidePlayer,
|
||||
autoSlideTimeout = 0,
|
||||
autoSlideStartTime = -1,
|
||||
autoSlidePaused = false;
|
||||
autoSlidePaused = false,
|
||||
|
||||
// Controllers for different aspects of our presentation. They're
|
||||
// all given direct references to this Reveal instance since there
|
||||
// may be multiple presentations running in parallel.
|
||||
slideContent = new SlideContent( Reveal ),
|
||||
slideNumber = new SlideNumber( Reveal ),
|
||||
autoAnimate = new AutoAnimate( Reveal ),
|
||||
backgrounds = new Backgrounds( Reveal ),
|
||||
fragments = new Fragments( Reveal ),
|
||||
overview = new Overview( Reveal ),
|
||||
keyboard = new Keyboard( Reveal ),
|
||||
location = new Location( Reveal ),
|
||||
controls = new Controls( Reveal ),
|
||||
progress = new Progress( Reveal ),
|
||||
pointer = new Pointer( Reveal ),
|
||||
plugins = new Plugins( Reveal ),
|
||||
print = new Print( Reveal ),
|
||||
touch = new Touch( Reveal ),
|
||||
notes = new Notes( Reveal );
|
||||
|
||||
/**
|
||||
* Starts up the presentation if the client is capable.
|
||||
|
@ -128,7 +120,7 @@ export default function( revealElement, options ) {
|
|||
dom.slides = revealElement.querySelector( '.slides' );
|
||||
|
||||
// Copy options over to our config object
|
||||
config = { ...defaultConfig, ...options, ...getQueryHash() };
|
||||
config = { ...defaultConfig, ...options, ...Util.getQueryHash() };
|
||||
|
||||
// Embedded decks use the reveal element as their viewport
|
||||
if( config.embedded === true ) {
|
||||
|
@ -224,7 +216,7 @@ export default function( revealElement, options ) {
|
|||
// Prevent transitions while we're loading
|
||||
dom.slides.classList.add( 'no-transition' );
|
||||
|
||||
if( isMobile ) {
|
||||
if( Device.isMobile ) {
|
||||
dom.wrapper.classList.add( 'no-hover' );
|
||||
}
|
||||
else {
|
||||
|
@ -238,7 +230,7 @@ export default function( revealElement, options ) {
|
|||
notes.render();
|
||||
|
||||
// Overlay graphic which is displayed during the paused mode
|
||||
dom.pauseOverlay = createSingletonNode( dom.wrapper, 'div', 'pause-overlay', config.controls ? '<button class="resume-button">Resume presentation</button>' : null );
|
||||
dom.pauseOverlay = Util.createSingletonNode( dom.wrapper, 'div', 'pause-overlay', config.controls ? '<button class="resume-button">Resume presentation</button>' : null );
|
||||
|
||||
dom.statusElement = createStatusElement();
|
||||
|
||||
|
@ -389,7 +381,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
// New config options may be passed when this method
|
||||
// is invoked through the API after initialization
|
||||
if( typeof options === 'object' ) extend( config, options );
|
||||
if( typeof options === 'object' ) Util.extend( config, options );
|
||||
|
||||
// Abort if reveal.js hasn't finished loading, config
|
||||
// changes will be applied automatically once ready
|
||||
|
@ -552,10 +544,10 @@ export default function( revealElement, options ) {
|
|||
|
||||
// Apply the transforms to the slides container
|
||||
if( slidesTransform.layout ) {
|
||||
transformElement( dom.slides, slidesTransform.layout + ' ' + slidesTransform.overview );
|
||||
Util.transformElement( dom.slides, slidesTransform.layout + ' ' + slidesTransform.overview );
|
||||
}
|
||||
else {
|
||||
transformElement( dom.slides, slidesTransform.overview );
|
||||
Util.transformElement( dom.slides, slidesTransform.overview );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -568,7 +560,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
let event = document.createEvent( 'HTMLEvents', 1, 2 );
|
||||
event.initEvent( type, bubbles, true );
|
||||
extend( event, data );
|
||||
Util.extend( event, data );
|
||||
target.dispatchEvent( event );
|
||||
|
||||
if( target === dom.wrapper ) {
|
||||
|
@ -591,7 +583,7 @@ export default function( revealElement, options ) {
|
|||
state: getState()
|
||||
};
|
||||
|
||||
extend( message, data );
|
||||
Util.extend( message, data );
|
||||
|
||||
window.parent.postMessage( JSON.stringify( message ), '*' );
|
||||
}
|
||||
|
@ -769,7 +761,7 @@ export default function( revealElement, options ) {
|
|||
// property where 100x adds up to the correct height.
|
||||
//
|
||||
// https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
|
||||
if( isMobile ) {
|
||||
if( Device.isMobile ) {
|
||||
document.documentElement.style.setProperty( '--vh', ( window.innerHeight * 0.01 ) + 'px' );
|
||||
}
|
||||
|
||||
|
@ -805,7 +797,7 @@ export default function( revealElement, options ) {
|
|||
// effects are minor differences in text layout and iframe
|
||||
// viewports changing size. A 200x200 iframe viewport in a
|
||||
// 2x zoomed presentation ends up having a 400x400 viewport.
|
||||
if( scale > 1 && supportsZoom && window.devicePixelRatio < 2 ) {
|
||||
if( scale > 1 && Device.supportsZoom && window.devicePixelRatio < 2 ) {
|
||||
dom.slides.style.zoom = scale;
|
||||
dom.slides.style.left = '';
|
||||
dom.slides.style.top = '';
|
||||
|
@ -887,10 +879,10 @@ export default function( revealElement, options ) {
|
|||
function layoutSlideContents( width, height ) {
|
||||
|
||||
// Handle sizing of elements with the 'stretch' class
|
||||
queryAll( dom.slides, 'section > .stretch' ).forEach( element => {
|
||||
Util.queryAll( dom.slides, 'section > .stretch' ).forEach( element => {
|
||||
|
||||
// Determine how much vertical space we can use
|
||||
let remainingHeight = getRemainingHeight( element, height );
|
||||
let remainingHeight = Util.getRemainingHeight( element, height );
|
||||
|
||||
// Consider the aspect ratio of media elements
|
||||
if( /(img|video)/gi.test( element.nodeName ) ) {
|
||||
|
@ -1405,7 +1397,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
getHorizontalSlides().forEach( horizontalSlide => {
|
||||
|
||||
queryAll( horizontalSlide, 'section' ).forEach( ( verticalSlide, y ) => {
|
||||
Util.queryAll( horizontalSlide, 'section' ).forEach( ( verticalSlide, y ) => {
|
||||
|
||||
if( y > 0 ) {
|
||||
verticalSlide.classList.remove( 'present' );
|
||||
|
@ -1452,7 +1444,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
// Select all slides and convert the NodeList result to
|
||||
// an array
|
||||
let slides = queryAll( dom.wrapper, selector ),
|
||||
let slides = Util.queryAll( dom.wrapper, selector ),
|
||||
slidesLength = slides.length;
|
||||
|
||||
let printMode = print.isPrintingPDF();
|
||||
|
@ -1499,7 +1491,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
if( config.fragments ) {
|
||||
// Show all fragments in prior slides
|
||||
queryAll( element, '.fragment' ).forEach( fragment => {
|
||||
Util.queryAll( element, '.fragment' ).forEach( fragment => {
|
||||
fragment.classList.add( 'visible' );
|
||||
fragment.classList.remove( 'current-fragment' );
|
||||
} );
|
||||
|
@ -1511,7 +1503,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
if( config.fragments ) {
|
||||
// Hide all fragments in future slides
|
||||
queryAll( element, '.fragment.visible' ).forEach( fragment => {
|
||||
Util.queryAll( element, '.fragment.visible' ).forEach( fragment => {
|
||||
fragment.classList.remove( 'visible', 'current-fragment' );
|
||||
} );
|
||||
}
|
||||
|
@ -1574,7 +1566,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
// Shorten the view distance on devices that typically have
|
||||
// less resources
|
||||
if( isMobile ) {
|
||||
if( Device.isMobile ) {
|
||||
viewDistance = overview.isActive() ? 6 : config.mobileViewDistance;
|
||||
}
|
||||
|
||||
|
@ -1586,7 +1578,7 @@ export default function( revealElement, options ) {
|
|||
for( let x = 0; x < horizontalSlidesLength; x++ ) {
|
||||
let horizontalSlide = horizontalSlides[x];
|
||||
|
||||
let verticalSlides = queryAll( horizontalSlide, 'section' ),
|
||||
let verticalSlides = Util.queryAll( horizontalSlide, 'section' ),
|
||||
verticalSlidesLength = verticalSlides.length;
|
||||
|
||||
// Determine how far away this slide is from the present
|
||||
|
@ -1813,7 +1805,7 @@ export default function( revealElement, options ) {
|
|||
|
||||
// If this is a vertical slide, grab the vertical index
|
||||
if( isVertical ) {
|
||||
v = Math.max( queryAll( slide.parentNode, 'section' ).indexOf( slide ), 0 );
|
||||
v = Math.max( Util.queryAll( slide.parentNode, 'section' ).indexOf( slide ), 0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1839,7 +1831,7 @@ export default function( revealElement, options ) {
|
|||
*/
|
||||
function getSlides() {
|
||||
|
||||
return queryAll( dom.wrapper, SLIDES_SELECTOR + ':not(.stack):not([data-visibility="uncounted"])' );
|
||||
return Util.queryAll( dom.wrapper, SLIDES_SELECTOR + ':not(.stack):not([data-visibility="uncounted"])' );
|
||||
|
||||
}
|
||||
|
||||
|
@ -1850,7 +1842,7 @@ export default function( revealElement, options ) {
|
|||
*/
|
||||
function getHorizontalSlides() {
|
||||
|
||||
return queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR );
|
||||
return Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR );
|
||||
|
||||
}
|
||||
|
||||
|
@ -1859,7 +1851,7 @@ export default function( revealElement, options ) {
|
|||
*/
|
||||
function getVerticalSlides() {
|
||||
|
||||
return queryAll( dom.wrapper, '.slides>section>section' );
|
||||
return Util.queryAll( dom.wrapper, '.slides>section>section' );
|
||||
|
||||
}
|
||||
|
||||
|
@ -1868,7 +1860,7 @@ export default function( revealElement, options ) {
|
|||
*/
|
||||
function getVerticalStacks() {
|
||||
|
||||
return queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.stack');
|
||||
return Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.stack');
|
||||
|
||||
}
|
||||
|
||||
|
@ -1989,10 +1981,10 @@ export default function( revealElement, options ) {
|
|||
function setState( state ) {
|
||||
|
||||
if( typeof state === 'object' ) {
|
||||
slide( deserialize( state.indexh ), deserialize( state.indexv ), deserialize( state.indexf ) );
|
||||
slide( Util.deserialize( state.indexh ), Util.deserialize( state.indexv ), Util.deserialize( state.indexf ) );
|
||||
|
||||
let pausedFlag = deserialize( state.paused ),
|
||||
overviewFlag = deserialize( state.overview );
|
||||
let pausedFlag = Util.deserialize( state.paused ),
|
||||
overviewFlag = Util.deserialize( state.overview );
|
||||
|
||||
if( typeof pausedFlag === 'boolean' && pausedFlag !== isPaused() ) {
|
||||
togglePause( pausedFlag );
|
||||
|
@ -2048,7 +2040,7 @@ export default function( revealElement, options ) {
|
|||
// is divided up into fragments.
|
||||
// playbackRate is accounted for in the duration.
|
||||
if( currentSlide.querySelectorAll( '.fragment' ).length === 0 ) {
|
||||
queryAll( currentSlide, 'video, audio' ).forEach( el => {
|
||||
Util.queryAll( currentSlide, 'video, audio' ).forEach( el => {
|
||||
if( el.hasAttribute( 'data-autoplay' ) ) {
|
||||
if( autoSlide && (el.duration * 1000 / el.playbackRate ) > autoSlide ) {
|
||||
autoSlide = ( el.duration * 1000 / el.playbackRate ) + 1000;
|
||||
|
@ -2190,10 +2182,10 @@ export default function( revealElement, options ) {
|
|||
let previousSlide;
|
||||
|
||||
if( config.rtl ) {
|
||||
previousSlide = queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.future' ).pop();
|
||||
previousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.future' ).pop();
|
||||
}
|
||||
else {
|
||||
previousSlide = queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.past' ).pop();
|
||||
previousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.past' ).pop();
|
||||
}
|
||||
|
||||
if( previousSlide ) {
|
||||
|
@ -2500,7 +2492,7 @@ export default function( revealElement, options ) {
|
|||
getConfig: () => config,
|
||||
|
||||
// Helper method, retrieves query string as a key:value map
|
||||
getQueryHash,
|
||||
getQueryHash: Util.getQueryHash,
|
||||
|
||||
// Returns reveal.js DOM elements
|
||||
getRevealElement: () => revealElement,
|
||||
|
@ -2516,7 +2508,7 @@ export default function( revealElement, options ) {
|
|||
};
|
||||
|
||||
// Our internal API which controllers have access to
|
||||
extend( Reveal, {
|
||||
Util.extend( Reveal, {
|
||||
...API,
|
||||
|
||||
// Methods for announcing content to screen readers
|
||||
|
|
|
@ -2267,7 +2267,8 @@
|
|||
"core-js": {
|
||||
"version": "3.6.5",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
|
||||
"integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
|
||||
"integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-js-compat": {
|
||||
"version": "3.6.5",
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
"@babel/preset-env": "^7.8.7",
|
||||
"@rollup/plugin-node-resolve": "^7.1.3",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"core-js": "^3.6.5",
|
||||
"colors": "^1.4.0",
|
||||
"express": "^4.17.1",
|
||||
"glob": "^7.1.6",
|
||||
|
@ -41,10 +42,10 @@
|
|||
"gulp-tap": "^2.0.0",
|
||||
"gulp-zip": "^5.0.1",
|
||||
"mustache": "^4.0.0",
|
||||
"node-qunit-puppeteer": "^2.0.1",
|
||||
"rollup": "^2.6.1",
|
||||
"rollup-plugin-babel": "^4.4.0",
|
||||
"rollup-plugin-terser": "^5.3.0",
|
||||
"node-qunit-puppeteer": "^2.0.1",
|
||||
"socket.io": "^2.3.0",
|
||||
"yargs": "^15.1.0"
|
||||
},
|
||||
|
@ -60,7 +61,6 @@
|
|||
"allowImportExportEverywhere": true
|
||||
},
|
||||
"globals": {
|
||||
"head": false,
|
||||
"module": false,
|
||||
"console": false,
|
||||
"unescape": false,
|
||||
|
@ -86,8 +86,5 @@
|
|||
"no-eq-null": 2,
|
||||
"no-unused-expressions": 0
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.5"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue