Merge branch 'dev' into jh/print-optimize

This commit is contained in:
Jeroen Hermans
2020-12-20 17:44:20 +01:00
committed by GitHub
18 changed files with 12826 additions and 2448 deletions

View File

@ -50,6 +50,12 @@ export default class Print {
await new Promise(requestAnimationFrame);
this.Reveal.layoutSlideContents( slideWidth, slideHeight );
slides.forEach( function( slide ) {
// Re-run the slide layout so that r-fit-text is applied based on
// the printed slide size
this.Reveal.slideContent.layout( slide );
});
// Batch scrollHeight access to prevent layout thrashing
await new Promise(requestAnimationFrame);
const slideScrollHeights = []

View File

@ -88,14 +88,16 @@ export default class Progress {
event.preventDefault();
let slidesTotal = this.Reveal.getHorizontalSlides().length;
let slides = this.Reveal.getSlides();
let slidesTotal = slides.length;
let slideIndex = Math.floor( ( event.clientX / this.getMaxWidth() ) * slidesTotal );
if( this.Reveal.getConfig().rtl ) {
slideIndex = slidesTotal - slideIndex;
}
this.Reveal.slide( slideIndex );
let targetIndices = this.Reveal.getIndices(slides[slideIndex]);
this.Reveal.slide( targetIndices.h, targetIndices.v );
}

View File

@ -167,11 +167,20 @@ export default class SlideContent {
}
this.layout( slide );
}
/**
* Applies JS-dependent layout helpers for the given slide,
* if there are any.
*/
layout( slide ) {
// Autosize text with the r-fit-text class based on the
// size of its container. This needs to happen after the
// slide is visible in order to measure the text.
Array.from( slide.querySelectorAll( '.r-fit-text:not([data-fitted])' ) ).forEach( element => {
element.dataset.fitted = '';
Array.from( slide.querySelectorAll( '.r-fit-text' ) ).forEach( element => {
fitty( element, {
minSize: 24,
maxSize: this.Reveal.getConfig().height * 0.8,