@@ -140,18 +140,20 @@ const addEventListener = (el, pdfViewer, eventBus, invoke, options) => {
140140 } ) ;
141141
142142 eventBus . on ( "pagesloaded" , async e => {
143- const thumbnailsContainer = el . querySelector ( ".bb-view-thumbnails" ) ;
144- pdfViewer . getPagesOverview ( ) . map ( async ( p , i ) => {
145- var page = await pdfViewer . pdfDocument . getPage ( i + 1 ) ;
146- var canvas = await makeThumb ( page ) ;
147- var img = document . createElement ( "img" ) ;
148- img . src = canvas . toDataURL ( ) ;
149-
150- var item = document . createElement ( "div" ) ;
151- item . classList . add ( "bb-view-thumbnail-item" ) ;
152- item . appendChild ( img ) ;
153- thumbnailsContainer . appendChild ( item ) ;
154- } ) ;
143+ if ( options . enableThumbnails ) {
144+ const thumbnailsContainer = el . querySelector ( ".bb-view-thumbnails" ) ;
145+ pdfViewer . getPagesOverview ( ) . map ( async ( p , i ) => {
146+ const page = await pdfViewer . pdfDocument . getPage ( i + 1 ) ;
147+ const canvas = await makeThumb ( page ) ;
148+ const img = document . createElement ( "img" ) ;
149+ img . src = canvas . toDataURL ( ) ;
150+
151+ const item = document . createElement ( "div" ) ;
152+ item . classList . add ( "bb-view-thumbnail-item" ) ;
153+ item . appendChild ( img ) ;
154+ thumbnailsContainer . appendChild ( item ) ;
155+ } ) ;
156+ }
155157
156158 if ( options . triggerPagesLoaded === true ) {
157159 await invoke . invokeMethodAsync ( "PagesLoaded" , e . pagesCount ) ;
@@ -192,6 +194,14 @@ const addEventListener = (el, pdfViewer, eventBus, invoke, options) => {
192194 }
193195 } ) ;
194196 }
197+
198+ const thumbnailsToggle = el . querySelector ( ".bb-view-bar" ) ;
199+ if ( thumbnailsToggle ) {
200+ EventHandler . on ( thumbnailsToggle , "click" , e => {
201+ const thumbnailsEl = el . querySelector ( ".bb-view-thumbnails" ) ;
202+ thumbnailsEl . classList . toggle ( "show" ) ;
203+ } ) ;
204+ }
195205}
196206
197207const updateScale = ( pdfViewer , button , rate ) => {
@@ -215,15 +225,15 @@ const updateScale = (pdfViewer, button, rate) => {
215225
216226const makeThumb = page => {
217227 const outputScale = window . devicePixelRatio || 1 ;
218- var vp = page . getViewport ( { scale : 1 } ) ;
219- var canvas = document . createElement ( "canvas" ) ;
220- var scalesize = 1 ;
221- canvas . width = vp . width * scalesize * outputScale ;
222- canvas . height = vp . height * scalesize * outputScale ;
228+ const vp = page . getViewport ( { scale : 1 } ) ;
229+ const canvas = document . createElement ( "canvas" ) ;
230+ const scaleSize = 1 ;
231+ canvas . width = vp . width * scaleSize * outputScale ;
232+ canvas . height = vp . height * scaleSize * outputScale ;
223233
224234 return page . render ( {
225235 canvasContext : canvas . getContext ( "2d" ) ,
226- viewport : page . getViewport ( { scale : scalesize * outputScale } )
236+ viewport : page . getViewport ( { scale : scaleSize * outputScale } )
227237 } ) . promise . then ( function ( ) {
228238 return canvas ;
229239 } )
@@ -247,5 +257,10 @@ export function dispose(id) {
247257 if ( towPagesOneView ) {
248258 EventHandler . off ( towPagesOneView , "click" ) ;
249259 }
260+
261+ const thumbnailsToggle = el . querySelector ( ".bb-view-bar" ) ;
262+ if ( thumbnailsToggle ) {
263+ EventHandler . off ( thumbnailsToggle , "click" ) ;
264+ }
250265 }
251266}
0 commit comments