| 
					
				 | 
			
			
				@@ -1229,7 +1229,7 @@ var PDFFindController = (function PDFFindControllerClosure() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // If the page is selected, scroll the page into view, which triggers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // rendering the page, which adds the textLayer. Once the textLayer is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // build, it will scroll onto the selected match. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.pdfViewer.scrollPageIntoView(index + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.pdfViewer.currentPageNumber = index + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var page = this.pdfViewer.getPageView(index); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1924,7 +1924,10 @@ var PDFLinkService = (function PDFLinkServiceClosure() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           'Trying to navigate to a non-existent page.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          self.pdfViewer.scrollPageIntoView(pageNumber, dest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          self.pdfViewer.scrollPageIntoView({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pageNumber: pageNumber, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            destArray: dest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (self.pdfHistory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Update the browsing history. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2050,7 +2053,11 @@ var PDFLinkService = (function PDFLinkServiceClosure() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (dest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          this.pdfViewer.scrollPageIntoView(pageNumber || this.page, dest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.pdfViewer.scrollPageIntoView({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pageNumber: pageNumber || this.page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            destArray: dest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            allowNegativeOffset: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else if (pageNumber) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           this.page = pageNumber; // simple page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3724,7 +3731,11 @@ var PDFViewer = (function pdfViewer() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           dest = [null, { name: 'XYZ' }, this._location.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   this._location.top, null]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.scrollPageIntoView(page, dest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.scrollPageIntoView({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pageNumber: page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          destArray: dest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          allowNegativeOffset: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this._setScaleDispatchEvent(newScale, newValue, preset); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3796,17 +3807,37 @@ var PDFViewer = (function pdfViewer() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       scrollIntoView(pageView.div); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @typedef ScrollPageIntoViewParameters 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param {number} pageNumber - The page number. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param {Array} destArray - (optional) The original PDF destination array, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *   in the format: <page-ref> </XYZ|/FitXXX> <args..> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param {boolean} allowNegativeOffset - (optional) Allow negative page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *   offsets. The default value is `false`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * Scrolls page into view. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param {number} pageNumber 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param {Array} dest - (optional) original PDF destination array: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     *   <page-ref> </XYZ|FitXXX> <args..> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param {ScrollPageIntoViewParameters} params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    scrollPageIntoView: function PDFViewer_scrollPageIntoView(pageNumber, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                              dest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    scrollPageIntoView: function PDFViewer_scrollPageIntoView(params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!this.pdfDocument) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (arguments.length > 1 || typeof params === 'number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.warn('Call of scrollPageIntoView() with obsolete signature.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var paramObj = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (typeof params === 'number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          paramObj.pageNumber = params; // pageNumber argument was found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (arguments[1] instanceof Array) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          paramObj.destArray = arguments[1]; // destArray argument was found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        params = paramObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var pageNumber = params.pageNumber || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var dest = params.destArray || null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var allowNegativeOffset = params.allowNegativeOffset || false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (this.isInPresentationMode || !dest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this._setCurrentPageNumber(pageNumber, /* resetCurrentPageView */ true); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3814,6 +3845,11 @@ var PDFViewer = (function pdfViewer() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var pageView = this._pages[pageNumber - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!pageView) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.error('PDFViewer_scrollPageIntoView: ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      'Invalid "pageNumber" parameter.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var x = 0, y = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var width = 0, height = 0, widthScale, heightScale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var changeOrientation = (pageView.rotation % 180 === 0 ? false : true); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3894,6 +3930,13 @@ var PDFViewer = (function pdfViewer() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var left = Math.min(boundingRect[0][0], boundingRect[1][0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var top = Math.min(boundingRect[0][1], boundingRect[1][1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!allowNegativeOffset) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Some bad PDF generators will create destinations with e.g. top values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // that exceeds the page height. Ensure that offsets are not negative, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // to prevent a previous page from becoming visible (fixes bug 874482). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        left = Math.max(left, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        top = Math.max(top, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       scrollIntoView(pageView.div, { left: left, top: top }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |