@@ -261,8 +261,31 @@ const addToolbarEventHandlers = (el, pdfViewer, invoke, options) => {
261261 const thumbnailsEl = el . querySelector ( ".bb-view-thumbnails" ) ;
262262 thumbnailsEl . classList . toggle ( "show" ) ;
263263 } ) ;
264+ EventHandler . on ( toolbar , "change" , '.bb-view-num' , e => {
265+ let pageNumber = parseInt ( e . delegateTarget . value ) || 1 ;
266+ if ( pageNumber < 1 ) {
267+ pageNumber = 1 ;
268+ }
269+ if ( pageNumber > pdfViewer . pagesCount ) {
270+ pageNumber = pdfViewer . pagesCount ;
271+ }
272+ pdfViewer . currentPageNumber = pageNumber ;
273+ } ) ;
264274 EventHandler . on ( toolbar , "click" , '.bb-page-minus' , e => updateScale ( pdfViewer , e . delegateTarget , - 1 ) ) ;
265275 EventHandler . on ( toolbar , "click" , '.bb-page-plus' , e => updateScale ( pdfViewer , e . delegateTarget , 1 ) ) ;
276+ EventHandler . on ( toolbar , 'change' , '.bb-view-scale-input' , e => {
277+ let value = parseInt ( e . delegateTarget . value ) ;
278+ if ( value < 25 ) {
279+ value = 25 ;
280+ }
281+ else if ( value > 500 ) {
282+ value = 500 ;
283+ }
284+ pdfViewer . currentScale = value / 100 ;
285+ } ) ;
286+ EventHandler . on ( toolbar , 'focus' , '.bb-view-scale-input' , e => {
287+ e . delegateTarget . select ( ) ;
288+ } ) ;
266289 EventHandler . on ( toolbar , 'click' , '.bb-view-rotate-left' , e => {
267290 rotateView ( pdfViewer , - 90 ) ;
268291 } ) ;
@@ -401,7 +424,6 @@ export function dispose(id) {
401424
402425 if ( observer ) {
403426 observer . disconnect ( ) ;
404- observer = null ;
405427 }
406428
407429 if ( el ) {
@@ -413,6 +435,8 @@ export function dispose(id) {
413435 const toolbar = el . querySelector ( ".bb-view-toolbar" ) ;
414436 if ( toolbar ) {
415437 EventHandler . off ( toolbar , "click" ) ;
438+ EventHandler . off ( toolbar , "change" ) ;
439+ EventHandler . off ( toolbar , "focus" ) ;
416440 }
417441
418442 const thumbnailsContainer = el . querySelector ( ".bb-view-thumbnails" ) ;
0 commit comments